From 83118b3e8dddc8542b4ce5544fc90bbaffb99169 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Wed, 9 Apr 2014 21:01:56 -0400 Subject: [PATCH 01/93] Update version Time to start Ocarina 6.1! Signed-off-by: Anna Schumaker --- Sconstruct | 2 +- share/ocarina/ocarina6.glade | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Sconstruct b/Sconstruct index 39c59ec7..4bd6c5a8 100644 --- a/Sconstruct +++ b/Sconstruct @@ -2,7 +2,7 @@ import os # Configuration variables -CONFIG_VERSION = 6.0 +CONFIG_VERSION = 6.1 CONFIG_DEBUG = True diff --git a/share/ocarina/ocarina6.glade b/share/ocarina/ocarina6.glade index 84e81fc6..272b5ea3 100644 --- a/share/ocarina/ocarina6.glade +++ b/share/ocarina/ocarina6.glade @@ -212,7 +212,7 @@ True False - Ocarina 6.0 + Ocarina 6.1 1024 683 From bfefd1761ab9d52f072676b82a76c32cec77fd73 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sun, 16 Mar 2014 21:12:18 -0400 Subject: [PATCH 02/93] Think out the design for each tag class This gives me a chance to write out more information about each class, so I'll have an easier time knowing what is going on if I ever need to revisit the design. Signed-off-by: Anna Schumaker --- DESIGN | 384 +++++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 263 insertions(+), 121 deletions(-) diff --git a/DESIGN b/DESIGN index 79d3121f..65a00db5 100644 --- a/DESIGN +++ b/DESIGN @@ -528,48 +528,234 @@ Idle queue: -Playlists: (lib/playlist.cpp) - Playlists are a new feature in Ocarina 6 and are modeled after Gmail - labels. Ocarina 6.0 will support two different playlists that the - user can add tracks to: banned and favorites. +Artist Tag: + The arist tag is used to collect basic information about the various + artists that have been added to the library. - Future releases will add support for more playlists. +- Artist: + class Artist : public DatabaseEntry { + public: + std::string name; + std::string lower; -- Database: - Database playlist_db + Artist(); + Artist(const std::string &); + const std::string primary_key(); + void read(File &); + void write(File &); + }; -- Default playlists: - Favorites: - The user will add music they really like to this playlist. +- File Format: + File << name; - Banned: - The user should add music they do not like to this playlist. - Tracks should be removed from the Library playqueue when they - are banned and added back to the playqueue when they are - un-banned. +- API: + Artist(); + Initialize an invalid Artist instance. -- API - void playlist :: init(): - Load the playlist database. + Artist(const std::string &artist_name); + Use artist_name to set name and lower. - void playlist :: add(name, track_id); - Add the track_id to the playlist named "name". Save the - database to disk. - Throw -EEXIST if "name" does not exist. + const std::string Artist :: primary_key(); + Use artist name as primary key. - void playlist :: del(name, track_id); - Remove the track_id from the playlist named "name". Save the - database to disk. Attempting to remove a track_id that does - not exist is not an error. - Throw -EEXIST if "name" does not exist. + void Artist :: read(File &f); + Read artist name from file and add to the filter. - const std::set &playlist :: get_tracks(name); - Return the set of tracks representing the requested group. - Throw -EEXIST if "name" does not exist. + void Artist :: write(File &f); + Write artist name to file. - void playlist :: clear(); - This function only exists if CONFIG_TEST is enabled. Clear - (reset) the playlist database. + + +Album Tag: + The album tag is used to collect information about each artist's albums. + +- Album: + class Album : public DatabaseEntry { + public: + std::string name; + std::string lower; + unsigned int year; + unsigned int artist_id; + + Album(); + Album(const std::string &, unsigned int, unsigned int); + const std::string primary_key(); + void read(File &); + void write(File &); + }; + +- File Format: + File << artist_id << year << name; + +- API: + Album(); + Initialize an invalid Album instance. + + Album(const std::string &album_name, unsigned int album_year, + unsigned int album_artist); + Set name from album name and find the lowercased form. + Set year from album_year and artist_id from album_artist. + + const std::string Album :: primary_key(); + Return the string: "$name.$year.$artist_id" + + void Album :: read(File &f); + Read artist_id, year, and name from file. Then add album name + to the filter. + + void Artist :: write(File &f); + Write album information to file. + + + +Genre Tag: + The genre tag is used to collect basic information about the various + genres of songs in the library. + +- Genre: + class Genre : public DatabaseEntry { + public: + std::string genre; + std::string lower; + + Genre(); + Genre(const std::string &); + const std::string primary_key(); + void read(File &); + void write(File &); + }; + +- File Format: + File << name; + +- API: + Genre(); + Initialize an invalid Genre instance. + + Genre(const std::string &genre_name); + Use genre_name to set genre and lower. + + const std::string Genre :: primary_key(); + Use genre as primary key. + + void Genre :: read(File &f); + Read genre from file and add to the filter. + + void Genre :: write(File &f); + Write genre to file. + + + +Library Tag: + The library tag is used to store a single directory added to Ocarina + by the user. It is not an ID3 tag, and is instead something I use + internally to keep track of paths added by the user. + +- Library: + class library :: Library : public DatabaseEntry { + public: + string root_path; /* primary_key */ + unsigned int count; + bool enabled; + + Library(); + Library(const std::string &); + const std::string primary_key(); + void read(File &); + void write(File &); + }; + +- File Format: + File << enabled << root_path + +- API: + Library(); + Initialize an invalid Library instance. + + Library(const std::string &path); + Set root_path from the provided path. + Set enabled = true. + + const std::string Library :: primary_key(); + Use root_path as the primary key, + + void read(File &f); + Read a library path from file. + + void write(File &f); + Write a library path to file. + + + +Track Tag: + The track tag is used to store information about a single track in the + user's music collection. + +- Track: + class Track : public DatabaseEntry { + public: + Library *library; + Artist *artist; + Album *album; + Genre *genre; + + unsigned int track; + unsigned int length; + unsigned int play_count; + unsigned int last_year; + unsigned int last_month; + unsigned int last_day; + + std :: string title; + std :: string title_lower; + std :: string filepath; + std :: string length_str; + + Track(); + Track(Library *, Artist *, Album *, Genre *, unsigned int, + unsigned int, const std::string &, const std::string &); + const std::string primary_key(); + const std::string path(); + void read(File &); + void write(File &); + }; + +- File Format: + File << library->id << artist->id << album->id << genre->id; + File << track << last_year << last_month << last_day << play_count; + File << length << length_str << endl + File << title << endl; + File << filepath << endl; + +- API: + Track(); + Initialize an invalid Track instance. + + Track(Library *lib, Artist *art, Album *alb, Genre *gen, + unsigned int track, unsigned int length, + const std::string &track_title, const std::string &full_path); + - Set Library, Artist, Album and Genre pointers. + - Set track and length variables. + - Set play_count, last_year, last_month and last_day = 0. + - Set title from track_title. + - Strip library path from prams.full_path and use the result to + set filepath. + - Set lowercase title and find the string form of length. + + const std::string Track :: primary_key(); + return path(); + + const std::string Track :: path(); + Combine library->path and filepath to find the full path to + the audio file. + + void read(File &f); + Read track information from file. Look up the corresponding + Library, Artist, Album and Genre pointers and add title to + the filter. + + void write(File &f); + Write track information to file. @@ -579,90 +765,10 @@ Library: (lib/library.cpp) storing content. The library will exist in a library namespace to to make functions and classes more unique. -- Databases: - enum DB_Type { - DB_ALBUM, - DB_ARTIST, - DB_GENRE, - DB_LIBRARY, - DB_TRACK, - }; - -- Album: - class library :: Album : public DatabaseEntry { - public: - /* primary_key = "$name.$year.$artist_id" */ - string name; - string name_lower; - unsigned int year; - unsigned int artist_id; - }; - - File << artist_id << year << name - -- Artist and Genre: - class library :: AGInfo : public DatabaseEntry { - public: - string name; /* primary key */ - string name_lower; - }; - - File << name - -- Library: - class library :: Library : public DatabaseEntry { - public: - string root_path; /* primary_key */ - unsigned int count; - bool enabled; - }; - - File << enabled << root_path - -- Track: - The primary key for a track is the full filepath (library.root_path + - track.filepath) - - class library :: Track : public DatabaseEntry { - public: - /* primary_key = library.root_path + "/" + filepath */ - unsigned int library_id; - unsigned int artist_id; - unsigned int album_id; - unsigned int genre_id; - - unsigned int track; - unsigned int last_year; - unsigned int last_month; - unsigned int last_day; - unsigned int play_count; - unsigned int length; - - string length_str; - string title; - string title_lower; - string filepath; - }; - - File << library_id << artist_id << album_id << genre_id; - File << track << last_year << last_month << last_day << play_count; - File << length << length_str << endl - File << title << endl; - File << filepath << endl; - -- Song: - struct Song { - library :: Album *album; - library :: AGInfo *artist; - library :: AGInfo *genre; - library :: Library *library; - library :: Track *track; - }; - - Databases: Database album_db(album.db); - Database artist_db(artist.db); - Database genre_db(genre.db); + Database artist_db(artist.db); + Database genre_db(genre.db); Database library_db(library.db); Database track_db(track.db); @@ -751,14 +857,50 @@ Library: (lib/library.cpp) Call this function to import an Ocarina 5.11 style library, following the "Importing" section above. -#ifdef CONFIG_TEST - void library :: print_db(DB_Type); - Print the database corresponding to DB_Type - void library :: reset(); - Clear all databases, returning the library to an empty state. -endif /* CONFIG_TEST */ +Playlists: (lib/playlist.cpp) + Playlists are a new feature in Ocarina 6 and are modeled after Gmail + labels. Ocarina 6.0 will support two different playlists that the + user can add tracks to: banned and favorites. + + Future releases will add support for more playlists. + +- Database: + Database playlist_db + +- Default playlists: + Favorites: + The user will add music they really like to this playlist. + + Banned: + The user should add music they do not like to this playlist. + Tracks should be removed from the Library playqueue when they + are banned and added back to the playqueue when they are + un-banned. + +- API + void playlist :: init(): + Load the playlist database. + + void playlist :: add(name, track_id); + Add the track_id to the playlist named "name". Save the + database to disk. + Throw -EEXIST if "name" does not exist. + + void playlist :: del(name, track_id); + Remove the track_id from the playlist named "name". Save the + database to disk. Attempting to remove a track_id that does + not exist is not an error. + Throw -EEXIST if "name" does not exist. + + const std::set &playlist :: get_tracks(name); + Return the set of tracks representing the requested group. + Throw -EEXIST if "name" does not exist. + + void playlist :: clear(); + This function only exists if CONFIG_TEST is enabled. Clear + (reset) the playlist database. From 89fd79e07910d0aef7c4944519843e2a0ee2c639 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sat, 22 Mar 2014 10:01:14 -0400 Subject: [PATCH 03/93] Database: Improve on the insert() return value Rather than returning an index into the database, instead return an iterator pointing at the item we just inserted. Signed-off-by: Anna Schumaker --- DESIGN | 8 ++++---- TODO | 1 + include/database.h | 2 +- include/database.hpp | 20 ++++++++------------ lib/index.cpp | 2 +- lib/library.cpp | 20 ++++++++++---------- tests/src/database.cpp | 6 +++--- 7 files changed, 28 insertions(+), 31 deletions(-) diff --git a/DESIGN b/DESIGN index 65a00db5..bb852fb6 100644 --- a/DESIGN +++ b/DESIGN @@ -280,7 +280,7 @@ Database: void save(); void load(); - unsigned int insert(T); + iterator insert(T); void remove(unsigned int); unsigned int size(); unsigned int actual_size(); @@ -311,10 +311,10 @@ Database: void Database :: load(); Load the database from disk. - unsigned int Database :: insert(T &item); + iterator Database :: insert(T &item); Look up the item in the _keys map. If we find an item with the same key: - - Return the index of the item to the caller. + - Return an iterator to the found item. Otherwise: - Add the new item to the end of the _db. - Add the new item to _keys. @@ -322,7 +322,7 @@ Database: - Set item.id to the index of the new item. _ Increment _size. - If autosave == true: save(). - - Return item.id. + - Return an iterator to the new item. unsigned int Database :: remove(); - Remove the item from the _keys map. diff --git a/TODO b/TODO index 073916f7..3798032e 100644 --- a/TODO +++ b/TODO @@ -96,3 +96,4 @@ Future work: - Investigate "Bulk insert" callbacks for performance - Initialize PQs with multiple flags - Prefill Song structures in each library :: Track + - Use "friend" class for valid and id flags of a DatabaseEntry diff --git a/include/database.h b/include/database.h index a0c5f55d..850cf82d 100644 --- a/include/database.h +++ b/include/database.h @@ -43,7 +43,7 @@ public: void autosave(); void load(); - unsigned int insert(T); + iterator insert(T); void remove(unsigned int); unsigned int size(); unsigned int actual_size(); diff --git a/include/database.hpp b/include/database.hpp index fad06e44..84e1e8b5 100644 --- a/include/database.hpp +++ b/include/database.hpp @@ -72,25 +72,21 @@ void Database :: load() } template -unsigned int Database :: insert(T val) +typename Database::iterator Database :: insert(T val) { - unsigned int id; iterator it = find(val.primary_key()); if (it != end()) - return it - _db.begin(); + return it; - /* - * Check primary key stuff here - */ - id = _db.size(); - _db.push_back(val); - _keys[val.primary_key()] = id; - _db[id].valid = true; - _db[id].id = id; + it = _db.insert(_db.end(), val); + it->valid = true; + it->id = it - _db.begin(); + + _keys[it->primary_key()] = it->id; _size++; autosave(); - return id; + return it; } template diff --git a/lib/index.cpp b/lib/index.cpp index d1842b0d..e67cf877 100644 --- a/lib/index.cpp +++ b/lib/index.cpp @@ -53,7 +53,7 @@ void Index :: insert(const std::string &key, unsigned int val) { iterator it = find(key); if (it == end()) - it = at(Database :: insert(IndexEntry(key))); + it = Database :: insert(IndexEntry(key)); it->insert(val); autosave(); diff --git a/lib/library.cpp b/lib/library.cpp index 21486822..bd3f251a 100644 --- a/lib/library.cpp +++ b/lib/library.cpp @@ -276,11 +276,11 @@ static void read_tags(unsigned int lib_id, const std :: string &path) audio = ref.audioProperties(); - artist_id = artist_db.insert(library :: AGInfo(library :: DB_ARTIST, tag)); - album_id = album_db.insert(library :: Album(tag, artist_id)); - genre_id = genre_db.insert(library :: AGInfo(library :: DB_GENRE, tag)); + artist_id = artist_db.insert(library :: AGInfo(library :: DB_ARTIST, tag))->id; + album_id = album_db.insert(library :: Album(tag, artist_id))->id; + genre_id = genre_db.insert(library :: AGInfo(library :: DB_GENRE, tag))->id; track_id = track_db.insert(library :: Track(tag, audio, lib_id, - artist_id, album_id, genre_id, path)); + artist_id, album_id, genre_id, path))->id; if (track_db.at(track_id)->valid == false) return; @@ -400,11 +400,11 @@ static void do_import_track(File &f, unsigned int lib_id) f >> tmp >> tmp >>tmp >> banned; /* bitrate, sample, channels, banned */ f.getline(); /* get rest of line */ - artist_id = artist_db.insert(library :: AGInfo(library :: DB_ARTIST, artist)); - album_id = album_db.insert(library :: Album(album, year, artist_id)); - genre_id = genre_db.insert(library :: AGInfo(library :: DB_GENRE, genre)); + artist_id = artist_db.insert(library :: AGInfo(library :: DB_ARTIST, artist))->id; + album_id = album_db.insert(library :: Album(album, year, artist_id))->id; + genre_id = genre_db.insert(library :: AGInfo(library :: DB_GENRE, genre))->id; track_id = track_db.insert(library :: Track(&data, lib_id, artist_id, - album_id, genre_id)); + album_id, genre_id))->id; library_db.at(lib_id)->size++; filter::add(artist_db.at(artist_id)->name, track_id); @@ -440,7 +440,7 @@ static void do_import_library(std::string &s) return; } print("Adding path: %s\n", path.c_str()); - id = library_db.insert(library :: Library(path, enabled)); + id = library_db.insert(library :: Library(path, enabled))->id; get_callbacks()->on_library_add(id, &(*library_db.at(id))); library_db.save(); @@ -490,7 +490,7 @@ void library :: add_path(const std::string &dir) if (library_db.find(dir) != library_db.end()) return; - id = library_db.insert(library :: Library(dir, true)); + id = library_db.insert(library :: Library(dir, true))->id; library_db.save(); get_callbacks()->on_library_add(id, &(*library_db.at(id))); diff --git a/tests/src/database.cpp b/tests/src/database.cpp index b99bfb84..4d32a46b 100644 --- a/tests/src/database.cpp +++ b/tests/src/database.cpp @@ -85,7 +85,7 @@ int main(int argc, char **argv) * 1: Test insertion */ for (unsigned int i = 0; i < n; i++) { - if (db.insert(IntEntry(i)) != i) + if (db.insert(IntEntry(i))->id != i) test_results(false, __LINE__); } test_results(true, __LINE__); @@ -103,7 +103,7 @@ int main(int argc, char **argv) * 3: Test inserting ... again. */ for (unsigned int i = 0; i < n; i++) { - if (db.insert(IntEntry(i)) != i) + if (db.insert(IntEntry(i))->id != i) test_results(false, __LINE__); } test_results(true, __LINE__); @@ -169,7 +169,7 @@ int main(int argc, char **argv) * 9. Test inserting once again */ for (unsigned int i = 0; i < n; i++) { - index = db.insert(i); + index = db.insert(i)->id; if ((i % 2) == 0) { size++; actual++; From 0fee94f76a006e97dfdb22aca75cc2803e2c1de1 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sat, 22 Mar 2014 10:52:28 -0400 Subject: [PATCH 04/93] tagdb: Add information about tag database layer This layer will be separate from the library updating code. This will give me a place to manage the various databases without extra code to scan and update paths. Signed-off-by: Anna Schumaker --- DESIGN | 142 +++++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 108 insertions(+), 34 deletions(-) diff --git a/DESIGN b/DESIGN index bb852fb6..a803662b 100644 --- a/DESIGN +++ b/DESIGN @@ -528,6 +528,75 @@ Idle queue: +Tag Database: + The tag database is actually several databases that describe every + track added by the user. I do not expect the artist_db, album_db, + genre_db and library_db to change often, so they can be created as + autosaving databases that will write to disk whenever they are changed. + The track_db can have several additions and removals in a row, so the + commit() function is used to control when this db is written to disk, + avoiding the huge performance hit that would come with saving on EVERY + change. + + Tags are defined in the sections below. + +- Import data: + struct ImportData { + std::string filepath; + unsigned int last_day; + unsigned int last_month; + unsigned int last_year; + unsigned int count; + }; + +- Databases: + Database artist_db; + Database album_db; + Database genre_db; + Database library_db; + Database track_db; + +- API: + void tagdb :: init(); + Load all databases from disk. + + void tagdb :: commit(); + Write track_db to disk. + + Track *tagdb :: add_track(const std::string &filepath, Library *library); + Add a new track to the track_db and return a pointer to it. + Return NULL if this track is already in the database. + + Check the database size both before and after to see if a new + track has been added. + + Track *tagdb :: import_track(const std::string &filepath, + Library *library, ImportData *import); + Use add_track() to add a new track to the database. If the + return values != NULL, then use the import information to set + last played variables. + + Library *tagdb :: add_library(const std::string &filepath); + Add a new path to library_db and return its library_id. + + void tagdb :: remove_track(unsigned int track_id); + Remove the track with id equal to track_id from the track_db. + + void tagdb :: remove_library(unsigned int library_id); + Remove the library with id equal to library_id from the + library_db. + + Track *tagdb :: lookup(unsigned int track_id); + Look up the track_id in the track database. + + const Database &tagdb :: get_track_db(); + Return a reference to the track_db. + + const Database &tagdb :: get_library_db(); + Return a reference to the library_db. + + + Artist Tag: The arist tag is used to collect basic information about the various artists that have been added to the library. @@ -553,7 +622,7 @@ Artist Tag: Initialize an invalid Artist instance. Artist(const std::string &artist_name); - Use artist_name to set name and lower. + Set artist_name and add to the filter. const std::string Artist :: primary_key(); Use artist name as primary key. @@ -572,35 +641,33 @@ Album Tag: - Album: class Album : public DatabaseEntry { public: - std::string name; - std::string lower; + std::string name; + std::string lower; unsigned int year; - unsigned int artist_id; Album(); - Album(const std::string &, unsigned int, unsigned int); + Album(const std::string &, unsigned int); const std::string primary_key(); void read(File &); void write(File &); }; - File Format: - File << artist_id << year << name; + File << year << name; - API: Album(); Initialize an invalid Album instance. - Album(const std::string &album_name, unsigned int album_year, - unsigned int album_artist); - Set name from album name and find the lowercased form. - Set year from album_year and artist_id from album_artist. + Album(const std::string &album_name, unsigned int album_year); + Set name and year from album name and album_year. Add album + name to the filter. const std::string Album :: primary_key(); - Return the string: "$name.$year.$artist_id" + Return the string: "$year.$name" void Album :: read(File &f); - Read artist_id, year, and name from file. Then add album name + Read year, and name from file. Then add album name to the filter. void Artist :: write(File &f); @@ -633,7 +700,7 @@ Genre Tag: Initialize an invalid Genre instance. Genre(const std::string &genre_name); - Use genre_name to set genre and lower. + Set genre from genre name and add to the filter. const std::string Genre :: primary_key(); Use genre as primary key. @@ -649,12 +716,13 @@ Genre Tag: Library Tag: The library tag is used to store a single directory added to Ocarina by the user. It is not an ID3 tag, and is instead something I use - internally to keep track of paths added by the user. + internally to keep track of paths added by the user. The count field + will be managed by the Track tag class. - Library: - class library :: Library : public DatabaseEntry { + class Library : public DatabaseEntry { public: - string root_path; /* primary_key */ + std::string root_path; unsigned int count; bool enabled; @@ -675,12 +743,13 @@ Library Tag: Library(const std::string &path); Set root_path from the provided path. Set enabled = true. + Set count = 0. const std::string Library :: primary_key(); Use root_path as the primary key, void read(File &f); - Read a library path from file. + Read a library path from file, set count = 0. void write(File &f); Write a library path to file. @@ -712,18 +781,17 @@ Track Tag: std :: string length_str; Track(); - Track(Library *, Artist *, Album *, Genre *, unsigned int, - unsigned int, const std::string &, const std::string &); + Track(Library *, const std::string &); const std::string primary_key(); const std::string path(); + void tag(); void read(File &); void write(File &); }; - File Format: - File << library->id << artist->id << album->id << genre->id; - File << track << last_year << last_month << last_day << play_count; - File << length << length_str << endl + File << library->id << artist->id << album->id << genre->id << track; + File << last_year << last_month << last_day << play_count << length; File << title << endl; File << filepath << endl; @@ -731,16 +799,13 @@ Track Tag: Track(); Initialize an invalid Track instance. - Track(Library *lib, Artist *art, Album *alb, Genre *gen, - unsigned int track, unsigned int length, - const std::string &track_title, const std::string &full_path); - - Set Library, Artist, Album and Genre pointers. - - Set track and length variables. - - Set play_count, last_year, last_month and last_day = 0. - - Set title from track_title. - - Strip library path from prams.full_path and use the result to - set filepath. - - Set lowercase title and find the string form of length. + Track(const std::string &full_path, Library *lib); + This function will only set up the primary key, and the tag() + function must be called to find audio tags. + + - Strip library path from the beginning of full_path and use + the result to set filepath. + - Set library = lib. const std::string Track :: primary_key(); return path(); @@ -749,10 +814,19 @@ Track Tag: Combine library->path and filepath to find the full path to the audio file. + void Track :: tag(); + Use TagLib to find tags and audio properties for this file. + + - Insert Artist, Album, and Genre into their databases and + set the corresponding pointers. + - Find title, track number, and length. + - Set play_count, last_year, last_month and last_day = 0. + - Set lowercase title and find the string form of length. + void read(File &f); Read track information from file. Look up the corresponding - Library, Artist, Album and Genre pointers and add title to - the filter. + Library, Artist, Album and Genre pointers. Add title to the + filter and find the string version of length. void write(File &f); Write track information to file. From d61dbae47f8276611407f29170ab43a187f5a939 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sat, 22 Mar 2014 20:06:36 -0400 Subject: [PATCH 05/93] Add more to the Track tag design Signed-off-by: Anna Schumaker --- DESIGN | 42 +++++++++++++++++++++++++++++++----------- 1 file changed, 31 insertions(+), 11 deletions(-) diff --git a/DESIGN b/DESIGN index a803662b..575fc09d 100644 --- a/DESIGN +++ b/DESIGN @@ -760,6 +760,19 @@ Track Tag: The track tag is used to store information about a single track in the user's music collection. +- Sorting: + enum sort_t { + SORT_ARTIST, + SORT_ALBUM, + SORT_COUNT, + SORT_GENRE, + SORT_LENGTH, + SORT_PLAYED, + SORT_TITLE, + SORT_TRACK, + SORT_YEAR, + }; + - Track: class Track : public DatabaseEntry { public: @@ -783,10 +796,12 @@ Track Tag: Track(); Track(Library *, const std::string &); const std::string primary_key(); - const std::string path(); - void tag(); void read(File &); void write(File &); + + void tag(); + const std::string path(); + bool less_than(Track *rhs, sort_t field); }; - File Format: @@ -810,9 +825,13 @@ Track Tag: const std::string Track :: primary_key(); return path(); - const std::string Track :: path(); - Combine library->path and filepath to find the full path to - the audio file. + void read(File &f); + Read track information from file. Look up the corresponding + Library, Artist, Album and Genre pointers. Add title to the + filter and find the string version of length. + + void write(File &f); + Write track information to file. void Track :: tag(); Use TagLib to find tags and audio properties for this file. @@ -823,13 +842,14 @@ Track Tag: - Set play_count, last_year, last_month and last_day = 0. - Set lowercase title and find the string form of length. - void read(File &f); - Read track information from file. Look up the corresponding - Library, Artist, Album and Genre pointers. Add title to the - filter and find the string version of length. + const std::string Track :: path(); + Combine library->path and filepath to find the full path to + the audio file. - void write(File &f); - Write track information to file. + bool Track :: less_than(Track *rhs, sort_t field); + Compare the requested field for this Track instance to the same + field in the provided track. Return true if we find that this + instance is less than rhs and false otherwise. From 134348f2534ee64ef5b32c1f7e15aca377b094e0 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sat, 22 Mar 2014 21:44:51 -0400 Subject: [PATCH 06/93] tags: Begin creating the tag database This patch adds classes for Artist, Album, Genre and Library. Signed-off-by: Anna Schumaker --- DESIGN | 22 ++++---- include/tags.h | 63 +++++++++++++++++++++ lib/tags.cpp | 137 ++++++++++++++++++++++++++++++++++++++++++++ tests/Sconscript | 3 +- tests/src/tags.cpp | 138 +++++++++++++++++++++++++++++++++++++++++++++ tests/tag_db | 18 ++++++ 6 files changed, 370 insertions(+), 11 deletions(-) create mode 100644 include/tags.h create mode 100644 lib/tags.cpp create mode 100644 tests/src/tags.cpp create mode 100755 tests/tag_db diff --git a/DESIGN b/DESIGN index 575fc09d..7d813719 100644 --- a/DESIGN +++ b/DESIGN @@ -622,13 +622,13 @@ Artist Tag: Initialize an invalid Artist instance. Artist(const std::string &artist_name); - Set artist_name and add to the filter. + Set artist_name and find the lowercase form. const std::string Artist :: primary_key(); Use artist name as primary key. void Artist :: read(File &f); - Read artist name from file and add to the filter. + Read artist name from file and find the lowercase form. void Artist :: write(File &f); Write artist name to file. @@ -660,15 +660,15 @@ Album Tag: Initialize an invalid Album instance. Album(const std::string &album_name, unsigned int album_year); - Set name and year from album name and album_year. Add album - name to the filter. + Set name and year from album name and album_year. Find the + lowercase form of the album name. const std::string Album :: primary_key(); Return the string: "$year.$name" void Album :: read(File &f); - Read year, and name from file. Then add album name - to the filter. + Read year, and name from file. Then set the lowercase form + of the album name. void Artist :: write(File &f); Write album information to file. @@ -700,13 +700,13 @@ Genre Tag: Initialize an invalid Genre instance. Genre(const std::string &genre_name); - Set genre from genre name and add to the filter. + Set genre from genre name and find the lowercase form. const std::string Genre :: primary_key(); Use genre as primary key. void Genre :: read(File &f); - Read genre from file and add to the filter. + Read genre from file and find the lowercase form. void Genre :: write(File &f); Write genre to file. @@ -739,17 +739,19 @@ Library Tag: - API: Library(); Initialize an invalid Library instance. + Set count = 0. + Set enabled = false. Library(const std::string &path); Set root_path from the provided path. - Set enabled = true. Set count = 0. + Set enabled = true. const std::string Library :: primary_key(); Use root_path as the primary key, void read(File &f); - Read a library path from file, set count = 0. + Read a library path from file. void write(File &f); Write a library path to file. diff --git a/include/tags.h b/include/tags.h new file mode 100644 index 00000000..1aba8396 --- /dev/null +++ b/include/tags.h @@ -0,0 +1,63 @@ +/* + * Copyright 2014 (c) Anna Schumaker. + */ +#ifndef OCARINA_TAGS_H +#define OCARINA_TAGS_H + +#include + + +class Artist : public DatabaseEntry { +public: + std::string name; + std::string lower; + + Artist(); + Artist(const std::string &); + const std::string primary_key(); + void read(File &); + void write(File &); +}; + + +class Album : public DatabaseEntry { +public: + std::string name; + std::string lower; + unsigned int year; + + Album(); + Album(const std::string &, unsigned int); + const std::string primary_key(); + void read(File &); + void write(File &); +}; + + +class Genre : public DatabaseEntry { +public: + std::string name; + std::string lower; + + Genre(); + Genre(const std::string &); + const std::string primary_key(); + void read(File &); + void write(File &); +}; + + +class Library : public DatabaseEntry { +public: + std::string root_path; + unsigned int count; + bool enabled; + + Library(); + Library(const std::string &); + const std::string primary_key(); + void read(File &); + void write(File &); +}; + +#endif /* OCARINA_TAGS_H */ diff --git a/lib/tags.cpp b/lib/tags.cpp new file mode 100644 index 00000000..b80b3f6d --- /dev/null +++ b/lib/tags.cpp @@ -0,0 +1,137 @@ +/* + * Copyright 2014 (c) Anna Schumaker. + */ + +#include +#include + +#include + + +/** + * + * Artist tag + * + */ + +Artist :: Artist() {} + +Artist :: Artist(const std::string &s) + : name(s), lower(filter :: lowercase(name)) +{ +} + +const std::string Artist :: primary_key() +{ + return name; +} + +void Artist :: read(File &f) +{ + name = f.getline(); + lower = filter :: lowercase(name); +} + +void Artist :: write(File &f) +{ + f << name; +} + + + +/** + * + * Album tag + * + */ + +Album :: Album() {} + +Album :: Album(const std::string &s, unsigned int y) + : name(s), lower(filter :: lowercase(name)), year(y) +{ +} + +const std::string Album :: primary_key() +{ + std::stringstream ss; + ss << year << "." << name; + return ss.str(); +} + +void Album :: read(File &f) +{ + f >> year; + name = f.getline(); + lower = filter :: lowercase(name); +} + +void Album :: write(File &f) +{ + f << year << " " << name; +} + + + +/** + * + * Genre tag + * + */ + +Genre :: Genre() {} + +Genre :: Genre(const std::string &s) + : name(s), lower(filter :: lowercase(name)) +{ +} + +const std::string Genre :: primary_key() +{ + return name; +} + +void Genre :: read(File &f) +{ + name = f.getline(); + lower = filter :: lowercase(name); +} + +void Genre :: write(File &f) +{ + f << name; +} + + + +/** + * + * Library tag + * + */ + +Library :: Library() + : count(0), enabled(false) +{ +} + +Library :: Library(const std::string &s) + : root_path(s), count(0), enabled(true) +{ +} + +const std::string Library :: primary_key() +{ + return root_path; +} + +void Library :: read(File &f) +{ + f >> enabled; + root_path = f.getline(); +} + +void Library :: write(File &f) +{ + f << enabled << " " << root_path; +} diff --git a/tests/Sconscript b/tests/Sconscript index 25fbea6c..887c4420 100644 --- a/tests/Sconscript +++ b/tests/Sconscript @@ -8,7 +8,8 @@ if sys.argv.count("tests") > 0: src = SConscript("src/Sconscript") -tests = [ "version", "file", "db_entry", "database", "index", "filter", "idle" ] +tests = [ "version", "file", "db_entry", "database", "index", + "filter", "idle", "tag_db" ] #scripts = [ "playlist", "library", "playqueue", "deck", "audio", "gui" ] prev = None diff --git a/tests/src/tags.cpp b/tests/src/tags.cpp new file mode 100644 index 00000000..e330a6d2 --- /dev/null +++ b/tests/src/tags.cpp @@ -0,0 +1,138 @@ +/* + * Copyright 2014 (c) Anna Schumaker. + * Test a DatabaseEntry + */ + +#include +#include + +#include +#include + + +unsigned int test_num = 0; + +void test_results(bool success, unsigned int line) +{ + print(" %u: ", test_num); + if (success) + print("Success!\n"); + else { + print("FAILED (%u) =(\n", line); + exit(1); + } + test_num++; +} + +template +void save_tag(const std::string &file, T &tag) +{ + File f(file, FILE_TYPE_DATA); + f.open(OPEN_WRITE); + tag.write(f); + f.close(); +} + +template +void load_tag(const std::string &file, T &tag) +{ + File f(file, FILE_TYPE_DATA); + f.open(OPEN_READ); + tag.read(f); + f.close(); +} + +void artist_test_tags(Artist &artist) +{ + test_results(artist.name == "Artist Name", __LINE__); + test_results(artist.lower == "artist name", __LINE__); + test_results(artist.primary_key() == "Artist Name", __LINE__); +} + +void artist_test() +{ + Artist artist("Artist Name"), artist2; + + artist_test_tags(artist); + save_tag("artist.txt", artist); + load_tag("artist.txt", artist2); + artist_test_tags(artist2); +} + +void album_test_tags(Album &album) +{ + test_results(album.name == "Album Name", __LINE__); + test_results(album.lower == "album name", __LINE__); + test_results(album.year == 2014, __LINE__); + test_results(album.primary_key() == "2014.Album Name", __LINE__); +} + +void album_test() +{ + Album album("Album Name", 2014), album2; + + album_test_tags(album); + save_tag("album.txt", album); + load_tag("album.txt", album2); + album_test_tags(album2); +} + +void genre_test_tags(Genre &genre) +{ + test_results(genre.name == "Genre Name", __LINE__); + test_results(genre.lower == "genre name", __LINE__); + test_results(genre.primary_key() == "Genre Name", __LINE__); +} + +void genre_test() +{ + Genre genre("Genre Name"), genre2; + + genre_test_tags(genre); + save_tag("genre.txt", genre); + load_tag("genre.txt", genre2); + genre_test_tags(genre2); +} + +void library_test_tags(Library &library) +{ + test_results(library.root_path == "/home/user/Music", __LINE__); + test_results(library.count == 0, __LINE__); + test_results(library.enabled == true, __LINE__); + test_results(library.primary_key() == "/home/user/Music", __LINE__); +} + +void library_test() +{ + Library library("/home/user/Music"), library2; + + library_test_tags(library); + test_results(library2.enabled == false, __LINE__); + save_tag("library.txt", library); + load_tag("library.txt", library2); + library_test_tags(library2); +} + +int main(int argc, char **argv) +{ + char c; + + while ((c = getopt(argc, argv, "aAgl")) != -1) { + switch (c) { + case 'a': + artist_test(); + break; + case 'A': + album_test(); + break; + case 'g': + genre_test(); + break; + case 'l': + library_test(); + break; + } + } + + return 0; +} diff --git a/tests/tag_db b/tests/tag_db new file mode 100755 index 00000000..007945b9 --- /dev/null +++ b/tests/tag_db @@ -0,0 +1,18 @@ +#!/bin/bash +# Copyright 2014 (c) Anna Schumaker + +. $(dirname $0)/_functions + +function test_tag +{ + new_test "Test $1 Tag" + ./src/tags.run "$2" +} + +test_tag "Artist" "-a" +echo +test_tag "Album" "-A" +echo +test_tag "Genre" "-g" +echo +test_tag "Library" "-l" From 5d97c84d104a2d1d7998b57bbdf9ad5d8267816f Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sat, 22 Mar 2014 23:02:04 -0400 Subject: [PATCH 07/93] tagdb: Begin the Track class I properly initialize variables, and I created supporting databases that will be used to look up artist, album, genre and library information. Signed-off-by: Anna Schumaker --- DESIGN | 4 +-- include/tags.h | 51 ++++++++++++++++++++++++++++++++++++ lib/tags.cpp | 63 +++++++++++++++++++++++++++++++++++++++++++++ tests/Music/1.ogg | Bin 0 -> 4146 bytes tests/src/tags.cpp | 30 ++++++++++++++++++++- tests/tag_db | 2 ++ 6 files changed, 147 insertions(+), 3 deletions(-) create mode 100644 tests/Music/1.ogg diff --git a/DESIGN b/DESIGN index 7d813719..8122a01c 100644 --- a/DESIGN +++ b/DESIGN @@ -796,14 +796,14 @@ Track Tag: std :: string length_str; Track(); - Track(Library *, const std::string &); + Track(const std::string &, Library *); const std::string primary_key(); void read(File &); void write(File &); void tag(); const std::string path(); - bool less_than(Track *rhs, sort_t field); + bool less_than(Track *, sort_t); }; - File Format: diff --git a/include/tags.h b/include/tags.h index 1aba8396..c9175eee 100644 --- a/include/tags.h +++ b/include/tags.h @@ -7,6 +7,19 @@ #include +enum sort_t { + SORT_ARTIST, + SORT_ALBUM, + SORT_COUNT, + SORT_GENRE, + SORT_LENGTH, + SORT_PLAYED, + SORT_TITLE, + SORT_TRACK, + SORT_YEAR, +}; + + class Artist : public DatabaseEntry { public: std::string name; @@ -60,4 +73,42 @@ public: void write(File &); }; + +class Track : public DatabaseEntry { +public: + Library *library; + Artist *artist; + Album *album; + Genre *genre; + + unsigned int track; + unsigned int length; + unsigned int play_count; + unsigned int last_year; + unsigned int last_month; + unsigned int last_day; + + std :: string title; + std :: string title_lower; + std :: string filepath; + std :: string length_str; + + Track(); + Track(const std::string &, Library *); + const std::string primary_key(); + void read(File &); + void write(File &); + + void tag(); + const std::string path(); + bool less_than(Track *, sort_t); +}; + + +namespace tagdb { + + Library *add_library(const std::string &); + +} + #endif /* OCARINA_TAGS_H */ diff --git a/lib/tags.cpp b/lib/tags.cpp index b80b3f6d..c5d43711 100644 --- a/lib/tags.cpp +++ b/lib/tags.cpp @@ -8,6 +8,12 @@ #include +Database artist_db("artist.db", true); +Database album_db("album.db", true); +Database genre_db("genre.db", true); +Database library_db("library.db", true); + + /** * * Artist tag @@ -135,3 +141,60 @@ void Library :: write(File &f) { f << enabled << " " << root_path; } + + + +/** + * + * Track tag + * + */ + +Track :: Track() {} + +Track :: Track(const std::string &f, Library *l) + : library(l), play_count(0), last_year(0), last_month(0), last_day(0), + filepath(f.substr(l->root_path.size() + 1)) +{ +} + +const std::string Track :: primary_key() +{ + return path(); +} + +void Track :: read(File &f) +{ +} + +void Track :: write(File &f) +{ +} + +void Track :: tag() +{ +} + +const std::string Track :: path() +{ + return library->root_path + "/" + filepath; +} + +bool Track :: less_than(Track *rhs, sort_t field) +{ + return false; +} + + + +/** + * + * Tagdb functions + * + */ + +Library *tagdb :: add_library(const std::string &filepath) +{ + Database::iterator it = library_db.insert(Library(filepath)); + return &(*it); +} diff --git a/tests/Music/1.ogg b/tests/Music/1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..b869165de0c947d841019a3a1d094276ba720af7 GIT binary patch literal 4146 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 literal 0 HcmV?d00001 diff --git a/tests/src/tags.cpp b/tests/src/tags.cpp index e330a6d2..9dfcf266 100644 --- a/tests/src/tags.cpp +++ b/tests/src/tags.cpp @@ -42,6 +42,7 @@ void load_tag(const std::string &file, T &tag) f.close(); } + void artist_test_tags(Artist &artist) { test_results(artist.name == "Artist Name", __LINE__); @@ -59,6 +60,7 @@ void artist_test() artist_test_tags(artist2); } + void album_test_tags(Album &album) { test_results(album.name == "Album Name", __LINE__); @@ -77,6 +79,7 @@ void album_test() album_test_tags(album2); } + void genre_test_tags(Genre &genre) { test_results(genre.name == "Genre Name", __LINE__); @@ -94,6 +97,7 @@ void genre_test() genre_test_tags(genre2); } + void library_test_tags(Library &library) { test_results(library.root_path == "/home/user/Music", __LINE__); @@ -113,11 +117,32 @@ void library_test() library_test_tags(library2); } + +void track_test_tags(Track &track) +{ + test_results(track.filepath == "1.ogg", __LINE__); + test_results(track.path() == "Music/1.ogg", __LINE__); + test_results(track.primary_key() == "Music/1.ogg", __LINE__); + test_results(track.play_count == 0, __LINE__); + test_results(track.last_year == 0, __LINE__); + test_results(track.last_month == 0, __LINE__); + test_results(track.last_day == 0, __LINE__); +} + +void track_test() +{ + Library *library = tagdb :: add_library("Music"); + Track track("Music/1.ogg", library); + + track_test_tags(track); +} + + int main(int argc, char **argv) { char c; - while ((c = getopt(argc, argv, "aAgl")) != -1) { + while ((c = getopt(argc, argv, "aAglt")) != -1) { switch (c) { case 'a': artist_test(); @@ -131,6 +156,9 @@ int main(int argc, char **argv) case 'l': library_test(); break; + case 't': + track_test(); + break; } } diff --git a/tests/tag_db b/tests/tag_db index 007945b9..ffe5cd54 100755 --- a/tests/tag_db +++ b/tests/tag_db @@ -16,3 +16,5 @@ echo test_tag "Genre" "-g" echo test_tag "Library" "-l" +echo +test_tag "Track" "-t" From e2560f3134ed00c946e5c468282c913a82ce5f10 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sun, 23 Mar 2014 14:42:01 -0400 Subject: [PATCH 08/93] tagdb: Add most functions I implemented: - add_track() - remove_track() - add_library() - remove_library() - lookup() - get_track_db() - get_library_db() Signed-off-by: Anna Schumaker --- DESIGN | 14 +++--- include/tags.h | 9 +++- lib/tags.cpp | 50 +++++++++++++++++++++- tests/Music/1.ogg | Bin 4146 -> 4145 bytes tests/Music/10.ogg | Bin 0 -> 4948 bytes tests/Music/15.ogg | Bin 0 -> 5409 bytes tests/Music/60.ogg | Bin 0 -> 9499 bytes tests/Music/600.ogg | Bin 0 -> 58478 bytes tests/Music/666.ogg | Bin 0 -> 64459 bytes tests/Music/90.ogg | Bin 0 -> 12223 bytes tests/src/tagdb.cpp | 101 ++++++++++++++++++++++++++++++++++++++++++++ tests/tag_db | 5 +++ 12 files changed, 170 insertions(+), 9 deletions(-) create mode 100644 tests/Music/10.ogg create mode 100644 tests/Music/15.ogg create mode 100644 tests/Music/60.ogg create mode 100644 tests/Music/600.ogg create mode 100644 tests/Music/666.ogg create mode 100644 tests/Music/90.ogg create mode 100644 tests/src/tagdb.cpp diff --git a/DESIGN b/DESIGN index 8122a01c..15d57a1d 100644 --- a/DESIGN +++ b/DESIGN @@ -577,22 +577,24 @@ Tag Database: last played variables. Library *tagdb :: add_library(const std::string &filepath); - Add a new path to library_db and return its library_id. + Add a new path to library_db. Return a pointer to the new path + or return NULL if the path is already in the database. void tagdb :: remove_track(unsigned int track_id); Remove the track with id equal to track_id from the track_db. void tagdb :: remove_library(unsigned int library_id); - Remove the library with id equal to library_id from the - library_db. + Remove all tracks associated with this library from the + track_db, then remove this library from the library_db. Track *tagdb :: lookup(unsigned int track_id); - Look up the track_id in the track database. + Look up the track_id in the track database. Return NULL if + there is no matching track. - const Database &tagdb :: get_track_db(); + Database &tagdb :: get_track_db(); Return a reference to the track_db. - const Database &tagdb :: get_library_db(); + Database &tagdb :: get_library_db(); Return a reference to the library_db. diff --git a/include/tags.h b/include/tags.h index c9175eee..9e2c8627 100644 --- a/include/tags.h +++ b/include/tags.h @@ -105,9 +105,16 @@ public: }; -namespace tagdb { +namespace tagdb +{ + Track *add_track(const std::string &, Library *); Library *add_library(const std::string &); + void remove_track(unsigned int); + void remove_library(unsigned int); + Track *lookup(unsigned int); + Database &get_track_db(); + Database &get_library_db(); } diff --git a/lib/tags.cpp b/lib/tags.cpp index c5d43711..94b8d47f 100644 --- a/lib/tags.cpp +++ b/lib/tags.cpp @@ -12,6 +12,7 @@ Database artist_db("artist.db", true); Database album_db("album.db", true); Database genre_db("genre.db", true); Database library_db("library.db", true); +Database track_db("track.db", false); /** @@ -193,8 +194,53 @@ bool Track :: less_than(Track *rhs, sort_t field) * */ -Library *tagdb :: add_library(const std::string &filepath) +Track *tagdb :: add_track(const std::string &filepath, Library *library) { - Database::iterator it = library_db.insert(Library(filepath)); + unsigned int size = track_db.size(); + Database::iterator it = track_db.insert(Track(filepath, library)); + if (size == track_db.size()) + return NULL; return &(*it); } + +Library *tagdb :: add_library(const std::string &filepath) +{ + unsigned int size = library_db.size(); + Database::iterator it = library_db.insert(Library(filepath)); + if (size == library_db.size()) + return NULL; + return &(*it); +} + +void tagdb :: remove_track(unsigned int track_id) +{ + track_db.remove(track_id); +} + +void tagdb :: remove_library(unsigned int library_id) +{ + Database::iterator it; + for (it = track_db.begin(); it != track_db.end(); it++) { + if (it->library->id == library_id) + track_db.remove(it->id); + } + library_db.remove(library_id); +} + +Track *tagdb :: lookup(unsigned int track_id) +{ + Database::iterator it = track_db.at(track_id); + if (it == track_db.end()) + return NULL; + return &(*it); +} + +Database &tagdb :: get_track_db() +{ + return track_db; +} + +Database &tagdb :: get_library_db() +{ + return library_db; +} diff --git a/tests/Music/1.ogg b/tests/Music/1.ogg index b869165de0c947d841019a3a1d094276ba720af7..5e94d3694e28b6fa7fe3d301dcc4ee4735e6f6c3 100644 GIT binary patch delta 113 zcmdm_uu)+`0GsN``)&erCWiUOa56A3gm{MdxZ3*XrSbwfjzJ-w!6CMeMJ1WVCEOqZ zAE!`XTgRNF(p->Y7sn7+TO$KQ6F!j6AV+6!zffN%*C1O1Ly&fNSHB=v+u+Qc)V$

n`~cBW9#{YX diff --git a/tests/Music/10.ogg b/tests/Music/10.ogg new file mode 100644 index 0000000000000000000000000000000000000000..6f2e4fcd8a6791cdc26df596689e684516b6c6f9 GIT binary patch literal 4948 zcmd^De^66b_P;3z2}Bwp($J=z7bFWWl3jzLHSRKBh*Hgis5}ysP_`uyH3X<6gx$_} z*`X3xpqL^=7DMdtBS8}ht5m44vt27qKtx28ptU<{t)SA~?ylRq-|5Wud)|w-Zg-~p z_s-tA@8-UH?mg$8b3W(3bF+QVo?P@4dQ^(yKaZli4_dZ!880xZUpH#?CTf7Od4T$X z@-qhgbDFW8TKP?(R#KFoi)$Dh$JhT<&V>XS{Rrs0^!xVyaJz92R;JhH(d;n=ma86hAK0S;z{YEA~QB+ZBr}dnPl3!6l(dF%xz?5TCToKS5d5EtO)K6 zmv72rASRF{*_f|(wpEP~2cg#z@Tm6P3fyJuNqVExww3Dn)-`q7ntZ(C7K#6HgGozP zBNU2ilUUZiMMde1Y!5HdYV4Njw{19zg*WHil(Ei!@q^-u{!{&iiWywUT$#TDf#K7) z3hKEe)o2?94LoRm#Wzk0jyjAHqGR3rBT^=@y6lvD&h~8^?;Y#2ZoHp#YE~X8J~c;V zOXl;62Y(k<_zTmFY{~JcVbOYEuorn)TnR_cq}Vs&{hdZ&6;umDwV)>2a*(Sy$vuCP zf8kQX_P-|Q#H3zYpP8#ts-c(*cUJ2bs?7`4HTj+O1*dEBPuCY*tuK67U&L#8RR3Oc z;~`aP)iDO@UL)(cjrYbs+xv;EH^kB~@DwVcOoFl6;_BC`{~C{pxlm7x`gkm>__6HYaQT99CZf@7*51Le6iKFh$ zF4}`-GjX@Um-y6SU-#izyJ<$jw!4D8H=?`3z3w>}i(7I;`QwUUo_@|A?!LAQ*5=RJ z7mtl{q1R;VN*o?l1^GRKh5M(DnGa;QU`5kMU4~IsA@u&Q#PO#KENbk#@JR>16&t|@ZU-5c=&IUJYmOmg;m|04+|W=CqS)Ei zESgGscRJ;KGSv)>&um;iG0xe*AQvt;Xh8N#44a&9}T*Cp)T9=I^a91#*z^PbC zYerZc9V88%#wq+LM8%Vi`*Xs@RnK2~qF($9KPOrU^-_vBcYT^#rQTUxp8sp}_4n!v zubOWx)ZAD&@ai)S-v!n;k%J&;EOboTv@MbeN8L6#E9l_IkyFW?ILJSDFd=IwK{=Ov z;jhx|52Tl3GIONL+|`AbR+}%!>T+K!yqv1Ltk%s}>#mLH3f`;9A9)lo!LYfpV16QU zs1S*lS#NJ`3;i~7x|6J*Y_P6Tv?b)X{osv`JxzA^;dk!2dn3LRIeVLrb~YbvY+h=# zCN*{Fo9v#^-m@4~m$sxt_Wa>OAR;$v!KVpD7FI8Taf?*FK6o=3naI%HdY;2WRr0rr#786$V z$ijL)H)q!!5WZx^R-WyDMR8{X6OO%5l!H*M zWK!}W&p4wv*S&d0!a8D`lqI^_=M=cOgSQ?R_D2`rcJ$3D&N*$otmY%m=;9_XEJES% zME1*N!XD(4({UT&fpV#%XG#a zN8M~j5<=J+20Zd4X-OvHB%+)95-zq&v$(>nn9Pe@-9n6V;gIx#G&M)1J|Cl=SE;YZ zD%B%GWsFk!HFxT`-eVqnlE>rrjFfu@y#>8@ zJ-wc(p*^0#fvKV293L!O2I}B3&rq_*lYD$=;44q^^2jmIn0IREMAzW)<&n=L$CH=G z_IU;ej}LuDQOCT?{>tUCb-(Dx&-Wj{Kjt1At5_bZoE|CX_j&HWFFJqr#MIE|%VR$} zWftV9&3~{J-rfm%l)w73cM2ZX50(G;_uj9jfWh3~Wfx!PkHWHdE1rWf|AV#vQ?$YA z+GB^Edc0kpSUeEn8(fRj5kmO_k>-^uY z;}>3k5eP?yypc7LnDYBw-Ym|%&U z%MtmoDh_!cbE+g^0@F6a$G7buN(HtnB0r|GDkdH6(ZpWdHb;i{xONbR9$SDkob11% z{Uhd#CG=w3oTk+6zoKbbRm@3Qa+b^}SgunP0az_{JEP=;%gN0m#Cg*I_(&U(4Z9+Ull7#gOcHRAWvQ?$VAV#HiT#>_>|rxU6G`vNJDg`I_4+}$ z(8bFlP7cQ!DkO`~5_&Hs-0h1ku!8VhLu!AZlp++Arv>aL!W+0k9sojd`S0fK|NHr4 z&9$Xse?aS{go{odY6IbmA8A@-wmB`ZY9m`S8K7ij z!56~x_UIRRaO%{Cp!8anuA4eSsIbjwBxe+Qj&WKhV#%jviEd-I9LLqu8BF2uj10$p z0U1;1ip>&qchF%Qrfl*tB394ShzRBSO>~j?#I3AXm1B zqn(!B{se{I4o1+LMaSwwr+*L&pY-9vN zqJ5ANoyaLM?LXKJXXaDr4eHD!WZ^xwmvKL4Ya>A%sN^=X!FIkpieS@xh5Cg1iT!~Yj0+>mFj%7d@9 zpZ6Ryn3caAO}`eGJxbC$gRf8I?B8bZ-`6WJcmZ-xHYok~5#i|T@aOWjY`~w5Or~_? zz*U1c-U&Mnd*0H3-*sBRJw2NUS&|S?g5v-mh-jOJIBX(GkKiEdWxL$zB^R5l!PzI*o4P1@H2NVes)wW*5%3BKs2&?4AO0IDdA z2rS@+;FzWLn=#JDr69BbP)osiwjFXBTFf38!=DF`CDA=0^jN_Jjs~M88d5nMa1M^y zqCp0o-q}bBkzg8%Ktq-8u>_R4=*fcMS}GR=h=x$7@S3{`eN*ve(pzUkcI=%bP%Rsw z%B!WzcwiFqIV>GnmR2K2`@>aavuw*r-PSlCZ{8+xadSz-U5BOb3|CLXl@(*6bsWL^H`5th-XsXJgyN|C#F<&iE1{vEMyEuuBPJ}SIeiG?SSHyA z8+WmzV?1y6YB!=?ue>%HUdujk;M7}@cT>)+DE!!rS+Gz+qmRLDt*wix`1vO*x1aui zwK3Bb6}(|H&|Y}{?_8^0Zr zu(`zI{P5FIAx)+lCNp?d38nkN8+iJcAvB%3fm34M|A(adYsP>C Z-xGu=U{DZwc74~qq5nKw{O39H{{b2*UOfN+ literal 0 HcmV?d00001 diff --git a/tests/Music/15.ogg b/tests/Music/15.ogg new file mode 100644 index 0000000000000000000000000000000000000000..99bb15b73e0c6ce1966e79f418a12c3ab5e846bd GIT binary patch literal 5409 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 E0zy_3!2kdN literal 0 HcmV?d00001 diff --git a/tests/Music/90.ogg b/tests/Music/90.ogg new file mode 100644 index 0000000000000000000000000000000000000000..abeceb9aea961299fed8a2f5fb55950010c13a13 GIT binary patch literal 12223 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 +#include + +#include + +unsigned int test_num = 0; + +void test_results(bool success, unsigned int line) +{ + print(" %u: ", test_num); + if (success) + print("Success!\n"); + else { + print("FAILED (%u) =(\n", line); + exit(1); + } + test_num++; +} + +void test_library_size(unsigned int expected, unsigned int line) +{ + test_results(tagdb :: get_library_db().size() == expected, line); +} + +void test_track_size(unsigned int expected, unsigned int line) +{ + test_results(tagdb :: get_track_db().size() == expected, line); +} + +int main(int argc, char **argv) +{ + /** + * Initial library checks + */ + Library *library = tagdb :: add_library("Music"); + test_results(library->root_path == "Music", __LINE__); + test_library_size(1, __LINE__); + + Library *library_null = tagdb :: add_library("Music"); + test_results(library_null == NULL, __LINE__); + test_library_size(1, __LINE__); + + unsigned int id = library->id; + tagdb :: remove_library(id); + test_library_size(0, __LINE__); + tagdb :: remove_library(id); + test_library_size(0, __LINE__); + + + /** + * Test adding / removing tracks + */ + library = tagdb :: add_library("Music"); + Track *track = tagdb :: add_track("Music/1.ogg", library); + test_track_size(1, __LINE__); + Track *track_null = tagdb :: add_track("Music/1.ogg", library); + test_track_size(1, __LINE__); + + test_results(track->path() == "Music/1.ogg", __LINE__); + test_results(track_null == NULL, __LINE__); + + id = track->id; + tagdb :: remove_track(id); + test_track_size(0, __LINE__); + tagdb :: remove_track(id); + test_track_size(0, __LINE__); + + + /** + * Test adding and removing multiple tracks + */ + tagdb :: add_track("Music/1.ogg", library); + tagdb :: add_track("Music/10.ogg", library); + tagdb :: add_track("Music/15.ogg", library); + tagdb :: add_track("Music/60.ogg", library); + tagdb :: add_track("Music/90.ogg", library); + tagdb :: add_track("Music/600.ogg", library); + tagdb :: add_track("Music/666.ogg", library); + test_track_size(7, __LINE__); + + test_results(tagdb :: lookup(0) == NULL, __LINE__); + test_results(tagdb :: lookup(1)->id == 1, __LINE__); + test_results(tagdb :: lookup(2)->id == 2, __LINE__); + test_results(tagdb :: lookup(3)->id == 3, __LINE__); + test_results(tagdb :: lookup(4)->id == 4, __LINE__); + test_results(tagdb :: lookup(5)->id == 5, __LINE__); + test_results(tagdb :: lookup(6)->id == 6, __LINE__); + test_results(tagdb :: lookup(7)->id == 7, __LINE__); + test_results(tagdb :: lookup(8) == NULL, __LINE__); + + + tagdb :: remove_library(library->id); + test_track_size(0, __LINE__); + + return 0; +} diff --git a/tests/tag_db b/tests/tag_db index ffe5cd54..2e29ff50 100755 --- a/tests/tag_db +++ b/tests/tag_db @@ -18,3 +18,8 @@ echo test_tag "Library" "-l" echo test_tag "Track" "-t" + + +echo +new_test "Test TagDB" +./src/tagdb.run From 38990748bbaf31bba80d49d94d206d7cd1523794 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Mon, 24 Mar 2014 19:51:13 -0400 Subject: [PATCH 09/93] database: Return pointers for insert() at() and find() This gives me the item directly, which is usually what I want when I call these functions. Save iterators for iterating. Signed-off-by: Anna Schumaker --- DESIGN | 20 ++++++++++---------- include/database.h | 6 +++--- include/database.hpp | 26 +++++++++++++------------- lib/filter.cpp | 2 +- lib/index.cpp | 8 ++++---- lib/library.cpp | 6 +++--- lib/playlist.cpp | 4 ++-- lib/tags.cpp | 13 +++++-------- tests/src/database.cpp | 6 +++--- tests/src/index.cpp | 4 ++-- tests/src/tagdb.cpp | 28 ++++++++++++++-------------- 11 files changed, 60 insertions(+), 63 deletions(-) diff --git a/DESIGN b/DESIGN index 15d57a1d..25bec4d7 100644 --- a/DESIGN +++ b/DESIGN @@ -280,7 +280,7 @@ Database: void save(); void load(); - iterator insert(T); + T *insert(T); void remove(unsigned int); unsigned int size(); unsigned int actual_size(); @@ -289,8 +289,8 @@ Database: iterator end(); iterator next(iterator &); - iterator at(unsigned int); - iterator find(const std::string &); + T *at(unsigned int); + T *find(const std::string &); }; - File format: @@ -311,7 +311,7 @@ Database: void Database :: load(); Load the database from disk. - iterator Database :: insert(T &item); + T *Database :: insert(T &item); Look up the item in the _keys map. If we find an item with the same key: - Return an iterator to the found item. @@ -350,17 +350,17 @@ Database: Return the next DatabaseEntry with valid == true or _db.end() if there are no valid entries left. - iterator Database :: at(unsigned int i); + T *Database :: at(unsigned int i); If _db[i].valid == true: - Return an iterator pointing to _db[i]; + Return a pointer to _db[i]; Otherwise: - Return _db.end(); + Return NULL; - iterator Database :: find(const std::string &key); + T *Database :: find(const std::string &key); If key is in the _keys map: - Return an iterator pointing to the corresponding entry. + Return a pointer to the corresponding entry. Otherwise: - Return _db.end(); + Return NULL; diff --git a/include/database.h b/include/database.h index 850cf82d..845f4967 100644 --- a/include/database.h +++ b/include/database.h @@ -43,7 +43,7 @@ public: void autosave(); void load(); - iterator insert(T); + T *insert(T); void remove(unsigned int); unsigned int size(); unsigned int actual_size(); @@ -52,8 +52,8 @@ public: iterator end(); iterator next(iterator &); - iterator at(unsigned int); - iterator find(const std::string &); + T *at(unsigned int); + T *find(const std::string &); }; #include "database.hpp" diff --git a/include/database.hpp b/include/database.hpp index 84e1e8b5..bc486f14 100644 --- a/include/database.hpp +++ b/include/database.hpp @@ -72,21 +72,21 @@ void Database :: load() } template -typename Database::iterator Database :: insert(T val) +T *Database :: insert(T val) { - iterator it = find(val.primary_key()); + T *t = find(val.primary_key()); - if (it != end()) - return it; + if (t != NULL) + return t; - it = _db.insert(_db.end(), val); + iterator it = _db.insert(_db.end(), val); it->valid = true; it->id = it - _db.begin(); _keys[it->primary_key()] = it->id; _size++; autosave(); - return it; + return &_db[it->id]; } template @@ -142,23 +142,23 @@ typename Database::iterator Database :: next(iterator &it) } template -typename Database::iterator Database :: at(unsigned int id) +T *Database :: at(unsigned int id) { if (id >= actual_size()) - return end(); + return NULL; if (_db[id].valid == false) - return end(); - return _db.begin() + id; + return NULL; + return &_db[id]; } template -typename Database::iterator Database :: find(const std::string &key) +T *Database :: find(const std::string &key) { std::map::iterator it; it = _keys.find(key); if (it == _keys.end()) - return end(); - return _db.begin() + it->second; + return NULL; + return &_db[it->second]; } #endif /* OCARINA_DATABASE_HPP */ diff --git a/lib/filter.cpp b/lib/filter.cpp index b1aa2b43..c18408c7 100644 --- a/lib/filter.cpp +++ b/lib/filter.cpp @@ -93,7 +93,7 @@ std::string filter :: add(const std::string &text, unsigned int track_id) static void find_intersection(std::string &text, std::set &res) { - Index::iterator it = filter_index.find(text); + IndexEntry *it = filter_index.find(text); std::set tmp; set_intersection(it->values.begin(), it->values.end(), diff --git a/lib/index.cpp b/lib/index.cpp index e67cf877..536f3c4f 100644 --- a/lib/index.cpp +++ b/lib/index.cpp @@ -51,8 +51,8 @@ Index :: Index(const std::string &filepath, bool autosave) void Index :: insert(const std::string &key, unsigned int val) { - iterator it = find(key); - if (it == end()) + IndexEntry *it = find(key); + if (it == NULL) it = Database :: insert(IndexEntry(key)); it->insert(val); @@ -61,9 +61,9 @@ void Index :: insert(const std::string &key, unsigned int val) void Index :: remove(const std::string &key, unsigned int val) { - iterator it = find(key); + IndexEntry *it = find(key); - if (it == end()) + if (it == NULL) return; it->remove(val); diff --git a/lib/library.cpp b/lib/library.cpp index bd3f251a..4f4e9e43 100644 --- a/lib/library.cpp +++ b/lib/library.cpp @@ -305,7 +305,7 @@ static bool process_path(unsigned int lib_id, const std :: string &dir, scan.path = path; idle :: schedule (do_scan_path, scan); } else { - if (track_db.find(path) == track_db.end()) { + if (track_db.find(path) == NULL) { read_tags(lib_id, path); changed = true; } @@ -435,7 +435,7 @@ static void do_import_library(std::string &s) f >> id >> enabled >> next_id >> size; /* Assign this path a new id */ - if (library_db.find(path) != library_db.end()) { + if (library_db.find(path) != NULL) { print("Library already contains path: %s, skipping\n", path.c_str()); return; } @@ -487,7 +487,7 @@ void library :: add_path(const std::string &dir) unsigned int id; if (g_file_test(dir.c_str(), G_FILE_TEST_IS_DIR) == false) throw -E_INVAL; - if (library_db.find(dir) != library_db.end()) + if (library_db.find(dir) != NULL) return; id = library_db.insert(library :: Library(dir, true))->id; diff --git a/lib/playlist.cpp b/lib/playlist.cpp index b6d33487..fb33c553 100644 --- a/lib/playlist.cpp +++ b/lib/playlist.cpp @@ -85,8 +85,8 @@ void playlist :: select(const std::string &name) const std::set &playlist :: get_tracks(const std::string &name) { if ((name == "Banned") || (name == "Favorites")) { - Database::iterator it = playlist_db.find(name); - if (it != playlist_db.end()) + IndexEntry *it = playlist_db.find(name); + if (it != NULL) return it->values; return empty_set; } diff --git a/lib/tags.cpp b/lib/tags.cpp index 94b8d47f..17a25aa5 100644 --- a/lib/tags.cpp +++ b/lib/tags.cpp @@ -197,19 +197,19 @@ bool Track :: less_than(Track *rhs, sort_t field) Track *tagdb :: add_track(const std::string &filepath, Library *library) { unsigned int size = track_db.size(); - Database::iterator it = track_db.insert(Track(filepath, library)); + Track *track = track_db.insert(Track(filepath, library)); if (size == track_db.size()) return NULL; - return &(*it); + return track; } Library *tagdb :: add_library(const std::string &filepath) { unsigned int size = library_db.size(); - Database::iterator it = library_db.insert(Library(filepath)); + Library *library = library_db.insert(Library(filepath)); if (size == library_db.size()) return NULL; - return &(*it); + return library; } void tagdb :: remove_track(unsigned int track_id) @@ -229,10 +229,7 @@ void tagdb :: remove_library(unsigned int library_id) Track *tagdb :: lookup(unsigned int track_id) { - Database::iterator it = track_db.at(track_id); - if (it == track_db.end()) - return NULL; - return &(*it); + return track_db.at(track_id); } Database &tagdb :: get_track_db() diff --git a/tests/src/database.cpp b/tests/src/database.cpp index 4d32a46b..365b9c79 100644 --- a/tests/src/database.cpp +++ b/tests/src/database.cpp @@ -156,10 +156,10 @@ int main(int argc, char **argv) * 8. Test access by id */ for (unsigned int i = 0; i < n + 10; i++) { - Database::iterator it = db.at(i); - if (((i % 2) == 0) && (it != db.end())) + IntEntry *it = db.at(i); + if (((i % 2) == 0) && (it != NULL)) test_results(false, __LINE__); - if ((i >= n) && (it != db.end())) + if ((i >= n) && (it != NULL)) test_results(false, __LINE__); } test_results(true, __LINE__); diff --git a/tests/src/index.cpp b/tests/src/index.cpp index 090eb416..9d08f7a4 100644 --- a/tests/src/index.cpp +++ b/tests/src/index.cpp @@ -46,8 +46,8 @@ int main(int argc, char **argv) * 0: Test inserting when there is no key */ index.insert("a", 0); - Index :: iterator it = index.find("a"); - if (it == index.end()) + IndexEntry *it = index.find("a"); + if (it == NULL) test_results(false, __LINE__); if (it->values.size() == 0) test_results(false, __LINE__); diff --git a/tests/src/tagdb.cpp b/tests/src/tagdb.cpp index 4c96ff96..747c2823 100644 --- a/tests/src/tagdb.cpp +++ b/tests/src/tagdb.cpp @@ -74,23 +74,23 @@ int main(int argc, char **argv) /** * Test adding and removing multiple tracks */ - tagdb :: add_track("Music/1.ogg", library); - tagdb :: add_track("Music/10.ogg", library); - tagdb :: add_track("Music/15.ogg", library); - tagdb :: add_track("Music/60.ogg", library); - tagdb :: add_track("Music/90.ogg", library); - tagdb :: add_track("Music/600.ogg", library); - tagdb :: add_track("Music/666.ogg", library); + Track *track1 = tagdb :: add_track("Music/1.ogg", library); + Track *track2 = tagdb :: add_track("Music/10.ogg", library); + Track *track3 = tagdb :: add_track("Music/15.ogg", library); + Track *track4 = tagdb :: add_track("Music/60.ogg", library); + Track *track5 = tagdb :: add_track("Music/90.ogg", library); + Track *track6 = tagdb :: add_track("Music/600.ogg", library); + Track *track7 = tagdb :: add_track("Music/666.ogg", library); test_track_size(7, __LINE__); test_results(tagdb :: lookup(0) == NULL, __LINE__); - test_results(tagdb :: lookup(1)->id == 1, __LINE__); - test_results(tagdb :: lookup(2)->id == 2, __LINE__); - test_results(tagdb :: lookup(3)->id == 3, __LINE__); - test_results(tagdb :: lookup(4)->id == 4, __LINE__); - test_results(tagdb :: lookup(5)->id == 5, __LINE__); - test_results(tagdb :: lookup(6)->id == 6, __LINE__); - test_results(tagdb :: lookup(7)->id == 7, __LINE__); + test_results(tagdb :: lookup(1) == track1, __LINE__); + test_results(tagdb :: lookup(2) == track2, __LINE__); + test_results(tagdb :: lookup(3) == track3, __LINE__); + test_results(tagdb :: lookup(4) == track4, __LINE__); + test_results(tagdb :: lookup(5) == track5, __LINE__); + test_results(tagdb :: lookup(6) == track6, __LINE__); + test_results(tagdb :: lookup(7) == track7, __LINE__); test_results(tagdb :: lookup(8) == NULL, __LINE__); From a9dae134d0d577a928521fcc8631536f34b2cf40 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Tue, 25 Mar 2014 10:57:09 -0400 Subject: [PATCH 10/93] database: Store pointers in the database Inserting into a vector can sometimes cause the entire vector to reallocate itself. The insert() function returns a pointer to the caller, so this reallocation could invalidate the returned pointer. This is not what we want. Instead, store pointers to the data in the vector. C++ provides a default copy constructor that can be used to allocate a new item before inserting. By doing it this way callers won't have to allocate memory themselves. In addition, I will no longer need to keep a valid bit since we can simply check for a NULL entry in the database. Signed-off-by: Anna Schumaker --- DESIGN | 40 +++++++++++++-------------- include/database.h | 8 +++--- include/database.hpp | 56 +++++++++++++++++++++----------------- lib/database.cpp | 4 ++- lib/library.cpp | 33 ++++++++++------------ lib/tags.cpp | 4 +-- tests/db_entry | 4 +-- tests/src/database.cpp | 62 ++++++++++++++++++++++++++++++++++-------- tests/src/db_entry.cpp | 2 +- 9 files changed, 127 insertions(+), 86 deletions(-) diff --git a/DESIGN b/DESIGN index 25bec4d7..a006e590 100644 --- a/DESIGN +++ b/DESIGN @@ -199,7 +199,6 @@ Database Entry: - DatabaseEntry: class DatabaseEntry { public: - bool valid; unsigned int id; DatabaseEntry(); @@ -212,7 +211,7 @@ Database Entry: - API: DatabaseEntry :: DatabaseEntry(): - Set valid = false and id = 0. + Set id = 0. const std::string DatabaseEntry :: primary_key(); This function should return a unique string representing this @@ -251,12 +250,6 @@ Database: uniqueness. This key is used when inserting a new value into the Database, and will not be updated after. -- Valid bit: - The "valid" bit of a DatabaseEntry is completely managed by the entry's - Database container. It will be set to true when an entry is inserted - and false when deleted. The Database is also in charge of writing the - valid bit to file. - - Id: The "id" field of a DatabaseEntry is also managed by the entry's Database container It will be set to the entry's ID when the entry is @@ -266,17 +259,18 @@ Database: template class Database { private: - std::vector _db; + std::vector _db; std::map _keys; unsigned int _size; /* Number of valid rows */ bool _autosave; File _file; public: - typedef std::vector::iterator iterator; - typedef std::vector::const_iterator const_iterator; + typedef std::vector::iterator iterator; + typedef std::vector::const_iterator const_iterator; Database(std::string, bool); + ~Database(); void save(); void load(); @@ -305,28 +299,32 @@ Database: data on disk. If the file already exists, read the data into the backing vector. + Database :: ~Database(); + Delete all entries remaining in the database. + void Database :: save(); Save the database to disk. void Database :: load(); Load the database from disk. - T *Database :: insert(T &item); + T *Database :: insert(T item); Look up the item in the _keys map. If we find an item with the same key: - - Return an iterator to the found item. + - Return a pointer to the found item. Otherwise: + - Use new to allocate memory for a new item. - Add the new item to the end of the _db. - Add the new item to _keys. - - Set item.valid = true. - - Set item.id to the index of the new item. + - Set new item.id to the index of the new item. _ Increment _size. - If autosave == true: save(). - - Return an iterator to the new item. + - Return a pointer to the new item. - unsigned int Database :: remove(); + unsigned int Database :: remove(unsigned int id); - Remove the item from the _keys map. - - Set item.valid = false. + - Delete _db[id] + - Set _db[id] = NULL - If autosave == true: save(). - Decrement _size. @@ -351,10 +349,10 @@ Database: if there are no valid entries left. T *Database :: at(unsigned int i); - If _db[i].valid == true: - Return a pointer to _db[i]; + If i is beyond the end of the container: + Return NULL Otherwise: - Return NULL; + Return _db[i]; T *Database :: find(const std::string &key); If key is in the _keys map: diff --git a/include/database.h b/include/database.h index 845f4967..8c9e5493 100644 --- a/include/database.h +++ b/include/database.h @@ -13,10 +13,10 @@ class DatabaseEntry { public: - bool valid; unsigned int id; DatabaseEntry(); + virtual ~DatabaseEntry() = 0; virtual const std::string primary_key() = 0; virtual void write(File &) = 0; virtual void read(File &) = 0; @@ -27,15 +27,15 @@ public: template class Database { private: - std::vector _db; + std::vector _db; std::map _keys; unsigned int _size; bool _autosave; File _file; public: - typedef typename std::vector::iterator iterator; - typedef typename std::vector::const_iterator const_iterator; + typedef typename std::vector::iterator iterator; + typedef typename std::vector::const_iterator const_iterator; Database(std::string, bool); ~Database(); diff --git a/include/database.hpp b/include/database.hpp index bc486f14..89163090 100644 --- a/include/database.hpp +++ b/include/database.hpp @@ -18,6 +18,9 @@ Database :: Database(std::string filepath, bool autosave) template Database :: ~Database() { + iterator it; + for (it = begin(); it != end(); it = next(it)) + delete (*it); } template @@ -26,12 +29,13 @@ void Database :: save() if (_file.open(OPEN_WRITE) == false) return; - _file << _db.size() << std::endl; + _file << actual_size() << std::endl; for (unsigned int i = 0; i < _db.size(); i++) { - _file << _db[i].valid; - if (_db[i].valid == true) { - _file << " "; - _db[i].write(_file); + if (_db[i] == NULL) + _file << false; + else { + _file << true << " "; + _db[i]->write(_file); } _file << std::endl; } @@ -50,6 +54,7 @@ template void Database :: load() { unsigned int db_size; + bool valid; if (_file.exists() == false) return; @@ -59,11 +64,14 @@ void Database :: load() _file >> db_size; _db.resize(db_size); for (unsigned int i = 0; i < db_size; i++) { - _file >> _db[i].valid; - if (_db[i].valid == true) { - _db[i].read(_file); - _db[i].id = i; - _keys.insert(std::pair(_db[i].primary_key(), i)); + _file >> valid; + if (valid == false) + _db[i] = NULL; + else { + _db[i] = new T; + _db[i]->read(_file); + _db[i]->id = i; + _keys[_db[i]->primary_key()] = i; _size++; } } @@ -79,14 +87,14 @@ T *Database :: insert(T val) if (t != NULL) return t; - iterator it = _db.insert(_db.end(), val); - it->valid = true; - it->id = it - _db.begin(); + t = new T(val); + _db.push_back(t); + t->id = actual_size() - 1; - _keys[it->primary_key()] = it->id; + _keys[t->primary_key()] = t->id; _size++; autosave(); - return &_db[it->id]; + return t; } template @@ -94,10 +102,11 @@ void Database :: remove(unsigned int id) { if (id >= actual_size()) return; - if (_db[id].valid == false) + if (_db[id] == NULL) return; - _keys.erase(_db[id].primary_key()); - _db[id].valid = false; + _keys.erase(_db[id]->primary_key()); + delete _db[id]; + _db[id] = NULL; _size--; autosave(); } @@ -121,7 +130,7 @@ typename Database::iterator Database :: begin() return end(); iterator it = _db.begin(); - if ( (*it).valid == true ) + if ( (*it) != NULL ) return it; return next(it); } @@ -137,7 +146,7 @@ typename Database::iterator Database :: next(iterator &it) { do { it++; - } while ((it != end()) && ((*it).valid == false)); + } while ((it != end()) && (*it) == NULL); return it; } @@ -146,10 +155,7 @@ T *Database :: at(unsigned int id) { if (id >= actual_size()) return NULL; - - if (_db[id].valid == false) - return NULL; - return &_db[id]; + return _db[id]; } template @@ -159,6 +165,6 @@ T *Database :: find(const std::string &key) it = _keys.find(key); if (it == _keys.end()) return NULL; - return &_db[it->second]; + return _db[it->second]; } #endif /* OCARINA_DATABASE_HPP */ diff --git a/lib/database.cpp b/lib/database.cpp index a68af4ae..f520cf56 100644 --- a/lib/database.cpp +++ b/lib/database.cpp @@ -5,6 +5,8 @@ DatabaseEntry :: DatabaseEntry() - : valid(false), id(0) + : id(0) { } + +DatabaseEntry :: ~DatabaseEntry() {} diff --git a/lib/library.cpp b/lib/library.cpp index 4f4e9e43..58b64010 100644 --- a/lib/library.cpp +++ b/lib/library.cpp @@ -282,9 +282,6 @@ static void read_tags(unsigned int lib_id, const std :: string &path) track_id = track_db.insert(library :: Track(tag, audio, lib_id, artist_id, album_id, genre_id, path))->id; - if (track_db.at(track_id)->valid == false) - return; - library_db.at(lib_id)->size++; filter::add(artist_db.at(artist_id)->name, track_id); @@ -356,10 +353,10 @@ static void do_validate_library(unsigned int &lib_id) Database::iterator it; for (it = track_db.begin(); it != track_db.end(); it = track_db.next(it)) { - if ((*it).library_id != lib_id) + if ((*it)->library_id != lib_id) continue; - path = it->primary_key(); + path = (*it)->primary_key(); if (g_file_test(path.c_str(), G_FILE_TEST_EXISTS) == false) { dprint("Removing file: %s\n", path.c_str()); track_db.remove(it - track_db.begin()); @@ -469,17 +466,17 @@ void library :: init() Database::iterator it; for (it = track_db.begin(); it != track_db.end(); it = track_db.next(it)) { - filter::add(artist_db.at((*it).artist_id)->name, it->id); - filter::add(album_db.at((*it).album_id)->name, it->id); - filter::add((*it).title, it->id); + filter::add(artist_db.at((*it)->artist_id)->name, (*it)->id); + filter::add(album_db.at((*it)->album_id)->name, (*it)->id); + filter::add((*it)->title, (*it)->id); - if (library_db.at((*it).library_id)->enabled) - get_callbacks()->on_library_track_add(it->id); + if (library_db.at((*it)->library_id)->enabled) + get_callbacks()->on_library_track_add((*it)->id); } Database::iterator l_it; for (l_it = library_db.begin(); l_it != library_db.end(); l_it = library_db.next(l_it)) - get_callbacks()->on_library_add(l_it->id, &(*library_db.at(l_it->id))); + get_callbacks()->on_library_add((*l_it)->id, &(*library_db.at((*l_it)->id))); } void library :: add_path(const std::string &dir) @@ -502,9 +499,9 @@ void library :: del_path(unsigned int id) Database::iterator it; for (it = track_db.begin(); it != track_db.end(); it = track_db.next(it)) { - if ((*it).library_id == id) { - get_callbacks()->on_library_track_del(it->id); - track_db.remove(it->id); + if ((*it)->library_id == id) { + get_callbacks()->on_library_track_del((*it)->id); + track_db.remove((*it)->id); } } @@ -518,7 +515,7 @@ void library :: update_path(unsigned int id) { if (id > library_db.size()) return; - if (library_db.at(id)->valid == false) + if (library_db.at(id) == NULL) return; do_update_library(id); } @@ -540,7 +537,7 @@ void library :: set_enabled(unsigned int id, bool enabled) library_db.save(); for (it = track_db.begin(); it != track_db.end(); it = track_db.next(it)) { - if ((*it).library_id == id) { + if ((*it)->library_id == id) { t = it - track_db.begin(); if (enabled) get_callbacks()->on_library_track_add(t); @@ -556,7 +553,7 @@ void library :: lookup(unsigned int id, library :: Song *song) throw -E_EXIST; song->track = &(*track_db.at(id)); - if (song->track->valid == false) + if (song->track == NULL) throw -E_EXIST; song->track_id = id; @@ -570,7 +567,7 @@ library :: Library *library :: lookup_path(unsigned int id) { if (id >= library_db.actual_size()) throw -E_EXIST; - if (library_db.at(id)->valid == false) + if (library_db.at(id) == NULL) throw -E_EXIST; return &(*library_db.at(id)); } diff --git a/lib/tags.cpp b/lib/tags.cpp index 17a25aa5..db898f36 100644 --- a/lib/tags.cpp +++ b/lib/tags.cpp @@ -221,8 +221,8 @@ void tagdb :: remove_library(unsigned int library_id) { Database::iterator it; for (it = track_db.begin(); it != track_db.end(); it++) { - if (it->library->id == library_id) - track_db.remove(it->id); + if ((*it)->library->id == library_id) + track_db.remove((*it)->id); } library_db.remove(library_id); } diff --git a/tests/db_entry b/tests/db_entry index 33f97f49..3517caeb 100755 --- a/tests/db_entry +++ b/tests/db_entry @@ -10,7 +10,7 @@ function test_entry function test_print { - test_entry $1 $2 "Value: $1 Key: $2 Valid: 0 Id: 0" + test_entry $1 $2 "Value: $1 Key: $2 Id: 0" } function test_primary_key @@ -30,7 +30,7 @@ function test_read rm $DATA_DIR/db_entry.txt 2>/dev/null || true echo 0 > $DATA_DIR/db_entry.txt echo $1 $2 >> $DATA_DIR/db_entry.txt - test_entry "-r $1" $2 "Value: $1 Key: $2 Valid: 0 Id: 0" + test_entry "-r $1" $2 "Value: $1 Key: $2 Id: 0" } diff --git a/tests/src/database.cpp b/tests/src/database.cpp index 365b9c79..34b959d2 100644 --- a/tests/src/database.cpp +++ b/tests/src/database.cpp @@ -84,9 +84,24 @@ int main(int argc, char **argv) /** * 1: Test insertion */ + IntEntry *one, *three; for (unsigned int i = 0; i < n; i++) { - if (db.insert(IntEntry(i))->id != i) + IntEntry *it = db.insert(IntEntry(i)); + if (it == NULL) test_results(false, __LINE__); + if (it->id != i) + test_results(false, __LINE__); + if (it->val != i) + test_results(false, __LINE__); + + /* + * Pointers should still be valid after more insertions. + * These will be checked later + */ + if (i == 1) + one = it; + if (i == 3) + three = it; } test_results(true, __LINE__); size += n; @@ -103,7 +118,12 @@ int main(int argc, char **argv) * 3: Test inserting ... again. */ for (unsigned int i = 0; i < n; i++) { - if (db.insert(IntEntry(i))->id != i) + IntEntry *it = db.insert(IntEntry(i)); + if (it->id != i) + test_results(false, __LINE__); + if (i == 1 && it != one) + test_results(false, __LINE__); + if (i == 3 && it != three) test_results(false, __LINE__); } test_results(true, __LINE__); @@ -132,7 +152,7 @@ int main(int argc, char **argv) /** * 6: Test that removing again doesn't change anything */ - for (unsigned int i = 0; i < n; i+=2) + for (unsigned int i = 0; i < n + 10; i+=2) db.remove(i); test_size(db, size, actual, __LINE__); @@ -143,9 +163,11 @@ int main(int argc, char **argv) Database::iterator it; unsigned int index = 1; for (it = db.begin(); it != db.end(); it = db.next(it)) { - if ((*it).val != index) + if ((*it) == NULL) test_results(false, __LINE__); - if ((*it).id != index) + if ((*it)->val != index) + test_results(false, __LINE__); + if ((*it)->id != index) test_results(false, __LINE__); index+=2; }; @@ -157,9 +179,23 @@ int main(int argc, char **argv) */ for (unsigned int i = 0; i < n + 10; i++) { IntEntry *it = db.at(i); - if (((i % 2) == 0) && (it != NULL)) + if (i >= n) { + if (it != NULL) + test_results(false, __LINE__); + continue; + } else if (i % 2 == 0) { + if (it != NULL) + test_results(false, __LINE__); + } else if (it == NULL) test_results(false, __LINE__); - if ((i >= n) && (it != NULL)) + + /* + * Remember those pointers we stored earlier? + * The should still be valid now. + */ + if (i == 1 && it != one) + test_results(false, __LINE__); + if (i == 3 && it != three) test_results(false, __LINE__); } test_results(true, __LINE__); @@ -169,7 +205,7 @@ int main(int argc, char **argv) * 9. Test inserting once again */ for (unsigned int i = 0; i < n; i++) { - index = db.insert(i)->id; + index = db.insert(IntEntry(i))->id; if ((i % 2) == 0) { size++; actual++; @@ -210,12 +246,14 @@ int main(int argc, char **argv) */ Database::iterator it2 = db2.begin(); for (it = db.begin(); it != db.end(); it++) { - if (it->valid != it2->valid) + if ((*it) == NULL && (*it2) != NULL) test_results(false, __LINE__); - if (it->valid == true) { - if (it->val != it2->val) + if ((*it) != NULL && (*it2) == NULL) + test_results(false, __LINE__); + if ((*it) != NULL) { + if ((*it)->val != (*it2)->val) test_results(false, __LINE__); - if (it->id != it2->id) + if ((*it)->id != (*it2)->id) test_results(false, __LINE__); } it2++; diff --git a/tests/src/db_entry.cpp b/tests/src/db_entry.cpp index f5aac956..fca5228c 100644 --- a/tests/src/db_entry.cpp +++ b/tests/src/db_entry.cpp @@ -48,7 +48,7 @@ void IntEntry :: read(File &f) void IntEntry :: print() { - :: print("Value: %u Key: %s Valid: %d Id: %u\n", val, key.c_str(), valid, id); + :: print("Value: %u Key: %s Id: %u\n", val, key.c_str(), id); } From 7490b98db691cccd387291e3f14f9478e6b8ed7e Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Tue, 25 Mar 2014 16:56:45 -0400 Subject: [PATCH 11/93] Combine database and db_entry tests These tests are designed to verify the database, which should include the DatabaseEntry class. Signed-off-by: Anna Schumaker --- tests/Sconscript | 3 +- tests/database | 74 ++++++++++++++++++++++++++++++++++++++++++++++++ tests/db_entry | 65 ------------------------------------------ 3 files changed, 75 insertions(+), 67 deletions(-) delete mode 100755 tests/db_entry diff --git a/tests/Sconscript b/tests/Sconscript index 887c4420..011f97a5 100644 --- a/tests/Sconscript +++ b/tests/Sconscript @@ -8,8 +8,7 @@ if sys.argv.count("tests") > 0: src = SConscript("src/Sconscript") -tests = [ "version", "file", "db_entry", "database", "index", - "filter", "idle", "tag_db" ] +tests = [ "version", "file", "database", "index", "filter", "idle", "tag_db" ] #scripts = [ "playlist", "library", "playqueue", "deck", "audio", "gui" ] prev = None diff --git a/tests/database b/tests/database index 2dfac707..62614c1a 100755 --- a/tests/database +++ b/tests/database @@ -3,6 +3,80 @@ . $(dirname $0)/_functions + +### +# +# First, verify everything for a DatabaseEntry +# + +function test_entry +{ + test_equal "./src/db_entry.run $1 $2" "$3" +} + +function test_print +{ + test_entry $1 $2 "Value: $1 Key: $2 Id: 0" +} + +function test_primary_key +{ + test_entry "-p $1" $2 "Primary key: $2" +} + +function test_write +{ + rm $DATA_DIR/db_entry.txt 2>/dev/null || true + ./src/db_entry.run -w $1 $2 + test_equal "tail -1 $DATA_DIR/db_entry.txt" "$1 $2" +} + +function test_read +{ + rm $DATA_DIR/db_entry.txt 2>/dev/null || true + echo 0 > $DATA_DIR/db_entry.txt + echo $1 $2 >> $DATA_DIR/db_entry.txt + test_entry "-r $1" $2 "Value: $1 Key: $2 Id: 0" +} + + +new_test "Database Entry Print Test" +test_print 1 1 +test_print 1 2 +test_print 2 1 +test_print 2 2 + + +echo +new_test "Database Entry Primary Key Test" +test_primary_key 1 1 +test_primary_key 1 2 +test_primary_key 2 1 +test_primary_key 2 2 + + +echo +new_test "Database Entry Write Test" +test_write 1 1 +test_write 1 2 +test_write 2 1 +test_write 2 2 + + +echo +new_test "Database Entry Read Test" +test_read 1 1 +test_read 1 2 +test_read 2 1 +test_read 2 2 + + +echo +### +# +# Now, test the actual database +# + function test_autosave { new_test "Database Test (n = $1, autosave = true)" diff --git a/tests/db_entry b/tests/db_entry deleted file mode 100755 index 3517caeb..00000000 --- a/tests/db_entry +++ /dev/null @@ -1,65 +0,0 @@ -#!/bin/bash -# Copyright 2014 (c) Anna Schumaker - -. $(dirname $0)/_functions - -function test_entry -{ - test_equal "./src/db_entry.run $1 $2" "$3" -} - -function test_print -{ - test_entry $1 $2 "Value: $1 Key: $2 Id: 0" -} - -function test_primary_key -{ - test_entry "-p $1" $2 "Primary key: $2" -} - -function test_write -{ - rm $DATA_DIR/db_entry.txt 2>/dev/null || true - ./src/db_entry.run -w $1 $2 - test_equal "tail -1 $DATA_DIR/db_entry.txt" "$1 $2" -} - -function test_read -{ - rm $DATA_DIR/db_entry.txt 2>/dev/null || true - echo 0 > $DATA_DIR/db_entry.txt - echo $1 $2 >> $DATA_DIR/db_entry.txt - test_entry "-r $1" $2 "Value: $1 Key: $2 Id: 0" -} - - -new_test "Database Entry Print Test" -test_print 1 1 -test_print 1 2 -test_print 2 1 -test_print 2 2 - - -echo -new_test "Database Entry Primary Key Test" -test_primary_key 1 1 -test_primary_key 1 2 -test_primary_key 2 1 -test_primary_key 2 2 - - -echo -new_test "Database Entry Write Test" -test_write 1 1 -test_write 1 2 -test_write 2 1 -test_write 2 2 - - -echo -new_test "Database Entry Read Test" -test_read 1 1 -test_read 1 2 -test_read 2 1 -test_read 2 2 From d452177f3288d35b213fd7396bbf8ba95fcdfe10 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Tue, 25 Mar 2014 17:48:55 -0400 Subject: [PATCH 12/93] Make sure index test can handle n = 0 Signed-off-by: Anna Schumaker --- tests/index | 2 ++ tests/src/index.cpp | 30 +++++++++++++++++++++++++----- 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/tests/index b/tests/index index 00a01b6d..fd013b79 100755 --- a/tests/index +++ b/tests/index @@ -34,6 +34,8 @@ function run_test fi } +run_test 0 +echo run_test 10 echo run_test 100 diff --git a/tests/src/index.cpp b/tests/src/index.cpp index 9d08f7a4..b7ac7664 100644 --- a/tests/src/index.cpp +++ b/tests/src/index.cpp @@ -24,6 +24,11 @@ void test_results(bool success, unsigned int line) test_num++; } +void test_size(Index &index, unsigned int expected, unsigned int line) +{ + test_results(index.size() == expected, line); +} + int main(int argc, char **argv) { bool autosave = false; @@ -72,7 +77,7 @@ int main(int argc, char **argv) index.insert(key, i); } - test_results(index.size() == 26, __LINE__); + test_size(index, (n == 0) ? 1 : 26, __LINE__); /** @@ -81,7 +86,12 @@ int main(int argc, char **argv) for (c = 'a'; c <= 'z'; c++) { std::string key = ""; key += c; - if (index.find(key)->values.size() != n) + + IndexEntry *it = index.find(key); + if (n == 0 && c > 'a') { + if (it != NULL) + test_results(false, __LINE__); + } else if (it->values.size() != n) test_results(false, __LINE__); } test_results(true, __LINE__); @@ -97,11 +107,15 @@ int main(int argc, char **argv) for (unsigned int i = 0; i < n; i++) index.remove(key, i); - if (index.find(key)->values.size() > 0) + IndexEntry *it = index.find(key); + if (n == 0 && c > 'a') { + if (it != NULL) + test_results(false, __LINE__); + } else if (it->values.size() != 0) test_results(false, __LINE__); } - test_results(index.size() == 26, __LINE__); + test_size(index, (n == 0) ? 1 : 26, __LINE__); /** @@ -127,7 +141,13 @@ int main(int argc, char **argv) std::string key = ""; key += c; - if (index.find(key)->values.size() != index2.find(key)->values.size()) + IndexEntry *it1 = index.find(key); + IndexEntry *it2 = index2.find(key); + + if (n == 0 && c > 'a') { + if (it1 != NULL || it2 != NULL) + test_results(false, __LINE__); + } else if (it1->values.size() != it2->values.size()) test_results(false, __LINE__); } test_results(true, __LINE__); From cac0aee2e6b3c53aa56b33734e41b7e28124af80 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Tue, 25 Mar 2014 17:51:37 -0400 Subject: [PATCH 13/93] database: Insert through a const reference This should offer a performance increase since the item to insert will only be copied if it is not already in the database. Signed-off-by: Anna Schumaker --- DESIGN | 32 ++++++++++++++++---------------- include/database.h | 4 ++-- include/database.hpp | 2 +- include/index.h | 2 +- include/library.h | 8 ++++---- include/tags.h | 12 ++++++------ lib/index.cpp | 2 +- lib/library.cpp | 8 ++++---- lib/tags.cpp | 12 ++++++------ tests/src/database.cpp | 4 ++-- tests/src/db_entry.cpp | 4 ++-- 11 files changed, 45 insertions(+), 45 deletions(-) diff --git a/DESIGN b/DESIGN index a006e590..cf449ef9 100644 --- a/DESIGN +++ b/DESIGN @@ -203,7 +203,7 @@ Database Entry: DatabaseEntry(); virtual void ~DatabaseEntry() = 0; - virtual const std::string primary_key() = 0; + virtual const std::string primary_key() const = 0; virtual void write(File &) = 0; virtual void read(File &) = 0; @@ -213,7 +213,7 @@ Database Entry: DatabaseEntry :: DatabaseEntry(): Set id = 0. - const std::string DatabaseEntry :: primary_key(); + const std::string DatabaseEntry :: primary_key() const; This function should return a unique string representing this DatabaseEntry instance, which will be used to prevent duplicates in a database. This string is not expected to @@ -274,7 +274,7 @@ Database: void save(); void load(); - T *insert(T); + T *insert(const T &); void remove(unsigned int); unsigned int size(); unsigned int actual_size(); @@ -308,7 +308,7 @@ Database: void Database :: load(); Load the database from disk. - T *Database :: insert(T item); + T *Database :: insert(const T &item); Look up the item in the _keys map. If we find an item with the same key: - Return a pointer to the found item. @@ -373,7 +373,7 @@ Index: set values; IndexEntry(const std::string &); - const std::string primary_key(); + const std::string primary_key() const; void insert(unsigned int); void remove(unsigned int); @@ -388,7 +388,7 @@ Index: IndexEntry :: IndexEntry(); Creat an empty IndexEntry. - std::string IndexEntry :: primary_key(); + std::string IndexEntry :: primary_key() const; return key; void IndexEntry :: insert(unsigned int value); @@ -609,7 +609,7 @@ Artist Tag: Artist(); Artist(const std::string &); - const std::string primary_key(); + const std::string primary_key() const; void read(File &); void write(File &); }; @@ -624,7 +624,7 @@ Artist Tag: Artist(const std::string &artist_name); Set artist_name and find the lowercase form. - const std::string Artist :: primary_key(); + const std::string Artist :: primary_key() const; Use artist name as primary key. void Artist :: read(File &f); @@ -647,7 +647,7 @@ Album Tag: Album(); Album(const std::string &, unsigned int); - const std::string primary_key(); + const std::string primary_key() const; void read(File &); void write(File &); }; @@ -663,7 +663,7 @@ Album Tag: Set name and year from album name and album_year. Find the lowercase form of the album name. - const std::string Album :: primary_key(); + const std::string Album :: primary_key() const; Return the string: "$year.$name" void Album :: read(File &f); @@ -687,7 +687,7 @@ Genre Tag: Genre(); Genre(const std::string &); - const std::string primary_key(); + const std::string primary_key() const; void read(File &); void write(File &); }; @@ -702,7 +702,7 @@ Genre Tag: Genre(const std::string &genre_name); Set genre from genre name and find the lowercase form. - const std::string Genre :: primary_key(); + const std::string Genre :: primary_key() const; Use genre as primary key. void Genre :: read(File &f); @@ -728,7 +728,7 @@ Library Tag: Library(); Library(const std::string &); - const std::string primary_key(); + const std::string primary_key() const; void read(File &); void write(File &); }; @@ -747,7 +747,7 @@ Library Tag: Set count = 0. Set enabled = true. - const std::string Library :: primary_key(); + const std::string Library :: primary_key() const; Use root_path as the primary key, void read(File &f); @@ -797,7 +797,7 @@ Track Tag: Track(); Track(const std::string &, Library *); - const std::string primary_key(); + const std::string primary_key() const; void read(File &); void write(File &); @@ -824,7 +824,7 @@ Track Tag: the result to set filepath. - Set library = lib. - const std::string Track :: primary_key(); + const std::string Track :: primary_key() const; return path(); void read(File &f); diff --git a/include/database.h b/include/database.h index 8c9e5493..f36720fb 100644 --- a/include/database.h +++ b/include/database.h @@ -17,7 +17,7 @@ public: DatabaseEntry(); virtual ~DatabaseEntry() = 0; - virtual const std::string primary_key() = 0; + virtual const std::string primary_key() const = 0; virtual void write(File &) = 0; virtual void read(File &) = 0; }; @@ -43,7 +43,7 @@ public: void autosave(); void load(); - T *insert(T); + T *insert(const T &); void remove(unsigned int); unsigned int size(); unsigned int actual_size(); diff --git a/include/database.hpp b/include/database.hpp index 89163090..c5855bcd 100644 --- a/include/database.hpp +++ b/include/database.hpp @@ -80,7 +80,7 @@ void Database :: load() } template -T *Database :: insert(T val) +T *Database :: insert(const T &val) { T *t = find(val.primary_key()); diff --git a/include/index.h b/include/index.h index 258d4fd1..f8ee53f5 100644 --- a/include/index.h +++ b/include/index.h @@ -17,7 +17,7 @@ public: IndexEntry(); IndexEntry(const std::string &); - const std::string primary_key(); + const std::string primary_key() const; void insert(unsigned int); void remove(unsigned int); diff --git a/include/library.h b/include/library.h index 4a1b9003..003c8222 100644 --- a/include/library.h +++ b/include/library.h @@ -33,7 +33,7 @@ namespace library AGInfo(); AGInfo(DB_Type, TagLib :: Tag *); AGInfo(DB_Type, const std::string &); - const std::string primary_key(); + const std::string primary_key() const; void read(File &); void write(File &); }; @@ -48,7 +48,7 @@ namespace library Album(); Album(TagLib :: Tag *, unsigned int); Album(const std::string &, unsigned int, unsigned int); - const std::string primary_key(); + const std::string primary_key() const; void read(File &); void write(File &); }; @@ -62,7 +62,7 @@ namespace library Library(); Library(const std::string &, bool); - const std::string primary_key(); + const std::string primary_key() const; void read(File &); void write(File &); }; @@ -94,7 +94,7 @@ namespace library unsigned int, const std :: string &); Track(ImportData *, unsigned int, unsigned int, unsigned int, unsigned int); - const std::string primary_key(); + const std::string primary_key() const; void read(File &); void write(File &); }; diff --git a/include/tags.h b/include/tags.h index 9e2c8627..0eefc8d2 100644 --- a/include/tags.h +++ b/include/tags.h @@ -27,7 +27,7 @@ public: Artist(); Artist(const std::string &); - const std::string primary_key(); + const std::string primary_key() const; void read(File &); void write(File &); }; @@ -41,7 +41,7 @@ public: Album(); Album(const std::string &, unsigned int); - const std::string primary_key(); + const std::string primary_key() const; void read(File &); void write(File &); }; @@ -54,7 +54,7 @@ public: Genre(); Genre(const std::string &); - const std::string primary_key(); + const std::string primary_key() const; void read(File &); void write(File &); }; @@ -68,7 +68,7 @@ public: Library(); Library(const std::string &); - const std::string primary_key(); + const std::string primary_key() const; void read(File &); void write(File &); }; @@ -95,12 +95,12 @@ public: Track(); Track(const std::string &, Library *); - const std::string primary_key(); + const std::string primary_key() const; void read(File &); void write(File &); void tag(); - const std::string path(); + const std::string path() const; bool less_than(Track *, sort_t); }; diff --git a/lib/index.cpp b/lib/index.cpp index 536f3c4f..ff27f0f4 100644 --- a/lib/index.cpp +++ b/lib/index.cpp @@ -9,7 +9,7 @@ IndexEntry :: IndexEntry(const std::string &k) : key(k) {} -const std::string IndexEntry :: primary_key() +const std::string IndexEntry :: primary_key() const { return key; } diff --git a/lib/library.cpp b/lib/library.cpp index 58b64010..4fd005ec 100644 --- a/lib/library.cpp +++ b/lib/library.cpp @@ -60,7 +60,7 @@ library :: AGInfo :: AGInfo(DB_Type type, const std::string &str) throw -E_INVAL; } -const std::string library :: AGInfo :: primary_key() +const std::string library :: AGInfo :: primary_key() const { return name; } @@ -100,7 +100,7 @@ library :: Album :: Album(const std::string &str, unsigned int yr, unsigned int name_lower = filter :: lowercase(name); } -const std::string library :: Album :: primary_key() +const std::string library :: Album :: primary_key() const { std::stringstream ss; ss << name << "." << year; @@ -135,7 +135,7 @@ library :: Library :: Library(const std::string &path, bool is_enabled) { } -const std::string library :: Library :: primary_key() +const std::string library :: Library :: primary_key() const { return root_path; } @@ -211,7 +211,7 @@ library :: Track :: Track(struct ImportData *data, unsigned int lib, length_str = ss.str(); } -const std::string library :: Track :: primary_key() +const std::string library :: Track :: primary_key() const { return full_path; } diff --git a/lib/tags.cpp b/lib/tags.cpp index db898f36..7d383d39 100644 --- a/lib/tags.cpp +++ b/lib/tags.cpp @@ -28,7 +28,7 @@ Artist :: Artist(const std::string &s) { } -const std::string Artist :: primary_key() +const std::string Artist :: primary_key() const { return name; } @@ -59,7 +59,7 @@ Album :: Album(const std::string &s, unsigned int y) { } -const std::string Album :: primary_key() +const std::string Album :: primary_key() const { std::stringstream ss; ss << year << "." << name; @@ -93,7 +93,7 @@ Genre :: Genre(const std::string &s) { } -const std::string Genre :: primary_key() +const std::string Genre :: primary_key() const { return name; } @@ -127,7 +127,7 @@ Library :: Library(const std::string &s) { } -const std::string Library :: primary_key() +const std::string Library :: primary_key() const { return root_path; } @@ -159,7 +159,7 @@ Track :: Track(const std::string &f, Library *l) { } -const std::string Track :: primary_key() +const std::string Track :: primary_key() const { return path(); } @@ -176,7 +176,7 @@ void Track :: tag() { } -const std::string Track :: path() +const std::string Track :: path() const { return library->root_path + "/" + filepath; } diff --git a/tests/src/database.cpp b/tests/src/database.cpp index 34b959d2..8351b92f 100644 --- a/tests/src/database.cpp +++ b/tests/src/database.cpp @@ -20,7 +20,7 @@ public: IntEntry(); IntEntry(unsigned int); - const std::string primary_key(); + const std::string primary_key() const; void write(File &); void read(File &); void print(); @@ -28,7 +28,7 @@ public: IntEntry :: IntEntry() : val(0) {} IntEntry :: IntEntry(unsigned int v) : val(v) {} -const std::string IntEntry :: primary_key() +const std::string IntEntry :: primary_key() const { std::stringstream ss; ss << val; diff --git a/tests/src/db_entry.cpp b/tests/src/db_entry.cpp index fca5228c..213f712d 100644 --- a/tests/src/db_entry.cpp +++ b/tests/src/db_entry.cpp @@ -19,7 +19,7 @@ public: std::string key; IntEntry(unsigned int, const std::string &); - const std::string primary_key(); + const std::string primary_key() const; void write(File &); void read(File &); void print(); @@ -31,7 +31,7 @@ IntEntry :: IntEntry(unsigned int i, const std::string &s) key = s; } -const std::string IntEntry :: primary_key() +const std::string IntEntry :: primary_key() const { return key; } From f207ed94dfa0c54e7cfb5ae9b31bfe6191af1344 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Wed, 26 Mar 2014 17:19:40 -0400 Subject: [PATCH 14/93] filter: Make sure we don't crash when searching This only seems to happen when the user searches for something not in the filter. Signed-off-by: Anna Schumaker --- lib/filter.cpp | 8 ++++---- tests/filter | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/filter.cpp b/lib/filter.cpp index c18408c7..06102936 100644 --- a/lib/filter.cpp +++ b/lib/filter.cpp @@ -106,17 +106,17 @@ void filter :: search(const std::string &text, std::set &res) { std::list parsed; std::list::iterator it; + IndexEntry *found; parse_text(text, parsed); if (parsed.size() == 0) return; it = parsed.begin(); - try { - res = filter_index.find(*it)->values; - } catch (...) { + found = filter_index.find(*it); + if (!found) return; - } + res = found->values; for (it++; it != parsed.end(); it++) find_intersection(*it, res); diff --git a/tests/filter b/tests/filter index fa2cad0f..a6896b43 100755 --- a/tests/filter +++ b/tests/filter @@ -69,3 +69,4 @@ test_search "the" "4 5 6 8" test_search "the ch" "4 6" test_search "the CH" "4 6" test_search "the ch y" "4" +test_search "unknown terms" "" From 72cea29c61099fc25203c1656119fc658291e6ff Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Wed, 26 Mar 2014 17:20:25 -0400 Subject: [PATCH 15/93] tagdb: Find tags for each track Signed-off-by: Anna Schumaker --- include/tags.h | 3 +++ lib/tags.cpp | 50 ++++++++++++++++++++++++++++++++++--- tests/src/tags.cpp | 62 +++++++++++++++++++++++++++++++++++++++++++--- 3 files changed, 109 insertions(+), 6 deletions(-) diff --git a/include/tags.h b/include/tags.h index 0eefc8d2..aef07246 100644 --- a/include/tags.h +++ b/include/tags.h @@ -75,6 +75,9 @@ public: class Track : public DatabaseEntry { +private: + void set_length_str(); + public: Library *library; Artist *artist; diff --git a/lib/tags.cpp b/lib/tags.cpp index 7d383d39..2a7e9d4c 100644 --- a/lib/tags.cpp +++ b/lib/tags.cpp @@ -6,7 +6,8 @@ #include #include - +#include +#include Database artist_db("artist.db", true); Database album_db("album.db", true); @@ -151,10 +152,11 @@ void Library :: write(File &f) * */ -Track :: Track() {} +Track :: Track() : library(NULL), artist(NULL), album(NULL), genre(NULL){} Track :: Track(const std::string &f, Library *l) - : library(l), play_count(0), last_year(0), last_month(0), last_day(0), + : library(l), artist(NULL), album(NULL), genre(NULL), + play_count(0), last_year(0), last_month(0), last_day(0), filepath(f.substr(l->root_path.size() + 1)) { } @@ -172,8 +174,50 @@ void Track :: write(File &f) { } +void Track :: set_length_str() +{ + std::stringstream ss; + unsigned int minutes = length / 60; + unsigned int seconds = length % 60; + + ss << minutes << ":"; + if (seconds < 10) + ss << "0"; + ss << seconds; + length_str = ss.str(); +} + +static inline const std::string format_tag(const TagLib::String &str) +{ + return str.stripWhiteSpace().to8Bit(true); +} + void Track :: tag() { + TagLib :: Tag *tag; + TagLib :: AudioProperties *audio; + TagLib :: FileRef ref(path().c_str(), true, TagLib::AudioProperties::Fast); + + if (ref.isNull()) { + print("ERROR: Could not read tags for file %s\n", path().c_str()); + return; + } + + tag = ref.tag(); + audio = ref.audioProperties(); + + artist = artist_db.insert(Artist(format_tag(tag->artist()))); + album = album_db.insert(Album(format_tag(tag->album()), tag->year())); + genre = genre_db.insert(Genre(format_tag(tag->genre()))); + track = tag->track(); + length = audio->length(); + title = format_tag(tag->title()); + + title_lower = filter :: add(title, id); + set_length_str(); + + filter :: add(artist->name, id); + filter :: add(album->name, id); } const std::string Track :: path() const diff --git a/tests/src/tags.cpp b/tests/src/tags.cpp index 9dfcf266..ae610291 100644 --- a/tests/src/tags.cpp +++ b/tests/src/tags.cpp @@ -3,9 +3,11 @@ * Test a DatabaseEntry */ -#include +#include #include +#include +#include #include #include @@ -129,12 +131,66 @@ void track_test_tags(Track &track) test_results(track.last_day == 0, __LINE__); } -void track_test() +void track_test_search(const std::string &term, unsigned int expected, + unsigned int line) +{ + std::set s; + filter :: search(term, s); + test_results(s.size() == 1 && s.find(expected) != s.end(), line); +} + +void track_test_basics(Library *library) { - Library *library = tagdb :: add_library("Music"); Track track("Music/1.ogg", library); track_test_tags(track); + test_results(track.library == library, __LINE__); + test_results(track.artist == NULL, __LINE__); + test_results(track.album == NULL, __LINE__); + test_results(track.genre == NULL, __LINE__); + + track.tag(); + + track_test_tags(track); + test_results(track.library == library, __LINE__); + test_results(track.artist->name == "Artist", __LINE__); + test_results(track.album->name == "Album", __LINE__); + test_results(track.album->year == 2014, __LINE__); + test_results(track.genre->name == "Silence", __LINE__); + test_results(track.track == 1, __LINE__); + test_results(track.length == 1, __LINE__); + test_results(track.title == "One", __LINE__); + test_results(track.title_lower == "one", __LINE__); + + track_test_search("One", track.id, __LINE__); + track_test_search("Artist", track.id, __LINE__); + track_test_search("Album", track.id, __LINE__); +} + +void track_test_lenstrs(const std::string &file, const std::string &expected, + Library *library, unsigned int line) +{ + Track track(file, library); + track.tag(); + test_results(track.length_str == expected, line); +} + +void track_test_extras(Library *library) +{ + track_test_lenstrs("Music/1.ogg", "0:01", library, __LINE__); + track_test_lenstrs("Music/10.ogg", "0:10", library, __LINE__); + track_test_lenstrs("Music/15.ogg", "0:15", library, __LINE__); + track_test_lenstrs("Music/60.ogg", "1:00", library, __LINE__); + track_test_lenstrs("Music/90.ogg", "1:30", library, __LINE__); + track_test_lenstrs("Music/600.ogg", "10:00", library, __LINE__); + track_test_lenstrs("Music/666.ogg", "11:06", library, __LINE__); +} + +void track_test() +{ + Library *library = tagdb :: add_library("Music"); + track_test_basics(library); + track_test_extras(library); } From c15c5149bc26d093563254c6fab5f29a67e28ae2 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Wed, 26 Mar 2014 19:22:02 -0400 Subject: [PATCH 16/93] tags: Read and Write a Track tag Signed-off-by: Anna Schumaker --- lib/tags.cpp | 21 +++++++++++++++++++++ tests/src/tags.cpp | 24 +++++++++++++++++------- 2 files changed, 38 insertions(+), 7 deletions(-) diff --git a/lib/tags.cpp b/lib/tags.cpp index 2a7e9d4c..6e616c6f 100644 --- a/lib/tags.cpp +++ b/lib/tags.cpp @@ -168,10 +168,31 @@ const std::string Track :: primary_key() const void Track :: read(File &f) { + unsigned int library_id, artist_id, album_id, genre_id; + + f >> library_id >> artist_id >> album_id >> genre_id; + f >> track >> last_year >> last_month >> last_day; + f >> play_count >> length; + + title = f.getline(); + filepath = f.getline(); + + library = library_db.at(library_id); + artist = artist_db.at(artist_id); + album = album_db.at(album_id); + genre = genre_db.at(genre_id); + + title_lower = filter :: add(title, id); + set_length_str(); } void Track :: write(File &f) { + f << library->id << " " << artist->id << " " << album->id << " "; + f << genre->id << " " << track << " "; + f << last_year << " " << last_month << " " << last_day << " "; + f << play_count << " " << length << " " << title << std::endl; + f << filepath << std::endl; } void Track :: set_length_str() diff --git a/tests/src/tags.cpp b/tests/src/tags.cpp index ae610291..283965f6 100644 --- a/tests/src/tags.cpp +++ b/tests/src/tags.cpp @@ -120,11 +120,12 @@ void library_test() } -void track_test_tags(Track &track) +void track_test_tags(Track &track, Library *library) { test_results(track.filepath == "1.ogg", __LINE__); test_results(track.path() == "Music/1.ogg", __LINE__); test_results(track.primary_key() == "Music/1.ogg", __LINE__); + test_results(track.library == library, __LINE__); test_results(track.play_count == 0, __LINE__); test_results(track.last_year == 0, __LINE__); test_results(track.last_month == 0, __LINE__); @@ -141,18 +142,15 @@ void track_test_search(const std::string &term, unsigned int expected, void track_test_basics(Library *library) { - Track track("Music/1.ogg", library); - - track_test_tags(track); - test_results(track.library == library, __LINE__); + Track track("Music/1.ogg", library), track2; + track_test_tags(track, library); test_results(track.artist == NULL, __LINE__); test_results(track.album == NULL, __LINE__); test_results(track.genre == NULL, __LINE__); track.tag(); - track_test_tags(track); - test_results(track.library == library, __LINE__); + track_test_tags(track, library); test_results(track.artist->name == "Artist", __LINE__); test_results(track.album->name == "Album", __LINE__); test_results(track.album->year == 2014, __LINE__); @@ -165,6 +163,18 @@ void track_test_basics(Library *library) track_test_search("One", track.id, __LINE__); track_test_search("Artist", track.id, __LINE__); track_test_search("Album", track.id, __LINE__); + + save_tag("track.txt", track); + load_tag("track.txt", track2); + track_test_tags(track2, library); + test_results(track.artist == track2.artist, __LINE__); + test_results(track.album == track2.album, __LINE__); + test_results(track.genre == track2.genre, __LINE__); + test_results(track.track == track2.track, __LINE__); + test_results(track.length == track2.length, __LINE__); + test_results(track.length_str == track2.length_str, __LINE__); + test_results(track.title == track2.title, __LINE__); + test_results(track.title_lower == track2.title_lower, __LINE__); } void track_test_lenstrs(const std::string &file, const std::string &expected, From ac338c5704f30dbe26f24b9ddfedddf231c51b78 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Wed, 26 Mar 2014 20:14:00 -0400 Subject: [PATCH 17/93] track: Implement comparison function Used later for sorting queues. Signed-off-by: Anna Schumaker --- DESIGN | 9 ++++-- include/tags.h | 2 +- lib/tags.cpp | 55 ++++++++++++++++++++++++++++++-- tests/src/tags.cpp | 79 ++++++++++++++++++++++++++++++++++++++++++++-- 4 files changed, 137 insertions(+), 8 deletions(-) diff --git a/DESIGN b/DESIGN index cf449ef9..fc71bba1 100644 --- a/DESIGN +++ b/DESIGN @@ -848,10 +848,13 @@ Track Tag: Combine library->path and filepath to find the full path to the audio file. - bool Track :: less_than(Track *rhs, sort_t field); + int Track :: less_than(Track *rhs, sort_t field); Compare the requested field for this Track instance to the same - field in the provided track. Return true if we find that this - instance is less than rhs and false otherwise. + field in the provided track. + + Return -1 if this < rhs. + Return 0 if this == rhs. + Return 1 if this > rhs. diff --git a/include/tags.h b/include/tags.h index aef07246..ec392cb2 100644 --- a/include/tags.h +++ b/include/tags.h @@ -104,7 +104,7 @@ public: void tag(); const std::string path() const; - bool less_than(Track *, sort_t); + int less_than(Track *, sort_t); }; diff --git a/lib/tags.cpp b/lib/tags.cpp index 6e616c6f..55d759a5 100644 --- a/lib/tags.cpp +++ b/lib/tags.cpp @@ -246,9 +246,60 @@ const std::string Track :: path() const return library->root_path + "/" + filepath; } -bool Track :: less_than(Track *rhs, sort_t field) +/* + * Returns: + * 0: lhs == rhs + * < 0: lhs < rhs, or rhs is empty + * > 0: lhs > rhs, or lhs is empty + */ +static inline int compare_string(const std::string &a, const std::string &b) { - return false; + if (a.size() == 0) + return 1; + else if (b.size() == 0) + return -1; + return a.compare(b); +} + +static inline int compare_uint(unsigned int a, unsigned int b) +{ + if (a == b) + return 0; + if (a < b) + return -1; + return 1; +} + +int Track :: less_than(Track *rhs, sort_t field) +{ + int ret; + switch (field) { + case SORT_ARTIST: + return compare_string(artist->lower, rhs->artist->lower); + case SORT_ALBUM: + return compare_string(album->lower, rhs->album->lower); + case SORT_COUNT: + return compare_uint(play_count, rhs->play_count); + case SORT_GENRE: + return compare_string(genre->lower, rhs->genre->lower); + case SORT_LENGTH: + return compare_uint(length, rhs->length); + case SORT_PLAYED: + ret = compare_uint(last_year, rhs->last_year); + if (ret == 0) { + ret = compare_uint(last_month, rhs->last_month); + if (ret == 0) + ret = compare_uint(last_day, rhs->last_day); + } + return ret; + case SORT_TITLE: + return compare_string(title_lower, rhs->title_lower); + case SORT_TRACK: + return compare_uint(track, rhs->track); + case SORT_YEAR: + return compare_uint(album->year, rhs->album->year); + } + return 0; } diff --git a/tests/src/tags.cpp b/tests/src/tags.cpp index 283965f6..d42e837e 100644 --- a/tests/src/tags.cpp +++ b/tests/src/tags.cpp @@ -185,7 +185,7 @@ void track_test_lenstrs(const std::string &file, const std::string &expected, test_results(track.length_str == expected, line); } -void track_test_extras(Library *library) +void track_test_lenstrs(Library *library) { track_test_lenstrs("Music/1.ogg", "0:01", library, __LINE__); track_test_lenstrs("Music/10.ogg", "0:10", library, __LINE__); @@ -196,11 +196,86 @@ void track_test_extras(Library *library) track_test_lenstrs("Music/666.ogg", "11:06", library, __LINE__); } +void test_track_sorting() +{ + Track track1, track2; + Artist artist1("a"), artist2("b"); + Album album1("a", 2000), album2("b", 2014); + Genre genre1("a"), genre2("b"); + + track1.artist = &artist1; + track1.album = &album1; + track1.genre = &genre1; + track1.length = 10; + track1.play_count = 0; + track1.last_year = 2013; + track1.title_lower = "a"; + track1.track = 1; + + track2.artist = &artist2; + track2.album = &album2; + track2.genre = &genre2; + track2.length = 20; + track2.play_count = 1; + track2.last_year = 2014; + track2.title_lower = "b"; + track2.track = 2; + + test_results(track1.less_than(&track1, SORT_ARTIST) == 0, __LINE__); + test_results(track1.less_than(&track2, SORT_ARTIST) < 0, __LINE__); + test_results(track2.less_than(&track1, SORT_ARTIST) > 0, __LINE__); + + test_results(track1.less_than(&track1, SORT_ALBUM) == 0, __LINE__); + test_results(track1.less_than(&track2, SORT_ALBUM) < 0, __LINE__); + test_results(track2.less_than(&track1, SORT_ALBUM) > 0, __LINE__); + + test_results(track1.less_than(&track1, SORT_GENRE) == 0, __LINE__); + test_results(track1.less_than(&track2, SORT_GENRE) < 0, __LINE__); + test_results(track2.less_than(&track1, SORT_GENRE) > 0, __LINE__); + + test_results(track1.less_than(&track1, SORT_LENGTH) == 0, __LINE__); + test_results(track1.less_than(&track2, SORT_LENGTH) < 0, __LINE__); + test_results(track2.less_than(&track1, SORT_LENGTH) > 0, __LINE__); + + test_results(track1.less_than(&track1, SORT_PLAYED) == 0, __LINE__); + test_results(track1.less_than(&track2, SORT_PLAYED) < 0, __LINE__); + test_results(track2.less_than(&track1, SORT_PLAYED) > 0, __LINE__); + + track1.last_year = 2014; + track1.last_month = 3; + track2.last_month = 4; + + test_results(track1.less_than(&track1, SORT_PLAYED) == 0, __LINE__); + test_results(track1.less_than(&track2, SORT_PLAYED) < 0, __LINE__); + test_results(track2.less_than(&track1, SORT_PLAYED) > 0, __LINE__); + + track1.last_month = 4; + track1.last_day = 10; + track2.last_day = 11; + + test_results(track1.less_than(&track1, SORT_PLAYED) == 0, __LINE__); + test_results(track1.less_than(&track2, SORT_PLAYED) < 0, __LINE__); + test_results(track2.less_than(&track1, SORT_PLAYED) > 0, __LINE__); + + test_results(track1.less_than(&track1, SORT_TITLE) == 0, __LINE__); + test_results(track1.less_than(&track2, SORT_TITLE) < 0, __LINE__); + test_results(track2.less_than(&track1, SORT_TITLE) > 0, __LINE__); + + test_results(track1.less_than(&track1, SORT_TRACK) == 0, __LINE__); + test_results(track1.less_than(&track2, SORT_TRACK) < 0, __LINE__); + test_results(track2.less_than(&track1, SORT_TRACK) > 0, __LINE__); + + test_results(track1.less_than(&track1, SORT_YEAR) == 0, __LINE__); + test_results(track1.less_than(&track2, SORT_YEAR) < 0, __LINE__); + test_results(track2.less_than(&track1, SORT_YEAR) > 0, __LINE__); +} + void track_test() { Library *library = tagdb :: add_library("Music"); track_test_basics(library); - track_test_extras(library); + track_test_lenstrs(library); + test_track_sorting(); } From 2a01ce51595c2bf893936edec407240d791ab334 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Wed, 26 Mar 2014 20:29:45 -0400 Subject: [PATCH 18/93] tagdb: Import track information This allows upgrading from a previous Ocarina version. Signed-off-by: Anna Schumaker --- DESIGN | 7 +++---- include/tags.h | 9 +++++++++ lib/tags.cpp | 14 ++++++++++++++ tests/src/tagdb.cpp | 18 ++++++++++++++++++ 4 files changed, 44 insertions(+), 4 deletions(-) diff --git a/DESIGN b/DESIGN index fc71bba1..90cbb5bd 100644 --- a/DESIGN +++ b/DESIGN @@ -540,11 +540,10 @@ Tag Database: - Import data: struct ImportData { - std::string filepath; - unsigned int last_day; - unsigned int last_month; unsigned int last_year; - unsigned int count; + unsigned int last_month; + unsigned int last_day; + unsigned int play_count; }; - Databases: diff --git a/include/tags.h b/include/tags.h index ec392cb2..82043015 100644 --- a/include/tags.h +++ b/include/tags.h @@ -20,6 +20,14 @@ enum sort_t { }; +struct ImportData { + unsigned int last_year; + unsigned int last_month; + unsigned int last_day; + unsigned int play_count; +}; + + class Artist : public DatabaseEntry { public: std::string name; @@ -112,6 +120,7 @@ namespace tagdb { Track *add_track(const std::string &, Library *); + Track *import_track(const std::string &, Library *, const ImportData &); Library *add_library(const std::string &); void remove_track(unsigned int); void remove_library(unsigned int); diff --git a/lib/tags.cpp b/lib/tags.cpp index 55d759a5..ce6e22e2 100644 --- a/lib/tags.cpp +++ b/lib/tags.cpp @@ -316,6 +316,20 @@ Track *tagdb :: add_track(const std::string &filepath, Library *library) Track *track = track_db.insert(Track(filepath, library)); if (size == track_db.size()) return NULL; + track->tag(); + return track; +} + +Track *tagdb :: import_track(const std::string &filepath, Library *library, + const ImportData &import) +{ + Track *track = add_track(filepath, library); + if (track) { + track->last_year = import.last_year; + track->last_month = import.last_month; + track->last_day = import.last_day; + track->play_count = import.play_count; + } return track; } diff --git a/tests/src/tagdb.cpp b/tests/src/tagdb.cpp index 747c2823..93d72567 100644 --- a/tests/src/tagdb.cpp +++ b/tests/src/tagdb.cpp @@ -58,6 +58,7 @@ int main(int argc, char **argv) library = tagdb :: add_library("Music"); Track *track = tagdb :: add_track("Music/1.ogg", library); test_track_size(1, __LINE__); + test_results(track->track == 1, __LINE__); Track *track_null = tagdb :: add_track("Music/1.ogg", library); test_track_size(1, __LINE__); @@ -97,5 +98,22 @@ int main(int argc, char **argv) tagdb :: remove_library(library->id); test_track_size(0, __LINE__); + + /** + * Test importing a track + */ + ImportData import; + import.last_year = 2014; + import.last_month = 4; + import.last_day = 1; + import.play_count = 7; + + library = tagdb :: add_library("Music"); + track = tagdb :: import_track("Music/1.ogg", library, import); + test_results(track->last_year == 2014, __LINE__); + test_results(track->last_month == 4, __LINE__); + test_results(track->last_day == 1, __LINE__); + test_results(track->play_count == 7, __LINE__); + return 0; } From 2a3d4ca2e0c12c3471e29a6859ed8f6273c1eb0d Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Fri, 28 Mar 2014 17:04:32 -0400 Subject: [PATCH 19/93] tagdb: Implement init() and commit() To save and restore the databases. Signed-off-by: Anna Schumaker --- TODO | 6 ------ include/tags.h | 3 +++ lib/tags.cpp | 14 ++++++++++++++ tests/src/tagdb.cpp | 36 ++++++++++++++++++++++++++++++++---- tests/tag_db | 35 +++++++++++++++++++++++++++++++++++ 5 files changed, 84 insertions(+), 10 deletions(-) diff --git a/TODO b/TODO index 3798032e..e5045903 100644 --- a/TODO +++ b/TODO @@ -86,14 +86,8 @@ Future work: Calculate value after first playback? Store in library :: Track structure - - Autosave databases - Artist, album, genere and library path don't change often so - saving on every add / remove won't be a huge performance hit - and may actually be more efficient in the long run. - - Playqueue and database inherit from common class - "About" dialog - Investigate "Bulk insert" callbacks for performance - Initialize PQs with multiple flags - - Prefill Song structures in each library :: Track - Use "friend" class for valid and id flags of a DatabaseEntry diff --git a/include/tags.h b/include/tags.h index 82043015..6ebaa390 100644 --- a/include/tags.h +++ b/include/tags.h @@ -119,6 +119,9 @@ public: namespace tagdb { + void init(); + void commit(); + Track *add_track(const std::string &, Library *); Track *import_track(const std::string &, Library *, const ImportData &); Library *add_library(const std::string &); diff --git a/lib/tags.cpp b/lib/tags.cpp index ce6e22e2..4c30c5c8 100644 --- a/lib/tags.cpp +++ b/lib/tags.cpp @@ -310,6 +310,20 @@ int Track :: less_than(Track *rhs, sort_t field) * */ +void tagdb :: init() +{ + artist_db.load(); + album_db.load(); + genre_db.load(); + library_db.load(); + track_db.load(); +} + +void tagdb :: commit() +{ + track_db.save(); +} + Track *tagdb :: add_track(const std::string &filepath, Library *library) { unsigned int size = track_db.size(); diff --git a/tests/src/tagdb.cpp b/tests/src/tagdb.cpp index 93d72567..8097e173 100644 --- a/tests/src/tagdb.cpp +++ b/tests/src/tagdb.cpp @@ -7,6 +7,7 @@ #include #include +#include unsigned int test_num = 0; @@ -34,28 +35,52 @@ void test_track_size(unsigned int expected, unsigned int line) int main(int argc, char **argv) { + char c; + bool init_called = false; + unsigned int id; + + while ((c = getopt(argc, argv, "i")) != -1) { + switch (c) { + case 'i': + init_called = true; + tagdb :: init(); + test_library_size(1, __LINE__); + test_track_size(0, __LINE__); + default: + break; + } + } + + /** * Initial library checks */ - Library *library = tagdb :: add_library("Music"); + Library *library, *library_null; + if (init_called == true) { + library = *(tagdb :: get_library_db().begin()); + goto test_tracks; + } + + library = tagdb :: add_library("Music"); test_results(library->root_path == "Music", __LINE__); test_library_size(1, __LINE__); - Library *library_null = tagdb :: add_library("Music"); + library_null = tagdb :: add_library("Music"); test_results(library_null == NULL, __LINE__); test_library_size(1, __LINE__); - unsigned int id = library->id; + id = library->id; tagdb :: remove_library(id); test_library_size(0, __LINE__); tagdb :: remove_library(id); test_library_size(0, __LINE__); + library = tagdb :: add_library("Music"); +test_tracks: /** * Test adding / removing tracks */ - library = tagdb :: add_library("Music"); Track *track = tagdb :: add_track("Music/1.ogg", library); test_track_size(1, __LINE__); test_results(track->track == 1, __LINE__); @@ -115,5 +140,8 @@ int main(int argc, char **argv) test_results(track->last_day == 1, __LINE__); test_results(track->play_count == 7, __LINE__); + if (init_called == true) + tagdb :: commit(); + return 0; } diff --git a/tests/tag_db b/tests/tag_db index 2e29ff50..a03482a0 100755 --- a/tests/tag_db +++ b/tests/tag_db @@ -9,6 +9,22 @@ function test_tag ./src/tags.run "$2" } +function test_db_exists +{ + if [ ! -f $DATA_DIR/$1.db ]; then + echo "ERROR: $DATA_DIR/$1.db doesn't exist!" + exit 1 + fi +} + +function test_db_not_exists +{ + if [ -f $DATA_DIR/$1.db ]; then + echo "ERROR: $DATA_DIR/$1.db shouldn't exist!" + exit 1 + fi +} + test_tag "Artist" "-a" echo test_tag "Album" "-A" @@ -20,6 +36,25 @@ echo test_tag "Track" "-t" +rm -rf $DATA_DIR/*.db + echo new_test "Test TagDB" ./src/tagdb.run + +test_db_exists artist +test_db_exists album +test_db_exists genre +test_db_exists library +test_db_not_exists track + + +echo +new_test "Test TagDB (call init)" +./src/tagdb.run -i + +test_db_exists artist +test_db_exists album +test_db_exists genre +test_db_exists library +test_db_exists track From a14f6145a51da12986b19239d85369c86eeb95e0 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sat, 29 Mar 2014 11:44:39 -0400 Subject: [PATCH 20/93] Switch over to the new tagdb implementation Signed-off-by: Anna Schumaker --- gui/collection_mgr.cpp | 12 +- gui/gui.cpp | 14 +- gui/model.cpp | 38 ++-- include/callback.h | 6 +- include/library.h | 95 +------- include/ocarina.h | 4 +- include/playqueue.h | 14 +- include/tags.h | 2 + lib/audio.cpp | 29 ++- lib/callback.cpp | 4 +- lib/library.cpp | 504 +++++++---------------------------------- lib/playqueue.cpp | 95 ++------ lib/tags.cpp | 10 + 13 files changed, 174 insertions(+), 653 deletions(-) diff --git a/gui/collection_mgr.cpp b/gui/collection_mgr.cpp index 557b6426..cd17724f 100644 --- a/gui/collection_mgr.cpp +++ b/gui/collection_mgr.cpp @@ -96,19 +96,19 @@ void on_collection_toggled(const Glib::ustring &path) row[collection_cols.c_col_enabled]); } -static void on_library_add(unsigned int id, library :: Library *path) +static void on_library_add(unsigned int id, Library *library) { Gtk::TreeModel::Row row; Glib::RefPtr list = get_collection_list(); row = *(list->append()); row[collection_cols.c_col_id] = id; - row[collection_cols.c_col_enabled] = path->enabled; - row[collection_cols.c_col_size] = path->size; - row[collection_cols.c_col_path] = path->root_path; + row[collection_cols.c_col_enabled] = library->enabled; + row[collection_cols.c_col_size] = library->count; + row[collection_cols.c_col_path] = library->root_path; } -static void on_library_update(unsigned int id, library :: Library *path) +static void on_library_update(unsigned int id, Library *library) { Gtk::TreeModel::Row row; Glib::RefPtr list = get_collection_list(); @@ -118,7 +118,7 @@ static void on_library_update(unsigned int id, library :: Library *path) it != children.end(); it++) { row = *it; if (row[collection_cols.c_col_id] == id) - row[collection_cols.c_col_size] = path->size; + row[collection_cols.c_col_size] = library->count; } } diff --git a/gui/gui.cpp b/gui/gui.cpp index 9af95c46..959e62f0 100644 --- a/gui/gui.cpp +++ b/gui/gui.cpp @@ -64,7 +64,7 @@ static void set_label_text(Gtk::Label *label, const std::string &size, Glib::Markup::escape_text(text) + ""); } -static void on_track_loaded(library :: Song &song) +static void on_track_loaded(Track *track) { Gtk::ToggleButton *ban = get_widget("o_ban"); Gtk::ToggleButton *fav = get_widget("o_favorite"); @@ -73,16 +73,16 @@ static void on_track_loaded(library :: Song &song) Gtk::Label *album = get_widget("o_album"); Gtk::Label *duration = get_widget("o_total_time"); - set_label_text(title, "xx-large", song.track->title); - set_label_text(artist, "x-large", "By: " + song.artist->name); - set_label_text(album, "x-large", "From: " + song.album->name); - duration->set_text(song.track->length_str); + set_label_text(title, "xx-large", track->title); + set_label_text(artist, "x-large", "By: " + track->artist->name); + set_label_text(album, "x-large", "From: " + track->album->name); + duration->set_text(track->length_str); std::set ids = playlist :: get_tracks("Banned"); - bool banned = ids.find(song.track_id) != ids.end(); + bool banned = ids.find(track->id) != ids.end(); ids = playlist :: get_tracks("Favorites"); - bool favorite = ids.find(song.track_id) != ids.end(); + bool favorite = ids.find(track->id) != ids.end(); ban_connection.block(); fav_connection.block(); diff --git a/gui/model.cpp b/gui/model.cpp index 1d61bf10..07fee583 100644 --- a/gui/model.cpp +++ b/gui/model.cpp @@ -110,7 +110,7 @@ GType PlayqueueModel::get_column_type_vfunc(int index) const } } -void PlayqueueModel::get_value_uint(struct library::Song &song, int column, +void PlayqueueModel::get_value_uint(Track *track, int column, Glib::ValueBase &value) const { Glib::Value specific; @@ -118,20 +118,20 @@ void PlayqueueModel::get_value_uint(struct library::Song &song, int column, switch (column) { case 0: - specific.set(song.track->track); + specific.set(track->track); break; case 5: - specific.set(song.album->year); + specific.set(track->album->year); break; case 7: - specific.set(song.track->play_count); + specific.set(track->play_count); } value.init(Glib::Value::value_type()); value = specific; } -void PlayqueueModel::get_value_str(struct library::Song &song, int column, +void PlayqueueModel::get_value_str(Track *track, int column, Glib::ValueBase &value) const { std::stringstream ss; @@ -140,32 +140,32 @@ void PlayqueueModel::get_value_str(struct library::Song &song, int column, switch (column) { case 1: - specific.set(song.track->title); + specific.set(track->title); break; case 2: - specific.set(song.track->length_str); + specific.set(track->length_str); break; case 3: - specific.set(song.artist->name); + specific.set(track->artist->name); break; case 4: - specific.set(song.album->name); + specific.set(track->album->name); break; case 6: - specific.set(song.genre->name); + specific.set(track->genre->name); break; case 8: - if (song.track->play_count == 0) + if (track->play_count == 0) specific.set("Never"); else { - ss << song.track->last_month << " / "; - ss << song.track->last_day << " / "; - ss << song.track->last_year; + ss << track->last_month << " / "; + ss << track->last_day << " / "; + ss << track->last_year; specific.set(ss.str()); } break; case 9: - specific.set(Glib::Markup::escape_text(song.track->full_path)); + specific.set(Glib::Markup::escape_text(track->path())); } value.init(Glib::Value::value_type()); @@ -177,7 +177,7 @@ void PlayqueueModel::get_value_vfunc(const Gtk::TreeIter &iter, int column, Glib::ValueBase &value) const { unsigned int row; - struct library::Song song; + Track *track; if (!check_iter_validity(iter)) return; @@ -186,16 +186,16 @@ void PlayqueueModel::get_value_vfunc(const Gtk::TreeIter &iter, int column, return; row = GPOINTER_TO_UINT(iter.gobj()->user_data); - library :: lookup((*queue)[row], &song); + track = tagdb :: lookup((*queue)[row]); switch (column) { case 0: case 5: case 7: - get_value_uint(song, column, value); + get_value_uint(track, column, value); break; default: - get_value_str(song, column, value); + get_value_str(track, column, value); } } diff --git a/include/callback.h b/include/callback.h index 2a3a41e4..230643af 100644 --- a/include/callback.h +++ b/include/callback.h @@ -12,7 +12,7 @@ struct Callbacks { /* Audio callbacks */ void (*on_play)(); void (*on_pause)(); - void (*on_track_loaded)(library :: Song &); + void (*on_track_loaded)(Track *); void (*on_pause_count_changed)(bool, unsigned int); /* Deck callbacks */ @@ -20,8 +20,8 @@ struct Callbacks { void (*on_pq_removed)(Playqueue *); /* Library callbacks */ - void (*on_library_add)(unsigned int, library :: Library *); - void (*on_library_update)(unsigned int, library :: Library *); + void (*on_library_add)(unsigned int, Library *); + void (*on_library_update)(unsigned int, Library *); void (*on_library_track_add)(unsigned int); void (*on_library_track_del)(unsigned int); void (*on_library_track_updated)(unsigned int); diff --git a/include/library.h b/include/library.h index 003c8222..de7aded8 100644 --- a/include/library.h +++ b/include/library.h @@ -4,14 +4,9 @@ #ifndef OCARINA_LIBRARY_H #define OCARINA_LIBRARY_H -#include +#include #include -#include -#include - -struct ImportData; - namespace library { @@ -24,100 +19,12 @@ namespace library }; - class AGInfo : public DatabaseEntry { - public: - DB_Type db_type; - std :: string name; - std :: string key_lower; - - AGInfo(); - AGInfo(DB_Type, TagLib :: Tag *); - AGInfo(DB_Type, const std::string &); - const std::string primary_key() const; - void read(File &); - void write(File &); - }; - - - class Album : public DatabaseEntry { - public: - std :: string name; - std :: string name_lower; - unsigned int year; - - Album(); - Album(TagLib :: Tag *, unsigned int); - Album(const std::string &, unsigned int, unsigned int); - const std::string primary_key() const; - void read(File &); - void write(File &); - }; - - - class Library : public DatabaseEntry { - public: - std::string root_path; - unsigned int size; - bool enabled; - - Library(); - Library(const std::string &, bool); - const std::string primary_key() const; - void read(File &); - void write(File &); - }; - - - class Track : public DatabaseEntry { - public: - unsigned int library_id; - unsigned int artist_id; - unsigned int album_id; - unsigned int genre_id; - - unsigned int track; - unsigned int last_year; - unsigned int last_month; - unsigned int last_day; - unsigned int play_count; - unsigned int length; - - std :: string title; - std :: string title_lower; - std :: string length_str; - std :: string filepath; - std :: string full_path; - - Track(); - Track(TagLib :: Tag *, TagLib :: AudioProperties *, - unsigned int, unsigned int, unsigned int, - unsigned int, const std :: string &); - Track(ImportData *, unsigned int, unsigned int, - unsigned int, unsigned int); - const std::string primary_key() const; - void read(File &); - void write(File &); - }; - - - struct Song { - unsigned int track_id; - library :: Album *album; - library :: AGInfo *artist; - library :: AGInfo *genre; - library :: Library *library; - library :: Track *track; - }; - - void init(); void add_path(const std::string &); void del_path(unsigned int); void update_path(unsigned int); void update_all(); void set_enabled(unsigned int, bool); - void lookup(unsigned int, library :: Song *); - Library *lookup_path(unsigned int); void import(); void track_played(unsigned int); #ifdef CONFIG_TEST diff --git a/include/ocarina.h b/include/ocarina.h index c5a35f8d..7815c5ac 100644 --- a/include/ocarina.h +++ b/include/ocarina.h @@ -21,8 +21,8 @@ Gtk::Window *ocarina_init(int *, char ***); class PlayqueueModel : public Gtk::TreeModel, public Glib::Object { private: void increment_stamp(); - void get_value_uint(struct library::Song &, int, Glib::ValueBase &) const; - void get_value_str(struct library::Song &, int, Glib::ValueBase &) const; + void get_value_uint(Track *, int, Glib::ValueBase &) const; + void get_value_str(Track *, int, Glib::ValueBase &) const; bool check_iter_validity(const Gtk::TreeIter &) const; protected: diff --git a/include/playqueue.h b/include/playqueue.h index 857ede51..ec943163 100644 --- a/include/playqueue.h +++ b/include/playqueue.h @@ -17,18 +17,6 @@ enum playqueue_flags { PQ_DISABLE_CHANGED_SIZE = (1 << 31), }; -enum sort_t { - SORT_ARTIST, - SORT_ALBUM, - SORT_COUNT, - SORT_GENRE, - SORT_LENGTH, - SORT_PLAYED, - SORT_TITLE, - SORT_TRACK, - SORT_YEAR, -}; - struct sort_info { sort_t field; bool ascending; @@ -42,7 +30,7 @@ private: unsigned int cur; unsigned int length; - unsigned int find_sorted_id(library :: Song &); + unsigned int find_sorted_id(Track *); void _add_sort(sort_t, bool); public: diff --git a/include/tags.h b/include/tags.h index 6ebaa390..64ea6f27 100644 --- a/include/tags.h +++ b/include/tags.h @@ -121,6 +121,7 @@ namespace tagdb void init(); void commit(); + void commit_library(); Track *add_track(const std::string &, Library *); Track *import_track(const std::string &, Library *, const ImportData &); @@ -128,6 +129,7 @@ namespace tagdb void remove_track(unsigned int); void remove_library(unsigned int); Track *lookup(unsigned int); + Library *lookup_library(unsigned int); Database &get_track_db(); Database &get_library_db(); diff --git a/lib/audio.cpp b/lib/audio.cpp index 2610403a..eb06602a 100644 --- a/lib/audio.cpp +++ b/lib/audio.cpp @@ -26,11 +26,10 @@ static void parse_error(GstMessage *error) { GError *err; gchar *debug; - library :: Song song; + Track *track = tagdb :: lookup(cur_trackid); - library :: lookup(cur_trackid, &song); gst_message_parse_error(error, &err, &debug); - g_print("Error playing file: %s\n", song.track->primary_key().c_str()); + g_print("Error playing file: %s\n", track->path().c_str()); g_print("Error: %s\n", err->message); g_error_free(err); g_free(debug); @@ -91,11 +90,11 @@ static void save_state() f_cur_track.close(); } -static bool load_song(library :: Song &song) +static bool load_song(Track *track) { GstState state; gchar *uri; - std::string filepath = song.library->root_path + "/" + song.track->filepath; + std::string filepath = track->path(); if (o_should_pause == true) { state = GST_STATE_PAUSED; @@ -110,7 +109,7 @@ static bool load_song(library :: Song &song) g_object_set(G_OBJECT(ocarina_player), "uri", uri, NULL); g_free(uri); - get_callbacks()->on_track_loaded(song); + get_callbacks()->on_track_loaded(track); return change_state(state); } @@ -191,13 +190,13 @@ void audio :: seek_to(long pos) void audio :: next() { - library :: Song song; + Track *track; unsigned int id; track_loaded = false; id = deck :: next(); - library :: lookup(id, &song); - load_song(song); + track = tagdb :: lookup(id); + load_song(track); track_loaded = true; cur_trackid = id; @@ -209,33 +208,33 @@ void audio :: next() void audio :: previous() { - library :: Song song; + Track *track; unsigned int id; id = o_recently_played.next(); if (id == cur_trackid) return; - library :: lookup(id, &song); - load_song(song); + track = tagdb :: lookup(id); + load_song(track); cur_trackid = id; save_state(); } void audio :: load_trackid(unsigned int track_id) { - library :: Song song; + Track *track; if ((track_id == cur_trackid) && (track_loaded == true)) return; track_loaded = false; try { - library :: lookup(track_id, &song); + track = tagdb :: lookup(track_id); } catch (int err) { return; } - load_song(song); + load_song(track); track_loaded = true; cur_trackid = track_id; diff --git a/lib/callback.cpp b/lib/callback.cpp index 7d2394f5..d732934e 100644 --- a/lib/callback.cpp +++ b/lib/callback.cpp @@ -7,10 +7,10 @@ static void no_op() {} static void no_op(unsigned int) {} static void no_op(bool, unsigned int) {} -static void no_op(unsigned int id, library :: Library *path) {} +static void no_op(unsigned int id, Library *path) {} static void no_op(Playqueue *, unsigned int) {} static void no_op(Playqueue *) {} -static void no_op(library :: Song &) {} +static void no_op(Track *) {} static struct Callbacks callbacks = { diff --git a/lib/library.cpp b/lib/library.cpp index 4fd005ec..1cb0bb1f 100644 --- a/lib/library.cpp +++ b/lib/library.cpp @@ -11,319 +11,40 @@ #include #include -static Database album_db("album.db", false); -static Database artist_db("artist.db", false); -static Database genre_db("genre.db", false); -static Database track_db("track.db", false); -static Database library_db("library.db", false); - -struct ImportData { - std::string filepath; - std::string title; - unsigned int track; - unsigned int last_day; - unsigned int last_month; - unsigned int last_year; - unsigned int length; - unsigned int count; -}; - - -/* - * library :: Artist: Artist tag information - */ - -library :: AGInfo :: AGInfo() -{ -} - -library :: AGInfo :: AGInfo(DB_Type type, TagLib :: Tag *tag) - : db_type(type) -{ - if (db_type == DB_ARTIST) - name = tag->artist().stripWhiteSpace().to8Bit(true); - else if (db_type == DB_GENRE) - name = tag->genre().stripWhiteSpace().to8Bit(true); - else - throw -E_INVAL; - - key_lower = filter :: lowercase(name); -} - -library :: AGInfo :: AGInfo(DB_Type type, const std::string &str) - : db_type(type) -{ - if ((db_type == DB_ARTIST) || (db_type == DB_GENRE)) { - name = str; - key_lower = filter :: lowercase(name); - } else - throw -E_INVAL; -} - -const std::string library :: AGInfo :: primary_key() const -{ - return name; -} - -void library :: AGInfo :: read(File &f) -{ - name = f.getline(); - key_lower = filter :: lowercase(name); -} - -void library :: AGInfo :: write(File &f) -{ - f << name; -} - - - -/* - * library :: Album: Album tag information - */ - -library :: Album :: Album() - : name(""), year(0) -{ -} - -library :: Album :: Album(TagLib :: Tag *tag, unsigned int artist) - : name(tag->album().stripWhiteSpace().to8Bit(true)), - year(tag->year()) -{ - name_lower = filter :: lowercase(name); -} - -library :: Album :: Album(const std::string &str, unsigned int yr, unsigned int artist) - : name(str), year(yr) -{ - name_lower = filter :: lowercase(name); -} - -const std::string library :: Album :: primary_key() const -{ - std::stringstream ss; - ss << name << "." << year; - return ss.str(); -} - -void library :: Album :: read(File &f) -{ - f >> year; - name = f.getline(); - name_lower = filter :: lowercase(name); -} - -void library :: Album :: write(File &f) -{ - f << year << " " << name; -} - - - -/* - * library :: Library: Basic information about each directory in the library - */ - -library :: Library :: Library() - : root_path(""), size(0), enabled(false) -{ -} - -library :: Library :: Library(const std::string &path, bool is_enabled) - : root_path(path), size(0), enabled(is_enabled) -{ -} - -const std::string library :: Library :: primary_key() const -{ - return root_path; -} - -void library :: Library :: read(File &f) -{ - f >> enabled; - root_path = f.getline(); - size = 0; -} - -void library :: Library :: write(File &f) -{ - f << enabled << " " << root_path; -} - - - -/* - * library :: Track: Track tag information - */ - -library :: Track :: Track() - : library_id(0), artist_id(0), album_id(0), genre_id(0) -{ -} - -library :: Track :: Track(TagLib :: Tag *tag, TagLib :: AudioProperties *audio, - unsigned int lib, unsigned int artist, unsigned int album, - unsigned int genre, const std :: string &path) - : library_id(lib), artist_id(artist), album_id(album), genre_id(genre), - track(tag->track()), last_year(0), last_month(0), last_day(0), - play_count(0), length(audio->length()), - title(tag->title().stripWhiteSpace().to8Bit(true)) -{ - std::stringstream ss; - unsigned int minutes, seconds; - - full_path = path; - filepath = path.substr(library_db.at(library_id)->root_path.size() + 1); - title_lower = filter :: lowercase(title); - - minutes = length / 60; - seconds = length % 60; - ss << minutes << ":"; - if (seconds < 10) - ss << "0"; - ss << seconds; - length_str = ss.str(); -} - -library :: Track :: Track(struct ImportData *data, unsigned int lib, - unsigned int artist, unsigned int album, - unsigned int genre) - : library_id(lib), artist_id(artist), album_id(album), genre_id(genre), - track(data->track), last_year(data->last_year), last_month(data->last_month), - last_day(data->last_day), play_count(data->count), length(data->length), - title(data->title) -{ - std::stringstream ss; - unsigned int minutes, seconds; - - full_path = data->filepath; - filepath = full_path.substr(library_db.at(library_id)->root_path.size() + 1); - title_lower = filter :: lowercase(title); - - minutes = length / 60; - seconds = length % 60; - ss << minutes << ":"; - if (seconds < 10) - ss << "0"; - ss << seconds; - length_str = ss.str(); -} - -const std::string library :: Track :: primary_key() const -{ - return full_path; -} - -void library :: Track :: read(File &f) -{ - std::stringstream ss; - unsigned int minutes, seconds; - - f >> library_id >> artist_id >> album_id >> genre_id; - f >> track >> last_year >> last_month >> last_day; - f >> play_count >> length; - title = f.getline(); - filepath = f.getline(); - - title_lower = filter :: lowercase(title); - full_path = library_db.at(library_id)->root_path + "/" + filepath; - library_db.at(library_id)->size++; - - minutes = length / 60; - seconds = length % 60; - ss << minutes << ":"; - if (seconds < 10) - ss << "0"; - ss << seconds; - length_str = ss.str(); -} - -void library :: Track :: write(File &f) -{ - f << library_id << " " << artist_id << " " << album_id << " " << genre_id; - f << " " << track << " " << last_year << " " << last_month << " " << last_day; - f << " " << play_count << " " << length << " "; // << std :: endl; - f << title << std :: endl; - f << filepath; -} - - /* * Internal library functions */ struct scan_info { - unsigned int lib_id; + Library *library; std :: string path; }; static void do_scan_path(struct scan_info &); -static void read_tags(unsigned int lib_id, const std :: string &path) +static void read_tags(const std::string &path, Library *library) { - TagLib :: Tag *tag; - TagLib :: AudioProperties *audio; - TagLib :: FileRef ref(path.c_str(), true, TagLib :: AudioProperties :: Fast); - unsigned int artist_id, album_id, genre_id, track_id; - - if (ref.isNull()) { - print("ERROR: Could not read tags for file %s\n", path.c_str()); - return; - } - - tag = ref.tag(); - - audio = ref.audioProperties(); - - artist_id = artist_db.insert(library :: AGInfo(library :: DB_ARTIST, tag))->id; - album_id = album_db.insert(library :: Album(tag, artist_id))->id; - genre_id = genre_db.insert(library :: AGInfo(library :: DB_GENRE, tag))->id; - track_id = track_db.insert(library :: Track(tag, audio, lib_id, - artist_id, album_id, genre_id, path))->id; - - library_db.at(lib_id)->size++; - - filter::add(artist_db.at(artist_id)->name, track_id); - filter::add(album_db.at(album_id)->name, track_id); - filter::add(track_db.at(track_id)->title, track_id); - get_callbacks()->on_library_track_add(track_id); + Track *track = tagdb :: add_track(path, library); + get_callbacks()->on_library_track_add(track->id); } -static bool process_path(unsigned int lib_id, const std :: string &dir, +static void process_path(Library *library, const std :: string &dir, const std :: string &name) { struct scan_info scan; - bool changed = false; std :: string path = dir + "/" + name; if (g_file_test(path.c_str(), G_FILE_TEST_IS_DIR) == true) { - scan.lib_id = lib_id; + scan.library = library; scan.path = path; idle :: schedule (do_scan_path, scan); - } else { - if (track_db.find(path) == NULL) { - read_tags(lib_id, path); - changed = true; - } - } - - return changed; -} - -static void save_all_dbs() -{ - artist_db.save(); - album_db.save(); - genre_db.save(); - track_db.save(); + } else + read_tags(path, library); } static void do_scan_path(struct scan_info &scan) { GDir *dir; const char *name; - bool changed = false; dir = g_dir_open(scan.path.c_str(), 0, NULL); if (dir == NULL) @@ -331,86 +52,65 @@ static void do_scan_path(struct scan_info &scan) name = g_dir_read_name(dir); while (name != NULL) { - if (process_path(scan.lib_id, scan.path, name)) - changed = true; + process_path(scan.library, scan.path, name); name = g_dir_read_name(dir); } - if (changed == true) { - save_all_dbs(); - get_callbacks()->on_library_update(scan.lib_id, - &(*library_db.at(scan.lib_id))); - } + tagdb :: commit(); + get_callbacks()->on_library_update(scan.library->id, scan.library); } static void do_validate_library(unsigned int &lib_id) { std :: string path; - bool changed = false; + Database *db = &tagdb :: get_track_db(); + Database::iterator it; - if (track_db.size() == 0) - return; - - Database::iterator it; - for (it = track_db.begin(); it != track_db.end(); it = track_db.next(it)) { - if ((*it)->library_id != lib_id) + for (it = db->begin(); it != db->end(); it = db->next(it)) { + Track *track = *it; + if (track->library->id != lib_id) continue; - path = (*it)->primary_key(); - if (g_file_test(path.c_str(), G_FILE_TEST_EXISTS) == false) { - dprint("Removing file: %s\n", path.c_str()); - track_db.remove(it - track_db.begin()); - library_db.at(lib_id)->size--; - changed = true; + if (g_file_test(track->path().c_str(), G_FILE_TEST_EXISTS) == false) { + dprint("Removing file: %s\n", track->path().c_str()); + tagdb :: remove_track(track->id); } } - if (changed == true) { - get_callbacks()->on_library_update(lib_id, &(*library_db.at(lib_id))); - save_all_dbs(); - } + get_callbacks()->on_library_update(lib_id, tagdb :: lookup_library(lib_id)); } static void do_update_library(unsigned int lib_id) { - struct scan_info scan = { lib_id, library_db.at(lib_id)->root_path }; + Library *library = tagdb :: lookup_library(lib_id); + struct scan_info scan = { library, library->root_path }; idle :: schedule(do_validate_library, lib_id); idle :: schedule(do_scan_path, scan); } -static void do_import_track(File &f, unsigned int lib_id) +static void do_import_track(File &f, Library *library) { struct ImportData data; - std::string artist, album, genre; - unsigned int artist_id, album_id, genre_id, track_id, year, banned, tmp; + unsigned int year, banned, tmp; - data.filepath = f.getline(); - data.title = f.getline(); + std::string filepath = f.getline(); + std::string title = f.getline(); + std::string artist = f.getline(); + std::string album = f.getline(); + std::string comment = f.getline(); + std::string genre = f.getline(); + std::string lenstr = f.getline(); - artist = f.getline(); - album = f.getline(); - f.getline(); /* comment */ - genre = f.getline(); - f.getline(); /* lenstr */ - f >> tmp /* id */ >> year >> data.track >> data.count; - f >> data.last_day >> data.last_month >> data.last_year >> data.length; + f >> tmp /* id */ >> year >> tmp >> data.play_count; + f >> data.last_day >> data.last_month >> data.last_year >> tmp; f >> tmp >> tmp >>tmp >> banned; /* bitrate, sample, channels, banned */ f.getline(); /* get rest of line */ - artist_id = artist_db.insert(library :: AGInfo(library :: DB_ARTIST, artist))->id; - album_id = album_db.insert(library :: Album(album, year, artist_id))->id; - genre_id = genre_db.insert(library :: AGInfo(library :: DB_GENRE, genre))->id; - track_id = track_db.insert(library :: Track(&data, lib_id, artist_id, - album_id, genre_id))->id; - library_db.at(lib_id)->size++; - - filter::add(artist_db.at(artist_id)->name, track_id); - filter::add(album_db.at(album_id)->name, track_id); - filter::add(track_db.at(track_id)->title, track_id); - get_callbacks()->on_library_track_add(track_id); + Track *track = tagdb :: import_track(filepath, library, data); + get_callbacks()->on_library_track_add(track->id); if (banned == true) - get_callbacks()->on_library_import_ban(track_id); + get_callbacks()->on_library_import_ban(track->id); } static void do_import_library(std::string &s) @@ -431,21 +131,19 @@ static void do_import_library(std::string &s) path = f.getline(); f >> id >> enabled >> next_id >> size; - /* Assign this path a new id */ - if (library_db.find(path) != NULL) { + Library *library = tagdb :: add_library(path); + if (library == NULL) { print("Library already contains path: %s, skipping\n", path.c_str()); return; } print("Adding path: %s\n", path.c_str()); - id = library_db.insert(library :: Library(path, enabled))->id; - get_callbacks()->on_library_add(id, &(*library_db.at(id))); - library_db.save(); + get_callbacks()->on_library_add(library->id, library); f.getline(); /* Get rest of line */ for (unsigned int i = 0; i < size; i++) - do_import_track(f, id); - save_all_dbs(); - get_callbacks()->on_library_update(id, &(*library_db.at(id))); + do_import_track(f, library); + tagdb :: commit(); + get_callbacks()->on_library_update(library->id, library); library :: update_path(id); } @@ -458,120 +156,86 @@ static void do_import_library(std::string &s) void library :: init() { - album_db.load(); - artist_db.load(); - genre_db.load(); - library_db.load(); - track_db.load(); + tagdb :: init(); + Database *db = &tagdb :: get_track_db(); Database::iterator it; - for (it = track_db.begin(); it != track_db.end(); it = track_db.next(it)) { - filter::add(artist_db.at((*it)->artist_id)->name, (*it)->id); - filter::add(album_db.at((*it)->album_id)->name, (*it)->id); - filter::add((*it)->title, (*it)->id); - if (library_db.at((*it)->library_id)->enabled) + for (it = db->begin(); it != db->end(); it = db->next(it)) { + if ((*it)->library->enabled) get_callbacks()->on_library_track_add((*it)->id); } + Database *ldb = &tagdb :: get_library_db(); Database::iterator l_it; - for (l_it = library_db.begin(); l_it != library_db.end(); l_it = library_db.next(l_it)) - get_callbacks()->on_library_add((*l_it)->id, &(*library_db.at((*l_it)->id))); + + for (l_it = ldb->begin(); l_it != ldb->end(); l_it = ldb->next(l_it)) + get_callbacks()->on_library_add((*l_it)->id, *l_it); } void library :: add_path(const std::string &dir) { - unsigned int id; if (g_file_test(dir.c_str(), G_FILE_TEST_IS_DIR) == false) throw -E_INVAL; - if (library_db.find(dir) != NULL) + + Library *library = tagdb :: add_library(dir); + if (!library) return; - id = library_db.insert(library :: Library(dir, true))->id; - library_db.save(); - - get_callbacks()->on_library_add(id, &(*library_db.at(id))); - update_path(id); + get_callbacks()->on_library_add(library->id, library); + update_path(library->id); } void library :: del_path(unsigned int id) { + Database *db = &tagdb :: get_track_db(); Database::iterator it; - for (it = track_db.begin(); it != track_db.end(); it = track_db.next(it)) { - if ((*it)->library_id == id) { + for (it = db->begin(); it != db->end(); it = db->next(it)) { + if ((*it)->library->id == id) get_callbacks()->on_library_track_del((*it)->id); - track_db.remove((*it)->id); - } } - library_db.remove(id); - - track_db.save(); - library_db.save(); + tagdb :: remove_library(id); + tagdb :: commit(); } void library :: update_path(unsigned int id) { - if (id > library_db.size()) - return; - if (library_db.at(id) == NULL) - return; - do_update_library(id); + Library *library = tagdb :: lookup_library(id); + if (library) + do_update_library(library->id); } void library :: update_all() { + Database *db = &tagdb :: get_library_db(); Database::iterator it; - for (it = library_db.begin(); it != library_db.end(); it = library_db.next(it)) - update_path(it - library_db.begin()); + for (it = db->begin(); it != db->end(); it = db->next(it)) + update_path((*it)->id); } void library :: set_enabled(unsigned int id, bool enabled) { - unsigned int t; + Library *library = tagdb :: lookup_library(id); + + library->enabled = enabled; + tagdb :: commit_library(); + + Database *db = &(tagdb :: get_track_db()); Database::iterator it; - library_db.at(id)->enabled = enabled; - library_db.save(); - - for (it = track_db.begin(); it != track_db.end(); it = track_db.next(it)) { - if ((*it)->library_id == id) { - t = it - track_db.begin(); + for (it = db->begin(); it != db->end(); it = db->next(it)) { + if ((*it)->library->id == id) { if (enabled) - get_callbacks()->on_library_track_add(t); + get_callbacks()->on_library_track_add((*it)->id); else - get_callbacks()->on_library_track_del(t); + get_callbacks()->on_library_track_del((*it)->id); } } } -void library :: lookup(unsigned int id, library :: Song *song) -{ - if (id >= track_db.actual_size()) - throw -E_EXIST; - - song->track = &(*track_db.at(id)); - if (song->track == NULL) - throw -E_EXIST; - - song->track_id = id; - song->artist = &(*artist_db.at(song->track->artist_id)); - song->album = &(*album_db.at(song->track->album_id)); - song->genre = &(*genre_db.at(song->track->genre_id)); - song->library = &(*library_db.at(song->track->library_id)); -} - -library :: Library *library :: lookup_path(unsigned int id) -{ - if (id >= library_db.actual_size()) - throw -E_EXIST; - if (library_db.at(id) == NULL) - throw -E_EXIST; - return &(*library_db.at(id)); -} - void library :: import() { unsigned int i = 0; @@ -597,14 +261,18 @@ void library :: track_played(unsigned int id) { time_t the_time = time(NULL); struct tm *now = localtime(&the_time); + Track *track = tagdb :: lookup(id); - track_db.at(id)->play_count++; - track_db.at(id)->last_day = now->tm_mday; - track_db.at(id)->last_month = now->tm_mon + 1; - track_db.at(id)->last_year = now->tm_year + 1900; + if (!track) + return; - track_db.save(); - get_callbacks()->on_library_track_updated(id); + track->play_count++; + track->last_day = now->tm_mday; + track->last_month = now->tm_mon + 1; + track->last_year = now->tm_year + 1900; + + tagdb :: commit(); + get_callbacks()->on_library_track_updated(track->id); } #ifdef CONFIG_TEST diff --git a/lib/playqueue.cpp b/lib/playqueue.cpp index 03cce92d..15440487 100644 --- a/lib/playqueue.cpp +++ b/lib/playqueue.cpp @@ -97,72 +97,21 @@ std::string Playqueue :: get_length_str() return ss.str(); } -/* - * Returns: - * 0: lhs == rhs - * < 0: lhs < rhs - * > 0: lhs > rhs - */ -static inline int compare_uint(unsigned int a, unsigned int b) -{ - if (a == b) - return 0; - if (a < b) - return -1; - return 1; -} - -/* - * Returns: - * 0: lhs == rhs - * < 0: lhs < rhs, or rhs is empty - * > 0: lhs > rhs, or lhs is empty - */ -static inline int compare_string(const std::string &a, const std::string &b) -{ - if (a.size() == 0) - return 1; - else if (b.size() == 0) - return -1; - return a.compare(b); -} - /* * std::string.compare() returns * 0: Strings are equal * < 0: a < b * > 0: a > b */ -static inline int track_compare(library :: Song &lhs, library :: Song &rhs, - sort_t field) +static inline int track_compare(Track *lhs, Track *rhs, sort_t field) { - switch (field) { - case SORT_ARTIST: - return compare_string(lhs.artist->key_lower, rhs.artist->key_lower); - case SORT_ALBUM: - return compare_string(lhs.album->name_lower, rhs.album->name_lower); - case SORT_COUNT: - return compare_uint(lhs.track->play_count, rhs.track->play_count); - case SORT_GENRE: - return compare_string(lhs.genre->key_lower, rhs.genre->key_lower); - case SORT_LENGTH: - return compare_uint(lhs.track->length, rhs.track->length); - case SORT_PLAYED: - return compare_uint(lhs.track->play_count, rhs.track->play_count); - case SORT_TITLE: - return compare_string(lhs.track->title_lower, rhs.track->title_lower); - case SORT_TRACK: - return compare_uint(lhs.track->track, rhs.track->track); - default: //case SORT_YEAR - int ret = compare_uint(lhs.album->year, rhs.album->year); - if (ret != 0) - return ret; - return compare_string(lhs.album->name_lower, rhs.album->name_lower); - } + int ret = lhs->less_than(rhs, field); + if (field == SORT_YEAR && ret == 0) + ret = lhs->less_than(rhs, SORT_ALBUM); + return ret; } -static bool track_less_than(library :: Song &lhs, library :: Song &rhs, - std::list &order) +static bool track_less_than(Track *lhs, Track *rhs, std::list &order) { std::list::iterator it; int res; @@ -178,9 +127,9 @@ static bool track_less_than(library :: Song &lhs, library :: Song &rhs, return res; } -unsigned int Playqueue :: find_sorted_id(library :: Song &rhs) +unsigned int Playqueue :: find_sorted_id(Track *rhs) { - library :: Song lhs; + Track *lhs; unsigned int begin = 0, end = (tracks.size() - 1), mid; if (tracks.size() == 0) @@ -188,7 +137,7 @@ unsigned int Playqueue :: find_sorted_id(library :: Song &rhs) while (end > begin) { mid = begin + ((end - begin) / 2); - library :: lookup(tracks[mid], &lhs); + lhs = tagdb :: lookup(tracks[mid]); if (track_less_than(lhs, rhs, sort_order)) begin = mid + 1; else { @@ -199,7 +148,7 @@ unsigned int Playqueue :: find_sorted_id(library :: Song &rhs) } } - library :: lookup(tracks[begin], &lhs); + lhs = tagdb :: lookup(tracks[begin]); if (track_less_than(lhs, rhs, sort_order)) return begin + 1; return begin; @@ -208,14 +157,13 @@ unsigned int Playqueue :: find_sorted_id(library :: Song &rhs) unsigned int Playqueue :: add(unsigned int track_id) { unsigned int id = tracks.size(); - library :: Song song; - library :: lookup(track_id, &song); + Track *track = tagdb :: lookup(track_id); if (sort_order.size() > 0) - id = find_sorted_id(song); + id = find_sorted_id(track); tracks.insert(tracks.begin() + id, track_id); - length += song.track->length; + length += track->length; get_callbacks()->on_queue_track_add(this, id); if (!(flags & PQ_DISABLE_CHANGED_SIZE)) get_callbacks()->on_queue_changed(); @@ -224,11 +172,11 @@ unsigned int Playqueue :: add(unsigned int track_id) unsigned int Playqueue :: add_front(unsigned int track_id) { - library :: Song song; + Track *track; tracks.insert(tracks.begin(), track_id); - library :: lookup(track_id, &song); - length += song.track->length; + track = tagdb :: lookup(track_id); + length += track->length; get_callbacks()->on_queue_track_add(this, 0); if (!(flags & PQ_DISABLE_CHANGED_SIZE)) get_callbacks()->on_queue_changed(); @@ -237,12 +185,12 @@ unsigned int Playqueue :: add_front(unsigned int track_id) void Playqueue :: del(unsigned int plist_id) { - library :: Song song; + Track *track; unsigned int track_id = tracks[plist_id]; tracks.erase(tracks.begin() + plist_id); - library :: lookup(track_id, &song); - length -= song.track->length; + track = tagdb :: lookup(track_id); + length -= track->length; get_callbacks()->on_queue_track_del(this, plist_id); if (!(flags & PQ_DISABLE_CHANGED_SIZE)) get_callbacks()->on_queue_changed(); @@ -281,9 +229,8 @@ public: SortTracks(std::list f) : fields(f) {} bool operator()(unsigned int a, unsigned int b) { - library::Song lhs, rhs; - library :: lookup(a, &lhs); - library :: lookup(b, &rhs); + Track *lhs = tagdb :: lookup(a); + Track *rhs = tagdb :: lookup(b); return track_less_than(lhs, rhs, fields); } }; diff --git a/lib/tags.cpp b/lib/tags.cpp index 4c30c5c8..c3f8ec1f 100644 --- a/lib/tags.cpp +++ b/lib/tags.cpp @@ -324,6 +324,11 @@ void tagdb :: commit() track_db.save(); } +void tagdb :: commit_library() +{ + library_db.save(); +} + Track *tagdb :: add_track(const std::string &filepath, Library *library) { unsigned int size = track_db.size(); @@ -376,6 +381,11 @@ Track *tagdb :: lookup(unsigned int track_id) return track_db.at(track_id); } +Library *tagdb :: lookup_library(unsigned int library_id) +{ + return library_db.at(library_id); +} + Database &tagdb :: get_track_db() { return track_db; From 57fa16d28909164e478c3bc8b46b557b6e84edf8 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Tue, 1 Apr 2014 20:11:57 -0400 Subject: [PATCH 21/93] queue: Update design for queues Signed-off-by: Anna Schumaker --- DESIGN | 285 ++++++++++++++++++++++++++++----------------------------- 1 file changed, 142 insertions(+), 143 deletions(-) diff --git a/DESIGN b/DESIGN index 90cbb5bd..17ea7dbd 100644 --- a/DESIGN +++ b/DESIGN @@ -857,6 +857,148 @@ Track Tag: +Queue: + Queues are lists of songs that the user has requested to play. They + are the main interface for all music played by Ocarina. + +- Flags: + enum queue_flag { + Q_ENABLED (1 << 0), + Q_RANDOM (1 << 1), + Q_REPEAT (1 << 2), + Q_NO_SORT (1 << 3), + }; + +- Sort info: + struct sort_info { + sort_t field; + bool ascending; + }; + +- Sorting: + Sorting is done using std::stable_sort() to make sure that orders won't + change unexpectedly. The default sort order is (SORT_ARTIST, true), + (SORT_YEAR, true), (SORT_TRACK, true). + +- Queue: + class Queue { + private: + vector _tracks; + list _sort_order; + unsigned int _cur; + unsigned int _flags; + unsigned int _length; + + public: + Queue(unsigned int); + void read(File &); + void write(File &); + + void set_flag(queue_flag); + void unset_flag(queue_flag); + bool has_flag(queue_flag); + + unsigned int add(Track *); + void del(Track *); + void del(unsigned int); + void updated(Track *); + + unsigned int size(); + const std::string size_str(); + const std::string length_str(); + + void sort(sort_t, bool, bool); + + Track *next(); + void track_selected(unsigned int); + }; + +File Format: + File << flags << tracks.size() << tracks[0] << tracks[1] << ... << tracks[N]; + +- API + Queue :: Queue(unsigned int flags); + Initialize a new queue with the appropriate flags set and with + default sorting. + Set _length = 0, _cur = 0. + + void Queue :: read(File &f); + Read queue from file. + + void Queue :: write(File &f); + Write queue to file. + + void Queue :: set_flag(queue_flag f); + Set the appropriate flag. + + void Queue :: unset_flag(queue_flag f); + Unset the appropriate flag. + + bool Queue :: has_flag(queue_flag f); + Return true if the queue has the flag enabled and false + otherwise. + + unsigned int Queue :: add(Track *track); + Add a new track to the tracks vector and return the index. + Increase length by the length of the track. + + void Queue :: del(Track *track); + Remove all instances of the requested track from the queue. + + void Queue :: del(unsigned int queue_id); + Remove the track at the given index from the queue. + + void Queue :: updated(Track *track); + Find all indexes of the updated track and notify the UI that + it has changed. + + unsigned int Queue :: size(); + Return the number of tracks currently on the queue. + + const std::string Queue :: size_str(); + Return the number of tracks currently on the queue, in string + form. + + const std::string Queue :: length_str(); + Return the remaining length of the queue in a human-readable + format. + + void Queue :: sort(sort_t field, bool ascending, bool reset); + Add a new sort field to the end of the sort order, then + resort the queue. If reset is set to true, clear the sorting + list before appending. + + Track *Queue :: next(); + Return the next track to play. + + if (tracks.size() == 0) + return NULL; + + if (flags & PL_RANDOM): + _cur += rand() % tracks.size(); + else: + _cur += 1; + + if (_cur >= tracks.size()) + _cur -= tracks.size(); + track = tracks[_cur]; + + if (!(flags & PL_REPEAT)): + del(_cur); + return track; + + void Queue :: track_selected(unsigned int queue_id); + Set _cur to queue_id. If PQ_REPEAT is not set, remove the + track from the queue. + + + + + + + + + Library: (lib/library.cpp) The library manages databases containing track information added by the user. Ocarina 6 splits the library into multiple database tables for @@ -1002,149 +1144,6 @@ Playlists: (lib/playlist.cpp) -Playqueue: (lib/playqueue.cpp) - Playqueues are a list of songs that the user has requested to play. - -- Flags: - enum playqueue_flags { - PQ_ENABLED (1 << 0), - PQ_RANDOM (1 << 1), - PQ_REPEAT (1 << 2), - }; - -- Sort order: - enum sort_t { - SORT_ARTIST_ASC = 1, - SORT_ARTIST_DESC = 2, - SORT_ALBUM_ASC = 3, - SORT_ALBUM_DESC = 4, - SORT_COUNT_ASC = 5, - SORT_COUNT_DESC = 6, - SORT_GENRE_ASC = 7, - SORT_GENRE_DESC = 8, - SORT_LENGTH_ASC = 9, - SORT_LENGTH_DESC = 10, - SORT_PLAYED_ASC = 11, - SORT_PLAYED_DESC = 12, - SORT_TITLE_ASC = 13, - SORT_TITLE_DESC = 14, - SORT_TRACK_ASC = 15, - SORT_TRACK_DESC = 16, - SORT_YEAR_ASC = 17, - SORT_YEAR_DESC = 18, - }; - -- Playqueue: - class Playqueue { - private: - vector tracks; - list sort_order; /* default = { SORT_ARTIST_ASC, - SORT_YEAR_ASC, - SORT_TRACK_ASC }; - unsigned int cur; - unsigned int flags; - unsigned int length; - public: - Playqueue(flags); - void write(File &); - void read(File &); - - void set_flag(playqueue_flags); - void unset_flag(playqueue_flags); - const unsigned int get_flags(); - string get_length(); - - unsigned int add(track_id); - unsigned int add_front(track_id); - void del(playqueue_id); - unsigned int size(); - - void reset_sort(); - void add_sort(sort_t, bool); - void sort(); - - unsigned int next(); - void reset_cur(); - } - - File << flags << tracks.size() << tracks[0] << tracks[1] << ... << tracks[N]; - -- API - Playqueue :: Playlist(unsigned int flags); - Create a new playqueue with the appropriate flags set. - sort_order = { (SORT_ARTIST, true), (SORT_YEAR, true), - (SORT_TRACK, true) }; - - unsigned int Playqueue :: add(unsigned int track_id); - unsigned int Playqueue :: add_front(unsigned int track_id); - Add a new track to the tracks vector and return the index. If - add_front is called, the track will be added to the front of - the playqueue (index = 0). - length += track.length. - - void Playqueue :: del(unsigned int playqueue_id); - Erase tracks[playqueue_id] from the tracks vector. - length -= track.length. - - void Playqueue :: del_track(unsigned int track_id); - Erase all tracks with track id track_id. - - void Playqueue :: set_flag(playqueue_flags flag); - void Playqueue :: unset_flag(playqueue_flags flag); - Set or unset the given flag. - - const unsigned int Playqueue :: get_flags(); - Return the currently enabled flags. - - song Playqueue :: get_length(); - Convert the length variable into a string and return the result - to the caller. - - unsigned int Playqueue :: size(); - Return tracks.size(); - - void Playqueue :: write(File &); - void Playqueue :: read(File &); - Read or write the playqueue to the file. - - void Playqueue :: reset_sort(); - Reset the sort_order list to empty. - - void Playqueue :: add_sort(sort_t type, bool ascending); - Add a new term to the sort order. - - void Playqueue :: sort(); - Perform a stable sort on the entire playqueue. Compare tracks - based on the sort_order list. - - unsigned int Playqueue :: next(); - Return the next track_id to play. - - if (tracks.size() == 0) - throw -EEXIST; - - if (flags & PL_RANDOM): - cur += rand() % tracks.size(); - else: - cur += 1; - - if (cur > = tracks.size()) - cur -= tracks.size(); - track = tracks[cur]; - - if (!(flags & PL_REPEAT)): - length -= track.length; - tracks.erase(cur); - return track; - - void Playqueue :: reset_cur(); - This function is intended to be used by the audio layer when - managing the recently played playqueue. - - cur = 0; - - - Deck: (lib/deck.cpp) The playqueue deck is used to hold the temporary playqueues created by the user. From 1c743239a0a44e03ab13832b01b9bea40b83735d Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Tue, 1 Apr 2014 20:28:19 -0400 Subject: [PATCH 22/93] Rename playqueue -> queue Signed-off-by: Anna Schumaker --- gui/model.cpp | 52 +++++++++++------------ gui/queue.cpp | 14 +++---- gui/tabs.cpp | 40 +++++++++--------- include/audio.h | 4 +- include/callback.h | 14 +++---- include/deck.h | 10 ++--- include/ocarina.h | 8 ++-- include/playlist.h | 4 +- include/{playqueue.h => queue.h} | 30 ++++++------- include/tabs.h | 14 +++---- lib/audio.cpp | 10 ++--- lib/callback.cpp | 4 +- lib/deck.cpp | 50 +++++++++++----------- lib/playlist.cpp | 8 ++-- lib/{playqueue.cpp => queue.cpp} | 72 ++++++++++++++++---------------- 15 files changed, 167 insertions(+), 167 deletions(-) rename include/{playqueue.h => queue.h} (73%) rename lib/{playqueue.cpp => queue.cpp} (77%) diff --git a/gui/model.cpp b/gui/model.cpp index 07fee583..07f2b3bc 100644 --- a/gui/model.cpp +++ b/gui/model.cpp @@ -10,8 +10,8 @@ #include -PlayqueueModel::PlayqueueModel(Playqueue *q) - : Glib::ObjectBase( typeid(PlayqueueModel) ), +QueueModel::QueueModel(Queue *q) + : Glib::ObjectBase( typeid(QueueModel) ), Glib::Object(), queue(q) { do { @@ -19,14 +19,14 @@ PlayqueueModel::PlayqueueModel(Playqueue *q) } while (stamp == 0); } -void PlayqueueModel::increment_stamp() +void QueueModel::increment_stamp() { do { stamp++; } while (stamp == 0); } -void PlayqueueModel::on_row_inserted(unsigned int row) +void QueueModel::on_row_inserted(unsigned int row) { Gtk::TreePath path; Gtk::TreeIter iter; @@ -36,7 +36,7 @@ void PlayqueueModel::on_row_inserted(unsigned int row) row_inserted(path, iter); } -void PlayqueueModel::on_row_deleted(unsigned int row) +void QueueModel::on_row_deleted(unsigned int row) { Gtk::TreePath path; @@ -45,7 +45,7 @@ void PlayqueueModel::on_row_deleted(unsigned int row) row_deleted(path); } -void PlayqueueModel::on_row_changed(unsigned int row) +void QueueModel::on_row_changed(unsigned int row) { Gtk::TreePath path; Gtk::TreeIter iter; @@ -55,19 +55,19 @@ void PlayqueueModel::on_row_changed(unsigned int row) row_changed(path, iter); } -void PlayqueueModel::on_path_selected(const Gtk::TreePath &path) +void QueueModel::on_path_selected(const Gtk::TreePath &path) { audio :: load_trackid(path_to_id(path)); queue->path_selected(path[0]); audio :: play(); } -unsigned int PlayqueueModel :: iter_to_id(const Gtk::TreeIter &iter) +unsigned int QueueModel :: iter_to_id(const Gtk::TreeIter &iter) { return GPOINTER_TO_UINT(iter.gobj()->user_data); } -unsigned int PlayqueueModel::path_to_id(const Gtk::TreePath &path) +unsigned int QueueModel::path_to_id(const Gtk::TreePath &path) { return queue->operator[](path[0]); } @@ -80,17 +80,17 @@ unsigned int PlayqueueModel::path_to_id(const Gtk::TreePath &path) * */ -Gtk::TreeModelFlags PlayqueueModel::get_flags_vfunc() const +Gtk::TreeModelFlags QueueModel::get_flags_vfunc() const { return Gtk::TREE_MODEL_LIST_ONLY; } -int PlayqueueModel::get_n_columns_vfunc() const +int QueueModel::get_n_columns_vfunc() const { return 10; } -GType PlayqueueModel::get_column_type_vfunc(int index) const +GType QueueModel::get_column_type_vfunc(int index) const { switch (index) { case 0: @@ -110,7 +110,7 @@ GType PlayqueueModel::get_column_type_vfunc(int index) const } } -void PlayqueueModel::get_value_uint(Track *track, int column, +void QueueModel::get_value_uint(Track *track, int column, Glib::ValueBase &value) const { Glib::Value specific; @@ -131,7 +131,7 @@ void PlayqueueModel::get_value_uint(Track *track, int column, value = specific; } -void PlayqueueModel::get_value_str(Track *track, int column, +void QueueModel::get_value_str(Track *track, int column, Glib::ValueBase &value) const { std::stringstream ss; @@ -173,7 +173,7 @@ void PlayqueueModel::get_value_str(Track *track, int column, } -void PlayqueueModel::get_value_vfunc(const Gtk::TreeIter &iter, int column, +void QueueModel::get_value_vfunc(const Gtk::TreeIter &iter, int column, Glib::ValueBase &value) const { unsigned int row; @@ -199,7 +199,7 @@ void PlayqueueModel::get_value_vfunc(const Gtk::TreeIter &iter, int column, } } -bool PlayqueueModel::iter_next_vfunc(const Gtk::TreeIter &iter, +bool QueueModel::iter_next_vfunc(const Gtk::TreeIter &iter, Gtk::TreeIter &iter_next) const { unsigned int index; @@ -213,35 +213,35 @@ bool PlayqueueModel::iter_next_vfunc(const Gtk::TreeIter &iter, return iter_nth_root_child_vfunc(++index, iter_next); } -bool PlayqueueModel::iter_children_vfunc(const Gtk::TreeIter &parent, +bool QueueModel::iter_children_vfunc(const Gtk::TreeIter &parent, Gtk::TreeIter &iter) const { return iter_nth_child_vfunc(parent, 0, iter); } -bool PlayqueueModel::iter_has_child_vfunc(const Gtk::TreeIter &iter) const +bool QueueModel::iter_has_child_vfunc(const Gtk::TreeIter &iter) const { return (iter_n_children_vfunc(iter) > 0); } -int PlayqueueModel::iter_n_children_vfunc(const Gtk::TreeIter &iter) const +int QueueModel::iter_n_children_vfunc(const Gtk::TreeIter &iter) const { return 0; } -int PlayqueueModel::iter_n_root_children_vfunc() const +int QueueModel::iter_n_root_children_vfunc() const { return queue->size(); } -bool PlayqueueModel::iter_nth_child_vfunc(const Gtk::TreeIter &parent, +bool QueueModel::iter_nth_child_vfunc(const Gtk::TreeIter &parent, int n, Gtk::TreeIter &iter) const { iter = Gtk::TreeIter(); return false; } -bool PlayqueueModel::iter_nth_root_child_vfunc(int n, Gtk::TreeIter &iter) const +bool QueueModel::iter_nth_root_child_vfunc(int n, Gtk::TreeIter &iter) const { iter = Gtk::TreeIter(); if (n >= (int)queue->size()) @@ -252,14 +252,14 @@ bool PlayqueueModel::iter_nth_root_child_vfunc(int n, Gtk::TreeIter &iter) const return true; } -bool PlayqueueModel::iter_parent_vfunc(const Gtk::TreeIter &child, +bool QueueModel::iter_parent_vfunc(const Gtk::TreeIter &child, Gtk::TreeIter &iter) const { iter = Gtk::TreeIter(); return false; } -Gtk::TreeModel::Path PlayqueueModel::get_path_vfunc(const Gtk::TreeIter &iter) const +Gtk::TreeModel::Path QueueModel::get_path_vfunc(const Gtk::TreeIter &iter) const { Gtk::TreeModel::Path path; @@ -268,7 +268,7 @@ Gtk::TreeModel::Path PlayqueueModel::get_path_vfunc(const Gtk::TreeIter &iter) c return path; } -bool PlayqueueModel::get_iter_vfunc(const Gtk::TreePath &path, +bool QueueModel::get_iter_vfunc(const Gtk::TreePath &path, Gtk::TreeIter &iter) const { if (path.size() != 1) { @@ -278,7 +278,7 @@ bool PlayqueueModel::get_iter_vfunc(const Gtk::TreePath &path, return iter_nth_root_child_vfunc(path[0], iter); } -bool PlayqueueModel::check_iter_validity(const Gtk::TreeIter &iter) const +bool QueueModel::check_iter_validity(const Gtk::TreeIter &iter) const { return stamp == iter.get_stamp(); } diff --git a/gui/queue.cpp b/gui/queue.cpp index 1d0686ed..94c5e6fc 100644 --- a/gui/queue.cpp +++ b/gui/queue.cpp @@ -63,7 +63,7 @@ private: public: - QueueTab(Playqueue *, unsigned int num); + QueueTab(Queue *, unsigned int num); ~QueueTab(); /** @@ -88,7 +88,7 @@ public: static std::map queue_mapping; -QueueTab :: QueueTab(Playqueue *pq, unsigned int num) +QueueTab :: QueueTab(Queue *pq, unsigned int num) : Tab(pq) { /* @@ -218,7 +218,7 @@ void QueueTab :: on_post_init() tab_init_random(); tab_init_repeat(); - bool active = (tab_pq->get_flags() & PQ_ENABLED) == PQ_ENABLED; + bool active = (tab_pq->get_flags() & Q_ENABLED) == Q_ENABLED; q_switch.set_active(active); q_switch.property_active().signal_changed().connect( sigc::mem_fun(*this, &QueueTab :: on_switch_changed)); @@ -297,10 +297,10 @@ void QueueTab :: on_close_clicked() void QueueTab :: on_switch_changed() { if (q_switch.get_active()) { - tab_pq->set_flag(PQ_ENABLED); + tab_pq->set_flag(Q_ENABLED); queue_set_sensitive(true); } else { - tab_pq->unset_flag(PQ_ENABLED); + tab_pq->unset_flag(Q_ENABLED); queue_set_sensitive(false); } } @@ -319,13 +319,13 @@ static void renumber_queues() it->second->on_tab_reordered(); } -static void on_pq_created(Playqueue *pq, unsigned int num) +static void on_pq_created(Queue *pq, unsigned int num) { QueueTab *tab = new QueueTab(pq, num); tab->on_post_init(); } -static void on_pq_removed(Playqueue *pq) +static void on_pq_removed(Queue *pq) { Tab *tab = find_tab(pq); if (tab) { diff --git a/gui/tabs.cpp b/gui/tabs.cpp index d9776de6..74e7e938 100644 --- a/gui/tabs.cpp +++ b/gui/tabs.cpp @@ -11,7 +11,7 @@ #include -static std::map queue_mapping; +static std::map queue_mapping; static sort_t sort_fields[] = { SORT_TRACK, SORT_TITLE, SORT_LENGTH, @@ -27,10 +27,10 @@ static sort_t sort_fields[] = { * */ -Tab :: Tab(Playqueue *pq) +Tab :: Tab(Queue *pq) : tab_sorting_count(0), tab_pq(pq), tab_size(NULL) { - tab_model = Glib::RefPtr(new PlayqueueModel(tab_pq)); + tab_model = Glib::RefPtr(new QueueModel(tab_pq)); queue_mapping[tab_pq] = this; } @@ -71,19 +71,19 @@ void Tab :: tab_finish_init() void Tab :: tab_init_random() { - tab_random->set_active(tab_pq->get_flags() & PQ_RANDOM); + tab_random->set_active(tab_pq->get_flags() & Q_RANDOM); tab_random->signal_toggled().connect(sigc::mem_fun(*this, &Tab::on_random_toggled)); } void Tab :: tab_init_repeat() { - tab_repeat->set_active(tab_pq->get_flags() & PQ_REPEAT); + tab_repeat->set_active(tab_pq->get_flags() & Q_REPEAT); tab_repeat->signal_toggled().connect(sigc::mem_fun(*this, &Tab::on_repeat_toggled)); } -void Tab :: tab_toggle_button(Gtk::ToggleButton *button, playqueue_flags flag) +void Tab :: tab_toggle_button(Gtk::ToggleButton *button, queue_flags flag) { if (button->get_active()) tab_pq->set_flag(flag); @@ -155,7 +155,7 @@ void Tab :: tab_selected_ids(std::vector &ids) sel->unselect_all(); } -void Tab :: tab_queue_add(Playqueue *pq) +void Tab :: tab_queue_add(Queue *pq) { std::vector ids; @@ -169,7 +169,7 @@ bool Tab :: tab_queue_selected(bool random) if (deck :: size() >= 10) return true; - Playqueue *pq = deck :: create(random); + Queue *pq = deck :: create(random); tab_queue_add(pq); return true; } @@ -179,7 +179,7 @@ bool Tab :: tab_add_to_queue(unsigned int n) if (n >= deck :: size()) return true; - Playqueue *pq = deck :: get(n); + Queue *pq = deck :: get(n); tab_queue_add(pq); return true; } @@ -284,12 +284,12 @@ void Tab :: on_show_rc_menu() void Tab :: on_random_toggled() { - tab_toggle_button(tab_random, PQ_RANDOM); + tab_toggle_button(tab_random, Q_RANDOM); } void Tab :: on_repeat_toggled() { - tab_toggle_button(tab_repeat, PQ_REPEAT); + tab_toggle_button(tab_repeat, Q_REPEAT); } void Tab :: on_row_activated(const Gtk::TreePath &path, Gtk::TreeViewColumn *col) @@ -379,9 +379,9 @@ void Tab :: on_entry_changed() * */ -Tab *find_tab(Playqueue *pq) +Tab *find_tab(Queue *pq) { - std::map::iterator it; + std::map::iterator it; it = queue_mapping.find(pq); if (it != queue_mapping.end()) return it->second; @@ -390,7 +390,7 @@ Tab *find_tab(Playqueue *pq) static Tab *find_tab(int num) { - std::map::iterator it; + std::map::iterator it; for (it = queue_mapping.begin(); it != queue_mapping.end(); it++) { if (it->second->tab_page_num() == num) return it->second; @@ -400,7 +400,7 @@ static Tab *find_tab(int num) static Tab *cur_tab() { - std::map::iterator it; + std::map::iterator it; for (it = queue_mapping.begin(); it != queue_mapping.end(); it++) { if (it->second->tab_is_cur()) return it->second; @@ -408,21 +408,21 @@ static Tab *cur_tab() return NULL; } -static void on_track_added(Playqueue *pq, unsigned int row) +static void on_track_added(Queue *pq, unsigned int row) { Tab *tab = find_tab(pq); if (tab) tab->on_track_added(row); } -static void on_track_deleted(Playqueue *pq, unsigned int row) +static void on_track_deleted(Queue *pq, unsigned int row) { Tab *tab = find_tab(pq); if (tab) tab->on_track_deleted(row); } -static void on_track_changed(Playqueue *pq, unsigned int row) +static void on_track_changed(Queue *pq, unsigned int row) { Tab *tab = find_tab(pq); if (tab) @@ -516,13 +516,13 @@ void init_tabs() void post_init_tabs() { - std::map::iterator it; + std::map::iterator it; for (it = queue_mapping.begin(); it != queue_mapping.end(); it++) it->second->on_post_init(); unsigned int tab = 0; for (tab = 0; tab < deck::size(); tab++) { - if ((deck :: get(tab)->get_flags() & PQ_ENABLED) == PQ_ENABLED) + if ((deck :: get(tab)->get_flags() & Q_ENABLED) == Q_ENABLED) break; } get_widget("o_notebook")->set_current_page(tab); diff --git a/include/audio.h b/include/audio.h index 427d39e7..d4c42e73 100644 --- a/include/audio.h +++ b/include/audio.h @@ -4,7 +4,7 @@ #ifndef OCARINA_AUDIO_H #define OCARINA_AUDIO_H -#include +#include extern "C" { #include @@ -27,7 +27,7 @@ namespace audio void previous(); void load_trackid(unsigned int); unsigned int current_trackid(); - Playqueue *get_recent_pq(); + Queue *get_recent_pq(); void seek_to(long); long position(); diff --git a/include/callback.h b/include/callback.h index 230643af..e7397b53 100644 --- a/include/callback.h +++ b/include/callback.h @@ -5,7 +5,7 @@ #define OCARINA_CALLBACK_H #include -#include +#include struct Callbacks { @@ -16,8 +16,8 @@ struct Callbacks { void (*on_pause_count_changed)(bool, unsigned int); /* Deck callbacks */ - void (*on_pq_created)(Playqueue *, unsigned int); - void (*on_pq_removed)(Playqueue *); + void (*on_pq_created)(Queue *, unsigned int); + void (*on_pq_removed)(Queue *); /* Library callbacks */ void (*on_library_add)(unsigned int, Library *); @@ -31,10 +31,10 @@ struct Callbacks { void (*on_playlist_ban)(unsigned int); void (*on_playlist_unban)(unsigned int); - /* Playqueue callbacks */ - void (*on_queue_track_add)(Playqueue *, unsigned int); - void (*on_queue_track_del)(Playqueue *, unsigned int); - void (*on_queue_track_changed)(Playqueue *, unsigned int); + /* Queue callbacks */ + void (*on_queue_track_add)(Queue *, unsigned int); + void (*on_queue_track_del)(Queue *, unsigned int); + void (*on_queue_track_changed)(Queue *, unsigned int); void (*on_queue_changed)(); }; diff --git a/include/deck.h b/include/deck.h index 0c3005cb..4ef8a10a 100644 --- a/include/deck.h +++ b/include/deck.h @@ -4,7 +4,7 @@ #ifndef OCARINA_DECK_H #define OCARINA_DECK_H -#include +#include namespace deck { @@ -13,14 +13,14 @@ namespace deck void read(); void write(); - Playqueue *create(bool); + Queue *create(bool); void remove(unsigned int); - Playqueue *get(unsigned int); + Queue *get(unsigned int); unsigned int size(); void move(unsigned int, unsigned int); - void move(Playqueue *, unsigned int); + void move(Queue *, unsigned int); unsigned int next(); - Playqueue *get_library_pq(); + Queue *get_library_pq(); #ifdef CONFIG_TEST void reset(); diff --git a/include/ocarina.h b/include/ocarina.h index 7815c5ac..deae5f52 100644 --- a/include/ocarina.h +++ b/include/ocarina.h @@ -4,7 +4,7 @@ #ifndef OCARINA_H #define OCARINA_H -#include +#include #include @@ -18,7 +18,7 @@ Gtk::Window *ocarina_init(int *, char ***); /* model.cpp */ -class PlayqueueModel : public Gtk::TreeModel, public Glib::Object { +class QueueModel : public Gtk::TreeModel, public Glib::Object { private: void increment_stamp(); void get_value_uint(Track *, int, Glib::ValueBase &) const; @@ -44,8 +44,8 @@ protected: public: int stamp; - Playqueue *queue; - PlayqueueModel(Playqueue *); + Queue *queue; + QueueModel(Queue *); void on_row_inserted(unsigned int); void on_row_deleted(unsigned int); diff --git a/include/playlist.h b/include/playlist.h index c9fec9e7..c188aff6 100644 --- a/include/playlist.h +++ b/include/playlist.h @@ -4,7 +4,7 @@ #ifndef OCARINA_PLAYLIST_H #define OCARINA_PLAYLIST_H -#include +#include #include #include @@ -18,7 +18,7 @@ namespace playlist void del(const std::string &, unsigned int); void select(const std::string &); const std::set &get_tracks(const std::string &); - Playqueue *get_pq(); + Queue *get_pq(); #ifdef CONFIG_TEST void clear(); diff --git a/include/playqueue.h b/include/queue.h similarity index 73% rename from include/playqueue.h rename to include/queue.h index ec943163..b4d78bf6 100644 --- a/include/playqueue.h +++ b/include/queue.h @@ -1,20 +1,20 @@ /* * Copyright 2013 (c) Anna Schumaker. */ -#ifndef OCARINA_PLAYQUEUE_H -#define OCARINA_PLAYQUEUE_H +#ifndef OCARINA_QUEUE_H +#define OCARINA_QUEUE_H #include #include #include #include -enum playqueue_flags { - PQ_ENABLED = (1 << 0), - PQ_RANDOM = (1 << 1), - PQ_REPEAT = (1 << 2), - PQ_NEVER_SORT = (1 << 3), - PQ_DISABLE_CHANGED_SIZE = (1 << 31), +enum queue_flags { + Q_ENABLED = (1 << 0), + Q_RANDOM = (1 << 1), + Q_REPEAT = (1 << 2), + Q_NEVER_SORT = (1 << 3), + Q_DISABLE_CHANGED_SIZE = (1 << 31), }; struct sort_info { @@ -22,7 +22,7 @@ struct sort_info { bool ascending; }; -class Playqueue { +class Queue { private: std :: vector tracks; std :: list sort_order; @@ -34,14 +34,14 @@ private: void _add_sort(sort_t, bool); public: - Playqueue(); - Playqueue(playqueue_flags); - ~Playqueue(); + Queue(); + Queue(queue_flags); + ~Queue(); void write(File &); void read(File &); - void set_flag(playqueue_flags); - void unset_flag(playqueue_flags); + void set_flag(queue_flags); + void unset_flag(queue_flags); const unsigned int get_flags(); unsigned int get_length(); std::string get_length_str(); @@ -67,4 +67,4 @@ public: #endif /* CONFIG_TEST */ }; -#endif /* OCARINA_PLAYQUEUE_H */ +#endif /* OCARINA_QUEUE_H */ diff --git a/include/tabs.h b/include/tabs.h index aae9a158..90e20bc3 100644 --- a/include/tabs.h +++ b/include/tabs.h @@ -5,7 +5,7 @@ #define OCARINA_TABS_H #include -#include +#include #include class Tab { @@ -15,8 +15,8 @@ private: std::string tab_sorting_title; protected: - Playqueue *tab_pq; - Glib::RefPtr tab_model; + Queue *tab_pq; + Glib::RefPtr tab_model; Glib::RefPtr tab_filter; @@ -40,13 +40,13 @@ protected: */ void tab_init_random(); void tab_init_repeat(); - void tab_toggle_button(Gtk::ToggleButton *, playqueue_flags); + void tab_toggle_button(Gtk::ToggleButton *, queue_flags); void tab_dec_sort_count(); virtual void tab_set_size(); void tab_unmap(); public: - Tab(Playqueue *); + Tab(Queue *); virtual ~Tab(); /** @@ -59,7 +59,7 @@ public: void tab_display_sorting(); void tab_focus_search(); void tab_selected_ids(std::vector &); - void tab_queue_add(Playqueue *); + void tab_queue_add(Queue *); bool tab_queue_selected(bool); bool tab_add_to_queue(unsigned int); bool tab_add_to_playlist(const std::string &); @@ -93,7 +93,7 @@ public: }; -Tab *find_tab(Playqueue *); +Tab *find_tab(Queue *); void tab_focus_search(); void init_tabs(); void post_init_tabs(); diff --git a/lib/audio.cpp b/lib/audio.cpp index eb06602a..039bdd8c 100644 --- a/lib/audio.cpp +++ b/lib/audio.cpp @@ -19,7 +19,7 @@ static bool o_pause_enabled = false; static unsigned int o_pause_count = 0; static bool o_should_pause = false; -static Playqueue o_recently_played(PQ_ENABLED); +static Queue o_recently_played(Q_ENABLED); static File f_cur_track("cur_track", FILE_TYPE_DATA); static void parse_error(GstMessage *error) @@ -117,9 +117,9 @@ void audio :: init(int *argc, char ***argv) { GstBus *bus; - o_recently_played.set_flag(PQ_REPEAT); - o_recently_played.set_flag(PQ_NEVER_SORT); - o_recently_played.set_flag(PQ_DISABLE_CHANGED_SIZE); + o_recently_played.set_flag(Q_REPEAT); + o_recently_played.set_flag(Q_NEVER_SORT); + o_recently_played.set_flag(Q_DISABLE_CHANGED_SIZE); gst_init(argc, argv); ocarina_player = gst_element_factory_make("playbin", "ocarina_player"); @@ -251,7 +251,7 @@ unsigned int audio :: current_trackid() return cur_trackid; } -Playqueue *audio :: get_recent_pq() +Queue *audio :: get_recent_pq() { return &o_recently_played; } diff --git a/lib/callback.cpp b/lib/callback.cpp index d732934e..f67054cd 100644 --- a/lib/callback.cpp +++ b/lib/callback.cpp @@ -8,8 +8,8 @@ static void no_op() {} static void no_op(unsigned int) {} static void no_op(bool, unsigned int) {} static void no_op(unsigned int id, Library *path) {} -static void no_op(Playqueue *, unsigned int) {} -static void no_op(Playqueue *) {} +static void no_op(Queue *, unsigned int) {} +static void no_op(Queue *) {} static void no_op(Track *) {} diff --git a/lib/deck.cpp b/lib/deck.cpp index f5661aac..384801b4 100644 --- a/lib/deck.cpp +++ b/lib/deck.cpp @@ -9,8 +9,8 @@ #include -static std::list playqueue_deck; -static Playqueue library_playqueue(PQ_ENABLED); +static std::list playqueue_deck; +static Queue library_playqueue(Q_ENABLED); static File deck_file("deck", FILE_TYPE_DATA); static void add_library_track(unsigned int id) @@ -30,8 +30,8 @@ static void change_library_track(unsigned int id) void deck :: init() { - library_playqueue.set_flag(PQ_REPEAT); - library_playqueue.set_flag(PQ_DISABLE_CHANGED_SIZE); + library_playqueue.set_flag(Q_REPEAT); + library_playqueue.set_flag(Q_DISABLE_CHANGED_SIZE); library_playqueue.add_sort(SORT_ARTIST); library_playqueue.add_sort(SORT_YEAR); library_playqueue.add_sort(SORT_TRACK); @@ -51,7 +51,7 @@ void deck :: read() int random; unsigned int field; bool ascending; - std::list::iterator it; + std::list::iterator it; if (!deck_file.exists()) return; @@ -69,7 +69,7 @@ void deck :: read() deck_file >> num; if (random) - library_playqueue.set_flag(PQ_RANDOM); + library_playqueue.set_flag(Q_RANDOM); playqueue_deck.resize(num); @@ -84,7 +84,7 @@ void deck :: read() void deck :: write() { - std::list::iterator it; + std::list::iterator it; std::list::iterator st; std::list sort_order; @@ -92,7 +92,7 @@ void deck :: write() /* Save library playqueue */ sort_order = library_playqueue.get_sort_order(); - deck_file << (library_playqueue.get_flags() & PQ_RANDOM) << " "; + deck_file << (library_playqueue.get_flags() & Q_RANDOM) << " "; deck_file << sort_order.size() << " "; for (st = sort_order.begin(); st != sort_order.end(); st++) deck_file << st->field << " " << st->ascending << " "; @@ -105,20 +105,20 @@ void deck :: write() deck_file.close(); } -Playqueue *deck :: create(bool random) +Queue *deck :: create(bool random) { - Playqueue *pq; - playqueue_deck.push_back(Playqueue(PQ_ENABLED)); + Queue *pq; + playqueue_deck.push_back(Queue(Q_ENABLED)); pq = &playqueue_deck.back(); if (random == true) - pq->set_flag(PQ_RANDOM); + pq->set_flag(Q_RANDOM); get_callbacks()->on_pq_created(pq, playqueue_deck.size() - 1); return pq; } void deck :: remove(unsigned int id) { - std::list::iterator it = playqueue_deck.begin(); + std::list::iterator it = playqueue_deck.begin(); for (unsigned int i = 0; i < id; i++) it++; get_callbacks()->on_pq_removed(&(*it)); @@ -126,9 +126,9 @@ void deck :: remove(unsigned int id) write(); } -Playqueue *deck :: get(unsigned int id) +Queue *deck :: get(unsigned int id) { - std::list::iterator it = playqueue_deck.begin(); + std::list::iterator it = playqueue_deck.begin(); for (unsigned int i = 0; i < id; i++) it++; return &(*it); @@ -141,8 +141,8 @@ unsigned int deck :: size() void deck :: move(unsigned int old_pos, unsigned int new_pos) { - std::list::iterator it_old = playqueue_deck.begin(); - std::list::iterator it_new = playqueue_deck.begin(); + std::list::iterator it_old = playqueue_deck.begin(); + std::list::iterator it_new = playqueue_deck.begin(); for (unsigned int i = 0; i < playqueue_deck.size(); i++) { if (i < old_pos) @@ -157,11 +157,11 @@ void deck :: move(unsigned int old_pos, unsigned int new_pos) playqueue_deck.splice(it_new, playqueue_deck, it_old); } -void deck :: move(Playqueue *pq, unsigned int new_pos) +void deck :: move(Queue *pq, unsigned int new_pos) { unsigned int old_pos = 0; - std::list::iterator it_old = playqueue_deck.begin(); - std::list::iterator it_new = playqueue_deck.begin(); + std::list::iterator it_old = playqueue_deck.begin(); + std::list::iterator it_new = playqueue_deck.begin(); for (unsigned int i = 0; i < playqueue_deck.size(); i++) { if (&(*it_old) != pq) { @@ -181,10 +181,10 @@ void deck :: move(Playqueue *pq, unsigned int new_pos) unsigned int deck :: next() { unsigned int id = 0; - std::list::iterator it; + std::list::iterator it; for (it = playqueue_deck.begin(); it != playqueue_deck.end(); it++) { - if (it->get_flags() & PQ_ENABLED) { + if (it->get_flags() & Q_ENABLED) { if (it->size() == 0) { playqueue_deck.erase(it); get_callbacks()->on_pq_removed(&(*it)); @@ -203,7 +203,7 @@ unsigned int deck :: next() return library_playqueue.next(); } -Playqueue *deck :: get_library_pq() +Queue *deck :: get_library_pq() { return &library_playqueue; } @@ -221,10 +221,10 @@ void deck :: reset() void deck :: print_info() { unsigned int i = 0; - std::list::iterator it; + std::list::iterator it; for (it = playqueue_deck.begin(); it != playqueue_deck.end(); it++) { - print("deck[%u] = Playqueue { size = %u, flags = %u }\n", + print("deck[%u] = Queue { size = %u, flags = %u }\n", i, it->size(), it->get_flags()); i++; } diff --git a/lib/playlist.cpp b/lib/playlist.cpp index fb33c553..cf338dae 100644 --- a/lib/playlist.cpp +++ b/lib/playlist.cpp @@ -8,7 +8,7 @@ static std::set empty_set; static Index playlist_db("playlist.db", false); -static Playqueue playlist_pq(PQ_ENABLED); +static Queue playlist_pq(Q_ENABLED); static std::string cur_pq; static void import_ban_track(unsigned int track_id) @@ -24,8 +24,8 @@ void playlist :: init() playlist_pq.add_sort(SORT_ARTIST); playlist_pq.add_sort(SORT_YEAR); playlist_pq.add_sort(SORT_TRACK); - playlist_pq.set_flag(PQ_REPEAT); - playlist_pq.set_flag(PQ_NEVER_SORT); + playlist_pq.set_flag(Q_REPEAT); + playlist_pq.set_flag(Q_NEVER_SORT); get_callbacks()->on_library_import_ban = import_ban_track; @@ -93,7 +93,7 @@ const std::set &playlist :: get_tracks(const std::string &name) throw -E_EXIST; } -Playqueue *playlist :: get_pq() +Queue *playlist :: get_pq() { return &playlist_pq; } diff --git a/lib/playqueue.cpp b/lib/queue.cpp similarity index 77% rename from lib/playqueue.cpp rename to lib/queue.cpp index 15440487..c07d7d36 100644 --- a/lib/playqueue.cpp +++ b/lib/queue.cpp @@ -3,7 +3,7 @@ */ #include #include -#include +#include #include #include @@ -13,28 +13,28 @@ #define O_HOURS (60 * O_MINUTES) #define O_DAYS (24 * O_HOURS) -Playqueue :: Playqueue() +Queue :: Queue() : flags(0), cur(-1), length(0) { } -Playqueue :: Playqueue(playqueue_flags f) +Queue :: Queue(queue_flags f) : flags(f), cur(-1), length(0) { } -Playqueue :: ~Playqueue() +Queue :: ~Queue() { } -void Playqueue :: write(File &f) +void Queue :: write(File &f) { f << flags << " " << tracks.size(); for (unsigned int i = 0; i < tracks.size(); i++) f << " " << tracks[i]; } -void Playqueue :: read(File &f) +void Queue :: read(File &f) { unsigned int n; f >> flags >> n; @@ -43,24 +43,24 @@ void Playqueue :: read(File &f) f >> tracks[i]; } -void Playqueue :: set_flag(playqueue_flags f) +void Queue :: set_flag(queue_flags f) { flags |= f; get_callbacks()->on_queue_changed(); } -void Playqueue :: unset_flag(playqueue_flags f) +void Queue :: unset_flag(queue_flags f) { flags &= ~f; get_callbacks()->on_queue_changed(); } -const unsigned int Playqueue :: get_flags() +const unsigned int Queue :: get_flags() { return flags; } -unsigned int Playqueue :: get_length() +unsigned int Queue :: get_length() { return length; } @@ -77,7 +77,7 @@ static inline void add_duration(std::stringstream &ss, unsigned int dur, } } -std::string Playqueue :: get_length_str() +std::string Queue :: get_length_str() { std::stringstream ss; unsigned int len = length; @@ -127,7 +127,7 @@ static bool track_less_than(Track *lhs, Track *rhs, std::list &order) return res; } -unsigned int Playqueue :: find_sorted_id(Track *rhs) +unsigned int Queue :: find_sorted_id(Track *rhs) { Track *lhs; unsigned int begin = 0, end = (tracks.size() - 1), mid; @@ -154,7 +154,7 @@ unsigned int Playqueue :: find_sorted_id(Track *rhs) return begin; } -unsigned int Playqueue :: add(unsigned int track_id) +unsigned int Queue :: add(unsigned int track_id) { unsigned int id = tracks.size(); Track *track = tagdb :: lookup(track_id); @@ -165,12 +165,12 @@ unsigned int Playqueue :: add(unsigned int track_id) tracks.insert(tracks.begin() + id, track_id); length += track->length; get_callbacks()->on_queue_track_add(this, id); - if (!(flags & PQ_DISABLE_CHANGED_SIZE)) + if (!(flags & Q_DISABLE_CHANGED_SIZE)) get_callbacks()->on_queue_changed(); return id; } -unsigned int Playqueue :: add_front(unsigned int track_id) +unsigned int Queue :: add_front(unsigned int track_id) { Track *track; tracks.insert(tracks.begin(), track_id); @@ -178,12 +178,12 @@ unsigned int Playqueue :: add_front(unsigned int track_id) track = tagdb :: lookup(track_id); length += track->length; get_callbacks()->on_queue_track_add(this, 0); - if (!(flags & PQ_DISABLE_CHANGED_SIZE)) + if (!(flags & Q_DISABLE_CHANGED_SIZE)) get_callbacks()->on_queue_changed(); return 0; } -void Playqueue :: del(unsigned int plist_id) +void Queue :: del(unsigned int plist_id) { Track *track; unsigned int track_id = tracks[plist_id]; @@ -192,11 +192,11 @@ void Playqueue :: del(unsigned int plist_id) track = tagdb :: lookup(track_id); length -= track->length; get_callbacks()->on_queue_track_del(this, plist_id); - if (!(flags & PQ_DISABLE_CHANGED_SIZE)) + if (!(flags & Q_DISABLE_CHANGED_SIZE)) get_callbacks()->on_queue_changed(); } -void Playqueue :: del_track(unsigned int track_id) +void Queue :: del_track(unsigned int track_id) { unsigned int i = 0; while (i < tracks.size()) { @@ -207,7 +207,7 @@ void Playqueue :: del_track(unsigned int track_id) } } -void Playqueue :: track_updated(unsigned int track_id) +void Queue :: track_updated(unsigned int track_id) { for (unsigned int i = 0; i < tracks.size(); i++) { if (tracks[i] == track_id) @@ -215,7 +215,7 @@ void Playqueue :: track_updated(unsigned int track_id) } } -unsigned int Playqueue :: size() +unsigned int Queue :: size() { return tracks.size(); } @@ -235,7 +235,7 @@ public: } }; -void Playqueue :: _add_sort(sort_t field, bool ascending) +void Queue :: _add_sort(sort_t field, bool ascending) { struct sort_info info; std::list::iterator it; @@ -255,9 +255,9 @@ void Playqueue :: _add_sort(sort_t field, bool ascending) sort_order.erase(sort_order.begin()); } -void Playqueue :: add_sort(sort_t field, bool ascending) +void Queue :: add_sort(sort_t field, bool ascending) { - if (flags & PQ_NEVER_SORT) + if (flags & Q_NEVER_SORT) return; _add_sort(field, ascending); @@ -268,31 +268,31 @@ void Playqueue :: add_sort(sort_t field, bool ascending) get_callbacks()->on_queue_changed(); } -void Playqueue :: reset_sort(sort_t field, bool ascending) +void Queue :: reset_sort(sort_t field, bool ascending) { - if (flags & PQ_NEVER_SORT) + if (flags & Q_NEVER_SORT) return; if (sort_order.front().field != field) sort_order.clear(); add_sort(field, ascending); } -void Playqueue :: force_clear_sort() +void Queue :: force_clear_sort() { sort_order.clear(); } -std::list &Playqueue :: get_sort_order() +std::list &Queue :: get_sort_order() { return sort_order; } -unsigned int Playqueue :: operator[](unsigned int i) +unsigned int Queue :: operator[](unsigned int i) { return tracks[i]; } -unsigned int Playqueue :: next() +unsigned int Queue :: next() { unsigned int res; @@ -300,7 +300,7 @@ unsigned int Playqueue :: next() throw -E_EXIST; else if (tracks.size() == 1) cur = 0; - else if (flags & PQ_RANDOM) + else if (flags & Q_RANDOM) cur += rand() % (tracks.size() / 2) + 1; else cur++; @@ -309,29 +309,29 @@ unsigned int Playqueue :: next() cur -= tracks.size(); res = tracks[cur]; - if (!(flags & PQ_REPEAT)) { + if (!(flags & Q_REPEAT)) { del(cur); cur--; } return res; } -void Playqueue :: set_cur(unsigned int c) +void Queue :: set_cur(unsigned int c) { cur = c; } -void Playqueue :: path_selected(unsigned int id) +void Queue :: path_selected(unsigned int id) { cur = id; - if (!(flags &PQ_REPEAT)) { + if (!(flags &Q_REPEAT)) { del(cur); cur--; } } #ifdef CONFIG_TEST -void Playqueue :: reset() +void Queue :: reset() { tracks.clear(); set_cur(0); From 5ff68140b55f530a11b1aecec27bb30fb5f1b88c Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Wed, 9 Apr 2014 20:59:15 -0400 Subject: [PATCH 23/93] Rip out import stuff I only needed this to make the jump from Ocarina 5.10 -> Ocarina 6.0. It's not needed anymore, now that 6.0 is out. Signed-off-by: Anna Schumaker --- DESIGN | 25 ++--------- gui/collection_mgr.cpp | 7 ---- include/file.h | 1 - include/library.h | 1 - include/tags.h | 9 ---- lib/file.cpp | 5 --- lib/library.cpp | 81 ------------------------------------ lib/tags.cpp | 13 ------ share/ocarina/ocarina6.glade | 45 -------------------- tests/file | 5 --- tests/src/file.cpp | 5 +-- tests/src/tagdb.cpp | 16 ------- 12 files changed, 4 insertions(+), 209 deletions(-) diff --git a/DESIGN b/DESIGN index 17ea7dbd..613979db 100644 --- a/DESIGN +++ b/DESIGN @@ -87,9 +87,7 @@ On-disk files: in a subdirectory of $XDG_DATA_HOME. The filse class will support reading and writing files in the users - $XDG_CONFIG_HOME/ocarina{-debug|test}. In addition, Ocarina 6.0 will - support reading library files from the Ocarina 5.10 directory: - $HOME/.ocarina{-debug}. + $XDG_CONFIG_HOME/ocarina{-debug|test}. Items should be written to a file with either a space or new line separating multiple values. @@ -103,7 +101,6 @@ On-disk files: - Hint where the file is located: enum FileLocHint { FILE_TYPE_DATA, - FILE_TYPE_LEGACY, FILE_TYPE_INVALID, } @@ -117,9 +114,11 @@ On-disk files: - File: class File : public std::fstream { private: + - Return false if the file has FILE_TYPE_LEGACY set unsigned int version; OpenMode mode; FileLocHint hint; + - Return false if the file has FILE_TYPE_LEGACY set string filepath; public: @@ -143,9 +142,6 @@ On-disk files: XDG_DATA_HOME/ocarina/filepath XDG_DATA_HOME/ocarina-debug/filepath XDG_DATA_HOME/ocarina-test/filepath - $HOME/.ocarina/ - $HOME/.ocarina-debug/ - $HOME/.ocarina-test/ If filepath is an empty string, set the file hint to FILE_TYPE_INVALID and do not set the filepath field. @@ -175,7 +171,6 @@ On-disk files: - Read in version from the start of the file When opening a file for writing (mode == OPEN_WRITE), - - Return false if the file has FILE_TYPE_LEGACY set - Create missing directories as needed - Write version information to the start of the file @@ -538,14 +533,6 @@ Tag Database: Tags are defined in the sections below. -- Import data: - struct ImportData { - unsigned int last_year; - unsigned int last_month; - unsigned int last_day; - unsigned int play_count; - }; - - Databases: Database artist_db; Database album_db; @@ -567,12 +554,6 @@ Tag Database: Check the database size both before and after to see if a new track has been added. - Track *tagdb :: import_track(const std::string &filepath, - Library *library, ImportData *import); - Use add_track() to add a new track to the database. If the - return values != NULL, then use the import information to set - last played variables. - Library *tagdb :: add_library(const std::string &filepath); Add a new path to library_db. Return a pointer to the new path or return NULL if the path is already in the database. diff --git a/gui/collection_mgr.cpp b/gui/collection_mgr.cpp index cd17724f..e2d11f16 100644 --- a/gui/collection_mgr.cpp +++ b/gui/collection_mgr.cpp @@ -39,12 +39,6 @@ static void on_collection_update() enable_idle(); } -static void on_collection_import() -{ - library :: import(); - enable_idle(); -} - static void on_collection_row_activated(const Gtk::TreePath &path, Gtk::TreeViewColumn *col) { @@ -137,7 +131,6 @@ void collection_mgr_init() connect_button("o_collection_ok", on_collection_ok); connect_button("o_collection_update", on_collection_update); - connect_button("o_collection_import", on_collection_import); list->set_sort_column(collection_cols.c_col_path, Gtk::SORT_ASCENDING); treeview->signal_row_activated().connect(sigc::ptr_fun(on_collection_row_activated)); diff --git a/include/file.h b/include/file.h index ecd7a68e..a88db254 100644 --- a/include/file.h +++ b/include/file.h @@ -11,7 +11,6 @@ enum FileLocHint { FILE_TYPE_DATA, - FILE_TYPE_LEGACY, FILE_TYPE_INVALID, }; diff --git a/include/library.h b/include/library.h index de7aded8..21bdee13 100644 --- a/include/library.h +++ b/include/library.h @@ -25,7 +25,6 @@ namespace library void update_path(unsigned int); void update_all(); void set_enabled(unsigned int, bool); - void import(); void track_played(unsigned int); #ifdef CONFIG_TEST void print_db(DB_Type); diff --git a/include/tags.h b/include/tags.h index 64ea6f27..6cc3ca89 100644 --- a/include/tags.h +++ b/include/tags.h @@ -20,14 +20,6 @@ enum sort_t { }; -struct ImportData { - unsigned int last_year; - unsigned int last_month; - unsigned int last_day; - unsigned int play_count; -}; - - class Artist : public DatabaseEntry { public: std::string name; @@ -124,7 +116,6 @@ namespace tagdb void commit_library(); Track *add_track(const std::string &, Library *); - Track *import_track(const std::string &, Library *, const ImportData &); Library *add_library(const std::string &); void remove_track(unsigned int); void remove_library(unsigned int); diff --git a/lib/file.cpp b/lib/file.cpp index 02497518..025bdbdc 100644 --- a/lib/file.cpp +++ b/lib/file.cpp @@ -86,11 +86,6 @@ bool File :: open_read() bool File :: open_write() { - if (hint == FILE_TYPE_LEGACY) { - dprint("ERROR: Cannot write to legacy files\n"); - return false; - } - std::string dir = find_dir(); if (g_mkdir_with_parents(dir.c_str(), 0755) != 0) { dprint("ERROR: Could not make directory\n"); diff --git a/lib/library.cpp b/lib/library.cpp index 1cb0bb1f..044808e1 100644 --- a/lib/library.cpp +++ b/lib/library.cpp @@ -88,66 +88,6 @@ static void do_update_library(unsigned int lib_id) idle :: schedule(do_scan_path, scan); } -static void do_import_track(File &f, Library *library) -{ - struct ImportData data; - unsigned int year, banned, tmp; - - std::string filepath = f.getline(); - std::string title = f.getline(); - std::string artist = f.getline(); - std::string album = f.getline(); - std::string comment = f.getline(); - std::string genre = f.getline(); - std::string lenstr = f.getline(); - - f >> tmp /* id */ >> year >> tmp >> data.play_count; - f >> data.last_day >> data.last_month >> data.last_year >> tmp; - f >> tmp >> tmp >>tmp >> banned; /* bitrate, sample, channels, banned */ - f.getline(); /* get rest of line */ - - Track *track = tagdb :: import_track(filepath, library, data); - get_callbacks()->on_library_track_add(track->id); - - if (banned == true) - get_callbacks()->on_library_import_ban(track->id); -} - -static void do_import_library(std::string &s) -{ - unsigned int id, next_id, size; - std::string path; - bool enabled; - File f(s, FILE_TYPE_LEGACY); - - print("Importing: %s\n", f.get_filepath()); - f.open(OPEN_READ); - - if (f.get_version() != 2) { - print("Version mismatch: %u != 2\n", f.get_version()); - return; - } - - path = f.getline(); - f >> id >> enabled >> next_id >> size; - - Library *library = tagdb :: add_library(path); - if (library == NULL) { - print("Library already contains path: %s, skipping\n", path.c_str()); - return; - } - print("Adding path: %s\n", path.c_str()); - get_callbacks()->on_library_add(library->id, library); - - f.getline(); /* Get rest of line */ - for (unsigned int i = 0; i < size; i++) - do_import_track(f, library); - tagdb :: commit(); - get_callbacks()->on_library_update(library->id, library); - - library :: update_path(id); -} - /* @@ -236,27 +176,6 @@ void library :: set_enabled(unsigned int id, bool enabled) } } -void library :: import() -{ - unsigned int i = 0; - std::string name; - - do { - std::stringstream ss; - ss << i; - - name = ss.str(); - File f(name, FILE_TYPE_LEGACY); - - if (f.exists() == false) - break; - - idle :: schedule(do_import_library, name); - ss.clear(); - i++; - } while (true); -} - void library :: track_played(unsigned int id) { time_t the_time = time(NULL); diff --git a/lib/tags.cpp b/lib/tags.cpp index c3f8ec1f..8dc7949a 100644 --- a/lib/tags.cpp +++ b/lib/tags.cpp @@ -339,19 +339,6 @@ Track *tagdb :: add_track(const std::string &filepath, Library *library) return track; } -Track *tagdb :: import_track(const std::string &filepath, Library *library, - const ImportData &import) -{ - Track *track = add_track(filepath, library); - if (track) { - track->last_year = import.last_year; - track->last_month = import.last_month; - track->last_day = import.last_day; - track->play_count = import.play_count; - } - return track; -} - Library *tagdb :: add_library(const std::string &filepath) { unsigned int size = library_db.size(); diff --git a/share/ocarina/ocarina6.glade b/share/ocarina/ocarina6.glade index 272b5ea3..6e30b166 100644 --- a/share/ocarina/ocarina6.glade +++ b/share/ocarina/ocarina6.glade @@ -1242,51 +1242,6 @@ Manager 1 - - - True - True - True - - - True - False - True - - - True - False - gtk-convert - - - False - True - 0 - - - - - True - False - Import - center - - - False - True - 1 - - - - - - - False - True - 5 - 2 - -

False diff --git a/tests/file b/tests/file index c23da453..acd65686 100755 --- a/tests/file +++ b/tests/file @@ -24,12 +24,9 @@ function test_chmod new_test "Filepath Test" test_file -D INVALID -test_file -L INVALID test_file "-D file.txt" "$DATA_DIR/file.txt" -test_file "-L file.txt" "$LEGACY_DIR/file.txt" test_file "file.txt" INVALID test_file "-D -v file.txt" "0" -test_file "-L -v file.txt" "0" if [ -d $DATA_DIR ]; then echo "ERROR: $DATA_DIR should not exist!" @@ -61,8 +58,6 @@ test_file "-D -o R file.txt" "ERROR: File could not be opened for reading" rm -r $DATA_DIR # Test opening for write -test_file "-L -o W file.txt" "ERROR: Cannot write to legacy files" - touch $DATA_DIR test_file "-D -o W file.txt" "ERROR: Could not make directory" diff --git a/tests/src/file.cpp b/tests/src/file.cpp index df651726..64a11dcd 100644 --- a/tests/src/file.cpp +++ b/tests/src/file.cpp @@ -53,7 +53,7 @@ int main(int argc, char **argv) std::string file; std::string data; - while ((c = getopt(argc, argv, "cDgLo:Orvw")) != -1) { + while ((c = getopt(argc, argv, "cDgo:Orvw")) != -1) { switch (c) { case 'c': action = CLOSE; @@ -64,9 +64,6 @@ int main(int argc, char **argv) case 'g': getline = true; break; - case 'L': - hint = FILE_TYPE_LEGACY; - break; case 'o': action = OPEN; switch (optarg[0]) { diff --git a/tests/src/tagdb.cpp b/tests/src/tagdb.cpp index 8097e173..5a97351c 100644 --- a/tests/src/tagdb.cpp +++ b/tests/src/tagdb.cpp @@ -124,22 +124,6 @@ test_tracks: test_track_size(0, __LINE__); - /** - * Test importing a track - */ - ImportData import; - import.last_year = 2014; - import.last_month = 4; - import.last_day = 1; - import.play_count = 7; - - library = tagdb :: add_library("Music"); - track = tagdb :: import_track("Music/1.ogg", library, import); - test_results(track->last_year == 2014, __LINE__); - test_results(track->last_month == 4, __LINE__); - test_results(track->last_day == 1, __LINE__); - test_results(track->play_count == 7, __LINE__); - if (init_called == true) tagdb :: commit(); From 44f62028c35e1541e59b12f2e85dbec643772816 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sat, 12 Apr 2014 13:48:59 -0400 Subject: [PATCH 24/93] database: Return NULL when inserting a duplicate item This provides us a more straightforward way to determine if the database changed. Signed-off-by: Anna Schumaker --- DESIGN | 7 +------ include/database.hpp | 2 +- lib/tags.cpp | 27 +++++++++++++++------------ tests/src/database.cpp | 12 ++++-------- tests/src/tagdb.cpp | 2 +- 5 files changed, 22 insertions(+), 28 deletions(-) diff --git a/DESIGN b/DESIGN index 613979db..ef355013 100644 --- a/DESIGN +++ b/DESIGN @@ -114,11 +114,9 @@ On-disk files: - File: class File : public std::fstream { private: - - Return false if the file has FILE_TYPE_LEGACY set unsigned int version; OpenMode mode; FileLocHint hint; - - Return false if the file has FILE_TYPE_LEGACY set string filepath; public: @@ -306,7 +304,7 @@ Database: T *Database :: insert(const T &item); Look up the item in the _keys map. If we find an item with the same key: - - Return a pointer to the found item. + - Return NULL. Otherwise: - Use new to allocate memory for a new item. - Add the new item to the end of the _db. @@ -551,9 +549,6 @@ Tag Database: Add a new track to the track_db and return a pointer to it. Return NULL if this track is already in the database. - Check the database size both before and after to see if a new - track has been added. - Library *tagdb :: add_library(const std::string &filepath); Add a new path to library_db. Return a pointer to the new path or return NULL if the path is already in the database. diff --git a/include/database.hpp b/include/database.hpp index c5855bcd..348013f4 100644 --- a/include/database.hpp +++ b/include/database.hpp @@ -85,7 +85,7 @@ T *Database :: insert(const T &val) T *t = find(val.primary_key()); if (t != NULL) - return t; + return NULL; t = new T(val); _db.push_back(t); diff --git a/lib/tags.cpp b/lib/tags.cpp index 8dc7949a..8ca7edd1 100644 --- a/lib/tags.cpp +++ b/lib/tags.cpp @@ -213,6 +213,15 @@ static inline const std::string format_tag(const TagLib::String &str) return str.stripWhiteSpace().to8Bit(true); } +template +static T *find_or_insert(const T &tag, Database &db) +{ + T *ret = db.find(tag.primary_key()); + if (!ret) + ret = db.insert(tag); + return ret; +} + void Track :: tag() { TagLib :: Tag *tag; @@ -227,9 +236,9 @@ void Track :: tag() tag = ref.tag(); audio = ref.audioProperties(); - artist = artist_db.insert(Artist(format_tag(tag->artist()))); - album = album_db.insert(Album(format_tag(tag->album()), tag->year())); - genre = genre_db.insert(Genre(format_tag(tag->genre()))); + artist = find_or_insert(Artist(format_tag(tag->artist())), artist_db); + album = find_or_insert(Album(format_tag(tag->album()), tag->year()), album_db); + genre = find_or_insert(Genre(format_tag(tag->genre())), genre_db); track = tag->track(); length = audio->length(); title = format_tag(tag->title()); @@ -331,21 +340,15 @@ void tagdb :: commit_library() Track *tagdb :: add_track(const std::string &filepath, Library *library) { - unsigned int size = track_db.size(); Track *track = track_db.insert(Track(filepath, library)); - if (size == track_db.size()) - return NULL; - track->tag(); + if (track) + track->tag(); return track; } Library *tagdb :: add_library(const std::string &filepath) { - unsigned int size = library_db.size(); - Library *library = library_db.insert(Library(filepath)); - if (size == library_db.size()) - return NULL; - return library; + return library_db.insert(Library(filepath)); } void tagdb :: remove_track(unsigned int track_id) diff --git a/tests/src/database.cpp b/tests/src/database.cpp index 8351b92f..84887c10 100644 --- a/tests/src/database.cpp +++ b/tests/src/database.cpp @@ -119,11 +119,7 @@ int main(int argc, char **argv) */ for (unsigned int i = 0; i < n; i++) { IntEntry *it = db.insert(IntEntry(i)); - if (it->id != i) - test_results(false, __LINE__); - if (i == 1 && it != one) - test_results(false, __LINE__); - if (i == 3 && it != three) + if (it != NULL) test_results(false, __LINE__); } test_results(true, __LINE__); @@ -205,14 +201,14 @@ int main(int argc, char **argv) * 9. Test inserting once again */ for (unsigned int i = 0; i < n; i++) { - index = db.insert(IntEntry(i))->id; + IntEntry *it = db.insert(IntEntry(i)); if ((i % 2) == 0) { size++; actual++; - if (index != (n + (i / 2))) + if (it->id != (n + (i / 2))) test_results(false, __LINE__); } else { - if (index != i) + if (it != NULL) test_results(false, __LINE__); } } diff --git a/tests/src/tagdb.cpp b/tests/src/tagdb.cpp index 5a97351c..28631d22 100644 --- a/tests/src/tagdb.cpp +++ b/tests/src/tagdb.cpp @@ -123,7 +123,7 @@ test_tracks: tagdb :: remove_library(library->id); test_track_size(0, __LINE__); - + library = tagdb :: add_library("Music"); if (init_called == true) tagdb :: commit(); From d939dcab2001575f2dee20017d6f7f61f1473cea Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sun, 13 Apr 2014 12:26:32 -0400 Subject: [PATCH 25/93] queue: Begin code updates So far I have renamed variables, changed a few functions, and updated all the code that was affected. Oh, I also started a new unit test. Signed-off-by: Anna Schumaker --- DESIGN | 20 ++++-- include/deck.h | 2 +- include/queue.h | 20 +++--- lib/audio.cpp | 20 ++---- lib/deck.cpp | 14 ++-- lib/queue.cpp | 162 +++++++++++++++++++++----------------------- tests/Sconscript | 5 +- tests/queue | 7 ++ tests/src/queue.cpp | 31 +++++++++ tests/src/test.h | 45 ++++++++++++ 10 files changed, 204 insertions(+), 122 deletions(-) create mode 100755 tests/queue create mode 100644 tests/src/queue.cpp create mode 100644 tests/src/test.h diff --git a/DESIGN b/DESIGN index ef355013..ad1e9f09 100644 --- a/DESIGN +++ b/DESIGN @@ -853,12 +853,11 @@ Queue: - Sorting: Sorting is done using std::stable_sort() to make sure that orders won't - change unexpectedly. The default sort order is (SORT_ARTIST, true), - (SORT_YEAR, true), (SORT_TRACK, true). + change unexpectedly. - Queue: class Queue { - private: + protected: vector _tracks; list _sort_order; unsigned int _cur; @@ -866,6 +865,7 @@ Queue: unsigned int _length; public: + Queue(); Queue(unsigned int); void read(File &); void write(File &); @@ -893,10 +893,13 @@ File Format: File << flags << tracks.size() << tracks[0] << tracks[1] << ... << tracks[N]; - API + Queue :: Queue(); + Initialize _flags = 0, _cur = -1, _length = 0, and empty sort + order. + Queue :: Queue(unsigned int flags); - Initialize a new queue with the appropriate flags set and with - default sorting. - Set _length = 0, _cur = 0. + Initialize _flags = flags, _cur = -1, _length = 0, and empty + sort order. void Queue :: read(File &f); Read queue from file. @@ -975,6 +978,11 @@ File Format: +- library queue should be set to the default sort order + The default sort order is (SORT_ARTIST, true), + (SORT_YEAR, true), (SORT_TRACK, true). + + Library: (lib/library.cpp) The library manages databases containing track information added by the user. Ocarina 6 splits the library into multiple database tables for diff --git a/include/deck.h b/include/deck.h index 4ef8a10a..5c776b83 100644 --- a/include/deck.h +++ b/include/deck.h @@ -19,7 +19,7 @@ namespace deck unsigned int size(); void move(unsigned int, unsigned int); void move(Queue *, unsigned int); - unsigned int next(); + Track *next(); Queue *get_library_pq(); #ifdef CONFIG_TEST diff --git a/include/queue.h b/include/queue.h index b4d78bf6..66303f7d 100644 --- a/include/queue.h +++ b/include/queue.h @@ -23,12 +23,12 @@ struct sort_info { }; class Queue { -private: - std :: vector tracks; - std :: list sort_order; - unsigned int flags; - unsigned int cur; - unsigned int length; +protected: + std :: vector _tracks; + std :: list _sort_order; + unsigned int _cur; + unsigned int _flags; + unsigned int _length; unsigned int find_sorted_id(Track *); void _add_sort(sort_t, bool); @@ -42,8 +42,8 @@ public: void set_flag(queue_flags); void unset_flag(queue_flags); - const unsigned int get_flags(); - unsigned int get_length(); + bool has_flag(queue_flags); + std::string get_length_str(); unsigned int add(unsigned int); @@ -58,8 +58,8 @@ public: void force_clear_sort(); std::list &get_sort_order(); - unsigned int operator[](unsigned int); - unsigned int next(); + Track *operator[](unsigned int); + Track *next(); void set_cur(unsigned int); void path_selected(unsigned int); #ifdef CONFIG_TEST diff --git a/lib/audio.cpp b/lib/audio.cpp index 039bdd8c..9557b4a0 100644 --- a/lib/audio.cpp +++ b/lib/audio.cpp @@ -191,33 +191,27 @@ void audio :: seek_to(long pos) void audio :: next() { Track *track; - unsigned int id; track_loaded = false; - id = deck :: next(); - track = tagdb :: lookup(id); + track = deck :: next(); load_song(track); track_loaded = true; - cur_trackid = id; + cur_trackid = track->id; save_state(); - o_recently_played.del_track(id); - o_recently_played.add_front(id); + o_recently_played.del_track(track->id); + o_recently_played.add_front(track->id); o_recently_played.set_cur(0); } void audio :: previous() { - Track *track; - unsigned int id; - - id = o_recently_played.next(); - if (id == cur_trackid) + Track *track = o_recently_played.next(); + if (track->id == cur_trackid) return; - track = tagdb :: lookup(id); load_song(track); - cur_trackid = id; + cur_trackid = track->id; save_state(); } diff --git a/lib/deck.cpp b/lib/deck.cpp index 384801b4..3631be74 100644 --- a/lib/deck.cpp +++ b/lib/deck.cpp @@ -92,7 +92,7 @@ void deck :: write() /* Save library playqueue */ sort_order = library_playqueue.get_sort_order(); - deck_file << (library_playqueue.get_flags() & Q_RANDOM) << " "; + deck_file << library_playqueue.has_flag(Q_RANDOM) << " "; deck_file << sort_order.size() << " "; for (st = sort_order.begin(); st != sort_order.end(); st++) deck_file << st->field << " " << st->ascending << " "; @@ -178,25 +178,25 @@ void deck :: move(Queue *pq, unsigned int new_pos) playqueue_deck.splice(it_new, playqueue_deck, it_old); } -unsigned int deck :: next() +Track *deck :: next() { - unsigned int id = 0; + Track *track; std::list::iterator it; for (it = playqueue_deck.begin(); it != playqueue_deck.end(); it++) { - if (it->get_flags() & Q_ENABLED) { + if (it->has_flag(Q_ENABLED)) { if (it->size() == 0) { playqueue_deck.erase(it); get_callbacks()->on_pq_removed(&(*it)); } else { - id = it->next(); + track = it->next(); if (it->size() == 0) { playqueue_deck.erase(it); get_callbacks()->on_pq_removed(&(*it)); } } write(); - return id; + return track; } } @@ -225,7 +225,7 @@ void deck :: print_info() for (it = playqueue_deck.begin(); it != playqueue_deck.end(); it++) { print("deck[%u] = Queue { size = %u, flags = %u }\n", - i, it->size(), it->get_flags()); + i, it->size()); i++; } } diff --git a/lib/queue.cpp b/lib/queue.cpp index c07d7d36..186cb520 100644 --- a/lib/queue.cpp +++ b/lib/queue.cpp @@ -14,12 +14,12 @@ #define O_DAYS (24 * O_HOURS) Queue :: Queue() - : flags(0), cur(-1), length(0) + : _cur(-1), _flags(0), _length(0) { } Queue :: Queue(queue_flags f) - : flags(f), cur(-1), length(0) + : _cur(-1), _flags(f), _length(0) { } @@ -29,40 +29,37 @@ Queue :: ~Queue() void Queue :: write(File &f) { - f << flags << " " << tracks.size(); - for (unsigned int i = 0; i < tracks.size(); i++) - f << " " << tracks[i]; + f << _flags << " " << _tracks.size(); + for (unsigned int i = 0; i < _tracks.size(); i++) + f << " " << _tracks[i]; } void Queue :: read(File &f) { - unsigned int n; - f >> flags >> n; - tracks.resize(n); - for (unsigned int i = 0; i < n; i++) - f >> tracks[i]; + unsigned int n, id; + f >> _flags >> n; + _tracks.resize(n); + for (unsigned int i = 0; i < n; i++) { + f >> id; + _tracks[i] = tagdb :: lookup(id); + } } void Queue :: set_flag(queue_flags f) { - flags |= f; + _flags |= f; get_callbacks()->on_queue_changed(); } void Queue :: unset_flag(queue_flags f) { - flags &= ~f; + _flags &= ~f; get_callbacks()->on_queue_changed(); } -const unsigned int Queue :: get_flags() +bool Queue :: has_flag(queue_flags f) { - return flags; -} - -unsigned int Queue :: get_length() -{ - return length; + return (_flags & f) == (unsigned int)f; } static inline void add_duration(std::stringstream &ss, unsigned int dur, @@ -80,7 +77,7 @@ static inline void add_duration(std::stringstream &ss, unsigned int dur, std::string Queue :: get_length_str() { std::stringstream ss; - unsigned int len = length; + unsigned int len = _length; unsigned int days = len / O_DAYS; len -= days * O_DAYS; @@ -130,15 +127,15 @@ static bool track_less_than(Track *lhs, Track *rhs, std::list &order) unsigned int Queue :: find_sorted_id(Track *rhs) { Track *lhs; - unsigned int begin = 0, end = (tracks.size() - 1), mid; + unsigned int begin = 0, end = (_tracks.size() - 1), mid; - if (tracks.size() == 0) + if (_tracks.size() == 0) return 0; while (end > begin) { mid = begin + ((end - begin) / 2); - lhs = tagdb :: lookup(tracks[mid]); - if (track_less_than(lhs, rhs, sort_order)) + lhs = _tracks[mid]; + if (track_less_than(lhs, rhs, _sort_order)) begin = mid + 1; else { if (mid == begin) @@ -148,37 +145,36 @@ unsigned int Queue :: find_sorted_id(Track *rhs) } } - lhs = tagdb :: lookup(tracks[begin]); - if (track_less_than(lhs, rhs, sort_order)) + lhs = _tracks[begin]; + if (track_less_than(lhs, rhs, _sort_order)) return begin + 1; return begin; } unsigned int Queue :: add(unsigned int track_id) { - unsigned int id = tracks.size(); + unsigned int id = _tracks.size(); Track *track = tagdb :: lookup(track_id); - if (sort_order.size() > 0) + if (_sort_order.size() > 0) id = find_sorted_id(track); - tracks.insert(tracks.begin() + id, track_id); - length += track->length; + _tracks.insert(_tracks.begin() + id, track); + _length += track->length; get_callbacks()->on_queue_track_add(this, id); - if (!(flags & Q_DISABLE_CHANGED_SIZE)) + if (!(_flags & Q_DISABLE_CHANGED_SIZE)) get_callbacks()->on_queue_changed(); return id; } unsigned int Queue :: add_front(unsigned int track_id) { - Track *track; - tracks.insert(tracks.begin(), track_id); + Track *track = tagdb :: lookup(track_id); + _tracks.insert(_tracks.begin(), track); - track = tagdb :: lookup(track_id); - length += track->length; + _length += track->length; get_callbacks()->on_queue_track_add(this, 0); - if (!(flags & Q_DISABLE_CHANGED_SIZE)) + if (!(_flags & Q_DISABLE_CHANGED_SIZE)) get_callbacks()->on_queue_changed(); return 0; } @@ -186,21 +182,21 @@ unsigned int Queue :: add_front(unsigned int track_id) void Queue :: del(unsigned int plist_id) { Track *track; - unsigned int track_id = tracks[plist_id]; + unsigned int track_id = _tracks[plist_id]->id; - tracks.erase(tracks.begin() + plist_id); + _tracks.erase(_tracks.begin() + plist_id); track = tagdb :: lookup(track_id); - length -= track->length; + _length -= track->length; get_callbacks()->on_queue_track_del(this, plist_id); - if (!(flags & Q_DISABLE_CHANGED_SIZE)) + if (!(_flags & Q_DISABLE_CHANGED_SIZE)) get_callbacks()->on_queue_changed(); } void Queue :: del_track(unsigned int track_id) { unsigned int i = 0; - while (i < tracks.size()) { - if (tracks[i] == track_id) + while (i < _tracks.size()) { + if (_tracks[i]->id == track_id) del(i); else i++; @@ -209,15 +205,15 @@ void Queue :: del_track(unsigned int track_id) void Queue :: track_updated(unsigned int track_id) { - for (unsigned int i = 0; i < tracks.size(); i++) { - if (tracks[i] == track_id) + for (unsigned int i = 0; i < _tracks.size(); i++) { + if (_tracks[i]->id == track_id) get_callbacks()->on_queue_track_changed(this, i); } } unsigned int Queue :: size() { - return tracks.size(); + return _tracks.size(); } @@ -227,10 +223,10 @@ private: std::list fields; public: SortTracks(std::list f) : fields(f) {} - bool operator()(unsigned int a, unsigned int b) + bool operator()(Track *a, Track *b) { - Track *lhs = tagdb :: lookup(a); - Track *rhs = tagdb :: lookup(b); + Track *lhs = a; + Track *rhs = b; return track_less_than(lhs, rhs, fields); } }; @@ -241,7 +237,7 @@ void Queue :: _add_sort(sort_t field, bool ascending) std::list::iterator it; /* Is field already in the sort_order? */ - for (it = sort_order.begin(); it != sort_order.end(); it++) { + for (it = _sort_order.begin(); it != _sort_order.end(); it++) { if (it->field == field) { it->ascending = !it->ascending; return; @@ -250,90 +246,90 @@ void Queue :: _add_sort(sort_t field, bool ascending) info.field = field; info.ascending = ascending; - sort_order.push_back(info); - if (sort_order.size() >= 4) - sort_order.erase(sort_order.begin()); + _sort_order.push_back(info); + if (_sort_order.size() >= 4) + _sort_order.erase(_sort_order.begin()); } void Queue :: add_sort(sort_t field, bool ascending) { - if (flags & Q_NEVER_SORT) + if (_flags & Q_NEVER_SORT) return; _add_sort(field, ascending); - std::stable_sort(tracks.begin(), tracks.end(), SortTracks(sort_order)); + std::stable_sort(_tracks.begin(), _tracks.end(), SortTracks(_sort_order)); - for (unsigned int i = 0; i < tracks.size(); i++) + for (unsigned int i = 0; i < _tracks.size(); i++) get_callbacks()->on_queue_track_changed(this, i); get_callbacks()->on_queue_changed(); } void Queue :: reset_sort(sort_t field, bool ascending) { - if (flags & Q_NEVER_SORT) + if (_flags & Q_NEVER_SORT) return; - if (sort_order.front().field != field) - sort_order.clear(); + if (_sort_order.front().field != field) + _sort_order.clear(); add_sort(field, ascending); } void Queue :: force_clear_sort() { - sort_order.clear(); + _sort_order.clear(); } std::list &Queue :: get_sort_order() { - return sort_order; + return _sort_order; } -unsigned int Queue :: operator[](unsigned int i) +Track *Queue :: operator[](unsigned int i) { - return tracks[i]; + return _tracks[i]; } -unsigned int Queue :: next() +Track *Queue :: next() { - unsigned int res; + Track *res; - if (tracks.size() == 0) - throw -E_EXIST; - else if (tracks.size() == 1) - cur = 0; - else if (flags & Q_RANDOM) - cur += rand() % (tracks.size() / 2) + 1; + if (_tracks.size() == 0) + return NULL; + else if (_tracks.size() == 1) + _cur = 0; + else if (_flags & Q_RANDOM) + _cur += rand() % (_tracks.size() / 2) + 1; else - cur++; + _cur++; - if (cur >= tracks.size()) - cur -= tracks.size(); + if (_cur >= _tracks.size()) + _cur -= _tracks.size(); - res = tracks[cur]; - if (!(flags & Q_REPEAT)) { - del(cur); - cur--; + res = _tracks[_cur]; + if (!(_flags & Q_REPEAT)) { + del(_cur); + _cur--; } return res; } void Queue :: set_cur(unsigned int c) { - cur = c; + _cur = c; } void Queue :: path_selected(unsigned int id) { - cur = id; - if (!(flags &Q_REPEAT)) { - del(cur); - cur--; + _cur = id; + if (!(_flags &Q_REPEAT)) { + del(_cur); + _cur--; } } #ifdef CONFIG_TEST void Queue :: reset() { - tracks.clear(); + _tracks.clear(); set_cur(0); } #endif /* CONFIG_TEST */ diff --git a/tests/Sconscript b/tests/Sconscript index 011f97a5..a99f8a91 100644 --- a/tests/Sconscript +++ b/tests/Sconscript @@ -8,8 +8,9 @@ if sys.argv.count("tests") > 0: src = SConscript("src/Sconscript") -tests = [ "version", "file", "database", "index", "filter", "idle", "tag_db" ] -#scripts = [ "playlist", "library", "playqueue", "deck", "audio", "gui" ] +tests = [ "version", "file", "database", "index", "filter", "idle", "tag_db", + "queue" ] +#scripts = [ "playlist", "library", "deck", "audio", "gui" ] prev = None diff --git a/tests/queue b/tests/queue new file mode 100755 index 00000000..fe39791d --- /dev/null +++ b/tests/queue @@ -0,0 +1,7 @@ +#!/bin/bash +# Copyright 2014 (c) Anna Schumaker. + +. $(dirname $0)/_functions + +echo "Queue test" +./src/queue.run diff --git a/tests/src/queue.cpp b/tests/src/queue.cpp new file mode 100644 index 00000000..31cbca59 --- /dev/null +++ b/tests/src/queue.cpp @@ -0,0 +1,31 @@ +/* + * Copyright 2014 (c) Anna Schumaker. + */ +#include +#include "test.h" + +class TestQueue : public Queue +{ +public: + unsigned int get_cur() { return _cur; } + unsigned int get_flags() { return _flags; } + unsigned int get_length() { return _length; } + std::list get_sorder() { return _sort_order; }; +}; + +void test_default() +{ + TestQueue q; + + test :: equal(q.get_cur(), (unsigned)-1); + test :: equal(q.get_flags(), (unsigned)0); + test :: equal(q.get_length(), (unsigned)0); + test :: equal(q.get_sorder().size(), (size_t)0); + test :: equal(q.next(), (Track *)NULL); +} + +int main(int argc, char **argv) +{ + test_default(); + return 0; +} diff --git a/tests/src/test.h b/tests/src/test.h new file mode 100644 index 00000000..3f74dee5 --- /dev/null +++ b/tests/src/test.h @@ -0,0 +1,45 @@ +/* + * Copyright 2014 (c) Anna Schumaker. + */ + +#include +#include + +namespace test +{ + + + static unsigned int test_num; + + void new_test(const std::string &name) + { + std::cout << name << std::endl; + test_num = 0; + } + + void begin() + { + std::cout << " " << test_num << ": "; + test_num++; + } + + template + void assert_equal(const T &lhs, const T &rhs) + { + if (lhs == rhs) + std::cout << "Success!" << std::endl; + else { + std::cout << "Failed! =(" << std::endl; + std::cout << " Actual: " << lhs << std::endl; + std::cout << " Expected: " << rhs << std::endl; + exit(1); + } + } + + template + void equal(const T &lhs, const T &rhs) + { + begin(); + assert_equal(lhs, rhs); + } +} From 6ee68397fd3e7f63fac7324d312b6634195ce4f4 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sun, 13 Apr 2014 18:38:49 -0400 Subject: [PATCH 26/93] queue: Improve the constructor to take multiple flags at once It really should have been like this from the beginning. Signed-off-by: Anna Schumaker --- include/queue.h | 6 ++++-- lib/audio.cpp | 5 +---- lib/playlist.cpp | 4 +--- lib/queue.cpp | 8 ++++---- tests/src/queue.cpp | 16 ++++++++++++++++ 5 files changed, 26 insertions(+), 13 deletions(-) diff --git a/include/queue.h b/include/queue.h index 66303f7d..95399aea 100644 --- a/include/queue.h +++ b/include/queue.h @@ -13,10 +13,12 @@ enum queue_flags { Q_ENABLED = (1 << 0), Q_RANDOM = (1 << 1), Q_REPEAT = (1 << 2), - Q_NEVER_SORT = (1 << 3), + Q_NO_SORT = (1 << 3), Q_DISABLE_CHANGED_SIZE = (1 << 31), }; +static const unsigned int Q_FLAG_MASK = Q_ENABLED | Q_RANDOM | Q_REPEAT | Q_NO_SORT | Q_DISABLE_CHANGED_SIZE; + struct sort_info { sort_t field; bool ascending; @@ -35,7 +37,7 @@ protected: public: Queue(); - Queue(queue_flags); + Queue(unsigned int); ~Queue(); void write(File &); void read(File &); diff --git a/lib/audio.cpp b/lib/audio.cpp index 9557b4a0..2a9f316f 100644 --- a/lib/audio.cpp +++ b/lib/audio.cpp @@ -19,7 +19,7 @@ static bool o_pause_enabled = false; static unsigned int o_pause_count = 0; static bool o_should_pause = false; -static Queue o_recently_played(Q_ENABLED); +static Queue o_recently_played(Q_ENABLED | Q_REPEAT | Q_NO_SORT | Q_DISABLE_CHANGED_SIZE); static File f_cur_track("cur_track", FILE_TYPE_DATA); static void parse_error(GstMessage *error) @@ -117,9 +117,6 @@ void audio :: init(int *argc, char ***argv) { GstBus *bus; - o_recently_played.set_flag(Q_REPEAT); - o_recently_played.set_flag(Q_NEVER_SORT); - o_recently_played.set_flag(Q_DISABLE_CHANGED_SIZE); gst_init(argc, argv); ocarina_player = gst_element_factory_make("playbin", "ocarina_player"); diff --git a/lib/playlist.cpp b/lib/playlist.cpp index cf338dae..567cf926 100644 --- a/lib/playlist.cpp +++ b/lib/playlist.cpp @@ -8,7 +8,7 @@ static std::set empty_set; static Index playlist_db("playlist.db", false); -static Queue playlist_pq(Q_ENABLED); +static Queue playlist_pq(Q_ENABLED | Q_REPEAT | Q_NO_SORT); static std::string cur_pq; static void import_ban_track(unsigned int track_id) @@ -24,8 +24,6 @@ void playlist :: init() playlist_pq.add_sort(SORT_ARTIST); playlist_pq.add_sort(SORT_YEAR); playlist_pq.add_sort(SORT_TRACK); - playlist_pq.set_flag(Q_REPEAT); - playlist_pq.set_flag(Q_NEVER_SORT); get_callbacks()->on_library_import_ban = import_ban_track; diff --git a/lib/queue.cpp b/lib/queue.cpp index 186cb520..c153fb5d 100644 --- a/lib/queue.cpp +++ b/lib/queue.cpp @@ -18,8 +18,8 @@ Queue :: Queue() { } -Queue :: Queue(queue_flags f) - : _cur(-1), _flags(f), _length(0) +Queue :: Queue(unsigned int f) + : _cur(-1), _flags(f & Q_FLAG_MASK), _length(0) { } @@ -253,7 +253,7 @@ void Queue :: _add_sort(sort_t field, bool ascending) void Queue :: add_sort(sort_t field, bool ascending) { - if (_flags & Q_NEVER_SORT) + if (_flags & Q_NO_SORT) return; _add_sort(field, ascending); @@ -266,7 +266,7 @@ void Queue :: add_sort(sort_t field, bool ascending) void Queue :: reset_sort(sort_t field, bool ascending) { - if (_flags & Q_NEVER_SORT) + if (_flags & Q_NO_SORT) return; if (_sort_order.front().field != field) _sort_order.clear(); diff --git a/tests/src/queue.cpp b/tests/src/queue.cpp index 31cbca59..706e6f68 100644 --- a/tests/src/queue.cpp +++ b/tests/src/queue.cpp @@ -4,15 +4,19 @@ #include #include "test.h" + class TestQueue : public Queue { public: + TestQueue() : Queue() {} + TestQueue(unsigned int f) : Queue(f) {} unsigned int get_cur() { return _cur; } unsigned int get_flags() { return _flags; } unsigned int get_length() { return _length; } std::list get_sorder() { return _sort_order; }; }; + void test_default() { TestQueue q; @@ -24,8 +28,20 @@ void test_default() test :: equal(q.next(), (Track *)NULL); } +void test_constructor(unsigned int flags) +{ + TestQueue q(flags | (1 << 30)); + + test :: equal(q.get_cur(), (unsigned)-1); + test :: equal(q.get_flags(), flags); + test :: equal(q.get_length(), (unsigned)0); + test :: equal(q.get_sorder().size(), (size_t)0); + test :: equal(q.next(), (Track *)NULL); +} + int main(int argc, char **argv) { test_default(); + test_constructor(Q_ENABLED | Q_RANDOM); return 0; } From 30e12bcb687f81e4edc7075759a4135fa7fb28fa Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sun, 13 Apr 2014 18:39:56 -0400 Subject: [PATCH 27/93] Allow running single tests This makes testing easier, since I'll only see the test I need and not everything that runs before it. Signed-off-by: Anna Schumaker --- tests/Sconscript | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/tests/Sconscript b/tests/Sconscript index a99f8a91..a2107b2f 100644 --- a/tests/Sconscript +++ b/tests/Sconscript @@ -3,8 +3,14 @@ import sys Import("env") -if sys.argv.count("tests") > 0: - env.Append( CCFLAGS = [ "-DCONFIG_TEST" ] ) +check_depends = True + +for arg in sys.argv: + if arg.find("tests") == 0: + env.Append( CCFLAGS = [ "-DCONFIG_TEST" ] ) + if len(arg) > 5: + check_depends = False + break src = SConscript("src/Sconscript") @@ -17,8 +23,9 @@ prev = None for test in tests: t = Command("%s.out" % test, [], "./tests/%s" % test) - if prev: + if prev and (check_depends == True): Depends(t, prev) Depends(t, src) AlwaysBuild(t) + Alias("tests/%s" % test, t) prev = t From 78fe570e36907a23ec5a57d8a211af214671c030 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sat, 26 Apr 2014 10:40:37 -0400 Subject: [PATCH 28/93] Add new tag layer idea to ease testing Signed-off-by: Anna Schumaker --- TODO | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/TODO b/TODO index e5045903..e4e93e66 100644 --- a/TODO +++ b/TODO @@ -91,3 +91,7 @@ Future work: - Investigate "Bulk insert" callbacks for performance - Initialize PQs with multiple flags - Use "friend" class for valid and id flags of a DatabaseEntry + - New tag layer + - Functions to tag individual files + - Functions to read multiple tags from a single text file when + CONFIG_TEST == true From 35f19d98ef3f67ff7d22b206760c98f4f458618f Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sat, 26 Apr 2014 11:00:44 -0400 Subject: [PATCH 29/93] queue: Add tests for queue flags I remove the "on_queue_changed" callback in the flag handler functions, so changes won't trigger a save until I can update later layers. Signed-off-by: Anna Schumaker --- lib/queue.cpp | 2 -- tests/queue | 1 - tests/src/queue.cpp | 26 ++++++++++++++++++++++++++ tests/src/test.h | 5 +++++ 4 files changed, 31 insertions(+), 3 deletions(-) diff --git a/lib/queue.cpp b/lib/queue.cpp index c153fb5d..ea906cca 100644 --- a/lib/queue.cpp +++ b/lib/queue.cpp @@ -48,13 +48,11 @@ void Queue :: read(File &f) void Queue :: set_flag(queue_flags f) { _flags |= f; - get_callbacks()->on_queue_changed(); } void Queue :: unset_flag(queue_flags f) { _flags &= ~f; - get_callbacks()->on_queue_changed(); } bool Queue :: has_flag(queue_flags f) diff --git a/tests/queue b/tests/queue index fe39791d..791fe29c 100755 --- a/tests/queue +++ b/tests/queue @@ -3,5 +3,4 @@ . $(dirname $0)/_functions -echo "Queue test" ./src/queue.run diff --git a/tests/src/queue.cpp b/tests/src/queue.cpp index 706e6f68..545e5bbc 100644 --- a/tests/src/queue.cpp +++ b/tests/src/queue.cpp @@ -21,6 +21,7 @@ void test_default() { TestQueue q; + test :: new_test("Queue Default Constructor Test"); test :: equal(q.get_cur(), (unsigned)-1); test :: equal(q.get_flags(), (unsigned)0); test :: equal(q.get_length(), (unsigned)0); @@ -32,16 +33,41 @@ void test_constructor(unsigned int flags) { TestQueue q(flags | (1 << 30)); + test :: new_test("Queue Constructor Test"); test :: equal(q.get_cur(), (unsigned)-1); test :: equal(q.get_flags(), flags); test :: equal(q.get_length(), (unsigned)0); test :: equal(q.get_sorder().size(), (size_t)0); test :: equal(q.next(), (Track *)NULL); + test :: end(); +} + +void test_flags() +{ + TestQueue q(0); + + test :: new_test("Queue Flag Test"); + test :: equal(q.get_flags(), (unsigned)0); + + q.set_flag(Q_ENABLED); + test :: equal(q.get_flags(), (unsigned)Q_ENABLED); + + q.unset_flag(Q_ENABLED); + test :: equal(q.get_flags(), (unsigned)0); + + q.set_flag(Q_REPEAT); + q.set_flag(Q_RANDOM); + test :: equal(q.has_flag(Q_ENABLED), false); + test :: equal(q.has_flag(Q_RANDOM), true); + test :: equal(q.has_flag(Q_REPEAT), true); + test :: equal(q.has_flag(Q_NO_SORT), false); + test ::end(); } int main(int argc, char **argv) { test_default(); test_constructor(Q_ENABLED | Q_RANDOM); + test_flags(); return 0; } diff --git a/tests/src/test.h b/tests/src/test.h index 3f74dee5..fea0e20f 100644 --- a/tests/src/test.h +++ b/tests/src/test.h @@ -23,6 +23,11 @@ namespace test test_num++; } + void end() + { + std::cout << std::endl; + } + template void assert_equal(const T &lhs, const T &rhs) { From 8aa121f291443a9c244da597cefabe2352fd0758 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sat, 26 Apr 2014 11:59:12 -0400 Subject: [PATCH 30/93] tests: Update testing framework and begin reworking everything Add in several new features like: - Don't exit until the specific test function completes. - Make it easier to run named tests from C++. - Use a macro to find line number when calling test :: equal(). - Use a macro to do basic setup and cleanup between test functions. Also update the version test while I'm at it. Signed-off-by: Anna Schumaker --- tests/Sconscript | 6 +++--- tests/src/test.h | 47 +++++++++++++++++++++++++++++-------------- tests/src/version.cpp | 16 ++++++++++++--- tests/version | 14 ------------- 4 files changed, 48 insertions(+), 35 deletions(-) delete mode 100755 tests/version diff --git a/tests/Sconscript b/tests/Sconscript index a2107b2f..3b8e361b 100644 --- a/tests/Sconscript +++ b/tests/Sconscript @@ -14,14 +14,14 @@ for arg in sys.argv: src = SConscript("src/Sconscript") -tests = [ "version", "file", "database", "index", "filter", "idle", "tag_db", - "queue" ] +tests = [ "version" ] #, "file", "database", "index", "filter", "idle", "tag_db", +# "queue" ] #scripts = [ "playlist", "library", "deck", "audio", "gui" ] prev = None for test in tests: - t = Command("%s.out" % test, [], "./tests/%s" % test) + t = Command("%s.out" % test, [], "./tests/src/%s.run" % test) if prev and (check_depends == True): Depends(t, prev) diff --git a/tests/src/test.h b/tests/src/test.h index fea0e20f..af4dfe46 100644 --- a/tests/src/test.h +++ b/tests/src/test.h @@ -10,11 +10,13 @@ namespace test static unsigned int test_num; + static unsigned int failed; void new_test(const std::string &name) { std::cout << name << std::endl; test_num = 0; + failed = 0; } void begin() @@ -26,25 +28,40 @@ namespace test void end() { std::cout << std::endl; - } - - template - void assert_equal(const T &lhs, const T &rhs) - { - if (lhs == rhs) - std::cout << "Success!" << std::endl; - else { - std::cout << "Failed! =(" << std::endl; - std::cout << " Actual: " << lhs << std::endl; - std::cout << " Expected: " << rhs << std::endl; - exit(1); + if (failed > 0) { + std::cout << failed << " tests failed =(" << std::endl; + std::cout << std::endl; + exit(failed); } } template - void equal(const T &lhs, const T &rhs) + void assert_equal(const T &lhs, const T &rhs, unsigned int line) { - begin(); - assert_equal(lhs, rhs); + if (lhs == rhs) + std::cout << "Success!" << std::endl; + else { + std::cout << "Failed at line " << line << ":" << std::endl; + std::cout << " Actual: " << lhs << std::endl; + std::cout << " Expected: " << rhs << std::endl; + failed++; + } } + + #define equal(lhs, rhs) \ + begin(); \ + test :: assert_equal(lhs, rhs, __LINE__) } + +#define run_test(name, func, ...) \ + do { \ + test :: new_test(name); \ + func(##__VA_ARGS__); \ + test :: end(); \ + } while (0) + +#define test_equal(lhs, rhs) \ + do { \ + test :: begin(); \ + test :: assert_equal(lhs, rhs, __LINE__); \ + } while (0) diff --git a/tests/src/version.cpp b/tests/src/version.cpp index faa6d393..727438a9 100644 --- a/tests/src/version.cpp +++ b/tests/src/version.cpp @@ -1,12 +1,22 @@ /* * Copyright 2013 (c) Anna Schumaker. - * Prints out version info */ -#include #include +#include "test.h" + +#ifdef CONFIG_DEBUG +const std::string expected = "6.1-debug"; +#else +const std::string expected = "6.1"; +#endif /* CONFIG_DEBUG */ + +static void test_version() +{ + test_equal((std::string)get_version(), expected); +} int main(int argc, char **argv) { - print("%s\n", get_version()); + run_test("Version Test", test_version); return 0; } diff --git a/tests/version b/tests/version deleted file mode 100755 index 75b56540..00000000 --- a/tests/version +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash -# Copyright 2014 (c) Anna Schumaker. - -. $(dirname $0)/_functions - - -# Find version -version=$(config_version) -[ $(config_debug) == "True" ] && version="$version-debug" - - -# Run test -echo -n "Version test ... " -assert_equal "$(./src/version.run)" "$version" From 55f3f06ded39e2422a0e61c04f75b2cc27168529 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sat, 26 Apr 2014 13:31:22 -0400 Subject: [PATCH 31/93] file: More cleanups after removing legacy file support Looks like I missed updating a few places in the File class. I do that now, and I also began updating the unit test to the new system. Signed-off-by: Anna Schumaker --- .gitignore | 1 + DESIGN | 37 +++++++++++-------------- include/database.hpp | 2 +- include/file.h | 12 ++------ lib/audio.cpp | 2 +- lib/deck.cpp | 2 +- lib/file.cpp | 63 +++++++++++++++++------------------------- tests/Sconscript | 3 +- tests/src/db_entry.cpp | 2 +- tests/src/file.cpp | 28 +++++++++++++++++-- tests/src/filter.cpp | 2 +- tests/src/tags.cpp | 4 +-- tests/src/test.h | 36 ++++++++++++++++++------ 13 files changed, 108 insertions(+), 86 deletions(-) diff --git a/.gitignore b/.gitignore index e42436a8..93b1a6b2 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ share/ocarina/#* bin/ .sconsign.dblite +*.patch diff --git a/DESIGN b/DESIGN index ad1e9f09..e329d720 100644 --- a/DESIGN +++ b/DESIGN @@ -98,12 +98,6 @@ On-disk files: - File version: #define FILE_VERSION 0 -- Hint where the file is located: - enum FileLocHint { - FILE_TYPE_DATA, - FILE_TYPE_INVALID, - } - - Open mode: enum OpenMode { OPEN_READ, @@ -116,13 +110,12 @@ On-disk files: private: unsigned int version; OpenMode mode; - FileLocHint hint; - string filepath; + string filename; public: - File(string, FileLocHint); + File(const std::string &); ~File(); - const char *get_filepath(); + const std::string get_filepath(); const unsigned int get_version(); bool exists(); void open(OpenMode); @@ -135,20 +128,22 @@ On-disk files: File << ; - API: - File :: File(string filepath, FileLocHint hint); - Resolve filepath to one of: - XDG_DATA_HOME/ocarina/filepath - XDG_DATA_HOME/ocarina-debug/filepath - XDG_DATA_HOME/ocarina-test/filepath - - If filepath is an empty string, set the file hint to - FILE_TYPE_INVALID and do not set the filepath field. + File :: File(const std::string &filename); + Store the name of the file. File :: ~File(); Close the file stream if it is open. - const char *File :: get_filepath(); - Return the full filepath to the file. + const std::string File :: get_filepath(); + If filename == "": + return "" + + Otherwise, resolve filepath to one of: + XDG_DATA_HOME/ocarina/filepath + XDG_DATA_HOME/ocarina-debug/filepath + XDG_DATA_HOME/ocarina-test/filepath + + and return the result. const unsigned int File :: get_version(); Return the file version number. @@ -159,7 +154,7 @@ On-disk files: bool File :: open(OpenMode mode); Return false if: - - hint == FILE_TYPE_INVALID + - filename == "" - mode == NOT_OPEN - The file is already open diff --git a/include/database.hpp b/include/database.hpp index 348013f4..40ab7e5d 100644 --- a/include/database.hpp +++ b/include/database.hpp @@ -11,7 +11,7 @@ template Database :: Database(std::string filepath, bool autosave) - : _size(0), _autosave(autosave), _file(filepath, FILE_TYPE_DATA) + : _size(0), _autosave(autosave), _file(filepath) { } diff --git a/include/file.h b/include/file.h index a88db254..a4073b9f 100644 --- a/include/file.h +++ b/include/file.h @@ -9,11 +9,6 @@ #define FILE_VERSION 0 -enum FileLocHint { - FILE_TYPE_DATA, - FILE_TYPE_INVALID, -}; - enum OpenMode { OPEN_READ, OPEN_WRITE, @@ -23,16 +18,15 @@ enum OpenMode { class File : public std::fstream { private: OpenMode mode; - FileLocHint hint; - std::string filepath; + std::string filename; unsigned int version; - std::string find_dir(); + const char *find_dir(); bool open_read(); bool open_write(); public: - File(const std::string &, FileLocHint); + File(const std::string &); ~File(); const char *get_filepath(); const unsigned int get_version(); diff --git a/lib/audio.cpp b/lib/audio.cpp index 2a9f316f..051f49d7 100644 --- a/lib/audio.cpp +++ b/lib/audio.cpp @@ -20,7 +20,7 @@ static unsigned int o_pause_count = 0; static bool o_should_pause = false; static Queue o_recently_played(Q_ENABLED | Q_REPEAT | Q_NO_SORT | Q_DISABLE_CHANGED_SIZE); -static File f_cur_track("cur_track", FILE_TYPE_DATA); +static File f_cur_track("cur_track"); static void parse_error(GstMessage *error) { diff --git a/lib/deck.cpp b/lib/deck.cpp index 3631be74..0d3d31af 100644 --- a/lib/deck.cpp +++ b/lib/deck.cpp @@ -11,7 +11,7 @@ static std::list playqueue_deck; static Queue library_playqueue(Q_ENABLED); -static File deck_file("deck", FILE_TYPE_DATA); +static File deck_file("deck"); static void add_library_track(unsigned int id) { diff --git a/lib/file.cpp b/lib/file.cpp index 025bdbdc..be560e3b 100644 --- a/lib/file.cpp +++ b/lib/file.cpp @@ -8,23 +8,16 @@ #include #ifdef CONFIG_TEST -#define OCARINA_DIR "ocarina-test" +const std::string OCARINA_DIR = "ocarina-test"; #elif CONFIG_DEBUG -#define OCARINA_DIR "ocarina-debug" +const std::string OCARINA_DIR = "ocarina-debug"; #else -#define OCARINA_DIR "ocarina" +const std::string OCARINA_DIR = "ocarina"; #endif -File :: File(const std::string &path, FileLocHint file_hint) - : mode(NOT_OPEN), hint(file_hint), version(FILE_VERSION) +File :: File(const std::string &name) + : mode(NOT_OPEN), filename(name), version(FILE_VERSION) { - if (path.size() == 0) - hint = FILE_TYPE_INVALID; - - if (hint == FILE_TYPE_INVALID) - filepath = "INVALID"; - else - filepath = find_dir() + "/" + path; } File :: ~File() @@ -32,9 +25,22 @@ File :: ~File() close(); } +const char *File :: find_dir() +{ + std::string res = g_get_user_data_dir(); + res += "/" + OCARINA_DIR; + return res.c_str(); +} + const char *File :: get_filepath() { - return filepath.c_str(); + std::string res; + + if (filename != "") { + res = find_dir(); + res += "/" + filename; + } + return res.c_str(); } const unsigned int File :: get_version() @@ -44,25 +50,7 @@ const unsigned int File :: get_version() bool File :: exists() { - return g_file_test(filepath.c_str(), G_FILE_TEST_EXISTS); -} - -std::string File :: find_dir() -{ - std::string res; - - if (hint == FILE_TYPE_DATA) { - res = g_get_user_data_dir(); - res += "/"; - res += OCARINA_DIR; - } else /* FILE_TYPE_LEGACY */ { - res = g_get_home_dir(); - res += "/."; - res += OCARINA_DIR; - res += "/library"; - } - - return res; + return g_file_test(filename.c_str(), G_FILE_TEST_EXISTS); } bool File :: open_read() @@ -72,7 +60,7 @@ bool File :: open_read() return false; } - std::fstream::open(filepath.c_str(), std::fstream::in); + std::fstream::open(get_filepath(), std::fstream::in); if (std::fstream::fail()) { dprint("ERROR: File could not be opened for reading\n"); return false; @@ -86,13 +74,12 @@ bool File :: open_read() bool File :: open_write() { - std::string dir = find_dir(); - if (g_mkdir_with_parents(dir.c_str(), 0755) != 0) { + if (g_mkdir_with_parents(find_dir(), 0755) != 0) { dprint("ERROR: Could not make directory\n"); return false; } - std::fstream::open(filepath.c_str(), std::fstream::out); + std::fstream::open(get_filepath(), std::fstream::out); if (std::fstream::fail()) { dprint("ERROR: Could not open file for writing\n"); return false; @@ -105,8 +92,8 @@ bool File :: open_write() bool File :: open(OpenMode m) { - if (hint == FILE_TYPE_INVALID) { - dprint("ERROR: A file with hint = FILE_TYPE_INVALID cannot be opened\n"); + if (filename == "") { + dprint("ERROR: No filename specified\n"); return false; } else if (m == NOT_OPEN) { dprint("ERROR: NOT_OPEN is not a legal OpenMode\n"); diff --git a/tests/Sconscript b/tests/Sconscript index 3b8e361b..d05abdba 100644 --- a/tests/Sconscript +++ b/tests/Sconscript @@ -14,7 +14,8 @@ for arg in sys.argv: src = SConscript("src/Sconscript") -tests = [ "version" ] #, "file", "database", "index", "filter", "idle", "tag_db", +tests = [ "version" , "file" ] +#, "file", "database", "index", "filter", "idle", "tag_db", # "queue" ] #scripts = [ "playlist", "library", "deck", "audio", "gui" ] diff --git a/tests/src/db_entry.cpp b/tests/src/db_entry.cpp index 213f712d..311bb483 100644 --- a/tests/src/db_entry.cpp +++ b/tests/src/db_entry.cpp @@ -81,7 +81,7 @@ int main(int argc, char **argv) std::string key = argv[optind]; - File f("db_entry.txt", FILE_TYPE_DATA); + File f("db_entry.txt"); IntEntry ient(i, key); switch (action) { diff --git a/tests/src/file.cpp b/tests/src/file.cpp index 64a11dcd..8462d2a7 100644 --- a/tests/src/file.cpp +++ b/tests/src/file.cpp @@ -18,8 +18,32 @@ */ #include #include +#include "test.h" -#include + +static void test_filepath() +{ + File a(""); + File b("file.txt"); + + test_equal(a.get_version(), (unsigned)0); + test_equal((std::string)a.get_filepath(), (std::string)""); + + test_equal(b.get_version(), (unsigned)0); + test_equal((std::string)b.get_filepath(), test :: data_file("file.txt")); + + test_equal(a.exists(), false); + test_equal(b.exists(), false); + test_equal(test :: data_dir_exists(), false); +} + +int main(int argc, char **argv) +{ + run_test("File Constructor Test", test_filepath); + return 0; +} + +/*#include enum action_t { CLOSE, OPEN, PATHS, READ, VERSION, WRITE }; @@ -141,4 +165,4 @@ int main(int argc, char **argv) f << data << std::endl; return ret; } -} +}*/ diff --git a/tests/src/filter.cpp b/tests/src/filter.cpp index a2dfb97d..4233edbf 100644 --- a/tests/src/filter.cpp +++ b/tests/src/filter.cpp @@ -27,7 +27,7 @@ void to_lowercase(const std::string &text) void read_file(unsigned int n) { - File f("filter.txt", FILE_TYPE_DATA); + File f("filter.txt"); if (f.open(OPEN_READ)) { for (unsigned int i = 0; i < n; i++) { std::string text = f.getline(); diff --git a/tests/src/tags.cpp b/tests/src/tags.cpp index d42e837e..5d89bfe6 100644 --- a/tests/src/tags.cpp +++ b/tests/src/tags.cpp @@ -29,7 +29,7 @@ void test_results(bool success, unsigned int line) template void save_tag(const std::string &file, T &tag) { - File f(file, FILE_TYPE_DATA); + File f(file); f.open(OPEN_WRITE); tag.write(f); f.close(); @@ -38,7 +38,7 @@ void save_tag(const std::string &file, T &tag) template void load_tag(const std::string &file, T &tag) { - File f(file, FILE_TYPE_DATA); + File f(file); f.open(OPEN_READ); tag.read(f); f.close(); diff --git a/tests/src/test.h b/tests/src/test.h index af4dfe46..857c6c9e 100644 --- a/tests/src/test.h +++ b/tests/src/test.h @@ -4,6 +4,7 @@ #include #include +#include namespace test { @@ -36,7 +37,7 @@ namespace test } template - void assert_equal(const T &lhs, const T &rhs, unsigned int line) + void check_equal(const T &lhs, const T &rhs, unsigned int line) { if (lhs == rhs) std::cout << "Success!" << std::endl; @@ -48,9 +49,29 @@ namespace test } } - #define equal(lhs, rhs) \ - begin(); \ - test :: assert_equal(lhs, rhs, __LINE__) + template + void equal(const T &lhs, const T &rhs, unsigned int line = 0) + { + begin(); + check_equal(lhs, rhs, line); + } + + std::string data_dir() + { + std::string res = g_get_user_data_dir(); + res += "/ocarina-test"; + return res; + } + + std::string data_file(const std::string &name) + { + return data_dir() + "/" + name; + } + + bool data_dir_exists() + { + return g_file_test(data_dir().c_str(), G_FILE_TEST_IS_DIR); + } } #define run_test(name, func, ...) \ @@ -60,8 +81,7 @@ namespace test test :: end(); \ } while (0) -#define test_equal(lhs, rhs) \ - do { \ - test :: begin(); \ - test :: assert_equal(lhs, rhs, __LINE__); \ +#define test_equal(lhs, rhs) \ + do { \ + test :: equal(lhs, rhs, __LINE__); \ } while (0) From 7b358259bd9093ee6c3e3647659782726a9233ad Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sat, 26 Apr 2014 14:06:20 -0400 Subject: [PATCH 32/93] file: Finish updating the new file test Signed-off-by: Anna Schumaker --- lib/file.cpp | 28 ++----- tests/file | 112 ---------------------------- tests/src/file.cpp | 182 +++++++++++---------------------------------- tests/src/test.h | 12 +++ 4 files changed, 60 insertions(+), 274 deletions(-) delete mode 100755 tests/file diff --git a/lib/file.cpp b/lib/file.cpp index be560e3b..0f4a7e76 100644 --- a/lib/file.cpp +++ b/lib/file.cpp @@ -50,21 +50,17 @@ const unsigned int File :: get_version() bool File :: exists() { - return g_file_test(filename.c_str(), G_FILE_TEST_EXISTS); + return g_file_test(get_filepath(), G_FILE_TEST_EXISTS); } bool File :: open_read() { - if (!exists()) { - dprint("ERROR: File does not exist\n"); + if (!exists()) return false; - } std::fstream::open(get_filepath(), std::fstream::in); - if (std::fstream::fail()) { - dprint("ERROR: File could not be opened for reading\n"); + if (std::fstream::fail()) return false; - } mode = OPEN_READ; std::fstream::operator>>(version); @@ -74,16 +70,12 @@ bool File :: open_read() bool File :: open_write() { - if (g_mkdir_with_parents(find_dir(), 0755) != 0) { - dprint("ERROR: Could not make directory\n"); + if (g_mkdir_with_parents(find_dir(), 0755) != 0) return false; - } std::fstream::open(get_filepath(), std::fstream::out); - if (std::fstream::fail()) { - dprint("ERROR: Could not open file for writing\n"); + if (std::fstream::fail()) return false; - } mode = OPEN_WRITE; std::fstream::operator<<(FILE_VERSION) << std::endl; @@ -92,16 +84,8 @@ bool File :: open_write() bool File :: open(OpenMode m) { - if (filename == "") { - dprint("ERROR: No filename specified\n"); + if ((filename == "") || (m == NOT_OPEN) || (mode != NOT_OPEN)) return false; - } else if (m == NOT_OPEN) { - dprint("ERROR: NOT_OPEN is not a legal OpenMode\n"); - return false; - } else if (mode != NOT_OPEN) { - dprint("ERROR: File is already open\n"); - return false; - } else if (m == OPEN_READ) return open_read(); diff --git a/tests/file b/tests/file deleted file mode 100755 index acd65686..00000000 --- a/tests/file +++ /dev/null @@ -1,112 +0,0 @@ -#!/bin/bash -# Copyright 2014 (c) Anna Schumaker - -. $(dirname $0)/_functions - -function test_file -{ - test_equal "./src/file.run $1" "$2" -} - -function test_chmod -{ - touch $2 - chmod $1 $2 -} - - - -### -# -# Test filepaths -# - -new_test "Filepath Test" - -test_file -D INVALID -test_file "-D file.txt" "$DATA_DIR/file.txt" -test_file "file.txt" INVALID -test_file "-D -v file.txt" "0" - -if [ -d $DATA_DIR ]; then - echo "ERROR: $DATA_DIR should not exist!" - exit 1 -fi - - - -### -# -# Test opening files -# - -echo -new_test "File Open Test" - -# Generic open testing -test_file "-o N file.txt" "ERROR: A file with hint = FILE_TYPE_INVALID cannot be opened" -test_file "-D -o N file.txt" "ERROR: NOT_OPEN is not a legal OpenMode" -test_file "-D -o W -O file.txt" "ERROR: File is already open" # This test creates a file -test_file "-D -o R -O file.txt" "ERROR: File is already open" -rm $DATA_DIR/* - -# Test opening for read -test_file "-D -o R file.txt" "ERROR: File does not exist" - -test_chmod -r $DATA_DIR/file.txt -test_file "-D -o R file.txt" "ERROR: File could not be opened for reading" -rm -r $DATA_DIR - -# Test opening for write -touch $DATA_DIR -test_file "-D -o W file.txt" "ERROR: Could not make directory" - -rm $DATA_DIR -mkdir -p $DATA_DIR -test_chmod -w $DATA_DIR/file.txt -test_file "-D -o W file.txt" "ERROR: Could not open file for writing" -rm -rf $DATA_DIR - - - -### -# -# Test closing files -# - -echo -new_test "File Close Test" -test_file "-D -c file.txt" "" - - - -### -# -# Test FILE IO -# - -data="ABCDE FGHIJ KLMNO PQRST UVWXYZ" -echo -new_test "File IO Test" - -# Write to file -./src/file.run -D -w file.txt "$data" -start_test -assert_equal "$(cat $DATA_DIR/file.txt)" "0 -$data" - -# Read data back from file -test_file "-D -r file.txt" "ABCDE -FGHIJ -KLMNO -PQRST -UVWXYZ" - -# Write different data to file -./src/file.run -D -w file.txt " $data" -start_test -assert_equal "$(cat $DATA_DIR/file.txt)" "0 - $data" - -# Read data back in a single line -test_file "-D -r -g file.txt" "$data" diff --git a/tests/src/file.cpp b/tests/src/file.cpp index 8462d2a7..f12deb1c 100644 --- a/tests/src/file.cpp +++ b/tests/src/file.cpp @@ -1,23 +1,7 @@ /* * Copyright 2014 (c) Anna Schumaker. - * Do stuff with files - * - * Usage: files -D|-L [-c -g -o {R, W, N} -O -r -v -w] name [DATA] - * - * -D: FILE_TYPE_DATA - * -L: FILE_TYPE_LEGACY - * - * -c: Test closing the file - * -g: Read file using getline() - * -o: Open the file for READ, WRITE, or NOT_OPEN - * -O: Open the file a second time - * -r: Read data from file - * -v: Print version and exit - * -w: Write data to file - * */ #include -#include #include "test.h" @@ -37,132 +21,50 @@ static void test_filepath() test_equal(test :: data_dir_exists(), false); } +static void test_open() +{ + File a(""); + + test_equal(a.open(OPEN_READ), false); + test_equal(a.open(OPEN_WRITE), false); + + File b("file.txt"); + test_equal(b.open(NOT_OPEN), false); + test_equal(b.open(OPEN_READ), false); + test_equal(b.open(OPEN_WRITE), true); + test_equal(b.open(OPEN_WRITE), false); + b.close(); + + test_equal(test :: data_file_exists("file.txt"), true); +} + +static void test_io() +{ + File a("file.txt"); + + test_equal(a.open(OPEN_WRITE), true); + a << "ABCDE FGHIJ KLMNO PQRST UVWXYZ" << std::endl; + a.close(); + test_equal(a.exists(), true); + + File b("file.txt"); + std::string res; + + test_equal(b.open(OPEN_READ), true); + b >> res; + test_equal(res, (std::string)"ABCDE"); + b >> res; + test_equal(res, (std::string)"FGHIJ"); + res = b.getline(); + test_equal(res, (std::string)"KLMNO PQRST UVWXYZ"); +} + int main(int argc, char **argv) { + test :: rm_data_dir(); + run_test("File Constructor Test", test_filepath); + run_test("File Open Test", test_open); + run_test("File I/O Test", test_io); return 0; } - -/*#include - -enum action_t { CLOSE, OPEN, PATHS, READ, VERSION, WRITE }; - -int print_version(File &f) -{ - print("%u\n", f.get_version()); - return 0; -} - -int print_filepath(File &f) -{ - print("%s\n", f.get_filepath()); - return 0; -} - -int open_file(File &f, OpenMode mode) -{ - if (f.open(mode) == true) - return 0; - return 1; -} - -int main(int argc, char **argv) -{ - int c, ret; - action_t action = PATHS; - FileLocHint hint = FILE_TYPE_INVALID; - OpenMode mode = NOT_OPEN; - bool second_open = false; - bool getline = false; - std::string file; - std::string data; - - while ((c = getopt(argc, argv, "cDgo:Orvw")) != -1) { - switch (c) { - case 'c': - action = CLOSE; - break; - case 'D': - hint = FILE_TYPE_DATA; - break; - case 'g': - getline = true; - break; - case 'o': - action = OPEN; - switch (optarg[0]) { - case 'R': - mode = OPEN_READ; - break; - case 'W': - mode = OPEN_WRITE; - break; - case 'N': - mode = NOT_OPEN; - break; - default: - print("Invalid open mode\n"); - return 1; - } - break; - case 'O': - second_open = true; - break; - case 'r': - action = READ; - break; - case 'v': - action = VERSION; - break; - case 'w': - action = WRITE; - break; - default: - return 1; - } - } - - if (optind < argc) - file = argv[optind++]; - if (optind < argc) - data = argv[optind++]; - - File f(file, hint); - switch (action) { - case CLOSE: - ret = open_file(f, OPEN_WRITE); - if (ret == 0) { - f.close(); - ret = open_file(f, OPEN_WRITE); - } - return ret; - case OPEN: - ret = open_file(f, mode); - if ((ret == 0) && (second_open == true)) - ret = open_file(f, mode); - return ret; - case PATHS: - return print_filepath(f); - case READ: - ret = open_file(f, OPEN_READ); - if (ret == 0) { - do { - if (getline == true) - data = f.getline(); - else - f >> data; - if (f.good() == false) - break; - print("%s\n", data.c_str()); - } while (true); - } - return ret; - case VERSION: - return print_version(f); - case WRITE: - ret = open_file(f, OPEN_WRITE); - if (ret == 0) - f << data << std::endl; - return ret; - } -}*/ diff --git a/tests/src/test.h b/tests/src/test.h index 857c6c9e..0bda488b 100644 --- a/tests/src/test.h +++ b/tests/src/test.h @@ -72,6 +72,18 @@ namespace test { return g_file_test(data_dir().c_str(), G_FILE_TEST_IS_DIR); } + + bool data_file_exists(const std::string &name) + { + return g_file_test(data_file(name).c_str(), G_FILE_TEST_EXISTS); + } + + void rm_data_dir() + { + std::string cmd = "rm -r " + data_dir() + " 2>/dev/null"; + if (data_dir_exists()) + system(cmd.c_str()); + } } #define run_test(name, func, ...) \ From 968ca304848d0ffe4e088454346e0815d33d7f49 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sun, 27 Apr 2014 09:07:04 -0400 Subject: [PATCH 33/93] database: Remove old db_entry test This might have made more sense for an earlier version of the DatabaseEntry class, but as far as I can tell this test only checks code that exists inside this file. This means I can removed it without reducing code coverage. Signed-off-by: Anna Schumaker --- tests/database | 68 -------------------------- tests/src/db_entry.cpp | 108 ----------------------------------------- 2 files changed, 176 deletions(-) delete mode 100644 tests/src/db_entry.cpp diff --git a/tests/database b/tests/database index 62614c1a..77d19137 100755 --- a/tests/database +++ b/tests/database @@ -4,74 +4,6 @@ . $(dirname $0)/_functions -### -# -# First, verify everything for a DatabaseEntry -# - -function test_entry -{ - test_equal "./src/db_entry.run $1 $2" "$3" -} - -function test_print -{ - test_entry $1 $2 "Value: $1 Key: $2 Id: 0" -} - -function test_primary_key -{ - test_entry "-p $1" $2 "Primary key: $2" -} - -function test_write -{ - rm $DATA_DIR/db_entry.txt 2>/dev/null || true - ./src/db_entry.run -w $1 $2 - test_equal "tail -1 $DATA_DIR/db_entry.txt" "$1 $2" -} - -function test_read -{ - rm $DATA_DIR/db_entry.txt 2>/dev/null || true - echo 0 > $DATA_DIR/db_entry.txt - echo $1 $2 >> $DATA_DIR/db_entry.txt - test_entry "-r $1" $2 "Value: $1 Key: $2 Id: 0" -} - - -new_test "Database Entry Print Test" -test_print 1 1 -test_print 1 2 -test_print 2 1 -test_print 2 2 - - -echo -new_test "Database Entry Primary Key Test" -test_primary_key 1 1 -test_primary_key 1 2 -test_primary_key 2 1 -test_primary_key 2 2 - - -echo -new_test "Database Entry Write Test" -test_write 1 1 -test_write 1 2 -test_write 2 1 -test_write 2 2 - - -echo -new_test "Database Entry Read Test" -test_read 1 1 -test_read 1 2 -test_read 2 1 -test_read 2 2 - - -echo ### # # Now, test the actual database diff --git a/tests/src/db_entry.cpp b/tests/src/db_entry.cpp deleted file mode 100644 index 311bb483..00000000 --- a/tests/src/db_entry.cpp +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Copyright 2014 (c) Anna Schumaker. - * Test a DatabaseEntry - */ - -#include -#include -#include - -#include -#include -#include - -enum action_t { PRIMARY_KEY, PRINT, READ, WRITE }; - -class IntEntry : public DatabaseEntry { -public: - unsigned int val; - std::string key; - - IntEntry(unsigned int, const std::string &); - const std::string primary_key() const; - void write(File &); - void read(File &); - void print(); -}; - -IntEntry :: IntEntry(unsigned int i, const std::string &s) -{ - val = i; - key = s; -} - -const std::string IntEntry :: primary_key() const -{ - return key; -} - -void IntEntry :: write(File &f) -{ - f << val << " " << key; -} - -void IntEntry :: read(File &f) -{ - f >> val >> key; -} - -void IntEntry :: print() -{ - :: print("Value: %u Key: %s Id: %u\n", val, key.c_str(), id); -} - - - -int main(int argc, char **argv) -{ - action_t action = PRINT; - char c; - - while ((c = getopt(argc, argv, "prw")) != -1) { - switch (c) { - case 'p': - action = PRIMARY_KEY; - break; - case 'r': - action = READ; - break; - case 'w': - action = WRITE; - break; - } - } - - if (optind >= argc) { - print("ERROR: Not enough arguments\n"); - return 1; - } - - unsigned int i = atoi(argv[optind++]); - std::string key = argv[optind]; - - - File f("db_entry.txt"); - IntEntry ient(i, key); - - switch (action) { - case PRIMARY_KEY: - print("Primary key: %s\n", ient.primary_key().c_str()); - break; - case PRINT: - ient.print(); - break; - case READ: - f.open(OPEN_READ); - ient.read(f); - ient.print(); - f.close(); - break; - case WRITE: - f.open(OPEN_WRITE); - ient.write(f); - f.close(); - break; - } - - return 0; -} From f627f8337d0a5adfde748b39c328205116a0bd1e Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sun, 27 Apr 2014 17:04:33 -0400 Subject: [PATCH 34/93] database: Update unit test As a bonus, I now have a test for manual database saving. Signed-off-by: Anna Schumaker --- tests/Sconscript | 4 +- tests/database | 53 ------ tests/src/database.cpp | 407 +++++++++++++++++++++++------------------ tests/src/test.h | 47 ++++- 4 files changed, 267 insertions(+), 244 deletions(-) delete mode 100755 tests/database diff --git a/tests/Sconscript b/tests/Sconscript index d05abdba..e1b7f05c 100644 --- a/tests/Sconscript +++ b/tests/Sconscript @@ -14,8 +14,8 @@ for arg in sys.argv: src = SConscript("src/Sconscript") -tests = [ "version" , "file" ] -#, "file", "database", "index", "filter", "idle", "tag_db", +tests = [ "version" , "file", "database" ] +# "database", "index", "filter", "idle", "tag_db", # "queue" ] #scripts = [ "playlist", "library", "deck", "audio", "gui" ] diff --git a/tests/database b/tests/database deleted file mode 100755 index 77d19137..00000000 --- a/tests/database +++ /dev/null @@ -1,53 +0,0 @@ -#!/bin/bash -# Copyright 2014 (c) Anna Schumaker - -. $(dirname $0)/_functions - - -### -# -# Now, test the actual database -# - -function test_autosave -{ - new_test "Database Test (n = $1, autosave = true)" - src/database.run -a $1 - if [ ! -f $DATA_DIR/database.db ] && [ $1 != 0 ]; then - echo "ERROR: $DATA_DIR/database.db doesn't exist!" - exit 1 - fi -} - -function test_noautosave -{ - new_test "Database Test (n = $1, autosave = false)" - src/database.run $1 - if [ -f $DATA_DIR/database.db ]; then - echo "ERROR: $DATA_DIR/database.db exists!" - exit 1 - fi -} - -function run_test -{ - rm $DATA_DIR/* 2>/dev/null || true - - if [ $1 -le 1000 ]; then - test_autosave $1 - else - test_noautosave $1 - fi -} - -run_test 0 -echo -run_test 10 -echo -run_test 100 -echo -run_test 1000 -echo -run_test 10000 -echo -run_test 100000 diff --git a/tests/src/database.cpp b/tests/src/database.cpp index 84887c10..a72e228c 100644 --- a/tests/src/database.cpp +++ b/tests/src/database.cpp @@ -4,15 +4,16 @@ */ #include -#include +#include "test.h" #include -#include -#include -unsigned int test_num = 0; - +/*** + * + * Derive a DatabaseEntry for storing ints + * + */ class IntEntry : public DatabaseEntry { public: @@ -23,11 +24,11 @@ public: const std::string primary_key() const; void write(File &); void read(File &); - void print(); }; IntEntry :: IntEntry() : val(0) {} IntEntry :: IntEntry(unsigned int v) : val(v) {} + const std::string IntEntry :: primary_key() const { std::stringstream ss; @@ -37,224 +38,268 @@ const std::string IntEntry :: primary_key() const void IntEntry :: write(File &f) { f << val; } void IntEntry :: read(File &f) { f >> val; } -void IntEntry :: print() { :: print(primary_key().c_str()); } -void test_results(bool success, unsigned int line) +static IntEntry *INT_NULL = NULL; + + + +/*** + * + * Struct for passing around arguments to tests + * + */ + +struct TestArgs { + const unsigned int n; + unsigned int size; + unsigned int actual; + bool autosave; + + IntEntry *one; + IntEntry *three; + Database *db; + + TestArgs(const unsigned int, bool, Database *); +}; + +TestArgs :: TestArgs(const unsigned int _n, bool _asv, Database *_db) + : n(_n), size(0), actual(0), autosave(_asv), + one(NULL), three(NULL), db(_db) +{} + + +/*** + * + * Run tests with varying database sizes + * + */ + +static void test_insertion(struct TestArgs *args) { - print(" %u: ", test_num); - if (success) - print("Success!\n"); - else { - print("FAILED (%u) =(\n", line); - exit(1); - } - test_num++; -} - -void test_size(Database &db, unsigned int size, - unsigned int actual, unsigned int line) -{ - test_results( (db.size() == size) && (db.actual_size() == actual), line ); -} - -int main(int argc, char **argv) -{ - bool autosave = false; - unsigned int n = 0, size = 0, actual = 0; - char c; - - while ((c = getopt(argc, argv, "a")) != -1) { - switch (c) { - case 'a': - autosave = true; - break; - } - } - - n = atoi(argv[optind]); - Database db("database.db", autosave); - - - /** - * 0: Test initial size + /* + * Initial size should be 0 */ - test_size(db, size, actual, __LINE__); + test_equal(args->db->size(), args->size); + test_equal(args->db->actual_size(), args->actual); - - /** - * 1: Test insertion - */ - IntEntry *one, *three; - for (unsigned int i = 0; i < n; i++) { - IntEntry *it = db.insert(IntEntry(i)); - if (it == NULL) - test_results(false, __LINE__); - if (it->id != i) - test_results(false, __LINE__); - if (it->val != i) - test_results(false, __LINE__); + test :: begin(); + for (unsigned int i = 0; i < args->n; i++) { + IntEntry *it = args->db->insert(IntEntry(i)); + check_not_equal(it, INT_NULL); + check_equal(it->id, i); + check_equal(it->val, i); /* * Pointers should still be valid after more insertions. * These will be checked later */ if (i == 1) - one = it; + args->one = it; if (i == 3) - three = it; + args->three = it; + + args->size++; + args->actual++; } - test_results(true, __LINE__); - size += n; - actual += n; + test :: success(); - - /** - * 2: Test that size changes + /* + * Size should change */ - test_size(db, size, actual, __LINE__); + test_equal(args->db->size(), args->size); + test_equal(args->db->actual_size(), args->actual); +} - - /** - * 3: Test inserting ... again. - */ - for (unsigned int i = 0; i < n; i++) { - IntEntry *it = db.insert(IntEntry(i)); - if (it != NULL) - test_results(false, __LINE__); +static void test_insertion2(struct TestArgs *args) +{ + test :: begin(); + for (unsigned int i = 0; i < args->n; i++) { + IntEntry *it = args->db->insert(IntEntry(i)); + check_equal(it, INT_NULL); } - test_results(true, __LINE__); + test :: success(); - - /** - * 4: Test that size didn't change + /* + * Size should not change */ - test_size(db, size, actual, __LINE__); + test_equal(args->db->size(), args->size); + test_equal(args->db->actual_size(), args->actual); +} - - /** - * 5: Test that size changes when removing - * Also test out-of-bounds removal - * - * Note: This test removes all even-index entries - */ - for (unsigned int i = 0; i < n + 10; i+=2) { - db.remove(i); - if (i < n) - size--; +static void test_removal(struct TestArgs *args) +{ + test :: begin(); + for (unsigned int i = 0; i < args->n; i+=2) { + args->db->remove(i); + args->size--; } - test_size(db, size, actual, __LINE__); + test :: success(); - - /** - * 6: Test that removing again doesn't change anything + /* + * Size should change */ - for (unsigned int i = 0; i < n + 10; i+=2) - db.remove(i); - test_size(db, size, actual, __LINE__); + test_equal(args->db->size(), args->size); + test_equal(args->db->actual_size(), args->actual); - - /** - * 7: Test iterating and setting ID + /* + * Test out-of-bounds removal */ - Database::iterator it; + test :: begin(); + for (unsigned int i = 0; i < 10; i++) + args->db->remove(args->n + i); + test :: success(); + + /* + * Size should not change + */ + test_equal(args->db->size(), args->size); + test_equal(args->db->actual_size(), args->actual); +} + +static void test_removal2(struct TestArgs *args) +{ + test :: begin(); + for (unsigned int i = 0; i < args->n; i+=2) + args->db->remove(i); + test :: success(); + + /* + * Size should not change + */ + test_equal(args->db->size(), args->size); + test_equal(args->db->actual_size(), args->actual); +} + +static void test_iterator(struct TestArgs *args) +{ unsigned int index = 1; - for (it = db.begin(); it != db.end(); it = db.next(it)) { - if ((*it) == NULL) - test_results(false, __LINE__); - if ((*it)->val != index) - test_results(false, __LINE__); - if ((*it)->id != index) - test_results(false, __LINE__); - index+=2; + Database::iterator it; + + test :: begin(); + for (it = args->db->begin(); it != args->db->end(); it = args->db->next(it)) { + check_not_equal((*it), INT_NULL); + check_equal((*it)->val, index); + check_equal((*it)->id, index); + index += 2; }; - test_results(true, __LINE__); + test :: success(); +} - - /** - * 8. Test access by id - */ - for (unsigned int i = 0; i < n + 10; i++) { - IntEntry *it = db.at(i); - if (i >= n) { - if (it != NULL) - test_results(false, __LINE__); - continue; - } else if (i % 2 == 0) { - if (it != NULL) - test_results(false, __LINE__); - } else if (it == NULL) - test_results(false, __LINE__); - - /* - * Remember those pointers we stored earlier? - * The should still be valid now. - */ - if (i == 1 && it != one) - test_results(false, __LINE__); - if (i == 3 && it != three) - test_results(false, __LINE__); +static void test_access(struct TestArgs *args) +{ + test :: begin(); + for (unsigned int i = 0; i < args->n; i+=2) { + IntEntry *it = args->db->at(i); + check_equal(it, INT_NULL); } - test_results(true, __LINE__); + test :: success(); - - /** - * 9. Test inserting once again - */ - for (unsigned int i = 0; i < n; i++) { - IntEntry *it = db.insert(IntEntry(i)); - if ((i % 2) == 0) { - size++; - actual++; - if (it->id != (n + (i / 2))) - test_results(false, __LINE__); - } else { - if (it != NULL) - test_results(false, __LINE__); - } + test :: begin(); + for (unsigned int i = 1; i < args->n; i+=2) { + IntEntry *it = args->db->at(i); + check_not_equal(it, INT_NULL); } - test_results(true, __LINE__); + test :: success(); + test :: begin(); + for (unsigned int i = 0; i < 10; i++) { + IntEntry *it = args->db->at(args->n + i); + check_equal(it, INT_NULL); + } + test :: success(); +} - /** - * 10. Test that size changed for every other insert +static void test_pointers(struct TestArgs *args) +{ + IntEntry *it = args->db->at(1); + test_equal(it, args->one); + + it = args->db->at(3); + test_equal(it, args->three); +} + +static void test_insertion3(struct TestArgs *args) +{ + test :: begin(); + for (unsigned int i = 0; i < args->n; i+=2) { + IntEntry *it = args->db->insert(IntEntry(i)); + + args->size++; + args->actual++; + check_equal(it->id, args->n + (i / 2)); + } + test :: success(); + + /* + * Size should change */ - test_size(db, size, actual, __LINE__); + test_equal(args->db->size(), args->size); + test_equal(args->db->actual_size(), args->actual); +} - - /** - * Everything after this point tests loading from a file - */ - if (autosave == false) - return 0; - - Database db2("database.db", autosave); +static void test_autosave(struct TestArgs *args) +{ + Database db2("database.db", args->autosave); db2.load(); + if (args->autosave == false) { + test_equal(db2.size(), (unsigned)0); + test_equal(db2.actual_size(), (unsigned)0); - /** - * 11. Sizes should match - */ - test_size(db2, db.size(), db.actual_size(), __LINE__); + args->db->save(); + db2.load(); + } + test_equal(db2.size(), args->db->size()); + test_equal(db2.actual_size(), args->db->actual_size()); - /** - * 12. Values should match - */ + Database::iterator it1; Database::iterator it2 = db2.begin(); - for (it = db.begin(); it != db.end(); it++) { - if ((*it) == NULL && (*it2) != NULL) - test_results(false, __LINE__); - if ((*it) != NULL && (*it2) == NULL) - test_results(false, __LINE__); - if ((*it) != NULL) { - if ((*it)->val != (*it2)->val) - test_results(false, __LINE__); - if ((*it)->id != (*it2)->id) - test_results(false, __LINE__); + + test :: begin(); + for (it1 = args->db->begin(); it1 != args->db->end(); it1++) { + if (*it1 == INT_NULL) + check_equal(*it2, INT_NULL); + else { + check_not_equal(*it2, INT_NULL); + check_equal((*it1)->id, (*it2)->id); + check_equal((*it1)->val, (*it2)->val); } it2++; } - test_results(true, __LINE__); + test :: success(); +} + +static void db_test(unsigned int n, bool autosave) +{ + test :: rm_data_dir(); + + std::stringstream ss; + ss << " (n = " << n << ")"; + const std::string n_str = ss.str(); + + Database db("database.db", autosave); + struct TestArgs args(n, autosave, &db); + + run_test("Database Insertion Test" + n_str, test_insertion, &args); + run_test("Database Second Insertion Test" + n_str, test_insertion2, &args); + run_test("Database Removal Test" + n_str, test_removal, &args); + run_test("Database Second Removal Test" + n_str, test_removal2, &args); + run_test("Database Iterator Test" + n_str, test_iterator, &args); + run_test("Database Access Test" + n_str, test_access, &args); + run_test("Database Pointer Test" + n_str, test_pointers, &args); + run_test("Database Third Insertion Test" + n_str, test_insertion3, &args); + run_test("Database Save and Load Test" + n_str, test_autosave, &args); +} + +int main(int argc, char **argv) +{ + db_test(0, true); + db_test(10, true); + db_test(100, true); + db_test(1000, true); + db_test(10000, false); + db_test(100000, false); return 0; } diff --git a/tests/src/test.h b/tests/src/test.h index 0bda488b..d3ba05ad 100644 --- a/tests/src/test.h +++ b/tests/src/test.h @@ -36,17 +36,36 @@ namespace test } } + void success() + { + std::cout << "Success!" << std::endl; + } + + template + void failure(const T &lhs, const T &rhs, unsigned int line) + { + std::cout << "Failed at line " << line << ":" << std::endl; + std::cout << " Actual: " << lhs << std::endl; + std::cout << " Expected: " << rhs << std::endl; + failed++; + } + template void check_equal(const T &lhs, const T &rhs, unsigned int line) { if (lhs == rhs) - std::cout << "Success!" << std::endl; - else { - std::cout << "Failed at line " << line << ":" << std::endl; - std::cout << " Actual: " << lhs << std::endl; - std::cout << " Expected: " << rhs << std::endl; - failed++; - } + success(); + else + failure(lhs, rhs, line); + } + + template + void check_not_equal(const T &lhs, const T &rhs, unsigned int line) + { + if (lhs != rhs) + success(); + else + failure(lhs, rhs, line); } template @@ -89,7 +108,7 @@ namespace test #define run_test(name, func, ...) \ do { \ test :: new_test(name); \ - func(##__VA_ARGS__); \ + func( __VA_ARGS__ ); \ test :: end(); \ } while (0) @@ -97,3 +116,15 @@ namespace test do { \ test :: equal(lhs, rhs, __LINE__); \ } while (0) + +#define check_equal(lhs, rhs) \ + do { \ + if (lhs != rhs) \ + test :: failure(lhs, rhs, __LINE__); \ + } while (0) + +#define check_not_equal(lhs, rhs) \ + do { \ + if (lhs == rhs) \ + test :: failure(lhs, rhs, __LINE__); \ + } while (0) From 90bd93b10f4ba478999c43e785e5c16826db153e Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sat, 3 May 2014 18:42:54 -0400 Subject: [PATCH 35/93] index: Update the index test I switched to the new testing functions, and now everything is cleaner. Signed-off-by: Anna Schumaker --- tests/Sconscript | 4 +- tests/index | 47 -------- tests/src/index.cpp | 287 +++++++++++++++++++++++--------------------- tests/src/test.h | 12 ++ 4 files changed, 165 insertions(+), 185 deletions(-) delete mode 100755 tests/index diff --git a/tests/Sconscript b/tests/Sconscript index e1b7f05c..f8e9bb9b 100644 --- a/tests/Sconscript +++ b/tests/Sconscript @@ -14,8 +14,8 @@ for arg in sys.argv: src = SConscript("src/Sconscript") -tests = [ "version" , "file", "database" ] -# "database", "index", "filter", "idle", "tag_db", +tests = [ "version" , "file", "database", "index" ] +# "filter", "idle", "tag_db", # "queue" ] #scripts = [ "playlist", "library", "deck", "audio", "gui" ] diff --git a/tests/index b/tests/index deleted file mode 100755 index fd013b79..00000000 --- a/tests/index +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/bash -# Copyright 2014 (c) Anna Schumaker - -. $(dirname $0)/_functions - -function test_autosave -{ - new_test "Index Test (n = $1, autosave = true)" - src/index.run -a $1 - if [ ! -f $DATA_DIR/index.idx ]; then - echo "ERROR: $DATA_DIR/index.db doesn't exist!" - exit 1 - fi -} - -function test_noautosave -{ - new_test "Index Test (n = $1, autosave = false)" - src/index.run $1 - if [ -f $DATA_DIR/index.idx ]; then - echo "ERROR: $DATA_DIR/index.idx exists!" - exit 1 - fi -} - -function run_test -{ - rm $DATA_DIR/* 2>/dev/null || true - - if [ $1 -lt 1000 ]; then - test_autosave $1 - else - test_noautosave $1 - fi -} - -run_test 0 -echo -run_test 10 -echo -run_test 100 -echo -run_test 1000 -echo -run_test 10000 -echo -run_test 100000 diff --git a/tests/src/index.cpp b/tests/src/index.cpp index b7ac7664..0001dfde 100644 --- a/tests/src/index.cpp +++ b/tests/src/index.cpp @@ -4,153 +4,168 @@ */ #include -#include +#include "test.h" -#include -#include +#include + +static IndexEntry *IDX_NULL = NULL; + +/*** + * + * Struct for passing around arguments to tests + * + */ + +struct TestArgs { + const unsigned int n; + Index *index; + + TestArgs(const unsigned int, Index *); +}; + +TestArgs :: TestArgs(const unsigned int _n, Index *_index) + : n(_n), index(_index) +{} -unsigned int test_num = 0; -void test_results(bool success, unsigned int line) +/*** + * + * Run tests with varying index sizes + * + */ + +static void test_single_item() { - print(" %u: ", test_num); - if (success) - print("Success!\n"); - else { - print("FAILED (%u) =(\n", line); - exit(1); - } - test_num++; + Index index("index.idx", false); + + index.insert("a", 0); + IndexEntry *it = index.find("a"); + + test_not_equal(it, IDX_NULL); + test_equal(index.size(), (unsigned)1); + test_equal(it->values.size(), (size_t)1); + test_equal(*(it->values.begin()), (unsigned)0); + + index.remove("a", 0); + test_equal(index.size(), (unsigned)1); + test_equal(it->values.size(), (size_t)0); } -void test_size(Index &index, unsigned int expected, unsigned int line) +static void test_insertion(struct TestArgs *args) { - test_results(index.size() == expected, line); + std::string key; + IndexEntry *it; + + test :: begin(); + for (char c = 'a'; c <= 'z'; c++) { + key = c; + + for (unsigned int i = 0; i < args->n; i++) + args->index->insert(key, i); + } + test :: success(); + + if (args->n == 0) + test_equal(args->index->size(), (unsigned int)0); + else + test_equal(args->index->size(), (unsigned int)26); + + test :: begin(); + for (char c = 'a'; c <= 'z'; c++) { + key = c; + it = args->index->find(key); + + if (args->n == 0) + check_equal(it, IDX_NULL); + else { + check_not_equal(it, IDX_NULL); + check_equal(it->values.size(), (size_t)args->n); + } + } + test :: success(); +} + +static void test_removal(struct TestArgs *args) +{ + std::string key; + IndexEntry *it; + + test :: begin(); + for (char c = 'a'; c <= 'z'; c++) { + key = c; + + for (unsigned int i = 0; i < args->n; i++) + args->index->remove(key, i); + it = args->index->find(key); + if (args->n == 0) + check_equal(it, IDX_NULL); + else { + check_not_equal(it, IDX_NULL); + check_equal(it->values.size(), (size_t)0); + } + } + test :: success(); +} + +static void test_saving(struct TestArgs *args) +{ + std::string key; + IndexEntry *it1, *it2; + + Index idx2("index.idx", false); + idx2.load(); + test_equal(idx2.size(), (unsigned)0); + + args->index->save(); + idx2.load(); + + test_equal(idx2.size(), args->index->size()); + test_equal(idx2.actual_size(), args->index->actual_size()); + + test :: begin(); + for (char c = 'a'; c <= 'z'; c++) { + key = c; + it1 = args->index->find(key); + it2 = idx2.find(key); + + if (args->n == 0) { + check_equal(it1, IDX_NULL); + check_equal(it2, IDX_NULL); + } else { + check_not_equal(it1, IDX_NULL); + check_not_equal(it2, IDX_NULL); + check_equal(it1->values.size(), it2->values.size()); + } + } + test :: success(); +} + +static void index_test(unsigned int n) +{ + test :: rm_data_dir(); + + std::stringstream ss; + ss << " (n = " << n << ")"; + const std::string n_str = ss.str(); + + Index index("index.idx", false); + struct TestArgs args(n, &index); + + if (n == 0) + run_test("Index Single Item Test", test_single_item); + run_test("Index Insertion Test" + n_str, test_insertion, &args); + run_test("Index Removal Test" + n_str, test_removal, &args); + run_test("Index Save and Load Test" + n_str, test_saving, &args); } int main(int argc, char **argv) { - bool autosave = false; - unsigned int n; - char c; - - while ((c = getopt(argc, argv, "a")) != -1) { - switch (c) { - case 'a': - autosave = true; - break; - } - } - - n = atoi(argv[optind]); - Index index("index.idx", autosave); - - - /** - * 0: Test inserting when there is no key - */ - index.insert("a", 0); - IndexEntry *it = index.find("a"); - if (it == NULL) - test_results(false, __LINE__); - if (it->values.size() == 0) - test_results(false, __LINE__); - test_results(*(it->values.begin()) == 0, __LINE__); - - - /** - * 1: Test removing - */ - index.remove("a", 0); - test_results((index.size() == 1) && (index.find("a")->values.size() == 0), __LINE__); - - - /** - * 2: Test adding multiple values - */ - for (c = 'a'; c <= 'z'; c++) { - std::string key = ""; - key += c; - - for (unsigned int i = 0; i < n; i++) - index.insert(key, i); - } - - test_size(index, (n == 0) ? 1 : 26, __LINE__); - - - /** - * 3: Make sure we have multiple values for each key - */ - for (c = 'a'; c <= 'z'; c++) { - std::string key = ""; - key += c; - - IndexEntry *it = index.find(key); - if (n == 0 && c > 'a') { - if (it != NULL) - test_results(false, __LINE__); - } else if (it->values.size() != n) - test_results(false, __LINE__); - } - test_results(true, __LINE__); - - - /** - * 4: Test removing multiple values - */ - for (c = 'a'; c <= 'z'; c+=2) { - std::string key = ""; - key += c; - - for (unsigned int i = 0; i < n; i++) - index.remove(key, i); - - IndexEntry *it = index.find(key); - if (n == 0 && c > 'a') { - if (it != NULL) - test_results(false, __LINE__); - } else if (it->values.size() != 0) - test_results(false, __LINE__); - } - - test_size(index, (n == 0) ? 1 : 26, __LINE__); - - - /** - * Everything after this point tests loading from a file - */ - if (autosave == false) - return 0; - - Index index2("index.idx", autosave); - index2.load(); - - - /** - * 5: Load database from file - */ - test_results(index.size() == index2.size(), __LINE__); - - - /** - * 6: Check that everything is the right size - */ - for (c = 'a'; c <= 'z'; c++) { - std::string key = ""; - key += c; - - IndexEntry *it1 = index.find(key); - IndexEntry *it2 = index2.find(key); - - if (n == 0 && c > 'a') { - if (it1 != NULL || it2 != NULL) - test_results(false, __LINE__); - } else if (it1->values.size() != it2->values.size()) - test_results(false, __LINE__); - } - test_results(true, __LINE__); - + index_test(0); + index_test(10); + index_test(100); + index_test(1000); + index_test(10000); + index_test(100000); return 0; } diff --git a/tests/src/test.h b/tests/src/test.h index d3ba05ad..26d60df8 100644 --- a/tests/src/test.h +++ b/tests/src/test.h @@ -75,6 +75,13 @@ namespace test check_equal(lhs, rhs, line); } + template + void not_equal(const T &lhs, const T &rhs, unsigned int line) + { + begin(); + check_not_equal(lhs, rhs, line); + } + std::string data_dir() { std::string res = g_get_user_data_dir(); @@ -117,6 +124,11 @@ namespace test test :: equal(lhs, rhs, __LINE__); \ } while (0) +#define test_not_equal(lhs, rhs) \ + do { \ + test :: not_equal(lhs, rhs, __LINE__); \ + } while (0) + #define check_equal(lhs, rhs) \ do { \ if (lhs != rhs) \ From 70067a89cb8490d0d88d4d1d2b71a1196029b63e Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sat, 3 May 2014 19:31:29 -0400 Subject: [PATCH 36/93] filter: Update unit test Signed-off-by: Anna Schumaker --- tests/Sconscript | 2 +- tests/filter | 72 --------------------- tests/src/filter.cpp | 145 +++++++++++++++++++++++-------------------- 3 files changed, 78 insertions(+), 141 deletions(-) delete mode 100755 tests/filter diff --git a/tests/Sconscript b/tests/Sconscript index f8e9bb9b..6bcda34f 100644 --- a/tests/Sconscript +++ b/tests/Sconscript @@ -14,7 +14,7 @@ for arg in sys.argv: src = SConscript("src/Sconscript") -tests = [ "version" , "file", "database", "index" ] +tests = [ "version" , "file", "database", "index", "filter" ] # "filter", "idle", "tag_db", # "queue" ] #scripts = [ "playlist", "library", "deck", "audio", "gui" ] diff --git a/tests/filter b/tests/filter deleted file mode 100755 index a6896b43..00000000 --- a/tests/filter +++ /dev/null @@ -1,72 +0,0 @@ -#!/bin/bash -# Copyright 2014 (c) Anna Schumaker - -. $(dirname $0)/_functions - -function test_add -{ - test_equal "./src/filter.run -a $1" "$2" -} - -function test_lowercase -{ - test_equal "./src/filter.run -l $1" "$2" -} - -function test_text -{ - test_add "$1" "$2" - test_lowercase "$1" "$2" -} - -function test_search -{ - num=$(cat -b $DATA_DIR/filter.txt | tail -n 1 | awk '{print $1}') - let num=$num-1 - test_equal "./src/filter.run -s $num $1" "$2" -} - - - -new_test "Filter Add and Lowercase Test" - -test_text " " "" -test_text " test -text" "test text" -test_text "test text" "test text" -test_text "Test Text" "test text" -test_text "Test? Text!" "test text" -test_text "Test?123 Text!456" "test123 text456" -test_text "Test?123 Text!456" "test123 text456" -test_text "Test(text);123-456" "test text 123 456" -test_text "Test((text));;123--456" "test text 123 456" - - - -echo -new_test "Filter Search Test" - -file=$DATA_DIR/filter.txt -mkdir -p $DATA_DIR - -echo "0" > $file -echo "It's dangerous to go alone! Take this..." >> $file -echo "DODONGO DISLIKES SMOKE." >> $file -echo "I am Error." >> $file -echo "Error knows a secret." >> $file -echo "Hey, you pay, then you can open the chests!" >> $file -echo "And the Master Sword sleeps again... FOREVER!" >> $file -echo "Link checked the chest. Wow! This is a nice chest!" >> $file -echo "Hey! Listen! Hey! Listen! Watch out!" >> $file -echo "You killed the Deku Tree? How could you?!" >> $file -echo "You've met with a terrible fate, haven't you?" >> $file -echo "Believe in your strengths... Believe..." >> $file -echo "Tingle! Tingle! Kooloo-Limpah!" >> $file -echo "Well excuse me, Princess!" >> $file - -test_search "error" "2 3" -test_search "the" "4 5 6 8" -test_search "the ch" "4 6" -test_search "the CH" "4 6" -test_search "the ch y" "4" -test_search "unknown terms" "" diff --git a/tests/src/filter.cpp b/tests/src/filter.cpp index 4233edbf..ce6e63d7 100644 --- a/tests/src/filter.cpp +++ b/tests/src/filter.cpp @@ -3,96 +3,105 @@ * Test the filtering code */ -#include #include -#include +#include "test.h" -#include -#include -#include - -enum action_t { ADD, LOWERCASE, SEARCH }; - -void add_text(const std::string &text) +static void do_test_lowercase(const std::string &text, const std::string &lc) { - std::string lc = filter :: add(text, 0); - print("%s\n", lc.c_str()); + test_equal(filter :: lowercase(text), lc); } -void to_lowercase(const std::string &text) +static void test_lowercase() { - std::string lc = filter :: lowercase(text); - print("%s\n", lc.c_str()); + do_test_lowercase(" ", ""); + do_test_lowercase(" test \ + text", "test text"); + do_test_lowercase("test text", "test text"); + do_test_lowercase("Test Text", "test text"); + do_test_lowercase("Test? Text!", "test text"); + do_test_lowercase("Test?123 Text!456", "test123 text456"); + do_test_lowercase("Test?123 Text!456", "test123 text456"); + do_test_lowercase("Test(text);123-456", "test text 123 456"); + do_test_lowercase("Test((text));;123--456", "test text 123 456"); } -void read_file(unsigned int n) +static void do_test_add(const std::string &text, const std::string &lc) { - File f("filter.txt"); - if (f.open(OPEN_READ)) { - for (unsigned int i = 0; i < n; i++) { - std::string text = f.getline(); - filter :: add(text, i); - } - f.close(); - } + static unsigned int i = 0; + test_equal(filter :: add(text, i++), lc); } -void do_search(const std::string &text) +static void test_add() +{ + do_test_add("It's dangerous to go alone! Take this...", + "its dangerous to go alone take this"); + do_test_add("DODONGO DISLIKES SMOKE.", + "dodongo dislikes smoke"); + do_test_add("I am Error.", + "i am error"); + do_test_add("Error knows a secret.", + "error knows a secret"); + do_test_add("Hey, you pay, then you can open the chests!", + "hey you pay then you can open the chests"); + do_test_add("And the Master Sword sleeps again... FOREVER!", + "and the master sword sleeps again forever"); + do_test_add("Link checked the chest. Wow! This is a nice chest!", + "link checked the chest wow this is a nice chest"); + do_test_add("Hey! Listen! Hey! Listen! Watch out!", + "hey listen hey listen watch out"); + do_test_add("You killed the Deku Tree? How could you?!", + "you killed the deku tree how could you"); + do_test_add("You've met with a terrible fate, haven't you?", + "youve met with a terrible fate havent you"); + do_test_add("Believe in your strengths... Believe...", + "believe in your strengths believe"); + do_test_add("Tingle! Tingle! Kooloo-Limpah!", + "tingle tingle kooloo limpah"); + do_test_add("Well excuse me, Princess!", + "well excuse me princess"); +} + +static void do_test_search(const std::string &text, unsigned int len, + unsigned int *ids) { std::set res; std::set::iterator it; filter :: search(text, res); + test_equal(res.size(), (size_t)len); + test :: begin(); it = res.begin(); - if (it == res.end()) - return; + for (unsigned int i = 0; i < len; i++) { + check_equal(*it, ids[i]); + it++; + } + test :: success(); +} - print("%u", *it); - for (it++; it != res.end(); it++) - print(" %u", *it); - print("\n"); +static void test_search() +{ + unsigned int res1[] = {2, 3}; + do_test_search("error", 2, res1); + + unsigned int res2[] = {4, 5, 6, 8}; + do_test_search("the", 4, res2); + + unsigned int res3[] = {4, 6}; + do_test_search("the ch", 2, res3); + do_test_search("the CH", 2, res3); + + unsigned int res4[] = {4}; + do_test_search("the ch y", 1, res4); + + unsigned int res5[] = {}; + do_test_search("unknown terms", 0, res5); } int main(int argc, char **argv) { - char c; - unsigned int n; - action_t action = ADD; - - while ((c = getopt(argc, argv, "als:")) != -1) { - switch (c) { - case 'a': - action = ADD; - break; - case 'l': - action = LOWERCASE; - break; - case 's': - action = SEARCH; - n = atoi(optarg); - break; - } - } - - std::string text; - for (int i = optind; i < argc; i++) { - text += " "; - text += argv[i]; - } - - switch (action) { - case ADD: - add_text(text); - break; - case LOWERCASE: - to_lowercase(text); - break; - case SEARCH: - read_file(n); - do_search(text); - break; - } - + run_test("Filter Lowercase Test", test_lowercase); + run_test("Filter Add Test", test_add); + run_test("Filter Search Test", test_search); return 0; } From 1f19987c53849cbd975fca789c6344b25245b0c4 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sun, 4 May 2014 10:08:00 -0400 Subject: [PATCH 37/93] idle: Update test for new system Signed-off-by: Anna Schumaker --- tests/Sconscript | 4 +-- tests/idle | 7 ---- tests/src/idle.cpp | 83 ++++++++++++++++++++++------------------------ 3 files changed, 42 insertions(+), 52 deletions(-) delete mode 100755 tests/idle diff --git a/tests/Sconscript b/tests/Sconscript index 6bcda34f..f67b346c 100644 --- a/tests/Sconscript +++ b/tests/Sconscript @@ -14,8 +14,8 @@ for arg in sys.argv: src = SConscript("src/Sconscript") -tests = [ "version" , "file", "database", "index", "filter" ] -# "filter", "idle", "tag_db", +tests = [ "version" , "file", "database", "index", "filter", "idle" ] +# "tag_db", # "queue" ] #scripts = [ "playlist", "library", "deck", "audio", "gui" ] diff --git a/tests/idle b/tests/idle deleted file mode 100755 index d03b706e..00000000 --- a/tests/idle +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash -# Copyright 2014 (c) Anna Schumaker - -. $(dirname $0)/_functions - -new_test "Idle Queue Test" -src/idle.run diff --git a/tests/src/idle.cpp b/tests/src/idle.cpp index 4e386cf9..8b13f4b3 100644 --- a/tests/src/idle.cpp +++ b/tests/src/idle.cpp @@ -4,57 +4,54 @@ */ #include -#include +#include "test.h" -#include +#include -static unsigned int test_num = 0; -static unsigned int cur = -1; +static float cur = -1; -void test_results(bool success, unsigned int line) -{ - print(" %u: ", test_num); - if (success) - print("Success!\n"); - else { - print("FAILED (%u) =(", line); - exit(1); - } - test_num++; -} - -void test_progress(unsigned int expected, unsigned int multiplier, - unsigned int line) -{ - unsigned int prog = (idle :: get_progress() * multiplier); - test_results(prog == expected, line); -} - -void inc_cur(unsigned int &expected) +static void inc_cur(float &expected) { cur++; - test_results(cur == expected, __LINE__); + check_equal(cur, expected); +} + +static void test_idle_queue(float n) +{ + test_equal(idle :: get_progress(), (float)1.0); + test_equal(idle :: run_task(), false); + + for (float i = 0; i < n; i++) + idle :: schedule(inc_cur, i); + test_equal(idle :: get_progress(), (float)0.0); + + test :: begin(); + for (float i = 0; i < (n - 1); i++) { + check_equal(idle :: run_task(), true); + check_equal(idle :: get_progress(), (i + 1) / n); + } + test :: success(); + + test_equal(idle :: run_task(), false); + test_equal(idle :: get_progress(), (float)1.0); +} + +static void do_test(float n) +{ + std::stringstream ss; + ss << " (n = " << n << ")"; + const std::string n_str = ss.str(); + + cur = -1; + run_test("Idle Queue Test" + n_str, test_idle_queue, n); } int main(int argc, char **argv) { - unsigned int i, num = 10; - - test_progress(num, num, __LINE__); - for (i = 0; i < num; i++) - idle :: schedule(inc_cur, i); - test_progress(0, num, __LINE__); - test_results(idle :: get_progress() == 0.0, __LINE__); - - for (i = 0; i < (num - 1); i++) { - test_results(idle :: run_task(), __LINE__); - test_progress(i + 1, num, __LINE__); - } - - test_results(idle :: run_task() == false, __LINE__); - test_progress(i + 1, num, __LINE__); - - test_results(idle :: run_task() == false, __LINE__); - test_progress(num, num, __LINE__); + do_test(10); + do_test(100); + do_test(1000); + do_test(10000); + do_test(100000); return 0; } From 34b0c56a7007275610b3d7a585cfbe67831668a0 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Tue, 6 May 2014 08:36:11 -0400 Subject: [PATCH 38/93] Move tests out of tests/src/ ... and just into the tests/ directory. I also reworked the Sconscript to compile everything using only the lib/ files that are needed. Signed-off-by: Anna Schumaker --- .gitignore | 3 +- tests/.gitignore | 6 +++ tests/Sconscript | 73 +++++++++++++++++++++++++++++------- tests/{src => }/database.cpp | 0 tests/{src => }/file.cpp | 0 tests/{src => }/filter.cpp | 0 tests/{src => }/idle.cpp | 0 tests/{src => }/index.cpp | 0 tests/{src => }/test.h | 0 tests/{src => }/version.cpp | 0 10 files changed, 66 insertions(+), 16 deletions(-) create mode 100644 tests/.gitignore rename tests/{src => }/database.cpp (100%) rename tests/{src => }/file.cpp (100%) rename tests/{src => }/filter.cpp (100%) rename tests/{src => }/idle.cpp (100%) rename tests/{src => }/index.cpp (100%) rename tests/{src => }/test.h (100%) rename tests/{src => }/version.cpp (100%) diff --git a/.gitignore b/.gitignore index 93b1a6b2..6b5bf870 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,6 @@ *.o *.sw* -*.run -*.test +*.out *.glade~ share/ocarina/#* bin/ diff --git a/tests/.gitignore b/tests/.gitignore new file mode 100644 index 00000000..3f676dd5 --- /dev/null +++ b/tests/.gitignore @@ -0,0 +1,6 @@ +version +file +database +index +filter +idle diff --git a/tests/Sconscript b/tests/Sconscript index f67b346c..c2d4b1af 100644 --- a/tests/Sconscript +++ b/tests/Sconscript @@ -2,6 +2,22 @@ import sys Import("env") +tests = [ + +### +# +# (source.cpp, use collected lib_files?, [ other files ]) +# + + ("version.cpp", False, []), + ("file.cpp", True, []), + ("database.cpp", True, []), + ("index.cpp", True, []), + ("filter.cpp", True, []), + ("idle.cpp", False, [ "idle.cpp" ]), + +] + check_depends = True @@ -12,21 +28,50 @@ for arg in sys.argv: check_depends = False break -src = SConscript("src/Sconscript") +def expand_files(extra_files): + res = [] + for f in extra_files: + res += [ "../lib/%s" % f ] + return res -tests = [ "version" , "file", "database", "index", "filter", "idle" ] -# "tag_db", -# "queue" ] -#scripts = [ "playlist", "library", "deck", "audio", "gui" ] +def make_program(src, name, extra_files): + return env.Program("%s" % name, [ src ] + expand_files(extra_files)) -prev = None +def make_test(src, name): + test = Command("%s.out" % name, [], + "./tests/%s | tee ./tests/%s.out" % (name, name)) + Alias("tests/%s" % name, test) + AlwaysBuild(test) + return test -for test in tests: - t = Command("%s.out" % test, [], "./tests/src/%s.run" % test) +def prepare_test(name, src, extra_files): + exe = make_program(src, name, extra_files) + test = make_test(src, name) + Depends(test, exe) + return test - if prev and (check_depends == True): - Depends(t, prev) - Depends(t, src) - AlwaysBuild(t) - Alias("tests/%s" % test, t) - prev = t +res = [] +lib_files = [] + +ignore = open(".gitignore", 'w') +for src, lib, extra in tests: + name = "%s" % src.rsplit(".")[0] + + if lib == True: + lib_files += [ src ] + extra = lib_files + extra + + test = prepare_test(name, src, extra) + if (check_depends == True) and (len(res) > 0): + Depends(test, res[len(res) - 1]) + + res += [ test ] + ignore.write(name + "\n") +ignore.close(); + +Return("res") + +#tests = [ "version" , "file", "database", "index", "filter", "idle" ] +## "tag_db", +## "queue" ] +##scripts = [ "playlist", "library", "deck", "audio", "gui" ] diff --git a/tests/src/database.cpp b/tests/database.cpp similarity index 100% rename from tests/src/database.cpp rename to tests/database.cpp diff --git a/tests/src/file.cpp b/tests/file.cpp similarity index 100% rename from tests/src/file.cpp rename to tests/file.cpp diff --git a/tests/src/filter.cpp b/tests/filter.cpp similarity index 100% rename from tests/src/filter.cpp rename to tests/filter.cpp diff --git a/tests/src/idle.cpp b/tests/idle.cpp similarity index 100% rename from tests/src/idle.cpp rename to tests/idle.cpp diff --git a/tests/src/index.cpp b/tests/index.cpp similarity index 100% rename from tests/src/index.cpp rename to tests/index.cpp diff --git a/tests/src/test.h b/tests/test.h similarity index 100% rename from tests/src/test.h rename to tests/test.h diff --git a/tests/src/version.cpp b/tests/version.cpp similarity index 100% rename from tests/src/version.cpp rename to tests/version.cpp From 4dafe7270f39baeb93619f9ce93400a6ae35bd66 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Tue, 6 May 2014 22:44:40 -0400 Subject: [PATCH 39/93] tags: Update the unit test While I'm at it, I also fix a refcounting issue with the Library pointer each track has. Signed-off-by: Anna Schumaker --- include/tags.h | 1 + lib/tags.cpp | 9 ++ tests/.gitignore | 1 + tests/Sconscript | 3 +- tests/src/tagdb.cpp | 131 ------------------- tests/src/tags.cpp | 307 -------------------------------------------- tests/tag_db | 60 --------- tests/tags.cpp | 301 +++++++++++++++++++++++++++++++++++++++++++ 8 files changed, 314 insertions(+), 499 deletions(-) delete mode 100644 tests/src/tagdb.cpp delete mode 100644 tests/src/tags.cpp delete mode 100755 tests/tag_db create mode 100644 tests/tags.cpp diff --git a/include/tags.h b/include/tags.h index 6cc3ca89..431a3007 100644 --- a/include/tags.h +++ b/include/tags.h @@ -98,6 +98,7 @@ public: Track(); Track(const std::string &, Library *); + ~Track(); const std::string primary_key() const; void read(File &); void write(File &); diff --git a/lib/tags.cpp b/lib/tags.cpp index 8ca7edd1..571268fd 100644 --- a/lib/tags.cpp +++ b/lib/tags.cpp @@ -159,6 +159,12 @@ Track :: Track(const std::string &f, Library *l) play_count(0), last_year(0), last_month(0), last_day(0), filepath(f.substr(l->root_path.size() + 1)) { + library->count++; +} + +Track :: ~Track() +{ + library->count--; } const std::string Track :: primary_key() const @@ -183,6 +189,7 @@ void Track :: read(File &f) genre = genre_db.at(genre_id); title_lower = filter :: add(title, id); + library->count++; set_length_str(); } @@ -248,6 +255,8 @@ void Track :: tag() filter :: add(artist->name, id); filter :: add(album->name, id); + + library->count++; } const std::string Track :: path() const diff --git a/tests/.gitignore b/tests/.gitignore index 3f676dd5..5f5223fc 100644 --- a/tests/.gitignore +++ b/tests/.gitignore @@ -4,3 +4,4 @@ database index filter idle +tags diff --git a/tests/Sconscript b/tests/Sconscript index c2d4b1af..02703643 100644 --- a/tests/Sconscript +++ b/tests/Sconscript @@ -15,6 +15,7 @@ tests = [ ("index.cpp", True, []), ("filter.cpp", True, []), ("idle.cpp", False, [ "idle.cpp" ]), + ("tags.cpp", True, []), ] @@ -39,7 +40,7 @@ def make_program(src, name, extra_files): def make_test(src, name): test = Command("%s.out" % name, [], - "./tests/%s | tee ./tests/%s.out" % (name, name)) + "set -o pipefail; ./tests/%s | tee ./tests/%s.out" % (name, name)) Alias("tests/%s" % name, test) AlwaysBuild(test) return test diff --git a/tests/src/tagdb.cpp b/tests/src/tagdb.cpp deleted file mode 100644 index 28631d22..00000000 --- a/tests/src/tagdb.cpp +++ /dev/null @@ -1,131 +0,0 @@ -/* - * Copyright 2014 (c) Anna Schumaker. - * Test a DatabaseEntry - */ - -#include -#include - -#include -#include - -unsigned int test_num = 0; - -void test_results(bool success, unsigned int line) -{ - print(" %u: ", test_num); - if (success) - print("Success!\n"); - else { - print("FAILED (%u) =(\n", line); - exit(1); - } - test_num++; -} - -void test_library_size(unsigned int expected, unsigned int line) -{ - test_results(tagdb :: get_library_db().size() == expected, line); -} - -void test_track_size(unsigned int expected, unsigned int line) -{ - test_results(tagdb :: get_track_db().size() == expected, line); -} - -int main(int argc, char **argv) -{ - char c; - bool init_called = false; - unsigned int id; - - while ((c = getopt(argc, argv, "i")) != -1) { - switch (c) { - case 'i': - init_called = true; - tagdb :: init(); - test_library_size(1, __LINE__); - test_track_size(0, __LINE__); - default: - break; - } - } - - - /** - * Initial library checks - */ - Library *library, *library_null; - if (init_called == true) { - library = *(tagdb :: get_library_db().begin()); - goto test_tracks; - } - - library = tagdb :: add_library("Music"); - test_results(library->root_path == "Music", __LINE__); - test_library_size(1, __LINE__); - - library_null = tagdb :: add_library("Music"); - test_results(library_null == NULL, __LINE__); - test_library_size(1, __LINE__); - - id = library->id; - tagdb :: remove_library(id); - test_library_size(0, __LINE__); - tagdb :: remove_library(id); - test_library_size(0, __LINE__); - - - library = tagdb :: add_library("Music"); -test_tracks: - /** - * Test adding / removing tracks - */ - Track *track = tagdb :: add_track("Music/1.ogg", library); - test_track_size(1, __LINE__); - test_results(track->track == 1, __LINE__); - Track *track_null = tagdb :: add_track("Music/1.ogg", library); - test_track_size(1, __LINE__); - - test_results(track->path() == "Music/1.ogg", __LINE__); - test_results(track_null == NULL, __LINE__); - - id = track->id; - tagdb :: remove_track(id); - test_track_size(0, __LINE__); - tagdb :: remove_track(id); - test_track_size(0, __LINE__); - - - /** - * Test adding and removing multiple tracks - */ - Track *track1 = tagdb :: add_track("Music/1.ogg", library); - Track *track2 = tagdb :: add_track("Music/10.ogg", library); - Track *track3 = tagdb :: add_track("Music/15.ogg", library); - Track *track4 = tagdb :: add_track("Music/60.ogg", library); - Track *track5 = tagdb :: add_track("Music/90.ogg", library); - Track *track6 = tagdb :: add_track("Music/600.ogg", library); - Track *track7 = tagdb :: add_track("Music/666.ogg", library); - test_track_size(7, __LINE__); - - test_results(tagdb :: lookup(0) == NULL, __LINE__); - test_results(tagdb :: lookup(1) == track1, __LINE__); - test_results(tagdb :: lookup(2) == track2, __LINE__); - test_results(tagdb :: lookup(3) == track3, __LINE__); - test_results(tagdb :: lookup(4) == track4, __LINE__); - test_results(tagdb :: lookup(5) == track5, __LINE__); - test_results(tagdb :: lookup(6) == track6, __LINE__); - test_results(tagdb :: lookup(7) == track7, __LINE__); - test_results(tagdb :: lookup(8) == NULL, __LINE__); - - - tagdb :: remove_library(library->id); - test_track_size(0, __LINE__); - - library = tagdb :: add_library("Music"); - if (init_called == true) - tagdb :: commit(); - - return 0; -} diff --git a/tests/src/tags.cpp b/tests/src/tags.cpp deleted file mode 100644 index 5d89bfe6..00000000 --- a/tests/src/tags.cpp +++ /dev/null @@ -1,307 +0,0 @@ -/* - * Copyright 2014 (c) Anna Schumaker. - * Test a DatabaseEntry - */ - -#include -#include -#include - -#include -#include -#include - - -unsigned int test_num = 0; - -void test_results(bool success, unsigned int line) -{ - print(" %u: ", test_num); - if (success) - print("Success!\n"); - else { - print("FAILED (%u) =(\n", line); - exit(1); - } - test_num++; -} - -template -void save_tag(const std::string &file, T &tag) -{ - File f(file); - f.open(OPEN_WRITE); - tag.write(f); - f.close(); -} - -template -void load_tag(const std::string &file, T &tag) -{ - File f(file); - f.open(OPEN_READ); - tag.read(f); - f.close(); -} - - -void artist_test_tags(Artist &artist) -{ - test_results(artist.name == "Artist Name", __LINE__); - test_results(artist.lower == "artist name", __LINE__); - test_results(artist.primary_key() == "Artist Name", __LINE__); -} - -void artist_test() -{ - Artist artist("Artist Name"), artist2; - - artist_test_tags(artist); - save_tag("artist.txt", artist); - load_tag("artist.txt", artist2); - artist_test_tags(artist2); -} - - -void album_test_tags(Album &album) -{ - test_results(album.name == "Album Name", __LINE__); - test_results(album.lower == "album name", __LINE__); - test_results(album.year == 2014, __LINE__); - test_results(album.primary_key() == "2014.Album Name", __LINE__); -} - -void album_test() -{ - Album album("Album Name", 2014), album2; - - album_test_tags(album); - save_tag("album.txt", album); - load_tag("album.txt", album2); - album_test_tags(album2); -} - - -void genre_test_tags(Genre &genre) -{ - test_results(genre.name == "Genre Name", __LINE__); - test_results(genre.lower == "genre name", __LINE__); - test_results(genre.primary_key() == "Genre Name", __LINE__); -} - -void genre_test() -{ - Genre genre("Genre Name"), genre2; - - genre_test_tags(genre); - save_tag("genre.txt", genre); - load_tag("genre.txt", genre2); - genre_test_tags(genre2); -} - - -void library_test_tags(Library &library) -{ - test_results(library.root_path == "/home/user/Music", __LINE__); - test_results(library.count == 0, __LINE__); - test_results(library.enabled == true, __LINE__); - test_results(library.primary_key() == "/home/user/Music", __LINE__); -} - -void library_test() -{ - Library library("/home/user/Music"), library2; - - library_test_tags(library); - test_results(library2.enabled == false, __LINE__); - save_tag("library.txt", library); - load_tag("library.txt", library2); - library_test_tags(library2); -} - - -void track_test_tags(Track &track, Library *library) -{ - test_results(track.filepath == "1.ogg", __LINE__); - test_results(track.path() == "Music/1.ogg", __LINE__); - test_results(track.primary_key() == "Music/1.ogg", __LINE__); - test_results(track.library == library, __LINE__); - test_results(track.play_count == 0, __LINE__); - test_results(track.last_year == 0, __LINE__); - test_results(track.last_month == 0, __LINE__); - test_results(track.last_day == 0, __LINE__); -} - -void track_test_search(const std::string &term, unsigned int expected, - unsigned int line) -{ - std::set s; - filter :: search(term, s); - test_results(s.size() == 1 && s.find(expected) != s.end(), line); -} - -void track_test_basics(Library *library) -{ - Track track("Music/1.ogg", library), track2; - track_test_tags(track, library); - test_results(track.artist == NULL, __LINE__); - test_results(track.album == NULL, __LINE__); - test_results(track.genre == NULL, __LINE__); - - track.tag(); - - track_test_tags(track, library); - test_results(track.artist->name == "Artist", __LINE__); - test_results(track.album->name == "Album", __LINE__); - test_results(track.album->year == 2014, __LINE__); - test_results(track.genre->name == "Silence", __LINE__); - test_results(track.track == 1, __LINE__); - test_results(track.length == 1, __LINE__); - test_results(track.title == "One", __LINE__); - test_results(track.title_lower == "one", __LINE__); - - track_test_search("One", track.id, __LINE__); - track_test_search("Artist", track.id, __LINE__); - track_test_search("Album", track.id, __LINE__); - - save_tag("track.txt", track); - load_tag("track.txt", track2); - track_test_tags(track2, library); - test_results(track.artist == track2.artist, __LINE__); - test_results(track.album == track2.album, __LINE__); - test_results(track.genre == track2.genre, __LINE__); - test_results(track.track == track2.track, __LINE__); - test_results(track.length == track2.length, __LINE__); - test_results(track.length_str == track2.length_str, __LINE__); - test_results(track.title == track2.title, __LINE__); - test_results(track.title_lower == track2.title_lower, __LINE__); -} - -void track_test_lenstrs(const std::string &file, const std::string &expected, - Library *library, unsigned int line) -{ - Track track(file, library); - track.tag(); - test_results(track.length_str == expected, line); -} - -void track_test_lenstrs(Library *library) -{ - track_test_lenstrs("Music/1.ogg", "0:01", library, __LINE__); - track_test_lenstrs("Music/10.ogg", "0:10", library, __LINE__); - track_test_lenstrs("Music/15.ogg", "0:15", library, __LINE__); - track_test_lenstrs("Music/60.ogg", "1:00", library, __LINE__); - track_test_lenstrs("Music/90.ogg", "1:30", library, __LINE__); - track_test_lenstrs("Music/600.ogg", "10:00", library, __LINE__); - track_test_lenstrs("Music/666.ogg", "11:06", library, __LINE__); -} - -void test_track_sorting() -{ - Track track1, track2; - Artist artist1("a"), artist2("b"); - Album album1("a", 2000), album2("b", 2014); - Genre genre1("a"), genre2("b"); - - track1.artist = &artist1; - track1.album = &album1; - track1.genre = &genre1; - track1.length = 10; - track1.play_count = 0; - track1.last_year = 2013; - track1.title_lower = "a"; - track1.track = 1; - - track2.artist = &artist2; - track2.album = &album2; - track2.genre = &genre2; - track2.length = 20; - track2.play_count = 1; - track2.last_year = 2014; - track2.title_lower = "b"; - track2.track = 2; - - test_results(track1.less_than(&track1, SORT_ARTIST) == 0, __LINE__); - test_results(track1.less_than(&track2, SORT_ARTIST) < 0, __LINE__); - test_results(track2.less_than(&track1, SORT_ARTIST) > 0, __LINE__); - - test_results(track1.less_than(&track1, SORT_ALBUM) == 0, __LINE__); - test_results(track1.less_than(&track2, SORT_ALBUM) < 0, __LINE__); - test_results(track2.less_than(&track1, SORT_ALBUM) > 0, __LINE__); - - test_results(track1.less_than(&track1, SORT_GENRE) == 0, __LINE__); - test_results(track1.less_than(&track2, SORT_GENRE) < 0, __LINE__); - test_results(track2.less_than(&track1, SORT_GENRE) > 0, __LINE__); - - test_results(track1.less_than(&track1, SORT_LENGTH) == 0, __LINE__); - test_results(track1.less_than(&track2, SORT_LENGTH) < 0, __LINE__); - test_results(track2.less_than(&track1, SORT_LENGTH) > 0, __LINE__); - - test_results(track1.less_than(&track1, SORT_PLAYED) == 0, __LINE__); - test_results(track1.less_than(&track2, SORT_PLAYED) < 0, __LINE__); - test_results(track2.less_than(&track1, SORT_PLAYED) > 0, __LINE__); - - track1.last_year = 2014; - track1.last_month = 3; - track2.last_month = 4; - - test_results(track1.less_than(&track1, SORT_PLAYED) == 0, __LINE__); - test_results(track1.less_than(&track2, SORT_PLAYED) < 0, __LINE__); - test_results(track2.less_than(&track1, SORT_PLAYED) > 0, __LINE__); - - track1.last_month = 4; - track1.last_day = 10; - track2.last_day = 11; - - test_results(track1.less_than(&track1, SORT_PLAYED) == 0, __LINE__); - test_results(track1.less_than(&track2, SORT_PLAYED) < 0, __LINE__); - test_results(track2.less_than(&track1, SORT_PLAYED) > 0, __LINE__); - - test_results(track1.less_than(&track1, SORT_TITLE) == 0, __LINE__); - test_results(track1.less_than(&track2, SORT_TITLE) < 0, __LINE__); - test_results(track2.less_than(&track1, SORT_TITLE) > 0, __LINE__); - - test_results(track1.less_than(&track1, SORT_TRACK) == 0, __LINE__); - test_results(track1.less_than(&track2, SORT_TRACK) < 0, __LINE__); - test_results(track2.less_than(&track1, SORT_TRACK) > 0, __LINE__); - - test_results(track1.less_than(&track1, SORT_YEAR) == 0, __LINE__); - test_results(track1.less_than(&track2, SORT_YEAR) < 0, __LINE__); - test_results(track2.less_than(&track1, SORT_YEAR) > 0, __LINE__); -} - -void track_test() -{ - Library *library = tagdb :: add_library("Music"); - track_test_basics(library); - track_test_lenstrs(library); - test_track_sorting(); -} - - -int main(int argc, char **argv) -{ - char c; - - while ((c = getopt(argc, argv, "aAglt")) != -1) { - switch (c) { - case 'a': - artist_test(); - break; - case 'A': - album_test(); - break; - case 'g': - genre_test(); - break; - case 'l': - library_test(); - break; - case 't': - track_test(); - break; - } - } - - return 0; -} diff --git a/tests/tag_db b/tests/tag_db deleted file mode 100755 index a03482a0..00000000 --- a/tests/tag_db +++ /dev/null @@ -1,60 +0,0 @@ -#!/bin/bash -# Copyright 2014 (c) Anna Schumaker - -. $(dirname $0)/_functions - -function test_tag -{ - new_test "Test $1 Tag" - ./src/tags.run "$2" -} - -function test_db_exists -{ - if [ ! -f $DATA_DIR/$1.db ]; then - echo "ERROR: $DATA_DIR/$1.db doesn't exist!" - exit 1 - fi -} - -function test_db_not_exists -{ - if [ -f $DATA_DIR/$1.db ]; then - echo "ERROR: $DATA_DIR/$1.db shouldn't exist!" - exit 1 - fi -} - -test_tag "Artist" "-a" -echo -test_tag "Album" "-A" -echo -test_tag "Genre" "-g" -echo -test_tag "Library" "-l" -echo -test_tag "Track" "-t" - - -rm -rf $DATA_DIR/*.db - -echo -new_test "Test TagDB" -./src/tagdb.run - -test_db_exists artist -test_db_exists album -test_db_exists genre -test_db_exists library -test_db_not_exists track - - -echo -new_test "Test TagDB (call init)" -./src/tagdb.run -i - -test_db_exists artist -test_db_exists album -test_db_exists genre -test_db_exists library -test_db_exists track diff --git a/tests/tags.cpp b/tests/tags.cpp new file mode 100644 index 00000000..2695f2e1 --- /dev/null +++ b/tests/tags.cpp @@ -0,0 +1,301 @@ +/* + * Copyright 2014 (c) Anna Schumaker. + * Test a DatabaseEntry + */ + +#include +#include "test.h" + +static Library *LIB_NULL = NULL; +static Track *TRACK_NULL = NULL; + +struct TagArgs { + struct Library *library; + std::string full_path; + + std::string artist; + std::string artist_lower; + + std::string album; + std::string album_lower; + unsigned int year; + + std::string genre; + std::string genre_lower; + + unsigned int track; + unsigned int length; + unsigned int play_count; + unsigned int last_year; + unsigned int last_month; + unsigned int last_day; + std::string title; + std::string title_lower; + std::string filepath; + std::string length_str; +}; + +static void test_library() +{ + Library *lib = tagdb :: add_library("tests/Music/"); + + test_not_equal(lib, LIB_NULL); + test_equal(lib->root_path, (std::string)"tests/Music/"); + test_equal(lib->count, (unsigned)0); + test_equal(lib->enabled, true); + + test_equal(tagdb :: add_library("tests/Music/"), LIB_NULL); + test_equal(lib, tagdb :: lookup_library(0)); + + tagdb :: remove_library(0); + test_equal(tagdb :: get_library_db().size(), (unsigned)0); +} + +static void test_track(struct TagArgs *args) +{ + Track *track = tagdb :: add_track(args->full_path, args->library); + + test_not_equal(track, TRACK_NULL); + test_equal(track->path(), args->full_path); + + /* + * Check tags + */ + test_equal(track->artist->name, args->artist); + test_equal(track->artist->lower, args->artist_lower); + test_equal(track->album->name, args->album); + test_equal(track->album->lower, args->album_lower); + test_equal(track->album->year, args->year); + test_equal(track->genre->name, args->genre); + test_equal(track->genre->lower, args->genre_lower); + test_equal(track->track, args->track); + test_equal(track->length, args->length); + test_equal(track->play_count, args->play_count); + test_equal(track->last_year, args->last_year); + test_equal(track->last_month, args->last_month); + test_equal(track->last_day, args->last_day); + test_equal(track->title, args->title); + test_equal(track->title_lower, args->title_lower); + test_equal(track->filepath, args->filepath); + test_equal(track->length_str, args->length_str); + + test_equal(tagdb :: lookup(args->track - 1), track); + test_equal(args->library->count, (unsigned)1); + tagdb :: remove_track(args->track - 1); + test_equal(tagdb :: lookup(args->track - 1), TRACK_NULL); + test_equal(tagdb :: get_track_db().size(), (unsigned)0); + test_equal(args->library->count, (unsigned)0); +} + +static void test_all_tracks() +{ + struct TagArgs expected; + + expected.library = tagdb :: add_library("tests/Music"); + expected.full_path = "tests/Music/1.ogg"; + expected.artist = "Artist"; + expected.artist_lower = "artist"; + expected.album = "Album"; + expected.album_lower = "album"; + expected.year = 2014; + expected.genre = "Silence"; + expected.genre_lower = "silence"; + expected.track = 1; + expected.length = 1; + expected.play_count = 0; + expected.last_year = 0; + expected.last_month = 0; + expected.last_day = 0; + expected.title = "One"; + expected.title_lower = "one"; + expected.filepath = "1.ogg"; + expected.length_str = "0:01"; + run_test("Tags Track Test (1.ogg)", test_track, &expected); + + expected.full_path = "tests/Music/10.ogg"; + expected.track = 2; + expected.length = 10; + expected.title = "Ten"; + expected.title_lower = "ten"; + expected.filepath = "10.ogg"; + expected.length_str = "0:10"; + run_test("Tags Track Test (10.ogg)", test_track, &expected); + + expected.full_path = "tests/Music/15.ogg"; + expected.track = 3; + expected.length = 15; + expected.title = "Fifteen"; + expected.title_lower = "fifteen"; + expected.filepath = "15.ogg"; + expected.length_str = "0:15"; + run_test("Tags Track Test (15.ogg)", test_track, &expected); + + expected.full_path = "tests/Music/60.ogg"; + expected.track = 4; + expected.length = 60; + expected.title = "Sixty"; + expected.title_lower = "sixty"; + expected.filepath = "60.ogg"; + expected.length_str = "1:00"; + run_test("Tags Track Test (60.ogg)", test_track, &expected); + + expected.full_path = "tests/Music/90.ogg"; + expected.album = "Album Two"; + expected.album_lower = "album two"; + expected.track = 5; + expected.length = 90; + expected.title = "Ninety"; + expected.title_lower = "ninety"; + expected.filepath = "90.ogg"; + expected.length_str = "1:30"; + run_test("Tags Track Test (90.ogg)", test_track, &expected); + + expected.full_path = "tests/Music/600.ogg"; + expected.track = 6; + expected.length = 600; + expected.title = "Six Hundred"; + expected.title_lower = "six hundred"; + expected.filepath = "600.ogg"; + expected.length_str = "10:00"; + run_test("Tags Track Test (600.ogg)", test_track, &expected); + + expected.full_path = "tests/Music/666.ogg"; + expected.track = 7; + expected.length = 666; + expected.title = "Six-Six-Six"; + expected.title_lower = "six six six"; + expected.filepath = "666.ogg"; + expected.length_str = "11:06"; + run_test("Tags Track Test (666.ogg)", test_track, &expected); +} + +static void test_comparison() +{ + Library *lib = tagdb :: lookup_library(1); + Track *track1 = tagdb :: add_track("tests/Music/1.ogg", lib); + Track *track10 = tagdb :: add_track("tests/Music/10.ogg", lib); + Track *track15 = tagdb :: add_track("tests/Music/15.ogg", lib); + Track *track60 = tagdb :: add_track("tests/Music/60.ogg", lib); + Track *track90 = tagdb :: add_track("tests/Music/90.ogg", lib); + Track *track600 = tagdb :: add_track("tests/Music/600.ogg", lib); + Track *track666 = tagdb :: add_track("tests/Music/666.ogg", lib); + + Artist art2(""); + track10->artist = &art2; + test_equal(track1->less_than(track10, SORT_ARTIST), -1); + test_equal(track10->less_than(track1, SORT_ARTIST), 1); + + Artist art3("Artist Three"); + track10->artist = &art3; + test_equal(track1->less_than(track1, SORT_ARTIST), 0); + test_equal(track1->less_than(track10, SORT_ARTIST) < 0, true); + test_equal(track10->less_than(track1, SORT_ARTIST) > 0, true); + + test_equal(track1->less_than(track1, SORT_ALBUM), 0); + test_equal(track1->less_than(track90, SORT_ALBUM) < 0, true); + test_equal(track90->less_than(track1, SORT_ALBUM) > 0, true); + + track15->play_count++; + test_equal(track1->less_than(track1, SORT_COUNT), 0); + test_equal(track1->less_than(track15, SORT_COUNT) < 0, true); + test_equal(track15->less_than(track1, SORT_COUNT) > 0, true); + + Genre gen2("X-Treme Silence!!!"); + track60->genre = &gen2; + test_equal(track1->less_than(track1, SORT_GENRE), 0); + test_equal(track1->less_than(track60, SORT_GENRE) < 0, true); + test_equal(track60->less_than(track1, SORT_GENRE) > 0, true); + + test_equal(track1->less_than(track1, SORT_LENGTH), 0); + test_equal(track1->less_than(track600, SORT_LENGTH) < 0, true); + test_equal(track600->less_than(track1, SORT_LENGTH) > 0, true); + + track15->last_year = 2014; + test_equal(track1->less_than(track1, SORT_PLAYED), 0); + test_equal(track1->less_than(track15, SORT_PLAYED) < 0, true); + test_equal(track15->less_than(track1, SORT_PLAYED) > 0, true); + + track1->last_year = 2014; + track15->last_month = 5; + test_equal(track1->less_than(track15, SORT_PLAYED) < 0, true); + test_equal(track15->less_than(track1, SORT_PLAYED) > 0, true); + + track1->last_month = 5; + track15->last_day = 6; + test_equal(track1->less_than(track15, SORT_PLAYED) < 0, true); + test_equal(track15->less_than(track1, SORT_PLAYED) > 0, true); + + test_equal(track1->less_than(track1, SORT_TITLE), 0); + test_equal(track1->less_than(track666, SORT_TITLE) < 0, true); + test_equal(track666->less_than(track1, SORT_TITLE) > 0, true); + + test_equal(track1->less_than(track1, SORT_TRACK), 0); + test_equal(track1->less_than(track60, SORT_TRACK) < 0, true); + test_equal(track60->less_than(track1, SORT_TRACK) > 0, true); + + track666->album->year = 2048; + test_equal(track1->less_than(track1, SORT_YEAR), 0); + test_equal(track1->less_than(track666, SORT_YEAR) < 0, true); + test_equal(track666->less_than(track1, SORT_YEAR) > 0, true); +} + +static void test_lib_removal() +{ + test_equal(tagdb :: get_track_db().size(), (unsigned)7); + test_equal(tagdb :: lookup_library(1)->count, (unsigned)7); + tagdb :: remove_library(1); + test_equal(tagdb :: get_track_db().size(), (unsigned)0); +} + +static void test_save_load() +{ + Database artist("artist.db", false); + Database album("album.db", false); + Database genre("genre.db", false); + + artist.load(); + album.load(); + genre.load(); + + test_equal(artist.size(), (unsigned)1); + test_equal(album.size(), (unsigned)2); + test_equal(genre.size(), (unsigned)1); + + + Database library("library.db", false); + library.load(); + test_equal(library.size(), (unsigned)0); + + Library *lib = tagdb :: add_library("tests/Music"); + library.load(); + test_equal(library.size(), (unsigned)1); + + Database library2("library.db", false); + lib->enabled = false; + tagdb :: commit_library(); + library2.load(); + test_equal(library2.at(2)->enabled, false); + + + tagdb :: add_track("tests/Music/1.ogg", lib); + tagdb :: add_track("tests/Music/15.ogg", lib); + tagdb :: add_track("tests/Music/60.ogg", lib); + + Database track("track.db", false); + track.load(); + test_equal(track.size(), (unsigned)0); + + tagdb :: commit(); + track.load(); + test_equal(track.size(), (unsigned)3); +} + +int main(int argc, char **argv) +{ + run_test("Tags Library Test", test_library); + test_all_tracks(); + run_test("Tags Comparison Test", test_comparison); + run_test("Tags Library Removal Test", test_lib_removal); + run_test("Tags Save and Load Test", test_save_load); + return 0; +} From 7332ed1e8f7bf3d7c9c68c12a9f7e4c930473f98 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Tue, 6 May 2014 23:03:22 -0400 Subject: [PATCH 40/93] queue: Move unit test up one directory And modify it a bit to match my recent work. Signed-off-by: Anna Schumaker --- tests/.gitignore | 1 + tests/Sconscript | 1 + tests/queue | 6 ------ tests/{src => }/queue.cpp | 11 +++-------- 4 files changed, 5 insertions(+), 14 deletions(-) delete mode 100755 tests/queue rename tests/{src => }/queue.cpp (86%) diff --git a/tests/.gitignore b/tests/.gitignore index 5f5223fc..e51c1ed3 100644 --- a/tests/.gitignore +++ b/tests/.gitignore @@ -5,3 +5,4 @@ index filter idle tags +queue diff --git a/tests/Sconscript b/tests/Sconscript index 02703643..8630b3db 100644 --- a/tests/Sconscript +++ b/tests/Sconscript @@ -16,6 +16,7 @@ tests = [ ("filter.cpp", True, []), ("idle.cpp", False, [ "idle.cpp" ]), ("tags.cpp", True, []), + ("queue.cpp", True, [ "callback.cpp" ]), ] diff --git a/tests/queue b/tests/queue deleted file mode 100755 index 791fe29c..00000000 --- a/tests/queue +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/bash -# Copyright 2014 (c) Anna Schumaker. - -. $(dirname $0)/_functions - -./src/queue.run diff --git a/tests/src/queue.cpp b/tests/queue.cpp similarity index 86% rename from tests/src/queue.cpp rename to tests/queue.cpp index 545e5bbc..67426715 100644 --- a/tests/src/queue.cpp +++ b/tests/queue.cpp @@ -21,7 +21,6 @@ void test_default() { TestQueue q; - test :: new_test("Queue Default Constructor Test"); test :: equal(q.get_cur(), (unsigned)-1); test :: equal(q.get_flags(), (unsigned)0); test :: equal(q.get_length(), (unsigned)0); @@ -33,20 +32,17 @@ void test_constructor(unsigned int flags) { TestQueue q(flags | (1 << 30)); - test :: new_test("Queue Constructor Test"); test :: equal(q.get_cur(), (unsigned)-1); test :: equal(q.get_flags(), flags); test :: equal(q.get_length(), (unsigned)0); test :: equal(q.get_sorder().size(), (size_t)0); test :: equal(q.next(), (Track *)NULL); - test :: end(); } void test_flags() { TestQueue q(0); - test :: new_test("Queue Flag Test"); test :: equal(q.get_flags(), (unsigned)0); q.set_flag(Q_ENABLED); @@ -61,13 +57,12 @@ void test_flags() test :: equal(q.has_flag(Q_RANDOM), true); test :: equal(q.has_flag(Q_REPEAT), true); test :: equal(q.has_flag(Q_NO_SORT), false); - test ::end(); } int main(int argc, char **argv) { - test_default(); - test_constructor(Q_ENABLED | Q_RANDOM); - test_flags(); + run_test("Queue Default Constructor Test", test_default); + run_test("Queue Constructor Test", test_constructor, Q_ENABLED | Q_RANDOM); + run_test("Queue Flag Test", test_flags); return 0; } From 3fbb4d97351882d1eb0e9003e7f567d08fadcf23 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Tue, 6 May 2014 23:04:56 -0400 Subject: [PATCH 41/93] Clean up test/ directory Mostly remove files that are no longer used. Signed-off-by: Anna Schumaker --- tests/Sconscript | 3 -- tests/_functions | 66 -------------------------------------------- tests/src/Sconscript | 10 ------- 3 files changed, 79 deletions(-) delete mode 100644 tests/_functions delete mode 100644 tests/src/Sconscript diff --git a/tests/Sconscript b/tests/Sconscript index 8630b3db..3ef2a0c6 100644 --- a/tests/Sconscript +++ b/tests/Sconscript @@ -73,7 +73,4 @@ ignore.close(); Return("res") -#tests = [ "version" , "file", "database", "index", "filter", "idle" ] -## "tag_db", -## "queue" ] ##scripts = [ "playlist", "library", "deck", "audio", "gui" ] diff --git a/tests/_functions b/tests/_functions deleted file mode 100644 index ac9e6d25..00000000 --- a/tests/_functions +++ /dev/null @@ -1,66 +0,0 @@ -#!/bin/bash -# Copyright 2014 (c) Anna Schumaker - -function read_config -{ - cat ../Sconstruct | grep ^$1 | awk -F= '{print $2}' | tr -d ' ' -} - -function config_version -{ - read_config CONFIG_VERSION -} - -function config_debug -{ - read_config CONFIG_DEBUG -} - -CUR_TEST=0 -function new_test -{ - echo "$1" - CUR_TEST=0 -} - -function start_test -{ - echo -n " $CUR_TEST: " - let CUR_TEST=($CUR_TEST + 1) -} - -function assert_equal -{ - if [ "$1" == "$2" ]; then - echo "Success!" - return 0 - else - echo "FAILED =(" - echo " Expected: $2" - echo " Actual: $1" - return 1 - fi -} - -function test_equal -{ - start_test - assert_equal "$($1)" "$2" -} - -function on_exit -{ - ret=$? - echo - return $ret -}; trap "on_exit" EXIT - -[ -z $HOME ] && HOME=$(cat /etc/passwd | grep $(whoami) | awk -F: '{print $6}') -[ -z $XDG_DATA_HOME] && XDG_DATA_HOME="$HOME/.local/share" -DATA_DIR="$XDG_DATA_HOME/ocarina-test" -LEGACY_DIR="$HOME/.ocarina-test/library" - -rm -rf $DATA_DIR 2>/dev/null || true - -set -e -cd $(dirname $0) diff --git a/tests/src/Sconscript b/tests/src/Sconscript deleted file mode 100644 index 23a9e6ed..00000000 --- a/tests/src/Sconscript +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/python -Import("env", "lib") - -build = [] -for f in Glob("*.cpp"): - src = str(f) - run = src.split(".")[0] + ".run" - build += [ env.Program(run, [src] + lib) ] - -Return("build") From 24fe8e7ee25cb33bd1b5223b6b165f7ebc16442f Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sun, 11 May 2014 09:20:24 -0400 Subject: [PATCH 42/93] queue: Fix compile errors related to recent changes Signed-off-by: Anna Schumaker --- gui/model.cpp | 4 ++-- gui/queue.cpp | 2 +- gui/tabs.cpp | 8 ++++---- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/gui/model.cpp b/gui/model.cpp index 07f2b3bc..2df9d69c 100644 --- a/gui/model.cpp +++ b/gui/model.cpp @@ -69,7 +69,7 @@ unsigned int QueueModel :: iter_to_id(const Gtk::TreeIter &iter) unsigned int QueueModel::path_to_id(const Gtk::TreePath &path) { - return queue->operator[](path[0]); + return queue->operator[](path[0])->id; } @@ -186,7 +186,7 @@ void QueueModel::get_value_vfunc(const Gtk::TreeIter &iter, int column, return; row = GPOINTER_TO_UINT(iter.gobj()->user_data); - track = tagdb :: lookup((*queue)[row]); + track = queue->operator[](row); switch (column) { case 0: diff --git a/gui/queue.cpp b/gui/queue.cpp index 94c5e6fc..b0d17838 100644 --- a/gui/queue.cpp +++ b/gui/queue.cpp @@ -218,7 +218,7 @@ void QueueTab :: on_post_init() tab_init_random(); tab_init_repeat(); - bool active = (tab_pq->get_flags() & Q_ENABLED) == Q_ENABLED; + bool active = (tab_pq->has_flag(Q_ENABLED)); q_switch.set_active(active); q_switch.property_active().signal_changed().connect( sigc::mem_fun(*this, &QueueTab :: on_switch_changed)); diff --git a/gui/tabs.cpp b/gui/tabs.cpp index 74e7e938..309001be 100644 --- a/gui/tabs.cpp +++ b/gui/tabs.cpp @@ -71,14 +71,14 @@ void Tab :: tab_finish_init() void Tab :: tab_init_random() { - tab_random->set_active(tab_pq->get_flags() & Q_RANDOM); + tab_random->set_active(tab_pq->has_flag(Q_RANDOM)); tab_random->signal_toggled().connect(sigc::mem_fun(*this, &Tab::on_random_toggled)); } void Tab :: tab_init_repeat() { - tab_repeat->set_active(tab_pq->get_flags() & Q_REPEAT); + tab_repeat->set_active(tab_pq->has_flag(Q_REPEAT)); tab_repeat->signal_toggled().connect(sigc::mem_fun(*this, &Tab::on_repeat_toggled)); } @@ -355,7 +355,7 @@ bool Tab :: on_filter_visible(const Gtk::TreeIter &iter) return true; pq_id = tab_model->iter_to_id(iter); - it = visible_ids.find(tab_pq->operator[](pq_id)); + it = visible_ids.find(tab_pq->operator[](pq_id)->id); return it != visible_ids.end(); } @@ -522,7 +522,7 @@ void post_init_tabs() unsigned int tab = 0; for (tab = 0; tab < deck::size(); tab++) { - if ((deck :: get(tab)->get_flags() & Q_ENABLED) == Q_ENABLED) + if ((deck :: get(tab)->has_flag(Q_ENABLED))) break; } get_widget("o_notebook")->set_current_page(tab); From 69f4d21c045c7395525b97ddb1f60bb60b7d95ae Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sun, 11 May 2014 10:18:48 -0400 Subject: [PATCH 43/93] tests: Create a fake library This is loaded for testing so we don't have to scan a directory for each test. Signed-off-by: Anna Schumaker --- tests/Library/album.db | 8 +++++++ tests/Library/artist.db | 5 ++++ tests/Library/genre.db | 3 +++ tests/Library/library.db | 3 +++ tests/Library/track.db | 50 ++++++++++++++++++++++++++++++++++++++++ tests/queue.cpp | 4 ++++ tests/test.h | 14 +++++++++++ 7 files changed, 87 insertions(+) create mode 100644 tests/Library/album.db create mode 100644 tests/Library/artist.db create mode 100644 tests/Library/genre.db create mode 100644 tests/Library/library.db create mode 100644 tests/Library/track.db diff --git a/tests/Library/album.db b/tests/Library/album.db new file mode 100644 index 00000000..97cfee0c --- /dev/null +++ b/tests/Library/album.db @@ -0,0 +1,8 @@ +0 +6 +1 1993 Link's Awakening +1 1998 Link's Awakening DX +1 2002 Wind Waker +1 2013 Wind Waker HD +1 2006 Twilight Princess GC +1 2006 Twilight Princess Wii diff --git a/tests/Library/artist.db b/tests/Library/artist.db new file mode 100644 index 00000000..d7450f4a --- /dev/null +++ b/tests/Library/artist.db @@ -0,0 +1,5 @@ +0 +3 +1 Link's Awakening +1 Wind Waker +1 Twilight Princess diff --git a/tests/Library/genre.db b/tests/Library/genre.db new file mode 100644 index 00000000..f84d51ee --- /dev/null +++ b/tests/Library/genre.db @@ -0,0 +1,3 @@ +0 +1 +1 Zelda Music diff --git a/tests/Library/library.db b/tests/Library/library.db new file mode 100644 index 00000000..0c0130e9 --- /dev/null +++ b/tests/Library/library.db @@ -0,0 +1,3 @@ +0 +1 +1 1 /home/Zelda/Music diff --git a/tests/Library/track.db b/tests/Library/track.db new file mode 100644 index 00000000..92ef7a65 --- /dev/null +++ b/tests/Library/track.db @@ -0,0 +1,50 @@ +0 +24 +1 0 0 0 0 1 2001 1 10 0 100 Koholint Island +Links Awakening/1 - Koholint Island.ogg +1 0 0 0 0 2 2002 2 11 1 110 Animal Village +Links Awakening/2 - Animal Village.ogg +1 0 0 0 0 3 2003 3 12 2 120 Dream Shrine +Links Awakening/3 - Dream Shrine.ogg +1 0 0 0 0 4 2004 4 13 3 130 Goponga Swamp +Links Awakening/4 - Goponga Swamp.ogg +1 0 0 1 0 1 2003 5 14 4 140 Kanalet Castle +Links Awakening/1 - Kanalet Castle.ogg +1 0 0 1 0 2 2004 6 15 5 150 Mabe Village +Links Awakening/2 - Mabe Village.ogg +1 0 0 1 0 3 2005 7 16 6 160 Mt. Tamaranch +Links Awakening/3 - Mt Tamaranch.ogg +1 0 0 1 0 4 2006 8 17 7 170 Tal Tal Heights +Links Awakening/4 - Tal Tal Heights.ogg +1 0 1 2 0 1 2005 9 18 8 180 Dragon Roost Island +Wind Waker/1 - Dragon Roost Island.ogg +1 0 1 2 0 2 2006 1 19 9 190 Eastern Fairy Island +Wind Waker/2 - Eastern Fairy Island.ogg +1 0 1 2 0 3 2007 2 20 0 200 Forsaken Fortress +Wind Waker/3 - Forsaken Fortress.ogg +1 0 1 2 0 4 2008 3 21 1 210 Ghost Ship +Wind Waker/4 - Ghost Ship.ogg +1 0 1 3 0 1 2007 4 22 2 220 Outset Isle +Wind Waker/1 - Outset Isle.ogg +1 0 1 3 0 2 2008 5 23 3 230 Tingle Island +Wind Waker/2 - Tingle Island.ogg +1 0 1 3 0 3 2009 6 24 4 240 Tower of the Gods +Wind Waker/3 - Tower of the Gods.ogg +1 0 1 3 0 4 2010 7 25 5 250 Windfall Island +Wind Waker/4 - Windfall Island.ogg +1 0 2 4 0 1 2009 8 26 6 260 City in the Sky +Twilight Princess/1 - City in the Sky.ogg +1 0 2 4 0 2 2010 9 27 7 270 Gerudo Desert +Twilight Princess/2 - Gerudo Desert.ogg +1 0 2 4 0 3 2011 1 28 8 280 Arbiter's Grounds +Twilight Princess/3 - Arbiters Grounds.ogg +1 0 2 4 0 4 2012 2 29 9 290 Bridge of Eldin +Twilight Princess/4 - Bridge of Eldin.ogg +1 0 2 5 0 1 2011 3 30 0 300 Death Mountain +Twilight Princess/1 - Death Mountain.ogg +1 0 2 5 0 2 2012 4 10 1 310 Hidden Village +Twilight Princess/2 - Hidden Village.ogg +1 0 2 5 0 3 2013 5 11 2 320 Malo Mart +Twilight Princess/3 - Malo Mart.ogg +1 0 2 5 0 4 2014 6 12 3 330 Faron Woods +Twilight Princess/4 - Faron Woods.ogg diff --git a/tests/queue.cpp b/tests/queue.cpp index 67426715..3ab3dbbb 100644 --- a/tests/queue.cpp +++ b/tests/queue.cpp @@ -2,6 +2,7 @@ * Copyright 2014 (c) Anna Schumaker. */ #include +#include #include "test.h" @@ -61,6 +62,9 @@ void test_flags() int main(int argc, char **argv) { + test :: cp_library(); + tagdb :: init(); + run_test("Queue Default Constructor Test", test_default); run_test("Queue Constructor Test", test_constructor, Q_ENABLED | Q_RANDOM); run_test("Queue Flag Test", test_flags); diff --git a/tests/test.h b/tests/test.h index 26d60df8..9dfb4d8b 100644 --- a/tests/test.h +++ b/tests/test.h @@ -110,6 +110,20 @@ namespace test if (data_dir_exists()) system(cmd.c_str()); } + + void reset_data_dir() + { + std::string cmd = "mkdir -p " + data_dir(); + rm_data_dir(); + system(cmd.c_str()); + } + + void cp_library() + { + reset_data_dir(); + std::string cmd = "cp -r tests/Library/* " + data_dir(); + system(cmd.c_str()); + } } #define run_test(name, func, ...) \ From 38ae4ba0f32ac610e105adc91c6ac9c70d83199f Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sun, 11 May 2014 10:40:54 -0400 Subject: [PATCH 44/93] queue: Fix up queue :: add() It should take a Track pointer, rather than a track_id. This makes the code easier to work with. Signed-off-by: Anna Schumaker --- gui/tabs.cpp | 2 +- include/queue.h | 2 +- lib/deck.cpp | 2 +- lib/playlist.cpp | 6 +++--- lib/queue.cpp | 3 +-- tests/queue.cpp | 28 ++++++++++++++++++++++++++++ 6 files changed, 35 insertions(+), 8 deletions(-) diff --git a/gui/tabs.cpp b/gui/tabs.cpp index 309001be..25a4f825 100644 --- a/gui/tabs.cpp +++ b/gui/tabs.cpp @@ -161,7 +161,7 @@ void Tab :: tab_queue_add(Queue *pq) tab_selected_ids(ids); for (unsigned int i = 0; i < ids.size(); i++) - pq->add(ids[i]); + pq->add(tagdb :: lookup(ids[i])); } bool Tab :: tab_queue_selected(bool random) diff --git a/include/queue.h b/include/queue.h index 95399aea..fb96dd24 100644 --- a/include/queue.h +++ b/include/queue.h @@ -48,7 +48,7 @@ public: std::string get_length_str(); - unsigned int add(unsigned int); + unsigned int add(Track *); unsigned int add_front(unsigned int); void del(unsigned int); void del_track(unsigned int); diff --git a/lib/deck.cpp b/lib/deck.cpp index 0d3d31af..c4ccb658 100644 --- a/lib/deck.cpp +++ b/lib/deck.cpp @@ -15,7 +15,7 @@ static File deck_file("deck"); static void add_library_track(unsigned int id) { - library_playqueue.add(id); + library_playqueue.add(tagdb :: lookup(id)); } static void del_library_track(unsigned int id) diff --git a/lib/playlist.cpp b/lib/playlist.cpp index 567cf926..1b8e952e 100644 --- a/lib/playlist.cpp +++ b/lib/playlist.cpp @@ -38,7 +38,7 @@ void playlist :: init() ids = get_tracks(cur_pq); for (it = ids.begin(); it != ids.end(); it++) - playlist_pq.add(*it); + playlist_pq.add(tagdb :: lookup(*it)); } void playlist :: add(const std::string &name, unsigned int track_id) @@ -47,7 +47,7 @@ void playlist :: add(const std::string &name, unsigned int track_id) playlist_db.insert(name, track_id); playlist_db.save(); if (name == cur_pq) - playlist_pq.add(track_id); + playlist_pq.add(tagdb :: lookup(track_id)); if (name == "Banned") get_callbacks()->on_playlist_ban(track_id); } else @@ -76,7 +76,7 @@ void playlist :: select(const std::string &name) playlist_pq.del(0); for (it = ids.begin(); it != ids.end(); it++) - playlist_pq.add(*it); + playlist_pq.add(tagdb :: lookup(*it)); cur_pq = name; } diff --git a/lib/queue.cpp b/lib/queue.cpp index ea906cca..57d0d79d 100644 --- a/lib/queue.cpp +++ b/lib/queue.cpp @@ -149,10 +149,9 @@ unsigned int Queue :: find_sorted_id(Track *rhs) return begin; } -unsigned int Queue :: add(unsigned int track_id) +unsigned int Queue :: add(Track *track) { unsigned int id = _tracks.size(); - Track *track = tagdb :: lookup(track_id); if (_sort_order.size() > 0) id = find_sorted_id(track); diff --git a/tests/queue.cpp b/tests/queue.cpp index 3ab3dbbb..178a697f 100644 --- a/tests/queue.cpp +++ b/tests/queue.cpp @@ -1,11 +1,15 @@ /* * Copyright 2014 (c) Anna Schumaker. */ +#include #include #include #include "test.h" +unsigned int count_add = 0; + + class TestQueue : public Queue { public: @@ -60,6 +64,29 @@ void test_flags() test :: equal(q.has_flag(Q_NO_SORT), false); } +void test_add_cb(Queue *q, unsigned int id) +{ + check_equal(id, count_add); + count_add++; +} + +void test_add_remove() +{ + TestQueue q(0); + unsigned int expected = 0; + + get_callbacks()->on_queue_track_add = test_add_cb; + + test :: begin(); + for (unsigned int i = 0; i < 24; i++) { + check_equal(q.add(tagdb :: lookup(i)), i); + expected += 100 + (i * 10); + } + test :: success(); + + test :: equal(q.get_length(), expected); +} + int main(int argc, char **argv) { test :: cp_library(); @@ -68,5 +95,6 @@ int main(int argc, char **argv) run_test("Queue Default Constructor Test", test_default); run_test("Queue Constructor Test", test_constructor, Q_ENABLED | Q_RANDOM); run_test("Queue Flag Test", test_flags); + run_test("Queue Add and Remove Test", test_add_remove); return 0; } From 74bf30bec5e908eefb82752ff02ec42ae89e308d Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sun, 11 May 2014 10:53:48 -0400 Subject: [PATCH 45/93] queue: Remove the add_front() function This is best implemented in a derived class, since it's only used by the recently played queue. Signed-off-by: Anna Schumaker --- include/queue.h | 4 ++-- lib/audio.cpp | 17 ++++++++++++++--- lib/queue.cpp | 31 +++++++++++-------------------- 3 files changed, 27 insertions(+), 25 deletions(-) diff --git a/include/queue.h b/include/queue.h index fb96dd24..9a05eef0 100644 --- a/include/queue.h +++ b/include/queue.h @@ -33,6 +33,7 @@ protected: unsigned int _length; unsigned int find_sorted_id(Track *); + unsigned int _add_at(Track *, unsigned int); void _add_sort(sort_t, bool); public: @@ -48,8 +49,7 @@ public: std::string get_length_str(); - unsigned int add(Track *); - unsigned int add_front(unsigned int); + virtual unsigned int add(Track *); void del(unsigned int); void del_track(unsigned int); void track_updated(unsigned int); diff --git a/lib/audio.cpp b/lib/audio.cpp index 051f49d7..162ca3c2 100644 --- a/lib/audio.cpp +++ b/lib/audio.cpp @@ -19,9 +19,20 @@ static bool o_pause_enabled = false; static unsigned int o_pause_count = 0; static bool o_should_pause = false; -static Queue o_recently_played(Q_ENABLED | Q_REPEAT | Q_NO_SORT | Q_DISABLE_CHANGED_SIZE); static File f_cur_track("cur_track"); + +class RecentQueue : public Queue +{ +public: + RecentQueue() + : Queue(Q_ENABLED | Q_REPEAT | Q_NO_SORT | Q_DISABLE_CHANGED_SIZE) {} + unsigned int add(Track *track) { return _add_at(track, 0); } +}; + +static RecentQueue o_recently_played; + + static void parse_error(GstMessage *error) { GError *err; @@ -197,7 +208,7 @@ void audio :: next() cur_trackid = track->id; save_state(); o_recently_played.del_track(track->id); - o_recently_played.add_front(track->id); + o_recently_played.add(track); o_recently_played.set_cur(0); } @@ -231,7 +242,7 @@ void audio :: load_trackid(unsigned int track_id) cur_trackid = track_id; save_state(); o_recently_played.del_track(track_id); - o_recently_played.add_front(track_id); + o_recently_played.add(track); o_recently_played.set_cur(0); } diff --git a/lib/queue.cpp b/lib/queue.cpp index 57d0d79d..5f011ead 100644 --- a/lib/queue.cpp +++ b/lib/queue.cpp @@ -149,31 +149,22 @@ unsigned int Queue :: find_sorted_id(Track *rhs) return begin; } +unsigned int Queue :: _add_at(Track *track, unsigned int pos) +{ + _tracks.insert(_tracks.begin() + pos, track); + _length += track->length; + get_callbacks()->on_queue_track_add(this, pos); + if (!(_flags & Q_DISABLE_CHANGED_SIZE)) + get_callbacks()->on_queue_changed(); + return pos; +} + unsigned int Queue :: add(Track *track) { unsigned int id = _tracks.size(); - if (_sort_order.size() > 0) id = find_sorted_id(track); - - _tracks.insert(_tracks.begin() + id, track); - _length += track->length; - get_callbacks()->on_queue_track_add(this, id); - if (!(_flags & Q_DISABLE_CHANGED_SIZE)) - get_callbacks()->on_queue_changed(); - return id; -} - -unsigned int Queue :: add_front(unsigned int track_id) -{ - Track *track = tagdb :: lookup(track_id); - _tracks.insert(_tracks.begin(), track); - - _length += track->length; - get_callbacks()->on_queue_track_add(this, 0); - if (!(_flags & Q_DISABLE_CHANGED_SIZE)) - get_callbacks()->on_queue_changed(); - return 0; + return _add_at(track, id); } void Queue :: del(unsigned int plist_id) From 5520472f6f603c4c421d3327412606513985f1a7 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sun, 11 May 2014 11:23:15 -0400 Subject: [PATCH 46/93] queue: Test and clean up the delete track function Signed-off-by: Anna Schumaker --- include/queue.h | 3 +- lib/audio.cpp | 12 +++++--- lib/deck.cpp | 2 +- lib/playlist.cpp | 4 +-- lib/queue.cpp | 34 +++++++++++----------- tests/queue.cpp | 74 +++++++++++++++++++++++++++++++++++++++++++++++- 6 files changed, 102 insertions(+), 27 deletions(-) diff --git a/include/queue.h b/include/queue.h index 9a05eef0..099695a5 100644 --- a/include/queue.h +++ b/include/queue.h @@ -34,6 +34,7 @@ protected: unsigned int find_sorted_id(Track *); unsigned int _add_at(Track *, unsigned int); + void _del_at(Track *, unsigned int); void _add_sort(sort_t, bool); public: @@ -50,8 +51,8 @@ public: std::string get_length_str(); virtual unsigned int add(Track *); + void del(Track *); void del(unsigned int); - void del_track(unsigned int); void track_updated(unsigned int); unsigned int size(); diff --git a/lib/audio.cpp b/lib/audio.cpp index 162ca3c2..6babf4f0 100644 --- a/lib/audio.cpp +++ b/lib/audio.cpp @@ -26,8 +26,14 @@ class RecentQueue : public Queue { public: RecentQueue() - : Queue(Q_ENABLED | Q_REPEAT | Q_NO_SORT | Q_DISABLE_CHANGED_SIZE) {} - unsigned int add(Track *track) { return _add_at(track, 0); } + : Queue(Q_ENABLED | Q_REPEAT | Q_NO_SORT | Q_DISABLE_CHANGED_SIZE) + {} + + unsigned int add(Track *track) + { + del(track); + return _add_at(track, 0); + } }; static RecentQueue o_recently_played; @@ -207,7 +213,6 @@ void audio :: next() cur_trackid = track->id; save_state(); - o_recently_played.del_track(track->id); o_recently_played.add(track); o_recently_played.set_cur(0); } @@ -241,7 +246,6 @@ void audio :: load_trackid(unsigned int track_id) cur_trackid = track_id; save_state(); - o_recently_played.del_track(track_id); o_recently_played.add(track); o_recently_played.set_cur(0); } diff --git a/lib/deck.cpp b/lib/deck.cpp index c4ccb658..94608094 100644 --- a/lib/deck.cpp +++ b/lib/deck.cpp @@ -20,7 +20,7 @@ static void add_library_track(unsigned int id) static void del_library_track(unsigned int id) { - library_playqueue.del_track(id); + library_playqueue.del(tagdb :: lookup(id)); } static void change_library_track(unsigned int id) diff --git a/lib/playlist.cpp b/lib/playlist.cpp index 1b8e952e..8f902e72 100644 --- a/lib/playlist.cpp +++ b/lib/playlist.cpp @@ -60,7 +60,7 @@ void playlist :: del(const std::string &name, unsigned int track_id) playlist_db.remove(name, track_id); playlist_db.save(); if (name == cur_pq) - playlist_pq.del_track(track_id); + playlist_pq.del(tagdb :: lookup(track_id)); if (name == "Banned") get_callbacks()->on_playlist_unban(track_id); } else @@ -73,7 +73,7 @@ void playlist :: select(const std::string &name) std::set::iterator it; while (playlist_pq.size() > 0) - playlist_pq.del(0); + playlist_pq.del((unsigned)0); for (it = ids.begin(); it != ids.end(); it++) playlist_pq.add(tagdb :: lookup(*it)); diff --git a/lib/queue.cpp b/lib/queue.cpp index 5f011ead..b81f860f 100644 --- a/lib/queue.cpp +++ b/lib/queue.cpp @@ -159,6 +159,15 @@ unsigned int Queue :: _add_at(Track *track, unsigned int pos) return pos; } +void Queue :: _del_at(Track *track, unsigned int pos) +{ + _tracks.erase(_tracks.begin() + pos); + _length -= track->length; + get_callbacks()->on_queue_track_del(this, pos); + if (!(_flags & Q_DISABLE_CHANGED_SIZE)) + get_callbacks()->on_queue_changed(); +} + unsigned int Queue :: add(Track *track) { unsigned int id = _tracks.size(); @@ -167,28 +176,17 @@ unsigned int Queue :: add(Track *track) return _add_at(track, id); } -void Queue :: del(unsigned int plist_id) +void Queue :: del(Track *track) { - Track *track; - unsigned int track_id = _tracks[plist_id]->id; - - _tracks.erase(_tracks.begin() + plist_id); - track = tagdb :: lookup(track_id); - _length -= track->length; - get_callbacks()->on_queue_track_del(this, plist_id); - if (!(_flags & Q_DISABLE_CHANGED_SIZE)) - get_callbacks()->on_queue_changed(); + for (unsigned int i = 0; i < _tracks.size(); i++) { + if (_tracks[i]->id == track->id) + _del_at(track, i); + } } -void Queue :: del_track(unsigned int track_id) +void Queue :: del(unsigned int id) { - unsigned int i = 0; - while (i < _tracks.size()) { - if (_tracks[i]->id == track_id) - del(i); - else - i++; - } + _del_at(_tracks[id], id); } void Queue :: track_updated(unsigned int track_id) diff --git a/tests/queue.cpp b/tests/queue.cpp index 178a697f..446d5be0 100644 --- a/tests/queue.cpp +++ b/tests/queue.cpp @@ -8,6 +8,7 @@ unsigned int count_add = 0; +unsigned int count_del = 0; class TestQueue : public Queue @@ -70,21 +71,92 @@ void test_add_cb(Queue *q, unsigned int id) count_add++; } +void test_del_cb(Queue *q, unsigned int id) +{ + if (count_del % 2 == 0) + check_equal(id, (unsigned)0); + else + check_equal(id, 24 - ((count_del + 1) / 2)); + count_del++; +} + +void test_del_cb2(Queue *q, unsigned int id) +{ + check_equal(id, 23 - count_del); + count_del++; +} + +void test_del_cb3(Queue *q, unsigned int id) +{ + check_equal(id, (unsigned)0); +} + void test_add_remove() { + Track *track; TestQueue q(0); unsigned int expected = 0; get_callbacks()->on_queue_track_add = test_add_cb; + get_callbacks()->on_queue_track_del = test_del_cb; + + /* Add tracks */ test :: begin(); for (unsigned int i = 0; i < 24; i++) { check_equal(q.add(tagdb :: lookup(i)), i); expected += 100 + (i * 10); } test :: success(); + test_equal(q.get_length(), expected); - test :: equal(q.get_length(), expected); + + /* Add everything again */ + test :: begin(); + for (unsigned int i = 0; i < 24; i++) { + check_equal(q.add(tagdb :: lookup(i)), i + 24); + expected += 100 + (i * 10); + } + test :: success(); + test_equal(q.get_length(), expected); + test_equal(q.size(), (unsigned)48); + + + /* Test removing multiple tracks at once */ + test :: begin(); + for (unsigned int i = 0; i < 12; i++) { + track = tagdb :: lookup(i); + q.del(track); + expected -= 2 * (100 + (i * 10)); + } + test :: success(); + test_equal(q.get_length(), expected); + test_equal(q.size(), (unsigned)24); + + + /* Test removing tracks one at a time */ + count_del = 0; + get_callbacks()->on_queue_track_del = test_del_cb2; + + test :: begin(); + for (unsigned int i = 23; i >= 12; i--) { + expected -= q[i]->length; + q.del(i); + } + test :: success(); + test_equal(q.get_length(), expected); + test_equal(q.size(), (unsigned)12); + + + /* Remove remaining tracks */ + get_callbacks()->on_queue_track_del = test_del_cb3; + + test :: begin(); + while (q.size() > 0) + q.del((unsigned)0); + test :: success(); + test_equal(q.get_length(), (unsigned)0); + test_equal(q.size(), (unsigned)0); } int main(int argc, char **argv) From 0cc807215962484619d45c8264fbe18c5111a7ab Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sun, 11 May 2014 18:32:53 -0400 Subject: [PATCH 47/93] queue: Update the updated() function Signed-off-by: Anna Schumaker --- include/queue.h | 2 +- lib/deck.cpp | 2 +- lib/queue.cpp | 6 +++--- tests/queue.cpp | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 54 insertions(+), 5 deletions(-) diff --git a/include/queue.h b/include/queue.h index 099695a5..c2ed2482 100644 --- a/include/queue.h +++ b/include/queue.h @@ -53,7 +53,7 @@ public: virtual unsigned int add(Track *); void del(Track *); void del(unsigned int); - void track_updated(unsigned int); + void updated(Track *); unsigned int size(); void add_sort(sort_t, bool ascending = true); diff --git a/lib/deck.cpp b/lib/deck.cpp index 94608094..162dc35f 100644 --- a/lib/deck.cpp +++ b/lib/deck.cpp @@ -25,7 +25,7 @@ static void del_library_track(unsigned int id) static void change_library_track(unsigned int id) { - library_playqueue.track_updated(id); + library_playqueue.updated(tagdb :: lookup(id)); } void deck :: init() diff --git a/lib/queue.cpp b/lib/queue.cpp index b81f860f..1cab2051 100644 --- a/lib/queue.cpp +++ b/lib/queue.cpp @@ -179,7 +179,7 @@ unsigned int Queue :: add(Track *track) void Queue :: del(Track *track) { for (unsigned int i = 0; i < _tracks.size(); i++) { - if (_tracks[i]->id == track->id) + if (_tracks[i] == track) _del_at(track, i); } } @@ -189,10 +189,10 @@ void Queue :: del(unsigned int id) _del_at(_tracks[id], id); } -void Queue :: track_updated(unsigned int track_id) +void Queue :: updated(Track *track) { for (unsigned int i = 0; i < _tracks.size(); i++) { - if (_tracks[i]->id == track_id) + if (_tracks[i] == track) get_callbacks()->on_queue_track_changed(this, i); } } diff --git a/tests/queue.cpp b/tests/queue.cpp index 446d5be0..cdf9989b 100644 --- a/tests/queue.cpp +++ b/tests/queue.cpp @@ -9,6 +9,8 @@ unsigned int count_add = 0; unsigned int count_del = 0; +unsigned int count_updated = 0; +unsigned int last_update = 0; class TestQueue : public Queue @@ -22,6 +24,8 @@ public: std::list get_sorder() { return _sort_order; }; }; +void test_add_cb_noop(Queue *q, unsigned int id) { } + void test_default() { @@ -159,6 +163,50 @@ void test_add_remove() test_equal(q.size(), (unsigned)0); } +void test_updated_cb(Queue *q, unsigned int row) +{ + last_update = row; +} + +void test_updated_cb2(Queue *q, unsigned int row) +{ + switch (row) { + case 0: + case 24: + case 25: + count_updated++; + default: + break; + } +} + +void test_updated() +{ + Track *track; + TestQueue q(0); + + get_callbacks()->on_queue_track_add = test_add_cb_noop; + get_callbacks()->on_queue_track_changed = test_updated_cb; + + /* Add tracks */ + test :: begin(); + for (unsigned int i = 0; i < 24; i++) + check_equal(q.add(tagdb :: lookup(i)), i); + test :: success(); + + test :: begin(); + for (unsigned int i = 0; i < 24; i++) + q.updated(tagdb :: lookup(i)); + test :: success(); + + get_callbacks()->on_queue_track_changed = test_updated_cb2; + track = tagdb :: lookup(0); + q.add(track); + q.add(track); + q.updated(track); + test_equal(count_updated, (unsigned)3); +} + int main(int argc, char **argv) { test :: cp_library(); @@ -168,5 +216,6 @@ int main(int argc, char **argv) run_test("Queue Constructor Test", test_constructor, Q_ENABLED | Q_RANDOM); run_test("Queue Flag Test", test_flags); run_test("Queue Add and Remove Test", test_add_remove); + run_test("Queue Track Updated Test", test_updated); return 0; } From bcfa735dd7d1a30c00aa7ab18dd3c2c0834922fc Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sun, 11 May 2014 19:52:08 -0400 Subject: [PATCH 48/93] queue: Fix up the length_str() function Signed-off-by: Anna Schumaker --- include/queue.h | 8 ++++--- lib/queue.cpp | 64 ++++++++++++++++++++++++------------------------- tests/queue.cpp | 16 +++++++++++++ 3 files changed, 52 insertions(+), 36 deletions(-) diff --git a/include/queue.h b/include/queue.h index c2ed2482..465f3d06 100644 --- a/include/queue.h +++ b/include/queue.h @@ -5,7 +5,8 @@ #define OCARINA_QUEUE_H #include -#include +#include + #include #include @@ -48,13 +49,14 @@ public: void unset_flag(queue_flags); bool has_flag(queue_flags); - std::string get_length_str(); - virtual unsigned int add(Track *); void del(Track *); void del(unsigned int); void updated(Track *); + unsigned int size(); + const std::string size_str(); + const std::string length_str(); void add_sort(sort_t, bool ascending = true); void reset_sort(sort_t, bool ascending = true); diff --git a/lib/queue.cpp b/lib/queue.cpp index 1cab2051..4ac3f76f 100644 --- a/lib/queue.cpp +++ b/lib/queue.cpp @@ -2,7 +2,6 @@ * Copyright 2013 (c) Anna Schumaker. */ #include -#include #include #include @@ -60,38 +59,6 @@ bool Queue :: has_flag(queue_flags f) return (_flags & f) == (unsigned int)f; } -static inline void add_duration(std::stringstream &ss, unsigned int dur, - unsigned int remaining, const std::string &field) -{ - if (dur > 0) { - ss << dur << " " << field; - if (dur > 1) - ss << "s"; - if (remaining > 0) - ss << ", "; - } -} - -std::string Queue :: get_length_str() -{ - std::stringstream ss; - unsigned int len = _length; - - unsigned int days = len / O_DAYS; - len -= days * O_DAYS; - add_duration(ss, days, len, "day"); - - unsigned int hours = len / O_HOURS; - len -= hours *O_HOURS; - add_duration(ss, hours, len, "hour"); - unsigned int mins = len / O_MINUTES; - add_duration(ss, mins, len, "minute"); - unsigned int secs = len - (mins * O_MINUTES); - add_duration(ss, secs, 0, "second"); - - return ss.str(); -} - /* * std::string.compare() returns * 0: Strings are equal @@ -202,6 +169,37 @@ unsigned int Queue :: size() return _tracks.size(); } +const std::string Queue :: size_str() +{ + std::stringstream ss; + ss << size(); + return ss.str(); +} + +const std::string Queue :: length_str() +{ + std::stringstream ss; + unsigned int factor[4] = { O_DAYS, O_HOURS, O_MINUTES, 1 }; + std::string fields[4] = { "day", "hour", "minute", "second" }; + unsigned int len = _length; + + for (unsigned int i = 0; i < 4; i++) { + unsigned int dur = len / factor[i]; + len -= dur * factor[i]; + + if (dur > 0) { + ss << dur << " " << fields[i]; + if (dur > 1) + ss << "s"; + if (len > 0) + ss << ", "; + } + } + + return ss.str(); +} + + /* Sorting function */ class SortTracks { diff --git a/tests/queue.cpp b/tests/queue.cpp index cdf9989b..ea94b797 100644 --- a/tests/queue.cpp +++ b/tests/queue.cpp @@ -104,6 +104,11 @@ void test_add_remove() get_callbacks()->on_queue_track_add = test_add_cb; get_callbacks()->on_queue_track_del = test_del_cb; + test_equal(q.get_length(), expected); + test_equal(q.length_str(), (std::string)""); + test_equal(q.size(), (unsigned)0); + test_equal(q.size_str(), (std::string)"0"); + /* Add tracks */ test :: begin(); @@ -113,6 +118,9 @@ void test_add_remove() } test :: success(); test_equal(q.get_length(), expected); + test_equal(q.length_str(), (std::string)"1 hour, 26 minutes"); + test_equal(q.size(), (unsigned)24); + test_equal(q.size_str(), (std::string)"24"); /* Add everything again */ @@ -123,7 +131,9 @@ void test_add_remove() } test :: success(); test_equal(q.get_length(), expected); + test_equal(q.length_str(), (std::string)"2 hours, 52 minutes"); test_equal(q.size(), (unsigned)48); + test_equal(q.size_str(), (std::string)"48"); /* Test removing multiple tracks at once */ @@ -135,7 +145,9 @@ void test_add_remove() } test :: success(); test_equal(q.get_length(), expected); + test_equal(q.length_str(), (std::string)"1 hour, 50 minutes"); test_equal(q.size(), (unsigned)24); + test_equal(q.size_str(), (std::string)"24"); /* Test removing tracks one at a time */ @@ -149,7 +161,9 @@ void test_add_remove() } test :: success(); test_equal(q.get_length(), expected); + test_equal(q.length_str(), (std::string)"55 minutes"); test_equal(q.size(), (unsigned)12); + test_equal(q.size_str(), (std::string)"12"); /* Remove remaining tracks */ @@ -160,7 +174,9 @@ void test_add_remove() q.del((unsigned)0); test :: success(); test_equal(q.get_length(), (unsigned)0); + test_equal(q.length_str(), (std::string)""); test_equal(q.size(), (unsigned)0); + test_equal(q.size_str(), (std::string)"0"); } void test_updated_cb(Queue *q, unsigned int row) From 7aa5f22777e7cb439279ff699d19250389073ae3 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Wed, 14 May 2014 17:48:43 -0400 Subject: [PATCH 49/93] Add valgrind support to testing To help find memory leaks! Signed-off-by: Anna Schumaker --- .gitignore | 1 + Sconstruct | 31 ++++++++++++++++++++----------- TODO | 6 ------ gui/Sconscript | 4 ++-- include/Sconscript | 9 +++++---- lib/Sconscript | 6 +++--- tests/Sconscript | 37 ++++++++++++++++++++++--------------- 7 files changed, 53 insertions(+), 41 deletions(-) diff --git a/.gitignore b/.gitignore index 6b5bf870..469f6001 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ share/ocarina/#* bin/ .sconsign.dblite *.patch +tests/*-lib diff --git a/Sconstruct b/Sconstruct index 4bd6c5a8..2ef52ca3 100644 --- a/Sconstruct +++ b/Sconstruct @@ -4,6 +4,7 @@ import os # Configuration variables CONFIG_VERSION = 6.1 CONFIG_DEBUG = True +CONFIG_TEST_VALGRIND = False # Set up default environment @@ -11,28 +12,36 @@ CONFIG_CCFLAGS = [ "-O2" ] if CONFIG_DEBUG == True: CONFIG_CCFLAGS = [ "-Wall", "-Werror", "-g", "-DCONFIG_DEBUG" ] -env = Environment( CCFLAGS = CONFIG_CCFLAGS ) -env.Append(CPPPATH = os.path.abspath("include")) -env.Append(CXXCOMSTR = "C++ $TARGET") -env.Append(LINKCOMSTR = "Linking $TARGET") +class OEnvironment(Environment): + Debug = False + Version = 0 + Valgrind = False + def __init__(self): + Environment.__init__(self, CCFLAGS = CONFIG_CCFLAGS) + self.Append(CPPPATH = os.path.abspath("include")) + self.Append(CXXCOMSTR = "C++ $TARGET") + self.Append(LINKCOMSTR = "Linking $TARGET") + self.Debug = CONFIG_DEBUG + self.Version = CONFIG_VERSION + self.Valgrind = CONFIG_TEST_VALGRIND -def use_package(name): - env.ParseConfig("pkg-config --cflags --libs %s" % name) + def UsePackage(self, name): + self.ParseConfig("pkg-config --cflags --libs %s" % name) -Export("env", "use_package", "CONFIG_DEBUG", "CONFIG_VERSION") +env = OEnvironment() +test_env = OEnvironment() +Export("env", "test_env") include = SConscript("include/Sconscript") - lib = SConscript("lib/Sconscript") -Export("lib") +gui = SConscript("gui/Sconscript") tests = SConscript("tests/Sconscript") -gui = SConscript("gui/Sconscript") -ocarina = env.Program("bin/ocarina", lib + gui) +ocarina = env.Program("bin/ocarina", lib + gui, LIBS="y") Default(ocarina) Clean(ocarina, "bin/") diff --git a/TODO b/TODO index e4e93e66..c0b3ddec 100644 --- a/TODO +++ b/TODO @@ -61,13 +61,7 @@ Future work: the library? Perhaps create a mirror group? - Extra testing ideas: - - Run tests through valgrind to help find memory leaks - - Some way to enable / disable tests during development - - Run tests based on dependencies - - Fix tests that will only work on my computer - Double check that all inputs and outputs are tested - - Simple testing library? - - Stop tests on failure - Test callbacks - Preferences: diff --git a/gui/Sconscript b/gui/Sconscript index 268611ad..abc00633 100644 --- a/gui/Sconscript +++ b/gui/Sconscript @@ -1,7 +1,7 @@ #!/usr/bin/python -Import("use_package") +Import("env") -use_package("gtkmm-3.0") +env.UsePackage("gtkmm-3.0") res = Glob("*.cpp") Return("res") diff --git a/include/Sconscript b/include/Sconscript index 6ea804e1..5a1db8b7 100644 --- a/include/Sconscript +++ b/include/Sconscript @@ -1,8 +1,9 @@ #!/usr/bin/python -Import("env", "CONFIG_DEBUG", "CONFIG_VERSION") +Import("env", "test_env") -version = str(CONFIG_VERSION) -if CONFIG_DEBUG == True: +version = str(env.Version) +if env.Debug == True: version += "-debug" -env.Append( CCFLAGS = [ "-DCONFIG_VERSION='\"%s\"'" % version ] ) +for e in (env, test_env): + e.Append( CCFLAGS = [ "-DCONFIG_VERSION='\"%s\"'" % version ] ) diff --git a/lib/Sconscript b/lib/Sconscript index 9bc77cf7..17003556 100644 --- a/lib/Sconscript +++ b/lib/Sconscript @@ -1,8 +1,8 @@ #!/usr/bin/python -Import("use_package") +Import("env") -use_package("gstreamer-1.0") -use_package("taglib") +env.UsePackage("gstreamer-1.0") +env.UsePackage("taglib") res = Glob("*.cpp") Return("res") diff --git a/tests/Sconscript b/tests/Sconscript index 3ef2a0c6..39ba2253 100644 --- a/tests/Sconscript +++ b/tests/Sconscript @@ -1,7 +1,7 @@ #!/usr/bin/python -import sys -Import("env") +import sys, os +Import("test_env") tests = [ ### @@ -9,18 +9,19 @@ tests = [ # (source.cpp, use collected lib_files?, [ other files ]) # - ("version.cpp", False, []), - ("file.cpp", True, []), - ("database.cpp", True, []), - ("index.cpp", True, []), - ("filter.cpp", True, []), - ("idle.cpp", False, [ "idle.cpp" ]), - ("tags.cpp", True, []), - ("queue.cpp", True, [ "callback.cpp" ]), + ("version.cpp", False, [], [ "glib-2.0" ]), + ("file.cpp", True, [], []), + ("database.cpp", True, [], []), + ("index.cpp", True, [], []), + ("filter.cpp", True, [], []), + ("idle.cpp", False, [ "idle.cpp" ], []), + ("tags.cpp", True, [], [ "taglib" ]), + ("queue.cpp", True, [ "callback.cpp" ], []), ] - +env = test_env +env.UsePackage("glib-2.0") check_depends = True for arg in sys.argv: @@ -33,15 +34,18 @@ for arg in sys.argv: def expand_files(extra_files): res = [] for f in extra_files: - res += [ "../lib/%s" % f ] + res += [ env.Object("%s-lib" % f, "../lib/%s" % f) ] return res def make_program(src, name, extra_files): return env.Program("%s" % name, [ src ] + expand_files(extra_files)) def make_test(src, name): - test = Command("%s.out" % name, [], - "set -o pipefail; ./tests/%s | tee ./tests/%s.out" % (name, name)) + cmd = "./tests/%s | tee ./tests/%s.out" % (name, name) + if env.Valgrind == True: + cmd = "valgrind -q --leak-check=full --error-exitcode=42 %s" % cmd + + test = Command("%s.out" % name, [], "set -o pipefail; %s" % cmd) Alias("tests/%s" % name, test) AlwaysBuild(test) return test @@ -56,13 +60,16 @@ res = [] lib_files = [] ignore = open(".gitignore", 'w') -for src, lib, extra in tests: +for src, lib, extra, pkgs in tests: name = "%s" % src.rsplit(".")[0] if lib == True: lib_files += [ src ] extra = lib_files + extra + for p in pkgs: + env.UsePackage(p) + test = prepare_test(name, src, extra) if (check_depends == True) and (len(res) > 0): Depends(test, res[len(res) - 1]) From 6dc8bf73292d6a5ff4b1312716648f2f5ce90a6c Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sun, 18 May 2014 10:10:04 -0400 Subject: [PATCH 50/93] random: Use a different RNG for testing This RNG is more predictable, which makes it great for testing. Signed-off-by: Anna Schumaker --- DESIGN | 20 ++++++++++++++++++++ include/random.h | 36 ++++++++++++++++++++++++++++++++++++ lib/random.cpp | 21 +++++++++++++++++++++ tests/.gitignore | 1 + tests/Sconscript | 1 + tests/random.cpp | 36 ++++++++++++++++++++++++++++++++++++ 6 files changed, 115 insertions(+) create mode 100644 include/random.h create mode 100644 lib/random.cpp create mode 100644 tests/random.cpp diff --git a/DESIGN b/DESIGN index e329d720..630b4cba 100644 --- a/DESIGN +++ b/DESIGN @@ -828,6 +828,26 @@ Track Tag: +Random: + The random number generator is used by the Queue to pick a song as + randomly as possible. I use two different RNG implementations, + depending on if Ocarina is compiled with CONFIG_TEST or not. + + When CONFIG_TEST is enabled, the RNG is a simple counter. Every time + _pick_random() is called, the counter is incremented and returned. + When compiled without CONFIG_TEST we will return values using the + rand() function from stdlib.h. + +- API: + void random_seed(unsigned int n); + Seed the random number generator based on n. + + void random(unsigned int min, unsigned int max); + Return a random number between min and max, inclusive. + If min >= max: return min. + + + Queue: Queues are lists of songs that the user has requested to play. They are the main interface for all music played by Ocarina. diff --git a/include/random.h b/include/random.h new file mode 100644 index 00000000..5627ea2f --- /dev/null +++ b/include/random.h @@ -0,0 +1,36 @@ +/* + * Copyright 2014 (c) Anna Schumaker + */ + +#ifndef OCARINA_RANDOM_H +#define OCARINA_RANDOM_H + +#ifndef CONFIG_TEST + +#include +static inline void _seed_random(unsigned int n) { srand(time(NULL) + n); } +static inline unsigned int _pick_random() { return rand(); } + +#else /* CONFIG_TEST */ + +void _seed_random(unsigned int); +unsigned int _pick_random(); + +#endif /* CONFIG_TEST */ + + + +static inline void random_seed(unsigned int n) +{ + _seed_random(n); +} + +static inline unsigned int random(unsigned int min, unsigned int max) +{ + if (min >= max) + return min; + return min + (_pick_random() % (max - min)); +} + + +#endif /* OCARINA_RANDOM_H */ diff --git a/lib/random.cpp b/lib/random.cpp new file mode 100644 index 00000000..3488e277 --- /dev/null +++ b/lib/random.cpp @@ -0,0 +1,21 @@ +/* + * Copyright 2014 (c) Anna Schumaker + */ +#ifdef CONFIG_TEST + +#include + +static unsigned int _random_value = 0; + + +void _seed_random(unsigned int n) +{ + _random_value = n; +} + +unsigned int _pick_random() +{ + return ++_random_value; +} + +#endif /* CONFIG_TEST */ diff --git a/tests/.gitignore b/tests/.gitignore index e51c1ed3..8bb107e7 100644 --- a/tests/.gitignore +++ b/tests/.gitignore @@ -5,4 +5,5 @@ index filter idle tags +random queue diff --git a/tests/Sconscript b/tests/Sconscript index 39ba2253..fa3d25e8 100644 --- a/tests/Sconscript +++ b/tests/Sconscript @@ -16,6 +16,7 @@ tests = [ ("filter.cpp", True, [], []), ("idle.cpp", False, [ "idle.cpp" ], []), ("tags.cpp", True, [], [ "taglib" ]), + ("random.cpp", False, [ "random.cpp" ], []), ("queue.cpp", True, [ "callback.cpp" ], []), ] diff --git a/tests/random.cpp b/tests/random.cpp new file mode 100644 index 00000000..1d714404 --- /dev/null +++ b/tests/random.cpp @@ -0,0 +1,36 @@ +/* + * Copyright 2014 (c) Anna Schumaker. + */ + +#include +#include "test.h" + +#include + +static void do_test_rng(unsigned int seed) +{ + random_seed(seed); + + for (unsigned int i = 0; i <= 10; i++) { + if (i <= seed) + test_equal(random(seed, i), seed); + else + test_equal(random(seed, i), seed + (i % (i - seed))); + } +} + +static void test_rng(unsigned int seed) +{ + std::stringstream ss; + ss << " (seed = " << seed << ")"; + std::string seed_str = ss.str(); + + run_test("Random Number Generator Test" + seed_str, do_test_rng, seed); +} + +int main(int argc, char **argv) +{ + for (unsigned int i = 0; i < 10; i++) + test_rng(i); + return 0; +} From 44f93d85e4c63ea837f5ac78d3525a1d07bb2da8 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sun, 18 May 2014 10:15:51 -0400 Subject: [PATCH 51/93] file: Fix memory errors Apparently it's not okay to return str.c_str() to caller functions, because str will go out of scope... Signed-off-by: Anna Schumaker --- include/file.h | 4 ++-- lib/file.cpp | 20 ++++++++++---------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/include/file.h b/include/file.h index a4073b9f..c8da6065 100644 --- a/include/file.h +++ b/include/file.h @@ -21,14 +21,14 @@ private: std::string filename; unsigned int version; - const char *find_dir(); + const std::string find_dir(); bool open_read(); bool open_write(); public: File(const std::string &); ~File(); - const char *get_filepath(); + const std::string get_filepath(); const unsigned int get_version(); bool exists(); bool open(OpenMode); diff --git a/lib/file.cpp b/lib/file.cpp index 0f4a7e76..d215aae2 100644 --- a/lib/file.cpp +++ b/lib/file.cpp @@ -25,22 +25,22 @@ File :: ~File() close(); } -const char *File :: find_dir() +const std::string File :: find_dir() { - std::string res = g_get_user_data_dir(); + std::string res(g_get_user_data_dir()); res += "/" + OCARINA_DIR; - return res.c_str(); + return res; } -const char *File :: get_filepath() +const std::string File :: get_filepath() { - std::string res; + std::string res = ""; if (filename != "") { res = find_dir(); res += "/" + filename; } - return res.c_str(); + return res; } const unsigned int File :: get_version() @@ -50,7 +50,7 @@ const unsigned int File :: get_version() bool File :: exists() { - return g_file_test(get_filepath(), G_FILE_TEST_EXISTS); + return g_file_test(get_filepath().c_str(), G_FILE_TEST_EXISTS); } bool File :: open_read() @@ -58,7 +58,7 @@ bool File :: open_read() if (!exists()) return false; - std::fstream::open(get_filepath(), std::fstream::in); + std::fstream::open(get_filepath().c_str(), std::fstream::in); if (std::fstream::fail()) return false; @@ -70,10 +70,10 @@ bool File :: open_read() bool File :: open_write() { - if (g_mkdir_with_parents(find_dir(), 0755) != 0) + if (g_mkdir_with_parents(find_dir().c_str(), 0755) != 0) return false; - std::fstream::open(get_filepath(), std::fstream::out); + std::fstream::open(get_filepath().c_str(), std::fstream::out); if (std::fstream::fail()) return false; From 124f275ffda9d81ce8daa96b57b74f1d347107b3 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sun, 18 May 2014 11:08:58 -0400 Subject: [PATCH 52/93] queue: Update the next() function I also added in code for testing. Signed-off-by: Anna Schumaker --- include/queue.h | 2 +- lib/queue.cpp | 48 ++++++++++++++++++------------------- tests/Sconscript | 2 +- tests/queue.cpp | 62 ++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 87 insertions(+), 27 deletions(-) diff --git a/include/queue.h b/include/queue.h index 465f3d06..0f5b2711 100644 --- a/include/queue.h +++ b/include/queue.h @@ -53,6 +53,7 @@ public: void del(Track *); void del(unsigned int); void updated(Track *); + Track *next(); unsigned int size(); const std::string size_str(); @@ -64,7 +65,6 @@ public: std::list &get_sort_order(); Track *operator[](unsigned int); - Track *next(); void set_cur(unsigned int); void path_selected(unsigned int); #ifdef CONFIG_TEST diff --git a/lib/queue.cpp b/lib/queue.cpp index 4ac3f76f..ed1053e1 100644 --- a/lib/queue.cpp +++ b/lib/queue.cpp @@ -3,8 +3,8 @@ */ #include #include +#include -#include #include #include @@ -164,6 +164,28 @@ void Queue :: updated(Track *track) } } +Track *Queue :: next() +{ + Track *res; + + if (_tracks.size() == 0) + return NULL; + else if (_tracks.size() == 1) + _cur = 0; + else if (_flags & Q_RANDOM) + _cur += random(1, _tracks.size() / 2); + else + _cur++; + + _cur %= _tracks.size(); + res = _tracks[_cur]; + if (!(_flags & Q_REPEAT)) { + del(_cur); + _cur--; + } + return res; +} + unsigned int Queue :: size() { return _tracks.size(); @@ -272,30 +294,6 @@ Track *Queue :: operator[](unsigned int i) return _tracks[i]; } -Track *Queue :: next() -{ - Track *res; - - if (_tracks.size() == 0) - return NULL; - else if (_tracks.size() == 1) - _cur = 0; - else if (_flags & Q_RANDOM) - _cur += rand() % (_tracks.size() / 2) + 1; - else - _cur++; - - if (_cur >= _tracks.size()) - _cur -= _tracks.size(); - - res = _tracks[_cur]; - if (!(_flags & Q_REPEAT)) { - del(_cur); - _cur--; - } - return res; -} - void Queue :: set_cur(unsigned int c) { _cur = c; diff --git a/tests/Sconscript b/tests/Sconscript index fa3d25e8..6e485ff7 100644 --- a/tests/Sconscript +++ b/tests/Sconscript @@ -17,7 +17,7 @@ tests = [ ("idle.cpp", False, [ "idle.cpp" ], []), ("tags.cpp", True, [], [ "taglib" ]), ("random.cpp", False, [ "random.cpp" ], []), - ("queue.cpp", True, [ "callback.cpp" ], []), + ("queue.cpp", True, [ "callback.cpp", "random.cpp" ], []), ] diff --git a/tests/queue.cpp b/tests/queue.cpp index ea94b797..88f0c118 100644 --- a/tests/queue.cpp +++ b/tests/queue.cpp @@ -3,6 +3,7 @@ */ #include #include +#include #include #include "test.h" @@ -11,6 +12,7 @@ unsigned int count_add = 0; unsigned int count_del = 0; unsigned int count_updated = 0; unsigned int last_update = 0; +Track *TRACK_NULL = NULL; class TestQueue : public Queue @@ -25,6 +27,7 @@ public: }; void test_add_cb_noop(Queue *q, unsigned int id) { } +void test_del_cb_noop(Queue *q, unsigned int id) { } void test_default() @@ -223,6 +226,64 @@ void test_updated() test_equal(count_updated, (unsigned)3); } +static void test_fill_q(TestQueue *q) +{ + for (unsigned int i = 0; i < 24; i++) + q->add(tagdb :: lookup(i)); +} + +unsigned int expected_rand[] = { 1, 4, 8, 13, 19, 3, 14, 16, 20, 2, 11, 17, + 23, 6, 12, 18, 0, 5, 9, 10, 15, 21, 22, 7 }; + +void test_next() +{ + Track *track; + TestQueue q(0); + + get_callbacks()->on_queue_track_del = test_del_cb_noop; + + test_fill_q(&q); + test :: begin(); + for (unsigned int i = 0; i < 24; i++) { + track = q.next(); + check_not_equal(track, TRACK_NULL); + check_equal(track->id, i); + } + test :: success(); + test :: equal(q.size(), (unsigned)0); + test :: equal(q.length_str(), (std::string)""); + test :: equal(q.next(), TRACK_NULL); + + + q.set_flag(Q_RANDOM); + random_seed(0); + + test_fill_q(&q); + test :: begin(); + for (unsigned int i = 0; i < 24; i++) { + track = q.next(); + check_not_equal(track, TRACK_NULL); + check_equal(track->id, expected_rand[i]); + } + test :: success(); + test :: equal(q.size(), (unsigned)0); + test :: equal(q.length_str(), (std::string)""); + test :: equal(q.next(), TRACK_NULL); + + + q.set_flag(Q_REPEAT); + q.unset_flag(Q_RANDOM); + test_fill_q(&q); + test :: begin(); + for (unsigned int i = 0; i < 48; i++) { + track = q.next(); + check_not_equal(track, TRACK_NULL); + check_equal(track->id, i % 24); + } + test :: success(); + test :: equal(q.size(), (unsigned)24); +} + int main(int argc, char **argv) { test :: cp_library(); @@ -233,5 +294,6 @@ int main(int argc, char **argv) run_test("Queue Flag Test", test_flags); run_test("Queue Add and Remove Test", test_add_remove); run_test("Queue Track Updated Test", test_updated); + run_test("Queue Pick Next Test", test_next); return 0; } From 9a5caa29b33206c149bc0a9f125be3d38b5a923c Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sun, 18 May 2014 14:11:21 -0400 Subject: [PATCH 53/93] queue: Update sorting code I now have a single function rather than 4 individual functions. The code is cleaner, and I've added it to the unit test. Signed-off-by: Anna Schumaker --- Sconstruct | 2 +- gui/main.cpp | 1 + gui/tabs.cpp | 6 +-- include/queue.h | 12 +----- lib/audio.cpp | 3 +- lib/deck.cpp | 26 ++++++----- lib/playlist.cpp | 6 +-- lib/queue.cpp | 109 ++++++++++++----------------------------------- tests/queue.cpp | 43 ++++++++++++++++++- 9 files changed, 93 insertions(+), 115 deletions(-) diff --git a/Sconstruct b/Sconstruct index 2ef52ca3..b00961af 100644 --- a/Sconstruct +++ b/Sconstruct @@ -41,7 +41,7 @@ gui = SConscript("gui/Sconscript") tests = SConscript("tests/Sconscript") -ocarina = env.Program("bin/ocarina", lib + gui, LIBS="y") +ocarina = env.Program("bin/ocarina", lib + gui) Default(ocarina) Clean(ocarina, "bin/") diff --git a/gui/main.cpp b/gui/main.cpp index 7f25a63f..fb446036 100644 --- a/gui/main.cpp +++ b/gui/main.cpp @@ -3,6 +3,7 @@ */ #include #include +#include #include #include #include diff --git a/gui/tabs.cpp b/gui/tabs.cpp index 25a4f825..8cd102ab 100644 --- a/gui/tabs.cpp +++ b/gui/tabs.cpp @@ -106,7 +106,7 @@ bool Tab :: tab_is_cur() void Tab :: tab_runtime_changed() { if (tab_is_cur()) - get_widget("o_queue_time")->set_text(tab_pq->get_length_str()); + get_widget("o_queue_time")->set_text(tab_pq->length_str()); } void Tab :: tab_display_sorting() @@ -314,9 +314,9 @@ void Tab :: on_column_clicked(unsigned int col) { if (tab_sorting_count == 0) { tab_sorting_title = tab_treeview->get_column(col)->get_title(); - tab_pq->reset_sort(sort_fields[col]); + tab_pq->sort(sort_fields[col], true); } else - tab_pq->add_sort(sort_fields[col]); + tab_pq->sort(sort_fields[col], false); tab_sorting_count++; tab_display_sorting(); diff --git a/include/queue.h b/include/queue.h index 0f5b2711..63432784 100644 --- a/include/queue.h +++ b/include/queue.h @@ -28,7 +28,7 @@ struct sort_info { class Queue { protected: std :: vector _tracks; - std :: list _sort_order; + std :: vector _sort_order; unsigned int _cur; unsigned int _flags; unsigned int _length; @@ -36,7 +36,6 @@ protected: unsigned int find_sorted_id(Track *); unsigned int _add_at(Track *, unsigned int); void _del_at(Track *, unsigned int); - void _add_sort(sort_t, bool); public: Queue(); @@ -59,17 +58,10 @@ public: const std::string size_str(); const std::string length_str(); - void add_sort(sort_t, bool ascending = true); - void reset_sort(sort_t, bool ascending = true); - void force_clear_sort(); - std::list &get_sort_order(); + void sort(sort_t, bool); Track *operator[](unsigned int); - void set_cur(unsigned int); void path_selected(unsigned int); -#ifdef CONFIG_TEST - void reset(); -#endif /* CONFIG_TEST */ }; #endif /* OCARINA_QUEUE_H */ diff --git a/lib/audio.cpp b/lib/audio.cpp index 6babf4f0..2eda3617 100644 --- a/lib/audio.cpp +++ b/lib/audio.cpp @@ -32,6 +32,7 @@ public: unsigned int add(Track *track) { del(track); + _cur = 0; return _add_at(track, 0); } }; @@ -214,7 +215,6 @@ void audio :: next() cur_trackid = track->id; save_state(); o_recently_played.add(track); - o_recently_played.set_cur(0); } void audio :: previous() @@ -247,7 +247,6 @@ void audio :: load_trackid(unsigned int track_id) cur_trackid = track_id; save_state(); o_recently_played.add(track); - o_recently_played.set_cur(0); } unsigned int audio :: current_trackid() diff --git a/lib/deck.cpp b/lib/deck.cpp index 162dc35f..b3a2528e 100644 --- a/lib/deck.cpp +++ b/lib/deck.cpp @@ -32,9 +32,9 @@ void deck :: init() { library_playqueue.set_flag(Q_REPEAT); library_playqueue.set_flag(Q_DISABLE_CHANGED_SIZE); - library_playqueue.add_sort(SORT_ARTIST); - library_playqueue.add_sort(SORT_YEAR); - library_playqueue.add_sort(SORT_TRACK); + library_playqueue.sort(SORT_ARTIST, true); + library_playqueue.sort(SORT_YEAR, false); + library_playqueue.sort(SORT_TRACK, false); read(); get_callbacks()->on_playlist_ban = del_library_track; @@ -58,13 +58,11 @@ void deck :: read() deck_file.open(OPEN_READ); deck_file >> random >> num; - library_playqueue.force_clear_sort(); for (unsigned int i = 0; i < num; i++) { deck_file >> field >> ascending; - if (i == 0) - library_playqueue.reset_sort((sort_t)field, ascending); - else - library_playqueue.add_sort((sort_t)field, ascending); + library_playqueue.sort((sort_t)field, i == 0); + if (!ascending) + library_playqueue.sort((sort_t)field, false); } deck_file >> num; @@ -85,17 +83,17 @@ void deck :: read() void deck :: write() { std::list::iterator it; - std::list::iterator st; - std::list sort_order; + //std::list::iterator st; + //std::list sort_order; deck_file.open(OPEN_WRITE); /* Save library playqueue */ - sort_order = library_playqueue.get_sort_order(); + //sort_order = library_playqueue.get_sort_order(); deck_file << library_playqueue.has_flag(Q_RANDOM) << " "; - deck_file << sort_order.size() << " "; - for (st = sort_order.begin(); st != sort_order.end(); st++) - deck_file << st->field << " " << st->ascending << " "; + deck_file << 0 /* sort_order.size() */ << " "; + //for (st = sort_order.begin(); st != sort_order.end(); st++) + // deck_file << st->field << " " << st->ascending << " "; deck_file << playqueue_deck.size() << std :: endl; for (it = playqueue_deck.begin(); it != playqueue_deck.end(); it++) { diff --git a/lib/playlist.cpp b/lib/playlist.cpp index 8f902e72..16dfcbe0 100644 --- a/lib/playlist.cpp +++ b/lib/playlist.cpp @@ -21,9 +21,9 @@ void playlist :: init() std::set ids; std::set::iterator it; - playlist_pq.add_sort(SORT_ARTIST); - playlist_pq.add_sort(SORT_YEAR); - playlist_pq.add_sort(SORT_TRACK); + playlist_pq.sort(SORT_ARTIST, true); + playlist_pq.sort(SORT_YEAR, false); + playlist_pq.sort(SORT_TRACK, false); get_callbacks()->on_library_import_ban = import_ban_track; diff --git a/lib/queue.cpp b/lib/queue.cpp index ed1053e1..5841d01a 100644 --- a/lib/queue.cpp +++ b/lib/queue.cpp @@ -59,34 +59,21 @@ bool Queue :: has_flag(queue_flags f) return (_flags & f) == (unsigned int)f; } -/* - * std::string.compare() returns - * 0: Strings are equal - * < 0: a < b - * > 0: a > b - */ -static inline int track_compare(Track *lhs, Track *rhs, sort_t field) +static bool track_less_than(Track *lhs, Track *rhs, + std::vector &order) { - int ret = lhs->less_than(rhs, field); - if (field == SORT_YEAR && ret == 0) - ret = lhs->less_than(rhs, SORT_ALBUM); - return ret; -} - -static bool track_less_than(Track *lhs, Track *rhs, std::list &order) -{ - std::list::iterator it; int res; - for (it = order.begin(); it != order.end(); it++) { - if (it->ascending == true) - res = track_compare(lhs, rhs, it->field); + for (unsigned int i = 0; i < order.size(); i++) { + if (order[i].ascending == true) + res = lhs->less_than(rhs, order[i].field); else - res = track_compare(rhs, lhs, it->field); - if (res != 0) - return res < 0; + res = rhs->less_than(lhs, order[i].field); + if (res == 0) + continue; + break; } - return res; + return res < 0; } unsigned int Queue :: find_sorted_id(Track *rhs) @@ -221,48 +208,37 @@ const std::string Queue :: length_str() return ss.str(); } - - -/* Sorting function */ class SortTracks { -private: - std::list fields; public: - SortTracks(std::list f) : fields(f) {} - bool operator()(Track *a, Track *b) + std::vector fields; + SortTracks(std::vector f) : fields(f) {} + bool operator()(Track *lhs, Track *rhs) { - Track *lhs = a; - Track *rhs = b; return track_less_than(lhs, rhs, fields); } }; -void Queue :: _add_sort(sort_t field, bool ascending) +void Queue :: sort(sort_t field, bool reset) { - struct sort_info info; - std::list::iterator it; + bool found = false; + struct sort_info info = { field, true }; - /* Is field already in the sort_order? */ - for (it = _sort_order.begin(); it != _sort_order.end(); it++) { - if (it->field == field) { - it->ascending = !it->ascending; - return; + if (_flags & Q_NO_SORT) + return; + if (reset) + _sort_order.clear(); + + for (unsigned int i = 0; i < _sort_order.size(); i++) { + if (_sort_order[i].field == info.field) { + _sort_order[i].ascending = !_sort_order[i].ascending; + found = true; + break; } } - info.field = field; - info.ascending = ascending; - _sort_order.push_back(info); - if (_sort_order.size() >= 4) - _sort_order.erase(_sort_order.begin()); -} + if (!found) + _sort_order.push_back(info); -void Queue :: add_sort(sort_t field, bool ascending) -{ - if (_flags & Q_NO_SORT) - return; - - _add_sort(field, ascending); std::stable_sort(_tracks.begin(), _tracks.end(), SortTracks(_sort_order)); for (unsigned int i = 0; i < _tracks.size(); i++) @@ -270,35 +246,14 @@ void Queue :: add_sort(sort_t field, bool ascending) get_callbacks()->on_queue_changed(); } -void Queue :: reset_sort(sort_t field, bool ascending) -{ - if (_flags & Q_NO_SORT) - return; - if (_sort_order.front().field != field) - _sort_order.clear(); - add_sort(field, ascending); -} -void Queue :: force_clear_sort() -{ - _sort_order.clear(); -} -std::list &Queue :: get_sort_order() -{ - return _sort_order; -} Track *Queue :: operator[](unsigned int i) { return _tracks[i]; } -void Queue :: set_cur(unsigned int c) -{ - _cur = c; -} - void Queue :: path_selected(unsigned int id) { _cur = id; @@ -307,11 +262,3 @@ void Queue :: path_selected(unsigned int id) _cur--; } } - -#ifdef CONFIG_TEST -void Queue :: reset() -{ - _tracks.clear(); - set_cur(0); -} -#endif /* CONFIG_TEST */ diff --git a/tests/queue.cpp b/tests/queue.cpp index 88f0c118..8f6c6190 100644 --- a/tests/queue.cpp +++ b/tests/queue.cpp @@ -23,7 +23,7 @@ public: unsigned int get_cur() { return _cur; } unsigned int get_flags() { return _flags; } unsigned int get_length() { return _length; } - std::list get_sorder() { return _sort_order; }; + std::vector get_sorder() { return _sort_order; }; }; void test_add_cb_noop(Queue *q, unsigned int id) { } @@ -284,6 +284,46 @@ void test_next() test :: equal(q.size(), (unsigned)24); } +unsigned int exp_sort_title[] = { 1, 18, 19, 16, 20, 8, 2, 9, 23, 10, 17, 11, + 3, 21, 4, 0, 5, 22, 6, 12, 7, 13, 14, 15 }; +unsigned int exp_sort_ye_ti[] = { 0, 3, 2, 1, 7, 6, 5, 4, 11, 10, 9, 8, + 22, 21, 17, 23, 20, 16, 19, 18, 15, 14, 13, 12 }; + +void test_sorting() +{ + TestQueue q(0); + + q.sort(SORT_TITLE, true); + test_equal(q.get_sorder().size(), (size_t)1); + test_fill_q(&q); + test :: begin(); + for (unsigned int i = 0; i < 24; i++) + check_equal(q[i]->id, exp_sort_title[i]); + test :: success(); + + q.sort(SORT_TITLE, false); + test_equal(q.get_sorder().size(), (size_t)1); + test :: begin(); + for (unsigned int i = 0; i < 24; i++) + check_equal(q[i]->id, exp_sort_title[23 - i]); + test :: success(); + + q.sort(SORT_LENGTH, true); + test :: begin(); + for (unsigned int i = 0; i < 24; i++) + check_equal(q[i]->id, i); + test :: success(); + + q.sort(SORT_YEAR, true); + q.sort(SORT_TITLE, false); + q.sort(SORT_TITLE, false); + test_equal(q.get_sorder().size(), (size_t)2); + test :: begin(); + for (unsigned int i = 0; i < 24; i++) + check_equal(q[i]->id, exp_sort_ye_ti[i]); + test :: success(); +} + int main(int argc, char **argv) { test :: cp_library(); @@ -295,5 +335,6 @@ int main(int argc, char **argv) run_test("Queue Add and Remove Test", test_add_remove); run_test("Queue Track Updated Test", test_updated); run_test("Queue Pick Next Test", test_next); + run_test("Queue Sorting Test", test_sorting); return 0; } From 869d67558eb84486f8a876d9cdf1b5bbe42bfbdb Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sun, 18 May 2014 14:24:46 -0400 Subject: [PATCH 54/93] queue: Update the track_selected code I also put in other fixes to the unit test to make test_equal work. Signed-off-by: Anna Schumaker --- include/queue.h | 3 +-- lib/queue.cpp | 7 ++---- tests/queue.cpp | 65 +++++++++++++++++++++++++++++++------------------ tests/test.h | 2 +- 4 files changed, 45 insertions(+), 32 deletions(-) diff --git a/include/queue.h b/include/queue.h index 63432784..53d6d908 100644 --- a/include/queue.h +++ b/include/queue.h @@ -59,9 +59,8 @@ public: const std::string length_str(); void sort(sort_t, bool); - Track *operator[](unsigned int); - void path_selected(unsigned int); + void track_selected(unsigned int); }; #endif /* OCARINA_QUEUE_H */ diff --git a/lib/queue.cpp b/lib/queue.cpp index 5841d01a..32a6ed87 100644 --- a/lib/queue.cpp +++ b/lib/queue.cpp @@ -246,18 +246,15 @@ void Queue :: sort(sort_t field, bool reset) get_callbacks()->on_queue_changed(); } - - - Track *Queue :: operator[](unsigned int i) { return _tracks[i]; } -void Queue :: path_selected(unsigned int id) +void Queue :: track_selected(unsigned int id) { _cur = id; - if (!(_flags &Q_REPEAT)) { + if (has_flag(Q_REPEAT) == false) { del(_cur); _cur--; } diff --git a/tests/queue.cpp b/tests/queue.cpp index 8f6c6190..d455daa1 100644 --- a/tests/queue.cpp +++ b/tests/queue.cpp @@ -34,42 +34,42 @@ void test_default() { TestQueue q; - test :: equal(q.get_cur(), (unsigned)-1); - test :: equal(q.get_flags(), (unsigned)0); - test :: equal(q.get_length(), (unsigned)0); - test :: equal(q.get_sorder().size(), (size_t)0); - test :: equal(q.next(), (Track *)NULL); + test_equal(q.get_cur(), (unsigned)-1); + test_equal(q.get_flags(), (unsigned)0); + test_equal(q.get_length(), (unsigned)0); + test_equal(q.get_sorder().size(), (size_t)0); + test_equal(q.next(), (Track *)NULL); } void test_constructor(unsigned int flags) { TestQueue q(flags | (1 << 30)); - test :: equal(q.get_cur(), (unsigned)-1); - test :: equal(q.get_flags(), flags); - test :: equal(q.get_length(), (unsigned)0); - test :: equal(q.get_sorder().size(), (size_t)0); - test :: equal(q.next(), (Track *)NULL); + test_equal(q.get_cur(), (unsigned)-1); + test_equal(q.get_flags(), flags); + test_equal(q.get_length(), (unsigned)0); + test_equal(q.get_sorder().size(), (size_t)0); + test_equal(q.next(), (Track *)NULL); } void test_flags() { TestQueue q(0); - test :: equal(q.get_flags(), (unsigned)0); + test_equal(q.get_flags(), (unsigned)0); q.set_flag(Q_ENABLED); - test :: equal(q.get_flags(), (unsigned)Q_ENABLED); + test_equal(q.get_flags(), (unsigned)Q_ENABLED); q.unset_flag(Q_ENABLED); - test :: equal(q.get_flags(), (unsigned)0); + test_equal(q.get_flags(), (unsigned)0); q.set_flag(Q_REPEAT); q.set_flag(Q_RANDOM); - test :: equal(q.has_flag(Q_ENABLED), false); - test :: equal(q.has_flag(Q_RANDOM), true); - test :: equal(q.has_flag(Q_REPEAT), true); - test :: equal(q.has_flag(Q_NO_SORT), false); + test_equal(q.has_flag(Q_ENABLED), false); + test_equal(q.has_flag(Q_RANDOM), true); + test_equal(q.has_flag(Q_REPEAT), true); + test_equal(q.has_flag(Q_NO_SORT), false); } void test_add_cb(Queue *q, unsigned int id) @@ -250,9 +250,9 @@ void test_next() check_equal(track->id, i); } test :: success(); - test :: equal(q.size(), (unsigned)0); - test :: equal(q.length_str(), (std::string)""); - test :: equal(q.next(), TRACK_NULL); + test_equal(q.size(), (unsigned)0); + test_equal(q.length_str(), (std::string)""); + test_equal(q.next(), TRACK_NULL); q.set_flag(Q_RANDOM); @@ -266,9 +266,9 @@ void test_next() check_equal(track->id, expected_rand[i]); } test :: success(); - test :: equal(q.size(), (unsigned)0); - test :: equal(q.length_str(), (std::string)""); - test :: equal(q.next(), TRACK_NULL); + test_equal(q.size(), (unsigned)0); + test_equal(q.length_str(), (std::string)""); + test_equal(q.next(), TRACK_NULL); q.set_flag(Q_REPEAT); @@ -281,7 +281,23 @@ void test_next() check_equal(track->id, i % 24); } test :: success(); - test :: equal(q.size(), (unsigned)24); + test_equal(q.size(), (unsigned)24); +} + +void test_select() +{ + TestQueue q(0); + test_fill_q(&q); + + test_equal(q.size(), (unsigned)24); + q.track_selected(10); + test_equal(q.size(), (unsigned)23); + test_equal(q.next()->id, (unsigned)11); + + q.set_flag(Q_REPEAT); + q.track_selected(0); + test_equal(q.size(), (unsigned)22); + test_equal(q.next()->id, (unsigned)1); } unsigned int exp_sort_title[] = { 1, 18, 19, 16, 20, 8, 2, 9, 23, 10, 17, 11, @@ -335,6 +351,7 @@ int main(int argc, char **argv) run_test("Queue Add and Remove Test", test_add_remove); run_test("Queue Track Updated Test", test_updated); run_test("Queue Pick Next Test", test_next); + run_test("Queue Select Track Test", test_select); run_test("Queue Sorting Test", test_sorting); return 0; } diff --git a/tests/test.h b/tests/test.h index 9dfb4d8b..07cb35b2 100644 --- a/tests/test.h +++ b/tests/test.h @@ -69,7 +69,7 @@ namespace test } template - void equal(const T &lhs, const T &rhs, unsigned int line = 0) + void equal(const T &lhs, const T &rhs, unsigned int line) { begin(); check_equal(lhs, rhs, line); From b9e5ce33562b98ece68881878989dd048a84cbff Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sun, 18 May 2014 14:39:20 -0400 Subject: [PATCH 55/93] queue: Update reand and write code And update the unit test at the same time. Signed-off-by: Anna Schumaker --- lib/queue.cpp | 3 ++- tests/queue.cpp | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/lib/queue.cpp b/lib/queue.cpp index 32a6ed87..50cd64fa 100644 --- a/lib/queue.cpp +++ b/lib/queue.cpp @@ -30,7 +30,7 @@ void Queue :: write(File &f) { f << _flags << " " << _tracks.size(); for (unsigned int i = 0; i < _tracks.size(); i++) - f << " " << _tracks[i]; + f << " " << _tracks[i]->id; } void Queue :: read(File &f) @@ -41,6 +41,7 @@ void Queue :: read(File &f) for (unsigned int i = 0; i < n; i++) { f >> id; _tracks[i] = tagdb :: lookup(id); + _length += _tracks[i]->length; } } diff --git a/tests/queue.cpp b/tests/queue.cpp index d455daa1..4bbb56c7 100644 --- a/tests/queue.cpp +++ b/tests/queue.cpp @@ -340,6 +340,37 @@ void test_sorting() test :: success(); } +void test_saving() +{ + TestQueue q(Q_RANDOM); + TestQueue r(0); + File f("test.q"); + + test_fill_q(&q); + + test :: begin(); + f.open(OPEN_WRITE); + q.write(f); + f.close(); + test :: success(); + + test :: begin(); + f.open(OPEN_READ); + r.read(f); + f.close(); + test :: success(); + + test_equal(r.has_flag(Q_RANDOM), q.has_flag(Q_RANDOM)); + test_equal(r.size(), q.size()); + test_equal(r.size_str(), q.size_str()); + test_equal(r.length_str(), q.length_str()); + + test :: begin(); + for (unsigned int i = 0; i < q.size(); i++) + check_equal(r[i]->id, q[i]->id); + test :: success(); +} + int main(int argc, char **argv) { test :: cp_library(); @@ -353,5 +384,6 @@ int main(int argc, char **argv) run_test("Queue Pick Next Test", test_next); run_test("Queue Select Track Test", test_select); run_test("Queue Sorting Test", test_sorting); + run_test("Queue Save and Load Test", test_saving); return 0; } From f6306faac8992660f9f8b3cf40511cb71d7b2ccc Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sun, 18 May 2014 14:45:47 -0400 Subject: [PATCH 56/93] queue: Remove old unit test Also take a few moments to update the DESIGN. Signed-off-by: Anna Schumaker --- DESIGN | 51 ++++---- tests/playqueue/Sconscript | 6 - tests/playqueue/playqueue.cpp | 222 --------------------------------- tests/playqueue/playqueue.good | 121 ------------------ 4 files changed, 27 insertions(+), 373 deletions(-) delete mode 100644 tests/playqueue/Sconscript delete mode 100644 tests/playqueue/playqueue.cpp delete mode 100644 tests/playqueue/playqueue.good diff --git a/DESIGN b/DESIGN index 630b4cba..c018d4b6 100644 --- a/DESIGN +++ b/DESIGN @@ -1,16 +1,16 @@ =============================================================================== = = -= Ocarina 6.0 = += Ocarina 6.1 = = = =============================================================================== -Ocarina 6.0 is the 6th implementation of the Ocarina music player - a +Ocarina 6.1 is the 6th implementation of the Ocarina music player - a lightweight, GTK+ based music player with all the features that I want. Improvements over the 5.x series will include the existence of both a design document (this file) and unit tests. This should make maintenance easier and help me stay focused. -Ocarina 6.0 will use Gstreamer 1.0 for audio playback, GTK-MM 3 for user +Ocarina 6.1 will use Gstreamer 1.0 for audio playback, GTK-MM 3 for user interface development, and Taglib for extracting tags. @@ -893,14 +893,14 @@ Queue: void del(Track *); void del(unsigned int); void updated(Track *); + Track *next(); unsigned int size(); const std::string size_str(); const std::string length_str(); - void sort(sort_t, bool, bool); - - Track *next(); + void sort(sort_t, bool); + Track *operator[](unsigned int); void track_selected(unsigned int); }; @@ -946,22 +946,6 @@ File Format: Find all indexes of the updated track and notify the UI that it has changed. - unsigned int Queue :: size(); - Return the number of tracks currently on the queue. - - const std::string Queue :: size_str(); - Return the number of tracks currently on the queue, in string - form. - - const std::string Queue :: length_str(); - Return the remaining length of the queue in a human-readable - format. - - void Queue :: sort(sort_t field, bool ascending, bool reset); - Add a new sort field to the end of the sort order, then - resort the queue. If reset is set to true, clear the sorting - list before appending. - Track *Queue :: next(); Return the next track to play. @@ -981,6 +965,26 @@ File Format: del(_cur); return track; + unsigned int Queue :: size(); + Return the number of tracks currently on the queue. + + const std::string Queue :: size_str(); + Return the number of tracks currently on the queue, in string + form. + + const std::string Queue :: length_str(); + Return the remaining length of the queue in a human-readable + format. + + void Queue :: sort(sort_t field, bool reset); + If the field is already in the sort order, toggle its + ascending value. Otherwise, add a new sort field to the end + of the sort order with ascending set to true. If reset is set + to true, clear the sorting list before appending. + + Track *Queue :: operator[](unsigned int i); + Return the track and index i. + void Queue :: track_selected(unsigned int queue_id); Set _cur to queue_id. If PQ_REPEAT is not set, remove the track from the queue. @@ -992,7 +996,6 @@ File Format: - - library queue should be set to the default sort order The default sort order is (SORT_ARTIST, true), (SORT_YEAR, true), (SORT_TRACK, true). @@ -1100,7 +1103,7 @@ Library: (lib/library.cpp) Playlists: (lib/playlist.cpp) Playlists are a new feature in Ocarina 6 and are modeled after Gmail - labels. Ocarina 6.0 will support two different playlists that the + labels. Ocarina 6.1 will support two different playlists that the user can add tracks to: banned and favorites. Future releases will add support for more playlists. diff --git a/tests/playqueue/Sconscript b/tests/playqueue/Sconscript deleted file mode 100644 index f179ea30..00000000 --- a/tests/playqueue/Sconscript +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/python -Import("Test", "CONFIG") - -CONFIG.PLAYQUEUE = True - -Test("playqueue", "playqueue.cpp") diff --git a/tests/playqueue/playqueue.cpp b/tests/playqueue/playqueue.cpp deleted file mode 100644 index 4ec18e3b..00000000 --- a/tests/playqueue/playqueue.cpp +++ /dev/null @@ -1,222 +0,0 @@ -/* - * Copyright 2013 (c) Anna Schumaker. - */ -#include -#include -#include - -#include -#include - -void test_flags(const std :: string &test, Playqueue &pqueue, unsigned int expected) -{ - print("Test %s: ", test.c_str()); - if (pqueue.get_flags() == expected) - print("SUCCESS\n"); - else - print("FAILED\n"); -} - -void test_add_tracks(const std :: string & test, Playqueue &pqueue, - unsigned int start, unsigned int end) -{ - bool passed = true; - print("Test %s: ", test.c_str()); - for (unsigned int i = start; i <= end; i++) { - if (pqueue.add(i) != (i - start)) - passed = false; - } - - if (passed == true) - print("SUCCESS\n"); - else - print("FAILED\n"); -} - -void test_add_tracks_front(const std :: string &test, Playqueue &pqueue, - unsigned int n) -{ - bool passed = true; - - print("Test %s: ", test.c_str()); - for (unsigned int i = 0; i < n; i++) { - if (pqueue.add_front(i) != 0) - passed = false; - } - - if (passed == true) - print("SUCCESS\n"); - else - print("FAILED\n"); -} - -void test_rm_tracks(const std :: string & test, Playqueue & pqueue, unsigned int n) -{ - unsigned int size = pqueue.size(); - unsigned int expected = size - n; - - print("Test %s: ", test.c_str()); - - for (unsigned int i = 0; i < n; i++) - pqueue.del(i); - - if (pqueue.size() == expected) - print("SUCCESS\n"); - else - print("FAILED\n"); -} - -void test_pqueue_status(const std :: string &test, Playqueue &pqueue) -{ - print("Test %s: size: %u, length: %u\n", test.c_str(), - pqueue.size(), pqueue.get_length()); -} - -/* Test flag setting / unsetting / getting */ -void test_0() -{ - Playqueue pqueue(PQ_ENABLED); - - test_flags("0a", pqueue, PQ_ENABLED); - pqueue.set_flag(PQ_RANDOM); - test_flags("0b", pqueue, PQ_ENABLED | PQ_RANDOM); - pqueue.set_flag(PQ_ENABLED); - test_flags("0c", pqueue, PQ_ENABLED | PQ_RANDOM); - pqueue.unset_flag(PQ_ENABLED); - test_flags("0d", pqueue, PQ_RANDOM); - pqueue.unset_flag(PQ_RANDOM); - test_flags("0f", pqueue, 0); - print("\n"); -} - -/* Test adding / deleting / size queries */ -void test_1() -{ - Playqueue pqueue(PQ_ENABLED); - test_add_tracks("1a", pqueue, 10, 49); - test_pqueue_status("1b", pqueue); - test_rm_tracks("1c", pqueue, 10); - test_pqueue_status("1d", pqueue); - test_add_tracks_front("1e", pqueue, 5); - test_pqueue_status("1f", pqueue); - print("\n"); -} - -/* Test read / write */ -void test_2() -{ - Playqueue pqueue(PQ_ENABLED); - Playqueue pqueue2(PQ_ENABLED); - - File f("pqueue.lst", FILE_TYPE_DATA); - - pqueue.set_flag(PQ_RANDOM); - test_add_tracks("2a", pqueue, 0, 99); - - f.open(OPEN_WRITE); - pqueue.write(f); - f.close(); - - f.open(OPEN_READ); - pqueue2.read(f); - f.close(); - - print("Test 2b: "); - if (pqueue.get_flags() != pqueue2.get_flags()) { - print("FAILED: flag mismatch\n"); - return; - } else if (pqueue.size() != pqueue2.size()) { - print("FAILED: size mismatch\n"); - return; - } - - print("SUCCESS\n\n"); -} - -/* Sequential next() without removing tracks */ -void test_3() -{ - Playqueue pqueue(PQ_ENABLED); - pqueue.set_flag(PQ_REPEAT); - test_add_tracks("3a", pqueue, 0, 15); - for (unsigned int i = 0; i < 25; i++) { - print("Selecting id: %u\n", pqueue.next()); - if (i == 4) - pqueue.set_cur(0); - } - test_pqueue_status("3b", pqueue); - print("\n"); -} - -/* Sequential next() with removal */ -void test_4() -{ - Playqueue pqueue(PQ_ENABLED); - test_add_tracks("4a", pqueue, 0, 15); - while (pqueue.size() > 0) - print("Selecting id: %u\n", pqueue.next()); - test_pqueue_status("4b", pqueue); - print("\n"); -} - -/* Random next() without removing tracks */ -void test_5() -{ - Playqueue pqueue(PQ_ENABLED); - pqueue.set_flag(PQ_RANDOM); - pqueue.set_flag(PQ_REPEAT); - test_add_tracks("5a", pqueue, 0, 15); - for (unsigned int i = 0; i < 30; i++) - print("Selecting id: %u\n", pqueue.next()); - test_pqueue_status("5b", pqueue); - print("\n"); -} - -/* Random next() with removal */ -void test_6() -{ - Playqueue pqueue(PQ_ENABLED); - pqueue.set_flag(PQ_RANDOM); - test_add_tracks("6a", pqueue, 0, 15); - while (pqueue.size() > 0) - print("Selecting id: %u\n", pqueue.next()); - test_pqueue_status("6b", pqueue); - print("\n"); -} - -void test_7() -{ - char test[] = "7a"; - Playqueue pqueue(PQ_ENABLED); - - for (unsigned int i = 0; i < 60; i++) - pqueue.add(i % 15); - test_pqueue_status(test, pqueue); - - for (unsigned int i = 0; i < 15; i++) { - pqueue.del_track(i); - if ((i + 1) % 3 == 0) { - test[1]++; - test_pqueue_status(test, pqueue); - } - } -} - -int main(int argc, char **argv) -{ - srand(42); - library :: init(); - library :: reset(); - library :: add_path("/tmp/library/0"); - while (idle :: run_task()); - - test_0(); - test_1(); - test_2(); - test_3(); - test_4(); - test_5(); - test_6(); - test_7(); - return 0; -} diff --git a/tests/playqueue/playqueue.good b/tests/playqueue/playqueue.good deleted file mode 100644 index 2bd5a7dc..00000000 --- a/tests/playqueue/playqueue.good +++ /dev/null @@ -1,121 +0,0 @@ -Test 0a: SUCCESS -Test 0b: SUCCESS -Test 0c: SUCCESS -Test 0d: SUCCESS -Test 0f: SUCCESS - -Test 1a: SUCCESS -Test 1b: size: 40, length: 5648 -Test 1c: SUCCESS -Test 1d: size: 30, length: 5284 -Test 1e: SUCCESS -Test 1f: size: 35, length: 6015 - -Test 2a: SUCCESS -Test 2b: SUCCESS - -Test 3a: SUCCESS -Selecting id: 0 -Selecting id: 1 -Selecting id: 2 -Selecting id: 3 -Selecting id: 4 -Selecting id: 1 -Selecting id: 2 -Selecting id: 3 -Selecting id: 4 -Selecting id: 5 -Selecting id: 6 -Selecting id: 7 -Selecting id: 8 -Selecting id: 9 -Selecting id: 10 -Selecting id: 11 -Selecting id: 12 -Selecting id: 13 -Selecting id: 14 -Selecting id: 15 -Selecting id: 0 -Selecting id: 1 -Selecting id: 2 -Selecting id: 3 -Selecting id: 4 -Test 3b: size: 16, length: 2153 - -Test 4a: SUCCESS -Selecting id: 0 -Selecting id: 1 -Selecting id: 2 -Selecting id: 3 -Selecting id: 4 -Selecting id: 5 -Selecting id: 6 -Selecting id: 7 -Selecting id: 8 -Selecting id: 9 -Selecting id: 10 -Selecting id: 11 -Selecting id: 12 -Selecting id: 13 -Selecting id: 14 -Selecting id: 15 -Test 4b: size: 0, length: 0 - -Test 5a: SUCCESS -Selecting id: 6 -Selecting id: 11 -Selecting id: 13 -Selecting id: 15 -Selecting id: 4 -Selecting id: 11 -Selecting id: 1 -Selecting id: 6 -Selecting id: 14 -Selecting id: 6 -Selecting id: 9 -Selecting id: 1 -Selecting id: 7 -Selecting id: 8 -Selecting id: 9 -Selecting id: 12 -Selecting id: 1 -Selecting id: 2 -Selecting id: 5 -Selecting id: 9 -Selecting id: 13 -Selecting id: 14 -Selecting id: 0 -Selecting id: 2 -Selecting id: 10 -Selecting id: 14 -Selecting id: 0 -Selecting id: 1 -Selecting id: 7 -Selecting id: 8 -Test 5b: size: 16, length: 2153 - -Test 6a: SUCCESS -Selecting id: 1 -Selecting id: 2 -Selecting id: 4 -Selecting id: 9 -Selecting id: 10 -Selecting id: 11 -Selecting id: 0 -Selecting id: 5 -Selecting id: 7 -Selecting id: 8 -Selecting id: 13 -Selecting id: 15 -Selecting id: 6 -Selecting id: 12 -Selecting id: 14 -Selecting id: 3 -Test 6b: size: 0, length: 0 - -Test 7a: size: 60, length: 8572 -Test 7b: size: 48, length: 8288 -Test 7c: size: 36, length: 5608 -Test 7d: size: 24, length: 2964 -Test 7e: size: 12, length: 2644 -Test 7f: size: 0, length: 0 From 11df56139d39ceeecd48e12351fb5fe3f46b99fb Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sun, 18 May 2014 21:09:46 -0400 Subject: [PATCH 57/93] playlist: Update the design and unit test I updated the code to better match how I use playlists and to make sure that everything is tested. Signed-off-by: Anna Schumaker --- DESIGN | 119 +++++++++++++++++++----------- gui/collection.cpp | 2 +- gui/gui.cpp | 17 ++--- gui/main.cpp | 1 + gui/model.cpp | 2 +- gui/playlist.cpp | 4 +- gui/tabs.cpp | 2 +- include/callback.h | 5 -- include/playlist.h | 15 ++-- lib/callback.cpp | 4 - lib/deck.cpp | 2 - lib/playlist.cpp | 139 +++++++++++++++++------------------ tests/.gitignore | 1 + tests/Playlist/playlist.db | 6 ++ tests/Sconscript | 7 +- tests/playlist.cpp | 114 ++++++++++++++++++++++++++++ tests/playlist/Sconscript | 6 -- tests/playlist/playlist.cpp | 112 ---------------------------- tests/playlist/playlist.good | 7 -- tests/test.h | 7 ++ 20 files changed, 292 insertions(+), 280 deletions(-) create mode 100644 tests/Playlist/playlist.db create mode 100644 tests/playlist.cpp delete mode 100644 tests/playlist/Sconscript delete mode 100644 tests/playlist/playlist.cpp delete mode 100644 tests/playlist/playlist.good diff --git a/DESIGN b/DESIGN index c018d4b6..653a5e56 100644 --- a/DESIGN +++ b/DESIGN @@ -991,6 +991,81 @@ File Format: +Playlist: + Playlists are a new feature in Ocarina 6 and are modeled after Gmail + labels. Ocarina 6.1 will support two different playlists that the + user can add tracks to: banned and favorites. + + The playlist layer will maintain a queue that is used by the UI to + display tracks in a given playlist. This queue is inherited from + the base Queue class to provide extra features. + + Future releases will add support for more playlists. + +- Index: + Index playlist_db("playlist.db", true); + +- Queue: + class PlaylistQueue : public Queue { + public: + PlaylistQueue(); + fill(IndexEntry *); + }; + +- Default playlists: + Favorites: + The user will add music they really like to this playlist. + + Banned: + The user should add music they do not like to this playlist. + Tracks should be removed from the Library playqueue when they + are banned and added back to the playqueue when they are + un-banned. + +- PlaylistQueue API: + PlaylistQueue :: PlaylistQueue(); + Initialize a Queue with the flags Q_ENABLED, Q_REPEAT, and + Q_NO_SORT set. Default sorting order should be artist, year, + track. + + PlaylistQueue :: fill(IndexEntry *ent); + Remove all tracks in the queue and repopulate using ent. + +- API + void playlist :: init(): + Load the playlist index from file. + + void playlist :: add(Track *track, const std::string &name); + Add track->id to the playlist named "name" and return true. + Return false if the playlist does not exist. + + If "name" is the currently selected playlist, add the track + to the PlaylistQueue. + + void playlist :: del(Track *track, const std::string &name); + Remove track->id from the playlist named "name" and return true. + Return false if the playlist does not exist or if the track + is not in the playlist. + + If "name" is the currently selected playlist, remove the track + from the PlaylistQueue. + + bool playlist :: has(Track *track, const std::string &name); + Return true if the chosen playlist has the given track. + Return false otherwise. + + void playlist :: select(const std::string &name); + Change the currently displayed playlist to "name". + + const IndexEntry *playlist :: get_tracks(const std::string &name); + Return the IndexEntry represeting the requested playlist. + Return NULL if the requested playlist does not exist. + + Queue *playlist :: get_queue(); + Return the PlaylistQueue to the caller. + + + @@ -1101,50 +1176,6 @@ Library: (lib/library.cpp) -Playlists: (lib/playlist.cpp) - Playlists are a new feature in Ocarina 6 and are modeled after Gmail - labels. Ocarina 6.1 will support two different playlists that the - user can add tracks to: banned and favorites. - - Future releases will add support for more playlists. - -- Database: - Database playlist_db - -- Default playlists: - Favorites: - The user will add music they really like to this playlist. - - Banned: - The user should add music they do not like to this playlist. - Tracks should be removed from the Library playqueue when they - are banned and added back to the playqueue when they are - un-banned. - -- API - void playlist :: init(): - Load the playlist database. - - void playlist :: add(name, track_id); - Add the track_id to the playlist named "name". Save the - database to disk. - Throw -EEXIST if "name" does not exist. - - void playlist :: del(name, track_id); - Remove the track_id from the playlist named "name". Save the - database to disk. Attempting to remove a track_id that does - not exist is not an error. - Throw -EEXIST if "name" does not exist. - - const std::set &playlist :: get_tracks(name); - Return the set of tracks representing the requested group. - Throw -EEXIST if "name" does not exist. - - void playlist :: clear(); - This function only exists if CONFIG_TEST is enabled. Clear - (reset) the playlist database. - - Deck: (lib/deck.cpp) The playqueue deck is used to hold the temporary playqueues created by diff --git a/gui/collection.cpp b/gui/collection.cpp index a69fe4e8..a07b9b03 100644 --- a/gui/collection.cpp +++ b/gui/collection.cpp @@ -46,7 +46,7 @@ bool CollectionTab :: on_key_press_event(const std::string &key) tab_selected_ids(ids); for (unsigned int i = 0; i < ids.size(); i++) - playlist :: add("Banned", ids[i]); + playlist :: add(tagdb :: lookup(ids[i]), "Banned"); return true; } diff --git a/gui/gui.cpp b/gui/gui.cpp index 959e62f0..aee1e1fb 100644 --- a/gui/gui.cpp +++ b/gui/gui.cpp @@ -78,11 +78,8 @@ static void on_track_loaded(Track *track) set_label_text(album, "x-large", "From: " + track->album->name); duration->set_text(track->length_str); - std::set ids = playlist :: get_tracks("Banned"); - bool banned = ids.find(track->id) != ids.end(); - - ids = playlist :: get_tracks("Favorites"); - bool favorite = ids.find(track->id) != ids.end(); + bool banned = playlist :: has(track, "Banned"); + bool favorite = playlist :: has(track, "Favorites"); ban_connection.block(); fav_connection.block(); @@ -107,12 +104,12 @@ static void on_pause_count_changed(bool enabled, unsigned int count) static void on_ban_toggled() { - Gtk::ToggleButton *ban = get_widget("o_pan"); + Gtk::ToggleButton *ban = get_widget("o_ban"); if (ban->get_active() == true) - playlist :: add("Banned", audio::current_trackid()); + playlist :: add(tagdb :: lookup(audio :: current_trackid()), "Banned"); else - playlist :: del("Banned", audio::current_trackid()); + playlist :: del(tagdb :: lookup(audio::current_trackid()), "Banned"); } static void on_fav_toggled() @@ -120,9 +117,9 @@ static void on_fav_toggled() Gtk::ToggleButton *fav = get_widget("o_favorite"); if (fav->get_active() == true) - playlist :: add("Favorites", audio::current_trackid()); + playlist :: add(tagdb :: lookup(audio::current_trackid()), "Favorites"); else - playlist :: del("Favorites", audio::current_trackid()); + playlist :: del(tagdb :: lookup(audio::current_trackid()), "Favorites"); } diff --git a/gui/main.cpp b/gui/main.cpp index fb446036..d441020f 100644 --- a/gui/main.cpp +++ b/gui/main.cpp @@ -33,6 +33,7 @@ Gtk::Window *ocarina_init(int *argc, char ***argv) library::init(); playlist::init(); + playlist :: select("Favorites"); share_file("ocarina6.glade"); post_init_tabs(); audio::load_state(); diff --git a/gui/model.cpp b/gui/model.cpp index 2df9d69c..22b4ecf9 100644 --- a/gui/model.cpp +++ b/gui/model.cpp @@ -58,7 +58,7 @@ void QueueModel::on_row_changed(unsigned int row) void QueueModel::on_path_selected(const Gtk::TreePath &path) { audio :: load_trackid(path_to_id(path)); - queue->path_selected(path[0]); + queue->track_selected(path[0]); audio :: play(); } diff --git a/gui/playlist.cpp b/gui/playlist.cpp index 9f9d4500..6d452628 100644 --- a/gui/playlist.cpp +++ b/gui/playlist.cpp @@ -20,7 +20,7 @@ public: PlaylistTab :: PlaylistTab() - : Tab(playlist :: get_pq()) + : Tab(playlist :: get_queue()) { tab_search = get_widget("o_playlist_entry"); tab_treeview = get_widget("o_playlist_pq_treeview"); @@ -43,7 +43,7 @@ bool PlaylistTab :: on_key_press_event(const std::string &key) tab_selected_ids(ids); for (unsigned int i = 0; i < ids.size(); i++) - playlist :: del(current_playlist(), ids[i]); + playlist :: del(tagdb :: lookup(ids[i]), current_playlist()); return true; } diff --git a/gui/tabs.cpp b/gui/tabs.cpp index 8cd102ab..55e506a2 100644 --- a/gui/tabs.cpp +++ b/gui/tabs.cpp @@ -190,7 +190,7 @@ bool Tab :: tab_add_to_playlist(const std::string &playlist) tab_selected_ids(ids); for (unsigned int i = 0; i < ids.size(); i++) - playlist :: add(playlist, ids[i]); + playlist :: add(tagdb :: lookup(ids[i]), playlist); return true; } diff --git a/include/callback.h b/include/callback.h index e7397b53..d06b4a40 100644 --- a/include/callback.h +++ b/include/callback.h @@ -25,11 +25,6 @@ struct Callbacks { void (*on_library_track_add)(unsigned int); void (*on_library_track_del)(unsigned int); void (*on_library_track_updated)(unsigned int); - void (*on_library_import_ban)(unsigned int); - - /* Playlist callbacks */ - void (*on_playlist_ban)(unsigned int); - void (*on_playlist_unban)(unsigned int); /* Queue callbacks */ void (*on_queue_track_add)(Queue *, unsigned int); diff --git a/include/playlist.h b/include/playlist.h index c188aff6..abd491c3 100644 --- a/include/playlist.h +++ b/include/playlist.h @@ -4,25 +4,22 @@ #ifndef OCARINA_PLAYLIST_H #define OCARINA_PLAYLIST_H +#include #include -#include -#include #include namespace playlist { void init(); - void add(const std::string &, unsigned int); - void del(const std::string &, unsigned int); + bool has(Track *, const std::string &); + void add(Track *, const std::string &); + void del(Track *, const std::string &); void select(const std::string &); - const std::set &get_tracks(const std::string &); - Queue *get_pq(); + IndexEntry *get_tracks(const std::string &); + Queue *get_queue(); -#ifdef CONFIG_TEST - void clear(); -#endif /* CONFIG_TEST */ }; #endif /* OCARINA_PLAYLIST_H */ diff --git a/lib/callback.cpp b/lib/callback.cpp index f67054cd..2623c80d 100644 --- a/lib/callback.cpp +++ b/lib/callback.cpp @@ -27,10 +27,6 @@ static struct Callbacks callbacks = { .on_library_track_add = no_op, .on_library_track_del = no_op, .on_library_track_updated = no_op, - .on_library_import_ban = no_op, - - .on_playlist_ban = no_op, - .on_playlist_unban = no_op, .on_queue_track_add = no_op, .on_queue_track_del = no_op, diff --git a/lib/deck.cpp b/lib/deck.cpp index b3a2528e..58401f5e 100644 --- a/lib/deck.cpp +++ b/lib/deck.cpp @@ -37,8 +37,6 @@ void deck :: init() library_playqueue.sort(SORT_TRACK, false); read(); - get_callbacks()->on_playlist_ban = del_library_track; - get_callbacks()->on_playlist_unban = add_library_track; get_callbacks()->on_library_track_add = add_library_track; get_callbacks()->on_library_track_del = del_library_track; get_callbacks()->on_library_track_updated = change_library_track; diff --git a/lib/playlist.cpp b/lib/playlist.cpp index 16dfcbe0..2b971368 100644 --- a/lib/playlist.cpp +++ b/lib/playlist.cpp @@ -1,103 +1,96 @@ /* * Copyright 2013 (c) Anna Schumaker. */ -#include -#include -#include #include -static std::set empty_set; -static Index playlist_db("playlist.db", false); -static Queue playlist_pq(Q_ENABLED | Q_REPEAT | Q_NO_SORT); -static std::string cur_pq; -static void import_ban_track(unsigned int track_id) -{ - playlist :: add("Banned", track_id); -} +class PlaylistQueue : public Queue { +public: + + PlaylistQueue() : Queue(Q_ENABLED | Q_REPEAT) + { + sort(SORT_ARTIST, true); + sort(SORT_YEAR, false); + sort(SORT_TRACK, false); + set_flag(Q_NO_SORT); + } + + void fill(IndexEntry *ent) + { + std::set::iterator it; + + while (size() > 0) + del((unsigned)0); + + for (it = ent->values.begin(); it != ent->values.end(); it++) + add(tagdb :: lookup(*it)); + } + +}; + + +static Index playlist_db("playlist.db", true); +static PlaylistQueue playlist_q; +static std::string cur_plist; + void playlist :: init() { - std::set ids; - std::set::iterator it; - - playlist_pq.sort(SORT_ARTIST, true); - playlist_pq.sort(SORT_YEAR, false); - playlist_pq.sort(SORT_TRACK, false); - - get_callbacks()->on_library_import_ban = import_ban_track; - playlist_db.load(); +} - ids = get_tracks("Banned"); - for (it = ids.begin(); it != ids.end(); it++) - get_callbacks()->on_playlist_ban(*it); +bool playlist :: has(Track *track, const std::string &name) +{ + std::set::iterator it; + IndexEntry *ent = playlist_db.find(name); - if (cur_pq == "") + if (ent == NULL) + return false; + + it = ent->values.find(track->id); + return it != ent->values.end(); +} + +void playlist :: add(Track *track, const std::string &name) +{ + if (!( (name == "Banned") || (name == "Favorites") )) return; - ids = get_tracks(cur_pq); - for (it = ids.begin(); it != ids.end(); it++) - playlist_pq.add(tagdb :: lookup(*it)); + if (!has(track, name)) { + playlist_db.insert(name, track->id); + if (cur_plist == name) + playlist_q.add(track); + } } -void playlist :: add(const std::string &name, unsigned int track_id) +void playlist :: del(Track *track, const std::string &name) { - if ((name == "Banned") || (name == "Favorites")) { - playlist_db.insert(name, track_id); - playlist_db.save(); - if (name == cur_pq) - playlist_pq.add(tagdb :: lookup(track_id)); - if (name == "Banned") - get_callbacks()->on_playlist_ban(track_id); - } else - throw -E_EXIST; -} - -void playlist :: del(const std::string &name, unsigned int track_id) -{ - if ((name == "Banned") || (name == "Favorites")) { - playlist_db.remove(name, track_id); - playlist_db.save(); - if (name == cur_pq) - playlist_pq.del(tagdb :: lookup(track_id)); - if (name == "Banned") - get_callbacks()->on_playlist_unban(track_id); - } else - throw -E_EXIST; + playlist_db.remove(name, track->id); + if (cur_plist == name) + playlist_q.del(track); } void playlist :: select(const std::string &name) { - std::set ids = get_tracks(name); - std::set::iterator it; + IndexEntry *ent; - while (playlist_pq.size() > 0) - playlist_pq.del((unsigned)0); + if (cur_plist == name) + return; - for (it = ids.begin(); it != ids.end(); it++) - playlist_pq.add(tagdb :: lookup(*it)); - cur_pq = name; + ent = playlist_db.find(name); + if (ent == NULL) + return; + + playlist_q.fill(ent); + cur_plist = name; } -const std::set &playlist :: get_tracks(const std::string &name) +IndexEntry *playlist :: get_tracks(const std::string &name) { - if ((name == "Banned") || (name == "Favorites")) { - IndexEntry *it = playlist_db.find(name); - if (it != NULL) - return it->values; - return empty_set; - } - throw -E_EXIST; + return playlist_db.find(name); } -Queue *playlist :: get_pq() +Queue *playlist :: get_queue() { - return &playlist_pq; + return &playlist_q; } - -#ifdef CONFIG_TEST -void playlist :: clear() -{ -} -#endif /* CONFIG_TEST */ diff --git a/tests/.gitignore b/tests/.gitignore index 8bb107e7..f560deb8 100644 --- a/tests/.gitignore +++ b/tests/.gitignore @@ -7,3 +7,4 @@ idle tags random queue +playlist diff --git a/tests/Playlist/playlist.db b/tests/Playlist/playlist.db new file mode 100644 index 00000000..315bdfb2 --- /dev/null +++ b/tests/Playlist/playlist.db @@ -0,0 +1,6 @@ +0 +2 +1 Banned +4 0 1 2 3 +1 Favorites +8 16 17 18 19 20 21 22 23 diff --git a/tests/Sconscript b/tests/Sconscript index 6e485ff7..c6cf7c42 100644 --- a/tests/Sconscript +++ b/tests/Sconscript @@ -18,6 +18,7 @@ tests = [ ("tags.cpp", True, [], [ "taglib" ]), ("random.cpp", False, [ "random.cpp" ], []), ("queue.cpp", True, [ "callback.cpp", "random.cpp" ], []), + ("playlist.cpp", True, [], []), ] @@ -65,8 +66,8 @@ for src, lib, extra, pkgs in tests: name = "%s" % src.rsplit(".")[0] if lib == True: - lib_files += [ src ] - extra = lib_files + extra + lib_files += [ src ] + extra + extra = lib_files for p in pkgs: env.UsePackage(p) @@ -81,4 +82,4 @@ ignore.close(); Return("res") -##scripts = [ "playlist", "library", "deck", "audio", "gui" ] +##scripts = [ "library", "deck", "audio", "gui" ] diff --git a/tests/playlist.cpp b/tests/playlist.cpp new file mode 100644 index 00000000..ccf21a0a --- /dev/null +++ b/tests/playlist.cpp @@ -0,0 +1,114 @@ +/* + * Copyright 2013 (c) Anna Schumaker. + */ +#include +#include "test.h" + +static IndexEntry *IDX_NULL = NULL; +static Queue *Q_NULL = NULL; + +static void test_init() +{ + IndexEntry *ent; + Queue *q = playlist :: get_queue(); + + test_not_equal(q, Q_NULL); + test_equal(q->has_flag(Q_ENABLED), true); + test_equal(q->has_flag(Q_REPEAT), true); + test_equal(q->has_flag(Q_NO_SORT), true); + + tagdb :: init(); + playlist :: init(); + + ent = playlist :: get_tracks("Banned"); + test_equal(ent->values.size(), (size_t)4); + ent = playlist :: get_tracks("Favorites"); + test_equal(ent->values.size(), (size_t)8); + ent = playlist :: get_tracks("No Such Playlist"); + test_equal(ent, IDX_NULL); +} + +static void test_queue() +{ + Queue *q = playlist :: get_queue(); + + playlist :: select("Banned"); + test_equal(q->size(), (unsigned)4); + + playlist :: select("Favorites"); + test_equal(q->size(), (unsigned)8); +} + +static void test_add() +{ + IndexEntry *ent; + Queue *q = playlist :: get_queue(); + + playlist :: add(tagdb :: lookup(5), "Banned"); + ent = playlist :: get_tracks("Banned"); + test_equal(ent->values.size(), (size_t)5); + test_equal(q->size(), (unsigned)8); + + playlist :: add(tagdb :: lookup(16), "Favorites"); + playlist :: add(tagdb :: lookup(5), "Favorites"); + ent = playlist :: get_tracks("Favorites"); + test_equal(ent->values.size(), (size_t)9); + test_equal(q->size(), (unsigned)9); + + playlist :: add(tagdb :: lookup(6), "No Playlist"); + test_equal(playlist :: get_tracks("No Playlist"), IDX_NULL); +} + +static void test_delete() +{ + IndexEntry *ent; + Queue *q = playlist :: get_queue(); + + playlist :: del(tagdb :: lookup(5), "Banned"); + ent = playlist :: get_tracks("Banned"); + test_equal(ent->values.size(), (size_t)4); + test_equal(q->size(), (unsigned)9); + + playlist :: del(tagdb :: lookup(5), "Favorites"); + ent = playlist :: get_tracks("Favorites"); + test_equal(ent->values.size(), (size_t)8); + test_equal(q->size(), (unsigned)8); + + playlist :: del(tagdb :: lookup(6), "No Playlist"); + test_equal(playlist :: get_tracks("No Playlist"), IDX_NULL); +} + +static void test_has() +{ + test :: begin(); + for (unsigned int i = 0; i < 24; i++) { + Track *track = tagdb :: lookup(i); + if (i <= 3) + check_equal(playlist :: has(track, "Banned"), true); + else + check_equal(playlist :: has(track, "Banned"), false); + } + test :: success(); + + test :: begin(); + for (unsigned int i = 0; i < 24; i++) { + Track *track = tagdb :: lookup(i); + if (i >= 16) + check_equal(playlist :: has(track, "Favorites"), true); + else + check_equal(playlist :: has(track, "Favorites"), false); + } + test :: success(); +} + +int main(int argc, char **argv) +{ + test :: cp_playlist(); + + run_test("Playlist Initialization Test", test_init); + run_test("Playlist Queue Test", test_queue); + run_test("Playlist Add Test", test_add); + run_test("Playlist Delete Test", test_delete); + run_test("Playlist Has Test", test_has); + return 0; +} diff --git a/tests/playlist/Sconscript b/tests/playlist/Sconscript deleted file mode 100644 index 4c0ff2c3..00000000 --- a/tests/playlist/Sconscript +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/python -Import("Test", "CONFIG") - -CONFIG.PLAYLIST = True - -Test("playlist", "playlist.cpp") diff --git a/tests/playlist/playlist.cpp b/tests/playlist/playlist.cpp deleted file mode 100644 index 47ad6f87..00000000 --- a/tests/playlist/playlist.cpp +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Copyright 2013 (c) Anna Schumaker. - */ -#include -#include -#include - - -void list_tracks(const std::string &name) -{ - std::set tracks = playlist :: get_tracks(name); - std::set::iterator it; - - print("Playlist \"%s\": ", name.c_str()); - for (it = tracks.begin(); it != tracks.end(); it++) { - if (it != tracks.begin()) - print(", "); - print("%u", *it); - } - - print("\n"); -} - -void check_error(int expected, int error) -{ - if (expected != error) - print("Exception error: expected %d actual %d", expected, error); -} - -/* - * Add songs to different playlists - */ -void test_0() -{ - for (unsigned int i = 0; i < 128; i++) { - switch (i % 3) { - case 0: - playlist :: add("Banned", i); - break; - case 1: - playlist :: add("Favorites", i); - break; - default: - try { - playlist :: add("No Such Playlist", i); - } catch (int error) { - check_error(-E_EXIST, error); - } - } - } -} - -/* - * Find tracks in a playlist - */ -void test_1() -{ - list_tracks("Banned"); - list_tracks("Favorites"); - - try { - list_tracks("No Such Playlist"); - } catch (int error) { - check_error(-E_EXIST, error); - } -} - -/* - * Delete tracks from a playlist - */ -void test_2() -{ - print("\n"); - for (unsigned int i = 0; i < 30; i+=3) - playlist :: del("Banned", i); - list_tracks("Banned"); - - try { - playlist :: del("No Such Playlist", 2); - } catch (int error) { - check_error(-E_EXIST, error); - } -} - -/* - * Check persistence of playlists - */ -void test_3() -{ - print("\n"); - - playlist :: clear(); - playlist :: init(); - - list_tracks("Banned"); - list_tracks("Favorites"); - - try { - list_tracks("No Schu Playlist"); - } catch (int error) { - check_error(-E_EXIST, error); - } -} - -int main(int argc, char **argv) -{ - test_0(); - test_1(); - test_2(); - test_3(); - return 0; -} diff --git a/tests/playlist/playlist.good b/tests/playlist/playlist.good deleted file mode 100644 index 96e86e10..00000000 --- a/tests/playlist/playlist.good +++ /dev/null @@ -1,7 +0,0 @@ -Playlist "Banned": 0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99, 102, 105, 108, 111, 114, 117, 120, 123, 126 -Playlist "Favorites": 1, 4, 7, 10, 13, 16, 19, 22, 25, 28, 31, 34, 37, 40, 43, 46, 49, 52, 55, 58, 61, 64, 67, 70, 73, 76, 79, 82, 85, 88, 91, 94, 97, 100, 103, 106, 109, 112, 115, 118, 121, 124, 127 - -Playlist "Banned": 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99, 102, 105, 108, 111, 114, 117, 120, 123, 126 - -Playlist "Banned": 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99, 102, 105, 108, 111, 114, 117, 120, 123, 126 -Playlist "Favorites": 1, 4, 7, 10, 13, 16, 19, 22, 25, 28, 31, 34, 37, 40, 43, 46, 49, 52, 55, 58, 61, 64, 67, 70, 73, 76, 79, 82, 85, 88, 91, 94, 97, 100, 103, 106, 109, 112, 115, 118, 121, 124, 127 diff --git a/tests/test.h b/tests/test.h index 07cb35b2..cea8f426 100644 --- a/tests/test.h +++ b/tests/test.h @@ -124,6 +124,13 @@ namespace test std::string cmd = "cp -r tests/Library/* " + data_dir(); system(cmd.c_str()); } + + void cp_playlist() + { + cp_library(); + std::string cmd = "cp -r tests/Playlist/* " + data_dir(); + system(cmd.c_str()); + } } #define run_test(name, func, ...) \ From 53f0c2a6aafc3c784dfd84d2c956f174debb7f3b Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Tue, 20 May 2014 17:22:49 -0400 Subject: [PATCH 58/93] testing: Add gcov and cppcheck tests It doesn't hurt to run even more tests on the code! Signed-off-by: Anna Schumaker --- .gitignore | 3 +++ Sconstruct | 15 ++++++++++++--- TODO | 5 +++++ tests/Sconscript | 19 +++++++++++++++---- 4 files changed, 35 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 469f6001..ab606dd9 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,6 @@ bin/ .sconsign.dblite *.patch tests/*-lib +*.gcov +*.gcda +*.gcno diff --git a/Sconstruct b/Sconstruct index b00961af..e9d657e9 100644 --- a/Sconstruct +++ b/Sconstruct @@ -5,6 +5,8 @@ import os CONFIG_VERSION = 6.1 CONFIG_DEBUG = True CONFIG_TEST_VALGRIND = False +CONFIG_TEST_COVERAGE = False +CONFIG_TEST_CPPCHECK = False # Set up default environment @@ -16,21 +18,25 @@ class OEnvironment(Environment): Debug = False Version = 0 Valgrind = False + Coverage = False + CppCheck = False - def __init__(self): - Environment.__init__(self, CCFLAGS = CONFIG_CCFLAGS) + def __init__(self, CCFLAGS = CONFIG_CCFLAGS): + Environment.__init__(self, CCFLAGS = CCFLAGS) self.Append(CPPPATH = os.path.abspath("include")) self.Append(CXXCOMSTR = "C++ $TARGET") self.Append(LINKCOMSTR = "Linking $TARGET") self.Debug = CONFIG_DEBUG self.Version = CONFIG_VERSION self.Valgrind = CONFIG_TEST_VALGRIND + self.Coverage = CONFIG_TEST_COVERAGE + self.CppCheck = CONFIG_TEST_CPPCHECK def UsePackage(self, name): self.ParseConfig("pkg-config --cflags --libs %s" % name) env = OEnvironment() -test_env = OEnvironment() +test_env = OEnvironment( CONFIG_CCFLAGS + [ "-DCONFIG_TEST" ] ) Export("env", "test_env") @@ -39,6 +45,9 @@ lib = SConscript("lib/Sconscript") gui = SConscript("gui/Sconscript") tests = SConscript("tests/Sconscript") +Clean(tests, Glob("*.gcov")) +Clean(tests, Glob("tests/*.gcda")) +Clean(tests, Glob("tests/*.gcno")) ocarina = env.Program("bin/ocarina", lib + gui) diff --git a/TODO b/TODO index c0b3ddec..98219f24 100644 --- a/TODO +++ b/TODO @@ -89,3 +89,8 @@ Future work: - Functions to tag individual files - Functions to read multiple tags from a single text file when CONFIG_TEST == true + - Doxygen support for documentation? + - Jenkins + - Run tests + - Show gcov graph + - Run cppcheck diff --git a/tests/Sconscript b/tests/Sconscript index c6cf7c42..690fdb65 100644 --- a/tests/Sconscript +++ b/tests/Sconscript @@ -24,13 +24,14 @@ tests = [ env = test_env env.UsePackage("glib-2.0") +if env.Coverage == True: + env.Append( CCFLAGS = [ "--coverage" ] ) + env.Append( LINKFLAGS = [ "-lgcov", "-coverage" ] ) check_depends = True for arg in sys.argv: - if arg.find("tests") == 0: - env.Append( CCFLAGS = [ "-DCONFIG_TEST" ] ) - if len(arg) > 5: - check_depends = False + if arg.find("tests") == 0 and len(arg) > 5: + check_depends = False break def expand_files(extra_files): @@ -80,6 +81,16 @@ for src, lib, extra, pkgs in tests: ignore.write(name + "\n") ignore.close(); +if env.Coverage == True: + cov = Command("ocarina.gcov", [], "gcov -r tests/*.gcda") + Depends(cov, res[len(res) - 1]) + res += [ cov ] + +if env.CppCheck == True: + check = Command("cpp.check", [], "cppcheck -q .") + Depends(check, res[len(res) - 1]) + res += [ check ] + Return("res") ##scripts = [ "library", "deck", "audio", "gui" ] From ea369eb14eec61ead42f508648355eb4a41eeedb Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Fri, 23 May 2014 21:14:56 -0400 Subject: [PATCH 59/93] clean up use of print.h Some files #including this file weren't using it for anything ... Signed-off-by: Anna Schumaker --- include/database.h | 1 - lib/file.cpp | 1 - lib/filter.cpp | 1 - lib/tags.cpp | 1 + 4 files changed, 1 insertion(+), 3 deletions(-) diff --git a/include/database.h b/include/database.h index f36720fb..06cd7829 100644 --- a/include/database.h +++ b/include/database.h @@ -5,7 +5,6 @@ #define OCARINA_DATABASE_H #include -#include #include #include diff --git a/lib/file.cpp b/lib/file.cpp index d215aae2..8f33e0e7 100644 --- a/lib/file.cpp +++ b/lib/file.cpp @@ -3,7 +3,6 @@ */ #include #include -#include #include diff --git a/lib/filter.cpp b/lib/filter.cpp index 06102936..9ca8bd66 100644 --- a/lib/filter.cpp +++ b/lib/filter.cpp @@ -4,7 +4,6 @@ #include #include -#include #include #include diff --git a/lib/tags.cpp b/lib/tags.cpp index 571268fd..9b8da6b3 100644 --- a/lib/tags.cpp +++ b/lib/tags.cpp @@ -4,6 +4,7 @@ #include #include +#include #include #include From 59220cc2ce9aea06d2b8d21904fbaebe45ebe3c3 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Fri, 23 May 2014 21:52:09 -0400 Subject: [PATCH 60/93] tags: Add Track->played() This function is called to increment play count and set "date last played" variables. Moving this into the Track class lets me remove an internal callback and a few other unnecessary functions. Signed-off-by: Anna Schumaker --- DESIGN | 7 +++++++ include/callback.h | 1 - include/deck.h | 1 + include/library.h | 1 - include/tags.h | 1 + lib/audio.cpp | 8 +++++++- lib/callback.cpp | 1 - lib/deck.cpp | 3 +-- lib/library.cpp | 18 ------------------ lib/tags.cpp | 14 ++++++++++++++ tests/tags.cpp | 11 ++++++++++- 11 files changed, 41 insertions(+), 25 deletions(-) diff --git a/DESIGN b/DESIGN index 653a5e56..f7b2a68f 100644 --- a/DESIGN +++ b/DESIGN @@ -773,6 +773,7 @@ Track Tag: void tag(); const std::string path(); + void played(); bool less_than(Track *, sort_t); }; @@ -818,6 +819,12 @@ Track Tag: Combine library->path and filepath to find the full path to the audio file. + void Track :: played(); + Called when a track has been played. Increment the play count + and set last_day, last_month, and last_year to today's date. + + Call tagdb :: commit() to save the track database. + int Track :: less_than(Track *rhs, sort_t field); Compare the requested field for this Track instance to the same field in the provided track. diff --git a/include/callback.h b/include/callback.h index d06b4a40..858824c5 100644 --- a/include/callback.h +++ b/include/callback.h @@ -24,7 +24,6 @@ struct Callbacks { void (*on_library_update)(unsigned int, Library *); void (*on_library_track_add)(unsigned int); void (*on_library_track_del)(unsigned int); - void (*on_library_track_updated)(unsigned int); /* Queue callbacks */ void (*on_queue_track_add)(Queue *, unsigned int); diff --git a/include/deck.h b/include/deck.h index 5c776b83..9942b860 100644 --- a/include/deck.h +++ b/include/deck.h @@ -8,6 +8,7 @@ namespace deck { + void change_library_track(unsigned int); void init(); void read(); diff --git a/include/library.h b/include/library.h index 21bdee13..8fc8e05d 100644 --- a/include/library.h +++ b/include/library.h @@ -25,7 +25,6 @@ namespace library void update_path(unsigned int); void update_all(); void set_enabled(unsigned int, bool); - void track_played(unsigned int); #ifdef CONFIG_TEST void print_db(DB_Type); void reset(); diff --git a/include/tags.h b/include/tags.h index 431a3007..51f873c9 100644 --- a/include/tags.h +++ b/include/tags.h @@ -105,6 +105,7 @@ public: void tag(); const std::string path() const; + void played(); int less_than(Track *, sort_t); }; diff --git a/lib/audio.cpp b/lib/audio.cpp index 2eda3617..c40aa8a5 100644 --- a/lib/audio.cpp +++ b/lib/audio.cpp @@ -68,6 +68,8 @@ static void handle_pause_count() static gboolean on_message(GstBus *bus, GstMessage *message, gpointer data) { + Track *track; + switch (GST_MESSAGE_TYPE(message)) { case GST_MESSAGE_ERROR: parse_error(message); @@ -76,7 +78,11 @@ static gboolean on_message(GstBus *bus, GstMessage *message, gpointer data) break; case GST_MESSAGE_EOS: handle_pause_count(); - library :: track_played(cur_trackid); + track = tagdb :: lookup(cur_trackid); + if (track) { + track->played(); + deck :: change_library_track(track->id); + } audio :: next(); audio :: seek_to(0); default: diff --git a/lib/callback.cpp b/lib/callback.cpp index 2623c80d..16b0aa53 100644 --- a/lib/callback.cpp +++ b/lib/callback.cpp @@ -26,7 +26,6 @@ static struct Callbacks callbacks = { .on_library_update = no_op, .on_library_track_add = no_op, .on_library_track_del = no_op, - .on_library_track_updated = no_op, .on_queue_track_add = no_op, .on_queue_track_del = no_op, diff --git a/lib/deck.cpp b/lib/deck.cpp index 58401f5e..1f53308b 100644 --- a/lib/deck.cpp +++ b/lib/deck.cpp @@ -23,7 +23,7 @@ static void del_library_track(unsigned int id) library_playqueue.del(tagdb :: lookup(id)); } -static void change_library_track(unsigned int id) +void deck :: change_library_track(unsigned int id) { library_playqueue.updated(tagdb :: lookup(id)); } @@ -39,7 +39,6 @@ void deck :: init() get_callbacks()->on_library_track_add = add_library_track; get_callbacks()->on_library_track_del = del_library_track; - get_callbacks()->on_library_track_updated = change_library_track; get_callbacks()->on_queue_changed = write; } diff --git a/lib/library.cpp b/lib/library.cpp index 044808e1..0f03af82 100644 --- a/lib/library.cpp +++ b/lib/library.cpp @@ -176,24 +176,6 @@ void library :: set_enabled(unsigned int id, bool enabled) } } -void library :: track_played(unsigned int id) -{ - time_t the_time = time(NULL); - struct tm *now = localtime(&the_time); - Track *track = tagdb :: lookup(id); - - if (!track) - return; - - track->play_count++; - track->last_day = now->tm_mday; - track->last_month = now->tm_mon + 1; - track->last_year = now->tm_year + 1900; - - tagdb :: commit(); - get_callbacks()->on_library_track_updated(track->id); -} - #ifdef CONFIG_TEST void library :: print_db(DB_Type type) { diff --git a/lib/tags.cpp b/lib/tags.cpp index 9b8da6b3..df9b5c71 100644 --- a/lib/tags.cpp +++ b/lib/tags.cpp @@ -265,6 +265,19 @@ const std::string Track :: path() const return library->root_path + "/" + filepath; } +void Track :: played() +{ + time_t the_time = time(NULL); + struct tm *now = localtime(&the_time); + + play_count++; + last_day = now->tm_mday; + last_month = now->tm_mon + 1; + last_year = now->tm_year + 1900; + + tagdb :: commit(); +} + /* * Returns: * 0: lhs == rhs @@ -373,6 +386,7 @@ void tagdb :: remove_library(unsigned int library_id) if ((*it)->library->id == library_id) track_db.remove((*it)->id); } + tagdb :: commit(); library_db.remove(library_id); } diff --git a/tests/tags.cpp b/tests/tags.cpp index 2695f2e1..f0f9a745 100644 --- a/tests/tags.cpp +++ b/tests/tags.cpp @@ -56,7 +56,7 @@ static void test_track(struct TagArgs *args) Track *track = tagdb :: add_track(args->full_path, args->library); test_not_equal(track, TRACK_NULL); - test_equal(track->path(), args->full_path); + test_equal(track->path(), args->full_path); /* * Check tags @@ -85,6 +85,15 @@ static void test_track(struct TagArgs *args) test_equal(tagdb :: lookup(args->track - 1), TRACK_NULL); test_equal(tagdb :: get_track_db().size(), (unsigned)0); test_equal(args->library->count, (unsigned)0); + + /* + * Mark track played, double check new values + */ + track->played(); + test_equal(track->play_count, args->play_count + 1); + test_not_equal(track->last_year, args->last_year); + test_not_equal(track->last_month, args->last_month); + test_not_equal(track->last_day, args->last_day); } static void test_all_tracks() From f995538a8cbc6cd23ca3b894c4d32a0e792247f0 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Fri, 23 May 2014 21:56:33 -0400 Subject: [PATCH 61/93] library: Initial design edits More to come as I work on this bit of code! Signed-off-by: Anna Schumaker --- DESIGN | 197 +++++++++++++++++++++++++++------------------------------ 1 file changed, 93 insertions(+), 104 deletions(-) diff --git a/DESIGN b/DESIGN index f7b2a68f..b1e65d45 100644 --- a/DESIGN +++ b/DESIGN @@ -998,6 +998,99 @@ File Format: +Library: + The library is in charge of scanning and updating library paths added + to the tag database. In addition, the library layer is also in charge + of managing a library queue used by the UI. This queue has a special + file format, and will be saved to the file "library.q". + +- Queue: + class LibraryQueue : public Queue { + public: + LibraryQueue(); + save(); + load(); + set_flag(queue_flag); + unset_flag(queue_flag); + sort(sort_t, bool); + }; + + File << flags << _sort_order.size() + File << _sort_order[N].field << _sort_order[N].ascending << ... + +- Validation: + Use a single idle function to loop over each track in the track + database. Check if the track still exists in the filesystem and remove + it from the tagdb if not. + +- Updating: + Scan over all files in the current directory directory. + For each encountered directory: + Use the idle queue to call the update function with the new + directory as the "current" directory. + For each encountered file: + Attempt to add the file to the track_db. + Commit the database if at least one new file has been added. + +- Testing: + The script tests/library/gen_library.sh will create a sample library + in the /tmp/ directory for testing purposes. All the track files are + complete silence, but the script will fake up tags for each file. + + To test importing, create several mock library files and copy them to + ~/.ocarina-test/library/ and attempt to read them in. + +- LibraryQueue API: + LibraryQueue :: LibraryQueue(); + Initialize a Queue with the flags Q_ENABLED and Q_REPEAT. The + default sorting order should be artist, year, track. + + LibraryQueue :: save(); + Write a library queue to disk. + + LibraryQueue :: load(); + Read a library queue from disk. + + LibraryQueue :: set_flag(queue_flag f); + LibraryQueue :: unset_flag(queue_flag f); + LibraryQueue :: sort(sort_t field, bool reset); + These functions are wrappers around the default Queue + implementation. First call the original function, then use + save() to store the changes. + +- API + void library :: init(); + Scan the tagdb track list, and add each track to the library + queue. + + Library *library :: add_path(string dir); + If dir is not a directory: + return NULL + + Add a new path to the tag database, trigger an update, and + then return the corresponding Library tag to the caller. + + void library :: del_path(unsigned int lib_id); + Invalidate a library_db row and all tracks owned by that path. + if lib_id is not valid do nothing. + + void library :: update_path(unsigned int lib_id); + First, validate all tracks in the given library. + Next, trigger an update on the given library. + + void library :: update_all(); + Update all valid library paths. + + void library :: set_enabled(unsigned int id, bool enabled); + Toggle if a library path is enabled or not. A disabled + library path will have its tracks removed from the + LibraryQueue. + + void library :: get_queue(); + Return the LibraryQueue to the caller. + + + Playlist: Playlists are a new feature in Ocarina 6 and are modeled after Gmail labels. Ocarina 6.1 will support two different playlists that the @@ -1078,110 +1171,6 @@ Playlist: -- library queue should be set to the default sort order - The default sort order is (SORT_ARTIST, true), - (SORT_YEAR, true), (SORT_TRACK, true). - - -Library: (lib/library.cpp) - The library manages databases containing track information added by the - user. Ocarina 6 splits the library into multiple database tables for - storing content. The library will exist in a library namespace to - to make functions and classes more unique. - -- Databases: - Database album_db(album.db); - Database artist_db(artist.db); - Database genre_db(genre.db); - Database library_db(library.db); - Database track_db(track.db); - -- Updating algorithm: - 1) Use a single IdleTask to loop over each track in the library, check - if the track still exists in the filesystem and remove it from - library_db if not. - 2) For each directory in the scan directory, create an IdleTask to - scan the next level of directories. - 3) For each file in the scan directory, check if the file already - exists in the track_db and add it to the database if not. Save - each database after adding files. - - The taglib library should be used for finding artist, album, etc. tags - for each track. - -- Importing - Ocarina 5.11 stores library files in ~/.ocarina/library/. Importing - involves reading each file and adding them to the database. If the file - describes a path already in the database then DO NOT overwrite the - current path and instead move on to the next file. If version != 2 then - move on to the next file. - - File format: - File << version << endl; /* version == 2 */ - File << path << endl; - File << id << enabled << next_track_id << size << endl; - File << - - Track format: - File << filepath << endl; - File << title << endl; - File << artist << endl; - File << album << endl; - File << comment << endl; - File << genre << endl; - File << lenstr << endl; - File << id << year << track << count; - File << last_day << last_month << last_year; - File << length << bitrate << sample << channels << banned << endl; - -- Testing: - The script tests/library/gen_library.sh will create a sample library - in the /tmp/ directory for testing purposes. All the track files are - complete silence, but the script will fake up tags for each file. - - To test importing, create several mock library files and copy them to - ~/.ocarina-test/library/ and attempt to read them in. - -- API - void library :: init(); - Initialize databases and read files from disk. While reading - the library: - - Update the count of tracks in each library path - - Find the lowercase text of artist, album, genre, track - - void library :: add_path(string dir); - If dir is not a directory: - throw -EINVAL - - Trigger the on_library_add() callback on success. - - void library :: del_path(unsigned int lib_id); - Invalidate a library_db row and all tracks owned by that path - if lib_id is not valid, throw -EEXIST. - - void library :: update_path(lib_id); - Update the given library_db row. - If lib_id is not valid, throw -EEXIST. - - Trigger the on_library_update() callback. - - void library :: update_all(); - Update all library paths. - Trigger the on_library_update() callback for each path. - - struct Song library :: lookup(track_id); - Fill out a Song structure for the provided track_id. - Throw -EEXIST if there is no track mapping to track_id. - - struct library :: Library *library :: lookup_path(unsigned int id); - Return the library path with index id. - Throw -EEXIST if there is no such path. - - void library :: import(); - Call this function to import an Ocarina 5.11 style library, - following the "Importing" section above. - - Deck: (lib/deck.cpp) From 208e53c7e90c4ab6303d59d3ddb276647cfaab05 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sat, 24 May 2014 12:47:33 -0400 Subject: [PATCH 62/93] library: Update the code and unit test Lots of changes here! I switched from using track and library ids to passing pointers, renamed some functions, and made the code much cleaner. Signed-off-by: Anna Schumaker --- DESIGN | 10 +- gui/main.cpp | 1 + include/callback.h | 1 - include/library.h | 26 +- include/queue.h | 6 +- lib/callback.cpp | 1 - lib/library.cpp | 235 +-- tests/.gitignore | 1 + tests/Sconscript | 1 + tests/gen_library.sh | 26 + tests/{library => }/library.cpp | 170 +- tests/library/0 | 1 - tests/library/1 | 1203 -------------- tests/library/1.ogg | Bin 5669 -> 0 bytes tests/library/10.ogg | Bin 32053 -> 0 bytes tests/library/2 | 1203 -------------- tests/library/3 | 1203 -------------- tests/library/60.ogg | Bin 176819 -> 0 bytes tests/library/600.ogg | Bin 1751818 -> 0 bytes tests/library/Sconscript | 6 - tests/library/gen_library.sh | 86 - tests/library/library.good | 2704 ------------------------------- tests/test.h | 10 + 23 files changed, 324 insertions(+), 6570 deletions(-) create mode 100755 tests/gen_library.sh rename tests/{library => }/library.cpp (66%) delete mode 100644 tests/library/0 delete mode 100644 tests/library/1 delete mode 100644 tests/library/1.ogg delete mode 100644 tests/library/10.ogg delete mode 100644 tests/library/2 delete mode 100644 tests/library/3 delete mode 100644 tests/library/60.ogg delete mode 100644 tests/library/600.ogg delete mode 100644 tests/library/Sconscript delete mode 100755 tests/library/gen_library.sh delete mode 100644 tests/library/library.good diff --git a/DESIGN b/DESIGN index b1e65d45..948898bc 100644 --- a/DESIGN +++ b/DESIGN @@ -1063,25 +1063,25 @@ Library: Scan the tagdb track list, and add each track to the library queue. - Library *library :: add_path(string dir); + Library *library :: add(string dir); If dir is not a directory: return NULL Add a new path to the tag database, trigger an update, and then return the corresponding Library tag to the caller. - void library :: del_path(unsigned int lib_id); + void library :: remove(Library *library); Invalidate a library_db row and all tracks owned by that path. - if lib_id is not valid do nothing. + Do not use the library pointer after calling this function. - void library :: update_path(unsigned int lib_id); + void library :: update(Library *library); First, validate all tracks in the given library. Next, trigger an update on the given library. void library :: update_all(); Update all valid library paths. - void library :: set_enabled(unsigned int id, bool enabled); + void library :: set_enabled(Library *library, bool enabled); Toggle if a library path is enabled or not. A disabled library path will have its tracks removed from the LibraryQueue. diff --git a/gui/main.cpp b/gui/main.cpp index d441020f..c60ec9ef 100644 --- a/gui/main.cpp +++ b/gui/main.cpp @@ -28,6 +28,7 @@ const std::string share_file(const std::string &file) Gtk::Window *ocarina_init(int *argc, char ***argv) { Gtk::Window *window = setup_gui(); + tagdb :: init(); audio::init(argc, argv); deck::init(); library::init(); diff --git a/include/callback.h b/include/callback.h index 858824c5..07c4da54 100644 --- a/include/callback.h +++ b/include/callback.h @@ -20,7 +20,6 @@ struct Callbacks { void (*on_pq_removed)(Queue *); /* Library callbacks */ - void (*on_library_add)(unsigned int, Library *); void (*on_library_update)(unsigned int, Library *); void (*on_library_track_add)(unsigned int); void (*on_library_track_del)(unsigned int); diff --git a/include/library.h b/include/library.h index 8fc8e05d..73cea15e 100644 --- a/include/library.h +++ b/include/library.h @@ -4,31 +4,23 @@ #ifndef OCARINA_LIBRARY_H #define OCARINA_LIBRARY_H +#include #include #include namespace library { - enum DB_Type { - DB_ALBUM, - DB_ARTIST, - DB_GENRE, - DB_LIBRARY, - DB_TRACK, - }; - - void init(); - void add_path(const std::string &); - void del_path(unsigned int); - void update_path(unsigned int); + + Library *add(const std::string &); + void remove(Library *); + void update(Library *); void update_all(); - void set_enabled(unsigned int, bool); -#ifdef CONFIG_TEST - void print_db(DB_Type); - void reset(); -#endif /* CONFIG_TEST */ + + void set_enabled(Library *, bool); + Queue *get_queue(); + }; #endif /* OCARINA_LIBRARY_H */ diff --git a/include/queue.h b/include/queue.h index 53d6d908..f595ce68 100644 --- a/include/queue.h +++ b/include/queue.h @@ -44,8 +44,8 @@ public: void write(File &); void read(File &); - void set_flag(queue_flags); - void unset_flag(queue_flags); + virtual void set_flag(queue_flags); + virtual void unset_flag(queue_flags); bool has_flag(queue_flags); virtual unsigned int add(Track *); @@ -58,7 +58,7 @@ public: const std::string size_str(); const std::string length_str(); - void sort(sort_t, bool); + virtual void sort(sort_t, bool); Track *operator[](unsigned int); void track_selected(unsigned int); }; diff --git a/lib/callback.cpp b/lib/callback.cpp index 16b0aa53..fbe006db 100644 --- a/lib/callback.cpp +++ b/lib/callback.cpp @@ -22,7 +22,6 @@ static struct Callbacks callbacks = { .on_pq_created = no_op, .on_pq_removed = no_op, - .on_library_add = no_op, .on_library_update = no_op, .on_library_track_add = no_op, .on_library_track_del = no_op, diff --git a/lib/library.cpp b/lib/library.cpp index 0f03af82..c343a5e2 100644 --- a/lib/library.cpp +++ b/lib/library.cpp @@ -1,47 +1,99 @@ /* * Copyright 2013 (c) Anna Schumaker. */ -#include -#include #include #include -#include #include -#include -#include -/* - * Internal library functions - */ +class LibraryQueue : public Queue { +private: + File f; + +public: + + LibraryQueue() : Queue(Q_ENABLED | Q_REPEAT), f("library.q") + { + Queue :: sort(SORT_ARTIST, true); + Queue :: sort(SORT_YEAR, false); + Queue :: sort(SORT_TRACK, false); + } + + void save() + { + std::vector::iterator it; + + f.open(OPEN_WRITE); + f << _flags << " " << _sort_order.size(); + for (it = _sort_order.begin(); it != _sort_order.end(); it++) + f << " " << it->field << " " << it->ascending; + f << std::endl; + f.close(); + } + + void load() + { + unsigned int field; + bool ascending; + unsigned int n; + + if (!f.open(OPEN_READ)) + return; + + f >> _flags >> n; + for (unsigned int i = 0; i < n; i++) { + f >> field >> ascending; + Queue :: sort((sort_t)field, (i == 0) ? true : false); + if (ascending == false) + Queue :: sort((sort_t)field, false); + } + } + + void set_flag(queue_flags f) { Queue :: set_flag(f); save(); } + void unset_flag(queue_flags f) { Queue :: unset_flag(f); save(); } + + void sort(sort_t field, bool ascending) + { + Queue :: sort(field, ascending); + save(); + }; + +}; + +static LibraryQueue library_q; + struct scan_info { Library *library; std :: string path; }; -static void do_scan_path(struct scan_info &); -static void read_tags(const std::string &path, Library *library) -{ - Track *track = tagdb :: add_track(path, library); - get_callbacks()->on_library_track_add(track->id); -} +static void scan_path(struct scan_info &); + + + +/* + * Scanning functions are here + */ static void process_path(Library *library, const std :: string &dir, const std :: string &name) { - struct scan_info scan; - std :: string path = dir + "/" + name; + struct scan_info scan = { + .library = library, + .path = dir + "/" + name, + }; - if (g_file_test(path.c_str(), G_FILE_TEST_IS_DIR) == true) { - scan.library = library; - scan.path = path; - idle :: schedule (do_scan_path, scan); - } else - read_tags(path, library); + if (g_file_test(scan.path.c_str(), G_FILE_TEST_IS_DIR) == true) + idle :: schedule (scan_path, scan); + else { + Track *track = tagdb :: add_track(scan.path, library); + if (track) + library_q.add(track); + } } -static void do_scan_path(struct scan_info &scan) +static void scan_path(struct scan_info &scan) { GDir *dir; const char *name; @@ -57,143 +109,110 @@ static void do_scan_path(struct scan_info &scan) } tagdb :: commit(); - get_callbacks()->on_library_update(scan.library->id, scan.library); } -static void do_validate_library(unsigned int &lib_id) +static void validate_library(Library *&library) { - std :: string path; - Database *db = &tagdb :: get_track_db(); + Track *track; Database::iterator it; + Database *db = &tagdb :: get_track_db(); for (it = db->begin(); it != db->end(); it = db->next(it)) { - Track *track = *it; - if (track->library->id != lib_id) + track = *it; + if (track->library != library) continue; if (g_file_test(track->path().c_str(), G_FILE_TEST_EXISTS) == false) { - dprint("Removing file: %s\n", track->path().c_str()); + library_q.del(track); tagdb :: remove_track(track->id); } } - - get_callbacks()->on_library_update(lib_id, tagdb :: lookup_library(lib_id)); -} - -static void do_update_library(unsigned int lib_id) -{ - Library *library = tagdb :: lookup_library(lib_id); - struct scan_info scan = { library, library->root_path }; - idle :: schedule(do_validate_library, lib_id); - idle :: schedule(do_scan_path, scan); } /* - * API used by the GUI begins here + * External API begins here */ void library :: init() { - tagdb :: init(); - - Database *db = &tagdb :: get_track_db(); Database::iterator it; + Database *db = &tagdb :: get_track_db(); + + library_q.load(); for (it = db->begin(); it != db->end(); it = db->next(it)) { if ((*it)->library->enabled) - get_callbacks()->on_library_track_add((*it)->id); + library_q.add(*it); } - - Database *ldb = &tagdb :: get_library_db(); - Database::iterator l_it; - - for (l_it = ldb->begin(); l_it != ldb->end(); l_it = ldb->next(l_it)) - get_callbacks()->on_library_add((*l_it)->id, *l_it); } -void library :: add_path(const std::string &dir) +Library *library :: add(const std::string &dir) { + Library *library = NULL; + if (g_file_test(dir.c_str(), G_FILE_TEST_IS_DIR) == false) - throw -E_INVAL; + return library; - Library *library = tagdb :: add_library(dir); - if (!library) - return; - - get_callbacks()->on_library_add(library->id, library); - update_path(library->id); -} - -void library :: del_path(unsigned int id) -{ - Database *db = &tagdb :: get_track_db(); - Database::iterator it; - - for (it = db->begin(); it != db->end(); it = db->next(it)) { - if ((*it)->library->id == id) - get_callbacks()->on_library_track_del((*it)->id); - } - - tagdb :: remove_library(id); - tagdb :: commit(); -} - -void library :: update_path(unsigned int id) -{ - Library *library = tagdb :: lookup_library(id); + library = tagdb :: add_library(dir); if (library) - do_update_library(library->id); + update(library); + return library; +} + +void library :: remove(Library *library) +{ + if (library) { + set_enabled(library, false); + tagdb :: remove_library(library->id); + } +} + +void library :: update(Library *library) +{ + struct scan_info scan = { + .library = library, + }; + + if (library) { + scan.path = library->root_path; + idle :: schedule(validate_library, library); + idle :: schedule(scan_path, scan); + } } void library :: update_all() { - Database *db = &tagdb :: get_library_db(); Database::iterator it; + Database *db = &tagdb :: get_library_db(); for (it = db->begin(); it != db->end(); it = db->next(it)) - update_path((*it)->id); + update(*it); } -void library :: set_enabled(unsigned int id, bool enabled) +void library :: set_enabled(Library *library, bool enabled) { - Library *library = tagdb :: lookup_library(id); + Database::iterator it; + Database *db = &(tagdb :: get_track_db()); + + if (!library || (library->enabled == enabled)) + return; library->enabled = enabled; tagdb :: commit_library(); - Database *db = &(tagdb :: get_track_db()); - Database::iterator it; - for (it = db->begin(); it != db->end(); it = db->next(it)) { - if ((*it)->library->id == id) { + if ((*it)->library == library) { if (enabled) - get_callbacks()->on_library_track_add((*it)->id); + library_q.add(*it); else - get_callbacks()->on_library_track_del((*it)->id); + library_q.del(*it); } } } -#ifdef CONFIG_TEST -void library :: print_db(DB_Type type) +Queue *library :: get_queue() { - switch (type) { - case DB_ALBUM: - break; - case DB_ARTIST: - break; - case DB_GENRE: - break; - case DB_LIBRARY: - break; - case DB_TRACK: - break; - } + return &library_q; } - -void library :: reset() -{ -} -#endif /* CONFIG_TEST */ diff --git a/tests/.gitignore b/tests/.gitignore index f560deb8..fa59425a 100644 --- a/tests/.gitignore +++ b/tests/.gitignore @@ -7,4 +7,5 @@ idle tags random queue +library playlist diff --git a/tests/Sconscript b/tests/Sconscript index 690fdb65..e6e9976c 100644 --- a/tests/Sconscript +++ b/tests/Sconscript @@ -18,6 +18,7 @@ tests = [ ("tags.cpp", True, [], [ "taglib" ]), ("random.cpp", False, [ "random.cpp" ], []), ("queue.cpp", True, [ "callback.cpp", "random.cpp" ], []), + ("library.cpp", True, [ "idle.cpp" ], []), ("playlist.cpp", True, [], []), ] diff --git a/tests/gen_library.sh b/tests/gen_library.sh new file mode 100755 index 00000000..9255cfc8 --- /dev/null +++ b/tests/gen_library.sh @@ -0,0 +1,26 @@ +#!/bin/bash +# +# Copyright 2013 (c) Anna Schumaker. +# +# Generate a test library in /tmp +# + +# $1 - File, $2 - Directory number +function tag_file() +{ + artist="Artist $2" + album="Album $2" + let date=2008+$2 + vorbiscomment -w $1 -t "ARTIST=$artist" -t "ALBUM=$album" -t "DATE=$date" +} + + +mkdir -p /tmp/ocarina/dir{1..5} + +for i in $(seq 5); do + cp tests/Music/* /tmp/ocarina/dir$i/ + + for f in /tmp/ocarina/dir$i/*; do + tag_file $f $i + done +done diff --git a/tests/library/library.cpp b/tests/library.cpp similarity index 66% rename from tests/library/library.cpp rename to tests/library.cpp index 17e7ff2e..d52e3810 100644 --- a/tests/library/library.cpp +++ b/tests/library.cpp @@ -1,7 +1,119 @@ /* * Copyright 2013 (c) Anna Schumaker. */ -#include +#include +#include +#include "test.h" + +static Queue *Q_NULL = NULL; +static Library *LIB_NULL = NULL; + +static void test_init() +{ + Queue *q = library :: get_queue(); + + test_not_equal(q, Q_NULL); + test_equal(q->has_flag(Q_ENABLED), true); + test_equal(q->has_flag(Q_REPEAT), true); + + tagdb :: init(); + library :: init(); + + test_equal(q->size(), (unsigned)24); +} + +static void test_enable() +{ + Queue *q = library :: get_queue(); + Library *library = tagdb :: lookup_library(0); + + library :: set_enabled(LIB_NULL, true); + test_equal(q->size(), (unsigned)24); + + library :: set_enabled(library, false); + test_equal(q->size(), (unsigned)0); + + library :: set_enabled(library, true); + test_equal(q->size(), (unsigned)24); + + library :: set_enabled(library, true); + test_equal(q->size(), (unsigned)24); + + library :: set_enabled(library, false); + test_equal(q->size(), (unsigned)0); + + library :: set_enabled(library, true); + test_equal(q->size(), (unsigned)24); +} + +static void test_remove() +{ + Queue *q = library :: get_queue(); + Library *library = tagdb :: lookup_library(0); + + library :: remove(LIB_NULL); + test_equal(q->size(), (unsigned)24); + + library :: remove(library); + test_equal(q->size(), (unsigned)0); + + library :: remove(library); + test_equal(q->size(), (unsigned)0); +} + +static void test_add() +{ + Queue *q = library :: get_queue(); + + test :: gen_library(); + library :: add("/tmp/ocarina/"); + + test_equal(q->size(), (unsigned)0); + test_equal(idle :: run_task(), true); + test_equal(q->size(), (unsigned)0); + + for (unsigned int i = 0; i < 6; i++) { + test_equal(idle :: run_task(), (i < 5) ? true : false); + test_equal(q->size(), i * 7); + } +} + +static void test_update() +{ + Queue *q = library :: get_queue(); + test :: rm_library_dirs(); + + library :: update_all(); + test_equal(idle :: run_task(), true); + test_equal(q->size(), (unsigned)21); + + for (unsigned int i = 0; i < 4; i++) + test_equal(idle :: run_task(), (i < 3) ? true : false); + test_equal(q->size(), (unsigned)21); + + + test :: gen_library(); + + library :: update_all(); + test_equal(idle :: run_task(), true); + test_equal(q->size(), (unsigned)21); + + for (unsigned int i = 0; i < 6; i++) + test_equal(idle :: run_task(), (i < 5) ? true : false); + test_equal(q->size(), (unsigned)35); +} + +int main(int argc, char **argv) +{ + test :: cp_library(); + + run_test("Library Init Test", test_init); + run_test("Library Enable and Disable Test", test_enable); + run_test("Library Delete Path Test", test_remove); + run_test("Library Add Path Test", test_add); + run_test("Library Update Path Test", test_update); +} +/*#include #include #include #include @@ -130,27 +242,27 @@ void test_print_dbs(const std::string &test) print("Test %s\n", test.c_str()); library :: print_db(library :: DB_GENRE); print("\n"); -} +}*/ /* Add paths library that SHOULD fail */ -void test_0() +/*void test_0() { test_add_dir("0a", "/tmp/library/error", false); test_add_dir("0b", "/tmp/library/file", false); print("\n"); -} +}*/ /* Simple library path operations */ -void test_1() +/*void test_1() { test_add_dir("1a", "/tmp/library/0", true); test_del_dir("1b", 0); print("\n"); -} +}*/ /* Test multiple paths */ -void test_2() +/*void test_2() { library :: reset(); test_add_dir("2a", "/tmp/library/0", true); @@ -161,10 +273,10 @@ void test_2() test_del_dir("2e", 0); test_del_dir("2f", 2); print("\n"); -} +}*/ /* Test load and save of library db */ -void test_3() +/*void test_3() { library :: reset(); test_add_dir("3a", "/tmp/library/0", true); @@ -179,10 +291,10 @@ void test_3() library :: init(); library :: print_db(library :: DB_LIBRARY); print("\n"); -} +}*/ /* Test scanning a single path */ -void test_4() +/*void test_4() { library :: reset(); test_add_dir("4a", "/tmp/library/0", true); @@ -195,32 +307,32 @@ void test_4() print("\n"); library :: print_db(library :: DB_TRACK); print("\n"); -} +}*/ /* Test lookup() */ -void test_5() +/*void test_5() { library :: reset(); - +*/ /* Lookup on empty DB */ - test_lookup("5a", 0, false); - test_add_dir("5b", "/tmp/library/0", true); +// test_lookup("5a", 0, false); +// test_add_dir("5b", "/tmp/library/0", true); /* Lookup on DB[0] */ - test_lookup("5c", 0, true); +// test_lookup("5c", 0, true); /* Lookup on DB[10] */ - test_lookup("5d", 42, true); +// test_lookup("5d", 42, true); /* Lookup beyond db */ - test_lookup("5e", 100000, false); +// test_lookup("5e", 100000, false); /* Lookup path id = 0 */ - test_path_lookup("5f", 0, true); +// test_path_lookup("5f", 0, true); /* Lookup path id that doesn't exist */ - test_path_lookup("5g", 1, false); - print("\n"); -} +// test_path_lookup("5g", 1, false); +// print("\n"); +//} /* Test validation code */ -void test_6() +/*void test_6() { library :: reset(); @@ -249,10 +361,10 @@ void test_6() run_idle_tasks(); library :: print_db(library :: DB_TRACK); print("\n"); -} +}*/ /* Test importing Ocarina 5.11 libraries */ -void test_7() +/*void test_7() { library :: reset(); @@ -263,10 +375,10 @@ void test_7() run_idle_tasks(); library :: print_db(library :: DB_LIBRARY); print("\n"); -} +}*/ /* Test disabling libraries */ -void test_8() +/*void test_8() { library :: reset(); @@ -302,4 +414,4 @@ int main(int argc, char **argv) test_7(); test_8(); return 0; -} +}*/ diff --git a/tests/library/0 b/tests/library/0 deleted file mode 100644 index d00491fd..00000000 --- a/tests/library/0 +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/tests/library/1 b/tests/library/1 deleted file mode 100644 index 62cbc85f..00000000 --- a/tests/library/1 +++ /dev/null @@ -1,1203 +0,0 @@ -2 -/tmp/library/2 -0 1 150 150 -/tmp/library/2/Artist 14/Album 2/10 - Track 10.ogg -Track 10 -Artist 14 -Album 2 - -Tryout -1:00 -0 2013 10 0 0 0 0 60 22 8000 1 0 -/tmp/library/2/Artist 14/Album 2/9 - Track 9.ogg -Track 9 -Artist 14 -Album 2 - -Tryout -0:10 -1 2013 9 0 0 0 0 10 22 8000 1 0 -/tmp/library/2/Artist 14/Album 2/8 - Track 8.ogg -Track 8 -Artist 14 -Album 2 - -Tryout -0:01 -2 2013 8 0 0 0 0 1 22 8000 1 0 -/tmp/library/2/Artist 14/Album 2/7 - Track 7.ogg -Track 7 -Artist 14 -Album 2 - -Tryout -10:00 -3 2013 7 0 0 0 0 600 22 8000 1 0 -/tmp/library/2/Artist 14/Album 2/6 - Track 6.ogg -Track 6 -Artist 14 -Album 2 - -Tryout -1:00 -4 2013 6 0 0 0 0 60 22 8000 1 0 -/tmp/library/2/Artist 14/Album 2/5 - Track 5.ogg -Track 5 -Artist 14 -Album 2 - -Tryout -0:10 -5 2013 5 0 0 0 0 10 22 8000 1 0 -/tmp/library/2/Artist 14/Album 2/4 - Track 4.ogg -Track 4 -Artist 14 -Album 2 - -Tryout -0:01 -6 2013 4 0 0 0 0 1 22 8000 1 0 -/tmp/library/2/Artist 14/Album 2/3 - Track 3.ogg -Track 3 -Artist 14 -Album 2 - -Tryout -10:00 -7 2013 3 0 0 0 0 600 22 8000 1 0 -/tmp/library/2/Artist 14/Album 2/2 - Track 2.ogg -Track 2 -Artist 14 -Album 2 - -Tryout -1:00 -8 2013 2 0 0 0 0 60 22 8000 1 0 -/tmp/library/2/Artist 14/Album 2/1 - Track 1.ogg -Track 1 -Artist 14 -Album 2 - -Tryout -0:10 -9 2013 1 0 0 0 0 10 22 8000 1 0 -/tmp/library/2/Artist 14/Album 1/10 - Track 10.ogg -Track 10 -Artist 14 -Album 1 - -Trial -1:00 -10 2012 10 0 0 0 0 60 22 8000 1 0 -/tmp/library/2/Artist 14/Album 1/9 - Track 9.ogg -Track 9 -Artist 14 -Album 1 - -Trial -0:10 -11 2012 9 0 0 0 0 10 22 8000 1 0 -/tmp/library/2/Artist 14/Album 1/8 - Track 8.ogg -Track 8 -Artist 14 -Album 1 - -Trial -0:01 -12 2012 8 0 0 0 0 1 22 8000 1 0 -/tmp/library/2/Artist 14/Album 1/7 - Track 7.ogg -Track 7 -Artist 14 -Album 1 - -Trial -10:00 -13 2012 7 0 0 0 0 600 22 8000 1 0 -/tmp/library/2/Artist 14/Album 1/6 - Track 6.ogg -Track 6 -Artist 14 -Album 1 - -Trial -1:00 -14 2012 6 0 0 0 0 60 22 8000 1 0 -/tmp/library/2/Artist 14/Album 1/5 - Track 5.ogg -Track 5 -Artist 14 -Album 1 - -Trial -0:10 -15 2012 5 0 0 0 0 10 22 8000 1 0 -/tmp/library/2/Artist 14/Album 1/4 - Track 4.ogg -Track 4 -Artist 14 -Album 1 - -Trial -0:01 -16 2012 4 0 0 0 0 1 22 8000 1 0 -/tmp/library/2/Artist 14/Album 1/3 - Track 3.ogg -Track 3 -Artist 14 -Album 1 - -Trial -10:00 -17 2012 3 0 0 0 0 600 22 8000 1 0 -/tmp/library/2/Artist 14/Album 1/2 - Track 2.ogg -Track 2 -Artist 14 -Album 1 - -Trial -1:00 -18 2012 2 0 0 0 0 60 22 8000 1 0 -/tmp/library/2/Artist 14/Album 1/1 - Track 1.ogg -Track 1 -Artist 14 -Album 1 - -Trial -0:10 -19 2012 1 0 0 0 0 10 22 8000 1 0 -/tmp/library/2/Artist 14/Album 0/10 - Track 10.ogg -Track 10 -Artist 14 -Album 0 - -Test -1:00 -20 2011 10 0 0 0 0 60 22 8000 1 0 -/tmp/library/2/Artist 14/Album 0/9 - Track 9.ogg -Track 9 -Artist 14 -Album 0 - -Test -0:10 -21 2011 9 0 0 0 0 10 22 8000 1 0 -/tmp/library/2/Artist 14/Album 0/8 - Track 8.ogg -Track 8 -Artist 14 -Album 0 - -Test -0:01 -22 2011 8 0 0 0 0 1 22 8000 1 0 -/tmp/library/2/Artist 14/Album 0/7 - Track 7.ogg -Track 7 -Artist 14 -Album 0 - -Test -10:00 -23 2011 7 0 0 0 0 600 22 8000 1 0 -/tmp/library/2/Artist 14/Album 0/6 - Track 6.ogg -Track 6 -Artist 14 -Album 0 - -Test -1:00 -24 2011 6 0 0 0 0 60 22 8000 1 0 -/tmp/library/2/Artist 14/Album 0/5 - Track 5.ogg -Track 5 -Artist 14 -Album 0 - -Test -0:10 -25 2011 5 0 0 0 0 10 22 8000 1 0 -/tmp/library/2/Artist 14/Album 0/4 - Track 4.ogg -Track 4 -Artist 14 -Album 0 - -Test -0:01 -26 2011 4 0 0 0 0 1 22 8000 1 0 -/tmp/library/2/Artist 14/Album 0/3 - Track 3.ogg -Track 3 -Artist 14 -Album 0 - -Test -10:00 -27 2011 3 0 0 0 0 600 22 8000 1 0 -/tmp/library/2/Artist 14/Album 0/2 - Track 2.ogg -Track 2 -Artist 14 -Album 0 - -Test -1:00 -28 2011 2 0 0 0 0 60 22 8000 1 0 -/tmp/library/2/Artist 14/Album 0/1 - Track 1.ogg -Track 1 -Artist 14 -Album 0 - -Test -0:10 -29 2011 1 0 0 0 0 10 22 8000 1 0 -/tmp/library/2/Artist 13/Album 2/10 - Track 10.ogg -Track 10 -Artist 13 -Album 2 - -Tryout -1:00 -30 2013 10 0 0 0 0 60 22 8000 1 0 -/tmp/library/2/Artist 13/Album 2/9 - Track 9.ogg -Track 9 -Artist 13 -Album 2 - -Tryout -0:10 -31 2013 9 0 0 0 0 10 22 8000 1 0 -/tmp/library/2/Artist 13/Album 2/8 - Track 8.ogg -Track 8 -Artist 13 -Album 2 - -Tryout -0:01 -32 2013 8 0 0 0 0 1 22 8000 1 0 -/tmp/library/2/Artist 13/Album 2/7 - Track 7.ogg -Track 7 -Artist 13 -Album 2 - -Tryout -10:00 -33 2013 7 0 0 0 0 600 22 8000 1 0 -/tmp/library/2/Artist 13/Album 2/6 - Track 6.ogg -Track 6 -Artist 13 -Album 2 - -Tryout -1:00 -34 2013 6 0 0 0 0 60 22 8000 1 0 -/tmp/library/2/Artist 13/Album 2/5 - Track 5.ogg -Track 5 -Artist 13 -Album 2 - -Tryout -0:10 -35 2013 5 0 0 0 0 10 22 8000 1 0 -/tmp/library/2/Artist 13/Album 2/4 - Track 4.ogg -Track 4 -Artist 13 -Album 2 - -Tryout -0:01 -36 2013 4 0 0 0 0 1 22 8000 1 0 -/tmp/library/2/Artist 13/Album 2/3 - Track 3.ogg -Track 3 -Artist 13 -Album 2 - -Tryout -10:00 -37 2013 3 0 0 0 0 600 22 8000 1 0 -/tmp/library/2/Artist 13/Album 2/2 - Track 2.ogg -Track 2 -Artist 13 -Album 2 - -Tryout -1:00 -38 2013 2 0 0 0 0 60 22 8000 1 0 -/tmp/library/2/Artist 13/Album 2/1 - Track 1.ogg -Track 1 -Artist 13 -Album 2 - -Tryout -0:10 -39 2013 1 0 0 0 0 10 22 8000 1 0 -/tmp/library/2/Artist 13/Album 1/10 - Track 10.ogg -Track 10 -Artist 13 -Album 1 - -Trial -1:00 -40 2012 10 0 0 0 0 60 22 8000 1 0 -/tmp/library/2/Artist 13/Album 1/9 - Track 9.ogg -Track 9 -Artist 13 -Album 1 - -Trial -0:10 -41 2012 9 0 0 0 0 10 22 8000 1 0 -/tmp/library/2/Artist 13/Album 1/8 - Track 8.ogg -Track 8 -Artist 13 -Album 1 - -Trial -0:01 -42 2012 8 0 0 0 0 1 22 8000 1 0 -/tmp/library/2/Artist 13/Album 1/7 - Track 7.ogg -Track 7 -Artist 13 -Album 1 - -Trial -10:00 -43 2012 7 0 0 0 0 600 22 8000 1 0 -/tmp/library/2/Artist 13/Album 1/6 - Track 6.ogg -Track 6 -Artist 13 -Album 1 - -Trial -1:00 -44 2012 6 0 0 0 0 60 22 8000 1 0 -/tmp/library/2/Artist 13/Album 1/5 - Track 5.ogg -Track 5 -Artist 13 -Album 1 - -Trial -0:10 -45 2012 5 0 0 0 0 10 22 8000 1 0 -/tmp/library/2/Artist 13/Album 1/4 - Track 4.ogg -Track 4 -Artist 13 -Album 1 - -Trial -0:01 -46 2012 4 0 0 0 0 1 22 8000 1 0 -/tmp/library/2/Artist 13/Album 1/3 - Track 3.ogg -Track 3 -Artist 13 -Album 1 - -Trial -10:00 -47 2012 3 0 0 0 0 600 22 8000 1 0 -/tmp/library/2/Artist 13/Album 1/2 - Track 2.ogg -Track 2 -Artist 13 -Album 1 - -Trial -1:00 -48 2012 2 0 0 0 0 60 22 8000 1 0 -/tmp/library/2/Artist 13/Album 1/1 - Track 1.ogg -Track 1 -Artist 13 -Album 1 - -Trial -0:10 -49 2012 1 0 0 0 0 10 22 8000 1 0 -/tmp/library/2/Artist 13/Album 0/10 - Track 10.ogg -Track 10 -Artist 13 -Album 0 - -Test -1:00 -50 2011 10 0 0 0 0 60 22 8000 1 0 -/tmp/library/2/Artist 13/Album 0/9 - Track 9.ogg -Track 9 -Artist 13 -Album 0 - -Test -0:10 -51 2011 9 0 0 0 0 10 22 8000 1 0 -/tmp/library/2/Artist 13/Album 0/8 - Track 8.ogg -Track 8 -Artist 13 -Album 0 - -Test -0:01 -52 2011 8 0 0 0 0 1 22 8000 1 0 -/tmp/library/2/Artist 13/Album 0/7 - Track 7.ogg -Track 7 -Artist 13 -Album 0 - -Test -10:00 -53 2011 7 0 0 0 0 600 22 8000 1 0 -/tmp/library/2/Artist 13/Album 0/6 - Track 6.ogg -Track 6 -Artist 13 -Album 0 - -Test -1:00 -54 2011 6 0 0 0 0 60 22 8000 1 0 -/tmp/library/2/Artist 13/Album 0/5 - Track 5.ogg -Track 5 -Artist 13 -Album 0 - -Test -0:10 -55 2011 5 0 0 0 0 10 22 8000 1 0 -/tmp/library/2/Artist 13/Album 0/4 - Track 4.ogg -Track 4 -Artist 13 -Album 0 - -Test -0:01 -56 2011 4 0 0 0 0 1 22 8000 1 0 -/tmp/library/2/Artist 13/Album 0/3 - Track 3.ogg -Track 3 -Artist 13 -Album 0 - -Test -10:00 -57 2011 3 0 0 0 0 600 22 8000 1 0 -/tmp/library/2/Artist 13/Album 0/2 - Track 2.ogg -Track 2 -Artist 13 -Album 0 - -Test -1:00 -58 2011 2 0 0 0 0 60 22 8000 1 0 -/tmp/library/2/Artist 13/Album 0/1 - Track 1.ogg -Track 1 -Artist 13 -Album 0 - -Test -0:10 -59 2011 1 0 0 0 0 10 22 8000 1 0 -/tmp/library/2/Artist 12/Album 2/10 - Track 10.ogg -Track 10 -Artist 12 -Album 2 - -Tryout -1:00 -60 2013 10 0 0 0 0 60 22 8000 1 0 -/tmp/library/2/Artist 12/Album 2/9 - Track 9.ogg -Track 9 -Artist 12 -Album 2 - -Tryout -0:10 -61 2013 9 0 0 0 0 10 22 8000 1 0 -/tmp/library/2/Artist 12/Album 2/8 - Track 8.ogg -Track 8 -Artist 12 -Album 2 - -Tryout -0:01 -62 2013 8 0 0 0 0 1 22 8000 1 0 -/tmp/library/2/Artist 12/Album 2/7 - Track 7.ogg -Track 7 -Artist 12 -Album 2 - -Tryout -10:00 -63 2013 7 0 0 0 0 600 22 8000 1 0 -/tmp/library/2/Artist 12/Album 2/6 - Track 6.ogg -Track 6 -Artist 12 -Album 2 - -Tryout -1:00 -64 2013 6 0 0 0 0 60 22 8000 1 0 -/tmp/library/2/Artist 12/Album 2/5 - Track 5.ogg -Track 5 -Artist 12 -Album 2 - -Tryout -0:10 -65 2013 5 0 0 0 0 10 22 8000 1 0 -/tmp/library/2/Artist 12/Album 2/4 - Track 4.ogg -Track 4 -Artist 12 -Album 2 - -Tryout -0:01 -66 2013 4 0 0 0 0 1 22 8000 1 0 -/tmp/library/2/Artist 12/Album 2/3 - Track 3.ogg -Track 3 -Artist 12 -Album 2 - -Tryout -10:00 -67 2013 3 0 0 0 0 600 22 8000 1 0 -/tmp/library/2/Artist 12/Album 2/2 - Track 2.ogg -Track 2 -Artist 12 -Album 2 - -Tryout -1:00 -68 2013 2 0 0 0 0 60 22 8000 1 0 -/tmp/library/2/Artist 12/Album 2/1 - Track 1.ogg -Track 1 -Artist 12 -Album 2 - -Tryout -0:10 -69 2013 1 0 0 0 0 10 22 8000 1 0 -/tmp/library/2/Artist 12/Album 1/10 - Track 10.ogg -Track 10 -Artist 12 -Album 1 - -Trial -1:00 -70 2012 10 0 0 0 0 60 22 8000 1 0 -/tmp/library/2/Artist 12/Album 1/9 - Track 9.ogg -Track 9 -Artist 12 -Album 1 - -Trial -0:10 -71 2012 9 0 0 0 0 10 22 8000 1 0 -/tmp/library/2/Artist 12/Album 1/8 - Track 8.ogg -Track 8 -Artist 12 -Album 1 - -Trial -0:01 -72 2012 8 0 0 0 0 1 22 8000 1 0 -/tmp/library/2/Artist 12/Album 1/7 - Track 7.ogg -Track 7 -Artist 12 -Album 1 - -Trial -10:00 -73 2012 7 0 0 0 0 600 22 8000 1 0 -/tmp/library/2/Artist 12/Album 1/6 - Track 6.ogg -Track 6 -Artist 12 -Album 1 - -Trial -1:00 -74 2012 6 0 0 0 0 60 22 8000 1 0 -/tmp/library/2/Artist 12/Album 1/5 - Track 5.ogg -Track 5 -Artist 12 -Album 1 - -Trial -0:10 -75 2012 5 0 0 0 0 10 22 8000 1 0 -/tmp/library/2/Artist 12/Album 1/4 - Track 4.ogg -Track 4 -Artist 12 -Album 1 - -Trial -0:01 -76 2012 4 0 0 0 0 1 22 8000 1 0 -/tmp/library/2/Artist 12/Album 1/3 - Track 3.ogg -Track 3 -Artist 12 -Album 1 - -Trial -10:00 -77 2012 3 0 0 0 0 600 22 8000 1 0 -/tmp/library/2/Artist 12/Album 1/2 - Track 2.ogg -Track 2 -Artist 12 -Album 1 - -Trial -1:00 -78 2012 2 0 0 0 0 60 22 8000 1 0 -/tmp/library/2/Artist 12/Album 1/1 - Track 1.ogg -Track 1 -Artist 12 -Album 1 - -Trial -0:10 -79 2012 1 0 0 0 0 10 22 8000 1 0 -/tmp/library/2/Artist 12/Album 0/10 - Track 10.ogg -Track 10 -Artist 12 -Album 0 - -Test -1:00 -80 2011 10 0 0 0 0 60 22 8000 1 0 -/tmp/library/2/Artist 12/Album 0/9 - Track 9.ogg -Track 9 -Artist 12 -Album 0 - -Test -0:10 -81 2011 9 0 0 0 0 10 22 8000 1 0 -/tmp/library/2/Artist 12/Album 0/8 - Track 8.ogg -Track 8 -Artist 12 -Album 0 - -Test -0:01 -82 2011 8 0 0 0 0 1 22 8000 1 0 -/tmp/library/2/Artist 12/Album 0/7 - Track 7.ogg -Track 7 -Artist 12 -Album 0 - -Test -10:00 -83 2011 7 0 0 0 0 600 22 8000 1 0 -/tmp/library/2/Artist 12/Album 0/6 - Track 6.ogg -Track 6 -Artist 12 -Album 0 - -Test -1:00 -84 2011 6 0 0 0 0 60 22 8000 1 0 -/tmp/library/2/Artist 12/Album 0/5 - Track 5.ogg -Track 5 -Artist 12 -Album 0 - -Test -0:10 -85 2011 5 0 0 0 0 10 22 8000 1 0 -/tmp/library/2/Artist 12/Album 0/4 - Track 4.ogg -Track 4 -Artist 12 -Album 0 - -Test -0:01 -86 2011 4 0 0 0 0 1 22 8000 1 0 -/tmp/library/2/Artist 12/Album 0/3 - Track 3.ogg -Track 3 -Artist 12 -Album 0 - -Test -10:00 -87 2011 3 0 0 0 0 600 22 8000 1 0 -/tmp/library/2/Artist 12/Album 0/2 - Track 2.ogg -Track 2 -Artist 12 -Album 0 - -Test -1:00 -88 2011 2 0 0 0 0 60 22 8000 1 0 -/tmp/library/2/Artist 12/Album 0/1 - Track 1.ogg -Track 1 -Artist 12 -Album 0 - -Test -0:10 -89 2011 1 0 0 0 0 10 22 8000 1 0 -/tmp/library/2/Artist 11/Album 2/10 - Track 10.ogg -Track 10 -Artist 11 -Album 2 - -Tryout -1:00 -90 2013 10 0 0 0 0 60 22 8000 1 0 -/tmp/library/2/Artist 11/Album 2/9 - Track 9.ogg -Track 9 -Artist 11 -Album 2 - -Tryout -0:10 -91 2013 9 0 0 0 0 10 22 8000 1 0 -/tmp/library/2/Artist 11/Album 2/8 - Track 8.ogg -Track 8 -Artist 11 -Album 2 - -Tryout -0:01 -92 2013 8 0 0 0 0 1 22 8000 1 0 -/tmp/library/2/Artist 11/Album 2/7 - Track 7.ogg -Track 7 -Artist 11 -Album 2 - -Tryout -10:00 -93 2013 7 0 0 0 0 600 22 8000 1 0 -/tmp/library/2/Artist 11/Album 2/6 - Track 6.ogg -Track 6 -Artist 11 -Album 2 - -Tryout -1:00 -94 2013 6 0 0 0 0 60 22 8000 1 0 -/tmp/library/2/Artist 11/Album 2/5 - Track 5.ogg -Track 5 -Artist 11 -Album 2 - -Tryout -0:10 -95 2013 5 0 0 0 0 10 22 8000 1 0 -/tmp/library/2/Artist 11/Album 2/4 - Track 4.ogg -Track 4 -Artist 11 -Album 2 - -Tryout -0:01 -96 2013 4 0 0 0 0 1 22 8000 1 0 -/tmp/library/2/Artist 11/Album 2/3 - Track 3.ogg -Track 3 -Artist 11 -Album 2 - -Tryout -10:00 -97 2013 3 0 0 0 0 600 22 8000 1 0 -/tmp/library/2/Artist 11/Album 2/2 - Track 2.ogg -Track 2 -Artist 11 -Album 2 - -Tryout -1:00 -98 2013 2 0 0 0 0 60 22 8000 1 0 -/tmp/library/2/Artist 11/Album 2/1 - Track 1.ogg -Track 1 -Artist 11 -Album 2 - -Tryout -0:10 -99 2013 1 0 0 0 0 10 22 8000 1 0 -/tmp/library/2/Artist 11/Album 1/10 - Track 10.ogg -Track 10 -Artist 11 -Album 1 - -Trial -1:00 -100 2012 10 0 0 0 0 60 22 8000 1 0 -/tmp/library/2/Artist 11/Album 1/9 - Track 9.ogg -Track 9 -Artist 11 -Album 1 - -Trial -0:10 -101 2012 9 0 0 0 0 10 22 8000 1 0 -/tmp/library/2/Artist 11/Album 1/8 - Track 8.ogg -Track 8 -Artist 11 -Album 1 - -Trial -0:01 -102 2012 8 0 0 0 0 1 22 8000 1 0 -/tmp/library/2/Artist 11/Album 1/7 - Track 7.ogg -Track 7 -Artist 11 -Album 1 - -Trial -10:00 -103 2012 7 0 0 0 0 600 22 8000 1 0 -/tmp/library/2/Artist 11/Album 1/6 - Track 6.ogg -Track 6 -Artist 11 -Album 1 - -Trial -1:00 -104 2012 6 0 0 0 0 60 22 8000 1 0 -/tmp/library/2/Artist 11/Album 1/5 - Track 5.ogg -Track 5 -Artist 11 -Album 1 - -Trial -0:10 -105 2012 5 0 0 0 0 10 22 8000 1 0 -/tmp/library/2/Artist 11/Album 1/4 - Track 4.ogg -Track 4 -Artist 11 -Album 1 - -Trial -0:01 -106 2012 4 0 0 0 0 1 22 8000 1 0 -/tmp/library/2/Artist 11/Album 1/3 - Track 3.ogg -Track 3 -Artist 11 -Album 1 - -Trial -10:00 -107 2012 3 0 0 0 0 600 22 8000 1 0 -/tmp/library/2/Artist 11/Album 1/2 - Track 2.ogg -Track 2 -Artist 11 -Album 1 - -Trial -1:00 -108 2012 2 0 0 0 0 60 22 8000 1 0 -/tmp/library/2/Artist 11/Album 1/1 - Track 1.ogg -Track 1 -Artist 11 -Album 1 - -Trial -0:10 -109 2012 1 0 0 0 0 10 22 8000 1 0 -/tmp/library/2/Artist 11/Album 0/10 - Track 10.ogg -Track 10 -Artist 11 -Album 0 - -Test -1:00 -110 2011 10 0 0 0 0 60 22 8000 1 0 -/tmp/library/2/Artist 11/Album 0/9 - Track 9.ogg -Track 9 -Artist 11 -Album 0 - -Test -0:10 -111 2011 9 0 0 0 0 10 22 8000 1 0 -/tmp/library/2/Artist 11/Album 0/8 - Track 8.ogg -Track 8 -Artist 11 -Album 0 - -Test -0:01 -112 2011 8 0 0 0 0 1 22 8000 1 0 -/tmp/library/2/Artist 11/Album 0/7 - Track 7.ogg -Track 7 -Artist 11 -Album 0 - -Test -10:00 -113 2011 7 0 0 0 0 600 22 8000 1 0 -/tmp/library/2/Artist 11/Album 0/6 - Track 6.ogg -Track 6 -Artist 11 -Album 0 - -Test -1:00 -114 2011 6 0 0 0 0 60 22 8000 1 0 -/tmp/library/2/Artist 11/Album 0/5 - Track 5.ogg -Track 5 -Artist 11 -Album 0 - -Test -0:10 -115 2011 5 0 0 0 0 10 22 8000 1 0 -/tmp/library/2/Artist 11/Album 0/4 - Track 4.ogg -Track 4 -Artist 11 -Album 0 - -Test -0:01 -116 2011 4 0 0 0 0 1 22 8000 1 0 -/tmp/library/2/Artist 11/Album 0/3 - Track 3.ogg -Track 3 -Artist 11 -Album 0 - -Test -10:00 -117 2011 3 0 0 0 0 600 22 8000 1 0 -/tmp/library/2/Artist 11/Album 0/2 - Track 2.ogg -Track 2 -Artist 11 -Album 0 - -Test -1:00 -118 2011 2 0 0 0 0 60 22 8000 1 0 -/tmp/library/2/Artist 11/Album 0/1 - Track 1.ogg -Track 1 -Artist 11 -Album 0 - -Test -0:10 -119 2011 1 0 0 0 0 10 22 8000 1 0 -/tmp/library/2/Artist 10/Album 2/10 - Track 10.ogg -Track 10 -Artist 10 -Album 2 - -Tryout -1:00 -120 2013 10 0 0 0 0 60 22 8000 1 0 -/tmp/library/2/Artist 10/Album 2/9 - Track 9.ogg -Track 9 -Artist 10 -Album 2 - -Tryout -0:10 -121 2013 9 0 0 0 0 10 22 8000 1 0 -/tmp/library/2/Artist 10/Album 2/8 - Track 8.ogg -Track 8 -Artist 10 -Album 2 - -Tryout -0:01 -122 2013 8 0 0 0 0 1 22 8000 1 0 -/tmp/library/2/Artist 10/Album 2/7 - Track 7.ogg -Track 7 -Artist 10 -Album 2 - -Tryout -10:00 -123 2013 7 0 0 0 0 600 22 8000 1 0 -/tmp/library/2/Artist 10/Album 2/6 - Track 6.ogg -Track 6 -Artist 10 -Album 2 - -Tryout -1:00 -124 2013 6 0 0 0 0 60 22 8000 1 0 -/tmp/library/2/Artist 10/Album 2/5 - Track 5.ogg -Track 5 -Artist 10 -Album 2 - -Tryout -0:10 -125 2013 5 0 0 0 0 10 22 8000 1 0 -/tmp/library/2/Artist 10/Album 2/4 - Track 4.ogg -Track 4 -Artist 10 -Album 2 - -Tryout -0:01 -126 2013 4 0 0 0 0 1 22 8000 1 0 -/tmp/library/2/Artist 10/Album 2/3 - Track 3.ogg -Track 3 -Artist 10 -Album 2 - -Tryout -10:00 -127 2013 3 0 0 0 0 600 22 8000 1 0 -/tmp/library/2/Artist 10/Album 2/2 - Track 2.ogg -Track 2 -Artist 10 -Album 2 - -Tryout -1:00 -128 2013 2 0 0 0 0 60 22 8000 1 0 -/tmp/library/2/Artist 10/Album 2/1 - Track 1.ogg -Track 1 -Artist 10 -Album 2 - -Tryout -0:10 -129 2013 1 0 0 0 0 10 22 8000 1 0 -/tmp/library/2/Artist 10/Album 1/10 - Track 10.ogg -Track 10 -Artist 10 -Album 1 - -Trial -1:00 -130 2012 10 0 0 0 0 60 22 8000 1 0 -/tmp/library/2/Artist 10/Album 1/9 - Track 9.ogg -Track 9 -Artist 10 -Album 1 - -Trial -0:10 -131 2012 9 0 0 0 0 10 22 8000 1 0 -/tmp/library/2/Artist 10/Album 1/8 - Track 8.ogg -Track 8 -Artist 10 -Album 1 - -Trial -0:01 -132 2012 8 0 0 0 0 1 22 8000 1 0 -/tmp/library/2/Artist 10/Album 1/7 - Track 7.ogg -Track 7 -Artist 10 -Album 1 - -Trial -10:00 -133 2012 7 0 0 0 0 600 22 8000 1 0 -/tmp/library/2/Artist 10/Album 1/6 - Track 6.ogg -Track 6 -Artist 10 -Album 1 - -Trial -1:00 -134 2012 6 0 0 0 0 60 22 8000 1 0 -/tmp/library/2/Artist 10/Album 1/5 - Track 5.ogg -Track 5 -Artist 10 -Album 1 - -Trial -0:10 -135 2012 5 0 0 0 0 10 22 8000 1 0 -/tmp/library/2/Artist 10/Album 1/4 - Track 4.ogg -Track 4 -Artist 10 -Album 1 - -Trial -0:01 -136 2012 4 0 0 0 0 1 22 8000 1 0 -/tmp/library/2/Artist 10/Album 1/3 - Track 3.ogg -Track 3 -Artist 10 -Album 1 - -Trial -10:00 -137 2012 3 0 0 0 0 600 22 8000 1 0 -/tmp/library/2/Artist 10/Album 1/2 - Track 2.ogg -Track 2 -Artist 10 -Album 1 - -Trial -1:00 -138 2012 2 0 0 0 0 60 22 8000 1 0 -/tmp/library/2/Artist 10/Album 1/1 - Track 1.ogg -Track 1 -Artist 10 -Album 1 - -Trial -0:10 -139 2012 1 0 0 0 0 10 22 8000 1 0 -/tmp/library/2/Artist 10/Album 0/10 - Track 10.ogg -Track 10 -Artist 10 -Album 0 - -Test -1:00 -140 2011 10 0 0 0 0 60 22 8000 1 0 -/tmp/library/2/Artist 10/Album 0/9 - Track 9.ogg -Track 9 -Artist 10 -Album 0 - -Test -0:10 -141 2011 9 0 0 0 0 10 22 8000 1 0 -/tmp/library/2/Artist 10/Album 0/8 - Track 8.ogg -Track 8 -Artist 10 -Album 0 - -Test -0:01 -142 2011 8 0 0 0 0 1 22 8000 1 0 -/tmp/library/2/Artist 10/Album 0/7 - Track 7.ogg -Track 7 -Artist 10 -Album 0 - -Test -10:00 -143 2011 7 0 0 0 0 600 22 8000 1 0 -/tmp/library/2/Artist 10/Album 0/6 - Track 6.ogg -Track 6 -Artist 10 -Album 0 - -Test -1:00 -144 2011 6 0 0 0 0 60 22 8000 1 0 -/tmp/library/2/Artist 10/Album 0/5 - Track 5.ogg -Track 5 -Artist 10 -Album 0 - -Test -0:10 -145 2011 5 0 0 0 0 10 22 8000 1 0 -/tmp/library/2/Artist 10/Album 0/4 - Track 4.ogg -Track 4 -Artist 10 -Album 0 - -Test -0:01 -146 2011 4 1 1 1 2014 1 22 8000 1 0 -/tmp/library/2/Artist 10/Album 0/3 - Track 3.ogg -Track 3 -Artist 10 -Album 0 - -Test -10:00 -147 2011 3 0 0 0 0 600 22 8000 1 0 -/tmp/library/2/Artist 10/Album 0/2 - Track 2.ogg -Track 2 -Artist 10 -Album 0 - -Test -1:00 -148 2011 2 0 0 0 0 60 22 8000 1 0 -/tmp/library/2/Artist 10/Album 0/1 - Track 1.ogg -Track 1 -Artist 10 -Album 0 - -Test -0:10 -149 2011 1 0 0 0 0 10 22 8000 1 0 diff --git a/tests/library/1.ogg b/tests/library/1.ogg deleted file mode 100644 index 64d19c5a1d37f3b8bb2e9fbc3ab3ae86fbf376ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5669 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.?+y0w3NeBKG> zscPNob52zllf&1R;b0Y-lqN-Ut2!TbtCL>g^U?XICTQeKmKDKC_s%+S@;))qpYN0VE}67Mj$WqH5&)2+gH>&`JFC&n`z!RY7bYq(WAebWq_h2#GWQuBBMEUZ zHF?~eOoTZ~Ki$Gra_O?GZsqB`h<#AcE#zyLcv`z{0+Ep7)^05172#a0A<3ZC2|)q7 zKmdLpOuvK~06HiD)WMduwSLl=kC@3cVGy}uKHK}gZmzX@yF924selpINjIaP(H$x0 zO=0*w(xH_f%*whuWHuW)AH=_*%w>pdm&&{I95{Y;PBpz;{c4t6Qgb{+^a6?=iDD@M zK!FFfGMpL9rJdL@XG+^kJzdMXikGL;gRxogkIV7XgMHiCC7$1WYmdNqO}AzHegI zEyGBDwV}S8@$7VRX?=ReW}5uolu2^DdE!sOCYb^c{@u`7zqK_0E(c#9~~*~SaSLZz6Gdh5c2X+x2N+Sci* zzJT?_Xs?5X0FoU;R|SZ^lD$&>Sg3 z#$=llZPq0SvUXc(`JmSAQA=HlnZ>6Op)j{qnpTXpNWIjD{HZBnGdB*Ca_ag5lAdao znqZ2)-)H_~z1=bG%=>gl{U-J{m6k+&WDw!Hl=S-WuB668+|}vX*qe*JUU?H3RmvIq zT}DEZ|3FVfHX7|Bt%n|{aFSQ#u*;!)7+KTfp|R0st)Wc>k{x5G0z`|t|JiNN$ym^miN9+Exqx#5V_qS zE$jZjqq_g+h-z6tRS{7352?S6K0YoP*l{}Zw#>}2*o(b58awCQG@sur%;)pDKh1NU JiR<|I_&DbY_)q`< diff --git a/tests/library/2 b/tests/library/2 deleted file mode 100644 index efa978c0..00000000 --- a/tests/library/2 +++ /dev/null @@ -1,1203 +0,0 @@ -2 -/tmp/library/3 -1 1 150 150 -/tmp/library/3/Artist 19/Album 2/10 - Track 10.ogg -Track 10 -Artist 19 -Album 2 - -Tryout -1:00 -0 2013 10 0 0 0 0 60 22 8000 1 0 -/tmp/library/3/Artist 19/Album 2/9 - Track 9.ogg -Track 9 -Artist 19 -Album 2 - -Tryout -0:10 -1 2013 9 0 0 0 0 10 22 8000 1 0 -/tmp/library/3/Artist 19/Album 2/8 - Track 8.ogg -Track 8 -Artist 19 -Album 2 - -Tryout -0:01 -2 2013 8 0 0 0 0 1 22 8000 1 0 -/tmp/library/3/Artist 19/Album 2/7 - Track 7.ogg -Track 7 -Artist 19 -Album 2 - -Tryout -10:00 -3 2013 7 0 0 0 0 600 22 8000 1 0 -/tmp/library/3/Artist 19/Album 2/6 - Track 6.ogg -Track 6 -Artist 19 -Album 2 - -Tryout -1:00 -4 2013 6 0 0 0 0 60 22 8000 1 0 -/tmp/library/3/Artist 19/Album 2/5 - Track 5.ogg -Track 5 -Artist 19 -Album 2 - -Tryout -0:10 -5 2013 5 0 0 0 0 10 22 8000 1 0 -/tmp/library/3/Artist 19/Album 2/4 - Track 4.ogg -Track 4 -Artist 19 -Album 2 - -Tryout -0:01 -6 2013 4 0 0 0 0 1 22 8000 1 0 -/tmp/library/3/Artist 19/Album 2/3 - Track 3.ogg -Track 3 -Artist 19 -Album 2 - -Tryout -10:00 -7 2013 3 0 0 0 0 600 22 8000 1 0 -/tmp/library/3/Artist 19/Album 2/2 - Track 2.ogg -Track 2 -Artist 19 -Album 2 - -Tryout -1:00 -8 2013 2 0 0 0 0 60 22 8000 1 0 -/tmp/library/3/Artist 19/Album 2/1 - Track 1.ogg -Track 1 -Artist 19 -Album 2 - -Tryout -0:10 -9 2013 1 0 0 0 0 10 22 8000 1 0 -/tmp/library/3/Artist 19/Album 1/10 - Track 10.ogg -Track 10 -Artist 19 -Album 1 - -Trial -1:00 -10 2012 10 0 0 0 0 60 22 8000 1 0 -/tmp/library/3/Artist 19/Album 1/9 - Track 9.ogg -Track 9 -Artist 19 -Album 1 - -Trial -0:10 -11 2012 9 0 0 0 0 10 22 8000 1 0 -/tmp/library/3/Artist 19/Album 1/8 - Track 8.ogg -Track 8 -Artist 19 -Album 1 - -Trial -0:01 -12 2012 8 0 0 0 0 1 22 8000 1 0 -/tmp/library/3/Artist 19/Album 1/7 - Track 7.ogg -Track 7 -Artist 19 -Album 1 - -Trial -10:00 -13 2012 7 0 0 0 0 600 22 8000 1 0 -/tmp/library/3/Artist 19/Album 1/6 - Track 6.ogg -Track 6 -Artist 19 -Album 1 - -Trial -1:00 -14 2012 6 0 0 0 0 60 22 8000 1 0 -/tmp/library/3/Artist 19/Album 1/5 - Track 5.ogg -Track 5 -Artist 19 -Album 1 - -Trial -0:10 -15 2012 5 0 0 0 0 10 22 8000 1 0 -/tmp/library/3/Artist 19/Album 1/4 - Track 4.ogg -Track 4 -Artist 19 -Album 1 - -Trial -0:01 -16 2012 4 0 0 0 0 1 22 8000 1 0 -/tmp/library/3/Artist 19/Album 1/3 - Track 3.ogg -Track 3 -Artist 19 -Album 1 - -Trial -10:00 -17 2012 3 0 0 0 0 600 22 8000 1 0 -/tmp/library/3/Artist 19/Album 1/2 - Track 2.ogg -Track 2 -Artist 19 -Album 1 - -Trial -1:00 -18 2012 2 0 0 0 0 60 22 8000 1 0 -/tmp/library/3/Artist 19/Album 1/1 - Track 1.ogg -Track 1 -Artist 19 -Album 1 - -Trial -0:10 -19 2012 1 0 0 0 0 10 22 8000 1 0 -/tmp/library/3/Artist 19/Album 0/10 - Track 10.ogg -Track 10 -Artist 19 -Album 0 - -Test -1:00 -20 2011 10 0 0 0 0 60 22 8000 1 0 -/tmp/library/3/Artist 19/Album 0/9 - Track 9.ogg -Track 9 -Artist 19 -Album 0 - -Test -0:10 -21 2011 9 0 0 0 0 10 22 8000 1 0 -/tmp/library/3/Artist 19/Album 0/8 - Track 8.ogg -Track 8 -Artist 19 -Album 0 - -Test -0:01 -22 2011 8 0 0 0 0 1 22 8000 1 0 -/tmp/library/3/Artist 19/Album 0/7 - Track 7.ogg -Track 7 -Artist 19 -Album 0 - -Test -10:00 -23 2011 7 0 0 0 0 600 22 8000 1 0 -/tmp/library/3/Artist 19/Album 0/6 - Track 6.ogg -Track 6 -Artist 19 -Album 0 - -Test -1:00 -24 2011 6 0 0 0 0 60 22 8000 1 0 -/tmp/library/3/Artist 19/Album 0/5 - Track 5.ogg -Track 5 -Artist 19 -Album 0 - -Test -0:10 -25 2011 5 0 0 0 0 10 22 8000 1 0 -/tmp/library/3/Artist 19/Album 0/4 - Track 4.ogg -Track 4 -Artist 19 -Album 0 - -Test -0:01 -26 2011 4 0 0 0 0 1 22 8000 1 0 -/tmp/library/3/Artist 19/Album 0/3 - Track 3.ogg -Track 3 -Artist 19 -Album 0 - -Test -10:00 -27 2011 3 0 0 0 0 600 22 8000 1 0 -/tmp/library/3/Artist 19/Album 0/2 - Track 2.ogg -Track 2 -Artist 19 -Album 0 - -Test -1:00 -28 2011 2 0 0 0 0 60 22 8000 1 0 -/tmp/library/3/Artist 19/Album 0/1 - Track 1.ogg -Track 1 -Artist 19 -Album 0 - -Test -0:10 -29 2011 1 0 0 0 0 10 22 8000 1 0 -/tmp/library/3/Artist 18/Album 2/10 - Track 10.ogg -Track 10 -Artist 18 -Album 2 - -Tryout -1:00 -30 2013 10 0 0 0 0 60 22 8000 1 0 -/tmp/library/3/Artist 18/Album 2/9 - Track 9.ogg -Track 9 -Artist 18 -Album 2 - -Tryout -0:10 -31 2013 9 0 0 0 0 10 22 8000 1 0 -/tmp/library/3/Artist 18/Album 2/8 - Track 8.ogg -Track 8 -Artist 18 -Album 2 - -Tryout -0:01 -32 2013 8 0 0 0 0 1 22 8000 1 0 -/tmp/library/3/Artist 18/Album 2/7 - Track 7.ogg -Track 7 -Artist 18 -Album 2 - -Tryout -10:00 -33 2013 7 0 0 0 0 600 22 8000 1 0 -/tmp/library/3/Artist 18/Album 2/6 - Track 6.ogg -Track 6 -Artist 18 -Album 2 - -Tryout -1:00 -34 2013 6 0 0 0 0 60 22 8000 1 0 -/tmp/library/3/Artist 18/Album 2/5 - Track 5.ogg -Track 5 -Artist 18 -Album 2 - -Tryout -0:10 -35 2013 5 0 0 0 0 10 22 8000 1 0 -/tmp/library/3/Artist 18/Album 2/4 - Track 4.ogg -Track 4 -Artist 18 -Album 2 - -Tryout -0:01 -36 2013 4 0 0 0 0 1 22 8000 1 0 -/tmp/library/3/Artist 18/Album 2/3 - Track 3.ogg -Track 3 -Artist 18 -Album 2 - -Tryout -10:00 -37 2013 3 0 0 0 0 600 22 8000 1 0 -/tmp/library/3/Artist 18/Album 2/2 - Track 2.ogg -Track 2 -Artist 18 -Album 2 - -Tryout -1:00 -38 2013 2 0 0 0 0 60 22 8000 1 0 -/tmp/library/3/Artist 18/Album 2/1 - Track 1.ogg -Track 1 -Artist 18 -Album 2 - -Tryout -0:10 -39 2013 1 0 0 0 0 10 22 8000 1 0 -/tmp/library/3/Artist 18/Album 1/10 - Track 10.ogg -Track 10 -Artist 18 -Album 1 - -Trial -1:00 -40 2012 10 0 0 0 0 60 22 8000 1 0 -/tmp/library/3/Artist 18/Album 1/9 - Track 9.ogg -Track 9 -Artist 18 -Album 1 - -Trial -0:10 -41 2012 9 0 0 0 0 10 22 8000 1 0 -/tmp/library/3/Artist 18/Album 1/8 - Track 8.ogg -Track 8 -Artist 18 -Album 1 - -Trial -0:01 -42 2012 8 0 0 0 0 1 22 8000 1 0 -/tmp/library/3/Artist 18/Album 1/7 - Track 7.ogg -Track 7 -Artist 18 -Album 1 - -Trial -10:00 -43 2012 7 0 0 0 0 600 22 8000 1 0 -/tmp/library/3/Artist 18/Album 1/6 - Track 6.ogg -Track 6 -Artist 18 -Album 1 - -Trial -1:00 -44 2012 6 0 0 0 0 60 22 8000 1 0 -/tmp/library/3/Artist 18/Album 1/5 - Track 5.ogg -Track 5 -Artist 18 -Album 1 - -Trial -0:10 -45 2012 5 0 0 0 0 10 22 8000 1 0 -/tmp/library/3/Artist 18/Album 1/4 - Track 4.ogg -Track 4 -Artist 18 -Album 1 - -Trial -0:01 -46 2012 4 0 0 0 0 1 22 8000 1 0 -/tmp/library/3/Artist 18/Album 1/3 - Track 3.ogg -Track 3 -Artist 18 -Album 1 - -Trial -10:00 -47 2012 3 0 0 0 0 600 22 8000 1 0 -/tmp/library/3/Artist 18/Album 1/2 - Track 2.ogg -Track 2 -Artist 18 -Album 1 - -Trial -1:00 -48 2012 2 0 0 0 0 60 22 8000 1 0 -/tmp/library/3/Artist 18/Album 1/1 - Track 1.ogg -Track 1 -Artist 18 -Album 1 - -Trial -0:10 -49 2012 1 0 0 0 0 10 22 8000 1 0 -/tmp/library/3/Artist 18/Album 0/10 - Track 10.ogg -Track 10 -Artist 18 -Album 0 - -Test -1:00 -50 2011 10 0 0 0 0 60 22 8000 1 0 -/tmp/library/3/Artist 18/Album 0/9 - Track 9.ogg -Track 9 -Artist 18 -Album 0 - -Test -0:10 -51 2011 9 0 0 0 0 10 22 8000 1 0 -/tmp/library/3/Artist 18/Album 0/8 - Track 8.ogg -Track 8 -Artist 18 -Album 0 - -Test -0:01 -52 2011 8 0 0 0 0 1 22 8000 1 0 -/tmp/library/3/Artist 18/Album 0/7 - Track 7.ogg -Track 7 -Artist 18 -Album 0 - -Test -10:00 -53 2011 7 0 0 0 0 600 22 8000 1 0 -/tmp/library/3/Artist 18/Album 0/6 - Track 6.ogg -Track 6 -Artist 18 -Album 0 - -Test -1:00 -54 2011 6 0 0 0 0 60 22 8000 1 0 -/tmp/library/3/Artist 18/Album 0/5 - Track 5.ogg -Track 5 -Artist 18 -Album 0 - -Test -0:10 -55 2011 5 0 0 0 0 10 22 8000 1 0 -/tmp/library/3/Artist 18/Album 0/4 - Track 4.ogg -Track 4 -Artist 18 -Album 0 - -Test -0:01 -56 2011 4 0 0 0 0 1 22 8000 1 0 -/tmp/library/3/Artist 18/Album 0/3 - Track 3.ogg -Track 3 -Artist 18 -Album 0 - -Test -10:00 -57 2011 3 0 0 0 0 600 22 8000 1 0 -/tmp/library/3/Artist 18/Album 0/2 - Track 2.ogg -Track 2 -Artist 18 -Album 0 - -Test -1:00 -58 2011 2 0 0 0 0 60 22 8000 1 0 -/tmp/library/3/Artist 18/Album 0/1 - Track 1.ogg -Track 1 -Artist 18 -Album 0 - -Test -0:10 -59 2011 1 0 0 0 0 10 22 8000 1 0 -/tmp/library/3/Artist 17/Album 2/10 - Track 10.ogg -Track 10 -Artist 17 -Album 2 - -Tryout -1:00 -60 2013 10 0 0 0 0 60 22 8000 1 0 -/tmp/library/3/Artist 17/Album 2/9 - Track 9.ogg -Track 9 -Artist 17 -Album 2 - -Tryout -0:10 -61 2013 9 0 0 0 0 10 22 8000 1 0 -/tmp/library/3/Artist 17/Album 2/8 - Track 8.ogg -Track 8 -Artist 17 -Album 2 - -Tryout -0:01 -62 2013 8 0 0 0 0 1 22 8000 1 0 -/tmp/library/3/Artist 17/Album 2/7 - Track 7.ogg -Track 7 -Artist 17 -Album 2 - -Tryout -10:00 -63 2013 7 0 0 0 0 600 22 8000 1 0 -/tmp/library/3/Artist 17/Album 2/6 - Track 6.ogg -Track 6 -Artist 17 -Album 2 - -Tryout -1:00 -64 2013 6 0 0 0 0 60 22 8000 1 0 -/tmp/library/3/Artist 17/Album 2/5 - Track 5.ogg -Track 5 -Artist 17 -Album 2 - -Tryout -0:10 -65 2013 5 0 0 0 0 10 22 8000 1 0 -/tmp/library/3/Artist 17/Album 2/4 - Track 4.ogg -Track 4 -Artist 17 -Album 2 - -Tryout -0:01 -66 2013 4 1 1 1 2014 1 22 8000 1 0 -/tmp/library/3/Artist 17/Album 2/3 - Track 3.ogg -Track 3 -Artist 17 -Album 2 - -Tryout -10:00 -67 2013 3 0 0 0 0 600 22 8000 1 0 -/tmp/library/3/Artist 17/Album 2/2 - Track 2.ogg -Track 2 -Artist 17 -Album 2 - -Tryout -1:00 -68 2013 2 0 0 0 0 60 22 8000 1 0 -/tmp/library/3/Artist 17/Album 2/1 - Track 1.ogg -Track 1 -Artist 17 -Album 2 - -Tryout -0:10 -69 2013 1 0 0 0 0 10 22 8000 1 0 -/tmp/library/3/Artist 17/Album 1/10 - Track 10.ogg -Track 10 -Artist 17 -Album 1 - -Trial -1:00 -70 2012 10 0 0 0 0 60 22 8000 1 0 -/tmp/library/3/Artist 17/Album 1/9 - Track 9.ogg -Track 9 -Artist 17 -Album 1 - -Trial -0:10 -71 2012 9 0 0 0 0 10 22 8000 1 0 -/tmp/library/3/Artist 17/Album 1/8 - Track 8.ogg -Track 8 -Artist 17 -Album 1 - -Trial -0:01 -72 2012 8 0 0 0 0 1 22 8000 1 0 -/tmp/library/3/Artist 17/Album 1/7 - Track 7.ogg -Track 7 -Artist 17 -Album 1 - -Trial -10:00 -73 2012 7 0 0 0 0 600 22 8000 1 0 -/tmp/library/3/Artist 17/Album 1/6 - Track 6.ogg -Track 6 -Artist 17 -Album 1 - -Trial -1:00 -74 2012 6 0 0 0 0 60 22 8000 1 0 -/tmp/library/3/Artist 17/Album 1/5 - Track 5.ogg -Track 5 -Artist 17 -Album 1 - -Trial -0:10 -75 2012 5 0 0 0 0 10 22 8000 1 0 -/tmp/library/3/Artist 17/Album 1/4 - Track 4.ogg -Track 4 -Artist 17 -Album 1 - -Trial -0:01 -76 2012 4 0 0 0 0 1 22 8000 1 0 -/tmp/library/3/Artist 17/Album 1/3 - Track 3.ogg -Track 3 -Artist 17 -Album 1 - -Trial -10:00 -77 2012 3 0 0 0 0 600 22 8000 1 0 -/tmp/library/3/Artist 17/Album 1/2 - Track 2.ogg -Track 2 -Artist 17 -Album 1 - -Trial -1:00 -78 2012 2 0 0 0 0 60 22 8000 1 0 -/tmp/library/3/Artist 17/Album 1/1 - Track 1.ogg -Track 1 -Artist 17 -Album 1 - -Trial -0:10 -79 2012 1 0 0 0 0 10 22 8000 1 0 -/tmp/library/3/Artist 17/Album 0/10 - Track 10.ogg -Track 10 -Artist 17 -Album 0 - -Test -1:00 -80 2011 10 0 0 0 0 60 22 8000 1 0 -/tmp/library/3/Artist 17/Album 0/9 - Track 9.ogg -Track 9 -Artist 17 -Album 0 - -Test -0:10 -81 2011 9 0 0 0 0 10 22 8000 1 0 -/tmp/library/3/Artist 17/Album 0/8 - Track 8.ogg -Track 8 -Artist 17 -Album 0 - -Test -0:01 -82 2011 8 0 0 0 0 1 22 8000 1 0 -/tmp/library/3/Artist 17/Album 0/7 - Track 7.ogg -Track 7 -Artist 17 -Album 0 - -Test -10:00 -83 2011 7 0 0 0 0 600 22 8000 1 0 -/tmp/library/3/Artist 17/Album 0/6 - Track 6.ogg -Track 6 -Artist 17 -Album 0 - -Test -1:00 -84 2011 6 0 0 0 0 60 22 8000 1 0 -/tmp/library/3/Artist 17/Album 0/5 - Track 5.ogg -Track 5 -Artist 17 -Album 0 - -Test -0:10 -85 2011 5 0 0 0 0 10 22 8000 1 0 -/tmp/library/3/Artist 17/Album 0/4 - Track 4.ogg -Track 4 -Artist 17 -Album 0 - -Test -0:01 -86 2011 4 0 0 0 0 1 22 8000 1 0 -/tmp/library/3/Artist 17/Album 0/3 - Track 3.ogg -Track 3 -Artist 17 -Album 0 - -Test -10:00 -87 2011 3 0 0 0 0 600 22 8000 1 0 -/tmp/library/3/Artist 17/Album 0/2 - Track 2.ogg -Track 2 -Artist 17 -Album 0 - -Test -1:00 -88 2011 2 0 0 0 0 60 22 8000 1 0 -/tmp/library/3/Artist 17/Album 0/1 - Track 1.ogg -Track 1 -Artist 17 -Album 0 - -Test -0:10 -89 2011 1 0 0 0 0 10 22 8000 1 0 -/tmp/library/3/Artist 16/Album 2/10 - Track 10.ogg -Track 10 -Artist 16 -Album 2 - -Tryout -1:00 -90 2013 10 0 0 0 0 60 22 8000 1 0 -/tmp/library/3/Artist 16/Album 2/9 - Track 9.ogg -Track 9 -Artist 16 -Album 2 - -Tryout -0:10 -91 2013 9 0 0 0 0 10 22 8000 1 0 -/tmp/library/3/Artist 16/Album 2/8 - Track 8.ogg -Track 8 -Artist 16 -Album 2 - -Tryout -0:01 -92 2013 8 0 0 0 0 1 22 8000 1 0 -/tmp/library/3/Artist 16/Album 2/7 - Track 7.ogg -Track 7 -Artist 16 -Album 2 - -Tryout -10:00 -93 2013 7 0 0 0 0 600 22 8000 1 0 -/tmp/library/3/Artist 16/Album 2/6 - Track 6.ogg -Track 6 -Artist 16 -Album 2 - -Tryout -1:00 -94 2013 6 0 0 0 0 60 22 8000 1 0 -/tmp/library/3/Artist 16/Album 2/5 - Track 5.ogg -Track 5 -Artist 16 -Album 2 - -Tryout -0:10 -95 2013 5 0 0 0 0 10 22 8000 1 0 -/tmp/library/3/Artist 16/Album 2/4 - Track 4.ogg -Track 4 -Artist 16 -Album 2 - -Tryout -0:01 -96 2013 4 0 0 0 0 1 22 8000 1 0 -/tmp/library/3/Artist 16/Album 2/3 - Track 3.ogg -Track 3 -Artist 16 -Album 2 - -Tryout -10:00 -97 2013 3 0 0 0 0 600 22 8000 1 0 -/tmp/library/3/Artist 16/Album 2/2 - Track 2.ogg -Track 2 -Artist 16 -Album 2 - -Tryout -1:00 -98 2013 2 0 0 0 0 60 22 8000 1 0 -/tmp/library/3/Artist 16/Album 2/1 - Track 1.ogg -Track 1 -Artist 16 -Album 2 - -Tryout -0:10 -99 2013 1 0 0 0 0 10 22 8000 1 0 -/tmp/library/3/Artist 16/Album 1/10 - Track 10.ogg -Track 10 -Artist 16 -Album 1 - -Trial -1:00 -100 2012 10 0 0 0 0 60 22 8000 1 0 -/tmp/library/3/Artist 16/Album 1/9 - Track 9.ogg -Track 9 -Artist 16 -Album 1 - -Trial -0:10 -101 2012 9 0 0 0 0 10 22 8000 1 0 -/tmp/library/3/Artist 16/Album 1/8 - Track 8.ogg -Track 8 -Artist 16 -Album 1 - -Trial -0:01 -102 2012 8 0 0 0 0 1 22 8000 1 0 -/tmp/library/3/Artist 16/Album 1/7 - Track 7.ogg -Track 7 -Artist 16 -Album 1 - -Trial -10:00 -103 2012 7 0 0 0 0 600 22 8000 1 0 -/tmp/library/3/Artist 16/Album 1/6 - Track 6.ogg -Track 6 -Artist 16 -Album 1 - -Trial -1:00 -104 2012 6 0 0 0 0 60 22 8000 1 0 -/tmp/library/3/Artist 16/Album 1/5 - Track 5.ogg -Track 5 -Artist 16 -Album 1 - -Trial -0:10 -105 2012 5 0 0 0 0 10 22 8000 1 0 -/tmp/library/3/Artist 16/Album 1/4 - Track 4.ogg -Track 4 -Artist 16 -Album 1 - -Trial -0:01 -106 2012 4 0 0 0 0 1 22 8000 1 0 -/tmp/library/3/Artist 16/Album 1/3 - Track 3.ogg -Track 3 -Artist 16 -Album 1 - -Trial -10:00 -107 2012 3 0 0 0 0 600 22 8000 1 0 -/tmp/library/3/Artist 16/Album 1/2 - Track 2.ogg -Track 2 -Artist 16 -Album 1 - -Trial -1:00 -108 2012 2 0 0 0 0 60 22 8000 1 0 -/tmp/library/3/Artist 16/Album 1/1 - Track 1.ogg -Track 1 -Artist 16 -Album 1 - -Trial -0:10 -109 2012 1 0 0 0 0 10 22 8000 1 0 -/tmp/library/3/Artist 16/Album 0/10 - Track 10.ogg -Track 10 -Artist 16 -Album 0 - -Test -1:00 -110 2011 10 0 0 0 0 60 22 8000 1 0 -/tmp/library/3/Artist 16/Album 0/9 - Track 9.ogg -Track 9 -Artist 16 -Album 0 - -Test -0:10 -111 2011 9 0 0 0 0 10 22 8000 1 0 -/tmp/library/3/Artist 16/Album 0/8 - Track 8.ogg -Track 8 -Artist 16 -Album 0 - -Test -0:01 -112 2011 8 0 0 0 0 1 22 8000 1 0 -/tmp/library/3/Artist 16/Album 0/7 - Track 7.ogg -Track 7 -Artist 16 -Album 0 - -Test -10:00 -113 2011 7 0 0 0 0 600 22 8000 1 0 -/tmp/library/3/Artist 16/Album 0/6 - Track 6.ogg -Track 6 -Artist 16 -Album 0 - -Test -1:00 -114 2011 6 0 0 0 0 60 22 8000 1 0 -/tmp/library/3/Artist 16/Album 0/5 - Track 5.ogg -Track 5 -Artist 16 -Album 0 - -Test -0:10 -115 2011 5 0 0 0 0 10 22 8000 1 0 -/tmp/library/3/Artist 16/Album 0/4 - Track 4.ogg -Track 4 -Artist 16 -Album 0 - -Test -0:01 -116 2011 4 0 0 0 0 1 22 8000 1 0 -/tmp/library/3/Artist 16/Album 0/3 - Track 3.ogg -Track 3 -Artist 16 -Album 0 - -Test -10:00 -117 2011 3 0 0 0 0 600 22 8000 1 0 -/tmp/library/3/Artist 16/Album 0/2 - Track 2.ogg -Track 2 -Artist 16 -Album 0 - -Test -1:00 -118 2011 2 0 0 0 0 60 22 8000 1 0 -/tmp/library/3/Artist 16/Album 0/1 - Track 1.ogg -Track 1 -Artist 16 -Album 0 - -Test -0:10 -119 2011 1 0 0 0 0 10 22 8000 1 0 -/tmp/library/3/Artist 15/Album 2/10 - Track 10.ogg -Track 10 -Artist 15 -Album 2 - -Tryout -1:00 -120 2013 10 0 0 0 0 60 22 8000 1 0 -/tmp/library/3/Artist 15/Album 2/9 - Track 9.ogg -Track 9 -Artist 15 -Album 2 - -Tryout -0:10 -121 2013 9 0 0 0 0 10 22 8000 1 0 -/tmp/library/3/Artist 15/Album 2/8 - Track 8.ogg -Track 8 -Artist 15 -Album 2 - -Tryout -0:01 -122 2013 8 1 1 1 2014 1 22 8000 1 0 -/tmp/library/3/Artist 15/Album 2/7 - Track 7.ogg -Track 7 -Artist 15 -Album 2 - -Tryout -10:00 -123 2013 7 0 0 0 0 600 22 8000 1 0 -/tmp/library/3/Artist 15/Album 2/6 - Track 6.ogg -Track 6 -Artist 15 -Album 2 - -Tryout -1:00 -124 2013 6 0 0 0 0 60 22 8000 1 0 -/tmp/library/3/Artist 15/Album 2/5 - Track 5.ogg -Track 5 -Artist 15 -Album 2 - -Tryout -0:10 -125 2013 5 0 0 0 0 10 22 8000 1 0 -/tmp/library/3/Artist 15/Album 2/4 - Track 4.ogg -Track 4 -Artist 15 -Album 2 - -Tryout -0:01 -126 2013 4 0 0 0 0 1 22 8000 1 0 -/tmp/library/3/Artist 15/Album 2/3 - Track 3.ogg -Track 3 -Artist 15 -Album 2 - -Tryout -10:00 -127 2013 3 0 0 0 0 600 22 8000 1 0 -/tmp/library/3/Artist 15/Album 2/2 - Track 2.ogg -Track 2 -Artist 15 -Album 2 - -Tryout -1:00 -128 2013 2 0 0 0 0 60 22 8000 1 0 -/tmp/library/3/Artist 15/Album 2/1 - Track 1.ogg -Track 1 -Artist 15 -Album 2 - -Tryout -0:10 -129 2013 1 0 0 0 0 10 22 8000 1 0 -/tmp/library/3/Artist 15/Album 1/10 - Track 10.ogg -Track 10 -Artist 15 -Album 1 - -Trial -1:00 -130 2012 10 0 0 0 0 60 22 8000 1 0 -/tmp/library/3/Artist 15/Album 1/9 - Track 9.ogg -Track 9 -Artist 15 -Album 1 - -Trial -0:10 -131 2012 9 0 0 0 0 10 22 8000 1 0 -/tmp/library/3/Artist 15/Album 1/8 - Track 8.ogg -Track 8 -Artist 15 -Album 1 - -Trial -0:01 -132 2012 8 0 0 0 0 1 22 8000 1 0 -/tmp/library/3/Artist 15/Album 1/7 - Track 7.ogg -Track 7 -Artist 15 -Album 1 - -Trial -10:00 -133 2012 7 0 0 0 0 600 22 8000 1 0 -/tmp/library/3/Artist 15/Album 1/6 - Track 6.ogg -Track 6 -Artist 15 -Album 1 - -Trial -1:00 -134 2012 6 0 0 0 0 60 22 8000 1 0 -/tmp/library/3/Artist 15/Album 1/5 - Track 5.ogg -Track 5 -Artist 15 -Album 1 - -Trial -0:10 -135 2012 5 0 0 0 0 10 22 8000 1 0 -/tmp/library/3/Artist 15/Album 1/4 - Track 4.ogg -Track 4 -Artist 15 -Album 1 - -Trial -0:01 -136 2012 4 0 0 0 0 1 22 8000 1 0 -/tmp/library/3/Artist 15/Album 1/3 - Track 3.ogg -Track 3 -Artist 15 -Album 1 - -Trial -10:00 -137 2012 3 0 0 0 0 600 22 8000 1 0 -/tmp/library/3/Artist 15/Album 1/2 - Track 2.ogg -Track 2 -Artist 15 -Album 1 - -Trial -1:00 -138 2012 2 0 0 0 0 60 22 8000 1 0 -/tmp/library/3/Artist 15/Album 1/1 - Track 1.ogg -Track 1 -Artist 15 -Album 1 - -Trial -0:10 -139 2012 1 0 0 0 0 10 22 8000 1 0 -/tmp/library/3/Artist 15/Album 0/10 - Track 10.ogg -Track 10 -Artist 15 -Album 0 - -Test -1:00 -140 2011 10 0 0 0 0 60 22 8000 1 0 -/tmp/library/3/Artist 15/Album 0/9 - Track 9.ogg -Track 9 -Artist 15 -Album 0 - -Test -0:10 -141 2011 9 0 0 0 0 10 22 8000 1 0 -/tmp/library/3/Artist 15/Album 0/8 - Track 8.ogg -Track 8 -Artist 15 -Album 0 - -Test -0:01 -142 2011 8 0 0 0 0 1 22 8000 1 0 -/tmp/library/3/Artist 15/Album 0/7 - Track 7.ogg -Track 7 -Artist 15 -Album 0 - -Test -10:00 -143 2011 7 0 0 0 0 600 22 8000 1 0 -/tmp/library/3/Artist 15/Album 0/6 - Track 6.ogg -Track 6 -Artist 15 -Album 0 - -Test -1:00 -144 2011 6 0 0 0 0 60 22 8000 1 0 -/tmp/library/3/Artist 15/Album 0/5 - Track 5.ogg -Track 5 -Artist 15 -Album 0 - -Test -0:10 -145 2011 5 0 0 0 0 10 22 8000 1 0 -/tmp/library/3/Artist 15/Album 0/4 - Track 4.ogg -Track 4 -Artist 15 -Album 0 - -Test -0:01 -146 2011 4 0 0 0 0 1 22 8000 1 0 -/tmp/library/3/Artist 15/Album 0/3 - Track 3.ogg -Track 3 -Artist 15 -Album 0 - -Test -10:00 -147 2011 3 0 0 0 0 600 22 8000 1 0 -/tmp/library/3/Artist 15/Album 0/2 - Track 2.ogg -Track 2 -Artist 15 -Album 0 - -Test -1:00 -148 2011 2 0 0 0 0 60 22 8000 1 0 -/tmp/library/3/Artist 15/Album 0/1 - Track 1.ogg -Track 1 -Artist 15 -Album 0 - -Test -0:10 -149 2011 1 0 0 0 0 10 22 8000 1 0 diff --git a/tests/library/3 b/tests/library/3 deleted file mode 100644 index 6e467d22..00000000 --- a/tests/library/3 +++ /dev/null @@ -1,1203 +0,0 @@ -2 -/tmp/library/4 -2 1 150 150 -/tmp/library/4/Artist 24/Album 2/10 - Track 10.ogg -Track 10 -Artist 24 -Album 2 - -Tryout -1:00 -0 2013 10 0 0 0 0 60 22 8000 1 0 -/tmp/library/4/Artist 24/Album 2/9 - Track 9.ogg -Track 9 -Artist 24 -Album 2 - -Tryout -0:10 -1 2013 9 0 0 0 0 10 22 8000 1 0 -/tmp/library/4/Artist 24/Album 2/8 - Track 8.ogg -Track 8 -Artist 24 -Album 2 - -Tryout -0:01 -2 2013 8 0 0 0 0 1 22 8000 1 0 -/tmp/library/4/Artist 24/Album 2/7 - Track 7.ogg -Track 7 -Artist 24 -Album 2 - -Tryout -10:00 -3 2013 7 0 0 0 0 600 22 8000 1 0 -/tmp/library/4/Artist 24/Album 2/6 - Track 6.ogg -Track 6 -Artist 24 -Album 2 - -Tryout -1:00 -4 2013 6 0 0 0 0 60 22 8000 1 0 -/tmp/library/4/Artist 24/Album 2/5 - Track 5.ogg -Track 5 -Artist 24 -Album 2 - -Tryout -0:10 -5 2013 5 0 0 0 0 10 22 8000 1 0 -/tmp/library/4/Artist 24/Album 2/4 - Track 4.ogg -Track 4 -Artist 24 -Album 2 - -Tryout -0:01 -6 2013 4 0 0 0 0 1 22 8000 1 0 -/tmp/library/4/Artist 24/Album 2/3 - Track 3.ogg -Track 3 -Artist 24 -Album 2 - -Tryout -10:00 -7 2013 3 0 0 0 0 600 22 8000 1 0 -/tmp/library/4/Artist 24/Album 2/2 - Track 2.ogg -Track 2 -Artist 24 -Album 2 - -Tryout -1:00 -8 2013 2 0 0 0 0 60 22 8000 1 0 -/tmp/library/4/Artist 24/Album 2/1 - Track 1.ogg -Track 1 -Artist 24 -Album 2 - -Tryout -0:10 -9 2013 1 0 0 0 0 10 22 8000 1 0 -/tmp/library/4/Artist 24/Album 1/10 - Track 10.ogg -Track 10 -Artist 24 -Album 1 - -Trial -1:00 -10 2012 10 0 0 0 0 60 22 8000 1 0 -/tmp/library/4/Artist 24/Album 1/9 - Track 9.ogg -Track 9 -Artist 24 -Album 1 - -Trial -0:10 -11 2012 9 0 0 0 0 10 22 8000 1 0 -/tmp/library/4/Artist 24/Album 1/8 - Track 8.ogg -Track 8 -Artist 24 -Album 1 - -Trial -0:01 -12 2012 8 0 0 0 0 1 22 8000 1 0 -/tmp/library/4/Artist 24/Album 1/7 - Track 7.ogg -Track 7 -Artist 24 -Album 1 - -Trial -10:00 -13 2012 7 0 0 0 0 600 22 8000 1 0 -/tmp/library/4/Artist 24/Album 1/6 - Track 6.ogg -Track 6 -Artist 24 -Album 1 - -Trial -1:00 -14 2012 6 0 0 0 0 60 22 8000 1 0 -/tmp/library/4/Artist 24/Album 1/5 - Track 5.ogg -Track 5 -Artist 24 -Album 1 - -Trial -0:10 -15 2012 5 0 0 0 0 10 22 8000 1 0 -/tmp/library/4/Artist 24/Album 1/4 - Track 4.ogg -Track 4 -Artist 24 -Album 1 - -Trial -0:01 -16 2012 4 0 0 0 0 1 22 8000 1 0 -/tmp/library/4/Artist 24/Album 1/3 - Track 3.ogg -Track 3 -Artist 24 -Album 1 - -Trial -10:00 -17 2012 3 0 0 0 0 600 22 8000 1 0 -/tmp/library/4/Artist 24/Album 1/2 - Track 2.ogg -Track 2 -Artist 24 -Album 1 - -Trial -1:00 -18 2012 2 0 0 0 0 60 22 8000 1 0 -/tmp/library/4/Artist 24/Album 1/1 - Track 1.ogg -Track 1 -Artist 24 -Album 1 - -Trial -0:10 -19 2012 1 0 0 0 0 10 22 8000 1 0 -/tmp/library/4/Artist 24/Album 0/10 - Track 10.ogg -Track 10 -Artist 24 -Album 0 - -Test -1:00 -20 2011 10 0 0 0 0 60 22 8000 1 0 -/tmp/library/4/Artist 24/Album 0/9 - Track 9.ogg -Track 9 -Artist 24 -Album 0 - -Test -0:10 -21 2011 9 0 0 0 0 10 22 8000 1 0 -/tmp/library/4/Artist 24/Album 0/8 - Track 8.ogg -Track 8 -Artist 24 -Album 0 - -Test -0:01 -22 2011 8 0 0 0 0 1 22 8000 1 0 -/tmp/library/4/Artist 24/Album 0/7 - Track 7.ogg -Track 7 -Artist 24 -Album 0 - -Test -10:00 -23 2011 7 0 0 0 0 600 22 8000 1 0 -/tmp/library/4/Artist 24/Album 0/6 - Track 6.ogg -Track 6 -Artist 24 -Album 0 - -Test -1:00 -24 2011 6 0 0 0 0 60 22 8000 1 0 -/tmp/library/4/Artist 24/Album 0/5 - Track 5.ogg -Track 5 -Artist 24 -Album 0 - -Test -0:10 -25 2011 5 0 0 0 0 10 22 8000 1 0 -/tmp/library/4/Artist 24/Album 0/4 - Track 4.ogg -Track 4 -Artist 24 -Album 0 - -Test -0:01 -26 2011 4 0 0 0 0 1 22 8000 1 0 -/tmp/library/4/Artist 24/Album 0/3 - Track 3.ogg -Track 3 -Artist 24 -Album 0 - -Test -10:00 -27 2011 3 0 0 0 0 600 22 8000 1 0 -/tmp/library/4/Artist 24/Album 0/2 - Track 2.ogg -Track 2 -Artist 24 -Album 0 - -Test -1:00 -28 2011 2 0 0 0 0 60 22 8000 1 0 -/tmp/library/4/Artist 24/Album 0/1 - Track 1.ogg -Track 1 -Artist 24 -Album 0 - -Test -0:10 -29 2011 1 0 0 0 0 10 22 8000 1 0 -/tmp/library/4/Artist 23/Album 2/10 - Track 10.ogg -Track 10 -Artist 23 -Album 2 - -Tryout -1:00 -30 2013 10 0 0 0 0 60 22 8000 1 0 -/tmp/library/4/Artist 23/Album 2/9 - Track 9.ogg -Track 9 -Artist 23 -Album 2 - -Tryout -0:10 -31 2013 9 0 0 0 0 10 22 8000 1 0 -/tmp/library/4/Artist 23/Album 2/8 - Track 8.ogg -Track 8 -Artist 23 -Album 2 - -Tryout -0:01 -32 2013 8 0 0 0 0 1 22 8000 1 0 -/tmp/library/4/Artist 23/Album 2/7 - Track 7.ogg -Track 7 -Artist 23 -Album 2 - -Tryout -10:00 -33 2013 7 0 0 0 0 600 22 8000 1 0 -/tmp/library/4/Artist 23/Album 2/6 - Track 6.ogg -Track 6 -Artist 23 -Album 2 - -Tryout -1:00 -34 2013 6 0 0 0 0 60 22 8000 1 0 -/tmp/library/4/Artist 23/Album 2/5 - Track 5.ogg -Track 5 -Artist 23 -Album 2 - -Tryout -0:10 -35 2013 5 0 0 0 0 10 22 8000 1 0 -/tmp/library/4/Artist 23/Album 2/4 - Track 4.ogg -Track 4 -Artist 23 -Album 2 - -Tryout -0:01 -36 2013 4 0 0 0 0 1 22 8000 1 0 -/tmp/library/4/Artist 23/Album 2/3 - Track 3.ogg -Track 3 -Artist 23 -Album 2 - -Tryout -10:00 -37 2013 3 0 0 0 0 600 22 8000 1 0 -/tmp/library/4/Artist 23/Album 2/2 - Track 2.ogg -Track 2 -Artist 23 -Album 2 - -Tryout -1:00 -38 2013 2 0 0 0 0 60 22 8000 1 0 -/tmp/library/4/Artist 23/Album 2/1 - Track 1.ogg -Track 1 -Artist 23 -Album 2 - -Tryout -0:10 -39 2013 1 0 0 0 0 10 22 8000 1 0 -/tmp/library/4/Artist 23/Album 1/10 - Track 10.ogg -Track 10 -Artist 23 -Album 1 - -Trial -1:00 -40 2012 10 0 0 0 0 60 22 8000 1 0 -/tmp/library/4/Artist 23/Album 1/9 - Track 9.ogg -Track 9 -Artist 23 -Album 1 - -Trial -0:10 -41 2012 9 0 0 0 0 10 22 8000 1 0 -/tmp/library/4/Artist 23/Album 1/8 - Track 8.ogg -Track 8 -Artist 23 -Album 1 - -Trial -0:01 -42 2012 8 0 0 0 0 1 22 8000 1 0 -/tmp/library/4/Artist 23/Album 1/7 - Track 7.ogg -Track 7 -Artist 23 -Album 1 - -Trial -10:00 -43 2012 7 0 0 0 0 600 22 8000 1 0 -/tmp/library/4/Artist 23/Album 1/6 - Track 6.ogg -Track 6 -Artist 23 -Album 1 - -Trial -1:00 -44 2012 6 0 0 0 0 60 22 8000 1 0 -/tmp/library/4/Artist 23/Album 1/5 - Track 5.ogg -Track 5 -Artist 23 -Album 1 - -Trial -0:10 -45 2012 5 0 0 0 0 10 22 8000 1 0 -/tmp/library/4/Artist 23/Album 1/4 - Track 4.ogg -Track 4 -Artist 23 -Album 1 - -Trial -0:01 -46 2012 4 0 0 0 0 1 22 8000 1 0 -/tmp/library/4/Artist 23/Album 1/3 - Track 3.ogg -Track 3 -Artist 23 -Album 1 - -Trial -10:00 -47 2012 3 0 0 0 0 600 22 8000 1 0 -/tmp/library/4/Artist 23/Album 1/2 - Track 2.ogg -Track 2 -Artist 23 -Album 1 - -Trial -1:00 -48 2012 2 0 0 0 0 60 22 8000 1 0 -/tmp/library/4/Artist 23/Album 1/1 - Track 1.ogg -Track 1 -Artist 23 -Album 1 - -Trial -0:10 -49 2012 1 0 0 0 0 10 22 8000 1 0 -/tmp/library/4/Artist 23/Album 0/10 - Track 10.ogg -Track 10 -Artist 23 -Album 0 - -Test -1:00 -50 2011 10 0 0 0 0 60 22 8000 1 0 -/tmp/library/4/Artist 23/Album 0/9 - Track 9.ogg -Track 9 -Artist 23 -Album 0 - -Test -0:10 -51 2011 9 0 0 0 0 10 22 8000 1 0 -/tmp/library/4/Artist 23/Album 0/8 - Track 8.ogg -Track 8 -Artist 23 -Album 0 - -Test -0:01 -52 2011 8 0 0 0 0 1 22 8000 1 0 -/tmp/library/4/Artist 23/Album 0/7 - Track 7.ogg -Track 7 -Artist 23 -Album 0 - -Test -10:00 -53 2011 7 0 0 0 0 600 22 8000 1 0 -/tmp/library/4/Artist 23/Album 0/6 - Track 6.ogg -Track 6 -Artist 23 -Album 0 - -Test -1:00 -54 2011 6 0 0 0 0 60 22 8000 1 0 -/tmp/library/4/Artist 23/Album 0/5 - Track 5.ogg -Track 5 -Artist 23 -Album 0 - -Test -0:10 -55 2011 5 0 0 0 0 10 22 8000 1 0 -/tmp/library/4/Artist 23/Album 0/4 - Track 4.ogg -Track 4 -Artist 23 -Album 0 - -Test -0:01 -56 2011 4 1 1 1 2014 1 22 8000 1 0 -/tmp/library/4/Artist 23/Album 0/3 - Track 3.ogg -Track 3 -Artist 23 -Album 0 - -Test -10:00 -57 2011 3 0 0 0 0 600 22 8000 1 0 -/tmp/library/4/Artist 23/Album 0/2 - Track 2.ogg -Track 2 -Artist 23 -Album 0 - -Test -1:00 -58 2011 2 0 0 0 0 60 22 8000 1 0 -/tmp/library/4/Artist 23/Album 0/1 - Track 1.ogg -Track 1 -Artist 23 -Album 0 - -Test -0:10 -59 2011 1 0 0 0 0 10 22 8000 1 0 -/tmp/library/4/Artist 22/Album 2/10 - Track 10.ogg -Track 10 -Artist 22 -Album 2 - -Tryout -1:00 -60 2013 10 0 0 0 0 60 22 8000 1 0 -/tmp/library/4/Artist 22/Album 2/9 - Track 9.ogg -Track 9 -Artist 22 -Album 2 - -Tryout -0:10 -61 2013 9 0 0 0 0 10 22 8000 1 0 -/tmp/library/4/Artist 22/Album 2/8 - Track 8.ogg -Track 8 -Artist 22 -Album 2 - -Tryout -0:01 -62 2013 8 0 0 0 0 1 22 8000 1 0 -/tmp/library/4/Artist 22/Album 2/7 - Track 7.ogg -Track 7 -Artist 22 -Album 2 - -Tryout -10:00 -63 2013 7 0 0 0 0 600 22 8000 1 0 -/tmp/library/4/Artist 22/Album 2/6 - Track 6.ogg -Track 6 -Artist 22 -Album 2 - -Tryout -1:00 -64 2013 6 0 0 0 0 60 22 8000 1 0 -/tmp/library/4/Artist 22/Album 2/5 - Track 5.ogg -Track 5 -Artist 22 -Album 2 - -Tryout -0:10 -65 2013 5 0 0 0 0 10 22 8000 1 0 -/tmp/library/4/Artist 22/Album 2/4 - Track 4.ogg -Track 4 -Artist 22 -Album 2 - -Tryout -0:01 -66 2013 4 0 0 0 0 1 22 8000 1 0 -/tmp/library/4/Artist 22/Album 2/3 - Track 3.ogg -Track 3 -Artist 22 -Album 2 - -Tryout -10:00 -67 2013 3 0 0 0 0 600 22 8000 1 0 -/tmp/library/4/Artist 22/Album 2/2 - Track 2.ogg -Track 2 -Artist 22 -Album 2 - -Tryout -1:00 -68 2013 2 0 0 0 0 60 22 8000 1 0 -/tmp/library/4/Artist 22/Album 2/1 - Track 1.ogg -Track 1 -Artist 22 -Album 2 - -Tryout -0:10 -69 2013 1 0 0 0 0 10 22 8000 1 0 -/tmp/library/4/Artist 22/Album 1/10 - Track 10.ogg -Track 10 -Artist 22 -Album 1 - -Trial -1:00 -70 2012 10 0 0 0 0 60 22 8000 1 0 -/tmp/library/4/Artist 22/Album 1/9 - Track 9.ogg -Track 9 -Artist 22 -Album 1 - -Trial -0:10 -71 2012 9 0 0 0 0 10 22 8000 1 0 -/tmp/library/4/Artist 22/Album 1/8 - Track 8.ogg -Track 8 -Artist 22 -Album 1 - -Trial -0:01 -72 2012 8 0 0 0 0 1 22 8000 1 0 -/tmp/library/4/Artist 22/Album 1/7 - Track 7.ogg -Track 7 -Artist 22 -Album 1 - -Trial -10:00 -73 2012 7 0 0 0 0 600 22 8000 1 0 -/tmp/library/4/Artist 22/Album 1/6 - Track 6.ogg -Track 6 -Artist 22 -Album 1 - -Trial -1:00 -74 2012 6 0 0 0 0 60 22 8000 1 0 -/tmp/library/4/Artist 22/Album 1/5 - Track 5.ogg -Track 5 -Artist 22 -Album 1 - -Trial -0:10 -75 2012 5 0 0 0 0 10 22 8000 1 0 -/tmp/library/4/Artist 22/Album 1/4 - Track 4.ogg -Track 4 -Artist 22 -Album 1 - -Trial -0:01 -76 2012 4 0 0 0 0 1 22 8000 1 0 -/tmp/library/4/Artist 22/Album 1/3 - Track 3.ogg -Track 3 -Artist 22 -Album 1 - -Trial -10:00 -77 2012 3 0 0 0 0 600 22 8000 1 0 -/tmp/library/4/Artist 22/Album 1/2 - Track 2.ogg -Track 2 -Artist 22 -Album 1 - -Trial -1:00 -78 2012 2 0 0 0 0 60 22 8000 1 0 -/tmp/library/4/Artist 22/Album 1/1 - Track 1.ogg -Track 1 -Artist 22 -Album 1 - -Trial -0:10 -79 2012 1 0 0 0 0 10 22 8000 1 0 -/tmp/library/4/Artist 22/Album 0/10 - Track 10.ogg -Track 10 -Artist 22 -Album 0 - -Test -1:00 -80 2011 10 0 0 0 0 60 22 8000 1 0 -/tmp/library/4/Artist 22/Album 0/9 - Track 9.ogg -Track 9 -Artist 22 -Album 0 - -Test -0:10 -81 2011 9 0 0 0 0 10 22 8000 1 0 -/tmp/library/4/Artist 22/Album 0/8 - Track 8.ogg -Track 8 -Artist 22 -Album 0 - -Test -0:01 -82 2011 8 0 0 0 0 1 22 8000 1 0 -/tmp/library/4/Artist 22/Album 0/7 - Track 7.ogg -Track 7 -Artist 22 -Album 0 - -Test -10:00 -83 2011 7 0 0 0 0 600 22 8000 1 0 -/tmp/library/4/Artist 22/Album 0/6 - Track 6.ogg -Track 6 -Artist 22 -Album 0 - -Test -1:00 -84 2011 6 0 0 0 0 60 22 8000 1 0 -/tmp/library/4/Artist 22/Album 0/5 - Track 5.ogg -Track 5 -Artist 22 -Album 0 - -Test -0:10 -85 2011 5 0 0 0 0 10 22 8000 1 0 -/tmp/library/4/Artist 22/Album 0/4 - Track 4.ogg -Track 4 -Artist 22 -Album 0 - -Test -0:01 -86 2011 4 0 0 0 0 1 22 8000 1 0 -/tmp/library/4/Artist 22/Album 0/3 - Track 3.ogg -Track 3 -Artist 22 -Album 0 - -Test -10:00 -87 2011 3 0 0 0 0 600 22 8000 1 0 -/tmp/library/4/Artist 22/Album 0/2 - Track 2.ogg -Track 2 -Artist 22 -Album 0 - -Test -1:00 -88 2011 2 0 0 0 0 60 22 8000 1 0 -/tmp/library/4/Artist 22/Album 0/1 - Track 1.ogg -Track 1 -Artist 22 -Album 0 - -Test -0:10 -89 2011 1 0 0 0 0 10 22 8000 1 0 -/tmp/library/4/Artist 21/Album 2/10 - Track 10.ogg -Track 10 -Artist 21 -Album 2 - -Tryout -1:00 -90 2013 10 0 0 0 0 60 22 8000 1 0 -/tmp/library/4/Artist 21/Album 2/9 - Track 9.ogg -Track 9 -Artist 21 -Album 2 - -Tryout -0:10 -91 2013 9 0 0 0 0 10 22 8000 1 0 -/tmp/library/4/Artist 21/Album 2/8 - Track 8.ogg -Track 8 -Artist 21 -Album 2 - -Tryout -0:01 -92 2013 8 0 0 0 0 1 22 8000 1 0 -/tmp/library/4/Artist 21/Album 2/7 - Track 7.ogg -Track 7 -Artist 21 -Album 2 - -Tryout -10:00 -93 2013 7 0 0 0 0 600 22 8000 1 0 -/tmp/library/4/Artist 21/Album 2/6 - Track 6.ogg -Track 6 -Artist 21 -Album 2 - -Tryout -1:00 -94 2013 6 0 0 0 0 60 22 8000 1 0 -/tmp/library/4/Artist 21/Album 2/5 - Track 5.ogg -Track 5 -Artist 21 -Album 2 - -Tryout -0:10 -95 2013 5 0 0 0 0 10 22 8000 1 0 -/tmp/library/4/Artist 21/Album 2/4 - Track 4.ogg -Track 4 -Artist 21 -Album 2 - -Tryout -0:01 -96 2013 4 0 0 0 0 1 22 8000 1 0 -/tmp/library/4/Artist 21/Album 2/3 - Track 3.ogg -Track 3 -Artist 21 -Album 2 - -Tryout -10:00 -97 2013 3 0 0 0 0 600 22 8000 1 0 -/tmp/library/4/Artist 21/Album 2/2 - Track 2.ogg -Track 2 -Artist 21 -Album 2 - -Tryout -1:00 -98 2013 2 0 0 0 0 60 22 8000 1 0 -/tmp/library/4/Artist 21/Album 2/1 - Track 1.ogg -Track 1 -Artist 21 -Album 2 - -Tryout -0:10 -99 2013 1 0 0 0 0 10 22 8000 1 0 -/tmp/library/4/Artist 21/Album 1/10 - Track 10.ogg -Track 10 -Artist 21 -Album 1 - -Trial -1:00 -100 2012 10 0 0 0 0 60 22 8000 1 0 -/tmp/library/4/Artist 21/Album 1/9 - Track 9.ogg -Track 9 -Artist 21 -Album 1 - -Trial -0:10 -101 2012 9 0 0 0 0 10 22 8000 1 0 -/tmp/library/4/Artist 21/Album 1/8 - Track 8.ogg -Track 8 -Artist 21 -Album 1 - -Trial -0:01 -102 2012 8 0 0 0 0 1 22 8000 1 0 -/tmp/library/4/Artist 21/Album 1/7 - Track 7.ogg -Track 7 -Artist 21 -Album 1 - -Trial -10:00 -103 2012 7 0 0 0 0 600 22 8000 1 0 -/tmp/library/4/Artist 21/Album 1/6 - Track 6.ogg -Track 6 -Artist 21 -Album 1 - -Trial -1:00 -104 2012 6 1 1 1 2014 60 22 8000 1 0 -/tmp/library/4/Artist 21/Album 1/5 - Track 5.ogg -Track 5 -Artist 21 -Album 1 - -Trial -0:10 -105 2012 5 0 0 0 0 10 22 8000 1 0 -/tmp/library/4/Artist 21/Album 1/4 - Track 4.ogg -Track 4 -Artist 21 -Album 1 - -Trial -0:01 -106 2012 4 0 0 0 0 1 22 8000 1 0 -/tmp/library/4/Artist 21/Album 1/3 - Track 3.ogg -Track 3 -Artist 21 -Album 1 - -Trial -10:00 -107 2012 3 0 0 0 0 600 22 8000 1 0 -/tmp/library/4/Artist 21/Album 1/2 - Track 2.ogg -Track 2 -Artist 21 -Album 1 - -Trial -1:00 -108 2012 2 0 0 0 0 60 22 8000 1 0 -/tmp/library/4/Artist 21/Album 1/1 - Track 1.ogg -Track 1 -Artist 21 -Album 1 - -Trial -0:10 -109 2012 1 0 0 0 0 10 22 8000 1 0 -/tmp/library/4/Artist 21/Album 0/10 - Track 10.ogg -Track 10 -Artist 21 -Album 0 - -Test -1:00 -110 2011 10 0 0 0 0 60 22 8000 1 0 -/tmp/library/4/Artist 21/Album 0/9 - Track 9.ogg -Track 9 -Artist 21 -Album 0 - -Test -0:10 -111 2011 9 0 0 0 0 10 22 8000 1 0 -/tmp/library/4/Artist 21/Album 0/8 - Track 8.ogg -Track 8 -Artist 21 -Album 0 - -Test -0:01 -112 2011 8 0 0 0 0 1 22 8000 1 0 -/tmp/library/4/Artist 21/Album 0/7 - Track 7.ogg -Track 7 -Artist 21 -Album 0 - -Test -10:00 -113 2011 7 0 0 0 0 600 22 8000 1 0 -/tmp/library/4/Artist 21/Album 0/6 - Track 6.ogg -Track 6 -Artist 21 -Album 0 - -Test -1:00 -114 2011 6 0 0 0 0 60 22 8000 1 0 -/tmp/library/4/Artist 21/Album 0/5 - Track 5.ogg -Track 5 -Artist 21 -Album 0 - -Test -0:10 -115 2011 5 0 0 0 0 10 22 8000 1 0 -/tmp/library/4/Artist 21/Album 0/4 - Track 4.ogg -Track 4 -Artist 21 -Album 0 - -Test -0:01 -116 2011 4 0 0 0 0 1 22 8000 1 0 -/tmp/library/4/Artist 21/Album 0/3 - Track 3.ogg -Track 3 -Artist 21 -Album 0 - -Test -10:00 -117 2011 3 0 0 0 0 600 22 8000 1 0 -/tmp/library/4/Artist 21/Album 0/2 - Track 2.ogg -Track 2 -Artist 21 -Album 0 - -Test -1:00 -118 2011 2 0 0 0 0 60 22 8000 1 0 -/tmp/library/4/Artist 21/Album 0/1 - Track 1.ogg -Track 1 -Artist 21 -Album 0 - -Test -0:10 -119 2011 1 0 0 0 0 10 22 8000 1 0 -/tmp/library/4/Artist 20/Album 2/10 - Track 10.ogg -Track 10 -Artist 20 -Album 2 - -Tryout -1:00 -120 2013 10 0 0 0 0 60 22 8000 1 0 -/tmp/library/4/Artist 20/Album 2/9 - Track 9.ogg -Track 9 -Artist 20 -Album 2 - -Tryout -0:10 -121 2013 9 0 0 0 0 10 22 8000 1 0 -/tmp/library/4/Artist 20/Album 2/8 - Track 8.ogg -Track 8 -Artist 20 -Album 2 - -Tryout -0:01 -122 2013 8 0 0 0 0 1 22 8000 1 0 -/tmp/library/4/Artist 20/Album 2/7 - Track 7.ogg -Track 7 -Artist 20 -Album 2 - -Tryout -10:00 -123 2013 7 0 0 0 0 600 22 8000 1 0 -/tmp/library/4/Artist 20/Album 2/6 - Track 6.ogg -Track 6 -Artist 20 -Album 2 - -Tryout -1:00 -124 2013 6 0 0 0 0 60 22 8000 1 0 -/tmp/library/4/Artist 20/Album 2/5 - Track 5.ogg -Track 5 -Artist 20 -Album 2 - -Tryout -0:10 -125 2013 5 0 0 0 0 10 22 8000 1 0 -/tmp/library/4/Artist 20/Album 2/4 - Track 4.ogg -Track 4 -Artist 20 -Album 2 - -Tryout -0:01 -126 2013 4 0 0 0 0 1 22 8000 1 0 -/tmp/library/4/Artist 20/Album 2/3 - Track 3.ogg -Track 3 -Artist 20 -Album 2 - -Tryout -10:00 -127 2013 3 0 0 0 0 600 22 8000 1 0 -/tmp/library/4/Artist 20/Album 2/2 - Track 2.ogg -Track 2 -Artist 20 -Album 2 - -Tryout -1:00 -128 2013 2 0 0 0 0 60 22 8000 1 0 -/tmp/library/4/Artist 20/Album 2/1 - Track 1.ogg -Track 1 -Artist 20 -Album 2 - -Tryout -0:10 -129 2013 1 0 0 0 0 10 22 8000 1 0 -/tmp/library/4/Artist 20/Album 1/10 - Track 10.ogg -Track 10 -Artist 20 -Album 1 - -Trial -1:00 -130 2012 10 0 0 0 0 60 22 8000 1 0 -/tmp/library/4/Artist 20/Album 1/9 - Track 9.ogg -Track 9 -Artist 20 -Album 1 - -Trial -0:10 -131 2012 9 0 0 0 0 10 22 8000 1 0 -/tmp/library/4/Artist 20/Album 1/8 - Track 8.ogg -Track 8 -Artist 20 -Album 1 - -Trial -0:01 -132 2012 8 0 0 0 0 1 22 8000 1 0 -/tmp/library/4/Artist 20/Album 1/7 - Track 7.ogg -Track 7 -Artist 20 -Album 1 - -Trial -10:00 -133 2012 7 0 0 0 0 600 22 8000 1 0 -/tmp/library/4/Artist 20/Album 1/6 - Track 6.ogg -Track 6 -Artist 20 -Album 1 - -Trial -1:00 -134 2012 6 0 0 0 0 60 22 8000 1 0 -/tmp/library/4/Artist 20/Album 1/5 - Track 5.ogg -Track 5 -Artist 20 -Album 1 - -Trial -0:10 -135 2012 5 0 0 0 0 10 22 8000 1 0 -/tmp/library/4/Artist 20/Album 1/4 - Track 4.ogg -Track 4 -Artist 20 -Album 1 - -Trial -0:01 -136 2012 4 0 0 0 0 1 22 8000 1 0 -/tmp/library/4/Artist 20/Album 1/3 - Track 3.ogg -Track 3 -Artist 20 -Album 1 - -Trial -10:00 -137 2012 3 0 0 0 0 600 22 8000 1 0 -/tmp/library/4/Artist 20/Album 1/2 - Track 2.ogg -Track 2 -Artist 20 -Album 1 - -Trial -1:00 -138 2012 2 0 0 0 0 60 22 8000 1 0 -/tmp/library/4/Artist 20/Album 1/1 - Track 1.ogg -Track 1 -Artist 20 -Album 1 - -Trial -0:10 -139 2012 1 0 0 0 0 10 22 8000 1 0 -/tmp/library/4/Artist 20/Album 0/10 - Track 10.ogg -Track 10 -Artist 20 -Album 0 - -Test -1:00 -140 2011 10 0 0 0 0 60 22 8000 1 0 -/tmp/library/4/Artist 20/Album 0/9 - Track 9.ogg -Track 9 -Artist 20 -Album 0 - -Test -0:10 -141 2011 9 0 0 0 0 10 22 8000 1 0 -/tmp/library/4/Artist 20/Album 0/8 - Track 8.ogg -Track 8 -Artist 20 -Album 0 - -Test -0:01 -142 2011 8 0 0 0 0 1 22 8000 1 0 -/tmp/library/4/Artist 20/Album 0/7 - Track 7.ogg -Track 7 -Artist 20 -Album 0 - -Test -10:00 -143 2011 7 0 0 0 0 600 22 8000 1 0 -/tmp/library/4/Artist 20/Album 0/6 - Track 6.ogg -Track 6 -Artist 20 -Album 0 - -Test -1:00 -144 2011 6 0 0 0 0 60 22 8000 1 0 -/tmp/library/4/Artist 20/Album 0/5 - Track 5.ogg -Track 5 -Artist 20 -Album 0 - -Test -0:10 -145 2011 5 0 0 0 0 10 22 8000 1 0 -/tmp/library/4/Artist 20/Album 0/4 - Track 4.ogg -Track 4 -Artist 20 -Album 0 - -Test -0:01 -146 2011 4 0 0 0 0 1 22 8000 1 0 -/tmp/library/4/Artist 20/Album 0/3 - Track 3.ogg -Track 3 -Artist 20 -Album 0 - -Test -10:00 -147 2011 3 0 0 0 0 600 22 8000 1 0 -/tmp/library/4/Artist 20/Album 0/2 - Track 2.ogg -Track 2 -Artist 20 -Album 0 - -Test -1:00 -148 2011 2 0 0 0 0 60 22 8000 1 0 -/tmp/library/4/Artist 20/Album 0/1 - Track 1.ogg -Track 1 -Artist 20 -Album 0 - -Test -0:10 -149 2011 1 0 0 0 0 10 22 8000 1 0 diff --git a/tests/library/60.ogg b/tests/library/60.ogg deleted file mode 100644 index 2b8b01ff485e0aa281d3345e6da4a34a86b04316..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176819 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%0D#I|~G2zaqZH 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 diff --git a/tests/library/600.ogg b/tests/library/600.ogg deleted file mode 100644 index 524cc002b6ddf57f4a293b563a07ae926af6515b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1751818 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

y7OVDgIw@0H7?207|seP~3dLSEIE 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

Bc}`Y!5wwIq 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%0Ds~)-c=#WSnuiTs|zoZ(koz6A}GfE^VsUDQz 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Ν6S?} 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

Z5P(|cAv=t%r@$zyZd8>Jv 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

!~m7ZUDwu>Zl$Z6forQHqLTr2#= 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 Op&*P0<69c~Hi#If}oX-Z^ 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%0A{vlWRO^5U(F9_f-c{ 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�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%0AQXY_<>khxN?2pHFHf>YgMY% z7~g*~_UgNVdr9--ab%B+98S@BSuodNj$NDkBk3J^*(QsGa=E3;oHL9O$U4r#MbWZJ8A^V3VLXhU`sp@=9B!E;OVp(IyO5c_!)MfUb4dO0(|H~*$o^_bsntLaXY-<*B7BrfYQ zqY(87cl=e+XW$6)E`|3HJ7Yqdm4m<^m}|KNx@<>*&donaMA*@WEH7OyTToY9;;AcL zQoftIf=}#Ts^DEdVz1PB@73@@jq_j*Si*ccTV8VwLCD%3bbLcmuyujait@+Bt{hA& zAM?TLhW5n$XfAx2pOSXB5c2&0h=-y7lO<-svIKlPh=IvcPY+zdX<)2xsQF*4!q^0C zg#afhz-^qydRk!agN_~;_+X@OVqj^iZvs{+akbqDf)RG&;Q-j{n=Y=r?q=pEtlK|w zr|OzzFd^t`ACek%Tk$8@w8*p{9MA5#fl<=PhPAcslihE!X__67-dKlT8FF{(CS7h zit6H0cxAljNwO8UPwppz%hYXV?-^DI4v#mrjsFT1TXJ5_-_N}$$dqsuE3gHc4ZZJR zEc__%8De$sj)6A-BvsD`SCF3s0*)lAMQ3{`1cybWJIP+CG2>Lf?kin$V zVEyUk(h7%hi><3RqKOxB1?shpdG2b4qH?(FbQ{QS){m2~>Gcx$GqZ_QiE0O4GN+2w z8f+e`nnUQrcfw5?L9u$;;Jo{iNn(Y&oeu>DWlO(-CVCp!Xw=^x*Oyj1@7+@>Ju-2R zey!IEsprNL2$qCW!5|qLW>AERimZw}V;o)G6t`j0U2J*&DzvPeG^o|IyN&qAOek>X z1|^KM_TH@Q11^Q<2SNZOQU{&Rmm{e^WRIBOi(+2F=apz($W*1W2he<%7nR_L-fWvg zPfO%>@9%baY+|REy*>g0PYqkjdCsc)d+t{HUNX;HHt$-?mq+-Yl$uEC%5n}Dzb54_ z1!XE=OBh?G1x&uX|I0(LM)^$6F1PtamA1dKp$u$w`P&%>j20OU^nXv?(-`yPFIqo~ z@NXS}C}frO)~+=KM0SQxZ1prfT>0l2S}Ze73^=I#Ijc8oVvAmeEhIK)WA^X`!%nmM zYf-qpl18r1In045T_`2MjSTDWd!2nQR5MNbVM(02euVLroFveRNwZM!%zP8ED~Tkz z#H4M7rP>$VhIZ=6bxHWfC=ynEJG%5b!HpIDRq+m~R^XKbhqs#JL-^JovP> z9PoOTaBQ4T^XI6K1w2M;lcA!s2R$rMmY_qra*!tpEb4wL%w{3ag^?wm)y2_7@{a3W ztoU#1`WIRIx7Xg56S4V%OW6kW4xzyJUGt4=uGL#P0duGMh4H_(@g%5tw~)(OIKS^i zhhDwdn*$DnPr;zA4$A7N_i*SI|L z+Bv9@@`-yB++k~)$J^8Ehxy#DyBir{AL`nD)$RwSb6O2;;46DP zgQGb>U^3&0f=#^i`!>A}q})JCQ=Ev!SC)pSNVq>l%2JL45WuZIYzrV@3n@^;|DE0M zvkeVT|Msq2r1U`U?{Qa8;wJq~>W9rvg9m}d?3HInry3ktU!FK3#o=lN4Izqal62at zPH+a^N)pBhjf0z#NTaF1+mLJ8lzRMA@ z;*-pS;^{O!!AU;9D+doKVBzzzXrDv`G$MeMzyGmKdlRKJNwtgF%_}VbQa~{b0>}N2 zxsJ!=1~NaV?W2tm$*A|UNgC&n9lrkA@eEQ*@YFvpeTI}ybNFW!L~!uQ+$vW%iq`E%|=N5akR@Mi^w7mA%kw2-^h{n zMS%a)x3j5abHQlNPhM;M!zLx?Uw!VC{*=^HGtJL1b->kl)(DeXPw|-t(T8XyR9CZ1 zsM~OB-lGkO&!MilJ1eVuu;6QNP+ILj|1m>H&7b6uQ3fw7NmTLt;7!pM-}&#CS2DUp zkbd|)U!t!(1G9js5bSs$cMmjj%YfL7arT=C6$>P`f5uh}=_ZDU5NAh_6JLXVm-N-a zXaG_#aUR9w?)NK3&(Dr4!Q8p8V5MpnS4zTOA;1~-aL9mn>Po_9_KD;`fr@k=GIwRX=m@y5xyBqX0i%|Sv2Y|jCeXXW>5GXy-waF)%cuk`rM z_X4NY3$G{Xi zPth+Pn!A4vU321DtWtt4G-uR7ic?GUX%m949hmWg9@WEZjayG|O5TeA~ZW zZctG80CCEoPbx$z+P#YPZcyVV6{hONoF3`4&c z`1h8gCQJwQbe?10;WBffab{4NxDx|oG!ymb57(&b^>`%%)$8Q{VLn3^I`gHVGtDJ6 zN;BB|rJUW!{4J9iF)wFYjXz>I$6r}jz2Z>8#gmsG(dD{6L+SrlHI3Yx!dF2$%hmoI z>6p>5trht9P24e}_FU`gv`x^^&xOC03;Y&gw>xX1ejWRMTU7b^B%A)u>bq<~tn9qi z8cMbB!poOk*k3!Y*y>wAEH9xt=dog7!8tXY;W@LvL)u)n&R;#?)G>NwmNoIWPz!5^>6--WgFrB&yzj3R{ZE7aZ0B>oh0-R;As*q2m+DA z7LiWM{wyD9({}S2qiP08hpBUV&bF%w_?g|P;(srM9+FsL6vs#WZz;~#6I`dpxVb?0 z=`S7E!g|oC2X6?Kyk66(hV29ytW4bX0&`c zsXH5;!Y8-k0ZDv?Ci2~b^i*G`JG4u#EyoA`ux9$YmTrq5zdd!p=fq z0?60Wzc{-rsTUog8$$2)*O5MLew-?E&(@JYTPjAxoFQ3niH&3!Ec7O49o!QRY#Mu- zG%1Xs+{YvN6RSBt8eU!HeMz{^J?PUZMNaSeDin<|ksOzc!^qbpL`sjyVb}Ge`Id%{ ztUjrQx-4$u-S((veY(q4kf_8x#y;ySgC$;MFS{k6v%R22xd9c6><#tzY}t2(9>C4d zf7OLajC|St)<E#ogqb(X&Cgu43^<-KPPO7Bm2m&}eSfC^y$eBX8Xong)_U44;^dpBjQ zF-CgsFRzH1X)HNQu?yo)6%3uPGpFuP93mjK0>Xi*E_KdMMF8tKl{um>W^c*$wp zHZDvSg)(0WiYUe*NxLP6-ht0*ncU_1^W=2X;I+Ui{_FnbGF^c>U*E3Yr_gw%n*R>$hYkicr!}+U%;?RN03Lo1wfeba{mil=$Ur zM}NhuEIMM=3F%*h#ch+IBpXzgwr2+U z<(^#sHynipIzZ-V|2~I9*;WyRo04WV7Yw_oSe0gM{+45&db)#9S@~-tv1YyRW+Rcp z(J<2{Buo;SUUQLKrH5QgJINHdjBY{^Y@?~4TYPDZ<1w?^L=>xv?36>)GQF2lH^E1J zs(~w5ZjL+Dp<~!z=CWW=lA`}wGbhg_pw~odv^*O6Pdsyr-j~vq#^a2)zOvFYt2yaM zpbq%6n`5BS(Bu!p1E4tntdf5B6skDgVAoUX{?`c!nIoKfiX@y*w69TN#`adYiK~xstCjjt+|*cX%q_?5GL%%BX?(UmwKX z{|OFrV8NkX$o-iKoU|}8(lXN12U{KtjQ`_C>Z=+37r@Z60ykP1>KkYp8GykKI!0QC z2HKfsz|(JV#;}0jl)SX_UMOIunO=#5h--0#F1JVHEh;&I3Wvf`s=|p()!}t)=CMTj zG)0{0F7ICIc8v>{(do}%H+N5e6$lfUXN;-aSFy}v2!r^s+*|f9V}PiADL8#hj%UeW z8&!{Pt^j>yuq*Mdx0W<}X#0oJ82+!vYV&HMlhX;h9o)>-X?wYhyG#tioi@Fyma@F5 zNYCFz_h+fCRgN*=$Hph%IMtKp4~G_Yp5(S0@siB09LD=9^8xh`DY_UxK>khgYs;2) zAofY)IwUq38HJdzv7Bs~WsqJGSxEbwe}Mj>OE*3Qe|hdFe&U0#PV_g_Gw0=1rZaCo zA4c>{tz7G2?!AbdNJHl9@?5C6z0+()2rVoX#cz{fZ>(KyA3K|y>$%mjs66}8@VT~Q zpUGCL6z_ohG+zFT8-Q88ji%$Cx(clQqt(^?)QZT6grzUKrMX$CaogPGY&a^Iil)6)V{&|Vj3Z09E;ZeAp!#0d5r&-1 zT7fgD+vw3+^|$}~9C3R4uNkM0vIaVcBokVP$bT!~jU`{Rz*y|fQ?hn{861W#-1xtV zxU({)q{f^{-2I}P7gs1(m_Nvdke1f#rO@0N8#sAG8J+NQ8hDkKrjC6lg9H_+s6vBr zP#{02-8W>1LqODSO&Fu;AQL35s>g1Nnib`?pd7f;3sdhrL)M~+bnxXl#KR7_YZ{xx%UbY9wA+?|@r1YvtM zYQUUt&OycyGMmxx>&T-wkNQ9g{V{26o_%p@ri0>HuH~cTS+2B!M+(h`Dn=sN$6ZwO zx>Pz<$S$J{YPwXjbGem1JKKbal%= z?#)A%V~~rs-2pAHpef2?aq{lIFC$`v5uI8j!6K0K5f z#e0tD8E!cW__aR-hop?h0s@i13^;FylWEYi8D{rebsHIJ6Y<3 zA5TgG6hbh%dbkApXSR;u`up+owcbvjlIbF|Ws--s_^-vh&YR&MAflsGRF`Pw*7T^gMza3O?NYu96qNb=uKf1i^ovtp&G`JIp|B zE{Bluov(%E73Sv#_VUrO3wH!Z{#s#Mz1QctP})bq{O7U4zQ@eN;v~oTK(k%F(7#bo z8h}*CY<SakLCL`vb2QukjegP+L=DhOOmIWoAwkrO1!yDb{O_D!` z%IUYYnyF33rVk_mFvf}h$nO7o;lKF9E0#>r9-sU|os`expxTv>6NJ73&<`}>T(?FW{a)W|zfY&MQ>~&!A*97WWEMgKVJ1hXT=-{Te%-vR59X3NxSo+1KtWiMyMri&- z>!g;FD+umZ7t%wrr_hZ^uXl7zc&^4&eDH5_{hmsUg(ReI24$NRy%Vz0ZZC*C*B)WT5o8AuJr&p@ zFJX1til~ZlH&wvr)27UsohVp86XgfHjXx@{i!eF6wvF-0p@HNvmdw`L*j z{!aCP^qeB6ogTboBoo~>&uO9JNK$pE@BaKcNg=+-J?UxrD4sq5zXwaJA5mgGr6TQz zX_zckF4|Zllti0|)y|&4x7UY;wppDNJ++tgBbZ&^(jMBVh(?r}mUy?A`u~V}tDv~r zuIm~I5+Jx+6Wk%VOK^AB;10nZ0>P#6#v#Go-QC^Y-5Phu-}m#sRo_upaj*}%db9U6 z*P3Gl(Na|6ZGRM$>F?%%QGujvHbLlq_p}#P4qW!GGL(%E=F(*PyU}8uC`08r235}r z>s4p?+L8L1jjFWYLdcQSDhSOOlZg`v3q@r7a%u&rt{Br;5>;!Irv7*fVYA5+?!N0r zS^Xq}f}CvNzd^(O$|e4Hr#<7iDDULrStt%nsGVz z)n{%*a7s$yEi&cYo5{Ws!DmgJh14AXXEckn?_{%XoIo3EgTQyNPX9$Yb|ss!y0*~`?STBJ`$ zML^m!I7nP(M!QY_wG`*IzixiBx?s(LX@a!&Mf|SLC|8NRr}B%N6uD?f=p0#6^BmS} zI8VcD9W{1apB}We57Gl+ni?0WIqYqiYjjN!j*T*oV}2`K(ZQC}76BsUr|nGei=aC; z@?wLdg!x^Kn#11GgN=yQn7zXxPRjB&;*g19>}T6q0oq^jH!G^dKG$ZgE$y+~rfFz& zGAl%&wR4GyPpi)@&6{%3pI_Ok&VVWnknLt92FS~&9F)Dzf(0c4ql~?V@VZ7_zH?)~ zB9m7ppkqyH&%geBy`}G3FJ8kxCN|7W_LYEOJiJIBEwvX@?d39V5qnPl2{F~yakZGI z+y79r{CVKhlG$}rAzy<28d&mE`j6r{*l%>`;sxM{j(a;6^To;qeRDY-#TR*?m9=9* zf3rSN=1v1tZAT`k;DNZLc>+e=oZB?vlSMC@e z^tTA_lXn;|2vCBLM$HMKaq#6^AGXP60UI}_IsME`7e=1`q_71j6D)y<8i&|U$9E0# zD0p2cfD#V9DiK^AgHRFK1Z2ZLWZ%dhBUrd!(-A*Zt843Tx`o|5)3XD_aJnI_Qn{Cr z`huzQqs1Yvc+t=7j2KIG^ZV@AkGFacU;w`j6%9@Z^~VVzKKw_aJmX(=jh;+!$W1*l zDTQq3DO*i_GClKR2%{yat?*Sf?Xa=Oj;{g?=?#!#<9vlKW`}B2B3>mpA{a3nWwSt?@HBI(?E~V5z zAI!2}(eXMVkRxXuTuP{!T-hc80&l*N3a(X}mdrPWBeELlnI4&yrL+9oNG~2O18V6hl(%gG<=IyXYR5m+uP~j=#auap=;kwI z=e6MRcy?a|Q<|4#LgD)^D)xltz3jZRdVgF9L@Y;s!-0%_-%EIuyooIMzBjXy1dJJ%km1)OXY zlO`@7G)^W!Ci$R_x|bQvg1q&UVPy?U{iiO{rTnh4xwSjNp}}~rB0Vb{w{<_(cc89p zw#b-)ciaJ6LiV?&porY3hrE%Cy^@F|W4|-5EkSJTD9U$SUMgyj7ct*w*yo5L@ld;# z~l*cW=q0%ev>7DZBmPiM(5tgLY|s{)5?^(3c%o4E-zoqez-!&X03ATaq{^b8hUU*B%>hg|PNY;wH z#ns!eVcdTWjMAW2hUQaKwOy@rksL`q&XVlP?TxTumLhF@moI?Bsm6tJ>-0K2{9J+0 z#fbDFwRFj`%SH7wGnCJZfX&GZAtQ2crmdFjoY-f4HEt&wR)`uIo>q+Ba$l8h zHXZ`95cb9_>vxDlkI0+4kZI&7)C-bt@Yf0VxzyyfFnhV29C*xZ>fYYJ?Ehutzte%O zl}-cOl+>Y;k- z)=f>K`z9fz`*lS`!L}})dkuycQ3H4b_Xy@`4~IQ6>;US@aXn|%sR}NLn^3Io2)g@` z>0LOL%e+sVgS*g!tM_FU>uj(mnjpgN^(8e67@2K#Yc+HJ1`ox zpR8{wx&a+b4Ua6$+cI_SsI2GbCHcLlxr}Cq$L|%wt3MjVa|tF5sVsrEw((@VJt@jRp+TiLsPY z;pkFI2s>zIc0`%cy7d0XaTUe?=^Fo%(MMjm-!hOcR~^MaluJzwqFD`;c4Q31QwGWc3;--vj>C+Yq|3z9j#PR zVafnla+$|$xg;Cz0@FyeP;W7X%4j3!=i9kfo@?u)1+mwVA$2Q=UnCc-mlIp4IdzjW zrnFb-s@3QSgbyqaqGHoTLHpCtYx2UuHj!G6AjAG$ea#TzsXz8ykRH#AU89)SST;1# zmE_M?=NCNh#RYqRoV!XvAtw`Q@I| z)zj|o^(SUM3)GU@SRE4I%=Ue9cu4T7nAt!>c{Qo;B_@i$t5blyyFdmx^N|CW)1`AO zv&kpFKbhvp-S%|Uly|lknc-CA`J)r}k3Lf)3bj3Arp}z2GB36uj9os?J!>E1u)MOm zi~kuq?*XQ|@v^vmQ37s{rU0BQ!~rk~5Lw<;cx1spbG3n`Q6~ zr%Z)U1R$-gV6gK?r}$a43>t>9{1{Fd|0^5;He#O99lOzMI=R8bUQpUadPacI+NAwN zwi(`0R1-&-JQ9T$e79~ZWBns&ED`XVE}i+moYz%(9sa&`mdkboW4Opz_+X}e^7QeB zKjR{22FCU`Jvz6P=@oXhwJ~!Oj?QmR z>vg0__5z6N5%K}+lmW$gFfYs)ew!WA68>0{y=gY2nhmsso>yEzgeKa27D|r0juhON z+H8-oIVR>8lt!RItGAZr4n(6UrlNr2YgE%kXld1UPg!#NsjoJDlb?RJkmCNj_c%i+ z)Wl6r=aTU(C~f3-BX*||eIGs+s08Z=Q6|e3b0jy7RM66gtRsqz?X7B`!|Gd&Kquwp zAUyiMwQo`74Zr*{OFkFf+M`7nvX#ppKAF|{6QF^H7YdX7 zQLK;WSd>OZ%+Jt+WrZuQ(D#uhJ3;t2IZ50=rgyyHk-oL+q=D2L0dkMnDDtq5B_JIq)3$Oeyj2!5QzKyGF;A`3aAru^tzeUBoyxcSVuJb2lB z9=cJ)Q=@29wW>-Eu$SY~mq0JI%p9lXTNxvE+Mc83@FC>*$+Gz;2)4Z`>v-Mo%DI>Y z08tu1kQK?TF4nHBE?UC<#0xwG6_qcaloMY_w&Y;gcK6K7(X8v|eXsO*qCB%Qy-$T{ z9?4zy$|w{4M|Z;d0hUBM`8HEc`in*+$EaVcZd{k&)`y{~lE>Cx8X5Q>|Hg zf2(<2xgNB>NV~m%o%UsD;UM^uH)aIxe{wMx37JO@w<_?4_@q;rCqK#KjZ-f)?^XKT z`1!d%ZPIdSqmBk^=(lygP|T7EAlzy2N7ZK_Dy74wJ7gIHJqns|488~~U ziou=(7v{lXs+ZSIof|uPOQ1%T3%PmTQ|09 z(Z?>60XxAZR%Iq6uq8)KpaPD}uKROD>^LOGot|A>iq?$wd0yn;^<{3F#2mXYL3Par z-cl$fnDDiYoMZO`qN;l<&oY*l{&qO!j(u}KOaYZ!21VqqO>-W#Q{WUoaX>iJwwwm$ z=lrIewj#Lb!ui@W05YnSMZ<@N(NM+~7W|T^L{c+E@or;eP_EgOh^M;95f!|Dzxl^= zr$e!Y_pCu-kIrw{rts9!N42E%KD+}cQMj&P*}TB;DC09MDcZ}M(5NBdTYU_qq)8`f zIDj^XnvTOg61bpH*b%to)Ymk(6>2@y#N5RtA_c{jn?B#9y-=MGJlJLA3sO70)^pB_ zy+0*O0QR%ZjNFW34_PN;wFdPfhj-oYr@b1Ps!U$Pd+X34^j1uvK)mV*_)giANRSk{ zBm8MDF+mrgZr&;=`@}U^Ik*Yg6U`*}Rd*mfSf8x0T(FsxaJem_P{BtD;XM}}SiW)` z*84`D;B9A8v9Wc}W)NiiLJcDfB1u9;z^tbI?p;pD8>;mRuP`@Jl`r>V`)J2qsUT5D z!$^`rJCxcKcTc=F8kQ*bv7I>H&X&Y_B&66Ial&|zh?u4pPl~AdE9Ai3Zo;+RDOnJ3 zqc+cl2VruK9z&tf|5{CGT;rUySX-^KcV$j0Vi0{}yxELXlu{aG^E^8wC+x8r8Sx)w z+YE9@`#n9?KrC~EZ96qbnv&e~dfm@Om$>V3b7bH(H7;;5He&Xhj@Y>CCrkN%g*^?p zaGNc6w}n(e?n>2z9NZ~df^7o%1<2+qp} z=B>DqpeoBCa?EQq{r#!_Y(^e3%O!W08Wv!b;Kv1M?zQUpU?7U`&dFH>N}eFUjOeji?8`k756ybzI4rI_O73;d7vzv3n8_Nts zqbMy5im4G{al>uiDR<^IwA%K%hbkxBwV;q5?U!{gUOp`t#Gv|jvN-vd$i6SLJr#8- zS>Mx2Pze@&d(VIXf4v{P$!V4J2s@CIq-idU0-Q2KX|1a~^~`}@K@yz5S}ZexhFk`Nzcq!z^9?X5dr{{#lM|D#dzvFD6FB5GBOH{sKsNF&#&dLt&msV21>6&= zqfH0G#(w%?qUsSqDd0rhm3FDOKxOA;;wo9rB*)E6Az4c!Ew5}a(k4khF_e@T;h;C6 zEx)(;A@;gNeMojKY2+asiG*lk;GTQd238zd0AJVJI^X8bZy?NlomRB{lCb#{0JuWo zF{T?vfFhAEld97-E>-KO2@f$cx0Vxk_}Cs<=j<29ZsL%v0+GJ0H611f8tE~lWs-cR z1L-#h)CLeqdl1ZaxP~rqUdg;JM3yb@V?@i0xDCX@So~l5p!EOJhj~c)FuL;~%?#;E zXzS`gBox}38tU2xx{%EU9ZgfnA0VX(eSIS>EgcPA0}WjWVe&skCUCp3TnNsN>Pq$( zXDPk2-`psUsqP#GTh$g}#pjAnOGMWF{+`6CXdu%*>4 zu^Zh=X$zrDtfnE!q@C9S2q&m`y|9JOyFMb?nD0xa$TF7X8dFpKxX{v z{qJf#!HlfSSX(JolPdQmg2KLx7n)4ItW`#NWq8S+`tYu`N)%_8Z>5y8- z5xVTrYQGph_U%ASO~zh6a3s!LgV7-Z0toj|$BKi(UW^#=cin$Gie4jontbH%i}0@g zVFRq2axW^<^7L^z=C)R(zO9))>(V8k9QLosBuGyh&_#ld7k3C*e0dUlWlw#m>%y+$ zBFUxFh&Zg~14L%y*{eXIzqnMdRqN6ltu)E1%+9D3wdt0P3P5!9%&Ajhu@>lqM?9~GFDcmwA%zc3= zCr;yi;UTY$Gi`rMNGj|Xm(#avWrJ1o=D%0?Im^I`3YlC9LDN9};-fbYZAn}h zG)9bB01|wm{VD&zO8r z;_(fj34!}AY-}xhRxD}8=sYAfA_K!*)+so#St{r}xn8qJ1lO0@D@{uXGwS46By|uj za1(BjPC7XFsZfOb*XnN3jiyw8rN72r*zrwcWfYmc;Kg-TYM6-~1)Jadg)m);{%2y| zyi@X{x7pX2L}vp$9W$vh@gmtU;f;TfdCmSh8_Yw&RB1Y3r>zpC*Mmv!*0Ad0KVK&UtFz3Zqo6sNgoSQ zNBcMuvOj)KT+SeLLpQKd{H=@m#<~J7FPp7<_WrV{--8h(E1z;I7P->myD$IyHGy0A z#s=Oppjp zcdShtEu>H37xNKN@At~ED(P+OHBrf}bUuB3;x*$PKpI(6CX!2lEb%^|Wvjnfap5{0 zsFuq7QO#~YU<>pgi9m_2*T+-cysoIIhs&sQ%BalAGJPxmKeSD#$)D-+rd1 zwDk%zq!^Cjy?d&%_|x!oA8Vg?4%6(%NBytLX)i5j&f&?~pJA&-wRpVDwyjJ$=Khjy zjn0}0^M-m#maX(!ScS9Y3$>N=%FH4;AHG695)-blBi=8~b*-Rn#sbY&f z4c!pjp*cm4YxsMFP~92#alKRWjy0qXPM@(5ix{+iW(ANB zk>Vdv2`D5ufMDMACo{hGMkA;e(*nzIEH|IMbCr*J>Cnd9DVW2S;^ex)Q5_?hth-XP7iGP*e4|rcSH{jY-2&Sgrn{c|JoDbXjK-y*x z3g%K_tEgwI`JO`SveU%?N=j9}RY<^=6+qz;t^|l!{nF>+6C~zS@JwX|LF`Q52(i#} zb1z@-B0bXlObFx-PXGPI7vo#i{f z%NB3K#S|L)%GuC^(d2D`(z~mT1#dA-uewVcu}?Bz2pnAG*KIF z)tk#EXDisO7ra^l%ajRUKtQCM_E_RJgxB!51yj0y8PVjSQXRXiM##PoO>Cv}dZUd%TXM$M*u3J7j&iO@9 z0>mjrA~|n|L<7+goza-@MkOVF(tZsf*5Gsu*D|L2Y{a(^i~ctM*&xv@gjC+|i9uhI zVlO%OR$@L%?7`}mwyGKt20`>RT)xowd}6dRxK7JHq9$`v@=J`$ng^YwVU3@1cl}6HO`n!cxI-T)J zxV0%+ojnCG$`5<}(r3zbcOla2F{ag9b7*YG;Zhb85>rS^gcZ|ThtXi&o*?>Uh}*C^ zc{6y=ip)`Z=WrgYuiLa$Ewt*eCMo5G=J%m{pLntpqV+$Nd^_O@R}t%0 zKZ`pE0tbLK7Kp|KQ8znOQ1Fl&=l;r$z;2E<-zxkW75R8_|~@6 z=M!_7DY+s+4?2kc9gV#%73UOL_GZ!RI)Bfeq3OU7wTn&dK}ZRD-8qb?>^D}1JY!_x zKC8?AqoL`$jGp1ji^+MZP(HKM<#}*kE(+`d95RI}IVyT7Y3NC_Yz>b~n|3yPr48bu z7JZN9Ton37W50MTJ%i65mbKL{%iiqj5Rf#0i+nR@o(&$xUHbuF1 z6cs5TjEn!R;KWk+iha5WasE37|u1h&N(baqZ)hf14?j?SmGx@X8o zWgX~8UAc4mCG-FrU(B8rPkRf%tG1!<*kN05w%EN|;^OzJ6BF!-NF&~)-LA|p@E`XY zF8q||^}5{0d@yCt?3)?Kt9uu_pgX3CuI-HyYqb3}i;VexZ&-8g^9K_mDZfiyt6!rB za4EFjaIK!XE|`1KS|ZJ+f#oM1IZkdeNyTo)+3shNMkS+EUx-9N7ZUknXHYpcw>dqT zy&95(Pp25C@0QFDnD>)i1&|F`f5IDh-RyrBlELf*Z?lIPHlkeB2h^-$lzFHS)dRJ& z8@PuJ^-Clf;x3jY$=a=%Se z>q%|Z^-}P4i^o@|=PksSpyKIBa@Llb&?BdZvs+?>u$7Kg^+_U~@uo>Vj^|n~)?%h5 zU;WRT0tY$I`>pcta21i#NF8OFnJid*>;#AO+?@=@;uRbsqcJm@x(~u38;|=^&0t-d z5T?^|>T(tYpG)t6v+Z|A&%`7lJ&nPRfS*GOVl7OsarbT!F{wFd=~+*!P}tqE5CEON zgOa*20R&~_aV%c zp!97E6ZL!=w2Zmt8pGEsHyq2vjP<2a$RvmXT3lkquI5pyVT4n`eMWZJpa1Gso-I~O z_}|Cri7wl6zgKX+)3*ZN0yQ@78cGV6wvZr#j!9(y_s@fmspXo8)=U&R+XqX%G9xZt zac6}Ka~dTK|4o=MA&JZ$vCsKLlcVJOWngKccD7jXjw9SbHCew}uc)|BQBY>Z!WD!?cEEWXM`J!Gt$yoe4oo0T_ zT!zet6s8XE;uJF)l(RjEd^KGNhjXZ7+ZQ;krXca6H%wr*m3P`V$TxCQ?oB_2=5-(+^POlNoAaQ+UR zL5akBZz<@@>_XpXgXiRUQ8q9m8RT^a69jqVE#`|l(Q}y1&Z_X{dSoG8$Jf9z7}+o< zpG4&sBbna-+m`F82fszkrq+rct@iA(T~X29 z(wd!3+CH|==dAr-^5Fabk_QMS1M1hu*99g+O?^Er9SEF3Pfu4H@(GC`3=E8Pv>~;M zABO*-Bz25*Ees6w^fa{%^nqE^&76T~xh8MKG+1hKXFft(Y2&t!q*GBa*b0`AZptNQ z6KHXJlyv&mUVxXBf1PyG)j}8B)s`%pv@o!}=bk;7NUW-#CDxgLQ{3~B+o7Q@WA&fM z;U;~AFAf|eELJ1kW;i{0T%7RqHl0&gnd$=sN}bFANUD1@J;a%rmRZCU7kewkpS32= zK^N8POOQKtNFiu^;Zr2cc0(_td?)iGZ|V$UtYQ_=&QRp`o1yC@i0D5-w91Af2YbIo z{iYFaPE|vm)-I6igHMk)hD7%^WvcCm61AY~g;#dKBB)u4^5J_E@AooIKGIy316>%j zIs%wvX6sq#*%i*)@Iu~1-b2_?<}4PicpYfSt4sSQs4G9=_jLP=#q0Eg0k2e}^UEo1 zunjntqyn)447y|cE1WJ$%@vBtI0TfwV|Kkd>o0Nx=5V=7zn&S|R8 z4aredX+G=L!gbJz7I?LqpG*RZbyM~hbc-z>uti&pKM*giNR{byx@c3gNfFjzTA_4nm=hv=DU&X=<~+9S%NGimoi_^tGt@fpFKX3pybq1| zmb`Cv_k6g`ho!p;-?LO{RQ|;(|MaQ@*%b{aA3e^i6#ym&hIs4}I`kr$Tgcp6t>7}X zAq35(xsnNmWiuEy>ay%{_3`3CB1?KXKH_ez%#Hp-xW^@n$%z{WXWzYl<)rn4mqFKp zhLCo{9x88S@1$yvxg(mQItTn(;sG) z>XTTv_*1Q`X!3bWeJy};*2nT-*qA~BiJ_q#+nKaC_A2X$>Xq2bvt$uIk|c?d1_mA0 zW`M)HN?U5ANRXyZM)4t9vTVn0b5gOMWGZ>K%_kR2r3{fVskO(MSM>=n^n04?F+YvA zI`nmHAqdi^o;9`@K9F8EOwGOB(w;P$*9@45(GUdz*hn=+Tmi zFYllFn*joi1#9y|O+{bI9IEDoEnX9)P2{&aO4{17hEF#w(iVMMdkzE&LgnNy5^b{S zSxq>6UwG$e%%_saEH|sgU?6^*s)cs6J%Vcy?hRx(A^RDPJo~-7BWw5A>SbJKD?cAt@S2hb#Fb8K;3af7~ z9M>{(zM-S31_=bHKY`2qMfM8=s;tUz$^bCr_{}y$peV=yT>}|cSHj=4@)Fk?szahcjz%kMfxMR1C z#AsF7O`1kL%7Kp>To)&`#yol3W*4i)MqHn+1hl58CR?_J0)_d{_8Q-Eg?G8jHIG|8 z!Z1+I@ZU54;?-f#l_x=`1H4V~LvXm*L{u289lgNf(ivZi?l;B`1#Iyr zh1-Qv?#Ecc4wC91VH`dKT(kE{rl$DmzV?-Dg0Wr1NL2K;pLk%Mb9u$g3O*IJ3G1+2 z<~$z8(n-h)D<-cr5-}W9=IY9(^IFoxe3HHl?|U1rnecvYEa zvB%35*#1%a7VtvvG`||-{f4DRv$95_coP%vz|X?Mx^`Q9bdl9J{aCkr`#g;d=^jvt z#q=T+L*aJ)+w6xdP}do(u6`UG4xEOVb2^J&c%6;>^@bT}&hVSs19ot|+GYx3nz~@} z=wy8Bs@!8fJa4GA6K`!@bHBNoUmcFkWT>Y+VEm4d`&!io1(}GM6tj7Kl{9B}6W{`V zc=*=oxUM@&w4I0X@dpvfnA+s(v%P4!b_`2==3e;bf-*ipMn{dLD&>ov&QrJ`di2#3 zIMv##nu)HW=hzf`+j3r4|CozC8IeY3Nd5?&PHb_3bDUds7tjh$Pe7Zv(`d`|x5#d! zeo@V9dSN$`CMaC#{Cq{#oNc<aLJeTVn>jrfLKu+>2 zv)oYOoi>`M7bH8*TBT%wv#r=9I$geBea zehTtR?E*7o`wXGho$M>Sewz06^*#wX<)zK3G1nPFNpTnuu^2nlFMKBU`@C|cE#&u* zgIUkpT7ip7t`2UxTSfhU4u@E+2BDf}Mx1bN6?~tm1?ncyiV7t}z z+K~AH3amV& z9w9Qj$Um?JmS7tTDg?gYigup$)^*WtRf640I-Itxp*75uckD_I#sljhdqJgrx3W_( z#Ny0E0LDbEPq$Qj?+e-Uw-KgL1Y3oHMIl;Avt7x`eI`_X;k2aq6E6t_kRk2NC)w)2 z@5(qL71{0*zb#J6Q2!c><*nO^X4;#gmu((J4_=?i0;TOWQrcVNa%(EEO4{(mO$549 z-B7%xHYsRX2oM1o>g>8tsWfNjIdFJe?fcuS-XWMpK1HCM<5Dy`MC|3?qMzn*jVz^# zsQFOMceQny=L&}Wi>AaQ4;OAX*Y8#Qxfj+A7IIH1fn8(oJEVvQ$*fZZO&a$x5$2Zg zibl40=8}x;BdP6DrJ9n$W;OysI}1*NEFcJiZ!zanM_ZLKHD5GpY$)^-Gf{{#q>R z->E#X8ju~(rDuDxMQ^v{{}JD6rLdJeIx}TJ6k5JpKl$wH-GRa#8+L_XQjnRJ^IruMn5j%34n4UVXVCMeoOtJm>ca1|FJpz36H6unqvRLr==-UC7AI1QSd&5-w~JX1E^ben6lc7x9UhjJg`h@BQ?!j}z;Mf=7;p{o<$eEfd<{XPZ%dw4-_pAFpelsH@6=;X<%NfZejI{#XRY}eC zDd&$p3e~e-!Oz8=1QBG_2t1ZA7W|D}P-1sBB-)#3Av_A}%ok#y3BRp+}0p*K)W9Wkuh zW-27HO_=g=BS4o?*ZQ$n367B&ZL<17rj`nQVs%|Zs}Jckh&SxH0Bvs?zsTQn0( zcX~sgiY>~5Zokp!xO>RJ94u)lo{tNhx;EabpmlZ{^tx)-!6y(mlSUg$&4JkKtcx&IB*eoApEW{_)t z%=^fLLq(N}n94erOkgo`o=o&Nu7S3{sMCv;NpuX@4T8)!+ooqH*({KbnhmUo$lbz; z)JE1nk1asTA}cBDI7!rke?_8Drs1r`m%U5epD<{H2adVrelSg@h^`c|E)_{AH1$G_ z1;*ke zj8_lxyk8Hi*>NG>7wAvyYD*Lc)!ltoWrh}0=eI8%Jhw{PL6Og|G$o9&;BlOgz_;j$ zntYt_m4#81F45fspFnofGXvxlMC!F)-j-E2NW2^iJMlZi53l-ELVrueUI@MU@Z7zf z!xDxn!jJLkTU%Bj9VYQ3Dh`Yv6U`B|@Sn{X6j`dppbdxn@3C_ud#HF#`CFG`ur}A) zjX>lg9mPhS(FBOFaSu-;yE2;lZd;RHR)^<#L@tl#hG-2*s0M1X_j<{2eDqwRVf-*+;P>-yEJUY}``A}y4x)Eo)L{^Yk26YvbbjTcUk zWZLSY3u1LlUr?p1|k~Xnq0k6&xS25K~1UTm0xqjh71(7)kvxa zy-k0qtOz!mDG3KG>Tr3r;nK651wWzln5eI1Ut|y0WpEHN88}{zINc0((hIfNXGV9u z)?iG$x5+zbI0dm({Z#IDD>H0p_bd&J)n}tlA%E6C(N%XKbEQ~WLHZUihF7^V^K+Jc zEbL)=fD-cd*Fga3mX|N$DQPzRs}Cqzn~KA33ePFv;!v9O8~Lb9)(hgyjGyc) zS^MgHjaF9UZ`=BF?GeHLWJLL9B1&j8|ChwdB#m1yBZCBqlw%Ef@~s3i;{#^ARzvugEb)gl5l7T92RSA>ilVnKH_mm1W=Tbc&#nB)v+*3(&K17g^6S{_$BPHnEw}*(ou3d4u!j>f9`yxXSRp` zS(&LI%eCeZj_%atyleZDkm{h7p(%0y=N~Ejo-cVT$SWK|fwa3b#ISJbe}zUr0lF8U zK9%46f`)=!ZLA}ae0y1{3~JqrwqH+@OYkd~ z97Urt6JK$Q&A;q1&Hy|Plb)Mhj8+VvnaJ|($M`3% zU$QK!PE7%JEx{@`%a1gsR||bpXhlKu$}p=&?k;5S=jx_1qvx&*CHj%$LiUg z(V)dDLWB6^ndz1bzZ3F@3v(AI_V2+^_`t6xo_~V1X7F+Fe?bcL%CCftwsk+|Er8`Wx|8`V14|P}(c+7>wSQ;vo=~XI%F1sM2wxH>7j-qZM1{*$L&Q zr(OcM|NE;nvKjwUz7^{(4gF zLe1Nyb`WqW_)oDpPVP`)i60e{`GMP$9PPO|Dy;|=gYwt7+=~NMYEd5Q1zk4cay_>q zeLBEm7+&$uZ&-9w?=~`scgX(taXB%2_GR3#-B?pfMv;?^koU31Kgtbz{YUBeeXwWZnlAnX@b7 z9^`|F(vTazs$!raXs!v%5O8nk$kP{z*hnu ztlL?>OLcT~C3vxlTj#sUgM@w!Z+6p1+RGE~%H=ciJl=7|q%-YHE;W+ImJu1{GC&ip zBY7*%ui-~YEuZNoOF~xLO-qkoM}s`I(AIp|(Hj1D*QKQM2ZTbP%u@hZ|)A(lQbotMk6acntb*Q=asiu)e6_!29&UVNP29p^njjC-n@G9Yii z#ISBuZ(AQ*I@D1cXS8UtG9+60+Ao9SGEzV4y@X<5;?qqHlwtwudZdWR;)jg2n!l{k z8TUVa@PTP{^c%wsC~G;&U45=lQE4Nwm2ZrLZWJ?-OSbMFJRBAU*bCCSw9>vszaPGO z!6hm)1U#UcY-SRDsWS0*fO5qKfWVUUPm+!uP%44r5cd4+@W)K z+o_uJhjCEt70 zXtFw+0~j&HuZhgl!h_F4*9Vd=Rye#vcO#xHYSz$9&Fm-z=JklwqqPrtgqDYmYoBXA z8&zG?lKVtF0ARI+ zsp+lqyr2yF%tDgfZc8$uOD40=sCIp8T{`{WN!Rv>w!GzE{gDPs)c;0`)I&*VEUOjk z4(`}~-|jPQ>xB^DET!&c2&uChHS>E5PW&_@gpDQx(iDX-Hlin6J&$$6_IXeTT`lg4 z#^PSB>2~F#^_H4U*qBY3_E!d)?;jwv;dBAylaMaD!ILRA`q#Ajo4n348;LtYt@j)5 zbMhiSJ!XkGQdU&~oEzq*S$O|F`(Z@PdOhx3^x|2eWC;g#3U#GiD||VHKYXU&w|FIy zoM0FS;Y4B@U8lMa9d7e1So40iJKDw0doLgtTd``p&rj?^fXOZTupH2uL801@4QOjG zfJ5HK9m0ARmabTep1CGMeiH@OE?#+vH;6y6_-tN}frdQ9zb-i&RieU=vkO&EDVp)& zIrjLgb&{nUFBCbYEX!x!0Bc5*ufIaSvgqZGxsf2^j*$FcSWL3c@nx~VepMhz)}#AM zrMf0QRH2FDuo4U1NARMsL5)*6PtG&ZE0%Maq0Fo34AY`PMPYWPt8VD;H-+krK?jLt!L%<;mQzPg_~Q+jE4ZX!f7&C((j-s5y;@enLyn6CZ27_DbTvyj z*6B$KH~@fKgdz)LW8r(`02B}zoLwKWYY{e+J$i>h>nO)$JX6`A5l!oBUNm3lsaDzG z+Et^j;>S~Wq~}&QX0W%k4-yrarw?4qURQ2{-*0jc-E8#%P)b35 zk~a?z>W;|u9KW!SIp_w>{}AUJ`+zqNerXlunRLE#olbS7Q^f;n1m`UbLRU=Ha~fSJ z)*hLR*QvI0!HaISv_l21&kAtE4qSldIt=r*Q!8h=g#V6L4KczBm6sg<*`34 z7zAR7DwGl;G1MGc+1!*u?_oE1VXGxtyH z-|R1y>3D$0V7D44#{Jlo<7`4#*u~6@@@hF@O1xc8Qd$wdwG1cGH(%;{iPPr6ss3+G zo`HI-c5?{~k94=}(4sv7aWcvdhLF0J>i!h@)s*&eA1uPLbU!HR`y+VZi_?qrr+8wx z`u3=j@;)=TF}uBYV?Bm`m}SjpVhvs1sQ?p(H!|2~OS7{H!(lkBH`H1DYja(osyXi?Zi za?yZ%0;{-o*c5D_1%|gbtO(EMV~!h52*2+YxS@X5g9r+S#OZ)`Pv)J-oh=h@PRM8% zJ=Dey`jNc`P@&Mn6j)>NYxw1x%y`GqcCM64-He-Us5bw%eb2QbmAGrIr9N>PitmPk zTK#8Rko^;O-d%61~f=FE8n zXz139w7D@2^D=!uglGEp+o^G-ronf}^_1t6uNTrtLxA|(>RL#auu-3h9@W0dh_pDb z4eg2h!0{D&>4Smsx4RkoC6_#v3Wf=47fOq_XGax0nhfnOsgL>yP-2-mE-_eB^{KU2 zU%vKC`I9zs`O$L4{MWFn#zb1TV@9f1-7l{^9KsSZy*#2e*BpWw`sO%!xrpw8n$yi_ z*}Iq)8&j9EN_25>GEVCzlK(E!N!n!o*mi+F{I8xc_kViAJfJ7s$Q14~>j7E<(0&Ps z1-ixt2HI+R0R7QG!$@00Psc#p&X&E#iUXwK?fmUkhTR(xjVlkOBz0?;^gj*Zw4%&$?YJ zt*{>bU_m!VzMCnJewGuN<~mZHg8T{6sTN-oP%KIAbkvbh_UKJMCdiQdPG)1+u{Ypg z!vO)330w{^pJ9x+uMD9i$B{j|GhSBG1r4<95gJ!(QKwU5m%CwEUOB&(6T&W@Cj=D| z>qj7YNCC7FWbGJX4H#DHyK{irlrUFn_0pg=nMc!C0j_&&#UoxB*cuRyCQLT6n0p5k z3!^?X64Q)#YF80>@vUamQSY{!)6ADoPL>=$Eq511!w5nV!JV5>lT?~P$(wJP@pb(d zxXfVujO$xpDEEAJe}802<5zcWZ-}9nyygOZwT}gN@@f|XE(wa5%46C%*TWS>FP0#! z$*4A`fQWo~wJ^t_9gWYlOn=MvasBE?S(iQ?mL@@QZ<_lK3b4&foeyqOsd_Hjg_wyI zMtyHVm?e{KhF(`9pZE7jQTX_^#9!bEiJyVFy{|e8oHLN)Tq1J&@p*@&!Taq+>$Hm= zed=*5ivjACEiYX05=+0}jb0ZT*0#d;&3~P%*2klLNL0%k3E?Xsibr(Baiir6=v!t< z<#)e-q9hxdSEJ^BQ#tk-pC7+p;G|hQonB1ewiZBYB^(-VvOmpw_RV}@d?3b$H&eOT zbBSi#P8leu=(>4oW%nTM!t%5GvvMeMT~p=5T2n%0w3%=v$Gc2`5^dmMgCYiBx1=2T zVc^wjYd+lP(2cMp3gHXDzeuyrZuxHToFdSjBd^o@1@7E$c{`%5GW_i(C7oysRh^M$mm{6HA#yO* zuo1nW{f!2*Vj1>hmonU_m%@w)3SQ4*gUTZUeBgdf6lD&i1f+JX9c6(Y`y<`PI~E;Y zgAq%FRq8{ufj@&_zTDDx+4bk|(EBdERloN>* zoMnIGliV6*3Rt>9mwueqv&V&Nm?r>cy!oPC^RE|20UO6^&C{=XHseWn2vmN#5}ksg zkHWpSsyu-bd8%p0DtaqyE&Avo zO_i~vXA^aL+uw*hFBR$?oqulGbZU&67I4q|6I=GW#_CE=AYA6I;jW!eU`|*FPJ@>@ zK23~CHc3a**LAV&R%qSoww3OLrV9r*nWS3{I7OEgAnMCV;>|K<;AeG#q87neBwo{H zDY8pVJ&snXo{Ud&y=r;}Kl>(pY#+erhj|UDP}uuryR?n2jbx-TGAWQ+|77Kha$_#f9fWm`4xlOMSC& zCG>8Z*(;dm8=ql?_X(t`>}+Nb2H$4pZ_%G|_bb~@r+9!Mm3$kbax zj~3-^VgLVt+fKd8x8ovPGc8*GFgw>4+N?rHQonj3JWeR2l$X-Rud$X^r7!FD%#`O2 z4f?AnhhsOr3e3|y@tGDx=a|isZ7nGqbXGHaE+YQQ*!>(7aPsy?3(SQD+n44P!A(c_>t~(05&AZ6lV~b6{!6KLW%vaDl93K1 z8JJ2XuxO-^N@DXT_#ltocay(xFsR1scg(1Qy0n44Z%Cix&9wv3#!k}w9`?5$*!VQl z!E+eQ*~60p+pUM3HIV_^_T>{mOc|oH6>*6Vf(U_^~ zq4{7)+qB}YZVb)NAI9*?_{DY)zQ!U#xE=dsYER`N#!m*1{9K$;z^2IN09CB(j=74s zg2;P$Fz93T^@_Zm-T89q>YTDfUhag2fw@2D+>ROUIC}oDe7`NPFm=c-TS7)$EHXh_ zDG~9`loKLY)0iYhSTNcu6&!Y6L~jHS$uJd#hxuwQzutmvHAil{#jHQlslQy4o4e3@ zvh0CHPZM#r4LIUa|W8{LSN%htGUmWY=bR#hWs z$;q+LMYgD9tE$5j39YAa1~;JoGe#&|X1e zX!+q{AZB`@O~;|8wfhF4etoU}U9YhAlbcL`=_fnQ zQx+~*aUY+(hn7FWO!FpZHUuJ&D%OCg1C1d*U|>?i#?0Z^GHbq^Z8#glbR7~>(4iAq z&WF;X))0S`oLD*RQJof(FC2Jklt1sSKhqvl z)nGaV`cQcsy4x$d1@X&3d+Wm}r`34gWN~NzjrrOq<{-zC?a` zn=BNJI>{<}rEO1JeYuSn$ylrrk?0r51KJHt3s?wU=nOy7{g97s)KsRI z{w)zM`HuSmj}B9%hm)1G&ZupReX$wWQ|GRVD(Jz`2qr$m6qtSyL)(?kf(~})LwcZ~Z^n~pBYss4Y;Z&bZT_&dLW91VY7~A}Z~WrvO9ZTgZ53fKnf;d%s6O53w!P&q6Z)6_D&{fpNqbtB z>dsaucr4u4FWc8@RaTl;Fi8{l^0^ZkNyM+rs8_*4IxqGQq(gF5HDG%^vIe4rRkI!YFe9 zqq=~q9YH^v<1G`2oeK?SG6zxi+{#jKfxKp$ zEg=kg_ELl1sG^o|zPFRbVb8N+E;{HoyT_=)FsM%BK!jf_j&FEzI<1&aii22X5Y4m+ ze>f}g&km~Hn8)_Jt0s-9!*{yBV#{I03vIPri|4d8CV9%-U?I@U5?qR6jUuZ%X->_@ zsYXA}MY)-nFDrL{qdNM<4j4?|yLO z;p)3$X^~A6y0K!0ZI)~_~ zKsayCjrL4jP-Ll6grh6|gLebsZ`u=v{lX$ekRjQeZCekUfT(So)m^gG>Szip7EPkS zDsQQ7i3OfQg*op0Q$`#qwUsJMbOxI9jE>AsJKj`X0sL31Hn?P9=;MJE6D!kvY@@a$ z%xGIp{FY$L^7qzl_0g8|_L}!r4X@(HE7S1bL3dfQEpac((uP+;`wRs|^x~YfG|JO~ ztXtkLi<;$c=K4!?r=ZX8%gS3$av`7Hi~C`LTL(B`832v`dveqI9;G(T+>zpbqzGC! z#4hgil#PGBD!BLQR$;`CLWg6hPb~7m1`D4#E`8>3wevZkf@KpWo~^~$<)tvU%2Ru< zo~--$o%Px8s@v%YG@!a^iDyF)hJnIYqj^xDb0pJKi}M8cgh{$$VLU+;%c?-Z3S2le z-7dg)gifVL^}%u86U!h4$#F()o9FDDV8f+QX(D4Dp+qKfA`?iPc48llfvg{Qu z3mOlTdR7* zmsEZ+w+xB7g;|QWsFUH6T#<9lBS}e1J2XeihT+^E@o=#g<3hlPGqL>qSH9!!eq;n(1<>&UtLde!hKhrTMAm0V|zuD zKk3rwyVij6$oc&nl{kry>c04aoLPhcEYva*{(pr9I2u4s`2X-n0Q(JdEFF=}WM*h$ zXryhbZwy2pO!PF3%#4kU42^V*EX<7bv~+c?fF=nOBP|1MePbi7Xei|+3M^~^P}tUa z7iL9>gJwE!?E^#?4co9Rrf7H>ObWH4F3bH+v^JTn-vY#1pygXZLA zANmq@jDO4NFoKtP8sQH%m3!%%YU{0NWOS>KYx0FX6Y;yYu$T$x#_+Vb2+2V<}e|{;qcF*;Wfzf4Ou`CVca=Zpb41}muaF(@1LMh)JUGlXxfP6&);&5BPQwy6V zsXOYR74ii=X)2#ES;(y90Y~8x?7ysdiemdRe7~-fi(3WSDHYZ<39A&rFsp>KWBpq5 zCS!BAX|x8x=si2H6c-K|jI+t5+@LU(Y*7Jg4*Z9u9>}2N&n4Y)^@Mk+W8^xwfnJAk(`|Y+S&)3w z^Uj*e1ZP-=%7Q}GEM_MbGR4BH8aXZb-G}19O}j;Xw1A3S;S-}OngrEIm#G{A&hz_k{!${Fr+^( zx)Htq{`zFFUoLP{@)KB#jJ0rde>FHd+j_|JF4)0Kopdd8X-1LPXeeY*zwoU6@Gj%&AUatAQA}1| z*g8FbJ^9OWoalRcFZ2(|*_T7`yiSp@g~r3u7U~B%3Mto#`eAf&&1_DyoF30=Gx3;+ zg)T}wsa#8XOBuHI(TX}*F_foy-(#X{3TM8jao9=;Ql z=EF#qvQo}nEyMA@g>l&56nau7DSBWXdvTC=ueieIf1)1iXCpAXtTB-duAM$?sljpr z*L*Qe0%fRw^R>cwe0pIIL?|uBCxQ5`ns99)xhsX9iv6qno<6E$S4*{Lw+KXpKwpDUa-a@pe?f_nFAefKceMx9*uvKN-z# zE*mRqnAc!4h>t|MhDhXnm;Q!o!t4?(#L9LXY5W817jg7@)|mi*CWEEZ2A~0%7_Ebp zM3^i`S^wyxwE?UU{Ece-$(OW@Ok&%dtn7D10jyIqZ`IIup=U}hTl`cs^L9HfG~-7e zL}ZeLXX~bOw%9Nb%ZPs%M9|J&BCbLcc>0MJyql*0p_nwN;g{RZ3h|>1rhy_D#2F;l zk*!t13PN2Q<>)2f9X;e^_uoxiGynT@Cc+mL2Lt^xG1nc9 z2&#lZm~8N9vHw0QnBWdJliqTX=!KS>S$F42>;C4mpz`%d%6V3?H?tlZaVng4V6`)B zX5XIx6MeMPW{zUW5C`9Oe_xMjvCd-*v4juM`qQ3f_)z-?5n_^n1OD2D=sp{KP6+b_ z@%&zN_VV~!*j=3p{pqU^_XX?g=cL*C5B^pxx_S)+GpG4q6h{2DvW}{l^KE1#fJCY; zCVolJLnVar)DKv>^zTc`NSkb)d84oj0LxZm7&W+LGAz>RdArRYsKy${*w)L>vUfe- zD;775@=m4vmHWIuW5W&BZpn`n*x=NVZLe-kt%@Vpw#ElfSYo@VRWOm?^)K*cna>3% zP$?(YGt~^FVtwMOn~{BkJz{*8t1N+mcQ=gFv=ICuO_n}dVandt|tf8CH_W5C2 z#n4q99oL%vqTHZaa)*WF8%mLV=2%cphJ*LfLSloJiG{eMnsu|!_D~j|(R{eN^cVTm zUX%POExeCJQh;c*4dYFy=^??t%!UkCCWs;ycb_OeMTS$sgh2GtD0U+?q%Qmr{SQXP z(ikWK0kD;r=DP&F!icS7{n5-j8!3BwtKVhy-@WQtJYqQzJC`kMpmp}`b+T|=N?4Mr z<$9;`v0gW(SkbL`CAXEt_ZL02egA^o%^$p!kRVRfNvfn=M2?t-D(AL3FIg%W;OUy* z#aaGCjqyO{dkeje#p5}t@(0>!qVfDTO_URnlk%Sr({om-Q(fr|SlSqmu|^?s!R8iI zaYamivl%y;P7GRuEHY;C13D3s;%>{=)zyk0P~s_1GW~N1@Ocn`A9iwxBi~dW+egv_ zJHjl-AyF~BQ<#dWq_TY@s&-{xCoT?!Cse$G;=;!w9LMY|@=H*WZTFb)tKXBlG@lca z$+5Q(7In2W9MwUB0!{x`detS6non*+AW+G|PKIp9x-lc&e$Lx&1S{~~*kv7nosi+ zhRWSt4(fwxos;S8$7tAOv*tWy*+LV^A8?0jFkBSYKmL|)4MjzpDbH{1P>)8iaIi0v zYQh*Ij0>c{tYI{iwqfM=5Y!mg&kb&EuN_2~`H-(QtV&>u*L4vKKDOJEsb_ut^SdLc zxNV9I=N&hWyY1@=6~rRpCz20O8w%IFSO&~Uce2N@h-3 zY;;y8JvD>5sHT~2W#!Ur4N5K?8pm;BGx!m~Pt68~V{8osmP@rx|8VjAg| z(m<-WyXAWf=&m#;`aK)mz;7}537EOeqm$RLr!B29Q*PRabL)2#RDVc|qmnQk`a*JY z8K9fOUeHL(dD(S#unc?9rEIoW#g=Qn&kQKKOPCg>d4z$OIan9iEG$5924?u_ z7G6tFMFoQn43Y5*I~cIc*Hk>-Xt`8tP*^|O3mxYl?R>_5r~ z^*w2}VuU$GW~Ez+b_=9$)*$=#~G6t&kJ-x?~SYnE<$_k|WuL@<3d+wwQz$UL}BrwQM z&%@AJ%Ovccq^x>9E)?DFEr?F$&11b=x8X%?cR=v)#53i@X)3NhU|!ja*&27P8i$&k z^8)G1u6>1lB7tLX1mx%`v!X>Kdyr}`d8K>G)T>xwat$nGZHcWfFAEFk0P=IRN}zp9 zO&{CVdJInNz?LbZFA_yn=yeBe+Y}|R z;Zv`YQJADiu(?r2x&pObc`+32LAacxbF`|$bm_8(6^?Z!*Y-I3SJh1tF7FcIDbE1h5> zqT?L|5#*Q2m%S75Wd9H7u2L9o<9;?;e!}pwRb-ny-$yKy(=$x|F3Xm>KxM+r4^%G# zCEHniv+_$D)nb%ALrh8a*opSOv zb2Lk`69Q1>aMaj|FFOUwZNg0rt$eEkTPSHwcV1Zd{f6-nE;-QkxYS^GVlVh3?_J{Q zr&$-l(x;G6p zr(9ZbOzrT2>p%Xp&@RbFYfJ%~Y-}O*YZFhVF5Z9kIwDT{ySsGB3-g=NQjK&|$8O~; z>L%RehF^Say(4XUX$2>g+`q&R%dc4dD@Tivfhs~l7&2S&(umT_!f%E)bSH4vp(>Us zPJ*8*gsShxWb%9$UY7AkZ{DT8&xm&X`;M(dAI6)$h0N!(!^}NmB8y+G{!TZWA&Qugy;x%Qi(!#}kofx@0pN$h2A176qbAHzfQl zXQ_F!8>^zBBq0r8bYeZDIM$R!ki<2E0T;lAo{?&UTi2Rub+V ztEp|M4wx7K{-dseiLRdEf8>9}(D33ryN&x#_fpaOt zrX4`&x8Ic9xwk)EP=emg9P>Z@5iqcrKR$}X(boG@SMG*f{Y_4lHtU7IHZh9TSN(yiC|X&y1I_=m(4*@>7N z&u4+H=Ot&$n3d0{b#c;*Oo%chM{t0*M?nL|h&jy=ntzZEeI<-JbWu)U8)R!kPUnx+LVJxa2H@csgMJ@jK$A4+%=B9LZR$x|h+%u27 z@=41cSV;PAA}XvA(6@YCuS2YS-25?WRC^v-E_cGBlj%6p#A#WUFOy+Q|LMO(>{oU8@kCBUno>^28?wSfLB#`u>Wj7eHGP*fhq}%RD z(yLPDqL5{V!JVO!Ma#?(T18fe_>{^z^TV;0)n@^~Q;SEX9an|Blzp4ZE-s&L+xR-u zF&XP^ViPsae)G4k21EaAS&i2UKRe(!%|8@Vf3jXz$|o;dx1B4G(E@`{%ifD82Ps-* zMM;}Rj;V@}R))F1*%)OR8dXSJYGVizLz;RD^pmsE`q`zv4#Ea}x(R^X4?2lAIT2U;h z1Uj4T!DM5|0G|%|91?uIQdrqofL|J=>0_w-By9P8r}T9p{_6aOX?llD5K3xArh$~b zbXK-;IP=6zYzsShQ`yAw9nq_>JL;bS6RL(#cB-4zLtn1k=YOeo2EF#n8I>)$IC~Mv z)3y^t!&Ce^QuF4lh?%yfKa!JS)G~4Q)G19F2fTpwHqhc>s(!3|Qoh|?aRNBvgf_<2ZofkUbm;P-Dw!uY18U<+zl=TTwC$>hV9x1lQeOi8kdloSEP-2=9g$9&H+^ z{1NRa;Y`$(FYw8j=D_7^mkyt|=GaHm?UHqr<<94KEf+;KrOB?h5s7C$O|P7)fn-SW zBsWEi0fqN|4jBeUqIEB)R_eXqpq4BBcE$OfwqFFQcR!NnJ8FB93W-AOmd39>{b)*y zzmxox5ZPl#OD!!pVz{)nd$w{`KB`)P*^y18f9;` z^jq-2C2Az0TQEK}gW{pun}y_77LmGGSP3;66O7?pa_fs_%Y5La>TEZh=SgDB=OlWT+L#Lr_ zX})XoWOD`Mh=Xd^O1qm!)g)Xu!C~Iz?#2ey|60%-(pFd`^a_Y(JSh*e%zT$e*)ek3 zR|&0dea%OL;Zvr<`Lje>(Bnyuau0u0XiuGufT72c_FEZYap-<~1P!c$v*1sDGkOtm z7K|#o??~c4;q>jwmaL+!3wfxeQnN`=t&}Q1@@4vX4s+OFKdE)- zNWY1qLP%t=;Cm^Tp|oRL6i>?ma@iGl?j4HyM?bob>wX<$nV!I#3_KN=b=77RL}dS= zAkRLby<7E139*lDK8b}d(&=ET-(B_k=sXgK2q&7-JF=>Q4*Q?UP)Y3Ctoh)IE%(%J zSsY|?-_^*SBt|Q$Wp|iVMNme6xUbyWAfH}>=bDsGim_Zwb>>E2+y^De-w*0^s25vU zEl}pQ+8^+o>3!ZLc}JN?@A`cjJq$oI+ccp3Kmr2Mxubf(_Oif{B}S;Q!l(G8{KRQO zI77Jt&5}3Ho#gwkF%FeIvZ)(t;|$sE1+RJyq}dzaw|oD-Q#@-VQ}odfof@ZImvm3k zmH8T;S*l#vLXBxU&j3TMM|ZY}3h1ia+mp%D_J>%m=WpQ~U>K<4>xTxOQ&(08o)^B`W-zD6G<>d2PS!j|Vs;T?Z8~Ygz zIukoD3XOmkmg5Ydc=7Jg&70gtZb^LHej0|Xr8VY4 zmqSO83rR;SR07VBG^#J=ex`VQH>-^_{dnk;!F-7oyT=cOj6VF+%W|Y^zhwNJV51fY zz)aN@D#UaOVYk!k&p{io$r;%txajQ_xrRaq$L*qWpF7I9!7_WloDL394j7m{+?-88 zxm9^CkC?>`ex>Pb;MIKLNir4VNEp1@XY)0d#E*EAi7@TnlLhkMYYhKZJ5k$7J5~q7 zM3aJTQ2-i3{C;{l_2KwVRh9YzLD|KtBDX%-<+grDROG~~d!G+yI62{Nu%%r+zg8Q? zwlkW^sV=iNOpzYMW zSZX{_yH#`AQHJq#>Jf{X&!3WW$M2;76359<&f+46>l=7hR(IIz>6~=8dopWvJ)T_Q z-v%##p39bMVkk@KZX!xR4hYPd)G_x5bP)x2u|yrP(O6~$XfNj~s7Y$`S+Vm=`;ZXN z*T^Hcyt~6_^((S)wM#$gB>E@aaHz9-0eCi-eRfnE`xYT zbMFr^fesuE;BHLf8m2yba@9WbsbA)w#ZE7s+qnFM{<(WPP(Ful*3)E_0(tMg_QIM(+I+h9R>Y_K9`@DGnm{8mLtB^d>(U2l}eiy;i>;ASrs#KPw zUIanlLgf39T1&|s*c`R0R{iiMSv*bG#uDy(H()u#$Ux7A%cR@9GOG&H z*RzWhh*flo+WmA)Q3s+80Usg<65;o__xf;dwn%oZF7*=eS8y2<+Kp;l|JM7;p9Yvt z*78t|Ri110uSHi=A1A-Ja-9Z^?R*pQo*y;5{F>q@;Iw{FW9{01Be9JV$AGkRQQ((3 zDX^1uP79^kI-oKA;<(H{`_Wr{U(2ebilC&yd*_N1COZ8;gkNF_`GnEI?@%il*KDf` zhh@vt%wbN7K1;1oOri2m3l*bO34^?wvN4r`NvA&tLTHh0Rs!`^%!~gTWK5>t#X69D z_Z^msm^xsv17&>|Oc6~X~d`0WA8kHDCb1P-kxUjw`YAho+pdl|Q z(<1nlPAA#U2=uj|(rvo(`{iZJSV&;cmTq)CTAW9<(x5ryrr(Gj%X3RnoeiNJn_VI` z%0nY+9={3NaZ}@{jvr(|WQpfE7gkz#a}Jl)+-SAA4Hy&f{fnvw)kZy%0W! zihap_@Ml^BVneYt+T@G-Elasui`$l4%sWQ;&leZnOx30$FAKK?=@DbgdE~u}$+8!1 zYpD$NxrR$Sg~!N1tQz;=Nt3Rw2&&`po9c7f%sI*itK{`>Z3T5QgR&d;tkXy|oh)8` zEV^Xw#OCsT@|81QVEe`woy)1&wl%#1WD{UM;D$A-%6Dwz5f;7Mbrmji;x|GDy-xcT znGu@EentzXbX3dpm^M4LI>9K^+|!pWvF9e?lO2E<+D3fkrW+HiYwqM1*yTIU`Z_X> ztmT$OTTerXQVzto_C+m@TAZ95vU7ioWb8WH{O79C@p5%zs`} z*1s}6A#wEkU7GKs5sbsVeKb5xqh9?NnWa(hi!EdyorZO>?#y;!SQojvt9Eu$J|4(7 zV8Q&kO(L{v1C}Q#X>)7c!ga~RjRHvy&+WM_7yXssuE)zvnel-lECs9|LBoBFGm5fX z^y4(aNPaD`wQ5SAyA2u&3^^Uc?!Uj`Pi5N}njYWar(F7{z6&RFDcMC}5K}kL@vJ{Z z^Q6T}^TbG7otZTLKrfi=J!Q!^?QdUjI1HvD#}qvpL=Nm9{=2|F`R~jlY=+8Y3OQy{ zbRg^F1zvb4gI4u^J#{SFpNDON$FZ=j>2WngRoBqogXbO5F!0AtY928<8d0Q6B8$W;I@>j2gV;7=oia3C?b zDv8AYm1bR4^Yv{Dw9@i0vAYwb#_2=B-`JJr&W8CR?vjisr1fHnK(1WtCn|&K zhpar*H@~DuA9K~vyY(J?Si6`bw$GG=2g0z1z>|>Kn#ZAQz@f%gf6e7-vX)4kF8b%S zZ*h&v`D`2=x*l5!F#0;x^j&$YgEXaz$tM$RW%Js2N3b&XjO?b>rcIyARv1Km+U(|gE<<9U%vw7?5~(OYxF|N)2H2k?OIx`iY4(7Xn6_w z*kFVxRyZ!Du~Yfdhtd9)MzVBk)mhb7_L;+b_n+ek>kqt&$~aMEO@mHDA1|+p*@VfV zd6K_X#r6-V@U(tXbIirGbbyPx%omOR_pH={17_Y*@zEOC6R2U|U~bFFV8IhWe_l7Mdqws z101Vw)EDMKgC^mlJesX8 z+RGNGPCO&t#glfo(7@qx`C80jOz$t+aGo8d>iII07s~3)VKbtLbCfz$&Om`FC)Tu^=@j__(t$Z72Pu+gr1!E{;G*HgC zsh~u2-wxJP6!ccUjVb%R0y-aSBoAKxba=8Wo$Zn@t%`Hjs`#PJ0Yu5+-4xfwL8Gd0 zHDC0L9UT262nuMPd&;YluiYkW6VB8y|2-n0BxMhZm>~*I|JslXz!{!1l9fT@MhgTv zb6CQH#PO}#dL1ro?N3{FTGk4;&%=?t4cD$bdo1z4>(O8h5Zwz^2CWQz4bha-lvkOG zR@t)27Pf`M5&p8%N>Q7*hW?@6+r|CQ{rjIJ$na8eRHVAQf4Vla7*1AG(QV(6{<-uK zTU12KNVe+12KNM0O{$Q#7Sd@NwYOADeZ(m0j%UJ%ajwbR(9*QjI(~?YhI=zR9p@eP zhp!_V2?dzW*Qc~#DIO2WhPT1b=LOpy1UlfYgoy3p={mjQ%ZQ%JxW+S4rh>s=e>aW; zLc1x1b+^e*eP58KykmbYj?()d3PG@~Fk*_h?A-{EMH ziT$Wma7cfDmi?sXl)T(4-mmGEf3q_n__ES=U3Z$i{of?A{3-Z6cXa}v{{A5f8|p3P z#`&qe`^u`8q~Y&l9*cVFP`#rG+&a2DKXg^59*<|AGrhWA+t4CcP<)X~RsrZ*@33xm1Nd5zg*NvWTo8qYYOJKdS1l&>q$oD*R3Tb>u8AeUq{yO`t(mOe z=$LB=xyEa`S~RhkDVEeYs}ir1?#^rtlwy<&X-mL|r|Zip!TL%a(5e~eJ@}_)S{5t| zqI>_rSNL9PM%Y9v<8R~R*k#!C2`R2u5RUcnKD#%S{ z55)I;8gx1^t|c4OkCdEoIgB?8ON!9WunM{ zMzio~(+PJXj5vqQ?=iNijF;TytE}cH+UievzokeARnt{2wH>}S>as1#kt|}Y&Yq5) zEx|wxrP5F_{qk=cPM&+;5;80fN*gn1I{eD?RrgD#isFMEcdh?+Nnk*UsgJzUkiK_T zskia|HapQ4HC-gFGPN3Yuw+{x`eXRI<=z51*nUT462vaz%RU01Ogj8oT8dN~=lx6I z$YPnNI2Kb)KUe_mszLYM3iGJ2%a_7>=iqdI#7W3hA5kQ5+Cnz{s^R>xF3YN zF(TH^x3s%LK71c9l|`ExEU%540_Z503Knpp4D|`CP7ec9V356P@dG+u1`~ei=LaNo z0Pgx2h~`u$7g6RiwZ6)eLaF!0s$(#oS6Rr4%)7H9E6XAMnc|){?iw0?yC;U4%|-)XZ`^7J?cc`V*U@BgG^dxjt3atmoF}l?C~To zB{V?IZNVBe`e{w^Wa$aS;U3#CF#7DOh*ag~QKI0upjs>u!XYRmOjJKRm80T&G-G|! zvw6BvAd_-_23G7FLiV#+Dh5alnB$-gW;vN$d*bO5>Z(0kcvo5M|MVpw_pV|wZd6tnX-5RQ8KE3v4 z?wa|hl|SKt)~d+(JzhIe(5*W*J~{m@&GuoHXY9l%_uVXcxc|XjWJeyh=*C823-|?~F5& zz0cWet~H-omr72mttGBfn_Q_jd*q=k0&BDMqGA{2Jsj#oCl1t6gr_Guym@X6B|b`Q zIhUP{XD0`LCAQE^bqAhnUfbbaWgb#={fc4zimmis#z)h0KVdf4cmqgEE;=L2zFExb zRlmViUQ#C@)4pW=@l)YDn6h47i4a^!2W1=ezXDXd@N!_&S37lu;282CG9AOB}8N!(Jj~0n4D{ zG2N4@xf3}T72X%S`!(@ZOAVXZU+2(QHzzB zDq3~2?2Y#-gj_U@Il8Jt4H@@x_$4m|zEQC~IvlhdL%O$2#c)B`V}1=zqv~>&0Dca` zuX2orrq=c_W7-;=Z9W{zyxf+GmD~OKlda8&K3~!Ix>IgR^d3gVpTGrN1KZr2Vs5kf z_;vwhW8|3zwu~0utVaj(Sj)o)Lw=fXmxdHYFdGCIGf)4YakDeQP7dEu`@lODr*d9c zDQbcg3A)PNY*6S0>K-r-TAs{rx<7X_l{JjBXAS|#k8iVO2neIB%-= zDp$Yn#s8RixX60Hf3EDjUcSZt_(DR-u|PQ+md)T@O9R+FN5%|GmB!(3oik1u+ZwB? zI8g<*LC%3P_O4tGP;dzOa}~Uf!$1;jKe{Qx!xFyf;mnMzg z7UzP?mx>BDS#Z8TewL%l!u~+VClEnre6U|#r4rMWLtmwnXIUg!u@Dd4IGBe<#NrHs zrc?~cFL37BVRpJA_{V4-e}0SA7H=Wdi0J|ZRSz48DBkBv-M_x2rx01(y^O(nG?_WE z&b+KWwAFcnkZF!|<*2Jq-3#si4C*+>8-7u8*AU%(8-7)gWzesm9#4YNV<*l~gUh+@ zN+r&^@7s*mAYHe5M|Fl|5HYNancgG$<86nAe*Tu&J87@e#Z)*Lxr%LCTNYwiNTrQCwh{mTU` zPCr3-+ZrzRxjAVa3KgmYpWnSFXX^+>Dl{ZMiT`c%o^_|dq`FeAP$QX{z( zP*C%kPe`-?qUaTpcjwYh6S=NRp2&2j?bXTTf81YBs>IxLj>wps*I;XuQ#gm-H?jn1f;nrbEK! zBwk}ED+XnjR31S0=XA;r=F%sJIL(b4VW5r~&pEz`q5|#_z8|tTEZ@OIsK(~CjX&@7 z20s&&OvGsOZpDfSis5nV0Z8ZIXPCc~#HTuE7r_K|HxmL9rXKU`js-Er%?-)L&Z5k5 z=&v-9SiY&dT5L3}$Lv=_aGAfGHCpW?$uMOhkD#Xlg|aHBg~=#M(Jj;QZd3{^#k<5l ziyzN0WZfZ<3;4|IuXxT2Q{X0fzQPTaD`c*)R=fyUh?0Abf<+sKB(B1jRMvjapA<7L zjd#(tglM=Z{yMygs#wVL2;}IeXDJD`BjI*8#4g%9%?=H&;EhRtBnfgD{OFV=N~GbG ziN}3J)@_6cI{~lF!~KB&q<*g2%QrJ{kvtwS&XZ`*fJutnd0}L5=FN)3_~n;#AkmN% zJ)|Rktmx-UTVR%rqwG`L=1~$eyKT+I^|2ag*lCp4uTf05CrPqv+!Vv}{bmdPf8~Ve|C1BeU~&R? zY(_h~uC6}JAYrO+qGe#DZ>(izqHk<$U}R{hYh+_;Vr*z&W@v0>2D4F^!NdmrII?DY zSlhy$UhJjh$p)z6+#2)#Cb@}`-N~(7wUb$R*pwJzxAVj1;gggI`f(Cz)xuWXSiW2>67l{b*5A!DD0?%C zkyWujG*Trwmi$IQc3*Aap-U;`N>4_N?(=d6^+~ zA+X}}KOiSTD&R;p$lbeFGp#eZd$ZB8=dDJi%j;ET095x4Z}^UmcA*zbZGN0BPK)cE z^Mr*Ubj;&-PVP2&4tvgv*2Za#HQFUV?Uu2qVpEjw^Y|eL>`Wlb4|_5viJj$f+;clK zaIVMJaM#Ds4hto?a_a52jho8{xbD%!#x|k^R{Nl8(S=*~^>x51F_s8q>YJ{@Pt(xH z6;L@ER`tc65-U(+i&x9mm977hDlO+$kw5sD^+e|g5F=G34fSwqicqndCC`h5_t(cBbf*jj-7$_jbS(M2qsw5zkbf3@rCkcmt-eA&z+QMc56=`P ze_XUE{N@5XZgdtQz?pn_J|$SQdT@KP2PLm?U3rCjOI_88WVc`(W`?(yWLqlXS1;EZ zBW=xT*qhL5xeD?e5Gpy_)+(Mfeb7&SGb>!Q)EhPbX`_;%z)B<3o2>4^DV`a>=?g=E zxf#GJW|y_bM3K#;m{FO_++(2C&P>}7pC+dmC@bpkz_J4Hyx-{hlHSX4TO)#-7~CJn zv>24_s)9GmCtQ=YEv?@o&L0-HEh-d;#b~nI^~osUL(?+Cf3?;-IB7}!C9JZgkh-3( zj_+O_hlUE>wug&n_k%*bBHc!Vw?Za=-+d7CrUmJ-ksPTL6(f68uj2n{pU^Q@2Tg?x zeVF`2suvW9U^aE6zkw(q8?S;&ongNq14KzPk?D+vk1kvel7C>6PP?0|MbCcmZ*C7G{yjrW2J2_O}04UG~xLQz<%Vj*b}0oRvp zvMqeB&`hTVG}ampoGht_OZBR_%(0KqJAUKy>3#{@OA>uiJ2$_I6wH4!1plLaGhY)7 z2fnKH9;mAZ8g)l;8;g-%bv)UBMLf6RIMNfou&KB{BA8{eh{^3IZ^xR_WC ze2Tu|@j*+Mu_4gJ0u3rltjQS?Pz-W@ngvwk|ugTC#C8 zxoo_Qhd6vTX)f@#%J3V}F9slIV@OE-Qn3P;zn}*%xby`m?EZl%6aVS;7~JnaLY$wI zb0KM93L;JM;lmQNQoP(DLS6$@JVqm}?tj`_*`%VQW|clxZeOH#f1r7qrlS_&xFmvs z1U9%;ll_xJlhXtAixklww8hPo_^lqeiQIw<^|UbffSfi!35KGn2fS4{WGZ#FE{CNq zu7-L7%7>&M61NgV|JLX zUoMuKUd5FUf3NWZ-cJj(a!HCbQ)T7e$lSl{sa@`wb`)n6-vONZ$SsDCyEK>_CFU6G zY-Y83y6>GLg^APs<}EQ@3m{XZ>?a*KcArSMb}F_LDOD5ZoV}s=9=W4F#m%1aoJz{? zjgh86tf2#|%U>N5@`F+H5$y&qhci9vC=@c3?pDJycv=Eh<%=1Vp|RhGOEO%tU&=+% zV~}NL8{LI|uw4kxd{PO)<59j5wuoSPknJKLZnVw)v&Gtqws5wsABo&jy>Q4_fS5!+ zqA`Owr}O+KWVk{6!XsfV>`qP@9WNLE_fH?edkxfTh(E*MZQX{I`p!V3yFsJUQ4q$5 z=<B0WtjE0jFeC!IZinW+(Ok9K;sbQ}4@RAjF50 zyJzrxqfmpM%qjF=D#VhpkFZd~iAc|Kcmn2c{D}44$HpQ+5e3`O=RG3Nf^5Lvr&d)H z9p9>Bg#xN<$eQy}sRFVouqa<<>T|Erx?L7U>YsNlbX59)vqSPKK*rlYtEg$!KnA=D z_Vh9HHt^;Hn9C09ildVoP24-_2_>Y;tdTBRn(XPRZEa0dTU`hZo$o~9_|I?KEhI_? zPb6vAN?Hxs9_X>1-xkbI(S838!!eT%KY%=7tM2=J8Ys*mk!uh8AAQ{Pm(%Y~8bs-T zd*Y?=d6|_WG z5eY5JI01}cy)AYfhPUwXVnuf#s-e4rI`U$VcQQOOK95!CzKj))XUS)ky!p*tmce?H zeG+kD$cQ4J@av48ln{nGO(tUeM<>81G%zbi`mA zIy{yV4aCUre_n4q%l;(Q7KrB zBSvK7JaVGTMpuV*u*q=as6^5}Rk_ZruqkMVFKTni~Z4#unWqA3oM=(rV(cFkw-jZkF z*Hv6(f-kMsIVsWhvD+~|9id-`@1N$Y!eEoyMLx%QVjL1mU)jHKd{UHcxOIP6Yw z^F7|f^q=qJ@&wu1w<8dj$@5WVcbpjYBM57g-K!ukSgW15txCm$Zc|kyCwGCfzG8D= zvZNwvKU}acBA%Yz(7!r4BOCG6bshH z+y=+khYy$kPR*dJxfA*u?V-hrY`pJCnN|0*LK+!A4JE$goy8xDM2=Bk%H{(clFa+O%#szDz1__riiH$@sBg=w zvdWGd`bLbLhIUpjn5-Uv8xfjxFB^~l%_U&c#BzDHbWm31+o-g>7S={U*Lr2b09sVl zQR~>KA$#YH#prkX-YR-rq=YBKOG15>v?-Z)(d3Ap>OjswQ*oiW8WoEA4@p&+n=?Jx zNiclY<~sN7zhmPqUyw&B_FY1x&0D%MoVQ%`%{eEII0g}+m(m(W>cZpHBXKdOrU$=2( zQ0V=}+x~I9i=))g{Yi=#DS%nwnpn**51i2)@%!U@;}`k(@Jdi)uaI*DrLjeSV_PNK zcs-(LAyZf%&CqRub*}8`f;66bSef`jdag?L($c@kVPZM%|IwrGgBroUVFS84QMr2> z`toUcpiz~#i7nnWf~oPz^-`jHN@Om#;fivB)?BksG+La*WEe9k&q>ScCsMe^Fe1he zmjqJG^~u*wv6hzxt6gcpUE-titJMI_+_P?o4MC2SjWHjk|YWeB%Pj7QTiwQ z+6(hr=LfOt)x*=IpQWI_x&G`&fVfzWCOCCD@;Ckm)#pp}q&!JBVXrXmYkHJ6-LdUu zm0E-3$-ESzh1Q-`!tIm!Ke;n|vlRuXbKkn3GoBdj;z&zjjA?}-QqDDCi{IQzJyKdI zi4py&+=bguEf2by#4OJy7_Jg&@5r+tg>LU z9?;vh%bGm2$X961$fn?q^bn*(`g?WpL_YJ8%Srx3K1c+0e7}O5upSp#mKHT){J?DT z#3KmMbsLlTb~V8qTz^=eC{JVMiJk_Wwtvibg1asfd3{`{BTX*`WEDf4yS$$AlsIlu zlIw}AiPgg~LGwJ_aNiCWuMT51Ms# zi-;^_i6qJqo?}CVA=He(RjaDv`eZMwlcWHqW@6hBo>%D{NZI(9Em z)I}^m$DMQV(fdBv#n4qo^d7rRcN6!O1=Ah8IqDc$ammBQ{{gQ8!e;!5A6w-=NPDFM zlKHn4EQ2Iozd%pr?2m;E#yy0LwoFZ9j3?Wq?dr*=kvq{NaQp;u9U==3bVFmbL73pl zuLmp)!@(8ZgWK#v-6rgb5pmQj60x;EADt;~md%&~ej~xq5t|w5 zB3cY%_(YpNv4l7nk)F%e)sG;-fE|iqKi>E0Xzac1dIw=VWRFy+jO=~HP<+%Dv*b?4 z8_nKlwwUz~VUd}eGkd-pKU*kzHAbP9lG~S!+i-LGWX^yKrFn-I7`injgqPR4FyyUe ztPH(oNBduGqV@l@iFKGZ!R8#<%Wh(>ZD3?zWMZUa@E^rNPv6AE#1N)WXq%dtS(+K^ z85`&s82tx*u+jOZ3!|k~XMN!N6vG=XK?D*G*eT8r4^^B|8uN{lTH+EI4dsb>ZN)!7th60q99d|Za>(-GvC5XV> zMJ8?*h4Y8KnxgH4Lk7vjsiR5VQ>WVPkhloJ`fNvqAkQwstK=}94JNwQq-EWm8Z*Ar z5>CK(6RDmr01yus2C?3zmKNE}i)fF#@lKS#hOsaLtbQ>nLD(IddU- z+Q7hf!O9Wm{sc}Rab=GZlu%)l zJ7FDu5>iZ4KKt(7>Mfepo&sNB^S%)cgAYSWYN4_r*)J70xB+_i1((?nOKqYlu3hA| z>ACaZ=qm{<**UEV*7+L_3<72t_M$8nUKO2Z_;-aT?RC0XbG(Tm>6e8R`k#oJMGOwW zEjp1FKQk3bUmc`P$`RS29(*b8&LpGJ{Lrf#yQL7Ajd74_dp>C0jnx!A*nQWqw0i?5!IO=dnxaiNnN zl+Kjmc-*&0%p`f(L3r&_*TRxZcx(i>^!?~Pips}&^tTp$7X-a zrrW0xs@=5@_wP?2duj^8!p*LLUouILCBqxYC)?1kHXJEOXxMV-k%!Y=3`|b`%W?Ib zQiTPZE$rSiAyl#giP28D>;`V0#YMnr1z7N#oHl&q$1~s9xBV0;gT*d;i8-8;vbVpq zx334;?*+v*UC9vNYIflY@Y|f_!ctb6~$B!8CP^tZVr-C4XEmq54Gw< zCz*f;ex)?03PeO~U_$^^0P%L6fNXE30L*v`-5&UnP_e6k<<0Hsfr*I;yA7$TS z2lqq&x5@(TxZ)Z0g^&pyuFdsO&0EO=%(LjIxO`=AMU(q!d-JH zl;#%LsC5>f0F2J5do^^ZH$WaClK7q2ldQl`>siM$0>Fgr%5>BW*nbHX45D)q;2d%W z95=M4IZLu?;zBj=rlmUhmGD~ZJikvA77T=t#HU4n^g1Mr*l79QtyPl~$Lr}&r>UK| zukIA`(4q8;OesfMwD7otUk`6iA2#4sl=Y*Q$=c^eZ6jlvdQMmS2XhQVWZcrU;ea`(w*(*N229r$ ztMOPn|Iu-%f<}`o0PSU?B5$WgoV&ZqqrM71+0o0N`aS?%dDu3wGVJg=KPZ4x{S6l& zxtE4otQvz3QI!{G%e5S&Am}lnZ>bJLyUBk84~j@}wQ2V~(<&Vle*dzXz9|)5{o1i6&>NDcdWObE$s!GnaFw;OQ17+xUFfq9d~TTn+hQ5RZVzvp zb=#cPx$6_?gS)(OIg;~;h=FwiuZ`qG+53U~jf)m-=p@Z(Gvdo=d6;g-BY&lUuV$!Y zE{FzauGfwd=EEo+^{dRHny%Ls1_*`Mmy2#L4>#t*u_AMqFAsnGvXA^pkfPmzoN1KZ zw+QfJ7HmI4k<{>A-u&%|eD}k~_+#gInCbbuH)ZSo)n@&^&n3c$nj6*8u5YjDz#HGu zs8-&HL8SfrOMvJC=R!PD>r}(Gsq3g+b^I<&B3GN3VA_ORlIGWM$~20T12_QHgAqK} zCuFrMuquQ9mN%Z=1iSFm+e7Scw#T*-l&ST4dhE*iJ!uU(M(w1){@3mOqZ;C1ra!aj zy}AMwHP2RlV+#-ZSr3;F^TW8xPrgNcQdPRjzbS5svP>PPu(-^sFii1+-+!v75Iggi zd%LJ_N~Zh3JUYR%C8+^VD~|iPNyK+#*64fOR{A*x55GrwVt#=~;H+!^D5hS0YJELq ziMwe}^x*uhylRDBV;eqzc4=dUy5qyUG?VSO?KYBql&|}6r+r?MPo}5S;Z|YMcfv{9 z`d?IkzZ=>}gMXHQZ$2H*Zw7a?1um^{X#~WtA*vgWI+o!i+Mc$6)$qyOh%EcL??2CS z8aF-))3|}o1BBu*vrNjt+@3X`#QFwc;PGUuC8M+U`mDXfvl-e_3qQs+o*}QG&Uc=i zbp;BaSTgbWqsz)CfmCzM4p_plI1sJ_hF@-)O7qA+|2kMDq=*5o7z5OAVXr?6cBCYV zRF7k_Rx^!~2X;Fws3Cep_+Gq~F7Ew$;c$HBi$LoAcE3dT>VpJ3OJhNcZZw9eN`5qS zh1Kh$8__2br(J~uwJ~N-C$Y4@q3zjNZfS`)qh!M3;AmD7Lxzm^Sro5URCHk~+f{!q z{|YPSgd%s|NiH>dOBo~=fg1oB{ z!NFab=gW^@>D{~7Yp8gNT2G>eCxgNiZ6bD9I$_{{d__2n$LNF2a>i!hn1e{1|H!(t zdkTu5e~&2jH#eVhk$n-H*0R&23^sV$EO;w;uWT2U%68VD_!s?EJETKeM$pUU$=UCE zN40)KSz0OqS&q?WJcxDJkBX9)gApk!7$%m zl9tcD`3oXIA*7QKi1Y z!yA4I5{FwxRr@|mH~TUCK>a~8Hvthc(@gubZV%L8!G5bCD?r+75IiRDY0F~ZCxVib z^Xpkfp)WD>1fS_4VayDA=B8xh0nI^wFRsBP{batfO|%TWZ_L0#h^9)?_sVr}Ovs-L zE}(^D8|T)UbUT2i3Df0Ko}p$=XL}Iz1vCyD`fWN&rOGfSYwI_YzZ@rWb&~3n#k-My z5g3r{NAILw__cfnwwR%UdM><@`^IOVE`ohU3DLuKX?yVnqp5h(D9#YS!hPsV_uIPg z?d2q7H8~t*DAX}-UTe(aI2{D;MP>GC8G4wDE67*RQXlYHy2$$hFzKhE{o=E5up<;kjd^2k^-vo>Sr_G(r zxvaX<4%Zq|wXMy6#uZLPEaobLZ@AQV!(Ho2#`x+*Sp@&wv!(Fo;Kj42BKMOyaZFHCsmM~xgIhGBx>^2`w z|C~mJ?`W-EM8w`YI3}rf(^liO;YLw+s~5(N z^~%*mCol8>IeHrkfSh&CngM-HYg+a#}{ zaB(nX%{|OF)QB-Ty?K=oS+VN>IIRBGZX6hV94cu_c!W?`&oMdAPFBUN`ogB zrrzlV5PBKX|7w$S-T!u&o*8gfpjg_gJtZp>JC8s{+*%oeP5^Ca7bc5;)Qmcq8i$46nka8A&@Nz(#cD0>NOztm93f z8C$SaL@}YJm-R)A!?{B-T_x9aND~LTrNQU3PQ$CNsg+zv)u+Vnbh8<|u@q;GQ$hig zZ$Ee_H+6Njioc#Oq<*Z1v*;Vj79@mEBX1V>$VVuFf3(X}MlzuQkL*WH&hg`1L2lkT z7zg!0ni#cxrzox~`*kS~x$h#AiBbRNVq_2q?wxDH)7X5hEWs!8v5>V&&}D9eg@y? zur(k)nQM{}Q?nC%e3nC9d5Q;gim@oeF(e@CoKszg{Q*DQX0)o0QYu*JRLUyo(bQP8MRp0UFeetskP+^Y5HalNaY*aK;$xLsgYwOwd1EED& zrR8b;Jo?pE$(><8>gzAx$v}B}_-G2;Q-&YMtVMT}UgCB-Wie;Z?TDLOO^emRS*rt$ z+RrpIBEwqHulVY&6LCRD^pr1#kIA{FG?`(y% zD|s?@jQ@Jyhu#f5Y+zOY!bu+TIWepi6thQSYx0_c1933d0cXi#pl?2Qhe{*Q2L?<|1KSrW zBx^1kcMtxfzYJgcJ{SoSbdu_kxZ9BHF=sMg~0N5KJclkm7ig$nDuzLJ-Q@eQN zq&Ui}1#yVT-s$+_d^E{pQ>o(HXqf+d%7V6j(RM(V#KQfa(*};riN*w#jwP-b-4zKq zv@fMt5z$(`BW|)JO|HjE>+&P4LGeHK;J}<`u{@Oc7;sBl-s=48$t#AS*z!_`HAM_S z+J!b`w;MvgH`tir5v}dnvzDMFw_l5Em8h1%-R~deDQuHN(qu&>^KXR9`&&&g?ocBH zoqm=I8}&a!2{sj+iTb%t6_;lZ0KkU>O$wpo3|zh=S{+ADE^$ljED+vVs4Cdp2}=cC zeI#Y&9nj|Pygr<5&ZH>4QCe;O!?pC!QBkH( zM}H-X8dCK#MkYMN{mZ@OL5hWPCvv>-<)$uuYNH3{n8r=}@d2e!GBs&+@D;qw_jdtQ zn7n36P5duxmu^rVw<}vb(012XHlROcS zLn;luPHp*4#BcbVuNu2#uno1$P*(^OReo)RY*2_yG#3}E9(;Ry>uf>yZIXze#GP=3 zHt_eGtp>pD-p&W7>QY5cJ|?Ch>=4WjpDB3mA_^QD+P zUV6PL+nMJB=QDp+yC&fnbgDuFPcAKHW;5!~T6EN6>tZ zt)A~_P<(~pHM%!!mftZ456Kd)JQcbZwQ*(1HR-2wwHC)9mFMcm4&2tDK>J7;KX7;O zyl3;ao;1hWk8Hdv&YdL@8{X_pf3vc~;K{76TAV9>Gd2p!79=+@Xfj;%S)M!*BuFye zmVkqk962k496U5;HzJ>Vt4!uIK&5}%kdsy&`LPe*p=dgTp@{}mS`W5C>y54~k4qb* zOeS3Q1jYC{x`KA`2%x0pPk^Oo*PbjP45r=G{N?omZxeV2Z2Yub!%lxV48$J42X>?T z8A`d%;0TMWp<~Oh=Nm*TWL9e%@$$FuH23yDDRCn9jComu106IqXi|#uIsP;4uztYo(bpr+o+@t-{{>Dtl5PFC>Gk=c zjU4GkXBhc!2#9gE!$-hfB&~Vu`%zDG##t0Yhr+m-lu%hayF+6upgGoq*~q{b0I=j9 z@Rc18QYZdNdku@1eXU6N3Kw{;dRlz{HzD#tzuO*Qb3u2cMl=3g@4`-c!!D&7PE}J? zQ5s%Af*8CQ8xf_XLD(A!i+Mo(_aP+D7F>(Cgm!VP59>s#$m8DH^GScHgga8I$rge= zox00m7v~18H%tHo(i#H~TD{~*B2tAJY5|YUyd>EWaag=v{VB=399zQA5mxYZN@#P~ zsRj=IUtC{i@&a{XdMW5HU#c7n4WO0?VVz5&y&%oVrnm|X4D~MI&1wjhnLn(u+HlC+Fcd8cUAb@vc2fkgb$=Ev-&66n=Zt1}Y?R24 z>k>KDCH8CxP{9cEs%%PL<>+R}Ui;nrnnn=?mt{1R9`e2%5ss7TGX_4K!s`9+g_T#a zYJJ7P%xu96#Z*m=FPE%CY^F>$in1ld_}<q4(~pfl&kM+GrDOcPD6lXJ@Ao`*%eZh|aBV-z1(LcU=_{M1`bx%& zxTD7hkBDzcfxXQZE4alIj6$h($-2us@?!KsXH&G#o=BI*)_H)l$S~A^j7Vq zF0-=wZcJr#BEW3h%W!1a$Z)3hy~c!-H;lqE&m#s{bgow|A%_)jI){At(J=Eeyo1i?9Ks54pGasmG$vSrI_(9 zTEMgxsincB{2^uRA{O@=Lf?ZxS>zgQ;=4$k`{$8nwq(tsl+;RjyFXJp`SpHOYts7y zfATNM#Ndzm#zs$T2L6=6@)hj%k)o`gP5zAku2finkYP0Pu&5E5oaOM!jRD~Pqti{8 zMbD}Fcknw&__|P9SWV_ibCx}B9{dU#`<}`Go+7+U3-|t~{1wfJIbJDL2AA5Ec7`0H zcD^DdVuc%Zp3LNa_r=Jfara4VX~V-U)du;3IF&oV*h@&znV$+~_EgYI<)STrr*?jj zA*{0Wv@}cNyy6u5u$i0S$y;ApAO2@reYLlB9*B)+PUG-`bzdY@&ZQ|G*^SRR%9Aee zvaf_5zgHdOqml z5ckBZSKH@gdd^r1tziNwEzFgadVXa5ke5##1Z2FSBS)EL- zYn5G=aew7_)LuxG3jzb}+8mqvRl>&Ma3%d&!MJn&zb@k7k~FUOmTh!d~XZU43)OhK2WZHgUXx>QtHeyR1C>B(#QL za&0uhTUMvHFA66VxckV6m7-JWx`FpZc>rMB%!TVEpmuB z-p|7!$3&1z9e%TGY!0b5r0Wx1^yzzV?CvuVWbmnT!HI%>qod0z-&mL=E%*5N9d4g0 z-09uknhxdGu%dXGyahixNoP^^lB5@U?9EI_Qsk3Gt!x@tg>+tLa!4T!4tXhdAw5r? zfYG|TggI!6`r*FsBq0e`^Ib_+v2rt!?Q9%b4GjbJx)Wj=@Nw*TCgQ9wKKiw0rBlFv z*V&uh9#|j`-hLV08zEc0_4qAZ>tH&jK|2b3Hx@o2boF7$AzLfdSbxZfK zIgL@*N0jU>8X^H{by`ghP_%T8a;)k4g$OJtbdnn{+Cg0k*5g2(7~!928nbf$8m8oF zx$x%^dIe{6REXkoY&F24D20CJE{^vV{@uy#!+fMt1AYM}5h1lE)V@F5v_TyJj%b2gvrpDeiLMI+oplngCjsbt0xW3VFO)Z5^Nb2Sw%jB3)P%7O zzz6s@=c(&b2V*@b5J=AHub+1}|B;^3P}SZQ^1M8-%U_T!lT@87oHUN-mIP+joY?DT zDw5G3e1A?*f*5fU65fDlRqXCiXG|(#6=3mXUg)aZ0k;RXhd*vuH+28AD`+|{X@%k5 zj$JZ?Ks?08iSZJai2hnd@t-JHHaWZ&dOz`Z=zJ{g;2)%6u+eTKH`|KK^cozY`8Lcq z`3HRo6-9;4W`Bf>jr!J{iK_Cm?bgad~fTzVqgmy^?X zdqq`$H><3Su4SkZaQA6{B&>j|Bf-EOZ8^);*r_y)$^3F2BaRan@-CVpNq-=YfJ(NR zL7?`m^S*Jsj<@lutKzRRC3Y(bb>v8N;^pAai{kciUzjI(CO4ec3N^hT>#b(cc&Rn^ z;`^rXD1KovkBi3_fLJD8=wo1ESebe|3lm$}M+14hBnm$kQn)`ZJl~$_)x?QkE2OY|89)1qMl>XBgw$#FwS~unSI&K?%lb?+auWNorUY;QdJvlR8n1oK%^NKc7OU+2 zg~fI$`HP}K2nX7;AF1-c3IjGHOjr2-0T!FEZ#(ro3U*T?7(`N66GoHNH#0RevNSf- zH-MQijA0*ohUUhWFm1uySRclgG}bXUOoNq&`3XNzu~RdzMp{}+Z)GUoj3;T3-#lX+ zG3CU+QKZg=IuV&CI{!K5X~}`62-homkCL@dk55=aafJZJZblElVS^u+>Fmt&T>`zM zf3^GH$xn=L{IuscvXW%Of?c1uj{>{M?_n-?!IisN*UNdMzv2kXsWx1t)Q4$Ke8JUvk9R%8{8*B=zbL$v|KD`H)P7rbNv>1oJ4*Rl#_=su_sTXoT@@m$x8K z^DA65Z0|S?_d#H3IErt@M*7tNh5+I?y2_K(g}lugQqG3fWM^CX+zKm2`&5pDjyegj zlY-4ts$3Rc^%1-CV(twWYanL0LK$652s;!Tjnud6+*s^Xtzr(A+fk$x^ZR!%O@~Jrj>unBF|UOQ)=d_OiYYk z{Dn-N>qfi=-oMf*Bd@5Z+`j#$>1k}hZ{iZ7gqri_{z(ZQsww6vDVsI>qWHSM=Z~Uk zKQO<;6~OHt^(TO9$&*qGu#g37CjJ01q`=L`Xgw@Kr2^UO)7F&V7&Km3ac&Oe;i(6u z$v!q-yDiwUe*w~S-1svy>`+{;WjiOUHaImzBP#s!3@gf!0rL19OPr>wrttN& z7U-E3&-0dr8r5EUGtPKJl=pkPcFHU+za{J}-`}0%r%{ZIPrDytL`DNEz6@cbY^@>G z%wZ64Y&+_73P1q4enfQ!FUpU+qqjsgqNy9D_?d7PGQKHPs*L@)MH{DiI+{FJ#WiL; z;-I7#DB-<41=A16c+%cc^|zM${du?w*!q`p2fp7BT1q}*jx{tPVxVBLju7JLJJJb{ z6DYX5s(GspiRsY`mN_IM_xvbD7@eN36ClCRi(z~;rlFBhZY`o^f6PS2+2!O#8RHIn zY!H9)!Ct7mkX$(vcPf9g_s=dKgy#8dVfM+ zE!OK580iO|*R1!qbt!Sgr^Hx5l&7|>`6I-jK)ziNhSYlKFf;2Wm*)2@Ra_Y~B<4Y| zko75>s2y`(et;;k)2;*C@>b5@COXFcc0ARt9Z_i?c010nKkiX zYeF_ibe=NRTGD}3J+iu<)RyO0xqq$kz?ee&LUk+9yxWBIcG7fzkRFm7OUna}V3yc7r@d%9#97Q@+PkS z21YHxQRUg+B9l%X@eMJQ-p)}Y!4?h&-qao~hn4O1V?(lI9)P}hz*(lB(`XOTJVmJ& zNRw>2R9H+nZ~6f(E>|))^mC0g0(NfnT-WGj9l8ZzeY5KMY{rTV$If0WYYOe~ix?aE z8EOW`^H(3Oh)E48xy^aWdmB~3eh=& zj_QwG?|SqXAg@wW<5q*_Ey(_p(-J244FaL2B>b1~(ME z26g4X))&X6W{oL28LW;9s^*c=kBzQVAaZ97)t=-k;IRC>oHi`qQtF8QTo=K7Te3J^ zsG+%&Z-WQVd+}c}M>To$_^K)ggd5cQY(*>2#HcU%E4U}qO<`{7k3v_C5vp?kn2<*N zH7$*ovHMoyK>FMF@!_IU+gr;xk8hF1Ci|kK-3|-rf~e-O(jZ4Yw;U@pgZn z4X)8|q9*wGDxMJELHYC-Qb)-9tTF6%2LzN~D z__*88vN=f<$T2d(kz{q45}s#L>GNp(|R0-XT#ue}P%pVm%`O4PBw4net^J0m@SyNek(n6%-ekRy$!&(M^Kh?V&aqdz)MWsJaNpZN1Lfc#1M|D3mnC96pi{f$OrwYi|u2O zjXHwk?+I}O+L(JWTU({G59bcOJ3#UNfRL8ApNfjjuCUsz7?r!l|9$1_9mAi5I?O$s z3Wd;jNeMFe5Ftb2$rH`&R{zFMmqHau2AXFARN*a2+S`B(&ddT&vB^p{ft=z~d_6xV)3dQ&s=X zdOI?Wc8K`G6S9<=g8xSz4JVN38EMS}vxlpJ0zqX6Q$B-f;es^5Zu9TcFWHTxCW*?h zERCDtZ(pU$mTSxGHY9lObyuH!-e?3mHU{iS_TFy&-KvfmPb$qskrV%n{7rR>S#_t2 z$vNEt269?5xX1eiE}zuYws3^t}!KkJ<3y?@`(24FOy)6&N&{#g{={qix=y^ zz7Zux9XU4tkEpW>imMHmH4r3_;KAM9-G&g{-Q696`{3^G65L&aC%6;bA-D|gp0oa4 z`_#VSf{RsCGqpbHxBKZ>O-EU>Ash4O(cks?QJN{GdDAJ19ZIw=L<48868x~1m|rr_ z(cKkxV|HSrSo5->*cLE-vFXW$e0zBGXUkV3>q0(p8$tu=&M^oP0udTh)LGM$+2Q3x zzM`5W^QhI!zNZN%)eFVJ#VMzCpZ$=M^x*c*Qg-E7M;Q9IEG|L`!GUh(P_{45pm|D2 zJ=FU$KAi*S)M?1Muu$&ke2=7rf({Dc;@9e<6afN_mRmP%2fYt9B`iTl*I!8{qidub zCR(RMQ4MW^cMEv2F{=*tFl}?vn1@SForIG=>upS^QE`#-i$4zd;zP9LFu5%47=DWj)d}6fZ;O=Tk0jPJ$n9^4><(+ADiPyt11>VN>NMYB0BMsd@5*2P$v`D^n+^Wpv zg?Q+Emp>lYmww^kLD6-@seBmedt0;vH3f^LL#Gj2nDatOA)`IMDL%*WmmS1c(xA%2 zRnU;UFYPso+4d2dVEYkt=AEA;PtoGJn8Xn4c(z;mT7Hj3HbK6qb}*aVIH`({ob-#r@%Jl->FDvvnIMWs|ST)qT_$i^z7I1EryE#1%j zQyInNbv&mW8c-Q_uY5uI&pEjIivnPsml<-LldSGYIM?)K$Pl{@3%t#DX0aEg<(4t* zMAvm3cHCHL=dCpGyfUEFm~OXo*-PwVci}r7xFdDmV)m&WtNN&<_iVe747Tu>fdD?~ z6Fgw2kluh*f_gjwlT2rWy1Bd!1gi9wDODqeHcvA=Yw4U!T5ezZcfap!uz%)aQb5IV z6&@;gU5iD6JOBGhB(#W-jsGT2G1t0FzILPO$4avp*PEgN1I=U(S-w<{6jV~S^C&SC z+)RAamN!$W)18ik0Pe1MfrNrzIZT6pU? zb#Xm2h)RT*nD z7rxz^f(?FTpoeIkKG{VPi8aA~hE{|o96V#KV?rfehMNa__QrNc!)s|)O*hC}S(olCBn-=a znLehGc$*uk(ENJ9dU@yL+x)01cTRLHb@s-SF_3p_yOE}P5GW^K$7<1c%^jeciIpVk z+jCkdQn%A{ZD!}l#qlH8TE;;hDW+F0to?>7)FVA$)z3TRAEkY}7&73h_z6Y3or4CL z9tIyA2AXzcHix)D#SHZoSJ4SQwc{A`tD%JI4|Wx!$TxNlZH(M-9ZKlWYZZ~m{Mzq} z@Ox@QT*iD57eV3qLR)dz-=X1w0nVtO4ZxN^BY?e*Sai^9Q-vAoYfRKx_!oHv2jP_P zw+rTTdn)Ddp&fd$_72C;W!D%z2>Q6`Ca71g{HREE~#e>#6S zlLXJ|0?RLi^3)Rw3hV2Kf)frdD|X{nSBACC!>#Am8#5M=%bO`Aj%HuxSxQ_ zmj;~V?SkL5<)#k*^Kz5>r3`x;rpFo;`_gYr8KJH8lzP z17-#}wg3%^XC~@8qmQB38V(F#ONyPj%-d2_t+2mejvf8Ot16fVJnpKBT>imJUOBh@fD>CEq&9@bNv z$wU-PLW*c1aX$)5BC~(6O=JAZgm5OjM{LlnZAlm%X-aY;8@B__7GEkHKubl60&JxP zp1(Bb56&KTC9_L6%69d(tvgEF!r$jvTY&c%jij#A0VvzsWZa_IJhCjoh~gOBuaXn>R|TuJQ>S++}rzy>I`$gHW`j(6HdunhyXx^^SW} zif-@>ocf@t9&mo&0y94n_AGJ(}i%4|oFm@=HI9U2%jgs3mb zEF(ETv)gE5bC{HYDv6A+#$9cfbl7J=nMd5e1jPh3v*S4Ruqz!de7rQKcs&*Wo~uk; zMukUHX?+>Th&8saBOKady#htwrIb^{Bc_6IFfukSX!1PqE26Z0`WMkzV{n`US0$j? zQ*=99CFqMx0%-&LGkB=KK5At`$-VCj$Ft$xKQhZk6O}InFiqEjTR9j_Mfnhn4fp@8 zzB7Z}rN-dpsRZ$y+;x7~%#{N!H3(us2A{*a~j z%^eF4NiL%2Y`?+H01ZccyuzJZNl$bl>>b z58hb5&v!=wsyRXv=X~bIUR}3d&7M!B+JkI<$5~95v7<|J!R};fP-zC{&RC@Niof?B z^aZ-L3@_YgCnVq4UJKq%bo_6JQ!E80Z7BN4H^Ap@S4(zuAKT;Q-XEKXc*WnpSZi%{ za+b1W5=s*1lI>$lJm3!RWk>a)Rl~QqnkAm#dd)^`b4{Q?N9mte+JA!ysDu94w=6eV z#iaUXIp1dLy zKi5J&de{6Q+X&blAtM{{ga4i5dJYS0J-Y$$pG_&z78=$BtQ733V;y_GFA#qD&2)1} z&b3;U7&wwf6s57$mgB=_?#3jM5l|cb{Ep~x7>c%uDd+Pu{*zwOmKZWQhOx~3YVH(OxEdJrBk^EdGd$p59uz|FnAHOF$(*merQ zSadM2-qIgd^W;13re;$azq)DgbRc7w{;kM&Y_30Vu#PNaZ`Z^oQdf?7mX8bgJ_nA{ zz1~oH)%-yq+`o$a^Z?g;|412^S57Yr_0{Mues7O<}fgY2Vuy&BZqRm8{ElNZ@CG03Dpx&lab8G zirbwy)N5qtw*(09h6o39Vw;8-U54zz7Za~t{Uag=)3++@o+;>BXPu|mX#~K7eckHy z<7$U+IwqS-GgsJDf0@noOia~HTj3-Q7v)(gj<{T6-MHtCK$2dJT5t4Bxqlygmjo5% zg?~eBhvemc7#s*J?kSVE&7!MsXXB5RBf9H{++zRNQ8IoB^_M|rwWUq^IV_l|=q)6R zMpp&%pSz!6Oi+%@L$Ls5EXcQ#sc|O#nly#rnwkG+*=+)!_m)Gdk)z#x&?F;vEcNo7 zAU?y`<7>?7x2@|MR{XnP99q&F|{_l z&v+iy3H{$xj0yp2=H$Uv)&0!uY>WTPgy6NC%k`R|Kx!umCQ%|Qu{JMeX%C;SVuSf? zRizCPRr0hMh1#Kv_N*>FK3(|rh*aR4Uw|2|cZIEX=-*6H)vs>G!4-cB^8la8|8!~f z@Yk&Wv1-Eb}Qx)FuDhG5$jAI}M;A%a$WL_PN?lpn6 z75c1vX{o)FQ}J8N+@c9a6~diOoPV5J2WbhJ$0%qLWqQUQ2C=S!`Ym`o87SG0vQ#RvDp}nqVK>Ja~WPGA5XLk zTDFwO=OQSUQ9Jd)esN{IXQ$K})#kC%wbOGZgVF(}yI8hV496Se4Ns_=IuP-X{1^nF z-a$rQrcbk4Rfu^hjAWL@!Mdv>`?%nO`kw1+8T+)WkWfsd>0Q$tmZI5JgR)?XPM#-+ z&~9p=EF>*K***xfXEE9W_55LO^8CExoZ;U(TwGMNrwnUaj>%fFF;M^g_ei0`yz2?% zr(1&^OPStg$iotR7c&`hT9mv-3?2}}b}jFal6UA^{ZJK>gIzUlOrQ&vin73=_5XScgQ6p}yh)>ZkC zgx02@0Pk}4`67Jx8LDu&Ijk0>F_3E4UPw2qAQ(|&q~nuNuVlS1l27n(K+DfDH%}dL zn)OS~f;gIESds%SiQujRF(T?@dEJ+_-P_rTRlO>=WwS6}@CL>HM-kXYlHlc=xJMFS zLRdRaWql2f2wZ=HP^FQ(SK{)SzO{SvH z0Z-afO}DqqgJd(LQ+r3YNIG;o78VbhCMLlS?&RDZJ(Q_7YB2mrb84zGVXH%fzrRA` zQ`OJU9z1H%3Ub^A%=qJ>`%D0DPkTS$g5hlrx4kp*p1riBwG@{oXL_23(%<~>`%WF$ z$vIE!CQB{E;F$c;mOOmF+Zs7alye)@I3q?$ckFI2lJ-)p!{bfsoFy3tir!R;nronc z<=2SJ0#IdeN)_tX!w)Yxl*G$N-db*wy%72_-?IHx;)d<$Qr5i-Vvfnp8gvbDYYjrv ziw#M)?E9a$cy3$bxs&_^J?SebqLe(aDtu0c3a!VvH;JVzaXuxJ`|f#_}O@pO;v zRAu*4Rqk-{N@{HMrRmCY-fm)(P<)li)k*Z~c<}WXrP_i&%k9^H!?=B3v2S}&N8ft#74ODL}9fqm`zlVkk%q+EIP z0?dGN6^l)oGgG-Zntt!;(isWc(a{V^B2&glTC$fAeXGHvf$8aC*~hDmZUNc=9nNAi zc@y;f&WKs;f_kCw+|^(GeDe+eTuyD11GmuG@~oNLqCb+2{cM?v(a2-KN8XuEy>Q~ zJ!DiZz%xn-L;0()KihO=u$^1-eTXAsPYdAx6@LOg_~3Bn;q4GN9lZ2>ftTHEZc_2X z{)Dti6YAP4yGRpLCz=P#2JHKhK$+RK2-+8`!^pGL5j(6A<&nLau;}Tq zsj_{kDkP#$$XHlOdHzlq)Rs`c0Q|sMb(xT{Ns42c#7)Ui>y;XNFrJ+3T#~a>QkQ|T zS`BxNwU1>94;kIlvr#6SQN3<~dz1(rbehv`F5y_MyLiWY#i*uMb45 zeJAp(dTV|^V}JRP19q{KWmw&CGfcR&tAP15ejurJt#U<)#j%&C{*QuNihd;aVkCQP7 z6I;gJ?xA!VPf?x_gl~?K@Pw~gyYMrHdVAo8F7-&dB>kRp{qq{&z0k6Wrtefi!G1Dw z8X2LDCEqe8Cofp^6cVZT7QgWL|KXH2|0g~C1*C`OLPjwrBW)wV2BB?eWMHZX6j}fo z3w=Fv6Du7Z1E611PfyoS+d@Mdh+gRF1Amfo?Hd(gE)Bi}kf?){|50b>YIE$Z;6y%g z3>FR1=i98<_xGm%V>V!~II#Gj6JCu=uquMdeKzAJvWKLqfqsl_xMN9hzo z8ZO@OWH5CGM9w@16Q|EhqJTDlu@pj4`BstJJ#aK(LQf+}B9{j4C7jt^`)BexfkAOU zGMP54GVLSIKZd+On}B3W{5Xm6o{~`K=9S@B5afslLm%3W!}{W{0gy?fhu< zbH8U)E>rWVCuQW3t~a;GoQl;r>yE0Qw#>Cn@T(B_9nz7Jvf$UUb4 zu&+o3v~_(AeQBuXoG67vEbvKZ$OZ1Lc?moE`jd@SMb% zPnHS(23mu$Nz2E6Vh_)NZkjkY#wO<6C1K1-xer|g=FlB_8|!h> zXFA%2F2av3G$v5nT5?-BL^UT>5n(JR6KzQs zVvfssK$AbUxr(kMX3@1h%q$GLyO{A)rv$alZq&wf`H_lz^r8$7_@WU1%T{2pe!g6Y z+DL8zJDu#-XZ|#oV6%OowqHB?b%UMuP~C^pV1ctdSwvq?|@b&cfTit#Kr8<+k z@l`hWZ?)U;z$OFd2xAV;;totoYhDF5~a zxm#*jL7&dQ7i;=&Huy|_T*W%aa61;=0VWLOD~%q|(6Bv8Q%e@qwPovf%ycGqsb?iC z4DE9}541jg-sFALb4ooOKH(`2H?95XTbVV(sp)o!Pt{Y_B(67DM#dW5XPb>yXV7*< zA>VH2IJ9uxx@l`I|D;?3+ixpu0u)S3i(~%xXR?cC+^&dS?at100URBDjvs99c|(2z zASYM5x_=jfx9yG{^3?o#affusB=}>J$E}FPletJC{k~W$MfEE)xzpr&Iu;Eb2|-1x zRD(}r^!ljqi~!ELUo%upjlp_tAAG~wKc~)H!JVnME2F{-`q=PA*r|+tOUh^cwt1c6 z6>mV)9KW+c19_vs`U06J*5B^g*|w7a)pGFX;>RKkh$I#F{t^Dn&=k4){-27qfphHy%0={tkmB%8nOVwnwT^^LQeJ&mpQHQPx0L%o6N|&#NAIXrM>m3 zY!aY3xr*t&TilW|lkb7`oT(}q~WPn#b2(tg35X`Z{AJMl%C=6%gIg^}!r<&K`LhS5ERcr5(kU2j@ zp#!Evt^6k+ClEgQ`gLI|ZH9mG}EgcGagM&&KKr#Ap-^1rN(fnIh(5z}bGiWSC^k(w+NOX59+59-QTykq4p@t2iC7x7gLwS?og z_wYDM`{2zm|A$0+Aly1fGv&w%dV_W6xvn7M=oetN!hK6Z<4h+eZK0h*hh!7uB?Vx_f zU=vrWAGseQzc7(Nj3Z`O$oh)}5b@^I@cPFbGIW+W*lKO0Vs>pLu|wdUloJ~4B_tMM z`;8)gUoSd)GA@zxweiyj|81^|y!H9jXV>iGg0dLdif3C}RKTg5NBI8;aM-3&Gl#6%uYwKpZZF3--$Qkj1`G53f5t7(_l zpS@THtU4rTZ!@xDBOv8bvS*hmi9PqSA;&}Y%VynNrq8Qq)U{smp)K6N1a^S*rvn@y z|4P0@w}>eu=d88$a1;%v*RA!v-u?cltfp|#U#XE)uK%)SyAhQfeDNlA+#f^h#@;q` zcVdRveFmfDZbas}Qj&i%A()or{2)%sMEhbdu@~7*$csP|AsiiM7yt3ULwWt5`ic*R z`{5o%C;syBc9!LfS|bjss4bzi^3GrK?Z|iRzjx@#K{(ldB;W<6GskOh{#>x6#WV<}xzehd z+;D}Bnyg|wbVM=b2Fc17hYN)N@k+kw|I=BaTB- zhgUVmv*^&$71ft2?NYCNG?`P$1AB*Acd(r5Qe`iscR+DZ8Ld{`WSkLR4yg|r^MHFz z7Qg~_CVjKUKn?*?`pWlCj_tSH;f!e(e2XlOm*SkeR4T@SYb;-|hmQkiow@10>AbOOudQ;6wf`F&BV1yqxhI3mLl%7=uKy$)Zzi{O(s`qUVqp==Dj ztlnN0ClN_77=*Ku2|R{$cb?6pxTY{9-4E9kHD-9S@^X2OE>Y)yvesCdl^X3+HUIAT zmg}jH=D%WLtNL)l#v~cQcd)e56MVhfO<#>Vlby+$Wbh7n8Xma=9RIBkL9U%4+S5}r zWZyeXFEDlO@|mM8T*^e(7NlgGs_j(0W5NYwcXmoBnT{uO8dH`g(0}~$i4stpLN~=a z1f4%D3BdLJsX#N9=D+te*VW+3V0XrcNisBR>p(=ls0wDdnAVAE&(3kzzH?m?9v~{+ z`Xo3~R>GScSmqEOvrr7FZEBezZqY4(l5ab8P06y3`FB!-kN0|)iTOf^-F<|Lh%N(o zKPbM*g?Hzlk)7!QW@UEzfEuWnx1uV}_eV!L1+_ExgIV95R1jAJsahhY(7!xE!RxLg z3e^>iILA$&s=CAE$yZi8GG7T3S`@Dl;$Po^emj$$rsAYCxt4rX zV9(%Tg`)m*3qu?Ac4GIElK32#aBnFVtBYl@vC@f)D(usEdZ;GkZJy1ioa8d}CFqzH zi2*b6SvJUT8?*NmzVY$yqX_$s=9Y&WV)KAnKrGIuw~mcsFJ${9lGLd{+pk*~UtyFO zn>2@pc4_Yhyzj8-aW;=q@^RW?c_pc=gY~EQh97&`jJsZD7k}xC@J8QuR7Tmvqx8^=K9SW5ifcAQ< zTJR8(Z6Prd$uJe4C{_d`*|i0t*7eAlL@uR-&dcRR7)HY+M^8Ib2OCgfhV&nKiw!m1 zL>G>HkN*m86L(6rbXem9Yh(kg76&@RSGgN|`QlDYZxTY}vJ9cxS9Dg$keU>z1 zGjHzTaF38@BJaw%-%Tv~dTZpSiTI#Cm=qu&kGfX^e9`tgsgp>6p}Qg> zqNn3ur^4m}z$i$Y0{O6kX7vw~^^&#@l|5m+6MWabYC;*R3uJmqlQDfn`trJahllOG7e!o|I)#!LGnV>2v=eny}GX z#vc8Cw#<+rYgRTsb_6|~?vz)pNS`jagM`H@V$IG1@+ENQiKN+#oe)zC_}ah8gZVfn zj{6%DJxUq{z`ce5Lx=c6n?;XrYg>biX)O&u1e0WLGFYT7XLNMhUOBQj98PsXu zSfPx78@0a6$x5(VJPp%Mh)=Z-K-Xny za9M=oJ~&9W2z$B#H*fHe1$tn3tXNFDiMd)x_6oTI(fJlZC<#=leoQ5`R!zSSm#ZF% zo^G09>IR2+JBN!!iD&Ne^O5k~3;Uy*L7gB?6|GE_OiXm$%lgEcKNN4vr}u(98M99N zmsrQ-(ZQ+CFlp0nr`Qj+hr<*VfJLf1&59ISi*m{AHSK;u_{_~E5nt-{^ug&~;l*z+ zF*PmDBb0WGwe>c?aPN|aHB{FlE+M~vK zIz}XiB-xbYC|9(^^Fc&a@#huHBuS(If2q4KcUfU6RI7;lhY2z6Yo&{fb#KU~Op>8k z1vO@&`iijUq1TxTKY>fv@!h75%zf(meOLMLELHa_`OGie{`9jmQ-@h64BF%a}|QAt?eSC$P)iwm`MLWVPYE)CiauI?3j#n zj7;=(wG8zPbhNbfbxicN^bK`2O>}fM08oU!zJalUfxZR+r!>$9q=`Jkea(I@Quw~M z$|M|JeUfFq?%ZE*N+Xos{@_&i&T0N0Pn#VvLgZ6{{n6dbzunk}KlTY0RaO_94l*|< zpELYgr+pifD^I8WLjY}8I-Uy8Jiq_G{$Of%S^ahDG%+h*25=|6mftE863gEj7$luF zGW$V_9Y2>HS8KyK(L0q^CbxA^U~td+WRKtxTf+w`t4BJ za$Z2zb}6V?Q(3||eMOa?>?{mEjYO0!APWV9TFm@@%8$gcC08<)v!*O}LmPdQil&*( zre^%vZ>>ovJ;5USx-cHxPMhzf_p zI;%Bp8iLSm4Qj*r5`@9BU60Kl@{blh$()~wc>dN}&JG1Du}sYBlWkCTS@PH)&5Jh5 z=Txt$Gav}vt@RBG4Y-hx-z6^;$GV;Ebx@Iqzl<+OG++#6WfNn&ABJ$O7)CJbJqUg2 zaTNaC#NH73VTHId-HUk<%<#jV!aNO$(tP&Uh2Lx?nZjlhhhLrz_?RU;`WC3kah4Vj zEZ3TQCc_9_Gb^KRtu?4YE>>%aTz;G9#V1v}z^zkj1%y!ABm5WOhMLi|D6=z2iaoX;T3HTz zI+H()vLFRdF>bUUp0>;4x-mmsL48+ZHxowgn7qy^CirOUWLZ+nQhK}2z#v0Wv_XS* z(&T7G|4^apt?UdZ)oq^;IH=KM{b2}j%(O-x-*}4_U9s4l;;(VM(N|HlDE6!KL9@Sh zdr+f-=z@0Ow!*Hqt&MP^q|~)phNmR*Y2g+z@(nB!IQ%Wh-$A_#=b3t50OoSb8^(-$~ z(R&#qEY7|yZ@tX zY5r^5_tYu0(Ue5PT|`?NX$)oTD))Xf!PI`w?5;$GLZ0 zin^cgf9+`GUU>0rzG#HqzuL4F!3%sOG*nM6kfjT54Bzm)Nx#TlaV%YcY-^b9H|?HI zZH2j<9m4Vr(c|gT1*;SDmr0K7qW^cMxBCGl7TV&!mD@2VjMw8WYZE$b%%L@>&1Hbk zREnyoff-$ZT(#Z`YjYH%rGppfYIO5WU9G}0e=KpUn@wW{r?hM3 zT!699DT}bXsxYu_peMIVRxaj1*MZTLJG5y3fre0djHGDC?&UxT)Hc#1y)o(OdqT$F zH8I5pY5SSu`q;J3`TRkW++je7YNt_?gG)ogh@TbwT!m(XRH_qvh?|!CDCPY1@5_%i zp^MC6%Azt^svbqNIL+Vhx|^?^dX^PUyL5VjTG6`KJ$Yo@nq_V{MFKwEgd{J1t28ywk-p<>vzc__*p`XQlj!2j79Z(rl5oJLehQ=3 zj;gb;39R?5RG3vBh2x9LM_GVbkee6ZaY*6gF;#7N@>%>(@ft&Py{?Ss64UgW>JT|#c`iLtsw+yl?tEF)gGnzQDKP)L_-a~_W-PL;Xe-WFJ-?`hZZKf zyn4i>lS!{_kjh&z_s->6f8OAuL z>GjLR{VXOnuV**UeuasmC{|+XH1~dZ{+ULzO0i}W3R6dLnjJ2! zRrZnOUG?U)F@#l+(ln|_9ckO%4IMfu?-7VFn!qW|=I7p@Qf;jWlg?oiD7I)xNQRFl z4`9azm-rJ;QwSV4Nv?00Z;tZBaWHPv$lES!O)f6D9UOc(Fd&Pxk%oi>!gN|oONJ1* zXjQEregdD@AUL(60a-!k(IZl*z`A9U)q%FPJO$!nKJEVN#@=?}#ahne44PeO7g$hr zGb;y03zaGTe7OEKhJIDo4~Fx?-}cBbpDAv{NR-)eMJyocp+teS zz@w#wzTT!bPn%yH?S(qgKULzL%zo#(uzU)~3H8<1^jE81oa7DcZZqa*#~LM!|AXR! z>&9Xz)$AEF&xDRVDc~U0o&5bqmxADZCUW)~Y>g9RxDQCQ-BqR6NMNH;~RwKL+H;~`cM(hg;;k&Hd zcGD7X785>bXI3qlKN<@E8x9k523M$z&5U}%0|mmPoEX4&GO_7(i0SU_;KI)^JbEa? zlis$kD&>7G7pCNc&_P+Uu4yA5P$qumMk~eI8E0<7C3MH=s*JxF)qYR!(}B zckMC#PBpB#Yi$nl0@Q0~S$S9>F}-;_9&WajJT7yX>M7CjXvk*ffAh{46gfMNW~{o4 zRyf@)+05!byN*zz(hia$HuNn{kTU2G=^IH`;*-cAj-D`Rc(E+rpI&XZlu$bOLb3>- zl_#TnyAXAH{61pHT-}TF_}xnL(8=BP0daKN^z^)4Qj=^VBI8rfFyA^n*&~i3B193c zA=l=!gMoU`&k|U%>bOo<8AMfjVZ|2K)g@BsGi>FbLx7p(5t#JDMWku(o=;ktRMd2* z`|$Yaw9$~ga=CYQb0{84Yu+H&ftN_SFh3D8_|#h#9tVQb%TH*VQnc}$<6X7V8d-X* z^tNHu$=uvW<)(%u1$ymv46R?JBV%x(fv8X&bpg;4(b&|=Q#n_YE#bX(&YM5D_n3Ay zmC!SaXj*fo71!$a(kNK`os@ez|FWC9Tr_6KlxPxND1>h?yW>x_z)zimuT${Q-#A*w zlZmN`d>ylWNq0szPK#qlnpUxaCaLP~R7`o&CnyGb~6B+J@YT)ir%s{iobk zc`DSXnKnH5ne+y^a@-WQo!O@KWJTB~OVf{I`h%phHtR`hDE;X1_&Kf4`0aWWm#&LO zP4U(bkjcx-Whyh%avo&>ftHJ{R{TAVa{YYdEyZh8@L_A^c;r=KD_;VWRrBLd^n|CR zIbS|){tDeem|k<}!nq(DR;hC~UVod}HI#$S^H0kLnd;`JzEqYh>0{S|tQs3p1E&En zz}LTi4IKbL!m>Y;FoZ--Zg!3)HCvmQ*t>p<_n2;tU-B4^bmEFPTs~uYBPV0J7MOe} zs`ZI)TyHv)O8>d%(EWSvPU5>FoHKKk9OCn3nuE`!-ysFv^SQ<`aJG5`0j99Oy7nkL zbEBYXpZMp^@C{|b2tQlU7KpxM2rbQ=X2bOu^vKh(uZ?E#z&q`ZOQ9+)j@4Jr5m!(B zks75bLD5pt12wP zppfp-mOK`P3BF8eRJ?4pG$5geE%Ld`H@ad8C2qWrMO~(uF~UFB{VPS~FTL)?qmEYr z?lxWV%U{`$SR=L_1VG)RP*A>x=04w(1XZ4!c(g1=()LF8%D(Ew`D>E-9IGqkb1QN_7^UE(i zBCrd%$QW}iSvj#PDEe}4Irb@p(h!QN%JZ)LY*W(g*36xLgV*mhSy^*BoB zXK0R1rj5!dpsw<3ZTv)rWgJ2nd z7l(u6fn}`i(3#No$OX>aq0&7$59_tZV?jJdH2XRXPYC}%u!3vD`HKy8rM-VhPQdIB zfx}}zyneR2qEBgrcX&`hwKf0S*_8LSwak*c-*l1(JkiP$<5O`Uka|;x(g?&5O~VTk~TdK4aCOA=hl;3UeIKHIJ}VPsxMr8!^Do!J1tp{=yzpTP2RRp;JZ zjo$cPN217JDegK-7C)|YDGGOm>=~{h7k*3SGN!8~zA61MW5XpytdCFbH9{H`Bsokv zZ~Y^u>h2w8t|h6^k)^1d-Wh*C-4+8(S`kV0I3T8tXoLXB)DIR-rj`%8@A`9`tE_FM z?*`udAO|ZCsl1^$PyK}f{2oeKl;qwjed@Oon%?m!EA)KLPirG|PE%ts-ES&qvggCm zmDmrEU27`3slu$>ZKe0~{|-Vh5i+N}ZZ4BaW0Mp1qs_ShfAIT}wO8x_021w*EzLQh z4d4CUC)E1=*p4R4B1@4og=IknnIVlvSvaLm5?5>>xx(Xza>}v<&pDxiYXnTmX>^ZM z2d51Xn-Dl`GsvU~*Kxxx@-WH#=bJ_~$t1N;;Jp(FY^0uU&n2J`)rhvv50 z^_CGvBlnw)&tc0Jla&p$$sg_If#dAxA1G3Zt)2~q-gO_PVF)A)J+_sE`aa3sPo^kjXrG&|@!IE~O86nd7U zO7^4|)~2JSd^jgQoF}ZODM>tyn@2(8xxcTjWa{+G`0Gj~q&x!2?KJ5R9t%|ty2y~e zEnHp!P!}DAn|fyXqH^$PQucC^n*Y?`!fvswZyJeL#S57cJIbw)?y5E5Y&g_dEd@wd zj)%jvv2z(V*=cj#!8WZqbBGQL-Mo!N%v}bZ$S^M(lv_x?qq`Hy0Q6E+GsedJeHv47 zdqdgC=?lq-z3X(FBVQ^!J9CD_KWXSRcJXAtj*7lt(#gd%SKPtP_FgHQi%&7( zqo%ieZ55jJ3lq}C=eiRC{o9yWV3VXs+}={;3-P`JK@R=?Rf+LjFe8DH3vtGcwmvJ%UNr|~U_2{e$?s}D$SF;UqL6pHTnb&ecuG3jR;fhUph%tLpCqTKu6blK6nPIyq3 zvtSj%ijkkta$xg7_xvLDV-?y4(*pk{PMy}mBW4aALRKVrFcL_HWU{+omH1^Syt}nH znOknG+B0ubNA)iv3=v$8;V) zoP*N|nvIO6G_Quzrm9|8uV~)Hs~{YGsW(m%N%>R`#$V}=O0VbMJIBu{2c~`)CXZ9| zAq^cJVAjJ0x0~^*4RzPu#T(uCOImT=KVow{Wu)RA@)Lf{0W#GCMv_dHc96Azy=$3J z6Sr%oN(sKG$G;I&5|Lw?w`oSaGb(I9pt+%f9ZmU;e8#MKm$^yYEoAI2JWdKUExWy| zRYkFUQ9SBmhHA_Ibtu(ix8IhUm zO=F!Wi0(rpq>(ho@c)Fjg8DMpI)r0*TW#;)8L+L==ljg<#d#+!^9eOiAH76jf9R&p z{Dm?tkb6tEN}OXVv!uFibp9Zk(WT4kg0~ZlMJ4WQ(y97NVRr_iYz7e(i`oIsF7`Ai zN=m)J!F;Yf!8aFIn(9;1b9Y;Iy<&L=_s09UZUds4CLV!7pKFG#hnQTieB9wuni-3A z71O(11UHMgX<|Df_qcN6yW7#=59_PSvudcJ5b1;u&2-i9zoE1A#b-oCp{1Y^zbfOl z=sRimYF%QDm`a4RHt=k`D@JwlWeUK$nR4=F-+?4H?*GyhyvU#gHA&@Do${^AxmX#A zmPHmyqh4!}9g2E=(q@$zdh+xO^Ou3mA|BEXLIHRq9bU_Cb2^=?G;QPjhI#&rBM4P5 zA=Inu2sP6?NTEL^c!-o=d!mFsKatg^C1n21B1J}OMiQ^OJ_Mx}Bg0LRIe$2|+7nrz z(#>PuvL)DT!w9)81ZE@>F}^nVq|d+Y+S@tMuV3^5|M`eww^l#M9!8{os^N2*B zg7BHYqqssz;lg}zd$Od%@PF3eGW{@qI;MWTcKVVmz_S}D5G|$gVCTH^4?z_p#vRTL z2Hr^~X#Ka8$M0CRS<~=ld&9@ZTPADOZ_g$ktQ16aNE<(E;45m?;QPQjcp z6mbH>b9G?$q&=bTxjABCYsK#32Q&jMr?PA^ z0E*%#GBgWoXWSsqEYT{=Bf*5-SN&kfHvn+N`H2Og;bNe%khsKWWE}n1vyU}0d#%VB zz{09`v}*$uKa)*eG1Eid469lf{vT0i71U-McIzNTT3m`0FJ9c;i@Q6;-QBgg1_%(` zp}0Gg;_mM5?!NQ=d++&=GLwT$4&Hg*`&su|>oQt_ufEjVql~tz3o*VG6i;wG8lFju zyO`M*=AJx#+mHP*K)b~MYH2bxtqKDqdcH#x#OQ|#fcPU@=U~T%iNnxpLzQRui%l@Z z)kzbyzU_-AC1&xF63@8Be0>+q9v!_lZ;kQLxSO~2c`7#eefIqyf-LJ%iF{HB}-b?T6+4}1|1|zFVx{`1W zIW{}`8ZkR36d5Yw4@?VCX<%sEYJ(zQs|8-<;$HQyWEAE+S-rH+owWAY1Tni;1pzpA zhI$jotV743k-|b5B}h?WrMtYw`+Zjhhac{4O`|h)o~;@hoPAi1io*1JN>Xx>;Mb+E z0%8pN%xlr2=a1^|oR&FiJcY|#c$sxWeI*rw0yYXMi(?i8#+uu$to>8W=Itkp30c16 zFRfzB$Wi)5&dkwn`m9c~xp?7u*xUtE5Hz4&3KWyDvJryfi`kt5cbe|lN`-%Im={xn zo{evg`AoYrzDOSTVK&>s-u3Paam18XX)!{4!p$?uH1llXfh*^6aeWY&cdHqekp$u2 zMNQwFfm8!q$lbzbkvH%g2S#k}dAp^$4nGw3#W8yZ5m?y>N3G|EZuX_tG&ZHb$k|O%Ycl zZ_{r$U*OIdBL+VIp7ntho42Y`-cu4i1{cJk`)dM=YUHC_YklY9YwZKU2N7A*JKW*K zVA7s8FC@YWnW0@sXr-TP?gCdpy0_GonvC5v(#GERONBLxRSD?ZytBUA7w zROSL7poQnXh4ZVwzYTofuGm@TcV)9XBo3-FcAt@3+CCk1 zEs*I7ptRO|`WMk$;e_7OS$yElHY;ve?NL}M(-8rMlHSiO zPTy!-euz$C{N`%T+3rwi%i8H{Jn;bt3* zHWQ*coS0=5H&GNzEt$(FC$@>dLG!Zh-WF8on+Zc2+N4PX1=775Cukf;-D4@7uLS~? z?XMx@mdIya6o~6qHOL}cicGDL170mN>*9w6xUVVOE$WSFRGj=nH{FNh4{2<1b}Bnj zHh!u5iTRdqiGe_32TNS|2YM;zP@GIUwM7!0zo ztf?uMPqqM%DJ%O+wliQ;$5&-}VodGW*b1TF0bS!rq5gbVhxJ@eF1&tz+VB?cV%u}c z-Z#7;Pb24g>Gb%tBHr7np~kRB*amHJo^)BdIo^S&eFgn;b5D8KUyrcuU`m4#ykWux z2>9F=;rEPBOnCLk`jeO5)%nm`Z6JasGp7;9($cPAjax7L_s$CbOT51wtsM-F7FOZ7CUX+u)xvJ6&^`}Pe+6TaW~J@X~H15skh*fO|$ zorNk~f1GpfeSJ0QnBl~P_-RUqL~q|*oLbI8*$k3w_xWlzm~<$wE)B{K!m?V& zj{QegT;l>LLiseDofQwA!~rF(6fTxJ_NG0bD=%WA=a@dPOW}5IthL?F`d`S&hfZqA z|D5VJ=-_{JE{;E@oo)x`{Mq$T)KC(E7eD_DvNOega$@3D`AlzcVBI3p`X>TEHj_+B z4+{-u?zPm$iTQZpp>~efjmkKMzt8b{+k|F{hkfX`V$&$nJNyD`o|Lat$+itRIrWwoh_yjeOIux6-#|;pSW92uz|dGvU&~NiQ^!DC|33}>Q+T9P zYF1+1d$Fx`gxs0ye60JCG1^ZgQ4bbm9WH0_N)`<~h`9+*HV z#kyYG1i;UF^XAm`yk_H%BwxOv%|excB2`FjoE0<$?XZ@HI?u4)a>zZk zd)vAT)6RnbQ?eR_!Xv!|_)9(|l(X2G;_?3Ty0PXo7BiD=47hC`5yO_5m=w$=P^%sI z1R)zIgeOj~u9d^;p_>x1OsIH{3peCC@}OH4bJyyQC>iY6)UYRN=xd8d%KTVg^xeqCrZKVZT>Fh|$rPQ9TgC0cvs zu?WFaqY)&a4Syc3`D&u|{RBx&x!(q%jEYfv9p7Zq2y5DA@8umIBHXlX3)5>fg2v7& z*2WlJiR9(oR0gEC?7TmZvnxyo`jed;IC&}8A3jWr8NVKJ{n7DV&~gkE#nB=Se4*>x zIe0Ub^x3mLthF;WX{{PH-V(|OKnR|-kWQzcQZeTH^VSpa2HH->nhZcIX8m3*nl@2Z zVC}Fn)iZ4>6~(YGnSQq_iI-kThK?)O53JWToYffb0!n>KF5km7q`+ONnB$tJywh}| z7cY8Sxc}@6MHTNg3V=5q23`4S$aUZp9aUOLPw!4>W0 z8E<6v?V0;1yo~RSSt3j(EX8PosBlZ5$mL}?dyD55S!I^ak^=^qc?b#8eyXNEpc)xh zarU}99@`z&d(Ob*${PNr88(`7R(zgt)ui*$2i_VEpXnb z-~UcIH+;hL9rN9hv3c;YZ|Qng01bVqACd`aF!lh1N3!Vb+!gEeUz8tvy{9fZeZ4*^ zR!KJjjsNL0bU(kFkc)3Q;qfVzTg*bqea_kxQ`gW2p-4;`@G1B>MSq^gkK6ltC2N!} z2&p<;3y!8BCzzH#S7L(+BC?!KBE$$FE@1e1xDUbMGeypGg410;jhnGcer! zysBg2h}XIKOpmA zMRg}mUi;16hWe)2EtCS>*()Nld7wqs{X{W3D`m z^bfD`8*h6>E3*-e=5y;UmIJY;3#!9*k>O8=i;Cak1m^E!6N-5sC?Q6GWl5oc67}hW zaqV@F4=(1G?=eh#ZVGlCcDwd3qP!!qr80kG(MM2ZdK@Mx#Vp1-aS-JfoxY8=#iZ#S z^JEH%3wh}vIu)0zz{xLnEGwxUL8;t2%5pzVL6-$dBT*$`UTTQlz zJH*3mcAQ+6u1-$SC3l|&HRa9H>UY;A_vP@YY1W&!Jg3N&&pX*?tlgMMj>Ejc&L}A_ zAn_a*`B#@6Za+&o1sJ2++QAbGl>eEbFchJnPwoqt8`4^D$Xu-&QmM+|U;3P!2_C3I zd#NwzYxAw;)_fx}wc}nRbUnNzTVj&;<6om;`}XT8^P`bGP56n^3bRh?l?)aOi3=uf zkk$||wZf`PxWS>&|EQZF{t<97&_?0 zwp5ZEtTCY=0jX^l`uOL|8PreKQ!%(0_X#?`LHg5|0nI2%g~wegZ7&@=GfN6~p!4{0 zyHmoO_J_NfVtADf(SI)M)!Nd}mz3fxoqik&i=K)?Iio}l7c{sS)o7h)g&H8u-~aNt zB9o#=H5!ygn9OnbOkDKWG@j7GM02ia0ni4vnNPtm>9bsd5mz=e$JN~z@U|NJ8!(81 zwKSu%lr)pNYsE{Z4F}-Tuflkbn1Vxp7q6JqI9{|}DpiZfHR5B#WS^F_CcLqEIT7wO zGnLsmt0DPJ3^+)-N4mrH2DrGC^>%pXgr9%GnXm-2wU*{#l+@dDxbZ_uIWDWt*>haK zvgf&_P;{Mo!obMWV0ZFVb@jk_-O+|vN{uo|L-XQ>;7e~va9%!uRRWZC_$Szewl%0q zeL8NY-UWW+Ml=t;#!7wn>K{g;hB?xPqd9gPcFc^gAezrG{q2IqW}d>CVy zdSO_BYT;O=0QbynHX-umOg%B}U+vO!t7-Z?LgOkZ>QIVL0eJ=E20qzYXGCksYU35g zu{%R);mfEUD{kT^9aJrfABB723urRO`|HY|-albT1a?>|6)C^67I&FMJ)iDRy}mkW zX!I-DMQ@!U)4PGqwIKzG{OU zCX9VTWM)>cU>HoAP9u@(6qOn#75T>nBxX<=MkoOvieDAI7&%iw6VV?R^u`U&G?H;W z6myj&{CK1~n-nXnxbod5n@9$l1WJUa6ga+E9yZ2^>&9^PLM`kWk$=q$5u*{;UdQOn2| zY~9RO?P*Y9>);ve7zZH5F+^E#4!Y$}@EAcI=rP`vo3C z0)3e@@uTZtO2%VmcPtSJJ&^HGy)GM^#uK&Orr886 zaco?Uv7Lc0XEx{qE_0a^^?-Qe{Wkn4-N!NZuw#RGp9^^^AM(Pn0zv^)18|$}ndhl6 z&%QWYC3K3C2}Uuxt&dn_l>q2T^Un_p?A=-XBv0`R<{xuzuqAl7e}V7ChQ_Dx|RA^Kn67f$Y9BH_S|4n>la#mZ{x4P zld@JX)ibG>m(;V2O;1Q!5#ByG{9Vw)AuekyIit|zS4^)xTRqbdPutG?pWH3~tMbp0 zVwz(GGR#}^mBKyHvzX3bptCZpnxGv1HkGs~Q0X_^&uws|MeP1IAh$#5dwns{b&k65 zTuEY*eAoQVU%7J+7m>#3l?b69(TvE7EQK55sWElPp4(}byw5U3ilcyh<=9Jeh zwq5C$itk(&dekbJJy90V>+eCumDl487%MDVOE??~GEAA#tz*rCKe0D%4f>4ChM)|S zWH7wghE>!0jYf2b&z+HJ<(w3YgFpYLxHJ*_EQzD5yQ{w|1B`Y0yD^pH<5KWc@&}WS zd%m)0k)cdgxEyvtr;Ik*s`q}r?E|AyQw<&^qv2kcvN4ZDhqV!6AVP7~00`J1X*SW= zH|EZVC2e3wC3|tGx3@%x)th!~u~Pj?ld2&djb=tOB{}eO`32A$C0H=FTq+x8YxA%N zQ_Dv;f|#M=GbI$S@5aU&IA2>FW8K*S*(Uj<;g{ziK4g<*XaP{f{`+97p|{dD^f1CT zwUA-m96vXD`^TE9c*J605aw{Ad6W~KnJL+y5QWER6Ve*5+VgTnp5 z-0{WFJb!w-@Hqc$o(UVHyrfrz?V$eN8k>3211~@zw$ht0Y;8+%LCy2Vld9iUlF`jX z5b=~_YifJ)IhJV=$3QL>27;_5a~0wVxH#}PK4h$5b)E|6lzZc4ZDb!x1olQyINzeK zckK)XJ{b0#SF9-Op^UF;Uv%)cqKPi)1QYUbxzVLf^$n1Iq`31Yio(oISQ3I$sY~bW zy&@*`kRf(A=^;h(_)FitOONeR!AD=B740LRrL;wAWB;HvzagTPawC^dEBB@IR7ExA zY?NYpj`^(fzrWn-iz`Y3GhQBFxRnQ6jdu98^51-J9?=oj>m^1}5gBdsakf9}s5B8rfTZ({OZk|A6bINuGsIoKoB z6!~IG2JNnRc4K*O(>ZeDnI3XjOTh7o8egLc4t7deL&FwQSOjSvkX!E2pgR)J*H6c} z81|5%f)buj(Ioe4dH>Ozb5#A@7<(d|GBXaY@m;z6V}9(}#Af8so8h(vkE3};S>e8+ zFn@_8Z*%rIEO&#xlWVVun@16SRQc(@JMdn|5Gq|=8>hGX#&!=j`GFtLyMK6)@kE$M z5*@;g?Wb4~BxniiVi|v@uMCTY<-WGPriKMs&N439A$X)U!PHqVAaCB<#+2qzye_ArqDrXc(6H zvf|33>TYJta{D^Kdsr{Qn7z+rC~FKSs=1k;@K`|ZSdZSr0-JiyUwp-ZVpufK#6yOe z12LWFb+wbZG@89Af79m1Fe*0;5somb?;L*3%FI-UfaZ<~lojX*BLvfsCvSaqc>~b9d{LwvC^*G!++xRdx#N%oG zT{St~1L+0}Clc(y(vg|bn!@ZHIuFW`<&R-tTXS`kFAgTY;Hayr8u+D^zA^Va z+-y;$@7>8k=oW#*07wz7QI(*|%?DOzt&tOM?Z2w_%)N9QQaBo4(`Gs>>z$Ty{8Nfv z;65*g@BVQ|v5jB%{}cy8YKYG8f9V&ykWZo1a9DbMJwts+se_)Tww|%Bj-HW@mKLP+ zK}X9-3sO7zOW)84g2VWwp<`t9%ShYszt>uyC>_A(r0@M_p7Wvcc3y>KTJf@uvhQ3$ zzH|>JuVdW6%0k9kFZUjn)v>1_%(471!FBS$Uo`n*%>Itjrk$?d`R&gFn^Y$2KQ$Jg zeh&yQ4SSOM2p2Ov(m+g*OF(GAu}}m3$=r&$LLyF3WdWnmd>fgw;D#1Tm6~@?WVdv9*3LQ)4c6<6!kwc{Bfe?5k#84_ zi(8>A;lq8u882!&{0Ve#f4@Z`**9DfGm;v-X<~L;68(*a=;tg-;r9~LxE(8SBEV6w z(q6BIB{rSOqMQiZSM9q?)OKK&?Q0MD<#ZZ=kSf;746)Osv-#0ljnk8kuRud$#ew+B z{2bx;EorihvRlRqlc;lMA_;>k3 z>AOzqqbUb&4aX~Py2I$+ZP%pQr zBSFbUYGDas2(1l;&Mm=8phT{~HL3*HX9+Jf!Ph{MY9c9h0UPqy-wTI>OQ?Ov+Sc4| zUWV2+2juM48wFV1Vt#x-bZgnsYsV^Br>^A+)4G3d@H$VsK#)9Q`ksBfM)-Mt_G>bV zqwq!C7BY@Oh>auolElW^d}OZdT>%H2F{}fbtc=o$1-Qe{p0|3%BnA8=I_yNSx;p)2 zU}5E|6E4P)==Rp5yf4*BiO0&F^Cca)Uh)}V$}De){Ez~pc94LZ4qH}MKmDDB&vZIB zvbY?O96uW}{x>NrLd-cb+V`CLtDc6f=mS#o5Asr3BMw$*J|fOjcq(l&FzR2JqK5%eMR{d@TQDS26SEO9fo&kli8D@fdrx& zpGp9J^$H!nxrgFc!Z&+Y%Na82qbeZWI0uMkFmkHxnMp;?wf}hu#_fI*pdX;dEpLT~) z23{?)UxSJ=%k^yQ6q9rvYg1i)Q}gd<9y$CzP4+{s^^XuFAVe~dWrInC*H!PHVZe%jzde$(!1f>au%rnc~5)JIZ545 z&WrjQlBJV$^)_H49GGovMgSr<&fA9c0!S~<`EnDAcd55-84hz;k0_{ksZ`Qq?qe8# z!>-futvW}hnorwdP^mm)C*<Wax?FH_Rhdts zp}<>fbjX0eah-4DQ!Y0NbpOsr_>6Z2QO-{<##^l%T+Qu}J=rI|NY4*XPJJtxu7I~( zBJF*j>j)m=>*DxVGAbOJPgD{i4@YPn>9kl653eFlB%2dTq zvcL2^*4L%fB?>l7Q2OuCPQ$GNQ#ok|6sJ4NYk1>&PH z4n+`OV{a*rieH+U6Q$Q4w&T~#-+22XE7b;6{N@X;rHA-I>I3VW+oOD)An`zdaj;~2o z<}A)R?ie~MiJ_do%c3SI9gIZ+%I-+(ortO`x68VaAxFy)2_UXSy+1$SG8&#?zA`L> z|9Hsj&LHcq;ArjX*0(gBFt>orsWU-b-v@{0C6r~HWkeOaT6F6m1(t*5{owVeHa@1`ojl0f|;_4c1CNp(-F`<@-{uA zQ>=v;LY??~Afphfu#7^^Er`fvM^ z98hH@>1IYjd5)`azfWZ*u(1~Hy{L|G&6Hgu*?Z}7`8{e-=aQl{IId@-fx(xrcwIBq zQnrjY2?aFYp~E^jKBuiA@4Isz$rL!-agPz=tEDgp10r}Ujrt0uq-4hDOEe08>uhR5 zF{*6Vex+>QmiUK*T9%3@o+~4knh;`XBphTDOIFkO>mJ;ku?iRF`QXR*I}N!}tmtL# z3B)3R7wWmgJM2sw>a}0rOa!^sOMTKW4^Vj^8YkR&^_+IeH{Z_sbC5(JvxFzF8Q1iF z^yu*R9PUTF6NeJkT)2X<62t`( z(+4(`h1^2U#%Lo-p^*Rxk!Q<(6OBUyEL7wVc6xCmv7swN)F1TXS}`2ZLvkGzP9d+A zBDr@J+TDV$V`=pRQ)>xbHZPuv>I7#Z@O=KG;q$pj%6{TK=Jy$@2&7|T?0+_O!TKi0 zq5mRbf=U|48ZDn!Ki*Hxc5f}sHRzlKjw9Of8PP^!msblbMLHdE8N%Gnvf_s3c@KOP zAQ_>EB7=O(CU+ip*spNtY`sOACOr|lzo-Wg97_li4pVg}PDn*QgNb|UV0cl&rwZRX zIJJpUc~`)fKlOD>vj^zPrtcbf#ly8$d!`L7fHv(#{wjK|r%8xUM*Sk{nMi)^7RS)vSN*`SKY|_+~7005gjiew@}e-{PoM)%&V!-xyx{Q_|dJ zwBuZcxz7DxLLL_$!vR;eg1|{P($=%p? z*+>?v8-^Q8j8h+CdQ`O^MotR-J z=(bRPspnHZ8(#OCkk)VI`dYDzwvVS!@OX~pX1Z3Ta#*eG%K{aCT^Sxu1y+Oy6L+{$ z3kBrC%)XD#jH_BTzJE3iN%!ZeFzUn6s$EzZAcwQ-z)7O~p~p7q%2*2hlA0krn%{`# z7f_jiggSY&QdT-3u}KK(Jt@YP&sUC9WoK}{dyL?z{Q@*-ZB6k@m4c@h#2Rm$+ zBN4v_^(XQc39=`(vWLcav{L&(eFGCmwAGrqO_=gEr4pRuT@>3<@+6kxA)8i}9b9eF z*jran(C#~{T>;}Bp9kLYtJ);f5&$G{!^hP_*lqT%qCa1?>;Kb{IU&O`Jxd6`d&2J#XU(W5N9p0CE^$_tY4Q`D7SPaV9q(v&kBTS_oy#-?)fWrD!^gkv>PkB!w)&p2HWA&r^}#2gu6$z6f7zo*5| z^7dp{7P6x9L?Td+jbRH z<kg zbi`;XpD}>&ES9<9Sp8dArb2HBU}9r)*?2&d{ZXc5k8k>$Dl3Fye=t*QIgJghuQk42 ztsM_cp-vk0r4J+hgSVKq|HC^Z7m0#y>PR}52G;G0QGk?ox;8;gIrQne=iKE%)CC-i zdy4+44)VJ0l^*+B0LkT1p53d-KQLRFza|f*npj(>9u>DU>tCc%z4uP&xt8ypQ*>4nW{6~i7g(C!aY#)p%o5wgqwxQG zAEf_RsMv!D6`x5%?di3(G=G_xLt+-X>ROtRZU=omGd*JyNEL*ZD&#A5EjdLgRm1;O zj9-xEhySDmF?c}d_R9EC@{4!>)8pU8i>rhD?;uI=1)&tLy*KzpKRm+x9R$bKbdERO zGFN-<%@yTrxSOt@8Ti+9q>3Eo1T`|E6!svVUp|~DAH4K!B^yGwL4l+cilN0C?ERgN zMtv$kPnOF2?#gND=`)diH0Wd-W?{kpyyrp~5}(_YcV;WBdV~HZRPXD%Ay~GRtzya~ zB;Z+AO_Q_;%^@(g(qyVGItw%SlZiHj|APYmPsw(qk#)L}9Pgd=+?{81u_rHb=PUcf zx4LvM`_yvC$WwWQKW-amIi^e^-cxORJhho_h|}*&y?kM@$gRkFWMOIGYN8Mukf#>J zm}`~`O*Ri*y-_K+G!-F!ayDYe8Cp%A`yGkpH6DPV!c5qNL=}?HC8s<MBepAID^uuf!0IO1w+fcK+w#7#F=q`Qjt0 z;@yvwe3=^h%a65X#sAVG$I{Vv`KHEo* zjf3am`)4TOhC<*TIpmlBV=!$`$m_E(62XtHaKut-}86F2c;dQjXK0qC{kXOKPF}D6jikK6VUQ z!AZ-20R~FZYb##g2~8=scJH;Lq~O;-d|p3j1ZZ@3>G=(e1PxI{&08~L^iJD$t8UeE z*0Wz!*n;LMo5Od{=Tdj5o=EGieUENU&&I`DY46&E8Da@|tRO)sd(SBeniqef8xpUY z{RA81B1a}(RQ;MxWvL8ezB^Y@J)aL-Je}WPho7L!w5mY`W}vk)QL~E9xR$Ir()x1-Jx?96*BZdvaP~dVzykb>3J|rFDE%>NtTUa$$`bm)MiaI&?X|*V`}=@*NtJxV50t zL)96ZlBEJqU#X0S+QA=jB2qJ|Aym zcW2uJ%L8&*`i{8VxFb#F#QXb}Y;RUq+QfQu5u|c>B@^IeyC+?y7UAouBYzg<{qx>s zgVh1X96hifxS;8*_h2zTMU0W@3w>kQ-BsF9gak9&B zdr;vp*IzP2soBn2fqkQq`lpREfnJGC5~-PB{`aBXKgjgwQh@WgoP){k<~Q~lwDsVu zEZ}JAM^6)B=23n8*;eOwOd#au2}mV*ewV$ObW9WUUrDcx#XNy8I!idNupSbNa1{|p zB(VD@b5XO<()jn>td1M$#{)%*q}aw)6qzXWdyXpH0S>*wdLkGpBNj~6f6kjsz#rLsf= zzNAYu=w{qs9IUMQHicbEyriOfmql%;NVnrV6`Wa+aL(@~Ogsw3{2YZ&gphiDQSYi5*E!nS)xbIs*Hg z7v(EeQeptHu;f^|*=kDOwWO0D-OFqPx)TPjKH4L{i&n`JmVI(hV0uboWMIHnS-w8n zbudUwv;oMt!xXJ;%g=-(H65}w8rg!WFNn3?`gC4KQ1Rrd)plG5m`8M#f~EqriqMg8 zT2Y8$6Qv^aOaA{DL`*}jr)FZCz9&{?r5h65U3u|~u7CdqD!Ck)t|^0&1i+97c#SBy z^UwPy@N~UZE+ojD(1!%?bm(QS=+@tHIg*7VQLUYSySb8P2ar`X^d^m7@3jcd$|W4D zIp9{Q_u;P>!#5w&qOGLbxbh2jVfLqS&{gTQ3?P7xzs}2WlAk!_2SU?f7DCH1lkN;8 z>IGj}WxWRnKHoDM94Q0Y@Y&;}WSX$})7#&#Q*-B94Lcx>M0Ltw^d7DCw}hRQUkDc# zZWRueodn!<9tQVm+dm{l|1IEO{3Bw=1OUJ`Q6M6wPcNCe{{rxv3IL!I+x>pOI@eqr zSko>+jZ4Rm1+2-Ab-?+~kY~#9UH-%G1RLvvIFMFH6%|!zODy!;`UXaUsvzL&@uT|u z+x0QA6l3rVQlH9*+#_gOI1m;9+CQQ*)w%QxXu%B7*7KA=i%3A#GebHnLsxyQ8Do!9 z?0PPL`vDZ`YJp|5{1L3#yq-C?O<>BfGS}FjCY`GQAXrQdICrE`xs0i9Hbq`XF572& z2qeJcL@d&W2JXHWz^_URVZ;Mwjoi5qpmq*tOQM5}{5xy+!HiYejMglbYOa4kil`fR zCFBDKnYAe}yi-T-e{*Po?4lpf1|$0cAe$s9yKkDkH^tl6zTfnyBq_hh^~zv_47-)( z1klt1^&UwgvO3%wZ>I0huW6*|4Rn{htwY-035No@m1mmn+P%eGE_eQ!&{GRRTwuCR<^zLavtN4d>vbCfit>|B` z*i-M}WNui|uECW*7nGJ8OMxy?iyMC!R*D9riQJ4Adic0QgMB~GR?vpVyPal` zjRQcN;2?z@3_2II{ACgjaS_~#d2;#DhqpPlQ@2l>1r46H3*9V?wq2&RPaqL={Gowe z*PF|uMy;V93!&q{L}o7yHFnf~<65QZO-&3$ftS!xTJ-+b>pm#Z&J(Wm-`GGA6h$bk zGfx;{XEl*OX9~14WRk_mp4pg9pk*x z6$33&4I^in9eM7Rjvr9&4&WLBtlGfPsM7!}XaPRvLLVGUA|h14?e%o&zv=-UHHJ_e z7`m<&-z>3wKaot>dveLZoU`-bN0GsVyyXByiP4!5w@tuaw{69nemrEh0gRhaEffx~ zq=}wX^lmlK;7w2%#;?y=A{cDdP;{m8#%Z$m*`i2M195*7-zh>u_9|q8bvNG~XdmO7 ztA%IIcT|J8vc6g~@dX#AwW8k)7Fuwbpk7tQFZ$19u89UT*m3R7fr$Hmux`@)l?{ru z7|NIfpAH(@r?B^^HB4B@@Kxo0@A>&By5Ww%MgEZ<7K}Xld3NS0b|wmrGm}90J#~B- zJx_FaMq^63y8VEuLv3-yVO><6*DG1Vm+L#pex-pFIwFu5gBFwQInsA{=kef&Avv~s za7_z=Leg{&F;;}DnuOnR6w|pZ-DgW5bjyP2IUP%nYtsk!bxdIDrVPQPXa7^34w>>p zjrq~Cq3occ5-OFA^wh~6C3IHKnVKvhvg^92!4HH<^`qC>5#yG~|i>&w1}^Gmpl z1bL{*pdI}_LO679of)bO{mx1#h=U%nU&hX2hesk!&E01mjF;kMitO5X_J@vF0eo>yr>p@E) z!h#KVRsjb?7C#P}$J(iOGr`%eF>@Q?Uug&q=0Sh>*g`b<-LY;k4x-89a7Y>}1R^3yrpANQGsve!TaOaSWS9{<<+t}#DZ0%dp*75K{Fp7ZR?o_2| z>lA569M$&&eM`J)>c`lV%X$|%hL@7cMp4qKs(L?mD&f;pHdK+Fhw|%E=WU2NvcO+7 z`Xv|*)|}Z)$66Z%BZ~6bI((fmT7f%9Dn3zo`Xo?5{9lYPe=p_9wbSOAPl7F>BP!r7 zxk%NvEFv8=f@b;5(Ys3B-R*o6G(?u5 zd46xU4SDH(TQFDetNm&OXDF%R?K8?9HWX0^3iN?BWJo$(CEJymP0mByvOXxdhWzC z(pkgl+kMrlhm;b0Qd9YyZQoQo{|o>b%@_0toGw9=3*`ci z3HU7E28`DEP>l(j2!K3G*1-<@Z44p~8a&+#*+p)A@?30uv!j-*`;LV5e4W0gQ4$CJ zVl)G-uW9_Uwg%M=l`V#ymWbunCC7(4cZwz=gY$q$eZ(Wm_D#GV7>Lh)*sCmat7N7y zBsiomR3z~iM;2C~gQ{?dK{pe<=|~LRwS}ubpXEt2sz(HiPb=htb>-|=n-m|bKHEO? z9MB=cf;sOvaUXosipF2eZ~+M|#-B3dMWTlSEN}dBpnJfpdYp_z_+`(@+b_0a6O{NC5u6B7RRgyCh1XO82Y48UssIXTdkQBxnoP@Rs+7?m9<;u(e<4JS(5WG{_OflMAn?`9(wW2hP)K5oc0DEA$)$BuCR*S$zh&YF~wasN)*zjQPcd54w9gMIvy5u9oT&W!lUv(g0I%7YKnnWUqs++ z1EtpB7gug4ZCF+}MgK+F4Rl_j@r%8M)}?T;f3q80%_Y0I!UGzY6_PNi(!Yix-qF6o(f8K&GUQ9`*g+>0NhMK%lp;?>*lj zX5ICkNq2!yIF`G5%531%JZrw+|K|Cxclx3UGjK}VFY~l6EUob3nUJLcSP(c<>~I#f z{dX;smlb=|@_iAqhIg_CNCM&hYQ#1oKV(1jm!3@&sJk+xY!F?Xjk@~W+Nis15Z;aE zhn{&mjvcfOjk*-z#LheyNU%_-5wW*nghn$Jpgk&oNE2ar4)G3-`9Y6;k=T9IT?Nq* z1NErOC>=Vh77O3G5UBJ<#@4Gj@&82;SF$i}zqJX%Sp{Aius z8L@gvh^p3(Ir9n*6KfGu?^#;9pU@ah9Yc#T9Gv0~8u>l98)Ir0lQr&<5zFp*!9GGx z_XKSn8mVvC$h&h=BV@I~qz<$r=+*`iJ->u}$qE6e0;0BOY^d&87GIO| z->JppPW}0pJq5A1QVzgGULI(d=&_SRpV$nf3}Shjl0MUJ>jju1BxzKv?@ zvr{~{fS?Y$IMsOZe5Y-)*6<~lA$4c2ZkBi{UiS+)PYDGFKS?o9#s&Hm^$YnLqdmir z&luc7&lSm_ncAsD+~*5C48^Ur9`RnYy4)SxKe&6Vax;DZM41=sbRP;XS}B``*S-l! z3oYU#Y%NgFo?P_~eLq70=jz_2s#cWpkgt73fODu<^l$t0PtWS5)xw!Mw%)v2f{uxUMVY#k65M9b_@dL%T%0>QC*M2 znJ#)+=p11|naR9PwZ{sZvRW28#IMgwq|d^lgJ!pg_Xa=42_VZWX_;v0_La=4d&~Py z*yrWP9ecxv^{*l)JFYP#@lySGcx}}IMpU)bPQ6v(S0oMz;-`I{ZH&)9hPqjPeI4P8 zZ76d_{>GOv#*SlNX#|v$brD8@xCE9Vo<^mLMcoeOozbXLfg4hteVx8h1)ky$T=N5d zd40T7dz-2eYpcq-;HpLm_J1UV%H(i`UpKstbWm3|z1VVH!g6)^9Ti2kTU41e)3G`I zTZ&u3R{tdkyDZd_I(_v0yB^#Y82MJQ-t-mbYiyJ%|LwoM6aId9;71np1b&aC8QSbuek7>o{%oakK5 z1EOM?q4I0?ou}Q2anBN#)NUZ)#v$}xzI-Dr4L)`^EM2%0EVihpWrn^ZPNt%VsfO7g zYtEg9fxB+tZs(3L24f!4>t!>e-nj1}#0Q^x;*6gGk{x5Jnh3%ZBO!m>=fZZty3K9&PSgivi`7zyYdjgOTH{>qz(Wr5=6?1`XqK_EhKiJSg-)#+ zWj^;Z^DPHx_|$I2>1M5%_#Rmtk{tD^i&7ve%G8Lo=^mI!opUzPIkl)%@;Gc#At$dO zTx@k5^3FPnPPyWu9$bQL=Pz`DFM!tfG-5Huc+DEh{#}YQ&MrGmmCD~B8_l!*`jnKO z^=g$uzX6V&BFPp70QicZ<|OQ;*4mY@wo`}pc1a&XNbGhxvEv()r7nX}E^U~+70SbQ zt7yVS6Nl86F(Toi73+Ewb_;NN;b{+ywF&DrM42FtJ#r#mXDtB=p(GWSo=VFA04jj5 z%#L=wJnQ;Hce`ZMve(Vy`Sts2=&pyPN(fBs`MR}c6XeEn)-CJ-fhKV(R<@0g+IP9? z=<8O*uFUYHaQhAR6;+&>8neG7>G$l_8T*c#h_2iMnw@gX000zUHT$A>ob>P8^EJbk z`Q}=(H<_2!r1`-DD7AUgm>)>4cB4dz9opy@b}og-5m&N~IF!4%PH%Qfjx-N%cq_AR zzDP{F`OKVFywp37%~S-IonlJ`j;~m3jg+Ttx|8;{G2IP6Rta-+nrrN=DO=A)D(2^R z<($MZqgK#1jpvaUOCC{9>DTswTwhhU{hUh?ZfH^8gS~0EODx|8^dm>yv9=m}QN@pQlzMCXa{n zN$ZTwkh|J|LlaISnExC}gc3RU2TC(J5n8L2;<>|I1fmmpO-D%lJRWMZe%Z&oA9uuY zm>O6CE%m&fNdSiBqNJBJC|Cv>K-~aoZ;fXbUmtzUGFJ&k&#XY*wtRkITRI%v0Z`Y! zo2@JOM*of}T~!U;KyyEtI7t*PPdaM)0|&Lo%9NIYn^+MIZNL9t2T8|bGfrL#lH@|> zOC%n#$>v_qV5d$_qqkO_C<)>6<5j&s9AjJOx3*0>6xWxdv9*z~Q0O#O_?eA$ z-?A=9Val8Je6vUdLfv3QqN9&gRMoLl0+!=B<`2*%@KyR|nuenRXeLN6^J;|Q<fcRrwspqndmxem{jpXOxhr!0?Vmy?GpL~8~W0f(@* zr(dhruLF+bCLNc6Z3a-#fCkY0PV#hgaB}72F zCXIt+js*A`z&3;at&=9N#&?dmSCZA^tZnBR@zZelmnp6fWa&2Pnw~?YUfs0)LOik6 z$WXP(_Z*;8rORDmIB&E&JQ1mg8=OJ)nU{9pEQ` zpmN|(`nSdx)e+J)o8Gu{;3e!Oub*1%l%M;O$aF$?Drla%{qfA^X6`uLE|kRD3dE8F z|5w;%lwc>2s!msLOvyZLAMOYO*omCl0A{`S(O;Fv3Yy`72tVKf<^;3?0qO$4`&XxV zAC-BcA!27CZnDuM1bK4QKBNX2o{XxN{b#m<54D7heKsm;Yp8ld#kC@JOJBM}Hs+YH z3|HHtcQlZ$1(Rv>ki>)~xURuWAq|!vm3Tk{A8#E{09Y0M$(5$W^=4lR;W)21-u=7e zFghEZbWSWP-MK|ur{YemlKBrhWzVb847yguF1Isc^Ej(J4QoJi%|7J~A|h5cp58f; z5TD@SoTvCN{*dzqPiJRS0001`C;$Ke007B`2w3L;0081<8GtTaSyWbFT~}9QUSC^a zW?EojURqIFSY2OEPgqV;Sz=gLTUu9FTUTCMTTowLU5=e=v7}?u2cSSew4|(&Zp{tv zlgy%nJYNmz31dIJN#Wtitxd_5ko1iq>SBn)@6Kv;-RL15P^7e7qofqR2(H+a7qX44 zf^TD7qJOi;5jkgW!R|cxr_xf%D3YIdkqrPmhi~Jt_kG*3Tai2GS=A3Az7a|^a-=`a z(3*S`6-)a(b4zxL?n}N3CANzi*hf;uY@}(@3(3t7Cz)BhPko4xGIJoPc?RxuZbXG+ zv7eH4g#wb{?F}rM7=;7!K?k7c0BLGEo!|QU7Es-=`F;T5`@ABhtmaK?!VwsKo`Dv% zKA|qEHLGwhy7r(>L_pn5dOqQatlY^%m!{6;jc2-9oET>N5KWd}a}F+`feUZ~Kt919 zfOFo$eWI5LkTvJA z04om74FQZ2p7t7ArLo_!-XQMt?i_FHxBgPdFmd@_N2GW?2Pn5s0N~s1J>9Um%+p#Ap-#SdDr5-qlpqjZ zr+{E_1?5LjV3fXhLPeN3Qi-DB$%qEIwzuJ|CoetoB!v@b&@G20K??9WSzzyQdB%}< z50)UE<6!bb!;YaNK>>(N?bm*$aBf--$GLECtyhW=V@wLnpDqIlQ62Dfy+O1kCk72Q z?gg}#lT>CKGYHN(?{VOjiU-9imv!|orYFK>jyvbldsGrNnqct5aO^Qk7>Qb~OwZR3 zkCMsn7XemZd0NO%pPXLgA?5DXv>F)YQa;mUlm?V|o0PdT{27#gnGxKhmrFOAkosaW zhiG**;i_4U*KG00kZYDe!Lq52AfmMdo##5qAxHq~JiNx{^pEv%jK0_(TGzNd7@o;I zJn(5{s;|)JzZ0jj)cVDcKKDIkAWHJR86QW6isml?B&E&(=!M9)WiesBIFYcjx+iC% zG(7sjB-1qaETsxovICkR`7r>UeT@Ua768E1lI-8l=Sj<*$J8i0`5-FB#nh8Dntb5> zi7P+T0fY?$(1RWze(G&R!em7_kv~LZt=X+M`dwp4pEu;~l*IKm!HDzed0S^&CFN;$ zP|VY_o}a?q0}MjKmI1*wOo0Xxs@{2@CI3lI9ByT999M+tnfvM+c;06EDA;x7q0>&# z@c68`NTjW*Tai3#>l*6DvxM$m+y_#4(2Mg&$uUcw#;gdSkphvq^Z9uXdAtFZ9mO#O z$)tg;PJ>FF{^XME#|JGpG3cqC#)XF-xM_sf#uHBs{P=46m|dpn-SR3zqVP1m7j;`I zZ#;`83R98WM-*gF-4XY(tzkHYx} z^OBj@*VFXo-T8QTq8$oG|0@>5Obq&N{oRql#%eRlgU}Ly2k`9K+pSri(#u?wN3ZI{ zSs}F;b^s>}+?S{0_#K1CWHi8-*nxe}Qv;Hs*jPG%>quJEA*!}yb1;AX=uO>ZqT7?k zr?!|0BX#$`ljoMDNOsrH?wq{x`-si*e@Lighp6VLTv%?ox#us>9Kh6Kmbk4`Fmy78 zK^Cc*5*XY_Z6+OwH0tUjdsF85F=b8wmSc-xBTb!R6wu&-feFy1H{$NL^F-5miOol= z>(ecM*POIT6?P&#S(BfAE?IWJSl0Ug9V}twpg5tVRoQMWQeo|kf$kYMwqft8lYK`= zR$7j}YiYQS+yIu~>8K2##{>y5)r{?1YCX_1&Ubf$+#Ln!&Yqb+^*oISkChRxN$X&e z-B>yoTXt-(ZL@Hi&(E%Mtk6=D`(6a?Snk{Cg;iVU(qal)!Up1kZudzfv?z((;Pesx zd;*r?>6#j7*aB3524LKOeGup-jMQ6KyK(Y|Ir{L`?xu7B2Kgy$v} z&$IH=w5mc955zzUVYKqni?-eCe}l`&aZb4y$0!~)Pw{Py z-~=MsdIV4bY6YOmjOL3*doOYo!o}%t0=rr_1%xA}#`5toFWjv*B2sise@xe-m2AM-kayy92WxIT)RIS|80>-Lzh4LG&R zyFnu^Ni*($9;-mgytZ*t4nwa;aIcVTQZhb$r6bjI^xx@~?qAcG`#RDo!z2ef9UO;L z*y`JllLO};s9aL#P^fGOp{vy~`85NYVrkU)pvrN9x)=(8JiR$LmWfx#-nqT?@fwq# z+i5xA7u!1mZDKnLt_t7+;g$~Kq5~kPQ6iPnbF=81$I}Nf{d?lBblmyV;f`sr&ldMZmxP3mGSJYq8>Q-9x}qudDn^RQ!1yY zc`9DAxXh7j=<(L|Mm5NNDOHNS{^W$K{@&GAhY2AL`}pvARo9N97cEIfV;w$F8YaZV zsm!13{OPfrxNl7vjd=ERxP53M#dx!AEAUv|rp0(`N4*4&vI&2ksvV}=fQ@Yx{B(1{ zLNY&mEg3tRqOp}>b!pH$wi9;yI{=d4Spvfi0RX=N7~98-L3MO({lU)q`Vi{kYWJ5V zS1o@HB;($#r0Ov7tbez)*5=QEUxG$94n=}w-NRx+j@!*N>|?R(IC}R*<)vNqc*&Qc zL#l#=DhFK5@AeIn=1Gt~fm;Fg4Nw3K0RU`Zfo@lZ$Yi1GDoGj-Pj*@h>OU(Zu%zu6 zP@HUUSqe^)ZJw9q=5zOwyVLGyhe_pc|11$$nMG6?rV!#9pZkPXky1(nNho(SUhK~} zxcioAy4y;Cp8*s@0~7|cdEh)-DmKhUqzwYcI0r!(&1?!VR{*#oQ0>WhE9F%F;=EHC z__aY955@f*2b&CAniA}5f~^8C2{xx;k3W?GmS}U)N`S8?Fg|DiJU}Nl02{zCj$Dp7 z_f-QBJW32owRe+Efv|4{z`l(nA@uc65)^-DdI2mbP}KpDF!8NS;C1+r^CBDkVuCKq z4Lbvtr>Hv{@Fl@KwJ9UPQ2-3TZ3*XVWrv7R-aUwM&g1d7ef2C~AB_TtprG*iwuU7L zM{vH7CsMs*HZwNAygiK!Vb1Z zfl5hxknF{JyZidp-ZrK^58*;n@%-bijgn)6;dW2#Oy-koUg;-JvitT+VFD|w)`nRdtOE8aM6KgVmgT0N9`G}Pa|Mu4paFctlFO5b!%Eu) zHQ((Y28kT!udY06F|0>lWb|_*-O`|j{IXY3>4u2_w9(oBy?)-bKmQ;BF`a+&vy`%< z*~|3F!IYZf*LZ5AVm}xSDTSi8K?ss*bJIS7R|&iWU}K`!1g6uu9W_LY8yx`6hpPhM zX=0}UcF0-a-m$1uEx(UX2u`y#3e<;RUk%3W<$q*ypXx`a$o-fAKviI{H*?ydK6tYtT37CF20REwQ0W761)beqrQncz5IL0diIhhzdE~HE?}Jcg zMR%x+xz(iac5+3X0G6P4UjsHrMX|4s=Qi=s3^&f!(^%_Io%f?y5LpfryCa!)#PDfz zM-?~Y>7wxmT(^k$lm}55!&b$wA>Mo$u0B1nSKvqgIeBDx=nvV+;VEWRnJd;91xY4?sX`fYLMIpf)|i z6s-zfD1_?AUhk+(^bsV#ZSEb$y~?wcwxMk-)->z?-+!`}(!$}V_kRBk=R~@h%IOne zO=XU2zI4)pq+LK$kFIOY?=jbeAx9@$voHzmwU}4+$!oVW3T_(k=JGVj%-j3VpR)kpYgIdof%5 z%AR18n?G<1@C6by?CCZ@0gxKkI_%DvXLEgfU`_`O&5tex9;XQ!-F&wD*Y z*Y8Dg9H6eldi+t0Biid-uv^mGzJ`o{c)7v~0G42`TM3wgt2%K209NmTYD}1gY9(0m zD{leGc?Y~_wv;nW=IqoT6kx0l`~SICPhK0)qj1gDy?d@iJj@rH19r#FS@rXuu+q*k zvzK?(m3ia@kPe{G6{fWSmSe?QDZwp3NyR}xGAIol8M4(1BHMh4k|;lB0Zi-~n5K z0|sCZ6ac>AUO+nUYXadM8A^#KW?6vnNmZ#;D&YHHttcie*QFS2b`xtQ?Pofg#5`qn z5ScwJe$use7IJ1(j%w3uUkZS6m*{kme0Sg(v4ja-bKB6GqOfIr)z#eAK&7xo?OSh+ zRX@I-DtOPI9>FhdzICY8feE9;YEAK{znd%J_K)L{f-VFY+TkitE0S5O$h1Y`q6@F@ zG;zFLE3wjU<&tji|uPy*wS<{MR8!ln(w7wVd zmUjDo;EA=Vx^2RUzDlkAGW85_P8a|Z0r?)hP5Dw0+hep2;D4wKQA8g!T(=Qg&H49Xn?};S~Z|a!1KWu z4^>E{PD~N9*O}4;F`|whzR4iBy3u3En))Iq{p>E1Vw=DNB`EL#*pmwkpaDYY(C?{= zC}}(rmhKhc&O-`tA^?N(kfr9G;p}xU@pnyu6B8h$0r9sFO|r)>0Eq_50+e`q5y5lf zv)0rz|4I5045u~#=O)1I=tQ&+ z6uRp`_$mTtX)LIy^x?}0Pyh@ju-}EW$K?rJ*qLyC6yW{3Z_(TUmR@+?12c394M=!S z0ig0$Q;7FcOFAXP4PQdgcmJ&w+M>ATo$l(u40*i1Z-}a1o^2v}p2cOpZKfi)A{;iT zzs>Kb0t12uL`AW+Jd=s!_;O6NCl7kN^YinJ9L&Ht>}aPeCY}A% zEX{_3!Cg9ip9-%`%1OD#_2YZUZFT-zG3<3*KVf8be>P$2j#I_CoPs= z_=SpXv#L~}Q2S{omI;=A5AL1~wSV>bd6UGDG;=sLE^PlEneg3Co9!HmhtNQ*gjAm0`EZq_IOR6 zzWjOi360g$waQnNQ!&!MZOyBgX;$@(+GE(MySg&F908i3(8&Y0#J&?l0F~`og;+p= z{-A;Qyqi$t=;@6yE5e=Ydj{2-BeazwEcd_Agok^t&Wwr=!M#X)Pel#O$;I0TlQ53d zDv+w8MNS4EQIOMdND~9Qd^A#r!>ZaNms8?2R2q`w?Eo)Oz!u;X0MJzEs6BcgZ;+5@ zNlDl{mWaT4(<>mmB*11H0K>oOp(?-3)apke>3!ECY6VDe%grzg?TfNE=16~rY%M+q zBFZ5^@N)49jo5jzuh`7^oEe&;2R}Fh{R&*w1Yd2I(ysrF`o^ z)4c;l?c1j@miv7|vfl1>+Uo9g_e8R9cl6J-kG|@$>TOR5f9cOQm{Z?Z1wfyFW+b z&sZIc`@J?k+JM*;VjLS9aAu~(R87am4YiREL80Hlw4(rZK zbI?V>O=a+Ao>TYWkQ1YdGXt4?N>-Yv?o~#bQ05DbngC+&Xo#<^8QQx_9dz6qcgK3{ zXv*$hJX;;=d3N)}ebqC;q1w^fUw$48v0>R_zO(}9M%F`lpwu30dd#DMor7NAYjPfo zLP$#cW$ueh%Cs`rG!d4mZkN$?SXu~VYW2+6y6^f9TpaIJm;S3d#GhBcPWxs1eqH+B z9o-7A3H^et%i)sxiQ$NLzC@DOpIBGpBMc{Z=jcxAeYyF8sYE2jK!w|`Vzo!o7VQE% zO$Cmr9J;0zOU_QE_EX{%^K7UtU;R$#ueX>65SwHp?k4lQiEFNU7vy1I5 zB8>+n7@+PGBM1^WL6Y|a32o4He2;}sOQ)h&)ShOI75?>&L7vTY++~_*OF<7hphx&5 zA*f@zr*>S+yMm43w%-oWgwV4>7%=n@= zlGvX}#HPo)?0DqsMm3&<-TBXO))L;EvbL|ii`KqFTqyHEt~kI6j`QMysmAG?b0vs@ zx;OuL6v>DVo-4-kfC7BO1nTH}4s;H4?`qSLi?WNe&!G2Z4}T75S2vAtE6-stoW5U)LNrKQgrl>DFu4yM3i;?HRIyy(yH4rJBYTbBTnwJ z9%Fdhge-LeNB%xY2S;|+kt>&AH{0$#oZ_JQ2NXC(+&d$gdKyS=0m# zzon_<+@~XVj))QW`sH>;U99DN2%O75$Wq?7&{Ww?swU;!5YKl&hG5+&^bk2eZpY{0 z0G4NyNhQDw_{pjS`Z{(oc$f=mvC;EO9=P8!VQ)F1VP19pI)9Ibwgw5Fj$w(hrJTF6 zDr^RN5anKFwZjvCVSO)bh_zW){1VWmSIjOpf1U{@uF zA^IwME=Mlu76_&HcY@c)u+L0W;E&c?(U53GNxAAi+9&g%RI{NhTiOAsiPRQEPwE{5 zmMAJ7UspZc4`9DXl_rJF>v3CDRjKzA+IeJ&I z4o9&vkC)~&lI2(`S^6kA$B_;wl^KqlAehV=SC**0lm~1DU=%>wU?E8qM(T3G(Q307 zbtx-hc9HBC1rK_cnxxQq2}8nz#1~)@w_O^mj9h!}dJsmFE04qSPj4=2=(f?6uzQclhw+2=^8=hc#I9l|fux%EV)F z`8IJa9|juiF}FOQSNRo@unm94!<^)@J?OWseou33v+>Q!9s`mkG*Tbd8yKKl1HO9u zmjk0AF-SHn&-3BXq$RUuE{4juQrFYU-C4ilR9LzAW>bqUJ|z32%mh`LH_UKlmKdiP z8Igm~oG#*RAKGh0(UTfaBCS1&KrC+cRs9&oDVLTe5~%qR?rY=RJz1`&n|R(ZB$$(ky_LLAB3}^+UfeTNA9R`+1%mjr{Oew(8RTP#Tah z*Vd?u$-so=^Y-h@mz(>~zP=VTVXR_kNAFR`(Um&BPnw?20JE7L#F1LP&P|ho;|*<= zz_+hsy)6lvWSYnDz|bI#=nvEy0PFKRZFJajYr`mpKI5e|^H=*Pse?Qz7wXIZZk{f? zX+E|nVcu{VCCMPesu`-CZ{1mi7Y|3m9t|h#aIOinMrcsHpK`6Ev^FB+mRTV(GP;^n zX)2DSaQ8Ne2P7CA=s?Xn^=2DZ>J~FzOz72=>a2D?zOxQw=BcqnmN87$DB1) zw9Vm%dq>7}>Z)81%Bdlbm@-bF?!6q?m9wUTy(G$+mwmUw0E4P>sB`YBZ2+F3a$^9N z0t4U@)JpG@zHUiuKMjme+U|g!hP5wKd#IWxQDuJ32x^LK>tvF$XK$N&&&PY+)rsnU z@5+ZctR9%IA$<`SQHuj5KNcO9QLBtDwQubbX3GY-)03AhnqWo20CZr0$t<8)wx<~? zo+mbEXb$H~5KdqDH%-?NYG)E^DI*z7M!OX{I+XX>mZ;sGW7|-3GBJ37eoGHeWnp)1u*6x1XDHLKo)sg{;Y*3emA?X9GBZnZr4<9w={)uY6q73ZC| zhYf!jqsZ|Axh!)U!LNZ3jNrvg+)u$V+|>ZsjBK?w)|1}TxWCjSWUmcg_&x{$njvv2 zP#4vT{lUQ!C)azsaXf7KxVZG_W)i-C+QN46m)8#G+b9j^o02AU3B|rfcmEW*d+RT~$?CSzupTTUlOPU0PdUV_;laT2@+I zU}RcgmLGa*Ph%7S1)xP`@?&*QNEf^YwZ>8ao*qM01x8f? z)auRWzRP_7u#q*@E@jn|IMwkm3}HN!>d#RsvFJs2BFdST=mCOc*v>LvnZh)uJpN`UGTiO5sT>N;|!0fe}Wrh_!nlUqY6j#7NyFfi#(*QtU?8JlBI8 z8pC96taIW8vibfQ(`U1pyMmS3n-mFg5}P7@d_>8EVg^L*AgcpG)nXXAA3 zsZGjw`R`uyMDVO@?gxo;^ZNithhuMd#Ohs^$$J9IpPtK+Pv4T+$Pm=aHItktA(fo8 zMa161j3ISWOZ&jN{e*@fOtvUI4WMSsc>3hqj9ZRjm^&ZR+E#t;*-7f?bYtDa&x7$u zzhom;FRKU4Yd%syml`*8sz#>DWcO3!2@J@&WoQpS0L-*p%lFR}HF8Mn+Qy*aabY5k zpi5^7lLklt3Zp}vp}0~Wy6mcBy+}o_Y=(+_`gqMgkuXW%lp!<{tIDDM zj7#2e9TLVSq#u01z=AK15A`@>%i{Vx-TOY)Tsk`C$ob?El3%)JOU|T9LNX61>RI>4 z)1mj-lZLD%D<}VnE^TLHU8nA4*gb`w{V2(`m`^d6 zyVk09NJ#}zaTb+kbnsU$v)YQZFA4831CE|+^$9FWXe6Wwh>E}5(|B*}?8V{T2%<4- z-dQBMX5`N5jDhw(&80);rHP&-(itmaK6t?SP9O{y_og>4o$IiQxDXyGvZ{2mYeVNr zia3blo>3{0Y_{DKZbh@K0g@kbnhF-E0BXxjo7>Yfd(6@JuUiAX%vy}Wrkp45nwBf?k2(|*0p z&u`EGnqfrY6Tp_R6fgh)xyr}yJ?Pjn8-&AEaqO6ruN&Q$b282-1(n;TjTwfYW6jCO zU_Tu0r2e|qJ3cXc<~2|&Q>Q6%pHP{x_2Zr3 z*GXrs;@>I<;5fuokw-+@Lx{7@gNR&dv{2x)5g3x9a%Bl=&api9eX}x z?;q!>)22Ftxl@~ezgD@9;a(n=fCd$I^?)BwQ24`6glid|$7OqPnmd95cbP-3eqd938Gj zD>p=~mSE6ZP3Q~&ATply#oh#J`C>JTYD)`ooLrN){;?BRaXvOvkFU+wJC_q_CFH0F zbc5TVvHbt6Dr!<#A-F-Uu&TAZHy)0!Cfiw!>5v8EA|QO}vyNkdWz zvOQr`o^EK^w9Dhx)aZg4WVoA#Gq?bb9&-B<01$Yz?ChjkpN-$id1~0HW{rK7VPR9ZJ7BInzvI}(LfDOV*+cOBZfF~Fm@r24;VnjPz; z0z}12#KGzKdtj|%DrxD$Y|O6@t@w_h0QXxa=7@rz7h|H z%c$EjP>Xe1rWyK~^oPurljQMN)HDv6`5@Y^(9sb!mZJbY&j=RaonXNL%@-gl{ohsB zyuCJ_cXrIt`aI&_ieD}JoyOMd5R1qp;ovGw(LDOtO+I};Gv&YD)(KiPx@(S^^YP@Z zj>tpbNAoaBOG%#F=ai>HzF5bcL5ONzmLhbyz?EQ{@R|a^#;9OXR~Ef-28R~1Chti3 zh!CS?+KM2PWgh%;w~R18eBRR$A4UVlD6YV9eU9G!<`|Qq=df4n80F86nY;QBuj^Mi z0XmZ`5N0=@-X`_^WMwFxpUq-eLe_L3DoW~scYV+1|7noBf07#Wi_85a#O~v`Z==7J zoDWuJH)(!*+TT#$NB3`;xuoEN?Fm)Fji=`tb@ilKaEX-y;S5)R-3T_gaJb?gb-sLSPX_e0+b zqfLFX5yFu>lOa6HTy(Sq8Xg5X8Pjb)JJiBX^LyJV*oAduvze>t%eU8El{W1=a@XoG zdtC_Se(2QY$D2|FBL|vb>%e%x@`3?w4gh2fX%7ce?%mDl4WGn1MfG`pJN-YmPuCBN zOE-AZKw!N&`66Mw`e=WxbLs~vQ$1=-2)5IuZI3r@kz-nbh!W2yddPs;NUjfkvapL4 z45nX1&5!_)@Ssx6{muDk@5qqQ^MrKvn9u*bBIcGjY>dqsG{09L>uvL`58X?-NgVcY z)@i=`lca$q?JH?egpGyAzS!<<^$^3y7`w+68K@QN>iDETW_9v@QNxCxA6~Kt0AH>2 z=8uz;*2@ohE04?6i`#9rT6Giu(rvn04F)nBm(ba4mWRJF$Y@sCt)8Mg0audw_H8_r z!?UP@kJ17QG^@&Kd)C$UY}UF?Q*Q8*)Yp+2rsNXGVO;<&4PY3cW_a~ZH)6_vKT@ih zzvsRTKG%orJSr#Y1{WAfK(n7AySI`b^>~Tv(mm@&WF$_CO_u2Tz%CWSl8}1{@fXT6 zAh~v%)fF`8zh&(A0I?RTW=%~#z=P)i0;%y6Ou(al`hcl2k=(k>HzeP-t}qGiow-}@ z*hOZe745FC8uL?e1wTOG_!@W%v+%raDI?7VhV9X|u+rK;G9ike zMj)zNRo9edV^2Wl&w8u{mAbtjfG>wcf$R!J94W~8Kj*thg<|I z3j>-Yy%;*44pIOH03fE_&4-8mr!!tkXv?qlFL1(tx2F&AILsX9xIVVYA&_`s(rUHS zJ6oKrNssPME3KwAO6cHKz3Bta8kDf}lBWsLE@n@*FT7qCilt-g{_nEVbOM&5&CZgU z96(AmC`uaJo^`df(T0^F{J7U|RzMDNv$|Jui(-bJI7~+l?OEMVpUyV|gKXN^vECVm zPj0-kB{P|}lNzsA2XPeeYHCQQ3PD)Bmu5(^^b?LG5KNjPQYuC(GQB7`x#RbqoIhp^YaK+}flAKQ z)|FLSC%@(lVOKT)sOQjb6XhbFAjAJUl20U}!qB&G>ae$L_Ks9ySk>DD9(=FsX=g=q z(pMZ*B8-skLcYGPi=OYtmuTX*>1~o9+|LCysv3AH#2l0s-wV5Q>#vFhm&>m&$?&k? z>z82K1ezYb`q1%^P%D1wef5j`%ip2b11Yy=k6Sk8VR-9YxYU5@@eA@W&Gy5GIBd#c z`Cl4*eF~Xzvzimcb%|*wYf{I(3%**kOlu;c0*2B)q}R_1Cb$8b9=&ULEQW%pQu?po zGUfD(_lcw?;UxXUVaD?!@z={Zkx8Z@%vzh8a0+1<)H(nB_?j++Q<3zgX!45ra^KAw zp}Tjvo`tw+VkN1&iv0LQ2o6o2>im6}0+JrR8T~K=5PjeJBUwM}*Pm|b5`udt?U;j* zT75fBjVN)|ED`j3FDoK zbA27qCrvBvSsR0U0Gc0qWx!)INB~w#-^bfYohhreIJWTlUFVf<*!}OuYO*}G&2|K!|cb@}T9MRL+9i2oNZK4q;);=#lAGI^Tq z#=Sc#rGj>QR-bggbjDE))Ff{ONBj6=d$JhmMCG`V+j&6caXJ=CY001m0000000Lg|3Sn2=( z0GV=dsx4nyTU%LHSXy3PSzB9PSX^9RVOm#RU0_;RU142SUt3;bSX^UaTv=FUU1V9F zVr=Nih*V%tfCj)4f_<74F?{JP8E%=nWyklr;m+7>5K-wOxpXWgu3uMJaMB;$>B;Yw z>ktTVU_mzJ+9(#|KF{F}pY)Mg&tQ=m5sy=^LT)|uD!S8GdWKExWi6Uw;Cz6BYXN8j z*bu&E9q?Y=STsTVJOocps*PUK(W|?Y;!3oJ0#7 z8yJe96JF9Bc(7WOo8FTc^T&gA!n-uUo&UC^h$lYvNo|@sI|_4s55=)>oz>}e3w~0H z{+TR^#&pyh+mA87969QBDKnMR6>s@B%W~yXksDO>={IhKW=sW+p9@-cJPEKU7MuG= z?Dgm&FS&KdBAguQ(eZQM zF!kX*1~RH7)#GNeGQ8|8{We@n+Gz5D+>m@uF0(!qR@G)I1VkmLN|1rwoUp+)63l1;Y4Y8>#uP*&({zvI#{UaU8}(B=J?R z?E4AXcaQD$NA#Vax|HdZDYGjr_OpnM%EWMcyJsL0hb_N^W1p>zILl0uqHEW{m^wii zuwnu#*LPiCbXKFs4gda61s>Yc)E~d@l(sc{5dYy$g)KcwI9Q)dHFJDy>f;@CM`C4l z-*tjMQN!ptvLjVpM3>%ep=&oqXMEaYT87O?u}3`_3yvUCWC=%&fB~3*Vhw%H)-++J zw*2&9N@x#`Tx)o>s?IXGvU*p8`do%pKHEMYb=~GjQe;t;5XxhKpx+BK4Rk{kL>(;M zOg5A0n2*?ccjxS2q@V1bBd6Cw=Z4M8&0P?b&9cz}N?e zb$Az@d=>l*teM83nHcoUoXx#?vYH6* z>su}ZTmB}N9>zumGsUQ+zq(4cc-Y+Fgzx#w$IvqZjRvSDVc z@Z}_5qel(vv@zu_xWEdYs9lbL(nAnXVX^Y=k~-Qs_>NMnE2Rk|$h4W;eF~19sLD2Z z03a%sbPue*32S#kn?G<8^u%*@K8@#NE>DD!IVl%Z5aq0Q*!fqFrcV}I*Yh<;t}*8c z=;|TK9&Tm(xh@U=*HZ^OKhA|q_a*YI@kNl!AD88n0+t>_Rplon0AEQzdUE^bllSqJ ztn}8&W;L_#!4l%n)#gD+7;TCL)sJ9n85@&#Iv}>~{sm&>W?u(o--JuPT-zv==;p-a z)!bLXIaDhKR{bO89@o)4d)a-BA%7u~U%<2kfR0*GrqWBdXS(lhx=!!(64S+L*D^nC z%^L3kfvgmMTs$IU;ChC5&)0ZMW*_btv zrmju3M3@?$V35?&OP~#J6WR32Tp^$I8xmzuw*$a~>a*Q%OWCwuENp z;nvkJJI#N|W9D20k#bAn_mRHFa3vk0eUqAXFG;zOE#-Fi0o{JrkJGj8quvOXVS33+ za0tc>ut$QW;6T6SS(Y&IV4inZovR`Em|qVhTujbRdj;qTptu`__{aC23%z9|1ZQPx zxvtPBIRsI+3K*M_nUDE;*s%ok4RAgrwlV;sAbU*?3J(@2!Nx#VnELK&yvR9rz)+-tN-{x zZ@D-I2;fZqk|_AzIXgm*DHx#!8)ffx=mDl8_1gjXDk}y!G=vS{bXFg;CEfBo?C0); zwPkqtS#Or??_Q797`0V$V$}_6Mx2o5KYE)hK0%=jo7T*p3WBy#i1@@?yyGqEnGCz}ACAxqR#7zS(s8rZ3qJO?bay-mL;5ByE z2Ekd6A3|2pvYS*bjuC(u^6of+)SXPu&xdGd1)*T%?KKR53Io}gU46(9k~l)lr6 zq%lq&d4AijnU`ucEM_>{JGV|;>@Gf^jWnJ=y(6r=F(Y-Iwt)Qj^!Kn$+cg-FbvThG z#Bb}&6xS=uL8QAUzvOUMT>0=74G!c^t8M;G0HPoLM4e-JoKe@dCu$nowynl#)38aV zjcwa@)7aKbY};t;q_J(=_~v=O_dVXf^J9)V_PuBCdtKLB=OqL9_b}Pi^!QWxRUsiP8M_ zamN#Lj>dYuHas(KKI^KgiCYQ;`d+a?WRe{ke0hDxUK8X&&HO7H5j+uqAQ;m8HvAXPs>cN-v|OF==3<5 zST!q1?FJF&UVBIWt%J$UGJHY=!)Dj5cczQvzVDhEy)bpb^x}1yl6o)(^Y2)knh)IV zCcO31-`a|lTfQUYXuihXmA6;DQk{! zxukDPK|FA=_kbkFN9kGu{(lYiQZi-#^a$Y7Q{`_gjS6RWUDcH77HB>xH<&n|P9q}l z8Yl#&JA|z?3I$ikvmKv@ijcCZSzL%)JXeqtR21we#>i8P#FNw`lM4@~0n7km6^$Pt zvi|r}nMhx`OqE$9t4iY4zhyUyzes0_x22FFW6Jy&%{Jre^U+jr(Uj23)G}Y$f(LM0 zZudsQSl38NKTcX?N*6g)iE`3A5H)dI6{E?hYl7g=e+qUVlbygi!TazmdVBLy_pC~q z)XrD^keV;0Y&$rTp=KlsWhMGY_qOvTiHi;HV*W;mXlF5DO}toY=we}T>#W;m-8|pR z75l4!Yc$_vHszT&X#g_63B6}}4n1!*w*M_a!snx%SHszD|3Qt-Y&!1ls`#2r8lN;Q zk6G`}kGyr!qJw?yVDoC(S>c&QiO?|*JwH>;e`)3L5V$K)S@EkwHIh>RPC9X?WLh_}RIWYso7+aj9~&RtRzx-_tll$EJ3xO_Sg=c4(n$X$poi8M!YU8=qlQNqBva zFA4kicGdi#ZYXqX7@eO)XIdbZd5$AGlKF{t4jl*XA#^Be!lEV?dC3bue@%w{Xu7TI z4{_7+Mf|uXM0jpuKCFbw)dbnzK8|sF_T1$wG>ri1=6_5!4Wu5jI%8>m(YU^#iTGckLI* z#u1noxJ|iDycGC0j*YedY*Z7YIhbbeammpNYoVQ1(~u|lAI02K18`6N-05Itx4>3K zQ&>?Iq}gt4r}5&<(BLi1{O|XWQ~e`6|3_z49Je=$y<*l{dOqceQRFNVfjRpk*Bg^> z%Y%+HWrf|(g6GhZXGLg zH>=i{U27hDewr;S>N+~drsCqeVaEaJmUdt7YN$aX{@Q^jRHFeyl2k)vW>Jj6^2fe~ z!jAqv@LX0YejVlPai$CC6U+_?oE{O&TSP^kf`WE=Zs#((m0kV!_~%zbdDd6Mod^Z> zf_c{E`$HXVY7S1fcyik=&~O}XK_2^e0VjFVc?U8aHnGqAj7S|dERAGslX73O-W9~7 zsDg9q?@Ykx-&{=K;z>REQ4yRG{L{a#`DG5hbZ!(WEeKJ#bWsJJs%cUi8Bucb{?^-A z2%sa?F2f!qX^{7tCbs(evVzv&FU zCAR5){o~yeLZIm>Rz0Q-8iD53=2v5iF`fJ&jVp=_75dr;co>{Jz{TRYrJXi4*V-R> z8GF9n`HS0f^1o>-q6PaNNxREjnDHc@>ZG((&andQd7jDq9=7YG_nOxm8ct@0u3ck! zXH&cRr7|l8AGroTclOui8H{<2C{7#vu^yb*ReM$J#)U{FhyxQyQsvsV_@u0I13{q* zua}q;14(S&60P@zBW<&BL~79_4eHPj{`g4@Z&`$K-L&vuZOE1TS%(tZ>N;ln&~=L3k{4b-RK2d5VJ0gr1Lm@ojghC9RQ| z{YZL-VdP}tqyotR|56y=v8I6#?mKTILt@ib{%Mz&FbAW~t_aCF<@mYilcOQFB860W zI@^Im;}}(6y%7CV`C8+i4oAz@x`TcYE~kK(W(;HLIuTBBBQCd}1)$*FUBPdY2SJ=Ky?>~hOIDfQ7Hniqszq70yM=c#(*W-Pckuf&K7 zNsI?aqx@&aF;?!AdWP7oIvpPLW=b5Yk&4a)tDtckWxYrYM|7ALF9AS zdn_y$*Hb4UY`mA&6yU64is9{mAi_)#(ETCDpH6;eLqwl<#UHbp!sWGukMT}m>Mdxk zPxq7>$PAZfo0PS9LTCSv>C4wOD1a4ZF%ozYHp9jRn$fjJ*wJkP|2UWLSW_D^-0X+F zHTSND8BJ1RI1JlZ^a~2xrBxY~gw$qvE`W9=mCn(?{E<_7rETTcLL6*F{=~4#ik6{} zfppjBeJQQM0@Yk)vK!S^W-1OlEHw$bxL!rR6g8pDZ;a*)B1%S5{D;#L_r(RJ>X$3`f8j?*n_UR zQ!RX8(z7r5YwCx$L?S{%{;Gtd-=2p2JDo+0?Una?BugPwd~re<0O5DGqR;tPx9Lue z3PH&CFC1LGb+Hw+3 z-~4CCY4i7mCY6MqKKA#Qnbg1)bo*=Uy1;xz6-Q9L1{>#W2ghqM%O^uqbC@ zU2W@c>lXxF`CMa`Fp0!Q9pm03faD?=9P%|-Z<9vw)#EeBN$LE&X{#T2;%2zAXuH2A zDJ^iWXL$@Ki_{3QUoI{l?FZ3OoI}6A$v72E^`-1VY&E zdtKr!GO&{=IFqZ>KH*o>V^z~1xn4`WE1b)to?I|V?Mzt?ofTm$b571X%z$Vb5giug zhHCe+n*KIhTVYkye0UZ$cxcm3gd@hSxx_T^8=6F~tDEd?xNH`8*N68x#1t;8@sxWr zCX*@V1@gc+cQYLCJ|25s|5d%Qf5;*ymC(GS4G9wuX>G~c_;K!o(N-9(W+m+LaA^S& zHX@U;DiJ)$NnJcl$$Q!_>n(3Ei{h*z_e>;ShCyqfPSy+DzY!Bo&L+nz`J7Bv!p9Ef z4%kEytGVs!=xi$~Tc7csr#qMhgUSSxpM`U52_>idkMj3|=*u44*zlUbM0r{#QsbEu zjPj*+H~GEp9Fo}1nJY|sumO|QSIbe8RH7%*%%--+z4o+PcY)|Q@nq&&760(3BmuCp z&&J1oSiYQ=VKI|8*YpiiH)aN*WittASSd3kmZI^3>kZMrEjdSKdd--dU%q7KjA~lg zjMm7H5b2*1N2mFWev!lzyihOvh4RV8LC`mPdNwF)Jr+8d%rPSz0Y`3D_BnB$=pkxB zTTkvlIK>hMq}4$Eu+sRk(Az8Z^(fhlV4#;A!XLbZhIiTS?!d5_dio)k=hg5U{;aHx ziylwUC*Yhs_YDp74C`00zrEJMs6_`)!eVCLuc1{eqkquxIPRY5%6fJl8YKB{hE&FC zq=!hqz$qD@Z>+AQLBL)A0hr}hSx+1c&w@Vmjw>CODF%vmVr}h&B9*t%Bkn33$NaK- zMKM^FP>eG9yg4>#Y~Z=Bf*A|CqGqL6EhLBg2LqNXU2=_Mz%nmKP{m64Or#G&vKbSf zlOb6fbp9+*-D*rkz2$?bDR(UstC${R7nMTEO%3&?Mq^8|B!!Fk1s7GGTcFVeD??_` z$8PsnZ>H-onOqu|8;E7}>%DZ@oSnpt8X;@fZR`3iS|wZleBwhPf5d$o1SvQt!ZTCX^(kNq8T8#x89nC4hZQJqDU)t^agdZFpRqup*|((NO~-* zTl!hG%_#E1Ia)L)@J5$I$Ab*>X%lHnlUOKFH|E8$T0JwLB(i>*#^d^^tXqq0Z86@u zzn`NXR0WBofpfn#sAZ&n&2U>Z!0jyGFJ6=a>ED=wSzEiSsP&q@t~%kEr18_R7dAVFr`;^ybEkt3 z7rV(J(KldUyK+=dGfmakB=KLUjaJ9#lRO7!t)ikw;LOz|D)8!hbUmsNkIJs=4Cfxpt>W3e_5IVIz4T_p|eKrmBe6?54c8eHtV^B z>m`VkOs33C0TucSbpA#X!x8TBpm1DR!=*vmy1+Z4Wu_fzq}WRR_d4p=55?1>DQu%r zC+vZB7D=eqiWCUrL;`rR6<|8-|QIEm8m8^zZJxfPqlWRmy#1}MmZVzhba zp9)A!OA#k_jN#w900%uC$TV)?0?TEcNRy?Gcmgxv2`A@Y{y^m4;%%l~3!F?3s*l_| zISYr@L*b7HMwI@j*GYU&VH2gF@!u7yHlGfH3{0n}4B1(o+~c!~7q7+OrKd3FcsXBN zu$4mUu5Ns|R{hr0(*0rh<;hHPTX{`)xkDJa-eQN(^TdQ<1N9&X7VBP2x2okwxD%Do zU}bJ#$EU`1Ne4_QsQ!YyC^SCp`O?*rlyZYI=;*AUt+eFNvLl_|Xah_4o%`{$hfQm1 z0ZI8VR`l-8Pm`}9c%F7E6A0{oqV6M%8dHiuJ1sRWl{nJ-3!fZ&6`c!<>1I$|=RWm$ z3?mBtNMp0T%!*5a?2?XR0LRawj+WaF(&*K6(}?k#D2^&2dv#^uN{@kwFVYe$1oxPn z=+TV||LT*P5Acr2z0wR4w^?(fFql<8t38i>GjJ9b+*N^BTw{YfhMBn<_*4-3^}xK! zbng=c(Qo;QRYKw@&7!NTY9O9?0BB0BHPJ+LaEQNO?)>jI+g+RQZa*bS&Q8KbfL@P> ziLubq#>xuGOp9)nE)4Iowl(jDpC8AuQPAj6z4Fg4X|3k11rJm-sq_n=8IDvgJUwoU zQUm==VwZD(iFfEbGaG~Dx|Q7e@$ZTJP)U}G(9%a`7gZ2WJ)Fq}tG@wr>ma2$Ug&S= zC1JZLV!8sNf;ksSVbR-W3=E`jQiSm$xMp}bZpH{8K8C5rTH;c#U4|k({bV{3$>Ka ztb3%#f2Bj}s<8=n^3u22JMJ}Gi)lyRSG|rhP`w(^bu|A(2WJVKW$H~+=Q$o|?o}}I zeWg+B`$UP|>tIFu+U~M^D4$_SxcS@xawcWmiEtFWy1&i&9dg0uhWf$3Pw}Mj`0^K! zpz<0})&Nkc;`iBaR>|7&b<*J7xJ$(O`bdo==CLoIw9s;Bv$j>A&~(hFN# zWdCOHzzh$ba}nMi`&6S0cUCE;I`RX5;65`V$CD{8(N6h5zYfjrztLZSk>mOs{Twfr zLNr)v8eR3q*dvv0g41HGw~MM96sM&%Vds6~F0CDnawQYX^MBQ5j>@6)Z~Dl)SfhVG z&uvz@)cpl){b$hdO|uSSZg?8$2OvTmh_7O@$TqeaDXdyL*nG z#juv55MAN{fgCd94ZF#tQq%)Fc(ll&>(E4$^^qfSO?T1Q>yt$x(;W2L+o6x!wzB#$ zg+=;hllIc$7_A+4sVTf!93fOMLm9=;OhyFTa+pPgOr|X zM}ykqk!?>YXUo&K`D@KOxK}<|3M1#tzzoS(EQ~`iayLz{s1mO$* zlQtehxz%?LD(7!~k*atmsjnp>7f0n!+OnRkm{ev0L{~-52PP!n*w<}nxG5|PzZVk4 z8XlP{vPFdD^0)pmKaH2-)2wad>ac-Z zgs#B+S=?+1)$!aADH{AyVG5P2q_Lg(ezbfz{5t5n>d|#pX>jqE#VQ=ZmSG{St6_W& z9_MW}8tszyWvTmj`+Kl|UKQ0Ij~8W?dnD@u(KiP!Cn4kL6Om>wuEUDHxA#1oj1zn? z45ZpE_Q0owdOYSP_VeMUZqo#X2$~+xe4k3y%(=0#*%z`9Ox6%N;s5T7xWJR!APEJx zG5mmdyh$CyzMp{lI zAe)-X>Q>3c`8{H~lqEBsc!VeTn@GYcwEa9mtpx;v++axx2*us-1v{GkD7|YZP)gu` zcz-_M@Ge(`vEg@8laa5J9_Crk4?0i3rZMJJgi#3hE&0-bbPAc1U?SQlH61Gs zjo~a?wDQAG+~$H+^(j*O-++tY|5GSVAqvIe5!z=KHAOWYO&vW=OsGStU}^!TF1^P zETR)+A^qMOKomj{QxzvP-heM7SY()AH+~xQj{&*9fPav6 zer#=ulh#6qQ;3bHaeGUcYM=V?^cpftdJBTw_I-|n&|CH3I${M(4uIvy`{b?b6-^KtocMrQs5a=^Kl}Qk%{z z6|Z%rLUv=eTBX!kihY7G8+Y>c2R04HZ$Kd)l@ggc=MaRubOwtL78?q1&e4~C7I(0) zC8=cL>=)@&*4jgM>b|rSOceYkKo^10nfbA~-wy@(umhZxKXxiA;6)Us! zMu&>N1{d8%^eUB|<09h~QBekA3`Y-!L#o zt1HoT=r$#Sz6#=Km=xt#-Kd`CGQJ5{&`{=LDi>3ckpvpVm7e=gH3nwz(JP~fn>g>| zbR13=e~HmN5n&Jowni+4)k*WGvw9znYPAX@u1&`hAw{;seaaOdfKWXvlxVZ(DBX*X z%w)YgW~JihSu$UZ-}KFjukAtf;tJ~!+>M)cJG8&~ujhwj@oSO7_u{9v4yr~I(BO$M z&~D5Gr#;dj{1p1Pv;o*J;=JusQ)%43gl}^9^{KlMf3z@p>r0LoPDBoVT<=EAp49uf zf>tOFZhP!*DO7R+9}2{$AGx2C5%MnnQ#9Yi0yf|1x_7P; zoIX$wl6m)EKHX#*-@#s)4n0EW$tCyMg&Gfx5)WX@EzHyn*1{k8!x?-Yd7_;(w`_K1 zOzcmDyUO|M7qqryCNgORdVp2BKOxS`zG#hSNrH_B$uk0SC1l!OTwm(F9?EBd0-fAx z3vCN;>s=n+w12hyYTR`W%NPcbBe|}lgNQ-ORcn)1#pwSi^77VO78d9^2V4z#x&sfj zk~kd-4plvo*!U7W2>(BK+%S6)mF`Fhb>cq#_N;&o5fg9e?c~YFv0tV&ernA5-sEl*kS-B)8Vh^KzUYc(Ade;r?0S+TpwyJe~}J(?hF& zMA@AtD^i*cj|0gqKQbR2tvyL!<+93Ub)DJ-g+Gg^x(QcuK3hOXLtf#BgJAolL`@!A zBupU#_G|Siy3aO;l zlz(naMTf?b%E~w(jrK(Ne>DB|3WtJ#*|j1qRaUcV9>hICw*zEv%Xa9JQlb}jr)PyO z2ahK$aNh_9`&d!7La>-9Z+jZ|5Ymjm7qgk5_+yrc%Y5n}1iHOhSyAVyKO&vaxGU@u z8+5?1)wnxcB8Z_;f*oLf6@&H$^mSYD)dUGuF#i%l#HO(cJQFuNXjgaFjHveSJ5$Qf zDIraNsAMx*jPagF>|g32^e~@bY9O^scvrzl;%TM!=xgW&Z__4byYvV`fwPhmjiCuQ zCH64aL>N1asA{rGJ|sEClXW~W%PJXuk>0P*1KQAbh`{C5|9qb6}u=YxD*frZq_J)FiOEuU}$`Aem^&XZ>Ioi8T0 zeloYKrq5oJX+5?4!c)grmo_t6U+h@ZSbVO7k0*9ig<>Qx=XfL4ijT>HS^IV1c)dO_ zwZ>ojDmt%ZW$4Q(0{+O_9oMw8rZK%LHNA=WayO;%azbfbT6FQ_jei13C403dJcoVUd3G@+;}pE%l#yaaiy0Q2Obhy#rVJeT8;@{IC_se-1%3xltZBp5U?x(*B- z5>~&JWh@pV^mVBcHtDH&(vMttUSZV&`CHDu{%QFJldUVWl@Xza$2oiZ;g^3o{4sN? zttOQG%_O2l6eIqI;G^U1}7W@uABo8qd2W;>o zyVbRl4y(2BaPejZioBaiV#w990HuK>4~}SY={GKAaib%>Smffg=k43+Wbfp-x=^-Q= zBOO6i!Y0FSLVcM-&w%2E$L_UJ8t<6ZsKi8fC>x%1q!F8`A@Xo8F3Yr)wwYYG3-( zVFK{IQB=AM0WNz}%qa#BDpfH?Hb>KsS@NmT$tJT3!<0Ww@_^TNJhv~=6HpNgPc2jJGbm?kl@d+}C?hbFbIxO}yDOl2 z7oha7xPChfb1^M48OYBRGgM~Sb~}Cq=#I{my|Fosp}KfK{QOquE)&IEvI|!OZ|2pVr=0UwJnhV43248&R zw!j_L=*#vt6+1g~WV&wX@t++PjCGv9w3|!bkokRD*)ihFh>q6#Oz&YvD;CxO zq%HMpfAtT1be~?vAU{un{@iMy=;HfmBAGP8PY-~J^fYOC3ICXVIfn-urN3M*8i4Ex zyZKK-!XTnD9e?c^dPsuB51h@neMIQeUx{Ke&h57k1o=;4ri1W)83pGcr!)KEWwbBS|d3zq(UYpk#d*ch3W(l4+!)1fiQBU=jg8 zqXIX>7Cw-Uhe9c!;Xc|4&w;)n&|82=4YTRyt(S7$D8&kYB(kB(T`IPlbre*B$wM7}J9<}`anxIB z>tuj}+ii2tF@CxnIDdpIJy<3*lp=kjntp>?leW26p=Mb0o+@=kn>W`gY9MjL1AwUq z8gd6B2m$@BLYkxVC059SY^Y?OE|odT-(`6$sXvZKFMg_3HyHq8;jFzXzkW=*$L#sBGmTACbSfX3#r{QX{YpZ+4cAbH;y zG@GV(L6VPCGiG!$@YM0JvM-&xFDvsanDE;KAr9|-y$GM+(sQg;ew&Au&Iv3Y1&#t$ z!Oh;*a?OpuAR1F{J@1T4n_6B z)Qr*Ftc3-@(O?+l#os0rcd5Cfk(s0{Zw(KPegEG5xUyAs;LyJ1w}G8ImNw7`!DLJ4 zPq|fDI=U`;?duxMQiTEw{1($tm;m!hRFSHQg zmVW6cg8y`a`YIh{0eZ3=xNa znNQ-;%=MEN`*OAb)diI;<&O_A1^RzvX1Qf_5_~O=p$f3B`k8l2tNb%t(X(9s&34c^ zbsdco!f9+<99!dxeJ~bDcbh8qE zda`dNn0>BTV476FI`qiqhR|#5Wklp}GqhTjGxLwkmZ$l+SwT~#thOV}9jlAPP{}1i zZ{5hke|`l71pZq3R1GDaCX2m&U}lBeztBcG6e4wm&FhK_<-OMJR-{T4rs;PtHEY*I zwO}f-mb63GB*cG#Z=~^dG|ZR{i1cc!4lC5SI{<&?kQ8K{tFmy)f%>0rh=%{u8qOeE z!=JDQFE$+&MS104O3I4LiYlrQQ9%m=f6z66G}oxBYCy0Lx|)!I40RP{eQh004Hb3G zcuY&ljQ?A0>%TV8aH3eS)UpFBfv!uOzl+}N#VH-bUyA@AAWeZ4mn z6&LxHC<&vDveiFKd4Gq*_1yqb414&Cd8hlcT_$@@uP&AR1XI$Tp};1|m+(^Ef;G&k zvyq$tZHK{1pFETtp-18g#FyhQmjL;Kz>5_=rGAgbAg?kP*5Y?&|yYYZv8QZlk~0It+&q+r zUAO3{)M6T+Oo?bnrV-g|8H)-0s|yecRxr08`JJKKN?bY&Z^}spA%A$k$u|~f9X@nG z{Gm%=+w2TjGA~vc-eODvT+3_~)@+uMLu$h{RV4azfyA2^86AO-ROG>-R{L>FY_&Cn zR(wJJUrKY0?L$$55>-}!+3DAzE-;NhZ1REdw2%E?UT((O>f$y)y$2`Lovm7g?=RWo zEG!YUyxSSXyh-ST9ou=8$f#=GzLr<{FG8`eL2XTJBW7RU(0!;%5|JO3l02NLzLe70 zYLwd~0MhqJ0!7t-c0;?MbNgQalm~vatg~y(esZJx`O%tN?PdhE{-7o`n%9~rCHHq@ zorFtzm1l(iixpy5nsa_kv*KJe11?duxanMspF4VED8cOu{>fz04(hdxq84|ia@bbl2`p)}gyNYhzfE=ky zdRi%TS<)1#pC1%V005g|1)vQ^vxs#Q$Ep)$+tm_)O<&@Bi!>U4#w;L^Yr#bQ)BQ@i z)@qy0iD5L%ex5#qB)Z7I_~a-TCuGZ=rx$Bh}5(qy#uLK<3Ji_{5yV zYOwEEieYRU2eNBgB&79Gy6d~Uim2Wo|gGx@Yt3{!sW zwMz*x3j=#*@#jQAPKe3k`N9bxmynPtIm+pus~OM9;AIXb)mJVYm%f#}IN*^%t}Plm zuVsF_RbF3_0$*1ReLLu}KdzUL%E{q{M`m*(cafdZABQA`!{3`amijKLjo#iuNTO;u zV#?Sz*Y|Z3*ROM(BFC+oCcdYFTHz;+ZjW>681x3B+d*u$+Ki>RMgtS*N(Q~tiIM!V zKM-tS`4LOBtx1?UU zFV_-Td*VlK5PBK<(bXoK)hlGP86^I^Uh3@gqpE1imm3K4NQ~%xMo^9ArbvhiAA1blB}RQ3pIv20`(L<3+VXF z;$=mEzj?z%t>s3AV=^HcYESx;b2t7O?#yHpmJd#t2yMM^;rU7Fp+P>NEUPZ)p z_)5!~hmCXNjLf9cRd^+{;r^10-td_3N@`4Grep#o!4+#5Vmf%_2V7|Q^7G@!9*xM4 zrY82|mTDir0dd8ja%O}f>rF`^_fiBHQD+$Ap)QX0hFPfiFV(`nANwT6=4=0u<0P*S z?)No-zfN?@5ea7w55G19xZip?vqHs#9A(z>p?>|EKJ5_wEF#dBMJU;3m6zE47!OSG zG3GlUG*6GWCPB@21`7#e#;!E}VeS%mf7>K2NK$gsWq9N zHkt80Edmj%1C9REhsle@9)Mrb=s~wu_S!tS?;KI!#9C=&F{HQ$wp^Z8&-(OI73C)UfLf+t zte677OsZV^Hih|VSeL~16H42tZkZhMqtAKdv1g!wv`L0nyRV8%N1P&bvO$s9j(IgS z%rOAJY(~%gVRypkXt!#nKc7{tDUvQEMU=*pUyRRP3tZUHSL^Mvs~UTb7q+U?Wxps~ zyO|TE*YqHaS0`WE7@=#*$Ly6%COL%U;dkp|FR)lrMA@7Jn@(By4i~^mz9~eFkiQ5M ziETrbXr>kw_jI>bjhxRgL^e^_^E4L>IP!a2-suoG+PFAn$ip5-wjWA+`QrBKdh;WV zF{-bgO&6rv{&uNvAQPoEuCPlt(|XL{_SRaRz8wxB(B~T;$>7h&l|!NUPY?Q>fPM5* zVp4vypZhWY+5tUS9N%sb1u%zX-fU19Ob9&?^VHpMFC3_!Z*J0{SW_@1=a}D)VwJQt zee%_Akr3OFX_IX{sGh_+Du@n`>4BsM#>P67d_tkdnlkry+2@;F7^J|sIf(ihWR^mG zkySO00wZ54nE}cRF|{MCZIf-Dq(Ock=4?qWr`AM?v34b24N-Vyun+YQcA3MJ2vc$+ z6P`7?)6(PmX(cU$-H%1*g_us6uj#14FEO;Jk(YR_y%RKI>FDh=!`mjo3kc7#X!b@G*u+}>k4v(O2eGB!-O*rHXXDC2M{0ZHBPMEk5jMtcpaiCK(Y zM47E=aj2}gpGC$RvuSigIehZV&kQST(cfx63E-v-)$HaJbQI%`9wcT+pTVNlM3aBx4)U* z$F^<4k3yvz`mX$@$PNksumOaFcO$@xoj6Uh!>i}#L+BEMMZr63k=uyquj_C>RyF3^ zk`F|P@Nt17D~4u5tRdgEbq*$!#{)8Qpba@ZqEnzp6Ky$k%v09xF>5t9x)g{Y(Cw8+ ze?oF7`qIv@F!{I3Qe%DrDz9sgW1hQs2SuiZuRO5R^Xt{t-lS)rg7NnOSKA>XIIkMl z%BoRJ@aQkL&8n_f3Ym)`Jw@{rW3pj*7PtGUQQluvU?B4h1MUJ?=pfHV7q>YPcPlHP zZUa*!_ffn!D4Uw6wMrsJHT<4jo?jo$M;7$*yHa=fP?3ahO8b! zs_?Y3%&+yB4fpJsV4pf0qkGDQf(~AOA8b?62ey8(EKL~FQrRtya+ zTEF9jqU`kn17_bE1NO1deK?m#XTvn%H2PO+pM~1l);?>rfyU=pYP7SC3GbwPl`Ma5 zWtU+8b+tP5T+cVcPZjpIVktB>%=7huax=@b@s%d)zdv8X@ra9xu`s%$gaI@f?hX5Paoa)K>2Y|leR(G`^!`m0-(FM7|0)_#2N zOthOk{>r&9SF!$Uxj4xh|I>t~PtM?{t=}>TXzS3q&HuYFTy z^C_W<4Fnrri?MRbBBAEkwI>BAu%3ZK(vQ$^&-=Au1G8)K3a^XzrR}mm@-vT^!nv*- zpZjv2el|D?Mzg73;VzTe5fMV2DZKog71s+rpfKkZH7iPx(JNi4>Gx}}WbTT15K=Z< z%!59HoP3AJ>CwTt^n(L7*5#@fgLg-Y^EX=;V+D2p{*me}{cYPjsH;7eE@0{fS#Pt! zVKGjqWJuCP^^|ZXhM9CqRp4DtR1~q+p8?~Ds%ofeA6=%n5aTHXN=eXh3fwqQwQjQf zgm-l%u~-VzSGuQnXLp%wfCf_~nyF5QL^Y-ONA{gSg3{ft#^gzXey;BxG8XL9GU0>G ziSe~NKdpBI9VY9?n)#d60O=d^3cZS+AUJlo&y7HQ;j=0EzVMqR8+ltln|wj-r3(cR z9py47qtCSwVLyIURuw$6&8^Gjgf4O9=)g?Q%f-97mS|TaNe9z`ts533A3ik%+!S+E z=UI>Uqu{<3CVqWAV9Xz7ssO6nlOZ@qZ8^85Fmu)?osQ?y4D@9w*}B)*sJQx+hDd(v+>FBC~5X(()IdqUUxYjeq!ZMYN%^E-op9|J!x){ z^N2q-T^~8EdLfVEmx)h~#+FHG{LYjpRV!K+#X3tywUUbP|EM7i@0I|7rI}1th0pVZ zUC~wDhvxCci~0^*Ud2|ZoEP!^m}%nT?ZQilF=ntY%I`wD69aGEWg1VeMoUA5^>2XPgrC=L7_#D15S!N`v)-m z`K`<*MlD(J&)>y*gyjvIh_^1U-7Tc5eSynb`S1W#Sy7OngtDHfM!QW@xIa>Z(ErlYCbGnyP9V8juDEO+7tr$cK9I;KyZ%13TAAVUabFm9fI^f$Qk@E2j~Xc z=Rq-eYmr$hn7iMe!x2tY5{j4(ayc)$R)P|?mk)*n$Nz!Yb7ch)c4kZK`*F%UIXynu z+db(E8v$G?Ur*T~tt5W389CVJm zlip$9r!+|tHIz$M-8w=LXfUvb+dP+N@gi?jieC2-H?NgB`#R%@Wse_IrJ*4+`kL}$ z#+OQRWieG%m8Wh4!~J|IDP3=r;2*|v-i*5540BjkeoB8mYGzk!g5>wHdU^6qT30_m zN6d+<2A0oi=pF+&mnFmz9eJ-2O6B_Qq)u)BvkLq$fY4t{>%1GF^YzBA-Lij{iLPe0 zufw1ghfW((PF5=qqgDXh~3O>iwJ4A}{c1c1Bl2f(4gh?Z|r?>o-C#!Fn?^ zG{O)fOr4n4>+`E{FDsQ<% zL-nRRyj7w%v98?S5mux$wV~U~TqtF8W5W|rgOP`aOeyo`k1*l()a{`OO=D^CkBL_W z%k0>tVt%;-uK~>?69D}47_l{V!OzI~{nLNfdJa+@7DUteYQ&Q*cqXrL(y1{4G1n3B z`-oaj%`=0DaGRXb@4KmTH7368`Iz=|=Ci6G4K2rpO+W0jVEGPgRmP14k|$XQGA0{y zCsaa^mPu(+$trW{pppMf7v!oZu(?jm=*ih7`EWF>_%=k5$fr8Zm{vE-Bc0-F*F}F? znfh{*;bg##7ym6LNan?8Oh>Lmmur5yU3_gVk9Nd~svtM?q^OE3oWdH^@BN>O_J_Rx zoEn*hhwoLlMbpX^de_Cq>LY1;Xwy?O+vLu&u#4Y#3z7J3I6|BB(Gp{)f+TY!YaWH_ zF#W;TV(JD@U~G{QJGMl2MMcvE#y=vSaBhO*!cUMAoC&h+WMc&cI?58Vo-@`7Xjqg= z8agh%A662W$~JV+M02l(^tzLPu(qULJlxVg_kI=bOWr9=U(Wt$2^Murp42t$@nTdb zulmiWpCY-Ln^F+qfmEb$bKBcVKvh*5W3j|$j3hQ3Z=PIt8&=yh9~>epk+6|sC}kl-9AyaP&!oV} zJKbJi&Y}?uYfFlAeCvhUo%iKnQ@$t43xV!m&O3cbBbgIA$LQb*k3C%vra9v?gH_~d z(l1wGAl$!7FnfqP`wFb+e~wF1rG*}TL73+MX)P4^p2TS+Y^y4iwM2B|7|f51hg7Tz z3{>$&{;R(%W=+XZlC`}1Cq4wnWa`Wo`}8bjOF{faawYh@g_xC%-;U(~>-sieq24E^ zzho?Pbg$6ZS|&ZyavlZ{UaVf8HLv8B<+)6?zdSWI8?k!^b5!|bn(d$C=!nf!5=&0x|;qq()ej@cTqy*IQ7Ivgj2Ji-z{=Lqmc$m@C3 z&Cl64c|@M*ljy$eCeljr7W%Qb`>Akb^9Mgb$G8q7XlL#J5%rc)ZMD(XXn+ER;#SZkOLihh@kGU&6+CCs&CU6tkfBdn1yCYG@Q9gk=y3zvmJW|lxLTQfWNp`OqP2IUhqD@}W3vXbv&YLmLcapWIn)uGv zVm}eIiFY%xs^K8ogd7K=gi~Lz=8M@w`@p3Om4|1V78pDqF7_Qc%<;!@k*;z zB(s9YBF{N9Xi+q5!zg@(i~F01VKuy(_Qt@BXyz0g6)5bxZB+sB+OLQ)8p?}!Xat8f zYl#gN-um8w663+8jSIoCyfAv;idwwQf9hk&P<&1OA+1hQtm_}DR`%a zS3uqJeoF(1IE4RsVtv5C4fcBB(xKZ7H2C4MF_jp2`@lp6eib5Aj7M*i{Q>)JlvjnH z{r9brAek!m#9W!o-mpMxg93X}%p;LpnjoZMA?#frgtyBiT5z2+n5aeex|7@Mg;Hh9Y zvgcQ_L&W9CWfENCQKnl}y)gH2^pcNCct~#xnsWVG0Sj$8f?W@1rZsN`m)zNiosClilfT20hG>svt0K84Mz0aHxomIu=DhB)mBz#J3BkdI z(HMtFf?7GYZEi5oUPgBUao%o!*etT*4g2|#y?9WS1c;8v2ibwBMXcd93=Y5HpD~LJ zr5{=zW93af{XBQKxjlbozy1LxlW=R)u3|$@Wk{ zbRsX5+Hs(xL}hE)=9Y(jX8rhgr+g{9-j7@Kl+e@{HiN{x#4Q*0p*)=~rxH=LVTg`y zbM5+&0)e-Gbyg9RlRwD##LXhc=~hmv&|_UtRQ!0%QFbYU#Oh|5cTx3MZKxC4ozV6; zI^(lcsm65}iv+fjxjJcysnV;8u|O0YwB#6*p^V~LGW_^8bYSGnn*|WG@G`gNeIt)ydc`;=&TRE>rTpi6OKcF(jt+{`hA80xHb2$d(6(G;cs*|D7fc zB;Bi-9sit+DvrdjY=uOkV(U84{(0Ypqh-Y`O#o!0w?yuvQrY>VZ$*uGg2-oChxloa zNZ-|Xqz3oZ4HYb;|BEkhEY58H)o*p6npS4`z^piVvJLt$Ps}V7&J23^@Zg*BU!SC} zD5k-9q~=5?d>Qk0U~v}X@9B5XfG>6RQCj{ZOXGN#=}(>O<4Lsm*B_5eLjsGRtsAyW zhuFlyWHsu)YDj%INlE@*sr=P9vJ8J8V*9M;=|iQo(u)W*mTcRHBUFJQ4&5*=&Met% z8eJXFz~3o+bmDG4BZ*Wxkc;uY3RrnIpLA?*;+*RK(HsiV@r#s|cS}Cz56+nyaw@eQ zGM&GcAod(}<*uQdITSh#RYBqf+*Es#-+5mpBo8 zdT3iVg&ngLkZ-zfHdv*3rGnCC(A?*^Yc_9%YFrGd7%HlsD6h>?KUH99{t&mT^0 zPZjH*Ki}b5*qrBc;`SZO|3Oy7u?= z*j$i17M7V)d{J55uLy&b@L}(JcKw3_zxhU@3A&U29p|C#bYai4 z5~wC~=id1C{Nd4JVu@Luu70!T$cBUZ_WK=|h+WLss<^e!jcMk3qdnwUXiQTaOH1J5 zPuXpvMZ#b?%jw@sjKU^vpZ3XNx;$zqsnv}Uj*lLEc<=nEa<$3V7zyS}uXooE-rFqk zn->i;E|9RsVHkWUyuB661e=H7yh#UVM|!S<6lo4Q4GF{jjcJbd#yG$sD?JtY#j#=V%!- z^{t(7@}Q#$Wz>j1Cd}a)L`2k0`2L&!Y1@oXGp8oqx#gVsiSOn}WvzYnAk8d3IYUM@ zEdciaI1=bzp!mc8dR1OP-wD+j8<>m@v<=J*bq%17Bc?`1dWNRDx_agYCML$vS3?6s zeLVwnLsO^}1L|6-lR|2q532zXmFemB@)Pxx5z$;rDqaiD8mCLdJLBb=0IOcyUw&_K zIpGN#qFg8$JK1||JNc)LI*=VIZCyHrQ!>PnbhnmO?!Sc^8k~27i7*~R17}~3TmSj z+Lz!UBA?malGup@TK}-Ba zq35;+XT$2jEuUd(OtxXp?=!#Yk{=;y)GcC4HswC{@4o_Ud4KbC@|A@$ChpLrcqEuY zNjlJxf6qmJ`56L9IF8MnQD_8<>W2w3Rkfyt!BtZhNFE80{gEn~?jAaXaY{jMC|F zt+V);;$4G3_GM1`Mt-kwB!{$qxEjRMPrTzYoGdiS*7san!G<`kVP2P8(IHUW)i6VG z%SNcawcAi6fDUb`rSe-uke4lWv}fu?r)GVtYlxUBllyzsGZuEB-nydRN%stOG-Zx7 zX$mQW#uSG5_c0>Jl^`%`I4}C&$?s%^ASJHrW3H`ziUz1v5tazdA5nPpK{#v`9Pc`( zn|poidJ~$+e4!JDvUGFjmA)&6R+&Y*aHe(&Q}%TEkvXn1i+CZrz0+Vyg?;;neBfy9 zYNBQ7qXE~qUp48tE$8sqM0;Z&iT0p^n`EC{xKpr%7zb>m^Mb!wjh?qxlR2hh3ExiG zpT{`Wh|?@xiLl#89Sc&3moL61g{|?+SaRrS21*+UkC(UOqrvm{S@@XL^5?cROenVKLIc35RjbiFj~lY zI;0i7T6%~()bfTNgy-QVr^51^={nxh*WX z2X8(uRQ$WO(p2FOL2znH!*G{3?QKY#6X+kk<;;&{DxIf)JxKz3+rwT)+n3Noklg$Z z4uJjvMF@ar-&DrW%gExF8v3Q)dNR4um(#y08^bJ?rD6AsvX05zqVH+jy5&ca76}2_ zUSXDV+vA1T6W;}HVtfI1nU$6(sS=&Yi7(_cMgARr5sK&Ox5Wgwf&bi+bIHjOW`ZDY z@i#}OXZIPnzOHP^1bx?43e8F~)oIZO2?|!lVeeG`R&CWr6KFCevL1^tCXp{?KNuk^ zEhVRRyktSB4kFl)>p8*)W%9)$kvoW4)N%$;QK5y?*e>)NfGbv|5F;%rV4Gu9m!S7+ z(~$x#dtR9n)(n&+m{$<3+HM8mM^K@e&StdDhaO zH!b+;%WV9H5kkQePI%I$OH5KDNb(qXUD%pVkT9RjfH&juCr?L9&gGw~DsNO870gvs zEs-VU;6D`@K2QoZB1+)ZRMvd7Zl;|A;vC8JxN|r!^P}1mC3ZI(2UliZ_242##2sDH zYWMZ{IO<1T*G*RoS8<+%-aR{3gA9XY2rV$nY=pQF z5o~kzZuRI}@2#DlaIJ5a)w-O`HIZ^y=bbXdLAB|V`j5^wf)y|5g;=%upmtDJurz7} z&54_7gWPVk?6B$Qmu(HrWJ{_Rpg%>&W`Ixn#4?*9tcVo676-x)l0T{B0KfxYld|uO zx8vyLRT|39F9L$wDXi#RcXuYnqCUdM)c`zSNyosynMzK*sP+D$v$7D<8M?s)nj!gc zYAnHMAiHV0?}2LEu5M&;dJ%8sJZu^OnEkK{1OSXxt+E&VZiO5Q$=VSUjW$;A3VAI@ z{GU%w1Q?Wg46nXd$>fF~upLi^@1wU_ny=oGO*s_p7W!9;Wae7N9ZNX^PihExmSfpI z2)2FvO}I%*2%SPkp>TV$jkmu@9GSl}9RaCh(U3#W61MzV-O|ZiEfudLj-irQ`l0-()MS&JQ>pA^nLOR|9IVqagF4QB|q0`9Q%iMN;In)LJ7jp1O zWF#CTrF4v$X`|1C8-z!023=zBc(B@%z9n^RQjUsKVVe?pyVqa|0yPt}M@sDbX`^a2 zKD7wZ?jKN`t54$ynza`carV{v*HzRMnLJyw;m%AdRS!;(ATO28{&(_Rt97c&@I-%C zSeeHo+fLLwtHY2}9sQnM0>WLOiQT^7t<8M>PuVjfRsz79X6QXVpI$JYlRg-1Xf!R_ zojIeZ>t+qdKd!^zUR&LM{z`j~&XrK3T+R1(vFtMJ#U0Z#uY$cRe@Mb?j<^1-Jtj~k z+a$?vS7skHqY$0iFf}7J(h0phS@ay!F!+EFIXDyJuE58!8lWbgZ#_PoSx=LM`WkR9hp$dED?gY~T%lJx%`L_+` zKD=;+qL7X=PU>HAS%;%^u=rmo@?c9Bb~HfuU*zA^jC5+ONw0^}8gN>U3@3;3s4|U= zkqyuaJUg?eID1iC3k52L>_k!Y=LCKQ)AWC8LBr7%nGM?+wiyALSxY`p*WCIIO^1H@ z9_j#9;glc1sYZHjb_rg}J!v98&DOh6Mh(@YcW1&&v~YyReP~(gmB0m5n%R3aW_>v) zuZ`C--{9-;v5SMy4M!LBUH*~fwi*mhDI|}V`^b#i?VVUoCt*1) zq8s}rlunK-@j+sfT4)L^^1WDX|J%qK{|$$}OFS;ASw%5i3Nch=obTKu{P%8ht6EV_ zFeQD_Fp%$(a46j6v+PjCB<6clOo&C#QNxHz^p?(#VD$$V=f~3R<8FzjiHeoY7s7h+sSKr zo2OJnLFr9OQ;G4TP|I_0Y=5UWSkSaFxezhmXG{|b#i8wmpkfpL1wiwpN zf@`r;>!v3J`6C-PKCg>_+!ZzrCCXL6B)I3Zag^o)Dwz~3BB(c-PIy5p2K_zUNhAvK zfVeET5v)HSR7q~uj=sx4e|F1mZC{_8ca&{<#FZJ9(*8vwF;z&4B zLSSV8N?rEn!q#**$|s3aNhJNtrJXS)Liqe1S3=aU8+v2Wh)aA*)OhjePK5p|%|^bW zWM&P!%VzVCNpodIiyH^W!1mk7us1LX4qV%9bA&nN=If2+s*6+k825?G zr*)PsPBm9{>eC`lI8IZ}dJ?0G5NtH#uC1OX8))aN3u_nh!Q>KKFmTpj!Rz;7*qfBv zF66si2dkuP61G;sc|&Y*j{|i0_E&4ZN&0}5q@8J@TrEhSQt3KRvAOwnVCZj)U`mA0 znte?{ofD|_lfXvOY%g|lB8rrQ70$dIjXDM(DI1`a9F^#NebI&2dMr?&OhZ-V1qGr90T(OE5W^Z zg<5s*;J_%md2u^J@IEHQufovJB_B6m~_FEt$hRir2KsB=z>gksiwyZ z8Zor-(ksrKsaXf3(VeHf289gZmDXLlQSSZ5h=ZjUupz?#Bm%p^s z>R-L2Ob=pIP*TC$3!uIV;B-<4Vg^V~AHGqnuCV#i_o90vuOs`m?LnWnoXEZ9Ba1@U ziAZ&0l3(4G%33Fa!`sM=C%d|oum@;AbzoivK4&4++Y&wc`#(%U=>K5~|Dc$Hlk(FxGc;jSU(ZAr3L_ZnnVOp$>0AD%wa|x(F7)**OsowJ zb@j}2bquvMwDoi>fh4cy(I7ZzA6KGp^{TSw(v&k}mX!E&F){Sf;?5kKp`@(DyjpK< z@JG~hv#Y^not#^*{pRZh+qQ^T!xvLZ78Q!;84@+q0+!5)6ZX1)z7lx;AA4t*P+F|3 zuW{j_U7`^Qfmq{%*IMPSXFqUrDTj4&HNE{F(KLaJyxZrl0#h!|wZ6%dp!ttA$(_!G z>Cf!`HL-4>Fy2nlZt1D8L^bjXYi$}DCTY5-(CWIn`eCubi0<0j{nZgQbo`eM6o7j5 zbS=$Eiyu!~d7JeuZ>?>%x9@foUFvji=Ki~hm?d)Z)5w5J|d{@TV*Tjq?E1bZCC!Uqn0Z1NsbMSu^%si8t z`ikD35padyT3JDdnQDzB3(kB5k)C6>a|Cs+TEuf<*z=Kf%ez%;Ad?V=$uxydW7%!d z18)y6>$&|K7U);T)o)F-^q_u%_A$zZs1|xB@-QP1upk}8}w$NS8?*RWy zJS4@u|?_5Kn3S=^Z0~~JNzeJN2bm=&u?J}oEunLgJIuD z%Ult|NdLI)B6NSlfD5&QgACs61U;m6R%h$)1T$4r{PRGO|z z3IwHHjg(Y@Nv3(d(c!r+?2^{XmgeO4Q&%b%wBpTWCv+KI9!U8-K?D&m@SZbJC&VTp zrf(|lsK*E@Pe!2j`IAMm&&*o}4ztJlWQ=sdXvfi+5IfGw5^U*ShT*j4+obl+VzQ#o zvz@$mpohjTWVk3q*;rgYL`Pa$Gn z8&VRal4VjE;#-SHV+isKfEv{7CFEZH3A76dsV?NfKl1%P{hHUf?4-jN(&_@5%hdgQ zmfgO$U~IK6^q*ZDC-H?!%!6HleHO|9@@?2CjtXt-=~vszAE)=%3fpI<9S74S=~l!` zPO4|tbuX{1U4d?Ai<;(+J5%{=lP{-8YD}L;OSFvavsfm6~;3MlB+qd5T0Z8cv;wSS|D?n=2seiwEZe5j`k%31>g*S>g*$oXE(Tob3MwOw6-{Shs52w;wf|!-3v|*{GnW+pV2&Vv1hV166`dTyno{;wLhYlv0vwdI6=Xuj7y$#t zHTND*fkUoFf+yav+E0jWRf|g~NA*|}47YEM!3u?T5CznJgSR^y3JSZ3?}NHLr!Eq7 z8s5CY>x_)SM(vfa52%-7iZ0~~O=P=$WId62OCrGFFB0H4K5BI-9FBJt!99x5 zZqS_1Mk8Myq@PPXNihOrl39v6PQ*!-O4~?!t%ji}qJMP=~(9LzYq~CrSL4|1V4=Qq&i*jrRaI$E0?5Gry~3k$#hx z#x~}~U%oP4SkK(-#ujcK50iV_BM;}6Yw9WdFH@0Fz+afzyEU`vXx!C?NPwt}nLcQ@clg^d^x_-_sOPbSz zk{3{6QjLf=M79!da6+a(CpDdyBfU-e7xS;--f)j!6kJxRJMK&0%K^!BRr~hU?bXg5 z!c?O|{kLL7bSY%Fw{)~W%U?c1V`>k7&KAjZDv+(MYkv3N0vz`hioW_}J_1hV759}9s6tyT)d-FU6wcVh7 z9qFE<`9?2Z95I?#3}cAlMG~2RM;&FT;KkT;WW<(=_15O9Ix7jn&0JJTg#O1iYS?k5 z5BICG7*m02*FDe*Rx-Lg7g`C7c5-*`=~BswN2cOWFkT|<<4jaqM8Eol~}&=iO45NzT>5`6!^Ip^IPLu7d=Fl%{$I4J%6*t(lMQQ5(_#@Ae8)l#q@r~#`w#_Ow$D*3s4E;fxNMn& zy!{?c+i6HW0w-uiQGK2r0WApjVuo^#Q_yH<#ak9`?2UXr08*Oi4Ox-y{psck!wGbo zrpfSV%+*d041GFth#~>%zyk8k2(Dz?Z^{IN9sOqSyzT~lv(D|%EcftR9o_gLeGz$S z0Tipx2`;2=$Gb)RWGXFMV_+Iet-B=s(fetEDJ^57V_d3!ntOJMbT_Z!Y#Etk_Bi5t zJy^8AjK^GlP6{9=1w|p@Ek0S>*)k^sXIEwEvMMF)#M%4k4?@N?Y~QIq@2x5)Q<9E$ zi|ZZF_2vq@4zo0zXced<0Ezu7Xvy^~cn(&4SLb5i z{pYi|8m7)V9{tipMbT7^V^bL?4=kcUJ{tR}HfyR%C-lN{+I_fY6U+q zVU`6EhItT&CR%vKp1SCEG7T#B6tTKSgYt$aS|n?`VrCSFMEYtwHq`MGglMc2uE z$(QUOak9^a8At4=a||HABrmsgeDkUm2A6@|OwZS=z-wI~9SSpKO8ZT}n)Sj!x)yDI z7GYL7vQ^8g*BoiEvik{{DVF3d`%M`zp@A*#Ou$rqQ-l55X*t3v<#tHU!|gi{-`&8+ zW|~B(NwFl#$7V#V-}6CR(FrqUg^zYkm)obkt)7qytxySL)W~D4rf7VN4SV62z=x6Pa)T{ z1EAppRBQld?}?9}+|7cR6`R`k2nIfN7Zf5&hE@bB4^e%L%O93g zkfJpFXyfAA5wgn zq4&xfUf9Nz6(JcZecefF9qIm2G+cw86nz(owo1l^#lZiaQC zh=M9R-P{mSPMXp=G~XmV7bUSlt%CDQW~9*yr{%j5EASn!6Ccs6DF~<6-YefFpporJ z)zcx+`4?%M7v-Eex0VlAUf>Sk;w;EDbrK@=LQ-%4qM_brkrN$^5Cxjn*?{tG;FW@6 zTHpR2{N9gxZ`IAHnv%is6$XWk+~>(o)&3&QA^I80inKw?^`%pUpZDFGWrN(}f;EQs zYVjL#KX%Q?%Jz^yKNcc4^*!ZaDw1JDJ#th|DIYhP3e%{`p1D;fpX`|-^V$=B_gpV? z`o(RV3XEuh`9>n^b=Rkb3s9t7OW`{WXZ7xBCw_apxy#Wc)Q*WOlOxep)=5F@j|*X6 zzM_S>?WJs)4>puVtqpGwBX@i-n76_zeKeF&c)RgTalfatOOq7Z!|%Txb-cb=eDY@C zz1eok%&aD;0Bv)jIUfaSS_&{Nz1XZ1S*FSnedacJoJ2P~?ft8YGi~O?V{i6fqY*(Q z)>1Kc(c??rqE;gBrg(03(Np>4cekE4y(Ejig$n$&e<);$FYG7h@ns8#ME%_gINx-c zCi>%cRMNjurWPYZp6iw)1!(ngsc-UU&6siWe^Jdwsvqw92QcS1z?Y5jnbYkT~C@>XfM9 z^HWXIIT`ycNfo{W-8VIrjSzkbF_1k~!k=)f*m~p;)qRw7Gmrc_sS|ubC9Ld~5ycr> z5`h2dnQ%fZ@h~4bvgF2u_1L#YC3~OrErGSE40IcIp~>bt*Ckv;-~s>W#_NU!G=ycU52&<7;x@L{e>)xdqjIBG`TiMlG3giwF80WMpAG-tRg ziTk-=wWh3F{kBGgt~kMW$woaX$|U#t8f4JqWVPTRmCwn+`h2$g{!=bgkPjRMFHJ!C zN%18p=J+U;CP*gjFcw*T@Vkr5J6y-qhv$S4~KcP(tF&NJ^D>4<9)fI#<)2SQz_>!8o2tQCobH zrAD-)TE$q0a_^@92F+|uehz^pC1eW82W_tSwR-J>@3iV^DpLo8=ZJZ){@pd(9h7?_ zQk|860#1gliJS#^wCC$`I9ElY7myvKexgt?R{0oYPSy~27L$KTElhf(3{f`=OGsP} zhzDd)Vx`2HJH>#T4I%_4i`E<}EGOz|{q8yz)poo`7mnf+8z#LFI#|>gir0^ucvCLk zQuGZyZ%YxLyAH;c1%sEGsn$OF=`GdM$G&-zZrmHcH_KTU>3AKTMx68KFhlFZn_UDz z4d)Vz+4{%N4>xDSe#E0X%jx4O@n-$e0yoxCp*_ZC@wX3XvF&uTZF90dIxph&oblnb zajJXSAIAa;rz3dK!&`-VBu|Zo8rTWFRVnij3`=jF6c#<9LSy>ei;vT^`Wr3D?m@S zw-y;wS1t`R@Re0L@f_z5;f=klbqz)oc}&A0qeB=IEFsDm0=~@mI?+p;XOTPgX*z8<*B_IBk z4H&@TKFJ_3=;GC(d{A$J0g*nAz=dEfDa6157QewBA$rae9}ZE-IO%gokl#)tm14b@C!VjKF#JFcQMI!;!E{{}iut5q%&3#1P69in4i^ zTe6tDb^Ip*|e%I`h|y>wk-VoBby9l7wtt#e#^si99(=%O&gmmd(7 zL*%R)f&~7MyI65>@_2c}1VQGpk49;!_EuYS+Z;MZ(k-OfU^ASWWdZ-=Jf&4wu5@Z9 zD-v#}KuuUHNY&t-Lja=)Q)w`?-iTbhBCdCzarDy?>=WF4%goqVDJ=4n^}s4qHFDwa&D`|<`uOXnv=za$WL__Q|nwP3}?SoQcv-( z{*%){jucg*2C2*PCA2(KBr{x#jM-8-9%scs1-(t>a$<0~TDn6GiyadOF0*T&@u=9p zbWx=U*)B1r6VvWPWnst$oUZswFsfB+9X&#RU1mX6!r-=(s}iAI6s?cC-PE6(aUkCWds%Qt*?a6jqlLVCV3RiD4=`CRCN^RCo{89coqkf`1hC?SxE8CNW5 ziU=cyv2e6>e|n7}jkvMm{_V;Gb@$)M{@f;$%d>gQb*-$yY@vQ!H2XciS7d+jGhb{@S%18JUygaAd605F^cw!GF=6;*k8yh)F{H%=@ zM`vunkLN@4J!O>lB+zB=`V+sWK~P9Q#3X}k2N%_rBMu>UJoUNm!bsRy{Os9Jms`~j zwO8FZQK$Nd45-k^IWr_wQgG>bEv*_PyQSOB+uv4bCT-qmgQH+1gMCi|8x-y6wEH!^ zK4*An_CvPxc+99A%paI;I{HT@S@R`+k=!zfeKBn)$=Cg}*}pM#{s`BFS_n{+08S66 z{dDm4D+X|`Y{}chZi;%T^7jTGQ7ny@Ix%hd1N^z`L~qPyS58#-JtUt~L~=+fl1M(MDocEwy5emxOCdA2@&$;+j8<+u^e_9n1;`?Vwa#^Y6X zsZ=J7J|B8gsbHByl7!umXcjam`FBhFq5d)b{z$P%5q3pek1yw=%=fGV3qS5fs)Ab1 zg$~NTO%#YI5x$`q0jjW{tz`fpKjSIhf1g|`(^kV+`OoR30-3bwHD{$-vaE`O1`OY| zG1c^Kn!a~vn_@xlesNW3dSH6spNr5&(MdD;yCSWUErNADf#O8_2vi%Iwogt@InN)s zGbq@X9%$Y3b1D|#2tPf`USe8*G|8eYU?ObH7|-EhOo#!|aM-tH?PwpmtWZEb?seV% z^S9@wB7&qB37UI?bW&!9SF!E#>6VIFU7g~3Qu#c!`qkvg^P<}}Mt-n*ek0Y&oU3Ly zK-(dW{?IqJKcJ9b61$841d+{2879qHB<|4E7=j<5XN9gk?R*mv#NbuTdNy1i?GcIS zuJ83!d6}KnOBNkM(-nZI7i*5Qk&*bZ1m)2Bh7=Kz#*bco1ib`#x+nK6bw0~9XlS>g zgQE= z41b)D4IyGh>dw9QlT0@(DE9o;p$sE4!KBE2C#43X!$>)x)2T$rqt%)wbM?;PfBV8} zzmQU$S<##aU}DorAQqM3{NX4*|G956T5ps+V`g;wko}GS)$Jm-q{xqfQCoB-gGpJ3 z76np1B<5pxM@nArD1lm@+d<;vwhpfV$Dbux18e?5C{U4v+sc0mxx$_d+Q7%7l*Wwa zs>#*Sh=Xn+pOfX3^KP4bLm7%jJj>t>8Ln-80$sb zWDn%N2a3al0}Qc3jRE=A)wq$caZq{HqYRE@*JYOL@yzAOLR#FJ(9LThE!{@p?7&y zR`oNZq4w@WmvSZ?CEQkhq{^VQII7cx?2UMK>PsdMJ8m`_j-g#}U!4q^d*17Nof3f=u|ecgub&hgnDOd4NSf5y{kcP*eS zr5W^{s|0#*_*NzIotL&fbN8A!Lg}dQAj?TiE8Wq>cETpC!NF;f)iG73}CS8pr;H)$=Bab@u^Mn>AZg zuNX#CXOel?MkBcbm-Flaz2#{IZDU|DaJL{`39DNDXQL()K7Un z4)1^P=|MxIG>-4*CdO0@1$>SEa*|OFRAWl;Ymv%|&nN>61fQO)Cm(7+O1rf!TjGW@andto?zB&&z7GSjNY{%x2IcLP(8d=WI z+@v@+ixM|HNg4qd>%q2?l7{X^{r#?Xp3tctwq#>5W*-(~y>Bw)_4I=1r$)!=`^ki` zKypu}?{gug;Gm6cO>Q+SVWJBJKhVYuYY%HCa~vI(^=EOkmU(|>@w=bPCS6aQbXml- zD3_1NiwcfbS=nS3OK!P8QqKMu<9VB#2iKdx?$G9R_Gd?gvoL{tKsE09%R-*pjm4{@vBl z`k<8Pn&280T&v8E&y|6_dz){xaT1n+F!p8d(Df#cBZV&P>L5FGk)=aIN_i3 zZJMHy^Gvh!F!skJtV1urQRxqJ0N~5OolD0CiLO_i5`pMku?JSi(b)1)^CWqx0+%7^ z<$R&PI2kUo{@A3y<-!u3iN1V8@SdjR#NU=HS=zfqgy)1_K2XuwNWoDlc|tWZ=#PwW za~S|g$!=(-30GRH_^0ft5*;xw!u8>4PKe;;@$GS+CbDM!;x#be@+V^;mR<6zWD_22 zAQ#2BjI?dN~%bY*U};K zLbXBe_uyIZ@k%AFuYvOHgVTFr37nCXlSCOgzr{%Q1uB&lLxW1^*!l2N>Fub2+7zAG zr^(inzJN3@85W`OF*mpPY!pjV79KdjJ*jzkqoX_ ztr;L!YW1UV5TEYzM!2?g;P51qr@`msb(npf*Dd#f5a8wWQ}Kwy?gZ%-tVKGe};QzF_VvyD4~Wwkhw}cQ|HSj?I}cZ4mhTj)A{IB zxRg>N;gD-bK&lMfG=N*&lM4$6GimTF)`j^~+GY?5r#ePi;+S|}0qkQdGChsqcH%~D zvQH4VRlJ%%PX#%9j6z7{@7V<7)NK<92a!MCCbl6OdMBgvnQ(DMh#Q5yT5;dCVY!x3 zO=wl~d&^UWkBchd5ok<51z6`UPp851`Y<%`XXASukazrL<1 zN4utjcs&b$VzMdfddxQ$aq!iyed0RseaSp7LIzSXa2#f0igCb5u5V^$p-2&M&c1oK z&SlKozNZlb2Za!Ox*W3&9i71LLW%jE0278=`B)p{M=P> zK228x7uDSSnKi9*30 z9wwn7wmWYfdE23m?Jup+t^2Ncus(q$wdaBq;>y3x#8gqEtxx&(NqKejWqf^yfk&9y z$*owF%!6Y1OV)^8yiI%-cT|=fyX1v%8Y3HE+9~`vO4)h|c@{t{ESqMLgHme|aBL_@ z|E(X=#%X>c9LSM85xf11zh#fY^Jxq9dES!yaHnmdj`YoxqqgJjgm&`$m4KN5F2aM& zlr-Fd4skATKbK`Bdc3Hg^x_ST3?_=)mI($Ri-@E7&1@=Q^z`K;L>AT5yX3vUP2NF@ zqvI|)?SN}y@!ZGJ!I3GkNqvu!5vWN0loRl>{BNY;GRCQIEyD{-aOCwBnG^Jy5s`hm zvAl|5A!$18Wrw+M6G+nh370Tp=;wjax#LG%m%j%t&PAeVQ{UIvq+ZviBvUApo59s= zM85${E-#R+R~<<#FX1-kUrT}N7NZ6Y(C_z+e03r|E# zYNTbi52P~Ft#R)0G?yB?X4i?7#YsYp$|vn3*hNa>02w*K&g206+yy}lw(~Xq2cxaZ zy)P5Dw$|1crDsEi$-h6@wp7VZfp$Apwwelu53HYS2D1_A3fDGHGalZ+A8y~gLi|9u z_34R+e(_Vg-4jp5h%6`VRLS2c@e;4GrifCuTH)Y6{t01&Atfj=Bv_k#qMmaKOgM?r z3~$`fz_e}C*F!?`?fVTp8nLKn>FT!Z6Y5rkq%KZ23|(5dtuMx?$#Y+q6sFpZF`c5ZFg+jlVpO4C+gVd#I`fBZQIuE|Gn?6w@!7P&%JBc z+2^dae$Togsn1&3$X{J}B6cXAm#q;1zRz=xFZ;A*)j6|aVZ>>x`qKNODF2oFDoX=} zTX`(n?X)TR4Xm1DXA(+}N)^aUzz$X3Ou+r=C?-R_{fZIk$@TNq`_A4o=OaffF#0G}E@=3=y{|(#jGaoh^m0d$Z6PS}y^#Fi zq#Zmz=&##h;!JctQ$BH=YizC+dh;y|EgtM>a(-1n49Htb84)_ZxYKO}2M{Fl&BHF1 zYIW?;=PAp4{}8`9A{oI}>-n~9@D3gPHki3IUv2Vteu7B=p!jUsXZ<~oS2-|uU2i*~ zs`}7)gA7y56rJD#e_4&PK#-JSo|e4+Tka2B_l^h^@5Htr2~M{eLMi?0u^4~La%z`s z=-g=)f3DbR)C1J!Ha8k2{2(+|yfN9*zZ)ivkrl5Hpv><%(fdfDTxc@jxIt6l|BoEt zngf`N$X;R36uN*OeMeB3nxFlw2#(p~kQSqES>jxmZ#MM5=kaFyq0cOULSHK|?uvOK zXoyd8$TKE2kh+wJBkCZ{?T+b3#hHL2y>Cg z*)nV1UzloEn2QURh=Zy^yI;)Kg*lvV9-VzXY*BX0`q2SfXmRTp5*n+RhZl2mja zo1FlbSP`#lJ(Z?;1lxCiC8szcrcjUW3SRWl)&f!ZP(o_796xh@E$!vOJ=b+QczMtD zuS+n93yh8VzvQ1Ke2=ER+{2+XxAU>0NmVcYqgD{FLE#0(kIF4zs)&X|enJcsR&Pw|FDpm!Z?il9cHFdhM%uD zopMc+hn4i}E;nyHiS;62D?3rgIro+k#LMZ$Mt(HUS>Yjptsixd)+}OBA%EX^$4vu* zYcu~M2z*S07os{7Hk^h1n;+zc&GrJB-h<~K|#3Z)Byp6S!EgmfwT4wW{@MZVGdD&46P;jXXTdW!L89gD%jM_la}#M z7mN!t7Ovs#6G()w(`?utSxCCR40`vtei8VGzWF+XVkI_A8=<~hFF(|qg;#?Pi}F&4 z10z^oGHCyp@jH=b?QZ~&T-f@NwmSGYw7D@+Y*>46V+U{N|7gT)sd|1|H}4tM5tmfd z=v}V*ip9;lv}bri3`cY6cu zTZpN0dkHE-yjebm+{eUu3Cb52jTq@?)xM$R7rF^{~r#d$w6sh*ZBBMnJiv;Crs3FELXJvU8*25X|4NmSy%RIeF} zKC%RmYrGt1`NHku^+UE?tB)&8s?ZlyD?G>GfCQo>ZtJy>I^)?1@>t(S7|&Xj!cG$` zJ~;e0Ew!+5g(e2T-*TH?yb2$9GTqGP2_+psL`I2>JYRpw9ihI05NuUewzK9z@}+nn zUsQb*@MQ*JSyh18mbvr0nu}kve4`sL-!6wRXyjUtH2!^Re2&lR5>506_wYWAWfHH3 z7c8e)zeuVgxfC&E7LlL)0Oaboq$M|(EMG%*BW3OTcCW?Lt{G01E%eEHpG=*9zYfh7 zi`z{7+`>nhn`q*rR=RQMUd|TuY=+!knRhClyxrR8sEkl*TGxJ%lH=RBwW)K>c?2yQF;DtZMG zzdupEd=$j!90t=ky%Vl~Uby!a7y^{yi~SENM<9P8F2Qm`$fd3@mRnpOJ}%7}Ilsi0 zW(c*U*Ir+~3>|8wD;Zhbzxgd>4lOO8(Xm({E+S6jK3>EU%G50hab|W3@$FAdM;)JK zCymeap^4RG{giaD<#GK5$g8**$M($Z=H23g?1q4LMF>cWhN{GUHRD-P)b1a;jDs9M z^5~6*-*sZ>83%Z>H5JX>S6Lmv*a>oJm~)ISP^#t43Hs`4FvaVah+^kAcAC$v`xc|v zBIat((xuwt62YZaOm{=^!@l<(0CdH=F}=LJs<{+GNOnV3gv~j8?`;`Vh4L%S3x4q5 z{82ua`QD`}Otr{I8SV9Gz2s4zjVa$#NJ@wjF&6Bw2aGST$jmex>VD+_lmkqw4N8l3e*eu&KAHPSV}msF{x*=jC_m27v{!8w{Q>+~ z=HPF(wDr+LfG~9;oU(s%xM$rk(ps$GaY+ogO9!ON;-x(Ps>nun$0 zWA;{q1YiILccZn2^=2<1gmmt*Y;ckszXsw~sHc=^)e-!bR;VD%0Sg*@b zK-dNDS1|m)|=^4W8W8Q%~FG~fys>L7#LvsT{9x23d2w+sBZ6KR(=;UAWl? zX-Pq((BWj)Fv|EPPxdG553KOq{Z!-o!Nj^xOPl~fOQ}UMwWzC|{@WVO$>d6xQ|1sx zs2Eao5N4GN39X14Dn>H*;Q5d=TDidv ztwY#yFwh$fk!f5@htsmMG%W~!iDFen-OUBtWd1iMb*ClXbXHe9DqjN@$g<_Uj|5LF zpl7iXG6#b2zF;`Gb$p@ThV}B!*Dig=^vLI@vTvdmt%%idc^5Od)xv^RSkLdNg%&Bi z{X*sBhYeqv4wHxGd0(I4r-S>cJI0DFIoxi8hq=_}9@a6}-w3dJb!0ZbP--{zd++`nZL~#L}AsM8~ zkJR@Ph8}m7=haBWw?ja7ERsl;0Ax;aI>7MLBa4s)Rt6A_E7G+E%hSOF2>65!zyKgPI$)A~iEhEynt}M^1JRtkU8WZlCOpI_ z>-BL5XK;r3Rjn$#)A`VmmEyuwi1BP7L3-eL(&f#XVV^*eiw}XKjYp#e$c*I!;hiD? z3K7syEJ`~!{TaqN#P+00O40C&qk-tn37L=ZC8k1%io%=A0txvS*e(Pf&8VSD+dfu9 zq|6^*n4@j-Pj(`fvOl*<`u!HM?whSpW9(9bia!awQFMeA{0fO=1E>znlkX;JDnhDq zhR*OPK)_*oj0QAeb-w}(KC|F0Z~S3F*{_I4>JasaywU-hwVyu+{}7~0p#JdBfYrm{ zTiHc25IVKpeX$aOiaBh*!gxVuyApw7fl%B^$`l;d&K2u@K8>kJobCvF0hHfcKyuz4 zLmb|;QOw^B2*|1)s!=5R*9<7&-EW2*@e!RWn}Q#zjP`9jf5$2Z{N*au%@^YC{htz9 zpkmC1-!KxZ19wTM0MOE#cLH4UvEoSl8qgnk9%?F^gS3!&IN#_mi5K%_)B zzdQ`d0}-(BIHq!s;Nqfzgw2*6%j>_zx3BuXK`165*4skvm5i=vh7Dp-pIVsH{F#X1 zM6OTV2sXgpp;pk52*^FRym4Y~#mqg-hhrN5^jlCnmxvTQd=G|5GkGe6o1~edghrdE z=&;2SW7D-V%YD^PBJ;T{%k`QJ9HE#K$Wp7c#2Vis5{9hsa98Bbo*Pcc7}W{=Frg!d zezQel5W@sC<(>bDo(MU&WFCM`BkB9GA4Z0Z2gqB&qm+9{?N~o@MJX~qvtzwTt&q61 z(5B8yvw28ez?c*}XXUa<9ma6&tHN7tgl7GcId=KXG@8PgscbRySmpN#0pj{LHrQ8^hIc4oB$KR7l7rC7g5i&`LEx!ft`SVTh z6!*11S8cmp#W8`)0PdCvQ^kS@%{I+D5%&&(ICncbx$s_hu42dI*WFvj8hv40qd7u6 zS!)?V5G<3@E4!pKpZ`mP?%~YgjW^TdY{%B<%TrRl1j}QL;6PpQ)+T%Q5HN2dmryT;N#vR_&D+k(D4Witzg1#GC)L{nHQxpI!lAMa zb@i2}S=-~I7G|$-pm|_1^@U*!ETNjgst7rt2GrFP)_vIpv7M-<%EPi>Pg1oV50k5( z*q&;}8bsEnVQ}GnoiwH028iDWV#YC-q2!gpOc%V4iOag_j`Pg-GECG(zX}RkypZo7!Mhidm z-TLIK#2&AMWMJYq*YXvY(4C=j(cqFo2^e1JD(pb_`CT`a;aqGY3@G zw&>I^`7>b{6c)fj)mQg`Dy|g`1zanrRvrFo3FDB0dw{Ml_KTVYnbem`WWu%C!<1LM_uIh<1p15@8{aP0u!U$1O&*e^r)wI6A%zstQ-P6g?!qadiexZ92p54 z90p;p3%Fbjs6jrO;0?%XF!no(e)RD{+$EYjw&In=ZGj?I6;*@|2=LmMPil+FS%kqAmv$^y2aR%6 zCK4!^>7sM&&bke^nmZ4Hgm|`oVZ9f^c;1fGgk<|8fa~oabamK_(Od?w&~K>;&5sky zwA+`$3B@m{2{j4;Zqz(8rzPFGrQXx}1skvqfOWM@y1f$tNg_{CLHK`g)AG2`(xCwH zAh4keH((vw=P>Y>I$dU zd!{TYhr>i$N)q^}Oy}B;{Y+NcX53a3&>6kVmqZb^Vc+5`O?o#yuTE8$!SJST z*MB;%nTOT5CplL%$5YN4MWy;f{4_{(OaJM*zc$@Vq$ z>RQVxy)1>Azp`=NgA-(+lm{370bm&D%cI#J^%RoBmC`8s>VS;BZwqEOPNZrIek$YX z$Hvjln7sz^p%D*AG;b3i`&>AT+f|#4i0Ucym^6-Z_)Lr4Xfwu6W>qGQYg^ z_fnV08KJ`j=!~$uV1IXrFaiRdGb#%?CQKs0>Zr7-G``XO%R^{X;ta*pDcAJq>=b!m zI!42w>$lYB-Dr@@^?1@hu|Ho}iQf%!xVx2rDr%OYnftjwnE0#;6$~4Ra1Ba*Dc1>V z^$CXKhI2n+laF?!6RrM46vwp3V$EYTA8LPp*o~qez9NLXJK-EkItSBS=Vd=0J!$)s zV3ymYl%O(xUGS3U5c&;%geauOd$9pPz^YTD0K83j65NLz2*bT|bX`HRh^|($-Y1wV zW;7VbM9I2`>`QIGovSENeZ9o4U)os}38XkLpO0zI*|z+x=yIeO$Oje5Pqi!HrXoqUo(p zKmHXxCL(4*`2A{77rJI(9~E+u{$|JX=<2N%&6G3-5mGdlnl;ttm@(N+j>UXI`dQ;f+CoTHs35sfCeMs!M7o5RfQQD2 zosM3*Ei4wgCTVcz&{;ugQl^Ofu^CBQOxGrsP7Iu z!S5hgnrUX4@-+*t9Vp@-Bi8hk;Mp{bL=?h@S&9z%Ma#$Yq^h}sSMq}H4GpC6H31t~ zvTzn}H#YA`Sk+NjKu)gGNmZtL75fZ6Sv}@J+jq$LZ3(69l+W&}>(Xb&GRytixlBx;p0LOh#V&BMy@ z@THVrL1|fV$N^Bwl?8+zyF;1cmqX?Gh+cdtgW5Z<(kEx>*?rG3{bMj@{O*#%*lvL^ zjZ#;3g4DqTKTMIX|B5(ms5gYS6UKhm)iHlrzdkhUzu=m=3|S)tN4I>i(|{VDm|FoY zC}2Wq|AzYLr2YGPi=gNwTSN->ZSk>CX0TO8@yWo!N$M)K&*02Z7o~ZVjRGfzCN4eE z{!ob`zBKg+i(DlU0$D(qOJ8yAJ6d?2VYg$}wd{|^sf4s&h*P}jc-(1*Xucfn%mIHP zh9O><8(P_cv%0zw>ee@o);9u)*Zz!ujbu=`%||ixu~0MS+WZr;rfQZuJe#tf?-=A1 zvfypMP%6Bs^+lK(iz*Zg!O63a=;#5l<@ec;8%G*c0HEw0ka9N^B6lEcceYi1ouqa{ zA9ly6$H`jj%TBw=iGa)?29wW1!)>yWj6{u^6xVo;r`LE*`z0c~TOSV{+1hwc_k?KZ z{gk859q8G@Q>4Einzr*j<+^tP0LpqwLR11geLU>tfUf;lVo&?LiVvCKrZ>Z0B~=sn zeGoii%{MumqhXnAOc@p9#h_}nbJ|Lj-GQDTgB&VJV>|`?49sgvB!^09Uc8? z{0~tSLYvk~UJghyHGM{f89D#jSddQSYT&xgGx_^>%YTa+lC0cWht6t)19mrH&jmfe zxJH=2mEC9e$qSwxo8D~hSGePA{~E&W7Y3|GhuBZ0yrd{?g>xdtYGlR6D3l5;n{=a#mkiR3&t#SC$iG3E^PBmsI zQoOC1cF%8f%46J|wTR{O9}ynUx-evu;xJb-@}xnBwnYlC=Z!`dZ+e-+WpzrD*q80! z{HfXIk^5s#w1XW43wLcN)F%C>CxPHfYtsU<1}Yd52rZTI&eB8v#ldL()7Sp?;-8p* z6^bj{2k~4BURiCEtLT4=&J$yo;j_ert~)-fU6yqF4^R94`YSDWW_Q0mVw3%28`JBo z0_NUHysFKM)qpO{BrV%|`42dni5{?$7B;l8?!W%L+rcHs+H_}vllI39i%Ng+*(&j_ z$m(uxe1fLt#M%L=3zl2oIVipedT?@SD)11Y721A>TPBK`A*k+GbsWNXA) z&ceo^yWf!#$Z#+C3>vk*C`dx>*;KtS-%2aPEAywhCX0liB~e(%{XO$56I^WdW5xUM z5X~R9^nV$u?WMDo(pnu94=WP_JzmCEv@HBUaaT^7@Onr?%1wndHikW&hJQ}vCttvS zKpRYcpPyY1pIg0UE}A?mstUgJV^L zAK(w^juaHJK{ZXgIp5*Bmp|Adm%evL%crYk?OHt6{$vQHBo*5D0`B$vgw6|B_}aO|ws6==Y({qDZE9|x z$9X{mhn?wj3u8;IZ}OTF;j1_qwXqeis{)`Oea&1|vPf|M6fH6rRmZ}Bul0i5Y;96p zPa2fzIcTuzs4Cy&N24*?rP0p^y!E{zJ}6)P8s)k6x*cw+wgrF zy*{jykX>f(dn`L-*8W04SSZ|mIsy{F9r_i3mm|wKR!eNBw$m^l8nm$Sxb;C=8R}!B|2kyg`hGlJlpHH&1xo-VpmPtdGyO?wV4rnNL{y!5 zQiUaf^gV5-S2D?7M^+@?*whE)D{CX%`m_Ch*zsJpZe^uimAQ&?;Xd2vbJ?`R9~iQu z#L`LqhhOf($znvyrXEvBUW+8av}p0+GGUjbXs(*?9_Y!Zs9^k9H=_-cevYrJgvHVg zpx>K2e4NlR19oyPA<~TYk`Vt82wRHalAlFCqMm*G03tt~Ls=3L(884I?vdQ(b$-Sxa?tZpYPjG9V%ZhgD)-G&93 zv8R#yWiiJ+0a)mHLTNk{!Ei)rJc&}n z0{h3BiwoLR*`|1kjWa0Ae^8 zfFfkWWOh|90m4GI4o z4_ANBi#0tm>@odL85cJcmW7#8BjnG4NIS#|(bsC;3TA}J;ibYu;XwYrT5s3XNP3zV zl8n$ZRvMFg3HOG60vkFcyXAusfnrA6`#9gd94m&s)5O_IfCs9JgmZx||MuHz&y=f} zC%t@DtPU^yc5?y}L<#^MV0~rgc!3EggCKDLAS-#gXLF}p@si>U27yEOTV{IkuMo3P z4}Ne$whBB+T)ooagW)`>cnU59!jrH1)~nlrr;!9QwW(tw%f!)LEpdWxtb>bvZN+b4 zpiZXLdy_o->G|HItbf05&33llf&bJwy28CQs_i6nI)?&}Q?tSq2 zjE#o`)vft@aL%6jsqMb;&V_lJTsk~{RuG5$i&dBHMQui2GCLAvio%;Jxu9-YXNme# zaMHP`??9h2IDfV1n>MqB$2NDIo{#??dlwO(qA?59K%VIg9r&ZZH2jt>;PO#de?v~! z-cH!IDEXae8OwO>r`;5#GKIV-Q)l|S8mZNail*@1b`nu&kg=tcstu=Pj2>lJSD zQBl^yjY6Q0X3d*EIzq;Dr`ez;HXbrQo2HP8gjb|;EP}VnT+Y*{H7i9b<6g*qQ5cl$ zCs^f7|HUZk^ZvlcG?j$>3~^PU-#bzD!_7jQ3DpTfa=4E;dUFkCXouyZUMy}u(C|3H z%jNR@=k5sZ=L!HJt@uJ2<%i;zB@6&;^-XCHESg<{#XmM-Aiu0P!?TRUw7Bj7T}uET znBh~MhH3pwa*+w~`TSGo*ZyuG4ZT{CcSmnABxHd`1tt^o!?Q$E5Ov<1)x;mVV`!TI;EF5pl&CtOSq(B*Au9X$f!qB$^}! zAKQ^sEW~Lbf1*S-Xp%C+l?u-52k=o7;R-OwaBIdKg2*zVIES)9r#!)B2>@6EQm7sk z6k;E4+goP}yf3A~RdkduHi;<0O+u!Il~ypQ(1jVxFQgp`8gc>~i-~@pT+UEizxNac zj-XT>@IB?oXI#r?+ip6h&WKsu35X&wu&@K-4JkfU0QNX^B5G$0*(1pGgUKtz2XI0XfGHXe8h8i2(cAoYyIeUkRkH1TKD??iDTC44{ zZgT}l4$Dh_?G4d~M{P8K6VoryplpIlD3N0+n4FR`#ZJY;)=mwNojrlr_-oVEzNYv6 z#i8?otB8>ne!Oz#8EpwXozP!x*m|L7b(6lp_^sr+h&-0*&VRcHYwRvwbG6^or{L4> zPnC}d z5=-R8sI>+^`9}53#SO*wp1f&2TH}UUX}_D~Cd^WGb+kA(ux0^vDyu z{dG+p(`>mFSVQGL?ZmFo!;1RK7gtH@nUKfF9{iZ>NG={mC?H_uKWscEo<1A^TQ$IX zP^?&A=%g{vRB)+P8#C^+7g`NMnRnPKpxsGP8(qJo^fIDBu|qVhmHC=f6K`a>L!i6;cE76Jz8H)~(waj^mJ&`(W(KJ}Od zE+(WQCTS~r@H0cC<;S)7$Ll4#Tk~omE!5uf#hg6t5sBURwB3;|i3woqSWjd|_?NLp zJW^%MI2F`rL>+t!*8kt8Nkk7;CH`NB#Xb1`BBEEtq_1ae2+l)*+bh&G^;NXh)$}#N z2?=ctZ6iH!J_4wxWu&94q@@j1H3Vwu8^>fSJ@p%ZafK}LRC>!h?(p;oau$ZSwk41q zS$aciFz4Y7Yu;mVN5Ge4ijEaZEr#w0S4uRl)ovZ(ig zs7B1n>Jfn{0a!P&1zcBf0-tSphn8V}o?w1W`LW`156YunH8kT4h%9y46V|qyb5U z1MqYqMPQ)Z8XU4HG?@7n-rC~K9%n_pR`+9|TY{G;0T`(H3#DDF3y)Mng~{%Btkqx^ zXgww0pR$25y?g+bMkd?(6W`F65dkHY#;)rhqv3C0lzS6H+2#7zc*907T85O)GSLw8 z*qV5IO1OOc>J5KSxl^gC`}O7MSIF_<>hg=W$Sv+ng^f+G0k(H1d5VNQ0fs==>5p@r z5xr2la3%)h%L_pG##fRZrin1OIHW`i;|yvBl&nm>zhU(`w<1s_N^;f%t=y?x(>4F- z^sfl;qYue~VS}Xt(V%w8PHq(zn6ndaVx0>HDf_xpQ-Li8Lho3G7L#Q~EKB*{JO4t2 zuZZUJl`!T^P9pA#@A9#rWMw}sh`Mw_A~i!Rsc9&_`B!>?m-}gnD|0SW7@_^1r)G^e zGm+&?8cW#Q?fF_UaF06J)^3Of$-Xq_O6=G1kt;RlOZ`z7SfgTn`(s#^iglY&v3m90hnAht)w|Z{81A2Zi*JmIEOz}bnqAf;6Eyi22#;@0AgSVtA zL?J*au|6T}fhci3E3>}CzUB4Oc4x#iNNBHNQDQx2dE6)xYSr1r+@>?QTt~U+*ry+T zz>0S+=&|hnxOm8||HYqFO^y$R+L4ICOG=D{eVb%p1U8FMvJnFyqUL*B@wt$=`&SX) z7}3jj&F~a!o`>J0vljf{?k7I0JFjP)6K`3fGF;Wl)N9ct7mf{!kVI|B)1WXI z)B~(|B5&i7evtqX<>J(}pNr_@pDDA4mSn>!<3;2DGFc|Wd^qc}oqL#_t*z{xhx!DZ z`-A6hAK>L#>k8Si;3i(bT4^e?gNK;JI*_+f?{WO_Kh+mI2!+`ME-kQPmQ*~l9Bl0R2%Uw9pW290)$ki zq4=85f2o}%sqYx`H&-z)@2g^1T0@bxq9+2_Au13s4D1RR3AJG^4le-FT0xfy=d zGL}<3fypB0|J%1mFGXhyo{+e|D>Bkbc>Jq_u%|ms6yg4k(0z0RaQkcxgq&4Sy_)W< zsYvHFi%@?&tc`5x0bxj+_uB|(j9Utev-ux$ad>>M6Y#Vsk4l5}tUv(mLJmQ}UwxJ0 z!58UpvoLmGb|~WJi`l&Sfmm>(jDprlriGDtHt0TrGssG$XsQ=5$+q2zrR8*)`n#nH zmz`_Hxz8)3t<#$_|fyLP->kIv=h_4liWp3sjDmXI) z=GcK>vVU!Up#d0Pa*2|`MK1y7iIGjZZ0ucA*}tZ7o3j+QYfnR9YE(md!goJg0-%XM zss2bGO@+_A-@Dh982m^e=Q;At%r(vxu43Qms1N1#SwG(`S#W<=UFq8=0PP6a!4V>C zasti+!F5r(_Dv;|b~oa44z$P3==|w)BIooF?iZ#3pga!8>@lsF`tRx#7BPNwWZ2R) z+(8&tP^_quf0ZzV2NR%fSurq&vCZe79jCG4w}mX=1burk0GL!%bc>(Is>GRot+VM^ zJ8?%MjEyiNf@FZZEXXI24Fo(JmUmj~own2bo#u#HWszOkz2MFzQ9ErbXHgdReKPt%>R$6;Sx13_V(dq4aX3m%OjB{js<6dB<8 zTwOLiF4f!Np(FpHj7Ex6e#(gq;_{Xi9V=FHJ~`ajoIA{*#Vu-A_2;HD$nH4m@|P{8!j2u^YFWH32po0T6}re3`e0 z@)<e$?r@TI#&Jij;&Hs{c6U6Iw%#@NPSwv4H^PlTP*Y6pAF4&Pd31SiWZZzK}$5MU_kv z6Q?ZbmKVgt02m=T>`6w1g<<=KUXw%KP2T(zh1WLU_wziu(uJ#I4{w}M7Akfd=JrY% z(Y!E<&g1%P;Ch$lFkeJ?vS(AsCZT!i+^$jU!(nrq6Lp2pY{fR(( zijd6#!(~1`3;nm_n~k+CD^qLHlh!pKwi)_ATNe4V5uMPq3F&#L-kJ6cIQ!5K5JnI{9O}Seo z``E<=k01lvP~Ys8KAdDk9Dv$W#qEL*xaO!(|LDh?6IBd`V0m9Xne)OzD60eNsi~Kl zg*+&T+l2Zg4o4566V7eftrqGci{f#3la2@aMw35vCDGZRIqaLOCJtEJELP8x|GkvN;)RS+B9q1+s`uG{r)Y=TAOS;X%OGaVBSB++SfrUT z*C9U+zQdE2N06EyD^JDwj)`2&{BhyZciR{kx~9N$8BG@EGDnc;vlP6w?xTHsF9k@P z#l_)=&HMdqZeU;k1_4Oh$1=@!q!g%zQo~T%C%Kv)96YDzi@VOJgU&C0z&*i=-m*}7 z;)Jjc2s}eOs5`*Key~aOvTq+<#0WNu?)`qy=IfOF4YgUlqG5MWCKI*LtEEl#K1T>- zB;kFf-3P#@P=c8A{~n%Kamr4r{Zfaq_^`jCxt`HCMnN((Z&Dc|5cV7z>tA3SOqkG| zND}sIODzn`yB=K(>9UrNqFKcXZ@G;02rnev$m?@bxivG&UOy+?I13&eGvl-Pl?!RE z0;xp1P7O0ud`a&35S$xZHyrGCs(|>AfYFw`i+LK9=vxuwQg%yN_9X_{Xs^8GvX411 zx0w1}B*%CuL#!xjZXXY?PQgpOrDM(B>U&1m8y?8;&lSQ(j^vRW%UKIzesvhV(8>~0 zGAZP-o~>-)+Q$n$4Xc3z&vxJ;%m}%AY1RIxAcFX^pEdX8UT0tSc^K!K*CJuqu7z!v zakW-3HtDaq=*T}3^;1qr$@y->*Y0=Cp|J2M*sT&!ErLL(YGDHU_)oNR6JqK*#S?&;9gTS8vn4>>h_09Xg=oA*UyP_VD zfA>CL=W}*7dD5R3c!-w4IAQH>+i3!Q}oty+0+<)`X4RU3Es zb;H4H`1g{kQiA~nPT$Y@yC!v$%cfPEkfjGn< z+Lg`u_JA}aiMH;fEtqzIBLFof9H4|NV4*N_fT7Jv(O=<6Bnn@;>I96=C^v)|=f;*v2#u3uWpzG8=p(ui6De(2(SnDzjY`; zMAGHw3PuWkQa6awvS?vx7;}S$o6vu(M2d45?SnfZWs&f+tp zr%r*4vB2M>Oa@3H8bYz$Nb=gbXXg8~R7Qi|$S8HVRLAU?zbBxFiN6r1=YNTuN;k}( z+`$uV@A&1+1uZY)@X%amhB1_MqaUDTo*- zt2k@MT!{Wo{W@wl-)0YqOl0rYYc{*pKdTZeYDRJdv3r|~Rlb{-F1GK!8x88gq=d`E ztaNFKL7?x~s`Z?G9@M=yLTWLVljl?SQm8jrGm$6xJ_Q>+DSVXwlbewJUtQt>tV@_F z8+0=M$CT93R@c(j)YCRpHZsuDR?{%h19KvbboIa(N?o9_mX0AfRiO!vRT#t<8OOcn z#w{2Eq%vXAUN?7!3Z~!LCwq!Qj3l}=uJ`yu1nk?K`r~yu)LxRUxK`^gTC_p`NGT5% zj=Qulwios2vngeE^$6a&(DsVXrM`DnN7+%k#~!X5AeMS`ZhVOc!y&6hYM@FX5CLv! z&s1E4zVKc4?MONQT3-VZ)NUH@QX8k8nqj>iI2P>)*~Is5R{TC16Tp>>8Yn{q8r|+Z%Rg zA2MJAY<=yO0+A0cbVHNS$-Jyugnh#wT^Qf1bX{p*X4qW6T`koOKd~8Q^N_dKn|UHB z>mF-+#!U2jw6MB+CjPb~Ah3e^Cq=*P24CiP9Qw&L-M{a|xM~zM7tI8ZqXXCHI_t18 z#OT(LbOCvC9Rq@w>nmZ~?#@SzrdHDB7_yr^tGab|8+5=b-Y{TYsZ8=}v1(YC!i*R} zpoeT^j2VBq=DI#;DC=M7IN7;1cHOsa{OG4K{c9_jDU5d@3@F!G8U{y1Ea2ZCq2{7aP7wKbe`5?AA1&0?^B&)c3sz`16T4ae;E`*AkMQ2<|Oocf|xx8x3-!rl}%etL@4mWcRMi}is1nY4vUIvIU1q7xDcra2N5Y7wC8s2&3?)F|+YcB($M6J&S zyBJuKi(h;#>bSCo+p=_lM2h~UtxY~5<(%pjuIU|YAfps`1BR0KN@VLtRZS~kji;2e z6kMvGCjd;*TjuqiNs$WZC9wwzmTnMt4e~zSbDaL@T#bjnowU+377*a|ir4WNVy|qo zYHO5E-z;^}Elzc*VhLUq_0H1T>C;+G$qHasX0~82)$N=;6ufMu1LvxfwD>fn zAvh=u8w%RJ75pW#!;Ng)?B>|GsgJSy(jV<+a8xLB!%JmHZYO5vN{G~YkA97KGNvp% znQb1mM!sXwZv4ipqN+CW%?d-(KAWmi$f!~ORloou_1=X5)9V1?C~7Aspsug!gppD_ z*xvc%7oGfzxe!GsWt%xo78SXRyPbBI7-C~TV7Mb(FZw`xZ8{L-L!k?7b(gI5&u4pV zOswT5xp7zWvA&D>_Ua7) zldrB2L=e7!Tdbh8-m7LZb+OG6_HQ=E3uDx{VZ_~BAD#5r8P%?@6MKGOlSvW>WBQ1>SeU@5|prigo09WUs*|Di!C8InZ zJ=L(&kEr8sM3Robsg0}sKfoBlHyx(?q%#+wo18K9HY032nX?-axfYmW6uI>2=VPd| zyIpsNx-~S=%EQ8|cx~@G) zAb5hi1=m1uhakb--QC?Gf#5dyzzpv0?gW?M4#C~szqza4ub%$h)m_!qbUE&vc@t_+wmNI4oA5OSff;izrBT?j_!ooI9=7}tWQs$hLGl_bOKIuwHBQ^2Rx^@k?`He-wRTKqgYmVk z%oA%M&YHQNcK_u%l~efj%G5Cbv;g*6x|@}9w@ZemnR|xh7}pj1tA#7>j1EDCU`R1P zf4k7zLWfkxs^>bs`nIWx(2US13PFl-^>I(IL_Gr+5t_Jp+2xVGbgIF8mK{!yA31$P z?K_gAVP;10Sld>rg|MEG!}G3!0#VzgPZfWOAK%Kig|R|w&yqhLb``OY#&TCUD5XTp zq?OA^`Kr1S)G#TA@m17n#_;%GokcF=sCMRdDsP%9vk;06{l^8~g~9X7$wctlF`di1!ZQ)hN5r%?^;0I57DqoNQ*&yS+!n1i6VuWX;UC6dn-P&cJud7G zy?{Bg$HCb=pXMS@{az)S7VK#jnlx(yo@`KmxsR(bnrcb)g@B=fgJuQxtt2YKRppSPtHWezabM|K`GgWjz%EXU*UX5ZP7!e(A z;5*v`op?%;9(-YwvC&wVofB$7J+f;-0UFNh$bQ7)zzot69QAbEcPlbIhFB+NKb`zO zDeDu$?7&&p$u!Vb@Eu4zREh5Qxe-scI%@y;Gs3hAhj`e|rl>wlK6A#3$$1!)Fd1<$ zWZ{bu3%-&97XK=)*$4hRPYxhiat1Xz)ek`APB|^ocgu2?BB6>{sn%gy`E?D+*hbre z79b(*&E@jJd2|Vt4V9XR1oGsJRl#XUGe?N@B}9{T$f_WDfFGWU`L;bSw8~k0L8^rK z)lCf*kdkde59dxto`5V)eL6p!FmZ1YTTV8H3-#H!)Ma^veYft#oETt(+7FovxPU~m z7gVvcdba3y;~}E46+i{cgej7Sm}DZ?%)!x2%2Du)S@NAN7+cF$f{`3Hg}eb|FZQ1M zR|HmR_H~`Wmp-8Qz4l&{UD&{b3cVuE+;UYPRKEP1*SmIa&D-mEiZ4Gm4IdHb6Sm9F zs=j$zor$94EMu;C7&p9H;ZpIVbE)br{p_6)u+~A{0v-rC7!nbIK^jn+J+$|kRM0&- zX|%Ad1$9{J7w$+gx6NvS+$meQ`G`i1{9Y8eL+p6fi7g-X^o_|$kWym<^4BWR@?fG~ zgwrO6Y$j8C|1z1!dzEZMQzCB(lorT8K&jrPunqutCBK!781a!uX~Hixa@3gfnz}K* zC$#epQ!bVkvfwjkkEiqDf8T8*cocmiIH^Oh-e6=x|0U(~2}MrcGZilHc9Lm1+7h*v zZZq_lC}}#TEufBVxuif%`^nS6P{>D+=%M3^chkD3oonMalI_f@$})2|E4f0nqw-Bp zjpsHpj5S}*a7OKyQo+OD+1t8Qp4-h%#{qY(!KT(?xPLaU*mbK@#z9`!iNOmht{UQ! zKF|!Ah8dVv6ezdis2+@GdidJ*t@H4ZW2{i9)7xRn*@)D(n0nk+^TdymtsLlM4IW7( z8p8JUyQJu6wajH?kSOYy-+?*lRTmS~0e=~JYryN3jRbd@_wub07ld=rLo=cAv)cf0 z0Hxeln_H?4`EQQD^wFQVU#WZqadZxBn9dWfjyt)jnu-(DHC5wgY+ol8Am2=1Up7^N zHS4%CcYHZ9n{&-d>*Y|VLJ{5^~_ z&xJ1C$Rs?!M==4(d^|Ug8Ga5BMn}mXL8F~#XY%b|b)HX*k902P7*RxPog7<4*!>bE zd5;!h^756e2+AVPumfOfLL>i5SQzJve!rKrnEmU00SPR2wlsZ9U)Cm5j7+dYj=g>~ z5KRd5Sl-d5jqqCK79EiG>6hxF98@oAq9353&mDI98~yqS-*p%;BiJC7_1q<0$DGpx z10wsbN>PFiKw_XiJ%Mma?!~Tco2mHe4i5DF>;HOayLoSLDBqPRt=u-ep121yku}E6 z9$%bN7paLMt=j{dJ0BdsvT~kR$Mc^qJT1L?@E-aR@C(j1pxs>s8v7z6{h=P-NZBVf z;@9w;fWnyvL;s{R>r__}iQMw$5_`f_@b!ih{D2nnPB+N0a|*QiGdLu5xnadK&U;Zv zBBsfkYZZyqr|9{4^#bS7GvjUA|D)oHHULE0kqfH>tAuU4C9$%RzSy}s&(!LL6wq54 zaK2k7$veKaioUo33yluPM+eN7i$3MIugW{VeXmVqzv5WN4U`3!4XR5icnr|ef9bux z9ws`pcilZ$?y?d_s2g9NaU$x{vR?Yp6XYs2FQfK_W1NbPz1ii&*_AtX>CfkHvE&WK zLF@q1YKGSpTqy$sRMr%YzR>{8ghh=G3bq6m4;}wm3nAas8HJ2CTn4M`g~a0t)4}>K z<|R&MYsSV!vHQ*;^0J-+Bt5yo6?qAJw_gs1=*LU7{&=zEa!t&DAo%R!8RF5psp__O zQ(t0g2*T*zS=MP@IRzn}ucV`xc_4(LY{es0>bfV~n5@?-yK&7}Z(9e_Fi@Jp`^KyD zqj$vj+0&1nQBknx!??{EO4uk34ka?yp&AS{DP%=tia1{6gW=)xsMiFeM<27b=`O5P5na zo=&jDm4pmrTq!dU81*s zV?4p31@8ZJ1<(KK3inW5Ve4bNI+GSOWD-iSFfi1CIvaF!p$-QV16>2?8mP$pAmbFY8Sn`~=d0m>C@mC{?_ig6dRA|_bN;->NuJ>nY z!D9k>3b#kAhm@GFEysny{7sS0iOKJvV}dD%!yVOnoMXoqkUS2Pw559C&rYbFo>CBp zT(md$D2vbT9MyJ#|FMyi!;nT(PuD#$;&oA4IHvyE7PHay;Lf$#nGf~C^{i0T=k%#G zcv4$a-e46`)-8mdGaF~~H*7*`LJgPcMk23^uKM9uDQ;*klJ>Y~JRpgDE#z|EK2KQE z(^XKaflXs_dFEbP_(f-V1uMhJb%EhFHF%)%7lIx~gV%a1rRV`iIR}As1ZXw`NFiW( zdnZaaB#{v_YXy=6PmA)Mrg^&jx!J>2{S2WkaScVr49eANyO%s3n0VfB<-P(M8kBoJ z-bl0}Ud>dnvU(;&n?$Yht#1$cM}M(vAzJ-8fLkJWnQ+b8ons5?FCojwk{kqJmdPPV?#G|k5V@Kb zg0ABXpRb(!t~t??ad~^g$B)nva}P$g!j>+F%ic!@AUdr;$!|#kT4SZ$D!jrLHP&_j zF4N!oe4M=|EJISu5lvW_PwPI2;HDQc9w1pmE)BVRP;P$P*O^!@ADX8)Eby60&F?Z7 zzP@*8)}ifmt=vG`*qq=t)2v*{bsXfCIpUA|d|v~0*8Q?Pf)+td#;i0m7b&b13q(Oc zI5mPohFv!P<8GCDfd>FY@>;e<0i*TW$>~3}#3roZ)5IUL+buMH+7TB)Y|dcYFU#WU ze{`~c!rM|Y7hzA4fWj*o_GRO!lk2>A`%G0GJJyMEZ%6-YYz-C)g|OO)Nm_~OM6_+V zcC^0dFE}8Ca^=e1Dro43^mX}t%57ULt%o1C-g-iuvCXXZfN?c1uP%3tLqSZ0a>S~; z-h{aTHFc%(o|aQAx5-L{fpFHp8M}FsHd4=Dy-{fL{;X0F8rt%$D>Hc3P~fFzP(Dng z34h~8x&YTE7uW7{fYre6q2R``HrT^+)cOdPF$3~pGIZBt=EO^O?T^XEwMp2p`$+vg z_NjE#0hx>46N8xynF(N+#Pyy5-~Ax`Y}gQriuBP4cKD$LkgzxGkV^E`{BBdtZBb>n zz)^XybgEgDM-t&)&+qqfbZ-QTIMyJX$VGvy+TC^-7f|qh^rvdbF>R@;tn`(j_xOS9 z%%yxvJo^m~z#T1$T3QV6cwr?2o09e50@JQW2ahm+gIClVV8a%taVo!&0eWn9z0Z$( zc@i|_Z*~a0P}{*twVG?!+Q+@`#DTW{J`UYt6;9pH2izM;BM~ldc$J;pKB$(?@NuV3 zQ9OIYbDBV(d;$0a7x8%ozgT8@)l=#|;P~cKYG0QD1cUj~TL6O(Q+(^mDo~g9^=8=W z@1UoCUntEWvXt=BGuU-IwnCCXG?ESXB~9y~RL zXrWi`bjMa5ke+*Zm1kk<)VOG&{_#qhU`<)d=KNB4>5aPNg}@e_xU0d7lpXU<>TebX zGT~au@fE?*%(njc2F*=_*3uu0Q~v|STvF!j$XyB`*rb`#7(imA{G@R8E@14M;{H1K zy6K4ieO5q+CrNJ1=ka`Em+|g3v8fikyA`GdqS9@97`Hfux__Jk0ekUN_$r&Mbsjp6jPn zcEx#Ow5CjbU6;2uJhP8%5mF}P>0&WR3%S7tF}lxT3df9b!57%L&oWv)oa{(HH5~}X z)#kG)S!d`>Qhd?2fqrrwdFUa8-kOPR&hOj&Y4{8gYvou#rVt(2ot-{VJh zxGx&PuEK*y)F=slqCRrgIi+TH53NQ>uBVi)wCxrq-Rs z@qZB?F<73Cs%Rq^H8$F%bmGs$H8nB=`fai8M>p$6k=tVV3d<*yIWWjzxjlec2MnBt zUjYD#4*Rn5h9uflOHc%{?#Q~AIa9T+loa0GQ=f6T|SL;Tt|*xY;% z;dw?C#9c`e(?ZZ5_J_OB;&%Up+Jgfk>(dPVtp>oIoA( ztkgEDVsSxb3rEg}rP$LR(B5t@)5}(G-(E!wIB;QrNY}&7V-S(MVcPsS2eJ)bJjue8 zJI`(wQ}MYvx;+yf9_bd|kQPNM?K|Ixl`s??yi%*Fes{0B)$8xbd)vlh>w10;;=~XExLKkJ^r@lb~14s z=v^<`-aPJC_!)D9cm!fQH-rEI4by zqTfK*`@1D+aNd2t`!EBgXQ4pR;&?BH7kj8Gsmc!SPC3z8|Gon!1(G}34hygr%I=@t zU29W&9F!Y2K5DOloUJn^^DV7f6fin@uz#o@*#iU+H(b;tT*HQm%e_ai-eMsfitvu9N-r)BsS^WS{oV=b7We zKuE6RQd<#ZTo7pS(ZP7}yX(302zpAE$#5y+e~I-=_;F-XDPVq8{4gJ}qX2`gyVqE^ zM2E3oVO)zv4Izkudo?UG#>xDG30SX2_qR-9nV+OFMOWnxQKrAq9Cgk4hIG(g`_RU^ z)DIhkLn7&?2cR&lze6rQP+xwe$w3clhWIi@*nr7U0LmI<#bE7PmOt@zK4s6@Oo6wK zmFBmCK^-IpPD8N$MnKvniCMD&dmc{4oM98@Q{1nz%tk63?)f?f( zwO@z3p%#c)0+yhz_tZ37x}9N^NL&w~GJ*f+W8gs^}+h{q${eZ$_A`vcs#CUbKKbazBu zltTA)=$~XxFV}-;;aB%tK|$|xWkACJ;3;rbf{iniTmIiG8nRAClSJP#9y~|%qC(~1 zqpiBH7Is$!?rtq|U01i6ZHX%gXeVK z%)>%*YWg*TVB~`2<^owcqai1+YuamvXO6&9i5NV?Q$vA^qw)%m*SMSXx%b7j8J@VJ z#wczi_QHLmErpe4$Qd>bjxpa)-ZdM{S1-a?B2#QBDY0wEi^u|ADphT^@T@p3vA zcn*j^nPD%s-ha?!i#F;gu}0o9k%INMDAmS1uVYeM;E%`8j~KFRX3we6HZTCEXC<}y^+0s+ywQpT z_ji88KoS?r)=*7Hi}J*Q*?7*Jds8_H2mK*Q68YrKv+9RqYSVcC!b!yc6B6?OCnP*T zg@k52)I(-tLp?o1sQExgUt8bM(7?plLf^nh!%$mO2THNfF*7vK)6>$_fx<2HwDk3$ z-&s~(|%ReLz_Vh^>>B0a9p3(w$a&%hntkqOxCmmi!08;e~?u#CYf_q zu3&xM@)OujII*M+rJB{lAqbXSsD*r()jE-(;lE^0J<^i2X-s~pHn%^3l+1x7QJ5eL zSZw#@3g3i8Jgj|rQDL{D~|5!NAtqjqnI z2ct8nnp^RTPL5{dhqkJJd{oU)vQ-t?&;p@Wwte@%AL9V%ajxtc5eiOPB#ShRA$SEf z(fY3u#`M!&PT=4F_N7h6{^ns)B5(mR<->tZ%xmkr0G}6R>Dt9KGc&Xa7uhc*6x0z< zPd+NO#jrfiN;e+v-fHwmTk|))LYEcN+ESz+Sg_K!HO{N^9Ohap8?Ad4UEl~Ux5mt%Q|lSH()t&4y0 z!<2^4fHT|RRcM@Zhi%YaFb7O0pL_ee!`7j=)c4vzU!NhK;f!s)g6(*`2+`ZWKPKqv z5CTg@QR2yp+Rm;Ou_k6rb*^!0i{TlQ+L|xrOFfOBQ2MxT*Zzk#d?ZY*s~`s3hD@o&tiX8|OHRojl8R_int zL)lULHHP-5&I7(8&)xTt*3>+_zI}Nq4s%@2XJy&px#kKW{ty2le3k$(N-z?a74yEV z<$^`83O|_oUPS$+*T7Y$i>c=3=2H75t8>Y>7>(70B0=DQF*dr_F$2xcAW=^)u%7ng_ex)8(w!mgK(i_7Re~nZ|z|(+Pc5Oh(Of z*q;|O*&iR4yO=Aq13U^$i{cN^PCT_@9Eb#dp*_Zsz}M) z(2v_=pukLG8K6hF{&5S_uGl97yI@n?Ippk%)6d3y9=dK)DQ9)~Ffa?p$e zA)Ol;+li-f_u#*XtNT8$>p$M~A$@or<&<}sfrIPn6&ajJ2R?I1EOm-GnZ9hJAudV( z+w6os4roFSr#v(=uB7wliyO=*4jWHZ(V)63!E#Zy!&1RX5hwmqXE>gN51ex7Sv+|@R|j*hws0p{bQMihj;!wE$)on7GG+V@00XLyQQ=F?oeMvIv(TmQpVye5 zl0_-_#W-8?9p!V130*P_fGXOOykv1bIp%eC*5(?cDkI{yVg+Z(o~XByH@)K5{n03* zM^oqY4C~r2!(|6)xw`5=t7KO`zCsE{4bs~P^jfL>FL=Qhi~MAYb!2R9MfC@qx~$@S zlpjIl-*1t7%K@E7wkyU5`9jMBgC#_JT?Q-;dyHW;lCt+FZT#G*C0$~#!FAtvCJ0X+ z%>Qi3ye)YZWhc<&S9(kY1i7C)edsG}D?5*rjtp)CQOKe1u7Yj7yC$I|Ib*u8F@U@X zZ+AZ2pDo?l%qWB1?U#HUZJnCvXpd?#$+a`dk@1_o|lVVbfIGaTR44mKzA+^ z9^qix` zvxD+JVuSAz5d9w0$5mX4>dS5WAD3~@WRDV+c^IH38%u_tLQVe=op=mgfi)u?D zg}Yy=T_8I z7vKkn^}(kHFId*z!<35g`CDWzza~ts4miM4SFrB)aKqg5p!GW>{_``#+>xHkT*$8& zefqSO4{Um@MeOGxaVc$R$#63L2i3AO4WmAZZB(T_7`#rm5;3+7+r_Y7>_u!)RCAMN0;|$-3@N%^DI$)ET@6GqQ%4@=h-afkd?WcDt)!IAd+4nCU>L0$J2#ZMAE+VrFXa(1&z`ngY64J2#;ba zA2N1}n_mA~p=xKiBAP=Jyh@S$ClPuy7!Zk+3XGqGeTTrtf&afr?b4}l$tSZ&j?_DU z*izP5ijI>q*rRwO4B7P+xbFCM2L{h~EX;R&Eels$26O)!kKU0BQ%I~er6Zs76bV-> zO%Dxwem?F-xFdoR6s6@wZj$Yzi>5swzsE;|J0pzuKbvLU>*C@GzX- zptqZm`D^pW6UjUSUPdmiKDvkERt`%fxcG-WRc;lPJB>FACKL4-VnZSLNhBGm5 zV>5$o2%hK-mlj=f`WX#|Ir}xC%jC`1v))#zNJta7j7#(dRGNOzx4=MoW_~EZSSX>AQJd~MC*O! zxJ1wDU0b(Sb8u^oq-%LzoqqObZMdLH|NAi`w*k;t#?a-qIu*e)m5f(CTiP?0B)J#~ zdV1#6C-K*#Dtv8Q*JHPqvUVtpB}r!k{g9I$qWI_5PGSi+JHu-CXhz5Xm5HV zu?*qHAO7YVW#Yk7X5N?tN?YZBbxy;38K~+(rEPp4;ZsOd+9hD{KjD+#<-tV)&swPL zJZVx+`R24CSz1hwH;%H8SJfTP-ukG9t(dUIR7Yn1TQjNGUDgiz1Z2_+u0D;FJ37=w zhtnPJmYuzy`uAoQK9UP#7s76kjG~V+<4dP`^Q4f@xdQ-jt5_jcl)H3b?!RHJm{J&;#8n+CI*KR5*r zEZ(S-GH`qw%J*8I>F+E|&Ae!!VzItbw-3SAa>{%B8(=-nJ)(EWBk26Y1OBc=JjZ|m zJ7B3sX|-S91rQ597`YP64nFrSl)Iy%s_`?BEzWeCrS)We5O`Fcnb;q`6}Mx`kzdNH zmNMtWllnQgVQKn>yKEkX?zW~rcr}s>HYBTV<3d=48 z)JFzcU2*>(G?%y`Dn>Alm9`AqYkYIW~-Q1ctPctW%3+z5QviBeUp{*ZNL(r|r z$u7ud2>v4@WjwJP(Yhe5+@4oQYMm|ue+J>InXe0J!c>$ngoW}t_~BrJsvb%vqcKW4 z$fA3iBn|BwQwT?Yq|&AeSr2meGzUlUdF3tTQKAVf~Iu6mQ02e(;c4Mm-`^lI27GQR#?p*W z+oC)nfQU_@L4p!%_nw3bD^GBIoHe&&a%U-LS@RyUOsH*@mV_8pefB8p=*py6Dwie= zORjRt*jT?z_lWmgO{7s4fR2Vg%-v#YP>kPNemCb+$X4(o8GPI{D#M1()-H3w0K_Hi zn;gN*6~leHERvFEg$JElG(va8s1)~BSxFQnOcys=wif08+FtMuxzrf&nhPlAx3!WS zIOeoCj&t`0L!ho!IlQfS}|-2coK#cj_yAo;T+ z$r1n8!nrM29TowZgEdrSKS1c>B1-o`QR8N&pr3A+v652N@HQSi;M?HcVF-&PJ+&XoG zQKf|AzXjF_5O%=$s_R(P=J;ysn|p5VKr^}j$mEb_^CozbSdtk5OJXn(qGk7k1-C#a z)>fo+JDjX+;zxdtX*$VL5J@VnJ0LGNQyC$eP_CtZIql`D>Cn-Pjvej4RtUvs|AKSB zhksh{cD7T6+Me#@hS`5(bEwEL*Qc@m^w<6N+VC+KuC_w+uH;?LR(3*+7T79qXAzf` zX&L5@4Ryrau=V~Mr!o?7SCr7F*KsIbR|8Y1KgWfX4O={GW7_{117?%S(@{=4FWt;& z6y6g5YtEY0xTfu)V^4i zIU0AZsjh^rg>9^3i+6`^EBU`vNN;?x6Z?N=%ei+fUbkbsQ)cgx^(lzpu?srd@AHJz zCDy3_pCB>yKSAOVDoAAFz0ETl7#kQG>1*leLiGqEBSU>%9eqP%Q(Y}X4GjYWBW-f}Y7D4&#mF_OiXIwj-#4*PrOWdJj6;pI)@rr4XO*;ywr+l2 z@11oMy=+vDG+<3s(=tjt;GnrWQ>B6}@U#8IDb6h%of%uhMG7Iym6?Z)|K##_6U5a4 z5J@&?g9JvehVk3D8ePy`eB`;jeviOPxYTtlJz%L#bLnV0^~b2?O3tdhyly&e2Ft{2 z4(i9HUboNg35neJy?FGd0IaBKRgXp#fhLcz<4ibuPT-Tq6wkWh_<3F|7$5{y8x}D8 zA?S~V{XwE;*Lm#1i2({<`W4rt^iQTJm5!sfquq!#Q&lX{$lnH<6-(*w+>e{R?Z)9* z1&hy@#v4(tML;t;L9Pfn{e>qsRYL;>)Aa)V->hAB4hk?JNcAYfKcw(ZVFFqS*$9JF z1Qx@JGNq4lmQ$0Njnq?a`WLRczeC{*A72K$v2kRy$fRTymnbqz_%gYv4rFJ&ei8w ziBFNpbd(T_H^fS?B;~lo`QX`mQs7?=cS0tQ)=>pMQO~zB@`q?=ZINAEOQ73ycjA%g zSpQyj-QK{qxZq9f>H*hbxhhcqzzOrGD|C&DD&6SW0d@zdmn2m z#2$={vO$eINb9-9PJKM$QNXMGCRm~};X@41U;VydcS@Dh8-8h=z%Mj3Cv^bKFCIf_Qo^etT?c$M2mgbW0RtyGal(Y8fczM=9i$q=NFVj?J)WBq$R zs$T`g;=Wpq1*Ro$ynCL&(A_u0h$oLyc8XIJI?ePS*dr$${Gzp-d&hdHQCl)Elq%cT zNqe#`yL3~sJ~io5*{>9iBH$y4sg>It`)js<5KD@gqL;VbeHXN4ks^+@3oG%nDdrr&b8n)53$cZ zD~cn)7^JQ|866tpMH#?JA$75B{wE1L8@W6$;FX~B@-WALL@`je@RTO`!G)luOxm&N z>1)=W-$4hf8P1WS$oeMe-<(9>$1jdmC)aTaokV7QphP#2hr!I2d*>{l>kraXF&d(M zC205BHV8u`T6B5sm0woY@1-u_XGjjwbQ$BArsPK;^8j26Ybq8ick}EO)FHFrmIq@7 zk#ybn*!VCWDs9%5^2y=FjpdakF=+U74AyHV&0dvI*PVo2*3JyeWTDp0G_9>6O zLxu#?xSlwR*Kq1=q8h^CDrHlmkeE;NgnGQH!21CuxdZKppvkF)`!% zQt-DQpy#8jv^bYk6l%Kg%gY$~hNBGIYJzib<%xhPq7?G)-a(`Qv>^4vcdu)=Bz8YY zxNF7E_E=|0;#dO_uD-fmv8|;GtKJK;qP~0P*E8zZ@Dc&(NjPk!kL(7tYCbAW4 zYw74set)H?N#hdw&ee%;bS#L=u2E8-k)Xa9n?nr1tTLy$gT-juI#*rH*i>EJiZH6+ zWx_&h&$QpGo#I7k$#cG#=XghKqq+dRlR>q0h=MVnL<1e8%vhlCz6xHg%)Rx&1aUv( zUcsPR02ZTr(N+QX*2dH=0Q7I|CxRadIgD$F1c!OrOQ(JW*c8vCqlw#^AW)HL;%rs7 zIE0Yi`7AF#Z4~lna%TK(vg!{zLbO?#0Is9Y#kRRUao;jAcq{a1e@^-6O5ew#bv6v9kq-W}Ai5%OxZTsYK~wl{K}E=sE#;HDk!ZfniSKdCM07cS z;+}$68{5LAn!%1=f&2cgPvBiMVumSq*hl}LTN_{0#GTqzYTk!{!}e(GwT>O=A0b)x z9RDm~#N%YncO;i*hD*1f=Nm5Wrp`9(I2e4U?*+@})inL5Jn5f#1^2d?^cJ4=%!{~j zdN?B6QNa@46QB1SW9{8YR)W=0H0;Bb$@E_*sc=l{vpeQtLF5({@X#sZk1tL6G^3JwFj2D%OuAEM|creLp$(TZrBot4|*T%E95Dulhz zSKxuUHHdkayBbG6oqtl1$kbJ>?OC=L=0O=JX~(!`ii?TL;a2dv9>DWbU)# zMSR^-aI;(@Ch3LWlGke&6`JDxDi*>8AIOKh>&OPIIPAF3ca8A}=ymi-h|DA7G;0Xz zPu{k4_R}2q5{F)xdSm*&HX?;biFfIP?nS|>`%kd*Ke`6y`4b1&7NCwlNgWu>psK}< z+KJS|(ULyXBIF4YeiGpFQf`bd(nr~vjD@m1{W=&8;O-?xOSp>G8%#&++ zDa&8eEdyo${w#v|#xx`XsSj(GB+O*VhXyx;07#bCNVPp696BF2mtn+tjPfnvVpFwf z(xyPU={}}SLJmtHt`YWgUE5s^>A4_!-_p26|H~Bo+?vl5;T*E}l#&KhP|9jyxXlsV$^y5UoQ~{5 z5^pE+$ir?FS)F#9m#4jhuLY3{5w&O0toiWaq#A>g^DiX{^h#tx>CrGzrAGE66i#J| zaR(i*6w;qU|LD4fhLJh6f*NBxR376{@sjCzqS!Up(<4G6HLP}p-hf50}{HsMM`8s{`` z!Uakvgo&Y12YlNm>&HJ`j9KsiQr^BH^U*Q(L}aJsnf=4eY0df(J;b8;Sx}IA%YzOp z`XXB5cLI5sST3|VgYzC#1{eXLevL2tm9N4q;C&h`7=t*2Jac#ywO#xQ&!I&_2sC3m zodEgnvI;3iGh=l@gg-H79P3ADo|1%l`SSeC)4=%mx|9U6EcG#$*vv8(@J1mKuDlL` zfsj4%5>>-^B#HECrZ$?g(lT_6hgKcdyb`q?$uS|yzmu%VXC%?^WxB!&ntg;{wj=Y{ z!5?0%nQ<7sZ})x7lZL?s?k1RK>nP?dq^vNSv4BK>e=q3C{4!p{wKYyk3EEsOM=7R- z^+(T!K|(Dg4ssruar<>Ze2K85VcUWSn?|NTEyK9m>TN4XPSNr>ve)=&Z_;ps5GC6! z$@#94O5&{MK>@(p0H35Jsk;BIBnBHslFI;>8Vn8$cI@q7ho&g#n28@#AMOB0%=wZl=Zytj8uBBIx zpV2wVi`y=g2xCELD`?G))Ga0{X4X1f7ycp}(?O^1mB?AnBa3!JR{4}=2vf}~rD_<7 zNAx){lL|s)wSsr`=X+iAmsRJ6Qems{a3+hBo;gtPBjq+JuerO32BoI1A*e#{hw}F; z74kuwE|TQW&Dm)15OheP!vUs~!om3sz}@K0$hW&hFqTl8(DZY4nvBTEN9?ON9xnSQ zzo{@Yt-mFmS*VOtr$nuiK~-Z0q^Y*Nph2yQo4P%Gd^dL@O} z41G0+Apz`*w;dn{vD<<6L&)S|A)r=Rx_Dk*j`8Aple5-h-FpKuU}OMh1z&V<>j%MK zXG!ExnWF|5ruT4U0AyeN7sk_vSo(SOcvD2epabh?iMt0`LbF%vUjXB`%`B?=9QNku zj0dZL+aAGull`8D+vl2aTK=HHnOJe>v%76DnT}kxy)YRaQX>LXd*+% z#^k?#EAtCdmv{UUro47{H1RTOK)I*x5AIn1gBrCIQGe*xfhC=L?KG@oap#qqVivV& zcY*rv2ZNS{625yB^*+-jt#)|%p?h$|(N)zP7MbKsU9823Z+qZ$7-Rs&sCa4PenkXt zlIJp9tD$m+1qW&7Ox_}oR5KhQpZ?7|udrb6#XINN2nKQ}C?@O$>k$M}M70wG5C+u@ z;!hqW6j8CCym(S9z8A%*-oN9DApJwg#={^v{1y0+39qq@8qxyyR-!vQJq{aicM<>E z4j}oOu!$@BA^t4<;o|)U8vuYDu}zTK!DKYIRvD371wm)&RV!|qw(71>|J9>7-8JAG z@%sY+-6;RuXu8+kY?W{Ug;=m}^_<-YxEJ3j#9pQV>;UG!;-sso`@tn4+X&TcAZsXi zFYP0&UiA#%L?4FugGg4k)#y6S*C=cK!}nR_9gomBR*ST%NWqHaG1Y*s6XM}R1;3LeZ6F9nMrX!R- z-Wlbt7MzK1Y~NlT-+z;p&Rii>QnA&g31F=lTiZ3)oTVm^qf#AN4B;lb^%7h8a`~{m z(;d{O+ZXfvPD@aJT#tYccBc@^$}Il?+Kc%-piZC~w3D}xi0qbMU$f|cnfFL%{<<%i zTDKtOkA;;>3OAm>vwfdX@%Z|cFK~!ZwO+s{7@mXwRTmpvP(jPVyDxQ)S)x_gSfr?G z*zKcMSi)Tn;>y~{l%fW1#N?uWbtgCeRXPya9(XTZJ1w+^mW3g8hY)qyeD_ZMr9_Ap zcKh;lJaOW2iCytf`2BBB!HM|E-uSas2Z9eL8qr$a(^@lG0ai`UzD_-s>w8aQ)()3M zRP6T`YO75dOEtATACVqx>_1g zx~9I4j)4|5UQ*lGP(#x&W#i{BXBYqyRypcj&KXOUye*_zX*A!vDZ{I4nT~+=Pre@u zly^RrDmA!JiN-Iz!1N{>LORE#(&e+-1ZkZhm5-8zD6+t3j!MoQv?d(qW2p<)Jza%0 z6C1Y>V*(8xlF%w)#Xm8l{#KsV2F=a0J$+;FhpROsfryu{yrbcRehxyqRV?Otf?YyF zXS&T-J+%FSYc%6|i?Qo#oQ6Wjojg`<;VjOaC&7dl#_yF|as&y;Py28nu)L2Glm<`U z1E6DYjFb0b*O8oYqn@!-wRtn2fKha1@Eg9y^EP{@K8 zNMH9ZGkm?6O+&lxdcVDdBpn^1Hv&N9+m)9j028Bz_cW6XPleM{%D(*&1nE~N(hk#d zBu-M=O`KkwKJ1CWn5<7}=L8ydk*;Thq0mvv>tM2IW* zcz!gythc?Opj}5Qp}D-;Rf_jqE@3MZ%yAt;`y!6sexp{<`63e1$PWw5CVT2f@DS-L zPOG-R`w*KWMkM2%y20$pCs_K*gKIPkMk))m!&Z=cS!hGj2z$>;b%nX%U|4yCo9l@Qq(tCr#jrj2F#u3S&`sFy;*Ob(*lam) zIxsJv)76pQS>Ko&06Po3jFcVTOz-&VqR9^s!ho_%^r^z7);kw-aU4{R^KWmiZ=eAN z{5v@_J3(r@>B9H~&mxiMP(5bLgC0f>)d&`wy5MRyp?Udh5v^@rB8W$SG=MFuN=QiD zvhO>S6V)is{NwDx%%r5DfSzr1n7gvhX1?8EhQ5w(A1uE@2QlfZSUYDWVQju1YKzZB zSx|?L2vIu?W~oYs!M;Y$d|NhcV0}6Gj3JgF`G9*KfqHD|eP9P7VK+gYRgsn#9ttGs zCOhxyc+ctH+%O$@Vh@}(rBlM%h|Q0A08w(r=Krwe*{pvw)q)Gr5Y5 zJZZ3(TQa|^k($bQo1opRGp1zNGsoN5GFlYRK!xAsp_bGR4u;6mGyB|P z-F2c}5Ss20NcN!kK+(zoU5cT?e4iLhdzF|NVuJcPJ9>1fRt?)Ui0Os@d*;^N4_c^`L>h+ z79F07HY_M?&S2hJt{ag`i&eN>?)mKCtOsWUgD8T_Pd^9T#r^2yZ#i6~FRNr|%Yrzw zefQX~@qQ~uO2uf6GS}nI3x;*`pQ+%{`vr`<`|MO<X`%LNi^5XaoWS&-JIHb#(?D|l;fA^cTFv%t2jR+GuceOA1|A;!vpg7uSTO$F2 zJHg%EZP4Hj!5Q4$T@wgF0)smY?k-^%+6b04YyWd%Rt!F8O zY-M%*V-PfL;5(m`w?oLsl`mFHtEqfltjb*WdYC`|x;R=6BP$ zrAJ^nH^6-RZVJjjQ!DsaTj?fgN#&C!u?u&f?Ge2w7V=(sb_OMXAZkB(hXamc~DGh2D#m#m{ELkut%G45F0GCl4uu{{F#E zTABXjL$`#lqOYo*|AOS&b2rwV9vHVe$*sFVs`KV)Y+ADnQrb) z?&+g>%7^TQ=EhY{63Jz59J{^J8{%`zhQSrRPIX9XJMY{@`!tG8UvvdgeKVZ1b4kFT zonx`NY5>$X;a(o~y_V6t*+=#5VlOv1m5zQQN$(rZ3ZNf#j#T1!HKg+KW4 zZa^GjYH_pKnF{gX6EPWcXT8!sTiM+H)`A}#$c@RO@Od=&M^lPvWoWo?L5Fo-&SBGS zbJL?}2V60w#ut6uQma&{ACc=#X-mkLU%5dfDHZhUfim?0W|O#Gg)@P}*_)^T`qQP3 zpDOmw8-yPe{5aR}4|S*n#9XpNowe#?D`^m8-h)HaiRHOiA_N;OuyUNqK8k@@H# z#D7mt{ApJQH8Gp|Kf6Sj{>EIcjc8i+Vqju}BCQt3+B+6*OyNEy&YgLvk2lY(wVhxa z6)9QP7fR1`$AO_hQ?lr#Tif}$%y5}Y0+e!Gqdw$ z+2}#3wLxggp618?`=If0id*0L)V4{rt<+8U*PaXQfANVrSn{l&e%v&ewIHQzR2P*+ zbH`RjeW;KA2~Xc;U6{n3HMKgptf57_5f0YzKn{Gkfv5q7ex#8ll1^H{R0eQTRki^3YTrw{^T zre^Q3NWsFGM7@Vx-iefmO&u-HS(3!D2S423uIoSmnHW8N@&4^ay$hKLnk|<#M7a93 z(>;U+i}uoOf;Rg#N#DsXl&>s#Oil#95wlby@A!R8n?N(yJ%EL}U4+((9R7SQV|@SN z<=}I;F-PPxxH>7e4SvfIJSQqn8#oB`C)Y#L*t~5oJB%JIZoL+*`^ki-H*&3RseO5O za724}>1>*fcG@yj`*yYuwkh`)oBj}Exyb{)d`dDBXm8a_<%>FU;x$Z%HVUk3`SSer z!%I{3<(bJ3o*_It;VoZ5^R{w)H_g`Hsh;R>HoJ>dDu;;-nBvwarjz6%7%@iDi9O_I zP8jUD+)Aq0a{xHdrK#?uT4Y)CGF^c4%DHkj(dH<_hVzD6pIDM`Qi}klyjfm-j6l?2 zVu093Id%hw<8dl0Ya^GJa51WT56=yK?d^i~4=l&pi3XmQMj@+}?T=#1hHTx*fw9&I zi4^zc$f|d2jltlUmrGFyy;Z#^#*X^44`r|~7| zuLvq&x`TU_^o;hw3d4kIG)YT!@X`X`Leh?vCC|EtwC=?N^P?52`Iqr6gp#oCVy6=o&^0Dqx zu#3;7AShH1sN~KF`fBU%XD-qi4~tV61_13Xv;!0b<5`%HYien$;Zq~+|0*A91Pi1| zt3>af1dnh4>p(2feL>C`O8^Y|6EofWFsi^?3X?^RY!- z1E(4g07O5#EIA#w0%8>QL=^1>VUG>Zb1=mPp4pLrz#*y8E~kdu6gvHn1dW;Sso9Fp zD1TnNg)lC0?Az+HrYV4z&(`cMXmf?P+|jVkxCf8SXE^Ht&WdhojhJgi#on}^@TTyQ z4>C>{>$4LJz$KTtjrygEzF73ywOpW#a)A+RW-|^QdrT>*-%>GQ&|t>cc<}ZjCa%o3??zn%U3?5m?~eDL@&{y= zIyf|G_T}SqKgDX363rO3D><_ytfu_Fd>yqF-U6z6=Mv#dFuiPq%#&aX2H<|ZAgwluHAO8 zS8k`{l0FNeBwGqI?6!#c&l9cXc6DhdG#av3puqlm>w=#$r;vsL=lk-2OEeKisXO49 zwe2~5O5f);g#rQ|9JoA3Lpg4b8~*~Awt8+{PtVa53fo{EK0Xl%Z*g3L z&O< zBsql6##;&?N1a*Z-X+;ex-2!ZSR|$CB>pWfbcew^g9yw!qsgS3_qw(DwyjDo{OU{a z%>f`Odk-_vj6N-u4cI#>pJ+aKYet<)E~NoGA8nqa{Ezx#|DV4A^5XTMo1@^L6oWYL z+A@ZVq490}N(YZE>dhCI6mN zqb@7@44LQ9Mr$r`vpqtVj9QW$$akU=VV%aJE@{s#i;?p~Mp_{_bz@MA*_Jjk%3^tS zPWLc?fA`td=hZ&DWNl}qs6Na0bn9^z0_d51%VB6b*8sXp?b#A;p;mXS9!zF!uUtV(`4YT(-<wkh)6hgya!uD{1kXZ};t=01ZOGQDIn6%hl%rvjq_v^r=>B-5N1kjnw=Hcl!*#QPsO-ue#SAWc=L(jt#*k_2HujFz&b9s;ZhuYwf?Id0~QGoyg8`JQ? zLSPB;NGjtPPX3ivdwF>t{T@i;0GbaJxS2P(tdNCHs)jsmFUrR@%qZu4-wm;F8D`kR z03fNZrqv6kv@DDwaSplA1y+~_`O>Je(W*={rz+*(R1mW#W~-0m7`ACNFi6)5wh^G$qJ%Hi`aa*7r3B`-tTZFM56BfOx{vrK4r(JcI9>okNHr z@=EJ++hZ`)xOCy^zqYA9G&I_AIXFxFN$2*p@{$yQgHk+yA{u6#**IV@HB8EO@&fb)k_f3};Z7toa39vv0&d!n3#=q3eZzT9uyX-yWX zrqz>4mwxzhEmR>f(&79wfVcVx60^Qo?}~tNSo$;V zW5A8_$%G_NK@_pN`j__HzpXBTQDLn&oTZEcDkgVr;5jJ~sG9696QuMVitXtZaqPdDJHT0Q&ZnaluJ4!BZ%_yAECHri4U1M0|qH@1*_&1vpKA_ce(PJ7DAA0V`1Xv-JebW zH1VVQ*?NlFep|{pOmRgAAN?ao5}2@{E>|Y<)P zHxoPE^mh)QTNEe6(o3h}~C{nr+H@@U_zwCCsVZuALkHEQ)IR z03yR_W`v<+cH7~yThliwXxiiCqH#Z3Zcy;dr|aA?m2h@88?lI4{RG?n+O+h$_L<@A ztl879SG=^NXcO#B9)dcp$;$?yI-4SMCsvwPq!y;;=^)GojgWp!1RI+obHd5r8iX1s zKp|JXO$20asCrKeWbOQr{k`B{2V)XdHE<2QMmEjFYKE2 zE+scvr?c?Lt0s;HAq$OeW4Z>r_6z3=^2{=|G8lYC93qp&uA)nmSOJof`AZEOD^=Em zdCj$d{Kh0Cr(rYO%$tyCo)aCV!}9`z^SSfgJ(=!CI@Xm6Z9!!p(W26|*IcXjl;D;l zFA?8SS#;aZ$_I^TEkVJT^b3D5X&G#0x#j}m)xy|e(@l};KOrGPFWk~kuTkl^!QGQ5 zb@AI{-Och%#a4u^b0Hw^k-3CI0h2IDp)J=zVAc!IoHfhJp-(N(IrABF6A*tZ?-fsD zWQ5w1_q@lqf*4FI*8r#fwM>Vf!g7A`eNlu6efMrGFUQ4W!5QOp)8?G75Rf>_yp*q- zyF5Pk?M7E$cmDwm-Rq*|{ykVWPa;S;9o!pkINMyrYAHDetmKK8=az3$$Ry7UgofnC zWxdD?4E)6II&sdu7XxA?g`LWDvu{&*ioZR!={o4JSWp+}j@J#(0cq443YDb?bWFK9 z3_9c*Gl)L)G7{cM6q5?UXDMfl=6CRl_E8TZsDa%~1fcSvxq`~qTD@61TwGoHrA67v zhlf3GdcW<1As-c!N29u}I6Eb6CPb_3+S7FF{H;5KHG5INK7-Vlxh6JjW|J84$6QgS zL4Bt2v+7*Aq+9ankhIk}EK+D8G37!zwA=T^#50y^|BsA|e2vfLlbt7zfemd;0Vqm4 zsP}21HUgFDf}L9@ZDi+OO;iQFfN@VMrx4|ApF6uY%QFpAYsVfQ*?AIEUf`PU$CoF6 z0$F9xku=U!s;JJQ{Fz>8f6m}gdIo)*m~j!G0h&PSwUNWEw_tCpgI<8Q7HdNcfajr8W(6+4m-o)lo11GQ(9JfgmU!YEn-TK`7^(WyAK?wLvqtuyxmycjFsA zTUw`iX05yz6!q24AbYkjnM2_TLiaesD=K)-X@i#z<)<%1z2?UzOQlSiL&B4Yg}+6B zd8*pfKaAcvQaM-WXWUw^DT9RI1Y)H>o{uoQd)Tdi*2y_y4f0e`18t!o#w_3!fUVI# zeFjo1V1KTUe9MN{B2e@Bd5i6Zhd&w!M#6vt=AS~ zc74NB)Q5r&+pq(%4yRaqGHGV216~YLtLoP95wz&UMTb%^h!us9HAX>@ftm;c=C|z^ z*%iCiv~|pycb^%puWEs)nx2znk&~gt!HD+i4wm}5Qzy~l!g%N|Z+$z+uqr=G1$GDnK%oBM1 zkauYY_x7PWpLQI#Epvn;vfr;oQo;D*@$N2T=6tMe&tp1jNQOb%jBwWZ5+u_{oa93K zmanO~kp}dpL5!8fTH78kv70+w{3SO@WrfJnCY0v)A=Xr~FN$ z+e_wS+EBS&0L+b)0!nnoJlV|CE_glg(rYRdGxKj|Q>SLoPYKZ-L_7$c02PlvFS<#e zYVq+sP;(!JD#-lY0s~o85f#-aK zkHef`Co>xt+R4-%#0TcMhXJDp#i^5|L_g%=l$;CorOqI*iAj?|uYzAEB(ol%5$jq*(JkpTh=jznHjiE~xBR8+j> zPOTR+Vp{{#bTeJk%^&XX?XGp)TTbPt?j9;hqU_m4nuAPV6B}a;3EI?oQg21Q54(#3 zbmKMz)Eq2-zx#}JF%o=u8hjLQoz2RI#2^WT1_jhNeNI>fuip;YRUjiK!l`3k1 zBGtUWT~omK9ohP}sI51UBEV-D`zx^?hrjCJMWGMsZN8#R6`QIh`&HFUQL?f1;Fr0! zpC!X+?cAw3N1GCPuo~xUwbjB5TL-Ti@6~MEMODxFIntpv2X$g{0zzkYX2dCWP zlSnT{1&wANi~@`ZF?lvf1zctw!bqUiz}(8bw9(3=__;4itlaG!28@Ed!a_{~sbu~Z z#Og2_*K;jC9;Z_i3}azIscvIO5LT`gT&086_3As}wN+>Sc&`VRB25!k`l`JuUEhpp zG{--+Le9uUBA3}V)-H3~t~L18Rw4-72A)2ZXeC)T(PIJ7pm`Z(q|W_|>M9a@yS2dC zg?B~l(53s%wEF&yt@-E??`r8)J+lJEZb_Q3qvY6!gL99cLM-gBu4mdlPTWQ?&MLY5 z@ih?X4Vc0Xbm4e1%{-$fz=1YuCWXZTY}t3VuP7*7{#y{)(;r+=nuD?&S#nTml{~28 zxM1O2zPVG6OFT=|YChM4ue*BYnxn}oWoo(2405NC@`qc+(-X}AVeV*0sx1ASli=x( zAp)Wv+#)!EWDnx>H3~{p`|>s#TJ47aAAyy{+2(x`chezOc4 z-$+<(IHxITzWFcHs}JsJgySaAKu6I^QSlTNw0W0eps+qRJ@^^(k7Sj+wQo@4Os6$* zW3a)pqZpKx{q(pc(1ggCZ(&@?l83takql?vp8bK!dc{IMg? zLf2_5cbOKs(T-;-b2t}8+x8K>-$X2AjW(p0Hg@xW5VXF}W1<%x{MO2fzzM~eYT#}- z8E66H&a2Kln!we^li&7t;$cHS3kc|e62HoSp7pP88lFkCeO8@z%RPufy|rpZd!LER zCVYA zoy5hy`E3n`odB)0f>VnUcJS1KD80qxa7`XYI38{$xqFf$3|w4US<@+tVk2nDv40J( z5LXP_C85(WG@mc-QfIQo%vM=r9Pi@y~w9#4@RZ7Wya z1T=w4QelC!);;t++$mtriARu;9(1p_k~$o%YrVhx=Ps*z73n!#q&B1pcPDLQV^8?W8BKGe3HLBIC(MUfBFuJWmpuJ8^K2ck#ncU)j)N~ zU%HzOA=!f0!-)ZQLE0O90clAo_9Qrd*@h&lfxKEvubtQZ{ysAz|LTLiGts~cq=Ser zbd~i6+|!Hj<%yElypJxt0oLa{OSjFWLpf|hTcq)Cx*wsp+#zfoj4V8odgy$UXw?4I zzl3ts%6Y$F&J{lYIoN(#qM<}$#XB~~>#tVLdavo;A$0fg`hA!`Zj?yIyy{WG*2eQYobT^7NF^wSL7^oNsMAZ)RDD`FX{^?FGgP zzS}P_pJ`|)TfS4q84mAu*ab`yQEg0Ka(VwFm5t|ABs0@3^kIazy&qI1;ry;)K>#Cn zJfpjX(Ra(RHg+|$=Jn$<#V{!cJk&v7_H2w*XrH?Osx%2OdGM~OOa6B_PB7fTptyYG z1jmS(NI2ea=e70SNl#5&>g#y1?{_W68Q!zPbc}@Oef_VbOh@t#o0@r^>~+#TJ8gJ= zYRM;_!SgR0&W6xa|C6H1FBq5tbDO^gKb!rW%nMu^q|AM`i@pTTa=(f6eoW1ok%MS# zTUPV%2YARufV&+TcIaxgvCgpDew$`SlG5@JQ}pD`TN>$D^$~DZ*w5If|Mto{3;~x6 z87sOK!)21o$p)DYNz@003lQ{=;PkXe-TsYxs{ak>LYW9KGlqML1Ik%=xB!@U)!dz)H zua#Gyy1N)ddlLJ(Q=c!kuXj6+Tcd;4RI*Li!F|){C=%{kA5aB~-$XMyS;hK=rQi=UALCWE{TcGwV+Q%R`ML!7v0iq;7#hG!GX zkw-4dqkJ6RocH7f& zUqzGLei;Ic{lEq%O5f3!;ELPZqlR7i^+KrK<*wb6thIZP_KEE=ag{7ga7 z|RSJ<2hWpXiXZw#05HI!)9}#*KR}R}X7>JL8)BN>v}v zP|EbQ#NGV_HTr^QG&6PD@^ z)?Y5r^SrrVYUUtLk3Y{`tBbnLu~W|45!ZQJsXf?hD0sgWj;QX`ihWYR2KJ+&XV<`Y z07)BPv(s95H~#CK6~$UmG#THHv%4DSHdIv%;4jfl-yeY3oE9UHM%R4wr$*=NH%njU zC8Xjaoo+_CBZ!hm?`e6jF0&a`qKm?2TO6~?_EuZ-IEybnYn#6twVW>ygNY`?f#yq( zVWa&Y-+hLi58Tab-rT)2PCCVp&u6}44R4CL3@IhwQx1MGwgmnT82*A9F7oPHx|QQM zf&7fFO8FW8ITFU>L2sB@?Bxli&1=MXPPo`MjR4EbB zChIwaH=63Zq5OrjDx88}7peE}R@Lz_YD6fWd+nR7UYPVAwMe{TK!#KALd)ZlXtU;lQ#?H{2e@{GZzWla(H;Ky>G2AKqK0ThAe7U9 zpr(qOghxZ|VRLJi^4reRbPVXu)Z-&c9Rh1)G@q02s2}6{MzG|+~*P6 zxt0t3$y2I@bZWY%FDd98T+dpzhXb)#CW?Ozc|3wFwc!@Opr!t9)sA+ILd%Uehc4Bj ziDY>7&u~xO%oL-0xP{89QA`<9aH-nf6Wk}{h^|%gFYVIRLZ8#F(PkJK^Ps^; zF{Pbpo%Wen z4VfJ(8~?fQOdAlT9SI;S5sW4?`K(6*3!Sw|YITgT&AGEWdRF0a*ULH z4;LPWj$u)mhL#19Kqkw$8fu)d%!7cc?;Fc=L5bG4-N7^{YA3~69;=VqTSk$dS--|e z2YLs-tkDo4tO1?%c3l71+QT{=-s?T)%~^#_m7CJ3O&p0KNGI*m#>7E}2dc?XWi}Ke*xjY$LFvt>gnh)1rH50+U z&4Hw}>T=?-rJGJ2hqt^8er(#7FO+S{j^p()#j>OGG8me+oM+D*Dv)pgNW*V)hyXIj zOk#~$f_lnX%YIlwOry0Rx{s79c)xpLJ3h_RQ zwKjk79G-qva-SX$fBbC3VAt&;g;q1Y4fzA^EA72@RC{ueXz}YxQ-FhoC6XXs4c9V&rD4Vcy`k4_3wFvz9RU9b^Ptz z2Ec?{KA*26#zwCjhGnDmq~=7vg<(KVT5kTsQ>2rox8iBNOOCQp_BD9gF2(4MtdTDI z{<=u!CwO?@+S%KPKQU)OZxRVdBE~x^!^K_5*fahU3mHRaR!NdS*H7~XNR;-PQ}g8J z_d!yB-YEx4;GsarA3#jnp;!vX;BUMXPG3lBJouKp@e4n~yu9h$$IS4j6-T`CYrF!l z8s6WDD|#PNNuiL&fuqtczNBiOK`Tai%LUx4V2lY<$NkTaR`g;y$pJ5fjUY|PoD5O)V2OdEg!4C(k-&__pNU79}kWfcj5}lq*q_CDaB7^%_-w18bkq{`a`kW=33GzvPLH= z;D^k39bZ3B_728q!Q%&=xImTBJ)I^uFnDb3ztfz;;`JQl;z%*h&8#D)lw%WE?K4ac z*{@4mt9xKn_elnigF4YRKDiUUNF9yP={4!)IDPLU`8^x^Lv@i@C*c3H?N$_1 zQalE(s9IUl9O_9(FZE}&r@a%8zwi3wDtDy}b@avH#;vQSvEdGZIAl=RZH!qd<$}ZlpVR>-p;9&|eN6 zxsl%zga3NXuAgVL>d{|#8pvbYN-Gm%`}OI)^DI$yFPcd#5<`LP6x&C9EgtVMu~x#`UjM9 zPIosaYbM*Hi3UV@lEyURJAeBYN4ASFE6_OdlP9H!N&k%e62+F1S?#rW;T_whN-yIOsg%NOi9r7`(YFLmZ16qk{xxTCiKeGPF(;Y-vf zivE^OZu<1dv6(aa26-aV6=}2G%x^!uLshNvn`<(X-rh-iRC{WEKIi{c4mzgFN5eBf zGThpjLGMe8_Jo$-Nc*5Em%dTeXiDJV>3pG}b!$5^+gZeH%l4|{6u>6)HmPufS z=lxvy-yt{Q17^=8r-IANY8zbczLEM7v1Y@KDWM{ANc(*siQ@Wv*qTnBtR^_yaHPLi zmMP( zg?T(`Xz*PlY~HEg3a&P*V-Ni>KdfHOwOR1t`%%U>+$~~e?p6{*l(fyMrtmTCYxjzc zFApC*-2ZA5;s2*iyhF8#o4H&>_Kt26La;0QgSBdK8WtTIu6K`3d>Ynk(h*`oYCm)eXg-znb_uA4e4zb$Z zdg9A7k?9?m#`i-HcZ9NsJgZtT58HGoOIAuP6e0P@T@xTZcp}SyE#-U?knK-m{S6xJ z9rapKaK&T(YM_wTe(P0uIM6qR>i&?OUUTttc5iVYE0rcmgsX?JtOO9%7SF_7jL`^CfX!bUI`|Lc!oI0@?yfD znn@HOXQUZKhih?RC~`W-CB9mm$*HTz(O98?r@KsLpK@{6t73V{usuWj6mO-UUK z9$adHE);Qq-SJdK9RYvwoi;mqq!}~056Kzb4`NXls{%e9c;9wqgsO7n6t?+#lzf{S zp+%{3KJI%(Er;zOa{u|#aOiM?lrJSb5zxJBHkW9xNiCXXt*ltorL%{;8JDhPRZ`W_ zy)mOvGI)I!i$HRtp>XO8Y_Ontk)i7MrBrQNjgWf-A<(qvB7hq71m*2`e<=BZw2@%J z+4gBr>cik=m&qkglEAd)%bC{bzeUZVv;g7N^R!Sa?)T8o@UuJ$Uzl0u8U;`Bm~C9e z=~WpQMbe`^j(~A~TlEL^kHJxWWEny)VvF+0sVAHJKHiOzcjGY*Fd*>JI?gXBFhnsk z@%8Xl>~iT{?PtleZQ9P?`rJh{yYWmPO!C~c;I`UI4zpa$Xa0s3o46G~%2Ae9bCIt1 zU8H;7R%Hl*$LaDJdz#lpP_aQEZ2EDHLcA(50@PGT&lwe>a8Ch*wlbDnNA(9_JKy9WXI)ztsGfuE1 zPvtitr!1AAYrf?_64R7}pGekK$xeZe0yAjtbG|+~m(`iQT%FTF=PCS7A3veRZh2f@ z=(7WB+0G^))nz}+bUdAr)}h9t7;hE)4ble0wUg0Hdj*dl!mmMlx|6m4RPncbA;dy*-kLCF!9 z5H^0kGz0o=ysTdV4t^u7Tw{NDa{(bxa`W=ztPPT!@@R zAS$AQD@WuLx3-&YLJ8;DwPK^s)Be8~j%lnN@%&ser}GbP5QK-}*Gd4lc`8Td7x(T* zO$$x?%yB=SY|L&zIsJ?oFNl9acG{z`&(YDL#S1KegAY)Y(?bZ0VcJEPbo;O++U2gu z`6~C*$Xn&`XPJhWHlPl5tnxZwOnFb#BA(4)Lk@u~!t*5_L!0D58N!93bf$ zsPHYc0JkRUQY%k&3@#Py4&cL#)ET_Ecx#Dyc$vtKOf=n*XqWdyMcuBocN4R|TfFOQ zCH@AFJsfee>%9e$hha)CII4Y>Qp)H8oTTs+YVF8;{y4?ex2^+sAhOvIy&ky^uxo(( zkGcdsgpAD!h<6E+<-Y6C)ELMs@JxwD1X3%duk-dGjnkBXN`yZAwzp_vTrK8tAI+M= z%o>nX7yGz$2u9->(>S~JKL^GY1^_&Co$*dv2(Mk|tN+4Dic=hP<3qi;ZSXLW-CO^z zSK<~VGq0NmJjtKO00;YOKlYE&AP;v*Ndzpo5fLMwQNNw*p>wPem|-m{QkCa_fS=$+ zleZTB_(~zRPO?VZvBbctdlii%)b!C+vV!SWxj7_X5f*wT2JZ7orAIcbUp z9Sgd#_2{XK8V1{8WYzQJ6R2S(<{TNTkQZp4f!|IJcyFkxHJEVEUzJ7BSdb7tXfHOp z8|9qi8GEgu((=mC`Gg`Ev-?>g)h$TI`I6jQ_g*Btx2DBsz26W{g3^PRMlf$@^~<=g zeUkQ}Q3gdI!T@v&ZuQ{T5%}0JVmUaeg#4NvlcQM0zN>_B>?voxZ83e&O=6_(5~gf7 z%Hx|uq1M3}1_(l*SuL; z7(te=q(CR!E3{LywFLUct>5Z(^g|A8%`qfr&!1v8ZWy8PuQ(K}AiDPraQ*%fYF2|e z-?R(K_U+ex_pX3#p;pIUjypY?v!;)zkFUXRd{gUi*L1fs+R}&jG>S~-3GOt}-zNd@ zJYNdRmbW%L6@Crv`*Xw!7@d%ecXq!L`9S5zF9_-|dhf=Km(#^IkF^;SR{kzFgmR-= z9sK$`9rd$!GzYuMAW}_2gr7Dz-&OOTQ#i~)E6zbo*8Uj|tpw}16Z!Z_@sehR=*PrT z`HQ3iq%jZH`@~RT^vM_@a;7+FLQN-W*9Ui|4%D$rwypKI$MW6A=((nFX4I}3CF~MW z-DLKgm7g2kE|w>Jv4saq_LtoiW4n4UE_t*{y1xS`f(bj@O|>KKJec*mTOQ=Qzcm1h zaR1$eGGQO`7}w~mxTl_GF9K}@wr>g`DMku>JY|Hpf=jx2yI?Ha0lR5Nj^p`*5>q$a zu%^}grC(vn)z)~mwW7!oQasWs0%`VCM%)*a;)&14aoKcOZcv-N`6wkUv>q@fuEmPy zdF~*%z164vVs=3v*THA0g9)&^G3d>9sQpspY)L!C+ciSKJN9XewyNn3l1PH7sT6S7 z#l_w-BV-cdQ!mI>pK-G6Y#R2h=Eb8i1*wKr2m0`jy?ub0(S0$v0j{$70CuTrFzfv% z{0wWH99i`<&d5E}F-<+>u9C23B};Ql;&S}h`&@d_=0?1x*e5p)Gc#9BoHhOXvWQgE zXysegb!O*D;>$WLn&E@VB)l_hp4t!znU%9dInP^-?whlra=?8+IbnR#bie! z3Bz-!)w{p#^xMNFzZmFS1`yS$e#&+kOXi}`uQ0i87)amF#aoO3_ zN`vN+(RA;#K4TZ5HcZtM+PMqef=Z)lr@^;B7}#<=3H5NV2Q~m&giwG<0?^K68_lAp zTRT!$Vq8187Ep!}YFhp}Kns?w zRM4~7gNtH)hR?lLlOmDn681cT_)9^6X)0-#0}PCYMrl|2V}@wR&DHW?!AvgVd8cSx z*6qBX{pC#&UwtPQUiPV`6pH8s-*-!VECK~ZfdmDgo#FT!P2nYgoi$pf-tDk+c3?

_?Zvf{|)dP7?jBFwZ6CMy*mTynGJow8YI1N^5m~;?xSKvwjeL8 zf@aKsP}h|7r+5Z@{Lc-bdOoBzZT2&kLe$mK5?wzsrU7aJVV_|`(k>eZ0U4{)y8cu2 z|DGF}Z-gnEYoaU`H-~qrk{;Y3jPtGU6oYTKi!DZL?(9=D?(U7F+*ng|Zrmo4KH!9~ z0o*0N9XDAb%*x(`@QnXZ%Tl!NoF04ieMs3IE74bnSo3g%120| zx6leFxJShVS_%l7{KDlSSa!{bSl&wVql3$$*p4127Q(Y3(%~!qTj-kcfQHy6kW`T@!|!}@S0mw$j7^*Vm@_*zej*xec^iy=$w4XJsyC-n8k0<5Q_D+c z33ywWxB2Qyrc;E7*Xor$gmY(AMRPi`FONDQmM+#VRes&?dH2()9hl8F4*k71OHaoa zEg@jA<^K1GoSOc6k2^~Zy@=0j`oZa$2Tlqnt*Hk^S)8p*Oe#Zjp4>1c;GsYki6*^v zpJ|s`TBnP3;qF0BmBP9=V!c6>4eN2HaxFvd+Zh@E4=I0d&-c#>kY`oK&xel10*bM* zcUxm3dR6%Zd9v1D++R7(12GzN9H!a)mR%m--H`qVk{gq{6m#2pVw6LRL!sj~Z`5*W z_r}D2P?-74tYaGQ=H#=B4)Z%<%l_wNOY52UiyyE0rntW78i_Z8^|*8qksnrz)lI$% zF28T@+XEV2O_|#O-wGSVl6jGkGjnc~g1#DDYi{LEa9^rqvD~k?&zAmcO5VdcAvl^Q zz!KSdxK!}1j$&Bl4JIc|(s4r`oQfXLBpV39UD>rTIZ4D9qdK58QUds)IPz!M^@*$P z+d23^=lIcPA_g87{?=4$pwIAPqPKN4Ma|?K{(gVu?CIg$tX)ziJLE{(;&Ej1lvANc zqzpmjX(whv$JuMzQ~mviylP1V&Z4%kG=UYSx9mgHOzO%7cearD8y7S56kbsRqfyAKdli`oREes11p;`kJ!va+vF*R z2Ok$}gNeS}En!H1%at+gjRNA6Uyl$N6_2V8_bWhemJD%Ecjg;_lx}|r*!ST%nr<2A+<0B$%3g~-Y2_e$nYt`&F zz{%tCE{uzR@GKxCl}G>Lch)vlx-YjT@7V!7!O(m?8Gmn~JaZl*__S&unD!$HLXhM4 zKaI`6oYj&ZyHVfemTUM953K?dyDTp1V3_|^92)*larg^W9C9e)z1a+b+WI<1dS=G| z68rA+8^MXSgCSG+HmXHihU*S->DHcT+vkKxogvbI$ZV65ODsVu%X&ADwWp}N+P(Z8sJ19_T~wcc_#mbzd45Et1SD#=$>Yg;HT54vr)5d zFA`Rp55!%3&=%ybGT$rwlEtXGkYVBHdnXHddA?f{E{JTK#Oia2s`jR!rSLCnZ+q^C zqF1hCk4(t&c-+j)X~AVuywiC}+-b2p zrGX}be5%55+>_oP#O7iLYvsg|!Gx>o$G*UpN6R0bAA>R#?Ap~c#GjhEx>+Z1sshq+ z99oba`9Im6PZhTORg;lU1?dIT%-B4)pJvq8zK1~=^ZN!3x)=)`n-@&V?+oQHF`&?L z#e3+IeD3D#y{uz#w{*jfp}EpQf*E?{MAKM~`wMK{9E9^aS8IzQWZk<5=*_ zsTv`x9baO}P0e@~82)?Q8K4!QUhgwze>Urzm!qZv{aR|@ZRSl(Ucg+kB}|cuMthkkos8a;0-KkTsV>Tv_!-r`)5jVhkv-bv773-3nv*5hJd25a?i+4%b)UbgY% z#E6H0lJEM@$@TpVf>Zy^i8Yvy(4ids@+Nmr`N+9H9D z1I<$77Rrz<|J6@d0{36rnDNywU1Wb)UD~^17^6u@^&B!z^O3Je4@}7o9Qg4qnj+xB z?1D$e>vAT*kvz_T{|3?bhGr>1Nk7fDrEC6SeNLweE|F(dyWqcTxkxJUl`!S*{H=vc z^x4AauO1!AA-F_Gmmy#gV3u1iISU+oAZE^)TcngTpIzQDYmQpd;zzPc6iv3C7n@IQ zW=5WgG1sli)1;1K8Is!}PU1)_y(TI74jWCDQZ8ggDGObJD)@(V)H?eAUS3V@Lbk zf(oY=PLM5p(V^dUQ|f1C=8ozwer-b4{J*<(>OPP6mar+Xs(OFhV8Tx7D#n+aaPtx> zuz@Bzp|hzw_o2KR@-OMrla7MVsa$$EE*A)LTZi!9`oUp%hvu z(&Fwe#hn1fo#GPQ-Gf_kcY?dSyR|@Zcc-|!XH`qXu>v-1@34BzUw7?+pR>0%Ut2MyU@;Jx=2* zCxa@ogxrQ@S7y(rq$*EB4hO%OYmFOA4gain4yy};KZoxxMo(WLRba!Wcm0$Ao$6)6 z7jAs>nh63M>&vJ8=0fj8p@f%{FjfS!x*`)qI6lnIoc}zD^TyX0GD5X~F&WB#P$qOw z#W1r-N4$|iWK^G`Sn^6yIYE#;5_;yRhxJ?iqjVe8-)D!llK7hWj_ODhXWgtxkX2|t zq75CVkJJ+4PuW(FP1+JFahn;hI!LZ&4Os`$kvCt}+3eFr51Q(QInH|%Jpd&!uDWTn zNA3ALrSO)S`rtE&VEqRL{F94O{qBos_vwNWA$-}?@HbcT(&Ps2`P#h63s;@D1iGIO zf6PIh4)F+7qV##s`r~^t3lw9uFu(k*1{~Tj>dT4S{G>>jhq}meQ|LM5`|Kw0a~)3j zW@I`G_rnLkVypMpm1FxpWOl}S7|#%!ZdaAjk|p<|{ciO#Bj3egmV!`Iz0!fQ^1Oqs zhugwO`T@@AP{2tbuM!2P$AP1Jv)~F=tvS?}1De z?mop?{G-zJtN*kgjxDx2)B7f=#N@4Bn}b#}g3v$nRwsP#q;;AXi_yqxok)z(MoW75 zxrL&Wp%9qX3j16a27alDJ%7$BornNix$|d#oixcwpjx+ZZmEnnL7n+(Oh~64gm1I! z2A9U&`NcI5)U-lkP4}r#_`7gz5-iKo-^9b6O+nGciMOY$NeUYl)^dJ+{qM+<~+=UB51jjvm zch3|B+KK}^9sOzvtPw(h5A1|3gn2%;1o&THJXUVp4=hcIsre&%ZNzVqv%o@BeI|#& zXqi0Cepk9)sjUY|wYbFQTV@y*l_z_z+9ltVEj@3&(M0-Mk|GX`qBT93*q9q}8tbE2EMMR<+rb;7|;!7+d9r-A|6DS>7V(o^{?Jo~y%X#58A6h?-^41UaQu=r8T}}KDfalxE!zk5J$nuQB zRXh1QGES$F&00z;L@jl#WkaaDcMPykSUR0j) zc^MV6=^mMfaJx44u+t-)7b$y({X8k3+xdjv{jIZAugi#5?U*V>Kxx3!T=Hn_APs9K z^>Xb%u_P|ZEOPR3fs^0^%!CkuM8*)6OG{OECLPhecfFJO%HFMCJJg;1nG(4n)65q8 z$Z+qWS_TWvn`D?UR+OAh<|Z0+mrGz~AhQ1#w^J-avcna`JW z5>EWjgOKWAoyApqjKLZj5A5d_1D(*j0KJ%`SERLMI80xIM*5XX7S@W$D&~ zdR-?F+R~Nkd&sQGS)=+1$9)}rGtbFI<_uxwjpue{>+(MVu>-b~vp z8AY=k(VW$nr;zYxt$N099-EHq8Y^AbXM)r45Rhl)cK*Kxp$9u-4d|q^&9!*bOL>I4g@+_SjazwsiJ^Y@IMwu%aWHR80`oxb(I@Yg|Ta=QBro<}4Ml&$mK~AFZmB zffUGW*a+Ky0xo8TM4o0-02x^~V}N&mp8ZxwUfd~7dU_%JvNVM(FHp%>?^?x<&Y*G& z%yVR;&#?W1fRz`X>`2Sd%K|O|kMm<`ic?3Ji)j5#IkAoc|AqLPOo??fju-H32*;~g zGNm_rWf>KA@3pzh6%oCIUu*KViFn=knc}Jr>^ARPZ{v(|6?>dE9tP7o(tsA%E-p)c z#gV-B)E|FiA5D)!rmqndi2H0V#QzK9c=RrEn`?75BN`%}{?*nf>r*D$iC1i24$c4c zTnymJ`>!^y5E8bQG}dz$EeyvY)Ki^Eo$2z{+B>OyI$OA>*-kET7CDe$AbNTfod4dJ zuhHjr9mS`D!`EQ5^!;6wDE)XNT@=r@JW}gPe^!qKvA3)FQ8zqnq1XaLP<*|Ajm};b z^gTbO;JQ%DFzD6YD_W|F-N9u0Ei@)lePeC?@ZvQsl&P4Pp%vbYxjgKaD6MNPk;js# z8+3C)#r((^GkV}0sFlu>b+ zy-R7N?Y_Xpg>Ng$$$KT>{{{$i_pAT{ z8gdv2B@q5y{(k?c)qs}B0|m;SlD?)jMDNv{@kUWhZA5dKa3~MI#J0)kig=YH=yk9) zxb~3x{aORUv3U=+`|v!P_T+6Z1cs<(Nkr4kFx?7_0k;vS&c#OO3GBYkvcki*eKN33 z%VlY2CJnVG$CK8q?^*Wrh^jknjdag=&Td+B(dO^dF&|eb7ov5l&7Fp}?9Gn|WuXod z!)y!=Y>J}(oTZxm?1^BWCz)uA)Mds5#R$QLgRpt56_}m_`u*+BWcAQ$wuCMBRey`` zc9GE8M+9fmX!(1%9qtT!Uf#11CBM{#6dqPSmYsSS#netr*L!vN zef(d^Ve|hahc}qyV7BLC%%l&4NowdC8|c7L4n`oDxBzS6G&F$ypl_rN!#x-qni?2r z!J061OpNqlh%0L(K={dWX?OT@gjWkyOB4A7rjqnodCzScERt16!?KW0e&u1NGxaq6 z&3L9{XrM|^Kr97KNj^FoI+a!p`G7;IQ)^#dNFOFDBKE5~;;WbopJay3wwetDDI;fe z%uxhR`Pz)TO;;Z9#qi@V-j?#vGar=hk1 z&(YKKF-jlbA1NCg%Rp5l?R1m#oJqJVo_m1^((!UhEu1uosQ3SK`vdq$96uL<(S-Sg z{n1m6H2uRp+!)BPz)U0H1poh51 zxBc&C3N&7VZx3vuYEj)XHGZUi2?r~M*_?%8lay^up>8K{97AC)cbof*9+sH&nS*N( zGvh>Zuol}hcipFr*gq{bV{;$t*mnM|Z}dl^^rS>Hl9iOKva6=Yhnv>_)g!&saLMv4VS@uKF#>C?>Tt)- zUEt!_FfP&xQ@qRxtS1n&kpB9wYhJmm0B0|s9+Ei#+hG6wsq}VHf-ia5oGcr>8M~Kcmw~c-Z8w&f zm(+C4zOY-P6TkQQKhJ~8{igL28#|J>G?#;1Ld%dNrX6OiLl3-yo@9aQ_gqG|Uyutz z_&g&ZjY%=^)t_$7UTw$5d3W#+=%Qkc!biR))* z^!~&aU`CWQb{t74Y`;8ivU*IXn8olbe)bovaoREk0AZQ3l}4ooDaZ2Klk?2a=0P+xpGUroRW5grx?!|26#CMEctk^TLhF0;f&MINkJR z0iUzbC-ONd&QHs!OR;pKMr!aHuVCJjVh9K33g}`>P{2}t|8FOR0r-ravTyfNgQCi! zk_Z85&^q00H1@c#e1Wv}Hp(z*zaEjyEk1lE@SCLi+nd`x(XH5Y*_6d&k7KqX|5uqV zA*v-kL5rb|=?I9x)4SrtE#PGyXJV6+J-YTEl61Io_B?uOf2ks=oz3kiG|9rwg&}KM z9dtRYb97d^c!1((u+boAdk;@N{+=SGpsJ;YRvLb7 zJa3L;fevV=v@;{p+dQ%Tm3p5Pk|$ka7z(gH-I+g1OBG$EmA3+K;bI`{?2x2p&m{Wj z9I}7w)D^(H&&+;L=!M%41}jx#ziz5hHk3EI1ube5I!_5p((n8^q%(uu<_(C{5Ep(EMFj{+^U734q! zp+6)P_gd}Zmql}nGHm3gti6!Dc|ePu{*Z!ziBo4xj|UN%z9z=M<(Z`R<7$m266d~F z+y{4$IB^#D7MtN2QmO(ePk(?FWX)~?BSv)ZkcdN&W3xB&sbLTb213}|bK~sUd%eQl znXQ_<8*kgt!j?pq>Or#SRpwyuQ01X9%yKy{IKpS{+>+N-wKPam_M6%lZN|7($P>b0 zcQy_#((*~lCAEo*yLl{M!+*pFg@pf%0|2x*w&`g-KP|=C9;Hy` z?eWsch_+9Ek4BiLUmhhz3tY$Kr9yHdma19}Gn%QM8UguiU?9;!w0fs^8*$~_y9@}dy7GAXt0{?x`rpY0B|E+nEsCS{yFGIQOxm#|4JoZp< z_`!8z{lWYjm8_fDc0wVg3PT=Mz#1d6&6rWYr1vM4Z+XKcWDbs(cLk=XV?m!_?;zPN zKs2CW2jmTf__1gB3hq79R|`J5X zI*&+c+&=x%38JgmE%epLY4J;44r`t0PrL=2Fe1t*%pYmoq;-4l?OuDnu*sU+mbGmB z=*azKRG%i(c>1VVaWUbfl<)Y#XO2=TQ!6N$#xb$}9;1c`v7bu4wA>76K3$^V8mZ@) z(tp?c>EK6z-am)HGcU4~_|>*>Ewr#Z|f*1h8gs3EzaFiTq4hH^%k6`J>i zr@GcaD;ZNA+>(;|fFSGR8jf|}Qp4~)*Pu|rsx^Xo#v;0pfy}`Hd zlGGSnvS=Md1?cNPIjU(mnZ|vcf&-glD(2g|#LR}QLt-LYi@7M~RMGb1bTL)@;ZV@x^=WjR%j4lyi0krLjw8x!T+WD-wx`}9Atw{>og{r5GUncZ9RRR{Q6%u_S#=8DchcM^aTK$o zfku)?Y-p0-(nOLr!Pb+TcCqPCXFtit{nhJx>w#b8p$K{ElmbP?X`o-mRz|0*(`DtB z&1I^a`5L^=rVHY@pMh;lRb$8hc9XC^%zz_CH?dsTZPSN++V1vU@8jD|sN|VTU2Dcv zDjgf)jt4j8B~x}et%|rH;)l)s4^DPhfvKfoSRXiWq*c4A_!1( zrWM6+vOKi~!!A>!FjgBG+<$D~?upf}2I1B1bLYQ#jyMQl?FN)JsN@-N_EW%Oj>?V= zbyBn|upFsRP4=>!j#)p->f||9iu^2? zGGNo@zt4ZKHTC+5|T$nE)c z1gI7>PpH0Rb;cB<2+{j~_WiSB^8`#(p|O|`F0LeU zu}ONOgrN0$=1wstJ*5OhUQsKXkL26jf{of+0(S;rjzeRa$2;(Fe_H zuDn2niQuCbK}mJv(8PV}%Aby-K`tkUm%)o!kx%SFSc)#IM3%nL1?o6PXV;S)T69RB zoxMl{yz#s5Pc=`INo>Uq({B5-e^&xX1Z~r;$W~lFsr0+cHk3`CHz{Z_g&OQIo`s-i zr7f=rdBDH87-K>9+H|JpQ#2|P+2ze%)Tq;jLw{aP1(d{Qaqr_pzc9cewe?CNq3?eM zh`y73LVtOh{|)V#9)x=LD^f>`cbJ9NbLJXVNZQOYf_a4#eDb#3y$j=*tz$WGu4DI` zIFhuESd9l$oj9X>SoO4p-kJ zG)Aw`r;jc)WyW`|W)2m!Iat`xCM^URgIo_TB^U*u0yf=kU1rKF*r#oSi6yV^Ono?9 z{9Z?***&uGXjKO%KBarnnEgcwVqfg3Bx#sXVWx6K{{mXo#uLShdUcbGO*B=)=)HXD zo&sTrZHpgv^}QyQYS~b?+b>DO?8s#z;mR_ZuwjQ#K?kk*@#Q{vvFJi#p|YCM_42#R ztfi}{zL1TOejqCLa^SROxQmY66D!kkBni`S`5UaGN^)!Ko9pHLnmozVUriD!OoG6uo&l~Oqi;PD9!M%&!LmTxH4hz3PS%?Y#u~8 z_dAT-vi{uq`-S=-Thkq{8&>Evg&;w4NwCjbPG+%{@om{=)Kkn;tzr)O+2enP8CWIN zU%aZ^W!`Ja^H5?zLeh)j3b>Oo9FNx7_-YUK&`+i>mZhs*&pHf?qSzw#4{#xVwb?s6P3xRYBG zZ(j8tE#;LeBM0IN2Rcvxq6(^@{Z6#VI1C31s$0J^Rnx z4QyGU&9II6Fyi@oY<4no z`20A1HgL1Ws-K`h0xtG2lEdr+n;;ksT)RyHFAtgM@gr^Vhk7_(*|(y=u0V&w^=r$; zW*Pp&(e8IJq(N?0pu#V2I72`#4GhNbpkMeRJmX{kur4crKV$|%{a{f^Z%UuKn#Nxd z4>nR4F6VL(Fq*I)dFiQ}l|_?ikXRm)_A3)sq+#-paIKTYXRCfV6Y_CBdGJYDIiZG& z)wj1r>K^?_=BqBo5IJG0<028BlzD04!?wwI8_vfFSyZf$vidP$@=0l~N1@A}$3+sz zcNC%3Q**%4=d8Qa;SXO#1#IJ1%B z>l(hlF;BL`Ec%vBk(l68-0uDCU9Lpn!waVniJNlG^loFq3q}^y9K|62NcK%c1-}}t zmUi9r+5Tp9v$M#}tyJBl8r7_3VA*ct`poyVcmfx6&Va8dEEgFlIApxKxF;9&;>xV; z&^sX*wo6}Ot->H+jgd$;IFCURfc*KzHE#FL=5)4Y_?*QyOue>5 zPT?y>=*$E-Os`Zm(@NJ^=f2zVc_Ve-8A|d4kxOdiop%1uDSNw^(FSx4 zJ2wLTIw=(OAeb@XWTlP^0YYX{DhnF|dd@FWCNMoGwY%_aHA6S0g>$bgqvw^}i$IhdGHDW2Oe%Z5lqjpUv9Nz5&wZ0#<9b=N- z!a|0SniRY%f`@f8#|3FaRa$rov+vM||GO?|4Qe+(Zo^AI6PFnXqX5o>R0aJ;RS6Uq+o6m@pz ztX=r1GfW)2Ec#~!q8WOt&e{fF5+(O^BEs~wg)IEW-K>dWfBX*I6&v6)7r?J$CDIMq zK5imK1uQE$wkB<&a1ft`60vb|q|31B)hU$5{K%WW>&2Zkw<2Jh^T&RNdZsp(T_27% zbWphSXbGc{fzHcKdI2YS^?_RyW!>m=T52~l-UkTDprpcb*!$1SjZAZ%y@Urb+o!%< zCXth~C9C)uGe{%c)8Ie0iQUMY(JCxsg^uY-1G^KT?i+2F)@<8d1ja+>d(WQJ7-90( zn6js%P1!l(i()U3mo7$;i_OEoE_E4hK#qjk^X4W;YT=`a*V4oe**53n%MI^X=B(H3P7OFPVfr1Q?H<5SMs#LOR^Z~H<5y$jdi zvcfvm`CSLnO{Ppm;W}mZ=6+)&2^`Gr+VLI_4#&jr3Otkl*_|zNDUQ8 z*;H`9a~nFp&!Mk+JwFMZ8qYgcyFEzl5U<=GG&C*}+HR$C+69!(*;s%2wZ>HZwTfY% zxTkZ#tvxe^HB&v9Ma7&z%L<@)Nh_t$p)Ql_9{n7I5J~(~Tdnl=9RLd;4@joGuR{eb z2`pOb>N~%FuWQ~@mmTJvlE;(yyB3D5g!$Q3f1wMBb?O4EQDSu{RL^JnPO&5u(g?L{ z7A~aUA@wu;3H4I%^?xWl2!kc3Qtqf+W#eJWU-pILCI909!4mXB(~5nDWv^eUSf-4Y z*!aytX869bYlZ(vJmk&iwr!HhGeueEd8B!&Dlr9}gpfzQnVq69%i}*KQpArr2Nr9j1YpmX$QI(fik*Wlza_-6*7PPYELm;WV zgAA>fhbCeGLgfyjtD#{YCnu8k8A@f(2t**^FKb8r;XTT^W8v(q2)5A!Kw z^sa|mN!6zxx7jz6%(@8h;>&n80bIL8!IX_Ml0xObM5yLsZpNK9?j7I#;{77Zyui?> zx_b$hFU)TaE~o>zA7ShTNL>kHxb^Rw$aNBpYP81dvRz(34kF-i{hj=LhlcAAl98Hs z)cROJ{FGh~jqzkcpHap{ve}?fG4||p4x_7r+*bWf4L*WdqHEk#!NRox8*y%@aMkbC z>woEz5kNN@tYz`d{&G*-^|tE?>e1EvAX2^ESt)Ua+D~(Ku~L`ES{MU7=RYV9XlHSB13O4pYPdvcVxZm}2rN%Fo$ATTpycG*sd zU#^{}6}s3Z__dTg+Op%Ccphomb9qPqleJ|K#^2}tXXUOaa6cVfRO3LRa?Gb81Txj` z5GcvaH(IQF>MCYMwI5W68@r*RLcy{YL9mHSVe(~~Tk7)OP`GZl$Kh+d)h26Fq{EIH znrf4Hh&D%wB=&j?h9`-ij==tT31Sft)HRQNY?VYNe|>82=rXrH<=wbLLA+da-P`vZ zlKE3et1RHPeXc$fX2JS8;N70wH6OJZt1+`UWALEMu2C-+)D$E}qqR$F&sQpI9YJWX`eu^!kl*0z6tHzvAo8@=okLnvCYZ#6F=p5UW}w{i$^h?j6k5ec{d`4y7Cvmkn5 zs+MX|`B#v;^*1#|oWS*;QPwiWEM#T_Gs3z%l>;bH%}UGh4Wc=~;=Z2J-mcxx z`YKHE+8vJ^X3x7GQ+_t?un@4=&`-AE;4%%{Tio61N9X;4wT@y_i^Vb1M@Rd)vE?+B_0g8$JXaHkCaIANTO z@Z{rA!-pw4q*#PVfHDBXZ}v(hjop5f>ZwCwYNE}#vu~p@8Ax z*|Y38^u?sI;aEW-1lP8&PjEdIBqJr<_T{Xfku3kGEd&>pgr7jYyYpbE+n(~m=j(o_ zQa42hRLXA)oE+<}H;eoQ%aC<8)kP8wZD<~lX!1SeNgBlwZ5kj^2S&f0KKEgBpvBDK zMP-jneTfx!3k})c8))Fz%`I1EXQ2W~-xs%kLC|IR{f6)TsR~+GJpQv@Hs;WU;x8>O zTxW2Bnm%dsXUNH{ENr=DBQ;Zur~Gow zcc$A!k>az~`4{(g6uiWIikFP(@X6d1B6}zeM(UI&?$L_OUGUq5>*SGoV zMS0#2$HoTH_dfOK?4fB3+zR;;z?#h)`>4cqU;#Cod9jXy*O&Tt7Q&HyH2a-S=cs+r ziZHk}#UmU5<)?5w=xj<+(wC)FuqWNTZ%1-XP)~AWNXJ~s@=X4N&5YUy+On2ON5O6O zr|HY-L7&jCnB@*!tuv7&->!=g?^W*qo3%1L`D&qv`*o##jzV~O-1c)SYGSUj9t?AZ zDpFjO$@?+M`>AhGdPNX@B04w?RZpB;xN}K{9X#vH^69s}vkTW>CxXZ=Pp8|2)@Md& z0;cB-c=xaVIJC|AIBLgoO5j5Wygcm!9r(n95qTyDOo3H``}uPPpU=S zsoCI9$h~`^30gUL%_D*2-oStnYCpDmiDhXnN~KY7U4UEHpz_w7oEqB+)%F*>IE54P z+D9!x=Bmo6+Tqhwoz^H1$J#)bJl$_3^^LAuY}$wWy1q@OnD((XQ~BF6!>C}C?os5i zj0Mz0gWr`MNMuj49iZ;g$1FF-Se56qqL@>wbL{;qa9w0G~QmLTQbAIw&F&%yLVK zx@&hiTM-xWK>2D>_X2Q>ZA2Lp5yZCFt+emN6gbjfS-Y7x($h4VwO7cUCp{^;+puUC zF@-4TahSvy1OB#CbTmo z(uT>$ZHM)UX!Kvc*TBzF+7z<1q*Qv`{`l)f6QYlWbA99USAEor!PJg(ER#BggGPFI z<+BEUof|2x?EL$(xdFv3ImhS|WiMVMzbxnKimzZt11=UN_jnm&uM>lG9B$p8jP zC98kMGjBN~Pql<^DZ7PQM`+JfWqYP-b^DOB_XNxSdo%bPW6KhD_*oQ@3ByH4=j-WC zr=#n15u>gk#`R_wzx(NyPT>ju#1kOhc{<>e5p0*weERc>NIsSh8 zwsJxBGP$~})d!P|J<+`myYA#s6uA@IQN#=y&S<@#jD|lAr|bqB$W*;nIv<^y?-5(6 z71sr+cv?>mAzhm>#JS-D#Ramw>TJ;6xYyl6|1*|NpwDSa?i5dHU@>mHFy~O(56gy( zxg(d^=<(e)Mq{>LgY_s{Y4{S1|7(8W{XdNY4yIA0yI2=8!?2Tvy81f0I>tsYwL)9Z zNKac+OWznKPUvZaG_|#0U@f*92IAc?%n}P6TDYQ0v@vHv^v2#+Kj`(%Ov-V!4kiwfyju&BuZLIZ@ zG9Y`L!JA-nNvX1kBI)@k3OT2wiw*FTRxET>@?&Dvi}w(4!@@Ux`TB9ABrK`$`4HVT zrrrZlXEk%XIep1Ov7~EV?rkg0Uo+&rloRjBHzC1w8~#{toXDr6=<3ww*KxnSC;7&1 z(n-wr(;lXl_H$D55_1K+0n@Y^$x*eW)YI&1?vBlD(wq%}LXv9^0lDYreX`J8MW!3{ z9TN8o7vkK{XvLRSg5Ub-&cxRiJ%HW@I}mm z@l(ivD*})$zjD zMEyyHeRZD|t){g6P~enac=67PN83U8Eay_V`#=BZXZz5Q+eSJ~4`u^;JmsXZ!}la~ zTg=UiSJD3wWNDt~+D@6X;j}0vAj_UKEZ!0udjcRkx&`WRfCve0wz^P;o@vO^0X=Dq zS=veHOXV83WV89m3~OE5jcLx!#gy_IZbV!dCTKNdG7ZNS3hs`Vql59454@oB#*HTG zOposuc7w`=it%wyOau;tPTt@WcVfZ_{?fDo2tp?K#Pjhx#y0T8JK6RhUc;(^G6@TD zO-XJ^Hu?DVhYK0D!Utg(2ak>TE@K;Sy>_P7Rn)UtU-YPQ>zinMyoQzDn4V}CUIq&zsDXGTUYLGg# zGr27SFWyKGhj!&bpRS~-r?qDY*t^SOhbW9ls`3#bCj1pYVhyt15z23m+>KqVil2du zFSK&;Y=FejnKjil`n8L_hmrnjsY!^YHW0)azI_3y>_G9@UGF@aCB{nqUr-_ z*`e=63^cltIWu!s&j4i0_#}Rl$aNi1&$Crwptm^$GcQlocU~^EIt;ObidLD^nL-2Y z^?Zt|^-BqBBug=u=t&D(01zV=5yp>yzL_A$i~9*tsibw~+Cqf74+dhmmQZe$*srIl z`E(ClXPI;Ocelm1T1!<8vZ@rQ?4C(bo*(ipKH>;7#;x!k{4_4mDnv@P!*9q4q7T^4 zF<}spmxkp(o1zux z_61`$a%uyGja*MOE;CWuF|CNHY$+Sd&-Sv*@=~%o7~eti%A^rY3PQlA8DJ8n!yOxc zhllFhJsMJ|B$i_%YJoNuYG^dmv%1&f5$o}ng6r|+)GoK=B*l)&VUH@QF~RGs6r)W$ zk`|}oi;Gc8xu^O)1A*YcNllbQSp6YV_EBZ)1~li&scWe(NvKmMyA&5SEC9rP_cRlW zzvtFFW)FX?2S2dY>wmTNo7jSYcdh^M{!e9j&i=k7Be=$*t1Bi{jlSlUMOTWX;X}Sw zpH*r`CPRvEtRWqUxr=rM9;P}usIY(&&*4C>S*)0+;QE)!%G%o2>TU}i+1nXQV`JCL zVR&>Or@bGPnA_oBNx9FnDME-N$S53eE@dp;rJaO1gLxEfE9yF55~_cEaZbJX#Kj#o zQea|?f=xy)axUxv>5!blSW?Xq&N`ZmzY!YL$zisc3S(A)*e+iRaC2!HNi`2F>M2UZ zDsgM}W@KW+^WeV~?$5M@An@=V9^4AthCHtGeF0P;BNZ@m;im3n;Uwnz%P|MM&#Ti1 zGGV|L*#@*kw+my9U0dlow_>MIKVoMy(LF89zxKDjPF1bo-$g_CvVc2 z_C6%J=qZpGKJiaV)YE&kJd}VhfF2cc9-!S&^e4~XuHTI=XFcAjyd|E^%?)qte# zCnH8Ypekp=$(=dIX(V#Lr4S2oYW@o)MqpKg#-*d>;wpaxSi#-pR_)0dPt_%^oM>3B z!M{9q|EPp#LayXKPrvhW&mqB_(`&@?+IauV>ZrbtF+b>iV!mASUXVtBlH)f!fSEJV zR!HkHEz%mjs-(rELj%+9+)+PO5_7`ectKLy+n3jsCp!l&ExWEQns{n!_^fuS?~~O8 z3jx9ZVIfaTDnIglm6jW#9vl>sh0~2SLCgpAw!uMi+?fff9h@U9`ZbLMCp+B42iOfPNJG@9ta;^pjdCL-zsrnczVcCtAonra&p z%wH?oO5V#Y6!1NrVP%cOW23)*g6LTmSCBFhM6rp;2vK*xt*ipSM1*>t?T-knpdpK^ zhJZ>3oRY&4Eh>lJ6}4auI+3b8iX67lhi`4{Va3wI2l0lsjbD9_{8+;lEk0V@A*D65 zdH-Y-w>K2{F0nwazaa=9orFw>5(ER3?pu5aLo3;BTiM!_y!4qrx4bLXJOJ@|pNp$r zyx1h9YIas1v;K55XWOg_xc|=p;)o4-&ImkAED^@5;Y{IIK3xSPk+frOWjZJAlYE4j zPKP1?Dxq4yyu!EL0x|O?Y^@CL%X|EZvVp$IbwZ!cES6%zlAN3y&biovG{J%hi|$gR z*~dyfyS3n>oZhQG)3^lhwyKQ+kirM|!~V>Xcsm$tAS~GuuHcWSvBG)azsOM3=Sctw!eH z=)?k|WI>)U`UA+_Yuf0@teHYIm#_yZmh^^cCh41q+B4?F`ZTk7SIdABb~r=wma&#k+|5^JDfT@XHa*yFd0~9{1KvAk3aKlVo#?SD;_dIxmRP44 zF2n0$irp*ll!M_gF3|l|1OtH&YQPpxY}_43XlP zlaDdk{Sf>xDn{DME)SY-wUZh_K4nl`c8XC6oAnO|_6-ln#w*@L}V8}=UqYSI+`p$(+5&Szvp0z z=)1-Rsx4^uZn%9<8_t%TVxTL<#10|b6$PTiDNx0da{9ajB5bG!WYmvtS>k*OYHKgF zMVb*(uZ}>Ru~aCE`IK~JYzZm! zl3)~UC8yaOq+qp0k@2^MPmjdSS~~m3?YflXO^&61l#b@Ag=&|o#~N3!VLzLk^Gh(8fHTeS z18g0;^j>QIqcrrT>PhdcJ@g~>XYQ$kv+=4YI4=pr>gb$8veb|Q}LBkHpavE;&4rg=Mu^{d-zDfL=u&9Sa%1*XjP`C z?0Scu#J*I=%iB4uVz^FZ?>DoFrGY!8oW@kxu+4A*y&46Qs;=B@2bCpVq(ePMYw3l6 z4Jr6UiI~cJL}Du@rLe|#SU?#G3IMTXkeQeL30FQozb{{J7vMH)_q&^x?(QVX6uEb1 zV<;XvF=Z$XAm_z06f8;W>yJ^s)8==bVquU=1HHqs zl)LrqqP|AAl*8IsCXSK-Zpg%+u_cmP<|_{tlW*?dhAoMxV3svz;ahYz5TW_U+%sa7<4*r9&8VOOHK;DmmIYD2!nZdcmQI*aEjb9cY6iJ zns>#kT(_SyyA|989SfZR28&$h@euf_h9I1r*bb}rD8kSw_4#=qHq%^uN>Ng(*25^F zZ33$h?jH`cIKDnt@zhDNfYBQF(kygr2$`5CQokBeHe6l+qDVW0#Z87IW%c&XDhBuP z2CuJn(|PVqNixy>H}%0vdd@1g7(dK+@G6eMoSwxgs=>n2kRHYw>^D$XMM5toOe?^E zlf+EZOE+ciTyPcs%m|y%{Of`xU67Q2drjdo|R%yHXByI^Vfe&OjWVKF2JNyU#ohBcZozL?Y}nppxbjS_>tT zdGQ&h1rq{J=t>N-@7cWk;;UXp29K*5cnbW>r6LVo5z1+#)&#hEaIh`J88HGrjPF{m zR6X|;;TN67;W{zu+i(ZnPBK*pwT2lNEBd!3yX3cBiq#RiNNq+FgpxMsygMQrGz2~z z)V-Bcuhr7}I_u{&>&BI{jqgTSqWU?W)*;M3s!9h@oy*)}7*oO=X%xIyGfwT`Lj6FA zkXr1D&=z_hevR+X80=v4jgp1JUEY>k-adOHIS7e~IRG$&{uDM6)BPB4Za1H#ZXD&qB|;r5!2|1hZ%CWh};z`}(-sXdJkR1awPcj@hfVVj?naW8|59d-sJ zX;e26elLBV4oQOEVu&A`oqk`u9Hup!T0bTre3*9v4?>9RtFqNyRR=RyYU%rnEjvr@D8RwP!!9WGi&MT>uKrfsKclZI@;R0hX2YiVBfIx zg&vFm0qfG#g7shM8tEGv8|i^y7)| z*h4VWRkLw9d;lIZ{q3C1p)XXCDI&t9vL*kv(WRxOaqqVY)YyPMos4?ZgI1!W`{jpE zOGI0&j16n1Zss9Tq#aAjjkrC5?N$7^MH2qKqVHa4dz6)spbja0&i++WB5Aj=p$d#x zlH&(q*cF#8(3t97#dm+CO%d%xKcjL)SO4f(*W zrTLtPx(hwz)dbd+^qM0?=%tK#s1qZKvIo9bS|)G#i3lsWUoM!IhIMt?zFw3b733Ii z0;|Mm+Y@M5{lRZcslDn2>5ZMWRpLeMPo;#yJNC%M2D08(UYo<~!GzJj${K4Mn+Yes z=7^*tB?zoM8z6OIS=aM~`qh3_{E(1H;$;os5>dl5ho)ef_;1>{F2#c1aitTLS#U>8 zI9cd;OGI9Fsq-4Io!{bI>Vv?6F)#di;b zN6cuC3ScidlML|wU(7|POx8R*{);QP7IPek>bMRP0`m|t#s1O#TGvF2v4-szy&e+8q) zYO${4F1t)-*pj$mg61zP3@qDNvKTUmK|4MsNbx&3sd|o{IfviJbbn9a%$~Ap zReu#wTsev>>4a*hrNzfRV%I(ArO;;T0%!>3C2Rd`mY?~S5FaJw`QEa;zCudd=>=qM z{Vc*0=I4LRoc_MIB1j|=OR|P5!(Q09*F<-1`nX~3DU8O>(rb!(2@G<&wwi%QXEk`p z=`lbbe?RV4pjP+s<&bO642y<%e!3OkoE~8?YVJStPxrmfmTyyOLxY(fF*)b`7E)(j z3pP;sNRpeZ;1L9XG{8E9_3tRug$ci=TuW*|GL^tHSe$cWc-c}ej4Nh0JE{A6bwrFd zj)2~EQQm-kh3J-zo>dtF^>hjx(6psYMY+y5VZHagL)m@Jxn9u_q2$?KM1T;B)dy3; zu`x7uFlNr(M`TE6Ll;K*ZN}8@2s+rL@Z&I!fZktN=B=VSm&P#MjLw&HbB}4}!s=Sh z<}NBTcw&V$XByr)2+Uf5#AY(rGj~0@3QE_P#R$#LW~<7Vc3Jm_>OJqk`VE3ci`^b@T z0g!O^=c!w3a@^``XK!}z)jx+d*#A(T%LVVT0%|o>^oP4NU$;Pm*|ihJ_@$si6}vnO zJI-`Q8S)wFXX)PIgp}Rx*x%yLQhu*Ww7O^|KV4^5P_e0uZ&wdcMQWu5j_Z$ZzJ>kt zt6L2ofTMstBmd(PubRubv-8YZoRS%*U3J}5nAX{T&Y@$g*-N1yC%vUHYR|s$GV&L= z`FWzE_M{d2D_zrlWN=C-!_9U`HjA1e2T9>@#Kmgu!te`pu;|53qc%1dwm%1aUWiQS zX$0Ss=Mu-9auqgewN9|7nxzaUnIKiple5`cdpA+1MpE<4p#LI_x0basIXfxeJztRJ z{@v+m>4&_j(344n7hV1AxGL(E7hSfDCG4qZN1sS4rv45V($@a}hEiZZ)~Tsf4v%DNICQp zEpIBS@+l&K>3Bpb(5X59fiPwg0qx?PNmS#qu8&p9aq^U>NgUk#ZWrMa7{wy>ofg0D`+NeA=^${+wBvj(VmY69DK3cT=_llajVq`D$dae zkpYJ0oRDByHO+R47i@^PLOJ^;4TI?c^%jShk%k##MFlp&@0cD}5*Fm6-`c)~1WH~= z44KYchk0d2PHwe$|90)&ZW4DX6nLC_@zyx9i-KeCyj2AQ{n_JS?0@4vCuB*y zZ`o*&qKS?+x&l1K1%3d`rr9Su-S&RUXY4WG&ot67IBiv}*YQ0w$NIQoQE`c%DHS{7 zVPuq>;n`qOmP(YzUTgQBaRR1`><-Wz;9xy+U%^2>Wlg9E<&{rXaxQzDy>(h^)M-qh z<&CKpea>$(dU^m*Y7jlDAFryH|1uJNzzoHAMithz1_`xHp(^6|m_n>c;`+O6lEXFO z4$1tj%+nx!u;xa;4?Mf=o{DfZlXdo48xNx``jKOX5?kg(MAm!)@WizT4lK4X!N$JX}+Xi$WqPp z^tUc=)5x83Ef|}74IZVc97b=?xVjEyLz$dnSM&PYnPw$Y?pLzs;|+Bv4@AL?cl9AGL7lP&4jDu6L;Q&0WxJuX@~ZMj{!7k#z|ADKrJVRw z7>fY2+-6~mE1~R#1@7rIGA*Bsy|KX2uO`;wQ+W=D1ap6p)d+YZ%!_WyZLQ14U5X)s%~935IfOye${iiR!%3(0lr>F#d2L9(G``C zgJVZ}`IL)}P$9^@EpUk|&CkJbhagT1X2#YA*S+$p0BesMI9)b{KTJrVp74PRmI%B( zvxkU4+J2L1f4VrC;GLr}of=vlw6xsV@G&L)fkElJG$+?Vzw^1-I-i%jW}Wgzgd)zY zQu`8{rz-SKH-+MS&Zo|1^W7mrC2M?)_71bN?B_@soB_x%3^dV|hxJP--x^y#_Uw}2 zjTE)iMD0MkdUxJY%o@Fm5s<8zW>U7rCmDcug4^q#0QdK{80FifXj%@st^@(;Ibz$& zDyP}^d5<3``w8b`t12;bI_Sha*;5HECFF(fQv%BPyD9=&Jel|@miWB)x@fnMX}6eu zvXU)*I>G)!rWq67H8~{3pmdhS3KfZ*$yH=gTweDq^yL;f3q4nN&Rm<%AO39pnSkR2 zVy(Qp6!WfNLC0o+(yYjTm&!C?PR~B-k1x3uBo@m*;Y<7>bgG-%=}+1(a-5>sk19g~ zOyhRS>6R;+)wx_wCEWvJruzX|d%3AE%e*eRsK~HGk9?Quv+2I<72_Y&%>|9xnQI{0 zkfaJ4s7@xcd8ezbqO2c2?$7~MY6YU?@(*q*7bzllPbuG+1b@;?_J)c!Ik64(b>E^7 zHscgZ)bZF_fwE4Z0@J+aiqa+f@`{2TJDLP?kJlz3N^lWK5I{@GvQV|<>S)dWi5C}6 zx6RWH(~26sQTyIn0%_j={&ru@&QSeSn7Z8Y3Tk8LUP2LxB~;73zpp0hu)4>&f;QGn z>%@V{6UcPTwLzX|FQ{OduhSs98=}hxZghcayXfmg%w02$sb}5KyYBK0iD4{w*_Vw% zd`|$|J^bx@^$;&z02LgQRwWwxblmBeW9*H;@g5zdly>FN|=_zC2i`Ne+965~Z+ zHm8Q=r0erlH`oz=huX2(ysBfbYnare8JKcnonp`9&r4M6{$p6NqZD}B0)$vXmjZ}^ z(tH1`PTihI-x%}vbK>FYcgzhie&4l3QbLnrW5P|uz2-XIn$SzbHk35alzS*OriW4V z;8o*2u;KY;W$eN5UU_e0c;{f=yMHeEMO_V3=GRv#~_UGlc`;>zBP-mJ5(YFM`aEE9Obi?^zbqqP+;tkedWw;{`x@in@Qes zlW-Ju7B9yZo;&1WE^RuXBFBZ{PaXb5pTkK9bVsj9S2@9NV>5+UZ|}!>+F6cUDE{h3 zmX7H8lmv6$#~-l-g(_%D;FXITk!zxW$YM)NEGi}@TpF^x=*4Azw-MgyuO{)9o1yS* z;droyBuAnegO(31H#S-~509?!=sW83qjO8-ssdKK33^oS(_z9r zQUWkwj#CkY)pahoQYBXf=fahOKvHAeXvYSw;91B6cf0Qqc}6vx8onTO2S&7*z9JQ`@qE0yO9B$^hUDyhD)@VS3K9_cBgBu1GjSF zH&6NVC)2|t`qb6R+%S#t0Nz@s<+uVhRv9p}gP2ve7wb?0xZ?f!+h|j(GiaqBLP%19 z4Vn^>Q_1tAEyOUIJZowdbm=2;1r^?5rP~4VfN{ljfrAs^Lu*`W0iH*@r-$9gL(SAWBPP$hQ9YB=@~cTyy+(8uOglKF;M39 z_)wvAD7M;!FC~IF3weXQ$fIj7w>5)O1G$3odwG`nSqvklYAX@resS-7$S*xkxI2p* zhNukfmz6J%QOJHjmQ`q~CMIw0vm-&jx6K+C{L$H-VuTT5R{OIKab z0HjE0YiMX`YNl?zD?tVd-(M^)iJm!Z{?ypKdmq0@YrnUC=Z`0S}DT zwPDpDG!giSan!)DkKGK)(I1X7Z*Ta8&(uj|4yTNCSz-lsdQA~IGxBe3DH2_G>Echb zJ}aQ+X~DK};%fn?TkVc2(+8Y9t8|HPVERJUSNLFn{R?4Mie=^Bo-ANN{9w##5)gXs z=wvr1(gT>jS5>6%Qn~UYYFu2B4QzP_Jn#ffP&mx^W z(=+`aS2 z5JFVo)Cfruv7fsqbz}XT2`SMon@o?sV$q%rSl6&|pb+v~nbeb%e<^qzafJuWe_xKu za1q-zykCA*Ol~tzU&AUZ{PwEkxB4mi3Xy4L-&bwyU?L|02FHoZY;r7+Grpp!LF8|| zWofXn^Qa12(8WLUm3B;&Wc$Wl2{;CL18`uZEdN&j0UEoB#FwFw`lQlV2CPh z#)A0L{DZl9(sq>aDS{~qx2WP~GRc!`xT*tjJcMa>j@8A$BBRBits;0G3EBYzQ7C1evQciImz#)xk#fCH+!T^{5hclD8Vyzq4|aJ;TeE>1_V+^n~O| z;eo)eO7E%Hji@f0sE;MM#r#W~Zh0j9^rMk+$jw@otFec=e=+j)-K%y;7BZGN1ko$k zsEO8J!_wZ3N+B-RquHfq4e#;^=V0b?O5sVnj8helcV0OM|Mep~2Rfh4zV8Ye$FX|_lBpu(?Axn#JUCm}VXveiL?Jz4 zo{feeNRP^7P=%|zT;=Q!{osaJW*aG`g=5@FBb7jTH6O3QYx*$n7|&-Su{-(M{`sq<*Ho)RgxhRJ{Rvuy=zqTLG9 zYCHqnkExDB|IsI1PorII`>w>R{CMGrL*eWo+SHSvXZ#n1$|mvi46-_BHH{Xuf|jyB z@kx<%xJt+0;)WkypmR){C)%tCI4dvkw5)?jSpJ00CXzzS$vKmW;V&fI$)XpgnVp#A z*}?B9%wVE0o}dYN!P$U^4a53ICzAg2G-+OS*IEN$hCGK4wrvZR%yxHg*JO*0nFdeh z?w0D}Z?d74)4D8(x8ww{$+`fZPda{abLXrx^Nz;ipe--k@J26zL zh1?)xq-jz7lR5-EpV0EW2{M28=_^p0>7j9s!;Z;?ijQbZ1Gua}L%Jll(`+u7BbJxu z9~4Xbt+1@H;a`^)sLn;4d5&WBn18G9%K4Wq86SEQ$1Ia95xCp5kEX4n<-h}pEX`m* zxrKt=tTPLI52G&4=`fL(@9u?Ml0=Po6&+mPr=`0X`dTw@XKWg%2peIuf@@d*x}BO9 zF|+wE){WyM!fW=B>nBlF0!w!&U*}1SiN(vMvqjdJu1A%yijDWLJU}vQNp#?R@x|SZ z4Z451=NEZ`Umf=1KSDB$$7#x|i3xHO)J2xOzD*rd725Z-QVsuCcS?fO$MmMG9@h4w z7w#zxB z`_eFxp|Gl!Db`|=qi(oj!h(mZholsi+qwg>IBB4xAg`%4#CUNi#_slpH4{!qv5jUOtoX)_LzC0{KrIlY?6W{K)5@J|s={C`xa^J+H#6+2b z1i6$tUIxsz*txHtmNet9q}t)`W?Rxx3)WMY#?5gs+Y~rnlw5^i#bl<{*rvoo!^THF zzMc(Eg3ad(r?TjFi80wFv(1eUBS=S7@9v+i0SJ7>xd|T)?yd0nyVNe2N?68C9&|tM z+o)EYL37XF@b~CHvI5i_T3d`T5x8OjedfSYuAxh-d~(xrKoDF!wUGD0iYY7J5ZyS& z9pB=H;T?tg-03vCZ&9%9vBVYZRtv9#2k}RKuD}V%AXheYzb1AglWw;aGwH}Fu zKJHfwM@7Z4m0xP-KJ6Qm!VBOzFl(<%I>z>^Bqp3~7)@xXRg4&B;Jvb~(tf=gS<^zy z=f>ptJ{$nZc9(J__;RCt8&@H)c^mTv-_Iq!n*IBA?k4pq%d7JQb;-opI%opKbcBn? z;Q6!oI8DZN#zAa%C{{Gt6`n&>82lB-$O&cw1sDZL71dGKQ5 ze$DKlQVmW&Z3+hKB~u{x$Y|Q<$+pIKh__7g4Q(@HRc~2}yjE?L^hn-}t__ZdYtkLo z&fHh4e64O@EHo&?Az@v*c_;fhGEtnteskN~R}qxH9q{s;4Ha=A6HcY%uFLY!&o%dT z@1Ay#3QwvF31Ep_OtT?jKHCi0_%>f;QaW_Ww@sgH!=ZzH0tReY)EzAe;1ahGbxl}W z@3^iqtnEhP&%qp-0we{3kmPF-h$Ao{vFL*iDAwasKBmRfH=J<%*tDf2G~9Fj>TIM+ zChSp!>huWSm3oyv3*s_?T;OPDW_ZJsDD`>Lt}H1azj$`LrFj;ihO(xZfAE6&UXN2Q z8F{mS0tlICWR(IZ2a6b$xTtB!pTef-3R>*5-zCwB_U1Z$xhoKbw{{^;8f3!4{K>>~ zfK{O``fsIV<3|R{h8$)ndKEndO(17OteKC!%5TQbEe%RDeseMrnJD;FL$j$cFiI)n z_&Nsxw6!L+H=2H{GqS{|%qc35=9o^wyvqJjGp&20z^wYoyEA^(GTgui+Ne3&h*&pt zC)h1=Y5oK9P``p5eurtUqCvsMxNtSPMx?4_6RgB6Pvx6j4fHjK_7sZ6VPLZQ!ayX^ z*?H&wCTAqYYpDmfd6?g2b;skM!#QF&b|m^*L>R($$T>Bnls`{JyN zaKu>l_7{J9fiPq&izQ&|fMZW;<|dw}GuqrogrqQ*N0aXO+9|Ykwve3IQf@ivGD86Z zFJ_g@X@Wx338E5xe2)=&d}jAwZ2XQwe_FB_^6E5sm;sqh@QZL-vEy_$ouHZ;>+*O(xrIFXNJOf$ok~ z@#Qk=o5y@;UfsmDghd3t<5iJkd&{%H9O)`tIXStiUSe>N{P~fRdjn5YUD;GbTa75% zbl6s^9c>{?1yWW;HThxuwsQE8?wSk*p=}ka;}#VUJhSS61qCv~o8zKPhKv=5T2vB# zrO6dVMvzwiZZqoa#6o!Le_c(|RQ+jItxYT`R8Jn_e@CKefZ$9oUQ4yUK zDxFcTK1FQ=!lp^|rldO)FlTHFq+g4>cT&}WZj&ABZl02!y!|qMKtC!`u6r8ySD$v@ z31rym-Bh&z_nW{&yP5pdq#IX;8U4AcGFL$mLxaX=HIql*&e2IfC&CvYGcIQi6jd#$ z!T^2Xd5Dc$;aG2S>ep}@;F;z&}d{C;cPXqIEFLmRy*l?ev{ z8e)Jx%2dn!`2|eyrNoi&~dQkPE8YFRgw2p>-~~Q z)SHRh^{)&|UDDVjEMb>j@`&qQ8&TmDE8L5HBBEkF#wDhiZzyNAL1Cp@X?+s#&iOwD zqWAw4h;JYT0)I7Hi&4u!%|H{BZ=nv#*3{P4&`|+N4cdCTI=b2h`iA--Cj^KYVPK%A zYpJaUvO<7J!E8=)AaVK#Ev=a|=4?p8H?@D_p)E$R90Vdz(ms;UeWDZI)sjQ?sX1X= zBjgD`m)=J145FPGi>Zo^FLv)UeG{+SNb9IPv^0K@5%nJb?!DnK0tL)IO=LNd3*u3l z^|%_isce|~Mc%AIrQX)WSC;CRz#HK%f}lGzm61Nfg?1!NZZjvdn;;1>)pj@h4*hc$Yf78HBP^U6}A+r@gCm#k3R~ zyD!pKfbm8R^F)FJfr~UL1mE)=J3Jg6pI<*|U^Yj`Yq2cbtYi;Z!fl5ssLm+_LP=t$ zc_Uq?y;`OV1YY&s!bjlvby|LJtMgMgyl(y)nq?^3=S-M0ULG;$IzPBGFu;0{PFha! z!AQ(`=8;7OQ;RY&EgmvnOxSoUNNjN8!52^zycKgt1?i@S1|~F?_mQ4}r6|C01AfyE z^}6Bh@p-3?4($!N;s7h6OqsL3oTsLT>oc0br&R2}zg-WuKwxSzIM|3k#fw`{4-3HC z#&z3@+x!sIk^*g)4ZyfH*F=t)uJUW@5Zpxzlw2t zDSMPI_g%4TMpXule|e%eb5zzXbqsK(@kDE7{YG3Vh8O;RqtSF*Tv-tOt8R#g6(2pr z$6^Br(p+s431Goav6nwTjV4JFmLxLKGa=2r+iA5vCB8 zoZS^EtI$nWPZYHsQtE|FbnB0aulzR%jN`IYWT~k%uj@l5SZ+@{J2hu92M|D=u7(zD z%W|P%53P6u($-g``(Ln!Pvfg$9KpycM5k94Shmm<!w{!33AW-!!t~qW6S2*g z@Xzn7`X2&T$jPY&MIBV_8x?C-uMMI*&=sKdb(e8Y8i@ZUafctCT7k2HzO2FolvQ5! zj*~Kg61qFn7<_tUlRZ$DGcRwx}l`kXryR!u{!^puB|Vge){Qv zg8JhJA(d3Jq=?LaMh8_4;_`(>p3%q>q$Kk>SRF;^?U|Al7|;oT2>?8Zlu9gy1o#yJZ+Mr9)FZUSjVp#>i068*(zF4M*fGGxcObb-;D*ZieLii0{D&cWW0nsBa&q3 zuFdNj3RNo@V(oAG&^n-4Ywnwy2coamwkRgVNiy>AgPi?d{{SURex>S1$Mma8OPs;5 zX`p;ZBRC*CH5tyRiCS`Ri8C^Cbt_|a0+NdEXid;Hn|b&{Xd3)sZR!ZJX!4~Lih6h|`SC#jJM9dK6raMmEtPDY3^6EozIF7nyVZl>Zuv zHvyj*wvU5^%`)Nc^vj0Ljh2^HlUGedNFcstVg9e0()U~8oHRiJEjLo_m-FJjHRC%9<~Qg7F&gP4*V z2`s4pp=paC4eKVl(O;vhCeUC4m=W0!Mo(OG7`G<>zL`G_E!Vlh4fEIUde~2>Wz_eD zjB{r1aG%O6l;3wx*p9`n5v zeQ9x~?f&qd)zQF&mUhD|9$R8QXhM8{DyGkM(sf;jsG*$g31>GpX13pAwYH7CP@XMH zyv)oaDiQlfgKH~+YJ-d|ly^kU$QJbPy~Kz3)kd-706xL4BrUvYYD^CCozl27B-D7J zmZG#jHLW}sQO&$M&CMef^1U`i*w=PnkUObQ`G{Isd|PbpgyjLO>_`7`{?V$9gSaE zQDvJm@qnrCyX$MQxmPDO<-C;DDeYz}bpN}+^`&uCY&Kkhq^5JUm*(Ggxt}4_!=JaT zZ%i@?a=WDS(SIsNgL)Rf$;nJ*6deETwTa2K21~>fRdt0Cqp0Ow*gHvjN^7RMGq#*Y z9!BN#{ML%))hv(|7|G~+V!p1i{QahG3f*zaIhiuL+TiP5UM|}4X%TaY7@Kr*6_-@g z3yt8rWs^;{>F3mIy{)|^IP=L zj9VLgVx#VFBpH7c2Btr40u0DyatCpu$rIvZtgxmUlS3FI6YN|$Gg(b|!$!`-6(w&e z=F+VLsJVOs5PXu%shK9>&BRecd-3#d#C4k zeN32`e=Vg5NeSn#On#40Q~cii#kxR^>X!=X$`u(*o`UM0tWZ^YpgzNruQpt|?&)n` zoHI{Xz4o)i%---;Hv0!Cxe|vGSE#Yna?3uht6)PDh)`Z+n9Q=3IJL)26ytJgMvDD1 zzt-bSd!KH^qLa-W@pc@vryM$Q$w;YNTA&r~HK*p&94zRU6zhpYq;O3)DozWm(R7Jb zM$QBS;9JC$V^Fh{w+L+Rj9QoAc-W|L~V}{hR#KY1^EqlC$s*VwVu@3EJlsRVp z35oY%V4AQ>rS+P#GEu^Bkw0)}m-Rv?&4_HeR90Hcc_5yKpNlv!&uEf&DuPQTw7|Bl zMF;U)FPO5|{W%N%%o9xC9Bw3$F_PSu*Lv_=g}`NV_iXUN#quI*O%<;rI!^ zQ8$hJ1j%$UPJnyfLlFFkIV|^su_736=>u7@!BlcXem_B2O9?yWAZW2IK@T4l+cx1$RYOWoSK|qYC0X650?72lC>lBXp`^+{8=3i zLjRON_zUHs-cF}f_O&(WkPptAs}4MtF>@GD@QbWHx=N!~H=ph*?PLzYN`_{Rd&9?Z zUk-ZYHFqC%>PkROe&U9Z6H3D!3c*!hkhGmTE1qS>oXSq3FM|K)3*dv_`HHQuyo327 zB2{8j5bpy0GzM>n96%__f?zgCA;ovC-l8aiA9r=1qP*b!#jC>8(uOYk9cWHiA$#rR zsx6xBJ2o}4Y%z1}f(I3saW`4v`o|8RMBL4jtNk@{76vZ;CYi0NQNs|36X-XtR~D8^w4;< z8&UcsO*1Kx!>gZ-BT7NyFVD4&&@+rj@d$>Cpg?o2XHV`^f!OO-14&3wscW%XO!5ft zLgwF&mA}SnBFRw)pBE|YV}~tSqz@_W!J8m>P6$Gk57}S#WZw#Ya<7h= zXKGuE&54wVte?2P!xR_8r*9LL@>h~8HOfWiGaV=QcuXI9z7NovewcBgitOiyyQeSG z4tmXcM+-rRUJO5gh^}sF@(67gWR;bmpQ{HUxr-W>s7x;2Q@F`Zy4Kq*6#S{?YR5!V z|NOB-wKp02QSc|hpq6k^|NPi?`LJGpWJ$R_1>kg5g#N8a4r8$S<=u2@#wHyvXT4%z zQ7NepX2f*xQ5@u-8`%AYn9D;<@%{Pq);z|p^h?)Z_OWVqFGxifW#QIMY|_JwVE8iF z^hchng>6c`_MALFOP_>i-@mtbO<7)#B0LIafFBx|u{E8h3xdOB9v3Xx#3p=r&!ysPJE=)6C z74EHT>gacXzF9}`f|(_2skLiKb-@$i@VdC6^kC{@?@ zX;_|P7P$!rM}&Q$NW^(e_#18)Sz$3rhqQpB+;m?4|FwtJ4OcM z#_YALE^pmRS$DKV?9jEt?NRf&;y}eG`qA~_%4=2vTN|j=kBq=RHZI4Xg>XL^>?Ll| zLq5LuMO_2m59h22zE>wxo#fIs#P^NpA%UvKA_gv^RO1!+5NkqFKg;K+T5DGJjp=TBNajF+lavb#VF|ZQUbWDTAJD!2fN8dqb@KW|9rRC z;ifnrgjQvrfdm8H-bXL(|(EZrK4llqbqAHCqMjo8K3>mhMQcA=y z*@*UbWrlBbT7P6paIQBjSg<={)Pvd(kc|z;0=|%t$c|D6T(L9-9^D_eUzcgt_->d$ z{ZEd#{69GY3M5C^EIh3+Xd8ia2z8JW0dhm=X=-Wf>*(t1Y3Ugn8<-jEfIjGJYv}6f zfS?dYdS-^HnV?X2C76I$Bj12KQ*I&(ju~Bl1&aWuE?zz_yB@|h{NM~S3!9aV=)2!C zl=HQ)K)7qQ(d4PjpH@B-vT6P~;Wd*@<#@b$@Snuu3IRS2eJwvEqWcFy>W*pkH{=4I zk?a6o+recEZQ44-MmkBZ$aC4FEVu4dkI1&@+WaR zYeduk!XpBIhG0x*AW0Bq#bj)%ZaW3lOOR4)l9~VE*L*dp9Bs0ja*o@0)%x#8Co2!q zyyVXxflPE?4vupbW;qT$kX3ikE9wF99m{t{!Q6^I7n(5$Q<=)B?slkS-k^|PERik% z7bz+dYySNZ*CZA~(ufu>5%}H=3rl!A02Dm+UuK?T8*cNv6t8#nQ`+5TLv}w^H<=-+ z_2vkarMJoUL+;}@Y98i@@yA2+bf>+D_ANiAP2)zJ5?I9%feQYaJA_}~(77sT4qMHf zSwCI{9oedv&=?{9vpE{~J*5;Rg%7p#oM}8unrS~a6T&j+2Okapjic7n`ko0xYmtrk zquy`^=vj1W&-;c<#t-lGU3Z-3B|mJS`tx^^Vn>dB03!-RoZ2NRi86GQolP$YH~wGh zMJYphV-6R6iGOpoabZ^0vt0kB-BNJF>B{o-qF?PP!-ZwyQEDYqKP6Rd$PW3%s&$*v zdNi9i{oq@Q=s-nSu>q3=JC~L&=ES6{^0dt19dZJEs_wqR96A^Xspt7J_VPaF$4u1@ zThHGtxm3;dW_<(R-2?Mp{#z+^9L$ z=Qb`OyQ;O47vPO#mx6R za{?j-4Z40t?2Bypjmf?l#jA1SytN&l)+xk20fp`PNOK(&{Dz{^2%iqas^%w<6&n2E zrXVk$jnZ84FFg$8NGad1p$oa#w+rZgW~82<0MJ_;;(4aWtNkG6VM{+Fyb;4+O<3|! zUMtvMxjC_?ZhweCriu&k;SIrs@si*?Cz8-2;h{*fSRuzdW>wK)OR#^P>TXt;5w-!D zvMHW9_%%CaHW(yH*epVVU1OMAbZcF;H7C7(dq}%5g<5TV%;sd2i2Q6Xp0S&xH%O$; zi1F9j^a#dbYi|oGS#f*ep})#l$EM1;a!WY&edQbhN#9g=7xP)>5*xvcij z^K}{u+$=U*{Sa8=sf=QxyZjzF2ZymgQkHqXL`PQvI=BR4;O|wBbrRo#ESn~;<=h_4 z2G0Nr;#`Mz+}YpvIs5+VKAa^&orn-)UtN9axo_^woXQXDeG;<_|E1g1gM)SF`*8%y()2tV$9lNnK5YQ(<)bN)6juw` z70RK0pkxe$NFC!!Ec%`eHU@B5VDR@pN8yN%U)qyLMcQyV7RV10{AZ zbAyMIDOL*a2x-nY#Q`!gQ=6Eww9M{S50Gvg%>A3yuY3OSbwDmz+9yR97u2ai_Wb;@ z7Jjc(t@m56Jt}^8>y6{&PQ!NBe$Tu1%2T~Eq`VfcFZ4#}Kmv_|mZGrJ=2%pc4IE0T z*1rM#C{zh+gojD%>4y1ZS-|4yJq8m3I_qe+F zr08<-???X!Ehw=Ad~ z1IFWV6X0|hmzLP4T+zkM1($ZG?Q*nhV!6-=1gMLLmhw`9Ok4XaRipou8DSlqG6i&x zwT$4y#1bbf$nRA!3PGK7fXTc%%`3heNe-jlOA@VVQ;h z%c@s&p#t%^w_cZittm?*<=on1>D60Lf{HuvxI`3Vr`lQqCt2riOWnTRx@#CN9_=B=9kLzhn zx76kCGr98l5qejZ$YHhl6kBlgz0)Sz3jdG*M5-~*AxuySbkJ`DVx_gQ)su>fY#ixz z%MD!1Q(^5CQK$F1+UDaZk?yR|vBIPHM5@fr-_oop4p$FM z6H8g|YsF{U>AUSpPJRdRQiB8lW9m0#cFuOVB5kl!I3r%xM+?Wc00(Vs368OP-)p-+ zp*l6ccaFk%&F}siF0hv5_c=^sN%Ei;#GydP%?$Qkwi2zqHW4njThVd7Po`(akskx$N0nkwuiJoE+Dyo|VlvC^3!@C3|%Mt-6ZV@Eo8QJt8;Jeo17>`fYHDo_FGz zPP93H*)l@@h&55F%2@i&g`h^Mr1lu#JN{ZT^P-)#XivwKt=JVXKA_l1byh|AD{AS{ za{>&7Kzl`5BheumYp*tEezvQBh$fNmlt4EIRL&kdMIRPCmC;T*OWX9Q++N zAGuZ32Vg?vMJo|FIA%mn@@Olh2Lq zu~b<{&Elzt?DRe)&_=hPc2;qe=p<4Zs7Os;etXvw@qo)#HOb%GA&YI9;iO7%RzX#% zjDGIJV;Cik;7Z5`I2Jy>9=m)e_$&pF1d-S zY~3PQLHJZlzecEEuEl;P@keNa18Ai2tMB)MK>Y#L)CFzd$6H8H{M5Aj77bK1<nJq5t#>sbAg79-I`I7Y!clB+_ZX>;;In%JP zRI`$0BeYIevgj(s(dKk9KjGAjX!y|i1>JjpqcGg(0-r#cpB0}V!yp{NlfsD;MEGVU z1`{((dEEck8$!XPFFkZoaJSKA_%Re3eVpR(=}ML2Yb&?9Bisst234!qyN=kyq?5wx7nF9>^O0E`$koJK>(3> z-w7_DafTdayH0%>x^BRR(eF=dff_CacyEYT%qru!@JxkmKOfQcz`%@avjZ%aPwfRaiOd>Y?&#RBJ_<0M zf*afRD@>;E;xAb1{y}3B!K^MjtY`OKYmf)c*G()+x_Jwsx5OOQ5x1pBZ7^?*YSS{5k=d`rQi61;c8sd^WA>8Qro+IAVv8F99cX%gD zyVYm_VmrDzLAr^64lbsJVtNhm+2hp%+)UK2ha^5dc}_Uvqww4P9-XK@=lA-p8LVR_ zT~mTZ>^QvsEB7o$!7HO4kbdn%!Gw23so>P(>{whIKY2MG|ELz^aY{gMhw-XJBmN(o zU42_zT-(q;j*CiBafrVv29aWbmoHJW#TaQ&&&Ma8yp?EZN;y4M?@c~+pg$!)KYsSe z%)AbV1lqQ5UClzvobI=cu%*dRo_Y7u{s)V{>?s>GNIP6fcKqvk?LYW}D`52bC_z-d6pL*%htCi5zn_W`@2OC<%dl#QC38B2ia_J_ue2FjENb%rfC*QMg{X@t#BwUDY*dyI)Sr3xaZ(gYZ_Jn#+tYT`~O11I& z=6QhAqVaqpaB>+H{qaBSS#weg+4%iyboBsHCSCy!`GrG!p?rFF-|PTwWJ>ZYcN3ob z!-41rk=qhp_j6t=EJgQ?U#ezc1o`XtVSYIj#P5GLTKgb5wLZ&`70-FSL|$znRsJU` z;4%LH5g5=QQ9<&Ef0#krzzRf!4TD+HZQKmiF%FUR^QwePxN!4YW8?W?cS4od+KZ z0+`zE_vk`10;h~`TwFnqPe{=ddL#MX3W;HrEo-iHZBJkQ3!z`l6*Z|q`=+GaZ3r;f zc;Kn_B=5A(1gtKHW)0;qZ}SBcsR8drkj99;_FbgI6xYf4&dQr9Zhc6DwAL*uGOFm| zebtD|KgC$II>U{Jl2+L&Gh-D1(+FP}7YlwSY z;#ksZL-B}ADWr%iPeDT|Xahspt4Bnf<^{wuhyMu%FfeO|5ekGP2A?k2wXPs=<|VVu zz7{atF4}pbXJZtIn;mlYEOyhGU^oqlvpTWBHR$RZ|21p8pCL=JubhRapfy~)Je+Fw=yr%PnD=&CM{c3! zTEw}0+4|vu;}zST2~F&sye~CSGzoEYy|qgVJWT?#f=1vpTAsa>fhLJvH|Z*}OL#|= z1+xZWu$Xd=HYA0_)zj*HbJzBR7vuZ34B+K3h|cHbPzmK^4M=)SngZZW`)q zpV#_NO{;5*gAucjGFIwJ>Y}MsXGtwaC=pHb74eJixG18R?wYvrRy?rmw z&t?q!w3xsY?YLNxErJ(ygu#2(E5x&^@HrnB=$u*hm<16e#dG#-bJ?GAN*IYY6YV4gh_4DU-1<9y}yZ5bc)GOBxkc z&EL{~Pjr1n-4TWPh>)rH>Ou`+v{np&gN{yta}Z^LUgYLysk=#!HsODJzx)ni$Vq9R zAEP$dY0>K0+Tcw~fT%hTU`;>#UV3Fk#AumDQ}6VzQ+mv0=-kz{3sLSTM(fVK9Og-gx2ONq3YtpO|dkkvLe8rb}rvrW>Gpol6-=6qu=>x z-oP=xg}OF6AU$6veSm#ta=;Xh;IQUAA^6}aEhKA)ejU^Fh3YA@bmJ( zj`A)Mn62|QV?(s3vtZxPbgPz~h;S@#1&bvZ(g1;~|6WD%UTmL8uO6zRc_`8*U(?>! z@@;hWz9Dw`h#i4h+TmEFav7TLvO?LV@MK&?QHv*#5#SP7(c2jVkJu|JCs9fgE2GgV zlrRyCirI+EW)e;?LC;HFkby(FPFFkbs*~b;56a@~Qh)b(N#zcMS3u)woZmAtgvJRQ zPUM9Hd16_2tsFt6SX@Uet{km^dcFbiRvmigFB$>_^Us4=U1;@n?0HcOmjh%_LLJDV zxBy8iLD8g1)T~ewS@ZJ#cyZq%iC;{ja`gX*I>+$1zHo1cjoR4BBx%gXwr$%sCvJl# zjXmKcjcvPeW81dPzVm<2xvn#x=F?#BwfA1@x1Q&|DcP?C4uhq}4Z;PtO22srZ7(eY zGhMFMIp~q#E-slCZQgoR3fEo7tCl%;6|V}kbkkzU?Bh!vF#{{GM1QTTBG&Bd z-CO$BW0def%Hj=;8hVdQ_FO0@W)( zXph1w1);EU{c1mG3_qnIOhxn@*HZ_g2Wiu9dPKOy7C zl=nlmBB^Qxixm#?d3Th2iPKEz#7%EY zdBg?`vJeEq-&fW#3ztVDr2jfWjC>3Pk84IV9s;Ku9*^5LjV-;$=Swt~8E~I@e!1ct z)Okz)15_30%7Mr~y_O|oeFyUs3F@N^o#3T2v)oLaAb51Cn(UF)!^CD2DZ>~j;gnykrShTqF+YY>keRalfm>)fcMMQIz3?$}J#Tv%Lq#+W7yR7^ddF{O07 zGjp+lk%1i_Sn+xEB~EQ+QL=!zSWv2vIH*3UZ`3jpX~{1I7XN!Y2pVQiB%Qn#b-f7J z4B~k)O9x`xXAnr){j6KVA&Z*T6xRKH%K0-Zh3D)u+JdZR-tEAje4(JYPt5y!Dj<3O zOIGRQYdvTANa8UIUca+7O;V~6$xB&j}bNC{;3omZ54a89iePgR=vHQP!f#; z@AG|^U;Z+uud z&@=IS(%zX?_N&k@piY82MP;xfmt!1eE9!fZT7tKmPkqs}pYyyaV5NHB?#fsFVGKc8c2Vn@&749nTqy?P$P5}$>nHt}9 z#9ZW2QzQ2kV}EUJ%J#^-3nElz=iNa?f{!YTU;{NOhj1qX4V`x9hBYk1Tw8CZ_dC{g zE#*qq?EZ#lx{)Ye)C*fe!aR=m`f48M5nzXiP8q#mjfY?U-Ef-3gSIaZNy*Mca<#SU zCfc=z*1gkY>d}9KaeequW?NbP@3TeJi$Zh$X?`d2uz?+<=tJ?6Io(xghh&u`ofhQ4 zrRTHy?RV+D<756}fL7dE!lRp2YRTp*(0HdpsHWCWjX_B!goM`h>1nrET!fMIyUlm*qiU(iN zbM*Yor7@AD%`(8X<&igbR>5ra_1BKH$DA*jtp77%I8tq(e<`+HFZDho>0kcFE-b6d z1m6GA+^L0rNXZBuBRjX;JOiW0UvUjZYY9i5TW(wC7&yl9yLBkV(GxjK!%kNeIv4P< zTt>a^8a1BN4GVHR?{mvIN=p=Dnw zb_j7(($)j642;+5c4pBa$|axVnci!D0FOr}Slzl_Cf2g~ug&F=M>HUR6r z=x$a})Ajk+2)?heWP=y8z0lrJJ3scIH<_Zb-?Nco{-P)?fP~ELT#h9*1DrIVoWDwN z_nzB_-^h$z50%~@pjau6>3iV8?R9i`yIf_i!Gd*u@>pz{>T#)cM=hyEHS+T2p~4!w zcg%oDI&WcNRIcEYMXtXw(Zu9VX$*{!QVC>ofuZj!(ZZ=SwL{A0DpzJkq(TKZ6vIIz zP2b){+miKGK^9_FljG=~vSV)b#m>b-@2>k};3+xly#hY%W3y_VQ|MSg1P=kV6%;(K z1uN?H&63R7+Gu_9CGHvg$AtPHS#yjTY3K-U*R&S1Q_PEJ1-u_8gBckovxCD>4X!y?-op*Pi+Qk z>gi;FUO7*cA3BO;_9+%%s>{dYQA69c|B$|3Id^RX)Xq0GB+>Rs$zW4n))UlkhVyxO ziTTCyC^Z6r?^rE&dprM25!z0iGj~dW`Av8sZ-3Z9)x}M2Kg7!?lqG%E@*3S%e;Ng1 zxV1+lW+5ViiKKep5H=!u&snwOZUWagMYkDB-5%5J+BTiKA3;%u4n;KR7wZ@ES1Y-H zBdTlX48@t@FnH-Rr!6VCVS6wy`?gRzL2)v?v{6V`J}s+zLIz1p*4|fxOHQM zwUCb*k$9;5HL_}xY;f%0Nwa7a)zhM$BmU0+LCVNB8|8uet(83YX2<>=sK!YIED}2h z*%GC8EFOl?TvkNmxqhv1jLN0&qT>jlU*R?arS$ryl5LcQ3^`HNTC27{ zCAKfRA$0l_ZWVK4Wn{Un@<5?i%55H}@%_WFj>%U1i^TW-`eyBLLag-8NeY_V@YG7W zwND9A>=f0;#r8iJSHOq+bkK6>={eCQ2|$pQ@A&M%%n-3h^5f7B%T@-S(-2MePNK0$rSpi9=9VzDq+ z^{>CilB86B$2;QqI2yBTe>DHj<4xv!dLeT{X+e$PY!7KWXnnK)4`*UHiy|>_2^_V0 z+Gwn;PvxOEKYDM)_2<5$p6kp;-Z4!%YKX#KA@Ma342_%rVvk>^T1BbN9;zVWW@@;0 zvc9uBptZQ(+-qaGN<5>Oc=HI?K`po}DE_~BgUtWs4G56DpU@y8JR%94u%lNrlyvag@LiLt_cJ?Lhx3uC9@FQ@1{6pvwKDcH+jiv=xIt7==j<`N?S z@(TefUKp}AwL69u(U`MUl0Kgg-~7hyIM_0}{J1dCmfZ(_u=1MpST-M$7NTDf zFb`0iHbGw-gDV2VBc<2LosI^H({wESsz3eJTzLD|a0%0N7f}yA7QvIEJR4-s2C086 zF+dQ0v84erPLgiUP-_g-90Qj5H-<)|`*a%;d1z03BHUPQm)rPvt3PH=(&g%)fJ#1S z(KX1fHgVuksr>Y}gyDKY0Qw-0`VXWP8{nVvXo{#>4q`BCMwZ1r&Q#vKnV(OCc0~U@ z$8E#O7_qES$MQk&?9Gd$KO#4^`9@nRbu}VIb#ba4-)1XzXdBDrHOH#Q-Mr1J>iAH@ z>PUvYx=$a+f!edtVbO*k5UdK*7doAbS(FG6XP3bwgD#nSSnLvib5uX};&0DguB89G zQ1>vkn_6}ZJ;ZXo|MFCA#SCQ zrimC|adIq8P}(LG$iUki=?{#AJc~T(Y%z7SzJhr1n}gShe+u7;2hgbAQX7aV&y&n< zmBWO(7N+4E`eQd+^=qWql}Ec5%MKfc`@_NEeI(4upc&=Rk4_wcg2O?(F=d*-trh?|W7_RV!cnb(v$(!o#EdX&brYjl$M@@UyH&TA@Hj-s4a;veLal z)lI^uMn+al`eHH;gLZ>;R2?;*?Lfh%PQ9v+szv(~ubt(*;U-EM=n0i*Q#o}KWWNPF zCr)=+>xI`F@!$a6WXX}wJM>7fD1TGo3Y6~su{^iH;_!)Ja??zn7O3bAC^EfsC)pLh zZl|-h)(m0Zch8?(y&*TZEU_Q z5&l;?0c3rR#@<0gXu|;i*76RO3GXfP7?!+n!(N*lD9G2C^BxlVHPNeVo2nMGqM;_l z9wMn9u$}m@w~tN?_LV2ZwX&NN7{ph8ZFJV#cxb99$dbDLv{e#k^TURCK2YZH=Xo=j z-4bt~(5!*DlL*hd>H_FJI)BLo@5OCTg2Dn}<{f+fz_8^HErAZ_bUZu%ekj?+GAcFx zs9(Kg*(ZRaT~I)Bp)94ys{NF~it#9okkt$6Rf-&4@!U-Pdf ztOBiIIai0tdd%IETiIOVKAyQJ6GH`)$xh(t%G-9vot&G_FqQ|tEFMttwM+a4)GN*~ zUzfOeO0blTm|^7L2>8xeE8H7icQuErNtetZ(tK}8coB7-6M8RiIJ6GdXw)&aUC?Kc-m;amg*S< z13<=x66!xPi~yKjd3S&u{ZWDT)}$3FJy)L^W?t8q$vff4FX{dH!ef!}yte>7q%y@L zEun8Pa;0!o>~Ch#A8V3!bGp39?3O-GI#DYf)9<4Ab{G|2ckKb@~)tt}s> zB>%lFPp9*r1CRL?i#+zjOtrFCeP|G1R+s4^24rjmF#p=b*yx)5z;OebuGvR6f%WZabM!MT9FLGeVB>J$}2HB}Gs zJsP7`xo;o2KQf4Xp8vFDd{0M;)l$vRU4{Gsn`$bPFSG(%Lmtar{GJ$RZR}hWDGCQ@ zuOW|hCu_MuLrZ?;`JOX$8ij+f>~9xZeS7i*dA5LX4?6gE?C6URO?%&L{j`8Le68rc zR7Z_+^}~3_*%6LUQ&^bU0BZ}LBWP@>NX}B`ne5DfZspJQ9$gIDsg67CqbHQ~t2l8*NRiVt)Z2Y)-wGIXQBWjpN-M>?m%6_5}Cl zwZ9G>$yMW;<5zoir+++B{6>OP83jI>eK+m|=f$4B->h6Mpf5@n7?g6XSct&H0(^DJ zYhX0suip9HfE@`M>%NVZ#MC;Uo(^2Fc9D7Be4t}JbCE;)$hiw|(wQa^fmV#CPxaPiz-fe8jFn4` z4$_9VXJGEnM^eb+wG2iBN?7I};2UuHvLKUNnV=cTz43*WK)SrPA`xqz>Skl3f5;c2 zP?nK}o|SbV@`&%9SJk1%ZuR_QdEo;}MRd796 zxg>zC@U3MpXtK`?LhD=vQkIf*k&bj*h&?lcnmwthxSHNvh za3F7o&X1thy>O8Z z74lR%TA6|pQB7VxxXQ185K4Kjcy95-S&i(@j$SnHl_R-Vw!l!k$hZ~bv{ptz7*HRc zruBVcUWrlDU$b`i+hdH7%Zu$#Eg^QbBb4he?0g_bFH>!!TZgpVkpKG`xzwZ!A4LAd>F?H0`R6$EAp{oi} zsAjj50>WyXcfnbz<%5Au1Y4v~{ltM3hlAILUFh!b)Lz`8_7{{N`$~rws*eTk23aiJ zw-IoJJwcL~yoKhc>D#_Q4tk$w8gj$nr1VGxrtIPVljiJU=|()h0+hv7p&b= zDa#so=M`aqxJY7~vzBL|T~sT6*dKY{vBQP=5UTFP@7vwnj()pff$^-nW|Uh6(a_j| zWRE^WnZc{fw6VIrN{-CR_PlZal+OeQe%Bf!i76Og;f!$SSFN#I!ZGKRlj{MPp@|WH zIhnqQILL$kp?B7!;NWM&pw{vlViw2h;m*~U66};IACMjT;*f^|nV{CgO;$mBYRm|v z3vjA)je{I+w|gv_+gWbUB@Dwm4QO2X?ob5v(=TgYk%a13eEg?bIuow$ckbv>L4KdJ zm>rTtj<5wM*{YKFH*&(>{MymE(htvOn#KlJH9r5>AZ{D{1q-qh0hlCI%sCK3vb~=8 zDnQiSG>$lS=+eo4xh+#J4J>1~8pi!@G}m}Kn*|#hkw)Y)GhC5npne|< z%Goid(YNP%s!$S|9fh>Gu-OHZYax|9SUCti3dx?@-doBbNcap|KRn=>>LA}vyG!j_vwN3=S*rjcp6WX>O}CKhxC zuL?^Uq(cz);s}uLo1fH>~d5X!UBopJwa+;fm|LS z1K!@iw!`(x@9q}OH#LnLPb8IP)~ntWT;0YJ^k&rl-P~OpK${4_PEos9r+kit+!B4E z(3wDV?3Z`o4!bja!1lw)WR-C1-Rb&ZK`MQIvEaD&hBeoisDe$}bWEilJYt|#;AeVv zcLlF+;AyJsF&An!4M$x2JMpf&!nlzbw+tWv11FNiR~Husij{tMRk-|BNQv}5OYih` zSDX5a{R(Ns0L!5rW6H0XDc!Do!eUkr+1aTc8VJ!q_bgK;oA0aSvp?XI$f@JQ9@5&E zhJx8>RO(rJcGRs8Ev=|zq%A1ONWpk7`D?WCrd{4l)=gmPTK8q>W7M7o*}VtJE!KBw z1#QxCR*e^-iH;+4s;ugUdf`={XP%4{K0u=&LsW62M;u<0-`$@OHsSMjJQs{&XcLa^hZ>|@EPpKsh)F+gf&%b0=lYYJNOSb#nVzit! z(Qwz2Pt~gpv^K=Ng1bo-Sq*)$x_$>`&_SN@OL=+-KT6b!{T3L_l_o)8Mmv}xq}4W8hyi@q(XO`aqvt6G92K zWQqParSSZ}lmZcwQfw)>S@501f-%wZ6#Ml(_-dsl; zqTJNe)i%)8OC-J@R{HJmqgu_{yP31r`srXDN_*jcKJ^>We3fz+(w1MppBvKvwOu1k ztGLY($EkGt(diI2s8CUC2U~5zJ2-!|&H4I`7~#{T^zZptcWV6!UYP$ne( z`DJ%{{oFDs`*<}w2jRO-sJCx+$BK)3soZSK;9sWIz&Cj_#H+Rjfg?_TJ_539x?BcV zhIxn^Jl+SY^_ep=t#sr}>$4fGk2VBsirLpb}FwHBo-4TCu`xD5PnutK&@8Yt{Zf zqz?zz+&40oWfzZqt4;obeRl@;#c}3IL&GBqgAtTvHzWTC2oWad*a&~cS{%||Sc|sD zQol*~$XJvHE;tL;rfvy^P>c)5qbCCbhV zQFxtR&^9Ax?IN{Y*${m-q5r30L@(e;ylh}8@qsOFq3>%nfA45q(~nFxZcItOSAEYh z-ed{CuOosDYKQ#@*O4%2qzcM~9>dpd39Da8kX(>lZOOrwrY+6++~i@5c-vv34W<+S zZOub^wCdj3ZNuj0G!bV)V?0-3t zYs5`9PM0dK2HNlRyGf?Rhy2qYlI0@jh>&u&O%EvONIlChrS(|sM)JB^y8_+9Z*?6* z_Z;UN5@)Xp>U}n8owUwg^u~Ap_K&&n{TTaD8QXJ_B7yZJC3!8PK{JG(u0`k6OX>U~ z_d@ypF|7!U^3^H(55Pl?$$z|w$V8`xCFRZ*f$4K%(D*vl_w_<(P&c_Cj@MPoM(z=o z`l`EId=;W4h}t}$ULBEeKkt;TzVWnO4c5wObCD**JYsXUdsRQ~H_t@?lDcB|@mG3C zO^DZg&{6W7ti5k$r%#+`np}Dunwee(-h@?e>TWqoQqe9%ha`ibq&q*~NWIJuOjsfERq4#ogozMEX zbQeJoSLH;4&@5cPcT&uf8YWX#pO0gi;ic_Z}_}?{C?Djiw>U? zMYBpDenzkGs^w1=N73lB$9V);CqYi()5r`7l!W9lg*Ma2)ZitF9fvQM&!{pgC5gks zo4*=OUG(9OJhnNq@p}Mc5b;2`lh_`w@|mo-tK+BlTq>v3#PnJI`q^hR(>(tZ>3;W1 z%YD|SLssg~_t3`jFxlX}R^%<|?;XunK7kzj&5nmM|@PQtrD7xe|_D-Ok%l!Iw*oH?z+hCd+I0vvfDdtCHpw}CngGJSgzF8Ei`XjQ#!&v008BzJ#Op{*$K;fOr%9xRxKCi*_-W$)G6 zc?Xv?9rgA#g-Zn-FQ(&HcM9MH#J@?M_x8Jq{m$Dr`_gLSt4dn5a^|5UQoafo=}c-- z>U;K=N_12!&T|;&By3bAI%%0W;B5AbG$q-HNZm_T7Db-XG!6qyINY>$U|4avr_XEC zM%HI*8Z5);l~p&&($@As%HI^zG&KD1=z~Mq;a4n{tBtz}2>o0lx|gzhtyuEB^N~*y zUs7G;B!YsYf7eiGqMkQ##(Tx8apYysrJSHmYL}lClU!a1Zq`!!arm(KMVZc+65mAq zjieU(>)sTVYKIKY{^q-D)qZi0AevLRah~~uGxhE&}TyZsbjX! zogl46T)T93wulYIus77ka3C4G_2E?WQWZQYfUnQ*M7@~kwNSg2|BvuA`ca1C|TcG4x>V&b!p`jj@jc0vUn$#)4{pl0&R9~#Jx{f4ch zQOqN$kF~8q1qDMxJ#~3L-?6w4Z&74y+L z7;R>KKe^ykl5)QwL*>%Oz~P2^N}HTUl6n2OHes$zGxKhgW!HNlv&TZupr#CNhJbg< z(p_S5MKu`lver)pN%bB82md<77h`CQ1@d&piz7TeHGC<=OE6<*UekjON}^(bFh)NM zD8<`eg_h-2iFS_chI#?{T}$&67e%{F#Y`}!>!>;jybfRir>X3YGxWnN{Hf`A1l(^A-v^rB- zjC%OzhVh;NVA|s5x6q-0%&+(zu8Wa3wI~HQGWwxG9lgeDoLJOut3DYM z;|axwyV<;G@Q}LlVm&B-W6SmDE0vw;n~lZjg0S!b`?~7rcsU+%9<$e_U;bK8ly_6! zizJ(SXQi`!i@B=!!R@So2}z?Nf$y7ZE_JUs3o%DA#YmyFSWQlbq_h9kX8*xi6lv%` zJz%graidx0S{Y7al9$$sYcH1!=@HtQ7pG{c5l%5oJjHp^kE9CWml9TxO=_M7Wo3}4#1|3V{y9@m%gaLwHc`x)}p2xEv z5J>yLFef3Hf8Jsv949*Hk&|ZI9GZLw$n>8y$2=>#(EJ+0%2~McLDN*66P1XWO-H%f z$UC#TC%9Of)Xn3!w!juPpdt_`W-ypzhhSY|_d{c$kZ9*d82i{pU;enTmK0i}zY2-1 zb*xMaT~kKeGX~DI8PSc(4RNChq7?Tn=!j3sQi=MiD{FaZDH)xXMu=Pm%?$3DYIV#q zI_l_3?kX^_p;TmDtaVcTvdxBwHsB%kpoM-{hfW!t@43jn^E zJb_~_482jIJE`9;h!JwOKotJS)UUEQ0Tvxd3BS!AICIxrsogApy3UQA@WTH=a5<9#AJF~a^)A{rY9Vvwo4m||mn1tKS`)5c^nRvC*j-f?1UR16c$toI# zWg|aLjAGteA@1FGoc2nGNO_TZh*~Ux4n(EJ25~`JmD<4|k8@-X3Z%obYG%Vf#v}c;dO& zljJS)8r~U-CLI^hNh%2EJRNB*62vzki$C+C3>GRV$#kCtv*tF%WaOlz@Cg!!p45n< zs@MWF(@Vqg%PU&ZD~m+KpuONXe+ul+T@!$iMA0mWU zL=lj|OZuJkI+QYOJR&tT^Wf?8382H-6W1$&GWAFN^OmPdox7cpkgJ7_ z*Lj?a>k84w!g_(OmpQw^va5U=c2D|u{zM8pXQ;$1Z!JXxR=t@b@G8^ovoJ^?F^OOn z!Oi&hvZxCob4QI6c0qKuk79?$jy!EA5yE9udltL;@G_7p!W4#J?UIh=!Yo)XDJ#xA^vho zvU>q9nx=hnt-_LKTn88BN5XwsSoBlVGUka)G0&cH-d+FOmh7Evoe!B4y6NwTYS1YQ zzW)LOIBHWJ)EZry@vcv~E}ox&2FoZr$(T79uG2H~M;fp3Yj9Q}Yi0_w z*ONEtY)Dmay6+VJ5(TQ5?f5CuKkbgV$9FHo$^M9fTY%ucyeig(v!&JY!(PdD6hUsX zqNBPvr#i*~N-UtW11>}Xg2*p9v~L<@`^QR<6y{Xj7(X^_f4gy1Tezo$Txz9wF(&T6 zvJ(pC%)jm@@BUCfNKWc$@@nJBHQW=VI9X^>odqp>=7mj9Sw_g%0Om64=3S+}Lf}(& zxMZKofX~Oi)>rohXC4z)1i5Ze&lmC2dp<^G9$YR5BR6Z_%xRIy#a(fntLTIY!CQ%& zV)tO?xv8J;-|qP8x+(%?=)QL&Gs#fJzE`2#via6GBZ5eG^Qg(n-W-z(!nzJKJ-q5a z(ti;k;hh&T1d`@m{P`m$^it^yVI|afx{v4e$vYJ1;bC5AX1~yZoaZK}^5)XrACB5K z%o&s>kf0TVI#c>-=zM&`szuTNH)+WGzoY>Pk~H)@?fWnpn3zD+nFbJ^q=CM^k%pe0 zz7C{50+KN3YZ)2p8XD;7=@^;n89`{1`nr0NBz$(k)KbPmmx>LRzT~gxSFXZshvD;n zMhGRHM%pd)SF(C4rV@S=9kN-oy`j(P*WT>MELe1EUHNCGVAiB06SosM3)-SBW`Ne> z!1>*hM3}}9i(u3%U5zcI+-?MSzZVW&vupo4fShvnqlWuDj3Xc|hgv?{3ldRsEn^k_ zYs)}1#qa;R<`Hd)OHo$I@5ZAy>D0J2Vt}+H@c7ZMgxAD3`X1faVIR3Ri!g&BJAK*#L6Mdn^wP<$OIVSjs@okx6$CbSFw-L;L za-K+Q7!`z`5PnO7%e37K0f2s6-1AlJz5_Oh8o|DOuolCZh-M@!L85&+r>#5qfTwEJ z&b~y6wT}J0-};-UgZX@(kVab5t-+ihe5uWtu9mo@wv$ZfGuz>Rd_iqRYK~#byW0wUBw!vXcBxz3bKB+U?S!+TNkJz?bV?O28`Bp=>RVa8|^Gchkq)!z%TJ1sixxcQ47 zef<)jE!mpdM77)w1l-u6#C2laS`UZ^4Isa`r4$ZwL}3t7^H*3*L0sch0tLh1muV8vxR$hgUeT=h&` z+gG)|SV4WKkWzSWjsFtx}rg@L{~rW~Zy>I`qg?{d_I|NvIh6 zP`iywc^)1avQQ`rgkgONxLmsbOM849^`w3<=q^C=R@P%YsE~q9cpgL`1vEBkLt<9L ze5+KzfBB8F6YqgB?~jQi_p{XG_2;_Uoo_IUh|R|OX;~GQ6f>5$ToQJbJ<5N{c|9C4 zgw)ACSSoaD(P)|N^?|=Lx4dtRI1GI|%)+<}9okbKM!2Ntr9mB#&LME}weS@8{Le<+ z-mMYaojf-Whc}CHy&>jgA&p<-(4)%;U77rp+E8exjNfM%NPdnPAQ_=ZQ{7dd6lg51 z?L53wE|BA5qZiI6uzrF^pePWk^6x`r>DbyfFm+vdW}_$gr*!RW)keqZOY64%ui}G; zP+^y!_F3+xtGRb=A9id=kYB8d#iv^7&>@pD&5n9$ljjUxSgDD%V3*Ktt`Z3Qgsc%| z-q`YGi9C1aU%Bc1pAc-9z-xHn8r+-%#l_IV!H)REy!uqxLve6g$UhzPFxhe~&)Jb? zTluKt{qEDnb{l8>)vhajr)A*SB$&;A@-xL^Hdx%YU0vH_Jf3T#EqYq6>= zagGi!1QK}3)8K!AGORf!PK*R;n$k<@_a%LdSB0-xHnbc_S3MUJA^u8lNTnmp>#@a1 z{}%VGZSSnh3TUzJa^%k3j()HueRMEq8IA4V1kubv8WB50R{pnlaBkJgOPd;~F)4Yh zi4a+l%B_SAPgQX2yOUzs`uJjV(?5D24IN9`sS6ViAvT#N

=sIN-S3U1SDmhc6Nw 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 z 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

o#RUH4`yeZqS4)jB>%m1@9rY>mKv zkaY(1|Fi^`|I-q1!CFEDP3$qFzK%NB&Y-LFQ$tJBz);)pr-2?=H2_NoIwl6-5QdJ4 znSrsMj)uuka4m#>yz#<1n3*^4Z+y(EWZ3aakkW|Q>hRLGZz}e@MwNhVRba6u$NRk^ z5b2=3Hm!Ho$pKF=rN`ntQI%*qI_Osd53`Y4y9O1pb7213H-A+xS+7y8*U^8y)jx-^ z=%Xnz%6K6gzX~t2ngC9#-ftX2+EWfC-TOkam(dmici5IVuGX;MA zUSDhv$P|$yC8s7d%h2(`h=Hkc8t3UV|GMxVnqU|=Jo_koVHd%gWn$HigR5mWdS=nF z);$sJrHs>x{vE{0)X}}K?R<$$R)xW`(-Dm0%zJJTV`tLtB&s;+lv|#9MWdA=7Z|;Y ztw)!G{&;)AU*|#CsyJ-eLTi6c1Add0g9)`3B2L_Fbu&D?R0Q;m+27{9J{P=f_qIdn z26j%N>b-5#`QzFp3P;qIl!Tr9{G z7bd1H(4vuYf+)&vvbu+4eR&b)L7dz@-*6gD;To8JqN{31^y`VoSZ%M9pxrp?!t?T{ zfgY9dJN6qldtoqSSJ+kpH&%W(2N5t{?ytVPorM;llHBnWQ}B3~Q~ddP@NM>hUrh-V zpY5!z5I~$%+Tn4#yLd961ls#h^pLu;XFWmbAfO-@T4~R>!AP0-@FN_%)p&#pYa+e) z*%y!vnGs@Js?Pd7x5Py7Xq;8fcMr$xyZ8l@$21|@8(gDXy?a<)K2mbd4SnAi;f5E# zVkH~Fj_%Bi;PcU#Ve={^Q(RGp7plb6OD29oSLRTZPIg~R!}QB0D$aC^dZpRnc{hN! zhXA6!qrrd12} zuu2u&|G3j`hYg#?{DK98CHS^f5F{w;WeyT5199O_$wLN>-uI(!8&%0&JiimRVi>9( zPn*)7WW?riVvNWnFNTAA48>G)b47on&1MTCy8#bQR?ly)eH*$Lnl09W4f-FblBc61 z`wKyT^_aEv4~Lg7PMF3aesuJwjD1 zqtXsc%ismCKT4q+Nc}H7eCNH{D$Q~@%$dB(yT%uoJ9n+^j98P9zWR{ku%A%{H$spY zo1uDeQORI3KlV;H#y9NC_9{Bx6^rxePgDl= z$?i&AT388y&45LL829VWeDnQm-}+KJ7eO(BI!` z-Dy09qgueB)ba%x5}_@?fwGg8)R?}fG?-C7#03tiO7Oau|EWMLWskm7R{zj5WUBL^ za_M)fZpsLpRKPixC|v!zBh8ma+ZSiI6CgahOM%{=N;bt%_{Aa-BV8W$bl#R*h*89F z3f7`WA^G|CbZC&CAMb75NHUx;aug9}S_rT9MiyPEtl##&rSc{I?8K$)ceX;8 zvQnP+-{&p1NfU(z#gpGg!Z3_9J2+y%EU0D}7#5W$es#&_>-#nsb_=pwKXZAkd5 zg?(C8J9)$>-O)*-)n+)qs=@S4e+Z>|7MOw_GT!oL>aFe*A9HD~b2lnkDY8z{RR#Wf zWQ+p^X+heAOH6cH+u~GUUfB#op9oZ*I_vT3fJkNz|7t|C;x+^S!b|&FSe~brC#t2 z%Vv21-z|9H&ODOEOa_Yg1Kl}ZMKy`D%aqw?aQTQg7*Uk`HYN{^CTIcP`)LscY!-La zMRNSfOblUI(!x#Y+8Hl5nZiGUNzS|w^bji3;G4)zZNqPrTMsq6aQnYWQn5|&d`Zr7 zrp3&GdLptg&`Udw;Q6fOQaaY2S?apa)a11j(5~%I==As|RBgl2@R?wQrJH5%dOu-} zQ5zU|lsoS>SAl&aQm;83ocgCXALk0^+IHFU zz*m<|fn);3pugL3rvR)!_wVA6e%Ju!M9^&MeJBA9YttJH{iC!+X;1zZ%sHbdQO*4hL7F z2bzd4z|1Ed7-Bl%oTjXWQ4o7(Q@(kThR6EipTR3Dvq&BM{Zg^TJEC1Nf`xt8)zkN- z$4jTWuQx>X(Azyz_3SsXyt-oMPqIWKfgb?%U0Slia!S|T(CjKXOU?u zp!iDEt{D;!#;~V&MKD`jR!r=Aksj7hp%2jfWNNAw$XK?+l3tS?F7 zH-k4yjDD2$%#^C{BZA+>tH=(Q-Xpl9kS8#=5MA$s1m7ydR}=vl5N-{P53be3=W7p5 zXH(Z)<&FBc1uqEZe8-h27ME70`aY-v?CI^@mBWc|&NNx2TdZM!<$eqJ#?#3eJ>&RM zx>?KfPhmKTKpP&&l(UOU+wZd_oq>x3HzQ+54*k$*BmJw?4Ownmn4}(Y@IWC5k+1 zk+DR66&YeK2}=`d)7?_kN?nRorz(xXD4Ies%;`S$l(U3$!7 zr5u@=GT|o6QAg~~YD0LQa&%$n_6)g6K?U)_i+YI^4N-0t+|4a7OY2j9bP`fl2FNvz zR|{NfASNXc3lAZ&{@6T!HUcsyMpEIj-)ELAJ4GKJ9rd3CU0TGyI$h%iZYcpdE8KAe z9EZ!Ggr+yq-pUO$d(%=0=hT*&x&-#>uLoxx=?1KGe|5%vK>^`CNjAy-x9>6%ze`H& zvd54mUuN0X1yU8q2O8ve?X+E{bGp}gA>fLxc)=W#^rMCYL60rNt7vVy~VWp7ooR9bQakt8`z0bf~I6KZm{B^v^nUM;m`Gw zWuc2^-7GlfV^Z&Zs~fRS!i38Bx0pVN;~16k@m!k1Br|4VyK`{nm!X-M`!C~Gvugh| zBZ~dBnJwHI$;-b4lXMYa*p`d}o*Wu+p&^dFoqytqx>{10U+7;}U^Pat zLxVL9;-??J4nl>WclIynaqC04An7He5(yU8yGnrp`1J|hcfj-W3X@N%jgnQLora5G zY7Zv(OxFeun&ZjZt<7h}51<_rCS`N5kU~u~&GB63zl>JS#ck9vE>TTGr0{wm`3tT} zvlRE`%ExE2iqTpx-IP*|QM6(e5nBt3S4dCb#P{nGZ)%0IQ+gr|Bsl9m6NH9C0$EYJ zqNexyn3Vp}tO_z&{Dwyw-8UKGS^f^JX*FldO$Rq61f#Q)|4zp3-$YO)SRU%C>K!nD zTFW{-3nhzQwcU#{VVZ@ug@%4wbx;GD2TR%4q6v~g{mz6;COvKzhsuE>qg%~-*uZ(T z5u{fT?KO(Y9FLl=-?n+xjMkDOHMhI%h(%Ly7+8AR@lI%ML=ebuL84}ZVa$pplO(Tt>AVG6dCaqzR zftap?o_)yO_a@XliOoB1nCwPV@*KoY@X0x{y8U8MKa5v4bWf8fK3dp3Mj|0Olh^&Qa`MkC1Ba?C77s_@7qR23&s{S9~!ZO8*oz zA)ZKMgt^V&KU)RomDpk&Pib07M}Z5BYxRC_ z{giP(;;Hht(PfN~jwVVfhmeMloq9B%Lo6Wb5=7`^H~R>nqIlv)s?u@lz(p? z`_dk)N!B}b*qa#F6F9C&tTEHhA>0(g`fRBcvwLV4?o;i-+#l)# z1vXud21r06#6pDMTupdN%bX@yB!mrqR{gD;^@$Nf;*J=d0A(3%}zt*JNRkJEAa;s z8~~;fc#nEKHENjEQ2O=hv=MIkvSw*#8f7E&)^j6RE2}{HI+af}npSVEl8UY;GXcn@ zx7A)&%(&U2nC|!D=>qMVw^f%wZ`?Kd@bW{3FKz&{L9+eN;EIO+%U@i09;;6coV$nf z3&%by{6pf=n=_}k_g1QNW%2fBf{H9eNheyAvI<&+wByCk=PZXOKdsLbyu^JNy}mla z7ZZZC($J+QS?{*pW3{3R2&A^(3k)e*Nwzl3+ zJ+Re5SIbCG^QVTcrnZ)jt|pkcsi&{2t*5C29)R@D9W^jL5&p^R-gYt!Yo=VtoJb43 zArYD;VVnA~DSJ4_{DUL24{pUK4jWsoslmtoGAykfH>> zD5{s!FDvaa*oAsH7#y?jboQ0h-oNqI&3Is^V6Z-=+b^A9z1M!$p(&)`aPy(V;ThAz z4(`t;LBx}Im;8LngDRPSIF*T6ce!jpUU2Fb5zjr@uwP#Sh)_HA~un^NuFbPnDg&sx( z>~m1bhoY9ee_9SpPq8^kRkotC-dM(#%YfJB%0>ogWs7p}JTE^0t1sx>-)yt(eg|bQ zz&Pa+6te(1)w2>{m^Wd|3IBa%xosA;@R4m3)uy6Te*NrBVgW46wcFex?qcce7d z+WHMX?+8ij&D>tGBL?AXse`X%;hS1F3ul)Hg=xW&2SbGBxfCG~h)k3Q8YN}ID5)qJ zjo}%4WmW17OFmLUfcD^kXS;#)!y++4WbnS&z(K4*KyX0Fj&v)uwgVKj?*-FNJYbi7 zT$2)bs@(wNzoNHfLfg;ZFV=AEtg(O=A>&EdtkJ+B<%9&-1nX=qe78%y-2}M^RcDCmlOQ~L z5YrS%@iE>TCX(q7YvOpzShqI#+^!7Pf48+;CHhObwTe$AoRRTfuMFKj$=X3lucn)S zj6V?mbwe@6ypupu~O1-qiD zt#16+WV+`(J5rA7IWx1Q6gUUtC}zSeMz_lc5XZhqb~;9{O`{zuoEzQheW;{_7{RHa z2Wz_Z42-{D995E?7LFBkAEECIXwk^_*UXABn%|mFR6zU}wm|a?z5QQHkbE!KqHwM`$)!gAvV)rwh}B-Xg{1RYmET~9ZNsu<|R zp^tel+WN;*HWAP53X-`~{@W-bYg8Ti{gOJ%jLWu#)!?A=rjm{LHf=}3>loEVL{2n^ z%c6CHhB!@99-M;`lY$Y)3>Z=Bel)AA5Tj$a@&CAG^18bZ?DN&m+tc$gC)}V#cFte^ zVNYC)0N`}4WGZuCd5!YCZH!-}p>$%ao^>fWOAzcf1n}`mo{WqyN4X>YvpQUlpa4S$ z{~u9j!PQpRw%g!^7I$}dm!QR=KyeH1?ohOpQe28_aCdiUai_QjcXyYQXN-58FTWro z*?aB1u65mW4*q8|rbk~7?{dE~^ewiE_1xY()xatyLY%_MucvsJ66>PD5P^K_TS0sk zO5YZgI^YorgRflPl1&+QbQdnFc7#5z@rU+{-vRKh5N&IZN0?WVS7X~2E}>GaWYR{9 z)NnYSz~%GoI>)LViwMZfEFN_2*w*kT_|WXCJ*m%hurEBxBx;0bq<4*HHtOx}$r|a~ z-eN-F{WNyqj6cVeSYsv4u35~lk|JL|-zU2GFj(;25Htyd%KH)krW-0<_dgBPvApS{SHn44Od$hFNqYO(?3 zA$3Y2TXRK_42GU1h1rh&7+cjJzML5QlG%FJ&eA)lN(M50b&b2$?ai(U=2x8|fxDb= zA?YN;s|sHML1a!O6wW*@6tYB`EcTdC(LMj3?a+v+J7z{X-!!89)Xk#5OZ*T|+6cYS zyDUci$*cKNQuNJBQccfzGO?qt<-GGvw42ct+;s)zu7Qg%b4wJq@Fl8W7OiD;+gsEv z-i8&9lfk>3UOrI!(NLaZ)Ak-&Zv>u|pBt*!GeUCK$SCxjgZb-&O_92n);=(KUS#@& z!|-H$upQFcdb!4h!i`;}p1R|rp7OAhLZ8S$LZAOJvkcAdgG8&|>a-auNd@dCOK3Ky7Y&>_3#~mqy6l0!3l$$!uKqoh|rA}*a zV#|n5+kFQUIMPd0$zl9I+!-YH4B%PW`9_J0JRRMl+>8Yy;_D9RKCfR^z%bD$6_ltW z84O=imK5*HoqvmmV(kGxoYE>G*NU3eqTTZQ+Xt-rNZR_71`Ri^8# zCZ|@ehZnas;i&NfETkR99VB?{?qcUtfREGyZ7B3v*vph%N2HF^TX6z@LQwyryV7vpT(a%SjS^yD1E@nel~mMUa&{h~uO zER4PC6(N~))Eofl$|C_Qn@1Y*7xN|LZ#K{_BzR5eDf#MD+Kx4?U1!l6pAzvTc+px- zr#J-zs~7m>8{&oaDR95}#5O(|Y_4_u-Ev$V+wlQqjp7zOvT$rT$B-(@jC+!FnKnj= z-JKBd4Fp&C$GROqhkb&{ek0Rs1IE~mx}U@nPr!H7s#lYqDR(g`CzzwKjhZFmQ22%a zP-b4>;M%c>6%lMByCfBq&?$~otvm^@PTX<6yTseV0EiaYP>EkrfPUN+RhJR0wuW}5!gbiLY2&_xLTBY}Rs$p6mh~n%xg4kgaUg3* zy$EVxg@>u^%f?BAs9k{8-pwSN`Fdkhs9;pW#R zV&yLpIPn6-c$2}!e-=W=pL|TnIP)|!k|9m6fRBO`Y`VOD2%RiIm)+l({mZD-)aabs zr~C^jb=EmdF&f2oe?{CYo1AI--@@@QQkzAV@@C^Z@f=k_n$$S)w!)+}y%Gf(E{w-+ zAg-J@+YQuPtmCtg;cVydGYlUqv_YCdX7-~0IWR2s7ElMc_j4;lzSls~zV}<{STz(u zC4@>vsg?jalzJ~|_p*wnr%4(2_~R#~_|)|)yy*_dehnuJWgej@Ne|6}qzqi(_9>M{ z#@#PJ=D*AO2#^tB(~ zF1>c@-s;PV5KUd=mv+(pqwtW+-)dl%nFz)&*b`)hMP;Fgoqaag&%-yx2`R)*tjs~W zHwPFz-%w*rFyM1}!Dg-=WHA33JmkMf8PyVWyIxtm7tXNv{T3eGJ?$(VYktm!pPXJ- z++!Y8-BM{9>Ezz+rR+y1l5vT%ga0GL3iz-83%DN7M@`R$(&7v<@YTQ>xtm_X3J zymcT@bQIUh8LOu*%C{2-XSdVY=1%%%b!eR(AOyooCIl@_wVu zDk7&WU&$A9>f-M0G#lOC{tNcyE`nt`I`5-`A%qw(G}na9t4@#0cK7sx8nXxHz&Uf; zxA<8eh41yBt8U2N zb+7JgQGv>RN6V|Nh0k%dfOPPcK0+8?|J}iob$%!5BCG$W=&bebzJh#pIqiyb*F$OL zVC^IO4Q72HJWix=@aTp{}-pv9^H`be_UQ&(zoyWN2)tW1t6J;1tK< zOf_y3qO&vhlE~~_O+_0mmA`b~7yeOvWt=~utpDn0u#S;G#5pbGhV36y-b-{!<1>-> z$2gX!rqnGR0!!2NXfDNCvGZrpy;+)xh2(H!n+c2oydh;&^86TV8)hJ&&KM>LCpu(5Q7Q;RH&_X(WN^ z@6G6x09i;{KBg(@$rBU9{&(rdvjQ+)7pu?DmHSn^+?+JZ3H()n7ROp-AxifqEiY~%$mN&O7JFoq4u-yY+n9NUAp7I~FMyZ~kO9J17KQh! zTHtH>D{s5HnUV7H;9X&*wc+zjXHQIp_gr=C%4n{??BZce+$Vm6#lw(lIt$U&s$<2; z(n-7ThI8CL-;Fy(ZoVC5`|J7Jr8wexCszWJGe<`2U;tBP1;7_a&Y3Q9aw&N)jLCem zzJ$j@@KVOU2YunZ2EuoUN)eJ!-jdv?{5aP=0aqtWz7`2kS49?FKh!&6IhLoR$XG`k zuw4d*aLwp-QyS)kM~m2nZIUKuUX4PPJk?og=*zc<3EA|=;F#!TOUJGAy-=?sRxg%; zV4vTf$c3f~kaRm5^N9)nxvm(+9#IFu3gSsWqnMFkI~;J2zb@NBG8WW#V69n49&At6 zo)JPlk@Md=qzmnM&DnHKrVD0YI@V*K0x){cJ}nlmE*IIb#9_mm|P z&b5i37OSJ2c(4&`MXKRZ%NsMZr39KC&wLXSz8!}GtjJ9NoeO=kHMdt6Uw`G)Ivuw?MD14}>o@=p5i#r9~ljzoChk5c-W6A)yln)(;9 z{X>mLE%bE!{-XF3BTnF#YH|a(B9C_E#psi^(VvQUnC%F|;br)4%s| zi{Q}vTImmT&nLrc%|wZPrXSt;G4XZCkbh2lJ!_9SS#opV&6@F6f}~h9-?>^Hu(f7--~B%p>ZK>!)KnEm6!7sRx8-@_8ZS3?vG?)ekt@q?D}vJJZ@OxPxjg@# zTaQPZNL;}|+nQIa^PL@h{%cP1dONPnsb$ypZEyyy@xSTsF23BPuL}93y)ZD9xtC>9 zjSSQ`hu@FDL6@U)N7%2=e=GRi98S-cqwKTD=BUhW!NyC&WaquN;f3xp*Xojn4f=5;Ps<7UAq7y($IV{>Xz%PlFmmbd zFx&3)#q<@uY{){7P{_#3Db-!?Z`v;Vy5!{R!i&uEUYhT^4m;D7I+EdK4Jf;sXnRZj z#qRM8Q&_p|4T@&I#&ni#b%h$EmwP_hyW}zjYS0(a*K#P(D?XrM-q1cu&C9n)D+Md* z;Lo|+QddL=MhDH;1fw&Zz^Ao_bcPZcdTpmwZSZG@^xHk^Y3jF9+m$+@^Bf@lpZVd^apea0~nvLYp*aGp>VW?wyEU z<^nSxQS)*Rw-*Qe7a*v2N8|9(UpxjHWR$djI{b9S$;=u*mW)HU!fpAAv({68H zln)Mwv;&ob)BXIL~Ro6IGiucu&yNn*ANo^hEb za+h`7k*vRbtrY)+;zv#%EW_s z0BAZPixAc|-TuT$c;2vb``~`aH)DIXQceBKKCxZDPO%gNS;c5jwg5&kp8Hafgv)5a z(Mxe1%@lRH)&icuCd?#H<-EWD8aTEaD3glTxIaVj;aHGhQ#G^Dj^7#mLmqSk&`J2!3YJsPN^D`r&vA&wZ~sTu z>+np=b@n$85&x*RD@v4zsbykVNZgO!G#1zeoSq$fZYI(l)Nunpx1=+t)X<63iF>&zQUl5JJ&q6OtTXSAPY$d62eHik+Ou0f3GHO9 z&0qb&jN$2ayjCg3R90P3TAfik8Ra=;+KDRB;?%*892ctK+n5uM05>(I_*IfMFz1E; zgTajtVL=#e2gHyl7VNp_XzBX|WGy3PVB7g;+K*P|SHvz!M>t&XQ@&>TPRz^py|OhI zeAA`>PTFw6(EsTdvJ)b6b>DyxTF4hv`cnxZ8G)m5Q7uT!v_&FgA_l1BQ{~kM9Hi;m?{4X^7|y`qe6lO^mD))ddvPILyAAkets_Df zjASQYpp@C?sXxBa&pbEwpcX=GfvuYOq(?r8k`A^_hSCA^j@#STwh~I~G3cl17M|E6 z?RIk)uJBNm(g{nS&QASwfNl3%8XvIf{0Iju8Z?V69WNLRa>p!?7N?y!fS-4eWZ8(? zlP+DjeQ!U)wACG z7BlFD+ryiJ`qe$x`{^TlchUt$y#}?nVn|*o1(7u3kr(24+uGHQb^HB%n0>GD`kLwwek`W{{Nkm*J3Z z^x3PNaa7hhZOb=#e7?R9v2#`28W|;6*=k=?UJ!(A({~qkFNvSlP8&6r^VybdCH3!& zBB^gjdnU)SY7n#GhWzNsavepL zCoGoNEpU7wF_EYy*3p1vdBpS&3HS(|&9RJ5H)h~0dxB(5UeC_96^784ubUVQdfaN{ zr2Cop$jwZgVb-TLfE;_ldiB}-Q@qDr>{s^a33WMnb$vv+0&Pn9fxUS8=P5)o>X4^= zi#$sX@UtoK1XK0<_x?6$n&3mt{cl4fA6Cl3Co633{#)e1v#Hx>sb0Tgm50)4n$p~a zWkxn^%P*WM+a&uMzdCw^?^6tL5ao15-oW*^=*pD%J#;3ixL!sfEX^rG@vCXx>-jDD zFv>y_jLq?616Rl!@(h6j06^n_Tdo%yO7OSUIa|WVB~n)15qlt8vopv;w=md5>LV`@ zDNavON?zuK)_i0MZ&8+iZ0CgZPWBZBy}d{~CGC%T8c?5Dz13UGJ+1PKHOKbs(k2M1 zBc}r9Zib7)hH>Uop_lHeBSq_aH{t{xrhfI!jx^b`*B#SI)RO1D);S-wg4y(*nwu%M`h^x8aOy1x{oh+{HI$@yoQQThjt z=l+qf4^fJei^J%f*e~DEVAhQ(_x{?MY{_$X!o_F0E{XTTLuJRxzEeQKzQflEKSE`o zwrqLKoqXu9VsGBV>VYzyW!6o7OR^ZP+#TW&sI&Trb&aV|nL6kzDaU?-vnWsZV60xZ z;PfR0Y&IX^GV1~SXM*@|ZW&v07v!IykGi}dWrVMf(4jLHgTvP;+gp!89=b~GsQaUp zwx(uv+O~Ux=x`!5<^7-CpsH;11}suOk|DE8lG4B1}|75Cv*%m{JmdaCrv@oD3S^2 zh|oHYV_W!3PVSIjf?S|u)du`zUUQ~5D{_{21opxxYI1x`hgK)L1s@Y75QNL5)FJR~L7Z^lZzd<7zCQE$U zpeO3LmX5I6DC+JNiIQ~cQA@_6wB#AFe7eJfNR(*oSj>_az~%-`Z*_WLJ;XKo9lTtZ z?Ya3E#$K~{$;CuT_QG4lrdV+&HAQ+~r>E>m!+LMbMV9DYF`gP{Jzt7`{<@r2IeJ`~ zyQgwX2KDzM6JJ~3nZT-A{X;#igqUmKH>CdLz<|avT*(~BNVaecZ*VT*f({DJ#J+qD zjf30asRUVGdR46vG`H8etBogV^tARLI+b7OyyIXY zJI(qlMNzrZ=r~xsL{2$=Hxc|#S<)H*Lmo~lX}$ZoqublAf#C8?67lN(SlP~%59xkE z11UK1_qnJY>JpkYTAHb=GE6lcuk59>%Nxsz^qP_wSub0tw`tA4M4^VLDpRKP=ZoL< zKK$>{xXwq%M+kwg%SnD;|8!-|$BK1v*^37BR?p_ZGW{z^%hFJW z4ZlU|(xPq!)lvAMZNg6O>p~y|F8V?O%}IsIV+=x{YZMAp0zopapZfx!W0I2GG0HGf zMv#m}QQZZe`@NTD?%;_+lsUC~v$5WqqMfVPIN1@6aM~GesnThVfFyZfTFt`KOl65? zW>mt)gjJ<_8o!mWmmU1@c1Ql=^>Kf_m8bf;yI#7m6=nr{Z4BXv=pW8Rf zq+qX<4DNaAQX`;RD2A?BEx|0Uulx7o!+w2C7O~w97^YL z9l}dztSaqOy@9eg`qG@@8T#CWjQbK@zd}+L-`W6acCjgP^s+EPZl6wbS5t}j&5|VZ z$ojDvYdlT;dzwzgN@7Qqy38J6X;@$ zYmij5a}mTyC&io2B;>lz)Nuw`dnxK<56tW2H;-es1AJtD?BQ2>NIN-3{m`+z`Ngv~ zK=u*3Q!CBEeE4L8UM#YfrFn38GLA<#{>|x=x)6^z_x_8qY)nBi$(Rx)ipf!4Dao%< zk&lC}rTU|gbe+x{8(Sk`SVg-CSwpc%zF6~qa*@tN(6#4-JPmX=WtY=RM8U-L9Qn3) z-N4vn*UBTVJr^M? zt*RZ)n)uKR1|e3IdVklnzF{@Ojf+4ATA22q;Dn%mOd$dii}kWjKXLNZwHM+Z#=D&N{c9m%dSRo3#X^+qv zpEBX)>14WX_X7`Irv4|9aEuTLsyALrOqB>QCC>q*m=dso?<4n#j-UTY$hvGj^MZj} zVHOBIBOLt7Lmr5NVfHi!go1RUNxi{pqj2aqX^NG)CI?CBUzG=v=a@V3pRR@NL%Ox^$r$FpFJq<_z|MQK{VqE}pT>A9zg62&?<A<1 z8OJ8VIrAeg#dNMTB&9sA28)ofp_DKZV9rX%n5Cw~^5m(KLAe{2NC<&aNVwt_uSyjM8q9xSdZe%^uIJhIZhzjCDe1h&n){rz z4f3ISZRx-cc71e5k#DHGw;WB8v-Q|#0jLDk3X&qRUqUg?J^{_HldaaM%ILH{BkN|b z?TfaZ(Uw`7My6E5@#zym!?sazY7dNj+r6Er!!z!9e69!&TSDLZ%7^oU=v1esr3}S| z4Ct}Q-&Rl7Y^PL4=ifbYvp)%39SKiU*)sUwoo$`-_RT!(6u;1H$*nuIU2+XKb@|&% zIc1W@RYDsRor^<=02)Alv*LXfKRTE`fpv+vV$+^W!SB0Kfg=_c7A0ERlouWip>&E{ z{j5RgTz; z-;?7kmv?*no@{GF=FTpYI$vM#j&!`T-u7MlP~JzxB)jjnCVg!oLg4Kv2_9Zv`<%3| zL`)g-eI+*0#d_3OZB6FyrgR}Vn3F;g@a7o9oS&$7nWOC7kq=31OHhC z9dIS)F6Y(#i_7;#*{nQdY*+9u+IOc5TwKRWCzCBNlSn2oTTbxhOnWQM<)t>7lHG>3 zTZ%>bk8-NdSZ2`dXf(v0#P^z7kTx6s`BDI)Ik~D0JOTtuf>zcP`ESmMY{cw#0YzKU zn#}HRZzW$_Cz*to-0b)Kw2S_OX#)VTNlv82wVuTR%k`D@gf^SruKPCck*R}w{Y!_Y zN~sZKKypU;YPYk9t&;5-vUXQTZ?#hq{KN4tJGE7@0fg6{O>2tnC_EFRF)Wm{i0d-}FydVe=Lh|RN4hRNGY?*8+W=^Jpire_Ydm^p6oR0L`wOEfDPPJkFi7U)UTQ4EjDKDS%)+gP_7MVd_6f>>u>!_tn?70q0La!A z$?l!{D<#13v$&}a&pmbCYiYlR)4Mz5O-q3X`_r+hT0Xnz?T1R>1oNJB8P7|M0#B9g zDoI4WI(7p7-l0vc8U89W{{k7` zi{%bk?PcAKd|2z9fbr=@zmf8%j zBuNH)g5pW2BH8QkMenlvx7)Gk?aJ^|!W(3Ae7*G&8=0veaYL^XACl!M;+4 zIpn8L-3Dk%jSRv>$|2$XK66wK<DkE*FgehN^WA2yNnJDA zr}vA_E4ohfAO&S#DpAsMu{Y}oB)$Zcs=RUXV~9Aw(DnFCAice%P zEiYb5Q-&orAxWi{pGuKnb!+IL=DO$ioL*M-#Nsz(H^#(oneiM+sAKM(6g-F#(3waf z1l7~~#>?&exrvA8EiAi~`Mv!DC80uP(vVebcB}45B}a@83AmT2vvB*KMo{2XOtpjG zHi+?j@ex6=Htakns+7EVH(#mpTer?v&WMRvF`Oz9##7Njv3Fc2vg<4uL9fgP;ZxPy48CZm#^MUqe=;*hyh=%<&X+<)5j_lHN!&NXyx{n;T`Ed{5F81KyHZ zsPPbE(klGtCGY#TyBH?|6Ro$!*syq(5nO7DCfa0?L8t3?8yh#2|7Lsr>4)3xr?d3? z6zq(b@kf5h@X)G3FLYPP1$5O?IO-Fo&46rYbPf-bx^p#W)nDFu#?5MpIz-7tb0BPX zgwKvCxh*W~X>qaX_y$V3K|TSgTh!9?6V1C5-R#N79~E;&dackG4DT`0;ghrbM&jWD z56aI;@l|-Q&mVJf^?jBPy3$qLhDhgXIc=Tj0(_MgE)g+B+BzVlZ&iFV25idE{g-6r zs`DzT!hHP|(){nIWQz_&6YeiB5Ro95lGhXFPF&|CtFm9Suh^ z90#|w6VK*(MdM{iJ?pfYfV?Yfmi7`E4+WaS!ElxZm8R5NxHjK6sI>_S=j5iWC2$Es zhJH+`qQmRIOhi|R%6mpKm|dm1o5R0 zGrR?3rTqv;NdyHjVeOdT8KD!3&X2^e(^1@+88vATPP3tY+ZN_+{UR-NWH2Rt zoWJewDvVz%t5nvyrZPr0lQA^Iq_4lF-WWyIXYJAR#BDEupj%%>aj-m_tfucX-`anz z8E^P4^yxpZaYA#u_bmPSCq7Tdl{9iE5wH5eXw8(r1$OrCCqtRx*-7YM@me4o=-63l z%#B()G-*ax3WOO-z^sd^jY8|LN1K5!v3c449_8DjS-jEl(8*M@V(3ac@@Cj<20?8; z_nb_|w;LwwCK-j$x!hPd=@CfMtb7^rK1_)>Wvq~bAtVbZT64Dkai5x^@M)qc`=Kb_ ztT3pX$!rz;ht}jpA4&CZm;4`(gKHk&Z$K<}2W4+vtN{e?P z=BuK?S-sdQ*mcX~?t3BB{2z?*{^>`vMFg+k(}s#r@EB~4fHI;>w`jrFoddRPf9Ygr zH4U$vt8Y6LuxsD+4=)b>>on3(z(~=KCs@9b`jyBK19uNb|3X)uo%GpFNR>?`u}}qoD&bHiFJr=$b&|2@O3xkfFYg9yEo}Gf*=$OeUR6fRUrPNV+NCyvSZlG~&9G7<~npOz*$2)Y6%J1tIPN6;T z>Q|a@203$y0>5{_Uwkny0G*BtZOvwkg$2N1o)JVYB^8(>(Urzo~jRA`YYPc{juC#V$Yl>Zw- z#MS?yeS2WTajgH8QsJBJEMPD|r#xuYPkU3@-E;aZY!qsR2U9UB0*FdjZMU_*gEOD! zgvaQ&ipCuklx=yeiU?A${No1-AdvdJn6|<+r8GwL*nRU%{^SjLN$mhj(%0Ymqb4GB zmCr09zCdk{x)O0=i&{J$#>?TcD&%F<7*Z@#57s^o2Wrw5?FUGlg(DWU+)Gh0oNX3!#(6M?JWPWZ?L)4~M(7r{ z)u+Gn>x)WV0O|VRH|SAGDe?ubqL`cgdxw)%gAl>GtJH;&fzOXnE=uxq$qBK+t^foU_|1|9* zA2N}(f7@vN{3$K=PprbA?{V7$cTJ%S1LSLkHTqxcFcq722aT0MfhtIajv0Ar?|h7{ zBh&~vy6pQ=*{@ih25HfL?_}9T1T~rT){f$j=~tZoE?>9DecRMfsi)PQi7S!)0_OKl z%MQ?eT(IOkTJb|Mj^Da1uiJ;>H_&5WtF8b~S)A1m>c}v9%?<2k2Ki#T{ZQf5#-pC;2tpf* zWY;DET0DLXflnvvG?n`YW28F1YA`x*RKRUS9y>N?n0WXwCA7(9GEg5chh#MWm#h<4 z!E|Y;;=(a2q~4aV82Y`|C|Pz7EK+P|E~A)u<1$Nztsj2J6#Em-nOW3+LxKV*b+L@U z$Rd1ATrecpaA$!)N~dNElKxe)BkDdXy+@d(%(PBLzd#Jw)dyv4;u&2TH^afrsxdeV zm#=jyFUzA|$jV;J%@bZVx@XxHjg-{HVd2yK`w! ztO$R%4-=Q)>ng?zBiwZaGMMM8saKWzhn`ti81`tp;=KjhOjdI&!M!LM^;OFRQn_E^ z$Jnvny?O!9$?DH2!YyWzie6aBWIpn+7n-*3EE!83bH3b;!|}PMDgAy1FW^D^YWyhu zeA;B~HYq<#n6b|D=%2$GGI{BrEo)4yMT&^~lhL^*xv3l<8N5dFEZ`jkR95xH|5y;Y zJyS!m-J5cz++V2PD444@> zIMpD1_UJ#|}h+HnhrDx?dz-l-HBc^YM$qy&0=|eZ2ADw;1MXc1L zrOG^Rwx?g$BG(mX4y@1`Z!!?iEhl$53McF$T-YYiz;FQDPk z8d=%<$gafJIrd~h$BY6i{#-%}8DPgZD=WLreD2;e6T)X(HstwaR*~MNllh5*ljb9- zbcs<1H#8*pB4zOkUo|mH!NzTtn!o2~PK=)$vs$82b{|f(BE+TG#i!_a+l6YKNXRWqQwcyjbzl7a9+=BCekDMF$-{%aRRcOvSpNsT}}6{c5E*N87)*-z6>ZRN@i zENZ0APR9;`pDlHfVb*%;&<28Jr6?;#W$k-Ar14yn3v^%Nuhl$1Cel*$XcQjBLXQ^Z zrZK6=fEaWevLsI5b4!&pWdC8x`*!n6Ak6O@GDL*QOuL-XV=1eq>tC+XB3ZALc$2dB z4_1x?;Z|HeJ56X^K=p@^k*X!JS8uf{hp*>4YJm@3EHi+?Q zg!vx7n(SD@*=)N6!u6YGdSrY1E8U8KKzb1RFnyLHcE{%7Od(sI(0r|&Y-Dx=E!AwJ zyA`)(GP_Rwd(Mt;BI(%?uKyJIjBL>DAibW>%vL#6wE$g5b0uKEz95a9^ew3mY)iSG z8-{iHXCAqnN@{mB-?%q7-e%TwE;WAi{_8n0U9{ZeE7j>GA!S#WC2PWqZ)gTR6CcWO z?YKU1AYxUY(-PQCxk1@?NE{W3Aj44vph!ul#W%Qi9pQ_dt*v|l|0JJQppB+XE=6D- zNHztQArV_KeWqq$AFd`uV``1eY$nx%oJ#imka`?>>)1IDSf-S&7O`vjlDmlSHD?6n z!#8$H<;494L9Q)WPE<8?3VB^VM?U3o|Kjvs9IyB9( zL%V1q?E~vaMZ~s<^GaQH;k{3%Gvn|0mYXv=k^oi{Tm(Jxl{gH^)<|z0BGCrUdlIQhQ{I5(bfwXnp;3o~( z5{tBeyPV!s$Q5F|;afV)4J-{HZTYTtM)x-Bl-zAbK+EQs;`N%rrKIDWet(ZEm(;F| z0Mf#L-vNRcS{_p`i|6vYx(|6fTK!t;9j(wd!VK}{B}^m)6Bp0tL`Kp4Va5+HQS{!T zkIz;rLzV+{JuPn97(}l4x` zzTgW5#&^;JYwp~%@MYCY94u*mhH)rJ2}kiWAMAxiSsK3%o7YMC{ypyKDMWKs@zlsd zi@M^T@b={S^F6!0C_bh-z7KKv`di$(!@D^ilo8YnS^b&NhSluDXMlUy416u+s?Q>F zhk$*2P=rozB(GzOL+k|&H? z*IrBLRRoTGk)(0V+%|?%>Ay8s&2FU;Nn}vzp$u~=Y6zj5B=sM^L8Wqbq? zFTAT%sS*L30N!u7Y9nv7V3t9v+uY{ndg|hB3(Y&)a&2UkPtbcD{Ui+leZlL}b&wm` z&HQ&U>~%Mm;%Pye77DCvx2e}UzKyKTQ++Pl(?7&afEq_4m9QL*$T!!m7|QQoonIlC zM;Eo-)glD5P8RQHFLDQyi=vC(K4eJoIqzlR;V8zcF*@TXo!K$MhWex|?^P-nFEV)s z!)2~^=H7l`6`RysPXaysOkCgBrtI=fb~alb_lSX-z<8@DGZ3W zZ7a|CqXm};2t*|Cb44}&Ih@{bwsA4Dix$YbjtBVbDFcw2oY_QZRKWirzUn9utV7>! z@LQOyTUMfw3V@+bA|9ZlAQB+D5a}6Jt|4r?inykpqnxLt?HU0`*}52qza) zvkEvXOGa?;sjAKJ9QBnfKfW6Kv87EXoN1OO+k|@&11K+9I7_Qe(#g~1LMSK!f!c`H zkE1;EdMB}=G=JVc$f-4kDFV_>4|q;$?jvpBqu}Vfb zxa+t(q}phG)O+M{x$D>-qka4hq3rjllnnk{ba~cG+>mH~!rmd2_k43t;$R?}C(4~- zSaopJaDo&D_+Rj#`G3I!88mp1?A=XcRoBxuH8C?YGt@WLGS)W*8R+S2YN_jibU>QM z`p^%Q@Bo5VAq;d(jdgUBsYI$6HncH*Pm_i93%|I9ZCbBp*o3helJSOs-{COM=)4xQ z%oxII)9v=jvkMSM!raomk{Q~Z<@k@&oZjuve{+me!hANmcl`CGcf@kl)twKj=rYq; z0AN&>HC*}e)M1fNa1jXsIXQhURgMq2jc91uw4x{2=_P0$l7H8s&5;dk)F|gvQZAM> zb{?o6VW&YNaSND(DS*mFO0y_}lslrKB>Gm1D1xR?(D8d=PysA_#A`;>!W(aj%j^A2 zz_+Ybe?CmL$#l$p!OX5VpSnVJn~vzbvY%Y2muSCIO;Y1zyzTc2Tlgd4I=dsOr#i4d zgBwmLs!kOPs3$4xF4t$r3+psS--{pdPfuCGEDfM2_CF=QgD zaaxTHp=S9W>7E@L=jnz980c+SiNF6a2xEW!9q3Z1zKvm5*}z867OXQEggsZUn9A>( z6OipRR%O1NxVA!vUEM!ye!QyOLM2-ecYQcundL>(h%+o9KAo_t8(d_rH3PQJ%&yd(tE za@poPH=1x`@Nny`uwicpCnLKmo$?*Rl48)ym~KV83dDmi!v(F6u z21uv#9D$?$Cwp~>R{|gc6yFhJ?(^Z2SZR>AneR4Ick|8Bv!hqL5APf1WQ{R_#fbUE z=vQiesYeC)VLv=9V2+wZmyxLN;4Ebr>z_LJsN~dFW=<>*Z;w+mZ$H@UF7Qpj#apYE zW^A-&Z)o)z{*a)CDH$5N2&1?jk2gv;KmLC1NO??VaPO0MQ+z>+GG+%95E(PPL z#t8sNEe~ZN?C&&?T$=W)cHtl7ZZ}}y?a%93pQg_EUhGmV&INQFUIm$jA&JpYc6T0) zwWk~GEix8;Ubx@ziBFuaZ$FDhFS+L*m)m^zqjRKpo~`0S{|kjOBf zr!UCL$G2&MOb(*n-_DA+*N)emsF4d=85aaluYdh2h`w1viQc`yD=PIJ`CTfG*71p4 z%Pr2;L>9@uj9vVQpw#YL=cUsNVvG?+n@UYJK=J|}`KurEZaM7z-(!#OhO$kg3uW=L z2|o*q-(t$_v4E6Xvv@%IV*iQb`|Q4}vYxU~1&>M9FV5UC8^L;=WQhc0>mOQXM1`mb z#%tS++@6(CvfD4zdi~&HvW+_n;N)hR`uBF8*&w5b>e(~WR(5&)e$%nRhl4^QNuQLP z(_G8*`m3Z3-OkP9eQhd3jwYt{@!ZBpTs+)GF!yz(chq9b(QO8Z5%2VXKK^Yib|B)diW1npl**V8fjDdd*w<+j{!<{#MvBJ@54FP1e_ zezwiiplNC7yIYkA_?le9fVuhEGoApDzPA-7;tYdOH6Tuu14H1;7S!-6Y1OMEbv=G& zT_xP8Ld(^pNKfee{{RC){JsJ3_s6`7Aw3Kyy9p)kZ9kME6|cd=sIec8f~)@(+2|if z0+L^yg>IBfFB%Qo{WUy}pa7O-QJF4q1?U5O0-!3CAYjN;NnjkUS5;&7G2cyDn%$nO zbqTw@X$ipp_H>naa(!ksSpIm)KrO8S)Mm**h1Tq_y*I9r>5mhmaG2)?#BrbCT1OYW zV^wkc_uK)N;Z}(cTm=BfB!@A4C8c+~?M`oSVqr%oC!;myeZJ3TlNo;+PXdhNn3CUV zE=6kTjK}(8dv<1#Ws_J2(tC-`S0*O&XFLtIoL%(*@@hJoV@^edmku+^+&CnE8%f8&9E@2Pc=EGrZzPbxtBB`vX@B`40=!^rm)%0MQM)4^jwX+%q*;^CAkKjZ1fhJU}zcZ{rHLF3+_>x|ON=Qs*jT(mjsZHG) z-wEAE>^>jjQoK(9NM>{#ubI*|7uBs$yi}HB_W1!n1NJ8#415Cc72j6Lv|*&|#)3FH zb_RsA2U`hvNQXfA`B6hvRu5lE6-N2rzE)LSMo|&5MVbYMaUM~*P7<&OFXHF!%@BgI z10uC5MDlayFV95-k|SmJ6SRa^fdv(X>kME|HyhBJ>u}8b2`OU{rK31=EIz}6rc)P9GNMfVi)%@`Uiag zmLC+^K#u_teTHs*Dfastx2!JfYU+Aaav9BKB58&(egJ1NZPBK@n3HGZ(Y@S=d+)Us zy#D@(-05YuibWnVF&UQcsV>dRzx~sqZ3s)`TE-$gK&sb=lAdd9S>Rd%1_0oZVaD>S z{B-@K#=UL+{P08Dre1^>@64F=*10*&vXk67Zu-2VQbeVS5>Y33yh*OjuMMAW?C~y4 z$0%(;i7!kR?JAtJ&0UR={7jYa?mDI!mL3^Da7BVW5}@|gTJu4X&40}mV(ag3vjzBj z@Q|30C`WPo7@2+a7679>pa-w^4_;*({qDWVSu(&jHuD_jc`#(uh0@@Pvm5%&n#?vx z{o(_o3z}q$u?NlrSgbYzNJvmo0DSK-n>*FZ<y(v7$J9dkWXR54p4dL-qgdY?kYSH-51ys& z)fX5q7{HwbzyM=5011E$S3MSjyxY~7Y#D^62zjK5by)cF3t$urN{2~QCst3>WY2xY z_MGhSPm1zSB0`oDPym#BX9}1*LhE)Fm^IZzjFo=LMPPCfmLilaeT_m73O0b6VcSXb zeCu(~>~!{?TFvOm@0OBYkn#1jQOQwbPVHwaMvOz~&hw?4h*|9PZ~17keWcq>y3V?Z zh}P-Hc?wimfee#3m`i$k)bFHf%1;=M;BGf$CvXDCA;Gqj5P%GyhY=AtZA`Wtv78*b zhWY{7%q5+oWtwTORUBZ43XkZ!u*m)xN$pf+dJLwSOhn-uJD*bE$U`TptUf-LM zpzyaXKp4qUv!GU6QhQft>$_iniRFHL`4t4fV{`&qw7a?#!Ess_)$`QMPUvr^1(sy# z>Vc05Y6viB0BA4_8L4H{Wbjt;M^U7_X{~j@CpAk2qolElt+yx4w!`0c9kt5n?m)8>cW%DTa4K1omCxi1*CAw zy-()9Ti?^GDjx6Y`u)z3+dE%XD?FQ90+OI2EF0`=21Et$)t*K`89O*6P@H~oek|*6 z>-;Q9M|$c+$+EU5`${rX+<&7+Ff1~{m& zxE7Khv{Z~C0az9L)GZ`><9?bfmV=(>n)84YJeTp0kyxofs{WDJ2d4Ee@w&9&6#1`_ z4uX-0JdR^$h}=0R%4p{nrZM}BDKn}kL>c|mz{z)QABs*(V8glI0g@qU9&gLm^0@ypr` zOrnv7b<+j6pK$B5Cah`pY-FbI&oVo%iz#V03oaoh z*0L^<{60r9Vbh`#&}-@-H^(z_%Z9Rjp2Dm#My6;Tkf1VSX%?;xsPoE5m&O+ciXLiR zvJ?~``s(vDn`jx{{#`nWHGNulF5A7jx-zIP#$>FTXC3B`<;~;v&T?Sk=kagp@xA-k zIUd9sh(0NLk7fH(F%6n7U2h=N+?ZJz3q1cAgLg{0kQQ3(I(5mYqzIB9saKN*1Mol) zEr&*?9vlkRZtGvORK%PK$-}6|!^xU$3}*i7G_;LhxeuH!zuxT6cr&)Bj|>gjI%~udsfgUtf&c&A07|?bJItSq*!;zZO$N zcGI{Pu2*|8&PWDPU{xuwWUWpQ!$GTC!W&{^G4IwV!BIZ;yq2raT7AhaoY%TlZx?=w z^YQ>sXJ=CY004tB000000Lg|3SRVlZ0NFjah%Q-GO;lT3SzTIJQ(9nITwq#RTTf9{ zVO(HRSXfq5T3lgaVqjZZUSC*TTV-EenqaHpaXkAv;4>}&Qct2eTzl0R&u?Ibs63q50(W6zx77KAH5?*jc6Km22<2(-jz) z$}NRZnHQ>{2b$wOQeSWj>;OAXTmj$)KmmH?Ov-Q?7cw}vRbcR^!eMq@3DiRulFVkN z(9K-%MHKX8ZuDeE-OAF`e9L5OSa47D3|$II7e>GN_maAYVcQS(4-uZ`JwjjbfC4t* z34k2H=7D_xb+sVt$u!h>X&eY!eV{%j1<(ah{Q*jV5)g$-XI0Q%2mE(d$f5v%Eh$eW z%r~&}ltKSdlA{=Sm?8n1<+i##?9!gC;S~V7h69ZH%UG6=t4?TlcM9rJUj+@rw{Ea| zWr7?>A{V_A3CR-;u)it;kr0fmMR1f^lI_euHeGu?eFGo@&%tRNS@z4@2NQc^_Fp9_n|?X;T<4P3nkU zjF`sCv;>x7ko*%=LU&*g2-LAEDz}t>xNMML_xnNC=tX)VPFc(t!dORLEaJ65YQSd? z*ptsAL>!k~y^rgJD-&Mp(lVPgGEA(u8nF~}QisCGD$m@w*ZHkCnt)dGz@P+{Xi5CR z)8Ll^NkiqCs3`z?GZ*6Sy;H$jg9eu0bfDxefE!7G-FKO~czJ%!1+5AxXKytzk!Vps z!v#g|u8MV*3OX|J*=*y{QEtnOhTz2Gsr;o5jr|Us0itFu_`ws=JRuceKeOnuCr8_ncraIxiD%z(OT2bLlgQ2{DI4Ej!5rL1R{FILvS z8~gjBZJp#=TNeFbo7gpsEjHc?;5TVAv4GMX@1i{>_q@YCKeNQwC8o(Pz3qT-=x5|B zQ;1x38e5LosuUF|6C8PtM@K=_F-O0I44S2GEw=%2GpG=nK<>t7n z<8{xZR^FO%vZ<1TZ8FC5+r~x8S`&v>NT%A&@^^hc`_vw-)V%>q@ZE+f{qNcqL;Cj=n~1sWcJ}C zBVnAbL+-K|htIgd9%g#@oW?%%@henNv6RPZHr?fm8g;L~BGph#)o})hTAQIlN2TTDKK+j+hSW;PQlv_bc zJM@Wg*gJ2f3?{%&aQF*EzS>M=bLV6#WNuPiT7Ez%-ARwEOxrOb$FYDy$6jT2%@C+( zd)z-zp-#C+$W9QIIi91Q)EC@f8;k*f0UL$_GIW6A?MO2}G&DxCkn#}h*M`HiFZc42>|eD>OF{w- znqZ3z58j}F0vIr+=F^yAb*aTVo=C><=UHHRbD-7$$^gho;B)|nFJ2>aX}2$R<{LrU z<)>2S53h}+6A5C>j%M1e@yn`8qtm91jbbR8pq`WmHFN<(11_+jgsZU$fb~?#FO#-_ zFyk`?_+SrU1y}$`0pTeCgRXQnGkBg~rW& z_di(ynxDRov8T`g14C5J_@ROOY4fPY$NQM^3J#CCy0hV8!GVN_pJL< zM+|dWCcm{*VEbrb=*?OREr|U?WZn2tVx@ z#zv1LnM*;zD&iF#qC+X3e44IC+}gg1Lr{iU)NSP#%c+0bI+Q7~Kn7obTDm*iTgI#Bmr(&x4-)IynnEa4`#xTt9=Ft)(!# z@y~v}7qlAF;?ZQzo6Uq;F2nmw5EL!}lAAcj$K83gA z$8P}tM^M=TjwTXa0stz2N79UBpPC={6-!7 zZQIz_+Ppiz<@YL9|6LDD1X#!b22jJNEgFcx77GUMLr*wT`9Q+rBR>OE)7G>3##LSZ zH{6N|Ttm!-_Wj#D(%76MCdY`-3yLE2ToY&s4+=wA%&&LqVsh`$iTTyNFW*L-nTPM0 z2S<-i*>sl9SV-w8h$4+(0`Ut5>v-2Z`*!H~BQ9M0U29W3fN$64t2{HyamqT^!GI?0 zGAOzgv+j_dsZl}(nmxb(mAL@00Z3_A>-zqRPqvBoAlE*I(x6eQIac>Gcb>qhYs?ky| zG;|4xYXNY8#_Iq8HUJr^WL}8et|m*lD#Y1*$!|P-%tAp*$YUUPfzyWS?TfitdMaLq z##m=ea3^9(L-&4O*0{1XAlLM9r1_BfaLDlqEEEu{)%kT`*B%i7ny2oGhd!W$w61~y zJ7o<7Otm|uxNT|)O10KDyQU87um&zw4v_ren$77?TVd zT^g&d0_*e&w)$VEeO1lqkwOwCIv<#|q&_Nj4{~#81DYXH?t=je?7A8lFzgbrs(tUR zn2ma}PV1N{#P;DW#2*j#p`>}#$_WUjK+L=6`GcuC_2Nhw`0^ShI?uU|O!a1Xxbt@* zk|v%1yvtQ^fK_i;Yns?KimTx{cCl0<9|8-OAQkeUIA9ZhzyPKI3gc49D)~)cIF4%~ zO)TtJZ>c}8M$5WV!--jgt~85y_UFo1`K)ow3v~bK~giA!{JS{rE=3Je@D`Vvmo97WsOFb@6=eM(WH-p@5V*i`dw339q+oP z%&OCBo#k07SjW@ZjG&{3*MUhrQ#5PvD8Rm9fT*VN>xriM7G1pDBlVC8p6bG)2he{` z9AQk*0HeVq00p4jF-E6NziDR!Lsy90n=m|kg~DyMsUH}*jPI!BJB_Hde^_%KZud${ zYX?-n%Ej0A668by7oncsZ3Um2;E4v`GtLk5-v0!XkpY(H>XHWm|B-lxum%M{g%8N6 zZb@P6NeR@AWy$Q`Hhqhe=QhqTI}tTMv-Dy%zgQ<8FNZR^g5RB+^H1A{f=O)%FO}>A z-VuqFgHug&pA`U!Yn3$bL(TEmKS8AP6Q1DFq;WKA0AI!09h2{Fx6OIfv0K*W&%W$Y z$uIH{qlEETtn=9U4!d=Aq_r+}nea1=kmK<(fo(eBb7?r4yXGEyd{yQaawA$5`LJbN zTiBR-&fHIP1Ck)dsR>B}hzyo{&BEO|^Yv?X^Q97QA6GhJm_}kYR+GKh@xI_HG1ye( zt**v-fEQl=5WE4GmzTQ!szH~)G%mOv42v$S4NhEVYHs55&Tr;~EAlf@eL0gf4VEBX z3;-ZThQ6kmn6R6_yt;mRak=ZG&>GMG-#R2#n>yN`NSK*HX@5J8_J7}J-9L^GocrMr zF|wP@jG#7}sg3bM!s5N$+ZlLo04Fjt*$68^)%`N=vZQYWmS!>LrJ}>vGz>fd1BwGM zO|v=;H=mDM>tc4qf6a3qrGB}McX#K3eL;{I@e>^svACi)p0Ggwek_#QUpy3vD2^d(@0SXzN zh1hKCg=$o%lprgOmhg4VV}523?CT{7v8%AxRUKbi@0El84@!vLk%U;_<7yOJo0JLT zIP^PxA#R2uqzY^-x)|Es9jTY^D47@lnxk0eLI`~h!{Mc zL}ZsTEwl1Ga_oZ%q2U5wQgJsY$s5a&s_diOI^jHRuBmAkopzP(HHv(qC{=esfm0~+ z8Ehi(nw;6ZdYRbXO;2ZMQvd(}u`&Pv0002Vh6q?70RRA}ioqBzSzB6HTVq~eU|d;R zU1DHWPDx2uR##V8S6^9LS6o(AVqIQaVO3&WT~}IRUSN`?zVS_T;96YpDgcnM1}hov zf-r8~G99z}t;GD?2(UP)!m4fo6os!nkRq}Ey%*}^@8CeUfoOmS?dPm8zK{>d+Xs8p zz$3mJG$8>8xC1az^YHRK+9w8+7 zZBo<8oC&I#Qmq;$r;}RmW}9nkw`b1JpY?xeBTJmGWz7(R@w)q+SZpod?sAe@dCRAR zj;3x28v~XeGRCB4`Tz+N6eaai&uI2GZJfU?H7OF!6G?UQksR7syTq2d8j`us`)(K! zn<9%+x#lhQt@9k2QT>KGBNUX>^0j;FF?E@+&)WVVUu4?fZxdk{&Xa00Kls zGG*yMembM8#-3f6eEvM`ICANtDYmZOMO}}(jdNw>Y{29;6XyDB72?*CItQA%Gg?Ec z55tM>-gmVPWk@E|Gp2WEcF7=NA1H6Ke#fW?o0V)TPQta#K1fK6*I5*htVY*XT^n^^9(V zUH%BMM(2pC0Gi?SG(4p397=!%&ty-5$JAO<|FOjQJ>B)4yOtcrt2D@mHK%}UOu$^; zKXB{wboak;)Q;8Vh(RTbD#t^E9C@xB-{j(L=mZg?$;YUKcoKfxQ>vL zVDYzq;(<=!6OE_M0H7GCjnwX5R2+U@Lx0jo>hwsD4*uCLpFS|9q&lxW*nBcIcj*WM zI01~MKP^nLy98_-tnNkPc4D68TigGi{&k&>3?*n@6Xrh7iS!@(yz>0u4h_6+sBm!X zTnaY2f-3fc}p$UQKx!->404k z-Tg)19q&-v zJ+@!woO`1NnjV!kLBLnyxMVc*a$^7Rv}PkFEAEF2sLY$V_mb7o7s%S*#W9zFk8^Z~8r_ymlIv;(m-FO8CILzx6ki>gqB~-s$G$8!dxAC);Dd!XctmNRb`}FY0~m;W34+9 zK@{A|%A~|^CZ2CaA=0sVn49r_>S~wrN#^zj5}M=HD!)Jh0$vG#kYO0mKt}`kW_1bY z#mhjr3h%o@*oJya1o}@3u$O+!2=BJ97eG^7V~mrl2}ykXZTo*RH`9ei^Po$`)$Xxf z@nFKb=Y{ZxVaKUp)zeWp+00eb4VL6}6@7shcwpxeBv?reK%h;}kvp%J<2Z6E6A~Wh zA1V}_e-bDSiOn@0On%$u(^vZV^Ql1s;2P)#LmmIA8#QvaP7DA$qe?z}H)HXu@+V8i z(Eys|R^47;3^rkJK!Pv<>cFriRW6mJ46;7nDZ!dOWkAq%NeF`g001E1@wAF(P>;>! z?&qihP9Vd*@IJEF)5sB{l0nFSuJK|1_!0mBn&#Dly}&DBOYjXO;6V;}&p=9{j2I}9 zrJhiM@TLh67XWI!x)3=Z2ORE`ki4unu_R)83DD?p{O1(gPf5KsV6E<@N|Q`*ZSE`QrEUXe$& zp&X=l+_(gff?MNRp-zKNnOBbBKH?|1A8<^AOA^VbPTDFJ>9cOM^ zc$;pDaW4g|jo#GQ)|4f0QCMJ|u}ByL5pk0brwBSv6=7IF`ATyvCtw_waZ1fGrDIpb z42oYc@h3bt@Bq}Hs#UVgG@a?cC8Q16wT^~!@1(Da$Mz9X_k1&Sg7-Sd&3u!1j>yr{ z-uK(Wx#N9Emm+$;Av%jID{C8C;e4zd(WT7ItRqYH$+2ph9&&h~8fbvTSCsNjGvKp6 zF=poZRas=aWgg62QE{|E^U@!R@c&10R&b>>DQGhx%y&qII{#zlV+pkxfyniA)n0z z4M^fRd5C>#zHi%Ed4OSwVfa)BGSVLry`oM`t8tXE%#sWyWuAD8z83yj>+Z9fr|#>B zIg%kdDnL{ir$0a4k}~go7L8q_kM(pkM*PHqYSmR@Mq0s0&0#n!`Mrrpd0G1!MsF)CaCH?roCe7)j z&9L4}V$a;iH+y<0oJ026_DQpP^ zOTiN!&W@Pcn_&9Zr}ooJ`F2hNjv#WW2uKdFDE3=>Y);Jnu~*IxS#$fjYZ|Y%+h;qg z33I#_=i_NUj~~m8E+mL+UavRNg#6E(Lb4qBs9brus^=aN4k4ZK86U6|d9qcUL_L0P z=oMD#6vzrK~o@9Jqh)p_7=iiNPn-%z=8c(49)f(jl5 z&gh-c188K*mXJ*2q2kY0_NjPC>gVa%)nOOX$;{ci+^%-ygd_}eOXzsJz(ib&z zA|!u4E~~YJPMP{vD}2^I{ltx5B}+23}}WYE+}><$nRi`LW)vgkMVU`}+u#V4;CbnAhBu}H)&zfkh-FGXIMNxd7-^pi2Lqa-GS(reQ3VDN05uu*Y1VV4Zl?33d3Dc-dg$8I*%?BN5kia+ zAH^7zJI8;V{`cqps|VGU=QRp(*ASD&Ul!bYZOaU_*ICy5I&&#<1C#nTGnD|Ej>k!w z>e2z0V-1WUY+rE+ByOWZBa-abyVO}*tu8)axk%$-?_%3TFFq9IBImxJb~1T?Yx2|8 z@p5)6eTrlf9igWqb5D-ly}!Jocc0Zf4ZFcls>ikeVRr`uNa; zq+>h)U?5pnjk)#E%*o#I_N@V59o_IRRmPs)4bS1chzygrwr!4#M4eV3Vhlax&gQ=YnkCX6kH+!>0{|wUX>VMQZHBzA z`xfK9-C7wZ$A0yZs+K?|a?BD(^P^k8Q-{zz_v(H&r^;JoS(Ly1Mk70wYci?z=usnG z=sxzjZ<``^9jhPX(~4GF|Buml>sfLp0G6pS)Stk9I2SAfkc`f6#!6_iu@q70|4%+E z)Oks$zWmcK>iUwb zgr`oL^HZ%D#brV0a+4A$4Jwk*HZ0EJKA2d_KKH-F0D_R*PwJNel3*IN#4yHyBon9@ zUt6y@?D)p9SLfsAKKR|4E`aByBSDsZelG11`FX(6Q@-sVPRU2kd~jz-5vlC6~^7q)2^%GaCl`k)f4v) z`sYrEkp>7J0^MkT?NLk=a}{hhn+?PFORvH$d@^&c8@zp5_f84>&LA(E=bU45Pa;4kG*gSTU+5b6w@FE2uB8b_tB8!fryd z^>UX0TG?jt@iT#SJe@V`Y5eIA^4B!u&jF-A#-(hJ3DKaBqWl&e{Mow&!$S{Gwiupg zYo-faGw1~88GwYIA6P}T;6loi@k)uvez`}-UFMw6rYW@`xtLo>$t zSO5%IGiyM`U|m|){W~dY&`lgUtOW0oiEYOs6#_C_!JXQ(>WZ*&Ep>eFm|dUGTP&T< zxYJ`)ceGzK43E<-bcMSG5RzUy!qR~T7+|RWO#wNp%`L0e z^~o-yU*{MTv%k95?{F4zKq`tW8e3-^*Vod%cD{Akn)YhXhqsikXZ~wVx%=?J67~Z@ z&i1(1a+c;oA-1vL+E=bQK3^4V5E|HhJWpq5Qvd(}-!cFI0002Vh6q?80RRAEwZz9R zR9#(4Pg_=6TwGaQTV7vYV_;%pTwhmNSzTULTU=dSRasbDSyfa}S6y6LU|g1-!0d1! zK*9r+Vfy75o}04y%X~e3cT!_A{iW-Z;(#x0X=Yx9`O4otS;p)1_*|=MPjGjV?aHiwv{y4jkdcBe5-H6+|gl+O3 z(6m0E^`ekdIk4TqC)`R~T3{W!~w4NwsI=#IqPuXw7E+9zkpd|&MoD<>|`I{bjq9X~W9O`W}(R&>3~J{GW#??dj? zW^5ac3RO?f;d|a#)s6rvpwJXf6F;8dtetECw(?$})&P(a{fOqV6@TFIxNoCiJ&4Ow zlW@IFO*-N|1V+28b2dUoLq8mgnj?4+~rMTmX0u5avYyxuI4G&cBunx%Am@T{fF1*6dXwnr7QRxZ*g~ zS~u(`_GjzgwDXPSwb|Uiy_nJ^P=0J~nBoMPL0Wz{-wes>g*q^83Ipy}o&L8NqG@@Zg0GNcG%c;4R!YX`OAMdFKB*$3 z00P9Qe)n%`bZ4gq8209Dc3M(bVkxUvHP=FdZPl~H!<{Apnj}gxPY1AhBRc^Ba(jQ} zfozf0uh~D=`lk3e{oZ|@91m2d@}G~r$twzg0)l{88H&YPW#zN;-ow*Dx_oR1YKP3) z_nt51^Q#9rqXqiUzmm~tVTEa@D3YdxxJwEEE`h@%sb5*X>)|J%yEA^0m`<$!K4I-H zqlIM8Fg@!1H%=M&uqCIa&Hq|+>P~=GA=7CcD92REW80+ON=e#|8h;*tUm;Orqw-8%x%Bx$pc2aq0;ebHlHAt5GSvngvpWl*e4pDT8mDZ#xMSJ=t34DF*yuL zaE?QF=C#WweB7d>cv1+6vFtYrS6}waxIwd7T>_TmwBP`MFkk|RWK4JVe;=Li`FH9G zellKsm`~1?JU;CmKlrbE`2uZcale!{UBBhs-<`_ixmS&Il&l?25+zI!B_f8{AYyzw zZOre*AlMj4$z9SW+O3l1J8LxnlHhdU5-kB}fCRwWr*F#H-hBA=knItTYu%hk?c_LA z(A6RH_^8u=6c;1LT%%RnJ$?GVTNvHRKJ(Oc4WkX@&+}E=!q_=uM?V0zazcIy*Ma+T zVdeTW+{_5`GY)&t&+G+~pFMbKP!u>&0Zq-==0@t5?cS?DR)1D?YK^(Y)ApSc(k)A) z&wAfXlpHX>7#^kX!+MHEf=Ghe8gT>BAmV1^3i@ZqMctySeD+yL&YhYcrrbG`CED$} zF7UPag=H)Bg#0yJVhqKEJzbr!Zbq z!?|GxQZ`W$+R59GJGAYs-iA-lE>8RWb0N-ggDE0CtMIy&s=ps#yS7|${{I1%pg|*p z03VRpJb^LEcATnFKBpcS+Pag|Pj5{z91hnfN$#v&5$!%+xitCv)6KE_(@C;N2w_-+ ztO|v4+r793Ni5D#P-*G7lJOGX!pi2ONqPE!Bj{K~1{Pv#oMmac0U#X?9 zy%5dMz20*CzHmSseOzv9bJ@uhXINmKwT6x zQBmUZ>*qLiynC{G*WPa(ukSRE#?zRe54T3yd5k^cLnd=?1H@zzRZ^E*R3{0sgVs8I zPver?uk#)h-z3S}T4h3C%@3Q0?Q@?G?RdL4<4*ySA1D(D5}*McpY`~={(C~cCCl|y zinW^E&zs9LYj z24=oaj)jG&DCeH{^8D|yF{2v}lA<@On=~K+SQy#d|70Z*_uSk*x$`tRVm0r!x&5dn zjB($1BtZ6;%g^1gx>yH^rIAD&oC~+jEmaR^8yY+@clXZo`sq|7H4uvI@MV!T8hXW%ByEb)w6XI%;qf0Rj07wW> zk*;&koOIii7DgAlhi!aqi+$o&vl(Qbho75aRrPkhYwf0n^W2?iFG5kL#ssj2snW~) zKizdutfgMnGZ$Zum&|z%y0JZ_$3f=K+UM-a^eL8NX~zTrkV;69BTs+&x=t9`Q;wgm z`TD6P@t|$b{FkMLot2qQPrmkdHc!4t({9gP*0xN7w}#qbX|reuZ|`Ju-l8v(a#w{9 z6>a$?o#rqHMV!64pp+la2wR#Sy{Qj~(NFt%qjpAnCwcM#4w)}|>B|t~-K^5>aReTz zN)+f*@iyk;=bt#UCTaTT@I{;iloNVN5zp-z!~?0D9b??m24y836^Lk1w*|2&!LQy` zW(Xf!SEeW{`98rmZfu~dOI5}tZJMs`Ij;*=WNf`j17#c6lizUeOc#SE6#g%6RUsY zX;hC)X_xc;rXiE}tLTItZ8A0|r7-UpI9DVamLA4LeIR@dfPZ~#cqgT1*7MogQpSA+ z-0<(NAkuRx*+pXKj0WJ&lyAJFw=Z7hDy!-eXhT4j+C)`Ob7f6nmMB(4fgm0ixw-J* zVcJ(Q;WmswirboM9g-h1>H|aiY9;MEOWf%^8m-qdq`bF#*jQo5MCEIQX%{uWZTaF7 znul)|yV#0dun~dRvai9FT{}uRs9_P>h3&EQMZl#JK9)oH??INsn)}`CD@Ap94w4`` zYI5kl1_}O*lf*jd_j6~NA?2^ni`r?1W!C0q?xuw-T>W9flm}~y;*lhbF}P0s`2sHh zuHak*Z!wc|&6Mx!)~r6WJ;=Vk zT&ZUzvopOBgb*yI`$D-%oR`uK{F%y5t;Jbsg(~XzJQf106nBV5bUfU{9fhO1iVjIe zGAOgv+-&R~X1Y>NH`6+d-^wZU4wheAo*vLAKm}k1k2)Y4emaGwG2ZoRf&{U*X8zr&y$J5-%6=)MARqjG4i-GSLjFMzfuBtvx}ew){ZwQaYw#U zn**9)TTTz?Ns|0J;G53X%e#&y&f} zLeHyTO?FfI7a3c&@5k!pxl7WL09yF#t0T!fPSAm#kLIvMroc@5F+ zZbfO(emx)vdcn;{Bu7QkprKI&@Cf zALti6bW4I6q>C3aO5*%Pb+qgiAd}(NXkD)UgoRzc$bAZuPjV7WXio5Omwr_(Xm0?D zpbwS+95OoJX7oZY|GItjbiQn!>pXs&-O-NS>h#F=lo|E(-Z5#+v%|7CcdMttu_GZ9RKMsE#$1-97d_wtUeVV;^cnYN%{(FN zizTH{Tsr;Vc}u_EBRk!D^I8_8utat7@2hWp`&5DX9lqzb(&PS^{rBapn z(2vS$TK0^kmyK1kV>KFxw!;V;L6W2wJzxM^07wA7Vt7i{(dE)}x6zbaMc;lKogCcy zYe7Bhj@gVJbTr&1&Tgq8b$#w5Z>)F zu>yuA9$3N*02+V_U|F5Tyqm21Rz11(Adr=7m8wlw1iRv zdsq~wTLxd!@2uD4>!G*j>!398BD{SyDrI05$O)Y~uZH2~r^U0%@x~^czG2?E9Q-7* zv&d8v_K^97Hb@y?Az$a>?iSV|uN|3+qSyMA0Ez?(qQamk8L?R!BpbVXa?9r|dJ?oF zAt@IZZQZ(PjXj;&w^i^2QHu~0m#YiMlqv4_4|09`k+LcRW=>BI)-em*3N=se|3YM|*Cx)hCjean#kL|OGKem)kvb=l8|bo%-IKY`nBq77{VR^={&9S_l;8vo&KWW?hP04URQ9rPr7TkD zW#T<+LUCr~#BsgYHkw$QCH70k0hXSqSWQ4wt7hr!W}0Dl#!1hy>(+l|K|0Xt_#BH4 zP3GWpufw;VIi9?h@P&j>1*#r8d`B2719K}%Wa`Es8Iz^km@W?HrL>GLlTV*(6*)4T zKc?xCjx8;YpI`fd0H6V^LHe`)*6LjjEPb{<4)Xbg&2E#{;LrUaC={<>zS=E`AHKIY zRHwIF>~R!X?uT@Y$Rp0bCYOX2&GsIf8P5P4S@DFOVf{eA!CWzUu9Sb<$To*kSc-%2%EvbyjfC7`~r)q5eYJz-Rs-m#m(Ymno3#eH#$c$OvuOhEnsuCiKjf(9j*F z8Unjk+Di&HsJ7tBrUihvN{_$UTSqRQogjY2iXc);%n;)-h#-{hrWxFt|V zUQT~_+|~Id$6jK=&oJYe!X@TW$L1lgdEvEH}Q5lA_n)rRviN`SbAWAjCZP^FGO{c`15HR_?cWZd-rF0iug z-&;!#D0a@Q#DQq~pR!Ph@=$}tPu$GmFK`G0^zOAjRiw{ zS|`h$>kx5KLUxmmUlgM(aJ z-c`)|-UkWdE85=3bosMs_WSCf0Y$X<2+T5n8bi?Wm*?}>k%rLc_v%0C?f{2sZJdy4 zBwq%E#B2h6*JXsvj82$ROqI3Dt&2g{#W9M@u*trf_0f@t>r?_RGm624LVr=Sd|iuh z-J%;6y{felO&l%;XM+zIN5FZe6%|W4muUjNrDlk&&1V6ux#{favB+hrfk!>UM8iwR zoZl(G;T}cIYWmeEM_Vq5k@Xj?CoRZ^#_pFYY?`=BVsC5WWqfG;+x|9;f0LsR`;ApJ z5uE_=l7d}{Au)XC*(y>HsD}0Gjn|oLA(d$o`;~6&6c3-8t(}Z!y{#*%a>f+OK>_OM zAQ!%{Z)3Ftjs^z$CCO$(+ccMc0F@rW;=|l@pXfP<2UqbwrB`n2BfDi2`bPB~`kjs3 zeI(J)taBl=LVVjz(BW`OomM+s>c(RXEc+)3428KaXJ(_Wp?o^Dg`1lZR~7 z_E|5MEam!k6jt8tdPgO6QvU>#h4NCz@ETDe$w^VY5?pb<3r$7P(TZ~@jH5KHUaYqHS%LuTZ88Q!1L`qE~DgHT9U!)S$Dw0YC}?tRU+TLR3p2aT$!S{ zOPJ*K-k87U3a+jXKELuT56`q<8JBaGz>%asPX){h%X7sUr(^7Zw4k-wToXww0NeH_ zZh@&fnVVqXyI12`H^ACU$>pEJmpx{ChpKX_n$kl}($|b&%9hlcLhhfu`(vH5v95yn z?w7z=DS%a8iumebv*mKo689IvtOlJ3y%nV*46d+xN0k3?c>2lYu#Z1--aA5ucKEw+ zaMT%e^lORTS6v0Er>b$K76xq&?*B9iaa|lp=Q-5%jyGqIDH5%IGL&E{P|xD2?VqJM~*CqD=lyW{izrd1Tymt`W^Nxe+UvIxSF~7evWI{ zkq)UFt~**T>ki;e=ph*9O)Etnb!(aq8o#ji+D90uUBHs;=(P@K>}l;^SY6pvQrV`J zq8*rr!+^eyuBB8z@E1|0>_Lyne&N z#_m(sKklvJ+kt%-~DgI;nyorR0k@VaBabn%ie&y(6B7slykMyC@hE}cn=P!tM_CcP)g*qQo zXwyY|F>2*KH8dx2nT?iJglwG3E7W1Y0N;@hACKJ_5x*yjl&hcw9jQj>c66vhlva=I zi_uwr4b`=w8p}U;5So7alQqZ(XxnrjT~?-ivHBtw>R(YT&(Hso=Q<+sfV_Tq_0&U*Z^oN z37%!q;06S*M=rGf#Z(F>0Xn*y^o^dj}*}w%{1V%P0mk^D=Z<=JLfZL`WwiLBuO3hkhBGW7*`ZN;(t~$N! zu%wcz6GW_h?+fb@ApeU}?N~s}fURcaT6-P!+kgmU<#kxs#d^%n!cjFJI+&uz7f$QYQRsC{!qHo?W=S z;%{6{fB-|2ilw>opLpy7I^@3O$Eq1fB}auaR&79RLTpHQEk(R0(GQPZ@6(wKsnf7n zA@oyCE;@@sboQ{R*~g<|RIqs8zW@Os)2Y;^fuWq{LcUP*5|C}RYX2`@aC?SKBTXFb zgi-j>O`f*sxbCP_WxSoVKyEwWWncH_)*}TDWJ~;w2F<0>;9q`~1dS2^|>g zEd3ZB$@q5M>M7+<#|)C9oRwD+juq!bG~-um5uED0K*G-8+pzJ{rTWl?JeHG!_85Db&8G!7_f|dV7@^<6i--DXb`%XG3y0L!vE4`mQt zS0kxGs74CAP&EIsjAHJit7coof^U6+6;6%vMOO5YzJIXqu}A*dp9Th#yayfAht`R@ zLA==ZAWtlz?flJyr@|+zpQy~*CyR<)pI)3A@3k~xMaxMzg-%&TjRgtt1fgeXXC{iZ zs_I&`@hQNln5`+9DUNNbTdo0@))Um=-hON_>%6&slzn2r8#u{6j~nGQ@nczEZ|2oD z?4gaSAXCX93qj19HSwT+=LN;Mrra}z`8XK0o}De^tr;)_d6jDBuWKKg}>2N4ryGo+dt{COafJG?m(D7X4*S=wn-TMzWB(g6ElRsCH$R zK=5WK2~I)%&9`Y!xz2rajrL7~m&B0s<+Tl@R8n6C04XBI{QJxUTlAu?u;CVKg%QTT zrSmpnTBN@XrWj}5~=K$Bys0}qQZ+Rd5=py>>e9go7P`<8KEN-kkts_Ku7OG zC!IbDB@Mx%&HnKPP+J^7G1pfblO7WS+2(ikj&_!FDFkN3eRVqFudEIx$kkATt}3pn z_}xkM*{~zm_dMxHid4jWCEX^j>;cbl!0(`SbR!_QZ`=7VFEwbU&=&(B6}z&jYOIX{22&yGOikn85Hbp_BfaYW8IxystPMo&5RJgYED z>$|p`_jxYPi>1G_{qL8<_>)3@X9!lRCH=bt1$0F)2-u|kYeLsa^kAk0NS2N-xHuEe zxBEWEbz=<|^aXE3b)IiNL0tQOq2X?xQ|u|pviz_Y$7Qsur*mm;-%Pk85`9kRg9DTH zsl(G0U zzQ;N+FoyBQs|=YQu6s>%NEX?$c)5L2svh~+`L&~u0@(=eC#l#5J=$ZW>)Tsbpl_zd ziD8^E9OHa&)u0vCF-=%mMvI8GMf1(mf6&b4Dq&|KMB&3bl^xXKeE?%Y4 z`wpdN*LpgaN|Py{KIw_b)u!2>Vxu^zcctFA827nwV}fkkBn#Vwqnb)f4A>vg*#gJc zfhti>K*qQMdk6iO0b!!|*=xrKLUE^yU1)sqpq3&!qu6%I+F8;#eKa*!kiI`0PjKb>F7hYpLL*Ti?E7nExMJwtG z>N=axZ`HFcd&YWyb;C}~wpI&)F|H~Uu4`fK5y@n0K1|BQz_=k1UTqU|G=2#xbM_#{ z+hXcd;?pBVC?`h|J-2Y~W~Vut`_RG95Q@C77557TK5b|KNNeXwR#2l~IEm`P!i^XU zP42+iW*V)UXY5Y#%iO3A?eDQgp|I2zBvYg<5=tDml^F7lbhcJKeiR??LP7ST0>e8T zbcl~5<6^*d9+*D>o0;!<`=y$E`s6hFajQ1DEr6eT( z^<~Ap`HIHZ6TzDqc+jqZ6T#`!(}Fqo&zIMJR`i<8b1v=&i(?rCf=S#Ebvgd>*_HC- zibUfM-`;qNlZx(0VOL93=_=UR>{2i6}{6gzM%;vcE^PSUZ z{V-d$fWLHtw}v1}o^7X9V%&rzv)Mh!fI!*K=%z((xRUE@Lgm`TwZ;Uz@j zXz)^q84IW{&xG+CSRsLw&>9psXFEXb75oi0(PvFCwb&kfjeK#*O3oKVAA=(nKPION ze2#5-4Gv>YCc?H8NEq@zu(hak;)F?JHFBN&>gAhp<{ZubuyV;cnDGCiS5j8IJmwR% zO>g{W1q9?3%P8!|c+%Q_V&TZ+A0)}CrUBabZW zm8!N(T5^mV!LHXouJLx~3rP4&H43y1(@q0;Elil9s-Etua4DuCwX|Q$dcc@8rs0W@ zI&sAhViVib>iqX+mu8A#l~1&zP!!<7 zfIjsvnEvuk#!74^+x2V!rHswPJQ&u;Y5rtYlJYNw396ef~0!__H*;yqE{j-y4;zmbnv z6j5I1DnW;3Rv}^Lu|oIHE}}}b+jnS222NuG@}3o0v#E^BF-FnH!wKi42$18KK|^3m z%q2?Qqc?KN69mw7XF`$t^ULo7J;N$nOYuPAb;n!@69PVn6VjZ3qSe20&|dq`)KS6A zHH24ej32iCxTKw(Z#U+~9VAyYaR(KyrRauIZ@(%t!QU)`2hKm}8=vr-P}LDaa`=c$ zR*}RUz8`yOm#Lpj)S1|S`T&gwpL<&}o%adMi%~a}?gNgf=0sxI{$!mD!k7;gI)!{c z{E@}(O8Gls`r;SoaXHc?tNT~sL#jWkA*YD8GG$d7%@4d#yBRj=pIGE3n99?x7d?zo zS66So)~wEEDZllu_^oFfqc^xiWjgusGO-h(d2cK#a*uoJXmj;C{=v@4N~&f)dF2Q7 z&ah=<@EF6(icxE#g(){*nM~`7;&g;u{yLbHld%>DFR)E;_A+Vv;U&f*MPSn_=gPA% z%*R6&#>9SizwcJ-`)$vmXvp@{+>*Cd z_X0L_AJ4-aw5QmiY((tHhw;@Nw5Mc0?wZWTRwn2nFW<~VxM{`6m%_Zgh>`Ah2))Lr zJ@$V!8-mHtmy2RrXbuRdK`yrz{AbJcnyo-x(*^`5$4g6IE{FotmTfMK$m-2o$Om1* z2oq#Po+YdrJs2pPy9fT#y3df)$E%))s(JQ*2BUZ|6})hmEev+?Ku9@>ynlQk*DGnO z(@nBElt+v60<^`?fSN9@XL7$*CmzqZP&JdOtzVhH=>K-g=sj_#MiJTqxI)KUT`>~S zo0SiH1DyU@5~eg)GW@EJ0ODPxOOCP{O=yOpL1P5OLI9l%kTC5XtC8a`xL)lEog;_ENC1ZKXQMowC$I_3W zZZ8XmWIEF?Q*&yiLSqjG)Db_cz^cILTxg-z=W?bvd<^j+vDaez++}D`5BZn{p#4OSR1;HKt)5i?aC_?KlJ=M)?~iF09mk zp_XK7#;IB6teH!XU5F#>t~t}&wBh0I*iut|+^Mgz$PBzwl5EAhr5}yn&RsL#U4-l= z>w~F`EZnzty}e4nFQ>xsbAJZNNA{)9Ec4}8WYB0md~xpCiVo~|To@kpTZN;Y2Y5S6 zzx*D*SynIIci{XDKToXI*wb;ZP&Rwu{?khrd!@kPWO4F2LQ$B({gkiU=%9e6*KgCQ zw(B%_SGO#c5P6S*RBek9S(ar1N9%}YBuHMCyTu~8-Y~oL7i?ovCGXEgowG@MUKhc9 zy?dN-Yb89Tm*0``l-wtZ`f3b@%tN<4;9QXYf8+o#lmy1Q)h8 z>6AtyWiMOrNTWsz+bGbC&XK&HhNrlm9ZVLDk{c_xbv@jjbT}6g(Usyf;(NW;JnGqj zZ*n+wvq_zqmF(G`Up*mSW0RQ6uM*d4Z_l)A`1ftIp|Ke`Wa*$l=LxPn%$y~2@}bF zr&sTNM|gzw7USp>g2epF@jEXjy{A)m+v`Aph-GCb-VH!z{|^u4b$T^71h~C z-H9Vw2B3{6S=1qNcY+KALA2)m8xFQvzo`c#qKy!lu9%B3yBN8p(<=JD0aP{_pL zAvZF&esVW1l$5jM!k6vze6o4tc%3EZwn%wOoq&;@T`WQ)itN)BM~P(}`(MT>gR(f* z9F3u0%#iF4k4PFnt2n~Br@uolDGY47CQYPhny?)C*5ulq8gfl*@aVVP8Yx%)_SGUj zkG@~c{c^Yb3%~NM*=v?RnnX!IxJ1%#-~%`_OXHWTLm`(oW8)HJZ+Gr=Eua5Kny~p_ zX@VLmO;{OrR>w4qXjp7u9rJSQ}j6Dm-s>uTuh7(jD7p{@=!T}^0uh7J@j zp`!;ehEm+zkYnM@AoOOHM0@o8(oTky!B?+(*Dxov$tXBZ{<-K*OCJ*a{UaTJ88$}0 zY<(EGE^2vmPVaT<_5xHUMy;8Db_wj&Hd^cYUC4_kA$7v>$#2sT6+#{G%Txn=oWL!t zCS}ux!@}H&QKe)AFgCghXs+_)n%*%esh0kNAuHHzx%97y0kl%TKwzq4zPEPnb}US% z>zWpi^E(wY(1hGZyytdRu8uCG^O1Qoha{iIopBn?9b+4-m1nT5FHE~)=U&yYT2JxL z5#M5cd~!@<1L$g#rPDp{R2^WGLAR(~kojT(IYzzpAqqd0*>V|cIT9NO^ws6(FxAa; zUaDMwKja8dau{TWP+*73n8B8cQ4u8Zjkx#xQ!FG5DY4_~-75IxD`435SyjpR9=}Qg z)zXI!c=TrQp#Nz3&c0|UDY_Ep*0Ld`*dfNCWixl=8q+3y8uO}D8QxS3iVKU`ry&ND z-Ed&5AQC}Aro`^A(~B(HbZfR24Fy{A&^(ls%k{pFU7>uB9ota-d;hi($O(m#(g^So z5G7i4^$-*gnOA)vLqfv!*K*^Rn7gzYE8x&Ayp(%^rT(`5-~?+3+6hSxGYvz^&lj?v zTCEr0zYtUkc>3+*=+e^3Z@ynNl-c^zxdD;R*gRg9DDucL!sd5Z@*QsGK-svK!*1v$ z0Zv^oK=!LTvDKj@h6X|*z=?;g;SNjb8a9;-`vcVWB~^CyV2>Tuddt~bI#JrL*Yw=_ z1Awy1qi>|YT}8sij9f1^312leNWZA0I4juPM+CaNIJ;a_@|WKUu}cWcVM21e{o6S{ zvtc~cu}E{u1kQQfRorV6$CN5oNCEZZ%qN3GttcCkGO@ie8XzB|0t=RR+NQo5GEpT zMp`dZJzY9=X)dZU0M%5=>52un=Yoj6wUT6E{k9)`gY*qYqQT9b5BCy`}e zD}-odDM+sL_+!E=LREXAWuL^~E~!*<1dQA|0vR2=ftC&PS$Q3c6}^9p5Iwx3nFC#A zr%BM6oPF~=6g~D_L{3i=ZqgpVdBu}Yq)W2q3DVl+P&2`9yw13TO_*;C-taNCSky5( z?1WbZq>@?tef_qBjAW-JIm03sA@4*~T_5$!A;q0#g;r89EAlze%q5UXB`n&_W24_1 zo1w~n;}}Hn4%|DbiWC!`^)@^Od@1^43;uHVC|XsTnH=ns+U=Vq2@5g7lq~Qe5YtA? z)w&B);>_#>`A0+t62*L#-)chfQ`4**cho-Kk>eJ8Eu_Zk z6HC%w%H3E|QCmXj9hCe!6SPX)9`Xig+8h^xI{n2gVRGdWzvr_K9GDadb#dcA-&Ni) zg30WPARtV~CCoJ6_X-`3iNpvsxU;0MMqS8$tGmXJKb_h?p)>zW{uLyBZD@vk{)Wff1kRUys-9zVm;srn{I<@=I15a$)e`4 zxRzUIA2dvAM5ejH^7yjnXy0$^J9F^|dS`ZX9y-aTs4vh!_b> zj*Is@ZuETqkRW2i*0~vTiDaXR85=3avNjiHHcr&Fq_1GI-?T7dRn5!qw@f^qTIx6xLapxn zcLt(zR!%Z?DXnqs3_Z-mZ~35qbBcH0&?E{fZbU$R*0J4Qip zl$>eHNH6!cU6oHtWEALal)yn)Fh!X=%n{0?s;+Y5^+0fR%kn=R!_f!ffQOBfx0$NN z_5jYT^TZ#7{p4GASX0NOZc)Pd<;{34>n<%rtF}q_HZpFXT2pAE^El;OGk$*syw>Aw zhVw#{D-jbZ5Coy|m-KxVEk=e58k|{K6a5O-^@TC7`?v9FBv zJ;s6>UDASvH?>*V9Hvt(`;bs+bn-Wu03$r3J8`*Ue^xA>0ti>}UO(T8HhZh2o{u87 zuA!uom(5?CTXXUIL#Z1I7e~S}*ybklY5i9AqOU=%&WM2<1+#w%EPqJyV z`fhk`yPrZ7O{kC2VjwQ1H15XW8#U=>S!BoC3Poh8q zNn1B)I`^X`q&1@R72!1{0mu;khSJy~o=VX;kI-Lg-@bp_pg6|#!rPveO`>1200?ta z316H^PPFMgtCN+g8vFu^{>#!lZukC)so?d6#VI!m=94= z7?6?o2{e}jx-%GAP2+wLmB(BbO`|Ine(Fh-|8z_0s->Ah%r!D@CxzVT1uh^M=^a?-ZX zlvWlo=&3@Y{2Pw>QGQH;mLAt4bUpIHK#ONsst^w5?VmzsFklK!sD#XfVXRQ4Bpl}p z4ULQsYXHbp;~G^h?pCn>X^r1h^+Z=~BD=#(`0&O_Rw{96NHSIzo-wk|{qNA2uJ|^K zb}OTC{QT{V&OV2efn_I022;P!EfIjg0~-*nZy(Jo8eZ%mZNj5pQHbGM@ih`_L zh#NEerl@pmSnKc1qPAuNH=2Y&#-SY17RUHa7#RDN8bwE>cvz9V1!vRK249s|D|Cq2 zo0M2v!5NST9hom2hu_S6l#BO#vRxY9XxM<9K##?ZUv9ozoSdMeJi{pU9(sH_<(7Ov z|8d&lU%x3G67YqRqgQET>GcN*<$faf`j1LxzU|!W=#;P(sdVN-m-5+IYcm_4QppM@ z$bZ+6t1vApj^UiG;BWcLQj%^|EL?J&={M7+`_TjXjV|&FhfNMfXT2mVRFn*LTZNgs zd><{V@KO}Vc~r{x6baTy9IaKC`?2PcvQ??%sf|^rgrEy^e*E@R&!jeR*2l!ITC|D4 zj82bls&L;7X-|)gyK4I@TSycjk!^SAq@WywMF^F0*UH2^%S8IQwFKWAUOZr|I9{opa(;F_ zd^*V_#6TyU<)OoA@8QYzu4-L9l+6ZN^nLiT82LeMttLqeoia~W$=9h~)BJ~NhnBg0 z74dT2^K4M|tpF`~EuE}uDw(S;;QI$zD9*D?#NECRM>KUf;tT8eA)P$mrhRBcR^rEr zVN0&8@1U=)d>_1m8uo~W$%OGeKfW*)HHj;0Yq`bf=s%3Y_!@KJ+ZJ*ri*s=yTiM<~ zrB_!wm}AU^(PuaRGoa72^f)2B{CWROs;ZYCqzyc7<-@!ypV9}6k(C0EO&fx+m?U)3RN zq~aR9dNyz`nNn`EyfU5TYRj%~8WQMJj}F)ClP_k}sFTH5nutARoD3^dWO=Vdxn~Sm z_~@|enit{d6SIo1d?g{7<&k|0@6itcL#9Vzj?w&#fxeCl=qFx{pgK{H`0$8*TR+#g z#Tc~KC2xQ|H_giYT;4>H@(G#UrdBHbj%LM3S{v=&4_3@<&rondnC6b*nYR3+joosj z#t93F*;!(t!y$YuMKbmGV=g7FAuDv=LyQ+Uw~VFvy#AaQe7`sPB%{8K*Epp%OqcXb z=Wk5T)*|^E6VoZ?P6kcwtFvJQFutVRd54S36AZtcCL|5{EWT8_D!iOd8PjM&??GjS zKb3Mz9j92&%6swm_RT?w^R0n_eg9@wJ;?@v zcNcxu7R#EH?0g!lOQg<3BlRgHcV{*}W+cst+%-kUO0?k$i3D`v{PXzBx^t}iMKqv2 zfy#o>{a2d#)7$1HJ{s!{^*9usZ90NEgix!eA)Qk^msDr75SSRS)i$n^#uL}&s3CGR z#;{0PE^tO=3mmM;N<6O0l=z$?RdJDWQzsC6Ir0^gV>M8kB)=~wGzVu}H|^{#J-Y2G z%-i~qP-Qgdv#Bx8mzZ)w;id=OR_Awq04y%@3Wjn{#XA0(-WLJrSxxx`y|4 zLW~{r;mlkI)s3{W=i z&mQJaAX4lN;SG^Xaw}mzZ!-`wsWJXu?L7Cl*UmIc5^1RkMe0Y{MP=e&*ynrWd+FYaobhY|QM=ei;J1UgtQ1M~V(cj}D1L}a#yk5bd~jia9-AyrkO?EgUjK;sz@hQD zihX25*2~(c9dr6M8Eq;}3i#AeeS6Z}u-lfUgwg$`3mjc2fy|YdX^eht?_R{hOa1m9 z`57;;E?Q=MpgRW$u^38Wxs^3iLG*6$NZ)nknfUua*8`(A#`mJvU>9!AA`u%quXjMT zzk^b|a+MmxQ)S#Q5q}{LV^7LqjkR{Vm!V0Tq$Dj6qrm&9 z!)m!HltJOW;1R8t*PA9BU$zC;Gt8q#`qgB^Z#R9VREi4WzHf|yXNs70<12|`7m3sE z#Pp<{n$)?0@#*r~%kcJ3$d7ZlL`bQg;zv{1T%AoiBk!S`zvuRz>i@iy!3m!}5PFI| z(^!7m`RuaFNJrXzq`+Dsb!qimo#EIz5+lT@?h38h4vNFU8a&|Ls>L-KKtRL+GkA}7?nO-mXeacZ&?2Lcs$RHPiQR&pp+g~B3m)^~vHr@U>z6#SlAb#_={0KnBAwwD zHtz#uH`R-DMmke?juX;++})tcS{n?b?3fYJtHX;WL-0@))4&~jg^8kZoF5+7&e;Mg z+AcY&bcSKF2J#TrZVuTcS!yIvuZMYW zC^pNsmw1!xAFk2B`{HOL)f>*U(lsUERw4-umnor-ZAemhfe+^ zgLyVW1BO?h~McamvGK2zx~he;w32fwYAsu^&&mIx1+deMhv37w&B)?R51 z;ohs2IP~J0!T8iZlkq$R;4fBtueChye&PDp+bwPL1wm=g4H z%;@xtX|IzMca^}a_K8_^t1?xt7+AR45YSYnvgfs|3p&!(;GkcgJlA)SI){&4d8%&Z*rk8~hdS-+rlw zS}~wmbX{kUWedy0%>AXE+7=tSzJ2304bVs$Mam#4<^9@gTt+X%v z?q;M<#N9VrLflvvivZ4@9xbPZp@*3tO&S4?1@3j|UDBe{xbqdQrC8iG)Sz0bX|cE~ z&GD(G*&f1`WUDdnVg(PRBnc_VU& zA4wsW;0wRiqF^MFsbsWqF@mi;G*>3;besE7BkDK!BJGCd6SQ4x#^NQfy?a%STW>r& zP>Fgs9y3w`j2>^ltTB840{pTy>2i~C*WQC@Vz{S6#X3#SgTS?MLcr zW3Oa5y-GyiWZs5}Ai4HGC#A2r&vu5L+F|*4eybG#P5nal&ybR|6L3%l+^~|QyZ=FW z^H0DqbDWPM51fa${LpqKsGP>dn3z{8hgeD;A?G@mb*y+Ysbf?em?gjnYUjkzLQm~T zRXVa`2ny^cv#q(4N(52sSv_QA${r(ek(q`^=;MT;VYw;SPX?Qc*p;3~q$oXR(5z=D z5|gv|_Z(crG2GE9e2%2R#mj}0_;=T6GTeSLK6CnPJtv5ja1>;c`gfcKe6Un|Tk!gc zPte%lkERF(dvsrg;j6-Vuo;d{lqb>bwSrO+Z0KrR^16D&+VS1;bd?^1d>( z&A-;_GG0ftTmSSTdIcAAgK=G}zgl=IUbSkD2v-KxOom3=hUL*Uv?>8!;@5kGzjR~YhdIl}`1nX-whsC!V)+_lQtOL{Df1DOViBa=gU~&H% zF#ZJm)`BAv)2O^xzYkq(I9W1c^`G5eGsJt5@G2jO0Oq^kdJ@=$g{CE`;CIHG7nG~A z{g#??tJnQ>GgVRP)Prk6E1nnql5k5CaGad=F~Xmv7Ppg1kySHwP~sv}=^neUFBN!zt;>&MrsZK91SZ?+wKRMhTQc^C$L-5k6C~ zx+SL18R50#GX9DC{&&cCLrZ;@4)u&L_1mxy<{xG;{EbB`!#?kSjdq~?`hFJtxHC@S ztcd{YUoVA@55#b&xqMGG*?3;b1dqSC=QwOp_-`G^Ezf9;DSTfI;=3ko&;CqT3mlGL zPfIl>Et3^Ef_DP&F<=lPu&EbFVch)gs9n4nJL~LOk?am)5aey1AK6!Z`$y>oHpv+@ z^9(+*Nc|R}vw?eE(>RIu+0mct%>9<-UJX%m^PFYV<6-kL&wkP!Hi+ESh+$#)O)f|z zFwgt@5Y+P5{qU^dtps^1%h`eT#Of%Sht>abH*yO0^Sd?zQapvMRIfGuK!yH+~P^6*2%`Gn=Nn%I=scqYr(-N(^X=2Vp<`fp$1)A7x^Y|KWUq|?k^ z0)WhD0sr_lph+Q!#GPqnAH{C~wqrSL)*q%@LE{{A z-$UJdB<8XOBq9h|k&`3Ih?TS@ftT|D%e?J(r+P}(@g5#E$*?X&w$$~sx!>*{ zN`ERd4<_z5MRJbr>-#5NxrMl4u`R|0Wl>ZuewJ)?0?D5KIw)0~pugLcJOD!=amcZ` zQ=-=2Md5+su}Em&Z7VpMM|*_jZ6UHwrk~A+pWh!tJ~mXOeIEvJz+8i}VXXm)r!341 z7Pt2~?LP96I^0f>YbOI^=3$|i4u%FyueqtL zUj3-m2@N}l;_dYw8vvK?_sAoBwic!wU^_m|j0BEN0^E+=G(^XZbx$J8#!P~m0J`{UvSp^o$ zxqNJ{*{`PI?aY5`e+zd|98Pe|ZWDWDCz-20SyqXHX`_jO&@Q+-D|$9-L4 z@m_ry9J#%f63_?#e~ma@CCSM@tpaHkpM8mx{EG*fWQ$80^#J3rLusoywsi@M`cgFxkv(>vkf4}p>;~J$y0~4LrQ-J66NdM zq&;0O2Q#?->{ko5hCI37IpH5FNf2)*Cod32tE9l)xvf-ehJD3Sr4OdrM*~|~uVMd& zHNKcyRUlL#tU>pdow*FJES#Hs(cN4fwzk#FVKHlD!q*S4 z+DWl>Gq*@7@oAj0AXN(L+FzywWtv!xt(=b92zFE;XOA(WB^D8&xu^dwK+D|}m=f7f zYWLaTJ@kY4Nt$}qSP7llcHI=JANm1?IJ*A5{&@>h;^)~VqWgH%$f$W9yf-fFE-PPZz^E-FHSbvFTMIYtKz|aYlmghMU;>Ae>JPnJxu*aQb3l>pp-s^IhO2$mt#* ztHXw-wou}x_0)jyu~H4A}?LHqmL>}?Ky~gTOk)wxM-}y#LTz~gnr#hdRGY#O)`NK#b4J&YI-@MRo=9e51-P7VbnN2As}cuKG?a(Dh5uD| zrLtlgFBmlHXMZ}pPWCtLGtR-8sEDFr9H;bhWo(^qWelw;O)a0XFM8J>+^VdkG-ivoO6EB=3UXaE1o6SPoy;yZTS zI*XB(Ayk@xMri11L%9(K-^|SPbPS-$orY#6Mo?^}zS%beBSSq?9Yd&PLl;_eF^VCE z96t!h3zdzGDKA<28~NUr63ai_B~{Y}a^ui~JG@~^B7trl9!djAVOiRvtdkvRiq%3 zJ6#_tyr8;-+4Dmy*@iI2zIIEtTe^294iWu3`DXz~8ly$q6$H<8&hfF`DNWjT{-udh z!LAK~H_o#pv1Tbwe4&3?(CSFc6B%DD`V@kvnFQ!;wxKys?aptdQRbhr&pEG?y1k{2 zHSRd}po)gQhr+{)aG}*@qcDF*Z6XzC+-}Unq|CLOrfS-`5Wy~&{tvm+ss3fCPv*Y-XPGJeZx%*yhU_{ja}rpGeT7{x*wI{H98kAPqswechqdK7jWJ>dy@vJ&p! z=$hcp=*7&qWh9)%FBTO1$FntKUH)QJNjjtS%xu?JZT2C(X;;s#>4(4JCsxbp8K!4R z2mXwfLN$UeVl^qruU$Qsd9r)7fd>!@^ z{V-UIxXo$V`u52a-&4noQeAr(!w@Mm%l*E!wd9V-U=|Y0`hKWeOF7KSWIW58nv&Z7Hu7C=tmAV z7?WsXz1(bSV885?a$Sr|8Je8RkC2u%;S@5n^H^P<1oZ~vLt#?zZwh2 z1MizWV?evN@`HEk#*0fwJjNRkrc>pMp_^L2VBF(vjeQ-NZ)SMI!S|lFO6KHTnG6M( zMf?GISYL&yjjM&QLPtlUR8(;)qmg5CN{6vA;7a{1^ruGp+0Ow>UW<~jO&gZ6(%-6|Hb3|IP&3K-mDN|2&W7(zA#eV%;5ja z{8GyN)T{#@1_GfRgMr;6#-(>SuyC*rETgis-P@*>d zj4?u1d+=OZZmPr)mO;{5fGjmPu>YlL`)+yp#PTBc@ex^P=o6@xs+9AK4bb< zo}zyMH+_|6-h&NXha?CG)cA4u~}8jYM5 za_`RC$?P!tF~_oh#YBW!-@s>#V^B);+&#NVRSma@_Uqf3Jf>%6UMmNikFnGY+;_lf zomiFLT0YOMfN^1J8)>Ut_&l~U!=UzOkk|wH@Qu9 z?8z%aEqXQLI*R5GeDA{V@gJ%`Ni92ZU9)KgeQ!koR=0OXsQ z`(x9>*r;k0^wUBaM;frBax_}13HO4m>~!{Z>{d?yM1e|yE`|- zQwu+S*r+Fu`u&)g+sIqFW?>ZqQ<){&M?Lw^{P*7^z*XM*GDmlAj@kYkTV@VIsfPWt zT_Piq%4(w1AEs{W2>SYod8M>=+ge~9Xe8>sr@H2zq z1*zWwazFL%qZ@F0_SPSSPkB_``net5D3$$) zCBjQ3(~2=;2MC78?L!_kF0|64J3(<}}2kTJ`#qwa^j-cAV>M1e6T#_z#&>>CTVl|@a5_6q@^>>!LP zcx+aF8Fn=cue}s%my);kR3$Zw05vtOB*kAzNN%IU6D&*N=zg``#}J;gXZ_+Fnt1 zX@kI=5O+3L++kC;sN>9K)EdHy2qa7~5z3!QfX<7x4%|OkG|*Z%wsG~-7 zQZ$VH_hIt1bk9{;bF`MDDnUuznkoy;rE`*;vTrD=x-|*XHe9o0y>Q7WMTWolv=FzY zJ%Ps4qnr!y;n+1-DmZlcLh=E;Xx_)%qy71fj%zn6Lz-mF_5j9 zURzQxRI6t{qr3y#>jG}zYUW}KR$>e&| zxd-=Ln3}PY?609k9_A$;mrEVCg3E68+fVx5?3~PwaW_mB+-{KnO`Vm0l1KzT?yc^7 z^_v8;a*w}n@g$s{F}@^rHcU)fB(r56nL7r@UfNeSUIE|quKT4WuLeH`Q~PgabR|=Z z7I&l=%)iS^xT-Ms;mvS3xG=yp;~#euQl=j2X>cU8?B@dKZ`_d9rt>W@GoK25J zNu|!F)h5@m=WKW=+AZ$Xk@G_uZl_Mq5E+c%Bn>Y{U^Gpcqc!T5VIhlYTbwK@nPE6C z$UqBd=`%$d=p}Kg+|+moHgyXn!rw(`V)o z@EXexJK|lSV2Qv-k^NRm=Dd%jZVXp;P&x{l4CE31iX11H^F0n<5aQI(x9Xe6UUKCo zOf(_c!XPO`8J6m-JS zx*Q!v7`C~~GsoVkc+TG06%T8$2aga*YP<0Np|w!aH$3~usP5oVuaBb7QC>}{PVh(C z@%p^+FCIM{T9|$t?I)~0*?wr)`f$w+hE61CsvoqagMkGo0jM}Wty~H&P5e1c1GamI ze0aUl$xDy=E?|WFcbji!r#_NuwaZjXP;g<6ew=d?v zIjC?Sh7o_Vx%}~3n6#TkUL*skOkiNY5H!YrA+DD^?{C0A6|CJ`__@Cy2Q62hf4dh+ zyO^;LN(Z)9(Jk@o7LrryPet+ycKZ+Nn=j5D!Dt$UO5`hzQS_DwRG1Z31K$Xb=) ze&){ldFlwe@WX-s#auwp0J1M-nB(3E{YCdVcAtVy%o(76S`;@_cj^MGQm4D~o4%Du zd#5inevHuFBXn<(R)P%+YbL>xRi`U=6vsjdHv zx8QjYPxmA3s{YhOY=(`%C1G2Bq1@PIXy09{DY0ic^*GGO$FeI1d{=!r)t|E=29lek zG5(CzhuKLqwpEl8|6YAHA>X21mqWA#JS?~xE$@_?xnpHz6$(y-8WKx009>R^af_kO zcEbGn;MmcJ26%S9uQ`pocN&`SP$f~pYC0=Dh#V4n=kqnkAU(HZ^2Z@c{T$H9YA1y; zjon>1VV7@Q5#dMc4zrEJ;EZv$j0} z*f!>Z$AOzD=Hd!9r8gb11S+PzU(mrflo4Yd1DiK%d`W*#<1;`Rec)f@){MLqE5>+H zMnnrjtNlOZR*b!znevGHfBb&@LMwa3EO(TWHK6Kv75c-aOcQH9T_0R_6)j3@yZj0j zsj;Yy85Z+TKr}EOJm9NX7+SaR?eVr;VO9)iQ9k8}>BKH$)+{5u2d1rA>_BI30IdrZ z6*yW26JArq#ck;S=%Q!Zam4zSAN5OD@pZsjUXJP+`J&O(q863?6+eRp^B{c6g(7Wa zUq_m3;a8>jvsD@K394kn*6069-?u(G6d>%i!u)a(wSUTr9%j(lyq7W5x>)<0hJn-i z@{`=}?M-}h45&vIQ78OBFydy%MKV26f8s9lLfS@b4wFj2LnAfR3JYqrgbTc1{Gn3oC`s>p0&#H&7JZ|>PhryW|PD8WQGS8O3wQB5GcB!V?Z`v#pzU4MtDjRoL}90P)=K8Ur;@>It&_CUYIiYbT1=2j8$dvv_`8) z+2-C!k2CKsK%8;^tUxb9Iy_jrtFN3c$h8YrN13s}IBQO$COWv=p z&%P8mf#>Zk-^-`O^*x+~C}kB9Xe3)RaTf|7rmqtkkH#NP=PFPe#A=IkK5W}jSWT8L z6o9-C82$l@QEr4RnLs?jci_?`i!e9Phxwl+;^zM}2THK!;FpS;N3R7YQG$g9BP|16 z9d$MR{~QpSdPXKXI!5}s+GfV!B!<3$zNChZnTfuZK`a3#FMvmENbyakRJBuMpQx&Y z-`#(6P21hZyUy~UflYN#id3Yr)DFn+)$!$QjikYI$F=@WW0|ZLlT_#=k>i~^OsPrI zmpW3n_lONZl8n|rG3F;8nV2i61~!kQ5Key6n5QP4egomEq5zX~5c-_rKU&67p))IU zi7N_u=M>McdEl5G_*)Zlng%zrR_71EJLaRYLHCz1S%(Q0Zh`2s#p zj>jG~{b|3Pu~+PYb+bouCkO|1-Da?yEAK3ig58)dPN8BqMY?M3`H;lm#plO=F*M zeqZ$pe4i6_UOP-dOHKDuo`uV$yM@%H0j?W$k8SvdZceeNns6mp5<%gYpx z-`4<=Vl6spL<86Hf}QkgUk3ZX{oRu|DADx^AkXc-x>)}ZUsPF|8qrieijo%PRB-cZ z^<^y~U)F)MZjPb2Pf{zj#)q11yF;^f!nIzxO@FQ;oFA=1Y#MJy1s9_QD`Tq6=6WY1 zCvwGHfqh7z3JXZAUKK6uc!!ndQ2VF_cI4XjwW14(CyvdS0G5@jGYD_`C+~w>7L>1N z7+ccMKTIC~iKv~1>QDCL80OBGRaE_pkL}L9%PuuF9nIv0Q<=24F0a+Q5dBT8iJeI3 zQc2--s&ykc}{mRMNytRjk&IMy1m_)*q3JVe(fY5!dm7=j6D2MV@Tawi>%h7=4 zd#9G91&NR5Qp1$L-MPIBx&Wn?22iJjkfK~nlz706uCLp|Vm~3`z7-+8x=BCgEj!dC zMD{iW;|Djce(rhbnT%g%u8cNJQ<(-w#Fkz6vBDv}>T%}{He96Z52{j4eW3gf(K4+g zsA+2-hs+uJSI=64-1nY(#(%pwXW81d2W2*2__vF43*DI8%jklg7(PtJ{(>B|x_?bK z#W4X1B{jg3Db2t8+R4;&@5kXE?1Xj`Z!2se~Wp01a64!`X6w z{>8Wk=S;5oHU$=Y3I!UKTtTEPnO9;4ZMFu?Bhtm9F^}sXxWBQpT2_^4ZAzy{nxnYZ zl}AJUgJ7*&E$PaukwGGVWvqiG!6r#iIqEf*`D0&H_6iQKwPZw6J+k}PLOsY10`#Bq zyEtMc6z#0YZzo?PaNHbtxyMa?$Q+4Wa|}*cxSQUQ=5^4yBlZ~%q9u-sV=6MtACKB! z!3enjUL&>0oU%Q$YvY5(N%RLPS?MhkUEpv0ambv&(+d-TaKhW6ZmCUZ(?6K;jV5V1fj6*4N5`*9bS zU4Mql8UpiwJ=T>1sgn6y8PN2bH%tyl_D30leG~lvLoe4oq~J#@v>n9ZBIYOjBPkpMw@D z&nU+5G;;nLJ0Ho*3q0|*V-C>uuIX<9CF7rPE+Qh8R~wSzET`2gvST$#m$*Nn&HFsR z?b(ib*F|Ur0CJS?Sb*DK|3gqnvxqkjDb7W0j>RN-7f;DOuH&7sbtt#)E@r9TEF$fc z3th;Q>l)bJB!0^JAbNBE${U#5oU$Udcp(;IXT_&&_;txHeDjrgS{qm5sTf!}xx~V{ zPCq`EkCzH`(S{5w(|RjW7{(+$&u+ciUj;7pZ@&>KEWf_f*2V0`k$WBPgZdI8e%GON z%SodaDd0S=*5XZH_$#B5%4pe)yP?ur-L4_cI-B8%;>VFv>mdIiU|1!jpn?h~5W)(0$d7qxweeuhN!bNLU|k;g#p6V1zRw+qNWvLxvhmPQ}HogA%N<^lP`J zBfy&;?-?s6R}$B8-Gvkh-sQ9SwPB^nGnksu0OCK=JxoWL#_E-Tws-5BS-;%HB{C2G zqOc6-BdXY0Jn7Y%=%8b_tDBpfb#pIg$I?o~@S37bn#oJ*Yvoj-+PAoQh~}Eq@u_xj z%^5CLXGKZvpz^9FkLSu9WFmo21qGR~nw^F}MT}ZuwSLR5vHgEmFL=JhxZO-FZYw79 zDu>G`pW==vYqh)Gxw+ex+Me53hTPED$`k4Ee2AjHwkzW;^`;>aA^%3x<_E7|=>Vw{3kL|0bA4kzisCoauljs-dL?Y2WA9ogr0?(?RB2rwOpo3Z z(;LTLiOX~$^RdQ6Ef~R-+-HZ&G(MDdHI4Z#auG?NBwAqEm>y@u#p=L>MggaJ!q|35 zl4cFQIyx|s(L?{J-a3D2%|DG5(tDOt45|jSUVfa)?~?8EApJfNjhxfsvN!-{qfpF0 zP6jNB7!v-78VY?BzNWb83bf>Cp;Q)ecI1t%T{*^^66Bf`PI=5hj|CnVQ{*@*SIeDe zj}x?BUiFZVp#*-Yt(nZv9re~(PPVx_udQt6OdpQWxXNwMZ}u-TZS=O(m^}>;Be}0_W|@}C&45VbW}w3&OiuNYi<1)cs;3Z@IOG=IH&k+ zb{kOj@~Gcn zY1B+TOg*$a7S=^mt)WGBtaB=`rMC~!uLi1s1V zp4qr|&Muf#e6+$lYm~_Dj#hJzp6+ZVZGOA7g7NY4dw6?$f2!(-^ph_OrU9vr^;ccf zut?e&l8$tLzS{G>6sGY|sFD}yAEQb^u zkh=Zc#1M!%5&+!gAePxUqD|i3fk=c6g(M|jfH2Ila^4(*xD=X}-H(GxQ`k#IEaD!Y zrk>qBcpVAjHMLyCBGqdz6ks8^Xk2@6^clwz8UZ%5kbuP_U)fLS6y8e6NP2Uy)ZmK0 ze6feM?APb~NK41_oKAK5j+a-fzvo?p_5BnrS>`iUaytisw99ax^LSWdVk{Onxes9g z|C3dKtg#q?hNorrp?;{wj}N%H*H!|JC^wf{gjN*X52%JUg3ROFP#8{%OPbaTls$W4 zE=*)TIkh+)TTA6~zCQaEA^3T&7u7_cCQ_1Axx^D(!@tI#;h05v`mZ!*2f0>6r9jx> zkM<6PIl#ams+49)J6mH{n*9VKlaK}W7)({HxQ|V|^v2=S-!Ag5`#f#YG&IE{uxkzl z^-;erj`=D64#KH8SUX@#%nE7pvY0l^vU`+1u{vsC@AF}5?F#tC?_xMpI!2va4I`7J z;Usl4R9Qf1NOB`CSAY4U^Uw*tK*b?ohFvmeIjc|Y;t$864dbtNehAGG`n}LJV zgTPRNz#O7(j`yrioxjO9`)zVGO$$-W5$qy0fR@kS1+e>tz>Zqh435 z)z~F{w}6#C4IeM)S>=tsF3!Au>a(Y69D0Q!ftV>YP5@^k#PliUs>V5xE;eZzRKaG5 z%nlDM;2ICHzh+?if`>RJ26qnMyIaBwZF!cW_Sda_2QJW~1mKDJw*+d&;z8X?u?50g zk^9TeS{iD`fSTM7IY63b7VY>qVnC{?Z;;|K24rhg>4$G+5p1;cw7`{R^lSoj|*8UN1elvG|9}hA!WiCtkInyLsG|`OA zi?M0z&u9Jg=Xt(p_9YGU{5f`~Xgj{WpiD_01kkuN{YDdzF32Lp!IYU-7n4&9U`p>? zqYqTiU1~de>@Kd1a!4MPD^K& zKG<}(%5()f^BL^A=&{YR+t)fZvL;9?xi7;6w9Zc3I~#NXVNwYjE|`kpzhBc?KvDg< zpT09|PP&V-Ut=U+xLkx2LvooQAFh);Kv+yH1p2vZ+?nRaZg;=@TV9&uc>UKJcre!0 zg|D>g`NU<`##Q8B%_$~nFo(c*_k4$QmZnxO6?F3@(_l#jCbGlahnssvUf0FBd)52# zHJ12;E-(<2L^q|$1UEu@wY&r3ZSwqYtV!eVp7DVr@we56&2tI8Qy+@6m4J!JO4h>< zdOdtJOJ~A-mWJtwq^%2MC&`IsKx!WC0yI^?xvO`#He5t7d;2-=v4l$ zh~P?SnFm+)TgNo(;$un!xF2hco@WLO#p9^s({G2w&(9%Y zRj1ngp?`meDz81ioi66b5BTMat8Dm?Y6nt2A-s;9T^IDN3ua}Hls%2D=3gNEPi7!s z`>zz^|F>dLfn|oTAVvXtZBqjsQ%yZxZGAmsEln`iK^@GWG&9xKG&0gRG}hNN0JmnS znp^7|ni^_or5+o6MTzM}O&5xUh2lxVvP1d)8kW?m(yueSarf0I68V|2*IQ1o#)aTg zYKPTA;v0k%o`OVmWztxY?7y2czo~c|1g74>G=8dIivXePZ?1w!=j1!m)`+PG+CnH@ zeX2-+IH;H}dw^!n5F?xEG#IwaW_7?7uCV_cE}nWR=CE@V@#o9cVg!NQ;8@Q(0o}aL zow90addopUCw4+d7Vo%4NOV`}`_gF{ifXFoFB;FBTu*7b5FiB$MC$GfBubae3MBv< z>pBLhIe;!=oduci8!Kt_{*912yC-&`(j=Nb&(3+Q`^8WG=~{hjm%t{rhH|a-bV14% zUk~y#Ss@9~2K_GLj!TTR)xxV zp|heJ%XLWQmki#{v>JU!$G-vtasQN=ef934%;MNv?Wv9Y;QGaE`t;#~m7K)6Lpx-%B|7P}w#?1+ zxO5)8d4|G>zv!~_0vk#TpBkZ;2}zP8TK9}8+&G~CloX2BH^l1qbIR+c%z(_Jf4VZg z-1(HMfEeg6M(6fCD-drAcoVgKY`HZPjk6L_3y}T02GdXT)y#N*&^J-ERi=6Gl0NoY zY#|wf{1DdZ3#Q!cGSPf&Vi2Zg)GR~NhF^}wB@I1pzW@>~%I(RGRQj2aaxlL$=(8ZM z0J_77W?nn#SbV9xl77kcGH@iT*2XU<}U56xx3kkw^nR>V&s1$bDXfz@GO z$_#l81dI@jQfV?;f-OU{)(?O3piAH0O%0F)%dK*KkGV|No9AOT6pusv9Z1cV%TO?V zvPl&_snISu>#&bq9MNLlt8)pa7P};YFlz38;UaiBB5M$-n zpC#v-{`9VZi1L``aimHi2=ZIy<;&b=_skYxW0@DSWLI+KU8zv=gpPdYsA+nJ_4=4@ z?acL>$Rgc3xz-p;W)3HxR2w|lA*6H0ymqLOpS{y_SVF~4VBmuae2R&7LQ`{`hGsNz zA)2?~!+6m*wi)ng)MF}r{)ezx5T5n$dzpEl8pijKQo92*NCAif0#Q~E z0226tGyy6e`_+C5OYWt5TMg{{I5NC6A?KKP&`ED)U|-q}=v2$YHndEv7piit<9q7% zOLF9DDxuI7lhDtErmG~H@WU|Dp5hI(>hD^HxMtIHVr2r4|FjK4f$4HD4Vf=RmSA%r z=d{{(wHwob!Ryvk7e}eii#9F#hqhX1xZhs%23i=M!Z3rfOzHQt;?($J_VI{XrjM;w zxo;OKj1hV=tVv1Qz|!^xIPjzZ2Y_C%X7YCKF{4{kc-fqxk6%~vT_C+N`7(4rS%DE2 zh;8aqggT5jjVC&~e?$?qLAg$?FaTPpjnWrPgHlecz;JixeA?q%<{wz`!a5LR-&pl8 zHH68;Z(e}_EJPW19WK2A`%Q5ucqa)m`q=UvUV=aBGctAU>7y+x z$@PM0pB4pL`o{yVJ9&4n8!NGtA;R%P(|EYRkQjg7lJK^3hv(_RH8GN+z~mygv&18w z&g8F`zUpecMGlQ}mLWA3q97yZUk_m&VgisJND651(a2_;CzA#j-inkk+V34cjPdJf zng)Er0ZH(i#S`t$dM;W07kQl4r^>q?4fR#+IW-k5_t@bs($SXUf*c`kkjaRTx62>50a(h(tG1U6A^ znoH*}ADE$V_9X)amj)R>r7_a10(CR9ySfR=bvckDTJ<=vR%CT7SnE4> zH+9-hVYheXQc`=GkOkeU@wOVhDCoT=*1cMXLR!8=#C*;O+gW9+{nB&OsOxE7!I!11 zklcXS#%~0cqh~wm2?Lq(@TtbOGa((Ja1gN$)S^28A=QBb?iUjsCM}4eB!V3#pIK~lLZ-E~2Nq@}( zQcaR#^qt5jj1T~1N>VmKS!%)Onpj0VUgm7j76&>+w+TYYkXqH-Ktzn3p7rVAeH(%G zVbD59kO@QGv4q^ds08T~@|HGwA|;_wXe@+!$5VBi_SGof!$&dIX00PsX6`5JQjA#{ zG`iUcvjS+HOR9Cw$?59*(92C>BQ8m$FsXEk%vLV&2)HlYkuK#pD7|s%;kMH!layV4>+D?)3HyA7M^v>nGm7EY{=D>2rOM^2mmagH!st>tswiM`ekZ(S%R#J3N17d+760n@c0>*KaGRV z@)KwFcj1Q$#v4cN)9bMTg2F&**l<{x$35||;J~dt6UzGi>mmM>>(kqf4l_>+MCL&X z00mtDN*_v$c5kYf{7mdyOIih*-~A?FiU)9MB@Z*w1o-3bA`P3{xHN{H5*qMSL-4CK z)^x(n->FF>BcPRG(n1$?H1>9FIU}!<`@vu;f*c#Xf9>mqy8ikdd>TaRwc*N7JK}|G z{M;fJ7dg>Mp*;DqOGyikCW?64eR(Nz{OanP1);Hb*SyBR@R_X@O=M#iOX3-y5~Zl% z#g`*aX{@8F#3-p*k$@?{Ec!a%0s!V+*cxGi00rvO__afKg5i?uf%g0F&0C-RvGOSh zqEoyb$M;@#1IU4Djx~P*9+}oDJ_L+N{2kf#1n;zZrDkJlsu7CrD);*O+U;EQ_(Sg% zsAzW!eK_&hz;aq@JYcYF#a;8U`=H+JGk>+b^5$9buGh-N>W-`wo~~o&&Db$Kgpef{4hB0Zqg0j&iz1zAC=h2~QtqR)vo)2YAfAUf;Dj2Z zFlLd%kAqZU1~p(sOO0DW@T>(izDS1@65mW;l~R!o6DD9adVDSsDaYAp)R&}=!xoei< zK_b;0$Jh*K$*?~)sYHX#G`j=eM4`U+KMf`@btO7i0?h_CNsjmu5sJ2f?eFe^I`b-{ z!V|?yZ~u~5m^*IY^KCzMH12BAkxa2*Q%A+asy(uHJYfYws@+`OrxK#QX)2xZhb3EE zNKVIXxl(*jFv0JMRLjy+6m*FoXebVZARQ8{m|#O zOpVy6I#mwJtg+7)JNBa!?6c9jbkf;d8+6Y8a`&q=2L0*exh!2)hBK&p^@P|A`HO;j zRJ`SJ7wE#!JK)U~Q>I0J$v`x5`HnRJN((tpqx8^0_eJa8lrl#t=Yj6l>{@XF4T8uM zB5-YH4b1It$yM zVb6az;iREflH=9=rg-C@`)Z?X*ZaflaUH(>sbcwXAr{u`^w{#};peXjhfXx=zJtOr zhB8cHQu+>1YCKI#cH@4{o*`pJmQ=2>T|3{(I|3NA<6FENyQzEu_#6_4SA37Q`-V7RJ?(e={jMn zfx-SV9+awmZ_>tiimb`T++QtOZTMw>3iCGHYxw z=G+v9ukg#V9*Zvl#Ow@b!pzxV&%CS2cUJ!OvVV}USn9*`H{-V06b0hLo_~V2$L0O} z-&0nTHIZ5;9xuAM*lh_@V(VWLfO=yy_^8DI7 z>*&5_@e#koR~lO&O){Kf>m*YU6EtK2q3Cu;5Bj5oUENyB%bAqrvnN(_LDPIZGZ}XV z;_>6#m46gm0%Yb>HABk4z%>7{iK$+m1mVPGb)4dVc$$GzNA#-UAEKZ5-mkZdlNmW% z2ky`oN&|Ge;s#;LSNtIzB2Jb_qR1b4gA#>AHQrw9rWJt0mtAprbQMBthliKnuX8Sd zOjC@%XcQ1iy>q8PSRwPk_M~(E>bAiJoq*3y@v}XPQa1VgKK)>Lm--1$fzOXSKO4$w z?b%gXkK3+oGg>`^TJK3Z*Y2s^u^gG^)|DXTMs*?;a-Dm;xChzI&Q(%CX5o*xiaWNv ze$j88(v6+=Hq(K87^%sM32Xc?pN;4q*wOeu{cJs}_(z^72np++n)!OGS${qo6T9zj zYJJ5dkscaD==RkC^_FLcf2-Fa^!g!zarV7t;|nBs>8}KnQ*adJ!MF`X?rc>Snff=K z?dbl5NY)&}5rd-A?|+HI>I+0&fM;VD&0#xjaRRbK92zp~obPR%8ma;p_?R0T@>gWr z=QEUBv}x*@`z0M+;{$%aJQ@s0VDdq(R-15NXi4xuYmB)l9%5m{Y^q}W!e(r-zFoSB zEs^`bG1Sc{i*fMYEETwIwyDdZgUHlrJSI?DJ7$8K!P?rWYmHTVEDP^iA{w3X@DTax zW|DSsZZ)X-CE$z*NQmA5L6=-0?wo?+QoJ!-6M?h)t{h}gT7`GrO96#8Y+Cb<#R>h1 zoU{^w{>}Wf9B`RIIG$c`xFYZv;KU_U|KhzFmW;^N{i2?=(IiYN160U@N(2JDt?c$7 z@*pt*(fP6!X{+RW8WIxEGZoqx7DnBw^IqFjsA>QpP|Aj--UCgsZ58Xs2_`h zZ{^7ye?*EtL2`DvXkS(Ds&4k>l0#$?%vJW{7~PCQVY;vJ8gsd=aJZLRlqdv@R7dfx zMHw&RD}K)!+c}zl?@bGItjQ{w;^J0?*FFtw%poDepyu6AQ7o#0#uwmL-hP+KZ`t%p zDSU_y&ycCHaAG^e3NFc#0)NG84M`rN6F&fUh|N;=^^PMW(PcF4qgvF3(|W&Vbn2q5 zzIEVgK=Uo@kWY}^Vy%X8Y!S5<-{7NSSO90qxrJbOH}zPLoNrPILlt;nQEyPw>>=JG zqGf(bbJ@X=Xz*NfNX-NQ;8ZFvmBx8~>M%B9Cp9M8hIh*++c=imPIPX0pAXKDJksiM z9(CT>b&YTgblyt|QKYm#$P~7QWJ|zrpDl!KL%nc1l#yL-SxsmTen4j+fb9z8KhX1t zUZb~Si;@RDOcW~G46Cv~yGElG&w2$OK zH06EPlHE21k$z|K#t3mQ)cMVB4&r_Nb%T@7YbUNgPt;epu z2`4PAba5is3j+=>Q4v>}lYwjAu-NN70RqOq~P%%_Mfd*DJ>5jZ)*D@XeNyMXdZa*y=t=>Q>nYmqp7gNUXf;|dV?>>sKUHIq?n=k zo1Xb&4F2*UvFr1UwbUzdJ6Uje!eCPN_PH5UZ!}aCWT8iSyK%OBQgE~}J668-C7f9GlQ52e3k-}aU1!)j7{~6rR6tQIsAAGIf6Goru;1w2Yt|9!VoYAnH=nf z=0xx%85O*G910iNpH`OgA5Ak^niyIzC(isQhlg+9Ulz7<#<)*wyYU(;(dzY&(wjzn z0N~|i@K_`AJV)>GH&x8$W{&;?mFRl_<_eD#`QoM+u~3vg5%s zk9P^)dw5upc}iEx!|y|W-|P_apS#EgLP?F%t2+DsV)>(^pN$4y`4vG4f=t`eRlvA@ zYUZYx&&PhrBTI>eAy`Vk>sQofGCB^0+=i{pj?gFG7 z8r?8P_HXT5i+6i}`f$dsebx#m5n>6-D@wMIqpx25maKDMwD0S;_eol)DZ9S1!iTtU zO-t8r3Hv=Flk1otzX;?|uC)WVaS9}VSe|5e>GfF?8t|XQ*)4M)W3QbPxcimT9qO^W z4SoqHNUVS_19b0R%sv}EF;^pR9&Gq@?4+!0XKZw0Dwd|X2g-i)kj}>DbEoHN6?Z!` zR@Od+s00R`9i$JRImKpb$X!pBB;m#Bb7>azo8$c0ti^nr9(UEDq_&8I0@oQy$zzC# z*T+mhY;kOMv;+&3R z@Ar7FPwO8le{M{-8v;1D_Twg7JAzE7WZn~av4%}*|3jP9BKjDMy1n&Fw23O+XsL(D@!%?v`VT|viZ6G?QornaI_N6g z<>_hXQP^==f54;~@(jZTBY1(IG$NWtMmjs2EQ5zoi}YbFhTBo^t`j%99j}HktDE&f z>&!1)rHY0$1G-sxRm{nhxQkMFbw88)pa_KwE!*o0p1Zsbi@t+0J5g;52OA z-UQpCs@;KypPep8m79kA18ThE%52M$BP&g=2RM=hx36y4ZCj zd=^gnt~=HeSyRVUj0T7oyHts}M0{2-9^`r8Tvg_am19h5BT$!9QMCBM{c$2{>ty~{ zcV$$_sz87Q3!{jhU_<4!z;oNb_y%(&wNAGW!7_tF+GdVErefIlgBK$u6dn4N2GXSZ z3=|(1j#ubd!t6%z{2(atAtpmN%|OZ|pR1$l9O}XY(FilY+ihM~Mv5`lcWlZbd>YAb z^2WuMNiSvxr^mWm(cBdQrYb1*lI}+el9${okLa}=#M?+ct1Pj(dgg!?G9&fmRoZz( z>Qw(t<`|GIsqLH|Wyu=;iJ*4}50a$&)xVsgel725kd8F3%h;J;8cIKt<8$tuc3Gba zm+00E@M9}Le<^fRTWp5zoA+v7vLpj62G}sFJq&FHk2EuyjKg~ZN@8gL9tWz_rA-;j zwY8@E(fXFGyX>)`#Zn-9RS@+sb^FZ-Lx(fwzQ_VzqxPE?PL-Qama&1{=9iXL>aA=+ za|?*wKLvN(WiDWgtEevk054R359-LLR$O8`;Ja97uEI@SpA7JExjQ}{nq*qljZ4x` z$P6f)GK!eRGi+&r@IAL6$ zP8>x@*f`5w7)M|+ILT}%<(zl?#Ea{vXHWQy7l^P#(3O`~t;nEI`3V!~thvd`HEy~~ z5a2nGMB&sa#e(wMpA=U1WVh9c@509hHjP%05Ya?m3`vP*t{$b%Cs?OERIVV^Zlqnc zgO27$^FYts2y=FSCcDg53t9!^;WQj%G#Da1Sv}R340L~W_sxl=X!3>E{7V-nOw}%% zq#t=u0|Um(iYZpo3#hCeIxNR{G4g>10i18Hj-G7~O4rFc!h4p}D(L3tZvwkRgyUe3 z$RrNA3GtNalw|hwqXW-aiy1C0n;# zEk)TK;P3nJd-B+i7O9gdj63&xU|$+iAo}zq33MiSKu$gbakmK#)vH2*BBvUKYE=R+ z;@@aM{Uv4uWlar9GOqOR`H8^w{){cPitCB1*!`CnjPu1e45O#3<38-TE$sGS2l{V9 zxvqgv1LOFTXI|;>MX}FSW|t#AT4MJlKi=)bv$H z36D-M&Yfg}y=?9{bdS8<#%S2D2$b%e05Zydw?_ciC4h5Rc3h*ry(zWNs6=X60=W{d z#NvuSAq@3bkO)jnYy)-{tfbofQd%ztC#VK7TPFb;jP&Jycl3fu4F8>S=*v5;}Uix@!7H|20>b=$RWE7@F#6=vf;ZS!Cv2dpVIG z;y0(I1$g(+{#d2RXis_P3||%4LHQ6N0EGZyBOtm5utWv8M`^^Yj%oFxnQ|Q@mZHjp-61M zp1W1yFSYamy`65ZjjsKhYgO3c(gYhV*(!rHg!@|Yt_qcr6VGzovwq*dF1Fl`nMLx> z9=uuEXl(KF)l1o`lH8HTK?JV?T3MGC`vwrbIH-{99Qrc9%;G6Qj@>Xo=^fF_!2L_5_!?1GL-F z+1!lSkwy2N75W`-`60Bqc{BjE zlR&mH6oa#t!8IHH2WyqKDnxWkBqIC8-+}MG0CMI$jxCwQah@2}FqOrddt#2to z*`Ml0a6!hM@Cz4}C<ljkOZRuXAvmo>zrjI^yw4f%)15oFy?Es zIl#LWTx7(9xG}X{_3&?0fA!aGzKcKC*Gn|`t;&$umSYncgvu5*^$9Iby_(!^dD;*N zJH3D1J-%1C{o_d+Ui=noV9W}UxQ7#F_jj)!4{;_F{3>wNBW<|(u5bgfY>Wl`R6O<@X+Do3@0qFjc;JLU*gDoqB*f&~40+ zs0kI0Ei5w4oD=JCpfdkXXmDH~B+pm_pp|I1WJIF-r+rZ%K2NvRD?^EgHf_y6);Ze= zIeeG@A5rHR9cLS^?TMQ-R%6??8r!zh*mjdNwkNi2+qTu%jh*ay*ZTIif6kx5de%HM z_jz6Caa>Prvda<5k#(vKaajy-avS~9Ce8h{Z=`KHUG=%Se~{3MPlvB%X+Y+B_^C6i zf$3k5-~<|+q?o?ilJ`m&5+ERiLkgDS!J;-Jbwbq^${iZ}FnttR9X2iaq!?Z%`|GE> z!iEjTNC_PWn`M6&6LLJ(SovtiD;bw9KX$ODK+tl%6X1p}>c$$)G`J3riKzwdN0TH2 z(BK>}AaGKCcqo>jV*brIwiAlE@AP)YmfI?=uO!?tD3A8qCM<)1%0ZGkM31pxbup`p zaO?kVQW_!<8nrnjg3ZR%s&;UdXoq>U-^yD}M+T8?fhLUk50Z&GCd9DJ-=GE?F&7ax zpsa#Ck9rvmvaa>z!tBAU{aiS5{;S1xw86mV$)J5Y_} zr6lSrZk9(y)A{R*P%qoUg5!5X8+J-j#9mll#K75DO=E0Yt0zw5@}f(0`t6Tjv0Yt)SG-88`$eUaNqDNFVHLK+X z@KF`Nn-6Pot&(wGScW2@bfSQsXvg#q7&M&=yi8;b_3&GqX@l#!ti>Rk{x8DiJ8mE6 zyaFo_-Zz}OpIU4?k1_RMOAly%bD@ub1e$0Q#Gyehlm-bK36(&cW-X8ZDq284K2IDH zdO_$-kOwH_s6HIF(mwZm2fVf=hVyDvV^!mQi}><(45*(kiw<05};299B_F<-mTuRs^N)h=!=JfSz0s;~fF=ilc&Y<#1V@ zN2fp8FbZk7GW7oG4rRWWgqz+fU^0fNV2S=|g0= zfZn2QSvLR999eB7n@e~4P|=NLy@xri<1ZO%3wO#CeM#bXPbXyNroB$J4p|-Y>411| zLXYemBT<(iTUU9(0|6g9{5lOR^>GVCRWP_US)Y1e@V(@`f%S#BT4J%79iUm za@Md{Az7&XTwtVO@d^fWxP97#G9Jb4HCsycZkLnp4kzJ_|4<%THkCW&2~utcqOR_QXW=27^OPfB5{ESr#Y2 z^SL?8M|`dB?cL!{aW$=u|D{MJ3noeB(KXYsuZ@Ce&6#tRDJJT9M5d;I0}GyF+&(m4 zR3!pI7FRmTg{i~aaR<2IYM%+W%vHo~# zG)+W%XrXxOMhWMYR8YkT35IC7K+yMwW+OWq>CEz$#PJ$z|L{C@g^^=|?P2Q&rg#=P z3E_NA3-lc%i_nuu;-*&NKz6V*a8hJ;2OrT)zJis6j0ti|uW_|XIWmAX={iz@HX%;&r7je=qiv6yMUF2P!!1!%_wLaxs9W#*F0?b)JR-RJ-W%kSK z_H!-8)$KEbMOc$#2373PXb0d?oxW%2N?oI4DgkUCT;J2s7vh82+o zkh0702S%ZPq*pOu5E3FFSlJKr>G%r%{2*xO^bdc>Du)j7#`mFj_{LW6dt~9G;db)n z4vVgDv}lINV4haPI4dda)IUk$O1hVKdoXTiy67@9;hwihUVyPmY9JW43L-FN*{So|6zBm*)%E}hJD-8lBZ?q0qd8FEY+m1Q z4cEkK`(uq%Kzj3S3HF@ES;a@;fG!{^@oAxXntfu}r`tn$q`HN!)d*i}&|577hE^8Tt<)b)CySP5>No>DSYPgh~AtK?~(atYEGB zO6g$2zq#y!)+ma*)id6^;G;#y<+Y9hqF{(-se0tf-t|U>Zny=G`l`>Tl8G0O~p92;s&3YdY7FN+UM=^(KuwbfmMKfjXOKuCy&|v zm4d6Q&wNNzS14+=Y@0*xNYJkfySQ{5#gU;elVK_0@U84+LRWX zS{H*I2GqxSu$@@t3I&}&^geU1c~9Bzwha&hKeLJoJ}H!c(LVs6DJx#7vV>2Fh+cb5 z(>*v!}Aq8!Ply^0yuZ4iC;FO)@9TTK3iK1^^@d~Dv5e& zCHN%ATbD@ExDZBe?hJ1aKhG(e&yS3sO% zh3E!B2Osd{5-U}K!pdJ$&2E7m#pkbB1m+b<(P=HgRbm;^8kW-oHq%_nGO<}$AvB|l z0VCtkWasja9CjqRE5s}NSF8K#3E$6%Eqx$ilNA6|1OIb*6g7PsXm!1Q{*!Qpg>2be zQthn$U^$m(*`0T~P6iq2mdv?fEmx*eh|s@PWm>JYV-mtvyu;2D)Gh97wo2IL=t`<2 zctvt)#H6mxcy2}h9ysrfYvUB>h)U;hD;Nl+<+ftIGbFLA;}4Kl8(=GLj& zx+4@eAqRGA%lX|Zz4yT?d3~94;>Aq$W8n4`QCSPvw=Xp(3U<77GU>xEZk$*+wd+=x z2_unvdblcHPJ~5UA_y@|Qvm>1)fXy#7g-F(rEYGQWf&9e_+!UKl@?c>!aRVg%ac_=^?XZHI_@VpPv3&ZwZOUW^TU#>v+t?zcE_E`(RyLJQrLWjM2^W< z+~=2Bm&F>3xZqj?Ure%AtYRrDPAUJ6f+5V2TVU_ukL!xl&O<3`$P}a0QBt|i8lgZ~ z2y{TxWi0yLsg@>>1?@6{M<9v|dge^oI}4N@U=kuyai` z`Jfpx#(s!6h_jC`d#_DBknz~vQtZeGIT`(Jlrgl|d4BWYx8umB9)t_6p_ScrX}g1ww$8rj@_TltPRbq(n_^SOi0hK;}{Zc7jb1Dxl(%9`>h%}LkA z=lPtxI_aPsIX2 zf?%O?evj&8K?xvZ?wn^1>=c16Nqd&C^(~WPwY`4_B6UAimtxoK6cS zNpD##RshrR7qy!&*vaHr@az@~_2)SD3iibM1?awkVH)HMb8k%(D51n+@hRTwEortp z%6Pnb(>%A3VFeVd&Mc0hZ^DGq-x1jQ2yyMbh1Lo)c-AMT+?-l4wYM8N*3;0cdT<*Y zSw&pn=wh)U%ysu%zYfn?KvC4chXYxEqmU8+#=CR63K-a5?=@pV)SR%DEa=Wk}QDr035I_7)X85sNMf~c`q5AuH3{ODWegd4tkt4GpNxv zvHIda!Rpz9%w5w`{UQVXgU0>ZbST5NPC%4rNSQBWtaKXWQ!dH4d8ZbJ_ znarE7P1`@vvu(($-bR3GPM%`^Y#CWJYs=s{MQn6%lh;c$-ItGdV0Ax0*Col~?vM`e z@TXm2psRWTbmG3{84%~Rj49>4z4R-KD*p}0Hj$Yk;JHEAfsL!pH8GnVce>fe_sk3H@jO3lVKO$OF(6e`?ZWxR-EeCh*4yIw<92y|Y zppI%*J(|{;dex2vYA@&+V{9WO*Fq1=zQrUu(I#UOrqv0&wu*K7>MQUma5nfW{Nt=J zmG^><&(J~bJ+Nnp3d+}&Mql7N(ARZyqxSP7I_~~ruRWm!^F$H%H{fFb1s5hp)RT}V zoJ{{jw(>F(&jV2MMaBRDgS_jx25y zeNduaUNxufmL6SZ)G(saZQ*n(Mkv(?1}Px`+0a~%Fud*M8 zVLsau+!JaZH?EQ8$;^_^cUCRm{jlXWNMnjPtmW2arDI#LUN5rC#j(Kmb3%OgCO;RvEbE8+ZaiN`HL8XqMQ6gXWb90h zzqj3+p`JYAxB%dGD-w;+Z&)evk3{0khi%VaR=*pzMM6=5o0nQ$Y!V!9f)t5cNqk*h zjN9^?Z^T;%!apE<3CIJii?kfiDq=M>+@>+MbfOYQ-lUH;$SR+g8rDC__r8rJe|{PQ zfX0&cmGgH2U_gWUFnZUh9NBYn4U1}Q>&S-&TMIvyH#cRE_N4?!Br_pR3fl8>_x{Wr zU(Z^z+rR&QUA}5uUte$UqzUM3dDUhB9)s0?a^zrMqv()o!O~UVs@Hh~VvcB_a{j?u zt;RvaczED5f!k&lAEtaXR0a$yp&XpBQ(Fn92ljxgv6_ga-hpmmL2mfKcjCvStEW27T6jpfTL6(U^i(MHi6e1nv0G~yAR*S!JTIO{kL;yJ7cqCGc zsrCcx3Ot-H07AA|L6KM^pUsjDBf62KikCFzBRM1c2<R(A6GN>NqywPEk2 z^^vvhJEzBgiBD0uyb>6V(;oFx;N>)U!~&>0c`v}1YxYR;xQd@*UJ?1dI^er5D*y{m zvu=a~4Ek~sz6}TFq$jll??TEIELA;V>jwOm_j}yex5afzh+A5T1#;KV&ur*&`4xR7 z6oCx@DAiAVpj+cdx%k^k$0yn8?&qS;2MH_&oBH7b_M^2Ie3cIY7Y*xF0f)P^l0fsq z0PLRzf_a#|DjD4yO5XO?>6+GAU!8E=2QBZw+ToYoJT05X8T>1s($|=~%8GMAwvj+I z$FQ>IRtGkR8?QffwrSq75n;1%u7nAIBMN{9NVat2dJ~v9`2)M_r7+-zZ7)^I53s$) zka=YEiY0GS-%l%=uB^En%#;i-Usump_~!$$4v#j+M;|j{1IO15nRU$;1H8Q9zz3RA zTG~qlvez<0Qvjr|<(AH}ZQXsHSDMw&2O{}+?zdiOg<#`+90`j3s%JD8ox`Bk6E*YY zz7_=VS@cQc34`{Pr@Ug~LIzwdk*$*alnO(NC5*7&Jf;Phfkr9TE;xX284$iix}%76 z=h5-A_0W3Z;*S<7&xlG*%mU68T4K<%$D_8ww%;{#dc9aK{UzOCmqJJPy_+=(P`+BP zL%uHkWC2P<#I?oAPtOJGvz`*RDWxOywa9H#5Y+!s`(0FAV$7*X;wV%A7*FXAZw3Am zsqMgMe0xn=*SZKlg~m6n)%^ONp7yq6vI?p6ueQL^_>Ysg zuFDx>sLXaD4{OwCI%t}u+Hf-7RLIR=%6DH<3aWOAcZ2CyiQ=Jm!8q`IR?M^)TF8Ff z)?tTtb0}=%?Ko8(UlqZ%YoDunBgTUWox(Uk$dme|d?r zD;VRO^$jxZRDYgD=tJ3|Xz2wn83mh`rjY*eDY7by1p|R{q5sK#HI50A#*0#FQPw;z zVJrTCo+W(Xl`yuJNbtNokf)hfBK~H9@AEfDU?w7F*5$bc(w!Ugn~cb(4-T7^qn1YUdOC= z&%gMjeSGQCOS{|B8cnTAqD`zhnaO-)xQW|BuNQXH`goSm#$6a%AHH*D?1VCk=OLf` zZ}2epf58JtkOKH7>8e0)W?*D!09t9#HBvKB*H+gz2iY)nK-vinEfW(XJv~t9pslB6 zpl1lmA2dLk%;G^qRxl<2>@VcpLVk@e-hq$fxmt1dd(PafC^!Y$2q zGAYA=Q*o#Wk~>$5ovwWIT7mohugIj&4quMrdS=pe9q+oMxuGA#-i>Zpe>P4TE)_oc z{HrKm=LRY~v7ocI3NWLk5K9rp@KweW3~J?AFYX-@R1?v6UY=4w2_*MRFkVpmAUIP% z1sEJDgnwI-%6B9Z&c`TFxK7j6k=>lc$J1%mrR5-{q_)1`x4*^pV9n}kY{u@dqo>Y} z8D%5ap5P!uYeYJv!yx597E5nCo%5FI=3Y61vE&F1%sJU*CvXU)VG3y60jNe?doP6N z6r-_dPW_@AD&1LF{H>M~+#1>eOJAX zg*tAni>hztzFq+miYFuR_rfYeMqtb z;)In6zc8Gqm26f1>DuzJ_TAlE+%Sp9c>sCC)(>#bxVa0VQ*xdqIq1-ZRNu$xS?e@e zWGp1C`qDKb+e%2)wem;mmp^)^dpLBc;2i{d<&jBSutPhd#@?N6Og(I`;#);=Ft;#7 zl3(6V*g)&p`zBfkgT6cCH67=LeCwD9K!V}rTnM7q?uX);vx=_BK`Pr{O3iMXZ;a{g zM^5wD?X=fYJceF_;kJ&U2T)=BQ<}Eh<{7))7yVpdey4$nB)7MD99;}D^xfs60x-#F zt^IUGCP1g#zpys@zxi8S00}uKnsRmb#^Dw^j;oH&+OPIS@uu+-N5DSJHgC*~}Y zgjO4Vxw9^}RQHwEqS81{h$wLC%G&Hw6g+CAgLdMTl`6`e|1yzC`rYZLlt6IUzk?xW}o>kNLscOSj{^f%qRz)a@IEt^V%sx zoMTDeIsFn6)2UomQ4QZB2t-e6x@0~5L==2Rd2}D=TX|C$3_AMrHN2ADNf*CKN(lC z2koUQ8N>{5n54m{)Ry`gg-cnF%IcQ`RFI;KABH^=KFne7)=x*SmNx`L|A3b1)gg z;aW(b)hubng)$g&2YzgvyTmeAvb6f0SlVMT@VI2wt1hsFE_fM zI5)R-U$0IK^?V5~4EWa)bjrSAq)UgjB@ivA>YZm1KJwN)JvQKN$vCrl{xurst>9GZ znj1jmKu3kpFS^nTrF|+l7Yo%ZY#2Ju8*|Yfh`S|BFiF&qnJO_(H59rr;{69bdpYdw z=<~~6OKSN^n1dOA-$R*@esUzPlTI z`2NWsumpp$I{9BMJ`fJvd_u%h0@m($sdrq>-2T6OURkCRL)_-e{MMCSoO}eiW6p=4 z>MSG}lr>-^Y6$t)v!dQ>F})4AYnVUoiAO^Mda)_{IjP-$3+xccunxazcMzly+^Qht18i;#7o?BsC@LLbhA1_H)`ZUn0v71I){~7IqHuPaj@+kn6xz@J(U05g@JGX0=Wvw)6oO-)()J0>)9`IQ_x>vb3k8-`wkf>cB`?^@G&pdsK zDIPul%+kHisv$InF(6{gWnebRRtW42(E>1>HKJROTc$19pO zQ$)9p?|=xx`9(URdo^)y^}n$?IaQNt*X}cx&34-##9k;J+SVtT|IS{1{0;oTA#&}; z!ns=>+DMx-a*dbYR#|%N@`z4}yQcb9q<$Nu_mY=ShNkJp}V zZm4O29s;!R@-XRh*#s$ZZXx7ghO^0BRL)Sd@xS0Ak*S)EIlf%?E_!Cn5hyiO2$^#_ z2l6%k?c88XP+}B#K;uMGBtY(OxU;l&o{guVoS>V$F)R0V|H~{bmHyzMSy_biR(C5t zg`K-Akl6W)F?N51{Wr6+)EqxD?z%X+=&)Sq@ag0y|CP!NPXVh+`Fz0(&0y-JOG`nE z8ygmC04e}j6vhJB;TQlMg2`gM;ThZ)Q`8K5v~O6*p|N&+`o5hFjXaB^5jwPiKWVxK>dq+DxEcMK|!Khp5Ax@Z5f8VH6(a{EM?xmRk`7dTiMkYAWC z-u5hMb?fz{hq?oD^~4dvvXFnXdEb$XX7%b}ToyrT_llmuKM!d5C*RWql-{bRfW@$qV9K04dAka zUbxC)gQSc#6IBzky7ns<@{4D|#9h!ofRpAti_i5`kSbeOMS-p-RB`w`k-m6~t!4FyZ$#)ztO`lHWV(`PMoO+;yZH za;8sGVyMYC$#JUgW>pD471e07H>utNm84%N5yhl~Oem-cn>->Q$i7ziu8PtV*nmW@ zd|Z@^Oz_|G6K2s`Zz}eV71MXwZM8k9^4lW6cT4T-wF5`^Lpp4w)FK```W;IT$C}Z^~X& z><}=#r9Yl+Zc+SGp>oB#YASl31pN2R|D;`n0jLal>h9Axw)JXegGY(9qahDQXweGb zio)OU`7g_Yd_MBX=j1tl>o)l)@k&l^?6wkz{7U;-sK)k$!;t!uwN4kDFIagKw=g0- zk_6GU?eAEw9!3J;Z4)Hu&mb);w6pE|^HXC}4w54ab7rT)a4@P$2mTzN!cU3IQ=c)K z*=a}IA2p_e2&hH;rD&d}zcxn*JyrY*F&xCE{)o%(kr;)C_eKyCayF*q9I%DO~h@~(sdO{!FVPcvhed;ux>b|VE~0ix-=rC3G& z@&eB_r0ds4)>DGhychg!g5FNa5y|8s(|R4qY0OBvZ~21S~Pi@g`uv+|pezGIVsqfGelp{j;9sxFe}=O1kE} z&~^67)CxVBQ}4Q>u9>2L#>-_C?zeQhj-q(Ka;7ueTisn|>?qsiSAfJ->ALhZQ>BQ@ z_r9!aj%hQ02hK0Ta&?#r4*sA33EBAAAf2SkdjkrrerrqZxV}#?V0Rr8`xtar6UPsH zo;M3$Og3BzSqh)V@cw$MfYtk0IqoCX(bqAsAC}e;GEfnX6A)rK4|E3=y$C0HF)YY6rwF2bI;N-?`Oj&3v^^0Q zXZk?Bz@`PN$oKO`8R2nzbBTxH^}7^yZ1>?RbzVYir$38q52>p!f+$&Jfb< ztSKcan=0^U^^L?%Z`1aW`mvXV6%8j5gz%N+l<#BA@O8~-qlh}AE(oY&j_3TIT4FN2 z%uLVcOmef_nl&liku4I<&XjS3orkCEkDa`fSWZ%D@Ucc1x-}r7hOz4VOG%n{WXE`H z=L2bRgX1IDH_=AcrHe9@f3tP2Cs?p}IngC-)8;qsEfX-|!D{-;r&9~{Ld%bBMlwH* zT6%M&X%^DcR`g`4uQziqjk`jXB(seY`^F&QW@iDV)+C2b;WzQ}R&#tEfAG@FRVSw3 z&yncoqKBnZKT1}XO0)wo3mG;)-~7gRIImS_@>of7GnG-Ig*NK7Wr%#*7ae#Hx2SRA z?vd@+N(gwAivCxM`SpKU1U)E=xV-JTU@!uK8bIL#h#hIDrDJTWWu&X2uC1w|sjjV~ ztFED~q4(cIZ9R2ELmf?BgKT}bBPIBKNh*Mi%Rd$W<^>HsS1*da>59=!Kl7DV{)s3k z{4^C;e;WbZ7(!0kr~-3tnZ1j(3f!Z?guYPWrnRekFBS&S?#^7u=3{zOnzw?u=73z& zftxQOEjLiqLp2+p2O5B!l>4nU!DSh3+xO*K& zJvdn3^efn@E8rJMS3phA&fN6G%N9SB`%M?$IQ%H35;@XFxk2)I4`=<^o^NZmx9q1RIi)(T^ga$x zIB2)D!Pl?~*^ilp^pH&IZGy2~{|zL| zk(84}FWJOiH1=$X*}Q7mZt!Go=h*|A|MvHlUC^H3WH|He(ZQQ&REV8x7>UB@FT7Ba z${Di5U%x6y0ip3`oT~$REsJD^rFTo@$ztB`gD4j{5K?jn3n_BJN0V$}oTYp%n|*HH z&1#~KL@Xz31h%k4g6T^P@L!(}xJ2B~6;bBKJu@vtC)-C){Tn6h#0JZxqK~K+ z`*bq_Qt})U6k$57g_L|EN;Indo6MY8z;J|Dtp?{F3&O)|P}8g5wiK>OLn=I!TV4B2 z1ddPc912^HYzPZ@+dSA~S{?b{2mGNaYeT;4S5b0qx5pAjeqRN_z8e9+oFDMLJU_t| zX_pW0SF++yn>VIa&P~o(CmNDS-AXn-H!hDl*S|StMpbT9>fgU7I<>xZ7Tj$M&jaR( zxfie+%w^N#a015LJhyi!)5<#&6;Qi=S>3MD?OOzKW#E8LPF@w@qGD^+-goo_Do-nR z6bTlq(rJH}g}gKG=AADovR89B^}NKGGDVRRJ3C>o-k|ghz&oN`2kV(~a-ApNP^~Oh z#XgLxw@b4eVy}6=ek%`bb~-$PgANLE0X*8(pPwdC*9fsGqW0nn1cr`yV_9_(BKmVz zvIY`y+jNbmS@*FCP#2=uz9@^Pmwzq)?Ff9gPo$WeChc-jdM|WRjuf4YrAM;8*dwPY zDP}~1C_DsD&_C_t`UQXhC?>59gt#v^Bj~lg_Mr+~@vmjWkh*El-8d!Np_s5x;k)mKpef;!-QuYI(I-)AWT)eLTMpI=ph!Wd;)S zE5#!(McCeY4qY`1?0nvP_@vivzBH0{<%OV-hqbHc-mY57J3;24 zNXB=t`R>P1{0zSQ@yZf?o#$y8zKgi&;7I>UtGM3%Y_fZ~fb|hQ8bc&(CRPfuogfGC z2}q>mKv^R;KXJ|NbVJhO;jEpuTxUMd8Sr#|Fi5Go{d{^Pn+Em(2-Aa3@@+fhsEao# zm*&Ue$0nLR{GwM)twW70!7Z-{%(__d2HPkZ&y5_+%vLlDC zm_6$l#NF#OG7M)Vx%5nEn?s!?7t)CpLe2-=>|PU%m0@Um#27lVb#z z`pi*rg$hk?v%J|9ETL_PkikR{-m0O2fN56i!kIOwI!Lb_kFvTkbCPJcd*7s{YcyrE zeYQ3}GMDdTNOa;`4ZC^xpbJFZcnbNq=v*JfJt6Jw=}x~i=PA&xefA)wJMiurTZ|mk z|Dl2WLRf%*`G4&Nx3K#UqZ?BW_)~ADe%c4fKX@di2)x*>NW{UJOqAK)b6g-WZERrG zR&y1K-Crgsk5ISd{AzJ}?!S)B#lb(MSfGTeBiE3B2>oD{0=4_m*}>-WWjhI`JDT5t zIcYj82SU=WPTP4W(ZsgYVDS|v#2A+oUdJfQlard)uw()`%{sjkEu?v8cYQCBBav!s}!8g@dzA# zI$z=hLLM5SsEDr1;h#>vb{*NazYXk!_g^AKU&g8Np}?Y5bJ_OX@#;&VMz}3;(rd z`T+<9io5mtc&F{?k5Es2*O@;_tG^>QbVkpPz$16EBcJ!mtU{$KorQDnsqkK4og{cB zt^7&hCO7@1)yp%q#%{yDQ!LTQj3gEfeR6@P;3t=60P^z-J^lYaO%rt3F7ooHYya3l zo*tl{>E~KFW>7x~nhE9Lm#lyU<{Qw4iF2_eRx{5OdrBK13aYCfWl!0cWHc91+0SIO z&NooHuXtH#R>THx#S(#m%JNu%fP77xnPvserFvF46*mP2c^DD*1vC44WwknacJ&o@ zje}?ONm~VlDd0kCELp;XuCt zQ?QZL5yt#=3N5V7)#L-i%RdC|o8LOJsGl&R!v=B%O$v-DH_GQa4KT3A4rO5mky`U? z>BU$l{Lfk4$#&v7@kWRHx_~D&2h4YJgpggZss`eqH(O6b#^VP+Uo7>bp@xIrM6Tne zllNTT@bB=ivC)>Fo>{I$dqd5;0`9el=2?!d7OMMFS#}lXDN}li_sj*kEJ&HuY|*Nh z>A;_aYh}rHIJ6Dfz7HX*DX=MoUS;V4*R-b$^JF6PvGOtnbSUDZ!#24Kq08;>UEOnH{G6Ia!AK~9Z%9Rnx7Bz!0hkMFN!od zkO}xrrLbY$IaearKlyu@DBY?*HP15z1@O2rt~JRPHk_l+?~^vkooTg>m`uJS0VQJg z-01KJU+jpCxTK@i=g7g(?)4|guY3(xVZAfd$M}!s=~r;gtml8+HGsZ(jmoTGI~t+Q z^pI_tQ>hj_YlvFEn0{hzi>$f2FEExSwu?~K5m8tz{=TbUr0sHc4^3_aH1zwn{W84S zhViAD(1Bw7hfi#K@--zNnrMUg&slarNbJ91fn5TDk3rp=;Y!8u*}@0bT7PcM=@U6( zPU?aX>$1gx_uyI`vvf0Ci*CkTP|Ezjd`}VaGxg~#MqAvy6-TAiobecVlB# zSVv-d8^9PQZXFK%NmsFwx5rO@DhGOir$7+{9c1LQnf7dnN$Kp@a^Dxi#wQF<)LX_D68o(LW)FjNv(j7^}DJs?c!{xWg;!tP@#1OH#dDH@u;C4&C;#b%| zlR)y9DK9sp!eTlN#G<;aDC8;KGM;=D()O|NtHJ4}tB%wnK@xI(_#lw3Gn(h^Ouus!N~0ZJQm5sR zkh9O4G;(cxc$2u$Jx&g1Gh3A&^mAPV&Inz8&wHBQ%BDMs-g775Vu0dKq#s6oGT{^! zOuaxD>q9|3CBge$SqHZw{kX7Sg)HVQ4}FQ^0+&w)^6meiyW&R-p|Vpv(GQ=d1g8aeW!Wy!B{^uCQaHUGmJK&WKGf$I=8z)F2Dj6T??-Jj z8CqtSWu@yLeVD{vS*r_XfG_yz5{2zNDeVB+XLc zXN}f3@`EFdoHu?Wxo-3J#TCN~AT%ab0DHKIYa2!c0W~c-z~v!oZpB3v^)`N>EJ0?~ zXjt=X6Ukyy2`^Sd$3WFA@-N#~Sh2nf+CvHuSb( zT`etLBLh$np{b{*ucf1}tE+AZN-PXDGz|j?K%v`wZ2t-I0G zZ*$0ZW3;to3o{EQIU?D>cNL^LC*-l3f06bIK&>IymXVj&737|C%=R#5eP~`N6a8Y* zYxp@t79PwA+vm-PNb$iF+((IRmef)8m(?Bxw}5=PR#O7Gdgab&vY?qVU}&il9=}v{ zX_O>S8lr!e!|fY1$P6|Hjme}22JT+DfEGE~DQM5Z2W!6^134DnxCOf8V_C!o$e7KM zU@Cj+6*LgU#%;7!Z)7A)VM>NSk}1oe7?Y%iA?Kb#@kd6zZLU_Zyt?)5L)AtdWn&=VLf;nZu+Cu*XFy5WjgBi3;58bWKnZ% zxukKtzRa9_uj%BJq&QWsugE9^w(HmxOs&MgrBDC-_4VW?NS*Z*LKbeo1uvMQ3nF^Y zb@f`lKli$(lx`C(%AM3)6wlyg_h6C(e+NuUq4Wh}sQ!h;4TQ*|?`+Sm`|<}+Xl}xPch8g zEB?&vNzSKWNq(65#(wJAHX7Q}i#U~ie~3B@uDF(HTSI^#NpRQT?(XjH?(Xgu zf)i-mY24jig44LWyA#~u^||A|arpsFv#DKG>sxEi>F*M?MBk~j?^EXkO?sariqV8S zw|#{9K)JkEIu^r`kZr{UA8rc?cEGn*@L*@&WI@^F3iJUi1zvTL;!WvpLPp4AyJWQ~ z_PbdygrbY_N$oGttBu6UdbY9<9e$n8&0&MJaK24jCR>sZ zHVk1&$yNGQssVVvvs#=FIxo7<8B)5X4g4T;$L4P~Q`gOLJJU!ktT}NB`6sPQ(r1r* znC3jc4S0%yA0QBsAyq3jX&_qA)h6L)c#P_nH|t*RqrkXGpUeY?XDH2~3qk2Xp_`vQ z#!?U+7P`H^CyL5W55H5YcSM4ynskutn?7nW;Pwtpk!B_ENzES+3$$3~g#$Y{NQqh} zi2 zONBrC=GVb_X8JX1%gZSf0zwDl-}|%V#Rhol^TV&NUS59~>km~h0To)8m)FY}Lv-I; zO*qr8%X}WeuzO-?a=2)eDyO`Iho{|2yRWdNm_O9sTc_8v<`hNTzX7sCyd(2Ik5JI$ z02z3c$sZnG2>IQ#YtJcPGT5EZvWeo{aG#8q~*%{`iGV^lVfkz++bq;Qh zdL<)0=0t|%<@Bs<}a0liCWXqRb-FXjA7Wl z^D)TNc7Rj#r|aMk00BBXloeX-lQrVY&}BO4W9%~9e`?W*<@0%!L~K!U7*7=arZ()O z@D?)!#_=z{scUF^_1-SKWF$ZJ<-&UM4YHefG(K{@Gpc4%mS)=&;0sJ(h8<)UFc!&Xy`UYaC}FRA{-*B^`_qhiWDm(xf{_*3WG3LqQ#6!jNa zXiJY*A~Eab`Rd`xJ#W_^_pwxZ@fw#xv*_BQ5m;Ql*UefsXoVUhI{8&8082bAI_ao@ z#<*Z#diu}oA5EoTVy_RS2*UHHBv(&0OpHU^<>xGO;9FS>0En!D1q03$@#51!!{NgN(?D7u&ZL8lYCF8E`i;DwH zJu{~?=~7nRG4tn3NE-F<*11y%o63JntIe0?NM?GQ^K%zoSq}CC@7*u03!P2pf~%t*QsQ*b$RO2;>a_L#ORLv#OOGdx9< zX^P5XqfPKP)EqGu(B4M#ryk%}L}Il}yIwh~AGWTgzL)A)tyCgK5&h+Gc2j~=E(S|N z@figryaiTXJQWt$cnHZpvzENv8~p!XFmRcFNS$K(-tplCTuuk=qet!s@z`GG-|V$1 zjfc&G^eLLK>F`?-@YZ1()hUaNb_O9*vh~Vjk^Yibnl(26)E%zZ z&7%kAd@i6eS`OtFOvO@-Gwb;Ugh{fO|EU++J$dB-Y1G^voLfk8$W!M*Z*hLFQj?ER zz&vWgu(|f<==q5Y3*N9tQ6Y@fbzk+Oz3|(+-rn6LDeko|*tdtbK*7dW+ja~{`Im~C zZIr?XKP~AIMjsUsqM&xH)0kO5C<@cA^7>UCnde~ZTr?hCoXQG1GjBH;OEJHh<6FS> zK!W2xsWAB9h3ut2Z*|bGCVdGd4Py>lhFdDh$$9dOH8fK(*cZ!>YK6$Ud8M~cYGV&j zl}*SKGYzKXuhXp=_RS+B-5)6`>v+73l`r25odO7V4CEx6=Vr!i6<58&7z$7;58R{kcnT^^e!EH!7}tvAiP2P5E)h z1bW6-PHZiE!bmq5va1^#dx*RdQO?9=u!K=lvQ4O=2>*QjIu{R28i z+11wEi#~+@#P{7OU%`)?>J-(;1{rFhZZsU6FYb5GMu|9(N^#~<|LLwpM|XnvOZy1}JkKZ$*ol{d#56+STVSbzekzIDSy7;=&%g`$Gq->$Yv>G@34{ zBS-B^6oHWZmerRE9()5|&UcR0KT~IRwd{z+4g0x_@k>$Kff*x-`E=q_Gf8ZvOk2y$ zkCA}r%Bbwpv(0-iMeQZiqF#6!o`j?yKQz*@DRq3xDTmv4n|fg~6S96XfhmIx)%Gv! z)h*jdQ4 zA|;a{J}23KfD%oyb1n3MmMtMMu+R`qQZ{#}G?p-`dY6x)h5a!mO;6 z^w=&h=20~Cp`Ph#^A&srwE4{d`E;t?1q5b4AN3dCv$>mR}#Wi9=F{3l`Gq?kW&W@AB zqT^4>enqaKXmM2?d7?RqUeU2`og_MMBFj!!awdD2mk?bx-n${z=Lh?-N2j$yGZZKhAN4C?rsTx1R*hP_*!tS~Wv2W{&X1;q&zJ3LX z$9;(~4`%PT(lq@&hzu~P{HvLtuf=&a-8X45^|CtaQA0NW^)w{Z}A0`Xh1#hI)Wiwwn;tyE7e54u)E%rk2i_~`vH|6MP!{k&!^dMh}KX2a`Lfp{|KTZ!>UxU{z_2r^qE#ffX#1Rq+!f5ewAkXn-HO;KIR|DyQOtD^wgg*NVD_a znv6Y8?;uPlMuSH$xQTakwscESb zQ;8Lt_?q0g8s5G)z@-olsgVE1e*eg`oUN_wVQOEKb!9p7W^=yhz0n-kD>;anP}1Az z+gER#9A;8eK!y=g$s1$@6hF}4O-ifF<7CAUw993<*bT->W{GQe8A9_kvx;?zb~J!7 zQd8p>G4*LpM3bJkU`;wkp3J7a(_-n|EwK&~zwt1Tbc_p!S!+dlS`QR&__kUj3eej^ z8l__`>6-vBdF`10p>BIwbgH07RdqngkXH@VO<;N{(u!3LJ}trN=Mgl?@1`&PZUO`f zEe%cIU9;i@vg_u?_yjq01A@Ag14gmhO#zZ6-TzSQmZW|Z#f%9BVnmr$@l$(%2p;8D zUj0GQHPYNm2~HhW2a8P^42VmHyWnPwl?GbYJVcaMv^ z76ZoE#H$(l|1t;d|6>k}|9L?i&(zWD=o%R5fq(S1z>%3cUl*8T z!!*HS4IOQ8kfy4pzD`Cqcs-2ILtrMmyM}>iynSx~C0hNRTb9>=OgaVvY4mpbl2kk@ z=O5Z#22Q+CeLv0$I#DlH)2(@?h>}_^rJ8Z{WiysQPp6BONcP}aQ2@5Bz>wb3iL>ng z07X7}NUD?<_RE(+rZ#!kW5B~?Px#`EgVbWkD+%z|wMc`M0{he~spmP0AjdQppmwZ& z$icv$Td&McJZ!odM!qW$IExQFN;P#SUI^wUq1uDSjcFU!}{R|wfs#SwlbfrBQT7kib|!Dt*p z+Eiy1JBg0w-R-jwI6IiQ_U|izHZm;f5SdJVseh zphrm!>oJ`5kDbvmd{!2Es|m~*42GXkin)c#aF*QU)%Qkcc5!3Ya|EOr1pTVQ`2d+0 z*pd>}iAg=ni`WFzLt=*#?Y0Hhu84r2C5FI9nw)GCyL3tvrpt@7c*Ntr z%!6OKdExX03JF0#k3TUtK7gkZgLcg2Zb`)%;Sw;$?E*LF4eNkCd|5IaoZVy1kN?DW z->SbxRw~}9kqScv8#hOj?Mw;tZMQ^WU0DyFjMC0%@!l0OciYw7>V~C`<2O^# z94*=54_CU0aIW-dM--^n(mY|tf64vp`NE#$#EkeqH`Ou-^uYj& z8eKzXe|txhz+I1$+W~RUd8*WHn9x-DF%h$mfRF%4NfR*_zhy}FJU)T>}_8JTi$*gM$o1f2Fsvo_Vh&FcP99gux7bkCotoWW-A zO3qT(=8vJ|5A@Z(2Ms{RD0+eZ}d#MvKS6S2Cu+Uc&Q)T z6(yI;uYULE2a%8X%#JlB-e)PEJnSLGveCr0%fe&}>e}5gAp0p>FS<1`=bhbTG!b^0 zjqPLNfr1MECzSoMg2UueSpL}oZ!WrG^z^d>A$be|$PA#&8A502jb(F*b7O$1KI_sE z=^{nw$Mf_KH{G7oT)9bU-;DUWEZhKv4q;)_&%hVao20UKpVJK-R`SR_6u+8s32iJF zInKF{?Ib#V$&a{MIAK5DHtn@tu_pjQy#Z?wbncVC8R??m=0%qY|Jzk+-6py3prix_ zu&xYu+huDiun@|thQ@@5*cB%DO?*hK?+Ks`3s>opDHdm{5 zX+R2}$aQD_haY%qMpQKj8N>Y(SYbhkxHxX+DC_7ZVS9Hqpg|ulaXMGLpQ35)ul_-r ztKAcNoOh)e!Mx`+?QGphB4C-t0MNd+w_EHgTh2AWVM9R5pF6YwNtv@e$H7EpwbYBJ z=RyRbp0~smJWtt@_^A=B$zevA-sRhB1SO~If2S0CUZ&wU=JwyY%xg73I?a6+ zSGpEvL-NfSzn*RAPk?~G4aqT0CgjcNh;T`x{kDZA*$$OL@Lrbjr3}(fu;RXRX>aoNZ-N)Ensgxe72v7I<;CNCl}{rTOtvLrP`vE*cft3YlI_yYKWB@GI0~kvw3TEC zhfQv~{OFbY?qYlGt1|0U1ykV2RTo(pDTt_1pR=N2yDWSLJlV(L*4sQ6wP6%$EX^yG z3SLR!v6X-0W{)nDUc};aP(FCF<}yY~=!Q{5n2jwe6IfJ|tFk${4|7&%+A=iF=c~0tx2ECN@>T(0^3;58q`xg=y+R zY|odPBPQ^;4xN6uqp~oT1dl>Qa&=t!<)?N5NK~8+260xdlEaeJkBF=D){~6M$A4 z!Xxt#-R?dujKJzm?bqwtRfWPm)riP-bRty{zWe=`>wrk$6UokB)ql3rLrIQ}Mw?OW zDX4DIVh-XKQU|5l5q&Iw9+dr7m>la0d?)`xINJFhZd|s&{X$!>6tUGI9KkV8!;lJW6TrfV*Q0*MoL9+SBZCQ}P0y?|+m0_)WYpY0>tnK-e5;xI9zk$s=ftt=brZx^Y_DE2M@@1_0 zFx|y%%grWT#ai1a_Wuq**4(XU$qjHQ5?tIVR<9Pi$LO{0&XudWO(hnGWn`PXRZ0?6 zAAlm>oJN~quTZXt$61YKo1uc=m-K|@M{YxS{~=If))0>(F6xo;d`M4@PjOP?dM6No zvwDSSAO;2b;?t}>+T|_-E{i<~`Ea0DOd~CZJqIRLbF#menJU_-YwAq?!7>U+>iPP+ z{2e4-)$wYniGoA0!<#&wDok(}YpB8MiP2I-hM#942bw?%rM!tj&w*7jRZcPMyTlXvFJmok%^b4Pt zjA*>SRvd4`A>JjgF91L9|BgBtqskb!UDeg(`HRF7tk@9NPDHx3>`WMucHnw>C1&b2 zAzA&6+eG~x9l?)QEKMS3J>PA0l9?}(Jf?jbj^x{7CFgvL>}9O1u|>Haa;3CbzrnL4 zyi&aRhn*lpO0NR0>^)6Cwv5rpgd=h9YfWX4lkOj z=qVb^5~W_t`rOLqMrT_+K9n==)Qx^1_ud&GpNhh^2@M-5w3Tyzo%`OKu^)_ubjCG8j z=Ce&q>ExjR;9SN?2%+eY_=WOlP^%uGY$(IoiBP2HPj>fh8->}CSrKtKJu<>9)VGxa z$(;_-pQG#NJN$Ha3x1q-6n6Wl4~$r>7{1dbJC zyP99h6cHF1K_Raw;6y_lh+nHFb%9%RJYyx69LcJZ)ULL(%M6J;b!m%fysve>!;XYn z3yV*Pd^L@ju%Ud)0d+U z;LBs?XruJ);Ya7WB>Nyi$V?CVhwuD%<&s+64}!RtZ#mW_=7qiebFHbG&vLcGo({e= zQs|afGkOLany1Ia3GoSE69|&a;3J{}&p}eR+MS+vi+`GRZ5Ih2&U8C|$}9VsqM^Du z*SiekT8UO5y`*uKk;muQMa) z)#QX~{ZTxI(d=GVfK!i&vetmCCP;ApyBo=MR=-luOmim^QQc@(+6CKqtt2%|lb`sw z{aAsA#ELiQu?v$i2-khlre_WC8lMV_h5Wz7A?*K%0~44y{2lb|p$CsP=<6Do80za8 z8tZ~xCpGo-z<@!=z(C8`)KEuT^M8CGv<nw_^q`u z6AHAU*+fAep}Tl?FSY40&h@?-Z|}#uGpLL($*eXfEeoqfKbYCyb8QA`THmUUEm`Zh zt}GdB1gKfk!L{G%=$>QR4we2Uq&764j%ej*;} zitLkPza1*8w+0vvpXLk6LxE#u`G$ZfYZ_>dhlimDy;bk9PIDRV-zV_2!j%qll-=iJ zQ&gUpD8DG45{Bb;*cYGRyc#$(c-jWxN7R>Qw`Vw}xKklXn4a!BN{eO?N$sH@RGxiOI&jno_^wbio|ctBQ48{!*ojy zBvTfCS)SbhTyvxaD<-wZe)n_!YTP$0|~$VIE4-L~AO4EoeIa7;WB~gPb)r zS95SR(3R@dZ{K<%@6_%p)Kct{7Zvr_+2Mg!6tF>GEF2;Cot;J+rYX@lWibmVLzw)r zvCNI*UgY1ZAjM*{B=ZCov@)D}=1A>EyvPX;;pIWj(6_$+t zVuVQRV7C}j0AYPOe9KQT@yF2|pIs!V;osbJIZ&h=_oy;CPJB+gvEzOj@bnX5K0ci^ zDUxfs_ReR%pIo_jVpNiHqy?=`szk;uBN$@9|24#8rUMC~vP#cse}$o#ocNKCFQE_q z1EgRiBA8bd6w;MdOg6EL1qAQh#B0GdT=ig(>vO=Q_q;NC8<5PUagaIy<;^}eYe2e~ zT7@aG?H_jn=X5i|w=CK^%){|{8ZO(ge(^yz1W=xB3`>nxJ-7-XXey^r%2%E3!XKOi z^1isyxR*~2MLs2l9QtAP!q65C@kG}w92rta6gAf{hbsst+myhZIqy3VWpW;_%U1Zo z>td0(Ov<@;Avt$I3md+SgDtLG9L-kED8XjMqNZt*bTs-*-Ma+?6D2FpX6q$ zV^X>}b8ilx>f9z8Z5%_07IGDG*87;i4*v-2Q{Ka$xoD+koggpdIiV3iBgw8G$;eS# zTn`WEm?$ejnw)1nyfjmak9!YZIGdf^;j~27Pr0#k2U7Y9 zOQ^q<6i9DXJTa$?Fy2%)P@reNyCaF5d7^% zN@Ofnlvqm+1zxz2XSwiCl!!FOi}46bn(Frcm{Ff>18e7I-L9=7px<*xEea1H{}USR z(t)R3S?rnp8a%VPCRW!hQ3(aopB;|T+l!7Z?833S6w zPTy2>lEJRQfU611`Ud|yEESKG18(@&3fYCDtg`QCm$7&V|GlcAYGUHtbRGOv_d@{} zcAeG+(q@g`;l6f{#>&DBx=HPu-2&-EYeKGs94^!NahSVVOYf@v9TlPpzp?FI|A>uE z#KmxSze#Nfozcq@c*dZK6HF6*0Wb7YX%U%UHMoY2+1CXVRL-eYV;$1+#`UZZy}H_- zLq+KdUfJy40rP7~a*f}xUOP=f6rm!+B^$=7-g^`H^6yMVEC6OG4}+BH!Gn4NuS4b) zuei;;8v2@$U>V_8Ch3T77k$Y*`I5+Tv~W9KnuJ5~G0V@!>E!CM*=O#YpAiXqKYp7s z0#mAR{-J#hS|0M*uGH67I@+!x_=YW6ar+Zru~xX>A*x{O%9b%Z(+J~70$~!N5`+u{ zc<6&)3T=Ny*n4$25+^Fh{QK=R%Ri|FB9Yw5wK$)yKMNN2MhK{R*dkRQx#V_Otoaps zDX*Tqf5HjF<>j`drbWx~8%p#g8D)+)=t5(;G=9!_z- z7yoppzNdKR%w-IEb<%j&nBu5C#r{3dnzpc*Sg^USly%eOYaygX*T&b%W{;aJ^RIkq z_t2_;tOeg3SW+Nl$lqmFT=57ZU*j~ zU(I{iq(#exN_p9Ab9r5f>3AO{m9iPW75$r?+yEPTrvRU1U_{iC3XaM^4cX`n(E=X+ zNCUVGa25R>M*Fuv*En%RP9P5mxY_F=$uOikhW(Nh<`0 zEL~XIC*_hIYf*SAOMlVF5%c}m%sLQ?4tgI3?f*;j!<6!Ljzgtf;dKe8Qb}C}T3pk) z=Rf_?$cVXZ4_v<--yK|w(*hH#XQcTCpri;%{@bYsv;axn{Hf$5r;{HDvmeAj( zwql8I8!ii5;$BSyW51P9PfbsS8`!DxQrt4LMAGn5gCS4p9}!AOv7RZ#ihIeI9nYk) zJJw8f%cBP1IRisiP)z0P>dR;w6#-Wv^?B}_>*9y>QbN{O>M5))%I}RuBp7*WG1&1j zPTUn|x<}BV4 zW-_20n4WeR;%{jtA$psDq_D0LbFLggH2E7_f6#ays6g5qT;yc&Q2Bc;!Jr|$0 z1<^%BN*YrvgULC$%*mdn3BT~pvWrofEX#7P5GCYUpH9!!Fuq&88EIbZ98K`H;!{pR zsH|Ml5$PRpDbeblaX7okdsL!vRxGaS{rYfMFRylsI#>J05@}Dl^<$_>#(%2?{DtRBn(G7F1M;V;iEiFH zVI4?%y2AFIP|E$GggjB>70~c3zl#|&?_AP zyetkFB3u^iUIOUN=)p*!oFXJ&TIkL)>mHb-TqU1vD8RZ0x=Vgu2QpDir{v)b{I0zl zcJfk|^AYE#=o6T2SDk3`!}1D2=G8J)?-#ZIr{cc=%P*f>&T zBc>35B|_WHA~*Ew7>hQL*ql$8Vzdy|Bny zTJa6Fu-Y6jhf#NwazJ4WZ?(|{as_!3yuzw9rxDDY##u}AYt49*MUtp&B?WoD{QOFZ zE>PYE(7cPEE;7wxiFc#Ke5tV-ZX5*v%0!UTVQVI+`tnBHPx)&rZ{=fyiBXg%I6K*r0lS#Y( zse1m6Stj+$TqYLnTsH#0#c|wa$-zwM+PVdD@SITaE*dS$y#qys8lf z!hb^!La7kwf82)>B=Xoxi#?BR92%dFTYB( zx>j0odyKqD!_&Y2RfPi%=O>P_Bmtu&CQ;F?g|a1|vO?iF_{agbMUsvyEZ5onTxKaFGQ`)q9SXnL>)i z+deKY5qTmkf;mrnp{@fd0;i25wgS6NDtO?&pUQutTB zf9i!s<`$y!0lO^g8<}3vhFr-$qI{x2*rAj+lg9H~PrXWQuGRqy*H~iAn4zSg9owm| zc#P$}WUGi)EjaWTEYnl2(redBt`Yp;>rhp-X|Q1lX(L3c<^}T7am}Vh?iP|36@9vF zHmq4Pt4}0U^y*XDF8yni(9DvN8`ki!sTMU;8{wnm^mPQA*UvV3KORr)vVdiJ;Mq51 zjDx)Am)XUXXVIM?=X{ln9Q!NJ3Uu8rZti=ha%M?YxL}*K&X6-kx7FW{%t{t=4qJaL&k`e(JZjf{zH#W8n~$bdWfwM=m6*5Y z;6m?b(9dLvebbH5tl)8jHeSsFoT#W0II1Y6W{oR+#k(bhS@bk`-z2s4SfT0>PxkP} zPXqv|RM3zM>YaV7oAj?7KH2$aC)EO`*j!`n#JGTy<5YR-(w(odGvUDJIGRWA zMb42b$3u+%*<@RKV5Ss#O;Ftf=6bU&!l}l|>Dbyp{Wgsa;0Cr~01t)wHEp@RTFRf_ zCwF%gr}G$0+BP+!b)>CiKNj{1hfagg__`yLv2G?WR!q{pXz%Nw7u}|!hBsHrhc<2z zUP82xHHz~3Sa8N^Tb1EX{3tFfR19GNgf1_rMqiYRPq`bK^Ew{h3^pcH!wyt_dYhI1 z;JNf$T_EUDLlmjlj_Mr4=lnOLE64!(3^F9S8MW}J3F17eWNm$0Q+_#;V0prd1ZI5rL~Ouygi=7^3Mzc6S z@A31B0@W@Pr)`dP{d#y9oGF|=x4C(wLh`$Z#vXk_Vd_L#!WDN9$yUSM+mD9Q)DMQ9QS$ zsmYTcu0x@*IFlG|iO4!}TIua+x229(5`&}1qow|wN^(8|nHfo#b`iRwnRMUmE1I-5 zo=-?KlJlnIYQnPDQ=Pn~{wgyBpMHa;20D(HxBWEVlWa)XpkAy6?{hOx^1LKX0m zg~U0&RqSrx)V(S1P;~93VIik0s#WbT!b3sh7VQL-o;Gbj@EbK15&fz3&Y&2wj<>w4aV`0B!QAM|X3)2uV} zj**W?u_+u=&uX8FXzfA~UK?wjuP6en2}IDA%7mzU5QyJL6o1Lpd8<<-ifRQOFY%p_ z`*OJ!+w&*=Vj9rwD&(6`Xr+mp zBSUM#el#ma0L3}ZLI8-O7@mc2Oy zF)p(YQ+EZd;)J9Hb5a*AyhUSdT=>6!k#i{7A9y)A-VbI9`mSi8E*x4F5gjnG4sdz! z`&Lo{MpG<$U~nFnM2}#k#v}xmZd?Qa5?VCIP6fv^R`MO1u`d8*eR%~j=9{X$aF+|o z+&ei@C36~U@fohx7_RUJnNZ~#iGSL7X1+OIf@Mry93m7dIrZP+afd?DdHeT|4Sx8C{5*p%s;SpOGsKP|6PfAsW)#N)^K)Bp!9*!%H@4nU}KQxEYS zLRr~8n@@g7!Png8M6VFEvEVh+)crYDb>Jeid^}GQ%SdeeI}uv#rqpZYoJ*I=Nvd1n zIk_Dq;~kYtZ?7SnJ>?e5W0RA~+s7tpOlmC_1a&glpsqqEQ*#H{KH^x zkN2AC_T$_t%B)KQ)d179Kxs$rGY&{hX*h;b86Q#xC?nf);?8_A&sGrw^_ltzO=%-c3V?P2Hc8l9(>94NZ&wm~~| zwaCIApB0QfgaUu>C+Ml)B#>%a?#X=n z)5>^*VT1R_(Rf3f^(wghpY6X zn{p~(qY61;g$IXCvM!#l-f-zZpUe=~M4WzH6C85O#9aR&MU-UlTCdw^|D_J11doz3 zMXx|&Z$r?XHo_X4clpx!H=nE}J|=|4#v#!rRI$1&b#WO~k=l5C0FDImu%>)6)v_{x zX`Y;Bh5ZJ64*n}s1)EtLma)FU@Ih|@ZE~PFZwW7U*4=?J+S_1-l2xhgFW`Zt5rszG z-$A9NnrbtGIRvK|d#DwdB-ayRriENGRzSvl^5Fg8Vm~HjeI94bW6)2l4*_WS{_a4x zZUcJz1~dB|zs+&%Vl<`9Q0JRyo|;yRQ6MhD?z0*z7%roNwaMZq@OZl?06Tp{1>UC0 z&=Cj!_^(eJuv5to#CE2fGJK96nJ=uYV_0uYp}#PZMq*C=wA{PgHx39*7Ks=AZ86my z@UK%X=kxw7;_u?T&>v@lW%fS#`Cugea3P3&)UiS7KZyD|KY1Bu?3i8oQ13&+Y#as@ z{jiO?AnG(F3Apn2qgr@mlmiz=26iO1ap8UZn%FQ8yd+NTPpx;xC3L*ow8Gf5n=VPHhLyudbj)+TInTd;uAQsPGxJXZ&J%!{lpKvDOO-kD}Yg zSny53=VBWFh200rZ7X?`&o?M?1yS?pKAY@I-)swBhEVr<(iFT(mqs(U48wsvJ|(ZO zalf`8qAvvXc%+k)8XW8@G_yZ89q5C7kb*7h9#q)1tp; zXB+tUjvvJ$&GbJs@qsq!Gt7En9%hNqX(~s^>v*AIz%Hq#Ldgn!W$Kw{)I%TfI(RX3 zdjZbKu1ANF8(HSj(2NADgh;N1?FUazVuiq?wo4J}y+Zrdix)W>X%12!)X>2wjDEv z=2sr=QY)WlXdt5U0j19rZO?8rp~=x0iLKKWeLV4fx}Crvek;*wU6g_5G|5NYv}AAB$eE zF=N!gTUS1XT11r3qD=>eCRGQ59_REZ6i%1vLQD6J=e;cuMr#*q$BtFZFP zJ}+wvZKrAh;`jhRWIed)egES6*m&nmD|{Ju3+J5Mr8j`GTUd(&_dg9o@CKt{x2bq~ z`ma}4PM%dkLEi;QFf1~0!ENbxl0|BS?bGUB-U#6U2=IREC6nR;sm?grWb!g4YCOgK zK5g$)WXADzn5@j#ss4dqr$NfkUInQQ+@2OyMni@&PZ1y*#@XP;Vth!={-D%%7-?`D zAvhx=%v$ch`$kV5c&HyI={3DGL{Is67#dU>@`n$aawWq7Sn29h%kQZdWvVf`s94-B zaT{YLp`^9C>;Iq<35HoX5Pu*Iu(cw%SCFm&v#CTYsH-i&y571(Ef1#o>HBAU(u2{ybzyeT&Sitm!<2Uqk;;F(j}g9 zbA{as69$J!uw7>zJ`w^&FsVM!FDra(9C2#7K}@7LCY8g|vNZD+BEb;(ngcRzTYaXb zV{kw5wPLf|yx}#)l&R>-{J!pV2j>)bj(NBRct9=u`f-k~5}3x|zllVPsXW;U(7YYl zvUfjrEzt1?LLb?Gja@JtyZLfj>YB0LYFG&aR*FgmJJcsh!U|oKY~5d@>^-hZzaU!j z^P6PHOmWW?ZF)wJ0~Ez1-9wvuztBIJj*F+7^c=URs?8lGQ zanaH&-s>n9m8D}_z}DT&Hor}*kg7@pq%*DC2(w=Jk(eOOumc&KDnZFbGETcv4HdT| z%SenQuDzV&vw2|k4k`^a0))8vTHoBtj>G@_5(HKG{LItIs9&x=>*-C4^6Kzx^Jfd%jUV6B?GKdM*ch~A8)<2# z>gE|kq%zv=vW^F2)o^Yd*S9hEBA6Bx`&DuNcr*JwXf-}c+wtTb5Be_K6hhRn!Jxk( zI?8rc)MEx$R~t)%^pTshpS%^5x8+*84li^*U7CxhYsKxe2o0?84xi`V$g_2(o-eXx z)1KQKkhcv#jy!UGF_R{Q)+pC67i=vwDh!QmPPFe+uXQA{;Q(i_O!i(!;ZhP*5lDJL|-T z(ztkBU3Lkb%CRZ%wlh4BXA+Aw>0tk>dW$bnS8;0xx_Kk_#a}sECLc04-lJr(^iG4Pc)SeSLxUcO3XssjbUE5k$uXXTOl)cei&LW*+qO(2m-I3v#e0q`*b219! zwHD(LVO!Ct3D&t{`d1A3<8f06Lm1p)e;p@j$HK2(toY z+ij#zPBy+>`s9d-xsbDgTa>%4#Fs)G?H?io)#M-op=i*K@ zl-Hebs)GNiG~w1{5K8kFo-+L}@r43)Tg{v}!xgGiDc1R9;w~J59A%1tMJ5rg#LkM!q|ut_E0&QesJTl z$=4By(2_cCkX;^SDvCw01o(?pspJ7otYW_ev4gu0FV%k&?D?he|7y-6rSPq0V%ON^ z*uVR|zb}bC80)>JHj^7%R)t{+KJ5&xIJ6GT;Ua;&{Ug3gTec@l@u^Lc>oK}VDv&a5 zBq18&0f5qM%K2F%NND+t=~f}Z+MmN<)unoM<}XemZAiNBz|0Vj?8RGAR@%+ayV38- zIQ4FW_iW6G^opK@pZxqpjA;LlsI!cUD_EN~kO09wxVwkJJ-7vTcXxM5a0wcmfdqGV zcXzh|65I*yd^_i!bs*GxYi~E_;OBaV#XGE?RbS?i;VCgz`|Y!yDcwrnnq(vw-oqs- zcXkLxM;&~u#2PiXChZj}YR%QVB-c=$M{i?v_ZbhWu*rb2&py<#%g<{1-+;wN+vbTj zpbT+Cjs@Q}zRwh*LT3yzAB@NIoHH=c&R8XVTrJdD=1OiIF81BpxiF#pbw8DT&^&Yk zi`~W==m!#&EYIpBat#yzCfmf~7M$SKw8}8ligU~Y=@S4&&0N(ik!-FOS-vjA0>h=; z&(jpKa8S?JnSBm=7H9KXDtAvE4&~~o=Tmc-&YV}>R#2)ejSZY?ZhuEuqO}*5UPnDW z)_UuaC6<(Sk)IClm*o^=e&EZ+PBzlE#z`%FFi}|ti;b)}X#mQgN(sUs{zBAlxWB0A zTlx<8YV1&f``-Edp(P78{*wD_qDAe4tn;@pIiyvarYrEDrM+dbd!H^=>MUo{v05_G&?f#p_-akgZq8gk2+JmyQxz=?y+)DH;+<35e|;kJ33L}CBzP1`88O4 z#Aiy8aZfeCjXwef<%er0%OPh@!s5niaL-<*+jLA+TwOuwF^wYbQebQL6US7lN*1AQSOwvqFofc% zPx!ff@vv8zT3k&K8$QrB;P0exEsj15W-YI<>Iub>;RnX<#lt}`7o9paC~N80+EXZ$ z?)L2uJj5K%tt}^&8ZzPo0!+C2t=^yL^whD}_q1zdR=aDf65O9I)db03dak0}q8vDC zq<+s%wy^v%i;ed!gVDTEHIy!UCI1VgWk4&rKT*+V{!DpQuF&$cw+0`)+ir_oerm1w zwfDIGBQx=p^XdogH`yYBf?p$%S zBD{zSxC^;xe-nj5AiFrNOry{H{kH6Is}filE52X)-4|@P(=g3Z5k+9HS>NB88O$n# z9?E|wPmjjp^`n@?pB@oy8istlgkDPtE|HIu z@1aM$6t?#-Y7WwJvinU(GL%|2?R~HEefVK!H{Si9;mZ^O9||)l_pHg?JavBYG)cNe z;K{E1uS@G(V$ZmN58JHd#R#-$BmY$~viq{dpHe|z!rb4#q~!V7vd5^WMj|?lq<91b z4mZ}+M5)3 zk3yM4hihl7-byZPfm?ceD`iiRIMl*~{!R+(Rb*R)NOJcbdo*#Z6&$C%Dn8QT@W93d zhB}Cwg*c#BxUA$tp;AFndu^#4BZgA{0phC)Z6IBic^(;+lTNL zlRKIAqpG~o`heN{jzZE?Ghh26wj=q|Pv<(@SfdB`wWdTrh7~6#9-@^UQisP~PEOl^ zLt+CS6q=u*OlPOsQ9me$C*d8Tj292@IlNb9X{T`R3D{%=OF|UE6DL4s|17!l0gTA_|LErM*)hfbuwed zGB#6Z=f*zPHg!S|Gg%6G`wSf=LbpA*dA9t2?`6O5FS5?>H|*2&5o=Y?s@NbWxcr2* zTQh6%Nmh>f$dKY4VS zpV5r88dxf$QL7lWl8Uo!9B-cBt{V`%DRXG6vPq^>6Z|y}KGgkM`rdrB?BjrUyTkAm z{Hy&wOzvk8WWS0W*ePtc(t{_LpK7YW&R` zR^)0WQ%odFzvP zUjz4o0IQg2lkSX;!zpxa5c7|;hP4tk@Ml^{i6>Ghmu4i6A8G#e?qol z**AuSur@5;)b8Y=fCN;T&<7l{!TNL6)OJrH*13zOscpis);s=r;x=vONne{j*$e-? z)AS3v>3A{T{OU7*%|otgF|7onbS}H+G!!Z!ivlEkWOkT$t;%)5PKxcuOA(aH;ospz zKs7Y~_USwtykeMsvKngdP63R}A*442Tkw>Bi8uElqyb-k7Ol(SRH4x?JAfnVfu?*z zHZ#48IkoEt?3Z88Er!*CdbE(%MOoi=@gfzG3@>|CGE8wKcsZ0Yd)$GscITg!gMMj* zfGQ&G0kehEUyK*-37BH>tvQpa?VBc3ocz7hDdf?FFH0q;a|u*6;=HF%?nH5un-Jst zjJNc?9>DpdOjPG1qD^f=IXn9)uLs532;#f#ZP<@OyUYN!o8SmOG3!9u|1+$cq5li} z&f1ijTw}RDm#?iDzs^cABpA}OR3CV-VRpn5$V$p?JO@g7lo32*$nHH(4}|-QDu<oF}v|}{!j|*HoRf7dZU0bBj^oN%=`LU>JzMjW@?IOrLLL}M zd{&!J9ZJ$_G`M>xEKs1mwKEywxo39W6X%QR;|hTT32(c{@j7xzoAmLxE=EDktWq_$ z6+OQB?2?HrZ)D0_Q#@GUByEeXJa90u-yb$vneeum!2o}@6=NxMxR?_?9A3pfOzEuy^x9UXW(3WGx=kLya-asWjmYA~&c2j!a@{aXQd1@cI zM7iAdi2RUoNh)q&NUYVQO%+^~GQcK`H$i*+)Hfv#285S&hjSv#w4`=EMY*qnft@#r zg_ejJXK8#J@5;)YC+jCtCMYQsJ4&8x4zVD6U>;K5lI_dofk(MY_J9|eI9BTC=CP%4 zGVh91lK=V^khuOo3X&br6sYGI7@0MV3=9C;<3FQeyxDPi52?zYpKTxAMAg+U zRj;qY-5C%H<*RKQRwt`ZBIo@A;v+uh1O}*)yIEDgp$Ri}c z+jZ8LJ-u;%;Pt@lkH1Zoav#HP_mkuJghOP3U!eQF)>1zD&0dV{ALU6R_1COA*yK5V z`PwKMUc_X(FD&)$ENUGXje;UFB6KX$>0E8g*OqXM=YDH$B>zv|i-%%Lal>M5^Osz# zo3`^~eQDF*_Wz>bWkXVdPzKouxokvK3E`V>Uf95v7%sH_$SryHvu5(qrKa^bwLX|- zMrqZscJt3w`}~H*O2WQRj$vPgw5ii700{uBjWp=~$0s9#ZF4j2V~sN=>&H(S)w=1( z3LU&8)G9T>dm8rdg9SD#uV&USC83^}2GenCPjtp?CBf80wn~_oS{`&1l)-;dX#6ZFO@M7xYPVGu+qtKt6#xU)LT`Q)x?Z?0T zS|Rmg%zzE&h$aZ}XR+n_-$T-|=BjZSWN>6oZt`RdjzHK5G5a!F_{n{t)gk_NQU1Gk z#u3AE(7&c;?(H)cW?WB&vMr6Y>sqNh-!f!Oe)d=%IHcFdo1q=sm5KwBBw#|p}q=BH~AJX_hX!VaL+2lJ|8miSqJ~9&td05q%~`5c#Qb9G^rxwD~%D-{vmq zNm1>V$X0nUg}CIdn|ev_V{C>?z4#rij;?BNeEq(Q?L|dDC?@fj3c_ z=Fy}q!QtiAGHMv~!qBC(<>X8TfcY-<`24eY&S5GtqvoD*^Qp$r?*+BHNleEtt!ipc z0=*QB(0_Sda4PZ6eqX@FOO=%0vdf&y#-l4ioNbnFvREfa!;Kp9*wusg&JjbVY0?DHbWQVsYyX1;k4*bX;x9{a{19Kl>k)-Min=VYwV z4DI+o9Ma$!k&G&iyMB+gLZ@kj<%P?P{M+&#$ITyBm#j=au}p8QOo>hkvQF@=ckXV65$z z*(Fb`xbw@-sJanTUjk~dxr0w^m8%pLHeY`BdvnCRg#&sX%f`M}_lb@r`qTDc!YPpc zp3V=`1!{wF+CwjX$o51d$t)jq7;!fo4AhVAoQS)PiAVRTy;}vxwU-TFOeXFMOOQTu z%^sDm2Y-#oA_M-q)~vk6i24w1>5K_C=CfS0yn(11P3$S zVbCHz?(SP>^i+Zsz=rK-igj7@zIl3F*~gWQ$pi}*Aia_0MEZEjx|ZQc59jHXH^Og;Mf5Vblx!~$&6l9=ruV77? z#$s`zmBjH121@)z-Qu zS_e(K(?*p65haT!}d<$Sc$@eR;5^FW%Aae4XD%^ z=aNaGhMI-;E4Yi$*EKnP^?^+55O=KVpKl7Z!S34$&RsHY&}6<(bl4 z6o7Q9@Pn4x`z6jw-1l1);3og_%4ROs2r|CMKbv;B<;Rb6;maV#hDQ{Lgi?a`v$X-) z7jRj3Ez;^j&V?O)LFD{4p*V&4^q`ux5`roAtYys^^^qr7`%0LacWQ+PaJkgxPz8SW zt>@^%azxg#I(mC8H)(hS3VNSwvBB&G8i{#D~KDY6X+cX;*+v9k< zTc7flx`L?T`iMe23mwtZo-N8gU7B=NJ&mQVf|lVloFv1?8*~in_=SOsj1>RAI@?sI z)57@xwj?LvIgfLscNwI~lXP3E&=c=q7Oq3AJNcYJe*@UHe{pm0a^UdlYifz|4o*zx z@mmzRgJYz^5@l!K!JlZR((sX%KrHpy^yKM}Ccxj>rlPm?elWtUca4ZT7Vze#4XgrA zMa-4lpdyi&o|vvC8r5>i`dF61d+UqegIaPxo-kw~Udd*iww;~s+QG+2VIuDinH(y- zkVfhgDt*zIz$zVG2zms>ijzL`+o0Jm%2^_rT|e$vA#Iw~8Tbs67yKZo`KZ}IN8STp zE#I@~{Cg>%wE~B@?Dd>QbeFTVmbAtUCUcf&8t}aoFNFjWgAwYNzmy=Pe?1$$I{udPIPW9@m7{FSE_K#lA0Q7ijyV-qE#X3-ZHb5Ycjg9e3hKJ5lxs)J6Ws z8-gL|KB6UA=jFjubWffc9B~M@I$5d6fxp!=+rO?Kd*f&umUKi%umH8FmZyuT%Gm(l1`AVuEBJ)S?CpIjy z8oM2v{tef4oo0fF^9_9(` ztn(c^DLZZL>=-i5FwMm+NH%{k+Qk}m>0CKMr4(J|_kLX2*%y|D1w`2~C@2_-!-hht z%}G`VJJs?Ytg|&1GuCrL!DXS$EJruaBTllj*c5+d%t%T@&v|_Bitvb*qh@R!u&3q< z`iAyIXsShQS}At_g>0)#-izaP>kQ04#1*t(v`JuzW16DI(8;av^NzKrMC#Q>N{1I& zLwcC;&ofKDeAde~zbtl|0Ra%~NQRDzGBB_BUUUjZNdN>Pq?=Q^~U< zF|^ohN+zW=NwugweYo|{WI0&=bkJ?~dJY4DGD|V|DfURvpfP@2Z^agfBLcT}GRaNp z-P!XA*S5;a!7BmKxu54KJdf)>kwhL*jL^i5b2g0M7cbeb@)GGXudR-h-ahn%nk<)) zXa;LlrYd3LrRnV1EmN%u=HPTyXQW9X+iK&THP%ZY2HH^)^zmK6d8ujoNu9TqshPq} z*2d`$v2Kyfb)C0(C{>6a7FN#P=b~2W#y%$4-cT2pey+BNl6gE=t(8QJwmZ4qVP-qO z!Jf*cA(4x*`8MV8w;52m`|^ADnv_v32##JR^!l%zw$L@N?6DI|?mc-y{Y%P{AC zQxxwL!S}zBNr~$5-;Kp&MiY^qF-cU!g$?U^X$YGmmb$QON0ye15%1V zUTR|)g%#0v1@NVX@OF`~R}RBA)uE}&yT`&Q@&A>HHNB7sIKh~wkc=yT1*Aq`g)jt3 z9NO#BBy!vG)#5y4HS!PmJxP{2#-QiKHyUQuD5rTw2(E(cz%t_Ww703^clOYxRlfBP zml>KOvD*4MRvQM(q@)kQtt0juVm$Z*`mqy0l)+p&k=OD7!1=NM_Vj8Gw)py=e) z_a{DNp1gQ3V(E{sQ@X{5^C?1qBl_$?Km8d~+^}jv)Q4mV%nMIMaUsi7H{hXE1RzD{Pc80Nmk#eYujON|`i&X!!Q)Pq z21u~czYz$MSbaxMEk&%$xmOc}6O0ozC)ECvn?$jG!srZKC`*MVUA#t8#G6Kx}HEo~JY zZJ_tk#6ZW;SR1(Pn*N6aSGPn{vkqyI8Ew2usJa_pdcB?qK4~j)W*BRy(KMCUclUaA zi~lR;jC(g9yJ(Wz^swjaQJ)2KAu_=Db58xlSqC0-Wgku}Ey3Pb>@itCV4~$yfasvV z;6Dae>gVg^&MEtp<->LlDW=+O#|NVeEyI#vS0?@sW0!5hG(&@q$Icu%TT*RhR#dw` zZD;(1KDt&BYcu-t40;?@ohSJ<-zKAlEqqlTLg(Hjlo~emOTrL(Ip)#@$c`|?g;FZ z?1R>1gl8*o3s&Egec2dyrtvIa4fCnz5Dgz+|2-SOy*G~?-s1@&u8tOeyscyV6DoUI zi0|hQ%%r71N5t$%GsSmJ?DACNn>QdEyhjz3k37tj*4B{@*D8cq{}OBRAD9`UAPY$- zoR;)0=Oe#6&sE<)_eP2cgydd@<{i%?xW)NzRy=Khhi}63)6-oXmpa z1mZ&$bYQe6I4L+eez2Ipuw&-DviGI7*#al9j$*~H#r?1F4Ek4x8yCic1qxHXf~;a8 zBvDnyN37(2D#CEzCYipY8DsY-(cy{NSTMUcYF%4q}2tTKfjZrY;*RbAW)8DjL}KE?0%=uSOf z8jdK_{4&IQN=06FaJ?5s~*CcxspnPcct>LjhOm5PBVRP8)PPWXAu8(cfc zd4GyDy$n!~8hE|OsaxmzLR2}^humyQdth9R%11LZ#`_VhaN-g=9iCTMM)jxP+}Z`F za;vzcszhuaCBhDi8kpFmzegcs5P6$nEGn;x-1U_s@XlI31!tZ+eCI0fGgIi{Dt!yG zP5g*;@cY>ee=L^FJ)ejmIA`}-^Ip(G_l-h5OiS^4F(H{Kstnm-0qFL?*9HuU4YI!2 z9{~+m1~$Tm`X-N4@kBmmydvz)vkKPF9K~Rur=gz4u)|*W#+Ch<+-VH0?z@Ma5Dd3B zB??EV8|`(0SHC7p->o}O6_RkW5kwk-tv@!b&xa9sK=Ojm%%bMA6NtH*6_K3j0;~!bT zNc}GJl?cmq9DfchzXn$KG}jsYeXXyJJ!1taHuvF-8X;AUowpKDVCo>Ru8MjE4FiTQ zSYie=eobFRt=P-rs{kqt1cg7LL-n>(70A3lZZ{gL6UpNIfP*BSEEM#NriF*Xxa^Bi zLzqPNjlOohWh?jbtvbx$FRAvH0WHToMG+mi^;)8ZF5nn!Dn|4!(%%pbc6b^!laeN z5=Uc@*Y>`d$Qh}U!>L5-ruBs2y;K|fgP)?}Ez6)E(E21aIc(BhxibHC5hF`qkE&Ah z7dax9^V_O0{|7){0kqZk^P{VittBJ%ko1YdIx3eU{vM@4o2v7S5LM<+qwc48gA0%J zqDz+@uP6Zy{HyugDx>n@f;*5iyCoW%QdBldOCD^xH?MG2KWF_Ur`m{TUHc3Y;I>sp zgQ{F1d)K*rY=6bJ>zSi80*+oWG|nZcg~Qhj)+Fsf!$x6>xT+^0))7P&B$@ekM$X%? zi+RUI$=3An9lpRIR&03S%Q3@cf*~0x;qPbWrtLH-&IzP2FuH~+bZ0J=p!cyO?Ww*= zh5-NRnEGoXIlI5&wF)apNW!3OnJ;wWbLvL6w&2)a%tUmOQ?)16A5u9l8B;acYnTpI zEIhPRCCx7XV$*>G7Xu3pRZ5Y}oyD zd-j--6A>|FUtzFxKe(Q5SxuN<%3kRQF?>3Y>R`M~Xg$+$D1 zQvhV-Vk~s^x}4j+=y*lcs#$PB|8uh)znsMgr}4a-05{*W$o*a>-a>&GrxNy~XjM@K zdH>g8Dg6Z1H1djXAAAssBO{a}e?j!Xf+kE^--$%9qOQIyCC!CL5d7yBrW%3xv++8; z`s^$#JRl^!tl9jD!&+7UHfE$kLFVOC{#BVkM?@m_4K+b=(6vm{0Xe*+WDJfvG^UpU z9EIzjEwgW4L_XNZQ>Vl=+6M~$EjgFjJ9<)p5f7*a{R}NF0bw_A)IWwq-^~1){Nd~- zXxcWe-$1BhvX)Uvd%%3IFPp2#j-R-H)@J+tr@-a5x0s@YJ%zt96FaWQ4eaH*UPAg- z1-E}G=7($yGjvcdZ&|aw_Utt_;Xl$v1q~TP=Wh05p1 z<72XE&7kzt-YlH$omMP@xM*Ju|DVYv2MNLRyBj$W$Ddt}E2bJ@PHJw~GR72LO2CYe z_-I$H`3?ww`B|9C=U3~$*;(4vn;fO+H}XXq+Y<#>ndvK%a@k0#sEqS5WIIJ>J@!+S zF+9x?7JSO54TS@;Q!j!64_V>aH0$eR7`pn-u)21;uIwrQAZ4EgVg0=0-N4TZ5t^&v zV>-F%!-$(X&1rJTR?VkrCGX@kxm;~Ut*i$h-V&tH*#dVqKW9-cU)tNrLb?f}3;40G zYXI7ZNnR!?8b)Vnoa^m6Qj{UW>pM4X6sT{?$bQ>%Zdvh@yW@r!+)`4Q_7$ycvSX+& z(@35Bk4sPME`^5n9e2FGu8hIQ6=d#t5%1z;qs3igNC?tL%C)O68_2&*3G%m4jO&tm z`lBXpTJ%rB`6;{)621SrG{7X8pE4`t!zrKF)jaCGp|7N@AK~4hRc-Swqs;lIu-Sv6~jrIVcBMP&&pp!S!eP$(J+N zEdJKp=s12nRJm3Si~h$#w|Y1V>T9D``dMSAdU>{RRTA~)p(fK@E=++LL88-E%AWN3 zX=1(TfRE?Kx|2)vj6_lFb~2WPzeA465r$+yb5{U&`{d;DM7{OL!j25f6MfSuswk0Y zREv3qC5-}Ut)b6s?@y1FQCn{#HIuU4mEpr|oqpDIYMT*(9rFrh_$!P2zkkwxkT*7+ z4YvZh1<7W_g!@t+{)RnTEMNDRjdvreW51qhTo1Pz9A<8g-SR{w0?tT0!o;42cC;Xe z3khe8Pqp<1Oc`XLkXQ%G*hWX-&YYG{maAX>D};WP2T#Q9fI?l$8YLr}qWs%8Qo6=A zS4G$Am?;PSN3NX8oJ$7w7qCZTw%dc^r<2f8r-QH6?0#*_f7Od<)g^wXz{QnvaoWY1 zW|6+^QdF9QNag>wCSdImB^j*K+xJREV8W&3P|W)rL})~x8X{zB;u#PW-$Z8?PpK(plVLR<8GuFV|QGevp zU*g)f37_~av44m4cLh2-``&)K1D-0VTalA*j*vAE4F(hpcE~XwnZdt z@G|WZJjX>O1+XO21(}mjP!wXN?#%h;`nPs(*Eu_G@&YL(kOTe^M2m?_ts(v~hB!Dd z9<|_|Q0hKsiXu2_72$-V*q?39N^N`Dg0b#H7Xj@z}ymf)z_ybUwYG*zF!AmBI|CHd_dCnMTag;Y*G0ZaG5cu0g3P90#Uf=D=uk^Nv0x=Th?3Fer7?60gS#BDf_ zr>#~o{IZ4Sq!rctu5fRRf~DPd8wQ$O_;Y#A4>k5qet8%Br`aIq8@xvlsuH6teme8qCxS_Wm1Hxb@tZeRGnM@w zWFIWo`Q(6x+lu{qu6U9^L>AYYVi6Mf16AnMPDDkAaeheY25t3!mA`t2&94yxnL720QBj zNf3(>jEP!3aOgG_QF@w~0Bv4eT>i?>{nY#(33oEw|F{18TJqFhI(5&Oz4A&L7wuo? z@*SO&`R~+51m$|@mXa%6=Y%E6<^Ay!gmaxVU;G1)>_mT zGQ|}4<1|1zl|u?PTzF4Z`ik>D=VV#2j_bwXl+&f{*KA~6H4W-SOlaQkZR8H-uAy50hNusb$JYC5KZ=|f1Te)8%L$@&#|&cpWb%fVAJC+-EsJ^R+Wh)oT3RZZ->;Hm;q z>>scv32t1C&G#Z#{I17MX8DKP{3PiTD=lRK^|}Lh97$TOY;|g95Vh;z$L1uS4^SD| z@&vXpLGQ^lXFKKYC!?85CQc?V`a9A~&iO1?X$nktO8fhD&axg&n4SU>g{-?$-I?07 zy)*_6Tk?2Yo6R+544M~M^_Scl5-Zzt=IJZ;&CX~`WbVT}F1FAT!NmnoQpodjw1Pqp zPu@0nW^YdC;K*RIW&8S%+pCry9{u0WzY$JaP9-!~qR%dfk)%7vkBAObUGeQz3N<$^%Ip2@R)Gp5tK+Nl_n zM@-A=L0up8$*DjC@?dUcG}Ov!?Jplb`b3$@JO@=t-JitA$sZj!BW}uVJf;N0wx$s` zYfRN--bLorUdiOFjAb9gCX!+5^R=>cOO*L6wtB1Rw$^~{pY9hgm#Si(R9)Xjqc%>i z=aIZy0Ce&#v{P=*`e#wx>~`Czgh{D0IqcqDXPhCs{@S|{rNhLu*v7IHbl`;w*sR4G zDK!&R3^h{7K>A1HUftAC5;ad4Ik!HwBFan68Xs zR8xJ%I~T;;Ivef&r=YEzxZ4vG`J0XHe1S9MGb~IDG{Jnr7phs@-w%h!H83fpt;KHr zDTqHc3ItQ{XBSm(hAz%M{ExYjbL`~R$D2X4^?7eGBW-4t(mrY@7)2hmUZ{rTM`@YP zh8-xnVoO(cauTX_Iu^poDr*UoAK+E^R{+bSUG#QsXcq8e#Z2LY!Zxg2z8SnfdF>x= ztz~LiyoyO4{V_gtrIy}w(f3WHHM%%Boqpm@AM?}AI=3xZRb5=w9$5c+%S=nY;+k(O%TfB|l8NEpY!+(@ zQQ-Ifg*` z*)p#WokCn+#$lBN6+}I$AR|w_8?Rz%y;kU66=zKI7-Pa#BW&+U)3P@d9HCQ~x+<26 zXB!c>A4b!b_1h$G$AF%7#@-#Z$!|&sR5zuK#FHk?SE(uLDYibpOf~m$b`*fIAiGCK zCXtomWcJB{s7wWY$?Q!U5^6OSeFv?7dXQ$4x{W4<>z&=njriSo)!hiC;noN~pq#6( z-zRp@ADTA|IomL3AeZyHOj~Ns!;0x0`z4`;Z89tCsNc{Dg`?p|Q5OjX?|Tb3Km4P-w0vF?|6^dM`@g z8t#g3U4~1z)N-{=Ac)bl;Vshe&tf%%gJ#+rqtIwVn0A__|`emU~sk!90xvffEZt%pf>9|R`-u7I6ZhfFL z-2?F4Au(rLFxXHw1#iM8Yo`Pjubr*gUaPL9A)7Ba{#n?Y?Pd}9|xiirN?|GIABJ`Z_YfGTmchW_j!a2d4*C$5UPkS@6SwT1%KZ}d=x~W9e zaG^>RlOA0uF-+3H!-m)6Alsn=xleW)wIIWUy;`qb4EQ|zpRTUQdzwQkh-U|^loBE` z=e5>)40VOlFnTaP1roEI6#3^1R`Z{eSgwTPCo=6)fUF)071XBUrsv_4HpAWZ_d%Ph zm%fLIF9rn8VHykwyqsU6(+}iv*MHuFDUQ`+8gq)+(5|UIY=B>umv~?+EPk*{{;rxB zm7>XK?BR0sDv?W8%6-Ile*7N%Hwh|()Tg0WMSSzz*V$BIcWwks+60l(L<~5Yi^J`_ zpXi$~a;2?wZ{qPHJY^bBW54mMmLYrJfWxqFPN2;eAz*-kJlg;4!xv7NQKv28uDs`# z^Z`^NY`8c&{jbd?xAUVsn;TR_z-|@{?=}C0!KGqM1?L0ax6%5<({PJk9uU$zZ%+qv_k6(G2-vgnW$C0Da(tpW$S+pWOU3Zt0Ctm%9hFiynB2x{d;wa zlk#df^7*?@Ioey|@9a`X-5=%>xDsX=C6;nBaJKW90&hOoDs;v(#cKekXe$sD0i6*P zHuZ~3Qefxi$9vbn1|NYpPWL~^V$>QNm}80cajmszxwQf7WnlAmVut8@yZD`+aFG(N z8Oz?Lo5_4~6lx|+tf%sg@iq(wzMSD950ub5K(6Ksn})Uu`fTrS6B&8k^sVN4-QY`( z;@(DvdtG`hE2FIFL5B?qLq8iY#Wi+6|D&Xr3cdRUL-)GtZDYs(Vj(AQFWk&I6oW7PX|PL@ z#Jx0UwFnBxCnRV ze)feE%s05$96-ks5*M~$Z%8>@@(}y;{CbO(M+*Tr%;|zC#wx@EO&0fFAWW;vf%SBw zMRA{Ou?MHfl*tUHgdCMysnay&1gTv2NP0@I);RlOUTZ(&VbKwpbb7;PGf|j9r;q`d zzX*{evh;c(;1op}wUr zt4`xnBdh&Ha4AjFr*)ElE~Gg6c&3!yeB6vF+gx3Dbn%*eQSqS@e_E+ABD7Hl>If5t#T|U9{zsdEnw*|7LBHQhJJ$q ziq|f$1gMRG!Yo0jY+tk4zS1wm>HMszBN+H}%*dKRQq8+h7p%G@m-FHkNc~W502@r3wd6Vm7=|*|e-0 zFPC+Zema#J3BlTGSKRFJ>L84BC@;O=N#5i64|6vHcxL;X#nkIYyTzTLKDa(9z4Dd2 zYvA-Eb8()*IsWAdngqjPb=&62%VkbvUUW**w3*>lcl^x@;w1*R!~(ZwU$bv(9arI2 zx}qQH{p0;c8y8$Qu_?_Uo@q`OiYA(2m5Pqrc3>=in4tqk9T3!W=b=e6q_q zE_tn(vUB``45lA{q>idjnCsXjj*e~N-ES|ig!*ngQ%4{T)Yv$K#;@i+K_LiK2st?IW$q3ZBz zo5S0VblwABCb1lztCYjo?tIUauM&2t=$&pyl#Br&&FZt0zK=4oRM;6IELXi%yj!g= zD66Z{dL94$Y;R3vScy!-U0T?**PE|RH@|Qa-21CG>*4wbtYJvg!U(9N*ScdhLo{AO zs(8_2U7vneUi1v_R#7*VDcgsTzyvJks<^&A$rk%v+rH%(g9Z;wG*x%AI`4&mz~%{J2s z)SL=C!GPifv_M@jkB)=uuMW8t8IQO5y6P<8>#q%tD(@!SQl%j16sX8apT*1k%}3k( zf>Dk(xjHdxYVN?FS}af#9uBd*sQ+4hw@~ETvDzO6Ms}soe?Lc!_W2 z@kX{?D%<=OEHA2N8x)uat>vBi17CqfVg88pFk@!Dxf(sBQoD_ckVAj#m);8AG(b6*2HPAND)7I6| zHqg@0($m!eG8H-+x`qZO`ntMC#`<~&1_u9vCA+`Wpr~)Vn%EWAV@UTs?QNfLP0iIO ze$}OUWBiS~Z#|hHSA=xLj4UlOgnX+V-ph?iC_;d!q%ZzfDXcXxyUcQCo4`{{P=8mI zuoYw#p*5#gC5xH@geXg_(2JRqa?sSl#N~0dFJX68I1UyQEh1>?xAhLHd>#bGcgZC9 z?UEM1pJdt0I?}h|GK3rs-*G2_SwHn8akQCXmU%VqN4b;G&eZX5v%ExP+GU(tL#1Q} zs>-J&oeycJ!n?crU7w7%$~WDo%P{-#m9vyMS@!PFw>aGzOx1ww;pE^Djpm}EEud2z zf(w*YEZa%Odz!H%QM~avlu=XR7maZS*W*Gjl(H z>i+eIC@cqcNu#;;lp-Xx8kLl%lOlS|k3Tipnxexa-KKiCzbbzplY@w{d9PS3W%x!v zm!UQALauf=JXkgua&SPZ2MarEa_xUiB#fqkF#D3J|27dz3?cqxr{tjFaQ%)<8hg@mP2GORk^eVV37dCJF7 z3gIghxM9?XE}sfI4Cv#KhJP+Dv=mOr$pFujh~8N)*-@&3o& zhIAF_Sz@{4`!4&B1MG84!8VN&B`?EA^2v*YIljr!eZU0GMNSYtH&@{P+97^Zq%TP~ zvy0>nlJDAD?BBGn+ZHKE?dW<_CM}1=sN+=bEQ7q zE^JLAv#eSoeZz8Pu*rfiB1=u^H)Rq*j_TUgT4v}zf8=eQy#+<9@Oy7@#VN88+p9fc ze*EX9gPJBUUAWc7D(Z{oc=C09tW3;{d|2uHv2rM!>MV*SW1DS)xf04k`_&9!KT0&# zuHo4IWx`NkpR9eOZ1HK5cVWnweu9ha5@8++i79_L4ctE6;zB;bRCcl+RdR)j1q0>bh0xP^N~vcy%;QkAX&3gntjS#{1FJ$X$lBK%FX8a zw-D{z)LFQqRM-BzYZK2ic3+@(TT9VDIk4ndU`%q;aY3kmSz{tuKa0Ei)Y!iJw#9YGnVmlo|X=vTl&P zps*Mq=glM#WBUbN2GQdUCSjAKPfhXwp-rhKy{@mttK_(2nPUOWPGgtcjK!1`YisD7 zY@Cj~9bw+%CXT%?bHU0I0x4FJGCD|R7r7|-vjw=|>%PE#Nmt{RU~ca3pJEBoXs|v) zTW^(I=Wee&(9}$lYW4?@09xB ze}21<+d)l7dQdHaxg9NaDOS|$joWQigRJU}K>+y=NF_kPK)Y1<6NzlrZ{0@GCn;iT zc#jBYkPdRl7fsxSR*l|^`XZkANFMFH53&DK$(`j9|-K(V5J zqZQ#e>qb^h#1$ynZL&d@*A%-yjBT=)H*E7k%&k<+D;GMAxIKgTeEB--z%k-69b9={ zHFzj|sdDkVNLV4*|IcK#TNtAcBR%_=gJ}Jyf?VrF_{f+K%_jcma8v?(BOXFoQ%f;RPMpR?Kr9p>P5#)IrILRl!IMa_2}lH$Pf_|m1bGHWBN({;PfFj2fCpf zVd;n?hsPO>Qn0Mov}^|7S(=~dqKc%=Ib0T&!oaKW#41JoO2ma z9+ug(d|s~ePk>H+&n2T20>><@l`P9kW!bHLnOWlvTKvwA$g@Sh(P>rf>}F8exko4S zUHW=jXf`w}2lH9Cf)D-088F)bwi1)u)`jSedOPcB8n%-m)(C@r)sDq|kutEgf!(}u zfE|a$*B6h$ljJZ_TKis{0e+bu;8{sW82 z9V8{=@4YrC~@xhcG=9%Af2gN7uQNYm}{ z>A*sFNH+d!tp2@0NeRqXjt=gGm6)i4XOek92)d}Pjh6&`?b;!WL#7${rzTPJPia3G8h&nEOuq!xP4 zZBAKnT1$!atQmUt`=*Z5)<5K5I2jgNcg7d-@n|#!mk>i-WwIfkb<~u*zk}>;+^~1V z63z>rebYm%Pz}a~G?Dlkk@-_RM8P0usf=FkN`@AK)mrr-Q!T9dx{yLEi^Uu{c_=d4 zqk_rRBXx)dPpCI7Z-R=WRL2uX`eOIpxScQ-f=?(aWi=0DTJ^ODoNDUcz%#!$vb^hE+jIlM%M zfM5_Ct-XN2;Tb(2q$1X8fL1wm-+(xur6IGj8-Waf+Lpe$T*%n404yGTbeX6~)~KuM z(Mb#2&L*Ybn`pDbghS*_-dW`4d}u$Sl@}z?Fc|(`Y9q?LB$qD{b#&sjvc0Xft7hhm z6F$4j)9>WSNOE3qFkT6bKOgV@3IHs*K)_@6;W^CihWf1g54zvY#nsbfB7GRIN`j_m zF3s5DeZd)OyXK4JZe0y~)aRa^k~2RgAN0w#8q>edwkIyl@2s>`oZ7FIKfneuKFa`~ zvIFk)R^PT0ClhF$gQ+V+_yBRK)>NrFM%qfk8L2&V4mJVdWr!^--K{-eZadwTBmU@Adl= zK;tS$v9S9!4>@?@$Hi6SO2^{VH2A8B@~m2&%2E4MnlJGx$85L^``yr$Kk2AqINeRp zk$Hte{nzpQ?wC;ir88YXYiHV^VcE1gHLfjKL)s!8x_UbqO+!#F4u}R&`yFHM+FmLEQMg!Z?EoR$DmTk9p>Fkq zQ!%gcA@u_1Gjw7uz8yM7FyqHfCJ6fD7h5)SEA#+Oi}iK9#djI8!v&QJ5DPun(3473 zCG;sngKZ?MPL|AanVGCW{P1+yl!FP2V8`+~*Ug~H6r5DnPJ5WkgJ)h*^T7fj&*gTy z28!+yO3xUnK>R&cL?OJDi|@*8P%wFQ#BV_o^DAT8FD=39E#p`-r3#z%Ibj8I0uf0b7tr4*xbKOF64DKoOa$sBM(j%tc43X zts0a(_!@=E+-aMq9$H9A`}_0(o-(7S#0W{Yjiuo*SUs08BJ%?VRI6|hJU7b80&$_c zWpnga^?H|C1)~|gECOud6m@t-afeU6$9z*u`}MOx-gLc0;NutC2IFa+LYXQLC+M7C z;23`w*`~t@O7*%dgST;3N!$k1#b{u*#DIgO;n=Qxt*1Nda+v8Ko%3oTC>SEU(sQZUpAC)cG)@))^H4}C&iHcmVFQ94wGNzgixuIjY6g5{1~E=7`)oP73Lc61 zM!>g?R+xSpb=k1_B83gV(4(DQoy?Bt<};<{N*BJ=N1pd8vMmwG;lv&DFJy_HwAqIK zCw7g07GoS!wxH0)zQS6BP52W7twV&ze<=QTTs-`>cQX4(1M2X=tiA^ar0*`Ds z$e=A1}~`0+@yikQs3Sm}~8v0xam64vP`0rNll!q5NJ7q|d@VOin+m_bL+ z5a^xIF*GvN)iMG)1%20807v-kx@LQE^Mq^ z%!lU*Weq3g@iY27_8F5HUh&1(ytwj7k5o^)6MW}Q)@Mr!5?}8SiTHSOoThbNvQ~b1 zCpfpp5iHvtb}Sm2&wfxdL0^@6t*4=;sf`WX-Bbt^HHZ|}sLrq?$-m5mo;|J=%}I-( zN5PD113Sh_AN2a&L2jz7yk;rzn#`;J#&&PiR}{Qy#uw%CTn|_)sie zSa5wDuTIj~ouuB90x^>)#TCL#IJ%-K$?9VKK<7PqmNfwz7o|7R+jb$#e|Ml`NdXP7 zehI<|>tJmdy91h^%d!xk$P@2tl<_N~F+(K(Y&H(*2!gaFg}lyK)r!F;$3ofg?6AIv z?NyEIzbKg*N*mN)|I+}FEmG9vv3Slh{ZAi{lhL1kn)ikrz42r7&Cz51gmbn*9shP+&Lm`u$?mdxAM07oAFC((+p-_ERl9)Q~l0pdZ`6bh`!l zk8cHKZp|)U&rbn@LINf{0Zp=duT8KyFDV3nwG#7XFTfyA<}mxRdaOUkDP@!8hM#?AaYCER76pXnX?Z`%u?%YiySy^kaOj#abNf9*Ur-> zl%F3dSy}F(g4rsOB&9M?(A&C8ebCd_=m+u7)oJe3k16fMm>LI>S!o;wjCfBNX8<`?d# zXT-dbzSV>{w_C?0$7HU74^wVAhLas+cl_;xVTbPM*du2WGQc?;8bZc{z!WB&7c`WW z+>%L>azF_sPD`5nw3p4OP)43$I58 z%n~dJ)i^Id?@B_aPc6S-GfF42tg}&GK-_(Y>P6QyiV>im1Z{ zZ-{G)nF(mFx_4~or?Ww(W*_PJrI%rvgF74V@-xsowgk!r!B#YGy0!Mr_e^~gA&sA2 zk?Cr~<#rU+R6Lu*cw@s|J^yz67Nlg}oh?i_LcQ<+dkYjd-3Ycj-IUm+fW!W*@AL!d zQRn4?2qX?9V8@rT?;Ajqo?v-3ZD!(-ZM*9>-@v$;5m6XLqCeXu?^e^_W`-H+l`i9z zeb)LWD{-ujb0-lwe2eK}W7#t}rlfG54x;qXfswQ1vHdw@>M@P1X$rKs@^a>rd@H*@ zGwfWJxpL$vFI0XAm$*HyDrq%g7g$=bTwIJdN17@hcMHI#y}vDowSor=kCNH{ajSTs zclqf-Jkea<8J@6g3ypn5%PAF%PbQn|JULIhRe<6+DICjh z)y--a-&*b~Wm)IMPqK&+ZfEo~bA8kk+WR(15f{=s2vLHCrB&z)WTOg5mGfHV(3f%Z~QFWJj%ezod^q*QlEq*q2Y!!HF(i-6y0U^S2< z5JoAvM=_B`e){6cgm2d>b2Fmm$%n7xo;@_UF2KUd!a3#8;(9V$?sH)ke?%@u+AhxB zGAyVlY9J$TYz9n4S@)jJ_=Zl#6J>=lgFf^2xXI%c6PNc95R=qDhJVf8{3)p3|2*7p z-o5^GZ1IJ8$cwZ-)rH6TF^=OjumO<|(*k*8T1t()tS)f_b^O7=w|KnmRq65@n0?$y zfXfaCRgt?4T%Wl#i~;Ypa(2SbR?wjLk8D#N1ywMp_~6lG-fA;pS}^=6E46&TCv%(M z(^&{bhdds7YL;l!cU13F-p0Irnsza~ntJ)+fgF6^Bw4S?z3MA%!sKS$NyFGLB0B{% z-uh20oyiMK)%-wX>5v9czS#5BmYK8YwIM^!pg+DTBwIsN;O0(5CGMNi`iBN7I)l?~ zrdYS>F&F(<$z_a&llh@s^YbKs5kGTTrf&D&!Q|^sll0M4a{UF~GtB|gIXCkG(+;5i z6AeK996f_Cc2c>K4`e|0vDY6Yjnnu|)8|%f`A#@U?1pO?lRCS3A=P%xo=F>dmj%fW z*PXSnpIuQUKAqMxZVca+N5Ivo&a&pXN@|?RtpA{6H){)x=m)l0<*> z1$;HIH8|R;f&2oRA=GR&Y=#fVO_A2!4*72Fyqj8@0z2IY@*oC<(OEuJZ09%eTOS*` z-QlU`Pmfv%a~8>;0yyGn0jQZL5N9hWQaqa|<*3E?dY_(6a{rXT7lGz43wz(h2rH!6 zY3JB2-%-JXj*;9z6IQI$uVbe%=;pzNV{I4Zja80d8u4?~N6#<~n~3yarA?kgEV7mk z5MPHRKZf@tX4;8y3z+W{KPlwsn^g}^j!#K@nWJsEaYvg@z^z5CkEzpGKsc}|cW>EC ze249toVzvVfSbWDyeSuf7;sk-Dj`OkAJip``4YNE8dFLy$R~KmpsSOMa~tIB?`r zVNurFk59N>;V14!1+Vjtf!UoLP^Q1;EE{M-0+z|I@{Ych`^(Y}9q6T;KIo-(e^ci7 zr4mC*=;Y^E9On9zXDw`|^XS)k8&QihY#dP}7sP?4a?|g2D z7jZ}%=KYp#e6FfDtht;$hNG@nH#g9;8#|sE-OrCVvDlktlJ;B@$u`w}N@1u@n{-n& z`XWDLA23)1}hCjYW$1Lb_a)|7DnGNIc_1Jl?JI9+X zW6}9-EMn9KtlGWVb>8*bA^Y89b}6S5z4H1Cq}{!}v?poan*{h50@p=1NBNPBA`w~f zLws6V)qSbmN5YwtB&r@&ne#@oT7YHBTLB{;Wqm)@snAIgc3qK#6EoFVrk1e18sfzD z+_SwjGa7bF)K`b7_45~{Yw=H!5zCr8Qv+(Vha)%^D$7%%7e}ti9|U#;`3`Xi0tQQK z2kF!LJe!=r`_fzv(NmDA;8()*T)VOr{jikAY2Db!{NxpJ?vftrwnnPlyU!N)5c#c1 zD64w8M-@%1ncH{VbnG*}9e%SSg4&tcyisMnetlBQ%_G`(H^Bv4ywZPa6>NB9$NTgh z{RXbpbF_}852Zq3IA^3%|K-HOjfm^cY7&!=(OLc<(vk-CuE2FtgpZwKR~I?iZNah4+9h4e5aK&^gGzyr4FVw@8<~#2467-Dz@htUUk^JF9@p6y zMpSFT*5nt`%|h(K8eaUJZqn#eK6)ud726^BA-w4D#^4Y9E;xD_$+iWle~Dy}Il6dn zxh(VS&gi08i97NYt^Hv{=hlWR_$@G$$+JApWIfKK9se9IH`_WD{xjxa#}<>v6JE2B z&X!OrETMs4>CCLIvPzR=lQ5bwL3A#~ZF-kv$s*k{n4=(zjPMja77q1xG=HVGo z5+~&$>75=ElWL%f(K=MON31<)n`^vRf*~HWBrh96={#yS98U&)B61rttxq*j@Y4ue z_-pGS0Hn+qYdi#WWFF(I!&!b}i%^erHSr(*+Bmd&MUca%GmBdvS{`YUl!Kx4xxLAu zV_t-M)#4=!n(dKw;?yI&G=M(eQE`^81xeZ3>L^!iv%BK4wRhvAu0CU7ZoY&27mVitc_PNT(Cb0d*lx2!e!BOAmlQ zYHMl&y_Nsika~vt`T!VGL(f=CM^Dp0UrS5NP*+=DOC111YHR6a=KSU5g9secoO}C< zUM#T2tiV+6bg>tBh)^h=&O#&){p!}hg_7CF$E0{x`^2Z4dOiFMt(1Mp&C#p;01-T1M19f|$JPP;x|kEb8y^=#rSQ9ZO<(ao_TBgO;XMqQ ztcXP}jY3heF_fUkyHbzd{2A7qw=ar15N&qZxizp{ znf86bFG%*>@F=~N%y#m0-)ZsHB#Sd~J0u*zz2mttRaFB#f*FCZl;3oY^-oLpN9*l7 zB8cXNLI=}(+B)Y|4=guK<}vZ#+fnkd1qIbq=+l`elJvO_ai!WdEYBFz$d{c9TXs_T zx?A%#Nk5L!(zwL^#87F>UE=jaV4Q;bhjG$^fY_p`mOV?0k#aL%D%~6^61 z9Go9UELsU{Bq0U|k5V}UAHE+w5gOCi-%W?1A^IPw{v1y!jeikBUDbHAwwIs9wU-}G zn+OXcvr$A$`83EFJH$AjBUK&Wl)<_fg0xoY>lRn&u7{kdb=#z3fdVki34pT$VVxYE&(kn>ZHVl^SI>8lfy0#h@`wP^_*x)3drITwV-QHRlUpN}qo=+bl|$tK#( zNV-;70$U@ux#d*dBc62T^er@)&PI0O%_07+Y{2)<94w*e;ob8y%N_i5pAqMORgqv> zedQKr;8FncogrkVRU3gnSF+d{=K52aUVdk0XdEtWZt=EoicFE|u!k~z0`I=zO;K#> zv@vP!FH*Z@yhfau zMpI&Xq2N19r5gFEKl%LGuu|v#+qfpwZzRde26s4pp63TWvSoYnT$;vAgCE;Y0>GeE z2{rt{aL|h&ldEuwzr@g=`Zk{=suO6tUbZ5%S_#Wva!8$G_V6Ww|1M4F4&|EFEWKu= z9KW#lI-;=J9qEYhhx<6z z4nD#5l=Im{&h=V_nX*^X^Xl&!9Y0z{EB?mV%T-BCK)%a;q#A%|t(yuRnmMbT!JIZ| z`rc28(z-B~e2SBm(UR=FOc%Z&kfc(#-|k-j43U~m3cxYSsQspwL=v7U%+=t_W8IhL-z~A){SHmVHAm>K<1TPP6p+{C}ZW`FF2jx{#0yk6Er6&dp}{?ofO&pDAN`Gb|o+jkKIXo;5#o=Ma zRP9j?vkhQJ(CCFkrHeM+A-M-u*RZt3G>}d2A$1^U3{ryg(JlZTovFsJ(tn z>{b3@(%csYc-t$W288QTRN037ygPE{lU^K4eN0Oqk&S)r5-N_5)^zVvz4!C@{LHXk z&zroSq-cf)Dq<1USmaMD@wt1(*#+p#uZUG@f$x(v-h$$v!^(@L;6K6mRcdJ8bhn zuRbs7QWYKaC4sxM>6YPcPO+5_AS{aIE8wG!*{1I`o6u>FFT`?WchA4eo=|~OwR9=| z=)x~F|MJ4|Pmn|jk7S)!ok+m#v~+mN=|4CeAm?F8f#C62=sYWT{)WK1BxGW;eR6L> z^|Bz4g6sAAgeYONH5WOMd&u@T!<@n;r3%WYt7T7-S`@P#jNfPvsBYc3@DP6^_n#1P z!8du&U{H+x^lbAa$Gi*pxFLiEfSxHi~o!X^OiT5_B3Ju$A0P=Qr52-13zd3PBfItK-`9XlAl%>Rm|uot%cHYdaBc3)FZ*_M zQ0rBh6%kX&UC2h~_vP(@6Dk)8JVj&mD^YUTuy7X3chM&KrY;MM=7cx%3%r2lqXHfW z6w1SIUHOn%?F_c|k}UTp=7oZQ;K_P|{JGF13$HbkYnOs0@@8`XUgqSByqrD9C&ndH zI81wL%S$S99O|VNJg?W5#>Ph|6eORSVk?UjiIdI<=Sc?4Im^k(6w`PdLo}7aB{;4J zR?ZFp!vuJ(Mbuty$M5Vb*|yS~?Cu4|?Yz?Xs_Q;eS?L=x^&${gC@g5Lm;N3YQg)&k z=LkzCmCxj04N$sDf8gXYwVfuM^M7(|yRTEgtxISUuHIaTesFv+1Ll8c8Tqzv1z+p= zWOIm~W;$KU{2uDx-5}eKh_sf`KFroBc=&SF$NTjj^bu`zpcA#?v!YPCW*J8K4n5g9 zol*6i_~h_;OK~hv=i1PGPfMcLXz*eyUSHL6MZOT|U$F%niFfEkF3T zt#V`vr@6+maBl>m{vmKa&;~AUdAGiw7SX^mG#%$GfEWCOEOqu8H9%?X4OiU?^OdmE z-{%k8B)ve|Cv z16F@ART0gC)yx)`g*UHjN)1Kpz0DUnEfCk&(?MIojx4(ssocjj8A3g^?Uu2e8j8r> zOIFLYBmc&(`-!BBTT>A0VD6!6#o=m47lDrK0>Eh$Q|%?MP%j_7 zEtegW$P!EjxkcBDJ}^WFmFwWZfL{@ZL_7v;0k_)`=%wWtt!&l#Un0rMW zE0OzeGNsIZyWG-`TKd6kSor8s324X&K>VAYs6H=_dAg+3tVIY#kLKd<+FlRPSB%4_ z{(bQr*)*bGwA|NljNSaDFe`iLIYE_75M{tt{3yRur6dvOp>tME(kK5%e9s5Dm{oNi zPvQEWv3i~YI+bt{Hw;Etd12|M*6x+K`S;4fCW8RVOSdWe zll%0jr}VguFoJ=(D~OEN%sM@zvpYLT{AY&>gMXe6ZK91BD1rt3fc)$ybm#vbJX)hB z&;@uF?lIFFMKM=XUh zAPi{6mhqo|jjg&X(_r>Bg02yUB7sAmZtHl6OTR65{^v3dJl^w{t}&k} zt_v@$=Z3;!n%x!A61HN;vWq578a+#$-p8r0U5sR7BpD-DyRyialcw%5V|qrL(Ai4AjTZ{{P0UfN1xIT=ri!5GLRLrF$HvENwvTu zI<^bN5{fDfD~H2;^v%?XKjpOh%!HGplru?P?E_n&%X_PxZypUFe@T#KA3EnuW^1OK z?3)jqASHg!Gp1Hp`$N;q%(<_8b4rk$-%Gk(9sy{Y&Sg<^y_z(Q2Yy+~G{>r@JMLV~ zU=Z2wAdrX^`z`UbzWR0!@Mt}Y%XIOD?oIBx%EK!3^kro1R2B+SJXN)Vv*TF{5ntH+ z35gabrJWauLaG1nRHh@-&Q>%ecteuS$d}1@F+p%8@j*t%fwgdb#X1mAeC+fTgUHwKfGTEgTtn^H3E9sy2A$VO6X*51RJL`a|5LWBV zFBPw3nwm0O2eQ*E)Ui|xpH5ETf_!IbDQ>4jT&}65{iU1ejg>YurJAt#crB`!7*~Hj z3coL!(1tU&kDQG%x-f9&e^jVB7HO=aNgx^@EA((-c1 z=(+@lo*YDB6((Dz{fx6yG7NJog1tAO(~e(7rOxam{Gxe(6dmoSP%F9mX`<;pjwxXE z?4YEzk+~;(^oOAS4PO7xz<*^D`T~I$bn`-~NwPi%;?^FWA@dlzDF?d)R|T4ZyjwYu zjMtu;F6#kPN{V}!WKs9_ciX|BeY`|1s-Am@8j;kruSTzCoH_1}!lRREK9db~R^1?{ zNT9W&UkY$9|GIaHl#~A{%QBv*F!|cqm%f=U6*5$MuJXj~{L@caYHv7QmPL##ZvWz> zegE(am*C*$5~G?VcFp@SV`S6{MSZEtHyYs_7s7Vz<|jVuJ3>I__$m+dY8=z@Y_Tr3 z=dhl$JaC%EGi4JIyur1bT5%Eb7U|~xhRmKWWT3)Lk2bXs9I(K2mE{UB`5b#iJR)IQ zu%`Z4t1pOI=o+SMWEbDCy?ksSCt&dZga~}D|KCx;0|*gO^KHzG`kFu;g{HP15Teiq z91TFILSGB$sL-vGXoa z*mYtYob94fak`)rGs({rlqJwZ0Rk>H8bHt-st&evr*fDOTS`vN8$HDL%butf4(CbA zq9Wc(FHPU%P8~?as8n*Z%j2G29SA3kib5W6hAM1m2ZUe?JCpy_=NE zpG0$SWoR?;O35aCZqzTO%dt(w?>Y`-DdBQib6;r|f+Ih3f?rKNRVw|uwoRfC> zN4cjxeQ}%heM0UlR}Z=cDdHx-fD6aBTAyxb#?`Hn;b84>%Q;v%@L=Cp)fx|n) z3g%%+`s$F-e(;39f$5g)n1val*=qhd7geik?)?^uEnG)TAsf?f9$j% z2W23%ae3y-!@*c*&-fUHvQ(UsZ=a1Wr+L9Zs(tj!KddO$Vz@_Fd$0GrfI(KQ<D!*`ZCp{CNF02s!Jq zSGU~s1?||3S$5mCTysmp2ARw_Q$gZjNK^Ot3$F*;<}WYizx1ahHgPnCfBjV(r<^5i zYkdiMexq(Y2u6&&xa01ef9J6PHf_L5_hZ;n2Bh$P(a|FgVO-`x4^%q_2IW(thi1I3 zrc~!d<;n86#`JHC!|WoXyj41uu*TqPj3E?h{U%TywS3gVr(pk(z09bbdakOl6yTH-BrR5uUH{3*=iv2vs#jo}3NwEq#9Gn-9PzibIavc*l zyynd1<8!9m^kM0wdZSsgWcl_jZ|*BRje@bO6b&=S`8Q_`huRl-E90YGOYJ>n|Mn1$ z;k4>cg{odWi&a7jOsRZ@ZZ-K|R*a3bv0&J~;lkWYEh>!QCUg zHon<95F#AQ&AZ#(l6F6(-_)CN-P>2EV>XuBt|2kQTwA&81t(NE&jyVpH7;QQRMO@3 zD|b1&@TVd?E;d=*UE?2F7unHm`NBsVWt~i`$I8S7UiRJfE)CfK){ZZQ1ucyNoNXBj zppAz0wEZzo!%GrXrNw=}?3Cf7x@_f0;zVtS^{?~1ms!;KU5fmPF76t!)hS7E1B6A~ zPw0aakC@ZvJ!7NJF~ReSn~OiGua@Eey@OEU-xl3--8Ti8rg2NF z;oF(N9~+dY#S(vBh$yf9z(>L^hD8q+w#d}0IOLx}eBkk})#v|u3*hQ`y~FzFb@_U=4IP=t z-$WcVy+t+c;4!f^WGCy_ig=?}nlispWB-ix)x3>mB)2|Ndlew`-w(M9ptFZvMPeKy zerl>&=^6$nMqAx3^i1HiQ;z$Hlj#a5rFaAGc*%tY;ijkIQ`t=iKm6Zi%>c7z5n~AE zyvwI`$;3jzKA%&6{7+g*$2}_RX7MpK@JcEnu7m-G$H=*^9aE-T(dFFo0b_ z;9V&AOOxi+p_+b3Joo7M-2Gg@20hHFiUnnbJRp!eJdaj^ZOMuM0)gLvAx$RWLZ8L1 zp%MG-METEdQnYaSrq6j-R+{(j2>RNHV2bA|w7>n~!0w^k#5GhdfoUn!z!8<=gsBH; z?Yw0VRiV0`_rr<%d|@5Z1QRWlDFT7mp#*)D1LxlNml&HK#Idl@W<+@}uhcItewz%N z7L4Ud$MC~zH*ii_l!2M|ev4IW!(9H4zTpPISGLk#^ut!%(9KLjhGE3M@8(q@kGzq# zQ*ZkN1&vLdJ_Ey?*Hl?R-$}e5lc9-!L5p^r2{d8It-J&{8;*VUOaHgZUq|d}BR*ZM z{gQbcJRZwL5;Ibny#J0e{e;yXyIU<*v-bvkhrCz2-Gun6#QrvliBWer0!%&4t|?d@ zD+2?$rW~rhb(`a8%&$JVmG_VoW}*U8!v-ixsKIB-SI2d8I!z5&NV@8WJ5{pRn1JU* zl>*QPgnp({O}TlP4xj8gd90jRV`>~R)y0xbQ?gir4SHO)C=^S7TJ0RudEUZ)+k-bl zK+ZZLx?fZ>(cs<4#{4zBGevq7r&$1UZ!`|G>gq#R@Nelr0G83pAacODIsYNbELV@v zu2O-oTif-je+pAn%qrb`*Q)yzQu6)VZ~hZ7(QU2B7k7&fz8!V2=a3W~xA7w2<*uaP zGhX|W-5zK8H-G8t7?Ku4g_%V3jADs+0g|Y2^dG0jX-{?qQ_4is@kuks8!xTrQ(hvJ z%vFxyc)=@zD+Tq$z7$ff$ikQ0k>S12EJt&vyYmfXLqcZeCB2k}A^nh{F{&mjMKlvB ziaLol`&G>!UPeOyJZ)tVEKe;5t~;(B&%TPa9;t~c9%eUa^HRV`=-oq~2rDuvADkrP zS4=N2ETwwHNeyhgok1scx9f%!oFWQ#(bOYqwa6;#6VQPhp{6`19(EDIv9Y}kkYVZo zU^2BDB@CQS&i*DDo<^X?&PC0GPH~FhF^d?}K6Z1+!s&vozU}h#lSs1~y)-rr%te-( zI?vI)H%U>8dxnfEcD6hu<$~XFC3elVxC^b;bK1?!fU+z052U{{y_q2c%69fL-9qEW zHDh(>v!l4L9Lb1HcZnGu3U%UZ%a2R@ZZpt`1RuOn$V9Tp3VnllXY}&zV*YeP-f~d7 zw4Hy4@>`;Nz=QHh`pT*%P-F`HW8ai5uJt?=ruN3pG*;5QRZs{*T=aN?wd;zw;moRG zBOA+wtujYwRp&!rM|-D_^LCv(%Hi)duO(~K0rdew(gZX8@$xV`7k^YP%UOi?Uxg1 z>$D%`qD=T~a9T&;9Dn$)f~4R==yvSHmxqtVE7~eJzyK}`QpKTViX>+-Ef86LuNsnN zNM*tkH`vpFL)b2OpB1U;i}$fK$&*W-^XrVmNz2GDyFlOSpnT55-6|U|@X)vh2FicR z3$VFfHdHt#mweXcnl4-za%)Vn*ta3?EuuE@5GSFAiCr(^6}R|AQF8j7ET#iHA{|{7 z0mk9x$s02==Q6AM=sWk3=ZfA*I(UDmEhZq5RP^J2%Mg^f+KVgfx7Bp-M8?Bh4)7It zYN#4^l{?mYqT9@a*q_n7b9I6}QbT0Vl|?znAe}RwwLS3B^6Sq;;oZnkRrI4i;*xU< z4&J5)ZHEXOG?MR!tQN#zq|TA3{%J zb-&}^e5JbiQgRma25m&3Zy~V4({Y;4MyyHAh*25~zdA4sFinAUSdeAL*DUK1g_DLm zC!HAcaTye4$82)8kFtw~{^DpnjT|{bKQ-PGW-i(5b}T=5P?#it=F-y{cZOK`NzYsi&dnzdLPCaa*Kf=gk)xFT%n4z*zSnvf5O<^YbVZE=b2 zv-kw}+1$N712-b6T&)}wWz)RmdXMN!fnn3Gx)vgV8Rym~76thT*L}cSEaRp4bCQ*w zl;DPOfW1UDDE+JeBuMvFE2)^V?iMEfe6ol2znfg(AhVt)KDjC;0T4EM9?mq z&v4Y3?flyp%YLN;>r@g}m~AQ8*@yY_;uA{^7Q-`b%BA0N43!@9OdyJx&?N;@3~35j z)_g>9o*_-^Oi3dOE^bi^xraM4v}MV!I0P6rmbUfTzf#X4K?`kF@2olFmjcAe=*Wp? z=L_Fp_+TL5x}|fgj@OEu9%Y7w+!-R;%t_YY_mXz8mmMOD?c*v2l!)YsA7D}*f-^o6qY^K8Fr#NTDz27+M@vJH#pNm+)@ zxL+yN7U6ry}`V9ys&Cd>3YQL{@5 zm@#}TgOaGq8$r&5Rw5QLlf(k2>_hyoTqxIqvl#Qum5v^38XCW_h%zj{ZdCvcY8y(D z8{R2Bn*(UuwcaRarA}7^;p!J=c^mzUb3W;FY437WYR&w*ofV{oZNjps1b_Vx7o6hD z9PjOUR@X|Mj|hLjWd5*gfH$NFHA0&pC}o-IQMn>xoAcq?!x=-kI8}(Yz>TdE3af5m z7dmXOSIZCk{>@GfGU-eIh`O%C`-@LE`jWi*IoDQo8T!PhKxF;bTU(#Kam=;aRa#v(62#ePzyD8Ycc`nsp@vbA>#FwmPnh z*>8N{V&giK$h5w@Hq%n2HOe!Pt%N^N!QyTp;A5H08BiXvWJH8Z{UJXB!*&a6`~`9Z zqV6OLPoJD`@vKmA=dtbu=Jp1~*F#)1J ziTGBEwe3aH&9AP7h&d< zzB4)D=2z24js$He5jba|TTOrEOn_Zx3n4)G15>yd=Rn`Ml~BB=%-%}7IETL;+Rk7j zhQM#+`Y3QlD}+guAJZJ~*$WzLVTr5$X;6g9E>;t;*qm?f&ig6!cJT-k}dv>RuL9ZY@93H0D* zjiHfop7G@qi+xlh-#!#$6x6I1*Op~}^=y9?=`nLK7_y^J`^hyv zUcx@X+svGB9JSDs1<`U%>~31)vzL@~U}AXe%@lVvt(xaFudNY^wSs4&J|{4) zeXFi17&EQ3gFq|2b)=79RNZe`vX5_naonD3{5-Gt=!(WC^u#iAZxI08 zYJta@TvwSPb%Jhh=W|%qYIe_dbTqzrEtl*G13@x0F=Z#d@RPYP*nZCR|AtyFuG$vm0Feu9Lfv~gOV z`FfY25|l~x;(7D!08X^(+rof3c+teos%Zt2=N{#HVK?YQ0yZ0tcqz+xikwkLoL{wU zqHT#-mXyII%ti}d6S|^cOheJyO+`$!;LbpI+m~4xD03jISbk)L^)Qtr2p;tw@LzAZ znfmwWuew`0xO3d&${#%uTBZ`wiob|H#fGylpfFYGt>|vD8L_~=U^4D|Qn6zIq9{a3 zSz#^Wkj{;(G{!REVc4OT5f3XN68MltF341d&7feiG+R1^F}4Dv7lOU#>7t@oM&+gE zyqT_Cd^nt_4R13tT_b~p8(cY$jX%~2PlNweTOTJGi=M>2=DqRJe}}zPB9`w@twLRo zHWdUSihfHHBq8GJ(_+hRO?-s0Ecpk1!+UyrOADwxSnDcPq$f%bAj55i(AK>I=;ieF zr`yG{!oo!(9>(?18v3p8{uB9dZTGP9wWG6tQsxNGez*8kW8^GC0O7EhPLs~$@=SX^ zM=_M3zqA3naAN8f^4-w&PN4m1G5TMjgRdGYOP8~`T z1_^ycv+31r1In=$^FonS-H!33#Cfv13~S^~=Br_Vop8rJw@uAJ)a%|}40zr;TRbG8 z8F}k{u{X^RH+coC5yvQ1=tRl zV9hnB<5f%2B~+Tvvw|K*Y8u9hu!WHtB~GVK*k4<`s9#G0f08~Zrk|xOFcir*a!Va@ zpVQEIkW$twhF;Hv8!p3qGjrB>`s2y2RNFk2v?z36t3U~)dZwXp|LRPO`F84i-ZSOU z`U({VB#a|Tq3FrS2^bORP{ybK7MAJoja2x}sm!?JLa0QNG>19IT^`V|%pqp3eY-7` z6x6Mtw>A00_|VYO-tE6 z8K9~}i)-hVpu#E>=XN^>mG%NmOmU8q0VTToI4>5S^^3LIwgYlqE8IF{EXpZT2X8JqVzn# zfvWwGw5m7?Qixuug*I2e{#7= z`C6=3o+2eU_C{H96fF+ks83n!v1J#Yjr^cBg^7IC%43+vcZ8>EW{W>6XR?^iBftbx z?4piK`=Ebp?7F>h{)oyh$< zt+}6TjFgh*_pcU(RwUhZH8Vds% z^D~})k`8u-36a)$%}2Ivh6wQT_gxmw5%hOgp!99&T+%a*{(6Gu-CuRj0O2Wq<;_0#PjWI;DG5UP5oyEsmZRni8eh5zsyjrZ<}VqjR?g0K2Z$z1lGzrRvo`8H1`yJme2fohX+-r~TTxoc;}w z5y%XQ@0L9#R0Zd%*f9Xl;h(nAeT`c8MLR5xB2504Q5}%Sa`M$y1NeTR$`?=)3!KmR z6r9&-V)lkTYz}OQHbZJZZ#i~Oc;vl~XiE_zCoWzQ2lu6>(I#IYfHn%fU^E3$jGi}p zhnr&yQ6w5n_2}O3O*KUAD}~Sx`ZGk*^UKQl)b_36l5%XnU}LLaI-S$LxRPa>I2>HR zpM4_O{vp305!_DA=BHF7K<>UvqBP;7AGZcWs%peF-+#O6TyH(rWmA#{|_Qlc|sF6FYz$G%j(Wp%(0Of%@A;E(s*jTmw^MMKv*IItL_#O5d zGvivoy&L&EK7es>GFC=9)lOZMNU#)zib<+Czbt(V6qGYWQyU3l>8X*G*-1K&{8fPi zaEYZi71nX2g2AH5vryu2E=>0`4rZPP+czy+X?JQ7bt)~-%ci=m9$b?v$%v1=s@0(# zq9&_Y>0dDS!+UV$>Q(^S3~a@$)QU8H!2Me4t#s~6)fI|ZcCU{CTEG~$pexaO%9RhQAg1r}OANVeFxU~M zx%Y|t!0bXxfcEdgcw2pzr$mmP-t_e7_HM5otZalEP9ZP;{+MdL{(pxwi&#K<3(rb> z)hWjY&*U|^KErMKEU+Oa@B%MchNOyj1&}@NyW_+*a(oI+=XQVP;GLSLg~5=vBk{UbZ+^Gbp%lmZZ`m_u{w8cP zuGDTC#_Q*p0SD2l=~L-F=s-wE9%`z<`eqUfvK5lh?>yZb*%}S=R(g5j(^eG?{%j;y zpJiP>BmChTm1Vv+qHkp8(V##)D;XsHQ=hR1iEoh57lE`>SKsjGFx8Ve6B%0ECp|-S zItq8-n)~r(MSh@xO1(X-w!A8=`c!Y_7JIhVcIlq>bl&U6bx)9-^ANnTE5CSeymYjS zw2UJfAoa``h2F{@Zzl|yA5DK=KKJoH=ii_G;cu)*Z4u*gD7IS(6oup@EUPk-4FTg{gtL34nUgHMX`iHPY2cLrs*ckFWUYth`LrYtl;cqa$(f4%)Ku!4>j)XjDB4Qc=e>BLaC5bqO|eM+ zS%|g`G`^^PSXxXY$_z+wj)Lkd3`6?~#FP@0PD&iUHjNV^=7&P^&;SZD6ZdCaacI+{ zl{Ew9>RXcEs=asaa@O&8mT6$!eM*V4B}Eo`?qp8}&+4AT?=BnoOU*jdGL+4l8m=$i zAjr=te4n|BqJwTcueXe)BPQbj&CCYJaeE(hAhT80tHT2qQgEJQyOW7{y@t_uq1cSp zq3FHp;9USg9JoHT2{{RJ3P-89S;_f5E1cT6;}Hmqiq9oi!a^;HzYd&5pY3|0Hf-$f zQ&paIWhv+tKQ?$8W;EIV$DD@G&ktpU64yi%6Ind*+dnlW!7dfrUs_zbAEntzr4-Jk z$zB?u@^oEx$Z|K}75W|rZ(}cOajlf0<#3p|t`W5>fO;7*cPQ0U5z$1*@S&F5yQfW0`x1eiD^v<(L zIpLv0qF_GAg*fxXv-;0BK{~^Ha(I$|H^*!M(sYgwr=6|Ckl~X@`l|}n4_rkCJ{?6x zlb|%gloI!E0|}m=o#R4XRGRPFuyv~nyhjqdxzcm~P$5QGAz65l*0!7iHZo3`pJrSP zlN4(AA~x=oH#{b{zI)9x%0*u`24ah!=!Oh3C_FCNrHWpOCq>7zj(p3lU&g4MU`i+* zaj{h!YiO?nVt|SnZ$U&HMg~7l!xPRHmTWhVoN#V?;JeYnkknwxC#fSRnFOz=R4)HrYn0GZty?^xnc-CPSh*Ho(GmSmih|y z3cWjcGAc%8+#TRDYFcz@211OIJZ7y*Eh6A?Wu?Z4Ar2S&H_3~@ujR+(IKJE!v;UC5 z{qR4T=?Qbk9THrlZAeR93%Vi@T9C_l)YV3o{^PYCe~@n$JA6N}AFY(N^P}BJWLz=d zLa?xuuOPnEzlgzuA-!ne(iz&Qq8l?#yU!T>>wdMb{MRO{Hcf;DpRs&Ce5s)P-&E3R-hm9J#btic}mXK z%Xj$`#T>l(T?<#V&py3|Mcw29l~GJ%7?(rbL%Ta^YJA!O#U*+bTSwGaH;G4spL$bC z&aK8hwo_9EeXv{8ut37F{Fr-|FpFOEKR? z4h^5V^4xK^MQcT5rFn480}E^v8BSgZj5su0NUfV+p*MHmk5StSf$gj%F236fl`q~a zVXaFnxZua~^WniDkQtA;MX6Bb@7qV1^+ATbL@)NnT3@IX&R(i|%R4#8r?gej00dIz zRe{HPw^tA33$VUBs6%fWuyCoK3C0{1iL4BJls@h#)skC#sMhq4S#0~-*c8%r^w)!_ zYp(^!A(0;!Vmns~Gcv=qY_e=v#iW0-C^(1&ot%*gtC$>zXJ?Mc_Rgb5k-_GPr~OnH zpMt_OsVSSvKXjR(k$A&5QNK{(e6PTB_LOm8CXDgM-m&d0uG$VyMUJi6sA7Oq2hk>| zpSY1&404xv_ePl&5z(cYu6tQ?wMWSNyP^LYed3v@L<15_K7VII;LF5y=*7?E`3{+H zuhza;2!Igvz{LkU*o6b+h-Qq{38Ai?g1^D*sMf`EZAE%bO|Icn{)h}t z(K_@-LXPqWj7B=jM)@Wzk7tMAq`x;JWOhIB#_~dcHFK2wPb7upaKt0}+Rx~J1;~de6mN}fbsTLaqm6qpi zheQV@p?N{yN*lTY941nqAPsbBmt_me3*QqiD80IJ(MYz_H<+BroZqc3Qw%akS0R z(h0`Xm$;0~2235weX<(unXW(Gd<9s3fuXRf{&hs0M zasx}!2@Tu6#MA8jDa~u!+HYQ=?#~F}?yZU4NtpExxAdhSaznAXras%~`5pV;y!yru zOzuB`@qF8w(K|T9XcjYX0Ov&tD`thxM-&98AmPS5_Eq+`--0GfZ|S^m{tg^iQ*eeA z^e9>)`jw>5=Uax1cQ)8(G<((V_JovmRH)h$XU)otx@b&GgsK`=_9R0MAnh(_3~! zN-lQ*s&_iQ17+WzSIyb+a}HNKewz>Tx5KjB$jqzec}rxqJ=okrFmqw`c6BAMQEHAq_ggi-D9&Dh~Rj4{7*;gcOt4V-i7{cqsrrcB$~;HfB6c#WUyT-iWX z=_!xxk}e7yoQueTvo^t<@?Lh*O<5@Qg`YoqhjKsO<20k}VZ@KRIxw5tb$d#~JVR<8 zc}p&&xV~^B7_`YG&Dr_5Xv77do0FD8FgN`2Ft{DO4*MR7_Ja4)3Jcm*+1KL5ZgL?j z8N6R5(`Z4Az(`-fF{L(`>h7+e?K>m`RkKT?s2iM@Ok*@L=U&@lBa}XGZdIF2a~0)f zlHo2e62+0GR?tz%^d-p(B`4os7_S!9zz0{9n$S5KyhqJxq^xF=K`HlF2B~`pBlBf{ z7xgH%Xj)c6OGsCO|CTFqzlw-FdOS8=X1~xu&#IResOVxcGRt>jjac9w1um0Q)~7eu ztc^KmGN{6Tt?IYRle>`cvf<+sQL|b!6Gi_ku>GmjVTOICiFboE&o_dcStnmwviT6L z%XShv3>S`wU3g!NUf=&N;Y za0;8rk6;T^}Q==iumUR zmZ|cG-zf{>Ux!qSCef$H1lUgLqR`685Qo&)dh}4I@65(zX{HvtIx7Z?LtvbDFp6Mv zbKORuVSmvB5TwfXdl`;e71fe{=edon3eJH2g8Vje*<}W|vODj%)+DXS;twV99FWL`6)TgPH_TZ;>H2lJPE=b{7lSY{#W58|Xhu*B2; zO3VA&@_>BH7=v$JY^89cEl!p>LK#&_=2Q^6MWACG_+0DHzV#{N4=^E#S45%KGxlA> z@WBWfZOgVH@X*S+&gN?G+-`?_$~CEbUr2*VGqP(5go0&&!b-qd=~;m&3h^Yr-PG?R zb;RR~O=n?$TqC>JZ&(sAz`C=l(bfM3vp}*iObc#YpUCIaq}ddI)O{^W{L9?6Zi^8* zPQEDS`IlXA+n7lZ<@bVLvybS1W0-g*lqZZ3fnT#0**VJ$`bplb_8(EY_;7hhd9e4G zTXZAm+C*qxi9sxLupvvGp6cqb?esZ+vZN{Mz`V)wKWWdPvKb2E=>3m%fO%z$uT$oJEuqoZQJr?DR*@?B8Mp0wh2{qk|bkO!!xzEG-{i!+cdW_=eq9HeB3V}r&) z+WLs1RJFPCJqa}9972^A@2ub>Hi;vK4*`#XeFhzY1pgts|LfdvRQ5JlPdfUs?(25# zv413Nvc+KHvuJF5bK@?-%pKX~O*`n0QTLYX?`V*r-ez4WpmMS%qFuI&=&wRVwYJ*K z5L~kAu78eqxXYBt|9?tD!T&1_!hq6X&=$AJs%xZYsA-_1t!D~+Ff{|{lE%6^`UZyD zdWJxwrV&tMVW4lSr*EzU_#kw209lambGR=hQ6YIf%wu3*Lm57VBuZMh= zjbhV6t-fT5vSfS4HM{}$n))+AB|go*D6YH%%`eaoIi}WxlnE;e_AIg{Lc>rr zBq-X&07koZrkm$rGUbt({6hS4zWJ)1d8bJ5+maU|;gL)iPaTt2f+3D~!}gH;l82;U zJ8WqJk$~9*V#428`zQsiM0CxA8aB^zuNcSswqI#ElMJEEze1U@fIVWYs8Ho2M*AO| zrPRE=fM3bRCczz_5yQ{H%0=>sUpxr^g>Vy(GZN#>(v~m5Gg%HGW8p4{4E=)lifz&0 zkRgoJS*F?*8n=(;&*g^BW&`Y9UwolhLtr`!9)`~)EM?%vCOr*#PNYA(Po1~$G&Au` z_!aC#9b$D8*yVmhT(I{;I3N&O+3V#&lYBW?eI$d3SLfrlo!c#Et=GEU;=RbJlhcIw&y$iL+oJXE54j!%L#P!s>7BTZNXOJR-L!>{&V0Sj^&&ri zF*0PmIdaAu+a1)|Q<{waRGchuWjLF7(k_@)Jx+byA_6oD%5>XONT{=<1uc;2 zu80h+_%B?8#1L7S9eByyY(A&7sSMGv3rq<@w9IF(%*|)mjo-`JBCLDjDil^av?T2- zZ8*&rR#s(CT}fmax3|*X?oJ5d{?ngy|LQ2-i3DS@772}~|4|SC7Y^NyUtgpVPHBqq4e9eveDICLIcqYr z{^;z0SGjuMO|j0ite=LSSB6hl;_P11t+z2!rxd=kwul&4^}if(9284tHE2!k>|3zy z)wPq2n+d32ta-koy0!*=#Fl=no-0Cch`&O3M|yomFLkswrQ2f6)d<4DqZ`XGhMg81 zVc{)nB0Vq49M6LExa68~L5K;zFQRJ%D~qfgms@83A#w6+S=lq`0}3DAa}kNemv;J6 z(c6HN-SkSUJZaJLrqcn9&10FJq)Xnh2BYPW3U=}?DcAaVH`7SO5>ijwnI8xHoAvsj zRv8m5?r`&5c4G{uNw0B!*f{bO5REu=K%XktNzvYMn|xNXw-xmwG5T9_b#)GiW8Q5~ zy)lsZwHzsXv#7F=wG&FYqNQ^9>|0Gy3Yd%b>nATy*>J`2h8pc9@$s$ir`g}yz^4#} zJ91#WD}a%1^7P6;clc99ztJg*iB_zq`i4yadq-uD09siPJ&+i9%^;C}){+$JGiWQG zcA{GDp{c~;%|G)`;dc_T9rnKd6p2;;xw;0=>red0D)pM`+=X6vc|hosnf+h{r)Kc< zmM!yikgQ@1r|hJW9xKh;pY0__@6ED#k_4OH>C19rjL}b0GKHbG=6`f*v0^v}8L@PF4cx)x8t+PG zg}}mozO9=GY8mKGvW|>)6_h(3&WO*W3WPrydCNIP7F(51dg65a`gSNa?{H1x8imm!Gw0}#Du+{7MVf7i2b~i8}*6CYA*=DhxkX7bt3O_6aFn- zepJQh2m4hfGU>0ZiHuf_P2%#P{AZ@NkH+GoqsA&R>x%pHXG#xjvX!%AHvD-!Z%oQ9 z*N1?$$;G!jU585i2A=qXy`de?LV5=7I#oLcX+tf=vEufn(`>DthFs%~Ycdk2P`FKy zF7O~El}dyv*cM8T_OwBrh}OQEeR~i&5;lGRPO`8K`w9sQbxMA+k-HIoq_B*U4&u+DL*z@ebpx|b9^om7anjguif{0%Ja_Yem zYoJTtJr2U*ppn(hTW)rBe)=9(*FW*$VKb?=t*7!{CMK+QB6 znl|djN?pn>U0BlIG|y+|NHoSP@H01uj`tMRmf5%(wDin$Bom$sWl4Io)Dq`4{by?H zaj)thRUR1f3g6-yxp1-oZqK&3CgbHg&efWRZ$Q_P46>{0X-~llCYPQGey4nZ-X4t} zOG!oDOnFrWY5HpU*J*-_V)mL2loi#}(uhf-e%3`W z;54eCf4z)9@{bjA*bnplWp^&OlE+nhM=Df$R&A`Vo1w27sKqmaJ^l$@6<5(3*_~ls zh^x4FjN{(zv1~TZp-gC*&DnSr*qFOH_`(Wf=%#S9op{s=aV!~Z?JurXIQf#Dxui;K z*)Jr6h`#-x-LZ-9##L~ya~n@rLLbfUo8C9uWgvOhU25hj_?;c3WghfE2D%lwW~XhE z<4CX5PM!v2J8EAF=m&e^av?7fvtQ+5vH=AUyz5~i5MkwI{2GzDc+l0gnExs@;Q(EH zq^EKBncvT@RZl8|dl6rENiHA$KGSlN6*rr-?$q?YjYy%?CU^8=#Bnl0nJ}XRK!|ES zgogS6rM6wwrRtRQSQ1ZsF(xIzSQVs{8KxLIQLS!~O@P|Oxz1*-*q_MK_lBZkKZ*UA zDbz;K(?D5}zRRFYWyXIORA1$iRi?mfn6!2{_lqgkOsLBVdlfmCRBDc5lT=!372L+* zc%qxPGEu1viWv>7BcXcQOXkWe-LKddfSh7Z5e?seoo*uzi<<%-^GG!~v-pBI4N}_6 z!U{$L$U8;+IN)L88ltJp?&}oHMh4j*ZZ!ZIwyBKe3L}u#NnzsC3Rf=cYG5;YfATN2 zak`X`sdt&YOh~N}Y?uRO{@bL&pi<-Gv{6_EQOB#J?j6;S7`Ogo7{0}|>f)aF{vk@2 z$Drm&%lgaefy)-c3TWk_? zSq=9Y^+afGF7QeT>ZoxVY2}ZeWByXpgg5&8mQBo-qe<>2FBLrYf;r4?z_XQ)Rrdk7 zAR0h$LZu^*6(TC;$SYnT@~}%D zUKzE=)iaWVX3^t&MtJHk9|+veDssb3z`6nxKT#=!(ob4(x5$O=C5oOziwL2_e~1y-MDWK+~RRSw5? z?b)X0W?|hG64-(oN~!zXH5!-H7~N2E{>Bt$$&aIpsQ;4f4!Y^{JtHR!|J=8JNh^_O zb(&-mEmAQ6+(G~`1eihvUk}#2vb@X>mOhl`Kg%A3PH|f`@xIS-iP@ixPqF2i9Bu#e z4LgId51rBP#=O&uOhDDBrC(j)R6eZMCv!S&&dml&ip-ft4qRvQ!I7ScK4MmX`IrbK zqMFJH*$qCFrRq_yth+`{y@z|>dbL9=G>kmi#sO~ZE>OlOT6w0k{*w8qemo)SE4Q-J zBbT@L-36rqFE#h~GQlgu&!2SDU;8bpyf&K8hp>J18^h-@fF&{nNGt_6IjxZ6Hn6>; zSgN98!Tf6}?Gk-%mEehxqH+<@3d^Yz0fpF8YIy9qJHGz3mQ>V!o$>dUW&*Z*_wiYh zREqu-rNPZ1)09tY#u8)Go%iMCz~WO_VucDp!YI=qpIM=&w}5!ATbz@%D?)lzM`k+0 z;trN*YTt=y!a$0-vCX3zJN#*-F(dnueo(%52-C+-alWQ5jRoh_vv(eR^^5n+(Vt}y zzauE#uwV(>9a!4;$RGi~-QY@GGo`oHIxFmaMOdMhk@fXC^g(}cBr-jQqVr&_h_~Y% z$~|0WWnPizP+FJ0MFpG@+`w#=UhY!#$z)Oil6X6!{pa7CP~M%JO%DGhO8glyFMvP* zmiEQHNTb=XSmkT`T(TOfka5zF2r}lO>vB=#z!EJBHdKx%8lSmNzd$w=@MM+Qt!9^h z=&YV`;kC(Kk(o+P}K-w})!_9TVSh_1lgu>Nn z;w(eGGvs9bb!cK_;vzNwAu?e3b(Dp~bOz5pLHP==CTTohtp~`=m+K=4|PT}Vjku=%a9L1%v| zqkpZ~)+b@Ib`?Pz)$yQ>=4p@cf6Bzf|0@$BfHG0zcv1LCS6|mqTVKo2zyQ!53=9m6 z4fT!8fb@ldk-n}e(12lPVPa@vt`D#w^mNVs%X-57($y^gD9cn7nIoE~dS*iN#lp1P z@n;@i{8`V62&&KEmAv(q12tQ7kBlba8TyIzvbJBcEa?#g4aaWI^}$k8D9bi$H_iuQ z*Skahw)u|YGYH)O#@Ng?d3nh*d@MQ!u1XlgG8w@H;H52Nhq*cH1-r6rF!F#T|DG{k z30#L~?|k9$;!23rVXqdP-5deb?PkO(n13WarS0Ek1U(i(@5{eq#rlX^_B%k}<+O)4 zZF(9|*^eB!2yJ#IGhb}<(-RM08XWv<7Jj<68` z4Bw-Qn=bJFq^fM;CajS}j z+sX`urE}%}oV-~Es4JBW4cLOi={_vOOEOw7@lF`Weg z9&RNP|CEkn!>bH;lGCx>vdXseM4AOr&l={P&Bb)<>guHhgWb9_gGus@sMY)96K+eR9ZAcr6>fYZ~d7%5U%?i6R+bS5znV|^nmfp^`$ z)Oej{Y=D)YO5+x{+$9&n9!Z4=?P=MTzSiBr_%R##SzygcRB}Fi-bil(pIC+j*3(^% z!TGGX6lewK%z=X0l%+khcq&`EZ;4Y?zS`}bx?DfIURU?ter3*)E)B<#R`s4!@wk!X z91V(}kP(0&jWhl-zQWqY8lnCeOH{a@9U(u`-g++0U4>+$&OO0MzmIK<{GUw-4hp!+ z8rBa!tQT*}>XpCW+pMzdWa8=l=;^$ZBF8cqq;2RF_)t{Vr4O;b^=%*P(kNGJj%B;# zoXIn1c}}qO?v5zba3NKq@qL$jZ&0oxBJ=+P7nqIkXH)Lh9B+Arm$GPU1+$l(hak zMz8n8Y$2a zq**?bH-W0{DI9oQls6VzDgA>AX@S&+gmT(8Cs8dq;;ckpw9|5+>(}L`wulDEy^1$^ z`Qdv5!qZ|vnd(8A=RO>C+mE|`>97&{?e?3Hp)d=gW-8#}OVwYN6qsmoz${XGFSVNo zJ|XMy6~#a0+|CehCym4zCWEc41OIYJD`UdfG~`SFuClhO$aH7H>Z1egI`mcPpC)7D zuGT*$w5x*=Z|Sk&7-hZlW#b%t0FnY=i6#qbn}rq$Cr-L@L<@tiQ&z~Ik>JV;U+JBG zUMqz5JqYBP=#c;J{Bk2{UGYz%X0AkTXt=A=Xd>&ZHZH)E%-WNzO+i(g#&T*o$wOEx zM&4pOA99QWxRyDgLdwdX$QB1>$NmVV#adOAW`7D@KfW117eOAfTF`l-@SoJ}tyGgb z%&y5~GL{y}3AkGtVq!Qh7#|i_^jwJ=dYw2X|BF8&vWEgLcV``!9lFWjq5?A3z>AqF z1gko*(~&-z98X>#Q`f>>7$#m@F=J#ozA^pA?$;c-FZq0rFn?>pPeH1zY(@8-M1qd% zLb}zJYBLq2^kg;#-z3on|BpS}Mff~Po;ZP5;GfdN!*FfDfsGp@B1Hti7{59lh%B}{ zS^Ad{D+Ha|`WPSm?VJZ*(!h=8z!deHrA{(J#C}z+Nb@0Hu~f5x)~^MHDnNwyFsI3K zr}4BcRvC$w{w8vP(pi`Uvb+NM8jP|%IEy?$h z-=hn1L`A+xt#LhWfdaTTeiRzK1|&17Yhj%?bDIVN%p7kGG!tM$$)$SP3O?G-D!2zZ zTG48kfy^a0sH9vUZRl#ChbWj@0Q@E-(C*wz@p$K~5zTe9LI7EY>ls~qz^JX49vzoQ`T7yo^NCPbWelO8k$83LHrRi=rir^pe+fAbj z|3>@SLg@b5mML_jy`t^|1}KhhL5r+>p8RQ?XLA!-WfTbV)(?-vpQ1`PeQ|BxtGyuV z^E(Nq{pT)eYja<@A-y|5pNCYV1#a^^=BZIoVK+%`W|E~G5VZ;{o0Fh#IKy0r_m*a= zVe>+n`=|W^Hp2gu`%WaH)4OcUi1^Wc$LDjVR`l=RfL>uopp&Rz`>HhP-d&)huPc&B+T z#*_=z9N2)v7zW#F08d@N8gzl+a;*yX8V_~f-B7WE85cRtQDDTTwiG|dvJKx^3$92s z^&_7dqh?IVR*$u4pppU?`1U*KL$~{@QdRz61sQqPFWN@Rkd)Wz6Gn4O1amo0d#Y*_ zpar>@4p#kaf?+3@OuFIu#&bn_xL0>t2VZy3xc3I(A<|@~gM2qLW< zybiJmx!jpI4OnHJB6B`@wwx@(E<4Rv-E3M98{BGz>wAuq>s)#S4J46|3#KGAaUjXo zb8p!s!C2GG*&nJbdcTXUD)P2`^eFQk#>Ye- zdUZKLh7`}3kQOR#Rgzs-6y_DjwNzs5Pxxc%| zaX^M%kYL7N4;`Ou6Ee1p)9 z7FjN(!~0K04gsjV&2?V()<`?;rY}v}oI&?lzj4P$?UPz~G1rXq z;3KVZMd4N$g_N_(ptgaVLq#u}h!`A$1(iFW6@dxpBy;SZP_qN*Hgb4@NfaoG*YRO% zg#h1R)|XDuz~Qvi*XT9z#OPak8|A>mV2L#FoL%C4y+P&Uj}C(i(aeeh*SXw3!S|q5 z^RzT*NzM~n4$ccUJ_bWPV5&RAMP5?-kY&Mm_EEAB3@u&*1vjY~(zv6zbontHV@p#+Ccss#+(mF-fdzLo!ufbZz&ozoBm{@iUtkvL(d&CbUBOK`{j#;BCN)Yea9|+gCYF>Nk3Q|2fl~AtQbI`QUmy>|S1gZHbK%xrSQC0BIy=xyh+t#~^gU4&Khe6GRb%Tbh?l zO%RcflFLjj$y@R%J`(~MA-f&MdPIU57xsbfm?e&8=E5~4@30yV1qui$-yzZr|NOun zO#@XVtAp#Cg2Zrb0VkZRU_pTEv+s@w^Vr>Ot{;4-5DTcZOq1Obs&qwBxpWuR8?@P zpd<^vU)UWV4q2awMn*KMee_t7wm9r1A$H;!$ul~h_Kaah zcwFbhUHY3>9$}jC$X_T;Hi}GChGF#!V_o&9!o!%oLGh&K;%l#GR}jCtT9Ze`+-4bu*+f(-le8KEoAk}p0xNqHDc za(_P*)GEl^C>;uJh&YPsWw+4Y<{TK*{-J8EN!r66=80YXi4(EDcsnrma>S;-cu~2@ zueTe+8CiDS53xeGgM+smS(l&QQO*fETfXFP|FirV*@GB1C49~I)=%orWVI)Y zOj}vA$ySF|fBr;l@n?P;+bRUs2=g+u%16MxUla`fF{F7W9}_wUDQSCL=6CfMdr@M_ zORxA$13Qc&#d+=jU1eSHyt+E#=hvVrJFczSYrchOQZwe*F+9|y43=G=`B)a@Cto6E z)F@!)Zz6!rfX4lMkM7+(Y16-s{7iXgw9hQrcyT85__Qo$SD_@r5MQFGGV7D7bQiD= zDd=$85=ZpI2)m-n&Cm!u)nY|Yg0ROKu(T`)RHrEEn0=xzGWhq$O#dQD&wm^0{{)BE z{}&uY0l~pjZ4ipp3{V=3b+k0K0k|Ykt7)ub48R|ZjSRJc_6u!OU43mM6MbVnV`F0@ zeM2K-VAskAg*WsahCQ*wvQ`}L2THMyiAU(bSrSy}32ERp>)4G>uY z@(5BHRMf@=NTE8ZwChf?AHKX#pTJ~{lOs*nnrgAxe#-riVWCiVGUvJQX7i2;9kr2$ zOZ$u~8BWkwY^t#coA&HV^T-Lsy)ShEo}sJdaWRsbm5@_h0NQ&DjTKU$@@#4J{cXp0 z3_B3313Aa@%ifPMVOTSc!N_d+;(#0>5xIVCS)8pVf3zQ3y2GVQb5_XywXgHt1QMbb zmuR^7KbN=Mv@j9Oh2+yS<&Bta4dCDbok+nE%0xhW4z*ZnfT|Lyo)toSU=sXh6bGpR zT`m}b%Uwj+><*!?RXWKN{n_G;v}EI3dtHW&&XR0bYn|ZMy_zBvR`iAiwAZfK+Dc4Au;SnjIqG`=Z$okTIZ=GNTU zS@MA0cJeNb7IZp%oik4=iM-$5($P}OTIUw0c$Uu4_Bn7DnCIKA2v=azk%8jT4ni70 zQC%ckBA)G>&=)+3%xq0$x%>oQDZrbgwL|Gmde?TAVg7swT~Pu;po}xbqWv_~YrtkK z28-)Y6>KgYQ3$uk=vh{D&ZNMskr)53dP2;XDJ$3QKPhG!lFo|8leIgeeXZg)1HU+C zqm7D&e4fnJ%~$(_l5QMb>f0XUjmm*BpSeyIDMF`LwMKEk5#1?&X^TOINFQPrTjs!^ zkqBE&bpe(&Q2gXp2_v0p?wph5Xv4@h|7AhoEZ8pU&Rx1PcZH)N8~gM=KWUe@(VZ*@ zk{M2^=`zc;6JBVAqwjpf=4`HWEQr}t?u{v@*3dJ9wi49;Ye&xv2{0R$$^FCK+cM|@ zb{X!k*A%Ifw6Mg03Y_^$^Lot_n32CLv`!-Ij zs}tpmfB-^H(Vlex$sjs0D%?VBB|dx_xzrpK6jO+yKWZd{;XP?6WUQR9)_(4Q4EfG>7goh+!wjLBUPX74bIiRaucZQ?bmR`dm0arS5I^ zSBflUt<8o~1CASjV5YAA1 zFJi}{>bOwrZK+tXBN9a?yVdzV>pEpW!Ijm~Ee&GP?*gAp9M-WG7q1DJ`FRT^=H^v9 zB_nQ-&?{KDv*)6hSlzjY+axGuFsVKdBLkuC$j*Y^s~U~xf$ATApVWp^{)ecy3~H+l z*S2vAMT)z-yK9TPySuwIkA3u3?GOzr#g|T*f=cdGQQha-Mcr!prSihnwpFIQdyH|Tsa)nM=NpSAA^0+x{5d3?i@vWkgm&JBn3hBRo5g5uUDX*iv&aiPN?_E4V`k{=Gf^Vi+b}x5oKlwnQV|Q%UQ2j(r7Q|iyVuURcFMr5bsYj-eJgylJub%IF zTa4E^yV=Qx?TFp3Balam(;wYUDUuBR)Vg93UxmvCufbE7uJr$Qh?+06WqO!EN0M?K zhhsnDSLQD%&3M9IiP+>>m@GI`og~bzFw{zgd3WuN?w%M=D%@76zLA`-V9Kz!={NQx zGE`K%X2~A?Fb|Dv&r|zdLId8k@CA8CoLP(X{OyQb^vf5xs&rJufJf0@e*R90VV8NHqxsTLckA7a<9^Nged^@#Aebcr&!xPp^b-#{8hJVh4un_5?Nre+f z2(AzD!Ks^J%llq@<=1vnPM7|dlIK~s8x!5A(xqG71lwF?3o6(PHn+&h4MGGTf_Pwt zp!VfT?n$*pc_welu~mRj4D*X*6?M2{Ea%z_6%)=I2DMv0C$+DD8U{<2-O(BKv&oE~ zWv4;fhyMxY*@82bu)KB)&$Ro_TiG=ky}|YT^sH>iL=+N@D))MN#JWVOVvb>}7?WwAjC^(&+G=@#+D3%Mg59ng^nK zYC_!X;4fQ42wyy!{l$HlS0vET)s>COzC*k+^Y}BXd`N^>pL8$`KFdvtL`JHDR%-Tp zc%oH>8hv@NEYUk3x5XA$Kv2L#$>!`CX3={vZY&*RGE!)?g~Htmcz-|-D~MlNb!tVd zlh?E;rL708gRZFO2N9gF*@A#tme!M`0bkT@zEk+)jN;1GhE2(R8~ zC}I}x_ZJrSH-8)|*Rj>+jckAnCim`tA*l%%h;P}ZLIQ@RYGX7jfCHP$9GjuR{g6xn zw@r>ZB-cGt=vs@e62LU z%KUmil^+g32&Tr_Hktal*BIl~87#6Gfm3n$0p(U(4#7CEO zA0q>9aur91fyu&+HhHTHYtVEmLmL`r_xtQ&b8;cis@s%ptcbSVe=|=G2(UrvcZO1_ zd)0Mw$6ng9=QOnzSxd4{e~hKQ?VOIJvElA9_e>-s@Jm(Uz~e{85I+eghVGNfWjX9L zy7YugLDC5!VVUJ&n=&S99Qqq}5J6{-Lbz_e-?TH_|DZNiii=P;7~zkdXhK4pDWM#`_T@w9pOPxDYNaMXbtOfe0 zTfPo7B9M#p_YTTr^(#HGsZ88t&<--n>LoX_uM)MF;-h z%Y$YyJHH3?ebCmtpq#?JD_E1%wmS5>hobj<^l;cq~j*2#TPP!bPV2UPGdW}j0tmrxZ{mAl+7xPgsGop_M`v4 zNn1JoU03*e@OYL;B$Op@jXv|gw=4l`9uxT5B^)p$@4pG|(d&}5&xjpR=qnSR%gQX( z>^SvhY^^qjMZeajsugCY<8EZdq0F+9U;AsqyA8VMET^J(-j@GjVl~`sCNBhXA(>w1hfiRW?xqpSXKK>FuGJHL>7NQB25`UzzX|YaA^fhV| znSn;iMJ%=h)v-3yj7IWW?{bVOF5-89oJh>u0lzw#{Ha9Bs*r4_wm9@H^onj(0_F~4jHaEk*Iz1MvkR^ zPz$~ubcdE2{R$Yh`ER^Ro(?~bUMYiYoWTi4Dw!DUw=YjDl%<)Onro3`f}y8B^wME!r5+=ZY*|~ z0j55Ey=&a{IF8xsWt-Nxx-A4n14L9dxRoOMBZxnt$=z?vB^M*J&M+R8uh??=KRYx|J1_N$#Q+t&$hAMESMFWf4fa~>2CRJw!7rvO?O@{E)= zKVg8H>? z=Tpdswnw$+H7x!jjdbT{M}(%HHgB2!;{?YRX8Bl<5+Ol9ej55e|I)E0;&%uVa;pBMI%Fn|fDOO$^&+bxH@#BM$v(oNPGTZfq$* zX*RxZLn3b!MTAy4{~nNvxA4H`mbfT5gkG(rQZ=&8056*Z3*2T9*}1IvtJe*NSM2_7 z>HUJi+XOOyuockhLP?|<*I{@d>!V*Xh=|NKJnmGHwc+M$fdnm)L|JY2b2+wIyYRu-0x2!=GNTV)5d?`e6%vtR%vLG z&v8m7wy%1TF)c| z5n(G5tEf#Q5`#`)w-4~GO=fUe|7mKW(^NYzt}foq(Gl^(8SClAOI4KlOJ&^1Jq#!1 zZ}#F|cI!9;LL*{d>DX)OWIS_dzXW%>j*L~w_A@|YLM9Ro`Tx!z=y)OiyN!i?(G~&E zAK<#iP8lt2%#8JojZCz3jdYAO!Kg_CEh7_MEiO)(3+hw1MPJ zxWQEqS?g8Z>>F6!qq2HF6S>;6sNhb4@9VR-2mb=Wd-VEIe0xS@#Z!b*XAc* z)0KyTMRYmyoL6pa754*97nO#Ps~n{4+#MppEbLUc^pwiscFagJfjm`7N>T^_x$j;u z9CIr~khvXtpl{Ge#hkijarrO1UWLAp89{^PQE^#*Rh!XGYAZ&mA6aL-!wxgc0yN}J z-dY7Al~b~tPTlA-FsFgzm;bnYWGz2#A5kB37mD8_E`E|Fk50bC?ZwtBEV`jX0FBM- ze{JhSi3OX865X#0&-T@>8O2wOuoTfwby z(N_JoL`kRTSg_Wqw%IQ~`=Ed74Xc0GU8GFt{v|TdMbi=l)XAkK$Zo*TAu}r>Cz63* zls&t%x^wQn>;ycUcbon=8(E^FOtJ&en>C?zzDH+7mVXwpvZxe!S18x>DT2H*?L2;S z_A9GHl@l2$q%_wE*X2!R@*tZKyvI(hj+o*wb9}})N(&+b$$UrQ&LF1Is%%%nZ7^Vs zlw@@;YwsOtk?L2%JTEZFXz56LVW;9`Q@&9g0;a#NWz$b1UJc(PRUMnPr%v8}gzYHfKGc=DU`%yekdyEQj+%{pFe z*Sq?P#1H>)+_mISMC&vp!03A=y)Z~U?-Y9Q<6n$Sz{vn9nMLcrvoNG%mk?caL)VRx z4I+^?QP$(q!VGYHEpp@gFPapP{ojO`dh@@w6K24U9pa@8sVXsRSa#=8l_ zacTv>-Ta{vQp;G#Ft~^ZbY+LD%D%H&4@)FDVgvo=uLJ0Ac}W_QN)tC;Bu;)MREg9` zY)E%u5>w$eaB{69)#h_ZiOZg?CVrPjUcQLblA#gY!~*l5&tDSR*Hvp=YIcV5S)(f< zfh4XK{r6&0Mh{P%VH#AL=kMHZLu=tP>}8~qw8eapPQxESi*)w@6GeE5Qr#D^f4ig1 z*6J{Wn}C5du~ZJEENEIcM;W3`LS$I2 z0MjCx5gNg!!iPVpDjFK+aihKX3oTD9DHl_M3!!)YXY~_%CKa6X{okRihTGrXV_5Oi z)x^9@`UY~C5Q~1d4?8XBm{c%%e~mJ3tt!UJ!?K1Ep9!fGFx)1-xU(bdw+&8=Ir56n z`gm%GCqgX@eu)G{o_m~%h3A93D!IrDo;rFOSgfdlkK~@Gqh*3rBTuL6Xo>an)P6x9 zsSz;uAk8A2yPH?loLmAbVodNvXG z*w@Inhse~w{OQY`Kmji{1eF)H=i8(j-xyXBmW%p$As)*MmMifq(K=F=@u<)TWzwIc z!LBPC%}6?E(ul|80j1bz<0 zKjAd{3cvM+QXaZD6}7a`xd*f)_NTWxE9#hxrE*z027)@o0Wfx?#-pl`hd5CX8C0o+(Aa9bMTKT+pu0;6%wl54BQorm&Gdv*2$ z*Y|8a^^9319@>GKnvg(a;Cy~^FDK+EB);hBPr&@z)`iVYDbCH+K=5CVzZEL$$wQW! zwtu_c7D5nzYMrUT)=0p+tq9lQ&s@foY*D8N>dGnX!v+qRxb?TfZN;&m6p{hbfzu*M6-93CRCS@`o<( zuV~DGt?j@u|M<-7WCZ|qn6~7@RYf5xQ%T`LmU!KX?6j(bZ3e5+oK|5>iiA1Pv zscDOZ``^%a6y=-f!HAi&L8&*OHht#Z9|UAKm}doEErjC%ix{f1$&RljWyZEqX=%oe zf8)S)|3tsbfdJIW)}?xgoIEcZrGAM%5Jc3FFK->CeO%|aLW_z@364#KPn5vXdD-VV zt4&EdC$&AXadkdn&v;IsRrsqFL6v_Df;a=cmXHnTa$oQRy`Z*Q-7l=9*q9gaMucU( zDvGaMUe%F+CcZcDIM&b43VFRDy-KNjy(HdQD9zhGYM}ssl2neYX8C-8FKDfOfX7T;GqDHLjwJSQ}x8k^Ohr+d!1L zliFWDjD553sy{R5bZ*l&j{5bt3f<_+72?&=kEx+XnCN5g5H-~Bal6VyWvlya7-q~L zexO!~#I)(Wct1?Gng`B|`%>Ssqa_ieZ&BBlK;p}hy`G|=?ioF1U;IpXRa)k5dFjbM zqDj)E9RGz61k%9WZDqgEmsj@^rtYn_H+b0}nVWL_B8r`MyfI}8iCAxA&lGdR9~c;2wZlwfB@&m?sr(jfvst=$_M)uYD`t)eYjLjm8?+K-k+Ab!M?cMG`|F*);`7wjjt=+vA%O^GjKDR zX#YMlvwEcJaA4v`EYH1TlSjmyPFBo5m_0{wNYUYpk<^3KA=oYt=aQCF^tMRUwiJoi zy}b|f0ZP7U<5g0E%eFeyVKXugZW-}z$66Fo~Yh`l@>)WXDvoU zw0Z5NpwWY<7<%ulCtAn1i>K?YF1PMBNqo*>-=qSh+7oeHFHBIaMsZHWt_0g zhSfHdKgUzbq!1&cQI+l_HcjtTkrjU)(IebT_#c11<>1@48vvJ^5KF)dul-LtD?wXVNbArwcm!-pln=-YzW0N${mGGQL%zwyj= z?ykDIx3aw$#e+aofqRvlBAUUjo!(qW6XM+BhvpQX(tar6MWn8+#F5Gjf{m>G-19#U}_^4|##3jm&J!hgvL-3aVD zy6a9-MYX7E&Vky|Q#dpKniK<-nmU|CNE<6@gQ1^&Ee)7WMmyGWGOt{6VZsubX4ciabtlCC4he zD7g}&{zAtKx$T3-at=0$%MK)ocX-H+u?L|PulvW9$V}F0>Lm6H@b!KW^ksUh25W)W z|JBl{Py`X^-gv;@q`s3Ef5mOLW@SQp*qn{bT}H;cIq-PQ+m^@`#R;8 zt&a_p9Us29R|i}kXlz%&Uz&SX2I1`s)^D@~Mi4a3%tyiD(-Hu4t!+c&35t7JVdk0z zNDPYP28XKn{&~+%$Hcb2-B33X=%Z-I)qp6zixp0k?`DlH|*71w#YVMrpL^S}J z4yv?iGP3<%#2L-dS0~KjaWjDBIFU?Yl3suS=J8b5*0aD;a|Xfnu9rM+Ne?DhODJuN z*r!}&AiUe8IbNGiQHC5LBNvX%3Cb5yULIRD6boc{ltt}h!*(KdZ5Ttic2rxtcH6yI zQhD?kT@EvnSUr-N4I2vD9iewEfFZb>i$L5zm=J8W{xwsv4+n)@N>aGXrueum-XbBYyuJ{x)Yih99zS0{5y?bKsU##$dkU@MsF4M%K-;<0iM7OK( zZ{6@Zw7zRQec-)R1t*S&E2x#9mZG-4_L$4&tfxC?EbaT=3`}~O~t*J zRPoPy+Z$AAPH)?0kwki|J$iQY=?3*)!=-?H; zM8CDyT|pO*nZlFwp5oYZH`yYNN&hmwCjg0W@gAwqGuU$H>f{=G_o(H^~z z9*d)}vErG}9D%S)*q^l0wrfGJ!WjABi34;w4`%>QrC+1go=@t<3L3pl`DRsjo|Pm2@{#oZ`1XG}h~vc22CSn;(r5)KU5-`RN>yEabZ zR>2>{oyin*kN)-r`tBsw{2MI|dAt8DeC2~)I%kkgZIf~H!z9$o7Ddg!Bopxf>VJm{ zn*TRc5CsnvLaysene?=EOu(2(Lv0Nm6JrBIT|;onK@U7#(lK@eD?D$6vnj;evo!(GBIi+p2ezW$HfaiKzV?AanTaR+{h8KE*8yh6?U z4*0Of{l??wF*4gq(wr@-9OJusi1>!_QJ-#N-Kb$A{LOd|Jh*A2NyVoG08(}xQ`n#~ zT2G}U2Qa@-HWw^*^O@W6S)L5;-`ChGSef6n)zN3US!nH(eM?HDd%_>_5K}- z3X{9ND|ZhSPQ80=90i>7hHiViYxeQ@zV@Mk6Z3Fd;U%Q>XBl!z0?E|pQdSCfJJA8Q zc+_3%6>9m1mJVR}Suj1zDQRL{#mhNNa!NnKKJYxfe_^onjit1lrs9@6pa3E6WkFi* zOT)~Z#V^e2&`l1=91^h`h;|r=Na(2Rm*o=vcPLZAW8HUq&QY-uKOvUnuoz0*Oc3@) zY0nQOn&VmVFw;XrA(eNRPFXD?<)7-zLQ4}Q=VH7(r^Q}sF;blA-qUkR-fGT@Je#Y7 zO8Bxy;2^C#y)=DLP4^WMa(ejme&S=J(YS1RvAY(rubBTQ$K`M%O5(Y$yDBy$T*#AK z7hfND>^X#B%|STyk&w4H7&(BU=GeY5B3B<*k**L|R5xt&lc<`)C)RoucYGc$j+AQ= zMq)3>DVqfZYTxED(XXHOURK(}Ct;%N;YCP9JRk7S(q9R1?&e=AAavbS;lnKNRDygf zc0Tkp47-j&5ol9pDY}0yxQ(m#;@xXS%Rud*2%yWraahzF?63ops@g)7fkUI`Jx=oI z7)oy>& z9ZYoJXuNULmdtTD33~a4Z7(LIxCjUHR=&9#_o=ZBl-UsupuGlTd8ux(3-5(i%e5%1 zOMwE4FF{+Kl@0Xb2!;qiQde9EM3_XCdaEaLSB#dU4>N9t1N)!Y=s!JW*}^2vkKOoK zudU=)%GM?FE1qf!_+9O~O_&w?9w;o`l-v@i>{U*|p}A64OezeKNZyf*gHHBpuK;a8 zJ`W=#I6uJ6f2mL7^`=A*N*3;dp?KFxkB`OhwEMytXsd<)n)TX_t2C?ig=T~I4-#Pp z#!Y)mnXb~(`uZ?ek_$;{dKA|pq}^D8uZHrBZ0-^ykhIGWHbQvd?7*SM>Gr~$ovMdE zyu7FXct2=9TFJOo)OFaz-XTAEH^FyPV1gxe49d8ViJQXWnCKo9f&?e`vA>|A2d$cSc4orPJyHtr(ln zF=|dunLeyEM7QtTp=B-p!`7ByGJO~zNmKa`(p>?} z643sWnv+?f&3=nq1!L!K;#{`jc z5~*h;8-1#KS`*gr(2DnR3Texj*|CDwuKiwp!{8Mg29QH;An_X}ugq6zM)10`%IS)L ztgZOo_{Cp+nn}zl$>85Tfs5sXP&)u4w$YF#PB&=D&TO9(wn#P}rU@jLv@Kt{ zfs9I?X7b3B=nf1Xv z67xKMK)kpkxN*RaV;Bel4UJ7%bx-15DOr98pb@yV9K#@YCnjP2-R>AT%1)+_OkZLD zG<4nB%i%-;962Jxp%Y0%AmTN*OjqVA!cE9TZO!Tsyb$N5|NT4ozs0o7>@|1(NvtI6_Lp>FwvmSHz4$ z=a`G)f{DGjPeMuIH%X|UR{IMR!w2^nH-9CL9k0VGs*#r^syi3?(pp3@hNmg^r3n27 zXZXA^*VVx>@>ZNcM*ec0w(UIwic^!6!lmU3{FrjKEg{Jp9}T$!|nUioOtMCdojogM_<7H48+tB0dAb0vRYD>@zC7vP}qR+or)cud5W z#qs786e>U8F>VSWb8^56f=8!dTp-iPK_ZYs?#MSU+ID#Px(4Hp#6m~@*+!(2Wgycj z6D%RBI>-t&)4|RO=k4D3HRprbndo0tdNU+Y$%xNo^T}={&$^7Hka3gggjkapG&vE; zdtUjdj5EZypStV5_M^{_TRJRnzCo>tK zK;ZIR7^w~f&k`2v%}C@DaQGr?<2Va7U>Kh0?wT_h?woQ_G<$$<+Hw3{?d{~rn&f!O za9wFa5lt*5hNtDo=W=I#Fo_schA<4a7&JSE*}YV?8$hs@ng_xU{!v=n_bFtbwhw5v2uh&V40zK zG?;gOL-fKCohf|%TC;w1sc}3iJCsnjRI+dKdw{PZTZH7=CqG!MVifjHD8s(9=wE@Y_>AXD! ze!VSk(+J~M#X|Naf_}b|=&hO2zh@NfPHY#~p1V#)h!iT$za-U_fNyna!{7jdlP6JV zw&Rs1vQE##l>!!+FD?tKsGiadnyN>`EzZuk3qL=|dD%O+**nWEDP^xf34oLMAsXR5 zias-8F|#uSDEyQ^%vQT1J>LEKVcGwXl6u72!||%|6LHt}r2Vu!P;t7=@CzXSSv#~y zO2Xmo87zWNlz(z;N^WK@PQ{`celyXvL-*?IG_W8(;&%p_=9@`g$_+n9X0AaV_~pj5 z65L8nt96uFoggeR#1vX8BXnGZE%^|ubV3daqQ_D3SAo~xOArlym0Dp6(Q{8p_%!e; z`(<{nuEJM~Wr|bTJX$aJyp&g!HC#AUvo+?Z!4-Ht8^fs|+KkVHQu*Z-Vb#jmzjzyN zg*m$gtg=J11n1_OK9~(HLti3wEAfGpW&m96uc`$cp=(aqUJLiQmScj9fgPgW+0b`~ z8^OaglUbCQFhrJj#jCFotzGIq=}B6VTEEVC*QS`JV2`>H5i^94Ss?+4s0VY+l2W+?g&%RbyiVtCl2pWy+>d<&>U zB9^VatY`J4TpffjwU;#;lopvG)AwuK4cUU+y(M>VZQE+E_jFU{y^imRI7Amu@uHtuAv*-oe< zKegzhOR1UR?f`e@K+d4dKLI?~pRL<9csl8bhF`XN2Hftugv3BeVO&1_WyDXS1)2BR zZ+q`aY>nFA(AE2c4yqm0B(kn#Rhp>taaB)+hj`^+l1RbA47db{p_a@5c!i?u>!Qa< zUrT{A+Yw)?_?ZF=-%|c--;1NMn|i|fSggTt6f2E#@jhv`bnu^N z*NV*hZ$u!nOQJY$#P7R&e?wfUru!^$H!(}wT5#~vAi!8j&;)#hW<~LF?U^edm8raY z&W59v7eBvB3w@j(t>8D>jxM*2AIU9kTrrS3 zj=Y1bs=LO*{ARE9Tw&5>%+6cV5Gz$;)cDujJR^i@9!fakwi1qwW}kisb7yPB9n zYR~p=Xf?^_bH|7ED*vO7053vBS94lLYuZYVo}(3h#W=BM-vgyU?=!0pKT41H7x}JfazOFu)>;T3~>gj-WoB!SP z45M$5kHx(bKNTtiDyoF-a8jg zqcOkdux|YpELEesv2MdK?C~WmU*PE;$J=s+L2$g)^_z1=g$zb%Ji3a{+I-n2+k`3j zpAsEzHAD0lwaTLAwSZ#6W-j-=;k=S0hyBlK&PHUca5h(NosWic;fU$@DeVFapNh72 zBO*lp_!XoAlnWlgBc}UJ^=C$!3z2(0RbK2#*t#oYqtX4XQ{KO4&|tq=0TZJ9K(DBD zP_L5PJc_^D`m$wGJe{Sh98c$`D^;{|Q*Q=GcX6O+Ll4PEF8`LoimQw*!5TqWO;f)H z9i90V-Pox>c6YgFwH?uh%aWJN%+Y-TVW`kKRosm*)63GVZzDJv$&NxC4g~>clnsID zaeZ%VR}hx%vmKBaeyuejSJ53+LK}h^%I!dBsalvjb@#TCb(ij^*=GzUi828!)4Tf^ zI6RbKwzkWUHGgsw(>%=QG)Q&Kfbu3PfKRPSeV1oxotJM2gZQKnC!!ga`U zz`B;xv1FPB$7(~pQ_BJXA{r0g$f~>7`@x@y4X2q#Ne0l1j0hzeKc`qmgqxaM8q56! zy9n2iR>3=!I3=-3npo@vB8ladmI9(GoB;SU(2K&x4du!URb^z?IU!i~SX|JUO7pPs zN8h@1vS?vsru6I&-;q3SHu861uQZyXIw$iNe;3%>q&jjXc|D^XqxUx${e@`EW`Ku# zRu#`Q-z8tUf?DN)_Y*G(9F+gB+s?H9(|t$R%Z{tktNEf^@x8Ig`5Vw&aTBAK%xAs= zcOkWhQKGJNo!CpDl`&pM=EmHOV1u_bkB=_4d=zi+7ndXPA$=tCGKX zdF+vX%HY{pI9CTc70Mnaqy^I(3yS>t_dL-0f`)$Uplg5bn{bFsND#??O&Zwop|bk` zo3Jr46UUn=@VxSaVs=qO*t4n%dRB8K>F`=r{G1k!y!w*&AKeJMO-fv(zZm5e^AcAv zg(#+soWY$F72!kymulhe3!RktmsrQ_vK(-Jw5c3wpSbF5twYNTH5)E*tg&P@tMqEG zMx)N;@1`;=iJdhDs^`TwL@PWhgoCKkQZeMezr`~$my)l2aN#L7xnwLdpjI8S*RK$w z&W%{lgbJ?kslCW5o1kF9Z(0|8Ssvx&mnkIH9qo(@Bv zXXBQFFx4Bbk=pM~t`z&)1BXUXH+172XS<8~Zz^=_ynj8PIAb3UO|EY~?D4ZeqKM&v zA<5*!8p}9HJV>{0%i%8W@#7*uzcTW;P(4jBgI$Euhrg);rzRGfiA~YxFWBWJCWV40 zCoqPm7EFT!eL#m}2=KU9jIp*9_c^hSk3&V{Aox<;NGW8HX4;&5{qo?52ryILLWf|5 zfK{$onf%DVig}}Y&D=T=m%Z!Gp1M-p?nWseh&!N1wF`(@5XKQnTH^CQIht8Q?K-8N zuSvr*H)Mj3CK^L?u&FNVtd=&A-H7xJEx>-=Li|AFMQs$nA%g99)<@p>2xp@ftW zdg&tDP{>$qlxHC{V)8SZsg-Z$v?fe(sn7D)^ZV?+)`BuV=L@>1o!Bz-^NK{eA*N_` za=Ln-ig@AncB$D>=82+rRs8BDl zLXL-y<^7P$zmxWOO?C^G3vgez_=0Imrt8uzj&0QOL{LGKC{nk=_jX=|{d>%9&?+v+* z&CY;Z|3YwxT9voYUbR2TW%j3TFbK1_#PBhDEDHumDy9Jit_x-8z3TaD;MFIs$FO@> zTnRSvk~9gLQ2$f9?$GbPpZNN-`EAD-{vp7LMg%&wEAo^PQ?7kObO8Tlp%LdMF}<0Z zGpn`EscNmKz_V+zdSLv=748}(kn}&Am2Sp6SWy}NhrmzFOIL#u>=)5wA>Z9Z zbj<0ncODy%wt=KPM{;Boaa3F#alCj?TcMpRJ(!R1MbX z&g{v#tzPc;0ey&rkDkS8VoZUoL&V-1kODcmu5v;_x>bq+>&>>Za*OJ=J<&2NKzN5; zhf_YPcoCTyFSH^A9id0p`CP>II2=unAp;#eqCk!n%Cc6JczymS8z;i|-~OB#t<1aY zzHH(_qX`u!Md+Gh@jyfIR7ePNdhCq}_zIuwlZ&nG#e>|j#FEZusEdH?b_DLz44VT* z;W_p=-7KRYR{o8^=rRNBK7yZsW9fy&e3<2^5HkGFqFT z#P0hO*vs1_adMv&GV?FfWkz0tGMwIbJp!pFLsk}bx_E> zW%ewGuUBd97TJGxjdcIU5^;(!{S5Q^GlrGQ3DRH1CEAaTj z2pt{Q;e_dV%g%>4F2Sgiv)wiY)TwI<-9}MJEDrgnJrTC&v@W*?S2sJ*nEsp)jf&eX zz0{%4W~@JZepg1p+{%H7BEsZ??5I^+x>>33}_4(=X#hcju zN;`!4Ua(^tzQs=ISoVT^C`X}>ACgm0luqB*RUF0KBO|NB+?ALw%x+upN3%f1=eBT}6FN#igtbZVIF1}f<^=L2Y>%ZbFj7-Qxs3n)LEX@ChNiavS>b$n|j0$tMr7kk{ zJ@Gy2OWw4!+m*TZxBB=wl|a_d4-vJjmGq5KV++4#f;uCD4ue+CeMm4`hF%n!_DsF2 zBN4-;Myh5K|C62ny=lQzn`b=2(ug0jOV)0u_tJ?KSJXyv>2W|(t7E-4dj3+t1Uy$c!Q961$C@sGc%CFg< z9?wKZa2t}Vhp5CL%VK@!Jy@(x$ucLj8AZGOzNrZ0-aCy$yfzOneB2>ieBy1#rI;Wt z=zYiK!%H`@mnTh!C?PT{g%YRoJodu4d6}Epw&d4qnpuaBDt0cr58E+n2-iTF8)iUm znsPWKt7{%-*C?(`h}fjM7496@f!2D=iH-0?_%|jIb5JG8DTxr<>LTYTxlYPHhy}hh zE-&~F`z7Vx%B1x8Z|PAfTZG8#c-M0BX*ib|s5CLEny7L+ICw)v&hGe#A$NdtdqZuN zj-jS=aZ-Kcb-idgdtvLzh9y<8?&*_VEz~ysp~3W_@dF7g7|@Q1lA!*1{dDvZcI(5+ z8trwBzzvW@{9M~RqWUIf zF}5jcg5y|YTW}1utD`A2lRH{}tN=^yKYnan`mLKVTjP-n0;pTF`8amT{ znJ$($303bt8sjm_vu;s#KIYQ!c+fUB8n???`Zt&rKDP{)3*v`Ik1QfM9uL1H^<$Xm znd6Nxgv}w6QiUui$kES?ZNnx>c4c>2*SXF@(dnljJ#+(7KhdVMZlc(3+d0b}GuMTJSWSAlsU|zvS%td~FOn>(w*7m(!8*C*#wCEZjP8VVuAZQ(#!%88r&|+)9j_#-#xI`Y!Xenpgh}$L zn1ora0=rF}9|VwqYN2j(zBFkHF51HiZ9HI(DG0$YLWKzMno3yhf8(EgK!#T^*=n@4 zdp%LIc1xp$n0Dw%+$=_*267W-(ON!*KrSKc(@S!4AT3DKp6z4H)xFV1p1}o?b;BF* zHD<_ewTo#h@1scr!GS#JZ+WT}4kA+{s0tw#?zS;BzLO#H_u|=tvbe~63jIm`Gfjc= zJpJ8MyyZf!Sr#~Ubli?D`0CB`Cly2JFy9$tUIf zhC{w^Mue!y{dhf_1}$Yh*Ygi&#= z4jcSU?}n<#6VaC)&pzEs?v&uW*eRA#Rs{3E0f^fFn>+jf&mEL991NHY48a6R9WAim z!pK-p-$>ig#Mn^Z&;)!pF!=Am7~HuqFwoKkKc%A+mrKC%T?#%FreLVvUYPi+rb0H_ zdvUd17AuU*e&FeQBs(y^0G3yfo&C8hIlGWQ-pUH9E8Dnjw|g&_Zv zT|)d?y8e8AS!R>Vc3)0glpujd@vE-cH@lI|^6ZiW@FjBR&VinE90`X5J#)m3mLImJ zE~|$2_lpXZ2MF*%b*H;XvdiSpOC86H^*h_!KbRd1?W6EifO!l5AeNbL0*-t9opK?eo#=&B@(Ps`{J>Xr&Cft8?S{56 zZ9kCtlt}A|q3FfOo)k0-(y>>2mgPh7D~)FD&ATx#%*071J6^ zW$3%EyAE!})Ys&>r?QcR5;Fnlt!qgJm+tcl07VCJv3(r2v1+^;;3p)|w7LM25Eea1 z!-6PoX6LB>-?T-iTutEZ1&Q2tLvFRFpF!HGcuuI~Wh+A*#-VzKMeX-vXe6m!Vz3X$ z_T+}?p2I!x34r`%JS5E(O?rdk6LBpA)GQ94L+b0%YbkCK~LHgwfMNI;Fs8V%{oT~R3Qf==V)KDS zPZ*^zGlq~4Tl-BBT0_U`*C@9_4meT)N?+!Wz)oEY*to1aJG1F;w7;;qJt(5S);Ds~ z{OWj-!D`To7yX)Gfc+}>O2i%NWNLc1Z7M!pci?GrXG@qTFH?@RKsnTTZ$Qh-ulgk6n4%-4l~4fvuiR-^M{a>KPBGcq8qt&Xa(O1r zM@ulY`)B~!!3n&>H5qbh5{JTl|KCAZ52ar;+qltQ@3wof1rtVSrcO_jYzzFnhi<=- zb4ZfBg9g9;=EtSArq6q`?cDct|$wNXyv#k{~u9j!PRCL zZR=pAP~0i*Emqv6NO5;}ceh}L;_e>Y-5rX1fZ$%--L1X(?j7fzKai2}j=Vd2%{AvU z*+6%l>mWy_xemUo089BM4Xd&Zg8ED1gdy3|kg0i}`fP@rWLsw~&ZI9g?b3Q&m5Vsm z1%)mtB16j>fr!6vk~2TBEoIfBq+zK)s8pMZ=$z>~>*vF=Q1HYO{>XuKcG~hJS-yBX zoZ86AxmR~)vzML>PGZl-o}jq;5^o>c%}kN_g|O#FqO%@es_>Kd#L<0Zx{eeXQP>Fim`iwF}(Q|oa@RL z%?kh-VO(M&&*Z_1FR0s2pNO0bUY4Zbt$sKcTP<3bbu?w$g73vi@V+}pQ(@TJOhxhB zW0#acTs4j4V4`%YzDVIXRpRB-$q(8RD>*<8^Hu>bRj<@`d^QyH^cb|GP9%p1qU-?R zmdAnc^slYe&4RQJq?aC(bZe@eeoTIf;^4kJV+DRrQ8+dc|y5G)M%kXGrhdOK{ysX?{h>ZYAzdk4d z4ZW618NW7i+ki@{NXTeiPserUUzs%hkkv{n*@`q5RZJvQRfD7SMHPh1IE)v@k4-6< z(zx9ZzE-&Kg(on#uqxx^8BYtL(y_q^PaQDd6`;z~s5WaSp^0G->C-4qn%(#w!RW6zmMplBf% z0x&YRbD34vE%&9d=rl@#gDWB^M;P@31xMNULKUBBj|Ua#VP3*?+G88-JI_s1FCgBm zQMuQ#aOizTm0CoNw`OpUB^_8$udkMV6FNnx<8(v1t6+amfbibte2LG*iA^VI$m4)9 zHCuPQW{jDcJ7oy~!1=)gN|!-B9CQO?+gYX9ok^aX7PM|zPW<`IVrmI!6qs}erE7D9 zik7NMJa~7J>E^9$((|@w(BnSL?_hXjqx2!g+!Q{|+dhSW z2W34R4`9av6>E{H(p2B_lG&z6A$lp*>U(ul;LSX#Bu@6S>$}$S1<(Q%;2e8eg+g_x z$i`C|)WCPx>YhS+j49y0QfEvJXga1T(pEJg<^)lnHGv&*9k;qZk>yMMBNVelK;`brTxI*k0fqlduU-0_# zO@reqC3c+X?J}i;ppYr|l{d)8)32aXolFXR?ZQ*38n&tv6L|o1l_rHy21ro8e7T$0 zkT$e;I4#`$%AHNRVV!Prz32JO`0xF_Pt;i3%)m!e33O7*H@Bp$zYrCt=E&U#x5~nw zZzmqHp?6J`R|r@p!kGSorDA>@53X_8h3QL5a;YQ{%d}E;ie=xobzjb#*gK8ca?DvT z#tM_q96p)5_Hd#l@>NL-5XB)}Vx%?vJ+aMHoPJ=4U=9Nq<~(u0m@aYUvK@)U)Te+v zY5ZZ|Sqsuz3PH$C+s$u| z;SAM$uw$qO`8Dzqu?QZ@XvLMxM$0te2B-L>v&;R+M zPX2dm%-4H23rBmQ0E%KxelD_JvgyqU{Ntp04^gajq=r?z+SHPZs(uz*9bc>k6I0w? zi92=uCH|s*HciDZ$?oPXdr0#_9uJrjhu zn)8dYQKTzZip%X$ywx;{d%A640O)2_rapkRV*68v@zUQ{Cd%GN=KoCtr zJk^LaWglxR--z00j}F(v@4{nCH;x`3GYyqy0RkANa<3d2FRS3{k$LcxO%Qneeg$#2 zcQ(-km*LhMOTE2x&)dtly}cujo-!~5{&6(>reSZ7LFf`N#{o>uR$ISahbGu!xV z^d!0WdD|=kPr9y7Ec+l)ZKQzqfU3A96=W&b@mqw}p7b`eCW~I$oZ(y@;drWZ{{`i5 zl<>e8id0f8l0Z1*K!Q6($6Grp&`6(0oXcsu1M^mv5Oot+Z@M#4Fuy%`bj<+*T#6yg zNOxFkGl(i;G)K8DEB<(xk!{=+Gi(y!&nJe?+vq{K-a*7qZwXwkUFI9+`!9_6000;k zH@u(JD;j3y;1@ohOeKTrr_)@?UY_$dX?u=_#lE5)G0W<=Mr}QMW0IDN0R^%Q%DP`K zCXd0mme`%H<0&(bQfMO-fgX1AmXdol3HPwjQCy{8%COq z&cTAjj$@+PfxQW{>aL)@;9(#9E;&i<5FRH7@2D6?X@c z>$d>WLova$erelSsHG$MqCOBn_Yvpx)lx7CYPY#EMBClJ>S!*kViwwK1luGVdbfZb zHvZ9U9{qW%4FApSxjF!d46y8>Aj1ofkxeYLmfn^%N zTx&~Lif_Z%{c6{|I>w@Ickyi4_0fiAg7HM9?cfi64%w##3E4&CIf(g?c8>%)n{-wD zpDxn``{T@|E;RI@7_~6`vpj7}3zAj!c^&AHyMZ`KH3J1(S+(j%LT=(fUu9x))HYK> z1zSrtBAR8;WMoYt$Rhp1mVM#s81Rm{BNQ6>$QTN=&JFAyhL7M30j|zRO9T<*1*7|C+C}CUkeb|- zYS*1A=e_xO7pj(Bu6GA1sB-*5F|ws~jH)v)81co<%;hpSuZ8R0rsd}29o40lF*>4U>gL?(N^AZY z2B){YGqORYTrDpC@4*D`ZX0o5L!Z6YTNJdi-g;X0lDkF*Zlf`q-F?TgFgLL~=d&A% z(HvY|`V=*5r$32PU%8-;fY`IOU}E4u(w4PXQg z4TZxA*AVvGu@la?od!mLt=#>+IO{dAWxf2W^w}x6EGwVy&yv06gMeIa?4QpuyA-~D zro)NP3 zxoO2j^j{=Ik8@>>X+M@q2V>D6Fo;B@bBbd?qeY?jN`NNV-v!J5p01g4H z+8+LO^QWGupjDUCYpp7Pz9247@I7!<0P(FyX?{)0h5a0YTT_lt5!DT&zc@Gn_zN%RPILbA(&nd5`8@SG{w53M&s@oo~yi^SH&+O*f{( zn?lX`=@z3txc;Ppx3yMCr*CzzOfhKNPXDlkRhIt6UlDEu?CP!&5ScRs-N7BvqqiZ< z1iPzU2@ z7j4lMTBqmtAanr;FZ?Uf@zAKv;#{Tb1AUmx!R;f7W#pkvCfN-zQ06xb)^|0a4uXWm z_p4Van3NYr_{m)B5gl8q^F#{oIe0bOcN>5hhepC?x)UBksAD6>AUzveMlcJT+I+uR81D@!o;5( z^P*Gb#cBZ{a`@m6#?;FI1QzY;iQ*~F$qB;{RT+&OhTY1E&E9~y@Gq4jZ#C;@)pXM) zuUP1bk2&1IFDGw}Os>Y;4l5BV&SFfp3M0lj+5CLjXWw2w)X0Gi z{3$aF^7ddz5PpyRs)kcI$6TzA$AfcdWto3QKBJGs< z?h@EOw|ijwfY#!vHl<6CJ1uz`z7#EhmT-)0h|$wHgjl;kJHMBw$77LM5M?vtd?W?H z{hi6z)5M-q1`Nxs<@HJBFxT_jD}45A7d;BO$L~d9?YtGa!kbZIrb!uU=;GX!>xY%t z>$~=5b~=l{yYy-sC-++CDRUhfT)jPQMtr_W}Yy`NwJuC?Y;7> zx*#OmUO4`HuzFHKZ5GKlNa-jk;VPBEK!Rpq4!0&;P5Qrq-wYrZ52&hlya#gJi%Q@F z&wf#5c6r}>oq3*ltiY3?D7H=7cuVphQXPk5TbDC^CJ}Y~I-Bh%DMLt7GVp#ktmM?M zTKJRDwivP8#6?Y~shr`{Cvo~}F-;hMXjubJQs4t07Ft#0d#ZMX{T$Xq3GHBa+}8;7 z-8ZFbjoQx{N3)X34?2(h;B?iLg{cs4N(5R-IDe92k`ulLww&zY)HQH@l`=vuka{+1 zufG42ty!_Zz)d$h%}`ww!8Y?P<%XTnqc1PxCnrH2%ts zNOp{NeO~1cJBcle$;^p_*^77Fg}ulEmDEU>)q>}f(>4KXcPzbrPLvmq3HBzrBW09O z-hdC3p*zF|%pTu-)!$uzA{EweMDfP`H=6f{-*`YGe}b8g#6mfQg?os09|h$fvd>wj zMr&rBt#$sAkoUdXFOV0;&!MA*Zrj(qE%zgVejw8+y4o=y6WTC=`~41g4d>O$juFx2 zl4C!Y+;*1y%r@TSP?|!FvFwkx_hBi2n%)h9ug!B}E?QKGS&ac=iT_@Hp+!Gfwfygk zw#MG?x^kkTo#w^YL5Fbms|UwPRY=KV85B9tT^5z71T&|(^49B^smeu>oqpSt>Ml!| z19D0{(_XwE*=^%LMOo*BH2kUwJWOI)vd%GldoUpB@K>s?w4uH#;}}Z&_+m=4b-U8K zgm&1?&?lS=I;EtP5UkMb+?f7Fl1S=P2Cbrnq%|F!ci)z}uh?*=b@vD+3wZhBFnljP6xUt8r zEG%X3jaa+^6G@6A3qUVW#d1DWq9X;r>&WQXR?Bz}+wW}B5FU#Eh9u@Eg*W>^0%f_q z8HBxNMp~4xM@Mx|{Z2b#?K2vE=%~V|8VJg7mf_OmYd?cnBMM1E*0+c^efbheo6C@r z%2ZVFh+h9a`q0|UE!Nb=%MJo1iP#HpnMl}-Ag!ELs+L;0(exhGOBWRLd$gT8f}>@X zO~NZQ7Bh!AhoWzf=%1&H~2CfW{Q&TeRa{Dvd_XA%U66lAB+)I9GwWio#{Bn6H$1%yU zuc8QEZsK8$&6&}Y$A*vOD}8Zk+25;{tRd!;N(a7rG&y-+2y+uwuI+zQA1AQGrZ{FX zgxojU;(T3n@7>^z9{MA3iD#!G+GGoyCN??AKU?P3+bH8{)aOP@IC1*G4JBnmcf9q3 z&A>u1Cw7+cgv0TTHO;Y2?)qo63_8w|q8aeq6gsgPZumen3W7FBl_{#Ki^)<~!7TS8DOX6Jy??0<_ev%6jBC z_m7rXT40Gb?vgwujZS>M<@$VH_E+BOwpr}cinwE!v(%+|mJaVf>T#a-%8rGum-evs z`U%1=XG`J*`NEtZ9i4YX8Ho!tiNsi%v{$A^uU^7Oj1z-w9g8XZ0ttAI^L3R&u#nG} zVORJOxn-6PUfz@B=~JeQPGY@yEH^+kb6jFpnz@heCbW*zWg9+=;X3@%8znVD@>|V3 zInntuqyT6K(FEYPD&R}%-?2fjBj9q=1<=N1$AKlbfk}kUbFshlXi9JB*~yX9>NX{M z|Glg4=~l4TQJ74dR+ht*Mz5OtOwJ5JoTr;dA-cznkM96<^mvEtxqh39M;1i-eQM~_ z&jW@k3W3)i^Q4D+aBTa%^EtzGeGsb8t*C8&UFbmVn9=w^yH58xUJ=2MLVqQeycFw# zrxFY;))Ra){TU7Wr$!nWL@}dqm!0*ShB35BkL`98DtxscYwoTUF zS0f*%>KoUf%Qjl%C5~kZgNNBPR9i<+L8tCZ>*{I5zLXymwx7V6#O3#IDUKb77`^jm zY(Nge{&KNOveFQh02HV(Nfx0AS|kOk89z9A2?gKPaqkY$H{H5wlXRM7m3q3=yxB^m zXfInZ2){0znI14fpti*oQ$=+k%jk)(JmpUgEjBD0|DFdo+gd~h+1%>} z@^4(95e_@mb4IT!3$p5tn1eP~u_HH*)(=ESE51oO9K-jWY8L6C66DO;jiWK>dUkjM zgF8GVc?TQjc4uabO?_eswnx#{Gyyn?IL7}aC%)cb;06p^m)6MUZa$QCSA&LM9sdnY zgs={1sED@?BR=C-TN@Zj=9?+jlE(G%iYtvz#y{H~Y|o6VBh=qacsL?ed)Lh4hiw{t z>w_R6H5!vaXsEwJUAzK(-viaF?=~`B?ZJG?g_2}R!~Sn|Z##Q02aP>B#mBMoa=l%X z8Y7F!zGv2W=KpR`ZH$feE|f;zWz}DIW+gCO8a%$U_$fci{VYioBe!H56`-%KL2XQj z{;{W+AV{e>ZbByY^atmRCA?)X2W0Rv6c%}>chfK47qSg`&#q$CCYfZG zLc7&I+WrKk|E`+KJCm@xSMZvBdC;>BWQ2z`ZXt11sslKKbvmt z9`Q>#Ajh8TNEMe9ZQsxRr1UqyHr80@yJ+Jxa^ix7B!$E$BVa=sKqft_N}# zk1NpBKw>Y{*=VU>VaD+Z$<%h)w6g{MXl|F^+XVV#@iZ9%q2Q zm;bPjB3DBz!niPAVrX#N59AyfqC&T;&G_xUoN#s5I1F`rKktJN%WzHb?_t+$Xc75o zG7L5p*Xm(dRjsqGpVgjab0#=nl$9TP$|sOb2!h}-$&&weVyLr?CF z5MbS+!(haE#S#?}`u1j zpgjgZ}in=tfs^vw*7OwA4SjWo@*^q{{t znIFS21(C@LDC@w~ln*HW2zhd0y> zJfZ_T;e_-#sQ-wm2u$w8Ysn&#es}#U-M-ygyw~Z)P~Wn}3?d#-y@v9E*Z)py$L!3D zgxjB6vpF3NKERUdMJ%ih9M{Dk$WPoKc97L|I5R#@7|*Clsul_19xm!4A%uKVS&Nj< z4%3|3q_V5dm#j~@GDF&JeXBbBug`V@1Q$rK;CC4vvvIMxTdGP%GYn+c$cO{d@o~EP zR5xy>)Yt7|_*ainKW;8#FvGBI9+VMq+%1;G(gEhDa5&Kav=% zwTeCr%%3tA_d1yNQB0zL{^t=c|f~qs47FxUXMYEp&8OYt4dQ|4N=!m`qi7 zX`)i6vm-{5sFYEmhugR-aQpIGs^+#e_OdHnkVs~T+)^1oWnF(`bza4M-G%`9bZgr0 zO1XTif?lYkW0pN9%X5q7SWFV97A>MXQlC@2UIRBbyU7dxc1muNA`mKJ(xjWF{@*HL zlf0q}`@MzwBr4mxs?_GnLpsaXPr>dPCk}s4X!(5;-~njtW5dt9H64J%J5Bj8i1w!$ z#2WYs>f0>ei>Q89n|*gI<(-^;H7*^+ft19f?F2!hPy%ZZlr1X=Ag7nPJa@zH`Mgi) zlj;)h^0!ZGqT?8`L*D~9#mSxeN^d*xcx(LmK=If)OpM`OO`~5aG9x;GCh|ai>nNA^ zvJ~r(wLIzYZYNt6eTh5!opp9P%MC&d#gg%z&;ksVN!!w{t|u)ROLrX>>-9gnH+b}z zO}YJ*4nq)`+f_bkITWk8yCFkHmSyvVLhlLbygx;<|2HZ>-#B9b2f1`>!P!1U%(E`H%`a zYJ&rW<8A%rSP(d$6|z0{KOU5Bd;D@R<-lQEHbH|ImU8Q%p zN}^wBA6*%K+0UYQ^PP?lA}*57Z`oE&RYj_X|E?=9RXv-6oCtavg^&w;SNqy%g1p7P z*4X%*RCDO_bZ$0w{?JjII&qtrlcPWF`6l+N33FQN+;Q=0v(tzvPl;}G@X!??;l~I5 zF~45ec`+XQWo(Tor#t0zj4|P3tn0+(`-2E6BJ}2W<@ZCoYh>|9cV>VlOSiNOucN)- zohrT+LW_$d=*SNXD}iX!vRI|mFBeK5-NtV3Hq#Z>VT2Fr?GK~is@qxTKm(b0-G74jo|o`~oX zbKN41sqpoS3Emu}jXM07JV$RWCI8ZEa8OLc!VKI+x%%nb(v{QEtbc#BuUkyvy+U&& z=dV;R5%y0k-)m>tL(I$>gqr_hw_0NZm>1)UjG*Y)a?dFI5(7xBd#)S`=e>XK^{k7y?uMa|Eq(Xww2 zF^!ANyx~Rt`59HWhMp}vvPwM(o{P(JNwQCt;y@01hhMn@{9&*;{UL+U==!D*dvERF zn!5H}@h~TAHe+e)=L=!#=Eh8II7B=Wx&=`VUe}@O$f}QrKYm_ zqU?ktGpAc>#n}!p?)AuB*>aO(eq3WTl)X9));1&h z8IkK2@3r+|U5Ka&5;Q6$4lgbbP~Z|3M-~x_dUyGVzcg*0)uDLzphHh7Xg6WFjrpmz z9>K-b{2hg}#oay51lL1{I~!+h9aoKjlWfamjyvF>z*&0SVBWR>P412&QRT~`I*nAn zokx7+4{xJ^-PETVnX|aGcWnm{3fEi46d}TY&tv~PhM%r?U1GpP5y_<2U&tN%2I)`l zxMa8qg;r+njN{OsYq@FQv7zaquGev`EEA!U=n4Z>3wzkiJ@SuVWLr8^IdV?{YH($nBgP^Jz zV^`>%pM^%X!;A;)UdjKm0BJGuiM)gx&hM2(nmlmpih%=)2Lj_k`9 z_pi(vTs^O-|CM|o6xC`}Ax=ohojG=nH`qWct-@6yM@MOr_ILYiRmKm5u>b6y zxA(Xm_#zCbA@nrPBA}~D(2`30Y!9Wz*9GE4h2)Pqj#IuQu-|Mor}06FXgVBsW$-PQNE4A3vU)7fD0AlTo5(la}j5V~OgJccLkpIA_SG-x(A} zQvJu2D(-Wd=|9|Zh*Ea7xB;>dOlIzS5beLKm&OlPP5xy!=Q;8XVIWp6Xl-_X#7{yVUO8ecpeC3xTjZp=S?V z{`Zn!Z`K-J79{xt7@_BkxQn85}@Gw6O>1 zZLP4H^+)W~iPldGF*L_|lsC0SV#s7SKSzAbyj^&{>7RC@74fbOZ~UJs0F-3Z%pxiF zw!rbvc7gCpFjbwWhg-8H_j=JG*<{GkaUK?DhP}m4E~N8pJ?pG552t7%0@fV=+H2U_ zqdR7=DY1|*_2Kra>bw304f}Pp-tKSvBbK39+pgT9bi{^yqWh_!vN-4t$h1iMK*QB6 zhJ~udWIS$Fdny0-pCPiP@yF4zdyd>Rs@lJ`RMSWczbUjNB~7s3H?sJFPMPSq5LW$r z5qpqsmZwlP8S+T(7Y$$rEzI|m(1c*-&yD@3`)fN)AizCKYN5jsh4rsMcvNfH`D1f7 zfebBMA)$t#HhTZBjWawJT`1~WI;D}Cw_I5M z12+%(*v}zQ{~!KDqI|wd*9UIwg}7~m2!$VlxJNBo;L z^?YA80?8=?*9Rmn*ZKX%!H05f0$c_%KhBC zdu1dPrKro8W6=`xh`wbkLpN2BOR%e}7SX%uX=q$P^yR6Q-{t<}5>q0-z2~ZwjFA_9 zTJvjhbwlzm-;L6?rkF&QR85C3;-v&nnZ#F!l{EeVlZUH|U&6tQWjMoKt)k+Vn-cH~pbhnODA%69z zGNq|9)1ef9t5z4KR;U);c+zRSFRy+m;eE-_1_&IIlJOU^!R~@zEp$nwsOi)FioQg0$$U6C$gMqb|eL~bbr z7LQluF(r?XwkhZ`+w`eH*#$`bKN0N+LAbQ^PfyX^C(bzcm?`pnm9P{m|6z@}S=OqTmrJl??iV&V=d zEj##Q4esp4N=rRsnVaJQs`AHlvriibyn$_;P===j3Rz&_>SMLyqT4u-o9URRoieLv zda-PG^TK1snfYbu_5Hgi&B9Wo%iOIFX_z zzMAf`v0oFIJ&yx5e}d$TMTwP_tI~LRx7eAhA7|ZdKNW6?k>e5Ya{4`=!6m;Qz1?v6 z-VChyk*p`$e1^r0aG0UoUSICdf>-pkt8c-)_D0>L>*Zl~uMgt1b!hSH#_5&*Z(h~$ z8^pvd{>M{0-2U1k_|x2#_sAeqQhA5ORu;ZC2rNqC#mFCD&X4QL%R>$~r6id-%~mVT zyv1B5DU8d}Z0>6#vMXyriP%`(@kGVgvq7|>2ql6+r2*(*R-ncGuzGOI)Dzvt#i{<) zBspfbmn7197)0(t_wCxHnnK^EFFvtMjrR;(d?8+b$or>qC_WVej;%=(MWa z(RuX|#PFH$f^H4v>=*$l48yU3)XwikLg3a|&ToDwXJgtENRuU@O>YJ_B*o(_CT1Ar70Gt67*I%mGV( zaSw6c_~+&6;WQvu=b!6*0LOX0q=M1f%?uA z9_7#)@y~6z4pL7slKmJzh~4iYvbt(D>v;B}-l;n26!R_2IFF{78m#3CMXjOO@+kU# zYksx)g)*`lD@rVM+7E7pPEu@Gs2o=~_fOv!OU0y$DkCCoK1-1{%B)T*YV41-aD%IWv&ueC}TU(zujTe#>SepZS(y!%K6^JBa{HPbp*w<|*hD@y3CnSuk zDtcwf)oYKrJFmT7fkTX{p`QeC5PA3f$Ts%0dmJ9YKii?g0M-dD;#1E{`r+l~Y-dKh z{O3(xY4`l6^AT)`1}gr?=ybO}f#{D(&i~4V5kys0o~kVw_!pS$;rIpl?fe=p)KzRp zV}4h)1>II@_$4a}r5P36Nq5h%LVtr|tT2E&oP1_vB`}Vu}uJ~@e z3)^>5S~G9W@Qz1MpWE*FBxj|xsiyf+wG20W7p%)~J=QbBI>@Lk_Be}2`yY(TJXNQi zy)q;xkNNE}E%<$9@0k9th8alkh09PVxk>PG;mPWP@IV%)7vk$)AOnfR-&mT@jOr<# zKD^Ekm@vS`75?<2vd6nA_Xkm5P`swY<_96+%j1es!R0H;MZSit7u)(DmlZ-5XKrc! zD48Ta#RY+ms4qg=?2<1x5P`$lwh>+QFrzQS=%W;{2wd`GWuMY^{^0-Y={|GLvSy7N zQ!k1^EY98>9VMmf)@XXBoCcI}Oldzal-H1bU`;_b-2@kM$;8$pLDTl-au`oN@5eR+ zkjo0=oNk#h*({TjTkWEgYwL>BiYfz| z&6svUzsGfNXF$ODVQ!!UF^BTnK>}9Z3Oe+YZD36>&K+_qXzuI;InfW1x?j-_B}vu% z+y`0RuIJ)ze{gJeQ(axNVGhvyka}T2$!HDiuCaW89-jI|S3Lz{SN*!;4JRj1O@-88 zOCld?dV^HOewh{{wAr?t@cW&*qyi*MvW3{@1CX88{h}c>J`S#m_Rx@f)_DD;9S5Cg zahQB0@iX`nJDTVo`Ej@gHRKw;CLOgACvBtVO5|LPF zo|2#wNmM5CqL0BRJKfq1wtGL@v+PjFH{S|xnZ#RPx_RGe3udSmqlMrj{v)TQQ>ve- zsDfu?l32^Vm^z~5jI^)nZ=^w3Boo>QA%aY@?yqgX2vX(;X=4BWOR+l%{^cul{f=4A z%j$5U8M&$DYm-J*J+&e6F#JXk#^ZspO2)}Ty)O~k$B~LAJMHA47jhC_uH`L6y94GS zB$Hy*)sMH~V;1<9ns>CU1s4cI{=HtV6*M*V&)}}eA^Hc^A$#XET~t$LI!l=2&EWAb ziiu(_5FPA2m}T}B$D7~bSIuA`mV-?0KOXNg8jlPp{W%x%*eY@{>Q~mT@NfRf<2RDV znD#H|ICCT;5A8TaH9GceS(JCPN5e`L!h2vgsU?EE_qee>7d55FchMjBy3rm^9f2n# zz4`p{*AJOBJ;1`>%Dc0-54U;nI#4G{y$GgOlU(*5)thXHy&DK~=?Wh?zHspkTc@bP zB<9OC-k~n5ghhU^xlc`^x!&2^&`KNhUq;wkg28U3M#{IO&uMh~_U6k9L?J6;_pyYh1skXW*KO+{|+JZO|+%D?!er)b0p| zt)w3;Q+QV`AN!gzb>&wcy-0wLczvC8?j|6cSH`AuYyjta?c|HLs*A*BNv7P^3AV8L zVc!2$fy)At%Q{YxwQy-R5p4(*`t1H)o7ORb9V74Uo1Y%Y3@%8YlR67^J^?HHt)rZelXx*1 zGD7oklYRKY*;#4(#Yh3-j3tGBd1e1^^8Iw>5Sx1(^emjcqU zkSt2cKQ5~c92Adg$x_eEO1!A3X1EL>vN2A59Yn0a55M^)u@8PtZPOWc#+ocHIJuYh zk6dE~m211C_!E_u9=aupDB-Vcy~g+WlhU?cb(;cd2nZ}x5?rFY~qz%VKGyC`3D{xDfv?2)t1HgFxMbWef8hd~42P0Kz_M4dv#M@S zk>SUXemU_0iFj3Pq5Obet$ZuZyqL$E7cock-;m?hvhFC9UgQ$P=S~;^ic#A<8@Z{z zJ<3?l9N~MeJk7AfnVe%0(QxR2)gQ}XybJ@`9edT{$ZK;^==9{$v}AlA9_eYFQ2YSJ`aqWjSXlGp*I5xx`$mt8y9-iD zNp*u8=R|m7e4#7+8^;nkgI_j|JP^r>+ShD?d2m9=HpG~s7fKx3FU6;~PFZWgAJm=k z)#;|ltJ`hHQ{WGhl{;>nrgiBM3P4bek^q2J^_SiqgaKWDMN4Y_ot##oPSn#Ve72U? z33!s{MydKpGgr?a%k<*pOHE?e0T#eo^F1W*IHk*_BV@(z3%X(6V%_&xEb=xoOf)rB zW}=j#9riIDM@ChITIZXKD9I`Mo*OR}e0t5n7cUtX$6Fa`6ypd^~rkkc1#v)Gx%=xpk+U zS?6&tAq>oWR`I0_N7v)JSyy~2WMGxxvL+?jkfr2$J%KuJj$ir&)XANN93TH%Eu%Y0 z4@*}_D-FM%h|ZGcly+SR=y1(q@Fnh7ti{s}`a65$abY57|Eue5w~DmZ2q z6c);gM&Cem;zvm>>gM|7{*BOvO;lYZT@kPIOH>nu77BgbGBMsc{*p(Ga&A zWzZwFoOLw8d=?}5(|h-~j0Qgo()8_{h8yJdPnCS&o{#~%bc0aAvB{0I%NEQ-uZKNu zW(HpN|Is8&|5uZcfNBza^%LuiMh5!YM#hHPrcjE+e+CHyU8wq?ucx7&D zM9;VtgJsG28St6APQM~!Rnr+O-t%Hw@u&Hw&F)XwHq%yY@ZrB zpy}pZ%5Es${d=_>89`+d`o_8eqb5hQDM|08eoj~8fV6~bcvZdT&sHm@51+P4LqV!r zQ}09@{Q;Y%Ds0rLGs$`fXm$IYkD`?>aJSA#jzTw+t9HWVxnJsNJg0{Kd%!vf;Tq=b z#6mP13|ZyS+gO?j1Q-|cmx#nUti|`t3zZZzD&I@*O*Soenyu9Fx#E44H5hWxvFX!V zA+)vdO&&fP-P=+2SLAx{T9&DaIR(fR(Qn>QpJ>ZDlJq-?mFsu4`D|75Zi&bKIq2^GA#^?Q8lrvH{K)OD7u|#IP{Q<6YbQ50 z3WD9qz6cCE(hGfUKA%{M%0*wnGkey_qDfiLdT`^)D04DLz_(t@JdqLSSqMkoEHqwoARA2*`B zl_VW9Q|Y>#mEPggg355NC#cHqHiU|Pd6d8a4FpGG1x3<@T}KheJ5Ky;3P_uQ2qk3? zrCXd-n*mvISmje4Q}O0r0gOAyc0ra<0Q?`;Y`RiX3u66jS;BAoh^hHv?H{;&{A|^P zW3&oX!W@9`Nv%04W!S?4&p2c~I9Zq~*TuwC(CBW84S-Y%pfRxrOw=p^*=dt4G?_bY z6jYLVQgcz*K%_#|i3M}w0`%+;cnT!u9r}81RZOCNZ#`br}J&NDm34Zlf zCa~!Otcjj>>{fu!ThEUPfyjB5Z-vlj?_&#q54S14>{{vu3KgQCP8@mO{;C~r>|{?- za|MsWN%k}(MfQ)}w@%7vHib9`To&xMM+$v2yhg!W6kDWwX8b=yomEU+ZQF%$D+P)b zm*VaYrN!NgySu|MXbZ*NU5mTB7Iz=q-Q5fP`%S*&C*g#H37OgR$hz0MR!xtLUfeaJ z#lUy=x>&*V_btAGK#K>y=-{Df?#KS_>UG z{vx#X)P72rox3{>TBZBuHWm7Dnx#N&dxj57;iHoajGrd~-q_WQUPvq*&!5sGI}_V= zMAA=On7{(Qcm;*=BkXK;$;R04s^`u24`JjAHP~#?h%&jBwK2sdN=IP_X^WtXF1Ua= zGBZ8FCpn-wkgAx<(naMq{5-5?Ema_VrOkC=<3n{2@u$c98J0A9Tr@%6EK^Jk}VeI;uYV%a%y; z4z6v?vflj1{vp|$-@mIX&-gH}zK>Kh7y(0Pk9)ZS(1{31xy9>;P;g<|iPknOxGzN@ zca!VY!%n>G)Fz0AXxi`}wtQk@?AM=OS=TGBEiDZFe&dN)0ZQpsv3XoQHMOiH_FFD3 z<&G^uHaK(A9c6J;ZY6bgYC5i<0pD>zjC(aBf>Kn|vAw8p-{~qj@d=VhQy4TiHZ3HM zmXxd^Frczmr)kUD^+hQo%n>JpHy31mgK%_uiN-V9Vd+EI+Q+n_IBXItFyIV6+<*&O z8IIPxO9ZyqOl)Xg5VNw4%LD*NhPj~6w7{ngSg2ws>$1ei1e*l`#q(s);q4iv!nj*dx{*(Pjerhy8fs?7LL51H#v2~zH@eVv z-(6fZtYy`Uva99{Z9N;WUcMAR}Ba6Gy1e@n|%&CZby{!LCDzH<)8FWVW z{rkRGrtHq$Z?I{PrvKgXh=A-DEkfM7E9ah1B+P4g(v1A;;bY>MSOxZ}b;Z5c#~rol zyI%y~>DuYef zBsW$D$f>q>J;Mk8Dc7`N!2hMbUnracQAxXf32a}%%b3T{YRPt>hZ!N<550?Iawo5< zGRLig$s_4qV5Woq2BWln+tNP}$^Y_hPtSjmI6AyLOpo^4mmbxe{ccrhRMCmDzF0IJ z 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±(a~J$yCwgL=-n`h$4C8~`vFi;bg#yL%^C^2 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%0DC1oz$_ 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 !-&x9i z4;ULo0kqX@y*Rwx(NGY=P|EWze<tu_#w4Ma6OuMX6e--d)viX5 zQ#uf2ifx&_y$xfM=jYlLfjKuSp*-;?58as__?lzE4i*F&)1R!I7wT&djjkf6=n#6w z?-SN@M7l(7`gr*1ca7XzfFfH5$`}{PvCZ*vs8=Oc-cTwM7+gX-|$Pb}3T z$R(Nangn9Wm@13CDm%|2w2GLa%yxuX8kHJoyzCF|WX#yar@hBTdf7m>|G#HN)&J?L z{&Mlb{LqzX=zU;=Tlk)8Y;ah*7waO!7pe*KX|Wi@SD+E{R(%tBFWe$&E}+p~DcM}zlg{m|wC^*! z%(XgU==un{l+UD!_k9Sy*JKh8ZG)x01_&rdNkp;V`tjv^WkUMnzQUzA33Y=c~zl>w1Y}?5hpL1)MYKDrJ+y)CzCxZ&+pce$V7mN9ifo55s<`sWah zj4$iUXy2msInXn`uNN93$ZV4{ItFPH$~b6Ux;i?Xzj%#3{WQL&&ld2xNV;PUqB!-G zhStlPJ<#3UjXpW0vC~-VHFF4gJdPF&3qg-~qBn?BR_>!39;Z7{!ep?UAjRq9#pKDW@-~DR>+53zSk6 zDHjsJGg%y{N9rhO-7liq5OvwXHsd}>CU_VXHeZ;=ywHJpZ~;hi)tpaTx6&R{u;Xg= z*WRkBA_Ap2^|<>z>lTCeOn!cAR|^Z-RJclR>9V#&CpxW36U;?+KQwpXS035KiJ@7R zlLieB-V|ny2pSC3WQ6wEQRt|DgMSVy)d5h!_`=r+Q`+|+-LA}gFhg7Z(0K=bTmH4` zhs+p;H3kCd-EYHFZ=%Nfsk4%I^Md!I%X~g^uamr*yu+#j>&a0@3S{67|Cq<>t9p?; zEj4pkBkUjKG$;t7a0H1k%xT9O+|^nnxRt6Y zI>rYs2Vgh-Cd|qU7SJs2&7QvAhx-6Yc@qKLiP;YGA1PvI+8m=uPig4KJXcSVzGj%p z0bm{DSI&0Wc-wXse?-p|;-^V^xCytiXi z9@!IseYeA5<#?4ahkm}gL%GfK@3>>1*9N}39p=xXnf4TSJUi^68aL<5BA>TlC%sgz h0XZvgsU&N^PKM$RQojnB;AYwqq#vQ`+EZu*{{ttf)QkWC diff --git a/tests/library/Sconscript b/tests/library/Sconscript deleted file mode 100644 index 433b4906..00000000 --- a/tests/library/Sconscript +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/python -Import("Test", "CONFIG") - -CONFIG.LIBRARY = True - -Test("library", "library.cpp") diff --git a/tests/library/gen_library.sh b/tests/library/gen_library.sh deleted file mode 100755 index ff213e77..00000000 --- a/tests/library/gen_library.sh +++ /dev/null @@ -1,86 +0,0 @@ -#!/bin/bash -# -# Copyright 2013 (c) Anna Schumaker. -# -# Generate a test library in /tmp -# - -declare -A genres -genres["Album 0"]=Test -genres["Album 1"]=Trial -genres["Album 2"]=Tryout - -declare -A dates -dates["Album 0"]=2011 -dates["Album 1"]=2012 -dates["Album 2"]=2013 - -# -# gen_tracks() $library $artist $album -# -function gen_tracks() -{ - library="library/$1" - artist="Artist $2" - album="Album $3" - - mkdir -p "/tmp/$library/$artist/$album" - - for i in $(seq 10); do - track="Track $i" - let remainder=$i%4 - out="/tmp/$library/$artist/$album/$i - $track.ogg" - - if [ -f "$out" ]; then - continue - fi - - case $remainder in - 0) OGG="1.ogg" ;; - 1) OGG="10.ogg" ;; - 2) OGG="60.ogg" ;; - 3) OGG="600.ogg" ;; - esac - - vorbiscomment -a -q -t "ARTIST=$artist" -t "ALBUM=$album" \ - -t "GENRE=${genres[$album]}" -t "DATE=${dates[$album]}" \ - -t "TRACKNUMBER=$i" -t "TITLE=$track" "tests/library/$OGG" \ - "/tmp/$library/$artist/$album/$i - $track.ogg" - done -} - -# -# gen_albums() $library $artist -# -function gen_albums() -{ - for i in $(seq 0 2); do - gen_tracks $1 $2 $i - done -} - -# -# gen_artists() $library -# -function gen_artists() -{ - let begin=$1*5 - let end=$begin+4 - - for i in $(seq $begin $end); do - gen_albums $1 $i - done -} - -for i in $(seq 0 4); do - echo "Generating library: $i" - gen_artists $i -done - -touch /tmp/library/file - -## -# Set up legacy library files -# -mkdir -p $HOME/.ocarina-test/library/ -cp tests/library/0 tests/library/1 tests/library/2 tests/library/3 $HOME/.ocarina-test/library/ diff --git a/tests/library/library.good b/tests/library/library.good deleted file mode 100644 index 309c7cc2..00000000 --- a/tests/library/library.good +++ /dev/null @@ -1,2704 +0,0 @@ -Generating library: 0 -Generating library: 1 -Generating library: 2 -Generating library: 3 -Generating library: 4 - -Test 0a: PASSED -Allocated rows: 0 -Valid rows: 0 -Test 0b: PASSED -Allocated rows: 0 -Valid rows: 0 - -Test 1a: Added library 0: /tmp/library/0 -PASSED -Updated library 0: /tmp/library/0 (size: 10) -Updated library 0: /tmp/library/0 (size: 20) -Updated library 0: /tmp/library/0 (size: 30) -Updated library 0: /tmp/library/0 (size: 40) -Updated library 0: /tmp/library/0 (size: 50) -Updated library 0: /tmp/library/0 (size: 60) -Updated library 0: /tmp/library/0 (size: 70) -Updated library 0: /tmp/library/0 (size: 80) -Updated library 0: /tmp/library/0 (size: 90) -Updated library 0: /tmp/library/0 (size: 100) -Updated library 0: /tmp/library/0 (size: 110) -Updated library 0: /tmp/library/0 (size: 120) -Updated library 0: /tmp/library/0 (size: 130) -Updated library 0: /tmp/library/0 (size: 140) -Updated library 0: /tmp/library/0 (size: 150) -Allocated rows: 1 -Valid rows: 1 -db[0] = /tmp/library/0 (enabled), size = 150 -Test 1b -Allocated rows: 1 -Valid rows: 0 - -Test 2a: Added library 0: /tmp/library/0 -PASSED -Updated library 0: /tmp/library/0 (size: 10) -Updated library 0: /tmp/library/0 (size: 20) -Updated library 0: /tmp/library/0 (size: 30) -Updated library 0: /tmp/library/0 (size: 40) -Updated library 0: /tmp/library/0 (size: 50) -Updated library 0: /tmp/library/0 (size: 60) -Updated library 0: /tmp/library/0 (size: 70) -Updated library 0: /tmp/library/0 (size: 80) -Updated library 0: /tmp/library/0 (size: 90) -Updated library 0: /tmp/library/0 (size: 100) -Updated library 0: /tmp/library/0 (size: 110) -Updated library 0: /tmp/library/0 (size: 120) -Updated library 0: /tmp/library/0 (size: 130) -Updated library 0: /tmp/library/0 (size: 140) -Updated library 0: /tmp/library/0 (size: 150) -Allocated rows: 1 -Valid rows: 1 -db[0] = /tmp/library/0 (enabled), size = 150 -Test 2b: Added library 1: /tmp/library/1 -PASSED -Updated library 1: /tmp/library/1 (size: 10) -Updated library 1: /tmp/library/1 (size: 20) -Updated library 1: /tmp/library/1 (size: 30) -Updated library 1: /tmp/library/1 (size: 40) -Updated library 1: /tmp/library/1 (size: 50) -Updated library 1: /tmp/library/1 (size: 60) -Updated library 1: /tmp/library/1 (size: 70) -Updated library 1: /tmp/library/1 (size: 80) -Updated library 1: /tmp/library/1 (size: 90) -Updated library 1: /tmp/library/1 (size: 100) -Updated library 1: /tmp/library/1 (size: 110) -Updated library 1: /tmp/library/1 (size: 120) -Updated library 1: /tmp/library/1 (size: 130) -Updated library 1: /tmp/library/1 (size: 140) -Updated library 1: /tmp/library/1 (size: 150) -Allocated rows: 2 -Valid rows: 2 -db[0] = /tmp/library/0 (enabled), size = 150 -db[1] = /tmp/library/1 (enabled), size = 150 -Test 2c: Added library 2: /tmp/library/2 -PASSED -Updated library 2: /tmp/library/2 (size: 10) -Updated library 2: /tmp/library/2 (size: 20) -Updated library 2: /tmp/library/2 (size: 30) -Updated library 2: /tmp/library/2 (size: 40) -Updated library 2: /tmp/library/2 (size: 50) -Updated library 2: /tmp/library/2 (size: 60) -Updated library 2: /tmp/library/2 (size: 70) -Updated library 2: /tmp/library/2 (size: 80) -Updated library 2: /tmp/library/2 (size: 90) -Updated library 2: /tmp/library/2 (size: 100) -Updated library 2: /tmp/library/2 (size: 110) -Updated library 2: /tmp/library/2 (size: 120) -Updated library 2: /tmp/library/2 (size: 130) -Updated library 2: /tmp/library/2 (size: 140) -Updated library 2: /tmp/library/2 (size: 150) -Allocated rows: 3 -Valid rows: 3 -db[0] = /tmp/library/0 (enabled), size = 150 -db[1] = /tmp/library/1 (enabled), size = 150 -db[2] = /tmp/library/2 (enabled), size = 150 -Test 2d -Allocated rows: 3 -Valid rows: 2 -db[0] = /tmp/library/0 (enabled), size = 150 -db[2] = /tmp/library/2 (enabled), size = 150 -Test 2e -Allocated rows: 3 -Valid rows: 1 -db[2] = /tmp/library/2 (enabled), size = 150 -Test 2f -Allocated rows: 3 -Valid rows: 0 - -Test 3a: Added library 0: /tmp/library/0 -PASSED -Updated library 0: /tmp/library/0 (size: 10) -Updated library 0: /tmp/library/0 (size: 20) -Updated library 0: /tmp/library/0 (size: 30) -Updated library 0: /tmp/library/0 (size: 40) -Updated library 0: /tmp/library/0 (size: 50) -Updated library 0: /tmp/library/0 (size: 60) -Updated library 0: /tmp/library/0 (size: 70) -Updated library 0: /tmp/library/0 (size: 80) -Updated library 0: /tmp/library/0 (size: 90) -Updated library 0: /tmp/library/0 (size: 100) -Updated library 0: /tmp/library/0 (size: 110) -Updated library 0: /tmp/library/0 (size: 120) -Updated library 0: /tmp/library/0 (size: 130) -Updated library 0: /tmp/library/0 (size: 140) -Updated library 0: /tmp/library/0 (size: 150) -Allocated rows: 1 -Valid rows: 1 -db[0] = /tmp/library/0 (enabled), size = 150 -Test 3b: Added library 1: /tmp/library/1 -PASSED -Updated library 1: /tmp/library/1 (size: 10) -Updated library 1: /tmp/library/1 (size: 20) -Updated library 1: /tmp/library/1 (size: 30) -Updated library 1: /tmp/library/1 (size: 40) -Updated library 1: /tmp/library/1 (size: 50) -Updated library 1: /tmp/library/1 (size: 60) -Updated library 1: /tmp/library/1 (size: 70) -Updated library 1: /tmp/library/1 (size: 80) -Updated library 1: /tmp/library/1 (size: 90) -Updated library 1: /tmp/library/1 (size: 100) -Updated library 1: /tmp/library/1 (size: 110) -Updated library 1: /tmp/library/1 (size: 120) -Updated library 1: /tmp/library/1 (size: 130) -Updated library 1: /tmp/library/1 (size: 140) -Updated library 1: /tmp/library/1 (size: 150) -Allocated rows: 2 -Valid rows: 2 -db[0] = /tmp/library/0 (enabled), size = 150 -db[1] = /tmp/library/1 (enabled), size = 150 -Test 3c: Added library 2: /tmp/library/2 -PASSED -Updated library 2: /tmp/library/2 (size: 10) -Updated library 2: /tmp/library/2 (size: 20) -Updated library 2: /tmp/library/2 (size: 30) -Updated library 2: /tmp/library/2 (size: 40) -Updated library 2: /tmp/library/2 (size: 50) -Updated library 2: /tmp/library/2 (size: 60) -Updated library 2: /tmp/library/2 (size: 70) -Updated library 2: /tmp/library/2 (size: 80) -Updated library 2: /tmp/library/2 (size: 90) -Updated library 2: /tmp/library/2 (size: 100) -Updated library 2: /tmp/library/2 (size: 110) -Updated library 2: /tmp/library/2 (size: 120) -Updated library 2: /tmp/library/2 (size: 130) -Updated library 2: /tmp/library/2 (size: 140) -Updated library 2: /tmp/library/2 (size: 150) -Allocated rows: 3 -Valid rows: 3 -db[0] = /tmp/library/0 (enabled), size = 150 -db[1] = /tmp/library/1 (enabled), size = 150 -db[2] = /tmp/library/2 (enabled), size = 150 -Test 3d -Allocated rows: 0 -Valid rows: 0 -Test 3e -Added library 0: /tmp/library/0 -Added library 1: /tmp/library/1 -Added library 2: /tmp/library/2 -Allocated rows: 3 -Valid rows: 3 -db[0] = /tmp/library/0 (enabled), size = 150 -db[1] = /tmp/library/1 (enabled), size = 150 -db[2] = /tmp/library/2 (enabled), size = 150 - -Test 4a: Added library 0: /tmp/library/0 -PASSED -Updated library 0: /tmp/library/0 (size: 10) -Updated library 0: /tmp/library/0 (size: 20) -Updated library 0: /tmp/library/0 (size: 30) -Updated library 0: /tmp/library/0 (size: 40) -Updated library 0: /tmp/library/0 (size: 50) -Updated library 0: /tmp/library/0 (size: 60) -Updated library 0: /tmp/library/0 (size: 70) -Updated library 0: /tmp/library/0 (size: 80) -Updated library 0: /tmp/library/0 (size: 90) -Updated library 0: /tmp/library/0 (size: 100) -Updated library 0: /tmp/library/0 (size: 110) -Updated library 0: /tmp/library/0 (size: 120) -Updated library 0: /tmp/library/0 (size: 130) -Updated library 0: /tmp/library/0 (size: 140) -Updated library 0: /tmp/library/0 (size: 150) -Allocated rows: 1 -Valid rows: 1 -db[0] = /tmp/library/0 (enabled), size = 150 -Allocated rows: 5 -Valid rows: 5 -db[0] = Artist: Artist 2 -db[1] = Artist: Artist 4 -db[2] = Artist: Artist 3 -db[3] = Artist: Artist 1 -db[4] = Artist: Artist 0 - -Allocated rows: 15 -Valid rows: 15 -db[0] = Album: Album 2 (2013) by Artist 2 -db[1] = Album: Album 1 (2012) by Artist 2 -db[2] = Album: Album 0 (2011) by Artist 2 -db[3] = Album: Album 2 (2013) by Artist 4 -db[4] = Album: Album 1 (2012) by Artist 4 -db[5] = Album: Album 0 (2011) by Artist 4 -db[6] = Album: Album 2 (2013) by Artist 3 -db[7] = Album: Album 1 (2012) by Artist 3 -db[8] = Album: Album 0 (2011) by Artist 3 -db[9] = Album: Album 2 (2013) by Artist 1 -db[10] = Album: Album 1 (2012) by Artist 1 -db[11] = Album: Album 0 (2011) by Artist 1 -db[12] = Album: Album 2 (2013) by Artist 0 -db[13] = Album: Album 1 (2012) by Artist 0 -db[14] = Album: Album 0 (2011) by Artist 0 - -Allocated rows: 3 -Valid rows: 3 -db[0] = Genre: Tryout -db[1] = Genre: Trial -db[2] = Genre: Test - -Allocated rows: 150 -Valid rows: 150 -db[0] = 10. Track 10 by Artist 2 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 2/10 - Track 10.ogg -db[1] = 9. Track 9 by Artist 2 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 2/9 - Track 9.ogg -db[2] = 8. Track 8 by Artist 2 from Album 2 (2013) - Genre: Tryout, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 2/8 - Track 8.ogg -db[3] = 7. Track 7 by Artist 2 from Album 2 (2013) - Genre: Tryout, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 2/7 - Track 7.ogg -db[4] = 6. Track 6 by Artist 2 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 2/6 - Track 6.ogg -db[5] = 5. Track 5 by Artist 2 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 2/5 - Track 5.ogg -db[6] = 4. Track 4 by Artist 2 from Album 2 (2013) - Genre: Tryout, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 2/4 - Track 4.ogg -db[7] = 3. Track 3 by Artist 2 from Album 2 (2013) - Genre: Tryout, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 2/3 - Track 3.ogg -db[8] = 2. Track 2 by Artist 2 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 2/2 - Track 2.ogg -db[9] = 1. Track 1 by Artist 2 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 2/1 - Track 1.ogg -db[10] = 10. Track 10 by Artist 2 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 1/10 - Track 10.ogg -db[11] = 9. Track 9 by Artist 2 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 1/9 - Track 9.ogg -db[12] = 8. Track 8 by Artist 2 from Album 1 (2012) - Genre: Trial, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 1/8 - Track 8.ogg -db[13] = 7. Track 7 by Artist 2 from Album 1 (2012) - Genre: Trial, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 1/7 - Track 7.ogg -db[14] = 6. Track 6 by Artist 2 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 1/6 - Track 6.ogg -db[15] = 5. Track 5 by Artist 2 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 1/5 - Track 5.ogg -db[16] = 4. Track 4 by Artist 2 from Album 1 (2012) - Genre: Trial, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 1/4 - Track 4.ogg -db[17] = 3. Track 3 by Artist 2 from Album 1 (2012) - Genre: Trial, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 1/3 - Track 3.ogg -db[18] = 2. Track 2 by Artist 2 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 1/2 - Track 2.ogg -db[19] = 1. Track 1 by Artist 2 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 1/1 - Track 1.ogg -db[20] = 10. Track 10 by Artist 2 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 0/10 - Track 10.ogg -db[21] = 9. Track 9 by Artist 2 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 0/9 - Track 9.ogg -db[22] = 8. Track 8 by Artist 2 from Album 0 (2011) - Genre: Test, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 0/8 - Track 8.ogg -db[23] = 7. Track 7 by Artist 2 from Album 0 (2011) - Genre: Test, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 0/7 - Track 7.ogg -db[24] = 6. Track 6 by Artist 2 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 0/6 - Track 6.ogg -db[25] = 5. Track 5 by Artist 2 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 0/5 - Track 5.ogg -db[26] = 4. Track 4 by Artist 2 from Album 0 (2011) - Genre: Test, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 0/4 - Track 4.ogg -db[27] = 3. Track 3 by Artist 2 from Album 0 (2011) - Genre: Test, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 0/3 - Track 3.ogg -db[28] = 2. Track 2 by Artist 2 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 0/2 - Track 2.ogg -db[29] = 1. Track 1 by Artist 2 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 0/1 - Track 1.ogg -db[30] = 10. Track 10 by Artist 4 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 2/10 - Track 10.ogg -db[31] = 9. Track 9 by Artist 4 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 2/9 - Track 9.ogg -db[32] = 8. Track 8 by Artist 4 from Album 2 (2013) - Genre: Tryout, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 2/8 - Track 8.ogg -db[33] = 7. Track 7 by Artist 4 from Album 2 (2013) - Genre: Tryout, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 2/7 - Track 7.ogg -db[34] = 6. Track 6 by Artist 4 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 2/6 - Track 6.ogg -db[35] = 5. Track 5 by Artist 4 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 2/5 - Track 5.ogg -db[36] = 4. Track 4 by Artist 4 from Album 2 (2013) - Genre: Tryout, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 2/4 - Track 4.ogg -db[37] = 3. Track 3 by Artist 4 from Album 2 (2013) - Genre: Tryout, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 2/3 - Track 3.ogg -db[38] = 2. Track 2 by Artist 4 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 2/2 - Track 2.ogg -db[39] = 1. Track 1 by Artist 4 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 2/1 - Track 1.ogg -db[40] = 10. Track 10 by Artist 4 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 1/10 - Track 10.ogg -db[41] = 9. Track 9 by Artist 4 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 1/9 - Track 9.ogg -db[42] = 8. Track 8 by Artist 4 from Album 1 (2012) - Genre: Trial, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 1/8 - Track 8.ogg -db[43] = 7. Track 7 by Artist 4 from Album 1 (2012) - Genre: Trial, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 1/7 - Track 7.ogg -db[44] = 6. Track 6 by Artist 4 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 1/6 - Track 6.ogg -db[45] = 5. Track 5 by Artist 4 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 1/5 - Track 5.ogg -db[46] = 4. Track 4 by Artist 4 from Album 1 (2012) - Genre: Trial, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 1/4 - Track 4.ogg -db[47] = 3. Track 3 by Artist 4 from Album 1 (2012) - Genre: Trial, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 1/3 - Track 3.ogg -db[48] = 2. Track 2 by Artist 4 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 1/2 - Track 2.ogg -db[49] = 1. Track 1 by Artist 4 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 1/1 - Track 1.ogg -db[50] = 10. Track 10 by Artist 4 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 0/10 - Track 10.ogg -db[51] = 9. Track 9 by Artist 4 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 0/9 - Track 9.ogg -db[52] = 8. Track 8 by Artist 4 from Album 0 (2011) - Genre: Test, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 0/8 - Track 8.ogg -db[53] = 7. Track 7 by Artist 4 from Album 0 (2011) - Genre: Test, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 0/7 - Track 7.ogg -db[54] = 6. Track 6 by Artist 4 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 0/6 - Track 6.ogg -db[55] = 5. Track 5 by Artist 4 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 0/5 - Track 5.ogg -db[56] = 4. Track 4 by Artist 4 from Album 0 (2011) - Genre: Test, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 0/4 - Track 4.ogg -db[57] = 3. Track 3 by Artist 4 from Album 0 (2011) - Genre: Test, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 0/3 - Track 3.ogg -db[58] = 2. Track 2 by Artist 4 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 0/2 - Track 2.ogg -db[59] = 1. Track 1 by Artist 4 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 0/1 - Track 1.ogg -db[60] = 10. Track 10 by Artist 3 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 2/10 - Track 10.ogg -db[61] = 9. Track 9 by Artist 3 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 2/9 - Track 9.ogg -db[62] = 8. Track 8 by Artist 3 from Album 2 (2013) - Genre: Tryout, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 2/8 - Track 8.ogg -db[63] = 7. Track 7 by Artist 3 from Album 2 (2013) - Genre: Tryout, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 2/7 - Track 7.ogg -db[64] = 6. Track 6 by Artist 3 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 2/6 - Track 6.ogg -db[65] = 5. Track 5 by Artist 3 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 2/5 - Track 5.ogg -db[66] = 4. Track 4 by Artist 3 from Album 2 (2013) - Genre: Tryout, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 2/4 - Track 4.ogg -db[67] = 3. Track 3 by Artist 3 from Album 2 (2013) - Genre: Tryout, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 2/3 - Track 3.ogg -db[68] = 2. Track 2 by Artist 3 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 2/2 - Track 2.ogg -db[69] = 1. Track 1 by Artist 3 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 2/1 - Track 1.ogg -db[70] = 10. Track 10 by Artist 3 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 1/10 - Track 10.ogg -db[71] = 9. Track 9 by Artist 3 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 1/9 - Track 9.ogg -db[72] = 8. Track 8 by Artist 3 from Album 1 (2012) - Genre: Trial, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 1/8 - Track 8.ogg -db[73] = 7. Track 7 by Artist 3 from Album 1 (2012) - Genre: Trial, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 1/7 - Track 7.ogg -db[74] = 6. Track 6 by Artist 3 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 1/6 - Track 6.ogg -db[75] = 5. Track 5 by Artist 3 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 1/5 - Track 5.ogg -db[76] = 4. Track 4 by Artist 3 from Album 1 (2012) - Genre: Trial, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 1/4 - Track 4.ogg -db[77] = 3. Track 3 by Artist 3 from Album 1 (2012) - Genre: Trial, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 1/3 - Track 3.ogg -db[78] = 2. Track 2 by Artist 3 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 1/2 - Track 2.ogg -db[79] = 1. Track 1 by Artist 3 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 1/1 - Track 1.ogg -db[80] = 10. Track 10 by Artist 3 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 0/10 - Track 10.ogg -db[81] = 9. Track 9 by Artist 3 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 0/9 - Track 9.ogg -db[82] = 8. Track 8 by Artist 3 from Album 0 (2011) - Genre: Test, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 0/8 - Track 8.ogg -db[83] = 7. Track 7 by Artist 3 from Album 0 (2011) - Genre: Test, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 0/7 - Track 7.ogg -db[84] = 6. Track 6 by Artist 3 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 0/6 - Track 6.ogg -db[85] = 5. Track 5 by Artist 3 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 0/5 - Track 5.ogg -db[86] = 4. Track 4 by Artist 3 from Album 0 (2011) - Genre: Test, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 0/4 - Track 4.ogg -db[87] = 3. Track 3 by Artist 3 from Album 0 (2011) - Genre: Test, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 0/3 - Track 3.ogg -db[88] = 2. Track 2 by Artist 3 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 0/2 - Track 2.ogg -db[89] = 1. Track 1 by Artist 3 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 0/1 - Track 1.ogg -db[90] = 10. Track 10 by Artist 1 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 2/10 - Track 10.ogg -db[91] = 9. Track 9 by Artist 1 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 2/9 - Track 9.ogg -db[92] = 8. Track 8 by Artist 1 from Album 2 (2013) - Genre: Tryout, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 2/8 - Track 8.ogg -db[93] = 7. Track 7 by Artist 1 from Album 2 (2013) - Genre: Tryout, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 2/7 - Track 7.ogg -db[94] = 6. Track 6 by Artist 1 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 2/6 - Track 6.ogg -db[95] = 5. Track 5 by Artist 1 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 2/5 - Track 5.ogg -db[96] = 4. Track 4 by Artist 1 from Album 2 (2013) - Genre: Tryout, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 2/4 - Track 4.ogg -db[97] = 3. Track 3 by Artist 1 from Album 2 (2013) - Genre: Tryout, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 2/3 - Track 3.ogg -db[98] = 2. Track 2 by Artist 1 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 2/2 - Track 2.ogg -db[99] = 1. Track 1 by Artist 1 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 2/1 - Track 1.ogg -db[100] = 10. Track 10 by Artist 1 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 1/10 - Track 10.ogg -db[101] = 9. Track 9 by Artist 1 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 1/9 - Track 9.ogg -db[102] = 8. Track 8 by Artist 1 from Album 1 (2012) - Genre: Trial, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 1/8 - Track 8.ogg -db[103] = 7. Track 7 by Artist 1 from Album 1 (2012) - Genre: Trial, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 1/7 - Track 7.ogg -db[104] = 6. Track 6 by Artist 1 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 1/6 - Track 6.ogg -db[105] = 5. Track 5 by Artist 1 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 1/5 - Track 5.ogg -db[106] = 4. Track 4 by Artist 1 from Album 1 (2012) - Genre: Trial, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 1/4 - Track 4.ogg -db[107] = 3. Track 3 by Artist 1 from Album 1 (2012) - Genre: Trial, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 1/3 - Track 3.ogg -db[108] = 2. Track 2 by Artist 1 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 1/2 - Track 2.ogg -db[109] = 1. Track 1 by Artist 1 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 1/1 - Track 1.ogg -db[110] = 10. Track 10 by Artist 1 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 0/10 - Track 10.ogg -db[111] = 9. Track 9 by Artist 1 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 0/9 - Track 9.ogg -db[112] = 8. Track 8 by Artist 1 from Album 0 (2011) - Genre: Test, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 0/8 - Track 8.ogg -db[113] = 7. Track 7 by Artist 1 from Album 0 (2011) - Genre: Test, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 0/7 - Track 7.ogg -db[114] = 6. Track 6 by Artist 1 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 0/6 - Track 6.ogg -db[115] = 5. Track 5 by Artist 1 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 0/5 - Track 5.ogg -db[116] = 4. Track 4 by Artist 1 from Album 0 (2011) - Genre: Test, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 0/4 - Track 4.ogg -db[117] = 3. Track 3 by Artist 1 from Album 0 (2011) - Genre: Test, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 0/3 - Track 3.ogg -db[118] = 2. Track 2 by Artist 1 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 0/2 - Track 2.ogg -db[119] = 1. Track 1 by Artist 1 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 0/1 - Track 1.ogg -db[120] = 10. Track 10 by Artist 0 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 2/10 - Track 10.ogg -db[121] = 9. Track 9 by Artist 0 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 2/9 - Track 9.ogg -db[122] = 8. Track 8 by Artist 0 from Album 2 (2013) - Genre: Tryout, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 2/8 - Track 8.ogg -db[123] = 7. Track 7 by Artist 0 from Album 2 (2013) - Genre: Tryout, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 2/7 - Track 7.ogg -db[124] = 6. Track 6 by Artist 0 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 2/6 - Track 6.ogg -db[125] = 5. Track 5 by Artist 0 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 2/5 - Track 5.ogg -db[126] = 4. Track 4 by Artist 0 from Album 2 (2013) - Genre: Tryout, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 2/4 - Track 4.ogg -db[127] = 3. Track 3 by Artist 0 from Album 2 (2013) - Genre: Tryout, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 2/3 - Track 3.ogg -db[128] = 2. Track 2 by Artist 0 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 2/2 - Track 2.ogg -db[129] = 1. Track 1 by Artist 0 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 2/1 - Track 1.ogg -db[130] = 10. Track 10 by Artist 0 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 1/10 - Track 10.ogg -db[131] = 9. Track 9 by Artist 0 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 1/9 - Track 9.ogg -db[132] = 8. Track 8 by Artist 0 from Album 1 (2012) - Genre: Trial, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 1/8 - Track 8.ogg -db[133] = 7. Track 7 by Artist 0 from Album 1 (2012) - Genre: Trial, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 1/7 - Track 7.ogg -db[134] = 6. Track 6 by Artist 0 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 1/6 - Track 6.ogg -db[135] = 5. Track 5 by Artist 0 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 1/5 - Track 5.ogg -db[136] = 4. Track 4 by Artist 0 from Album 1 (2012) - Genre: Trial, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 1/4 - Track 4.ogg -db[137] = 3. Track 3 by Artist 0 from Album 1 (2012) - Genre: Trial, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 1/3 - Track 3.ogg -db[138] = 2. Track 2 by Artist 0 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 1/2 - Track 2.ogg -db[139] = 1. Track 1 by Artist 0 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 1/1 - Track 1.ogg -db[140] = 10. Track 10 by Artist 0 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 0/10 - Track 10.ogg -db[141] = 9. Track 9 by Artist 0 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 0/9 - Track 9.ogg -db[142] = 8. Track 8 by Artist 0 from Album 0 (2011) - Genre: Test, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 0/8 - Track 8.ogg -db[143] = 7. Track 7 by Artist 0 from Album 0 (2011) - Genre: Test, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 0/7 - Track 7.ogg -db[144] = 6. Track 6 by Artist 0 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 0/6 - Track 6.ogg -db[145] = 5. Track 5 by Artist 0 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 0/5 - Track 5.ogg -db[146] = 4. Track 4 by Artist 0 from Album 0 (2011) - Genre: Test, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 0/4 - Track 4.ogg -db[147] = 3. Track 3 by Artist 0 from Album 0 (2011) - Genre: Test, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 0/3 - Track 3.ogg -db[148] = 2. Track 2 by Artist 0 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 0/2 - Track 2.ogg -db[149] = 1. Track 1 by Artist 0 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 0/1 - Track 1.ogg - -Test 5a (track_id == 0): PASSED -Test 5b: Added library 0: /tmp/library/0 -PASSED -Updated library 0: /tmp/library/0 (size: 10) -Updated library 0: /tmp/library/0 (size: 20) -Updated library 0: /tmp/library/0 (size: 30) -Updated library 0: /tmp/library/0 (size: 40) -Updated library 0: /tmp/library/0 (size: 50) -Updated library 0: /tmp/library/0 (size: 60) -Updated library 0: /tmp/library/0 (size: 70) -Updated library 0: /tmp/library/0 (size: 80) -Updated library 0: /tmp/library/0 (size: 90) -Updated library 0: /tmp/library/0 (size: 100) -Updated library 0: /tmp/library/0 (size: 110) -Updated library 0: /tmp/library/0 (size: 120) -Updated library 0: /tmp/library/0 (size: 130) -Updated library 0: /tmp/library/0 (size: 140) -Updated library 0: /tmp/library/0 (size: 150) -Allocated rows: 1 -Valid rows: 1 -db[0] = /tmp/library/0 (enabled), size = 150 -Test 5c (track_id == 0): PASSED - Track 10 (track 10) by Artist 2 (artist 2) from Album 2 (album 2) Length: 1:00 - Genre: Tryout (tryout), Library: /tmp/library/0 -Test 5d (track_id == 42): PASSED - Track 8 (track 8) by Artist 4 (artist 4) from Album 1 (album 1) Length: 0:01 - Genre: Trial (trial), Library: /tmp/library/0 -Test 5e (track_id == 100000): PASSED -Test 5f (lib_id == 0): PASSED -/tmp/library/0 (enabled) size = 150 -Test 5g (lib_id == 1): PASSED - -Test 6a: Added library 0: /tmp/library/0 -PASSED -Updated library 0: /tmp/library/0 (size: 10) -Updated library 0: /tmp/library/0 (size: 20) -Updated library 0: /tmp/library/0 (size: 30) -Updated library 0: /tmp/library/0 (size: 40) -Updated library 0: /tmp/library/0 (size: 50) -Updated library 0: /tmp/library/0 (size: 60) -Updated library 0: /tmp/library/0 (size: 70) -Updated library 0: /tmp/library/0 (size: 80) -Updated library 0: /tmp/library/0 (size: 90) -Updated library 0: /tmp/library/0 (size: 100) -Updated library 0: /tmp/library/0 (size: 110) -Updated library 0: /tmp/library/0 (size: 120) -Updated library 0: /tmp/library/0 (size: 130) -Updated library 0: /tmp/library/0 (size: 140) -Updated library 0: /tmp/library/0 (size: 150) -Allocated rows: 1 -Valid rows: 1 -db[0] = /tmp/library/0 (enabled), size = 150 - -6b: Updating library 0 (nothing should change) -Allocated rows: 150 -Valid rows: 150 -db[0] = 10. Track 10 by Artist 2 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 2/10 - Track 10.ogg -db[1] = 9. Track 9 by Artist 2 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 2/9 - Track 9.ogg -db[2] = 8. Track 8 by Artist 2 from Album 2 (2013) - Genre: Tryout, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 2/8 - Track 8.ogg -db[3] = 7. Track 7 by Artist 2 from Album 2 (2013) - Genre: Tryout, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 2/7 - Track 7.ogg -db[4] = 6. Track 6 by Artist 2 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 2/6 - Track 6.ogg -db[5] = 5. Track 5 by Artist 2 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 2/5 - Track 5.ogg -db[6] = 4. Track 4 by Artist 2 from Album 2 (2013) - Genre: Tryout, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 2/4 - Track 4.ogg -db[7] = 3. Track 3 by Artist 2 from Album 2 (2013) - Genre: Tryout, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 2/3 - Track 3.ogg -db[8] = 2. Track 2 by Artist 2 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 2/2 - Track 2.ogg -db[9] = 1. Track 1 by Artist 2 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 2/1 - Track 1.ogg -db[10] = 10. Track 10 by Artist 2 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 1/10 - Track 10.ogg -db[11] = 9. Track 9 by Artist 2 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 1/9 - Track 9.ogg -db[12] = 8. Track 8 by Artist 2 from Album 1 (2012) - Genre: Trial, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 1/8 - Track 8.ogg -db[13] = 7. Track 7 by Artist 2 from Album 1 (2012) - Genre: Trial, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 1/7 - Track 7.ogg -db[14] = 6. Track 6 by Artist 2 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 1/6 - Track 6.ogg -db[15] = 5. Track 5 by Artist 2 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 1/5 - Track 5.ogg -db[16] = 4. Track 4 by Artist 2 from Album 1 (2012) - Genre: Trial, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 1/4 - Track 4.ogg -db[17] = 3. Track 3 by Artist 2 from Album 1 (2012) - Genre: Trial, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 1/3 - Track 3.ogg -db[18] = 2. Track 2 by Artist 2 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 1/2 - Track 2.ogg -db[19] = 1. Track 1 by Artist 2 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 1/1 - Track 1.ogg -db[20] = 10. Track 10 by Artist 2 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 0/10 - Track 10.ogg -db[21] = 9. Track 9 by Artist 2 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 0/9 - Track 9.ogg -db[22] = 8. Track 8 by Artist 2 from Album 0 (2011) - Genre: Test, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 0/8 - Track 8.ogg -db[23] = 7. Track 7 by Artist 2 from Album 0 (2011) - Genre: Test, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 0/7 - Track 7.ogg -db[24] = 6. Track 6 by Artist 2 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 0/6 - Track 6.ogg -db[25] = 5. Track 5 by Artist 2 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 0/5 - Track 5.ogg -db[26] = 4. Track 4 by Artist 2 from Album 0 (2011) - Genre: Test, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 0/4 - Track 4.ogg -db[27] = 3. Track 3 by Artist 2 from Album 0 (2011) - Genre: Test, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 0/3 - Track 3.ogg -db[28] = 2. Track 2 by Artist 2 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 0/2 - Track 2.ogg -db[29] = 1. Track 1 by Artist 2 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 0/1 - Track 1.ogg -db[30] = 10. Track 10 by Artist 4 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 2/10 - Track 10.ogg -db[31] = 9. Track 9 by Artist 4 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 2/9 - Track 9.ogg -db[32] = 8. Track 8 by Artist 4 from Album 2 (2013) - Genre: Tryout, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 2/8 - Track 8.ogg -db[33] = 7. Track 7 by Artist 4 from Album 2 (2013) - Genre: Tryout, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 2/7 - Track 7.ogg -db[34] = 6. Track 6 by Artist 4 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 2/6 - Track 6.ogg -db[35] = 5. Track 5 by Artist 4 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 2/5 - Track 5.ogg -db[36] = 4. Track 4 by Artist 4 from Album 2 (2013) - Genre: Tryout, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 2/4 - Track 4.ogg -db[37] = 3. Track 3 by Artist 4 from Album 2 (2013) - Genre: Tryout, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 2/3 - Track 3.ogg -db[38] = 2. Track 2 by Artist 4 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 2/2 - Track 2.ogg -db[39] = 1. Track 1 by Artist 4 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 2/1 - Track 1.ogg -db[40] = 10. Track 10 by Artist 4 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 1/10 - Track 10.ogg -db[41] = 9. Track 9 by Artist 4 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 1/9 - Track 9.ogg -db[42] = 8. Track 8 by Artist 4 from Album 1 (2012) - Genre: Trial, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 1/8 - Track 8.ogg -db[43] = 7. Track 7 by Artist 4 from Album 1 (2012) - Genre: Trial, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 1/7 - Track 7.ogg -db[44] = 6. Track 6 by Artist 4 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 1/6 - Track 6.ogg -db[45] = 5. Track 5 by Artist 4 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 1/5 - Track 5.ogg -db[46] = 4. Track 4 by Artist 4 from Album 1 (2012) - Genre: Trial, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 1/4 - Track 4.ogg -db[47] = 3. Track 3 by Artist 4 from Album 1 (2012) - Genre: Trial, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 1/3 - Track 3.ogg -db[48] = 2. Track 2 by Artist 4 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 1/2 - Track 2.ogg -db[49] = 1. Track 1 by Artist 4 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 1/1 - Track 1.ogg -db[50] = 10. Track 10 by Artist 4 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 0/10 - Track 10.ogg -db[51] = 9. Track 9 by Artist 4 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 0/9 - Track 9.ogg -db[52] = 8. Track 8 by Artist 4 from Album 0 (2011) - Genre: Test, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 0/8 - Track 8.ogg -db[53] = 7. Track 7 by Artist 4 from Album 0 (2011) - Genre: Test, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 0/7 - Track 7.ogg -db[54] = 6. Track 6 by Artist 4 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 0/6 - Track 6.ogg -db[55] = 5. Track 5 by Artist 4 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 0/5 - Track 5.ogg -db[56] = 4. Track 4 by Artist 4 from Album 0 (2011) - Genre: Test, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 0/4 - Track 4.ogg -db[57] = 3. Track 3 by Artist 4 from Album 0 (2011) - Genre: Test, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 0/3 - Track 3.ogg -db[58] = 2. Track 2 by Artist 4 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 0/2 - Track 2.ogg -db[59] = 1. Track 1 by Artist 4 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 0/1 - Track 1.ogg -db[60] = 10. Track 10 by Artist 3 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 2/10 - Track 10.ogg -db[61] = 9. Track 9 by Artist 3 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 2/9 - Track 9.ogg -db[62] = 8. Track 8 by Artist 3 from Album 2 (2013) - Genre: Tryout, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 2/8 - Track 8.ogg -db[63] = 7. Track 7 by Artist 3 from Album 2 (2013) - Genre: Tryout, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 2/7 - Track 7.ogg -db[64] = 6. Track 6 by Artist 3 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 2/6 - Track 6.ogg -db[65] = 5. Track 5 by Artist 3 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 2/5 - Track 5.ogg -db[66] = 4. Track 4 by Artist 3 from Album 2 (2013) - Genre: Tryout, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 2/4 - Track 4.ogg -db[67] = 3. Track 3 by Artist 3 from Album 2 (2013) - Genre: Tryout, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 2/3 - Track 3.ogg -db[68] = 2. Track 2 by Artist 3 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 2/2 - Track 2.ogg -db[69] = 1. Track 1 by Artist 3 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 2/1 - Track 1.ogg -db[70] = 10. Track 10 by Artist 3 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 1/10 - Track 10.ogg -db[71] = 9. Track 9 by Artist 3 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 1/9 - Track 9.ogg -db[72] = 8. Track 8 by Artist 3 from Album 1 (2012) - Genre: Trial, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 1/8 - Track 8.ogg -db[73] = 7. Track 7 by Artist 3 from Album 1 (2012) - Genre: Trial, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 1/7 - Track 7.ogg -db[74] = 6. Track 6 by Artist 3 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 1/6 - Track 6.ogg -db[75] = 5. Track 5 by Artist 3 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 1/5 - Track 5.ogg -db[76] = 4. Track 4 by Artist 3 from Album 1 (2012) - Genre: Trial, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 1/4 - Track 4.ogg -db[77] = 3. Track 3 by Artist 3 from Album 1 (2012) - Genre: Trial, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 1/3 - Track 3.ogg -db[78] = 2. Track 2 by Artist 3 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 1/2 - Track 2.ogg -db[79] = 1. Track 1 by Artist 3 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 1/1 - Track 1.ogg -db[80] = 10. Track 10 by Artist 3 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 0/10 - Track 10.ogg -db[81] = 9. Track 9 by Artist 3 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 0/9 - Track 9.ogg -db[82] = 8. Track 8 by Artist 3 from Album 0 (2011) - Genre: Test, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 0/8 - Track 8.ogg -db[83] = 7. Track 7 by Artist 3 from Album 0 (2011) - Genre: Test, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 0/7 - Track 7.ogg -db[84] = 6. Track 6 by Artist 3 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 0/6 - Track 6.ogg -db[85] = 5. Track 5 by Artist 3 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 0/5 - Track 5.ogg -db[86] = 4. Track 4 by Artist 3 from Album 0 (2011) - Genre: Test, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 0/4 - Track 4.ogg -db[87] = 3. Track 3 by Artist 3 from Album 0 (2011) - Genre: Test, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 0/3 - Track 3.ogg -db[88] = 2. Track 2 by Artist 3 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 0/2 - Track 2.ogg -db[89] = 1. Track 1 by Artist 3 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 0/1 - Track 1.ogg -db[90] = 10. Track 10 by Artist 1 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 2/10 - Track 10.ogg -db[91] = 9. Track 9 by Artist 1 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 2/9 - Track 9.ogg -db[92] = 8. Track 8 by Artist 1 from Album 2 (2013) - Genre: Tryout, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 2/8 - Track 8.ogg -db[93] = 7. Track 7 by Artist 1 from Album 2 (2013) - Genre: Tryout, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 2/7 - Track 7.ogg -db[94] = 6. Track 6 by Artist 1 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 2/6 - Track 6.ogg -db[95] = 5. Track 5 by Artist 1 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 2/5 - Track 5.ogg -db[96] = 4. Track 4 by Artist 1 from Album 2 (2013) - Genre: Tryout, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 2/4 - Track 4.ogg -db[97] = 3. Track 3 by Artist 1 from Album 2 (2013) - Genre: Tryout, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 2/3 - Track 3.ogg -db[98] = 2. Track 2 by Artist 1 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 2/2 - Track 2.ogg -db[99] = 1. Track 1 by Artist 1 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 2/1 - Track 1.ogg -db[100] = 10. Track 10 by Artist 1 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 1/10 - Track 10.ogg -db[101] = 9. Track 9 by Artist 1 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 1/9 - Track 9.ogg -db[102] = 8. Track 8 by Artist 1 from Album 1 (2012) - Genre: Trial, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 1/8 - Track 8.ogg -db[103] = 7. Track 7 by Artist 1 from Album 1 (2012) - Genre: Trial, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 1/7 - Track 7.ogg -db[104] = 6. Track 6 by Artist 1 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 1/6 - Track 6.ogg -db[105] = 5. Track 5 by Artist 1 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 1/5 - Track 5.ogg -db[106] = 4. Track 4 by Artist 1 from Album 1 (2012) - Genre: Trial, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 1/4 - Track 4.ogg -db[107] = 3. Track 3 by Artist 1 from Album 1 (2012) - Genre: Trial, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 1/3 - Track 3.ogg -db[108] = 2. Track 2 by Artist 1 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 1/2 - Track 2.ogg -db[109] = 1. Track 1 by Artist 1 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 1/1 - Track 1.ogg -db[110] = 10. Track 10 by Artist 1 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 0/10 - Track 10.ogg -db[111] = 9. Track 9 by Artist 1 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 0/9 - Track 9.ogg -db[112] = 8. Track 8 by Artist 1 from Album 0 (2011) - Genre: Test, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 0/8 - Track 8.ogg -db[113] = 7. Track 7 by Artist 1 from Album 0 (2011) - Genre: Test, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 0/7 - Track 7.ogg -db[114] = 6. Track 6 by Artist 1 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 0/6 - Track 6.ogg -db[115] = 5. Track 5 by Artist 1 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 0/5 - Track 5.ogg -db[116] = 4. Track 4 by Artist 1 from Album 0 (2011) - Genre: Test, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 0/4 - Track 4.ogg -db[117] = 3. Track 3 by Artist 1 from Album 0 (2011) - Genre: Test, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 0/3 - Track 3.ogg -db[118] = 2. Track 2 by Artist 1 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 0/2 - Track 2.ogg -db[119] = 1. Track 1 by Artist 1 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 0/1 - Track 1.ogg -db[120] = 10. Track 10 by Artist 0 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 2/10 - Track 10.ogg -db[121] = 9. Track 9 by Artist 0 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 2/9 - Track 9.ogg -db[122] = 8. Track 8 by Artist 0 from Album 2 (2013) - Genre: Tryout, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 2/8 - Track 8.ogg -db[123] = 7. Track 7 by Artist 0 from Album 2 (2013) - Genre: Tryout, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 2/7 - Track 7.ogg -db[124] = 6. Track 6 by Artist 0 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 2/6 - Track 6.ogg -db[125] = 5. Track 5 by Artist 0 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 2/5 - Track 5.ogg -db[126] = 4. Track 4 by Artist 0 from Album 2 (2013) - Genre: Tryout, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 2/4 - Track 4.ogg -db[127] = 3. Track 3 by Artist 0 from Album 2 (2013) - Genre: Tryout, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 2/3 - Track 3.ogg -db[128] = 2. Track 2 by Artist 0 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 2/2 - Track 2.ogg -db[129] = 1. Track 1 by Artist 0 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 2/1 - Track 1.ogg -db[130] = 10. Track 10 by Artist 0 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 1/10 - Track 10.ogg -db[131] = 9. Track 9 by Artist 0 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 1/9 - Track 9.ogg -db[132] = 8. Track 8 by Artist 0 from Album 1 (2012) - Genre: Trial, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 1/8 - Track 8.ogg -db[133] = 7. Track 7 by Artist 0 from Album 1 (2012) - Genre: Trial, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 1/7 - Track 7.ogg -db[134] = 6. Track 6 by Artist 0 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 1/6 - Track 6.ogg -db[135] = 5. Track 5 by Artist 0 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 1/5 - Track 5.ogg -db[136] = 4. Track 4 by Artist 0 from Album 1 (2012) - Genre: Trial, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 1/4 - Track 4.ogg -db[137] = 3. Track 3 by Artist 0 from Album 1 (2012) - Genre: Trial, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 1/3 - Track 3.ogg -db[138] = 2. Track 2 by Artist 0 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 1/2 - Track 2.ogg -db[139] = 1. Track 1 by Artist 0 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 1/1 - Track 1.ogg -db[140] = 10. Track 10 by Artist 0 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 0/10 - Track 10.ogg -db[141] = 9. Track 9 by Artist 0 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 0/9 - Track 9.ogg -db[142] = 8. Track 8 by Artist 0 from Album 0 (2011) - Genre: Test, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 0/8 - Track 8.ogg -db[143] = 7. Track 7 by Artist 0 from Album 0 (2011) - Genre: Test, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 0/7 - Track 7.ogg -db[144] = 6. Track 6 by Artist 0 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 0/6 - Track 6.ogg -db[145] = 5. Track 5 by Artist 0 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 0/5 - Track 5.ogg -db[146] = 4. Track 4 by Artist 0 from Album 0 (2011) - Genre: Test, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 0/4 - Track 4.ogg -db[147] = 3. Track 3 by Artist 0 from Album 0 (2011) - Genre: Test, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 0/3 - Track 3.ogg -db[148] = 2. Track 2 by Artist 0 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 0/2 - Track 2.ogg -db[149] = 1. Track 1 by Artist 0 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 0/1 - Track 1.ogg - -6c: Delete /tmp/library/0/Artist 2 -Removing file: /tmp/library/0/Artist 2/Album 2/10 - Track 10.ogg -Removing file: /tmp/library/0/Artist 2/Album 2/9 - Track 9.ogg -Removing file: /tmp/library/0/Artist 2/Album 2/8 - Track 8.ogg -Removing file: /tmp/library/0/Artist 2/Album 2/7 - Track 7.ogg -Removing file: /tmp/library/0/Artist 2/Album 2/6 - Track 6.ogg -Removing file: /tmp/library/0/Artist 2/Album 2/5 - Track 5.ogg -Removing file: /tmp/library/0/Artist 2/Album 2/4 - Track 4.ogg -Removing file: /tmp/library/0/Artist 2/Album 2/3 - Track 3.ogg -Removing file: /tmp/library/0/Artist 2/Album 2/2 - Track 2.ogg -Removing file: /tmp/library/0/Artist 2/Album 2/1 - Track 1.ogg -Removing file: /tmp/library/0/Artist 2/Album 1/10 - Track 10.ogg -Removing file: /tmp/library/0/Artist 2/Album 1/9 - Track 9.ogg -Removing file: /tmp/library/0/Artist 2/Album 1/8 - Track 8.ogg -Removing file: /tmp/library/0/Artist 2/Album 1/7 - Track 7.ogg -Removing file: /tmp/library/0/Artist 2/Album 1/6 - Track 6.ogg -Removing file: /tmp/library/0/Artist 2/Album 1/5 - Track 5.ogg -Removing file: /tmp/library/0/Artist 2/Album 1/4 - Track 4.ogg -Removing file: /tmp/library/0/Artist 2/Album 1/3 - Track 3.ogg -Removing file: /tmp/library/0/Artist 2/Album 1/2 - Track 2.ogg -Removing file: /tmp/library/0/Artist 2/Album 1/1 - Track 1.ogg -Removing file: /tmp/library/0/Artist 2/Album 0/10 - Track 10.ogg -Removing file: /tmp/library/0/Artist 2/Album 0/9 - Track 9.ogg -Removing file: /tmp/library/0/Artist 2/Album 0/8 - Track 8.ogg -Removing file: /tmp/library/0/Artist 2/Album 0/7 - Track 7.ogg -Removing file: /tmp/library/0/Artist 2/Album 0/6 - Track 6.ogg -Removing file: /tmp/library/0/Artist 2/Album 0/5 - Track 5.ogg -Removing file: /tmp/library/0/Artist 2/Album 0/4 - Track 4.ogg -Removing file: /tmp/library/0/Artist 2/Album 0/3 - Track 3.ogg -Removing file: /tmp/library/0/Artist 2/Album 0/2 - Track 2.ogg -Removing file: /tmp/library/0/Artist 2/Album 0/1 - Track 1.ogg -Updated library 0: /tmp/library/0 (size: 120) -Allocated rows: 1 -Valid rows: 1 -db[0] = /tmp/library/0 (enabled), size = 120 -Allocated rows: 150 -Valid rows: 120 -db[30] = 10. Track 10 by Artist 4 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 2/10 - Track 10.ogg -db[31] = 9. Track 9 by Artist 4 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 2/9 - Track 9.ogg -db[32] = 8. Track 8 by Artist 4 from Album 2 (2013) - Genre: Tryout, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 2/8 - Track 8.ogg -db[33] = 7. Track 7 by Artist 4 from Album 2 (2013) - Genre: Tryout, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 2/7 - Track 7.ogg -db[34] = 6. Track 6 by Artist 4 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 2/6 - Track 6.ogg -db[35] = 5. Track 5 by Artist 4 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 2/5 - Track 5.ogg -db[36] = 4. Track 4 by Artist 4 from Album 2 (2013) - Genre: Tryout, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 2/4 - Track 4.ogg -db[37] = 3. Track 3 by Artist 4 from Album 2 (2013) - Genre: Tryout, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 2/3 - Track 3.ogg -db[38] = 2. Track 2 by Artist 4 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 2/2 - Track 2.ogg -db[39] = 1. Track 1 by Artist 4 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 2/1 - Track 1.ogg -db[40] = 10. Track 10 by Artist 4 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 1/10 - Track 10.ogg -db[41] = 9. Track 9 by Artist 4 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 1/9 - Track 9.ogg -db[42] = 8. Track 8 by Artist 4 from Album 1 (2012) - Genre: Trial, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 1/8 - Track 8.ogg -db[43] = 7. Track 7 by Artist 4 from Album 1 (2012) - Genre: Trial, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 1/7 - Track 7.ogg -db[44] = 6. Track 6 by Artist 4 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 1/6 - Track 6.ogg -db[45] = 5. Track 5 by Artist 4 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 1/5 - Track 5.ogg -db[46] = 4. Track 4 by Artist 4 from Album 1 (2012) - Genre: Trial, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 1/4 - Track 4.ogg -db[47] = 3. Track 3 by Artist 4 from Album 1 (2012) - Genre: Trial, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 1/3 - Track 3.ogg -db[48] = 2. Track 2 by Artist 4 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 1/2 - Track 2.ogg -db[49] = 1. Track 1 by Artist 4 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 1/1 - Track 1.ogg -db[50] = 10. Track 10 by Artist 4 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 0/10 - Track 10.ogg -db[51] = 9. Track 9 by Artist 4 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 0/9 - Track 9.ogg -db[52] = 8. Track 8 by Artist 4 from Album 0 (2011) - Genre: Test, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 0/8 - Track 8.ogg -db[53] = 7. Track 7 by Artist 4 from Album 0 (2011) - Genre: Test, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 0/7 - Track 7.ogg -db[54] = 6. Track 6 by Artist 4 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 0/6 - Track 6.ogg -db[55] = 5. Track 5 by Artist 4 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 0/5 - Track 5.ogg -db[56] = 4. Track 4 by Artist 4 from Album 0 (2011) - Genre: Test, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 0/4 - Track 4.ogg -db[57] = 3. Track 3 by Artist 4 from Album 0 (2011) - Genre: Test, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 0/3 - Track 3.ogg -db[58] = 2. Track 2 by Artist 4 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 0/2 - Track 2.ogg -db[59] = 1. Track 1 by Artist 4 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 0/1 - Track 1.ogg -db[60] = 10. Track 10 by Artist 3 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 2/10 - Track 10.ogg -db[61] = 9. Track 9 by Artist 3 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 2/9 - Track 9.ogg -db[62] = 8. Track 8 by Artist 3 from Album 2 (2013) - Genre: Tryout, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 2/8 - Track 8.ogg -db[63] = 7. Track 7 by Artist 3 from Album 2 (2013) - Genre: Tryout, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 2/7 - Track 7.ogg -db[64] = 6. Track 6 by Artist 3 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 2/6 - Track 6.ogg -db[65] = 5. Track 5 by Artist 3 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 2/5 - Track 5.ogg -db[66] = 4. Track 4 by Artist 3 from Album 2 (2013) - Genre: Tryout, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 2/4 - Track 4.ogg -db[67] = 3. Track 3 by Artist 3 from Album 2 (2013) - Genre: Tryout, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 2/3 - Track 3.ogg -db[68] = 2. Track 2 by Artist 3 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 2/2 - Track 2.ogg -db[69] = 1. Track 1 by Artist 3 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 2/1 - Track 1.ogg -db[70] = 10. Track 10 by Artist 3 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 1/10 - Track 10.ogg -db[71] = 9. Track 9 by Artist 3 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 1/9 - Track 9.ogg -db[72] = 8. Track 8 by Artist 3 from Album 1 (2012) - Genre: Trial, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 1/8 - Track 8.ogg -db[73] = 7. Track 7 by Artist 3 from Album 1 (2012) - Genre: Trial, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 1/7 - Track 7.ogg -db[74] = 6. Track 6 by Artist 3 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 1/6 - Track 6.ogg -db[75] = 5. Track 5 by Artist 3 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 1/5 - Track 5.ogg -db[76] = 4. Track 4 by Artist 3 from Album 1 (2012) - Genre: Trial, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 1/4 - Track 4.ogg -db[77] = 3. Track 3 by Artist 3 from Album 1 (2012) - Genre: Trial, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 1/3 - Track 3.ogg -db[78] = 2. Track 2 by Artist 3 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 1/2 - Track 2.ogg -db[79] = 1. Track 1 by Artist 3 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 1/1 - Track 1.ogg -db[80] = 10. Track 10 by Artist 3 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 0/10 - Track 10.ogg -db[81] = 9. Track 9 by Artist 3 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 0/9 - Track 9.ogg -db[82] = 8. Track 8 by Artist 3 from Album 0 (2011) - Genre: Test, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 0/8 - Track 8.ogg -db[83] = 7. Track 7 by Artist 3 from Album 0 (2011) - Genre: Test, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 0/7 - Track 7.ogg -db[84] = 6. Track 6 by Artist 3 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 0/6 - Track 6.ogg -db[85] = 5. Track 5 by Artist 3 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 0/5 - Track 5.ogg -db[86] = 4. Track 4 by Artist 3 from Album 0 (2011) - Genre: Test, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 0/4 - Track 4.ogg -db[87] = 3. Track 3 by Artist 3 from Album 0 (2011) - Genre: Test, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 0/3 - Track 3.ogg -db[88] = 2. Track 2 by Artist 3 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 0/2 - Track 2.ogg -db[89] = 1. Track 1 by Artist 3 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 0/1 - Track 1.ogg -db[90] = 10. Track 10 by Artist 1 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 2/10 - Track 10.ogg -db[91] = 9. Track 9 by Artist 1 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 2/9 - Track 9.ogg -db[92] = 8. Track 8 by Artist 1 from Album 2 (2013) - Genre: Tryout, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 2/8 - Track 8.ogg -db[93] = 7. Track 7 by Artist 1 from Album 2 (2013) - Genre: Tryout, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 2/7 - Track 7.ogg -db[94] = 6. Track 6 by Artist 1 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 2/6 - Track 6.ogg -db[95] = 5. Track 5 by Artist 1 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 2/5 - Track 5.ogg -db[96] = 4. Track 4 by Artist 1 from Album 2 (2013) - Genre: Tryout, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 2/4 - Track 4.ogg -db[97] = 3. Track 3 by Artist 1 from Album 2 (2013) - Genre: Tryout, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 2/3 - Track 3.ogg -db[98] = 2. Track 2 by Artist 1 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 2/2 - Track 2.ogg -db[99] = 1. Track 1 by Artist 1 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 2/1 - Track 1.ogg -db[100] = 10. Track 10 by Artist 1 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 1/10 - Track 10.ogg -db[101] = 9. Track 9 by Artist 1 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 1/9 - Track 9.ogg -db[102] = 8. Track 8 by Artist 1 from Album 1 (2012) - Genre: Trial, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 1/8 - Track 8.ogg -db[103] = 7. Track 7 by Artist 1 from Album 1 (2012) - Genre: Trial, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 1/7 - Track 7.ogg -db[104] = 6. Track 6 by Artist 1 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 1/6 - Track 6.ogg -db[105] = 5. Track 5 by Artist 1 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 1/5 - Track 5.ogg -db[106] = 4. Track 4 by Artist 1 from Album 1 (2012) - Genre: Trial, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 1/4 - Track 4.ogg -db[107] = 3. Track 3 by Artist 1 from Album 1 (2012) - Genre: Trial, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 1/3 - Track 3.ogg -db[108] = 2. Track 2 by Artist 1 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 1/2 - Track 2.ogg -db[109] = 1. Track 1 by Artist 1 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 1/1 - Track 1.ogg -db[110] = 10. Track 10 by Artist 1 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 0/10 - Track 10.ogg -db[111] = 9. Track 9 by Artist 1 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 0/9 - Track 9.ogg -db[112] = 8. Track 8 by Artist 1 from Album 0 (2011) - Genre: Test, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 0/8 - Track 8.ogg -db[113] = 7. Track 7 by Artist 1 from Album 0 (2011) - Genre: Test, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 0/7 - Track 7.ogg -db[114] = 6. Track 6 by Artist 1 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 0/6 - Track 6.ogg -db[115] = 5. Track 5 by Artist 1 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 0/5 - Track 5.ogg -db[116] = 4. Track 4 by Artist 1 from Album 0 (2011) - Genre: Test, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 0/4 - Track 4.ogg -db[117] = 3. Track 3 by Artist 1 from Album 0 (2011) - Genre: Test, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 0/3 - Track 3.ogg -db[118] = 2. Track 2 by Artist 1 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 0/2 - Track 2.ogg -db[119] = 1. Track 1 by Artist 1 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 0/1 - Track 1.ogg -db[120] = 10. Track 10 by Artist 0 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 2/10 - Track 10.ogg -db[121] = 9. Track 9 by Artist 0 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 2/9 - Track 9.ogg -db[122] = 8. Track 8 by Artist 0 from Album 2 (2013) - Genre: Tryout, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 2/8 - Track 8.ogg -db[123] = 7. Track 7 by Artist 0 from Album 2 (2013) - Genre: Tryout, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 2/7 - Track 7.ogg -db[124] = 6. Track 6 by Artist 0 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 2/6 - Track 6.ogg -db[125] = 5. Track 5 by Artist 0 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 2/5 - Track 5.ogg -db[126] = 4. Track 4 by Artist 0 from Album 2 (2013) - Genre: Tryout, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 2/4 - Track 4.ogg -db[127] = 3. Track 3 by Artist 0 from Album 2 (2013) - Genre: Tryout, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 2/3 - Track 3.ogg -db[128] = 2. Track 2 by Artist 0 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 2/2 - Track 2.ogg -db[129] = 1. Track 1 by Artist 0 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 2/1 - Track 1.ogg -db[130] = 10. Track 10 by Artist 0 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 1/10 - Track 10.ogg -db[131] = 9. Track 9 by Artist 0 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 1/9 - Track 9.ogg -db[132] = 8. Track 8 by Artist 0 from Album 1 (2012) - Genre: Trial, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 1/8 - Track 8.ogg -db[133] = 7. Track 7 by Artist 0 from Album 1 (2012) - Genre: Trial, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 1/7 - Track 7.ogg -db[134] = 6. Track 6 by Artist 0 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 1/6 - Track 6.ogg -db[135] = 5. Track 5 by Artist 0 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 1/5 - Track 5.ogg -db[136] = 4. Track 4 by Artist 0 from Album 1 (2012) - Genre: Trial, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 1/4 - Track 4.ogg -db[137] = 3. Track 3 by Artist 0 from Album 1 (2012) - Genre: Trial, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 1/3 - Track 3.ogg -db[138] = 2. Track 2 by Artist 0 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 1/2 - Track 2.ogg -db[139] = 1. Track 1 by Artist 0 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 1/1 - Track 1.ogg -db[140] = 10. Track 10 by Artist 0 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 0/10 - Track 10.ogg -db[141] = 9. Track 9 by Artist 0 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 0/9 - Track 9.ogg -db[142] = 8. Track 8 by Artist 0 from Album 0 (2011) - Genre: Test, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 0/8 - Track 8.ogg -db[143] = 7. Track 7 by Artist 0 from Album 0 (2011) - Genre: Test, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 0/7 - Track 7.ogg -db[144] = 6. Track 6 by Artist 0 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 0/6 - Track 6.ogg -db[145] = 5. Track 5 by Artist 0 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 0/5 - Track 5.ogg -db[146] = 4. Track 4 by Artist 0 from Album 0 (2011) - Genre: Test, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 0/4 - Track 4.ogg -db[147] = 3. Track 3 by Artist 0 from Album 0 (2011) - Genre: Test, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 0/3 - Track 3.ogg -db[148] = 2. Track 2 by Artist 0 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 0/2 - Track 2.ogg -db[149] = 1. Track 1 by Artist 0 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 0/1 - Track 1.ogg - -6d: Regenerate Artist 2 -Generating library: 0 -Generating library: 1 -Generating library: 2 -Generating library: 3 -Generating library: 4 - -Updated library 0: /tmp/library/0 (size: 130) -Updated library 0: /tmp/library/0 (size: 140) -Updated library 0: /tmp/library/0 (size: 150) -Allocated rows: 180 -Valid rows: 150 -db[30] = 10. Track 10 by Artist 4 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 2/10 - Track 10.ogg -db[31] = 9. Track 9 by Artist 4 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 2/9 - Track 9.ogg -db[32] = 8. Track 8 by Artist 4 from Album 2 (2013) - Genre: Tryout, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 2/8 - Track 8.ogg -db[33] = 7. Track 7 by Artist 4 from Album 2 (2013) - Genre: Tryout, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 2/7 - Track 7.ogg -db[34] = 6. Track 6 by Artist 4 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 2/6 - Track 6.ogg -db[35] = 5. Track 5 by Artist 4 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 2/5 - Track 5.ogg -db[36] = 4. Track 4 by Artist 4 from Album 2 (2013) - Genre: Tryout, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 2/4 - Track 4.ogg -db[37] = 3. Track 3 by Artist 4 from Album 2 (2013) - Genre: Tryout, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 2/3 - Track 3.ogg -db[38] = 2. Track 2 by Artist 4 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 2/2 - Track 2.ogg -db[39] = 1. Track 1 by Artist 4 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 2/1 - Track 1.ogg -db[40] = 10. Track 10 by Artist 4 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 1/10 - Track 10.ogg -db[41] = 9. Track 9 by Artist 4 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 1/9 - Track 9.ogg -db[42] = 8. Track 8 by Artist 4 from Album 1 (2012) - Genre: Trial, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 1/8 - Track 8.ogg -db[43] = 7. Track 7 by Artist 4 from Album 1 (2012) - Genre: Trial, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 1/7 - Track 7.ogg -db[44] = 6. Track 6 by Artist 4 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 1/6 - Track 6.ogg -db[45] = 5. Track 5 by Artist 4 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 1/5 - Track 5.ogg -db[46] = 4. Track 4 by Artist 4 from Album 1 (2012) - Genre: Trial, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 1/4 - Track 4.ogg -db[47] = 3. Track 3 by Artist 4 from Album 1 (2012) - Genre: Trial, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 1/3 - Track 3.ogg -db[48] = 2. Track 2 by Artist 4 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 1/2 - Track 2.ogg -db[49] = 1. Track 1 by Artist 4 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 1/1 - Track 1.ogg -db[50] = 10. Track 10 by Artist 4 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 0/10 - Track 10.ogg -db[51] = 9. Track 9 by Artist 4 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 0/9 - Track 9.ogg -db[52] = 8. Track 8 by Artist 4 from Album 0 (2011) - Genre: Test, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 0/8 - Track 8.ogg -db[53] = 7. Track 7 by Artist 4 from Album 0 (2011) - Genre: Test, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 0/7 - Track 7.ogg -db[54] = 6. Track 6 by Artist 4 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 0/6 - Track 6.ogg -db[55] = 5. Track 5 by Artist 4 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 0/5 - Track 5.ogg -db[56] = 4. Track 4 by Artist 4 from Album 0 (2011) - Genre: Test, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 0/4 - Track 4.ogg -db[57] = 3. Track 3 by Artist 4 from Album 0 (2011) - Genre: Test, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 0/3 - Track 3.ogg -db[58] = 2. Track 2 by Artist 4 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 0/2 - Track 2.ogg -db[59] = 1. Track 1 by Artist 4 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 4/Album 0/1 - Track 1.ogg -db[60] = 10. Track 10 by Artist 3 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 2/10 - Track 10.ogg -db[61] = 9. Track 9 by Artist 3 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 2/9 - Track 9.ogg -db[62] = 8. Track 8 by Artist 3 from Album 2 (2013) - Genre: Tryout, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 2/8 - Track 8.ogg -db[63] = 7. Track 7 by Artist 3 from Album 2 (2013) - Genre: Tryout, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 2/7 - Track 7.ogg -db[64] = 6. Track 6 by Artist 3 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 2/6 - Track 6.ogg -db[65] = 5. Track 5 by Artist 3 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 2/5 - Track 5.ogg -db[66] = 4. Track 4 by Artist 3 from Album 2 (2013) - Genre: Tryout, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 2/4 - Track 4.ogg -db[67] = 3. Track 3 by Artist 3 from Album 2 (2013) - Genre: Tryout, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 2/3 - Track 3.ogg -db[68] = 2. Track 2 by Artist 3 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 2/2 - Track 2.ogg -db[69] = 1. Track 1 by Artist 3 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 2/1 - Track 1.ogg -db[70] = 10. Track 10 by Artist 3 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 1/10 - Track 10.ogg -db[71] = 9. Track 9 by Artist 3 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 1/9 - Track 9.ogg -db[72] = 8. Track 8 by Artist 3 from Album 1 (2012) - Genre: Trial, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 1/8 - Track 8.ogg -db[73] = 7. Track 7 by Artist 3 from Album 1 (2012) - Genre: Trial, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 1/7 - Track 7.ogg -db[74] = 6. Track 6 by Artist 3 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 1/6 - Track 6.ogg -db[75] = 5. Track 5 by Artist 3 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 1/5 - Track 5.ogg -db[76] = 4. Track 4 by Artist 3 from Album 1 (2012) - Genre: Trial, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 1/4 - Track 4.ogg -db[77] = 3. Track 3 by Artist 3 from Album 1 (2012) - Genre: Trial, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 1/3 - Track 3.ogg -db[78] = 2. Track 2 by Artist 3 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 1/2 - Track 2.ogg -db[79] = 1. Track 1 by Artist 3 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 1/1 - Track 1.ogg -db[80] = 10. Track 10 by Artist 3 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 0/10 - Track 10.ogg -db[81] = 9. Track 9 by Artist 3 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 0/9 - Track 9.ogg -db[82] = 8. Track 8 by Artist 3 from Album 0 (2011) - Genre: Test, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 0/8 - Track 8.ogg -db[83] = 7. Track 7 by Artist 3 from Album 0 (2011) - Genre: Test, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 0/7 - Track 7.ogg -db[84] = 6. Track 6 by Artist 3 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 0/6 - Track 6.ogg -db[85] = 5. Track 5 by Artist 3 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 0/5 - Track 5.ogg -db[86] = 4. Track 4 by Artist 3 from Album 0 (2011) - Genre: Test, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 0/4 - Track 4.ogg -db[87] = 3. Track 3 by Artist 3 from Album 0 (2011) - Genre: Test, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 0/3 - Track 3.ogg -db[88] = 2. Track 2 by Artist 3 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 0/2 - Track 2.ogg -db[89] = 1. Track 1 by Artist 3 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 3/Album 0/1 - Track 1.ogg -db[90] = 10. Track 10 by Artist 1 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 2/10 - Track 10.ogg -db[91] = 9. Track 9 by Artist 1 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 2/9 - Track 9.ogg -db[92] = 8. Track 8 by Artist 1 from Album 2 (2013) - Genre: Tryout, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 2/8 - Track 8.ogg -db[93] = 7. Track 7 by Artist 1 from Album 2 (2013) - Genre: Tryout, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 2/7 - Track 7.ogg -db[94] = 6. Track 6 by Artist 1 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 2/6 - Track 6.ogg -db[95] = 5. Track 5 by Artist 1 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 2/5 - Track 5.ogg -db[96] = 4. Track 4 by Artist 1 from Album 2 (2013) - Genre: Tryout, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 2/4 - Track 4.ogg -db[97] = 3. Track 3 by Artist 1 from Album 2 (2013) - Genre: Tryout, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 2/3 - Track 3.ogg -db[98] = 2. Track 2 by Artist 1 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 2/2 - Track 2.ogg -db[99] = 1. Track 1 by Artist 1 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 2/1 - Track 1.ogg -db[100] = 10. Track 10 by Artist 1 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 1/10 - Track 10.ogg -db[101] = 9. Track 9 by Artist 1 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 1/9 - Track 9.ogg -db[102] = 8. Track 8 by Artist 1 from Album 1 (2012) - Genre: Trial, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 1/8 - Track 8.ogg -db[103] = 7. Track 7 by Artist 1 from Album 1 (2012) - Genre: Trial, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 1/7 - Track 7.ogg -db[104] = 6. Track 6 by Artist 1 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 1/6 - Track 6.ogg -db[105] = 5. Track 5 by Artist 1 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 1/5 - Track 5.ogg -db[106] = 4. Track 4 by Artist 1 from Album 1 (2012) - Genre: Trial, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 1/4 - Track 4.ogg -db[107] = 3. Track 3 by Artist 1 from Album 1 (2012) - Genre: Trial, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 1/3 - Track 3.ogg -db[108] = 2. Track 2 by Artist 1 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 1/2 - Track 2.ogg -db[109] = 1. Track 1 by Artist 1 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 1/1 - Track 1.ogg -db[110] = 10. Track 10 by Artist 1 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 0/10 - Track 10.ogg -db[111] = 9. Track 9 by Artist 1 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 0/9 - Track 9.ogg -db[112] = 8. Track 8 by Artist 1 from Album 0 (2011) - Genre: Test, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 0/8 - Track 8.ogg -db[113] = 7. Track 7 by Artist 1 from Album 0 (2011) - Genre: Test, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 0/7 - Track 7.ogg -db[114] = 6. Track 6 by Artist 1 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 0/6 - Track 6.ogg -db[115] = 5. Track 5 by Artist 1 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 0/5 - Track 5.ogg -db[116] = 4. Track 4 by Artist 1 from Album 0 (2011) - Genre: Test, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 0/4 - Track 4.ogg -db[117] = 3. Track 3 by Artist 1 from Album 0 (2011) - Genre: Test, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 0/3 - Track 3.ogg -db[118] = 2. Track 2 by Artist 1 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 0/2 - Track 2.ogg -db[119] = 1. Track 1 by Artist 1 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 1/Album 0/1 - Track 1.ogg -db[120] = 10. Track 10 by Artist 0 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 2/10 - Track 10.ogg -db[121] = 9. Track 9 by Artist 0 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 2/9 - Track 9.ogg -db[122] = 8. Track 8 by Artist 0 from Album 2 (2013) - Genre: Tryout, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 2/8 - Track 8.ogg -db[123] = 7. Track 7 by Artist 0 from Album 2 (2013) - Genre: Tryout, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 2/7 - Track 7.ogg -db[124] = 6. Track 6 by Artist 0 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 2/6 - Track 6.ogg -db[125] = 5. Track 5 by Artist 0 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 2/5 - Track 5.ogg -db[126] = 4. Track 4 by Artist 0 from Album 2 (2013) - Genre: Tryout, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 2/4 - Track 4.ogg -db[127] = 3. Track 3 by Artist 0 from Album 2 (2013) - Genre: Tryout, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 2/3 - Track 3.ogg -db[128] = 2. Track 2 by Artist 0 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 2/2 - Track 2.ogg -db[129] = 1. Track 1 by Artist 0 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 2/1 - Track 1.ogg -db[130] = 10. Track 10 by Artist 0 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 1/10 - Track 10.ogg -db[131] = 9. Track 9 by Artist 0 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 1/9 - Track 9.ogg -db[132] = 8. Track 8 by Artist 0 from Album 1 (2012) - Genre: Trial, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 1/8 - Track 8.ogg -db[133] = 7. Track 7 by Artist 0 from Album 1 (2012) - Genre: Trial, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 1/7 - Track 7.ogg -db[134] = 6. Track 6 by Artist 0 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 1/6 - Track 6.ogg -db[135] = 5. Track 5 by Artist 0 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 1/5 - Track 5.ogg -db[136] = 4. Track 4 by Artist 0 from Album 1 (2012) - Genre: Trial, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 1/4 - Track 4.ogg -db[137] = 3. Track 3 by Artist 0 from Album 1 (2012) - Genre: Trial, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 1/3 - Track 3.ogg -db[138] = 2. Track 2 by Artist 0 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 1/2 - Track 2.ogg -db[139] = 1. Track 1 by Artist 0 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 1/1 - Track 1.ogg -db[140] = 10. Track 10 by Artist 0 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 0/10 - Track 10.ogg -db[141] = 9. Track 9 by Artist 0 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 0/9 - Track 9.ogg -db[142] = 8. Track 8 by Artist 0 from Album 0 (2011) - Genre: Test, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 0/8 - Track 8.ogg -db[143] = 7. Track 7 by Artist 0 from Album 0 (2011) - Genre: Test, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 0/7 - Track 7.ogg -db[144] = 6. Track 6 by Artist 0 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 0/6 - Track 6.ogg -db[145] = 5. Track 5 by Artist 0 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 0/5 - Track 5.ogg -db[146] = 4. Track 4 by Artist 0 from Album 0 (2011) - Genre: Test, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 0/4 - Track 4.ogg -db[147] = 3. Track 3 by Artist 0 from Album 0 (2011) - Genre: Test, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 0/3 - Track 3.ogg -db[148] = 2. Track 2 by Artist 0 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 0/2 - Track 2.ogg -db[149] = 1. Track 1 by Artist 0 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 0/Album 0/1 - Track 1.ogg -db[150] = 10. Track 10 by Artist 2 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 2/10 - Track 10.ogg -db[151] = 9. Track 9 by Artist 2 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 2/9 - Track 9.ogg -db[152] = 8. Track 8 by Artist 2 from Album 2 (2013) - Genre: Tryout, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 2/8 - Track 8.ogg -db[153] = 7. Track 7 by Artist 2 from Album 2 (2013) - Genre: Tryout, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 2/7 - Track 7.ogg -db[154] = 6. Track 6 by Artist 2 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 2/6 - Track 6.ogg -db[155] = 5. Track 5 by Artist 2 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 2/5 - Track 5.ogg -db[156] = 4. Track 4 by Artist 2 from Album 2 (2013) - Genre: Tryout, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 2/4 - Track 4.ogg -db[157] = 3. Track 3 by Artist 2 from Album 2 (2013) - Genre: Tryout, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 2/3 - Track 3.ogg -db[158] = 2. Track 2 by Artist 2 from Album 2 (2013) - Genre: Tryout, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 2/2 - Track 2.ogg -db[159] = 1. Track 1 by Artist 2 from Album 2 (2013) - Genre: Tryout, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 2/1 - Track 1.ogg -db[160] = 10. Track 10 by Artist 2 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 1/10 - Track 10.ogg -db[161] = 9. Track 9 by Artist 2 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 1/9 - Track 9.ogg -db[162] = 8. Track 8 by Artist 2 from Album 1 (2012) - Genre: Trial, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 1/8 - Track 8.ogg -db[163] = 7. Track 7 by Artist 2 from Album 1 (2012) - Genre: Trial, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 1/7 - Track 7.ogg -db[164] = 6. Track 6 by Artist 2 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 1/6 - Track 6.ogg -db[165] = 5. Track 5 by Artist 2 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 1/5 - Track 5.ogg -db[166] = 4. Track 4 by Artist 2 from Album 1 (2012) - Genre: Trial, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 1/4 - Track 4.ogg -db[167] = 3. Track 3 by Artist 2 from Album 1 (2012) - Genre: Trial, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 1/3 - Track 3.ogg -db[168] = 2. Track 2 by Artist 2 from Album 1 (2012) - Genre: Trial, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 1/2 - Track 2.ogg -db[169] = 1. Track 1 by Artist 2 from Album 1 (2012) - Genre: Trial, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 1/1 - Track 1.ogg -db[170] = 10. Track 10 by Artist 2 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 0/10 - Track 10.ogg -db[171] = 9. Track 9 by Artist 2 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 0/9 - Track 9.ogg -db[172] = 8. Track 8 by Artist 2 from Album 0 (2011) - Genre: Test, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 0/8 - Track 8.ogg -db[173] = 7. Track 7 by Artist 2 from Album 0 (2011) - Genre: Test, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 0/7 - Track 7.ogg -db[174] = 6. Track 6 by Artist 2 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 0/6 - Track 6.ogg -db[175] = 5. Track 5 by Artist 2 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 0/5 - Track 5.ogg -db[176] = 4. Track 4 by Artist 2 from Album 0 (2011) - Genre: Test, Length: 1 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 0/4 - Track 4.ogg -db[177] = 3. Track 3 by Artist 2 from Album 0 (2011) - Genre: Test, Length: 600 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 0/3 - Track 3.ogg -db[178] = 2. Track 2 by Artist 2 from Album 0 (2011) - Genre: Test, Length: 60 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 0/2 - Track 2.ogg -db[179] = 1. Track 1 by Artist 2 from Album 0 (2011) - Genre: Test, Length: 10 (seconds) - Play count: 0, last played 0/0/0 - Artist 2/Album 0/1 - Track 1.ogg - -Test 7a: Added library 0: /tmp/library/2 -PASSED -Updated library 0: /tmp/library/2 (size: 10) -Updated library 0: /tmp/library/2 (size: 20) -Updated library 0: /tmp/library/2 (size: 30) -Updated library 0: /tmp/library/2 (size: 40) -Updated library 0: /tmp/library/2 (size: 50) -Updated library 0: /tmp/library/2 (size: 60) -Updated library 0: /tmp/library/2 (size: 70) -Updated library 0: /tmp/library/2 (size: 80) -Updated library 0: /tmp/library/2 (size: 90) -Updated library 0: /tmp/library/2 (size: 100) -Updated library 0: /tmp/library/2 (size: 110) -Updated library 0: /tmp/library/2 (size: 120) -Updated library 0: /tmp/library/2 (size: 130) -Updated library 0: /tmp/library/2 (size: 140) -Updated library 0: /tmp/library/2 (size: 150) -Allocated rows: 1 -Valid rows: 1 -db[0] = /tmp/library/2 (enabled), size = 150 - -Importing: /home/anna/.ocarina-test/library/0 -Version mismatch: 1 != 2 -Importing: /home/anna/.ocarina-test/library/1 -Library already contains path: /tmp/library/2, skipping -Importing: /home/anna/.ocarina-test/library/2 -Adding path: /tmp/library/3 -Added library 1: /tmp/library/3 -Updated library 1: /tmp/library/3 (size: 150) -Importing: /home/anna/.ocarina-test/library/3 -Adding path: /tmp/library/4 -Added library 2: /tmp/library/4 -Updated library 2: /tmp/library/4 (size: 150) -Allocated rows: 3 -Valid rows: 3 -db[0] = /tmp/library/2 (enabled), size = 150 -db[1] = /tmp/library/3 (enabled), size = 150 -db[2] = /tmp/library/4 (enabled), size = 150 - -Test 8a: Added library 0: /tmp/library/0 -PASSED -Updated library 0: /tmp/library/0 (size: 10) -Updated library 0: /tmp/library/0 (size: 20) -Updated library 0: /tmp/library/0 (size: 30) -Updated library 0: /tmp/library/0 (size: 40) -Updated library 0: /tmp/library/0 (size: 50) -Updated library 0: /tmp/library/0 (size: 60) -Updated library 0: /tmp/library/0 (size: 70) -Updated library 0: /tmp/library/0 (size: 80) -Updated library 0: /tmp/library/0 (size: 90) -Updated library 0: /tmp/library/0 (size: 100) -Updated library 0: /tmp/library/0 (size: 110) -Updated library 0: /tmp/library/0 (size: 120) -Updated library 0: /tmp/library/0 (size: 130) -Updated library 0: /tmp/library/0 (size: 140) -Updated library 0: /tmp/library/0 (size: 150) -Allocated rows: 1 -Valid rows: 1 -db[0] = /tmp/library/0 (enabled), size = 150 - -Allocated rows: 1 -Valid rows: 1 -db[0] = /tmp/library/0 (disabled), size = 150 -Allocated rows: 1 -Valid rows: 1 -db[0] = /tmp/library/0 (enabled), size = 150 -Allocated rows: 1 -Valid rows: 1 -db[0] = /tmp/library/0 (disabled), size = 150 -Allocated rows: 1 -Valid rows: 1 -db[0] = /tmp/library/0 (enabled), size = 150 diff --git a/tests/test.h b/tests/test.h index cea8f426..b37583f4 100644 --- a/tests/test.h +++ b/tests/test.h @@ -131,6 +131,16 @@ namespace test std::string cmd = "cp -r tests/Playlist/* " + data_dir(); system(cmd.c_str()); } + + void gen_library() + { + system("tests/gen_library.sh"); + } + + void rm_library_dirs() + { + system("rm -r /tmp/ocarina/dir2 /tmp/ocarina/dir4"); + } } #define run_test(name, func, ...) \ From 9ba4dbc218ff8470a840cdffc63118804f5a838e Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sat, 24 May 2014 13:06:45 -0400 Subject: [PATCH 63/93] Updates for recent library changes This fixes the gui, deck, and audio code due to the library changes I just did. NOTE: Library updating callbacks have been disabled in the gui. Signed-off-by: Anna Schumaker --- gui/collection.cpp | 3 ++- gui/collection_mgr.cpp | 17 +++++++++-------- gui/main.cpp | 2 +- include/callback.h | 5 ----- include/deck.h | 1 - lib/audio.cpp | 2 +- lib/callback.cpp | 6 ------ lib/deck.cpp | 42 +++++------------------------------------- 8 files changed, 18 insertions(+), 60 deletions(-) diff --git a/gui/collection.cpp b/gui/collection.cpp index a07b9b03..3585e469 100644 --- a/gui/collection.cpp +++ b/gui/collection.cpp @@ -2,6 +2,7 @@ * Copyright 2014 (c) Anna Schumaker. */ #include +#include #include #include @@ -16,7 +17,7 @@ public: CollectionTab :: CollectionTab() - : Tab(deck::get_library_pq()) + : Tab(library::get_queue()) { tab_random = get_widget("o_collection_random"); tab_search = get_widget("o_collection_entry"); diff --git a/gui/collection_mgr.cpp b/gui/collection_mgr.cpp index e2d11f16..8b1aa08e 100644 --- a/gui/collection_mgr.cpp +++ b/gui/collection_mgr.cpp @@ -5,6 +5,7 @@ #include #include +static void on_library_add(unsigned int id, Library *library); static class CollectionColumns : public Gtk::TreeModelColumnRecord { public: @@ -29,8 +30,9 @@ static void on_collection_ok() chooser = get_widget("o_collection_chooser"); path = chooser->get_filename(); - library::add_path(path); + Library *library = library::add(path); enable_idle(); + on_library_add(library->id, library); } static void on_collection_update() @@ -63,7 +65,7 @@ void do_collection_delete() if (path) { Glib::RefPtr list = get_collection_list(); Gtk::TreeModel::Row row = *(list->get_iter(path)); - library :: del_path(row[collection_cols.c_col_id]); + library :: remove(tagdb :: lookup_library(row[collection_cols.c_col_id])); list->erase(row); } } @@ -86,7 +88,7 @@ void on_collection_toggled(const Glib::ustring &path) Glib::RefPtr list = get_collection_list(); Gtk::TreeModel::Row row = *(list->get_iter(path)); row[collection_cols.c_col_enabled] = !row[collection_cols.c_col_enabled]; - library :: set_enabled(row[collection_cols.c_col_id], + library :: set_enabled(tagdb :: lookup_library(row[collection_cols.c_col_id]), row[collection_cols.c_col_enabled]); } @@ -102,7 +104,7 @@ static void on_library_add(unsigned int id, Library *library) row[collection_cols.c_col_path] = library->root_path; } -static void on_library_update(unsigned int id, Library *library) +/*static void on_library_update(unsigned int id, Library *library) { Gtk::TreeModel::Row row; Glib::RefPtr list = get_collection_list(); @@ -114,11 +116,11 @@ static void on_library_update(unsigned int id, Library *library) if (row[collection_cols.c_col_id] == id) row[collection_cols.c_col_size] = library->count; } -} +}*/ void collection_mgr_init() { - struct Callbacks *cb = get_callbacks(); + //struct Callbacks *cb = get_callbacks(); Gtk::TreeView *treeview = get_widget("o_collection_treeview"); Glib::RefPtr list = get_collection_list(); @@ -126,8 +128,7 @@ void collection_mgr_init() toggle = get_object("o_collection_toggle"); - cb->on_library_add = on_library_add; - cb->on_library_update = on_library_update; + //cb->on_library_update = on_library_update; connect_button("o_collection_ok", on_collection_ok); connect_button("o_collection_update", on_collection_update); diff --git a/gui/main.cpp b/gui/main.cpp index c60ec9ef..ce114f45 100644 --- a/gui/main.cpp +++ b/gui/main.cpp @@ -29,9 +29,9 @@ Gtk::Window *ocarina_init(int *argc, char ***argv) { Gtk::Window *window = setup_gui(); tagdb :: init(); + library::init(); audio::init(argc, argv); deck::init(); - library::init(); playlist::init(); playlist :: select("Favorites"); diff --git a/include/callback.h b/include/callback.h index 07c4da54..722f1516 100644 --- a/include/callback.h +++ b/include/callback.h @@ -19,11 +19,6 @@ struct Callbacks { void (*on_pq_created)(Queue *, unsigned int); void (*on_pq_removed)(Queue *); - /* Library callbacks */ - void (*on_library_update)(unsigned int, Library *); - void (*on_library_track_add)(unsigned int); - void (*on_library_track_del)(unsigned int); - /* Queue callbacks */ void (*on_queue_track_add)(Queue *, unsigned int); void (*on_queue_track_del)(Queue *, unsigned int); diff --git a/include/deck.h b/include/deck.h index 9942b860..5c776b83 100644 --- a/include/deck.h +++ b/include/deck.h @@ -8,7 +8,6 @@ namespace deck { - void change_library_track(unsigned int); void init(); void read(); diff --git a/lib/audio.cpp b/lib/audio.cpp index c40aa8a5..9914304c 100644 --- a/lib/audio.cpp +++ b/lib/audio.cpp @@ -81,7 +81,7 @@ static gboolean on_message(GstBus *bus, GstMessage *message, gpointer data) track = tagdb :: lookup(cur_trackid); if (track) { track->played(); - deck :: change_library_track(track->id); + library :: get_queue()->updated(track); } audio :: next(); audio :: seek_to(0); diff --git a/lib/callback.cpp b/lib/callback.cpp index fbe006db..3f71a2c9 100644 --- a/lib/callback.cpp +++ b/lib/callback.cpp @@ -5,9 +5,7 @@ static void no_op() {} -static void no_op(unsigned int) {} static void no_op(bool, unsigned int) {} -static void no_op(unsigned int id, Library *path) {} static void no_op(Queue *, unsigned int) {} static void no_op(Queue *) {} static void no_op(Track *) {} @@ -22,10 +20,6 @@ static struct Callbacks callbacks = { .on_pq_created = no_op, .on_pq_removed = no_op, - .on_library_update = no_op, - .on_library_track_add = no_op, - .on_library_track_del = no_op, - .on_queue_track_add = no_op, .on_queue_track_del = no_op, .on_queue_track_changed = no_op, diff --git a/lib/deck.cpp b/lib/deck.cpp index 1f53308b..36649fbd 100644 --- a/lib/deck.cpp +++ b/lib/deck.cpp @@ -10,35 +10,11 @@ #include static std::list playqueue_deck; -static Queue library_playqueue(Q_ENABLED); static File deck_file("deck"); -static void add_library_track(unsigned int id) -{ - library_playqueue.add(tagdb :: lookup(id)); -} - -static void del_library_track(unsigned int id) -{ - library_playqueue.del(tagdb :: lookup(id)); -} - -void deck :: change_library_track(unsigned int id) -{ - library_playqueue.updated(tagdb :: lookup(id)); -} - void deck :: init() { - library_playqueue.set_flag(Q_REPEAT); - library_playqueue.set_flag(Q_DISABLE_CHANGED_SIZE); - library_playqueue.sort(SORT_ARTIST, true); - library_playqueue.sort(SORT_YEAR, false); - library_playqueue.sort(SORT_TRACK, false); read(); - - get_callbacks()->on_library_track_add = add_library_track; - get_callbacks()->on_library_track_del = del_library_track; get_callbacks()->on_queue_changed = write; } @@ -57,15 +33,12 @@ void deck :: read() deck_file >> random >> num; for (unsigned int i = 0; i < num; i++) { deck_file >> field >> ascending; - library_playqueue.sort((sort_t)field, i == 0); - if (!ascending) - library_playqueue.sort((sort_t)field, false); + //library_playqueue.sort((sort_t)field, i == 0); + //if (!ascending) + // library_playqueue.sort((sort_t)field, false); } deck_file >> num; - if (random) - library_playqueue.set_flag(Q_RANDOM); - playqueue_deck.resize(num); num = 0; @@ -87,7 +60,7 @@ void deck :: write() /* Save library playqueue */ //sort_order = library_playqueue.get_sort_order(); - deck_file << library_playqueue.has_flag(Q_RANDOM) << " "; + deck_file << false << " "; //library_playqueue.has_flag(Q_RANDOM) << " "; deck_file << 0 /* sort_order.size() */ << " "; //for (st = sort_order.begin(); st != sort_order.end(); st++) // deck_file << st->field << " " << st->ascending << " "; @@ -195,12 +168,7 @@ Track *deck :: next() } } - return library_playqueue.next(); -} - -Queue *deck :: get_library_pq() -{ - return &library_playqueue; + return library :: get_queue()->next(); } #ifdef CONFIG_TEST From e4db93b8e2817253f195ac852f5387ed8197650d Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sat, 24 May 2014 13:31:45 -0400 Subject: [PATCH 64/93] playlist: Remove banned songs from the library queue And put them back when they are unbanned. Signed-off-by: Anna Schumaker --- DESIGN | 9 ++++++++- lib/playlist.cpp | 12 ++++++++++++ tests/playlist.cpp | 7 +++++++ 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/DESIGN b/DESIGN index 948898bc..a3667945 100644 --- a/DESIGN +++ b/DESIGN @@ -1133,7 +1133,8 @@ Playlist: - API void playlist :: init(): - Load the playlist index from file. + Load the playlist index from file. Remove every banned song + from the LibraryQueue in the library layer. void playlist :: add(Track *track, const std::string &name); Add track->id to the playlist named "name" and return true. @@ -1142,6 +1143,9 @@ Playlist: If "name" is the currently selected playlist, add the track to the PlaylistQueue. + If "name" is "Banned", remove the track from the LibraryQueue + in the library layer. + void playlist :: del(Track *track, const std::string &name); Remove track->id from the playlist named "name" and return true. Return false if the playlist does not exist or if the track @@ -1150,6 +1154,9 @@ Playlist: If "name" is the currently selected playlist, remove the track from the PlaylistQueue. + If "name" is "Banned", add the track to the LibraryQueue in the + library layer. + bool playlist :: has(Track *track, const std::string &name); Return true if the chosen playlist has the given track. Return false otherwise. diff --git a/lib/playlist.cpp b/lib/playlist.cpp index 2b971368..c4b3b1aa 100644 --- a/lib/playlist.cpp +++ b/lib/playlist.cpp @@ -1,6 +1,7 @@ /* * Copyright 2013 (c) Anna Schumaker. */ +#include #include @@ -36,7 +37,13 @@ static std::string cur_plist; void playlist :: init() { + std::set::iterator it; + playlist_db.load(); + + IndexEntry *ent = get_tracks("Banned"); + for (it = ent->values.begin(); it != ent->values.end(); it++) + library :: get_queue()->del(tagdb :: lookup(*it)); } bool playlist :: has(Track *track, const std::string &name) @@ -60,6 +67,8 @@ void playlist :: add(Track *track, const std::string &name) playlist_db.insert(name, track->id); if (cur_plist == name) playlist_q.add(track); + if (name == "Banned") + library :: get_queue()->del(track); } } @@ -68,6 +77,9 @@ void playlist :: del(Track *track, const std::string &name) playlist_db.remove(name, track->id); if (cur_plist == name) playlist_q.del(track); + if (name == "Banned") + library :: get_queue()->add(track); + } void playlist :: select(const std::string &name) diff --git a/tests/playlist.cpp b/tests/playlist.cpp index ccf21a0a..e81c59fb 100644 --- a/tests/playlist.cpp +++ b/tests/playlist.cpp @@ -1,6 +1,7 @@ /* * Copyright 2013 (c) Anna Schumaker. */ +#include #include #include "test.h" @@ -18,10 +19,12 @@ static void test_init() test_equal(q->has_flag(Q_NO_SORT), true); tagdb :: init(); + library :: init(); playlist :: init(); ent = playlist :: get_tracks("Banned"); test_equal(ent->values.size(), (size_t)4); + test_equal(library :: get_queue()->size(), (unsigned)20); ent = playlist :: get_tracks("Favorites"); test_equal(ent->values.size(), (size_t)8); ent = playlist :: get_tracks("No Such Playlist"); @@ -43,11 +46,13 @@ static void test_add() { IndexEntry *ent; Queue *q = playlist :: get_queue(); + Queue *l = library :: get_queue(); playlist :: add(tagdb :: lookup(5), "Banned"); ent = playlist :: get_tracks("Banned"); test_equal(ent->values.size(), (size_t)5); test_equal(q->size(), (unsigned)8); + test_equal(l->size(), (unsigned)19); playlist :: add(tagdb :: lookup(16), "Favorites"); playlist :: add(tagdb :: lookup(5), "Favorites"); @@ -63,11 +68,13 @@ static void test_delete() { IndexEntry *ent; Queue *q = playlist :: get_queue(); + Queue *l = library :: get_queue(); playlist :: del(tagdb :: lookup(5), "Banned"); ent = playlist :: get_tracks("Banned"); test_equal(ent->values.size(), (size_t)4); test_equal(q->size(), (unsigned)9); + test_equal(l->size(), (unsigned)20); playlist :: del(tagdb :: lookup(5), "Favorites"); ent = playlist :: get_tracks("Favorites"); From ddfdc7d6f6568201ce1d831550cb0dd83cb1fd3d Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sat, 24 May 2014 13:37:51 -0400 Subject: [PATCH 65/93] Move error.h include into audio.cpp The audio code still uses it, databases don't. Signed-off-by: Anna Schumaker --- include/audio.h | 1 + include/database.hpp | 2 -- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/include/audio.h b/include/audio.h index d4c42e73..3d188aa0 100644 --- a/include/audio.h +++ b/include/audio.h @@ -4,6 +4,7 @@ #ifndef OCARINA_AUDIO_H #define OCARINA_AUDIO_H +#include #include extern "C" { diff --git a/include/database.hpp b/include/database.hpp index 40ab7e5d..4cefa8e2 100644 --- a/include/database.hpp +++ b/include/database.hpp @@ -7,8 +7,6 @@ #ifndef OCARINA_DATABASE_HPP #define OCARINA_DATABASE_HPP -#include - template Database :: Database(std::string filepath, bool autosave) : _size(0), _autosave(autosave), _file(filepath) From a96e6f6f2d300dc6a505074f8ec97426781b0911 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Mon, 26 May 2014 12:10:36 -0400 Subject: [PATCH 66/93] file: Set version number on a per-file basis I'm about to bump the version number for the deck layer, so it makes senes that different files need different version numbers. Signed-off-by: Anna Schumaker --- DESIGN | 16 ++++++++-------- include/database.hpp | 2 +- include/file.h | 6 ++++-- lib/audio.cpp | 2 +- lib/deck.cpp | 2 +- lib/file.cpp | 10 ++++++---- lib/library.cpp | 2 +- tests/file.cpp | 13 +++++++------ 8 files changed, 29 insertions(+), 24 deletions(-) diff --git a/DESIGN b/DESIGN index a3667945..3b9dc983 100644 --- a/DESIGN +++ b/DESIGN @@ -95,9 +95,6 @@ On-disk files: - Notation: "File << aaaaa << bbbbb << endl" is translated into "aaaaa bbbbb\n" -- File version: - #define FILE_VERSION 0 - - Open mode: enum OpenMode { OPEN_READ, @@ -109,11 +106,12 @@ On-disk files: class File : public std::fstream { private: unsigned int version; + unsigned int prev_version; OpenMode mode; string filename; public: - File(const std::string &); + File(const std::string &, unsigned int); ~File(); const std::string get_filepath(); const unsigned int get_version(); @@ -128,8 +126,8 @@ On-disk files: File << ; - API: - File :: File(const std::string &filename); - Store the name of the file. + File :: File(const std::string &filename, unsigned int version); + Store the name of the file and the file version. File :: ~File(); Close the file stream if it is open. @@ -146,7 +144,9 @@ On-disk files: and return the result. const unsigned int File :: get_version(); - Return the file version number. + if mode == OPEN_READ: + return prev_version + return version bool File :: exists(); Return true if the file exists in the filesystem. @@ -161,7 +161,7 @@ On-disk files: When opening a file for reading (mode == OPEN_READ), - Return false if the file does not exist - Open the file - - Read in version from the start of the file + - Read in prev_version from the start of the file When opening a file for writing (mode == OPEN_WRITE), - Create missing directories as needed diff --git a/include/database.hpp b/include/database.hpp index 4cefa8e2..cec0056a 100644 --- a/include/database.hpp +++ b/include/database.hpp @@ -9,7 +9,7 @@ template Database :: Database(std::string filepath, bool autosave) - : _size(0), _autosave(autosave), _file(filepath) + : _size(0), _autosave(autosave), _file(filepath, 0) { } diff --git a/include/file.h b/include/file.h index c8da6065..213ff75d 100644 --- a/include/file.h +++ b/include/file.h @@ -7,7 +7,6 @@ #include #include -#define FILE_VERSION 0 enum OpenMode { OPEN_READ, @@ -15,18 +14,21 @@ enum OpenMode { NOT_OPEN, }; + class File : public std::fstream { private: OpenMode mode; std::string filename; unsigned int version; + unsigned int prev_version; const std::string find_dir(); bool open_read(); bool open_write(); public: - File(const std::string &); + + File(const std::string &, unsigned int); ~File(); const std::string get_filepath(); const unsigned int get_version(); diff --git a/lib/audio.cpp b/lib/audio.cpp index 9914304c..f2566802 100644 --- a/lib/audio.cpp +++ b/lib/audio.cpp @@ -19,7 +19,7 @@ static bool o_pause_enabled = false; static unsigned int o_pause_count = 0; static bool o_should_pause = false; -static File f_cur_track("cur_track"); +static File f_cur_track("cur_track", 0); class RecentQueue : public Queue diff --git a/lib/deck.cpp b/lib/deck.cpp index 36649fbd..ebf6b70e 100644 --- a/lib/deck.cpp +++ b/lib/deck.cpp @@ -10,7 +10,7 @@ #include static std::list playqueue_deck; -static File deck_file("deck"); +static File deck_file("deck", 0); void deck :: init() { diff --git a/lib/file.cpp b/lib/file.cpp index 8f33e0e7..479f5ebc 100644 --- a/lib/file.cpp +++ b/lib/file.cpp @@ -14,8 +14,8 @@ const std::string OCARINA_DIR = "ocarina-debug"; const std::string OCARINA_DIR = "ocarina"; #endif -File :: File(const std::string &name) - : mode(NOT_OPEN), filename(name), version(FILE_VERSION) +File :: File(const std::string &name, unsigned int vers) + : mode(NOT_OPEN), filename(name), version(vers), prev_version(0) { } @@ -44,6 +44,8 @@ const std::string File :: get_filepath() const unsigned int File :: get_version() { + if (mode == OPEN_READ) + return prev_version; return version; } @@ -62,7 +64,7 @@ bool File :: open_read() return false; mode = OPEN_READ; - std::fstream::operator>>(version); + std::fstream::operator>>(prev_version); getline(); return true; } @@ -77,7 +79,7 @@ bool File :: open_write() return false; mode = OPEN_WRITE; - std::fstream::operator<<(FILE_VERSION) << std::endl; + std::fstream::operator<<(version) << std::endl; return true; } diff --git a/lib/library.cpp b/lib/library.cpp index c343a5e2..04675513 100644 --- a/lib/library.cpp +++ b/lib/library.cpp @@ -13,7 +13,7 @@ private: public: - LibraryQueue() : Queue(Q_ENABLED | Q_REPEAT), f("library.q") + LibraryQueue() : Queue(Q_ENABLED | Q_REPEAT), f("library.q", 0) { Queue :: sort(SORT_ARTIST, true); Queue :: sort(SORT_YEAR, false); diff --git a/tests/file.cpp b/tests/file.cpp index f12deb1c..0219194d 100644 --- a/tests/file.cpp +++ b/tests/file.cpp @@ -7,8 +7,8 @@ static void test_filepath() { - File a(""); - File b("file.txt"); + File a("", 0); + File b("file.txt", 0); test_equal(a.get_version(), (unsigned)0); test_equal((std::string)a.get_filepath(), (std::string)""); @@ -23,12 +23,12 @@ static void test_filepath() static void test_open() { - File a(""); + File a("", 0); test_equal(a.open(OPEN_READ), false); test_equal(a.open(OPEN_WRITE), false); - File b("file.txt"); + File b("file.txt", 0); test_equal(b.open(NOT_OPEN), false); test_equal(b.open(OPEN_READ), false); test_equal(b.open(OPEN_WRITE), true); @@ -40,17 +40,18 @@ static void test_open() static void test_io() { - File a("file.txt"); + File a("file.txt", 1); test_equal(a.open(OPEN_WRITE), true); a << "ABCDE FGHIJ KLMNO PQRST UVWXYZ" << std::endl; a.close(); test_equal(a.exists(), true); - File b("file.txt"); + File b("file.txt", 0); std::string res; test_equal(b.open(OPEN_READ), true); + test_equal(b.get_version(), (unsigned)1); b >> res; test_equal(res, (std::string)"ABCDE"); b >> res; From a385727206ef59aa3a3ee5589e8de34bf657dba0 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Mon, 26 May 2014 19:10:24 -0400 Subject: [PATCH 67/93] tests: Move sample files into the Data/ directory Keeping separate directories for all of these files isn't the most obvious way to do things. Instead, move everything into the same directory. Signed-off-by: Anna Schumaker --- lib/deck.cpp | 2 +- tests/.gitignore | 1 + tests/{Library => Data}/album.db | 0 tests/{Library => Data}/artist.db | 0 tests/{Library => Data}/genre.db | 0 tests/{Library => Data}/library.db | 0 tests/{Playlist => Data}/playlist.db | 0 tests/{Library => Data}/track.db | 0 tests/Sconscript | 3 +- tests/{deck => }/deck.cpp | 37 ++-- tests/{deck => deck.old}/Sconscript | 0 tests/{deck => deck.old}/deck.good | 0 tests/library.cpp | 304 +-------------------------- tests/playlist.cpp | 2 +- tests/queue.cpp | 4 +- tests/test.h | 11 +- 16 files changed, 33 insertions(+), 331 deletions(-) rename tests/{Library => Data}/album.db (100%) rename tests/{Library => Data}/artist.db (100%) rename tests/{Library => Data}/genre.db (100%) rename tests/{Library => Data}/library.db (100%) rename tests/{Playlist => Data}/playlist.db (100%) rename tests/{Library => Data}/track.db (100%) rename tests/{deck => }/deck.cpp (93%) rename tests/{deck => deck.old}/Sconscript (100%) rename tests/{deck => deck.old}/deck.good (100%) diff --git a/lib/deck.cpp b/lib/deck.cpp index ebf6b70e..daa92a5e 100644 --- a/lib/deck.cpp +++ b/lib/deck.cpp @@ -178,7 +178,7 @@ void deck :: reset() { get_callbacks()->on_queue_changed = no_op; playqueue_deck.clear(); - library_playqueue.reset(); + //library_playqueue.reset(); } void deck :: print_info() diff --git a/tests/.gitignore b/tests/.gitignore index fa59425a..f30eb57c 100644 --- a/tests/.gitignore +++ b/tests/.gitignore @@ -9,3 +9,4 @@ random queue library playlist +deck diff --git a/tests/Library/album.db b/tests/Data/album.db similarity index 100% rename from tests/Library/album.db rename to tests/Data/album.db diff --git a/tests/Library/artist.db b/tests/Data/artist.db similarity index 100% rename from tests/Library/artist.db rename to tests/Data/artist.db diff --git a/tests/Library/genre.db b/tests/Data/genre.db similarity index 100% rename from tests/Library/genre.db rename to tests/Data/genre.db diff --git a/tests/Library/library.db b/tests/Data/library.db similarity index 100% rename from tests/Library/library.db rename to tests/Data/library.db diff --git a/tests/Playlist/playlist.db b/tests/Data/playlist.db similarity index 100% rename from tests/Playlist/playlist.db rename to tests/Data/playlist.db diff --git a/tests/Library/track.db b/tests/Data/track.db similarity index 100% rename from tests/Library/track.db rename to tests/Data/track.db diff --git a/tests/Sconscript b/tests/Sconscript index e6e9976c..eede98a3 100644 --- a/tests/Sconscript +++ b/tests/Sconscript @@ -6,7 +6,7 @@ tests = [ ### # -# (source.cpp, use collected lib_files?, [ other files ]) +# (source.cpp, use collected lib_files?, [ other files ], [ other packages ]) # ("version.cpp", False, [], [ "glib-2.0" ]), @@ -20,6 +20,7 @@ tests = [ ("queue.cpp", True, [ "callback.cpp", "random.cpp" ], []), ("library.cpp", True, [ "idle.cpp" ], []), ("playlist.cpp", True, [], []), + ("deck.cpp", True, [], []), ] diff --git a/tests/deck/deck.cpp b/tests/deck.cpp similarity index 93% rename from tests/deck/deck.cpp rename to tests/deck.cpp index da208c8e..0fb83d4a 100644 --- a/tests/deck/deck.cpp +++ b/tests/deck.cpp @@ -1,7 +1,16 @@ /* * Copyright 2013 (c) Anna Schumaker. */ -#include + + + +int main(int argc, char **argv) +{ + return 0; +} + + +/*#include #include #include #include @@ -12,9 +21,9 @@ void test_add_playlist(unsigned int size) for (unsigned i = 0; i < size; i++) pqueue->add(i); } - +*/ /* Test creating a deck of playlists */ -void test_0() +/*void test_0() { for (unsigned int i = 0; i < 10; i++) test_add_playlist(10 + i); @@ -22,9 +31,9 @@ void test_0() deck :: print_info(); print("\n"); } - +*/ /* Test removing playlists from the deck */ -void test_1() +/*void test_1() { print("Test 1:\n"); deck :: remove(3); @@ -34,9 +43,9 @@ void test_1() deck :: print_info(); print("\n"); } - +*/ /* Get a specific playlist from the deck */ -void test_2() +/*void test_2() { Playqueue *pqueue; print("Test 2: "); @@ -44,10 +53,10 @@ void test_2() pqueue = deck :: get(3); print("Playqueue { size = %u, flags = %u }", pqueue->size(), pqueue->get_flags()); print("\n\n"); -} +}*/ /* Move a playlist to a new position in the deck */ -void test_3() +/*void test_3() { print("Test 3:\n"); deck :: move(4, 0); @@ -68,10 +77,10 @@ void test_3() deck :: move(4, 4); deck :: print_info(); print("\n"); -} +}*/ /* Test the next() function for playlists */ -void test_4() +/*void test_4() { print("Test 4:\n"); @@ -87,10 +96,10 @@ void test_4() deck :: print_info(); print("\n"); -} +}*/ /* Test load / save functions */ -void test_5() +/*void test_5() { print("Test 5:\n"); @@ -141,4 +150,4 @@ int main(int argc, char **argv) print("Library size: %u\n", deck :: get_library_pq()->size()); return 0; -} +}*/ diff --git a/tests/deck/Sconscript b/tests/deck.old/Sconscript similarity index 100% rename from tests/deck/Sconscript rename to tests/deck.old/Sconscript diff --git a/tests/deck/deck.good b/tests/deck.old/deck.good similarity index 100% rename from tests/deck/deck.good rename to tests/deck.old/deck.good diff --git a/tests/library.cpp b/tests/library.cpp index d52e3810..0838dd9c 100644 --- a/tests/library.cpp +++ b/tests/library.cpp @@ -105,7 +105,7 @@ static void test_update() int main(int argc, char **argv) { - test :: cp_library(); + test :: cp_data_dir(); run_test("Library Init Test", test_init); run_test("Library Enable and Disable Test", test_enable); @@ -113,305 +113,3 @@ int main(int argc, char **argv) run_test("Library Add Path Test", test_add); run_test("Library Update Path Test", test_update); } -/*#include -#include -#include -#include - -#include - -void gen_library() -{ - system("tests/library/gen_library.sh"); - print("\n"); -} - -void run_idle_tasks() -{ - while (idle :: run_task()); -} - -bool check_add_dir(const std::string &dir) -{ - try { - library :: add_path(dir.c_str()); - return true; - } catch (int error) { - return false; - } -} - -void library_added(unsigned int id, library :: Library *path) -{ - print("Added library %u: %s\n", id, path->root_path.c_str()); -} - -void library_updated(unsigned int id, library :: Library *path) -{ - print("Updated library %u: %s (size: %u)\n", - id, path->root_path.c_str(), path->size); -} - -void test_add_dir(const std::string &test, const std::string &dir, bool expected) -{ - print("Test %s: ", test.c_str()); - if (check_add_dir(dir.c_str()) == expected) - print("PASSED\n"); - else - print("FAILED\n"); - - run_idle_tasks(); - library :: print_db(library :: DB_LIBRARY); -} - -void test_del_dir(const std::string &test, const unsigned int path_id) -{ - print("Test %s\n", test.c_str()); - library :: del_path(path_id); - library :: print_db(library :: DB_LIBRARY); -} - -bool check_lookup(const unsigned int track_id, library :: Song *song) -{ - try { - library :: lookup(track_id, song); - return true; - } catch (int error) { - return false; - } -} - -void test_lookup(const std::string &test, const unsigned int track_id, bool expected) -{ - library :: Song song; - bool res; - - print("Test %s (track_id == %u): ", test.c_str(), track_id); - - res = check_lookup(track_id, &song); - if (res == expected) - print("PASSED\n"); - else - print("FAILED\n"); - - if (res == true) { - print(" %s (%s) by %s (%s) from %s (%s) Length: %s\n", - song.track->title.c_str(), - song.track->title_lower.c_str(), - song.artist->primary_key.c_str(), - song.artist->key_lower.c_str(), - song.album->name.c_str(), - song.album->name_lower.c_str(), - song.track->length_str.c_str()); - print(" Genre: %s (%s), Library: %s\n", - song.genre->primary_key.c_str(), - song.genre->key_lower.c_str(), - song.library->root_path.c_str()); - } -} - -void test_path_lookup(const std::string &test, unsigned int lib_id, bool expected) -{ - library :: Library *lib; - - print("Test %s (lib_id == %u): ", test.c_str(), lib_id); - - try { - lib = library :: lookup_path(lib_id); - if (expected == true) - print("PASSED\n"); - else - print("FAILED, no error produced\n"); - - print("%s (", lib->root_path.c_str()); - if (lib->enabled) - print("enabled"); - else - print("disabled"); - print(") size = %u\n", lib->size); - } catch (int error) { - if (expected == true) - print("FAILED, unexpected error %d\n", error); - else - print("PASSED\n"); - } -} - -void test_print_dbs(const std::string &test) -{ - print("Test %s\n", test.c_str()); - library :: print_db(library :: DB_GENRE); - print("\n"); -}*/ - - -/* Add paths library that SHOULD fail */ -/*void test_0() -{ - test_add_dir("0a", "/tmp/library/error", false); - test_add_dir("0b", "/tmp/library/file", false); - print("\n"); -}*/ - -/* Simple library path operations */ -/*void test_1() -{ - test_add_dir("1a", "/tmp/library/0", true); - test_del_dir("1b", 0); - print("\n"); -}*/ - -/* Test multiple paths */ -/*void test_2() -{ - library :: reset(); - test_add_dir("2a", "/tmp/library/0", true); - test_add_dir("2b", "/tmp/library/1", true); - test_add_dir("2c", "/tmp/library/2", true); - - test_del_dir("2d", 1); - test_del_dir("2e", 0); - test_del_dir("2f", 2); - print("\n"); -}*/ - -/* Test load and save of library db */ -/*void test_3() -{ - library :: reset(); - test_add_dir("3a", "/tmp/library/0", true); - test_add_dir("3b", "/tmp/library/1", true); - test_add_dir("3c", "/tmp/library/2", true); - - print("Test 3d\n"); - library :: reset(); - library :: print_db(library :: DB_LIBRARY); - - print("Test 3e\n"); - library :: init(); - library :: print_db(library :: DB_LIBRARY); - print("\n"); -}*/ - -/* Test scanning a single path */ -/*void test_4() -{ - library :: reset(); - test_add_dir("4a", "/tmp/library/0", true); - - library :: print_db(library :: DB_ARTIST); - print("\n"); - library :: print_db(library :: DB_ALBUM); - print("\n"); - library :: print_db(library :: DB_GENRE); - print("\n"); - library :: print_db(library :: DB_TRACK); - print("\n"); -}*/ - -/* Test lookup() */ -/*void test_5() -{ - library :: reset(); -*/ - /* Lookup on empty DB */ -// test_lookup("5a", 0, false); -// test_add_dir("5b", "/tmp/library/0", true); - /* Lookup on DB[0] */ -// test_lookup("5c", 0, true); - /* Lookup on DB[10] */ -// test_lookup("5d", 42, true); - /* Lookup beyond db */ -// test_lookup("5e", 100000, false); - - /* Lookup path id = 0 */ -// test_path_lookup("5f", 0, true); - /* Lookup path id that doesn't exist */ -// test_path_lookup("5g", 1, false); -// print("\n"); -//} - -/* Test validation code */ -/*void test_6() -{ - library :: reset(); - - test_add_dir("6a", "/tmp/library/0", true); - print("\n"); - - print("6b: Updating library 0 (nothing should change)\n"); - library :: update_path(0); - run_idle_tasks(); - library :: print_db(library :: DB_TRACK); - print("\n"); - - print("6c: Delete /tmp/library/0/Artist 2\n"); - system("rm -rf /tmp/library/0/Artist\\ 2/"); - library :: update_path(0); - run_idle_tasks(); - library :: print_db(library :: DB_LIBRARY); - library :: print_db(library :: DB_TRACK); - print("\n"); - - print("6d: Regenerate Artist 2\n"); - fflush(stdout); - gen_library(); - fflush(stdout); - library :: update_all(); - run_idle_tasks(); - library :: print_db(library :: DB_TRACK); - print("\n"); -}*/ - -/* Test importing Ocarina 5.11 libraries */ -/*void test_7() -{ - library :: reset(); - - test_add_dir("7a", "/tmp/library/2", true); - - print("\n"); - library :: import(); - run_idle_tasks(); - library :: print_db(library :: DB_LIBRARY); - print("\n"); -}*/ - -/* Test disabling libraries */ -/*void test_8() -{ - library :: reset(); - - test_add_dir("8a", "/tmp/library/0", true); - print("\n"); - library :: set_enabled(0, false); - library :: print_db(library :: DB_LIBRARY); - library :: set_enabled(0, true); - library :: print_db(library :: DB_LIBRARY); - library :: set_enabled(0, false); - library :: print_db(library :: DB_LIBRARY); - library :: set_enabled(0, true); - library :: print_db(library :: DB_LIBRARY); -} - - -int main(int argc, char **argv) -{ - struct Callbacks *cb; - gen_library(); - - cb = get_callbacks(); - cb->on_library_add = library_added; - cb->on_library_update = library_updated; - - test_0(); - test_1(); - test_2(); - test_3(); - test_4(); - test_5(); - test_6(); - test_7(); - test_8(); - return 0; -}*/ diff --git a/tests/playlist.cpp b/tests/playlist.cpp index e81c59fb..c8763aa0 100644 --- a/tests/playlist.cpp +++ b/tests/playlist.cpp @@ -110,7 +110,7 @@ static void test_has() int main(int argc, char **argv) { - test :: cp_playlist(); + test :: cp_data_dir(); run_test("Playlist Initialization Test", test_init); run_test("Playlist Queue Test", test_queue); diff --git a/tests/queue.cpp b/tests/queue.cpp index 4bbb56c7..59da0f69 100644 --- a/tests/queue.cpp +++ b/tests/queue.cpp @@ -344,7 +344,7 @@ void test_saving() { TestQueue q(Q_RANDOM); TestQueue r(0); - File f("test.q"); + File f("test.q", 0); test_fill_q(&q); @@ -373,7 +373,7 @@ void test_saving() int main(int argc, char **argv) { - test :: cp_library(); + test :: cp_data_dir(); tagdb :: init(); run_test("Queue Default Constructor Test", test_default); diff --git a/tests/test.h b/tests/test.h index b37583f4..ea9dbd42 100644 --- a/tests/test.h +++ b/tests/test.h @@ -118,17 +118,10 @@ namespace test system(cmd.c_str()); } - void cp_library() + void cp_data_dir() { reset_data_dir(); - std::string cmd = "cp -r tests/Library/* " + data_dir(); - system(cmd.c_str()); - } - - void cp_playlist() - { - cp_library(); - std::string cmd = "cp -r tests/Playlist/* " + data_dir(); + std::string cmd = "cp -r tests/Data/* " + data_dir(); system(cmd.c_str()); } From b6156bab114c46e38d067e32ff8bbdcae07144f9 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Mon, 26 May 2014 20:27:26 -0400 Subject: [PATCH 68/93] deck: Update the deck design for a new implementation Signed-off-by: Anna Schumaker --- DESIGN | 119 ++++++++++++++++++++++++++++++++++----------------------- 1 file changed, 71 insertions(+), 48 deletions(-) diff --git a/DESIGN b/DESIGN index 3b9dc983..4e2c67e1 100644 --- a/DESIGN +++ b/DESIGN @@ -1086,7 +1086,7 @@ Library: library path will have its tracks removed from the LibraryQueue. - void library :: get_queue(); + Queue *library :: get_queue(); Return the LibraryQueue to the caller. @@ -1173,75 +1173,98 @@ Playlist: +Deck: + The deck is used to hold temporary queues created by the user. This + layer is also in charge of maintaining a "recently played" queue of + tracks. - - - - - - -Deck: (lib/deck.cpp) - The playqueue deck is used to hold the temporary playqueues created by - the user. - - This module also controls the library playqueue, which should be updated - using the on_library_track_add() and on_library_track_del() callback - functions. The library playqueue will always have PQ_ENABLED and - PQ_REPEAT set. This playlist will default to PQ_RANDOM unset. + The deck will be saved to the file "deck". When upgrading from file + version V0 to V1, use the saved random flag and sort order to set up + the library_q. - Deck: - list deck; - Playqueue library_pq; + list deck; - File << library_pq.random << deck.size() << endl; - File << deck[0] << endl; - File << deck[N] << endl; + V0: + File << library_q.random << library_q.sort_order().size(); + File << lib12order()[N].field << lib12order()[N].ascending; + File << deck.size() << endl; + File << deck[0] << endl; + File << deck[N] << endl; + + V1: + File << deck.size() << endl; + File << deck[0] << endl; + File << deck[1] << endl; + +- RecentQueue: + class RecentQueue : public Queue { + public: + RecentQueue(); + unsigned int add(Track *); + }; + +- RecentQueue API: + RecentQueue :: RecentQueue(); + Initialize a Queue with the flags Q_ENABLED, Q_REPEAT, and + Q_NO_SORT set. + + unsigned int RecentQueue :: add(Track *track); + The RecentQueue is designed to be a uniqueue queue that displays + the most recent tracks first. + + del(track); + _cur = 0; + return _add_at(track, 0); - API void deck :: init(); - Set up callbacks used by the library. + Read the deck file from disk and restore the queues. - void deck :: read(File &); void deck :: write(File &); Read or write the playqueue file. This will be called from the audio layer to store state. - Playqueue *deck :: create(); - Adds a new playqueue to the end of the deck and returns a - pointer to it. + Queue *deck :: create(bool random); + Adds a new queue to the end of the deck and return a pointer + to it. Save the deck to disk. - void deck :: remove(N); - Remove playqueue N from the deck. + void deck :: destroy(Queue *queue); + Remove the requested queue from the deck and trigger the + on_pq_removed() callback. Save the deck to disk. - Playqueue *deck :: get(N); - Return playqueue N from the deck. + void deck :: add(Track *track, Queue *queue); + Add the requested track to the requested queue. Save the deck + to disk. - void deck :: move(M, N); - Move playqueue at index M to index N. + void deck :: remove(Track *track, Queue *queue); + Remove the requested track from the requested queue. Save the + deck to disk. - unsigned int deck :: next(); - Iterate through the deck until you find a playqueue with the - flag PQ_ENABLED set. Call next() on this playqueue and return - the result. + void deck :: move(Queue *queue, unsigned int pos); + Move the queue to the new location in the deck. Save the deck + to disk. - If the playqueue is empty after calling next(), remove it from - the deck. + Track *deck :: next(); + Find the first enabled queue on the deck and return the track + given by queue->next(). - If there are no playqueues on the deck, play a song from the - library playqueue. + If the queue is empty after calling next(), call destroy() to + remove it from the list. - If there are no playable IDs, throw -EEXIST. + If there are no enabled queues, return a track from the library + queue. If the library queue is empty, return NULL. + + Save the deck before returning. + + list &deck :: get_queues(); + Return the list of queues to the caller. + + Queue *deck :: get_queue(); + Return the RecentQueue to the caller. - void deck :: reset(); - This function only exists if CONFIG_TEST is enabled. Erase - all the playqueue information and reset the deck list. - void deck :: print_info(); - This function only exists if CONFIG_TEST is enabled. Print - out helpful stats about the current state of the playqueue deck. - Playqueue *deck :: get_library_pq(); - Return the library playqueue. From 211d240484ebfdc755c30f937c127def42947e46 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Mon, 26 May 2014 22:20:07 -0400 Subject: [PATCH 69/93] deck: Rework the deck code I update the unit test and redo much of the code to be cleaner and make more sense. One big improvement is that the recently played queue will now be managed by the deck. Signed-off-by: Anna Schumaker --- DESIGN | 22 ++-- include/callback.h | 1 - include/deck.h | 19 ++-- lib/callback.cpp | 1 - lib/deck.cpp | 260 ++++++++++++++++++++++----------------------- tests/deck.cpp | 255 ++++++++++++++++++++++---------------------- 6 files changed, 274 insertions(+), 284 deletions(-) diff --git a/DESIGN b/DESIGN index 4e2c67e1..4ae018fe 100644 --- a/DESIGN +++ b/DESIGN @@ -1176,7 +1176,8 @@ Playlist: Deck: The deck is used to hold temporary queues created by the user. This layer is also in charge of maintaining a "recently played" queue of - tracks. + tracks. The function deck :: write() must be called whenever a queue + is modified to save the changes to disk. The deck will be saved to the file "deck". When upgrading from file version V0 to V1, use the saved random flag and sort order to set up @@ -1233,18 +1234,14 @@ Deck: Remove the requested queue from the deck and trigger the on_pq_removed() callback. Save the deck to disk. - void deck :: add(Track *track, Queue *queue); - Add the requested track to the requested queue. Save the deck - to disk. - - void deck :: remove(Track *track, Queue *queue); - Remove the requested track from the requested queue. Save the - deck to disk. - void deck :: move(Queue *queue, unsigned int pos); Move the queue to the new location in the deck. Save the deck to disk. + unsigned int deck :: index(Queue *queue); + Return the index of the queue in the deck or deck.size() if + the queue is not currently in the deck. + Track *deck :: next(); Find the first enabled queue on the deck and return the track given by queue->next(). @@ -1255,8 +1252,15 @@ Deck: If there are no enabled queues, return a track from the library queue. If the library queue is empty, return NULL. + If the result is non-NULL, add the found track to the recent + queue. + Save the deck before returning. + Track *deck :: prev(); + Return the track given by recent_queue->next(). If the recent + queue is empty, return NULL. + list &deck :: get_queues(); Return the list of queues to the caller. diff --git a/include/callback.h b/include/callback.h index 722f1516..af4b9427 100644 --- a/include/callback.h +++ b/include/callback.h @@ -16,7 +16,6 @@ struct Callbacks { void (*on_pause_count_changed)(bool, unsigned int); /* Deck callbacks */ - void (*on_pq_created)(Queue *, unsigned int); void (*on_pq_removed)(Queue *); /* Queue callbacks */ diff --git a/include/deck.h b/include/deck.h index 5c776b83..421e434a 100644 --- a/include/deck.h +++ b/include/deck.h @@ -5,27 +5,24 @@ #define OCARINA_DECK_H #include +#include namespace deck { void init(); - void read(); void write(); Queue *create(bool); - void remove(unsigned int); - Queue *get(unsigned int); - unsigned int size(); - void move(unsigned int, unsigned int); + void destroy(Queue *); void move(Queue *, unsigned int); - Track *next(); - Queue *get_library_pq(); + unsigned int index(Queue *); -#ifdef CONFIG_TEST - void reset(); - void print_info(); -#endif /* CONFIG_TEST */ + Track *next(); + Track *prev(); + + std::list &get_queues(); + Queue *get_queue(); }; diff --git a/lib/callback.cpp b/lib/callback.cpp index 3f71a2c9..573853a3 100644 --- a/lib/callback.cpp +++ b/lib/callback.cpp @@ -17,7 +17,6 @@ static struct Callbacks callbacks = { .on_track_loaded = no_op, .on_pause_count_changed = no_op, - .on_pq_created = no_op, .on_pq_removed = no_op, .on_queue_track_add = no_op, diff --git a/lib/deck.cpp b/lib/deck.cpp index daa92a5e..b95fecb6 100644 --- a/lib/deck.cpp +++ b/lib/deck.cpp @@ -3,193 +3,183 @@ */ #include #include -#include #include -#include +#include -#include -static std::list playqueue_deck; -static File deck_file("deck", 0); +class RecentQueue : public Queue +{ +public: + RecentQueue() : Queue(Q_ENABLED | Q_REPEAT | Q_NO_SORT) {} + + unsigned int add(Track *track) + { + del(track); + _cur = 0; + return _add_at(track, 0); + } +}; + + +static std::list queue_deck; +static RecentQueue recent_queue; +static File deck_file("deck", 1); + + +static void upgrade_v0() +{ + int random, ascending; + unsigned int num, field; + Queue *library = library :: get_queue(); + + deck_file >> random >> num; + if (random) + library->set_flag(Q_RANDOM); + + for (unsigned int i = 0; i < num; i++) { + deck_file >> field >> ascending; + library->sort((sort_t)field, (i == 0) ? true : false); + if (!ascending) + library->sort((sort_t)field, false); + } +} void deck :: init() -{ - read(); - get_callbacks()->on_queue_changed = write; -} - -void deck :: read() { unsigned int num; - int random; - unsigned int field; - bool ascending; + bool upgraded = false; std::list::iterator it; - if (!deck_file.exists()) + if (!deck_file.open(OPEN_READ)) return; - deck_file.open(OPEN_READ); - deck_file >> random >> num; - for (unsigned int i = 0; i < num; i++) { - deck_file >> field >> ascending; - //library_playqueue.sort((sort_t)field, i == 0); - //if (!ascending) - // library_playqueue.sort((sort_t)field, false); + if (deck_file.get_version() == 0) { + upgrade_v0(); + upgraded = true; } deck_file >> num; - playqueue_deck.resize(num); + queue_deck.resize(num); - num = 0; - for (it = playqueue_deck.begin(); it != playqueue_deck.end(); it++) { + for (it = queue_deck.begin(); it != queue_deck.end(); it++) it->read(deck_file); - get_callbacks()->on_pq_created(&(*it), num); - num++; - } deck_file.close(); + + if (upgraded) + deck :: write(); } void deck :: write() { std::list::iterator it; - //std::list::iterator st; - //std::list sort_order; - deck_file.open(OPEN_WRITE); + if (!deck_file.open(OPEN_WRITE)) + return; - /* Save library playqueue */ - //sort_order = library_playqueue.get_sort_order(); - deck_file << false << " "; //library_playqueue.has_flag(Q_RANDOM) << " "; - deck_file << 0 /* sort_order.size() */ << " "; - //for (st = sort_order.begin(); st != sort_order.end(); st++) - // deck_file << st->field << " " << st->ascending << " "; - - deck_file << playqueue_deck.size() << std :: endl; - for (it = playqueue_deck.begin(); it != playqueue_deck.end(); it++) { + deck_file << queue_deck.size() << std :: endl; + for (it = queue_deck.begin(); it != queue_deck.end(); it++) { it->write(deck_file); deck_file << std::endl; } + deck_file.close(); } Queue *deck :: create(bool random) { - Queue *pq; - playqueue_deck.push_back(Queue(Q_ENABLED)); - pq = &playqueue_deck.back(); - if (random == true) - pq->set_flag(Q_RANDOM); - get_callbacks()->on_pq_created(pq, playqueue_deck.size() - 1); - return pq; + unsigned int flag = (random ? Q_RANDOM : 0); + queue_deck.push_back(Queue(Q_ENABLED | flag)); + return &queue_deck.back(); } -void deck :: remove(unsigned int id) +static void _destroy(std::list::iterator &it) { - std::list::iterator it = playqueue_deck.begin(); - for (unsigned int i = 0; i < id; i++) - it++; get_callbacks()->on_pq_removed(&(*it)); - playqueue_deck.erase(it); - write(); + queue_deck.erase(it); + deck :: write(); } -Queue *deck :: get(unsigned int id) +void deck :: destroy(Queue *queue) { - std::list::iterator it = playqueue_deck.begin(); - for (unsigned int i = 0; i < id; i++) - it++; - return &(*it); -} - -unsigned int deck :: size() -{ - return playqueue_deck.size(); -} - -void deck :: move(unsigned int old_pos, unsigned int new_pos) -{ - std::list::iterator it_old = playqueue_deck.begin(); - std::list::iterator it_new = playqueue_deck.begin(); - - for (unsigned int i = 0; i < playqueue_deck.size(); i++) { - if (i < old_pos) - it_old++; - if (i < new_pos) - it_new++; - } - - if (new_pos > old_pos) - it_new++; - - playqueue_deck.splice(it_new, playqueue_deck, it_old); -} - -void deck :: move(Queue *pq, unsigned int new_pos) -{ - unsigned int old_pos = 0; - std::list::iterator it_old = playqueue_deck.begin(); - std::list::iterator it_new = playqueue_deck.begin(); - - for (unsigned int i = 0; i < playqueue_deck.size(); i++) { - if (&(*it_old) != pq) { - it_old++; - old_pos++; - } - if (i < new_pos) - it_new++; - } - - if (new_pos > old_pos) - it_new++; - - playqueue_deck.splice(it_new, playqueue_deck, it_old); -} - -Track *deck :: next() -{ - Track *track; std::list::iterator it; - for (it = playqueue_deck.begin(); it != playqueue_deck.end(); it++) { - if (it->has_flag(Q_ENABLED)) { - if (it->size() == 0) { - playqueue_deck.erase(it); - get_callbacks()->on_pq_removed(&(*it)); - } else { - track = it->next(); - if (it->size() == 0) { - playqueue_deck.erase(it); - get_callbacks()->on_pq_removed(&(*it)); - } - } - write(); - return track; + for (it = queue_deck.begin(); it != queue_deck.end(); it++) { + if (&(*it) == queue) { + _destroy(it); + return; } } - - return library :: get_queue()->next(); } -#ifdef CONFIG_TEST -static void no_op() {} - -void deck :: reset() +void deck :: move(Queue *queue, unsigned int new_pos) { - get_callbacks()->on_queue_changed = no_op; - playqueue_deck.clear(); - //library_playqueue.reset(); + unsigned int old_pos = deck :: index(queue); + std::list::iterator it_old = queue_deck.begin(); + std::list::iterator it_new = queue_deck.begin(); + + for (unsigned int i = 0; i < queue_deck.size(); i++) { + if (i < old_pos) + it_old++; + + if (i < new_pos) + it_new++; + } + + if (new_pos > old_pos) + it_new++; + + queue_deck.splice(it_new, queue_deck, it_old); } -void deck :: print_info() +unsigned int deck :: index(Queue *queue) { unsigned int i = 0; std::list::iterator it; - for (it = playqueue_deck.begin(); it != playqueue_deck.end(); it++) { - print("deck[%u] = Queue { size = %u, flags = %u }\n", - i, it->size()); + for (it = queue_deck.begin(); it != queue_deck.end(); it++) { + if (&(*it) == queue) + return i; i++; } + + return queue_deck.size(); +} + +Track *deck :: next() +{ + Track *track = NULL; + std::list::iterator it; + + for (it = queue_deck.begin(); it != queue_deck.end(); it++) { + if (it->has_flag(Q_ENABLED) == false) + continue; + + track = it->next(); + if (it->size() == 0) + _destroy(it); + else + write(); + break; + } + + if (!track) + track = library :: get_queue()->next(); + + recent_queue.add(track); + return track; +} + +Track *deck :: prev() +{ + return recent_queue.next(); +} + +std::list &deck :: get_queues() +{ + return queue_deck; +} + +Queue *deck :: get_queue() +{ + return &recent_queue; } -#endif /* CONFIG_TEST */ diff --git a/tests/deck.cpp b/tests/deck.cpp index 0fb83d4a..6944bc79 100644 --- a/tests/deck.cpp +++ b/tests/deck.cpp @@ -1,153 +1,154 @@ /* * Copyright 2013 (c) Anna Schumaker. */ - - - -int main(int argc, char **argv) -{ - return 0; -} - - -/*#include -#include +#include +#include #include -#include +#include "test.h" -void test_add_playlist(unsigned int size) -{ - Playqueue *pqueue = deck :: create(false); - for (unsigned i = 0; i < size; i++) - pqueue->add(i); -} -*/ -/* Test creating a deck of playlists */ -/*void test_0() -{ - for (unsigned int i = 0; i < 10; i++) - test_add_playlist(10 + i); - print("Test 0:\n"); - deck :: print_info(); - print("\n"); -} -*/ -/* Test removing playlists from the deck */ -/*void test_1() -{ - print("Test 1:\n"); - deck :: remove(3); - deck :: remove(7); - deck :: remove(1); - deck :: remove(5); - deck :: print_info(); - print("\n"); -} -*/ -/* Get a specific playlist from the deck */ -/*void test_2() -{ - Playqueue *pqueue; - print("Test 2: "); +static Queue *Q_NULL = NULL; +static Track *TRACK_NULL = NULL; - pqueue = deck :: get(3); - print("Playqueue { size = %u, flags = %u }", pqueue->size(), pqueue->get_flags()); - print("\n\n"); -}*/ - -/* Move a playlist to a new position in the deck */ -/*void test_3() +static void test_init() { - print("Test 3:\n"); - deck :: move(4, 0); - deck :: print_info(); - print("\n"); - deck :: move(5, 1); - deck :: print_info(); - print("\n"); - deck :: move(2, 5); - deck :: print_info(); - print("\n"); - deck :: move(3, 4); - deck :: print_info(); - print("\n"); - deck :: move(4, 3); - deck :: print_info(); - print("\n"); - deck :: move(4, 4); - deck :: print_info(); - print("\n"); -}*/ + unsigned int val; + File f("deck", 0); + std::list::iterator it; -/* Test the next() function for playlists */ -/*void test_4() -{ - print("Test 4:\n"); + deck :: init(); + test_equal(library :: get_queue()->has_flag(Q_RANDOM), true); + test_equal(deck :: get_queues().size(), (size_t)2); - deck :: get(0)->unset_flag(PQ_ENABLED); - deck :: get(1)->unset_flag(PQ_ENABLED); - deck :: get(4)->unset_flag(PQ_ENABLED); + it = deck :: get_queues().begin(); + test_equal(it->size(), (unsigned)4); + for (unsigned int i = 0; i < 4; i++) + test_equal((*it)[i]->id, i); - for (unsigned int i = 0; i < 40; i++) { - print("Playing id: %u\n", deck :: next()); - if (i == 11 || i == 25) - deck :: print_info(); + it++; + test_equal(it->size(), (unsigned)5); + for (unsigned int i = 0; i < 5; i++) + test_equal((*it)[i]->id, i + 4); + + /* + * Test that we saved the deck in the new format + */ + f.open(OPEN_READ); + test_equal(f.get_version(), (unsigned)1); + f >> val; /* number of queues */ + test_equal(val, (unsigned)2); + + for (unsigned int i = 0; i < 2; i++) { + f >> val; /* queues[i].flags */ + test_equal(val, (unsigned)1); + + f >> val; /* queues[i].size */ + test_equal(val, 4 + i); + + for (unsigned int j = 0; j < 4 + i; j++) { + f >> val; + test_equal(val, (4 * i) + j); + } } - deck :: print_info(); - print("\n"); -}*/ + f.close(); +} -/* Test load / save functions */ -/*void test_5() +static unsigned int n = 0; +static void on_queue_removed(Queue *queue) { - print("Test 5:\n"); + n++; +} - deck :: get(1)->set_flag(PQ_ENABLED); - deck :: get(2)->set_flag(PQ_ENABLED); - deck :: get(2)->set_flag(PQ_RANDOM); +static void test_create_mv_destroy() +{ + Queue *q1, *q2; - print("Saving playqueue deck\n"); - deck :: write(); + q1 = deck :: create(true); + test_not_equal(q1, Q_NULL); + test_equal(q1->has_flag(Q_ENABLED), true); + test_equal(q1->has_flag(Q_RANDOM), true); + test_equal(deck :: index(q1), (unsigned)2); - print("Clearing deck\n"); - deck :: reset(); - deck :: print_info(); + q2 = deck :: create(false); + test_not_equal(q2, Q_NULL); + test_equal(q2->has_flag(Q_ENABLED), true); + test_equal(q2->has_flag(Q_RANDOM), false); + test_equal(deck :: index(q2), (unsigned)3); - print("Reading back playqueue deck\n"); - deck :: init(); + deck :: move(q1, 3); + test_equal(deck :: index(q1), (unsigned)3); + deck :: move(q1, 3); + test_equal(deck :: index(q1), (unsigned)3); + deck :: move(q1, 2); + test_equal(deck :: index(q1), (unsigned)2); - deck :: print_info(); + get_callbacks()->on_pq_removed = on_queue_removed; + + deck :: destroy(q1); + test_equal(n, (unsigned)1); + test_equal(deck :: index(q1), (unsigned)3); + test_equal(deck :: index(q2), (unsigned)2); + + deck :: destroy(q2); + test_equal(n, (unsigned)2); + test_equal(deck :: index(q2), (unsigned)2); +} + +static void test_next_prev() +{ + std::list::iterator it = deck :: get_queues().begin(); + Queue *q = deck :: get_queue(); + Queue *q0 = &(*it++); + Queue *q1 = &(*it++); + + q0->unset_flag(Q_RANDOM); + for (unsigned int i = 0; i < 4; i++) + q0->add(tagdb :: lookup(i)); + + test_not_equal(q, Q_NULL); + test_equal(q->size(), (unsigned)0); + test_equal(deck :: prev(), TRACK_NULL); + + for (unsigned int i = 0; i < 2; i++) { + test_equal(deck :: next()->id, (unsigned)0); + test_equal(deck :: next()->id, (unsigned)1); + test_equal(deck :: next()->id, (unsigned)2); + test_equal(deck :: next()->id, (unsigned)3); + test_equal(q->size(), (unsigned)4); + } + + for (unsigned int i = 0; i < 2; i++) { + if (i == 1) + test_equal(deck :: prev()->id, (unsigned)3); + test_equal(deck :: prev()->id, (unsigned)2); + test_equal(deck :: prev()->id, (unsigned)1); + test_equal(deck :: prev()->id, (unsigned)0); + } + + test_equal(deck :: get_queues().size(), (size_t)1); + test_equal(deck :: index(q1), (unsigned)0); + + q1->unset_flag(Q_ENABLED); + library :: get_queue()->unset_flag(Q_RANDOM); + + test_equal(q1->size(), (unsigned)5); + deck :: next(); + test_equal(q1->size(), (unsigned)5); + + q1->set_flag(Q_ENABLED); + for (unsigned int i = 0; i < 5; i++) + deck :: next(); + test_equal(deck :: get_queues().size(), (size_t)0); } int main(int argc, char **argv) { + test :: cp_data_dir(); + tagdb :: init(); library :: init(); - deck :: init(); - library :: reset(); - library :: add_path("/tmp/library/0"); - while (idle :: run_task()); - print("Library size: %u\n", deck :: get_library_pq()->size()); - - test_0(); - test_1(); - test_2(); - test_3(); - test_4(); - test_5(); - - print("Disabling library path\n"); - library :: set_enabled(0, false); - print("Library size: %u\n", deck :: get_library_pq()->size()); - - print("Enabling library path\n"); - library :: set_enabled(0, true); - print("Library size: %u\n", deck :: get_library_pq()->size()); - - print("Deleting library path\n"); - library :: del_path(0); - while (idle :: run_task()); - print("Library size: %u\n", deck :: get_library_pq()->size()); + run_test("Deck Init Test", test_init); + run_test("Deck Create, Move and Destroy Test", test_create_mv_destroy); + run_test("Deck Next and Prev Test", test_next_prev); return 0; -}*/ +} From 36322a6ff8b772dc76cc80284f3f236a9980fc30 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Mon, 26 May 2014 22:32:19 -0400 Subject: [PATCH 70/93] Update code to match new deck layout This patch actually breaks a bunch of things, but I just want to be done with the deck changes for now. I'll go back and fix things before releasing! Signed-off-by: Anna Schumaker --- gui/gui.cpp | 10 +++++----- gui/history.cpp | 4 ++-- gui/queue.cpp | 11 +++++------ gui/tabs.cpp | 18 +++++++++--------- lib/audio.cpp | 28 ++-------------------------- 5 files changed, 23 insertions(+), 48 deletions(-) diff --git a/gui/gui.cpp b/gui/gui.cpp index aee1e1fb..eafc1120 100644 --- a/gui/gui.cpp +++ b/gui/gui.cpp @@ -144,20 +144,20 @@ static bool on_window_key_pressed(GdkEventKey *event) tab_focus_search(); else if (key >= "0" && key <= "9") { unsigned int n = atoi(key.c_str()); - if (n < deck::size()) + if (n < deck::get_queues().size()) notebook->set_current_page(n); } else if (key == "c") - notebook->set_current_page(deck::size()); + notebook->set_current_page(deck::get_queues().size()); else if (key == "h") - notebook->set_current_page(deck::size() + 1); + notebook->set_current_page(deck::get_queues().size() + 1); else if (key == "m") - notebook->set_current_page(deck::size() + 3); + notebook->set_current_page(deck::get_queues().size() + 3); else if (key == "n") on_next(); else if (key == "N") audio :: previous(); else if (key == "p") - notebook->set_current_page(deck::size() + 2); + notebook->set_current_page(deck::get_queues().size() + 2); else return false; return true; diff --git a/gui/history.cpp b/gui/history.cpp index 9b076a22..60f45415 100644 --- a/gui/history.cpp +++ b/gui/history.cpp @@ -1,7 +1,7 @@ /* * Copyright 2014 (c) Anna Schumaker. */ -#include +#include #include @@ -13,7 +13,7 @@ public: HistoryTab :: HistoryTab() - : Tab(audio::get_recent_pq()) + : Tab(deck :: get_queue()) { tab_search = get_widget("o_history_entry"); tab_size = get_widget("o_history_size"); diff --git a/gui/queue.cpp b/gui/queue.cpp index b0d17838..f0d8cf38 100644 --- a/gui/queue.cpp +++ b/gui/queue.cpp @@ -291,7 +291,7 @@ void QueueTab :: queue_set_sensitive(bool sensitive) void QueueTab :: on_close_clicked() { - deck :: remove(tab_page_num()); + deck :: destroy(tab_pq); } void QueueTab :: on_switch_changed() @@ -319,11 +319,11 @@ static void renumber_queues() it->second->on_tab_reordered(); } -static void on_pq_created(Queue *pq, unsigned int num) +/*static void on_pq_created(Queue *pq, unsigned int num) { QueueTab *tab = new QueueTab(pq, num); tab->on_post_init(); -} +}*/ static void on_pq_removed(Queue *pq) { @@ -338,8 +338,8 @@ static void on_page_reordered(Gtk::Widget *page, int num) { Gtk::Notebook *notebook = get_widget("o_notebook"); - if ((unsigned int)num >= deck :: size()) { - notebook->reorder_child(*page, deck::size() - 1); + if ((unsigned int)num >= deck :: get_queues().size()) { + notebook->reorder_child(*page, deck::get_queues().size() - 1); return; } @@ -354,7 +354,6 @@ static void on_page_reordered(Gtk::Widget *page, int num) void init_queue_tabs() { struct Callbacks *cb = get_callbacks(); - cb->on_pq_created = on_pq_created; cb->on_pq_removed = on_pq_removed; Gtk::Notebook *notebook = get_widget("o_notebook"); diff --git a/gui/tabs.cpp b/gui/tabs.cpp index 55e506a2..9ebafd5a 100644 --- a/gui/tabs.cpp +++ b/gui/tabs.cpp @@ -166,7 +166,7 @@ void Tab :: tab_queue_add(Queue *pq) bool Tab :: tab_queue_selected(bool random) { - if (deck :: size() >= 10) + if (deck :: get_queues().size() >= 10) return true; Queue *pq = deck :: create(random); @@ -176,11 +176,11 @@ bool Tab :: tab_queue_selected(bool random) bool Tab :: tab_add_to_queue(unsigned int n) { - if (n >= deck :: size()) + if (n >= deck :: get_queues().size()) return true; - Queue *pq = deck :: get(n); - tab_queue_add(pq); + //Queue *pq = deck :: get(n); + //tab_queue_add(pq); return true; } @@ -251,7 +251,7 @@ bool Tab :: on_key_press_event(const std::string &key) void Tab :: on_show_rc_menu() { std::string item; - unsigned int size = deck :: size(); + unsigned int size = deck :: get_queues().size(); if (size == 0) { get_widget("o_add_to_pq")->hide(); @@ -521,10 +521,10 @@ void post_init_tabs() it->second->on_post_init(); unsigned int tab = 0; - for (tab = 0; tab < deck::size(); tab++) { - if ((deck :: get(tab)->has_flag(Q_ENABLED))) - break; - } + //for (tab = 0; tab < deck::get_queues().size(); tab++) { + // if ((deck :: get(tab)->has_flag(Q_ENABLED))) + // break; + //} get_widget("o_notebook")->set_current_page(tab); } diff --git a/lib/audio.cpp b/lib/audio.cpp index f2566802..1fa4478b 100644 --- a/lib/audio.cpp +++ b/lib/audio.cpp @@ -22,24 +22,6 @@ static bool o_should_pause = false; static File f_cur_track("cur_track", 0); -class RecentQueue : public Queue -{ -public: - RecentQueue() - : Queue(Q_ENABLED | Q_REPEAT | Q_NO_SORT | Q_DISABLE_CHANGED_SIZE) - {} - - unsigned int add(Track *track) - { - del(track); - _cur = 0; - return _add_at(track, 0); - } -}; - -static RecentQueue o_recently_played; - - static void parse_error(GstMessage *error) { GError *err; @@ -220,12 +202,11 @@ void audio :: next() cur_trackid = track->id; save_state(); - o_recently_played.add(track); } void audio :: previous() { - Track *track = o_recently_played.next(); + Track *track = deck :: prev(); if (track->id == cur_trackid) return; @@ -252,7 +233,7 @@ void audio :: load_trackid(unsigned int track_id) cur_trackid = track_id; save_state(); - o_recently_played.add(track); + deck :: get_queue()->add(track); } unsigned int audio :: current_trackid() @@ -262,11 +243,6 @@ unsigned int audio :: current_trackid() return cur_trackid; } -Queue *audio :: get_recent_pq() -{ - return &o_recently_played; -} - long audio :: position() { long position; From f8f389c7ed9e5a226cc5e3addd5b564da1d2f5cd Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sat, 31 May 2014 09:09:44 -0400 Subject: [PATCH 71/93] deck: Create TempQueues TempQueues create a way to trigger deck :: write() whenever a queue changes. This means higher layers don't need to remember to save after changes! Signed-off-by: Anna Schumaker --- DESIGN | 37 ++++++++++++++++++++++++--- include/deck.h | 19 +++++++++++++- include/queue.h | 4 +-- lib/deck.cpp | 68 +++++++++++++++++++++++++++++++++++++++---------- lib/tags.cpp | 2 +- tests/deck.cpp | 4 +-- 6 files changed, 111 insertions(+), 23 deletions(-) diff --git a/DESIGN b/DESIGN index 4ae018fe..89e56d07 100644 --- a/DESIGN +++ b/DESIGN @@ -1176,15 +1176,29 @@ Playlist: Deck: The deck is used to hold temporary queues created by the user. This layer is also in charge of maintaining a "recently played" queue of - tracks. The function deck :: write() must be called whenever a queue - is modified to save the changes to disk. + tracks. The deck will be saved to the file "deck". When upgrading from file version V0 to V1, use the saved random flag and sort order to set up the library_q. +- TempQueue: + class TempQueue : public Queue { + public: + TempQueue(bool); + + void set_flag(queue_flag); + void unset_flag(queue_flag); + + unsigned int add(Track *); + void del(Track *); + void del(unsigned int); + + void sort(sort_t, bool); + }; + - Deck: - list deck; + list deck; V0: File << library_q.random << library_q.sort_order().size(); @@ -1205,6 +1219,23 @@ Deck: unsigned int add(Track *); }; +- TempQueue API: + TempQueue :: TempQueue(bool random); + Initialize a new TempQueue with the flag Q_ENABLED set. + If random is True then also set the Q_RANDOM flag. + + void TempQueue :: set_flag(queue_flag flag); + void TempQueue :: unset_flag(queue_flag flag); + unsigned int TempQueue :: add(Track *track); + void TempQueue :: del(Track *track); + void TempQueue :: del(unsigned int index); + void TempQueue :: sort(sort_t field, bool ascending); + These functions are all wrappers around the basic Queue + functions of the same name. First, call the corresponding + Queue :: () function to make the correct Queue + modification. Then, call deck :: write() to save changes to + disk. + - RecentQueue API: RecentQueue :: RecentQueue(); Initialize a Queue with the flags Q_ENABLED, Q_REPEAT, and diff --git a/include/deck.h b/include/deck.h index 421e434a..7deae73d 100644 --- a/include/deck.h +++ b/include/deck.h @@ -7,6 +7,23 @@ #include #include + +class TempQueue : public Queue +{ +public: + TempQueue(); + TempQueue(bool random); + + void set_flag(queue_flags); + void unset_flag(queue_flags); + + unsigned int add(Track *); + void del(Track *); + void del(unsigned int); + + void sort(sort_t, bool); +}; + namespace deck { @@ -21,7 +38,7 @@ namespace deck Track *next(); Track *prev(); - std::list &get_queues(); + std::list &get_queues(); Queue *get_queue(); }; diff --git a/include/queue.h b/include/queue.h index f595ce68..451200be 100644 --- a/include/queue.h +++ b/include/queue.h @@ -49,8 +49,8 @@ public: bool has_flag(queue_flags); virtual unsigned int add(Track *); - void del(Track *); - void del(unsigned int); + virtual void del(Track *); + virtual void del(unsigned int); void updated(Track *); Track *next(); diff --git a/lib/deck.cpp b/lib/deck.cpp index b95fecb6..db2c284f 100644 --- a/lib/deck.cpp +++ b/lib/deck.cpp @@ -21,11 +21,53 @@ public: }; -static std::list queue_deck; +static std::list queue_deck; static RecentQueue recent_queue; static File deck_file("deck", 1); +TempQueue :: TempQueue() {} +TempQueue :: TempQueue(bool random) + : Queue(Q_ENABLED | (random ? Q_RANDOM : 0)) {} + +void TempQueue :: set_flag(queue_flags flag) +{ + Queue :: set_flag(flag); + deck :: write(); +} + +void TempQueue :: unset_flag(queue_flags flag) +{ + Queue :: unset_flag(flag); + deck :: write(); +} + +unsigned int TempQueue :: add(Track *track) +{ + unsigned int res = Queue :: add(track); + deck :: write(); + return res; +} + +void TempQueue :: del(Track *track) +{ + Queue :: del(track); + deck :: write(); +} + +void TempQueue :: del(unsigned int id) +{ + Queue :: del(id); + deck :: write(); +} + +void TempQueue :: sort(sort_t field, bool ascending) +{ + Queue :: sort(field, ascending); + deck :: write(); +} + + static void upgrade_v0() { int random, ascending; @@ -48,7 +90,7 @@ void deck :: init() { unsigned int num; bool upgraded = false; - std::list::iterator it; + std::list::iterator it; if (!deck_file.open(OPEN_READ)) return; @@ -71,7 +113,7 @@ void deck :: init() void deck :: write() { - std::list::iterator it; + std::list::iterator it; if (!deck_file.open(OPEN_WRITE)) return; @@ -87,12 +129,11 @@ void deck :: write() Queue *deck :: create(bool random) { - unsigned int flag = (random ? Q_RANDOM : 0); - queue_deck.push_back(Queue(Q_ENABLED | flag)); + queue_deck.push_back(TempQueue(random)); return &queue_deck.back(); } -static void _destroy(std::list::iterator &it) +static void _destroy(std::list::iterator &it) { get_callbacks()->on_pq_removed(&(*it)); queue_deck.erase(it); @@ -101,7 +142,7 @@ static void _destroy(std::list::iterator &it) void deck :: destroy(Queue *queue) { - std::list::iterator it; + std::list::iterator it; for (it = queue_deck.begin(); it != queue_deck.end(); it++) { if (&(*it) == queue) { @@ -114,8 +155,8 @@ void deck :: destroy(Queue *queue) void deck :: move(Queue *queue, unsigned int new_pos) { unsigned int old_pos = deck :: index(queue); - std::list::iterator it_old = queue_deck.begin(); - std::list::iterator it_new = queue_deck.begin(); + std::list::iterator it_old = queue_deck.begin(); + std::list::iterator it_new = queue_deck.begin(); for (unsigned int i = 0; i < queue_deck.size(); i++) { if (i < old_pos) @@ -129,12 +170,13 @@ void deck :: move(Queue *queue, unsigned int new_pos) it_new++; queue_deck.splice(it_new, queue_deck, it_old); + write(); } unsigned int deck :: index(Queue *queue) { unsigned int i = 0; - std::list::iterator it; + std::list::iterator it; for (it = queue_deck.begin(); it != queue_deck.end(); it++) { if (&(*it) == queue) @@ -148,7 +190,7 @@ unsigned int deck :: index(Queue *queue) Track *deck :: next() { Track *track = NULL; - std::list::iterator it; + std::list::iterator it; for (it = queue_deck.begin(); it != queue_deck.end(); it++) { if (it->has_flag(Q_ENABLED) == false) @@ -157,8 +199,6 @@ Track *deck :: next() track = it->next(); if (it->size() == 0) _destroy(it); - else - write(); break; } @@ -174,7 +214,7 @@ Track *deck :: prev() return recent_queue.next(); } -std::list &deck :: get_queues() +std::list &deck :: get_queues() { return queue_deck; } diff --git a/lib/tags.cpp b/lib/tags.cpp index df9b5c71..b2e0ed47 100644 --- a/lib/tags.cpp +++ b/lib/tags.cpp @@ -165,7 +165,7 @@ Track :: Track(const std::string &f, Library *l) Track :: ~Track() { - library->count--; + //library->count--; } const std::string Track :: primary_key() const diff --git a/tests/deck.cpp b/tests/deck.cpp index 6944bc79..21f82b14 100644 --- a/tests/deck.cpp +++ b/tests/deck.cpp @@ -13,7 +13,7 @@ static void test_init() { unsigned int val; File f("deck", 0); - std::list::iterator it; + std::list::iterator it; deck :: init(); test_equal(library :: get_queue()->has_flag(Q_RANDOM), true); @@ -96,7 +96,7 @@ static void test_create_mv_destroy() static void test_next_prev() { - std::list::iterator it = deck :: get_queues().begin(); + std::list::iterator it = deck :: get_queues().begin(); Queue *q = deck :: get_queue(); Queue *q0 = &(*it++); Queue *q1 = &(*it++); From edc4a2f4ee21e7fe83036432d3aa974d511a7178 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sat, 31 May 2014 10:25:25 -0400 Subject: [PATCH 72/93] driver: Create an audio driver class The driver is used to select between gstreamer playback and a fake playback mode used only when testing. Currently the GSTDriver has empty functions. It will be implemented as the audio.cpp file is updated. Signed-off-by: Anna Schumaker --- DESIGN | 62 ++++++++++++++++++++++++++++++++++++++++ include/driver.h | 74 ++++++++++++++++++++++++++++++++++++++++++++++++ lib/driver.cpp | 54 +++++++++++++++++++++++++++++++++++ tests/.gitignore | 1 + tests/Sconscript | 1 + tests/driver.cpp | 47 ++++++++++++++++++++++++++++++ 6 files changed, 239 insertions(+) create mode 100644 include/driver.h create mode 100644 lib/driver.cpp create mode 100644 tests/driver.cpp diff --git a/DESIGN b/DESIGN index 89e56d07..58da9a44 100644 --- a/DESIGN +++ b/DESIGN @@ -1299,6 +1299,68 @@ Deck: Return the RecentQueue to the caller. +Audio Driver: + The audio driver creates a way to fake audio playback for testing. This + will allow for more accurate tests, since I will know in advance what + values are returned to the Audio layer. This layer will derive from + the Driver class to implement either the GSTDriver or the TestDriver. + +- Driver: + class Driver { + protected: + void (*on_eos)(); + + public: + Driver(); + ~Driver(); + virtual void init(int *, char ***, void (*)()) = 0; + + virtual void load(const std::string &) = 0; + virtual void play() = 0; + virtual void pause() = 0; + + virtual void seek_to(long) = 0; + virtual long position() = 0; + virtual long duration() = 0 + }; + +- Driver API: + void Driver :: Driver(); + Initialize the audio driver. This involves setting up a GST + Bus in the GSTDriver case. + + void Driver :: ~Driver(); + In the GSTDriver case, call gst_deinit() to avoid memory leak + false positives. + + void Driver :: init(int argc, char **argv, void (*eos_cb)()); + The GSTDriver will use this function to set up the playbin2. + When an end-of-stream message is received, call eos_cb(). + + void Driver :: load(const std::string &file); + Load file for playback, but do not begin playback yet. + + void Driver :: play(); + Start playback. + + void Driver :: pause(); + Pause playback. + + void Driver :: seek_to(long pos); + Change playback position in the current track in nanoseconds. + + long Driver :: position(); + Return the current position in the track in nanoseconds. + + long Driver :: duration(); + Return the duration of the track in nanoseconds. + +- API: + Driver *driver :: get_driver(); + Return the current driver to be used for audio playback. This + could be either the GSTDriver or the TestDriver depending on + if CONFIG_TEST is set when compiling. + diff --git a/include/driver.h b/include/driver.h new file mode 100644 index 00000000..018c9105 --- /dev/null +++ b/include/driver.h @@ -0,0 +1,74 @@ +/* + * Copyright 2014 (c) Anna Schumaker. + */ + +#include + +class Driver { +protected: + void (*on_eos)(); + +public: + Driver(); + ~Driver(); + virtual void init(int *, char ***, void (*)()) = 0; + + virtual void load(const std::string &) = 0; + virtual void play() = 0; + virtual void pause() = 0; + + virtual void seek_to(long) = 0; + virtual long position() = 0; + virtual long duration() = 0; +}; + + +#ifdef CONFIG_TEST +class TestDriver : public Driver +{ +public: + bool playing; + long cur_pos; + long cur_duration; + std::string cur_file; + + TestDriver(); + ~TestDriver(); + void init(int *, char ***, void (*)()); + + void load(const std::string &); + void play(); + void pause(); + + void seek_to(long); + long position(); + long duration(); + + void eos(); +}; +#else /* CONFIG_TEST */ +class GSTDriver : public Driver +{ +public: + GSTDriver(); + ~GSTDriver(); + void init(int *, char ***, void (*)()); + + void load(const std::string &); + void play(); + void pause(); + + void seek_to(long); + long position(); + long duration(); +}; +#endif /* CONFIG_TEST */ + + + +namespace driver +{ + + Driver *get_driver(); + +} diff --git a/lib/driver.cpp b/lib/driver.cpp new file mode 100644 index 00000000..28cc71fe --- /dev/null +++ b/lib/driver.cpp @@ -0,0 +1,54 @@ +/* + * Copyright 2014 (c) Anna Schumaker. + */ +#include + + +Driver :: Driver() {} +Driver :: ~Driver() {} + + +#ifdef CONFIG_TEST + +TestDriver :: TestDriver() : playing(false), cur_pos(0), cur_duration(0) {} +TestDriver :: ~TestDriver() {} + +void TestDriver :: init(int *argc, char ***argv, void (*eos_cb)()) { on_eos = eos_cb; } +void TestDriver :: load(const std::string &file) { cur_file = file; } +void TestDriver :: play() { playing = true; } +void TestDriver :: pause() { playing = false; } + +void TestDriver :: seek_to(long pos) { cur_pos = pos; } +long TestDriver :: position() { return cur_pos; } +long TestDriver :: duration() { return cur_duration; } + +void TestDriver :: eos() { on_eos(); } + +#else /* CONFIG_TEST */ + +GSTDriver :: GSTDriver() {} +GSTDriver :: ~GSTDriver() {} + +void GSTDriver :: init(int argc, char **argv, void (*eos_cb)()) { } +void GSTDriver :: load(const std::string &file) { } +void GSTDriver :: play() { } +void GSTDriver :: pause() { } + +void GSTDriver :: seek_to(long pos) { } +long GSTDriver :: position() { return 0; } +long GSTDriver :: duration() { return 0; } + +#endif /* CONFIG_TEST */ + + +#ifdef CONFIG_TEST +static TestDriver cur_driver; +#else /* CONFIG_TEST */ +static GSTDriver cur_driver; +#endif /* CONFIG_TEST */ + + +Driver *driver :: get_driver() +{ + return &cur_driver; +} diff --git a/tests/.gitignore b/tests/.gitignore index f30eb57c..4065e64c 100644 --- a/tests/.gitignore +++ b/tests/.gitignore @@ -10,3 +10,4 @@ queue library playlist deck +driver diff --git a/tests/Sconscript b/tests/Sconscript index eede98a3..02071bdf 100644 --- a/tests/Sconscript +++ b/tests/Sconscript @@ -21,6 +21,7 @@ tests = [ ("library.cpp", True, [ "idle.cpp" ], []), ("playlist.cpp", True, [], []), ("deck.cpp", True, [], []), + ("driver.cpp", False, [ "driver.cpp" ], []), ] diff --git a/tests/driver.cpp b/tests/driver.cpp new file mode 100644 index 00000000..a492e291 --- /dev/null +++ b/tests/driver.cpp @@ -0,0 +1,47 @@ +/* + * Copyright 2014 (c) Anna Schumaker. + */ +#include +#include "test.h" + +static TestDriver *DRIVER_NULL = NULL; +static unsigned int eos_count = 0; + +void on_eos() +{ + eos_count++; +} + +void test_driver() +{ + TestDriver *driver = (TestDriver *)driver :: get_driver(); + const std::string file = "/home/Zelda/Music/Wind Waker/1 - Outset Isle.ogg"; + + test_not_equal(driver, DRIVER_NULL); + + driver->init(0, NULL, on_eos); + + driver->load(file); + test_equal(driver->cur_file, file); + + driver->play(); + test_equal(driver->playing, true); + driver->pause(); + test_equal(driver->playing, false); + + driver->seek_to(4242); + test_equal(driver->cur_pos, (long)4242); + test_equal(driver->position(), (long)4242); + + driver->cur_duration = 424242; + test_equal(driver->duration(), (long)424242); + + driver->eos(); + test_equal(eos_count, (unsigned)1); +} + +int main(int argc, char **argv) +{ + run_test("Test Audio Driver", test_driver); + return 0; +} From 1cacbf51e7c90e6bac2b51440cc059be7fd0bed7 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sat, 31 May 2014 20:52:40 -0400 Subject: [PATCH 73/93] driver: Move Gst code into the GstDriver This would have to happen eventually. Might as well do it now! I also updated the TestDriver test to match the changes I had to make. Signed-off-by: Anna Schumaker --- DESIGN | 16 ++++-- include/audio.h | 4 -- include/driver.h | 36 +++++++++---- lib/audio.cpp | 127 ++++++++++++---------------------------------- lib/driver.cpp | 128 ++++++++++++++++++++++++++++++++++++++++++----- tests/driver.cpp | 18 +++++-- 6 files changed, 200 insertions(+), 129 deletions(-) diff --git a/DESIGN b/DESIGN index 58da9a44..7f058ff3 100644 --- a/DESIGN +++ b/DESIGN @@ -1313,11 +1313,12 @@ Audio Driver: public: Driver(); ~Driver(); - virtual void init(int *, char ***, void (*)()) = 0; + virtual void init(int *, char ***, void (*)(), void (*)()) = 0; virtual void load(const std::string &) = 0; virtual void play() = 0; virtual void pause() = 0; + virtual void is_playing() = 0; virtual void seek_to(long) = 0; virtual long position() = 0; @@ -1333,18 +1334,25 @@ Audio Driver: In the GSTDriver case, call gst_deinit() to avoid memory leak false positives. - void Driver :: init(int argc, char **argv, void (*eos_cb)()); + void Driver :: init(int argc, char **argv, void (*eos_cb)(), + void (*error_cb)()); The GSTDriver will use this function to set up the playbin2. When an end-of-stream message is received, call eos_cb(). + If there is an error, call error_cb(); void Driver :: load(const std::string &file); Load file for playback, but do not begin playback yet. void Driver :: play(); - Start playback. + Start playback. Return true if the state change operation + succeeds, false otherwise. void Driver :: pause(); - Pause playback. + Pause playback. Return true if the state change operation + succeeds, false otherwise. + + bool Driver :: is_playing(); + Return true if the player is currently playing, false otherwise. void Driver :: seek_to(long pos); Change playback position in the current track in nanoseconds. diff --git a/include/audio.h b/include/audio.h index 3d188aa0..ce5ccd68 100644 --- a/include/audio.h +++ b/include/audio.h @@ -7,10 +7,6 @@ #include #include -extern "C" { - #include -} - #include namespace audio diff --git a/include/driver.h b/include/driver.h index 018c9105..ef0c8454 100644 --- a/include/driver.h +++ b/include/driver.h @@ -7,15 +7,17 @@ class Driver { protected: void (*on_eos)(); + void (*on_error)(); public: Driver(); ~Driver(); - virtual void init(int *, char ***, void (*)()) = 0; + virtual void init(int *, char ***, void (*)(), void (*)()) = 0; virtual void load(const std::string &) = 0; - virtual void play() = 0; - virtual void pause() = 0; + virtual bool play() = 0; + virtual bool pause() = 0; + virtual bool is_playing() = 0; virtual void seek_to(long) = 0; virtual long position() = 0; @@ -34,38 +36,50 @@ public: TestDriver(); ~TestDriver(); - void init(int *, char ***, void (*)()); + void init(int *, char ***, void (*)(), void (*)()); void load(const std::string &); - void play(); - void pause(); + bool play(); + bool pause(); + bool is_playing(); void seek_to(long); long position(); long duration(); void eos(); + void error(); }; -#else /* CONFIG_TEST */ +#else /* !CONFIG_TEST */ + +#include + class GSTDriver : public Driver { +private: + GstElement *player; + std::string cur_file; + bool change_state(GstState state); + public: GSTDriver(); ~GSTDriver(); - void init(int *, char ***, void (*)()); + void init(int *, char ***, void (*)(), void (*)()); void load(const std::string &); - void play(); - void pause(); + bool play(); + bool pause(); + bool is_playing(); void seek_to(long); long position(); long duration(); + + void on_message(GstMessage *); }; #endif /* CONFIG_TEST */ - namespace driver { diff --git a/lib/audio.cpp b/lib/audio.cpp index 1fa4478b..12b708e0 100644 --- a/lib/audio.cpp +++ b/lib/audio.cpp @@ -4,13 +4,12 @@ #include #include #include +#include #include #include #include -static GstElement *ocarina_player; - static bool player_playing = false; static bool track_loaded = false; static unsigned int cur_trackid = 0; @@ -22,19 +21,6 @@ static bool o_should_pause = false; static File f_cur_track("cur_track", 0); -static void parse_error(GstMessage *error) -{ - GError *err; - gchar *debug; - Track *track = tagdb :: lookup(cur_trackid); - - gst_message_parse_error(error, &err, &debug); - g_print("Error playing file: %s\n", track->path().c_str()); - g_print("Error: %s\n", err->message); - g_error_free(err); - g_free(debug); -} - static void handle_pause_count() { if (o_pause_enabled == false) @@ -48,45 +34,24 @@ static void handle_pause_count() get_callbacks()->on_pause_count_changed(o_pause_enabled, o_pause_count); } -static gboolean on_message(GstBus *bus, GstMessage *message, gpointer data) +static void on_error() +{ + audio :: next(); + audio :: play(); +} + +static void on_eos() { Track *track; - switch (GST_MESSAGE_TYPE(message)) { - case GST_MESSAGE_ERROR: - parse_error(message); - audio :: next(); - audio :: play(); - break; - case GST_MESSAGE_EOS: - handle_pause_count(); - track = tagdb :: lookup(cur_trackid); - if (track) { - track->played(); - library :: get_queue()->updated(track); - } - audio :: next(); - audio :: seek_to(0); - default: - break; - } - return TRUE; -} - -static bool change_state(GstState state) -{ - GstStateChangeReturn ret; - - ret = gst_element_set_state(GST_ELEMENT(ocarina_player), state); - switch (ret) { - case GST_STATE_CHANGE_SUCCESS: - case GST_STATE_CHANGE_ASYNC: - player_playing = (state == GST_STATE_PLAYING); - return true; - default: - player_playing = false; - return false; + handle_pause_count(); + track = tagdb :: lookup(cur_trackid); + if (track) { + track->played(); + library :: get_queue()->updated(track); } + audio :: next(); + audio :: seek_to(0); } static void save_state() @@ -98,37 +63,25 @@ static void save_state() static bool load_song(Track *track) { - GstState state; - gchar *uri; - std::string filepath = track->path(); + bool start_playback; - if (o_should_pause == true) { - state = GST_STATE_PAUSED; - o_should_pause = false; - } else { - gst_element_get_state(GST_ELEMENT(ocarina_player), &state, - NULL, GST_CLOCK_TIME_NONE); - } - - change_state(GST_STATE_NULL); - uri = gst_filename_to_uri(filepath.c_str(), NULL); - g_object_set(G_OBJECT(ocarina_player), "uri", uri, NULL); - g_free(uri); + if (o_should_pause) + start_playback = false; + else + start_playback = driver :: get_driver()->is_playing(); + driver :: get_driver()->load(track->path()); get_callbacks()->on_track_loaded(track); - return change_state(state); + + if (start_playback) + return driver :: get_driver()->play(); + else + return driver :: get_driver()->pause(); } void audio :: init(int *argc, char ***argv) { - GstBus *bus; - - gst_init(argc, argv); - - ocarina_player = gst_element_factory_make("playbin", "ocarina_player"); - bus = gst_pipeline_get_bus(GST_PIPELINE(ocarina_player)); - - gst_bus_add_watch(bus, on_message, NULL); + driver :: get_driver()->init(argc, argv, on_eos, on_error); } void audio :: load_state() @@ -144,15 +97,13 @@ void audio :: load_state() void audio :: quit() { - change_state(GST_STATE_NULL); - gst_deinit(); } void audio :: play() { if (track_loaded == false) return; - if (change_state(GST_STATE_PLAYING)) + if (driver :: get_driver()->play()) get_callbacks()->on_play(); } @@ -160,7 +111,7 @@ void audio :: pause() { if (track_loaded == false) return; - if (change_state(GST_STATE_PAUSED)) + if (driver :: get_driver()->pause()) get_callbacks()->on_pause(); } @@ -180,15 +131,9 @@ void audio :: stop() void audio :: seek_to(long pos) { - bool ret; if (track_loaded == false) return; - ret = gst_element_seek_simple(GST_ELEMENT(ocarina_player), - GST_FORMAT_TIME, - GST_SEEK_FLAG_FLUSH, - pos); - if (!ret) - throw -E_AUDIO; + driver :: get_driver()->seek_to(pos); } void audio :: next() @@ -245,13 +190,9 @@ unsigned int audio :: current_trackid() long audio :: position() { - long position; - if (track_loaded == false) return 0; - if (!gst_element_query_position(GST_ELEMENT(ocarina_player), GST_FORMAT_TIME, &position)) - return 0; - return position; + return driver :: get_driver()->position(); } std::string audio :: position_str() @@ -270,13 +211,9 @@ std::string audio :: position_str() long audio :: duration() { - long duration; - if (track_loaded == false) return 0; - if (!gst_element_query_duration(ocarina_player, GST_FORMAT_TIME, &duration)) - return 0; - return duration; + return driver :: get_driver()->duration(); } void audio :: pause_after(bool enabled, unsigned int n) diff --git a/lib/driver.cpp b/lib/driver.cpp index 28cc71fe..03ffd393 100644 --- a/lib/driver.cpp +++ b/lib/driver.cpp @@ -13,30 +13,134 @@ Driver :: ~Driver() {} TestDriver :: TestDriver() : playing(false), cur_pos(0), cur_duration(0) {} TestDriver :: ~TestDriver() {} -void TestDriver :: init(int *argc, char ***argv, void (*eos_cb)()) { on_eos = eos_cb; } +void TestDriver :: init(int *argc, char ***argv, void (*eos_cb)(), void (*error_cb)()) + { on_eos = eos_cb; on_error = error_cb; } void TestDriver :: load(const std::string &file) { cur_file = file; } -void TestDriver :: play() { playing = true; } -void TestDriver :: pause() { playing = false; } +bool TestDriver :: play() { playing = true; return true; } +bool TestDriver :: pause() { playing = false; return true; } +bool TestDriver :: is_playing() { return playing; } void TestDriver :: seek_to(long pos) { cur_pos = pos; } long TestDriver :: position() { return cur_pos; } long TestDriver :: duration() { return cur_duration; } -void TestDriver :: eos() { on_eos(); } +void TestDriver :: eos() { on_eos(); } +void TestDriver :: error() { on_error(); } #else /* CONFIG_TEST */ +static gboolean on_gst_message(GstBus *bus, GstMessage *message, gpointer data) +{ + GSTDriver *driver = (GSTDriver *)data; + driver->on_message(message); + return TRUE; +} + +static void parse_gst_error(GstMessage *error, const std::string filepath) +{ + GError *err; + gchar *debug; + + gst_message_parse_error(error, &err, &debug); + g_print("Error playing file: %s\n", filepath.c_str()); + g_print("Error: %s\n", err->message); + g_error_free(err); + g_free(debug); +} + GSTDriver :: GSTDriver() {} -GSTDriver :: ~GSTDriver() {} -void GSTDriver :: init(int argc, char **argv, void (*eos_cb)()) { } -void GSTDriver :: load(const std::string &file) { } -void GSTDriver :: play() { } -void GSTDriver :: pause() { } +GSTDriver :: ~GSTDriver() +{ + change_state(GST_STATE_NULL); + gst_deinit(); +} -void GSTDriver :: seek_to(long pos) { } -long GSTDriver :: position() { return 0; } -long GSTDriver :: duration() { return 0; } +bool GSTDriver :: change_state(GstState state) +{ + GstStateChangeReturn ret = gst_element_set_state(player, state); + switch (ret) { + case GST_STATE_CHANGE_SUCCESS: + case GST_STATE_CHANGE_ASYNC: + return true; + default: + return false; + } +} + +void GSTDriver :: init(int *argc, char ***argv, void (*eos_cb)(), void (*error_cb)()) +{ + GstBus *bus; + + on_eos = eos_cb; + on_error = error_cb; + + gst_init(argc, argv); + player = gst_element_factory_make("playbin", "ocarina_player"); + bus = gst_pipeline_get_bus(GST_PIPELINE(player)); + gst_bus_add_watch(bus, on_gst_message, this); +} + +void GSTDriver :: load(const std::string &filepath) +{ + gchar *uri; + + cur_file = filepath; + change_state(GST_STATE_NULL); + uri = gst_filename_to_uri(filepath.c_str(), NULL); + g_object_set(G_OBJECT(player), "uri", uri, NULL); + g_free(uri); +} + +bool GSTDriver :: play() +{ + return change_state(GST_STATE_PLAYING); +} + +bool GSTDriver :: pause() +{ + return change_state(GST_STATE_PAUSED); +} + +bool GSTDriver :: is_playing() +{ + GstState state; + gst_element_get_state(player, &state, NULL, GST_CLOCK_TIME_NONE); + return state == GST_STATE_PLAYING; +} + +void GSTDriver :: seek_to(long pos) +{ + gst_element_seek_simple(player, GST_FORMAT_TIME, GST_SEEK_FLAG_FLUSH, pos); +} + +long GSTDriver :: position() +{ + long position; + if (gst_element_query_position(player, GST_FORMAT_TIME, &position)) + return position; + return 0; +} + +long GSTDriver :: duration() +{ + long duration; + + if (gst_element_query_duration(player, GST_FORMAT_TIME, &duration)) + return duration; + return 0; +} + +void GSTDriver :: on_message(GstMessage *message) +{ + switch (GST_MESSAGE_TYPE(message)) { + case GST_MESSAGE_ERROR: + parse_gst_error(message, cur_file); + on_error(); + default: + break; + } +} #endif /* CONFIG_TEST */ diff --git a/tests/driver.cpp b/tests/driver.cpp index a492e291..8cc32170 100644 --- a/tests/driver.cpp +++ b/tests/driver.cpp @@ -6,12 +6,18 @@ static TestDriver *DRIVER_NULL = NULL; static unsigned int eos_count = 0; +static unsigned int error_count = 0; void on_eos() { eos_count++; } +void on_error() +{ + error_count++; +} + void test_driver() { TestDriver *driver = (TestDriver *)driver :: get_driver(); @@ -19,15 +25,18 @@ void test_driver() test_not_equal(driver, DRIVER_NULL); - driver->init(0, NULL, on_eos); + driver->init(0, NULL, on_eos, on_error); driver->load(file); test_equal(driver->cur_file, file); - driver->play(); + test_equal(driver->play(), true); test_equal(driver->playing, true); - driver->pause(); + test_equal(driver->is_playing(), true); + + test_equal(driver->pause(), true); test_equal(driver->playing, false); + test_equal(driver->is_playing(), false); driver->seek_to(4242); test_equal(driver->cur_pos, (long)4242); @@ -38,6 +47,9 @@ void test_driver() driver->eos(); test_equal(eos_count, (unsigned)1); + + driver->error(); + test_equal(error_count, (unsigned)1); } int main(int argc, char **argv) From 6f3fcaae6e55c6661183175f733ce4e23df12596 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sat, 31 May 2014 21:06:48 -0400 Subject: [PATCH 74/93] audio: Update audio design This patch updates the design to something that makes a bit more sense, and works with the new audio drivers. Signed-off-by: Anna Schumaker --- DESIGN | 118 +++++++++++++++++++-------------------------------------- 1 file changed, 39 insertions(+), 79 deletions(-) diff --git a/DESIGN b/DESIGN index 7f058ff3..ef75959d 100644 --- a/DESIGN +++ b/DESIGN @@ -1371,115 +1371,75 @@ Audio Driver: - - -Audio: (lib/audio.cpp) - This file will introduce an "audio" namespace containing all of the - functions interacting with gstreamer. This will create a wrapper - namespace that will be easier to work with than using raw gstreamer - functions. - - The audio layer is meant to be an interface used by the front end to - control most features of the backend library. This means implementing - next track, previous track, and so on here. +Audio: + The audio layer uses the configured driver to control audio playback. Gstreamer options passed to audio :: init() can be found by running `gst-inspect-1.0 --help-gst` on the command line. -- Internal: - Set up a message bus to look for end-of-stream and error messages so - the next song can be played. This function should call the play - function after loading a track and after checking the "pause after N" - count. +- File: + File cur_track("cur_track"); - The audio layer will also create an internal playqueue for tracking - recently played songs. + File << current_track->id << endl; -- State: - The audio layer will store the current trackid to disk, and then save - the playqueue deck. - - File << current_track << endl - deck.write(File); +- Seconds -> Nanoseconds conversion: + #define O_SECOND 1000000000 - API: - void audio :: init(argc, argv); - Initialize the gstreamer layer and reload the track that was - last loaded before shutdown. Gstreamer is supposed to remove - options from the argv array as they are processed, so pass - pointers to argc and argv to this function. - - Read in the state file. - - void audio :: quit(); - Clean up memory allocated by gstreamer. - Write out the state file. + void audio :: init(int *argc, char ***argv); + Initialize the audio driver through argc and argv. Read in + the current track file and load the track. void audio :: play(); void audio :: pause(); - Change the gstreamer state to either GST_STATE_PLAYING or - GST_STATE_PAUSED. Do nothing if there is not a track loaded - in the pipeline. Throw -EAUDIO if there is an error changing - state. + void audio :: seek_to(long pos); + Call the corresponding function from the audio driver, but only + if a track is loaded. - void audio :: seek_to(long); - Seek to a position X nanoseconds into the track. Throw -EAUDIO - if there is an error seeking to the requested position. Do - nothing if there is not a track loaded in the pipeline. + long audio :: position(); + long audio :: duration(); + Call the corresponding function from the audio driver. Return + 0 if no track is currently loaded. - Seconds can be converted to nanoseconds by multiplying with - GST_SECOND. + std::string audio :: position_str(); + Return the current audio position in string form. + Return an empty string if there is no current track. void audio :: stop(); pause() seek_to(0) void audio :: next(); - Call the deck :: next() function to get the next trackid, - and load that file into the gstreamer pipeline. Do not change - the state of the pipeline (if nothing is playing yet, don't - call play()). Throw -EEXIST if there is no track to load - into the pipeline. + Call the deck :: next() function to get the next track that + should be played and use the audio driver to load the track. - When a track is loaded: - Is it already in the recently played playqueue? - If yes, remove it from the playqueue. - Add to the front of the recently played playqueue. - Reset the current pointer in the playqueue to 0. + Save that track's ID to the cur_track file. - Write out the state file. + void audio :: prev(); + Call the deck :: previous() function to find a new track to + play and use the audio driver to load the track. - void audio :: previous(); - Call the playlist :: previous() function to iterate backwards - through the recently played playqueue. Load the returned trackid - without changing the pipeline state. + Save that track's ID to the cur_track file. - trackid audio :: current_trackid(); - Return the trackid of the currently playing song. If no track - is loaded throw -EEXIST; + Track *audio :: current_track(); + Return the currently playing Track. + Return NULL if there is no current track. - unsigned int audio :: position(); - Return the number of seconds that the song has played. + void audio :: load_track(Track *track); + Load the requested track. - unsigned int audio :: duration(); - Return the duration of the current song in seconds. + Save that track's ID to the cur_track file. void audio :: pause_after(bool enabled, unsigned int N); - Pause after N tracks. The first parameter is a bool - representing if this feature is enabled or not (true == enabled, - false == disabled). - - The count will only be decremented when an end-of-stream message - is received by the gstreamer pipeline, and not when calling - next(). + If enabled == true: + Configure Ocarina to pause playback after N tracks + have been played. + If enabled == false: + Do not automatically pause. bool audio :: pause_enabled(); - Return true if pausing is enabled, and false if pausing is - disabled. - unsigned int audio :: pause_count(); - Return the number of tracks that will be played before - playback pauses. + Use these functions to access the current "pause after N" state. From b8ea2c989d17d25480d0b295786ae91e46863d57 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sun, 1 Jun 2014 09:38:12 -0400 Subject: [PATCH 75/93] deck: Fix a segfault when calling next() This can only be hit when the tagdb has no tracks in it, since you can't add a NULL pointer to the recent queue. Signed-off-by: Anna Schumaker --- lib/deck.cpp | 4 ++-- tests/deck.cpp | 10 ++++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/lib/deck.cpp b/lib/deck.cpp index db2c284f..1940643e 100644 --- a/lib/deck.cpp +++ b/lib/deck.cpp @@ -204,8 +204,8 @@ Track *deck :: next() if (!track) track = library :: get_queue()->next(); - - recent_queue.add(track); + if (track) + recent_queue.add(track); return track; } diff --git a/tests/deck.cpp b/tests/deck.cpp index 21f82b14..7057ac7c 100644 --- a/tests/deck.cpp +++ b/tests/deck.cpp @@ -15,7 +15,13 @@ static void test_init() File f("deck", 0); std::list::iterator it; + test_equal(deck :: next(), TRACK_NULL); + + test :: cp_data_dir(); + tagdb :: init(); + library :: init(); deck :: init(); + test_equal(library :: get_queue()->has_flag(Q_RANDOM), true); test_equal(deck :: get_queues().size(), (size_t)2); @@ -143,10 +149,6 @@ static void test_next_prev() int main(int argc, char **argv) { - test :: cp_data_dir(); - tagdb :: init(); - library :: init(); - run_test("Deck Init Test", test_init); run_test("Deck Create, Move and Destroy Test", test_create_mv_destroy); run_test("Deck Next and Prev Test", test_next_prev); From 1bfa299e08687b86d1897dd99a3ef087c6703ce6 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sun, 1 Jun 2014 17:52:49 -0400 Subject: [PATCH 76/93] audio: Update the code to match the design This patch reworks the unit test using the TestDriver audio driver. I also recode the audio layer to match the design and drastically clean up the code. Signed-off-by: Anna Schumaker --- DESIGN | 25 +++-- include/audio.h | 23 ++--- include/driver.h | 3 + lib/audio.cpp | 224 ++++++++++++++++------------------------ lib/driver.cpp | 3 +- tests/.gitignore | 1 + tests/Data/cur_track | 1 + tests/Sconscript | 1 + tests/audio.cpp | 170 +++++++++++++++++++++++++++++++ tests/audio/Sconscript | 6 -- tests/audio/audio.cpp | 226 ----------------------------------------- tests/audio/audio.good | 53 ---------- tests/driver.cpp | 6 ++ 13 files changed, 293 insertions(+), 449 deletions(-) create mode 100644 tests/Data/cur_track create mode 100644 tests/audio.cpp delete mode 100644 tests/audio/Sconscript delete mode 100644 tests/audio/audio.cpp delete mode 100644 tests/audio/audio.good diff --git a/DESIGN b/DESIGN index ef75959d..5b1fb7f1 100644 --- a/DESIGN +++ b/DESIGN @@ -1305,6 +1305,9 @@ Audio Driver: values are returned to the Audio layer. This layer will derive from the Driver class to implement either the GSTDriver or the TestDriver. +- Seconds -> Nanoseconds conversion: + static const unsigned long O_SECOND = 1000000000; + - Driver: class Driver { protected: @@ -1382,9 +1385,6 @@ Audio: File << current_track->id << endl; -- Seconds -> Nanoseconds conversion: - #define O_SECOND 1000000000 - - API: void audio :: init(int *argc, char ***argv); Initialize the audio driver through argc and argv. Read in @@ -1396,6 +1396,10 @@ Audio: Call the corresponding function from the audio driver, but only if a track is loaded. + void audio :: stop(); + pause() + seek_to(0) + long audio :: position(); long audio :: duration(); Call the corresponding function from the audio driver. Return @@ -1405,10 +1409,6 @@ Audio: Return the current audio position in string form. Return an empty string if there is no current track. - void audio :: stop(); - pause() - seek_to(0) - void audio :: next(); Call the deck :: next() function to get the next track that should be played and use the audio driver to load the track. @@ -1421,15 +1421,15 @@ Audio: Save that track's ID to the cur_track file. - Track *audio :: current_track(); - Return the currently playing Track. - Return NULL if there is no current track. - void audio :: load_track(Track *track); Load the requested track. Save that track's ID to the cur_track file. + Track *audio :: current_track(); + Return the currently playing Track. + Return NULL if there is no current track. + void audio :: pause_after(bool enabled, unsigned int N); If enabled == true: Configure Ocarina to pause playback after N tracks @@ -1437,6 +1437,9 @@ Audio: If enabled == false: Do not automatically pause. + If N is greater than the current pause count then enabled should + be set to true. + bool audio :: pause_enabled(); unsigned int audio :: pause_count(); Use these functions to access the current "pause after N" state. diff --git a/include/audio.h b/include/audio.h index ce5ccd68..8b9dc6c9 100644 --- a/include/audio.h +++ b/include/audio.h @@ -4,32 +4,27 @@ #ifndef OCARINA_AUDIO_H #define OCARINA_AUDIO_H -#include -#include - +#include #include namespace audio { void init(int *, char ***); - void load_state(); - void quit(); void play(); void pause(); - void toggle_play(); - void stop(); - void next(); - void previous(); - void load_trackid(unsigned int); - unsigned int current_trackid(); - Queue *get_recent_pq(); - void seek_to(long); + void stop(); + long position(); - std::string position_str(); long duration(); + std::string position_str(); + + void next(); + void prev(); + void load_track(Track *track); + Track *current_track(); void pause_after(bool, unsigned int); bool pause_enabled(); diff --git a/include/driver.h b/include/driver.h index ef0c8454..11a6994c 100644 --- a/include/driver.h +++ b/include/driver.h @@ -4,6 +4,9 @@ #include +static const unsigned long O_SECOND = 1000000000; + + class Driver { protected: void (*on_eos)(); diff --git a/lib/audio.cpp b/lib/audio.cpp index 12b708e0..b1efcf3b 100644 --- a/lib/audio.cpp +++ b/lib/audio.cpp @@ -5,103 +5,87 @@ #include #include #include -#include #include #include -static bool player_playing = false; -static bool track_loaded = false; -static unsigned int cur_trackid = 0; -static bool o_pause_enabled = false; -static unsigned int o_pause_count = 0; -static bool o_should_pause = false; +static bool _pause_enabled = false; +static unsigned int _pause_count = 0; +static Track *cur_track = NULL; static File f_cur_track("cur_track", 0); -static void handle_pause_count() -{ - if (o_pause_enabled == false) - return; - else if (o_pause_count == 0) { - o_should_pause = true; - o_pause_enabled = false; - get_callbacks()->on_pause(); - } else - o_pause_count--; - get_callbacks()->on_pause_count_changed(o_pause_enabled, o_pause_count); -} - -static void on_error() -{ - audio :: next(); - audio :: play(); -} - -static void on_eos() -{ - Track *track; - - handle_pause_count(); - track = tagdb :: lookup(cur_trackid); - if (track) { - track->played(); - library :: get_queue()->updated(track); - } - audio :: next(); - audio :: seek_to(0); -} - static void save_state() { f_cur_track.open(OPEN_WRITE); - f_cur_track << cur_trackid << std::endl; + f_cur_track << cur_track->id << std::endl; f_cur_track.close(); } -static bool load_song(Track *track) +static void _load_track(Track *track, bool start_playback) { - bool start_playback; - - if (o_should_pause) - start_playback = false; - else - start_playback = driver :: get_driver()->is_playing(); + cur_track = track; + if (!track) + return; driver :: get_driver()->load(track->path()); get_callbacks()->on_track_loaded(track); - if (start_playback) - return driver :: get_driver()->play(); + audio :: play(); else - return driver :: get_driver()->pause(); + audio :: pause(); + save_state(); +} + +static inline void _load_track_default(Track *track) +{ + _load_track(track, driver :: get_driver()->is_playing()); +} + +static bool continue_playback() +{ + bool ret = true; + + if (_pause_enabled) { + if (_pause_count == 0) { + ret = false; + _pause_enabled = false; + } else + _pause_count--; + get_callbacks()->on_pause_count_changed(_pause_enabled, _pause_count); + } + + return ret; +} + +static void on_eos() +{ + if (cur_track) { + cur_track->played(); + library :: get_queue()->updated(cur_track); + } + + _load_track(deck :: next(), continue_playback()); } void audio :: init(int *argc, char ***argv) -{ - driver :: get_driver()->init(argc, argv, on_eos, on_error); -} - -void audio :: load_state() { unsigned int id; + + driver :: get_driver()->init(argc, argv, on_eos, audio :: next); if (f_cur_track.exists()) { f_cur_track.open(OPEN_READ); f_cur_track >> id; f_cur_track.close(); - audio :: load_trackid(id); + audio :: load_track(tagdb :: lookup(id)); } } -void audio :: quit() -{ -} - void audio :: play() { - if (track_loaded == false) + if (!cur_track) return; if (driver :: get_driver()->play()) get_callbacks()->on_play(); @@ -109,18 +93,17 @@ void audio :: play() void audio :: pause() { - if (track_loaded == false) + if (!cur_track) return; if (driver :: get_driver()->pause()) get_callbacks()->on_pause(); } -void audio :: toggle_play() +void audio :: seek_to(long pos) { - if (player_playing == true) - pause(); - else - play(); + if (!cur_track) + return; + driver :: get_driver()->seek_to(pos); } void audio :: stop() @@ -129,76 +112,24 @@ void audio :: stop() seek_to(0); } -void audio :: seek_to(long pos) -{ - if (track_loaded == false) - return; - driver :: get_driver()->seek_to(pos); -} - -void audio :: next() -{ - Track *track; - - track_loaded = false; - track = deck :: next(); - load_song(track); - track_loaded = true; - - cur_trackid = track->id; - save_state(); -} - -void audio :: previous() -{ - Track *track = deck :: prev(); - if (track->id == cur_trackid) - return; - - load_song(track); - cur_trackid = track->id; - save_state(); -} - -void audio :: load_trackid(unsigned int track_id) -{ - Track *track; - - if ((track_id == cur_trackid) && (track_loaded == true)) - return; - - track_loaded = false; - try { - track = tagdb :: lookup(track_id); - } catch (int err) { - return; - } - load_song(track); - track_loaded = true; - - cur_trackid = track_id; - save_state(); - deck :: get_queue()->add(track); -} - -unsigned int audio :: current_trackid() -{ - if (track_loaded == false) - throw -E_EXIST; - return cur_trackid; -} - long audio :: position() { - if (track_loaded == false) + if (!cur_track) return 0; return driver :: get_driver()->position(); } +long audio :: duration() +{ + if (!cur_track) + return 0; + return driver :: get_driver()->duration(); +} + std::string audio :: position_str() { std::stringstream ss; - long cur = position() / GST_SECOND; + long cur = position() / O_SECOND; unsigned int minutes = cur / 60; unsigned int seconds = cur % 60; @@ -209,29 +140,46 @@ std::string audio :: position_str() return ss.str(); } -long audio :: duration() +void audio :: next() { - if (track_loaded == false) - return 0; - return driver :: get_driver()->duration(); + _load_track_default(deck :: next()); +} + +void audio :: prev() +{ + _load_track_default(deck :: prev()); +} + +void audio :: load_track(Track *track) +{ + if (!track || track == cur_track) + return; + + _load_track(track, driver :: get_driver()->is_playing()); + deck :: get_queue()->add(cur_track); +} + +Track *audio :: current_track() +{ + return cur_track; } void audio :: pause_after(bool enabled, unsigned int n) { - if (n > o_pause_count) + if (n > _pause_count) enabled = true; - o_pause_enabled = enabled; - o_pause_count = n; + _pause_enabled = enabled; + _pause_count = n; get_callbacks()->on_pause_count_changed(enabled, n); } bool audio :: pause_enabled() { - return o_pause_enabled; + return _pause_enabled; } unsigned int audio :: pause_count() { - return o_pause_count; + return _pause_count; } diff --git a/lib/driver.cpp b/lib/driver.cpp index 03ffd393..9747c821 100644 --- a/lib/driver.cpp +++ b/lib/driver.cpp @@ -15,7 +15,8 @@ TestDriver :: ~TestDriver() {} void TestDriver :: init(int *argc, char ***argv, void (*eos_cb)(), void (*error_cb)()) { on_eos = eos_cb; on_error = error_cb; } -void TestDriver :: load(const std::string &file) { cur_file = file; } +void TestDriver :: load(const std::string &file) + { cur_file = file; playing = false; cur_pos = 0; } bool TestDriver :: play() { playing = true; return true; } bool TestDriver :: pause() { playing = false; return true; } bool TestDriver :: is_playing() { return playing; } diff --git a/tests/.gitignore b/tests/.gitignore index 4065e64c..b3151414 100644 --- a/tests/.gitignore +++ b/tests/.gitignore @@ -11,3 +11,4 @@ library playlist deck driver +audio diff --git a/tests/Data/cur_track b/tests/Data/cur_track new file mode 100644 index 00000000..00750edc --- /dev/null +++ b/tests/Data/cur_track @@ -0,0 +1 @@ +3 diff --git a/tests/Sconscript b/tests/Sconscript index 02071bdf..90814b58 100644 --- a/tests/Sconscript +++ b/tests/Sconscript @@ -22,6 +22,7 @@ tests = [ ("playlist.cpp", True, [], []), ("deck.cpp", True, [], []), ("driver.cpp", False, [ "driver.cpp" ], []), + ("audio.cpp", True, [ "driver.cpp" ], []), ] diff --git a/tests/audio.cpp b/tests/audio.cpp new file mode 100644 index 00000000..b3c50a43 --- /dev/null +++ b/tests/audio.cpp @@ -0,0 +1,170 @@ +/* + * Copyright 2013 (c) Anna Schumaker. + */ +#include +#include +#include +#include "test.h" + +Track *TRACK_NULL = NULL; + +void test_pre_init() +{ + TestDriver *driver = (TestDriver *)driver :: get_driver(); + + test_equal(audio :: current_track(), TRACK_NULL); + + audio :: play(); + test_equal(driver->playing, false); + + driver->playing = true; + audio :: pause(); + test_equal(driver->playing, true); + audio :: stop(); + test_equal(driver->playing, true); + driver->playing = false; + + audio :: seek_to(4242); + test_equal(driver->position(), (long)0); + + driver->cur_pos = 4242; + test_equal(audio :: position(), (long)0); + driver->cur_pos = 0; + + driver->cur_duration = 4242; + test_equal(audio :: duration(), (long)0); + driver->cur_duration = 0; + + audio :: next(); + test_equal(audio :: current_track(), TRACK_NULL); + + audio :: prev(); + test_equal(audio :: current_track(), TRACK_NULL); +} + +void test_init(int argc, char **argv) +{ + Track *track; + + test :: cp_data_dir(); + audio :: init(&argc, &argv); + + track = audio :: current_track(); + test_equal(track, TRACK_NULL); + + tagdb :: init(); + library :: init(); + audio :: init(&argc, &argv); + + track = audio :: current_track(); + test_not_equal(track, TRACK_NULL); +} + +void test_playback_controls() +{ + TestDriver *driver = (TestDriver *)driver :: get_driver(); + + audio :: play(); + test_equal(driver->playing, true); + + audio :: pause(); + test_equal(driver->playing, false); + + audio :: seek_to(4242); + test_equal(driver->cur_pos, (long)4242); + test_equal(audio :: position(), (long)4242); + + audio :: play(); + audio :: stop(); + test_equal(driver->playing, false); + test_equal(driver->cur_pos, (long)0); + + audio :: seek_to(4242); + driver->cur_duration = 424242; + test_equal(audio :: position(), (long)4242); + test_equal(audio :: duration(), (long)424242); + + audio :: seek_to(83 * O_SECOND); + test_equal(audio :: position_str(), (std::string)"1:23"); +} + +void test_track_controls() +{ + Track *track = NULL; + + TestDriver *driver = (TestDriver *)driver :: get_driver(); + library :: get_queue()->unset_flag(Q_RANDOM); + + audio :: pause(); + audio :: next(); + test_not_equal(audio :: current_track()->id, (unsigned)2); + test_equal(driver->is_playing(), false); + + audio :: play(); + audio :: next(); + test_equal(driver->is_playing(), true); + + audio :: load_track(track); + test_not_equal(audio :: current_track(), track); + + track = tagdb :: lookup(0); + audio :: seek_to(4242); + audio :: load_track(track); + test_equal(driver->is_playing(), true); + test_equal(audio :: position(), (long)0); + + audio :: seek_to(4242); + audio :: load_track(track); + test_equal(driver->is_playing(), true); + test_equal(audio :: position(), (long)4242); + + driver->error(); + test_not_equal(audio :: current_track(), track); + + track = audio :: current_track(); + driver->eos(); + test_not_equal(audio :: current_track(), track); +} + +void test_autopause() +{ + TestDriver *driver = (TestDriver *)driver :: get_driver(); + + audio :: play(); + test_equal(audio :: pause_enabled(), false); + test_equal(audio :: pause_count(), (unsigned)0); + + audio :: pause_after(true, 3); + test_equal(audio :: pause_enabled(), true); + test_equal(audio :: pause_count(), (unsigned)3); + + audio :: pause_after(false, 3); + test_equal(audio :: pause_enabled(), false); + test_equal(audio :: pause_count(), (unsigned)3); + + audio :: pause_after(false, 5); + test_equal(audio :: pause_enabled(), true); + test_equal(audio :: pause_count(), (unsigned)5); + + for (int i = 4; i >= 0; i--) { + driver->eos(); + test_equal(audio :: pause_enabled(), true); + test_equal(audio :: pause_count(), (unsigned)i); + test_equal(driver->is_playing(), true); + } + + driver->eos(); + test_equal(audio :: pause_enabled(), false); + test_equal(audio :: pause_count(), (unsigned)0); + test_equal(driver->is_playing(), false); +} + +int main(int argc, char **argv) +{ + run_test("Test Audio Pre-Init", test_pre_init); + run_test("Test Audio Init", test_init, argc, argv); + run_test("Test Audio Playback Controls", test_playback_controls); + run_test("Test Audio Track Controls", test_track_controls); + run_test("Test Audio Automatic Pausing", test_autopause); + return 0; +} diff --git a/tests/audio/Sconscript b/tests/audio/Sconscript deleted file mode 100644 index 4cc17946..00000000 --- a/tests/audio/Sconscript +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/python -Import("Test", "CONFIG") - -CONFIG.AUDIO = True - -Test("audio", "audio.cpp") diff --git a/tests/audio/audio.cpp b/tests/audio/audio.cpp deleted file mode 100644 index 7a4b7a32..00000000 --- a/tests/audio/audio.cpp +++ /dev/null @@ -1,226 +0,0 @@ -/* - * Copyright 2013 (c) Anna Schumaker. - */ -#include -#include -#include -#include -#include - -#include -#include -#include - -void gen_library() -{ - system("tests/library/gen_library.sh"); - print("\n"); -} - -void check_ret(const std :: string &test, bool ret, bool expected) -{ - print("Test %s: ", test.c_str()); - if (ret == expected) - print("Success!\n"); - else - print("Failed.\n"); -} - -template -void check_ret(const std :: string &test, long ret, long expected) -{ - print("Test %s: ", test.c_str()); - if (ret == expected) - print("Success!\n"); - else - print("Failed (Expected %ld but got %ld)\n", expected, ret); -} - -void check_error(int error, int expected) -{ - if (expected == 0) { - if (error == 0) - print("Success!\n"); - else - print("Failed with error: %d\n", error); - } else { - if (error == 0) - print("Failed (expected error: %d)\n", expected); - else - print("Success!\n"); - } -} - -void call_func(const std :: string &test, void (*func)(), int expected) -{ - print("Test %s: ", test.c_str()); - try { - func(); - check_error(0, expected); - } catch (int error) { - check_error(error, expected); - } -} - -void call_func(const std :: string &test, void (*func)(long), long arg, int expected) -{ - print("Test %s: ", test.c_str()); - try { - func(arg); - check_error(0, expected); - } catch (int error) { - check_error(error, expected); - } -} - -/* Call various functions without a track loaded */ -void test_0() -{ - call_func("0a", audio :: play, 0); - call_func("0b", audio :: pause, 0); - call_func("0c", audio :: seek_to, 10, 0); - call_func("0d", audio :: next, -E_EXIST); - call_func("0e", audio :: stop, 0); - check_ret("0f", audio :: position(), 0); - check_ret("0g", audio :: duration(), 0); - try { - print("Test 0h: "); - audio :: current_trackid(); - check_error(0, -E_EXIST); - } catch (int error) { - check_error(error, -E_EXIST); - } - call_func("0i", audio :: previous, -E_EXIST); - print("\n"); -} - -void test_1() -{ - library :: Song song; - library :: lookup(0, &song); - - call_func("1a", audio :: next, 0); - call_func("1b", audio :: play, 0); - call_func("1c", audio :: pause, 0); - call_func("1d", audio :: seek_to, 1 * GST_SECOND, 0); - call_func("1e", audio :: stop, 0); - check_ret("1f", audio :: current_trackid() == 0, true); - check_ret("1g", audio :: position(), 0); - call_func("1h", audio :: previous, 0); - check_ret("1i", audio :: current_trackid() == 0, true); - audio :: next(); - audio :: next(); - call_func("1j", audio :: previous, 0); - check_ret("1k", audio :: current_trackid() == 1, true); - call_func("1l", audio :: previous, 0); - check_ret("1m", audio :: current_trackid() == 0, true); - print("\n"); -} - -/* Test pause_after() */ -unsigned int test_2_count = 0; -int test_2_cb(gpointer data) -{ - long seek_pos, pos, max; - library :: Song song; - GMainLoop *loop = (GMainLoop *)data; - - library :: lookup(audio :: current_trackid(), &song); - pos = audio :: position(); - - switch (test_2_count) { - case 0: - break; - case 1: - check_ret("2g", audio :: duration(), song.track->length * GST_SECOND); - seek_pos = (song.track->length * GST_SECOND) - GST_SECOND; - call_func("2h", audio :: seek_to, seek_pos, 0); - break; - case 2: - max = (song.track->length * GST_SECOND) - GST_SECOND + (501 * GST_MSECOND); - - check_ret("2i", pos <= max, true); - call_func("2j", audio :: stop, 0); - break; - case 3: - check_ret("2k", pos, 0); - call_func("2l", audio :: play, 0); - call_func("2m", audio :: seek_to, audio :: duration() - 1, 0); - break; - case 4: - check_ret("2n", audio :: pause_count(), (long)2); - call_func("2o", audio :: seek_to, audio :: duration() - 1, 0); - break; - case 5: - check_ret("2p", audio :: pause_count(), (long)1); - call_func("2q", audio :: seek_to, audio :: duration() - 1, 0); - break; - case 6: - check_ret("2r", audio :: pause_count(), (long)0); - call_func("2s", audio :: seek_to, audio :: duration() - 1, 0); - break; - case 7: - check_ret("2t", audio :: pause_enabled(), false); - check_ret("2u", audio :: pause_count(), (long)0); - break; - case 8: - pos = audio :: position(); - check_ret("2v", (0 <= pos) && (pos <= GST_MSECOND), true); - break; - case 9: - pos = audio :: position(); - check_ret("2w", (0 <= pos) && (pos <= GST_MSECOND), true); - default: - g_main_quit(loop); - } - - test_2_count++; - return true; -} - -void test_2() -{ - GMainLoop *loop; - - check_ret("2a", audio :: pause_enabled(), false); - check_ret("2b", audio :: pause_count(), (long)0); - audio :: pause_after(true, 3); - check_ret("2c", audio :: pause_enabled(), true); - check_ret("2d", audio :: pause_count(), (long)3); - audio :: next(); - check_ret("2e", audio :: pause_enabled(), true); - check_ret("2f", audio :: pause_count(), (long)3); - - audio :: play(); - loop = g_main_loop_new(NULL, FALSE); - g_timeout_add(500, test_2_cb, loop); - g_main_loop_run(loop); -} - -int main(int argc, char **argv) -{ - Playqueue *pqueue; - - gen_library(); - - /* Initialize before testing */ - audio :: init(&argc, &argv); - test_0(); - - /* Read in library, set up a playlist */ - library::init(); - deck::init(); - library :: reset(); - library :: add_path("/tmp/library/0"); - while (idle :: run_task()); - - pqueue = deck :: create(false); - for (unsigned int i = 0; i < 150; i++) - pqueue->add(i); - - test_1(); - test_2(); - - audio :: quit(); - return 0; -} diff --git a/tests/audio/audio.good b/tests/audio/audio.good deleted file mode 100644 index 9d1fbc72..00000000 --- a/tests/audio/audio.good +++ /dev/null @@ -1,53 +0,0 @@ -Generating library: 0 -Generating library: 1 -Generating library: 2 -Generating library: 3 -Generating library: 4 - -Test 0a: Success! -Test 0b: Success! -Test 0c: Success! -Test 0d: Success! -Test 0e: Success! -Test 0f: Success! -Test 0g: Success! -Test 0h: Success! -Test 0i: Success! - -Test 1a: Success! -Test 1b: Success! -Test 1c: Success! -Test 1d: Success! -Test 1e: Success! -Test 1f: Success! -Test 1g: Success! -Test 1h: Success! -Test 1i: Success! -Test 1j: Success! -Test 1k: Success! -Test 1l: Success! -Test 1m: Success! - -Test 2a: Success! -Test 2b: Success! -Test 2c: Success! -Test 2d: Success! -Test 2e: Success! -Test 2f: Success! -Test 2g: Success! -Test 2h: Success! -Test 2i: Success! -Test 2j: Success! -Test 2k: Success! -Test 2l: Success! -Test 2m: Success! -Test 2n: Success! -Test 2o: Success! -Test 2p: Success! -Test 2q: Success! -Test 2r: Success! -Test 2s: Success! -Test 2t: Success! -Test 2u: Success! -Test 2v: Success! -Test 2w: Success! diff --git a/tests/driver.cpp b/tests/driver.cpp index 8cc32170..a396a6f7 100644 --- a/tests/driver.cpp +++ b/tests/driver.cpp @@ -50,6 +50,12 @@ void test_driver() driver->error(); test_equal(error_count, (unsigned)1); + + driver->play(); + driver->seek_to(4242); + driver->load(file); + test_equal(driver->is_playing(), false); + test_equal(driver->position(), (long)0); } int main(int argc, char **argv) From 06b36afec6e55a38964a85e2d9bc6e71dadbff49 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sun, 1 Jun 2014 17:59:10 -0400 Subject: [PATCH 77/93] gui: Updates for the recent audio changes Now the gui compiles again, yay! Signed-off-by: Anna Schumaker --- gui/gui.cpp | 22 +++++++++++++--------- gui/main.cpp | 5 ++--- gui/model.cpp | 2 +- 3 files changed, 16 insertions(+), 13 deletions(-) diff --git a/gui/gui.cpp b/gui/gui.cpp index eafc1120..0d934c6e 100644 --- a/gui/gui.cpp +++ b/gui/gui.cpp @@ -4,6 +4,7 @@ #include #include #include +#include #include #include @@ -107,9 +108,9 @@ static void on_ban_toggled() Gtk::ToggleButton *ban = get_widget("o_ban"); if (ban->get_active() == true) - playlist :: add(tagdb :: lookup(audio :: current_trackid()), "Banned"); + playlist :: add(audio :: current_track(), "Banned"); else - playlist :: del(tagdb :: lookup(audio::current_trackid()), "Banned"); + playlist :: del(audio::current_track(), "Banned"); } static void on_fav_toggled() @@ -117,9 +118,9 @@ static void on_fav_toggled() Gtk::ToggleButton *fav = get_widget("o_favorite"); if (fav->get_active() == true) - playlist :: add(tagdb :: lookup(audio::current_trackid()), "Favorites"); + playlist :: add(audio::current_track(), "Favorites"); else - playlist :: del(tagdb :: lookup(audio::current_trackid()), "Favorites"); + playlist :: del(audio::current_track(), "Favorites"); } @@ -155,7 +156,7 @@ static bool on_window_key_pressed(GdkEventKey *event) else if (key == "n") on_next(); else if (key == "N") - audio :: previous(); + audio :: prev(); else if (key == "p") notebook->set_current_page(deck::get_queues().size() + 2); else @@ -167,9 +168,12 @@ static bool on_window_key_released(GdkEventKey *event) { std::string key = gdk_keyval_name(event->keyval); - if (key == "space") - audio :: toggle_play(); - else + if (key == "space") { + if (driver :: get_driver()->is_playing()) + audio :: pause(); + else + audio :: play(); + } else return false; return true; } @@ -255,7 +259,7 @@ Gtk::Window *setup_gui() connect_button("o_play", audio::play); connect_button("o_pause", audio::pause); connect_button("o_stop", audio::stop); - connect_button("o_prev", audio::previous); + connect_button("o_prev", audio::prev); connect_button("o_next", on_next); count->signal_changed().connect(sigc::ptr_fun(on_config_pause)); diff --git a/gui/main.cpp b/gui/main.cpp index ce114f45..ce5ffd6e 100644 --- a/gui/main.cpp +++ b/gui/main.cpp @@ -30,14 +30,13 @@ Gtk::Window *ocarina_init(int *argc, char ***argv) Gtk::Window *window = setup_gui(); tagdb :: init(); library::init(); - audio::init(argc, argv); - deck::init(); playlist::init(); + deck::init(); + audio::init(argc, argv); playlist :: select("Favorites"); share_file("ocarina6.glade"); post_init_tabs(); - audio::load_state(); return window; } diff --git a/gui/model.cpp b/gui/model.cpp index 22b4ecf9..9600ca12 100644 --- a/gui/model.cpp +++ b/gui/model.cpp @@ -57,7 +57,7 @@ void QueueModel::on_row_changed(unsigned int row) void QueueModel::on_path_selected(const Gtk::TreePath &path) { - audio :: load_trackid(path_to_id(path)); + audio :: load_track(tagdb :: lookup(path_to_id(path))); queue->track_selected(path[0]); audio :: play(); } From c8036992156baecf02a16eac31ab23d9a47fc6f2 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Wed, 4 Jun 2014 09:33:29 -0400 Subject: [PATCH 78/93] GSTDriver: Call on_eos() at End Of Stream We kind of need to do this this to pick the next song ... Signed-off-by: Anna Schumaker --- lib/driver.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/driver.cpp b/lib/driver.cpp index 9747c821..609672bf 100644 --- a/lib/driver.cpp +++ b/lib/driver.cpp @@ -138,6 +138,10 @@ void GSTDriver :: on_message(GstMessage *message) case GST_MESSAGE_ERROR: parse_gst_error(message, cur_file); on_error(); + break; + case GST_MESSAGE_EOS: + on_eos(); + break; default: break; } From 72a51fb78fa165c0e69d391759205144d099c685 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Wed, 4 Jun 2014 09:34:49 -0400 Subject: [PATCH 79/93] gui: Properly create queue tabs Changes to the deck removed the on_pq_created() callback that we looked for to create new tabs. This patch creates tabs correctly. Signed-off-by: Anna Schumaker --- gui/queue.cpp | 13 +++++++++++-- gui/tabs.cpp | 2 ++ include/ocarina.h | 3 ++- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/gui/queue.cpp b/gui/queue.cpp index f0d8cf38..b1ffe75b 100644 --- a/gui/queue.cpp +++ b/gui/queue.cpp @@ -319,11 +319,11 @@ static void renumber_queues() it->second->on_tab_reordered(); } -/*static void on_pq_created(Queue *pq, unsigned int num) +void on_pq_created(Queue *pq, unsigned int num) { QueueTab *tab = new QueueTab(pq, num); tab->on_post_init(); -}*/ +} static void on_pq_removed(Queue *pq) { @@ -359,3 +359,12 @@ void init_queue_tabs() Gtk::Notebook *notebook = get_widget("o_notebook"); notebook->signal_page_reordered().connect(sigc::ptr_fun(on_page_reordered)); } + +void post_init_queue_tabs() +{ + std::list::iterator it; + unsigned int i = 0; + + for (it = deck :: get_queues().begin(); it != deck :: get_queues().end(); it++) + on_pq_created(&(*it), i++); +} diff --git a/gui/tabs.cpp b/gui/tabs.cpp index 9ebafd5a..587acb5b 100644 --- a/gui/tabs.cpp +++ b/gui/tabs.cpp @@ -170,6 +170,7 @@ bool Tab :: tab_queue_selected(bool random) return true; Queue *pq = deck :: create(random); + on_pq_created(pq, deck :: get_queues().size() - 1); tab_queue_add(pq); return true; } @@ -526,6 +527,7 @@ void post_init_tabs() // break; //} get_widget("o_notebook")->set_current_page(tab); + post_init_queue_tabs(); } void cleanup_tabs() diff --git a/include/ocarina.h b/include/ocarina.h index deae5f52..aafd3e15 100644 --- a/include/ocarina.h +++ b/include/ocarina.h @@ -76,7 +76,8 @@ static Glib::RefPtr get_object(const std::string &name) return Glib::RefPtr::cast_static(get_builder()->get_object(name)); } - +void on_pq_created(Queue *, unsigned int); +void post_init_queue_tabs(); #ifdef CONFIG_TEST void do_collection_delete(); From 2f1d7a73ce4ab6631499075e8f6e01616e56ac06 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Wed, 4 Jun 2014 13:23:50 -0400 Subject: [PATCH 80/93] database: Set an item's ID before reading it in Tracks need to know their own ID to set up filtering properly. Signed-off-by: Anna Schumaker --- include/database.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/database.hpp b/include/database.hpp index cec0056a..0ae77a93 100644 --- a/include/database.hpp +++ b/include/database.hpp @@ -67,8 +67,8 @@ void Database :: load() _db[i] = NULL; else { _db[i] = new T; - _db[i]->read(_file); _db[i]->id = i; + _db[i]->read(_file); _keys[_db[i]->primary_key()] = i; _size++; } From 851be80a7dfba244557bef960cd6d822c0d2a1e5 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Wed, 4 Jun 2014 13:24:33 -0400 Subject: [PATCH 81/93] tags: Add artist and album names to the filter Also decrement library count when deleting tracks. Signed-off-by: Anna Schumaker --- lib/tags.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/tags.cpp b/lib/tags.cpp index b2e0ed47..027d0386 100644 --- a/lib/tags.cpp +++ b/lib/tags.cpp @@ -165,7 +165,7 @@ Track :: Track(const std::string &f, Library *l) Track :: ~Track() { - //library->count--; + library->count--; } const std::string Track :: primary_key() const @@ -190,6 +190,8 @@ void Track :: read(File &f) genre = genre_db.at(genre_id); title_lower = filter :: add(title, id); + filter :: add(artist->name, id); + filter :: add(album->name, id); library->count++; set_length_str(); } From 87af56ba850b132f8ce23bb5151d729dfd1dcb39 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Wed, 4 Jun 2014 13:59:15 -0400 Subject: [PATCH 82/93] Header file roundup Create include/lib/ and include/gui/. Move header files into the appropriate directory. Signed-off-by: Anna Schumaker --- gui/collection.cpp | 8 ++++---- gui/collection_mgr.cpp | 6 +++--- gui/gui.cpp | 18 +++++++++--------- gui/history.cpp | 4 ++-- gui/main.cpp | 12 ++++++------ gui/model.cpp | 4 ++-- gui/playlist.cpp | 4 ++-- gui/queue.cpp | 6 +++--- gui/tabs.cpp | 10 +++++----- include/{ => gui}/ocarina.h | 2 +- include/{ => gui}/tabs.h | 4 ++-- include/{ => lib}/audio.h | 2 +- include/{ => lib}/callback.h | 4 ++-- include/{ => lib}/database.h | 2 +- include/{ => lib}/database.hpp | 0 include/{ => lib}/deck.h | 2 +- include/{ => lib}/driver.h | 0 include/{ => lib}/error.h | 0 include/{ => lib}/file.h | 0 include/{ => lib}/filter.h | 0 include/{ => lib}/idle.h | 0 include/{ => lib}/idle.hpp | 0 include/{ => lib}/index.h | 2 +- include/{ => lib}/library.h | 4 ++-- include/{ => lib}/playlist.h | 4 ++-- include/{ => lib}/print.h | 0 include/{ => lib}/queue.h | 4 ++-- include/{ => lib}/random.h | 0 include/{ => lib}/tags.h | 2 +- include/{ => lib}/version.h | 0 lib/audio.cpp | 8 ++++---- lib/callback.cpp | 2 +- lib/database.cpp | 2 +- lib/deck.cpp | 8 ++++---- lib/driver.cpp | 2 +- lib/file.cpp | 4 ++-- lib/filter.cpp | 4 ++-- lib/idle.cpp | 2 +- lib/index.cpp | 2 +- lib/library.cpp | 4 ++-- lib/playlist.cpp | 4 ++-- lib/queue.cpp | 6 +++--- lib/random.cpp | 2 +- lib/tags.cpp | 6 +++--- tests/audio.cpp | 6 +++--- tests/database.cpp | 2 +- tests/deck.cpp | 6 +++--- tests/driver.cpp | 2 +- tests/file.cpp | 2 +- tests/filter.cpp | 2 +- tests/idle.cpp | 2 +- tests/index.cpp | 2 +- tests/library.cpp | 4 ++-- tests/playlist.cpp | 4 ++-- tests/queue.cpp | 8 ++++---- tests/random.cpp | 2 +- tests/tags.cpp | 2 +- tests/version.cpp | 2 +- 58 files changed, 103 insertions(+), 103 deletions(-) rename include/{ => gui}/ocarina.h (99%) rename include/{ => gui}/tabs.h (98%) rename include/{ => lib}/audio.h (95%) rename include/{ => lib}/callback.h (92%) rename include/{ => lib}/database.h (97%) rename include/{ => lib}/database.hpp (100%) rename include/{ => lib}/deck.h (96%) rename include/{ => lib}/driver.h (100%) rename include/{ => lib}/error.h (100%) rename include/{ => lib}/file.h (100%) rename include/{ => lib}/filter.h (100%) rename include/{ => lib}/idle.h (100%) rename include/{ => lib}/idle.hpp (100%) rename include/{ => lib}/index.h (96%) rename include/{ => lib}/library.h (88%) rename include/{ => lib}/playlist.h (90%) rename include/{ => lib}/print.h (100%) rename include/{ => lib}/queue.h (96%) rename include/{ => lib}/random.h (100%) rename include/{ => lib}/tags.h (98%) rename include/{ => lib}/version.h (100%) diff --git a/gui/collection.cpp b/gui/collection.cpp index 3585e469..1501c1ba 100644 --- a/gui/collection.cpp +++ b/gui/collection.cpp @@ -1,10 +1,10 @@ /* * Copyright 2014 (c) Anna Schumaker. */ -#include -#include -#include -#include +#include +#include +#include +#include class CollectionTab : public Tab { diff --git a/gui/collection_mgr.cpp b/gui/collection_mgr.cpp index 8b1aa08e..edc79c97 100644 --- a/gui/collection_mgr.cpp +++ b/gui/collection_mgr.cpp @@ -1,9 +1,9 @@ /* * Copyright 2014 (c) Anna Schumaker. */ -#include -#include -#include +#include +#include +#include static void on_library_add(unsigned int id, Library *library); diff --git a/gui/gui.cpp b/gui/gui.cpp index 0d934c6e..b38ab800 100644 --- a/gui/gui.cpp +++ b/gui/gui.cpp @@ -1,16 +1,16 @@ /* * Copyright 2014 (c) Anna Schumaker. */ -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include -#include -#include -#include +#include +#include static bool audio_playing = false; static Glib::RefPtr builder; diff --git a/gui/history.cpp b/gui/history.cpp index 60f45415..5357d706 100644 --- a/gui/history.cpp +++ b/gui/history.cpp @@ -1,8 +1,8 @@ /* * Copyright 2014 (c) Anna Schumaker. */ -#include -#include +#include +#include class HistoryTab : public Tab { diff --git a/gui/main.cpp b/gui/main.cpp index ce5ffd6e..ba3d6ab4 100644 --- a/gui/main.cpp +++ b/gui/main.cpp @@ -1,12 +1,12 @@ /* * Copyright 2014 (c) Anna Schumaker. */ -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include const std::string share_file(const std::string &file) { diff --git a/gui/model.cpp b/gui/model.cpp index 9600ca12..93db7e95 100644 --- a/gui/model.cpp +++ b/gui/model.cpp @@ -4,8 +4,8 @@ * See the example at: * https://git.gnome.org/browse/gtkmm-documentation/tree/examples/others/treemodelcustom */ -#include -#include +#include +#include #include #include diff --git a/gui/playlist.cpp b/gui/playlist.cpp index 6d452628..6ab27c36 100644 --- a/gui/playlist.cpp +++ b/gui/playlist.cpp @@ -1,8 +1,8 @@ /* * Copyright 2014 (c) Anna Schumaker. */ -#include -#include +#include +#include static const std::string current_playlist(); diff --git a/gui/queue.cpp b/gui/queue.cpp index b1ffe75b..fb2832b4 100644 --- a/gui/queue.cpp +++ b/gui/queue.cpp @@ -1,9 +1,9 @@ /* * Copyright 2014 (c) Anna Schumaker. */ -#include -#include -#include +#include +#include +#include #include diff --git a/gui/tabs.cpp b/gui/tabs.cpp index 587acb5b..eec170a2 100644 --- a/gui/tabs.cpp +++ b/gui/tabs.cpp @@ -1,11 +1,11 @@ /* * Copyright 2014 (c) Anna Schumaker. */ -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include #include #include diff --git a/include/ocarina.h b/include/gui/ocarina.h similarity index 99% rename from include/ocarina.h rename to include/gui/ocarina.h index aafd3e15..c0327dfe 100644 --- a/include/ocarina.h +++ b/include/gui/ocarina.h @@ -4,7 +4,7 @@ #ifndef OCARINA_H #define OCARINA_H -#include +#include #include diff --git a/include/tabs.h b/include/gui/tabs.h similarity index 98% rename from include/tabs.h rename to include/gui/tabs.h index 90e20bc3..7fe1201a 100644 --- a/include/tabs.h +++ b/include/gui/tabs.h @@ -4,8 +4,8 @@ #ifndef OCARINA_TABS_H #define OCARINA_TABS_H -#include -#include +#include +#include #include class Tab { diff --git a/include/audio.h b/include/lib/audio.h similarity index 95% rename from include/audio.h rename to include/lib/audio.h index 8b9dc6c9..5228150b 100644 --- a/include/audio.h +++ b/include/lib/audio.h @@ -4,7 +4,7 @@ #ifndef OCARINA_AUDIO_H #define OCARINA_AUDIO_H -#include +#include #include namespace audio diff --git a/include/callback.h b/include/lib/callback.h similarity index 92% rename from include/callback.h rename to include/lib/callback.h index af4b9427..90a0d647 100644 --- a/include/callback.h +++ b/include/lib/callback.h @@ -4,8 +4,8 @@ #ifndef OCARINA_CALLBACK_H #define OCARINA_CALLBACK_H -#include -#include +#include +#include struct Callbacks { diff --git a/include/database.h b/include/lib/database.h similarity index 97% rename from include/database.h rename to include/lib/database.h index 06cd7829..59b1d712 100644 --- a/include/database.h +++ b/include/lib/database.h @@ -4,7 +4,7 @@ #ifndef OCARINA_DATABASE_H #define OCARINA_DATABASE_H -#include +#include #include #include diff --git a/include/database.hpp b/include/lib/database.hpp similarity index 100% rename from include/database.hpp rename to include/lib/database.hpp diff --git a/include/deck.h b/include/lib/deck.h similarity index 96% rename from include/deck.h rename to include/lib/deck.h index 7deae73d..871bd9d5 100644 --- a/include/deck.h +++ b/include/lib/deck.h @@ -4,7 +4,7 @@ #ifndef OCARINA_DECK_H #define OCARINA_DECK_H -#include +#include #include diff --git a/include/driver.h b/include/lib/driver.h similarity index 100% rename from include/driver.h rename to include/lib/driver.h diff --git a/include/error.h b/include/lib/error.h similarity index 100% rename from include/error.h rename to include/lib/error.h diff --git a/include/file.h b/include/lib/file.h similarity index 100% rename from include/file.h rename to include/lib/file.h diff --git a/include/filter.h b/include/lib/filter.h similarity index 100% rename from include/filter.h rename to include/lib/filter.h diff --git a/include/idle.h b/include/lib/idle.h similarity index 100% rename from include/idle.h rename to include/lib/idle.h diff --git a/include/idle.hpp b/include/lib/idle.hpp similarity index 100% rename from include/idle.hpp rename to include/lib/idle.hpp diff --git a/include/index.h b/include/lib/index.h similarity index 96% rename from include/index.h rename to include/lib/index.h index f8ee53f5..b3e65bbf 100644 --- a/include/index.h +++ b/include/lib/index.h @@ -4,7 +4,7 @@ #ifndef OCARINA_INDEX_H #define OCARINA_INDEX_H -#include +#include #include #include diff --git a/include/library.h b/include/lib/library.h similarity index 88% rename from include/library.h rename to include/lib/library.h index 73cea15e..a68be4df 100644 --- a/include/library.h +++ b/include/lib/library.h @@ -4,8 +4,8 @@ #ifndef OCARINA_LIBRARY_H #define OCARINA_LIBRARY_H -#include -#include +#include +#include #include namespace library diff --git a/include/playlist.h b/include/lib/playlist.h similarity index 90% rename from include/playlist.h rename to include/lib/playlist.h index abd491c3..746ed59c 100644 --- a/include/playlist.h +++ b/include/lib/playlist.h @@ -4,8 +4,8 @@ #ifndef OCARINA_PLAYLIST_H #define OCARINA_PLAYLIST_H -#include -#include +#include +#include #include diff --git a/include/print.h b/include/lib/print.h similarity index 100% rename from include/print.h rename to include/lib/print.h diff --git a/include/queue.h b/include/lib/queue.h similarity index 96% rename from include/queue.h rename to include/lib/queue.h index 451200be..18f65d34 100644 --- a/include/queue.h +++ b/include/lib/queue.h @@ -4,8 +4,8 @@ #ifndef OCARINA_QUEUE_H #define OCARINA_QUEUE_H -#include -#include +#include +#include #include #include diff --git a/include/random.h b/include/lib/random.h similarity index 100% rename from include/random.h rename to include/lib/random.h diff --git a/include/tags.h b/include/lib/tags.h similarity index 98% rename from include/tags.h rename to include/lib/tags.h index 51f873c9..9d4b9e3f 100644 --- a/include/tags.h +++ b/include/lib/tags.h @@ -4,7 +4,7 @@ #ifndef OCARINA_TAGS_H #define OCARINA_TAGS_H -#include +#include enum sort_t { diff --git a/include/version.h b/include/lib/version.h similarity index 100% rename from include/version.h rename to include/lib/version.h diff --git a/lib/audio.cpp b/lib/audio.cpp index b1efcf3b..4bd0dccb 100644 --- a/lib/audio.cpp +++ b/lib/audio.cpp @@ -1,10 +1,10 @@ /* * Copyright 2013 (c) Anna Schumaker. */ -#include -#include -#include -#include +#include +#include +#include +#include #include #include diff --git a/lib/callback.cpp b/lib/callback.cpp index 573853a3..46cb1f7c 100644 --- a/lib/callback.cpp +++ b/lib/callback.cpp @@ -1,7 +1,7 @@ /* * Copyright 2014 (c) Anna Schumaker. */ -#include +#include static void no_op() {} diff --git a/lib/database.cpp b/lib/database.cpp index f520cf56..c9817a8d 100644 --- a/lib/database.cpp +++ b/lib/database.cpp @@ -1,7 +1,7 @@ /* * Copyright 2013 (c) Anna Schumaker. */ -#include +#include DatabaseEntry :: DatabaseEntry() diff --git a/lib/deck.cpp b/lib/deck.cpp index 1940643e..aa35baca 100644 --- a/lib/deck.cpp +++ b/lib/deck.cpp @@ -1,10 +1,10 @@ /* * Copyright 2013 (c) Anna Schumaker. */ -#include -#include -#include -#include +#include +#include +#include +#include class RecentQueue : public Queue diff --git a/lib/driver.cpp b/lib/driver.cpp index 609672bf..66963338 100644 --- a/lib/driver.cpp +++ b/lib/driver.cpp @@ -1,7 +1,7 @@ /* * Copyright 2014 (c) Anna Schumaker. */ -#include +#include Driver :: Driver() {} diff --git a/lib/file.cpp b/lib/file.cpp index 479f5ebc..21165b13 100644 --- a/lib/file.cpp +++ b/lib/file.cpp @@ -1,8 +1,8 @@ /* * Copyright 2013 (c) Anna Schumaker. */ -#include -#include +#include +#include #include diff --git a/lib/filter.cpp b/lib/filter.cpp index 9ca8bd66..a659d47b 100644 --- a/lib/filter.cpp +++ b/lib/filter.cpp @@ -2,8 +2,8 @@ * Copyright 2013 (c) Anna Schumaker. */ -#include -#include +#include +#include #include #include diff --git a/lib/idle.cpp b/lib/idle.cpp index 08e389a4..2849e97a 100644 --- a/lib/idle.cpp +++ b/lib/idle.cpp @@ -1,7 +1,7 @@ /* * Copyright 2013 (c) Anna Schumaker. */ -#include +#include #include diff --git a/lib/index.cpp b/lib/index.cpp index ff27f0f4..2f55f67e 100644 --- a/lib/index.cpp +++ b/lib/index.cpp @@ -1,7 +1,7 @@ /* * Copyright 2014 (c) Anna Schumaker. */ -#include +#include IndexEntry :: IndexEntry() {} diff --git a/lib/library.cpp b/lib/library.cpp index 04675513..b7404d96 100644 --- a/lib/library.cpp +++ b/lib/library.cpp @@ -1,8 +1,8 @@ /* * Copyright 2013 (c) Anna Schumaker. */ -#include -#include +#include +#include #include diff --git a/lib/playlist.cpp b/lib/playlist.cpp index c4b3b1aa..ab02bb7d 100644 --- a/lib/playlist.cpp +++ b/lib/playlist.cpp @@ -1,8 +1,8 @@ /* * Copyright 2013 (c) Anna Schumaker. */ -#include -#include +#include +#include class PlaylistQueue : public Queue { diff --git a/lib/queue.cpp b/lib/queue.cpp index 50cd64fa..89c6823e 100644 --- a/lib/queue.cpp +++ b/lib/queue.cpp @@ -1,9 +1,9 @@ /* * Copyright 2013 (c) Anna Schumaker. */ -#include -#include -#include +#include +#include +#include #include #include diff --git a/lib/random.cpp b/lib/random.cpp index 3488e277..6e515d60 100644 --- a/lib/random.cpp +++ b/lib/random.cpp @@ -3,7 +3,7 @@ */ #ifdef CONFIG_TEST -#include +#include static unsigned int _random_value = 0; diff --git a/lib/tags.cpp b/lib/tags.cpp index 027d0386..945f85c8 100644 --- a/lib/tags.cpp +++ b/lib/tags.cpp @@ -2,9 +2,9 @@ * Copyright 2014 (c) Anna Schumaker. */ -#include -#include -#include +#include +#include +#include #include #include diff --git a/tests/audio.cpp b/tests/audio.cpp index b3c50a43..5679b1bc 100644 --- a/tests/audio.cpp +++ b/tests/audio.cpp @@ -1,9 +1,9 @@ /* * Copyright 2013 (c) Anna Schumaker. */ -#include -#include -#include +#include +#include +#include #include "test.h" Track *TRACK_NULL = NULL; diff --git a/tests/database.cpp b/tests/database.cpp index a72e228c..310d8187 100644 --- a/tests/database.cpp +++ b/tests/database.cpp @@ -3,7 +3,7 @@ * Test a Database */ -#include +#include #include "test.h" #include diff --git a/tests/deck.cpp b/tests/deck.cpp index 7057ac7c..139fdf29 100644 --- a/tests/deck.cpp +++ b/tests/deck.cpp @@ -1,9 +1,9 @@ /* * Copyright 2013 (c) Anna Schumaker. */ -#include -#include -#include +#include +#include +#include #include "test.h" static Queue *Q_NULL = NULL; diff --git a/tests/driver.cpp b/tests/driver.cpp index a396a6f7..130da86f 100644 --- a/tests/driver.cpp +++ b/tests/driver.cpp @@ -1,7 +1,7 @@ /* * Copyright 2014 (c) Anna Schumaker. */ -#include +#include #include "test.h" static TestDriver *DRIVER_NULL = NULL; diff --git a/tests/file.cpp b/tests/file.cpp index 0219194d..8f0bcaf4 100644 --- a/tests/file.cpp +++ b/tests/file.cpp @@ -1,7 +1,7 @@ /* * Copyright 2014 (c) Anna Schumaker. */ -#include +#include #include "test.h" diff --git a/tests/filter.cpp b/tests/filter.cpp index ce6e63d7..b24865dc 100644 --- a/tests/filter.cpp +++ b/tests/filter.cpp @@ -3,7 +3,7 @@ * Test the filtering code */ -#include +#include #include "test.h" static void do_test_lowercase(const std::string &text, const std::string &lc) diff --git a/tests/idle.cpp b/tests/idle.cpp index 8b13f4b3..69aac7b1 100644 --- a/tests/idle.cpp +++ b/tests/idle.cpp @@ -3,7 +3,7 @@ * Test the idle queue */ -#include +#include #include "test.h" #include diff --git a/tests/index.cpp b/tests/index.cpp index 0001dfde..891aead0 100644 --- a/tests/index.cpp +++ b/tests/index.cpp @@ -3,7 +3,7 @@ * Test a Database */ -#include +#include #include "test.h" #include diff --git a/tests/library.cpp b/tests/library.cpp index 0838dd9c..044e0aa0 100644 --- a/tests/library.cpp +++ b/tests/library.cpp @@ -1,8 +1,8 @@ /* * Copyright 2013 (c) Anna Schumaker. */ -#include -#include +#include +#include #include "test.h" static Queue *Q_NULL = NULL; diff --git a/tests/playlist.cpp b/tests/playlist.cpp index c8763aa0..6d354563 100644 --- a/tests/playlist.cpp +++ b/tests/playlist.cpp @@ -1,8 +1,8 @@ /* * Copyright 2013 (c) Anna Schumaker. */ -#include -#include +#include +#include #include "test.h" static IndexEntry *IDX_NULL = NULL; diff --git a/tests/queue.cpp b/tests/queue.cpp index 59da0f69..ba96e97f 100644 --- a/tests/queue.cpp +++ b/tests/queue.cpp @@ -1,10 +1,10 @@ /* * Copyright 2014 (c) Anna Schumaker. */ -#include -#include -#include -#include +#include +#include +#include +#include #include "test.h" diff --git a/tests/random.cpp b/tests/random.cpp index 1d714404..c2eb1215 100644 --- a/tests/random.cpp +++ b/tests/random.cpp @@ -2,7 +2,7 @@ * Copyright 2014 (c) Anna Schumaker. */ -#include +#include #include "test.h" #include diff --git a/tests/tags.cpp b/tests/tags.cpp index f0f9a745..9493a16b 100644 --- a/tests/tags.cpp +++ b/tests/tags.cpp @@ -3,7 +3,7 @@ * Test a DatabaseEntry */ -#include +#include #include "test.h" static Library *LIB_NULL = NULL; diff --git a/tests/version.cpp b/tests/version.cpp index 727438a9..1cefb1d7 100644 --- a/tests/version.cpp +++ b/tests/version.cpp @@ -1,7 +1,7 @@ /* * Copyright 2013 (c) Anna Schumaker. */ -#include +#include #include "test.h" #ifdef CONFIG_DEBUG From 95064e45374f3df175dc5dab81017e60a08b49a5 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Thu, 5 Jun 2014 10:19:22 -0400 Subject: [PATCH 83/93] Rename lib/ -> core/ I plan to introduce a new lib/ that sits between the gui and the backend files (similar to how glibc sits between the kernel and userspace). This gets the rename out of the way before I change my mind again. Signed-off-by: Anna Schumaker --- .gitignore | 1 + Sconstruct | 4 ++-- {lib => core}/Sconscript | 0 {lib => core}/audio.cpp | 8 ++++---- {lib => core}/callback.cpp | 2 +- {lib => core}/database.cpp | 2 +- {lib => core}/deck.cpp | 8 ++++---- {lib => core}/driver.cpp | 2 +- {lib => core}/file.cpp | 4 ++-- {lib => core}/filter.cpp | 4 ++-- {lib => core}/idle.cpp | 2 +- {lib => core}/index.cpp | 2 +- {lib => core}/library.cpp | 4 ++-- {lib => core}/playlist.cpp | 4 ++-- {lib => core}/queue.cpp | 6 +++--- {lib => core}/random.cpp | 2 +- {lib => core}/tags.cpp | 6 +++--- gui/collection.cpp | 6 +++--- gui/collection_mgr.cpp | 4 ++-- gui/gui.cpp | 14 +++++++------- gui/history.cpp | 2 +- gui/main.cpp | 8 ++++---- gui/model.cpp | 2 +- gui/playlist.cpp | 2 +- gui/queue.cpp | 4 ++-- gui/tabs.cpp | 8 ++++---- include/{lib => core}/audio.h | 2 +- include/{lib => core}/callback.h | 4 ++-- include/{lib => core}/database.h | 2 +- include/{lib => core}/database.hpp | 0 include/{lib => core}/deck.h | 2 +- include/{lib => core}/driver.h | 0 include/{lib => core}/error.h | 0 include/{lib => core}/file.h | 0 include/{lib => core}/filter.h | 0 include/{lib => core}/idle.h | 0 include/{lib => core}/idle.hpp | 0 include/{lib => core}/index.h | 2 +- include/{lib => core}/library.h | 4 ++-- include/{lib => core}/playlist.h | 4 ++-- include/{lib => core}/print.h | 0 include/{lib => core}/queue.h | 4 ++-- include/{lib => core}/random.h | 0 include/{lib => core}/tags.h | 2 +- include/{lib => core}/version.h | 0 include/gui/ocarina.h | 2 +- include/gui/tabs.h | 2 +- tests/Sconscript | 2 +- tests/audio.cpp | 6 +++--- tests/database.cpp | 2 +- tests/deck.cpp | 6 +++--- tests/driver.cpp | 2 +- tests/file.cpp | 2 +- tests/filter.cpp | 2 +- tests/idle.cpp | 2 +- tests/index.cpp | 2 +- tests/library.cpp | 4 ++-- tests/playlist.cpp | 4 ++-- tests/queue.cpp | 8 ++++---- tests/random.cpp | 2 +- tests/tags.cpp | 2 +- tests/version.cpp | 2 +- 62 files changed, 95 insertions(+), 94 deletions(-) rename {lib => core}/Sconscript (100%) rename {lib => core}/audio.cpp (96%) rename {lib => core}/callback.cpp (95%) rename {lib => core}/database.cpp (83%) rename {lib => core}/deck.cpp (97%) rename {lib => core}/driver.cpp (99%) rename {lib => core}/file.cpp (97%) rename {lib => core}/filter.cpp (98%) rename {lib => core}/idle.cpp (96%) rename {lib => core}/index.cpp (97%) rename {lib => core}/library.cpp (98%) rename {lib => core}/playlist.cpp (97%) rename {lib => core}/queue.cpp (98%) rename {lib => core}/random.cpp (90%) rename {lib => core}/tags.cpp (99%) rename include/{lib => core}/audio.h (95%) rename include/{lib => core}/callback.h (92%) rename include/{lib => core}/database.h (97%) rename include/{lib => core}/database.hpp (100%) rename include/{lib => core}/deck.h (96%) rename include/{lib => core}/driver.h (100%) rename include/{lib => core}/error.h (100%) rename include/{lib => core}/file.h (100%) rename include/{lib => core}/filter.h (100%) rename include/{lib => core}/idle.h (100%) rename include/{lib => core}/idle.hpp (100%) rename include/{lib => core}/index.h (95%) rename include/{lib => core}/library.h (88%) rename include/{lib => core}/playlist.h (89%) rename include/{lib => core}/print.h (100%) rename include/{lib => core}/queue.h (96%) rename include/{lib => core}/random.h (100%) rename include/{lib => core}/tags.h (98%) rename include/{lib => core}/version.h (100%) diff --git a/.gitignore b/.gitignore index ab606dd9..7463cf65 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,7 @@ share/ocarina/#* bin/ .sconsign.dblite *.patch +tests/*-core tests/*-lib *.gcov *.gcda diff --git a/Sconstruct b/Sconstruct index e9d657e9..4dd9d1b7 100644 --- a/Sconstruct +++ b/Sconstruct @@ -41,7 +41,7 @@ Export("env", "test_env") include = SConscript("include/Sconscript") -lib = SConscript("lib/Sconscript") +core = SConscript("core/Sconscript") gui = SConscript("gui/Sconscript") tests = SConscript("tests/Sconscript") @@ -50,7 +50,7 @@ Clean(tests, Glob("tests/*.gcda")) Clean(tests, Glob("tests/*.gcno")) -ocarina = env.Program("bin/ocarina", lib + gui) +ocarina = env.Program("bin/ocarina", core + gui) Default(ocarina) Clean(ocarina, "bin/") diff --git a/lib/Sconscript b/core/Sconscript similarity index 100% rename from lib/Sconscript rename to core/Sconscript diff --git a/lib/audio.cpp b/core/audio.cpp similarity index 96% rename from lib/audio.cpp rename to core/audio.cpp index 4bd0dccb..e73dd2f6 100644 --- a/lib/audio.cpp +++ b/core/audio.cpp @@ -1,10 +1,10 @@ /* * Copyright 2013 (c) Anna Schumaker. */ -#include -#include -#include -#include +#include +#include +#include +#include #include #include diff --git a/lib/callback.cpp b/core/callback.cpp similarity index 95% rename from lib/callback.cpp rename to core/callback.cpp index 46cb1f7c..16d43e3c 100644 --- a/lib/callback.cpp +++ b/core/callback.cpp @@ -1,7 +1,7 @@ /* * Copyright 2014 (c) Anna Schumaker. */ -#include +#include static void no_op() {} diff --git a/lib/database.cpp b/core/database.cpp similarity index 83% rename from lib/database.cpp rename to core/database.cpp index c9817a8d..0e7c2d17 100644 --- a/lib/database.cpp +++ b/core/database.cpp @@ -1,7 +1,7 @@ /* * Copyright 2013 (c) Anna Schumaker. */ -#include +#include DatabaseEntry :: DatabaseEntry() diff --git a/lib/deck.cpp b/core/deck.cpp similarity index 97% rename from lib/deck.cpp rename to core/deck.cpp index aa35baca..2b6c3b5c 100644 --- a/lib/deck.cpp +++ b/core/deck.cpp @@ -1,10 +1,10 @@ /* * Copyright 2013 (c) Anna Schumaker. */ -#include -#include -#include -#include +#include +#include +#include +#include class RecentQueue : public Queue diff --git a/lib/driver.cpp b/core/driver.cpp similarity index 99% rename from lib/driver.cpp rename to core/driver.cpp index 66963338..258ac6d1 100644 --- a/lib/driver.cpp +++ b/core/driver.cpp @@ -1,7 +1,7 @@ /* * Copyright 2014 (c) Anna Schumaker. */ -#include +#include Driver :: Driver() {} diff --git a/lib/file.cpp b/core/file.cpp similarity index 97% rename from lib/file.cpp rename to core/file.cpp index 21165b13..e790934a 100644 --- a/lib/file.cpp +++ b/core/file.cpp @@ -1,8 +1,8 @@ /* * Copyright 2013 (c) Anna Schumaker. */ -#include -#include +#include +#include #include diff --git a/lib/filter.cpp b/core/filter.cpp similarity index 98% rename from lib/filter.cpp rename to core/filter.cpp index a659d47b..941c797f 100644 --- a/lib/filter.cpp +++ b/core/filter.cpp @@ -2,8 +2,8 @@ * Copyright 2013 (c) Anna Schumaker. */ -#include -#include +#include +#include #include #include diff --git a/lib/idle.cpp b/core/idle.cpp similarity index 96% rename from lib/idle.cpp rename to core/idle.cpp index 2849e97a..899a291e 100644 --- a/lib/idle.cpp +++ b/core/idle.cpp @@ -1,7 +1,7 @@ /* * Copyright 2013 (c) Anna Schumaker. */ -#include +#include #include diff --git a/lib/index.cpp b/core/index.cpp similarity index 97% rename from lib/index.cpp rename to core/index.cpp index 2f55f67e..d1495391 100644 --- a/lib/index.cpp +++ b/core/index.cpp @@ -1,7 +1,7 @@ /* * Copyright 2014 (c) Anna Schumaker. */ -#include +#include IndexEntry :: IndexEntry() {} diff --git a/lib/library.cpp b/core/library.cpp similarity index 98% rename from lib/library.cpp rename to core/library.cpp index b7404d96..1609e65e 100644 --- a/lib/library.cpp +++ b/core/library.cpp @@ -1,8 +1,8 @@ /* * Copyright 2013 (c) Anna Schumaker. */ -#include -#include +#include +#include #include diff --git a/lib/playlist.cpp b/core/playlist.cpp similarity index 97% rename from lib/playlist.cpp rename to core/playlist.cpp index ab02bb7d..c77a4f6e 100644 --- a/lib/playlist.cpp +++ b/core/playlist.cpp @@ -1,8 +1,8 @@ /* * Copyright 2013 (c) Anna Schumaker. */ -#include -#include +#include +#include class PlaylistQueue : public Queue { diff --git a/lib/queue.cpp b/core/queue.cpp similarity index 98% rename from lib/queue.cpp rename to core/queue.cpp index 89c6823e..67a8aeff 100644 --- a/lib/queue.cpp +++ b/core/queue.cpp @@ -1,9 +1,9 @@ /* * Copyright 2013 (c) Anna Schumaker. */ -#include -#include -#include +#include +#include +#include #include #include diff --git a/lib/random.cpp b/core/random.cpp similarity index 90% rename from lib/random.cpp rename to core/random.cpp index 6e515d60..84de4890 100644 --- a/lib/random.cpp +++ b/core/random.cpp @@ -3,7 +3,7 @@ */ #ifdef CONFIG_TEST -#include +#include static unsigned int _random_value = 0; diff --git a/lib/tags.cpp b/core/tags.cpp similarity index 99% rename from lib/tags.cpp rename to core/tags.cpp index 945f85c8..04348c9d 100644 --- a/lib/tags.cpp +++ b/core/tags.cpp @@ -2,9 +2,9 @@ * Copyright 2014 (c) Anna Schumaker. */ -#include -#include -#include +#include +#include +#include #include #include diff --git a/gui/collection.cpp b/gui/collection.cpp index 1501c1ba..801406d3 100644 --- a/gui/collection.cpp +++ b/gui/collection.cpp @@ -1,9 +1,9 @@ /* * Copyright 2014 (c) Anna Schumaker. */ -#include -#include -#include +#include +#include +#include #include diff --git a/gui/collection_mgr.cpp b/gui/collection_mgr.cpp index edc79c97..812fe9df 100644 --- a/gui/collection_mgr.cpp +++ b/gui/collection_mgr.cpp @@ -1,8 +1,8 @@ /* * Copyright 2014 (c) Anna Schumaker. */ -#include -#include +#include +#include #include static void on_library_add(unsigned int id, Library *library); diff --git a/gui/gui.cpp b/gui/gui.cpp index b38ab800..ffd0af07 100644 --- a/gui/gui.cpp +++ b/gui/gui.cpp @@ -1,13 +1,13 @@ /* * Copyright 2014 (c) Anna Schumaker. */ -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include #include #include diff --git a/gui/history.cpp b/gui/history.cpp index 5357d706..6290034f 100644 --- a/gui/history.cpp +++ b/gui/history.cpp @@ -1,7 +1,7 @@ /* * Copyright 2014 (c) Anna Schumaker. */ -#include +#include #include diff --git a/gui/main.cpp b/gui/main.cpp index ba3d6ab4..d858a714 100644 --- a/gui/main.cpp +++ b/gui/main.cpp @@ -1,10 +1,10 @@ /* * Copyright 2014 (c) Anna Schumaker. */ -#include -#include -#include -#include +#include +#include +#include +#include #include #include diff --git a/gui/model.cpp b/gui/model.cpp index 93db7e95..c9cda64d 100644 --- a/gui/model.cpp +++ b/gui/model.cpp @@ -4,7 +4,7 @@ * See the example at: * https://git.gnome.org/browse/gtkmm-documentation/tree/examples/others/treemodelcustom */ -#include +#include #include #include #include diff --git a/gui/playlist.cpp b/gui/playlist.cpp index 6ab27c36..d9982f9f 100644 --- a/gui/playlist.cpp +++ b/gui/playlist.cpp @@ -1,7 +1,7 @@ /* * Copyright 2014 (c) Anna Schumaker. */ -#include +#include #include diff --git a/gui/queue.cpp b/gui/queue.cpp index fb2832b4..29449288 100644 --- a/gui/queue.cpp +++ b/gui/queue.cpp @@ -1,8 +1,8 @@ /* * Copyright 2014 (c) Anna Schumaker. */ -#include -#include +#include +#include #include #include diff --git a/gui/tabs.cpp b/gui/tabs.cpp index eec170a2..65613706 100644 --- a/gui/tabs.cpp +++ b/gui/tabs.cpp @@ -1,10 +1,10 @@ /* * Copyright 2014 (c) Anna Schumaker. */ -#include -#include -#include -#include +#include +#include +#include +#include #include #include diff --git a/include/lib/audio.h b/include/core/audio.h similarity index 95% rename from include/lib/audio.h rename to include/core/audio.h index 5228150b..9ea204e3 100644 --- a/include/lib/audio.h +++ b/include/core/audio.h @@ -4,7 +4,7 @@ #ifndef OCARINA_AUDIO_H #define OCARINA_AUDIO_H -#include +#include #include namespace audio diff --git a/include/lib/callback.h b/include/core/callback.h similarity index 92% rename from include/lib/callback.h rename to include/core/callback.h index 90a0d647..37f709fc 100644 --- a/include/lib/callback.h +++ b/include/core/callback.h @@ -4,8 +4,8 @@ #ifndef OCARINA_CALLBACK_H #define OCARINA_CALLBACK_H -#include -#include +#include +#include struct Callbacks { diff --git a/include/lib/database.h b/include/core/database.h similarity index 97% rename from include/lib/database.h rename to include/core/database.h index 59b1d712..c0953f49 100644 --- a/include/lib/database.h +++ b/include/core/database.h @@ -4,7 +4,7 @@ #ifndef OCARINA_DATABASE_H #define OCARINA_DATABASE_H -#include +#include #include #include diff --git a/include/lib/database.hpp b/include/core/database.hpp similarity index 100% rename from include/lib/database.hpp rename to include/core/database.hpp diff --git a/include/lib/deck.h b/include/core/deck.h similarity index 96% rename from include/lib/deck.h rename to include/core/deck.h index 871bd9d5..b6cca7b9 100644 --- a/include/lib/deck.h +++ b/include/core/deck.h @@ -4,7 +4,7 @@ #ifndef OCARINA_DECK_H #define OCARINA_DECK_H -#include +#include #include diff --git a/include/lib/driver.h b/include/core/driver.h similarity index 100% rename from include/lib/driver.h rename to include/core/driver.h diff --git a/include/lib/error.h b/include/core/error.h similarity index 100% rename from include/lib/error.h rename to include/core/error.h diff --git a/include/lib/file.h b/include/core/file.h similarity index 100% rename from include/lib/file.h rename to include/core/file.h diff --git a/include/lib/filter.h b/include/core/filter.h similarity index 100% rename from include/lib/filter.h rename to include/core/filter.h diff --git a/include/lib/idle.h b/include/core/idle.h similarity index 100% rename from include/lib/idle.h rename to include/core/idle.h diff --git a/include/lib/idle.hpp b/include/core/idle.hpp similarity index 100% rename from include/lib/idle.hpp rename to include/core/idle.hpp diff --git a/include/lib/index.h b/include/core/index.h similarity index 95% rename from include/lib/index.h rename to include/core/index.h index b3e65bbf..34cf83fc 100644 --- a/include/lib/index.h +++ b/include/core/index.h @@ -4,7 +4,7 @@ #ifndef OCARINA_INDEX_H #define OCARINA_INDEX_H -#include +#include #include #include diff --git a/include/lib/library.h b/include/core/library.h similarity index 88% rename from include/lib/library.h rename to include/core/library.h index a68be4df..78713525 100644 --- a/include/lib/library.h +++ b/include/core/library.h @@ -4,8 +4,8 @@ #ifndef OCARINA_LIBRARY_H #define OCARINA_LIBRARY_H -#include -#include +#include +#include #include namespace library diff --git a/include/lib/playlist.h b/include/core/playlist.h similarity index 89% rename from include/lib/playlist.h rename to include/core/playlist.h index 746ed59c..34e36d28 100644 --- a/include/lib/playlist.h +++ b/include/core/playlist.h @@ -4,8 +4,8 @@ #ifndef OCARINA_PLAYLIST_H #define OCARINA_PLAYLIST_H -#include -#include +#include +#include #include diff --git a/include/lib/print.h b/include/core/print.h similarity index 100% rename from include/lib/print.h rename to include/core/print.h diff --git a/include/lib/queue.h b/include/core/queue.h similarity index 96% rename from include/lib/queue.h rename to include/core/queue.h index 18f65d34..d1c2807a 100644 --- a/include/lib/queue.h +++ b/include/core/queue.h @@ -4,8 +4,8 @@ #ifndef OCARINA_QUEUE_H #define OCARINA_QUEUE_H -#include -#include +#include +#include #include #include diff --git a/include/lib/random.h b/include/core/random.h similarity index 100% rename from include/lib/random.h rename to include/core/random.h diff --git a/include/lib/tags.h b/include/core/tags.h similarity index 98% rename from include/lib/tags.h rename to include/core/tags.h index 9d4b9e3f..4f7d5137 100644 --- a/include/lib/tags.h +++ b/include/core/tags.h @@ -4,7 +4,7 @@ #ifndef OCARINA_TAGS_H #define OCARINA_TAGS_H -#include +#include enum sort_t { diff --git a/include/lib/version.h b/include/core/version.h similarity index 100% rename from include/lib/version.h rename to include/core/version.h diff --git a/include/gui/ocarina.h b/include/gui/ocarina.h index c0327dfe..2191213d 100644 --- a/include/gui/ocarina.h +++ b/include/gui/ocarina.h @@ -4,7 +4,7 @@ #ifndef OCARINA_H #define OCARINA_H -#include +#include #include diff --git a/include/gui/tabs.h b/include/gui/tabs.h index 7fe1201a..6ba20c44 100644 --- a/include/gui/tabs.h +++ b/include/gui/tabs.h @@ -5,7 +5,7 @@ #define OCARINA_TABS_H #include -#include +#include #include class Tab { diff --git a/tests/Sconscript b/tests/Sconscript index 90814b58..26d5c6a8 100644 --- a/tests/Sconscript +++ b/tests/Sconscript @@ -41,7 +41,7 @@ for arg in sys.argv: def expand_files(extra_files): res = [] for f in extra_files: - res += [ env.Object("%s-lib" % f, "../lib/%s" % f) ] + res += [ env.Object("%s-core" % f, "../core/%s" % f) ] return res def make_program(src, name, extra_files): diff --git a/tests/audio.cpp b/tests/audio.cpp index 5679b1bc..efda10a5 100644 --- a/tests/audio.cpp +++ b/tests/audio.cpp @@ -1,9 +1,9 @@ /* * Copyright 2013 (c) Anna Schumaker. */ -#include -#include -#include +#include +#include +#include #include "test.h" Track *TRACK_NULL = NULL; diff --git a/tests/database.cpp b/tests/database.cpp index 310d8187..b8ced050 100644 --- a/tests/database.cpp +++ b/tests/database.cpp @@ -3,7 +3,7 @@ * Test a Database */ -#include +#include #include "test.h" #include diff --git a/tests/deck.cpp b/tests/deck.cpp index 139fdf29..0dd579a5 100644 --- a/tests/deck.cpp +++ b/tests/deck.cpp @@ -1,9 +1,9 @@ /* * Copyright 2013 (c) Anna Schumaker. */ -#include -#include -#include +#include +#include +#include #include "test.h" static Queue *Q_NULL = NULL; diff --git a/tests/driver.cpp b/tests/driver.cpp index 130da86f..8eba2d89 100644 --- a/tests/driver.cpp +++ b/tests/driver.cpp @@ -1,7 +1,7 @@ /* * Copyright 2014 (c) Anna Schumaker. */ -#include +#include #include "test.h" static TestDriver *DRIVER_NULL = NULL; diff --git a/tests/file.cpp b/tests/file.cpp index 8f0bcaf4..fb2f0e25 100644 --- a/tests/file.cpp +++ b/tests/file.cpp @@ -1,7 +1,7 @@ /* * Copyright 2014 (c) Anna Schumaker. */ -#include +#include #include "test.h" diff --git a/tests/filter.cpp b/tests/filter.cpp index b24865dc..88c02737 100644 --- a/tests/filter.cpp +++ b/tests/filter.cpp @@ -3,7 +3,7 @@ * Test the filtering code */ -#include +#include #include "test.h" static void do_test_lowercase(const std::string &text, const std::string &lc) diff --git a/tests/idle.cpp b/tests/idle.cpp index 69aac7b1..489cc8af 100644 --- a/tests/idle.cpp +++ b/tests/idle.cpp @@ -3,7 +3,7 @@ * Test the idle queue */ -#include +#include #include "test.h" #include diff --git a/tests/index.cpp b/tests/index.cpp index 891aead0..dfc9fc2a 100644 --- a/tests/index.cpp +++ b/tests/index.cpp @@ -3,7 +3,7 @@ * Test a Database */ -#include +#include #include "test.h" #include diff --git a/tests/library.cpp b/tests/library.cpp index 044e0aa0..75ce55f2 100644 --- a/tests/library.cpp +++ b/tests/library.cpp @@ -1,8 +1,8 @@ /* * Copyright 2013 (c) Anna Schumaker. */ -#include -#include +#include +#include #include "test.h" static Queue *Q_NULL = NULL; diff --git a/tests/playlist.cpp b/tests/playlist.cpp index 6d354563..1308cd9b 100644 --- a/tests/playlist.cpp +++ b/tests/playlist.cpp @@ -1,8 +1,8 @@ /* * Copyright 2013 (c) Anna Schumaker. */ -#include -#include +#include +#include #include "test.h" static IndexEntry *IDX_NULL = NULL; diff --git a/tests/queue.cpp b/tests/queue.cpp index ba96e97f..7bcfe8ca 100644 --- a/tests/queue.cpp +++ b/tests/queue.cpp @@ -1,10 +1,10 @@ /* * Copyright 2014 (c) Anna Schumaker. */ -#include -#include -#include -#include +#include +#include +#include +#include #include "test.h" diff --git a/tests/random.cpp b/tests/random.cpp index c2eb1215..45a161fd 100644 --- a/tests/random.cpp +++ b/tests/random.cpp @@ -2,7 +2,7 @@ * Copyright 2014 (c) Anna Schumaker. */ -#include +#include #include "test.h" #include diff --git a/tests/tags.cpp b/tests/tags.cpp index 9493a16b..efd307bd 100644 --- a/tests/tags.cpp +++ b/tests/tags.cpp @@ -3,7 +3,7 @@ * Test a DatabaseEntry */ -#include +#include #include "test.h" static Library *LIB_NULL = NULL; diff --git a/tests/version.cpp b/tests/version.cpp index 1cefb1d7..8c31017a 100644 --- a/tests/version.cpp +++ b/tests/version.cpp @@ -1,7 +1,7 @@ /* * Copyright 2013 (c) Anna Schumaker. */ -#include +#include #include "test.h" #ifdef CONFIG_DEBUG From 12c6f18540ed1038d47c65215a79b8bdae607d56 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Thu, 5 Jun 2014 10:35:00 -0400 Subject: [PATCH 84/93] Remove old deck test This should have been removed a long time ago ... Signed-off-by: Anna Schumaker --- tests/deck.old/Sconscript | 6 -- tests/deck.old/deck.good | 133 -------------------------------------- 2 files changed, 139 deletions(-) delete mode 100644 tests/deck.old/Sconscript delete mode 100644 tests/deck.old/deck.good diff --git a/tests/deck.old/Sconscript b/tests/deck.old/Sconscript deleted file mode 100644 index 08935ea3..00000000 --- a/tests/deck.old/Sconscript +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/python -Import("Test", "CONFIG") - -CONFIG.DECK = True - -Test("deck", "deck.cpp") diff --git a/tests/deck.old/deck.good b/tests/deck.old/deck.good deleted file mode 100644 index 9a346727..00000000 --- a/tests/deck.old/deck.good +++ /dev/null @@ -1,133 +0,0 @@ -Library size: 150 -Test 0: -deck[0] = Playqueue { size = 10, flags = 1 } -deck[1] = Playqueue { size = 11, flags = 1 } -deck[2] = Playqueue { size = 12, flags = 1 } -deck[3] = Playqueue { size = 13, flags = 1 } -deck[4] = Playqueue { size = 14, flags = 1 } -deck[5] = Playqueue { size = 15, flags = 1 } -deck[6] = Playqueue { size = 16, flags = 1 } -deck[7] = Playqueue { size = 17, flags = 1 } -deck[8] = Playqueue { size = 18, flags = 1 } -deck[9] = Playqueue { size = 19, flags = 1 } - -Test 1: -deck[0] = Playqueue { size = 10, flags = 1 } -deck[1] = Playqueue { size = 12, flags = 1 } -deck[2] = Playqueue { size = 14, flags = 1 } -deck[3] = Playqueue { size = 15, flags = 1 } -deck[4] = Playqueue { size = 16, flags = 1 } -deck[5] = Playqueue { size = 19, flags = 1 } - -Test 2: Playqueue { size = 15, flags = 1 } - -Test 3: -deck[0] = Playqueue { size = 16, flags = 1 } -deck[1] = Playqueue { size = 10, flags = 1 } -deck[2] = Playqueue { size = 12, flags = 1 } -deck[3] = Playqueue { size = 14, flags = 1 } -deck[4] = Playqueue { size = 15, flags = 1 } -deck[5] = Playqueue { size = 19, flags = 1 } - -deck[0] = Playqueue { size = 16, flags = 1 } -deck[1] = Playqueue { size = 19, flags = 1 } -deck[2] = Playqueue { size = 10, flags = 1 } -deck[3] = Playqueue { size = 12, flags = 1 } -deck[4] = Playqueue { size = 14, flags = 1 } -deck[5] = Playqueue { size = 15, flags = 1 } - -deck[0] = Playqueue { size = 16, flags = 1 } -deck[1] = Playqueue { size = 19, flags = 1 } -deck[2] = Playqueue { size = 12, flags = 1 } -deck[3] = Playqueue { size = 14, flags = 1 } -deck[4] = Playqueue { size = 15, flags = 1 } -deck[5] = Playqueue { size = 10, flags = 1 } - -deck[0] = Playqueue { size = 16, flags = 1 } -deck[1] = Playqueue { size = 19, flags = 1 } -deck[2] = Playqueue { size = 12, flags = 1 } -deck[3] = Playqueue { size = 15, flags = 1 } -deck[4] = Playqueue { size = 14, flags = 1 } -deck[5] = Playqueue { size = 10, flags = 1 } - -deck[0] = Playqueue { size = 16, flags = 1 } -deck[1] = Playqueue { size = 19, flags = 1 } -deck[2] = Playqueue { size = 12, flags = 1 } -deck[3] = Playqueue { size = 14, flags = 1 } -deck[4] = Playqueue { size = 15, flags = 1 } -deck[5] = Playqueue { size = 10, flags = 1 } - -deck[0] = Playqueue { size = 16, flags = 1 } -deck[1] = Playqueue { size = 19, flags = 1 } -deck[2] = Playqueue { size = 12, flags = 1 } -deck[3] = Playqueue { size = 14, flags = 1 } -deck[4] = Playqueue { size = 15, flags = 1 } -deck[5] = Playqueue { size = 10, flags = 1 } - -Test 4: -Playing id: 0 -Playing id: 1 -Playing id: 2 -Playing id: 3 -Playing id: 4 -Playing id: 5 -Playing id: 6 -Playing id: 7 -Playing id: 8 -Playing id: 9 -Playing id: 10 -Playing id: 11 -deck[0] = Playqueue { size = 16, flags = 0 } -deck[1] = Playqueue { size = 19, flags = 0 } -deck[2] = Playqueue { size = 14, flags = 1 } -deck[3] = Playqueue { size = 15, flags = 0 } -deck[4] = Playqueue { size = 10, flags = 1 } -Playing id: 0 -Playing id: 1 -Playing id: 2 -Playing id: 3 -Playing id: 4 -Playing id: 5 -Playing id: 6 -Playing id: 7 -Playing id: 8 -Playing id: 9 -Playing id: 10 -Playing id: 11 -Playing id: 12 -Playing id: 13 -deck[0] = Playqueue { size = 16, flags = 0 } -deck[1] = Playqueue { size = 19, flags = 0 } -deck[2] = Playqueue { size = 15, flags = 0 } -deck[3] = Playqueue { size = 10, flags = 1 } -Playing id: 0 -Playing id: 1 -Playing id: 2 -Playing id: 3 -Playing id: 4 -Playing id: 5 -Playing id: 6 -Playing id: 7 -Playing id: 8 -Playing id: 9 -Playing id: 149 -Playing id: 148 -Playing id: 147 -Playing id: 146 -deck[0] = Playqueue { size = 16, flags = 0 } -deck[1] = Playqueue { size = 19, flags = 0 } -deck[2] = Playqueue { size = 15, flags = 0 } - -Test 5: -Saving playqueue deck -Clearing deck -Reading back playqueue deck -deck[0] = Playqueue { size = 16, flags = 0 } -deck[1] = Playqueue { size = 19, flags = 1 } -deck[2] = Playqueue { size = 15, flags = 3 } -Disabling library path -Library size: 0 -Enabling library path -Library size: 150 -Deleting library path -Library size: 0 From eb777c04f18635867cfa148ac114ed61833dce78 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Thu, 5 Jun 2014 10:42:17 -0400 Subject: [PATCH 85/93] Add missing deck file for tests The .gitignore was set up to ignore this, so it was never included. Oops. Signed-off-by: Anna Schumaker --- tests/Data/deck | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 tests/Data/deck diff --git a/tests/Data/deck b/tests/Data/deck new file mode 100644 index 00000000..0449cb69 --- /dev/null +++ b/tests/Data/deck @@ -0,0 +1,4 @@ +0 +2 3 0 1 8 1 7 1 2 +1 4 0 1 2 3 +1 5 4 5 6 7 8 From 9e3399b619edae15818c64917688484362395003 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Thu, 5 Jun 2014 11:04:55 -0400 Subject: [PATCH 86/93] deck: Reintroduce deck :: get() This function turned out to be really useful for the gui. Signed-off-by: Anna Schumaker --- DESIGN | 4 ++++ core/deck.cpp | 12 ++++++++++++ include/core/deck.h | 2 ++ tests/deck.cpp | 4 ++++ 4 files changed, 22 insertions(+) diff --git a/DESIGN b/DESIGN index 5b1fb7f1..2aba3337 100644 --- a/DESIGN +++ b/DESIGN @@ -1273,6 +1273,10 @@ Deck: Return the index of the queue in the deck or deck.size() if the queue is not currently in the deck. + Queue *deck :: get(unsigned int index); + Return the queue at the requested index, or NULL if no queue + is found. + Track *deck :: next(); Find the first enabled queue on the deck and return the track given by queue->next(). diff --git a/core/deck.cpp b/core/deck.cpp index 2b6c3b5c..013845f5 100644 --- a/core/deck.cpp +++ b/core/deck.cpp @@ -187,6 +187,18 @@ unsigned int deck :: index(Queue *queue) return queue_deck.size(); } +Queue *deck :: get(unsigned int index) +{ + std::list::iterator it; + + for (it = queue_deck.begin(); it != queue_deck.end(); it++) { + if (index == 0) + return &(*it); + index--; + } + return NULL; +} + Track *deck :: next() { Track *track = NULL; diff --git a/include/core/deck.h b/include/core/deck.h index b6cca7b9..a4775d7e 100644 --- a/include/core/deck.h +++ b/include/core/deck.h @@ -33,7 +33,9 @@ namespace deck Queue *create(bool); void destroy(Queue *); void move(Queue *, unsigned int); + unsigned int index(Queue *); + Queue *get(unsigned int); Track *next(); Track *prev(); diff --git a/tests/deck.cpp b/tests/deck.cpp index 0dd579a5..339f1d46 100644 --- a/tests/deck.cpp +++ b/tests/deck.cpp @@ -74,12 +74,14 @@ static void test_create_mv_destroy() test_equal(q1->has_flag(Q_ENABLED), true); test_equal(q1->has_flag(Q_RANDOM), true); test_equal(deck :: index(q1), (unsigned)2); + test_equal(deck :: get(2), q1); q2 = deck :: create(false); test_not_equal(q2, Q_NULL); test_equal(q2->has_flag(Q_ENABLED), true); test_equal(q2->has_flag(Q_RANDOM), false); test_equal(deck :: index(q2), (unsigned)3); + test_equal(deck :: get(3), q2); deck :: move(q1, 3); test_equal(deck :: index(q1), (unsigned)3); @@ -98,6 +100,8 @@ static void test_create_mv_destroy() deck :: destroy(q2); test_equal(n, (unsigned)2); test_equal(deck :: index(q2), (unsigned)2); + + test_equal(deck :: get(3), Q_NULL); } static void test_next_prev() From 43c8130eccba95c979a72b49b3aff7532600188b Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Thu, 5 Jun 2014 11:05:27 -0400 Subject: [PATCH 87/93] gui: Fix adding tracks to an existing queue Signed-off-by: Anna Schumaker --- gui/tabs.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/gui/tabs.cpp b/gui/tabs.cpp index 65613706..e47b503e 100644 --- a/gui/tabs.cpp +++ b/gui/tabs.cpp @@ -180,8 +180,8 @@ bool Tab :: tab_add_to_queue(unsigned int n) if (n >= deck :: get_queues().size()) return true; - //Queue *pq = deck :: get(n); - //tab_queue_add(pq); + Queue *pq = deck :: get(n); + tab_queue_add(pq); return true; } @@ -521,13 +521,14 @@ void post_init_tabs() for (it = queue_mapping.begin(); it != queue_mapping.end(); it++) it->second->on_post_init(); - unsigned int tab = 0; - //for (tab = 0; tab < deck::get_queues().size(); tab++) { - // if ((deck :: get(tab)->has_flag(Q_ENABLED))) - // break; - //} - get_widget("o_notebook")->set_current_page(tab); post_init_queue_tabs(); + + unsigned int tab = 0; + for (tab = 0; tab < deck::get_queues().size(); tab++) { + if ((deck :: get(tab)->has_flag(Q_ENABLED))) + break; + } + get_widget("o_notebook")->set_current_page(tab); } void cleanup_tabs() From 00ff9cd08fdb7e9b330188658f5b4c1dd488f1bf Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Fri, 6 Jun 2014 08:20:15 -0400 Subject: [PATCH 88/93] playlist: Fix a null pointer dereference in init() This happens if we try to use the Banned playlist before it exists in the database. Signed-off-by: Anna Schumaker --- core/playlist.cpp | 3 +++ tests/deck.cpp | 2 ++ tests/playlist.cpp | 6 +++++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/core/playlist.cpp b/core/playlist.cpp index c77a4f6e..06629d74 100644 --- a/core/playlist.cpp +++ b/core/playlist.cpp @@ -42,6 +42,9 @@ void playlist :: init() playlist_db.load(); IndexEntry *ent = get_tracks("Banned"); + if (!ent) + return; + for (it = ent->values.begin(); it != ent->values.end(); it++) library :: get_queue()->del(tagdb :: lookup(*it)); } diff --git a/tests/deck.cpp b/tests/deck.cpp index 339f1d46..f1f8939d 100644 --- a/tests/deck.cpp +++ b/tests/deck.cpp @@ -153,6 +153,8 @@ static void test_next_prev() int main(int argc, char **argv) { + test :: rm_data_dir(); + run_test("Deck Init Test", test_init); run_test("Deck Create, Move and Destroy Test", test_create_mv_destroy); run_test("Deck Next and Prev Test", test_next_prev); diff --git a/tests/playlist.cpp b/tests/playlist.cpp index 1308cd9b..7c141071 100644 --- a/tests/playlist.cpp +++ b/tests/playlist.cpp @@ -18,6 +18,10 @@ static void test_init() test_equal(q->has_flag(Q_REPEAT), true); test_equal(q->has_flag(Q_NO_SORT), true); + /* init should work even if playlist.db doesn't exist! */ + playlist :: init(); + + test :: cp_data_dir(); tagdb :: init(); library :: init(); playlist :: init(); @@ -110,7 +114,7 @@ static void test_has() int main(int argc, char **argv) { - test :: cp_data_dir(); + test :: rm_data_dir(); run_test("Playlist Initialization Test", test_init); run_test("Playlist Queue Test", test_queue); From ec2bd92befe8c5aaf7b6e7ff6e990103776b3580 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Fri, 6 Jun 2014 09:19:41 -0400 Subject: [PATCH 89/93] gui: collection manager fixes - Fill out the list of library paths - Update size during scan Signed-off-by: Anna Schumaker --- gui/collection_mgr.cpp | 28 ++++++++++++++++++++++------ gui/gui.cpp | 2 ++ gui/main.cpp | 1 + include/gui/ocarina.h | 2 ++ 4 files changed, 27 insertions(+), 6 deletions(-) diff --git a/gui/collection_mgr.cpp b/gui/collection_mgr.cpp index 812fe9df..6cafc087 100644 --- a/gui/collection_mgr.cpp +++ b/gui/collection_mgr.cpp @@ -104,7 +104,7 @@ static void on_library_add(unsigned int id, Library *library) row[collection_cols.c_col_path] = library->root_path; } -/*static void on_library_update(unsigned int id, Library *library) +static void on_library_update(unsigned int id, Library *library) { Gtk::TreeModel::Row row; Glib::RefPtr list = get_collection_list(); @@ -116,20 +116,16 @@ static void on_library_add(unsigned int id, Library *library) if (row[collection_cols.c_col_id] == id) row[collection_cols.c_col_size] = library->count; } -}*/ +} void collection_mgr_init() { - //struct Callbacks *cb = get_callbacks(); - Gtk::TreeView *treeview = get_widget("o_collection_treeview"); Glib::RefPtr list = get_collection_list(); Glib::RefPtr toggle; toggle = get_object("o_collection_toggle"); - //cb->on_library_update = on_library_update; - connect_button("o_collection_ok", on_collection_ok); connect_button("o_collection_update", on_collection_update); @@ -138,3 +134,23 @@ void collection_mgr_init() treeview->signal_key_press_event().connect(sigc::ptr_fun(on_collection_key_pressed)); toggle->signal_toggled().connect(sigc::ptr_fun(on_collection_toggled)); } + +void collection_mgr_init2() +{ + Database *db; + Database::iterator it; + + db = &tagdb :: get_library_db(); + for (it = db->begin(); it != db->end(); it = db->next(it)) + on_library_add((*it)->id, *it); +} + +void collection_mgr_update() +{ + Database *db; + Database::iterator it; + + db = &tagdb :: get_library_db(); + for (it = db->begin(); it != db->end(); it = db->next(it)) + on_library_update((*it)->id, *it); +} diff --git a/gui/gui.cpp b/gui/gui.cpp index ffd0af07..a9c54d99 100644 --- a/gui/gui.cpp +++ b/gui/gui.cpp @@ -194,6 +194,8 @@ bool on_idle() prog->show(); prog->set_fraction(idle::get_progress()); } + + collection_mgr_update(); return ret; } diff --git a/gui/main.cpp b/gui/main.cpp index d858a714..70d9b3fd 100644 --- a/gui/main.cpp +++ b/gui/main.cpp @@ -37,6 +37,7 @@ Gtk::Window *ocarina_init(int *argc, char ***argv) playlist :: select("Favorites"); share_file("ocarina6.glade"); post_init_tabs(); + collection_mgr_init2(); return window; } diff --git a/include/gui/ocarina.h b/include/gui/ocarina.h index 2191213d..8458f967 100644 --- a/include/gui/ocarina.h +++ b/include/gui/ocarina.h @@ -10,6 +10,8 @@ /* collection_mgr.cpp */ void collection_mgr_init(); +void collection_mgr_init2(); +void collection_mgr_update(); /* main.cpp */ From bd11a320e3553d726d58300c828a0c1e40ed40a8 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Fri, 6 Jun 2014 09:20:59 -0400 Subject: [PATCH 90/93] tags: Correctly find the next iterator location We need to use Database::next() rather than it++ to skip over deleted tracks. Signed-off-by: Anna Schumaker --- core/tags.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/tags.cpp b/core/tags.cpp index 04348c9d..b6a0357a 100644 --- a/core/tags.cpp +++ b/core/tags.cpp @@ -384,7 +384,7 @@ void tagdb :: remove_track(unsigned int track_id) void tagdb :: remove_library(unsigned int library_id) { Database::iterator it; - for (it = track_db.begin(); it != track_db.end(); it++) { + for (it = track_db.begin(); it != track_db.end(); it = track_db.next(it)) { if ((*it)->library->id == library_id) track_db.remove((*it)->id); } From 70254e7aa1262b60c2de6e2dccf092b69712c83e Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Fri, 6 Jun 2014 09:40:01 -0400 Subject: [PATCH 91/93] Remove error.h It's not used by anything anymore. Signed-off-by: Anna Schumaker --- DESIGN | 13 ------------- core/file.cpp | 2 -- include/core/error.h | 13 ------------- 3 files changed, 28 deletions(-) delete mode 100644 include/core/error.h diff --git a/DESIGN b/DESIGN index 2aba3337..b503a520 100644 --- a/DESIGN +++ b/DESIGN @@ -33,19 +33,6 @@ API: -Errors: - This file contains an enum defining error codes used throughout the - codebase. Errors will be reported using "throw" and "catch". - -Error Codes: - enum error_t { - E_AUDIO = 1, /* Audio error */ - E_EXIST, /* Requested object does not exist */ - E_INVAL, /* Invalid operation requested */ - }; - - - Printing: Sometimes text needs to be printed to the screen so users (or debuggers) can trace what is going on. diff --git a/core/file.cpp b/core/file.cpp index e790934a..53bd4ab3 100644 --- a/core/file.cpp +++ b/core/file.cpp @@ -1,9 +1,7 @@ /* * Copyright 2013 (c) Anna Schumaker. */ -#include #include - #include #ifdef CONFIG_TEST diff --git a/include/core/error.h b/include/core/error.h deleted file mode 100644 index 0190812d..00000000 --- a/include/core/error.h +++ /dev/null @@ -1,13 +0,0 @@ -/* - * Copyright 2013 (c) Anna Schumaker. - */ -#ifndef OCARINA_ERROR_H -#define OCARINA_ERROR_H - -enum o_error { - E_AUDIO = 1, /* Audio error */ - E_EXIST, /* Requested object does not exist */ - E_INVAL, /* Invalid operation requested */ -}; - -#endif /* OCARINA_ERROR_H */ From 5bfdc31204b6314a95c145a0a4f91e3913c117fd Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Fri, 6 Jun 2014 09:56:40 -0400 Subject: [PATCH 92/93] TODO: Remove completed items Signed-off-by: Anna Schumaker --- TODO | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/TODO b/TODO index 98219f24..a2943e1f 100644 --- a/TODO +++ b/TODO @@ -61,8 +61,8 @@ Future work: the library? Perhaps create a mirror group? - Extra testing ideas: - - Double check that all inputs and outputs are tested - Test callbacks + - Create a default main() that deletes data directory - Preferences: - Set default sort @@ -83,12 +83,7 @@ Future work: - Playqueue and database inherit from common class - "About" dialog - Investigate "Bulk insert" callbacks for performance - - Initialize PQs with multiple flags - Use "friend" class for valid and id flags of a DatabaseEntry - - New tag layer - - Functions to tag individual files - - Functions to read multiple tags from a single text file when - CONFIG_TEST == true - Doxygen support for documentation? - Jenkins - Run tests From 5df79d3c081c6a8a0a9975433c54a4d14c90afe0 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Fri, 6 Jun 2014 14:46:06 -0400 Subject: [PATCH 93/93] callbacks: Remove unused queue callback I now mimic the effects of the "changed" callback with inheritance. This makes for a cleaner implementation. Signed-off-by: Anna Schumaker --- core/callback.cpp | 1 - core/queue.cpp | 5 ----- include/core/callback.h | 1 - include/core/queue.h | 3 +-- 4 files changed, 1 insertion(+), 9 deletions(-) diff --git a/core/callback.cpp b/core/callback.cpp index 16d43e3c..dca3094e 100644 --- a/core/callback.cpp +++ b/core/callback.cpp @@ -22,7 +22,6 @@ static struct Callbacks callbacks = { .on_queue_track_add = no_op, .on_queue_track_del = no_op, .on_queue_track_changed = no_op, - .on_queue_changed = no_op, }; diff --git a/core/queue.cpp b/core/queue.cpp index 67a8aeff..cd3bfe68 100644 --- a/core/queue.cpp +++ b/core/queue.cpp @@ -109,8 +109,6 @@ unsigned int Queue :: _add_at(Track *track, unsigned int pos) _tracks.insert(_tracks.begin() + pos, track); _length += track->length; get_callbacks()->on_queue_track_add(this, pos); - if (!(_flags & Q_DISABLE_CHANGED_SIZE)) - get_callbacks()->on_queue_changed(); return pos; } @@ -119,8 +117,6 @@ void Queue :: _del_at(Track *track, unsigned int pos) _tracks.erase(_tracks.begin() + pos); _length -= track->length; get_callbacks()->on_queue_track_del(this, pos); - if (!(_flags & Q_DISABLE_CHANGED_SIZE)) - get_callbacks()->on_queue_changed(); } unsigned int Queue :: add(Track *track) @@ -244,7 +240,6 @@ void Queue :: sort(sort_t field, bool reset) for (unsigned int i = 0; i < _tracks.size(); i++) get_callbacks()->on_queue_track_changed(this, i); - get_callbacks()->on_queue_changed(); } Track *Queue :: operator[](unsigned int i) diff --git a/include/core/callback.h b/include/core/callback.h index 37f709fc..55aa03fb 100644 --- a/include/core/callback.h +++ b/include/core/callback.h @@ -22,7 +22,6 @@ struct Callbacks { void (*on_queue_track_add)(Queue *, unsigned int); void (*on_queue_track_del)(Queue *, unsigned int); void (*on_queue_track_changed)(Queue *, unsigned int); - void (*on_queue_changed)(); }; diff --git a/include/core/queue.h b/include/core/queue.h index d1c2807a..4fda3f9f 100644 --- a/include/core/queue.h +++ b/include/core/queue.h @@ -15,10 +15,9 @@ enum queue_flags { Q_RANDOM = (1 << 1), Q_REPEAT = (1 << 2), Q_NO_SORT = (1 << 3), - Q_DISABLE_CHANGED_SIZE = (1 << 31), }; -static const unsigned int Q_FLAG_MASK = Q_ENABLED | Q_RANDOM | Q_REPEAT | Q_NO_SORT | Q_DISABLE_CHANGED_SIZE; +static const unsigned int Q_FLAG_MASK = Q_ENABLED | Q_RANDOM | Q_REPEAT | Q_NO_SORT; struct sort_info { sort_t field;