diff --git a/.gitea/workflows/release.yaml b/.gitea/workflows/release.yaml
index 7fb3d17..0e16251 100644
--- a/.gitea/workflows/release.yaml
+++ b/.gitea/workflows/release.yaml
@@ -20,7 +20,7 @@ jobs:
with:
go-version: '>=1.20.1'
- name: Create zip file
- run: zip -r YouTubeMusic.zip . -x .git*/ -x .vscode/ -x .git* -x repo.xml
+ run: zip -r YouTubeMusic.zip . -x ".git*" ".vscode/" repo.xml
- name: Create repo.xml with sha
run: |
sha1=$(sha1sum YouTubeMusic.zip | cut -d ' ' -f1) && sed -i "s||$sha1|" repo.xml && echo "SHA: $sha1"
diff --git a/CPAN/Moose.pm b/CPAN/Moose.pm
new file mode 100644
index 0000000..c5c356d
--- /dev/null
+++ b/CPAN/Moose.pm
@@ -0,0 +1,1268 @@
+use strict;
+use warnings;
+package Moose; # git description: 2.2206-2-ge01558bb6
+our $VERSION = '2.2207';
+our $AUTHORITY = 'cpan:STEVAN';
+
+use 5.008003;
+
+use Scalar::Util ();
+use Carp 'carp';
+use Module::Runtime 'module_notional_filename';
+use Class::Load 'is_class_loaded';
+
+use Moose::Deprecated;
+use Moose::Exporter;
+
+use Class::MOP;
+
+die "Class::MOP version $Moose::VERSION required--this is version $Class::MOP::VERSION"
+ if $Class::MOP::VERSION ne $Moose::VERSION;
+
+use Moose::Meta::Class;
+use Moose::Meta::TypeConstraint;
+use Moose::Meta::TypeCoercion;
+use Moose::Meta::Attribute;
+use Moose::Meta::Instance;
+
+use Moose::Object;
+
+use Moose::Meta::Role;
+use Moose::Meta::Role::Composite;
+use Moose::Meta::Role::Application;
+use Moose::Meta::Role::Application::RoleSummation;
+use Moose::Meta::Role::Application::ToClass;
+use Moose::Meta::Role::Application::ToRole;
+use Moose::Meta::Role::Application::ToInstance;
+
+use Moose::Util::TypeConstraints;
+use Moose::Util 'throw_exception';
+
+use Moose::Meta::Attribute::Native;
+
+sub extends {
+ my $meta = shift;
+
+ unless ( @_ )
+ {
+ throw_exception( ExtendsMissingArgs => class_name => $meta->name );
+ }
+ # this checks the metaclass to make sure
+ # it is correct, sometimes it can get out
+ # of sync when the classes are being built
+ $meta->superclasses(@_);
+}
+
+sub with {
+ Moose::Util::apply_all_roles(shift, @_);
+}
+
+sub throw_error {
+ shift;
+ Class::MOP::Object->throw_error(@_);
+}
+
+sub has {
+ my $meta = shift;
+ my $name = shift;
+
+ my %context = Moose::Util::_caller_info;
+ $context{context} = 'has declaration';
+ $context{type} = 'class';
+ my @options = ( definition_context => \%context, @_ );
+ my $attrs = ( ref($name) eq 'ARRAY' ) ? $name : [ ($name) ];
+ $meta->add_attribute( $_, @options ) for @$attrs;
+}
+
+sub before {
+ Moose::Util::add_method_modifier(shift, 'before', \@_);
+}
+
+sub after {
+ Moose::Util::add_method_modifier(shift, 'after', \@_);
+}
+
+sub around {
+ Moose::Util::add_method_modifier(shift, 'around', \@_);
+}
+
+our $SUPER_PACKAGE;
+our $SUPER_BODY;
+our @SUPER_ARGS;
+
+sub super {
+ if (@_) {
+ carp 'Arguments passed to super() are ignored';
+ }
+
+ # This check avoids a recursion loop - see
+ # t/bugs/super_recursion.t
+ return if defined $SUPER_PACKAGE && $SUPER_PACKAGE ne caller();
+ return unless $SUPER_BODY; $SUPER_BODY->(@SUPER_ARGS);
+}
+
+sub override {
+ my $meta = shift;
+ my ( $name, $method ) = @_;
+ $meta->add_override_method_modifier( $name => $method );
+}
+
+sub inner {
+ my $pkg = caller();
+ our ( %INNER_BODY, %INNER_ARGS );
+
+ if ( my $body = $INNER_BODY{$pkg} ) {
+ my @args = @{ $INNER_ARGS{$pkg} };
+ local $INNER_ARGS{$pkg};
+ local $INNER_BODY{$pkg};
+ return $body->(@args);
+ } else {
+ return;
+ }
+}
+
+sub augment {
+ my $meta = shift;
+ my ( $name, $method ) = @_;
+ $meta->add_augment_method_modifier( $name => $method );
+}
+
+Moose::Exporter->setup_import_methods(
+ with_meta => [
+ qw( extends with has before after around override augment )
+ ],
+ as_is => [
+ qw( super inner ),
+ 'Carp::confess',
+ 'Scalar::Util::blessed',
+ ],
+);
+
+sub init_meta {
+ shift;
+ my %args = @_;
+
+ my $class = $args{for_class}
+ or throw_exception( InitMetaRequiresClass => params => \%args );
+
+ my $base_class = $args{base_class} || 'Moose::Object';
+ my $metaclass = $args{metaclass} || 'Moose::Meta::Class';
+ my $meta_name = exists $args{meta_name} ? $args{meta_name} : 'meta';
+
+ throw_exception( MetaclassNotLoaded => class_name => $metaclass )
+ unless is_class_loaded($metaclass);
+
+ throw_exception( MetaclassMustBeASubclassOfMooseMetaClass => class_name => $metaclass )
+ unless $metaclass->isa('Moose::Meta::Class');
+
+ # make a subtype for each Moose class
+ class_type($class)
+ unless find_type_constraint($class);
+
+ my $meta;
+
+ if ( $meta = Class::MOP::get_metaclass_by_name($class) ) {
+ unless ( $meta->isa("Moose::Meta::Class") ) {
+ if ( $meta->isa('Moose::Meta::Role') ) {
+ throw_exception( MetaclassIsARoleNotASubclassOfGivenMetaclass => role_name => $class,
+ metaclass => $metaclass,
+ role => $meta
+ );
+ } else {
+ throw_exception( MetaclassIsNotASubclassOfGivenMetaclass => class_name => $class,
+ metaclass => $metaclass,
+ class => $meta
+ );
+ }
+ }
+ } else {
+ # no metaclass
+
+ # now we check whether our ancestors have metaclass, and if so borrow that
+ my ( undef, @isa ) = @{ mro::get_linear_isa($class) };
+
+ foreach my $ancestor ( @isa ) {
+ my $ancestor_meta = Class::MOP::get_metaclass_by_name($ancestor) || next;
+
+ my $ancestor_meta_class = $ancestor_meta->_real_ref_name;
+
+ # if we have an ancestor metaclass that inherits $metaclass, we use
+ # that. This is like _fix_metaclass_incompatibility, but we can do it now.
+
+ # the case of having an ancestry is not very common, but arises in
+ # e.g. Reaction
+ unless ( $metaclass->isa( $ancestor_meta_class ) ) {
+ if ( $ancestor_meta_class->isa($metaclass) ) {
+ $metaclass = $ancestor_meta_class;
+ }
+ }
+ }
+
+ $meta = $metaclass->initialize($class);
+ my $filename = module_notional_filename($meta->name);
+ $INC{$filename} = '(set by Moose)'
+ unless exists $INC{$filename};
+ }
+
+ if (defined $meta_name) {
+ # also check for inherited non moose 'meta' method?
+ my $existing = $meta->get_method($meta_name);
+ if ($existing && !$existing->isa('Class::MOP::Method::Meta')) {
+ Carp::cluck "Moose is overwriting an existing method named "
+ . "$meta_name in class $class with a method "
+ . "which returns the class's metaclass. If this is "
+ . "actually what you want, you should remove the "
+ . "existing method, otherwise, you should rename or "
+ . "disable this generated method using the "
+ . "'-meta_name' option to 'use Moose'.";
+ }
+ $meta->_add_meta_method($meta_name);
+ }
+
+ # make sure they inherit from Moose::Object
+ $meta->superclasses($base_class)
+ unless $meta->superclasses();
+
+ return $meta;
+}
+
+# This may be used in some older MooseX extensions.
+sub _get_caller {
+ goto &Moose::Exporter::_get_caller;
+}
+
+## make 'em all immutable
+
+$_->make_immutable(
+ inline_constructor => 1,
+ constructor_name => "_new",
+ # these are Class::MOP accessors, so they need inlining
+ inline_accessors => 1
+ ) for grep { $_->is_mutable }
+ map { $_->meta }
+ qw(
+ Moose::Meta::Attribute
+ Moose::Meta::Class
+ Moose::Meta::Instance
+
+ Moose::Meta::TypeCoercion
+ Moose::Meta::TypeCoercion::Union
+
+ Moose::Meta::Method
+ Moose::Meta::Method::Constructor
+ Moose::Meta::Method::Destructor
+ Moose::Meta::Method::Overridden
+ Moose::Meta::Method::Augmented
+
+ Moose::Meta::Role
+ Moose::Meta::Role::Attribute
+ Moose::Meta::Role::Method
+ Moose::Meta::Role::Method::Required
+ Moose::Meta::Role::Method::Conflicting
+
+ Moose::Meta::Role::Composite
+
+ Moose::Meta::Role::Application
+ Moose::Meta::Role::Application::RoleSummation
+ Moose::Meta::Role::Application::ToClass
+ Moose::Meta::Role::Application::ToRole
+ Moose::Meta::Role::Application::ToInstance
+);
+
+$_->make_immutable(
+ inline_constructor => 0,
+ constructor_name => undef,
+ # these are Class::MOP accessors, so they need inlining
+ inline_accessors => 1
+ ) for grep { $_->is_mutable }
+ map { $_->meta }
+ qw(
+ Moose::Meta::Method::Accessor
+ Moose::Meta::Method::Delegation
+ Moose::Meta::Mixin::AttributeCore
+);
+
+1;
+
+# ABSTRACT: A postmodern object system for Perl 5
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+Moose - A postmodern object system for Perl 5
+
+=head1 VERSION
+
+version 2.2207
+
+=head1 SYNOPSIS
+
+ package Point;
+ use Moose; # automatically turns on strict and warnings
+
+ has 'x' => (is => 'rw', isa => 'Int');
+ has 'y' => (is => 'rw', isa => 'Int');
+
+ sub clear {
+ my $self = shift;
+ $self->x(0);
+ $self->y(0);
+ }
+
+ package Point3D;
+ use Moose;
+
+ extends 'Point';
+
+ has 'z' => (is => 'rw', isa => 'Int');
+
+ after 'clear' => sub {
+ my $self = shift;
+ $self->z(0);
+ };
+
+=head1 DESCRIPTION
+
+Moose is an extension of the Perl 5 object system.
+
+The main goal of Moose is to make Perl 5 Object Oriented programming
+easier, more consistent, and less tedious. With Moose you can think
+more about what you want to do and less about the mechanics of OOP.
+
+Additionally, Moose is built on top of L, which is a
+metaclass system for Perl 5. This means that Moose not only makes
+building normal Perl 5 objects better, but it provides the power of
+metaclass programming as well.
+
+=head2 New to Moose?
+
+If you're new to Moose, the best place to start is the
+L docs, followed by the L. The intro
+will show you what Moose is, and how it makes Perl 5 OO better.
+
+The cookbook recipes on Moose basics will get you up to speed with
+many of Moose's features quickly. Once you have an idea of what Moose
+can do, you can use the API documentation to get more detail on
+features which interest you.
+
+=head2 Moose Extensions
+
+The C namespace is the official place to find Moose extensions.
+These extensions can be found on the CPAN. The easiest way to find them
+is to search for them (L),
+or to examine L which aims to keep an up-to-date, easily
+installable list of Moose extensions.
+
+=head1 TRANSLATIONS
+
+Much of the Moose documentation has been translated into other languages.
+
+=over 4
+
+=item Japanese
+
+Japanese docs can be found at
+L. The
+source POD files can be found in GitHub:
+L
+
+=back
+
+=head1 BUILDING CLASSES WITH MOOSE
+
+Moose makes every attempt to provide as much convenience as possible during
+class construction/definition, but still stay out of your way if you want it
+to. Here are a few items to note when building classes with Moose.
+
+When you C