From e02566fc85288381384637712a080bfff6153c5d Mon Sep 17 00:00:00 2001 From: dpopleton Date: Mon, 24 Oct 2022 12:41:56 +0100 Subject: [PATCH 01/11] Changed _session to use session_scope() --- .python-version | 1 - src/ensembl/production/metadata/api.py | 182 +++++++++++++------------ tests/test_api.py | 26 ++-- 3 files changed, 105 insertions(+), 104 deletions(-) delete mode 100644 .python-version diff --git a/.python-version b/.python-version deleted file mode 100644 index db0033b7..00000000 --- a/.python-version +++ /dev/null @@ -1 +0,0 @@ -ensembl_metadata_api diff --git a/src/ensembl/production/metadata/api.py b/src/ensembl/production/metadata/api.py index 1598d8a3..f85a7897 100644 --- a/src/ensembl/production/metadata/api.py +++ b/src/ensembl/production/metadata/api.py @@ -18,11 +18,12 @@ from ensembl.production.metadata.models import * -#Database ORM connection. +# Database ORM connection. class load_database(DBConnection): """ Load a database and directly create a session for ORM interaction with the database """ + def create_session(self, engine): self._session = Session(engine, future=True) @@ -30,13 +31,13 @@ def __init__(self, url): super().__init__(url) self.create_session(self._engine) - #Commit any changes to the database and create a new session instance. + # Commit any changes to the database and create a new session instance. def commit(self): self._session.commit() self._session.close() self.create_session(self._engine) - #rollback any changes made before commiting the session instance. + # rollback any changes made before committing the session instance. def rollback(self): self._session.rollback() @@ -51,57 +52,57 @@ class BaseAdaptor: def __init__(self, metadata_uri=None): if metadata_uri is None: metadata_uri = get_metadata_uri() - self.metadata_db = load_database(metadata_uri) + self.metadata_db = DBConnection(metadata_uri) class ReleaseAdaptor(BaseAdaptor): def fetch_releases( - self, - release_id=None, - release_version=None, - current_only=True, - release_type=None, - site_name=None, + self, + release_id=None, + release_version=None, + current_only=True, + release_type=None, + site_name=None, ): release_id = check_parameter(release_id) release_version = check_parameter(release_version) release_type = check_parameter(release_type) site_name = check_parameter(site_name) - release_select = db.select( - EnsemblRelease,EnsemblSite + EnsemblRelease, EnsemblSite ).join(EnsemblRelease.ensembl_site) - #WHERE ensembl_release.release_id = :release_id_1 + # WHERE ensembl_release.release_id = :release_id_1 if release_id is not None: release_select = release_select.filter( EnsemblRelease.release_id.in_(release_id) ) - #WHERE ensembl_release.version = :version_1 + # WHERE ensembl_release.version = :version_1 elif release_version is not None: release_select = release_select.filter( EnsemblRelease.version.in_(release_version) ) - #WHERE ensembl_release.is_current =:is_current_1 + # WHERE ensembl_release.is_current =:is_current_1 elif current_only: release_select = release_select.filter( EnsemblRelease.is_current == 1 ) - #WHERE ensembl_release.release_type = :release_type_1 + # WHERE ensembl_release.release_type = :release_type_1 if release_type is not None: release_select = release_select.filter( EnsemblRelease.release_type.in_(release_type) ) - #WHERE ensembl_site.name = :name_1 + # WHERE ensembl_site.name = :name_1 if site_name is not None: release_select = release_select.filter( EnsemblSite.name.in_(site_name) ) - return self.metadata_db._session.execute(release_select) - + with self.metadata_db.session_scope() as session: + session.expire_on_commit = False + return session.execute(release_select).all() def fetch_releases_for_genome(self, genome_uuid, site_name=None): @@ -118,10 +119,11 @@ def fetch_releases_for_genome(self, genome_uuid, site_name=None): ) release_ids = [] - release_objects = self.metadata_db._session.execute(release_id_select) - for rid in release_objects: - release_ids.append(rid[0]) - release_ids = list(dict.fromkeys(release_ids)) + with self.metadata_db.session_scope() as session: + release_objects = session.execute(release_id_select).all() + for rid in release_objects: + release_ids.append(rid[0]) + release_ids = list(dict.fromkeys(release_ids)) return self.fetch_releases(release_id=release_ids, site_name=site_name) def fetch_releases_for_dataset(self, dataset_uuid, site_name=None): @@ -139,14 +141,16 @@ def fetch_releases_for_dataset(self, dataset_uuid, site_name=None): ) release_ids = [] - release_objects = self.metadata_db._session.execute(release_id_select) - for rid in release_objects: - release_ids.append(rid[0]) - release_ids = list(dict.fromkeys(release_ids)) - + with self.metadata_db.session_scope() as session: + release_objects = session.execute(release_id_select).all() + for rid in release_objects: + release_ids.append(rid[0]) + release_ids = list(dict.fromkeys(release_ids)) return self.fetch_releases(release_id=release_ids, site_name=site_name) + + class GenomeAdaptor(BaseAdaptor): taxon_names = {} @@ -154,9 +158,8 @@ def __init__(self, metadata_uri=None, taxonomy_uri=None): super().__init__(metadata_uri) if taxonomy_uri is None: - taxonomy_uri = config.TAXONOMY_URI + taxonomy_uri = get_taxonomy_uri() self.taxonomy_db = load_database(taxonomy_uri) - self.taxonomy_db_session = Session(self.taxonomy_db, future=True) # Cache the taxon names; data is in a separate db, # which is tricky to fetch elegantly and efficiently otherwise. @@ -164,6 +167,7 @@ def __init__(self, metadata_uri=None, taxonomy_uri=None): self.taxon_names = self.fetch_taxonomy_names(taxonomy_ids) def fetch_taxonomy_ids(self): + # No need to change this to ORM organism = db.Table("organism", self.md, autoload_with=self.metadata_db) taxonomy_id_select = db.select(organism.c.taxonomy_id.distinct()) taxonomy_ids = [tid for (tid,) in self.metadata_db.execute(taxonomy_id_select)] @@ -207,17 +211,17 @@ def fetch_taxonomy_names(self, taxonomy_id): return taxons def fetch_genomes( - self, - genome_id=None, - genome_uuid=None, - assembly_accession=None, - ensembl_name=None, - taxonomy_id=None, - unreleased_only=False, - site_name=None, - release_type=None, - release_version=None, - current_only=True, + self, + genome_id=None, + genome_uuid=None, + assembly_accession=None, + ensembl_name=None, + taxonomy_id=None, + unreleased_only=False, + site_name=None, + release_type=None, + release_version=None, + current_only=True, ): genome_id = check_parameter(genome_id) genome_uuid = check_parameter(genome_uuid) @@ -310,13 +314,13 @@ def fetch_genomes( yield result_dict def fetch_genomes_by_genome_uuid( - self, - genome_uuid, - unreleased_only=False, - site_name=None, - release_type=None, - release_version=None, - current_only=True, + self, + genome_uuid, + unreleased_only=False, + site_name=None, + release_type=None, + release_version=None, + current_only=True, ): return self.fetch_genomes( genome_uuid=genome_uuid, @@ -328,13 +332,13 @@ def fetch_genomes_by_genome_uuid( ) def fetch_genomes_by_assembly_accession( - self, - assembly_accession, - unreleased_only=False, - site_name=None, - release_type=None, - release_version=None, - current_only=True, + self, + assembly_accession, + unreleased_only=False, + site_name=None, + release_type=None, + release_version=None, + current_only=True, ): return self.fetch_genomes( assembly_accession=assembly_accession, @@ -346,13 +350,13 @@ def fetch_genomes_by_assembly_accession( ) def fetch_genomes_by_ensembl_name( - self, - ensembl_name, - unreleased_only=False, - site_name=None, - release_type=None, - release_version=None, - current_only=True, + self, + ensembl_name, + unreleased_only=False, + site_name=None, + release_type=None, + release_version=None, + current_only=True, ): return self.fetch_genomes( ensembl_name=ensembl_name, @@ -364,13 +368,13 @@ def fetch_genomes_by_ensembl_name( ) def fetch_genomes_by_taxonomy_id( - self, - taxonomy_id, - unreleased_only=False, - site_name=None, - release_type=None, - release_version=None, - current_only=True, + self, + taxonomy_id, + unreleased_only=False, + site_name=None, + release_type=None, + release_version=None, + current_only=True, ): return self.fetch_genomes( taxonomy_id=taxonomy_id, @@ -382,13 +386,13 @@ def fetch_genomes_by_taxonomy_id( ) def fetch_genomes_by_scientific_name( - self, - scientific_name, - unreleased_only=False, - site_name=None, - release_type=None, - release_version=None, - current_only=True, + self, + scientific_name, + unreleased_only=False, + site_name=None, + release_type=None, + release_version=None, + current_only=True, ): taxonomy_ids = [ t_id @@ -406,13 +410,13 @@ def fetch_genomes_by_scientific_name( ) def fetch_genomes_by_synonym( - self, - synonym, - unreleased_only=False, - site_name=None, - release_type=None, - release_version=None, - current_only=True, + self, + synonym, + unreleased_only=False, + site_name=None, + release_type=None, + release_version=None, + current_only=True, ): taxonomy_ids = [] for taxon_id in self.taxon_names: @@ -431,11 +435,11 @@ def fetch_genomes_by_synonym( ) def fetch_sequences( - self, - genome_id=None, - genome_uuid=None, - assembly_accession=None, - chromosomal_only=False, + self, + genome_id=None, + genome_uuid=None, + assembly_accession=None, + chromosomal_only=False, ): genome_id = check_parameter(genome_id) genome_uuid = check_parameter(genome_uuid) @@ -489,7 +493,7 @@ def fetch_sequences_by_genome_uuid(self, genome_uuid, chromosomal_only=False): ) def fetch_sequences_by_assembly_accession( - self, assembly_accession, chromosomal_only=False + self, assembly_accession, chromosomal_only=False ): return self.fetch_sequences( assembly_accession=assembly_accession, chromosomal_only=chromosomal_only diff --git a/tests/test_api.py b/tests/test_api.py index c708bba7..6267fdfa 100644 --- a/tests/test_api.py +++ b/tests/test_api.py @@ -12,30 +12,28 @@ """ Unit tests for api module """ -from os.path import dirname from ensembl.production.metadata.api import * -DB_NAME = 'sqlite:///' + dirname(__file__) + '/TEST.db' - def test_load_database(): - DB_TEST = ReleaseAdaptor(DB_NAME) + DB_TEST = ReleaseAdaptor('sqlite:///TEST.db') assert DB_TEST, "DB should not be empty" def test_fetch_releases(): - conn = ReleaseAdaptor(DB_NAME) - TEST = conn.fetch_releases(release_id=1).one() + conn = ReleaseAdaptor('sqlite:///TEST.db') + TEST = conn.fetch_releases(release_id=1) #Test the one to many connection - assert TEST.EnsemblSite.name == '2020-map' + print (TEST) + assert TEST[0].EnsemblSite.name == '2020-map' #Test the direct access. - assert TEST.EnsemblRelease.label == '2020 MAP 7 species' + assert TEST[0].EnsemblRelease.label == '2020 MAP 7 species' #currently only have one release, so the testing is not comprehensive def test_fetch_releases_for_genome(): - conn = ReleaseAdaptor(DB_NAME) - TEST = conn.fetch_releases_for_genome('a733574a-93e7-11ec-a39d-005056b38ce3').one() - assert TEST.EnsemblSite.name == '2020-map' + conn = ReleaseAdaptor('sqlite:///TEST.db') + TEST = conn.fetch_releases_for_genome('a733574a-93e7-11ec-a39d-005056b38ce3') + assert TEST[0].EnsemblSite.name == '2020-map' def test_fetch_releases_for_dataset(): - conn = ReleaseAdaptor(DB_NAME) - TEST = conn.fetch_releases_for_dataset('76ffa505-948d-11ec-a39d-005056b38ce3').one() - assert TEST.EnsemblSite.name == '2020-map' \ No newline at end of file + conn = ReleaseAdaptor('sqlite:///TEST.db') + TEST = conn.fetch_releases_for_dataset('76ffa505-948d-11ec-a39d-005056b38ce3') + assert TEST[0].EnsemblSite.name == '2020-map' \ No newline at end of file From 177eefcdf87476691ca24f51b1c103e422e6bd51 Mon Sep 17 00:00:00 2001 From: dpopleton Date: Tue, 25 Oct 2022 10:56:42 +0100 Subject: [PATCH 02/11] Refactor for dbconnect --- src/ensembl/production/metadata/api.py | 24 ------------------------ 1 file changed, 24 deletions(-) diff --git a/src/ensembl/production/metadata/api.py b/src/ensembl/production/metadata/api.py index f85a7897..9e5fae10 100644 --- a/src/ensembl/production/metadata/api.py +++ b/src/ensembl/production/metadata/api.py @@ -18,30 +18,6 @@ from ensembl.production.metadata.models import * -# Database ORM connection. -class load_database(DBConnection): - """ - Load a database and directly create a session for ORM interaction with the database - """ - - def create_session(self, engine): - self._session = Session(engine, future=True) - - def __init__(self, url): - super().__init__(url) - self.create_session(self._engine) - - # Commit any changes to the database and create a new session instance. - def commit(self): - self._session.commit() - self._session.close() - self.create_session(self._engine) - - # rollback any changes made before committing the session instance. - def rollback(self): - self._session.rollback() - - def check_parameter(param): if param is not None and not isinstance(param, list): param = [param] From c681f093ac1062810ed44e5952524e102ef15cf3 Mon Sep 17 00:00:00 2001 From: dpopleton Date: Tue, 25 Oct 2022 11:00:14 +0100 Subject: [PATCH 03/11] Reimplemented location --- tests/test_api.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/test_api.py b/tests/test_api.py index 6267fdfa..234906ab 100644 --- a/tests/test_api.py +++ b/tests/test_api.py @@ -12,8 +12,11 @@ """ Unit tests for api module """ +from os.path import dirname from ensembl.production.metadata.api import * +DB_NAME = 'sqlite:///' + dirname(__file__) + '/TEST.db' + def test_load_database(): DB_TEST = ReleaseAdaptor('sqlite:///TEST.db') assert DB_TEST, "DB should not be empty" From dcbc993e21063c42354a5239ce296d914b5f6b81 Mon Sep 17 00:00:00 2001 From: dpopleton Date: Tue, 25 Oct 2022 11:06:27 +0100 Subject: [PATCH 04/11] Code clean up --- src/ensembl/production/metadata/api.py | 2 -- tests/test_api.py | 21 ++++++++++++--------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/src/ensembl/production/metadata/api.py b/src/ensembl/production/metadata/api.py index 9e5fae10..da5beb56 100644 --- a/src/ensembl/production/metadata/api.py +++ b/src/ensembl/production/metadata/api.py @@ -125,8 +125,6 @@ def fetch_releases_for_dataset(self, dataset_uuid, site_name=None): return self.fetch_releases(release_id=release_ids, site_name=site_name) - - class GenomeAdaptor(BaseAdaptor): taxon_names = {} diff --git a/tests/test_api.py b/tests/test_api.py index 234906ab..4ed1b26d 100644 --- a/tests/test_api.py +++ b/tests/test_api.py @@ -17,26 +17,29 @@ DB_NAME = 'sqlite:///' + dirname(__file__) + '/TEST.db' + def test_load_database(): - DB_TEST = ReleaseAdaptor('sqlite:///TEST.db') + DB_TEST = ReleaseAdaptor(DB_NAME) assert DB_TEST, "DB should not be empty" + def test_fetch_releases(): - conn = ReleaseAdaptor('sqlite:///TEST.db') + conn = ReleaseAdaptor(DB_NAME) TEST = conn.fetch_releases(release_id=1) - #Test the one to many connection - print (TEST) + # Test the one to many connection assert TEST[0].EnsemblSite.name == '2020-map' - #Test the direct access. + # Test the direct access. assert TEST[0].EnsemblRelease.label == '2020 MAP 7 species' -#currently only have one release, so the testing is not comprehensive + +# currently only have one release, so the testing is not comprehensive def test_fetch_releases_for_genome(): - conn = ReleaseAdaptor('sqlite:///TEST.db') + conn = ReleaseAdaptor(DB_NAME) TEST = conn.fetch_releases_for_genome('a733574a-93e7-11ec-a39d-005056b38ce3') assert TEST[0].EnsemblSite.name == '2020-map' + def test_fetch_releases_for_dataset(): - conn = ReleaseAdaptor('sqlite:///TEST.db') + conn = ReleaseAdaptor(DB_NAME) TEST = conn.fetch_releases_for_dataset('76ffa505-948d-11ec-a39d-005056b38ce3') - assert TEST[0].EnsemblSite.name == '2020-map' \ No newline at end of file + assert TEST[0].EnsemblSite.name == '2020-map' From cde60f16ae4c67886e3cd9ddd084e451ede8bc24 Mon Sep 17 00:00:00 2001 From: dpopleton Date: Mon, 31 Oct 2022 00:04:14 +0000 Subject: [PATCH 05/11] api.py modified for ORM and simplicity. Tests integrated with TRAVIS --- .travis.yml | 4 + src/ensembl/production/metadata/api.py | 255 ++++------- src/ensembl/production/metadata/models.py | 2 - tests/ensembl_metadata_2020.sql | 493 ++++++++++++++++++++++ tests/{TEST.db => metadata_20202.sqlite} | Bin tests/ncbi_taxonomy.sql | 87 ++++ tests/ncbi_taxonomy.sqlite | Bin 0 -> 73728 bytes tests/test_api.py | 61 ++- 8 files changed, 727 insertions(+), 175 deletions(-) create mode 100644 tests/ensembl_metadata_2020.sql rename tests/{TEST.db => metadata_20202.sqlite} (100%) create mode 100644 tests/ncbi_taxonomy.sql create mode 100644 tests/ncbi_taxonomy.sqlite diff --git a/.travis.yml b/.travis.yml index b1177099..8019709d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,10 +8,14 @@ python: env: - TESTENV=test +services: + - mysql + before_script: - pip install -r requirements-test.txt - pip install . - export PYTHONPATH=$PYTHONPATH:$PWD/src + - mysql -u root -h 127.0.0.1 -e 'CREATE DATABASE ncbi_taxonomy; CREATE DATABASE ensembl_metadata_2020; source tests/ncbi_taxonomy.sql; source tests/ncbi_taxonomy ensembl_metadata_2020; script: - if [[ "$TESTENV" == "test" ]]; then coverage run -m pytest; fi diff --git a/src/ensembl/production/metadata/api.py b/src/ensembl/production/metadata/api.py index da5beb56..ec324f8d 100644 --- a/src/ensembl/production/metadata/api.py +++ b/src/ensembl/production/metadata/api.py @@ -10,11 +10,9 @@ # See the License for the specific language governing permissions and # limitations under the License. import sqlalchemy as db -from sqlalchemy import select -from sqlalchemy.orm import Session, sessionmaker -import pymysql from ensembl.production.metadata.config import get_metadata_uri, get_taxonomy_uri from ensembl.database.dbconnection import DBConnection +from ensembl.ncbi_taxonomy.models import NCBITaxaName, NCBITaxaNode from ensembl.production.metadata.models import * @@ -126,64 +124,64 @@ def fetch_releases_for_dataset(self, dataset_uuid, site_name=None): class GenomeAdaptor(BaseAdaptor): - taxon_names = {} - def __init__(self, metadata_uri=None, taxonomy_uri=None): super().__init__(metadata_uri) if taxonomy_uri is None: taxonomy_uri = get_taxonomy_uri() - self.taxonomy_db = load_database(taxonomy_uri) - - # Cache the taxon names; data is in a separate db, - # which is tricky to fetch elegantly and efficiently otherwise. - taxonomy_ids = self.fetch_taxonomy_ids() - self.taxon_names = self.fetch_taxonomy_names(taxonomy_ids) - - def fetch_taxonomy_ids(self): - # No need to change this to ORM - organism = db.Table("organism", self.md, autoload_with=self.metadata_db) - taxonomy_id_select = db.select(organism.c.taxonomy_id.distinct()) - taxonomy_ids = [tid for (tid,) in self.metadata_db.execute(taxonomy_id_select)] - return taxonomy_ids - - def fetch_taxonomy_names(self, taxonomy_id): - ncbi_taxa_name = db.Table( - "ncbi_taxa_name", self.md, autoload_with=self.taxonomy_db - ) + self.taxonomy_db = DBConnection(taxonomy_uri) + + def fetch_taxonomy_names(self, taxonomy_ids): taxons = {} - for tid in taxonomy_id: + for tid in taxonomy_ids: names = {"scientific_name": None, "synonym": []} taxons[tid] = names - sci_name_select = db.select( - ncbi_taxa_name.c.taxon_id, ncbi_taxa_name.c.name - ).filter( - ncbi_taxa_name.c.taxon_id.in_(taxonomy_id), - ncbi_taxa_name.c.name_class == "scientific name", - ) - for x in self.taxonomy_db.execute(sci_name_select): - taxons[x.taxon_id]["scientific_name"] = x.name - - synonym_class = [ - "common name", - "equivalent name", - "genbank common name", - "genbank synonym", - "synonym", - ] - synonyms_select = db.select( - ncbi_taxa_name.c.taxon_id, ncbi_taxa_name.c.name - ).filter( - ncbi_taxa_name.c.taxon_id.in_(taxonomy_id), - ncbi_taxa_name.c.name_class.in_(synonym_class), - ) - for x in self.taxonomy_db.execute(synonyms_select): - taxons[x.taxon_id]["synonym"].append(x.name) + for taxon in taxons: + sci_name_select = db.select( + NCBITaxaName.name + ).filter( + NCBITaxaName.taxon_id == taxon, + NCBITaxaName.name_class == "scientific name", + ) + synonym_class = [ + "common name", + "equivalent name", + "genbank common name", + "genbank synonym", + "synonym", + ] + + synonyms_select = db.select( + NCBITaxaName.name + ).filter( + NCBITaxaName.taxon_id == taxon, + NCBITaxaName.name_class.in_(synonym_class), + ) + with self.taxonomy_db.session_scope() as session: + sci_name = session.execute(sci_name_select).one() + taxons[taxon]["scientific_name"] = sci_name[0] + synonyms = session.execute(synonyms_select).all() + for synonym in synonyms: + taxons[taxon]["synonym"].append(synonym[0]) return taxons + def fetch_taxonomy_ids(self, taxonomy_names): + taxids = [] + taxonomy_names = check_parameter(taxonomy_names) + for taxon in taxonomy_names: + taxa_name_select = db.select( + NCBITaxaName.taxon_id + ).filter( + NCBITaxaName.name == taxon + ) + with self.taxonomy_db.session_scope() as session: + taxid = session.execute(taxa_name_select).one() + taxids.append(taxid[0]) + return taxids + def fetch_genomes( self, genome_id=None, @@ -203,89 +201,49 @@ def fetch_genomes( ensembl_name = check_parameter(ensembl_name) taxonomy_id = check_parameter(taxonomy_id) - genome = db.Table("genome", self.md, autoload_with=self.metadata_db) - assembly = self.md.tables["assembly"] - organism = self.md.tables["organism"] - - genome_select = ( - db.select( - genome.c.genome_id, - genome.c.genome_uuid, - organism.c.ensembl_name, - organism.c.url_name, - organism.c.display_name, - organism.c.strain, - organism.c.taxonomy_id, - assembly.c.accession.label("assembly_accession"), - assembly.c.name.label("assembly_name"), - assembly.c.ucsc_name.label("assembly_ucsc_name"), - assembly.c.level.label("assembly_level"), - ) - .select_from(genome) - .join(assembly) - .join(organism) - ) + genome_select = db.select( + Genome, Organism, Assembly + ).join(Genome.assembly).join(Genome.organism) if unreleased_only: - genome_release = db.Table( - "genome_release", self.md, autoload_with=self.metadata_db + genome_select = genome_select.outerjoin(Genome.genome_releases).filter( + GenomeRelease.genome_id == None ) - - genome_select = genome_select.outerjoin(genome_release).filter_by( - genome_id=None - ) - elif site_name is not None: - genome_release = db.Table( - "genome_release", self.md, autoload_with=self.metadata_db - ) - release = self.md.tables["ensembl_release"] - site = self.md.tables["ensembl_site"] - - genome_select = ( - genome_select.join(genome_release) - .join(release) - .join(site) - .filter_by(name=site_name) - ) + genome_select = genome_select.join( + Genome.genome_releases).join( + GenomeRelease.ensembl_release).join( + EnsemblRelease.ensembl_site).filter(EnsemblSite.name == site_name) if release_type is not None: - genome_select = genome_select.filter( - release.c.release_type == release_type - ) + genome_select = genome_select.filter(EnsemblRelease.release_type == release_type) if current_only: - genome_select = genome_select.filter(genome_release.c.is_current == 1) + genome_select = genome_select.filter(GenomeRelease.is_current == 1) if release_version is not None: - genome_select = genome_select.filter( - release.c.version <= release_version - ) + genome_select = genome_select.filter(EnsemblRelease.version <= release_version) # These options are in order of decreasing specificity, # and thus the ones later in the list can be redundant. if genome_id is not None: - genome_select = genome_select.filter(genome.c.genome_id.in_(genome_id)) + genome_select = genome_select.filter(Genome.genome_id == genome_id) + elif genome_uuid is not None: - genome_select = genome_select.filter(genome.c.genome_uuid.in_(genome_uuid)) + genome_select = genome_select.filter(Genome.genome_uuid == genome_uuid) + elif assembly_accession is not None: - genome_select = genome_select.filter( - assembly.c.accession.in_(assembly_accession) - ) + genome_select = genome_select.filter(Assembly.accession == assembly_accession) + elif ensembl_name is not None: - genome_select = genome_select.filter( - organism.c.ensembl_name.in_(ensembl_name) - ) + genome_select = genome_select.filter(Organism.ensembl_name == ensembl_name) + elif taxonomy_id is not None: - genome_select = genome_select.filter( - organism.c.taxonomy_id.in_(taxonomy_id) - ) + genome_select = genome_select.filter(Organism.taxonomy_id == taxonomy_id) - for result in self.metadata_db_session.execute(genome_select): - taxon_names = self.taxon_names[result.taxonomy_id] - result_dict = dict(result) - result_dict.update(taxon_names) - yield result_dict + with self.metadata_db.session_scope() as session: + session.expire_on_commit = False + return session.execute(genome_select).all() def fetch_genomes_by_genome_uuid( self, @@ -368,36 +326,7 @@ def fetch_genomes_by_scientific_name( release_version=None, current_only=True, ): - taxonomy_ids = [ - t_id - for t_id in self.taxon_names - if self.taxon_names[t_id]["scientific_name"] == scientific_name - ] - - return self.fetch_genomes_by_taxonomy_id( - taxonomy_ids, - unreleased_only=unreleased_only, - site_name=site_name, - release_type=release_type, - release_version=release_version, - current_only=current_only, - ) - - def fetch_genomes_by_synonym( - self, - synonym, - unreleased_only=False, - site_name=None, - release_type=None, - release_version=None, - current_only=True, - ): - taxonomy_ids = [] - for taxon_id in self.taxon_names: - if synonym.casefold() in [ - x.casefold() for x in self.taxon_names[taxon_id]["synonym"] - ]: - taxonomy_ids.append(taxon_id) + taxonomy_ids = self.fetch_taxonomy_ids(scientific_name) return self.fetch_genomes_by_taxonomy_id( taxonomy_ids, @@ -419,47 +348,29 @@ def fetch_sequences( genome_uuid = check_parameter(genome_uuid) assembly_accession = check_parameter(assembly_accession) - assembly = db.Table("assembly", self.md, autoload_with=self.metadata_db) - assembly_sequence = db.Table( - "assembly_sequence", self.md, autoload_with=self.metadata_db - ) + seq_select = db.select(AssemblySequence, ) - seq_select = ( - db.select( - assembly_sequence.c.accession, - assembly_sequence.c.name, - assembly_sequence.c.sequence_location, - assembly_sequence.c.length, - assembly_sequence.c.chromosomal, - assembly_sequence.c.sequence_checksum, - assembly_sequence.c.ga4gh_identifier, - ) - .select_from(assembly) - .join( - assembly_sequence, - assembly.c.assembly_id == assembly_sequence.c.assembly_id, - ) - ) if chromosomal_only: - seq_select = seq_select.filter_by(chromosomal=1) + seq_select = seq_select.filter(AssemblySequence.chromosomal == 1) # These options are in order of decreasing specificity, # and thus the ones later in the list can be redundant. if genome_id is not None: - genome = db.Table("genome", self.md, autoload_with=self.metadata_db) - seq_select = seq_select.join(genome).filter( - genome.c.genome_id.in_(genome_id) + seq_select = seq_select.join(AssemblySequence.assembly).join(Assembly.genomes).filter( + Genome.genome_id == genome_id ) + elif genome_uuid is not None: - genome = db.Table("genome", self.md, autoload_with=self.metadata_db) - seq_select = seq_select.join(genome).filter( - genome.c.genome_uuid.in_(genome_uuid) + seq_select = seq_select.join(AssemblySequence.assembly).join(Assembly.genomes).filter( + Genome.genome_uuid == genome_uuid ) + elif assembly_accession is not None: - seq_select = seq_select.filter(assembly.c.accession.in_(assembly_accession)) + seq_select = seq_select.filter(Assembly.accession == assembly_accession) - for result in self.metadata_db_session.execute(seq_select): - yield dict(result) + with self.metadata_db.session_scope() as session: + session.expire_on_commit = False + return session.execute(seq_select).all() def fetch_sequences_by_genome_uuid(self, genome_uuid, chromosomal_only=False): return self.fetch_sequences( diff --git a/src/ensembl/production/metadata/models.py b/src/ensembl/production/metadata/models.py index 336d5e24..d74b8711 100644 --- a/src/ensembl/production/metadata/models.py +++ b/src/ensembl/production/metadata/models.py @@ -19,11 +19,9 @@ from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import create_engine, MetaData, inspect - Base = declarative_base() metadata = Base.metadata - class Assembly(Base): __tablename__ = 'assembly' diff --git a/tests/ensembl_metadata_2020.sql b/tests/ensembl_metadata_2020.sql new file mode 100644 index 00000000..731811c6 --- /dev/null +++ b/tests/ensembl_metadata_2020.sql @@ -0,0 +1,493 @@ +-- MySQL dump 10.13 Distrib 8.0.30, for Linux (x86_64) +-- +-- Host: localhost Database: ensembl_metadata_2020 +-- ------------------------------------------------------ +-- Server version 8.0.30-0ubuntu0.22.04.1 + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!50503 SET NAMES utf8mb4 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Current Database: `ensembl_metadata_2020` +-- + +CREATE DATABASE /*!32312 IF NOT EXISTS*/ `ensembl_metadata_2020` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */; + +USE `ensembl_metadata_2020`; + +-- +-- Table structure for table `assembly` +-- + +DROP TABLE IF EXISTS `assembly`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `assembly` ( + `assembly_id` int NOT NULL AUTO_INCREMENT, + `ucsc_name` varchar(16) DEFAULT NULL, + `accession` varchar(16) NOT NULL, + `level` varchar(32) NOT NULL, + `name` varchar(128) NOT NULL, + `accession_body` varchar(32) DEFAULT NULL, + `assembly_default` varchar(32) DEFAULT NULL, + `tolid` varchar(32) DEFAULT NULL, + `created` datetime DEFAULT NULL, + `ensembl_name` varchar(255) DEFAULT NULL, + PRIMARY KEY (`assembly_id`), + UNIQUE KEY `accession` (`accession`), + UNIQUE KEY `tol_id_key` (`tolid`), + UNIQUE KEY `assembly_ensembl_name_uindex` (`ensembl_name`) +) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `assembly` +-- + +LOCK TABLES `assembly` WRITE; +/*!40000 ALTER TABLE `assembly` DISABLE KEYS */; +INSERT INTO `assembly` VALUES (1,NULL,'GCA_000005845.2','chromosome','ASM584v2',NULL,NULL,NULL,'2022-06-21 10:18:12',NULL),(2,NULL,'GCA_000002985.3','chromosome','WBcel235',NULL,NULL,NULL,'2022-06-21 10:18:12',NULL),(3,'hg38','GCA_000001405.28','chromosome','GRCh38.p13',NULL,NULL,NULL,'2022-06-21 10:18:12','grch38'),(4,NULL,'GCA_000002765.2','chromosome','ASM276v2',NULL,NULL,NULL,'2022-06-21 10:18:12',NULL),(5,NULL,'GCA_000146045.2','chromosome','R64-1-1',NULL,NULL,NULL,'2022-06-21 10:18:12',NULL),(6,NULL,'GCA_900519105.1','chromosome','IWGSC',NULL,NULL,NULL,'2022-06-21 10:18:12',NULL),(8,'hg19','GCA_000001405.14','chromosome','GRCh37.p13',NULL,NULL,NULL,'2022-06-21 10:18:12','grch37'); +/*!40000 ALTER TABLE `assembly` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `assembly_sequence` +-- + +DROP TABLE IF EXISTS `assembly_sequence`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `assembly_sequence` ( + `assembly_sequence_id` int NOT NULL AUTO_INCREMENT, + `name` varchar(128) DEFAULT NULL, + `assembly_id` int NOT NULL, + `accession` varchar(32) NOT NULL, + `chromosomal` tinyint(1) NOT NULL, + `length` int NOT NULL, + `sequence_location` varchar(10) DEFAULT NULL, + `sequence_checksum` varchar(32) DEFAULT NULL, + `ga4gh_identifier` varchar(32) DEFAULT NULL, + PRIMARY KEY (`assembly_sequence_id`), + UNIQUE KEY `assembly_sequence_assembly_id_accession_5f3e5119_uniq` (`assembly_id`,`accession`), + KEY `assembly_sequence_assembly_id_2a84ddcb` (`assembly_id`), + CONSTRAINT `assembly_sequence_assembly_id_2a84ddcb_fk_assembly_assembly_id` FOREIGN KEY (`assembly_id`) REFERENCES `assembly` (`assembly_id`) +) ENGINE=InnoDB AUTO_INCREMENT=256 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `assembly_sequence` +-- + +LOCK TABLES `assembly_sequence` WRITE; +/*!40000 ALTER TABLE `assembly_sequence` DISABLE KEYS */; +INSERT INTO `assembly_sequence` VALUES (1,'1',3,'CM000663.2',1,248956422,'SO:0000738',NULL,NULL),(2,'2',3,'CM000664.2',1,242193529,'SO:0000738',NULL,NULL),(3,'3',3,'CM000665.2',1,198295559,'SO:0000738',NULL,NULL),(4,'4',3,'CM000666.2',1,190214555,'SO:0000738',NULL,NULL),(5,'5',3,'CM000667.2',1,181538259,'SO:0000738',NULL,NULL),(6,'6',3,'CM000668.2',1,170805979,'SO:0000738',NULL,NULL),(7,'7',3,'CM000669.2',1,159345973,'SO:0000738',NULL,NULL),(8,'8',3,'CM000670.2',1,145138636,'SO:0000738',NULL,NULL),(9,'9',3,'CM000671.2',1,138394717,'SO:0000738',NULL,NULL),(10,'10',3,'CM000672.2',1,133797422,'SO:0000738',NULL,NULL),(11,'11',3,'CM000673.2',1,135086622,'SO:0000738',NULL,NULL),(12,'12',3,'CM000674.2',1,133275309,'SO:0000738',NULL,NULL),(13,'13',3,'CM000675.2',1,114364328,'SO:0000738',NULL,NULL),(14,'14',3,'CM000676.2',1,107043718,'SO:0000738',NULL,NULL),(15,'15',3,'CM000677.2',1,101991189,'SO:0000738',NULL,NULL),(16,'16',3,'CM000678.2',1,90338345,'SO:0000738',NULL,NULL),(17,'17',3,'CM000679.2',1,83257441,'SO:0000738',NULL,NULL),(18,'18',3,'CM000680.2',1,80373285,'SO:0000738',NULL,NULL),(19,'19',3,'CM000681.2',1,58617616,'SO:0000738',NULL,NULL),(20,'20',3,'CM000682.2',1,64444167,'SO:0000738',NULL,NULL),(21,'21',3,'CM000683.2',1,46709983,'SO:0000738',NULL,NULL),(22,'22',3,'CM000684.2',1,50818468,'SO:0000738',NULL,NULL),(23,'X',3,'CM000685.2',1,156040895,'SO:0000738',NULL,NULL),(24,'Y',3,'CM000686.2',1,57227415,'SO:0000738',NULL,NULL),(25,NULL,3,'GL000008.2',0,209709,'SO:0000738',NULL,NULL),(26,NULL,3,'GL000009.2',0,201709,'SO:0000738',NULL,NULL),(27,NULL,3,'GL000194.1',0,191469,'SO:0000738',NULL,NULL),(28,NULL,3,'GL000195.1',0,182896,'SO:0000738',NULL,NULL),(29,NULL,3,'GL000205.2',0,185591,'SO:0000738',NULL,NULL),(30,NULL,3,'GL000208.1',0,92689,'SO:0000738',NULL,NULL),(31,NULL,3,'GL000213.1',0,164239,'SO:0000738',NULL,NULL),(32,NULL,3,'GL000214.1',0,137718,'SO:0000738',NULL,NULL),(33,NULL,3,'GL000216.2',0,176608,'SO:0000738',NULL,NULL),(34,NULL,3,'GL000218.1',0,161147,'SO:0000738',NULL,NULL),(35,NULL,3,'GL000219.1',0,179198,'SO:0000738',NULL,NULL),(36,NULL,3,'GL000220.1',0,161802,'SO:0000738',NULL,NULL),(37,NULL,3,'GL000221.1',0,155397,'SO:0000738',NULL,NULL),(38,NULL,3,'GL000224.1',0,179693,'SO:0000738',NULL,NULL),(39,NULL,3,'GL000225.1',0,211173,'SO:0000738',NULL,NULL),(40,NULL,3,'GL000226.1',0,15008,'SO:0000738',NULL,NULL),(41,'MT',3,'J01415.2',1,16569,'SO:0000737',NULL,NULL),(42,NULL,3,'KI270302.1',0,2274,'SO:0000738',NULL,NULL),(43,NULL,3,'KI270303.1',0,1942,'SO:0000738',NULL,NULL),(44,NULL,3,'KI270304.1',0,2165,'SO:0000738',NULL,NULL),(45,NULL,3,'KI270305.1',0,1472,'SO:0000738',NULL,NULL),(46,NULL,3,'KI270310.1',0,1201,'SO:0000738',NULL,NULL),(47,NULL,3,'KI270311.1',0,12399,'SO:0000738',NULL,NULL),(48,NULL,3,'KI270312.1',0,998,'SO:0000738',NULL,NULL),(49,NULL,3,'KI270315.1',0,2276,'SO:0000738',NULL,NULL),(50,NULL,3,'KI270316.1',0,1444,'SO:0000738',NULL,NULL),(51,NULL,3,'KI270317.1',0,37690,'SO:0000738',NULL,NULL),(52,NULL,3,'KI270320.1',0,4416,'SO:0000738',NULL,NULL),(53,NULL,3,'KI270322.1',0,21476,'SO:0000738',NULL,NULL),(54,NULL,3,'KI270329.1',0,1040,'SO:0000738',NULL,NULL),(55,NULL,3,'KI270330.1',0,1652,'SO:0000738',NULL,NULL),(56,NULL,3,'KI270333.1',0,2699,'SO:0000738',NULL,NULL),(57,NULL,3,'KI270334.1',0,1368,'SO:0000738',NULL,NULL),(58,NULL,3,'KI270335.1',0,1048,'SO:0000738',NULL,NULL),(59,NULL,3,'KI270336.1',0,1026,'SO:0000738',NULL,NULL),(60,NULL,3,'KI270337.1',0,1121,'SO:0000738',NULL,NULL),(61,NULL,3,'KI270338.1',0,1428,'SO:0000738',NULL,NULL),(62,NULL,3,'KI270340.1',0,1428,'SO:0000738',NULL,NULL),(63,NULL,3,'KI270362.1',0,3530,'SO:0000738',NULL,NULL),(64,NULL,3,'KI270363.1',0,1803,'SO:0000738',NULL,NULL),(65,NULL,3,'KI270364.1',0,2855,'SO:0000738',NULL,NULL),(66,NULL,3,'KI270366.1',0,8320,'SO:0000738',NULL,NULL),(67,NULL,3,'KI270371.1',0,2805,'SO:0000738',NULL,NULL),(68,NULL,3,'KI270372.1',0,1650,'SO:0000738',NULL,NULL),(69,NULL,3,'KI270373.1',0,1451,'SO:0000738',NULL,NULL),(70,NULL,3,'KI270374.1',0,2656,'SO:0000738',NULL,NULL),(71,NULL,3,'KI270375.1',0,2378,'SO:0000738',NULL,NULL),(72,NULL,3,'KI270376.1',0,1136,'SO:0000738',NULL,NULL),(73,NULL,3,'KI270378.1',0,1048,'SO:0000738',NULL,NULL),(74,NULL,3,'KI270379.1',0,1045,'SO:0000738',NULL,NULL),(75,NULL,3,'KI270381.1',0,1930,'SO:0000738',NULL,NULL),(76,NULL,3,'KI270382.1',0,4215,'SO:0000738',NULL,NULL),(77,NULL,3,'KI270383.1',0,1750,'SO:0000738',NULL,NULL),(78,NULL,3,'KI270384.1',0,1658,'SO:0000738',NULL,NULL),(79,NULL,3,'KI270385.1',0,990,'SO:0000738',NULL,NULL),(80,NULL,3,'KI270386.1',0,1788,'SO:0000738',NULL,NULL),(81,NULL,3,'KI270387.1',0,1537,'SO:0000738',NULL,NULL),(82,NULL,3,'KI270388.1',0,1216,'SO:0000738',NULL,NULL),(83,NULL,3,'KI270389.1',0,1298,'SO:0000738',NULL,NULL),(84,NULL,3,'KI270390.1',0,2387,'SO:0000738',NULL,NULL),(85,NULL,3,'KI270391.1',0,1484,'SO:0000738',NULL,NULL),(86,NULL,3,'KI270392.1',0,971,'SO:0000738',NULL,NULL),(87,NULL,3,'KI270393.1',0,1308,'SO:0000738',NULL,NULL),(88,NULL,3,'KI270394.1',0,970,'SO:0000738',NULL,NULL),(89,NULL,3,'KI270395.1',0,1143,'SO:0000738',NULL,NULL),(90,NULL,3,'KI270396.1',0,1880,'SO:0000738',NULL,NULL),(91,NULL,3,'KI270411.1',0,2646,'SO:0000738',NULL,NULL),(92,NULL,3,'KI270412.1',0,1179,'SO:0000738',NULL,NULL),(93,NULL,3,'KI270414.1',0,2489,'SO:0000738',NULL,NULL),(94,NULL,3,'KI270417.1',0,2043,'SO:0000738',NULL,NULL),(95,NULL,3,'KI270418.1',0,2145,'SO:0000738',NULL,NULL),(96,NULL,3,'KI270419.1',0,1029,'SO:0000738',NULL,NULL),(97,NULL,3,'KI270420.1',0,2321,'SO:0000738',NULL,NULL),(98,NULL,3,'KI270422.1',0,1445,'SO:0000738',NULL,NULL),(99,NULL,3,'KI270423.1',0,981,'SO:0000738',NULL,NULL),(100,NULL,3,'KI270424.1',0,2140,'SO:0000738',NULL,NULL),(101,NULL,3,'KI270425.1',0,1884,'SO:0000738',NULL,NULL),(102,NULL,3,'KI270429.1',0,1361,'SO:0000738',NULL,NULL),(103,NULL,3,'KI270435.1',0,92983,'SO:0000738',NULL,NULL),(104,NULL,3,'KI270438.1',0,112505,'SO:0000738',NULL,NULL),(105,NULL,3,'KI270442.1',0,392061,'SO:0000738',NULL,NULL),(106,NULL,3,'KI270448.1',0,7992,'SO:0000738',NULL,NULL),(107,NULL,3,'KI270465.1',0,1774,'SO:0000738',NULL,NULL),(108,NULL,3,'KI270466.1',0,1233,'SO:0000738',NULL,NULL),(109,NULL,3,'KI270467.1',0,3920,'SO:0000738',NULL,NULL),(110,NULL,3,'KI270468.1',0,4055,'SO:0000738',NULL,NULL),(111,NULL,3,'KI270507.1',0,5353,'SO:0000738',NULL,NULL),(112,NULL,3,'KI270508.1',0,1951,'SO:0000738',NULL,NULL),(113,NULL,3,'KI270509.1',0,2318,'SO:0000738',NULL,NULL),(114,NULL,3,'KI270510.1',0,2415,'SO:0000738',NULL,NULL),(115,NULL,3,'KI270511.1',0,8127,'SO:0000738',NULL,NULL),(116,NULL,3,'KI270512.1',0,22689,'SO:0000738',NULL,NULL),(117,NULL,3,'KI270515.1',0,6361,'SO:0000738',NULL,NULL),(118,NULL,3,'KI270516.1',0,1300,'SO:0000738',NULL,NULL),(119,NULL,3,'KI270517.1',0,3253,'SO:0000738',NULL,NULL),(120,NULL,3,'KI270518.1',0,2186,'SO:0000738',NULL,NULL),(121,NULL,3,'KI270519.1',0,138126,'SO:0000738',NULL,NULL),(122,NULL,3,'KI270521.1',0,7642,'SO:0000738',NULL,NULL),(123,NULL,3,'KI270522.1',0,5674,'SO:0000738',NULL,NULL),(124,NULL,3,'KI270528.1',0,2983,'SO:0000738',NULL,NULL),(125,NULL,3,'KI270529.1',0,1899,'SO:0000738',NULL,NULL),(126,NULL,3,'KI270530.1',0,2168,'SO:0000738',NULL,NULL),(127,NULL,3,'KI270538.1',0,91309,'SO:0000738',NULL,NULL),(128,NULL,3,'KI270539.1',0,993,'SO:0000738',NULL,NULL),(129,NULL,3,'KI270544.1',0,1202,'SO:0000738',NULL,NULL),(130,NULL,3,'KI270548.1',0,1599,'SO:0000738',NULL,NULL),(131,NULL,3,'KI270579.1',0,31033,'SO:0000738',NULL,NULL),(132,NULL,3,'KI270580.1',0,1553,'SO:0000738',NULL,NULL),(133,NULL,3,'KI270581.1',0,7046,'SO:0000738',NULL,NULL),(134,NULL,3,'KI270582.1',0,6504,'SO:0000738',NULL,NULL),(135,NULL,3,'KI270583.1',0,1400,'SO:0000738',NULL,NULL),(136,NULL,3,'KI270584.1',0,4513,'SO:0000738',NULL,NULL),(137,NULL,3,'KI270587.1',0,2969,'SO:0000738',NULL,NULL),(138,NULL,3,'KI270588.1',0,6158,'SO:0000738',NULL,NULL),(139,NULL,3,'KI270589.1',0,44474,'SO:0000738',NULL,NULL),(140,NULL,3,'KI270590.1',0,4685,'SO:0000738',NULL,NULL),(141,NULL,3,'KI270591.1',0,5796,'SO:0000738',NULL,NULL),(142,NULL,3,'KI270593.1',0,3041,'SO:0000738',NULL,NULL),(143,NULL,3,'KI270706.1',0,175055,'SO:0000738',NULL,NULL),(144,NULL,3,'KI270707.1',0,32032,'SO:0000738',NULL,NULL),(145,NULL,3,'KI270708.1',0,127682,'SO:0000738',NULL,NULL),(146,NULL,3,'KI270709.1',0,66860,'SO:0000738',NULL,NULL),(147,NULL,3,'KI270710.1',0,40176,'SO:0000738',NULL,NULL),(148,NULL,3,'KI270711.1',0,42210,'SO:0000738',NULL,NULL),(149,NULL,3,'KI270712.1',0,176043,'SO:0000738',NULL,NULL),(150,NULL,3,'KI270713.1',0,40745,'SO:0000738',NULL,NULL),(151,NULL,3,'KI270714.1',0,41717,'SO:0000738',NULL,NULL),(152,NULL,3,'KI270715.1',0,161471,'SO:0000738',NULL,NULL),(153,NULL,3,'KI270716.1',0,153799,'SO:0000738',NULL,NULL),(154,NULL,3,'KI270717.1',0,40062,'SO:0000738',NULL,NULL),(155,NULL,3,'KI270718.1',0,38054,'SO:0000738',NULL,NULL),(156,NULL,3,'KI270719.1',0,176845,'SO:0000738',NULL,NULL),(157,NULL,3,'KI270720.1',0,39050,'SO:0000738',NULL,NULL),(158,NULL,3,'KI270721.1',0,100316,'SO:0000738',NULL,NULL),(159,NULL,3,'KI270722.1',0,194050,'SO:0000738',NULL,NULL),(160,NULL,3,'KI270723.1',0,38115,'SO:0000738',NULL,NULL),(161,NULL,3,'KI270724.1',0,39555,'SO:0000738',NULL,NULL),(162,NULL,3,'KI270725.1',0,172810,'SO:0000738',NULL,NULL),(163,NULL,3,'KI270726.1',0,43739,'SO:0000738',NULL,NULL),(164,NULL,3,'KI270727.1',0,448248,'SO:0000738',NULL,NULL),(165,NULL,3,'KI270728.1',0,1872759,'SO:0000738',NULL,NULL),(166,NULL,3,'KI270729.1',0,280839,'SO:0000738',NULL,NULL),(167,NULL,3,'KI270730.1',0,112551,'SO:0000738',NULL,NULL),(168,NULL,3,'KI270731.1',0,150754,'SO:0000738',NULL,NULL),(169,NULL,3,'KI270732.1',0,41543,'SO:0000738',NULL,NULL),(170,NULL,3,'KI270733.1',0,179772,'SO:0000738',NULL,NULL),(171,NULL,3,'KI270734.1',0,165050,'SO:0000738',NULL,NULL),(172,NULL,3,'KI270735.1',0,42811,'SO:0000738',NULL,NULL),(173,NULL,3,'KI270736.1',0,181920,'SO:0000738',NULL,NULL),(174,NULL,3,'KI270737.1',0,103838,'SO:0000738',NULL,NULL),(175,NULL,3,'KI270738.1',0,99375,'SO:0000738',NULL,NULL),(176,NULL,3,'KI270739.1',0,73985,'SO:0000738',NULL,NULL),(177,NULL,3,'KI270740.1',0,37240,'SO:0000738',NULL,NULL),(178,NULL,3,'KI270741.1',0,157432,'SO:0000738',NULL,NULL),(179,NULL,3,'KI270742.1',0,186739,'SO:0000738',NULL,NULL),(180,NULL,3,'KI270743.1',0,210658,'SO:0000738',NULL,NULL),(181,NULL,3,'KI270744.1',0,168472,'SO:0000738',NULL,NULL),(182,NULL,3,'KI270745.1',0,41891,'SO:0000738',NULL,NULL),(183,NULL,3,'KI270746.1',0,66486,'SO:0000738',NULL,NULL),(184,NULL,3,'KI270747.1',0,198735,'SO:0000738',NULL,NULL),(185,NULL,3,'KI270748.1',0,93321,'SO:0000738',NULL,NULL),(186,NULL,3,'KI270749.1',0,158759,'SO:0000738',NULL,NULL),(187,NULL,3,'KI270750.1',0,148850,'SO:0000738',NULL,NULL),(188,NULL,3,'KI270751.1',0,150742,'SO:0000738',NULL,NULL),(189,NULL,3,'KI270752.1',0,27745,'SO:0000738',NULL,NULL),(190,NULL,3,'KI270753.1',0,62944,'SO:0000738',NULL,NULL),(191,NULL,3,'KI270754.1',0,40191,'SO:0000738',NULL,NULL),(192,NULL,3,'KI270755.1',0,36723,'SO:0000738',NULL,NULL),(193,NULL,3,'KI270756.1',0,79590,'SO:0000738',NULL,NULL),(194,NULL,3,'KI270757.1',0,71251,'SO:0000738',NULL,NULL),(195,'1',4,'AL844501.2',1,640851,'SO:0000738',NULL,NULL),(196,'3',4,'AL844502.2',1,1067971,'SO:0000738',NULL,NULL),(197,'4',4,'AL844503.2',1,1200490,'SO:0000738',NULL,NULL),(198,'5',4,'AL844504.2',1,1343557,'SO:0000738',NULL,NULL),(199,'6',4,'AL844505.2',1,1418242,'SO:0000738',NULL,NULL),(200,'7',4,'AL844506.3',1,1445207,'SO:0000738',NULL,NULL),(201,'8',4,'AL844507.3',1,1472805,'SO:0000738',NULL,NULL),(202,'9',4,'AL844508.2',1,1541735,'SO:0000738',NULL,NULL),(203,'13',4,'AL844509.3',1,2925236,'SO:0000738',NULL,NULL),(204,'2',4,'LN999943.1',1,947102,'SO:0000738',NULL,NULL),(205,'10',4,'LN999944.1',1,1687656,'SO:0000738',NULL,NULL),(206,'11',4,'LN999945.1',1,2038340,'SO:0000738',NULL,NULL),(207,'14',4,'LN999946.1',1,3291936,'SO:0000738',NULL,NULL),(208,'12',4,'LN999947.1',1,2271494,'SO:0000738',NULL,NULL),(209,'I',2,'BX284601.5',1,15072434,'SO:0000738',NULL,NULL),(210,'II',2,'BX284602.5',1,15279421,'SO:0000738',NULL,NULL),(211,'III',2,'BX284603.4',1,13783801,'SO:0000738',NULL,NULL),(212,'IV',2,'BX284604.4',1,17493829,'SO:0000738',NULL,NULL),(213,'V',2,'BX284605.5',1,20924180,'SO:0000738',NULL,NULL),(214,'X',2,'BX284606.5',1,17718942,'SO:0000738',NULL,NULL),(215,'MtDNA',2,'X54252.1',1,13794,'SO:0000737',NULL,NULL),(216,'Chromosome',1,'U00096.3',1,4641652,'SO:0000738',NULL,NULL),(217,'Mito',5,'AJ011856.1',1,85779,'SO:0000737',NULL,NULL),(218,'VIII',5,'BK006934.2',1,562643,'SO:0000738',NULL,NULL),(219,'I',5,'BK006935.2',1,230218,'SO:0000738',NULL,NULL),(220,'II',5,'BK006936.2',1,813184,'SO:0000738',NULL,NULL),(221,'III',5,'BK006937.2',1,316620,'SO:0000738',NULL,NULL),(222,'IV',5,'BK006938.2',1,1531933,'SO:0000738',NULL,NULL),(223,'V',5,'BK006939.2',1,576874,'SO:0000738',NULL,NULL),(224,'VI',5,'BK006940.2',1,270161,'SO:0000738',NULL,NULL),(225,'VII',5,'BK006941.2',1,1090940,'SO:0000738',NULL,NULL),(226,'IX',5,'BK006942.2',1,439888,'SO:0000738',NULL,NULL),(227,'X',5,'BK006943.2',1,745751,'SO:0000738',NULL,NULL),(228,'XI',5,'BK006944.2',1,666816,'SO:0000738',NULL,NULL),(229,'XII',5,'BK006945.2',1,1078177,'SO:0000738',NULL,NULL),(230,'XIII',5,'BK006946.2',1,924431,'SO:0000738',NULL,NULL),(231,'XIV',5,'BK006947.3',1,784333,'SO:0000738',NULL,NULL),(232,'XV',5,'BK006948.2',1,1091291,'SO:0000738',NULL,NULL),(233,'XVI',5,'BK006949.2',1,948066,'SO:0000738',NULL,NULL),(234,'1A',6,'LS992080.1',1,594102056,'SO:0000738',NULL,NULL),(235,'1B',6,'LS992081.1',1,689851870,'SO:0000738',NULL,NULL),(236,'1D',6,'LS992082.1',1,495453186,'SO:0000738',NULL,NULL),(237,'2A',6,'LS992083.1',1,780798557,'SO:0000738',NULL,NULL),(238,'2B',6,'LS992084.1',1,801256715,'SO:0000738',NULL,NULL),(239,'2D',6,'LS992085.1',1,651852609,'SO:0000738',NULL,NULL),(240,'3A',6,'LS992086.1',1,750843639,'SO:0000738',NULL,NULL),(241,'3B',6,'LS992087.1',1,830829764,'SO:0000738',NULL,NULL),(242,'3D',6,'LS992088.1',1,615552423,'SO:0000738',NULL,NULL),(243,'4A',6,'LS992089.1',1,744588157,'SO:0000738',NULL,NULL),(244,'4B',6,'LS992090.1',1,673617499,'SO:0000738',NULL,NULL),(245,'4D',6,'LS992091.1',1,509857067,'SO:0000738',NULL,NULL),(246,'5A',6,'LS992092.1',1,709773743,'SO:0000738',NULL,NULL),(247,'5B',6,'LS992093.1',1,713149757,'SO:0000738',NULL,NULL),(248,'5D',6,'LS992094.1',1,566080677,'SO:0000738',NULL,NULL),(249,'6A',6,'LS992095.1',1,618079260,'SO:0000738',NULL,NULL),(250,'6B',6,'LS992096.1',1,720988478,'SO:0000738',NULL,NULL),(251,'6D',6,'LS992097.1',1,473592718,'SO:0000738',NULL,NULL),(252,'7A',6,'LS992098.1',1,736706236,'SO:0000738',NULL,NULL),(253,'7B',6,'LS992099.1',1,750620385,'SO:0000738',NULL,NULL),(254,'7D',6,'LS992100.1',1,638686055,'SO:0000738',NULL,NULL),(255,'Un',6,'LS992101.1',1,480980714,'SO:0000738',NULL,NULL); +/*!40000 ALTER TABLE `assembly_sequence` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `attribute` +-- + +DROP TABLE IF EXISTS `attribute`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `attribute` ( + `attribute_id` int NOT NULL AUTO_INCREMENT, + `name` varchar(128) NOT NULL, + `label` varchar(128) NOT NULL, + `description` varchar(255) DEFAULT NULL, + PRIMARY KEY (`attribute_id`) +) ENGINE=InnoDB AUTO_INCREMENT=215 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `attribute` +-- + +LOCK TABLES `attribute` WRITE; +/*!40000 ALTER TABLE `attribute` DISABLE KEYS */; +INSERT INTO `attribute` VALUES (1,'aligned_tgac','Genes aligned from TGACv1 with Exonerate',NULL),(2,'ccds_import','CCDS set',NULL),(3,'cdd','CDD',NULL),(4,'cdna_coding','Protein-coding cDNA',NULL),(5,'cdna_lnoncoding','Long ncRNA cDNA',NULL),(6,'cdna_mnoncoding','Non-coding cDNA',NULL),(7,'cdna_pseudogene','Pseudogenic cDNA',NULL),(8,'cdna_snoncoding','Short ncRNA cDNA',NULL),(9,'cdna_undefined','',NULL),(10,'chainp','Chain peptide',NULL),(11,'cls_all_anchored','All Capture Long-Seq (anchored)',NULL),(12,'cls_all_unanchored','All Capture Long-Seq',NULL),(13,'cls_brain_anchored','Brain Capture Long-Seq (anchored)',NULL),(14,'cls_brain_unanchored','Brain Capture Long-Seq',NULL),(15,'cls_heart_anchored','Heart Capture Long-Seq (anchored)',NULL),(16,'cls_heart_unanchored','Heart Capture Long-Seq',NULL),(17,'cls_hela_anchored','HeLa Capture Long-Seq (anchored)',NULL),(18,'cls_hela_unanchored','HeLa Capture Long-Seq',NULL),(19,'cls_k562_anchored','K562 Capture Long-Seq (anchored)',NULL),(20,'cls_k562_unanchored','K562 Capture Long-Seq',NULL),(21,'cls_liver_anchored','Liver Capture Long-Seq (anchored)',NULL),(22,'cls_liver_unanchored','Liver Capture Long-Seq',NULL),(23,'cls_testes_anchored','Testes Capture Long-Seq (anchored)',NULL),(24,'cls_testes_unanchored','Testes Capture Long-Seq',NULL),(25,'cmscan_rfam_12.2','Rfam Models',NULL),(26,'cmscan_rfam_12.2_lca','Rfam Models (LCA)',NULL),(27,'dust','Low complexity (Dust)',NULL),(28,'ena_repeat','Repeats (ENA)',NULL),(29,'ena_repeat_direct','Direct repeats (ENA)',NULL),(30,'ena_repeat_dispersed','Dispersed repeats (ENA)',NULL),(31,'ena_repeat_tandem','Tandem repeats (ENA)',NULL),(32,'estgene','EST-based',NULL),(33,'est_exonerate','ESTs',NULL),(34,'exon_coding','Protein-coding exon',NULL),(35,'exon_lnoncoding','Long ncRNA exon',NULL),(36,'exon_mnoncoding','Non-coding exon',NULL),(37,'exon_pseudogene','Pseudogenic exon',NULL),(38,'exon_snoncoding','Short ncRNA exon',NULL),(39,'exon_undefined','',NULL),(40,'gene','Gene',NULL),(41,'gene3d','Gene3D',NULL),(42,'gene_coding','Protein-coding gene',NULL),(43,'gene_genomic_coding','Protein-coding gene',NULL),(44,'gene_genomic_lnoncoding','Long ncRNA gene',NULL),(45,'gene_genomic_mnoncoding','Non-coding gene',NULL),(46,'gene_genomic_pseudogene','Pseudogene',NULL),(47,'gene_genomic_snoncoding','Short ncRNA gene',NULL),(48,'gene_genomic_undefined','',NULL),(49,'gene_lnoncoding','Long ncRNA gene',NULL),(50,'gene_mnoncoding','Non-coding gene',NULL),(51,'gene_pseudogene','Pseudogene',NULL),(52,'gene_rnaseq','RNA-seq genes',NULL),(53,'gene_snoncoding','Short ncRNA gene',NULL),(54,'gene_undefined','',NULL),(55,'goa_import','GOA annotation',NULL),(56,'grc_alignment_import','GRC alignment import',NULL),(57,'hamap','HAMAP',NULL),(58,'hmmpanther','PANTHER',NULL),(59,'human_est','Human ESTs',NULL),(60,'interpro2go','InterPro2GO mapping',NULL),(61,'iwgsc_low_conf','Genes annotated with low confidence by IWGSC',NULL),(62,'lncrna_iwgsc','Long non coding RNA',NULL),(63,'location','Location',NULL),(64,'mirnas_iwgsc','microRNA',NULL),(65,'mobidblite','MobiDB lite',NULL),(66,'ncoils','Coiled-coils (Ncoils)',NULL),(67,'pfam','Pfam',NULL),(68,'pfscan','PROSITE profiles',NULL),(69,'pirsf','PIRSF',NULL),(70,'prints','Prints',NULL),(71,'refseq_import','RefSeq GFF3 annotation import',NULL),(72,'repeatmask','Repeats',NULL),(73,'repeatmask_redat','Repeats: REdat',NULL),(74,'repeatmask_repbase','Repeats: Repbase',NULL),(75,'repeatmask_repbase_human','Repeats',NULL),(76,'repeatmask_repbase_human_low','Repeats (low)',NULL),(77,'sample','RNA-seq samples',NULL),(78,'scanprosite','PROSITE patterns',NULL),(79,'seg','Low complexity (Seg)',NULL),(80,'sfld','SFLD',NULL),(81,'sifts_import','PDB-ENSP mappings',NULL),(82,'signalp','Cleavage site (Signalp)',NULL),(83,'smart','SMART',NULL),(84,'superfamily','Superfamily',NULL),(85,'tallymer','Repeats: Tallymer',NULL),(86,'tigrfam','TIGRFAM',NULL),(87,'tmhmm','Transmembrane helices',NULL),(88,'transcript_coding','Protein-coding transcript',NULL),(89,'transcript_genomic_coding','Protein-coding transcript',NULL),(90,'transcript_genomic_lnoncoding','Long ncRNA transcript',NULL),(91,'transcript_genomic_mnoncoding','Non-coding transcript',NULL),(92,'transcript_genomic_pseudogene','Pseudogenic transcript',NULL),(93,'transcript_genomic_snoncoding','Short ncRNA transcript',NULL),(94,'transcript_genomic_undefined','',NULL),(95,'transcript_lnoncoding','Long ncRNA transcript',NULL),(96,'transcript_mnoncoding','Non-coding transcript',NULL),(97,'transcript_pseudogene','Pseudogenic transcript',NULL),(98,'transcript_snoncoding','Short ncRNA transcript',NULL),(99,'transcript_undefined','',NULL),(100,'trf','Tandem repeats (TRF)',NULL),(101,'trnascan_align','tRNA Models',NULL),(102,'ungapped_genome','Base pairs',NULL),(103,'unigene','EST cluster (Unigene)',NULL),(104,'vertrna','Vertebrate cDNAs (ENA)',NULL),(128,'ccds_import','CCDS set',NULL),(129,'cdd','CDD',NULL),(130,'cdna_coding','Protein-coding cDNA',NULL),(131,'cdna_lnoncoding','Long ncRNA cDNA',NULL),(132,'cdna_mnoncoding','Non-coding cDNA',NULL),(133,'cdna_pseudogene','Pseudogenic cDNA',NULL),(134,'cdna_snoncoding','Short ncRNA cDNA',NULL),(135,'cdna_undefined','',NULL),(136,'cls_all_anchored','All Capture Long-Seq (anchored)',NULL),(137,'cls_all_unanchored','All Capture Long-Seq',NULL),(138,'cls_brain_anchored','Brain Capture Long-Seq (anchored)',NULL),(139,'cls_brain_unanchored','Brain Capture Long-Seq',NULL),(140,'cls_heart_anchored','Heart Capture Long-Seq (anchored)',NULL),(141,'cls_heart_unanchored','Heart Capture Long-Seq',NULL),(142,'cls_hela_anchored','HeLa Capture Long-Seq (anchored)',NULL),(143,'cls_hela_unanchored','HeLa Capture Long-Seq',NULL),(144,'cls_k562_anchored','K562 Capture Long-Seq (anchored)',NULL),(145,'cls_k562_unanchored','K562 Capture Long-Seq',NULL),(146,'cls_liver_anchored','Liver Capture Long-Seq (anchored)',NULL),(147,'cls_liver_unanchored','Liver Capture Long-Seq',NULL),(148,'cls_testes_anchored','Testes Capture Long-Seq (anchored)',NULL),(149,'cls_testes_unanchored','Testes Capture Long-Seq',NULL),(150,'dust','Low complexity (Dust)',NULL),(151,'estgene','EST-based',NULL),(152,'exon_coding','Protein-coding exon',NULL),(153,'exon_lnoncoding','Long ncRNA exon',NULL),(154,'exon_mnoncoding','Non-coding exon',NULL),(155,'exon_pseudogene','Pseudogenic exon',NULL),(156,'exon_snoncoding','Short ncRNA exon',NULL),(157,'exon_undefined','',NULL),(158,'gene','Gene',NULL),(159,'gene3d','Gene3D',NULL),(160,'gene_coding','Protein-coding gene',NULL),(161,'gene_genomic_coding','Protein-coding gene',NULL),(162,'gene_genomic_lnoncoding','Long ncRNA gene',NULL),(163,'gene_genomic_mnoncoding','Non-coding gene',NULL),(164,'gene_genomic_pseudogene','Pseudogene',NULL),(165,'gene_genomic_snoncoding','Short ncRNA gene',NULL),(166,'gene_genomic_undefined','',NULL),(167,'gene_lnoncoding','Long ncRNA gene',NULL),(168,'gene_mnoncoding','Non-coding gene',NULL),(169,'gene_pseudogene','Pseudogene',NULL),(170,'gene_rnaseq','RNA-seq genes',NULL),(171,'gene_snoncoding','Short ncRNA gene',NULL),(172,'gene_undefined','',NULL),(173,'goa_import','GOA annotation',NULL),(174,'grc_alignment_import','GRC alignment import',NULL),(175,'hamap','HAMAP',NULL),(176,'hmmpanther','PANTHER',NULL),(177,'human_est','Human ESTs',NULL),(178,'interpro2go','InterPro2GO mapping',NULL),(179,'location','Location',NULL),(180,'mobidblite','MobiDB lite',NULL),(181,'ncoils','Coiled-coils (Ncoils)',NULL),(182,'pfam','Pfam',NULL),(183,'pfscan','PROSITE profiles',NULL),(184,'pirsf','PIRSF',NULL),(185,'prints','Prints',NULL),(186,'refseq_import','RefSeq GFF3 annotation import',NULL),(187,'repeatmask_repbase_human','Repeats',NULL),(188,'repeatmask_repbase_human_low','Repeats (low)',NULL),(189,'sample','RNA-seq samples',NULL),(190,'scanprosite','PROSITE patterns',NULL),(191,'seg','Low complexity (Seg)',NULL),(192,'sfld','SFLD',NULL),(193,'sifts_import','PDB-ENSP mappings',NULL),(194,'signalp','Cleavage site (Signalp)',NULL),(195,'smart','SMART',NULL),(196,'superfamily','Superfamily',NULL),(197,'tigrfam','TIGRFAM',NULL),(198,'tmhmm','Transmembrane helices',NULL),(199,'transcript_coding','Protein-coding transcript',NULL),(200,'transcript_genomic_coding','Protein-coding transcript',NULL),(201,'transcript_genomic_lnoncoding','Long ncRNA transcript',NULL),(202,'transcript_genomic_mnoncoding','Non-coding transcript',NULL),(203,'transcript_genomic_pseudogene','Pseudogenic transcript',NULL),(204,'transcript_genomic_snoncoding','Short ncRNA transcript',NULL),(205,'transcript_genomic_undefined','',NULL),(206,'transcript_lnoncoding','Long ncRNA transcript',NULL),(207,'transcript_mnoncoding','Non-coding transcript',NULL),(208,'transcript_pseudogene','Pseudogenic transcript',NULL),(209,'transcript_snoncoding','Short ncRNA transcript',NULL),(210,'transcript_undefined','',NULL),(211,'trf','Tandem repeats (TRF)',NULL),(212,'ungapped_genome','Base pairs',NULL),(213,'unigene','EST cluster (Unigene)',NULL),(214,'vertrna','Vertebrate cDNAs (ENA)',NULL); +/*!40000 ALTER TABLE `attribute` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `dataset` +-- + +DROP TABLE IF EXISTS `dataset`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `dataset` ( + `dataset_id` int NOT NULL AUTO_INCREMENT, + `dataset_uuid` varchar(128) NOT NULL, + `dataset_type_id` int NOT NULL, + `name` varchar(128) NOT NULL, + `version` varchar(128) DEFAULT NULL, + `created` datetime(6) NOT NULL, + `dataset_source_id` int NOT NULL, + `label` varchar(128) NOT NULL, + PRIMARY KEY (`dataset_id`), + UNIQUE KEY `dataset_uuid` (`dataset_uuid`), + KEY `dataset_dataset_source_id_fd96f115_fk_dataset_s` (`dataset_source_id`), + KEY `dataset_type_id_eb55ae9a` (`dataset_type_id`), + CONSTRAINT `dataset_dataset_source_id_fd96f115_fk_dataset_s` FOREIGN KEY (`dataset_source_id`) REFERENCES `dataset_source` (`dataset_source_id`), + CONSTRAINT `dataset_dataset_type_id_47284562_fk_dataset_type_dataset_type_id` FOREIGN KEY (`dataset_type_id`) REFERENCES `dataset_type` (`dataset_type_id`) +) ENGINE=InnoDB AUTO_INCREMENT=671 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `dataset` +-- + +LOCK TABLES `dataset` WRITE; +/*!40000 ALTER TABLE `dataset` DISABLE KEYS */; +INSERT INTO `dataset` VALUES (1,'a733e44f-93e7-11ec-a39d-005056b38ce3',1,'assembly',NULL,'2022-01-26 18:43:00.000000',4,'GCA_000001405.28'),(2,'a734138a-93e7-11ec-a39d-005056b38ce3',1,'assembly',NULL,'2022-01-27 07:59:56.000000',9,'GCA_000002765.2'),(3,'a734150f-93e7-11ec-a39d-005056b38ce3',1,'assembly',NULL,'2022-01-26 17:59:38.000000',2,'GCA_000002985.3'),(4,'a7341585-93e7-11ec-a39d-005056b38ce3',1,'assembly',NULL,'2022-01-26 17:46:20.000000',1,'GCA_000005845.2'),(5,'a73415e3-93e7-11ec-a39d-005056b38ce3',1,'assembly',NULL,'2022-01-27 08:03:06.000000',10,'GCA_000146045.2'),(6,'a734163b-93e7-11ec-a39d-005056b38ce3',1,'assembly',NULL,'2022-01-27 08:24:42.000000',12,'GCA_900519105.1'),(8,'a73491d1-93e7-11ec-a39d-005056b38ce3',7,'gene_core',NULL,'2022-01-26 18:43:00.000000',4,'2014-01-Ensembl/2021-03'),(9,'a734938a-93e7-11ec-a39d-005056b38ce3',7,'gene_core',NULL,'2022-01-27 07:59:56.000000',9,'2017-10-ENA'),(10,'a7349417-93e7-11ec-a39d-005056b38ce3',7,'gene_core',NULL,'2022-01-27 08:24:42.000000',12,'2018-04-IWGSC'),(11,'a734946f-93e7-11ec-a39d-005056b38ce3',7,'gene_core',NULL,'2022-01-27 08:03:06.000000',10,'2018-08-SGD'),(12,'a73494c3-93e7-11ec-a39d-005056b38ce3',7,'gene_core',NULL,'2022-01-26 17:46:20.000000',1,'2018-09-UnivWisconsin'),(13,'a7349515-93e7-11ec-a39d-005056b38ce3',7,'gene_core',NULL,'2022-01-26 17:59:38.000000',2,'WS269'),(15,'a7429962-93e7-11ec-a39d-005056b38ce3',3,'xref_alignment','2009-06-01','2022-01-26 18:43:00.000000',4,'Alignment-based cross-references'),(16,'a7429bca-93e7-11ec-a39d-005056b38ce3',3,'xref_alignment','2014-06-18','2022-01-26 18:43:00.000000',4,'Alignment-based cross-references'),(17,'a7429ca8-93e7-11ec-a39d-005056b38ce3',3,'xref_alignment','2019-06-25','2022-01-27 07:59:56.000000',9,'Alignment-based cross-references'),(18,'a7429d37-93e7-11ec-a39d-005056b38ce3',3,'xref_alignment','2018-10-25','2022-01-27 08:24:42.000000',12,'Alignment-based cross-references'),(19,'a7429dc5-93e7-11ec-a39d-005056b38ce3',2,'rnacentral_checksum','2014-10-16','2022-01-26 17:59:38.000000',2,'RNAcentral'),(20,'a7429e4d-93e7-11ec-a39d-005056b38ce3',2,'uniparc_checksum','2014-10-16','2022-01-26 17:59:38.000000',2,'UniParc'),(21,'a7429ef5-93e7-11ec-a39d-005056b38ce3',2,'rnacentral_checksum','1','2022-01-26 18:43:00.000000',4,'RNAcentral'),(22,'a7429f69-93e7-11ec-a39d-005056b38ce3',2,'uniparc_checksum','1','2022-01-26 18:43:00.000000',4,'UniParc'),(23,'a7429fe3-93e7-11ec-a39d-005056b38ce3',2,'uniparc_checksum','EG Xref pipeline; 2019-06-20T15:27:05','2022-01-27 07:59:56.000000',9,'UniParc'),(24,'a742a065-93e7-11ec-a39d-005056b38ce3',2,'uniparc_checksum','EG Xref pipeline; 2018-03-28T14:58:36','2022-01-27 08:03:06.000000',10,'UniParc'),(25,'a742a0e6-93e7-11ec-a39d-005056b38ce3',2,'uniparc_checksum','EG Xref pipeline; 2018-10-23T03:50:20','2022-01-27 08:24:42.000000',12,'UniParc'),(26,'a742a177-93e7-11ec-a39d-005056b38ce3',4,'xref_dependent','2014-10-16','2022-01-26 17:59:38.000000',2,'Dependent cross-references'),(27,'a742a1f4-93e7-11ec-a39d-005056b38ce3',4,'xref_dependent','2021-01-06','2022-01-26 17:59:38.000000',2,'Dependent cross-references'),(28,'a742a271-93e7-11ec-a39d-005056b38ce3',4,'xref_dependent','2009-06-01','2022-01-26 18:43:00.000000',4,'Dependent cross-references'),(29,'a742a2ea-93e7-11ec-a39d-005056b38ce3',4,'xref_dependent','2021-01-08','2022-01-26 18:43:00.000000',4,'Dependent cross-references'),(30,'a742a364-93e7-11ec-a39d-005056b38ce3',4,'xref_dependent','2019-06-25','2022-01-27 07:59:56.000000',9,'Dependent cross-references'),(31,'a742a3d5-93e7-11ec-a39d-005056b38ce3',4,'xref_dependent','2021-01-06','2022-01-27 07:59:56.000000',9,'Dependent cross-references'),(32,'a742a478-93e7-11ec-a39d-005056b38ce3',4,'xref_dependent','2018-03-28','2022-01-27 08:03:06.000000',10,'Dependent cross-references'),(33,'a742a613-93e7-11ec-a39d-005056b38ce3',4,'xref_dependent','2021-01-06','2022-01-27 08:03:06.000000',10,'Dependent cross-references'),(34,'a742a702-93e7-11ec-a39d-005056b38ce3',4,'xref_dependent','2018-10-23','2022-01-27 08:24:42.000000',12,'Dependent cross-references'),(35,'a742a7cf-93e7-11ec-a39d-005056b38ce3',4,'xref_dependent','2021-01-06','2022-01-27 08:24:42.000000',12,'Dependent cross-references'),(36,'a742a8a5-93e7-11ec-a39d-005056b38ce3',5,'xref_direct','2014-10-16','2022-01-26 17:59:38.000000',2,'Direct cross-references'),(37,'a742a95e-93e7-11ec-a39d-005056b38ce3',5,'xref_direct','2014-06-13','2022-01-26 18:43:00.000000',4,'Direct cross-references'),(38,'a742a9da-93e7-11ec-a39d-005056b38ce3',5,'xref_direct','2014-06-18','2022-01-26 18:43:00.000000',4,'Direct cross-references'),(39,'a742aa50-93e7-11ec-a39d-005056b38ce3',5,'xref_direct','2018-03-28','2022-01-27 08:03:06.000000',10,'Direct cross-references'),(40,'a742aac7-93e7-11ec-a39d-005056b38ce3',5,'xref_direct','2020-06-08','2022-01-27 08:24:42.000000',12,'Direct cross-references'),(41,'a742ab3e-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(42,'a742abad-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(43,'a742ac17-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(44,'a742ac7f-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(45,'a742ace5-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(46,'a742ad4f-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(47,'a742ae04-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(48,'a742aea7-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(49,'a742af61-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(50,'a742b01e-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(51,'a742b0dc-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(52,'a742b156-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(53,'a742b1bb-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(54,'a742b223-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(55,'a742b2d3-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(56,'a742b387-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(57,'a742b42c-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(58,'a742b4de-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(59,'a742b56f-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(60,'a742b5db-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(61,'a742b644-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(62,'a742b6d5-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(63,'a742b748-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(64,'a742b7c2-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(65,'a742b840-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(66,'a742b8ac-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(67,'a742b916-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(68,'a742b97c-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(69,'a742b9e2-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(70,'a742ba48-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(71,'a742bac2-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(72,'a742bb2e-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(73,'a742bb95-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(74,'a742bbfc-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(75,'a742bc79-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(76,'a742bd0a-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(77,'a742bdc3-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(78,'a742be6e-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(79,'a742bf20-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(80,'a742bf93-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(81,'a742bffc-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(82,'a742c062-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(83,'a742c0dc-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(84,'a742c159-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(85,'a742c1be-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(86,'a742c225-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(87,'a742c28a-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(88,'a742c2f0-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(89,'a742c365-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(90,'a742c3d8-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(91,'a742c43e-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(92,'a742c4a4-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(93,'a742c50a-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(94,'a742c572-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(95,'a742c5d9-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(96,'a742c63b-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(97,'a742c6a0-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(98,'a742c70d-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(99,'a742c777-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(100,'a742c7dd-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(101,'a742c851-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(102,'a742c8c8-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(103,'a742c92e-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(104,'a742c993-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(105,'a742c9f7-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(106,'a742ca59-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(107,'a742cac0-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(108,'a742cb25-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(109,'a742cbc5-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(110,'a742cd29-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(111,'a742cdd8-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(112,'a742ce57-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(113,'a742cf0e-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(114,'a742cfb1-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(115,'a742d024-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(116,'a742d089-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(117,'a742d0ed-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(118,'a742d154-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(119,'a742d1bd-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(120,'a742d27f-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(121,'a742d2e9-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(122,'a742d34e-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(123,'a742d3d5-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(124,'a742d459-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(125,'a742d4c0-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(126,'a742d52a-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(127,'a742d590-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(128,'a742d5f6-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(129,'a742d65d-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(130,'a742d6c7-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(131,'a742d79a-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(132,'a742d805-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(133,'a742d86e-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(134,'a742d8e3-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(135,'a742d983-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(136,'a742d9ea-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(137,'a742dedc-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(138,'a742df5b-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(139,'a742dffd-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(140,'a742e062-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(141,'a742e0ca-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(142,'a742e136-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(143,'a742e19f-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(144,'a742e1fd-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(145,'a742e25c-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(146,'a742e2bb-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(147,'a742e31a-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(148,'a742e37c-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(149,'a742e3db-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(150,'a742e43d-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(151,'a742e4a0-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(152,'a742e505-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(153,'a742e568-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(154,'a742e5e1-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(155,'a742e642-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(156,'a742e6a1-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(157,'a742e719-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(158,'a742e789-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(159,'a742e7ed-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(160,'a742e84f-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(161,'a742e8af-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(162,'a742e90f-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(163,'a742e970-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(164,'a742e9d1-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(165,'a742ea30-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(166,'a742ea8d-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(167,'a742eaef-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(168,'a742eb54-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(169,'a742ebf7-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(170,'a742ec5d-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(171,'a742ecbf-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(172,'a742ed1d-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(173,'a742ed7d-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(174,'a742eddc-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(175,'a742ee3a-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(176,'a742ee97-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(177,'a742eef6-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(178,'a742ef69-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(179,'a742efd4-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(180,'a742f03d-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(181,'a742f09b-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(182,'a742f0fc-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(183,'a742f168-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(184,'a742f1cf-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(185,'a742f22e-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(186,'a742f291-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(187,'a742f35e-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(188,'a742f3ce-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(189,'a742f430-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(190,'a742f48f-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(191,'a742f4ec-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(192,'a742f549-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(193,'a742f5a8-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(194,'a742f607-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(195,'a742f664-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(196,'a742f6c1-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(197,'a742f720-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(198,'a742f77e-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(199,'a742f7da-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(200,'a742f836-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(201,'a742f894-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(202,'a742f8f3-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(203,'a742f951-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(204,'a742f9ae-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(205,'a7432d62-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(206,'a7432e9a-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(207,'a7432f1d-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(208,'a7432f90-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(209,'a7432ff1-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(210,'a7433053-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(211,'a74330b5-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(212,'a7433113-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(213,'a7433172-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(214,'a74331cf-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(215,'a743322c-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(216,'a743328b-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(217,'a74332e5-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(218,'a7433346-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(219,'a74333a6-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(220,'a7433405-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(221,'a7433468-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(222,'a74334c7-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(223,'a7433522-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(224,'a743357d-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(225,'a74335d9-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(226,'a7433639-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(227,'a7433697-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(228,'a74336f6-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(229,'a743375a-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(230,'a74337ba-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(231,'a743384a-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(232,'a74338f0-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(233,'a74339ae-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(234,'a7433a4e-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(235,'a7433ab7-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(236,'a7433b19-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(237,'a7433b78-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(238,'a7433bd9-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(239,'a7433c36-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(240,'a7433c93-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(241,'a7433cf0-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(242,'a7433d50-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2','12.2','2022-01-26 17:46:20.000000',1,'Rfam Models'),(243,'a7433db0-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2020-05-06','2022-01-26 17:46:20.000000',1,'tRNA Models'),(244,'a7433e64-93e7-11ec-a39d-005056b38ce3',6,'unigene','2010-06-02 15:00','2022-01-26 18:43:00.000000',4,'EST cluster (Unigene)'),(245,'a7433ecf-93e7-11ec-a39d-005056b38ce3',6,'vertrna','2011-12-09 11:25','2022-01-26 18:43:00.000000',4,'Vertebrate cDNAs (ENA)'),(246,'a7433f40-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2_lca','12.2','2022-01-27 08:03:06.000000',10,'Rfam Models (LCA)'),(247,'a7433fc8-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2017-06-22','2022-01-27 08:03:06.000000',10,'tRNA Models'),(248,'a7434035-93e7-11ec-a39d-005056b38ce3',6,'cmscan_rfam_12.2_lca','12.2','2022-01-27 08:24:42.000000',12,'Rfam Models (LCA)'),(249,'a743409b-93e7-11ec-a39d-005056b38ce3',6,'lncrna_iwgsc','2017-09-01','2022-01-27 08:24:42.000000',12,'Long non coding RNA'),(250,'a743418f-93e7-11ec-a39d-005056b38ce3',6,'mirnas_iwgsc',NULL,'2022-01-27 08:24:42.000000',12,'microRNA'),(251,'a7434212-93e7-11ec-a39d-005056b38ce3',6,'trnascan_align','2018-08-08','2022-01-27 08:24:42.000000',12,'tRNA Models'),(252,'a743428b-93e7-11ec-a39d-005056b38ce3',12,'goa_import','2021-02-16','2022-01-26 17:59:38.000000',2,'GOA annotation'),(253,'a7434329-93e7-11ec-a39d-005056b38ce3',12,'interpro2go','2021-01-06','2022-01-26 17:59:38.000000',2,'InterPro2GO mapping'),(254,'a74343a3-93e7-11ec-a39d-005056b38ce3',12,'goa_import','2021-03-01','2022-01-26 18:43:00.000000',4,'GOA annotation'),(255,'a7434413-93e7-11ec-a39d-005056b38ce3',12,'interpro2go','2021-01-08','2022-01-26 18:43:00.000000',4,'InterPro2GO mapping'),(256,'a7434489-93e7-11ec-a39d-005056b38ce3',12,'goa_import','2021-02-16','2022-01-27 07:59:56.000000',9,'GOA annotation'),(257,'a74344fa-93e7-11ec-a39d-005056b38ce3',12,'interpro2go','2021-01-06','2022-01-27 07:59:56.000000',9,'InterPro2GO mapping'),(258,'a7434570-93e7-11ec-a39d-005056b38ce3',12,'goa_import','2021-02-16','2022-01-27 08:03:06.000000',10,'GOA annotation'),(259,'a74345da-93e7-11ec-a39d-005056b38ce3',12,'interpro2go','2021-01-06','2022-01-27 08:03:06.000000',10,'InterPro2GO mapping'),(260,'a7434649-93e7-11ec-a39d-005056b38ce3',12,'goa_import','2021-02-16','2022-01-27 08:24:42.000000',12,'GOA annotation'),(261,'a74346b0-93e7-11ec-a39d-005056b38ce3',12,'interpro2go','2021-01-06','2022-01-27 08:24:42.000000',12,'InterPro2GO mapping'),(262,'a7434722-93e7-11ec-a39d-005056b38ce3',17,'interproscan','5.48-83.0','2022-01-26 17:59:38.000000',2,'InterProScan'),(263,'a74347a0-93e7-11ec-a39d-005056b38ce3',17,'interproscan','5.48-83.0','2022-01-26 18:43:00.000000',4,'InterProScan'),(264,'a7434811-93e7-11ec-a39d-005056b38ce3',17,'interproscan','5.48-83.0','2022-01-27 07:59:56.000000',9,'InterProScan'),(265,'a7434889-93e7-11ec-a39d-005056b38ce3',17,'interproscan','5.48-83.0','2022-01-27 08:03:06.000000',10,'InterProScan'),(266,'a74348f4-93e7-11ec-a39d-005056b38ce3',17,'interproscan','5.48-83.0','2022-01-27 08:24:42.000000',12,'InterProScan'),(267,'a7434963-93e7-11ec-a39d-005056b38ce3',18,'ena_repeat_dispersed','2020-01-22','2022-01-26 17:46:20.000000',1,'Dispersed repeats (ENA)'),(268,'a74349d2-93e7-11ec-a39d-005056b38ce3',18,'ena_repeat_tandem','2020-01-21','2022-01-26 17:46:20.000000',1,'Tandem repeats (ENA)'),(269,'a7434a39-93e7-11ec-a39d-005056b38ce3',18,'ena_repeat_tandem','2020-01-21','2022-01-26 17:46:20.000000',1,'Tandem repeats (ENA)'),(270,'a7434aa1-93e7-11ec-a39d-005056b38ce3',18,'ena_repeat','2020-01-21','2022-01-26 17:46:20.000000',1,'Repeats (ENA)'),(271,'a7434b25-93e7-11ec-a39d-005056b38ce3',18,'ena_repeat','2020-01-21','2022-01-26 17:46:20.000000',1,'Repeats (ENA)'),(272,'a7434b86-93e7-11ec-a39d-005056b38ce3',18,'ena_repeat','2020-01-21','2022-01-26 17:46:20.000000',1,'Repeats (ENA)'),(273,'a7434be7-93e7-11ec-a39d-005056b38ce3',18,'ena_repeat','2020-01-21','2022-01-26 17:46:20.000000',1,'Repeats (ENA)'),(274,'a7434c4b-93e7-11ec-a39d-005056b38ce3',18,'ena_repeat','2020-01-21','2022-01-26 17:46:20.000000',1,'Repeats (ENA)'),(275,'a7434cae-93e7-11ec-a39d-005056b38ce3',18,'ena_repeat','2020-01-21','2022-01-26 17:46:20.000000',1,'Repeats (ENA)'),(276,'a7434d16-93e7-11ec-a39d-005056b38ce3',18,'ena_repeat_direct','2020-01-24','2022-01-26 17:46:20.000000',1,'Direct repeats (ENA)'),(277,'a7434d79-93e7-11ec-a39d-005056b38ce3',18,'ena_repeat','2020-01-21','2022-01-26 17:46:20.000000',1,'Repeats (ENA)'),(278,'a7434dda-93e7-11ec-a39d-005056b38ce3',18,'ena_repeat','2020-01-21','2022-01-26 17:46:20.000000',1,'Repeats (ENA)'),(279,'a7434ea2-93e7-11ec-a39d-005056b38ce3',18,'ena_repeat_tandem','2020-01-21','2022-01-26 17:46:20.000000',1,'Tandem repeats (ENA)'),(280,'a7434f12-93e7-11ec-a39d-005056b38ce3',18,'ena_repeat','2020-01-21','2022-01-26 17:46:20.000000',1,'Repeats (ENA)'),(281,'a7434f7b-93e7-11ec-a39d-005056b38ce3',18,'ena_repeat','2020-01-21','2022-01-26 17:46:20.000000',1,'Repeats (ENA)'),(282,'a7434fdf-93e7-11ec-a39d-005056b38ce3',18,'ena_repeat_tandem','2020-01-21','2022-01-26 17:46:20.000000',1,'Tandem repeats (ENA)'),(283,'a7435043-93e7-11ec-a39d-005056b38ce3',18,'ena_repeat','2020-01-21','2022-01-26 17:46:20.000000',1,'Repeats (ENA)'),(284,'a74350a5-93e7-11ec-a39d-005056b38ce3',18,'ena_repeat','2020-01-21','2022-01-26 17:46:20.000000',1,'Repeats (ENA)'),(285,'a7435108-93e7-11ec-a39d-005056b38ce3',18,'ena_repeat','2020-01-21','2022-01-26 17:46:20.000000',1,'Repeats (ENA)'),(286,'a743516a-93e7-11ec-a39d-005056b38ce3',18,'ena_repeat','2020-01-21','2022-01-26 17:46:20.000000',1,'Repeats (ENA)'),(287,'a74351c9-93e7-11ec-a39d-005056b38ce3',18,'ena_repeat','2020-01-21','2022-01-26 17:46:20.000000',1,'Repeats (ENA)'),(288,'a7435227-93e7-11ec-a39d-005056b38ce3',18,'ena_repeat','2020-01-21','2022-01-26 17:46:20.000000',1,'Repeats (ENA)'),(289,'a7435285-93e7-11ec-a39d-005056b38ce3',18,'ena_repeat','2020-01-21','2022-01-26 17:46:20.000000',1,'Repeats (ENA)'),(290,'a74352e9-93e7-11ec-a39d-005056b38ce3',18,'ena_repeat','2020-01-21','2022-01-26 17:46:20.000000',1,'Repeats (ENA)'),(291,'a743534b-93e7-11ec-a39d-005056b38ce3',18,'ena_repeat','2020-01-21','2022-01-26 17:46:20.000000',1,'Repeats (ENA)'),(292,'a74353ac-93e7-11ec-a39d-005056b38ce3',18,'ena_repeat_tandem','2020-01-21','2022-01-26 17:46:20.000000',1,'Tandem repeats (ENA)'),(293,'a743540e-93e7-11ec-a39d-005056b38ce3',18,'ena_repeat','2020-01-21','2022-01-26 17:46:20.000000',1,'Repeats (ENA)'),(294,'a743546e-93e7-11ec-a39d-005056b38ce3',18,'ena_repeat','2020-01-21','2022-01-26 17:46:20.000000',1,'Repeats (ENA)'),(295,'a74354d1-93e7-11ec-a39d-005056b38ce3',18,'ena_repeat','2020-01-21','2022-01-26 17:46:20.000000',1,'Repeats (ENA)'),(296,'a7435531-93e7-11ec-a39d-005056b38ce3',18,'ena_repeat','2020-01-21','2022-01-26 17:46:20.000000',1,'Repeats (ENA)'),(297,'a74355a5-93e7-11ec-a39d-005056b38ce3',18,'dust','1','2022-01-26 17:59:38.000000',2,'Low complexity (Dust)'),(298,'a743560f-93e7-11ec-a39d-005056b38ce3',18,'repeatmask','1','2022-01-26 17:59:38.000000',2,'Repeats'),(299,'a7435673-93e7-11ec-a39d-005056b38ce3',18,'trf','1','2022-01-26 17:59:38.000000',2,'Tandem repeats (TRF)'),(300,'a74356e2-93e7-11ec-a39d-005056b38ce3',18,'dust','1','2022-01-26 18:43:00.000000',4,'Low complexity (Dust)'),(301,'a7435745-93e7-11ec-a39d-005056b38ce3',18,'repeatmask_repbase_human_low','3.3.0','2022-01-26 18:43:00.000000',4,'Repeats (low)'),(302,'a74357aa-93e7-11ec-a39d-005056b38ce3',18,'repeatmask_repbase_human','3.3.0','2022-01-26 18:43:00.000000',4,'Repeats'),(303,'a743580e-93e7-11ec-a39d-005056b38ce3',18,'trf','2014-02-06','2022-01-26 18:43:00.000000',4,'Tandem repeats (TRF)'),(304,'a7435880-93e7-11ec-a39d-005056b38ce3',18,'dust','2','2022-01-27 08:03:06.000000',10,'Low complexity (Dust)'),(305,'a74358e7-93e7-11ec-a39d-005056b38ce3',18,'repeatmask','3.2.9','2022-01-27 08:03:06.000000',10,'Repeats'),(306,'a7435946-93e7-11ec-a39d-005056b38ce3',18,'trf','2011-02-10','2022-01-27 08:03:06.000000',10,'Tandem repeats (TRF)'),(307,'a74359b3-93e7-11ec-a39d-005056b38ce3',18,'dust','2018-08-08','2022-01-27 08:24:42.000000',12,'Low complexity (Dust)'),(308,'a7435a51-93e7-11ec-a39d-005056b38ce3',18,'repeatmask_redat','4.0.5','2022-01-27 08:24:42.000000',12,'Repeats: REdat'),(309,'a7435b35-93e7-11ec-a39d-005056b38ce3',18,'repeatmask_repbase','4.0.5','2022-01-27 08:24:42.000000',12,'Repeats: Repbase'),(310,'a7435be8-93e7-11ec-a39d-005056b38ce3',18,'tallymer','2018-11-05','2022-01-27 08:24:42.000000',12,'Repeats: Tallymer'),(311,'a7435c52-93e7-11ec-a39d-005056b38ce3',18,'trf','4.0','2022-01-27 08:24:42.000000',12,'Tandem repeats (TRF)'),(312,'a7435cc3-93e7-11ec-a39d-005056b38ce3',6,'grc_alignment_import','GRCh38.p2','2022-02-22 13:59:29.000000',6,'GRC alignment import'),(313,'a7435d4e-93e7-11ec-a39d-005056b38ce3',6,'human_est','Jan 31 12:35','2022-02-22 13:59:29.000000',6,'Human ESTs'),(314,'a7435e01-93e7-11ec-a39d-005056b38ce3',7,'ccds_import','24042014','2022-02-22 13:59:29.000000',6,'CCDS set'),(315,'a7435e81-93e7-11ec-a39d-005056b38ce3',7,'cls_all_anchored','GSE93848','2022-02-22 13:59:29.000000',6,'All Capture Long-Seq (anchored)'),(316,'a7435ef3-93e7-11ec-a39d-005056b38ce3',7,'cls_all_unanchored','GSE93848','2022-02-22 13:59:29.000000',6,'All Capture Long-Seq'),(317,'a7435f61-93e7-11ec-a39d-005056b38ce3',7,'cls_brain_anchored','GSE93848','2022-02-22 13:59:29.000000',6,'Brain Capture Long-Seq (anchored)'),(318,'a7435fd2-93e7-11ec-a39d-005056b38ce3',7,'cls_brain_unanchored','GSE93848','2022-02-22 13:59:29.000000',6,'Brain Capture Long-Seq'),(319,'a743603e-93e7-11ec-a39d-005056b38ce3',7,'cls_heart_anchored','GSE93848','2022-02-22 13:59:29.000000',6,'Heart Capture Long-Seq (anchored)'),(320,'a74360a8-93e7-11ec-a39d-005056b38ce3',7,'cls_heart_unanchored','GSE93848','2022-02-22 13:59:29.000000',6,'Heart Capture Long-Seq'),(321,'a743610c-93e7-11ec-a39d-005056b38ce3',7,'cls_hela_anchored','GSE93848','2022-02-22 13:59:29.000000',6,'HeLa Capture Long-Seq (anchored)'),(322,'a7436176-93e7-11ec-a39d-005056b38ce3',7,'cls_hela_unanchored','GSE93848','2022-02-22 13:59:29.000000',6,'HeLa Capture Long-Seq'),(323,'a74361dd-93e7-11ec-a39d-005056b38ce3',7,'cls_k562_anchored','GSE93848','2022-02-22 13:59:29.000000',6,'K562 Capture Long-Seq (anchored)'),(324,'a7436244-93e7-11ec-a39d-005056b38ce3',7,'cls_k562_unanchored','GSE93848','2022-02-22 13:59:29.000000',6,'K562 Capture Long-Seq'),(325,'a74362af-93e7-11ec-a39d-005056b38ce3',7,'cls_liver_anchored','GSE93848','2022-02-22 13:59:29.000000',6,'Liver Capture Long-Seq (anchored)'),(326,'a7436315-93e7-11ec-a39d-005056b38ce3',7,'cls_liver_unanchored','GSE93848','2022-02-22 13:59:29.000000',6,'Liver Capture Long-Seq'),(327,'a743637a-93e7-11ec-a39d-005056b38ce3',7,'cls_testes_anchored','GSE93848','2022-02-22 13:59:29.000000',6,'Testes Capture Long-Seq (anchored)'),(328,'a74363e0-93e7-11ec-a39d-005056b38ce3',7,'cls_testes_unanchored','GSE93848','2022-02-22 13:59:29.000000',6,'Testes Capture Long-Seq'),(329,'a7436447-93e7-11ec-a39d-005056b38ce3',7,'estgene','Jan 31 12:35','2022-02-22 13:59:29.000000',6,'EST-based'),(330,'a74364af-93e7-11ec-a39d-005056b38ce3',7,'refseq_import','2020-12-10 18:46:50','2022-02-22 13:59:29.000000',6,'RefSeq GFF3 annotation import'),(331,'a743652e-93e7-11ec-a39d-005056b38ce3',7,'aligned_tgac','2017-09-12','2022-02-22 13:59:29.000000',14,'Genes aligned from TGACv1 with Exonerate'),(332,'a74365a8-93e7-11ec-a39d-005056b38ce3',7,'iwgsc_low_conf','2017-10-30','2022-02-22 13:59:29.000000',14,'Genes annotated with low confidence by IWGSC'),(333,'a7436625-93e7-11ec-a39d-005056b38ce3',7,'gene_rnaseq','2014-05-07','2022-02-22 13:59:29.000000',7,'RNA-seq gene models'),(334,'a743669c-93e7-11ec-a39d-005056b38ce3',19,'datafiles_bamcov','2014-06-23','2022-02-22 13:59:29.000000',7,'BAM coverage files'),(526,'50e192ea-948d-11ec-a39d-005056b38ce3',1,'assembly',NULL,'2022-02-22 16:50:48.000000',16,'GCA_000001405.14'),(527,'50e198e3-948d-11ec-a39d-005056b38ce3',22,'assembly',NULL,'2022-02-22 16:50:48.000000',16,'GCA_000001405.14'),(529,'546e8ed4-948d-11ec-a39d-005056b38ce3',7,'gene_core',NULL,'2022-02-22 16:50:48.000000',16,'2010-07-Ensembl/2013-09'),(530,'546e9178-948d-11ec-a39d-005056b38ce3',28,'gene_core',NULL,'2022-02-22 16:50:48.000000',16,'2010-07-Ensembl/2013-09'),(595,'76ff0f75-948d-11ec-a39d-005056b38ce3',2,'rnacentral_checksum','1','2022-01-26 18:43:00.000000',4,'RNAcentral'),(596,'76ff1535-948d-11ec-a39d-005056b38ce3',2,'uniparc_checksum','1','2022-01-26 18:43:00.000000',4,'UniParc'),(597,'76ff1831-948d-11ec-a39d-005056b38ce3',3,'xref_alignment','2009-06-01','2022-01-26 18:43:00.000000',4,'Alignment-based cross-references'),(598,'76ff18e3-948d-11ec-a39d-005056b38ce3',3,'xref_alignment','2014-06-18','2022-01-26 18:43:00.000000',4,'Alignment-based cross-references'),(599,'76ff198c-948d-11ec-a39d-005056b38ce3',4,'xref_dependent','2009-06-01','2022-01-26 18:43:00.000000',4,'Dependent cross-references'),(600,'76ff1a08-948d-11ec-a39d-005056b38ce3',4,'xref_dependent','2021-01-08','2022-01-26 18:43:00.000000',4,'Dependent cross-references'),(601,'76ff1a95-948d-11ec-a39d-005056b38ce3',5,'xref_direct','2014-06-13','2022-01-26 18:43:00.000000',4,'Direct cross-references'),(602,'76ff2359-948d-11ec-a39d-005056b38ce3',5,'xref_direct','2014-06-18','2022-01-26 18:43:00.000000',4,'Direct cross-references'),(603,'76ff9220-948d-11ec-a39d-005056b38ce3',6,'unigene','2010-06-02 15:00','2022-01-26 18:43:00.000000',4,'EST cluster (Unigene)'),(604,'76ff9386-948d-11ec-a39d-005056b38ce3',6,'vertrna','2011-12-09 11:25','2022-01-26 18:43:00.000000',4,'Vertebrate cDNAs (ENA)'),(605,'76ff940e-948d-11ec-a39d-005056b38ce3',6,'grc_alignment_import','GRCh38.p2','2022-02-23 09:46:24.000000',6,'GRC alignment import'),(606,'76ff948b-948d-11ec-a39d-005056b38ce3',6,'human_est','Jan 31 12:35','2022-02-23 09:46:24.000000',6,'Human ESTs'),(607,'76ff9526-948d-11ec-a39d-005056b38ce3',7,'ccds_import','24042014','2022-02-23 09:46:24.000000',6,'CCDS set'),(608,'76ff9594-948d-11ec-a39d-005056b38ce3',7,'cls_all_anchored','GSE93848','2022-02-23 09:46:24.000000',6,'All Capture Long-Seq (anchored)'),(609,'76ff9cec-948d-11ec-a39d-005056b38ce3',7,'cls_all_unanchored','GSE93848','2022-02-23 09:46:24.000000',6,'All Capture Long-Seq'),(610,'76ff9d62-948d-11ec-a39d-005056b38ce3',7,'cls_brain_anchored','GSE93848','2022-02-23 09:46:24.000000',6,'Brain Capture Long-Seq (anchored)'),(611,'76ff9dc4-948d-11ec-a39d-005056b38ce3',7,'cls_brain_unanchored','GSE93848','2022-02-23 09:46:24.000000',6,'Brain Capture Long-Seq'),(612,'76ff9e13-948d-11ec-a39d-005056b38ce3',7,'cls_heart_anchored','GSE93848','2022-02-23 09:46:24.000000',6,'Heart Capture Long-Seq (anchored)'),(613,'76ff9e6b-948d-11ec-a39d-005056b38ce3',7,'cls_heart_unanchored','GSE93848','2022-02-23 09:46:24.000000',6,'Heart Capture Long-Seq'),(614,'76ff9eb7-948d-11ec-a39d-005056b38ce3',7,'cls_hela_anchored','GSE93848','2022-02-23 09:46:24.000000',6,'HeLa Capture Long-Seq (anchored)'),(615,'76ff9f02-948d-11ec-a39d-005056b38ce3',7,'cls_hela_unanchored','GSE93848','2022-02-23 09:46:24.000000',6,'HeLa Capture Long-Seq'),(616,'76ff9f4e-948d-11ec-a39d-005056b38ce3',7,'cls_k562_anchored','GSE93848','2022-02-23 09:46:24.000000',6,'K562 Capture Long-Seq (anchored)'),(617,'76ff9f98-948d-11ec-a39d-005056b38ce3',7,'cls_k562_unanchored','GSE93848','2022-02-23 09:46:24.000000',6,'K562 Capture Long-Seq'),(618,'76ff9fe0-948d-11ec-a39d-005056b38ce3',7,'cls_liver_anchored','GSE93848','2022-02-23 09:46:24.000000',6,'Liver Capture Long-Seq (anchored)'),(619,'76ffa02c-948d-11ec-a39d-005056b38ce3',7,'cls_liver_unanchored','GSE93848','2022-02-23 09:46:24.000000',6,'Liver Capture Long-Seq'),(620,'76ffa077-948d-11ec-a39d-005056b38ce3',7,'cls_testes_anchored','GSE93848','2022-02-23 09:46:24.000000',6,'Testes Capture Long-Seq (anchored)'),(621,'76ffa0c3-948d-11ec-a39d-005056b38ce3',7,'cls_testes_unanchored','GSE93848','2022-02-23 09:46:24.000000',6,'Testes Capture Long-Seq'),(622,'76ffa142-948d-11ec-a39d-005056b38ce3',7,'estgene','Jan 31 12:35','2022-02-23 09:46:24.000000',6,'EST-based'),(623,'76ffa194-948d-11ec-a39d-005056b38ce3',7,'refseq_import','2020-12-10 18:46:50','2022-02-23 09:46:24.000000',6,'RefSeq GFF3 annotation import'),(624,'76ffa1e6-948d-11ec-a39d-005056b38ce3',7,'gene_rnaseq','2014-05-07','2022-02-23 09:46:24.000000',7,'RNA-seq gene models'),(625,'76ffa34f-948d-11ec-a39d-005056b38ce3',12,'goa_import','2021-03-01','2022-01-26 18:43:00.000000',4,'GOA annotation'),(626,'76ffa3bc-948d-11ec-a39d-005056b38ce3',12,'interpro2go','2021-01-08','2022-01-26 18:43:00.000000',4,'InterPro2GO mapping'),(627,'76ffa505-948d-11ec-a39d-005056b38ce3',17,'interproscan','5.48-83.0','2022-01-26 18:43:00.000000',4,'InterProScan'),(628,'76ffa59d-948d-11ec-a39d-005056b38ce3',18,'dust','1','2022-01-26 18:43:00.000000',4,'Low complexity (Dust)'),(629,'76ffa5f9-948d-11ec-a39d-005056b38ce3',18,'repeatmask_repbase_human_low','3.3.0','2022-01-26 18:43:00.000000',4,'Repeats (low)'),(630,'76ffa646-948d-11ec-a39d-005056b38ce3',18,'repeatmask_repbase_human','3.3.0','2022-01-26 18:43:00.000000',4,'Repeats'),(631,'76ffa693-948d-11ec-a39d-005056b38ce3',18,'trf','2014-02-06','2022-01-26 18:43:00.000000',4,'Tandem repeats (TRF)'),(632,'76ffa72e-948d-11ec-a39d-005056b38ce3',19,'datafiles_bamcov','2014-06-23','2022-02-23 09:46:24.000000',7,'BAM coverage files'),(633,'76ffa81f-948d-11ec-a39d-005056b38ce3',23,'rnacentral_checksum','1','2022-01-26 18:43:00.000000',4,'RNAcentral'),(634,'76ffa88a-948d-11ec-a39d-005056b38ce3',23,'uniparc_checksum','1','2022-01-26 18:43:00.000000',4,'UniParc'),(635,'76ffa90d-948d-11ec-a39d-005056b38ce3',24,'xref_alignment','2009-06-01','2022-01-26 18:43:00.000000',4,'Alignment-based cross-references'),(636,'76ffa968-948d-11ec-a39d-005056b38ce3',24,'xref_alignment','2014-06-18','2022-01-26 18:43:00.000000',4,'Alignment-based cross-references'),(637,'76ffa9f5-948d-11ec-a39d-005056b38ce3',25,'xref_dependent','2009-06-01','2022-01-26 18:43:00.000000',4,'Dependent cross-references'),(638,'76ffaa4a-948d-11ec-a39d-005056b38ce3',25,'xref_dependent','2021-01-08','2022-01-26 18:43:00.000000',4,'Dependent cross-references'),(639,'76ffaaca-948d-11ec-a39d-005056b38ce3',26,'xref_direct','2014-06-13','2022-01-26 18:43:00.000000',4,'Direct cross-references'),(640,'76ffab1c-948d-11ec-a39d-005056b38ce3',26,'xref_direct','2014-06-18','2022-01-26 18:43:00.000000',4,'Direct cross-references'),(641,'76ffac1e-948d-11ec-a39d-005056b38ce3',27,'unigene','2010-06-02 15:00','2022-01-26 18:43:00.000000',4,'EST cluster (Unigene)'),(642,'76ffac83-948d-11ec-a39d-005056b38ce3',27,'vertrna','2011-12-09 11:25','2022-01-26 18:43:00.000000',4,'Vertebrate cDNAs (ENA)'),(643,'76ffacda-948d-11ec-a39d-005056b38ce3',27,'grc_alignment_import','GRCh38.p2','2022-02-23 09:46:24.000000',6,'GRC alignment import'),(644,'76ffad29-948d-11ec-a39d-005056b38ce3',27,'human_est','Jan 31 12:35','2022-02-23 09:46:24.000000',6,'Human ESTs'),(645,'76ffadad-948d-11ec-a39d-005056b38ce3',28,'ccds_import','24042014','2022-02-23 09:46:24.000000',6,'CCDS set'),(646,'76ffae03-948d-11ec-a39d-005056b38ce3',28,'cls_all_anchored','GSE93848','2022-02-23 09:46:24.000000',6,'All Capture Long-Seq (anchored)'),(647,'76ffae53-948d-11ec-a39d-005056b38ce3',28,'cls_all_unanchored','GSE93848','2022-02-23 09:46:24.000000',6,'All Capture Long-Seq'),(648,'76ffaea3-948d-11ec-a39d-005056b38ce3',28,'cls_brain_anchored','GSE93848','2022-02-23 09:46:24.000000',6,'Brain Capture Long-Seq (anchored)'),(649,'76ffaef3-948d-11ec-a39d-005056b38ce3',28,'cls_brain_unanchored','GSE93848','2022-02-23 09:46:24.000000',6,'Brain Capture Long-Seq'),(650,'76ffaf41-948d-11ec-a39d-005056b38ce3',28,'cls_heart_anchored','GSE93848','2022-02-23 09:46:24.000000',6,'Heart Capture Long-Seq (anchored)'),(651,'76ffaf8c-948d-11ec-a39d-005056b38ce3',28,'cls_heart_unanchored','GSE93848','2022-02-23 09:46:24.000000',6,'Heart Capture Long-Seq'),(652,'76ffafd6-948d-11ec-a39d-005056b38ce3',28,'cls_hela_anchored','GSE93848','2022-02-23 09:46:24.000000',6,'HeLa Capture Long-Seq (anchored)'),(653,'76ffb01e-948d-11ec-a39d-005056b38ce3',28,'cls_hela_unanchored','GSE93848','2022-02-23 09:46:24.000000',6,'HeLa Capture Long-Seq'),(654,'76ffb068-948d-11ec-a39d-005056b38ce3',28,'cls_k562_anchored','GSE93848','2022-02-23 09:46:24.000000',6,'K562 Capture Long-Seq (anchored)'),(655,'76ffb0af-948d-11ec-a39d-005056b38ce3',28,'cls_k562_unanchored','GSE93848','2022-02-23 09:46:24.000000',6,'K562 Capture Long-Seq'),(656,'76ffb0f9-948d-11ec-a39d-005056b38ce3',28,'cls_liver_anchored','GSE93848','2022-02-23 09:46:24.000000',6,'Liver Capture Long-Seq (anchored)'),(657,'76ffb142-948d-11ec-a39d-005056b38ce3',28,'cls_liver_unanchored','GSE93848','2022-02-23 09:46:24.000000',6,'Liver Capture Long-Seq'),(658,'76ffb18b-948d-11ec-a39d-005056b38ce3',28,'cls_testes_anchored','GSE93848','2022-02-23 09:46:24.000000',6,'Testes Capture Long-Seq (anchored)'),(659,'76ffb1d6-948d-11ec-a39d-005056b38ce3',28,'cls_testes_unanchored','GSE93848','2022-02-23 09:46:24.000000',6,'Testes Capture Long-Seq'),(660,'76ffb221-948d-11ec-a39d-005056b38ce3',28,'estgene','Jan 31 12:35','2022-02-23 09:46:24.000000',6,'EST-based'),(661,'76ffb271-948d-11ec-a39d-005056b38ce3',28,'refseq_import','2020-12-10 18:46:50','2022-02-23 09:46:24.000000',6,'RefSeq GFF3 annotation import'),(662,'76ffb2ba-948d-11ec-a39d-005056b38ce3',28,'gene_rnaseq','2014-05-07','2022-02-23 09:46:24.000000',7,'RNA-seq gene models'),(663,'76ffb3e3-948d-11ec-a39d-005056b38ce3',33,'goa_import','2021-03-01','2022-01-26 18:43:00.000000',4,'GOA annotation'),(664,'76ffb43b-948d-11ec-a39d-005056b38ce3',33,'interpro2go','2021-01-08','2022-01-26 18:43:00.000000',4,'InterPro2GO mapping'),(665,'76ffb57d-948d-11ec-a39d-005056b38ce3',38,'interproscan','5.48-83.0','2022-01-26 18:43:00.000000',4,'InterProScan'),(666,'76ffb605-948d-11ec-a39d-005056b38ce3',39,'dust','1','2022-01-26 18:43:00.000000',4,'Low complexity (Dust)'),(667,'76ffb659-948d-11ec-a39d-005056b38ce3',39,'repeatmask_repbase_human_low','3.3.0','2022-01-26 18:43:00.000000',4,'Repeats (low)'),(668,'76ffb6a7-948d-11ec-a39d-005056b38ce3',39,'repeatmask_repbase_human','3.3.0','2022-01-26 18:43:00.000000',4,'Repeats'),(669,'76ffb6f0-948d-11ec-a39d-005056b38ce3',39,'trf','2014-02-06','2022-01-26 18:43:00.000000',4,'Tandem repeats (TRF)'),(670,'76ffb780-948d-11ec-a39d-005056b38ce3',40,'datafiles_bamcov','2014-06-23','2022-02-23 09:46:24.000000',7,'BAM coverage files'); +/*!40000 ALTER TABLE `dataset` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `dataset_attribute` +-- + +DROP TABLE IF EXISTS `dataset_attribute`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `dataset_attribute` ( + `dataset_attribute_id` int NOT NULL AUTO_INCREMENT, + `type` varchar(32) NOT NULL, + `value` varchar(128) NOT NULL, + `attribute_id` int NOT NULL, + `dataset_id` int NOT NULL, + PRIMARY KEY (`dataset_attribute_id`), + UNIQUE KEY `dataset_attribute_dataset_id_attribute_id__d3b34d8c_uniq` (`dataset_id`,`attribute_id`,`type`,`value`), + KEY `dataset_attribute_attribute_id_55c51407_fk_attribute` (`attribute_id`), + KEY `dataset_attribute_dataset_id_2e2afe19` (`dataset_id`), + CONSTRAINT `dataset_attribute_attribute_id_55c51407_fk_attribute` FOREIGN KEY (`attribute_id`) REFERENCES `attribute` (`attribute_id`), + CONSTRAINT `dataset_attribute_dataset_id_2e2afe19_fk_dataset_dataset_id` FOREIGN KEY (`dataset_id`) REFERENCES `dataset` (`dataset_id`) +) ENGINE=InnoDB AUTO_INCREMENT=586 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `dataset_attribute` +-- + +LOCK TABLES `dataset_attribute` WRITE; +/*!40000 ALTER TABLE `dataset_attribute` DISABLE KEYS */; +INSERT INTO `dataset_attribute` VALUES (487,'length_bp','3096649726',102,1),(479,'length_bp','23292622',102,2),(450,'length_bp','100286401',102,3),(503,'length_bp','4641652',102,4),(456,'length_bp','12157105',102,5),(468,'length_bp','14547261565',102,6),(481,'length_bp','243654872',4,8),(462,'length_bp','137118487',5,8),(500,'length_bp','457281',6,8),(455,'length_bp','11056628',7,8),(507,'length_bp','496227',8,8),(472,'length_bp','1876428',9,8),(1,'count','1000231',34,8),(255,'count','461355',35,8),(82,'count','2220',36,8),(103,'count','28584',37,8),(259,'count','4863',38,8),(19,'count','1156',39,8),(443,'example','ENSG00000139618',40,8),(77,'count','20424',42,8),(461,'length_bp','1370924196',43,8),(531,'max_bp','2473539',43,8),(562,'min_bp','8',43,8),(511,'length_bp','552137588',44,8),(525,'max_bp','1375317',44,8),(559,'min_bp','68',44,8),(501,'length_bp','457281',45,8),(536,'max_bp','464',45,8),(556,'min_bp','57',45,8),(515,'length_bp','64192681',46,8),(543,'max_bp','909387',46,8),(546,'min_bp','23',46,8),(508,'length_bp','496227',47,8),(528,'max_bp','1559',47,8),(548,'min_bp','41',47,8),(469,'length_bp','1703598',48,8),(530,'max_bp','18662',48,8),(563,'min_bp','87',48,8),(59,'count','16884',49,8),(83,'count','2220',50,8),(49,'count','15217',51,8),(260,'count','4863',53,8),(5,'count','1056',54,8),(438,'example','17:63992802-64038237',63,8),(7,'count','106190',88,8),(513,'length_bp','5949148170',89,8),(490,'length_bp','3487287122',90,8),(502,'length_bp','457281',91,8),(498,'length_bp','41228518',92,8),(509,'length_bp','496227',93,8),(476,'length_bp','1891463',94,8),(9,'count','107279',95,8),(84,'count','2220',96,8),(50,'count','15221',97,8),(261,'count','4863',98,8),(16,'count','1147',99,8),(457,'length_bp','12312399',4,9),(480,'length_bp','239905',7,9),(465,'length_bp','139527',8,9),(44,'count','14146',34,9),(254,'count','461',37,9),(91,'count','252',38,9),(444,'example','PF3D7_0532500',40,9),(267,'count','5362',42,9),(463,'length_bp','13779715',43,9),(533,'max_bp','30864',43,9),(565,'min_bp','90',43,9),(482,'length_bp','254846',46,9),(523,'max_bp','11291',46,9),(561,'min_bp','72',46,9),(466,'length_bp','139527',47,9),(540,'max_bp','6175',47,9),(560,'min_bp','68',47,9),(51,'count','153',51,9),(92,'count','252',53,9),(440,'example','5:1316342-1316846',63,9),(268,'count','5362',88,9),(464,'length_bp','13779715',89,9),(483,'length_bp','254846',92,9),(467,'length_bp','139527',93,9),(52,'count','153',97,9),(93,'count','252',98,9),(478,'length_bp','227267910',4,10),(495,'length_bp','40357',5,10),(473,'length_bp','1880083',8,10),(328,'count','749233',34,10),(120,'count','362',35,10),(30,'count','12491',38,10),(445,'example','TraesCS3D02G273600',40,10),(10,'count','107891',42,10),(491,'length_bp','376421927',43,10),(524,'max_bp','124945',43,10),(554,'min_bp','54',43,10),(496,'length_bp','40357',44,10),(535,'max_bp','378',44,10),(555,'min_bp','55',44,10),(474,'length_bp','1880083',47,10),(537,'max_bp','5792',47,10),(550,'min_bp','42',47,10),(121,'count','362',49,10),(31,'count','12491',53,10),(439,'example','3D:2585940-2634711',63,10),(36,'count','133744',88,10),(510,'length_bp','529599294',89,10),(497,'length_bp','40357',90,10),(475,'length_bp','1880083',93,10),(122,'count','362',95,10),(32,'count','12491',98,10),(517,'length_bp','8762009',4,11),(451,'length_bp','10359',7,11),(516,'length_bp','84277',8,11),(296,'count','6913',34,11),(24,'count','12',37,11),(262,'count','491',38,11),(449,'example','YDL168W',40,11),(293,'count','6600',42,11),(520,'length_bp','8872836',43,11),(526,'max_bp','14733',43,11),(551,'min_bp','51',43,11),(452,'length_bp','10359',46,11),(534,'max_bp','3147',46,11),(545,'min_bp','228',46,11),(518,'length_bp','88443',47,11),(538,'max_bp','5947',47,11),(557,'min_bp','58',47,11),(25,'count','12',51,11),(244,'count','424',53,11),(446,'example','VII:786054-786920',63,11),(294,'count','6600',88,11),(521,'length_bp','8872836',89,11),(453,'length_bp','10359',92,11),(519,'length_bp','88443',93,11),(26,'count','12',97,11),(245,'count','424',98,11),(493,'length_bp','3986775',4,12),(454,'length_bp','104998',7,12),(504,'length_bp','48300',8,12),(248,'count','4245',34,12),(37,'count','134',37,12),(63,'count','179',38,12),(441,'example','b2992',40,12),(246,'count','4240',42,12),(492,'length_bp','3985273',43,12),(541,'max_bp','7077',43,12),(549,'min_bp','42',43,12),(458,'length_bp','126866',46,12),(542,'max_bp','8622',46,12),(552,'min_bp','51',46,12),(505,'length_bp','48300',47,12),(532,'max_bp','2905',47,12),(553,'min_bp','53',47,12),(17,'count','115',51,12),(64,'count','179',53,12),(442,'example','Chromosome:3140311-3140799',63,12),(247,'count','4242',88,12),(494,'length_bp','3986780',89,12),(459,'length_bp','126866',92,12),(506,'length_bp','48300',93,12),(18,'count','115',97,12),(65,'count','179',98,12),(512,'length_bp','55961979',4,13),(477,'length_bp','207087',5,13),(471,'length_bp','1776905',7,13),(484,'length_bp','2614490',8,13),(88,'count','235625',34,13),(272,'count','549',35,13),(330,'count','7695',37,13),(107,'count','29772',38,13),(447,'example','WBGene00004893',40,13),(76,'count','20191',42,13),(514,'length_bp','63596602',43,13),(522,'max_bp','102626',43,13),(547,'min_bp','30',43,13),(488,'length_bp','319909',44,13),(539,'max_bp','6035',44,13),(564,'min_bp','89',44,13),(485,'length_bp','2834340',46,13),(529,'max_bp','17899',46,13),(558,'min_bp','63',46,13),(470,'length_bp','1709739',47,13),(527,'max_bp','14770',47,13),(544,'min_bp','17',47,13),(97,'count','276',49,13),(70,'count','1922',51,13),(90,'count','24515',53,13),(448,'example','X:937766-957832',63,13),(116,'count','33552',88,13),(460,'length_bp','136558813',89,13),(489,'length_bp','327188',90,13),(486,'length_bp','2944790',92,13),(499,'length_bp','4264907',93,13),(104,'count','288',95,13),(72,'count','1958',97,13),(95,'count','25653',98,13),(127,'count','372',25,41),(334,'count','86',101,42),(128,'count','372',25,43),(335,'count','86',101,44),(129,'count','372',25,45),(336,'count','86',101,46),(130,'count','372',25,47),(337,'count','86',101,48),(131,'count','372',25,49),(132,'count','372',25,50),(338,'count','86',101,51),(133,'count','372',25,52),(339,'count','86',101,53),(134,'count','372',25,54),(340,'count','86',101,55),(135,'count','372',25,56),(136,'count','372',25,57),(137,'count','372',25,58),(341,'count','86',101,59),(138,'count','372',25,60),(342,'count','86',101,61),(139,'count','372',25,62),(343,'count','86',101,63),(140,'count','372',25,64),(344,'count','86',101,65),(141,'count','372',25,66),(345,'count','86',101,67),(142,'count','372',25,68),(346,'count','86',101,69),(143,'count','372',25,70),(347,'count','86',101,71),(144,'count','372',25,72),(348,'count','86',101,73),(145,'count','372',25,74),(146,'count','372',25,75),(349,'count','86',101,76),(147,'count','372',25,77),(350,'count','86',101,78),(148,'count','372',25,79),(351,'count','86',101,80),(149,'count','372',25,81),(352,'count','86',101,82),(150,'count','372',25,83),(353,'count','86',101,84),(151,'count','372',25,85),(354,'count','86',101,86),(152,'count','372',25,87),(355,'count','86',101,88),(153,'count','372',25,89),(356,'count','86',101,90),(154,'count','372',25,91),(357,'count','86',101,92),(155,'count','372',25,93),(358,'count','86',101,94),(156,'count','372',25,95),(359,'count','86',101,96),(157,'count','372',25,97),(158,'count','372',25,98),(360,'count','86',101,99),(159,'count','372',25,100),(361,'count','86',101,101),(160,'count','372',25,102),(161,'count','372',25,103),(362,'count','86',101,104),(162,'count','372',25,105),(363,'count','86',101,106),(163,'count','372',25,107),(364,'count','86',101,108),(164,'count','372',25,109),(365,'count','86',101,110),(165,'count','372',25,111),(366,'count','86',101,112),(166,'count','372',25,113),(367,'count','86',101,114),(167,'count','372',25,115),(168,'count','372',25,116),(368,'count','86',101,117),(169,'count','372',25,118),(369,'count','86',101,119),(170,'count','372',25,120),(171,'count','372',25,121),(370,'count','86',101,122),(172,'count','372',25,123),(371,'count','86',101,124),(173,'count','372',25,125),(372,'count','86',101,126),(174,'count','372',25,127),(373,'count','86',101,128),(175,'count','372',25,129),(374,'count','86',101,130),(176,'count','372',25,131),(375,'count','86',101,132),(177,'count','372',25,133),(376,'count','86',101,134),(178,'count','372',25,135),(377,'count','86',101,136),(179,'count','372',25,137),(378,'count','86',101,138),(180,'count','372',25,139),(379,'count','86',101,140),(181,'count','372',25,141),(380,'count','86',101,142),(182,'count','372',25,143),(381,'count','86',101,144),(183,'count','372',25,145),(184,'count','372',25,146),(382,'count','86',101,147),(185,'count','372',25,148),(383,'count','86',101,149),(186,'count','372',25,150),(384,'count','86',101,151),(187,'count','372',25,152),(385,'count','86',101,153),(188,'count','372',25,154),(386,'count','86',101,155),(189,'count','372',25,156),(190,'count','372',25,157),(387,'count','86',101,158),(191,'count','372',25,159),(388,'count','86',101,160),(192,'count','372',25,161),(389,'count','86',101,162),(193,'count','372',25,163),(390,'count','86',101,164),(194,'count','372',25,165),(391,'count','86',101,166),(195,'count','372',25,167),(392,'count','86',101,168),(196,'count','372',25,169),(393,'count','86',101,170),(197,'count','372',25,171),(394,'count','86',101,172),(198,'count','372',25,173),(395,'count','86',101,174),(199,'count','372',25,175),(200,'count','372',25,176),(396,'count','86',101,177),(201,'count','372',25,178),(397,'count','86',101,179),(202,'count','372',25,180),(398,'count','86',101,181),(203,'count','372',25,182),(399,'count','86',101,183),(204,'count','372',25,184),(400,'count','86',101,185),(205,'count','372',25,186),(401,'count','86',101,187),(206,'count','372',25,188),(402,'count','86',101,189),(207,'count','372',25,190),(403,'count','86',101,191),(208,'count','372',25,192),(404,'count','86',101,193),(209,'count','372',25,194),(405,'count','86',101,195),(210,'count','372',25,196),(406,'count','86',101,197),(211,'count','372',25,198),(407,'count','86',101,199),(212,'count','372',25,200),(408,'count','86',101,201),(213,'count','372',25,202),(409,'count','86',101,203),(214,'count','372',25,204),(410,'count','86',101,205),(215,'count','372',25,206),(411,'count','86',101,207),(216,'count','372',25,208),(412,'count','86',101,209),(217,'count','372',25,210),(413,'count','86',101,211),(218,'count','372',25,212),(414,'count','86',101,213),(219,'count','372',25,214),(415,'count','86',101,215),(220,'count','372',25,216),(416,'count','86',101,217),(221,'count','372',25,218),(417,'count','86',101,219),(222,'count','372',25,220),(418,'count','86',101,221),(223,'count','372',25,222),(419,'count','86',101,223),(224,'count','372',25,224),(225,'count','372',25,225),(420,'count','86',101,226),(226,'count','372',25,227),(421,'count','86',101,228),(227,'count','372',25,229),(422,'count','86',101,230),(228,'count','372',25,231),(423,'count','86',101,232),(229,'count','372',25,233),(424,'count','86',101,234),(230,'count','372',25,235),(425,'count','86',101,236),(231,'count','372',25,237),(232,'count','372',25,238),(426,'count','86',101,239),(233,'count','372',25,240),(427,'count','86',101,241),(234,'count','372',25,242),(428,'count','86',101,243),(8,'count','10703312',103,244),(11,'count','11081186',104,245),(252,'count','46',26,246),(89,'count','24',101,247),(114,'count','32138',26,248),(35,'count','13044',62,249),(57,'count','16770',64,250),(281,'count','5893',101,251),(48,'count','148821',55,252),(256,'count','46704',60,253),(29,'count','1245036',55,254),(58,'count','167958',60,255),(108,'count','29870',55,256),(290,'count','6526',60,257),(435,'count','96465',55,258),(12,'count','11165',60,259),(324,'count','73045',55,260),(78,'count','206837',60,261),(74,'count','19782',3,262),(242,'count','41348',41,262),(275,'count','567',57,262),(280,'count','58823',58,262),(276,'count','56928',65,262),(39,'count','13493',66,262),(251,'count','45462',67,262),(105,'count','29681',68,262),(71,'count','1948',69,262),(101,'count','28371',70,262),(3,'count','10312',78,262),(327,'count','74439',79,262),(125,'count','368',80,262),(274,'count','5650',82,262),(123,'count','36688',83,262),(118,'count','35614',84,262),(62,'count','1750',86,262),(241,'count','39319',87,262),(285,'count','61341',3,263),(41,'count','139630',41,263),(23,'count','1192',57,263),(67,'count','182789',58,263),(54,'count','156901',65,263),(235,'count','37259',66,263),(53,'count','154618',67,263),(15,'count','113511',68,263),(288,'count','6421',69,263),(13,'count','111719',70,263),(265,'count','51798',78,263),(68,'count','186792',79,263),(321,'count','709',80,263),(436,'count','9859',82,263),(34,'count','127595',83,263),(14,'count','111912',84,263),(249,'count','4379',86,263),(278,'count','57568',87,263),(47,'count','1485',3,264),(264,'count','5130',41,264),(75,'count','200',57,264),(326,'count','7421',58,264),(2,'count','10283',65,264),(295,'count','6770',66,264),(284,'count','6127',67,264),(86,'count','2263',68,264),(99,'count','281',69,264),(81,'count','2217',70,264),(432,'count','905',78,264),(237,'count','37738',79,264),(126,'count','37',80,264),(282,'count','606',82,264),(94,'count','2543',83,264),(243,'count','4224',84,264),(286,'count','634',86,264),(258,'count','4743',87,264),(112,'count','3138',3,265),(291,'count','6547',41,265),(124,'count','368',57,265),(430,'count','8985',58,265),(434,'count','9329',65,265),(80,'count','2127',66,265),(332,'count','7763',67,265),(117,'count','3390',68,265),(329,'count','753',69,265),(239,'count','3845',70,265),(79,'count','2125',78,265),(28,'count','12414',79,265),(27,'count','123',80,265),(236,'count','375',82,265),(119,'count','3602',83,265),(266,'count','5285',84,265),(333,'count','846',86,265),(277,'count','5702',87,265),(273,'count','55961',3,266),(55,'count','160042',41,266),(238,'count','3840',57,266),(96,'count','272581',58,266),(60,'count','171823',65,266),(111,'count','31357',66,266),(66,'count','179495',67,266),(4,'count','105242',68,266),(331,'count','7712',69,266),(6,'count','105690',70,266),(240,'count','38695',78,266),(110,'count','310969',79,266),(87,'count','2266',80,266),(61,'count','17408',82,266),(431,'count','90137',83,266),(33,'count','126755',84,266),(85,'count','22422',86,266),(437,'count','99223',87,266),(298,'count','697',28,270),(299,'count','697',28,271),(300,'count','697',28,272),(301,'count','697',28,273),(302,'count','697',28,274),(303,'count','697',28,275),(304,'count','697',28,277),(305,'count','697',28,278),(306,'count','697',28,280),(307,'count','697',28,281),(308,'count','697',28,283),(309,'count','697',28,284),(310,'count','697',28,285),(311,'count','697',28,286),(312,'count','697',28,287),(313,'count','697',28,288),(314,'count','697',28,289),(315,'count','697',28,290),(316,'count','697',28,291),(317,'count','697',28,293),(318,'count','697',28,294),(319,'count','697',28,295),(320,'count','697',28,296),(69,'count','189249',27,297),(20,'count','117344',72,298),(271,'count','54702',100,299),(106,'count','2969676',27,300),(269,'count','5367525',76,301),(250,'count','4534000',75,302),(43,'count','1407631',100,303),(429,'count','8662',27,304),(323,'count','722',72,305),(113,'count','3210',100,306),(22,'count','11885427',27,307),(287,'count','6398156',73,308),(279,'count','5881638',74,309),(257,'count','46964350',85,310),(270,'count','5456614',100,311),(253,'count','460',56,312),(40,'count','13740376',59,313),(115,'count','33318',2,314),(292,'count','65614',11,315),(100,'count','28142',12,316),(38,'count','13435',13,317),(322,'count','7090',14,318),(42,'count','13993',15,319),(297,'count','6951',16,320),(45,'count','14192',17,321),(325,'count','7326',18,322),(21,'count','11817',19,323),(289,'count','6526',20,324),(433,'count','9165',21,325),(263,'count','4938',22,326),(98,'count','27639',23,327),(46,'count','14483',24,328),(109,'count','30179',32,329),(283,'count','61061',71,330),(73,'count','196423',1,331),(56,'count','161537',61,332),(102,'count','284536',52,333),(566,'name','Adipose RNAseq alignments',77,334),(567,'name','Adrenal RNAseq alignments',77,334),(568,'name','Blood RNAseq alignments',77,334),(569,'name','Brain RNAseq alignments',77,334),(570,'name','Breast RNAseq alignments',77,334),(571,'name','Colon RNAseq alignments',77,334),(572,'name','Heart RNAseq alignments',77,334),(573,'name','Kidney RNAseq alignments',77,334),(574,'name','Liver RNAseq alignments',77,334),(575,'name','Lung RNAseq alignments',77,334),(576,'name','Lymph RNAseq alignments',77,334),(577,'name','Merged RNAseq alignments',77,334),(578,'name','Ovary RNAseq alignments',77,334),(579,'name','Pooled normalized polyA RNAseq alignments',77,334),(580,'name','pooled ribofree RNAseq alignments',77,334),(581,'name','Pooled RNAseq alignments',77,334),(582,'name','Prostate RNAseq alignments',77,334),(583,'name','Skeletal muscle RNAseq alignments',77,334),(584,'name','Testes RNAseq alignments',77,334),(585,'name','Thyroid RNAseq alignments',77,334); +/*!40000 ALTER TABLE `dataset_attribute` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `dataset_source` +-- + +DROP TABLE IF EXISTS `dataset_source`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `dataset_source` ( + `dataset_source_id` int NOT NULL AUTO_INCREMENT, + `type` varchar(32) NOT NULL, + `name` varchar(255) NOT NULL, + PRIMARY KEY (`dataset_source_id`), + UNIQUE KEY `name` (`name`) +) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `dataset_source` +-- + +LOCK TABLES `dataset_source` WRITE; +/*!40000 ALTER TABLE `dataset_source` DISABLE KEYS */; +INSERT INTO `dataset_source` VALUES (1,'core','bacteria_0_collection_core_51_104_1'),(2,'core','caenorhabditis_elegans_core_51_104_269'),(3,'funcgen','caenorhabditis_elegans_funcgen_51_104_269'),(4,'core','homo_sapiens_core_104_38'),(5,'funcgen','homo_sapiens_funcgen_104_38'),(6,'otherfeatures','homo_sapiens_otherfeatures_104_38'),(7,'rnaseq','homo_sapiens_rnaseq_104_38'),(8,'variation','homo_sapiens_variation_104_38'),(9,'core','plasmodium_falciparum_core_51_104_1'),(10,'core','saccharomyces_cerevisiae_core_51_104_4'),(11,'funcgen','saccharomyces_cerevisiae_funcgen_51_104_4'),(12,'core','triticum_aestivum_core_51_104_4'),(13,'funcgen','triticum_aestivum_funcgen_51_104_4'),(14,'otherfeatures','triticum_aestivum_otherfeatures_51_104_4'),(15,'variation','triticum_aestivum_variation_51_104_4'),(16,'core','homo_sapiens_core_104_37'); +/*!40000 ALTER TABLE `dataset_source` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `dataset_type` +-- + +DROP TABLE IF EXISTS `dataset_type`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `dataset_type` ( + `dataset_type_id` int NOT NULL AUTO_INCREMENT, + `name` varchar(32) NOT NULL, + `label` varchar(128) NOT NULL, + `topic` varchar(32) NOT NULL, + `description` varchar(255) DEFAULT NULL, + `details_uri` varchar(255) DEFAULT NULL, + PRIMARY KEY (`dataset_type_id`) +) ENGINE=InnoDB AUTO_INCREMENT=43 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `dataset_type` +-- + +LOCK TABLES `dataset_type` WRITE; +/*!40000 ALTER TABLE `dataset_type` DISABLE KEYS */; +INSERT INTO `dataset_type` VALUES (1,'assembly','Genomic assembly','assembly',NULL,NULL),(2,'checksum_xrefs','Cross-references','geneset_annotation','Cross-references assigned by checksum (i.e. sequence identity)',NULL),(3,'alignment_xrefs','Cross-references','geneset_annotation','Cross-references assigned by alignment (i.e. sequence similarity)',NULL),(4,'dependent_xrefs','Cross-references','geneset_annotation','Cross-references assigned via an intermediate annotation',NULL),(5,'direct_xrefs','Cross-references','geneset_annotation','Cross-references imported from external annotation',NULL),(6,'dna_alignments','DNA alignments','assembly_annotation','Features aligned against the genome',NULL),(7,'geneset','Geneset','geneset_annotation',NULL,NULL),(8,'gene_families','Gene families','comparative',NULL,NULL),(9,'gene_trees','Gene trees','comparative',NULL,NULL),(10,'multiple_alignment','Multiple genome alignment','comparative',NULL,NULL),(11,'pairwise_alignment','Pairwise genome alignment','comparative',NULL,NULL),(12,'go_terms','GO terms','geneset_annotation',NULL,NULL),(13,'homologies','Homologies','comparative',NULL,NULL),(14,'microarrays','Microarrays','geneset_annotation',NULL,NULL),(15,'phenotypes','Phenotypes','variation',NULL,NULL),(16,'protein_alignments','Protein alignments','geneset_annotation','Features aligned against proteins',NULL),(17,'protein_features','Protein domains and features','geneset_annotation',NULL,NULL),(18,'repeat_features','Repeat features','assembly_annotation',NULL,NULL),(19,'rnaseq_alignments','RNAseq alignments','assembly_annotation','RNAseq data aligned against the genome',NULL),(20,'syntenies','Syntenies','comparative',NULL,NULL),(21,'variants','Variants','variation',NULL,NULL),(22,'assembly','Genomic assembly','assembly',NULL,NULL),(23,'checksum_xrefs','Cross-references','geneset_annotation','Cross-references assigned by checksum (i.e. sequence identity)',NULL),(24,'alignment_xrefs','Cross-references','geneset_annotation','Cross-references assigned by alignment (i.e. sequence similarity)',NULL),(25,'dependent_xrefs','Cross-references','geneset_annotation','Cross-references assigned via an intermediate annotation',NULL),(26,'direct_xrefs','Cross-references','geneset_annotation','Cross-references imported from external annotation',NULL),(27,'dna_alignments','DNA alignments','assembly_annotation','Features aligned against the genome',NULL),(28,'geneset','Geneset','geneset_annotation',NULL,NULL),(29,'gene_families','Gene families','comparative',NULL,NULL),(30,'gene_trees','Gene trees','comparative',NULL,NULL),(31,'multiple_alignment','Multiple genome alignment','comparative',NULL,NULL),(32,'pairwise_alignment','Pairwise genome alignment','comparative',NULL,NULL),(33,'go_terms','GO terms','geneset_annotation',NULL,NULL),(34,'homologies','Homologies','comparative',NULL,NULL),(35,'microarrays','Microarrays','geneset_annotation',NULL,NULL),(36,'phenotypes','Phenotypes','variation',NULL,NULL),(37,'protein_alignments','Protein alignments','geneset_annotation','Features aligned against proteins',NULL),(38,'protein_features','Protein domains and features','geneset_annotation',NULL,NULL),(39,'repeat_features','Repeat features','assembly_annotation',NULL,NULL),(40,'rnaseq_alignments','RNAseq alignments','assembly_annotation','RNAseq data aligned against the genome',NULL),(41,'syntenies','Syntenies','comparative',NULL,NULL),(42,'variants','Variants','variation',NULL,NULL); +/*!40000 ALTER TABLE `dataset_type` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `ensembl_release` +-- + +DROP TABLE IF EXISTS `ensembl_release`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `ensembl_release` ( + `release_id` int NOT NULL AUTO_INCREMENT, + `version` decimal(10,1) NOT NULL, + `release_date` date NOT NULL, + `label` varchar(64) DEFAULT NULL, + `is_current` tinyint(1) NOT NULL, + `site_id` int DEFAULT NULL, + `release_type` varchar(16) NOT NULL, + PRIMARY KEY (`release_id`), + UNIQUE KEY `ensembl_release_version_site_id_b743399a_uniq` (`version`,`site_id`), + KEY `ensembl_release_site_id_7c2f537a_fk_ensembl_site_site_id` (`site_id`), + CONSTRAINT `ensembl_release_site_id_7c2f537a_fk_ensembl_site_site_id` FOREIGN KEY (`site_id`) REFERENCES `ensembl_site` (`site_id`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `ensembl_release` +-- + +LOCK TABLES `ensembl_release` WRITE; +/*!40000 ALTER TABLE `ensembl_release` DISABLE KEYS */; +INSERT INTO `ensembl_release` VALUES (1,2020.0,'2022-04-01','2020 MAP 7 species',1,9,'partial'); +/*!40000 ALTER TABLE `ensembl_release` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `ensembl_site` +-- + +DROP TABLE IF EXISTS `ensembl_site`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `ensembl_site` ( + `site_id` int NOT NULL AUTO_INCREMENT, + `name` varchar(64) NOT NULL, + `label` varchar(64) NOT NULL, + `uri` varchar(64) NOT NULL, + PRIMARY KEY (`site_id`) +) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `ensembl_site` +-- + +LOCK TABLES `ensembl_site` WRITE; +/*!40000 ALTER TABLE `ensembl_site` DISABLE KEYS */; +INSERT INTO `ensembl_site` VALUES (1,'vertebrates','Ensembl','https://ensembl.org/'),(2,'bacteria','Ensembl Bacteria','https://bacteria.ensembl.org/'),(3,'fungi','Ensembl Fungi','https://fungi.ensembl.org/'),(4,'metazoa','Ensembl Metazoa','https://metazoa.ensembl.org/'),(5,'protists','Ensembl Protists','https://protists.ensembl.org/'),(6,'plants','Ensembl Plants','https://plants.ensembl.org/'),(7,'rapid','Rapid Release','https://rapid.ensembl.org/'),(8,'covid-19','COVID-19','https://covid-19.ensembl.org/'),(9,'2020-map','2020-MAP','https://2020.ensembl.org/'); +/*!40000 ALTER TABLE `ensembl_site` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `genome` +-- + +DROP TABLE IF EXISTS `genome`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `genome` ( + `genome_id` int NOT NULL AUTO_INCREMENT, + `genome_uuid` varchar(128) NOT NULL, + `assembly_id` int NOT NULL, + `organism_id` int NOT NULL, + `created` datetime(6) NOT NULL, + PRIMARY KEY (`genome_id`), + UNIQUE KEY `genome_uuid` (`genome_uuid`), + KEY `genome_assembly_id_0a748388_fk_assembly_assembly_id` (`assembly_id`), + KEY `genome_organism_id_99ad7f35_fk_organism_organism_id` (`organism_id`), + CONSTRAINT `genome_assembly_id_0a748388_fk_assembly_assembly_id` FOREIGN KEY (`assembly_id`) REFERENCES `assembly` (`assembly_id`), + CONSTRAINT `genome_organism_id_99ad7f35_fk_organism_organism_id` FOREIGN KEY (`organism_id`) REFERENCES `organism` (`organism_id`) +) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `genome` +-- + +LOCK TABLES `genome` WRITE; +/*!40000 ALTER TABLE `genome` DISABLE KEYS */; +INSERT INTO `genome` VALUES (1,'a73351f7-93e7-11ec-a39d-005056b38ce3',1,2,'2022-01-26 17:46:20.000000'),(2,'a733550b-93e7-11ec-a39d-005056b38ce3',2,1,'2022-01-26 17:59:38.000000'),(3,'a7335667-93e7-11ec-a39d-005056b38ce3',3,3,'2022-01-26 18:43:00.000000'),(4,'a73356e1-93e7-11ec-a39d-005056b38ce3',4,4,'2022-01-27 07:59:56.000000'),(5,'a733574a-93e7-11ec-a39d-005056b38ce3',5,5,'2022-01-27 08:03:06.000000'),(6,'a73357ab-93e7-11ec-a39d-005056b38ce3',6,6,'2022-01-27 08:24:42.000000'),(9,'3704ceb1-948d-11ec-a39d-005056b38ce3',8,3,'2022-02-22 16:50:48.000000'); +/*!40000 ALTER TABLE `genome` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `genome_dataset` +-- + +DROP TABLE IF EXISTS `genome_dataset`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `genome_dataset` ( + `genome_dataset_id` int NOT NULL AUTO_INCREMENT, + `dataset_id` int NOT NULL, + `genome_id` int NOT NULL, + `release_id` int NOT NULL, + `is_current` tinyint(1) NOT NULL, + PRIMARY KEY (`genome_dataset_id`), + KEY `ensembl_metadata_gen_dataset_id_26d7bac7_fk_dataset_d` (`dataset_id`), + KEY `ensembl_metadata_gen_genome_id_7670a2c5_fk_genome_ge` (`genome_id`), + KEY `ensembl_metadata_gen_release_id_c5440b9a_fk_ensembl_r` (`release_id`), + CONSTRAINT `ensembl_metadata_gen_dataset_id_26d7bac7_fk_dataset_d` FOREIGN KEY (`dataset_id`) REFERENCES `dataset` (`dataset_id`), + CONSTRAINT `ensembl_metadata_gen_genome_id_7670a2c5_fk_genome_ge` FOREIGN KEY (`genome_id`) REFERENCES `genome` (`genome_id`), + CONSTRAINT `ensembl_metadata_gen_release_id_c5440b9a_fk_ensembl_r` FOREIGN KEY (`release_id`) REFERENCES `ensembl_release` (`release_id`) +) ENGINE=InnoDB AUTO_INCREMENT=928 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `genome_dataset` +-- + +LOCK TABLES `genome_dataset` WRITE; +/*!40000 ALTER TABLE `genome_dataset` DISABLE KEYS */; +INSERT INTO `genome_dataset` VALUES (1,4,1,1,1),(2,3,2,1,1),(3,1,3,1,1),(4,2,4,1,1),(5,5,5,1,1),(6,6,6,1,1),(8,12,1,1,1),(9,13,2,1,1),(10,8,3,1,1),(11,9,4,1,1),(12,11,5,1,1),(13,10,6,1,1),(15,15,3,1,1),(16,16,3,1,1),(17,17,4,1,1),(18,18,6,1,1),(19,19,2,1,1),(20,20,2,1,1),(21,21,3,1,1),(22,22,3,1,1),(23,23,4,1,1),(24,24,5,1,1),(25,25,6,1,1),(26,26,2,1,1),(27,27,2,1,1),(28,28,3,1,1),(29,29,3,1,1),(30,30,4,1,1),(31,31,4,1,1),(32,32,5,1,1),(33,33,5,1,1),(34,34,6,1,1),(35,35,6,1,1),(36,36,2,1,1),(37,37,3,1,1),(38,38,3,1,1),(39,39,5,1,1),(40,40,6,1,1),(41,41,1,1,1),(42,42,1,1,1),(43,43,1,1,1),(44,44,1,1,1),(45,45,1,1,1),(46,46,1,1,1),(47,47,1,1,1),(48,48,1,1,1),(49,49,1,1,1),(50,50,1,1,1),(51,51,1,1,1),(52,52,1,1,1),(53,53,1,1,1),(54,54,1,1,1),(55,55,1,1,1),(56,56,1,1,1),(57,57,1,1,1),(58,58,1,1,1),(59,59,1,1,1),(60,60,1,1,1),(61,61,1,1,1),(62,62,1,1,1),(63,63,1,1,1),(64,64,1,1,1),(65,65,1,1,1),(66,66,1,1,1),(67,67,1,1,1),(68,68,1,1,1),(69,69,1,1,1),(70,70,1,1,1),(71,71,1,1,1),(72,72,1,1,1),(73,73,1,1,1),(74,74,1,1,1),(75,75,1,1,1),(76,76,1,1,1),(77,77,1,1,1),(78,78,1,1,1),(79,79,1,1,1),(80,80,1,1,1),(81,81,1,1,1),(82,82,1,1,1),(83,83,1,1,1),(84,84,1,1,1),(85,85,1,1,1),(86,86,1,1,1),(87,87,1,1,1),(88,88,1,1,1),(89,89,1,1,1),(90,90,1,1,1),(91,91,1,1,1),(92,92,1,1,1),(93,93,1,1,1),(94,94,1,1,1),(95,95,1,1,1),(96,96,1,1,1),(97,97,1,1,1),(98,98,1,1,1),(99,99,1,1,1),(100,100,1,1,1),(101,101,1,1,1),(102,102,1,1,1),(103,103,1,1,1),(104,104,1,1,1),(105,105,1,1,1),(106,106,1,1,1),(107,107,1,1,1),(108,108,1,1,1),(109,109,1,1,1),(110,110,1,1,1),(111,111,1,1,1),(112,112,1,1,1),(113,113,1,1,1),(114,114,1,1,1),(115,115,1,1,1),(116,116,1,1,1),(117,117,1,1,1),(118,118,1,1,1),(119,119,1,1,1),(120,120,1,1,1),(121,121,1,1,1),(122,122,1,1,1),(123,123,1,1,1),(124,124,1,1,1),(125,125,1,1,1),(126,126,1,1,1),(127,127,1,1,1),(128,128,1,1,1),(129,129,1,1,1),(130,130,1,1,1),(131,131,1,1,1),(132,132,1,1,1),(133,133,1,1,1),(134,134,1,1,1),(135,135,1,1,1),(136,136,1,1,1),(137,137,1,1,1),(138,138,1,1,1),(139,139,1,1,1),(140,140,1,1,1),(141,141,1,1,1),(142,142,1,1,1),(143,143,1,1,1),(144,144,1,1,1),(145,145,1,1,1),(146,146,1,1,1),(147,147,1,1,1),(148,148,1,1,1),(149,149,1,1,1),(150,150,1,1,1),(151,151,1,1,1),(152,152,1,1,1),(153,153,1,1,1),(154,154,1,1,1),(155,155,1,1,1),(156,156,1,1,1),(157,157,1,1,1),(158,158,1,1,1),(159,159,1,1,1),(160,160,1,1,1),(161,161,1,1,1),(162,162,1,1,1),(163,163,1,1,1),(164,164,1,1,1),(165,165,1,1,1),(166,166,1,1,1),(167,167,1,1,1),(168,168,1,1,1),(169,169,1,1,1),(170,170,1,1,1),(171,171,1,1,1),(172,172,1,1,1),(173,173,1,1,1),(174,174,1,1,1),(175,175,1,1,1),(176,176,1,1,1),(177,177,1,1,1),(178,178,1,1,1),(179,179,1,1,1),(180,180,1,1,1),(181,181,1,1,1),(182,182,1,1,1),(183,183,1,1,1),(184,184,1,1,1),(185,185,1,1,1),(186,186,1,1,1),(187,187,1,1,1),(188,188,1,1,1),(189,189,1,1,1),(190,190,1,1,1),(191,191,1,1,1),(192,192,1,1,1),(193,193,1,1,1),(194,194,1,1,1),(195,195,1,1,1),(196,196,1,1,1),(197,197,1,1,1),(198,198,1,1,1),(199,199,1,1,1),(200,200,1,1,1),(201,201,1,1,1),(202,202,1,1,1),(203,203,1,1,1),(204,204,1,1,1),(205,205,1,1,1),(206,206,1,1,1),(207,207,1,1,1),(208,208,1,1,1),(209,209,1,1,1),(210,210,1,1,1),(211,211,1,1,1),(212,212,1,1,1),(213,213,1,1,1),(214,214,1,1,1),(215,215,1,1,1),(216,216,1,1,1),(217,217,1,1,1),(218,218,1,1,1),(219,219,1,1,1),(220,220,1,1,1),(221,221,1,1,1),(222,222,1,1,1),(223,223,1,1,1),(224,224,1,1,1),(225,225,1,1,1),(226,226,1,1,1),(227,227,1,1,1),(228,228,1,1,1),(229,229,1,1,1),(230,230,1,1,1),(231,231,1,1,1),(232,232,1,1,1),(233,233,1,1,1),(234,234,1,1,1),(235,235,1,1,1),(236,236,1,1,1),(237,237,1,1,1),(238,238,1,1,1),(239,239,1,1,1),(240,240,1,1,1),(241,241,1,1,1),(242,242,1,1,1),(243,243,1,1,1),(244,244,3,1,1),(245,245,3,1,1),(246,246,5,1,1),(247,247,5,1,1),(248,248,6,1,1),(249,249,6,1,1),(250,250,6,1,1),(251,251,6,1,1),(252,252,2,1,1),(253,253,2,1,1),(254,254,3,1,1),(255,255,3,1,1),(256,256,4,1,1),(257,257,4,1,1),(258,258,5,1,1),(259,259,5,1,1),(260,260,6,1,1),(261,261,6,1,1),(262,262,2,1,1),(263,263,3,1,1),(264,264,4,1,1),(265,265,5,1,1),(266,266,6,1,1),(267,267,1,1,1),(268,268,1,1,1),(269,269,1,1,1),(270,270,1,1,1),(271,271,1,1,1),(272,272,1,1,1),(273,273,1,1,1),(274,274,1,1,1),(275,275,1,1,1),(276,276,1,1,1),(277,277,1,1,1),(278,278,1,1,1),(279,279,1,1,1),(280,280,1,1,1),(281,281,1,1,1),(282,282,1,1,1),(283,283,1,1,1),(284,284,1,1,1),(285,285,1,1,1),(286,286,1,1,1),(287,287,1,1,1),(288,288,1,1,1),(289,289,1,1,1),(290,290,1,1,1),(291,291,1,1,1),(292,292,1,1,1),(293,293,1,1,1),(294,294,1,1,1),(295,295,1,1,1),(296,296,1,1,1),(297,297,2,1,1),(298,298,2,1,1),(299,299,2,1,1),(300,300,3,1,1),(301,301,3,1,1),(302,302,3,1,1),(303,303,3,1,1),(304,304,5,1,1),(305,305,5,1,1),(306,306,5,1,1),(307,307,6,1,1),(308,308,6,1,1),(309,309,6,1,1),(310,310,6,1,1),(311,311,6,1,1),(312,312,3,1,1),(313,313,3,1,1),(314,314,3,1,1),(315,315,3,1,1),(316,316,3,1,1),(317,317,3,1,1),(318,318,3,1,1),(319,319,3,1,1),(320,320,3,1,1),(321,321,3,1,1),(322,322,3,1,1),(323,323,3,1,1),(324,324,3,1,1),(325,325,3,1,1),(326,326,3,1,1),(327,327,3,1,1),(328,328,3,1,1),(329,329,3,1,1),(330,330,3,1,1),(331,331,6,1,1),(332,332,6,1,1),(333,333,3,1,1),(334,334,3,1,1),(526,526,9,1,1),(527,527,9,1,1),(529,529,9,1,1),(530,530,9,1,1),(532,41,1,1,1),(533,42,1,1,1),(534,43,1,1,1),(535,44,1,1,1),(536,45,1,1,1),(537,46,1,1,1),(538,47,1,1,1),(539,48,1,1,1),(540,49,1,1,1),(541,50,1,1,1),(542,51,1,1,1),(543,52,1,1,1),(544,53,1,1,1),(545,54,1,1,1),(546,55,1,1,1),(547,56,1,1,1),(548,57,1,1,1),(549,58,1,1,1),(550,59,1,1,1),(551,60,1,1,1),(552,61,1,1,1),(553,62,1,1,1),(554,63,1,1,1),(555,64,1,1,1),(556,65,1,1,1),(557,66,1,1,1),(558,67,1,1,1),(559,68,1,1,1),(560,69,1,1,1),(561,70,1,1,1),(562,71,1,1,1),(563,72,1,1,1),(564,73,1,1,1),(565,74,1,1,1),(566,75,1,1,1),(567,76,1,1,1),(568,77,1,1,1),(569,78,1,1,1),(570,79,1,1,1),(571,80,1,1,1),(572,81,1,1,1),(573,82,1,1,1),(574,83,1,1,1),(575,84,1,1,1),(576,85,1,1,1),(577,86,1,1,1),(578,87,1,1,1),(579,88,1,1,1),(580,89,1,1,1),(581,90,1,1,1),(582,91,1,1,1),(583,92,1,1,1),(584,93,1,1,1),(585,94,1,1,1),(586,95,1,1,1),(587,96,1,1,1),(588,97,1,1,1),(589,98,1,1,1),(590,99,1,1,1),(591,100,1,1,1),(592,101,1,1,1),(593,102,1,1,1),(594,103,1,1,1),(595,104,1,1,1),(596,105,1,1,1),(597,106,1,1,1),(598,107,1,1,1),(599,108,1,1,1),(600,109,1,1,1),(601,110,1,1,1),(602,111,1,1,1),(603,112,1,1,1),(604,113,1,1,1),(605,114,1,1,1),(606,115,1,1,1),(607,116,1,1,1),(608,117,1,1,1),(609,118,1,1,1),(610,119,1,1,1),(611,120,1,1,1),(612,121,1,1,1),(613,122,1,1,1),(614,123,1,1,1),(615,124,1,1,1),(616,125,1,1,1),(617,126,1,1,1),(618,127,1,1,1),(619,128,1,1,1),(620,129,1,1,1),(621,130,1,1,1),(622,131,1,1,1),(623,132,1,1,1),(624,133,1,1,1),(625,134,1,1,1),(626,135,1,1,1),(627,136,1,1,1),(628,137,1,1,1),(629,138,1,1,1),(630,139,1,1,1),(631,140,1,1,1),(632,141,1,1,1),(633,142,1,1,1),(634,143,1,1,1),(635,144,1,1,1),(636,145,1,1,1),(637,146,1,1,1),(638,147,1,1,1),(639,148,1,1,1),(640,149,1,1,1),(641,150,1,1,1),(642,151,1,1,1),(643,152,1,1,1),(644,153,1,1,1),(645,154,1,1,1),(646,155,1,1,1),(647,156,1,1,1),(648,157,1,1,1),(649,158,1,1,1),(650,159,1,1,1),(651,160,1,1,1),(652,161,1,1,1),(653,162,1,1,1),(654,163,1,1,1),(655,164,1,1,1),(656,165,1,1,1),(657,166,1,1,1),(658,167,1,1,1),(659,168,1,1,1),(660,169,1,1,1),(661,170,1,1,1),(662,171,1,1,1),(663,172,1,1,1),(664,173,1,1,1),(665,174,1,1,1),(666,175,1,1,1),(667,176,1,1,1),(668,177,1,1,1),(669,178,1,1,1),(670,179,1,1,1),(671,180,1,1,1),(672,181,1,1,1),(673,182,1,1,1),(674,183,1,1,1),(675,184,1,1,1),(676,185,1,1,1),(677,186,1,1,1),(678,187,1,1,1),(679,188,1,1,1),(680,189,1,1,1),(681,190,1,1,1),(682,191,1,1,1),(683,192,1,1,1),(684,193,1,1,1),(685,194,1,1,1),(686,195,1,1,1),(687,196,1,1,1),(688,197,1,1,1),(689,198,1,1,1),(690,199,1,1,1),(691,200,1,1,1),(692,201,1,1,1),(693,202,1,1,1),(694,203,1,1,1),(695,204,1,1,1),(696,205,1,1,1),(697,206,1,1,1),(698,207,1,1,1),(699,208,1,1,1),(700,209,1,1,1),(701,210,1,1,1),(702,211,1,1,1),(703,212,1,1,1),(704,213,1,1,1),(705,214,1,1,1),(706,215,1,1,1),(707,216,1,1,1),(708,217,1,1,1),(709,218,1,1,1),(710,219,1,1,1),(711,220,1,1,1),(712,221,1,1,1),(713,222,1,1,1),(714,223,1,1,1),(715,224,1,1,1),(716,225,1,1,1),(717,226,1,1,1),(718,227,1,1,1),(719,228,1,1,1),(720,229,1,1,1),(721,230,1,1,1),(722,231,1,1,1),(723,232,1,1,1),(724,233,1,1,1),(725,234,1,1,1),(726,235,1,1,1),(727,236,1,1,1),(728,237,1,1,1),(729,238,1,1,1),(730,239,1,1,1),(731,240,1,1,1),(732,241,1,1,1),(733,242,1,1,1),(734,243,1,1,1),(735,267,1,1,1),(736,268,1,1,1),(737,269,1,1,1),(738,270,1,1,1),(739,271,1,1,1),(740,272,1,1,1),(741,273,1,1,1),(742,274,1,1,1),(743,275,1,1,1),(744,276,1,1,1),(745,277,1,1,1),(746,278,1,1,1),(747,279,1,1,1),(748,280,1,1,1),(749,281,1,1,1),(750,282,1,1,1),(751,283,1,1,1),(752,284,1,1,1),(753,285,1,1,1),(754,286,1,1,1),(755,287,1,1,1),(756,288,1,1,1),(757,289,1,1,1),(758,290,1,1,1),(759,291,1,1,1),(760,292,1,1,1),(761,293,1,1,1),(762,294,1,1,1),(763,295,1,1,1),(764,296,1,1,1),(765,19,2,1,1),(766,20,2,1,1),(767,26,2,1,1),(768,27,2,1,1),(769,36,2,1,1),(770,252,2,1,1),(771,253,2,1,1),(772,262,2,1,1),(773,297,2,1,1),(774,298,2,1,1),(775,299,2,1,1),(776,15,3,1,1),(777,16,3,1,1),(778,21,3,1,1),(779,22,3,1,1),(780,28,3,1,1),(781,29,3,1,1),(782,37,3,1,1),(783,38,3,1,1),(784,244,3,1,1),(785,245,3,1,1),(786,254,3,1,1),(787,255,3,1,1),(788,263,3,1,1),(789,300,3,1,1),(790,301,3,1,1),(791,302,3,1,1),(792,303,3,1,1),(793,595,3,1,1),(794,596,3,1,1),(795,597,3,1,1),(796,598,3,1,1),(797,599,3,1,1),(798,600,3,1,1),(799,601,3,1,1),(800,602,3,1,1),(801,603,3,1,1),(802,604,3,1,1),(803,625,3,1,1),(804,626,3,1,1),(805,627,3,1,1),(806,628,3,1,1),(807,629,3,1,1),(808,630,3,1,1),(809,631,3,1,1),(810,633,3,1,1),(811,634,3,1,1),(812,635,3,1,1),(813,636,3,1,1),(814,637,3,1,1),(815,638,3,1,1),(816,639,3,1,1),(817,640,3,1,1),(818,641,3,1,1),(819,642,3,1,1),(820,663,3,1,1),(821,664,3,1,1),(822,665,3,1,1),(823,666,3,1,1),(824,667,3,1,1),(825,668,3,1,1),(826,669,3,1,1),(827,312,3,1,1),(828,313,3,1,1),(829,314,3,1,1),(830,315,3,1,1),(831,316,3,1,1),(832,317,3,1,1),(833,318,3,1,1),(834,319,3,1,1),(835,320,3,1,1),(836,321,3,1,1),(837,322,3,1,1),(838,323,3,1,1),(839,324,3,1,1),(840,325,3,1,1),(841,326,3,1,1),(842,327,3,1,1),(843,328,3,1,1),(844,329,3,1,1),(845,330,3,1,1),(846,605,3,1,1),(847,606,3,1,1),(848,607,3,1,1),(849,608,3,1,1),(850,609,3,1,1),(851,610,3,1,1),(852,611,3,1,1),(853,612,3,1,1),(854,613,3,1,1),(855,614,3,1,1),(856,615,3,1,1),(857,616,3,1,1),(858,617,3,1,1),(859,618,3,1,1),(860,619,3,1,1),(861,620,3,1,1),(862,621,3,1,1),(863,622,3,1,1),(864,623,3,1,1),(865,643,3,1,1),(866,644,3,1,1),(867,645,3,1,1),(868,646,3,1,1),(869,647,3,1,1),(870,648,3,1,1),(871,649,3,1,1),(872,650,3,1,1),(873,651,3,1,1),(874,652,3,1,1),(875,653,3,1,1),(876,654,3,1,1),(877,655,3,1,1),(878,656,3,1,1),(879,657,3,1,1),(880,658,3,1,1),(881,659,3,1,1),(882,660,3,1,1),(883,661,3,1,1),(884,333,3,1,1),(885,334,3,1,1),(886,624,3,1,1),(887,632,3,1,1),(888,662,3,1,1),(889,670,3,1,1),(890,17,4,1,1),(891,23,4,1,1),(892,30,4,1,1),(893,31,4,1,1),(894,256,4,1,1),(895,257,4,1,1),(896,264,4,1,1),(897,24,5,1,1),(898,32,5,1,1),(899,33,5,1,1),(900,39,5,1,1),(901,246,5,1,1),(902,247,5,1,1),(903,258,5,1,1),(904,259,5,1,1),(905,265,5,1,1),(906,304,5,1,1),(907,305,5,1,1),(908,306,5,1,1),(909,18,6,1,1),(910,25,6,1,1),(911,34,6,1,1),(912,35,6,1,1),(913,40,6,1,1),(914,248,6,1,1),(915,249,6,1,1),(916,250,6,1,1),(917,251,6,1,1),(918,260,6,1,1),(919,261,6,1,1),(920,266,6,1,1),(921,307,6,1,1),(922,308,6,1,1),(923,309,6,1,1),(924,310,6,1,1),(925,311,6,1,1),(926,331,6,1,1),(927,332,6,1,1); +/*!40000 ALTER TABLE `genome_dataset` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `genome_release` +-- + +DROP TABLE IF EXISTS `genome_release`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `genome_release` ( + `genome_release_id` int NOT NULL AUTO_INCREMENT, + `genome_id` int NOT NULL, + `release_id` int NOT NULL, + `is_current` tinyint(1) NOT NULL, + PRIMARY KEY (`genome_release_id`), + KEY `genome_release_genome_id_3e45dc04_fk` (`genome_id`), + KEY `genome_release_release_id_bca7e1e5_fk_ensembl_release_release_id` (`release_id`), + CONSTRAINT `genome_release_genome_id_3e45dc04_fk` FOREIGN KEY (`genome_id`) REFERENCES `genome` (`genome_id`), + CONSTRAINT `genome_release_release_id_bca7e1e5_fk_ensembl_release_release_id` FOREIGN KEY (`release_id`) REFERENCES `ensembl_release` (`release_id`) +) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `genome_release` +-- + +LOCK TABLES `genome_release` WRITE; +/*!40000 ALTER TABLE `genome_release` DISABLE KEYS */; +INSERT INTO `genome_release` VALUES (1,1,1,1),(4,4,1,1),(5,5,1,1),(6,6,1,1),(9,2,1,1),(10,3,1,1),(14,9,1,1); +/*!40000 ALTER TABLE `genome_release` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `organism` +-- + +DROP TABLE IF EXISTS `organism`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `organism` ( + `organism_id` int NOT NULL AUTO_INCREMENT, + `taxonomy_id` int NOT NULL, + `species_taxonomy_id` int DEFAULT NULL, + `display_name` varchar(128) NOT NULL, + `strain` varchar(128) DEFAULT NULL, + `scientific_name` varchar(128) DEFAULT NULL, + `url_name` varchar(128) NOT NULL, + `ensembl_name` varchar(128) NOT NULL, + `scientific_parlance_name` varchar(255) DEFAULT NULL, + PRIMARY KEY (`organism_id`), + UNIQUE KEY `ensembl_name` (`ensembl_name`) +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `organism` +-- + +LOCK TABLES `organism` WRITE; +/*!40000 ALTER TABLE `organism` DISABLE KEYS */; +INSERT INTO `organism` VALUES (1,6239,6239,'Caenorhabditis elegans','N2','Caenorhabditis elegans','Caenorhabditis_elegans','caenorhabditis_elegans',NULL),(2,511145,562,'Escherichia coli str. K-12 substr. MG1655 str. K12 (GCA_000005845)',NULL,'Escherichia coli str. K-12 substr. MG1655 str. K12','Escherichia_coli_str_k_12_substr_mg1655_gca_000005845','escherichia_coli_str_k_12_substr_mg1655_gca_000005845',NULL),(3,9606,9606,'Human',NULL,'Homo sapiens','Homo_sapiens','homo_sapiens','Human'),(4,36329,5833,'Plasmodium falciparum 3D7',NULL,'Plasmodium falciparum 3D7','Plasmodium_falciparum','plasmodium_falciparum',NULL),(5,559292,4932,'Saccharomyces cerevisiae','S288C','Saccharomyces cerevisiae S288c','Saccharomyces_cerevisiae','saccharomyces_cerevisiae',NULL),(6,4565,4565,'Triticum aestivum','reference (Chinese spring)','Triticum aestivum','Triticum_aestivum','triticum_aestivum',NULL); +/*!40000 ALTER TABLE `organism` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `organism_group` +-- + +DROP TABLE IF EXISTS `organism_group`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `organism_group` ( + `organism_group_id` int NOT NULL AUTO_INCREMENT, + `type` varchar(32) NOT NULL, + `name` varchar(255) NOT NULL, + `code` varchar(48) DEFAULT NULL, + PRIMARY KEY (`organism_group_id`), + UNIQUE KEY `group_type_name_63c2f6ac_uniq` (`type`,`name`), + UNIQUE KEY `organism_group_code_uindex` (`code`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `organism_group` +-- + +LOCK TABLES `organism_group` WRITE; +/*!40000 ALTER TABLE `organism_group` DISABLE KEYS */; +INSERT INTO `organism_group` VALUES (1,'breeds','Dog breeds',NULL); +/*!40000 ALTER TABLE `organism_group` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `organism_group_member` +-- + +DROP TABLE IF EXISTS `organism_group_member`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `organism_group_member` ( + `organism_group_member_id` int NOT NULL AUTO_INCREMENT, + `is_reference` tinyint(1) NOT NULL, + `organism_id` int NOT NULL, + `organism_group_id` int NOT NULL, + PRIMARY KEY (`organism_group_member_id`), + UNIQUE KEY `organism_group_member_organism_id_organism_gro_fe8f49ac_uniq` (`organism_id`,`organism_group_id`), + KEY `organism_group_membe_organism_group_id_533ca128_fk_organism_` (`organism_group_id`), + CONSTRAINT `organism_group_membe_organism_group_id_533ca128_fk_organism_` FOREIGN KEY (`organism_group_id`) REFERENCES `organism_group` (`organism_group_id`), + CONSTRAINT `organism_group_membe_organism_id_2808252e_fk_organism_` FOREIGN KEY (`organism_id`) REFERENCES `organism` (`organism_id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `organism_group_member` +-- + +LOCK TABLES `organism_group_member` WRITE; +/*!40000 ALTER TABLE `organism_group_member` DISABLE KEYS */; +/*!40000 ALTER TABLE `organism_group_member` ENABLE KEYS */; +UNLOCK TABLES; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2022-10-28 13:29:23 diff --git a/tests/TEST.db b/tests/metadata_20202.sqlite similarity index 100% rename from tests/TEST.db rename to tests/metadata_20202.sqlite diff --git a/tests/ncbi_taxonomy.sql b/tests/ncbi_taxonomy.sql new file mode 100644 index 00000000..6379f4d8 --- /dev/null +++ b/tests/ncbi_taxonomy.sql @@ -0,0 +1,87 @@ +-- MySQL dump 10.13 Distrib 8.0.30, for Linux (x86_64) +-- +-- Host: localhost Database: ncbi_taxonomy +-- ------------------------------------------------------ +-- Server version 8.0.30-0ubuntu0.22.04.1 + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!50503 SET NAMES utf8mb4 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Table structure for table `ncbi_taxa_name` +-- + +DROP TABLE IF EXISTS `ncbi_taxa_name`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `ncbi_taxa_name` ( + `taxon_id` int unsigned NOT NULL, + `name` varchar(255) NOT NULL, + `name_class` varchar(50) NOT NULL, + KEY `taxon_id` (`taxon_id`), + KEY `name` (`name`), + KEY `name_class` (`name_class`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `ncbi_taxa_name` +-- + +LOCK TABLES `ncbi_taxa_name` WRITE; +/*!40000 ALTER TABLE `ncbi_taxa_name` DISABLE KEYS */; +INSERT INTO `ncbi_taxa_name` VALUES (1,'all','synonym'),(1,'root','scientific name'),(2,'Bacteria','scientific name'),(2,'bacteria','blast name'),(2,'eubacteria','genbank common name'),(2,'Monera','in-part'),(2,'Procaryotae','in-part'),(2,'Prokaryotae','in-part'),(2,'Prokaryota','in-part'),(2,'prokaryote','in-part'),(2,'prokaryotes','in-part'),(543,'Enterobacteraceae (ex Lapage 1979) Lapage 1982','authority'),(543,'Enterobacteraceae','synonym'),(543,'enterobacteria','blast name'),(543,'Enterobacteriaceae (ex Rahn 1937) Ewing et al. 1980','authority'),(543,'Enterobacteriaceae Rahn 1937 (Approved Lists 1980) emend. Adeolu et al. 2016','authority'),(543,'Enterobacteriaceae','scientific name'),(543,'gamma-3 proteobacteria','in-part'),(561,'Escherichia Castellani and Chalmers 1919','authority'),(561,'Escherichia','scientific name'),(562,'Achromobacter sp. ATCC 35328','includes'),(562,'ATCC 11775','type material'),(562,'\"Bacillus coli\" Migula 1895','authority'),(562,'Bacillus coli','synonym'),(562,'bacterium 10a','includes'),(562,'\"Bacterium coli commune\" Escherich 1885','authority'),(562,'Bacterium coli commune','synonym'),(562,'\"Bacterium coli\" (Migula 1895) Lehmann and Neumann 1896','authority'),(562,'Bacterium coli','synonym'),(562,'bacterium E3','includes'),(562,'CCUG 24','type material'),(562,'CCUG 29300','type material'),(562,'CIP 54.8','type material'),(562,'DSM 30083','type material'),(562,'E. coli','common name'),(562,'Enterococcus coli','synonym'),(562,'Escherichia coli (Migula 1895) Castellani and Chalmers 1919','authority'),(562,'Escherichia coli','scientific name'),(562,'Escherichia/Shigella coli','equivalent name'),(562,'Escherichia sp. 3_2_53FAA','includes'),(562,'Escherichia sp. MAR','includes'),(562,'IAM 12119','type material'),(562,'JCM 1649','type material'),(562,'LMG 2092','type material'),(562,'LMG:2092','type material'),(562,'NBRC 102203','type material'),(562,'NCCB 54008','type material'),(562,'NCTC 9001','type material'),(562,'strain U5/41','type material'),(1224,'Alphaproteobacteraeota Oren et al. 2015','authority'),(1224,'Alphaproteobacteraeota','synonym'),(1224,'Alphaproteobacteriota','synonym'),(1224,'proteobacteria','blast name'),(1224,'Proteobacteria [class] Stackebrandt et al. 1988','authority'),(1224,'Proteobacteria Garrity et al. 2005','authority'),(1224,'Proteobacteria','scientific name'),(1224,'purple bacteria and relatives','common name'),(1224,'purple bacteria','common name'),(1224,'purple non-sulfur bacteria','common name'),(1224,'purple photosynthetic bacteria and relatives','common name'),(1224,'purple photosynthetic bacteria','common name'),(1236,'Gammaproteobacteria Garrity et al. 2005 emend. Williams and Kelly 2013','authority'),(1236,'Gammaproteobacteria','scientific name'),(1236,'gamma proteobacteria','synonym'),(1236,'gamma subdivision','synonym'),(1236,'gamma subgroup','synonym'),(1236,'g-proteobacteria','blast name'),(1236,'Proteobacteria gamma subdivision','synonym'),(1236,'Purple bacteria, gamma subdivision','synonym'),(2759,'Eucarya','synonym'),(2759,'Eucaryotae','synonym'),(2759,'eucaryotes','genbank common name'),(2759,'Eukarya','synonym'),(2759,'Eukaryotae','synonym'),(2759,'Eukaryota','scientific name'),(2759,'eukaryotes','blast name'),(2759,'eukaryotes','common name'),(3193,'Embryophyta','scientific name'),(3193,'higher plants','common name'),(3193,'land plants','blast name'),(3193,'land plants','common name'),(3193,'plants','common name'),(3398,'Angiospermae','synonym'),(3398,'angiosperms','common name'),(3398,'flowering plants','blast name'),(3398,'flowering plants','genbank common name'),(3398,'Magnoliophyta','synonym'),(3398,'Magnoliopsida','scientific name'),(4447,'Liliopsida','scientific name'),(4447,'monocots','blast name'),(4447,'monocots','common name'),(4447,'Monocotyledoneae','synonym'),(4447,'monocotyledons','genbank common name'),(4479,'Bambusaceae Nakai, 1943','authority'),(4479,'Bambusaceae','synonym'),(4479,'Gramineae','synonym'),(4479,'grass family','common name'),(4479,'Poaceae Barnhart, 1895','authority'),(4479,'Poaceae','scientific name'),(4564,'Triticum L., 1753','authority'),(4564,'Triticum','scientific name'),(4565,'bread wheat','genbank common name'),(4565,'Canadian hard winter wheat','common name'),(4565,'common wheat','common name'),(4565,'Triticum aestivum L., 1753','authority'),(4565,'Triticum aestivum','scientific name'),(4565,'Triticum aestivum subsp. aestivum','synonym'),(4565,'Triticum vulgare','synonym'),(4565,'Triticum vulgare Vill., 1787','authority'),(4565,'wheat','common name'),(4734,'Commelinidae','synonym'),(4734,'commelinids','scientific name'),(4734,'Commeliniflorae','synonym'),(4751,'fungi','blast name'),(4751,'Fungi','scientific name'),(4751,'Mycota','synonym'),(4890,'ascomycete fungi','blast name'),(4890,'ascomycetes','genbank common name'),(4890,'Ascomycota','scientific name'),(4890,'sac fungi','common name'),(4891,'Hemiascomycetes','synonym'),(4891,'Saccharomycetes','scientific name'),(4892,'budding yeasts','blast name'),(4892,'Endomycetales','synonym'),(4892,'Saccharomycetales','scientific name'),(4893,'Eremotheciaceae','includes'),(4893,'Saccharomycetaceae','scientific name'),(4930,'Pachytichospora','synonym'),(4930,'Saccharomyces','scientific name'),(4932,'ATCC 18824','type material'),(4932,'baker\'s yeast','genbank common name'),(4932,'brewer\'s yeast','common name'),(4932,'Candida robusta','synonym'),(4932,'CBS 1171','type material'),(4932,'Mycoderma cerevisiae Desm., 1827','authority'),(4932,'Mycoderma cerevisiae','synonym'),(4932,'NRRL Y-12632','type material'),(4932,'Saccharomyces capensis','synonym'),(4932,'Saccharomyces cerevisiae (Desm.) Meyen, 1838','authority'),(4932,'Saccharomyces cerevisiae','scientific name'),(4932,'Saccharomyces italicus','synonym'),(4932,'Saccharomyces oviformis','synonym'),(4932,'Saccharomyces uvarum var. melibiosus','synonym'),(4932,'S. cerevisiae','common name'),(4932,'specimen-voucher:NRRL:Y:12632','type material'),(5794,'Apicomplexa Levine 1980, emend. Adl et al. 2005','authority'),(5794,'apicomplexans','blast name'),(5794,'apicomplexans','genbank common name'),(5794,'Apicomplexa','scientific name'),(5819,'Haemosporida','scientific name'),(5819,'haemosporidians','genbank common name'),(5819,'Haemosporina','synonym'),(5819,'Haemospororida','synonym'),(5820,'Plasmodium','scientific name'),(5833,'malaria parasite P. falciparum','genbank common name'),(5833,'Plasmodium falciparum','scientific name'),(5833,'Plasmodium (Laverania) falciparum','synonym'),(6072,'Eumetazoa','scientific name'),(6231,'Nemata','synonym'),(6231,'Nematoda','scientific name'),(6231,'nematode','common name'),(6231,'nematodes','blast name'),(6231,'nematodes','common name'),(6231,'roundworm','common name'),(6231,'roundworms','genbank common name'),(6236,'Rhabditida','scientific name'),(6237,'Caenorhabditis','scientific name'),(6239,'Caenorhabditis elegans (Maupas, 1900)','authority'),(6239,'Caenorhabditis elegans','scientific name'),(6239,'Rhabditis elegans Maupas, 1900','authority'),(6239,'Rhabditis elegans','synonym'),(6243,'Rhabditidae','scientific name'),(7711,'Chordata','scientific name'),(7711,'chordates','blast name'),(7711,'chordates','genbank common name'),(7742,'Vertebrata Cuvier, 1812','authority'),(7742,'Vertebrata','scientific name'),(7742,'vertebrates','blast name'),(7742,'vertebrates','genbank common name'),(7776,'Gnathostomata','scientific name'),(7776,'jawed vertebrates','genbank common name'),(8287,'Sarcopterygii','scientific name'),(9347,'eutherian mammals','common name'),(9347,'Eutheria','scientific name'),(9347,'Placentalia','synonym'),(9347,'placental mammals','common name'),(9347,'placentals','blast name'),(9347,'placentals','genbank common name'),(9443,'Primata','synonym'),(9443,'primate','equivalent name'),(9443,'primates','blast name'),(9443,'Primates Linnaeus, 1758','authority'),(9443,'Primates','scientific name'),(9526,'Catarrhini','scientific name'),(9604,'great apes','genbank common name'),(9604,'Hominidae Gray, 1825','authority'),(9604,'Hominidae','scientific name'),(9604,'Pongidae','synonym'),(9605,'Homo Linnaeus, 1758','authority'),(9605,'Homo','scientific name'),(9605,'humans','common name'),(9606,'Homo sapiens Linnaeus, 1758','authority'),(9606,'Homo sapiens','scientific name'),(9606,'human','genbank common name'),(32523,'Tetrapoda','scientific name'),(32523,'tetrapods','genbank common name'),(32524,'Amniota','scientific name'),(32524,'amniotes','genbank common name'),(32525,'Theria Parker & Haswell, 1897','authority'),(32525,'Theria','scientific name'),(33090,'Chlorobionta Jeffrey, 1982','authority'),(33090,'Chlorobionta','synonym'),(33090,'Chlorophyta/Embryophyta group','equivalent name'),(33090,'chlorophyte/embryophyte group','equivalent name'),(33090,'Chloroplastida Adl et al. 2005','authority'),(33090,'Chloroplastida','synonym'),(33090,'green plants','blast name'),(33090,'green plants','common name'),(33090,'Viridiplantae Cavalier-Smith, 1981','authority'),(33090,'Viridiplantae','scientific name'),(33154,'Fungi/Metazoa group','synonym'),(33154,'Opisthokonta Cavalier-Smith 1987','authority'),(33154,'Opisthokonta','scientific name'),(33154,'opisthokonts','synonym'),(33208,'Animalia','synonym'),(33208,'animals','blast name'),(33208,'metazoans','genbank common name'),(33208,'Metazoa','scientific name'),(33208,'multicellular animals','common name'),(33213,'Bilateria','scientific name'),(33317,'Protostomia','scientific name'),(33511,'deuterostomes','common name'),(33511,'Deuterostomia','scientific name'),(33630,'Alveolata','scientific name'),(33630,'alveolates','genbank common name'),(35493,'Streptophyta Bremer, 1985','authority'),(35493,'Streptophyta','scientific name'),(36329,'Plasmodium falciparum 3D7','scientific name'),(36329,'Plasmodium falciparum (isolate 3D7)','synonym'),(38820,'Cyperales','includes'),(38820,'Poales','scientific name'),(38820,'Typhales','includes'),(40674,'Mammalia','scientific name'),(40674,'mammals','blast name'),(40674,'mammals','genbank common name'),(55879,'Rhabditoidea','scientific name'),(55885,'Peloderinae','scientific name'),(58023,'Tracheophyta','scientific name'),(58023,'Tracheophyta Sinnott ex Cavalier-Smith, 1998','authority'),(58023,'vascular plants','blast name'),(58023,'vascular plants','common name'),(58024,'seed plants','blast name'),(58024,'seed plants','common name'),(58024,'Spermatophyta','scientific name'),(78536,'Euphyllophyta','scientific name'),(78536,'euphyllophytes','equivalent name'),(83333,'Escherichia coli K12','equivalent name'),(83333,'Escherichia coli K-12','scientific name'),(89593,'Craniata','scientific name'),(91347,'Enterobacterales Adeolu et al. 2016','authority'),(91347,'Enterobacterales','scientific name'),(91347,'Enterobacteriaceae and related endosymbionts','synonym'),(91347,'Enterobacteriaceae group','synonym'),(91347,'Enterobacteriales','synonym'),(91347,'gamma-3 proteobacteria','in-part'),(117570,'Teleostomi','scientific name'),(117571,'bony vertebrates','genbank common name'),(117571,'Euteleostomi','scientific name'),(119089,'Adenophorea','synonym'),(119089,'Chromadorea','scientific name'),(131221,'Charophyta/Embryophyta group','synonym'),(131221,'charophyte/embryophyte group','equivalent name'),(131221,'Streptophytina','scientific name'),(131567,'biota','synonym'),(131567,'cellular organisms','scientific name'),(147368,'Pooideae','scientific name'),(147389,'Triticeae Dumort., 1824','authority'),(147389,'Triticeae','scientific name'),(147537,'Saccharomycotina','scientific name'),(147537,'true yeasts','genbank common name'),(207598,'Homininae','scientific name'),(207598,'Homo/Pan/Gorilla group','synonym'),(314146,'Euarchontoglires','scientific name'),(314293,'Anthropoidea','synonym'),(314293,'Simiiformes','scientific name'),(314295,'ape','common name'),(314295,'apes','genbank common name'),(314295,'Hominoidea','scientific name'),(359160,'BEP clade','equivalent name'),(359160,'BOP clade','scientific name'),(376913,'Haplorrhini','scientific name'),(418107,'Laverania Bray 1958','authority'),(418107,'Laverania','synonym'),(418107,'Plasmodium (Laverania)','scientific name'),(422676,'Aconoidasida Mehlhorn et al. 1980','authority'),(422676,'Aconoidasida','scientific name'),(422676,'Hematozoa Vivier 1982','synonym'),(451864,'Dikarya','scientific name'),(511145,'Escherichia coli MG1655','synonym'),(511145,'Escherichia coli strain MG1655','equivalent name'),(511145,'Escherichia coli str. K12 substr. MG1655','equivalent name'),(511145,'Escherichia coli str. K-12 substr. MG1655','scientific name'),(511145,'Escherichia coli str. MG1655','equivalent name'),(559292,'Saccharomyces cerevisiae S288C','scientific name'),(716545,'saccharomyceta','scientific name'),(1206794,'Ecdysozoa','scientific name'),(1338369,'Dipnotetrapodomorpha','scientific name'),(1437010,'Boreoeutheria','scientific name'),(1437010,'Boreotheria','synonym'),(1437183,'Mesangiospermae M.J.Donoghue, J.A.Doyle & P.D.Cantino, 2007','authority'),(1437183,'Mesangiospermae','scientific name'),(1437197,'Petrosaviidae','scientific name'),(1437197,'Petrosaviidae S.W.Graham & W.S.Judd, 2007','authority'),(1639119,'Plasmodiidae Mesnil, 1903','authority'),(1639119,'Plasmodiidae','scientific name'),(1648030,'Triticinae Fr., 1835','authority'),(1648030,'Triticinae','scientific name'),(1648038,'Triticodae','scientific name'),(1648038,'Triticodae T.D. Macfarl. & L.Watson, 1982','authority'),(2301116,'Rhabditina','scientific name'),(2301119,'Rhabditomorpha','scientific name'),(2698737,'Sar Burki et al. 2008','authority'),(2698737,'Sar','scientific name'),(2698737,'SAR supergroup','synonym'),(38820,'4478','merged_taxon_id'),(38820,'4727','merged_taxon_id'),(119089,'27837','merged_taxon_id'),(6236,'33251','merged_taxon_id'),(4930,'36915','merged_taxon_id'),(4565,'39424','merged_taxon_id'),(117571,'40673','merged_taxon_id'),(4893,'44280','merged_taxon_id'),(6243,'54603','merged_taxon_id'),(4893,'221665','merged_taxon_id'),(4565,'235075','merged_taxon_id'),(562,'469598','merged_taxon_id'),(562,'662101','merged_taxon_id'),(562,'662104','merged_taxon_id'),(562,'1637691','merged_taxon_id'),(4479,'1661618','merged_taxon_id'),(562,'1806490','merged_taxon_id'),(1,'2022-05-11 11:21:23','import date'); +/*!40000 ALTER TABLE `ncbi_taxa_name` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `ncbi_taxa_node` +-- + +DROP TABLE IF EXISTS `ncbi_taxa_node`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `ncbi_taxa_node` ( + `taxon_id` int unsigned NOT NULL, + `parent_id` int unsigned NOT NULL, + `rank` char(32) NOT NULL DEFAULT '', + `genbank_hidden_flag` tinyint(1) NOT NULL DEFAULT '0', + `left_index` int NOT NULL DEFAULT '0', + `right_index` int NOT NULL DEFAULT '0', + `root_id` int NOT NULL DEFAULT '1', + PRIMARY KEY (`taxon_id`), + KEY `parent_id` (`parent_id`), + KEY `rank` (`rank`), + KEY `left_index` (`left_index`), + KEY `right_index` (`right_index`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `ncbi_taxa_node` +-- + +LOCK TABLES `ncbi_taxa_node` WRITE; +/*!40000 ALTER TABLE `ncbi_taxa_node` DISABLE KEYS */; +INSERT INTO `ncbi_taxa_node` VALUES (1,0,'no rank',0,1,4839748,1),(2,131567,'superkingdom',0,454785,1518028,1),(543,91347,'family',0,527109,572226,1),(561,543,'genus',0,540630,549495,1),(562,561,'species',1,540631,547386,1),(1224,2,'phylum',0,454786,907829,1),(1236,1224,'class',0,454787,699792,1),(2759,131567,'superkingdom',0,1546141,4803280,1),(3193,131221,'clade',0,1592311,2050748,1),(3398,58024,'class',0,1612133,2028338,1),(4447,1437183,'clade',0,1612859,1707618,1),(4479,38820,'family',0,1627987,1648550,1),(4564,1648030,'genus',0,1646777,1646996,1),(4565,4564,'species',1,1646778,1646809,1),(4734,1437197,'clade',1,1622243,1667602,1),(4751,33154,'kingdom',0,2053415,2416594,1),(4890,451864,'phylum',0,2093309,2306878,1),(4891,147537,'class',0,2100390,2112985,1),(4892,4891,'order',0,2100391,2112760,1),(4893,4892,'family',0,2100392,2102505,1),(4930,4893,'genus',0,2100505,2101672,1),(4932,4930,'species',1,2100528,2101173,1),(5794,33630,'phylum',0,4739114,4757307,1),(5819,422676,'order',0,4739198,4750405,1),(5820,1639119,'genus',0,4739270,4743733,1),(5833,418107,'species',1,4743222,4743567,1),(6072,33208,'clade',1,2428610,4709233,1),(6231,1206794,'phylum',0,2456730,2492541,1),(6236,119089,'order',0,2464694,2484259,1),(6237,55885,'genus',0,2483022,2483179,1),(6239,6237,'species',1,2483025,2483026,1),(6243,55879,'family',0,2483020,2484177,1),(7711,33511,'phylum',0,4480907,4707468,1),(7742,89593,'clade',0,4483205,4707428,1),(7776,7742,'clade',1,4483206,4706229,1),(8287,117571,'superclass',1,4591507,4706226,1),(9347,32525,'clade',0,4681311,4706198,1),(9443,314146,'order',0,4693344,4695391,1),(9526,314293,'parvorder',0,4694543,4695346,1),(9604,314295,'family',0,4695265,4695344,1),(9605,207598,'genus',0,4695299,4695316,1),(9606,9605,'species',1,4695300,4695305,1),(32523,1338369,'clade',1,4591583,4706224,1),(32524,32523,'clade',1,4616682,4706223,1),(32525,40674,'clade',1,4679940,4706199,1),(33090,2759,'kingdom',0,1565736,2053413,1),(33154,2759,'clade',1,2053414,4709947,1),(33208,33154,'kingdom',0,2416905,4709246,1),(33213,6072,'clade',1,2456723,4709232,1),(33317,33213,'clade',1,2456724,4467859,1),(33511,33213,'clade',1,4467860,4707861,1),(33630,2698737,'clade',0,4728125,4767506,1),(35493,33090,'phylum',0,1591573,2053328,1),(36329,5833,'isolate',1,4743253,4743254,1),(38820,4734,'order',0,1627986,1663273,1),(40674,32524,'class',0,4679913,4706222,1),(55879,2301119,'superfamily',0,2483019,2484224,1),(55885,6243,'subfamily',0,2483021,2483252,1),(58023,3193,'clade',0,1612130,2050747,1),(58024,78536,'clade',0,1612132,2031861,1),(78536,58023,'clade',1,1612131,2048940,1),(83333,562,'strain',1,540634,540705,1),(89593,7711,'subphylum',0,4483204,4707429,1),(91347,1236,'order',0,527108,589837,1),(117570,7776,'clade',1,4487755,4706228,1),(117571,117570,'clade',0,4487756,4706227,1),(119089,6231,'class',0,2464693,2492514,1),(131221,35493,'subphylum',1,1592310,2053319,1),(131567,1,'no rank',1,454784,4803281,1),(147368,359160,'subfamily',0,1641279,1648496,1),(147389,1648038,'tribe',0,1645725,1647156,1),(147537,716545,'subphylum',0,2100389,2112998,1),(207598,9604,'subfamily',1,4695266,4695317,1),(314146,1437010,'superorder',0,4693269,4706168,1),(314293,376913,'infraorder',1,4693878,4695347,1),(314295,9526,'superfamily',1,4695160,4695345,1),(359160,4479,'clade',0,1637546,1648497,1),(376913,9443,'suborder',0,4693877,4695390,1),(418107,5820,'subgenus',0,4743221,4743592,1),(422676,5794,'class',0,4739197,4752236,1),(451864,4751,'subkingdom',0,2093308,2416587,1),(511145,83333,'no rank',1,540639,540640,1),(559292,4932,'strain',1,2100559,2100560,1),(716545,4890,'clade',1,2100388,2306877,1),(1206794,33317,'clade',0,2456729,4301244,1),(1338369,8287,'clade',1,4591520,4706225,1),(1437010,9347,'clade',1,4682028,4706173,1),(1437183,3398,'clade',1,1612858,2028325,1),(1437197,4447,'subclass',1,1618614,1707617,1),(1639119,5819,'family',0,4739269,4743838,1),(1648030,147389,'subtribe',0,1646686,1647105,1),(1648038,147368,'no rank',0,1645724,1647169,1),(2301116,6236,'suborder',0,2481947,2484234,1),(2301119,2301116,'infraorder',0,2483018,2484233,1),(2698737,2759,'clade',0,4728124,4803255,1); +/*!40000 ALTER TABLE `ncbi_taxa_node` ENABLE KEYS */; +UNLOCK TABLES; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2022-10-30 9:14:23 diff --git a/tests/ncbi_taxonomy.sqlite b/tests/ncbi_taxonomy.sqlite new file mode 100644 index 0000000000000000000000000000000000000000..937343bdd8fef9ccb22d1cb78c7ad7695fa2ff1f GIT binary patch literal 73728 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 C+)$|i literal 0 HcmV?d00001 diff --git a/tests/test_api.py b/tests/test_api.py index 4ed1b26d..f2314853 100644 --- a/tests/test_api.py +++ b/tests/test_api.py @@ -15,7 +15,12 @@ from os.path import dirname from ensembl.production.metadata.api import * -DB_NAME = 'sqlite:///' + dirname(__file__) + '/TEST.db' +# Should be removed after the travis CI works properly. +# Many of the tests will fail on sqlite. +# DB_NAME = 'sqlite:///' + dirname(__file__) + '/metadata_20202.sqlite' +# TX_NAME = 'sqlite:/// + dirname(__file__) + '/ncbi_taxonomy.sqlite' +DB_NAME = 'mysql://root:@127.0.0.1:3306/ensembl_metadata_2020' +TX_NAME = 'mysql://root:@127.0.0.1:3306/ncbi_taxonomy' def test_load_database(): @@ -43,3 +48,57 @@ def test_fetch_releases_for_dataset(): conn = ReleaseAdaptor(DB_NAME) TEST = conn.fetch_releases_for_dataset('76ffa505-948d-11ec-a39d-005056b38ce3') assert TEST[0].EnsemblSite.name == '2020-map' + + +def test_fetch_taxonomy_names(): + conn = GenomeAdaptor(metadata_uri=DB_NAME, taxonomy_uri=TX_NAME) + TEST = conn.fetch_taxonomy_names(taxonomy_ids=(6239, 511145)) + assert TEST[511145]['scientific_name'] == 'Escherichia coli str. K-12 substr. MG1655' + + +def test_fetch_taxonomy_ids(): + conn = GenomeAdaptor(metadata_uri=DB_NAME, taxonomy_uri=TX_NAME) + TEST = conn.fetch_taxonomy_ids(taxonomy_names='Caenorhabditis elegans') + assert TEST[0] == 6239 + + +def test_fetch_genomes(): + conn = GenomeAdaptor(metadata_uri=DB_NAME, taxonomy_uri=TX_NAME) + TEST = conn.fetch_genomes() + assert TEST[0].Organism.scientific_name == 'Escherichia coli str. K-12 substr. MG1655 str. K12' + + +def test_fetch_genomes_by_genome_uuid(): + conn = GenomeAdaptor(metadata_uri=DB_NAME, taxonomy_uri=TX_NAME) + TEST = conn.fetch_genomes_by_genome_uuid('a733550b-93e7-11ec-a39d-005056b38ce3') + assert TEST[0].Organism.scientific_name == 'Caenorhabditis elegans' + + +def test_fetch_genomes_by_assembly_accession(): + conn = GenomeAdaptor(metadata_uri=DB_NAME, taxonomy_uri=TX_NAME) + TEST = conn.fetch_genomes_by_assembly_accession('GCA_000005845.2') + assert TEST[0].Organism.scientific_name == 'Escherichia coli str. K-12 substr. MG1655 str. K12' + + +def test_fetch_genomes_by_ensembl_name(): + conn = GenomeAdaptor(metadata_uri=DB_NAME, taxonomy_uri=TX_NAME) + TEST = conn.fetch_genomes_by_ensembl_name('caenorhabditis_elegans') + assert TEST[0].Organism.scientific_name == 'Caenorhabditis elegans' + + +def test_fetch_genomes_by_taxonomy_id(): + conn = GenomeAdaptor(metadata_uri=DB_NAME, taxonomy_uri=TX_NAME) + TEST = conn.fetch_genomes_by_taxonomy_id(6239) + assert TEST[0].Organism.scientific_name == 'Caenorhabditis elegans' + + +def test_fetch_genomes_by_scientific_name(): + conn = GenomeAdaptor(metadata_uri=DB_NAME, taxonomy_uri=TX_NAME) + TEST = conn.fetch_genomes_by_scientific_name('Caenorhabditis elegans') + assert TEST[0].Organism.scientific_name == 'Caenorhabditis elegans' + + +def test_fetch_sequences(): + conn = GenomeAdaptor(metadata_uri=DB_NAME, taxonomy_uri=TX_NAME) + TEST = conn.fetch_sequences() + assert TEST[0].AssemblySequence.accession == 'CM000663.2' From 7e2d61797589e96540cd6376e76f63cc827ad00f Mon Sep 17 00:00:00 2001 From: dpopleton Date: Mon, 31 Oct 2022 00:11:06 +0000 Subject: [PATCH 06/11] Test Fix --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 8019709d..43b0f2a1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,7 +15,7 @@ before_script: - pip install -r requirements-test.txt - pip install . - export PYTHONPATH=$PYTHONPATH:$PWD/src - - mysql -u root -h 127.0.0.1 -e 'CREATE DATABASE ncbi_taxonomy; CREATE DATABASE ensembl_metadata_2020; source tests/ncbi_taxonomy.sql; source tests/ncbi_taxonomy ensembl_metadata_2020; + - mysql -u root -h 127.0.0.1 -e 'CREATE DATABASE ncbi_taxonomy; CREATE DATABASE ensembl_metadata_2020; source tests/ncbi_taxonomy.sql; source tests/ncbi_taxonomy ensembl_metadata_2020;' script: - if [[ "$TESTENV" == "test" ]]; then coverage run -m pytest; fi From bfc531d6ac103ecdf886ae396c2142c39f12fe92 Mon Sep 17 00:00:00 2001 From: dpopleton Date: Mon, 31 Oct 2022 00:19:13 +0000 Subject: [PATCH 07/11] Test Fix --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 43b0f2a1..16c7fa1e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,7 +15,7 @@ before_script: - pip install -r requirements-test.txt - pip install . - export PYTHONPATH=$PYTHONPATH:$PWD/src - - mysql -u root -h 127.0.0.1 -e 'CREATE DATABASE ncbi_taxonomy; CREATE DATABASE ensembl_metadata_2020; source tests/ncbi_taxonomy.sql; source tests/ncbi_taxonomy ensembl_metadata_2020;' + - mysql -u root -h 127.0.0.1 -e 'CREATE DATABASE ncbi_taxonomy; CREATE DATABASE ensembl_metadata_2020; use ncbi_taxonomy; source tests/ncbi_taxonomy.sql; use ensembl_metadata_2020; source tests/ensembl_metadata_2020;' script: - if [[ "$TESTENV" == "test" ]]; then coverage run -m pytest; fi From 3f6c8d9a81909c12b42b977f68556678639f9bae Mon Sep 17 00:00:00 2001 From: dpopleton Date: Mon, 31 Oct 2022 00:26:16 +0000 Subject: [PATCH 08/11] Test Fix --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 16c7fa1e..1b28ddaa 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,7 +15,7 @@ before_script: - pip install -r requirements-test.txt - pip install . - export PYTHONPATH=$PYTHONPATH:$PWD/src - - mysql -u root -h 127.0.0.1 -e 'CREATE DATABASE ncbi_taxonomy; CREATE DATABASE ensembl_metadata_2020; use ncbi_taxonomy; source tests/ncbi_taxonomy.sql; use ensembl_metadata_2020; source tests/ensembl_metadata_2020;' + - mysql -u root -h 127.0.0.1 -e 'CREATE DATABASE ncbi_taxonomy; CREATE DATABASE ensembl_metadata_2020; use ncbi_taxonomy; source tests/ncbi_taxonomy.sql; use ensembl_metadata_2020; source tests/ensembl_metadata_2020.sql;' script: - if [[ "$TESTENV" == "test" ]]; then coverage run -m pytest; fi From 4d6575e825b029f4533a75a663145967ccc646cb Mon Sep 17 00:00:00 2001 From: dpopleton Date: Mon, 31 Oct 2022 00:34:26 +0000 Subject: [PATCH 09/11] mySQL version fix --- tests/ensembl_metadata_2020.sql | 38 ++++++++++++++++++--------------- tests/ncbi_taxonomy.sql | 6 +++--- 2 files changed, 24 insertions(+), 20 deletions(-) diff --git a/tests/ensembl_metadata_2020.sql b/tests/ensembl_metadata_2020.sql index 731811c6..b62d79a2 100644 --- a/tests/ensembl_metadata_2020.sql +++ b/tests/ensembl_metadata_2020.sql @@ -1,3 +1,7 @@ +-- noinspection SqlDialectInspectionForFile + +-- noinspection SqlNoDataSourceInspectionForFile + -- MySQL dump 10.13 Distrib 8.0.30, for Linux (x86_64) -- -- Host: localhost Database: ensembl_metadata_2020 @@ -7,7 +11,7 @@ /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; -/*!50503 SET NAMES utf8mb4 */; +/*!50503 SET NAMES utf8 */; /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; /*!40103 SET TIME_ZONE='+00:00' */; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; @@ -19,7 +23,7 @@ -- Current Database: `ensembl_metadata_2020` -- -CREATE DATABASE /*!32312 IF NOT EXISTS*/ `ensembl_metadata_2020` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */; +CREATE DATABASE /*!32312 IF NOT EXISTS*/ `ensembl_metadata_2020` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_0900_ci */ /*!80016 DEFAULT ENCRYPTION='N' */; USE `ensembl_metadata_2020`; @@ -29,7 +33,7 @@ USE `ensembl_metadata_2020`; DROP TABLE IF EXISTS `assembly`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; +/*!50503 SET character_set_client = utf8 */; CREATE TABLE `assembly` ( `assembly_id` int NOT NULL AUTO_INCREMENT, `ucsc_name` varchar(16) DEFAULT NULL, @@ -64,7 +68,7 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `assembly_sequence`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; +/*!50503 SET character_set_client = utf8 */; CREATE TABLE `assembly_sequence` ( `assembly_sequence_id` int NOT NULL AUTO_INCREMENT, `name` varchar(128) DEFAULT NULL, @@ -98,7 +102,7 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `attribute`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; +/*!50503 SET character_set_client = utf8 */; CREATE TABLE `attribute` ( `attribute_id` int NOT NULL AUTO_INCREMENT, `name` varchar(128) NOT NULL, @@ -124,7 +128,7 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `dataset`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; +/*!50503 SET character_set_client = utf8 */; CREATE TABLE `dataset` ( `dataset_id` int NOT NULL AUTO_INCREMENT, `dataset_uuid` varchar(128) NOT NULL, @@ -159,7 +163,7 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `dataset_attribute`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; +/*!50503 SET character_set_client = utf8 */; CREATE TABLE `dataset_attribute` ( `dataset_attribute_id` int NOT NULL AUTO_INCREMENT, `type` varchar(32) NOT NULL, @@ -191,7 +195,7 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `dataset_source`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; +/*!50503 SET character_set_client = utf8 */; CREATE TABLE `dataset_source` ( `dataset_source_id` int NOT NULL AUTO_INCREMENT, `type` varchar(32) NOT NULL, @@ -217,7 +221,7 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `dataset_type`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; +/*!50503 SET character_set_client = utf8 */; CREATE TABLE `dataset_type` ( `dataset_type_id` int NOT NULL AUTO_INCREMENT, `name` varchar(32) NOT NULL, @@ -245,7 +249,7 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `ensembl_release`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; +/*!50503 SET character_set_client = utf8 */; CREATE TABLE `ensembl_release` ( `release_id` int NOT NULL AUTO_INCREMENT, `version` decimal(10,1) NOT NULL, @@ -277,7 +281,7 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `ensembl_site`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; +/*!50503 SET character_set_client = utf8 */; CREATE TABLE `ensembl_site` ( `site_id` int NOT NULL AUTO_INCREMENT, `name` varchar(64) NOT NULL, @@ -303,7 +307,7 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `genome`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; +/*!50503 SET character_set_client = utf8 */; CREATE TABLE `genome` ( `genome_id` int NOT NULL AUTO_INCREMENT, `genome_uuid` varchar(128) NOT NULL, @@ -335,7 +339,7 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `genome_dataset`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; +/*!50503 SET character_set_client = utf8 */; CREATE TABLE `genome_dataset` ( `genome_dataset_id` int NOT NULL AUTO_INCREMENT, `dataset_id` int NOT NULL, @@ -368,7 +372,7 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `genome_release`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; +/*!50503 SET character_set_client = utf8 */; CREATE TABLE `genome_release` ( `genome_release_id` int NOT NULL AUTO_INCREMENT, `genome_id` int NOT NULL, @@ -398,7 +402,7 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `organism`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; +/*!50503 SET character_set_client = utf8 */; CREATE TABLE `organism` ( `organism_id` int NOT NULL AUTO_INCREMENT, `taxonomy_id` int NOT NULL, @@ -430,7 +434,7 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `organism_group`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; +/*!50503 SET character_set_client = utf8 */; CREATE TABLE `organism_group` ( `organism_group_id` int NOT NULL AUTO_INCREMENT, `type` varchar(32) NOT NULL, @@ -458,7 +462,7 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `organism_group_member`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; +/*!50503 SET character_set_client = utf8 */; CREATE TABLE `organism_group_member` ( `organism_group_member_id` int NOT NULL AUTO_INCREMENT, `is_reference` tinyint(1) NOT NULL, diff --git a/tests/ncbi_taxonomy.sql b/tests/ncbi_taxonomy.sql index 6379f4d8..f54f30e7 100644 --- a/tests/ncbi_taxonomy.sql +++ b/tests/ncbi_taxonomy.sql @@ -7,7 +7,7 @@ /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; -/*!50503 SET NAMES utf8mb4 */; +/*!50503 SET NAMES utf8 */; /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; /*!40103 SET TIME_ZONE='+00:00' */; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; @@ -21,7 +21,7 @@ DROP TABLE IF EXISTS `ncbi_taxa_name`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; +/*!50503 SET character_set_client = utf8 */; CREATE TABLE `ncbi_taxa_name` ( `taxon_id` int unsigned NOT NULL, `name` varchar(255) NOT NULL, @@ -48,7 +48,7 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `ncbi_taxa_node`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; +/*!50503 SET character_set_client = utf8 */; CREATE TABLE `ncbi_taxa_node` ( `taxon_id` int unsigned NOT NULL, `parent_id` int unsigned NOT NULL, From 05ba2a0c094aa0ba4d5267d31c94123e9a47a4be Mon Sep 17 00:00:00 2001 From: dpopleton Date: Mon, 31 Oct 2022 00:39:46 +0000 Subject: [PATCH 10/11] mySQL version fix --- tests/ensembl_metadata_2020.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/ensembl_metadata_2020.sql b/tests/ensembl_metadata_2020.sql index b62d79a2..3b364a30 100644 --- a/tests/ensembl_metadata_2020.sql +++ b/tests/ensembl_metadata_2020.sql @@ -23,7 +23,7 @@ -- Current Database: `ensembl_metadata_2020` -- -CREATE DATABASE /*!32312 IF NOT EXISTS*/ `ensembl_metadata_2020` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_0900_ci */ /*!80016 DEFAULT ENCRYPTION='N' */; +CREATE DATABASE /*!32312 IF NOT EXISTS*/ `ensembl_metadata_2020` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci */ /*!80016 DEFAULT ENCRYPTION='N' */; USE `ensembl_metadata_2020`; From 7f3eb3fe0d2e04df4859465151a1e8e165d59e29 Mon Sep 17 00:00:00 2001 From: dpopleton Date: Mon, 31 Oct 2022 00:43:29 +0000 Subject: [PATCH 11/11] removed sqlite --- tests/metadata_20202.sqlite | Bin 376832 -> 0 bytes tests/ncbi_taxonomy.sqlite | Bin 73728 -> 0 bytes tests/test_api.py | 4 ---- 3 files changed, 4 deletions(-) delete mode 100644 tests/metadata_20202.sqlite delete mode 100644 tests/ncbi_taxonomy.sqlite diff --git a/tests/metadata_20202.sqlite b/tests/metadata_20202.sqlite deleted file mode 100644 index dfd297ad3cc0be2a6eb81658125145cbbc13f20c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 376832 zcmeFa2Yehw(mp&h8)j#AXUCRvR&+%2My*!H7&&JfXTTt@Rx4Syk|i12m^3EmBj=pc zk#o+OxA$w6P_c5Z3;rtUKO)Q$ z{a@sl?Ol+U=RJ`3K;8p+59B?N_dwnQc@N}0koQ2|19=bRJ&^anf6xQ*5pc5!x&~DC zmk9cU`XPG2|F!={{|5MH{wME&ya)0g$a^5~fxHLu9>{wj?}5Ar@*c>0;J?oU^F3Z+ zKzUISSRNj-wlNr=HLa#LfPR9JK(rzlNv`c^Yia9jYe~&oGHq=*R?!{|hXSEcd7!d9 z6f6t|s)JS4!BAsI68^Zm+Y51L(I9j;0o^Gc2t+UxxQxU0uUV#>fr|S9gH)=Rje~Y zRaPmmGpcybsG1`6Se$rOv?6TXXyw#osyP&n_E4NDVox`SR{wj?}5Ar@*c>0An$>^2l5`s#RL5v zuUuQsqGZmK+X2A@TpaB>w*nzW#rv|5bmt_e+`AkoQ2|19=bR zJ&^Z6-UE3L{wj?}5Ar@*c>0;D6Txs<8|TpsYvV|9@AG5!7?k zr`1Q)d)3?28`LY+i%>2=|62bXW&`|1e_j8x{;d8u>=Agkeye_iewBWSex81YezJb7 zez<p<^R6gI`J4Pn|9<|J{=NM3 z{4@Mh{BeKSU+y2{FY*ub5Af@L#qZGmt^K5Zt9_|`ti7kbslBW{uRW8hG_jXO_Mdj z_p|Ri-KxyU=%*?+?CXecOCneO8Rpac{^w!CUGb;T`DJy&kWq{-S=b{!RT@ zeOG;5eNjDCJzhORJy<^2l5`sdm!(D{{;`Y9irqG zekbfV!v0OzuY~=JuwMxKnXrEn_7h=067~aO{~+vp!oDNyTf)8}>}$gQPS{t3{f)3M z3Ht&um+(1ZpAq&cVV@B8F<~DO_E*9_Bx8{V*sFxSLfFfMy+qib5pxPJ680y;ULfpw!k#1SS;C$n>}kTDBJ4@Ro*?XT z!X6{+QN$d=BZNIn*h7RpNZ12}-A~wkgxyQnJ%rs&*jqTgxyNmEri`n z*iD4pNZ20K4YYDrCu&W8Xim)pQyMnOG3A>E2O9{J#u!{-1h_DL@yMVCs z2|JIla|t_#u(Js}i?A~ZJA<&(2|JCjQwckTus;xXGGQkXb|PUX5OzFa#}RfcVaE`5 zG+{>(b|hg(5Oz3W+XyoVJIv(}MaQ9-9)jt?m>z`bR!k4XbPJ}NG2Mje0hn&YvOc!Fh0Mq%H&ck#rrgJczjp-~* zXJR@7)9IK_!*nX9HJI*+=@d-&z;rUEyJI>D(`roPm{wsL!?Y69D5eoi!SO59gpcaOvhq62Gh})mSI|oX$hvqm=cCWT zIz+`G!Mje>zeI05A7TFsFTcFXya)0g$a^5~fxHLu9>{wj?}5Ar@*c>0An$>^2l5{H z4|>4c$0-(xj(KxJu|OnJRS{f=&i`94{3Pga>9^@8>1*|=`f&e`{ulk%`VaT7_DB7G z?NjX`?HsK`o2Qlf{taKlZ-j5(N#7LTFz-+BMf*nY@!m%7H18<&U+`V}R`q0cy*f)R zRYm1p2i_#H}~7_yWD5E zJKT%hySWwDC$2|b7rPF2?c<8M`a8dMzTmvhd5kmVoa!9q_|@^I;||AZj&{ca$9RV< zeIz|BT_|mpR!LE*K>S*KPP|4uQcQ@G#i3x<_I`@c#0Rm+Bf+T_X?MU85JC6fmoBPC zM?%EHRYmKvAjo5*sw_xx6M;CayF@}2LD#Fk!fjc;^-h)0mBc(unJ07N)2n zt2m)J=-P{dq_QD!8+kPasn3Q)DuNywlFWvLD}s(!sk_u=Ly+B9P>@76Bv27l`cjZJ zS&$%DY=hWN8+p3N_3E3bG^{0@dhzh=S~u4S{NOixgyWHUzxu{*{6(%7%b<9q&?* zh1n4BuKPd=vLG7*-gUo5LFQ*ez`K3uYMhr10q@GkQFob}1&N_2U;qV~lMO+x8%#lF zXG6d*&UOkiD;olSQRY&Rnb{EVi@Jt_%*ckIR(Bl*nVt;+zqmUn$h2$-dX9deAXBp- zm0(ffVHBh$8v@1kj-eoXW<#L3vX_EP$%a62HTqH8BMTCNC%|<&b(hIm5Y)vpklnK( z(7c^=M>Z)Nf~rxX6jf(KQ0GB6hIlpv{Nkd!psH*L_(eUQQWVREfYI(Q3R0N`LGL4H z9|{u9hJbgMendec*$`0FcTWpa93~L!B^wTc>x9#)Elg1;>o!5~o$GQ663m8x?>uy2 z0@)BKuj3QyE)%mM(0BuF6r>^>0wy_crXb~65On;Ni|!A1%Z5NbdNxvbnUD=Z?fXm$ zGCmsu7I{9TAmdb_uQ)||WMCn<+v_W33f9kp1>+f55MYP2QQcix0R^kdzycK^ z=Q9mu)ZO}0uvi)fuls4rab85 z_oJf;y?=g)YLBIoh01up61?wkJDmzDOGOKnaegH@-~ZYZZmV1<{%;b#5MY-7J^ERC zm%f)?p?m$G`5*UR>OT}R0CE2S?K|yH+V$G8T7x!K8|nK6asapZPV%ku&GZ#}e}j4L zcX&_nws_}w%e;d6j(R7|O>a?Wt0l^B%A3k0{|Z=^Uw3nlFtOe;3~nZx)Xelj0KMA|kxB&iM=D@DqWdPVqHVg_Rl*s>+~Z72$zfsLr&+ zfZ!*Cie*rhfYMgd_nKv)Dl;f}t_ECAjjl@!2!S&9ie^yoT=hSUY91v9L_rx;B!hzI zs$j2mv_=SoGAPp%(5Lm8_b82mSSW)EX6^-jn(`zSU>6(daL5_~$D+_I#DNSb9T3qV zXcS^4HF_;J(jgHIf+iuH+-Vi6*hmLOGzc1maQ^Q!C><8jAZQQ557fY@$jAzeVo?}= zHdC*;Vj~?H(KkXPzWG$NU2LRdBN~K;d^4!Hve-yRM-(W6#(d3GOjvBB<0Be`23gI= z(#EADBpL(`cX$@jpmdBxgOI}=chI18lthD&!!Nsx2BqU98iWR8r&4iUv5}6HXb?Eu zQAv&Ei;b*UDTWe~(wj{Erh_H=PRQd8|D?;54wq;Ucw9JTGYv`yOcW>#9)}b&4N8Yh zGzfY8h>0{P9W>D()WpxAx|d=j9X8P*@VN8@9f%m|z=;MSk6$&3R+kQ)Xb|%F5%oDM2Avo5NhK;QeAnmLB~>Q5O`cX`W^aCbTE|$p*DW@ zaWsgIrU(c}lD9lhgXnN74FZn~r(a2f=y)m(0*?#lA3}rZfGQ0_ZG6>}GzcQ9ZjBCN z_MmhC6)6=P5KwgoA&*~5CEAJ&h^M-PkjF2gLX2VqqN(m6x?hy-AWIzmsK-O2DSO7eJFf~pp zHXwlNek0`Y>;6RF2*M}!M$tI9$@>9~f!L`#1{^Su3QLO&2%NfO!2W^-)_sZ%h?)?_ z>MWutpDx@$^-Vm+iFy2MI z35pB|mAc;tn#d4p3|VAApwt}$4jOh8tqa1W?ig^8n@WKc84x6O!=SABmNDdBaY!Fh!fQZWDyU zc&NU!Xj3)>8ldlX>MjRlL*VIi^`{^kvmwyg4Sth?bY(-p>Q!_r?#zaO)uX5$v#28* z0+pn+QHnNXK~UGE(2revHU#`4Uqs!dEgJ%U>Hj$eY3&Y)K;|K+zfM6~vLSF6eK7@T z&W3<@oqx6L3}{)TqeFKKH&MM=M&E>o<}^l=-=q?=`ZN_>(|3d|Ks#6Ff(AK zJ`>jTm+Jj=$^WhYeOSH!fd2;n`Tpbm2f{l2RsLE2N`INZKdi|APWwQ6QF~DPBdonY zLEEaW)ArWpYH@9>Hb`^(et=c=FZ&+x-R!&Ace3vgSV6zqH_un?8|NGBlVP>|$KF@G zk9u$MUgG@&tc-8GC;$aen4}&H0$~7U#vzlbi=R*Ev@?XF4O! zVrL)6Z;rn?-hvFq9gfQ#r#cREv^rKh<~phzqaFPnlJt%AuJoLAk94(krgVhVA+3=X zO1n$rrNNS0{0CH2)=yuU&LL$I6e#iV5+gx5hCd5}`{Aq$^Mbqw@*c>0An$>^2mb%= z0l!ljAuWfmhA@{ZEWDvR#SxOUDjEr)T%zzg^Tw-$H{NTEBnpyO83|7hUA#Rwp{sAmKaMI{*lsI6lJF#b%?0yGR?!w8^Y zwTuA9fcrB7P`e)^04=K-0Stuqr384=+CGc`Y}uO;z)e>%0Mup#^C2 z(jK$`HSNia0Gzx#BLKCN7y%ep%?O|zaYg{;sA2@5Hbx83^HRwOprlbo0GC8)0h;y` zW&}{M5F>zs1sMU{G{6YJrxO_gXsMtDXeLfMBLL%eV+3H_1V#W_#`~dP63zKD6a0{7d~c{)zq( zey{d3tPprrdsMqwyGT0`qWvaqr8YwgYekw4>jl2_z3F?>cf0R0-zmOBA=cm5H^&$A zmHGPlMA#SaFWzUpcYCk$p5Z+lcEGFkE`UgXoOh7d1$*6np#Dj{U%d`?COlf*s3z6D z)G2B?>}sbdKPew8FDnl#H^TmP$17WuMrFA&O$jQa6b)t>eC~PO^SI|$&n2FdJqLT% zd-nFs@lZP^3(F25bvKR8*-bxpFB^F%VXpLvcvtY`#tyb?t9(WxX*GQ z>F$KN2#eg4!8Q4xya)0g$a~rUtlDt2A^jns0N=S5^J)X@GK)ic0I#LP+dIDNKj(q zDMo_qdXkYKyPjYqs4gC7B&aSPVo%}%n{EV6CPnC$o7XB39|hmMuKdAkdYwU zA7CV?_1@1&Q0u*qk)YOlFD*e+w1j&Y33}r0W+bS-?qVdU%y%*pROUMv2`cmLj0BbW zHb#QVd@CbCWxj=xpfcY~OVB4^;U-3c%6uauL1q3UBSB@pfsvpxU(ZNTnXh9csLa)1E7zrx#)rP?;}fB&f`nFcMVeix~+j z^F@pVmH9$Og35dWEkPl!a6ThJWj>FQpfaD!NKl#2VI-)`XEPF1=Cc?HD)X6)1eN&= zMuN(GIwL`4K8=>3@4>>Uj0BbW6h?x|{0ByY%6u{4OVBh7VH+bs+6`KQ zpRdD6?26|=MNyLKP(}c%4xt68eILvS;F5zF0a&n=5r6>)(gM`pwlD&?$7V(VzT3nI zpyCc-1klztG6GQB#Rx!cCnEq`I%olELmLuimBp0d}I_Qyr{)qdcWttZatc=6~`Y$a^5~fxHLu z9>{wj?}7jG9w;+lIxt!ThgLf;Z>7>@!>_CO!kTwkX26u-3@$c3gM*Ra=)R{l(m0qG zY~rR898Rt6cK=D#EaWl+CI_3inhXxcjT1iK<39R+Fhe+lt4!++#9^>FytV+}n_@A5hpzjBBg-x8P7lxLlua^#|aWG#vgNvGaVd!6U|7};$IG8kS;!M2| zj*K^+rxsO~88CC$#F=_wtUZ3=oEz!;!Svw_E@JA1A^6DT^Al(s%po>$re3Izv7^u2 zm&Ud3DXY`^u`lUCWK~2~$Ghj-wiOcA%g8B#^+4UH$ z7v>e4I8!gw$8Hb(_!EtT$;BC5$kYqEUHY!YbPe%Ld39_POF9`gUuq+gUD#q^@(+UKXsx zsI|(L@f=F@dY)frp-PSYt(%z+hWI`-Xw3)R7;?hSSLl`e#%k(z8NY?0 z8hmRHvu;;n>}!?HL_sAu4xekGMjQKBwF(X~flv*eGhU{Fdt1N-OSqFD zuhUDWoEO@e3{x&r_@-f3WG9Rv2;yeSYys|i&~4QVx`6k zVhVc0tjbLOhKX;Ye}8JVWT~;-f|;w`VK$sNWfrx%!Ub<+QU4cuFZUtr|NJXDZ(!a7 zc@N}0koQ2|19=bRJ&^Z6-UE3LrA?`~KhTJ<^+klj?`5pTjKuE7gGoxS*{*)!aF}-X-*l!rvQ~C0grKErlJa_Ee&)vvBOPB{RnjNxFon z27gVob|yQT+Pi8u0;r*>HB}#|a|y9H{in{>w$@}@eN$`W(zR_JU4^Ylq{g~7km!Cz zduM86eH*fEapt$CBz48aHE>0Y*3n|>SlHHDPPEY%)ONq1*}PzWTWe!hnTqyz2{RZ2 zu>+fumZ4SqxrAAap&5vs!Bwlbccq=-v3=o6#_)_z8wbSp+1`aVj)?8;5~fU{U7gWL zoV>WBtt-{klgn4Rgo(_BHW!Rq=@JHkZ7pkCT9%=P)skwd1D+~en`&-KraJqrfL1?D z=xS>0Xh^gyn=@<4%$fxwm%D@!6NRosbMuy#RL2t1N~;T(r3J&5xrCAup>tz<3SHII zyk)8NtG*Oe4iY+B5*=Mj7t}0SRG6|LUxm4^4H9K%UQ*MCbZi__Yom^xCx>Tj0rVZrhahO5s@e zeO&20moRzQcJXQKn7J+?Sl$CF{rBoZ_yuVxnd1`5$FacrM3)7d0sk5}+a(myI@5oi zILjrBnFSX&fI(?rE=e^k1?y(boEa`mw6?Z&CAym0S__Gz`_2SM3=!Hpnp(R$7h|f= zz?Ikzom#`RMX}e}wB=8=C4#aod+t~fenbQe9z#&5GEy5dPYL>K=g2UA z8{#|n(8s1qLh$zqe4u3ww4L`cr9{h3dgk zFoZy;l2Tla_+CA_34=;3P>=4xpkiz>zEh7DqrVI+f-Y`=0MAz~`e&*m(S=5AodXKt zRWl07k>wyMN4;tN_)+lMj0!2}9Xjy4thNh}zq*gYW-P237Z?do-y|Aa-_!~3Ik?UA z%rAxHF3_K$E5?uLe)syOj#RR1I;Jdk_;7ew$53}q_u1r5BZon)#e{kocFyniN}CR{ zapQ+V*(M6f7CgE{uin}qe5|c)P9~P1ewU0g3&+l%Rx_?}2)sf{val2`I2gunlZ0e* zXKfdFEY%53Bhi|K;bf|Q85R^yOSE@w>_`=&?z9|UAk~AQ?e0ZiVsk;^*bHFY#DP%w zIKH;I>3~!RrENa?cb2lM0r0k5L|u@%RnKrrRe66XW(;4sK3W-~G|hv5W+|%d2Nk%$ zf@k#f2&UB(m}+1&m7vtjPR&nbtLba1!SIZl9>J8FiG57Rtxdt8iqQlA&QesRn~ozF zSekl*)2jTYDi|d;q0S<6?Ns#dY*m`6id?{lQ>rHT;L0d=I*ckQMK#UMS!yC)Xw36W za7IZ_P)fyM75c?7LUJvXynPy?h3%>KE_ki?Q*eKntcM=K46;f+xTnLyp8LZjd}}Y2 zEmY6_Awre7aaV`$)nk8%K`sl_V}FQ2PTU{jJN4KfB9PYsL*afxvc7)W^yz~oxMGBm zOx9;c($l6*Us~9i>WV|mTehEoM-ULcb~PrF=r#{$C}%An5Pt59_z;C&Ie_8hxn$d;eejSNb>mC&T*w7qttulos{<>U$2>@Ylkg z|9|&B@4el7vbPD&{Tr_SpuPty_3u^BP#e{_>Qz2eZdJ}u+LSrUSjFS{!1Jurk!q?@Wqyr;S6}Dr z&hwoK=VYfBPW`*m(Fwc$S2+er-$Q}(KY0&id7#)pVQ*Z3*A7b7tN@mR{tE(9^faa4 z>qQ2H!FCxT143b5N@%zN;V>uXV?c1cy`+x;G4W1jeGCYZ*-LuvqpU>HL<7R;oy+?e z5L&ZW^w@h@I*JSkwe2!L287(ZnEEjw`tJEsJL_Wxgyg%H{4pR#@A*m_Z^R4;+;=Vg zV?b!XbNL@*rde?HpgQ?%x|CMF(B@@&GHzK0HD)621Nbv z1Z^+RV?gw8ljt!Z^xtl#$AGYYr&2uzg!uNko{0v;`#YD0F(4DrJr83*G5|bHC1MPS z_qU&kF(BLr=b5P(10sE!T#Nx>{`QhF0}KfAdq}yI7!cgsCqoQ~?zfW-F(9Ug>{WI; z#DI7nET-}y2E^<;lMpc=cIRb83<%e=Qz8b$9qJCqtRAdcVh+=u}IeRuSBEt+6J zWWVFt5d-3VXoc9>Jr0i1U-}vl{=;*HemC_+pi2;Fo2GygV2nvFCupHm3N6XP) z1{e^p_mB@6X+SK_OEd%xh`o0sI&83F_1@3f+wOA#0lho{}QgE;~N#or{mva?A71ETS?vK`D47!Zl4mF;Yr zz<^MF$MXaR#PBUe|rGW}or zkNUUzm-@%B_y3#v%dj8dljKiXfmU9S_dwnQc@N}0koQ2|19=bRJ&^Z6-UE3LbOq51&5kM7mou;c%){-6Bc`M>gi25SM{^}p$V1#{W3%40x~q4*$(? z62MjdOZ^wXK7ptCPl7W6j_@A}=KyZ>xBJ)o8~h3XYX3_A68{4KZ2vU>9{#vL0;dIx zhw}jo{lokN{eAsDzwDQ^e{28LzSsV)eXf0^y{Ekedkwy*J*z#TJ*?fQ-KpK8-Jo5q zT?X?H&e2ZSPS%doj?@l=wFn1j8?LvM{o?zF@9(f{;fJtx;WgijzGr-o`5y4y<-5gqz3)mmfAC!2>AsVE$N0AS4)PrU z`x>tE)%*7Mt@17L&G*gp?Fpw6Mtl{%vA$y8aNj^*AD`-TdVhnR55M#N&HIV>eeYXv zR^bcYr@W7N@AKZ_y~%s6_j2!r-m|@@dQb2k1$!eN=+wqJuj-HLH|iJaN9w!k8|q8ybLtc7L+U;1ZK|fqs;K-+ z`9b+w`CR#{@)zZG<Ts`qfqs_Wski7cI7OjVov5r*_EP3TuICN?cKt^E6xj8#QBUYWeS&%etm9}@*QjIR zG=<%js8Znxc_w&DJtI5=J-Wx^5#hwd@8vb}-trPSH(|OwS+0aN97Xa_xu5KlUGCr9 zKe@kgf9_rZCnwBy*SM?QVfSvHuRWi^EReT6FMFPYa~U4+-08W=bB*Ux&v~BHJtumO z@*L{f?AajyP5xMZSAJc75zc3LM7~$PO};_CQocw&TRufTPCi^dNZu&7x<7Qk?S2JL zX?Vi@p!+WO&2Tp3Ww3ta4EIUyquqzOx41jp>)rL9)t=>Yqdd{QpSw)|L4QfVMn6*D zS6{B~tu9fE^pEr>^h5PU`W(GXy+}PpV%%LO4}oPfr{kqWn+Z1OK-@;C6_TEM170Q@Vh# z^9ehTuyYAJhp@8=I}0&cIukLsbOvFk6LuP5rxJDwVSga(WWr7&>_oy&AnbU;jw9?? z!j2*AXu^&n>`20nAnb6&oYFSJ48jg0>`=lEA?#qn4kBzTVFwbn1uoiXp;+gar_DiW3Q|Agr9Q-4K(+351O&Y@ExXNa9#b$6z`d(=tp; zF)hKg7}Fw53o#vq=}1gRU^*PrVVDlZbO@${F&%{IKuiZ<+8@(?m=<8#7t=nN>X`a5 z)iCv8>P1EOi7H|+?m$ctJ%~9)88Jz8BjyubggFsYMF(LLVu~mdCLrb%ekbfV#3bS0 zg#C(`Pxu#MzYz8_VgE!-6@DV@N5q`M4}|>#6;t>g)9*0-7SnGq{TkE1WBL`Qf5Y@k zOuxYNb4)+O^ixbf!SrKHKf?5{n0|=q2bjK(>3f*Ii|Jo5eFxLGF?|cuH!*z!)7LS5 z4bxXKeFf8(F?|WsKV$kLrhmfp1x%mE^f^qQ#q=3WpT_hlOrON`2}~cy^f62y#q<$O zAI9_{OdrJb0Zi}5^gc}Q#q=Ib@5b~lOz*_>4oq*y^fpXy#q<_TZ^rZ{OmD>WkC@(o z>Ghaihv~JLUW4h?m|lhHm6%?E>E)PShUul4UV`bxm|leGg_vG|>G_zRhv~VPo`dPx zn4X2{nV6n|>FJoBhUux8o`UHgFg+R5lQ2CI(-SZ~9@FD6Jr>hrFg+U6qcA-Z(<3lF z9Mf%>8kipDbSUDXh#Z2*!H67$$W}xSL}Uvhn-STB$N`9KM5GImPDDBo*?>qpB5jDY zBGQ6LGa~B|S%*jyB5M(8M5F3t!a;PU_O{~1;kdp7uWqrwQH(d4%iySNJdTp95Kh z6a7c~4gXfiA+-6M{7L_QkU`iB&LEiKp91-Vu)o|t#$N>4g8_csulOC1JNQZaR{K)> z7%~TMYA5ch?A6MUt<5s)R&eI7X5@E7m*kR$lm`>ywOI49w0 z$PnD?z0G@r_e$?YkRLe3dmNm2c#wA^WCt3(YrK1Vmw4wvZeX&v(mT;R)>{Obfqq^e zoP+qA`V-^@K36|f-&S8ypNFi#gK*Nq&FZ!4W$O8`=Hetc9q}-Ai`t>CSL@aN)D`L? zb+%fgR;yukH?>S1sSZ;6sER5<2H_vdSIQ^Kd&(P-KX^uYRJl*N-J^OO@<3UaJ+i3( zMSorYv;HjX1@WN#tNerfcllHKefdrKCHYzTG5LP^4*5p;YWWh_zu`3b1o=q$5Lm;p z+Wm|Bd-vbmAG_amzwUm~{WR?8aIgC|_YLkV-50sfcAw%t&V9J@N61lJtem5q3gy^I-KfQ>7M8w>n?H+b@y}o+%DH|uAk)Pu5VnQyFPTi z?Rv%ayz2?qgRZ+=H@mKNUFJI9b%yIC*U_%STw7cnuJx{Z*M6=Qu0^id@ZjWs{<}SZ z#-w9OY&?d<#$%-Ok#LN39%1JqHd;Cdu_Ebg!p=f$IEjsilh}B;gk$635{`|BOE@+j zF5%dCxP)Wl;S!FGhf61s%W-TxT*9&OaOrp=JdQ9N8xNOoY&=}TvGH&T$Hv1Y92*al zaBMtG!m;r%5*rVbaBMtO!m;sC3CG4mBpe$Lk#KB0SUL!47%Xi?Y>;#yVOtREM`Ggw zX%qTafrMk@0tv^)1rm;p`${-A_DMK4_DOVXER)z+mRix}vV>z}S;DcgEUhQPb%f#A zSe9^XEK4{xmL(h;%My-_WeLZ|vV>z}S;DcgEaBK#mT+t=OFhKKZW0^2rG1eim$VOI zdn4wQ=-AjH;n>(A;n-M`aBM6|I5r+mVq;mtvGG6&Ue}5w`O!`KF`=famPH&I%OVbqWf6zQ zvWP=tS)4@lRU_sW#u3#t=4|urk6*2`eG2n6M(k3JDuU*hs=g z5H_5!VT27OYzSe42^&P%K*9zP)}OF`gyGaifrzWGKuhU2g3eA*!P5eN7%Q7eM8vSg#DecuL%1aVP6vV1!12P_8DQH z67~sU9~1TwVSgp;L&82F?0v%CBkWzm{zBM0guPAJTZFwy*c*hsPS|UNy-L_CguP7I zON9NIuonsY6Jak9_B>(F5%w%$&k*)BVNVhEBw zc0XbF5q2+O_YihBVRsRBCt-IGb~|CW5q2wKw-9zSVK)(WBVm6e>;}TFC+s@Ht|jam z!mcLlD#ETL>;l5hC+s}J&L!*|!p@XA~ zxevwk5KIro^dL;PVtOE^TQJ>>=_X7Mz;q*~U6^)a+JWf?OxrPS!?YFC7EGHlU61KH zOq(!Wi)kaK4Vb1dt;aNpX&t5sOxIvqi|PKD?uY4WO!vifA58bgbQPv6FemjFr9$ucua8)z=d-F zE}R2!;T(Vq=Kx$d2jIjx04L4?IB^cZiE{u>oC9!XCo5+>GSdm!(Dya)0g$a^5~fxHLu9>{wj?}5Ar z{@Xk-Vw_{Sl!!$_sdy|<9uKEt<-uSoS)K^T>&pXyXdqfy7p_XC!op?Xn$c-=I2?$E zx#*VwU7A5hA`J;1T13IQFl4M_xrmCAj3gpF_-X(TCg5-+SQ)P4fnkn3tQ-&?6JYQE z$^Liz2l*|izA(5@wWxrPG4NO>?&9;^%n zLZR|Nusl>*7>rd%=&f)y`TT2$zSdSj%@*`6yO-xSre8cF1zv+M*fD z6^`X2yD6{ab_7|xSdv(@^ovr+z!uKRdodFJdmz)C&%*P z-IT|IJ5}caY0Yg5Vfof}(b%qm<39cE#BQ#%|>(VCi62pw*^=UE1i zTr^M(Rg&p>v%4TTpk*=K&u|UyR*p*UW4EK_!2Q6oV5B-)RUPiu4>KKtS&l(WIpPf| zZpXJ{D&>J7voby}{E)wfDnDfi7ZHeR8Lb z+97q8b%t1gRH8w`0_?~7F!%X&;6Z|U6omP-FpZ+yAfX0r@{A6SAe-W64HXQrFI$FW zg8RnIE`$Ah!@dlC*fP{5xv!7xGDOh3E696&*q1?P%Mh>Rj+wH`umf)qyE3fQP!UE6 zHR7N|EF6hPgWMJl;gu*_ERznNcqE6+;-Trf^LH*PylgZ01h>(Y4T)l51|OuZ?K*_Q0d|J z*&`FUJv9Dc`Ha?1IOM5$A~XdE8^X12P^FB3rZfSmvWxT*o%rf4W<$z;+s>L+QyYh< zHW&{Eq7}hf7pox3f7$h{fT?Jt079x@q%shRR)qFoBi7?t0OcbpGNz(OC*-@hy}-kTy$R@lr7=JO{U;f7Z_d1JLVFfyXTp zs;i50tJuvRu?KB6P#%cVF>+R&Q^)W%&PK}02bju2DW137-OpP=XRer!N0uV$gq8KP zSgR6A?u#Txt7fuRB_iCncMev~V6BR$def@utX1(?vX|;=S~shL+z=+mx|+&bRh8&1 zt7=%Qsv_LWSgR`eshk|1tI4cYl@V_KAji7e zowX`j&(HtvdRr-G2Ts4sFxn##wu1(xQaW_&7t+h*m?@p za|44M>#35pDiq=?+x6BLWvvR<@tb*WJw=4IDj4OzLU!G%Fl$wyp5OX%vns?|6$tj$ zGZkbMB^oNZF;NapJ;1mxkxKBNsodN*k+mun;P>jg-Y6dWeRwZNH$RT+)EGe#<56|^?fyw=#9emYVLRVfH;(D1Hp(62vTETggY8#7a*k*BFRL3zvufk@+ze4Swf1Ss z?O9vaO>LB0n?0(vzUF2J{@YPY;{THc*dwmO|FC}*tf$|m4S?P8rg&e2^Zf+%GZSgYa<+&(A=tJbns#pC=TY;JYc*v+cm%2+ivu!^dZy_G~tvF@vi@&|jlxv!qJ zDpt>b-R}BmCCOS9<9~(Ev0JL^W>uh(2NQArN{-)hz>o7sjrHuZg3t0KKMgk8T6YgM?O-~Z*-0{3RE z3iD^H-Mew6vVHDp5F6w3#M9iF-<~g*$ zg{)PnN`6z%t*#cZR@L+8qvT-KeAcRZn-^nlR?TCrO2&F=Y|%KERaDnoO&#|C6P8Q; z1^qSsdVQO|O0UqJ{8Q*BnKs)LokD~~DXD(%WlWw_@%&r_ZYJzbu;o z`t2-wkuEfmm1yL_L0(`XQBt0RJl{g1HzWsnp1H`yW@eJh0`g}VIV~W6s*uA3+D!S8 z#yFNMJ2G|0vKr>Q@T@-9L`Gu}7jpb_j){z*ML-LPq#?bexGyHSpWgu@*AHM;>D# z(ZV`TIghrGkpAZ(k1~<<=pzm1o<~|pl#S*fk1&x*^wEHWJlsN7@yof*LfX{3VIu2- z{MtOsL?+NQY)&~3wU7}$@(>dlM@t1b_dM7_+O+wDEF{W-aqhX*L{_1&l!H9bLI(NI z<`xqfLupygJvW=kN)#z@kee)Igx`Z5U?QV7z0F1o39C|h+Pf^I&0D6^M2745ZK=aT zq7Ty?+c%iVAX-MmLAG1SIDA#-AlodYP4C@mA_FKC;oP&uLZUP;2ia^P(L5mza(xB~ zONRI(rF9lE&VM5`S;z>#eXg~TXqhOdoQ)@kQiPnj7wAY)+`Xs;J zlNJ(X960x^Gm%MHxXnW*Ok~ui)vd9RA%07)HIWgUamfA_GQh9R{Y+%Iim!dOiG+F0 zT-*1}AVXoBQTIL>WH5o|a&tVtw}lMwTk zoR>H^I~O@eJO1r>#c`cun`3WBz#&WT3QxnH@PCB!(^l(YU4{Mo@A97v=lf0e_lKDR zkHEQn?b`xyB*`BnLPIOA;}IVgMF@44@ApXjc4PjVN)e(Vpq&T_T7 zX1Inszjr<(-7cLVC8cVqulSkxpm?U(B2E{FfeC_-L}d0W6$ik92l))a&Lsr?pG8}Z zg1@S?zX`Ni657uK@)vRzm_VD=mVHg2&63DICeUWxqE3MJs|z&~XtP={{cyn@Bm7z3 zUh9thDR!y}v`L^SCeUUnoreI?{wVy9i2IsAn~#9|SU~;3;Ih~P@;{a=GJ!T9I~JNi zn-3KWEFk|w!+aBH^O0bl3A9P_&$WR3RdjPKAb&p5Y!hg+f^C)s~=qsxg5!E1veWfPD8%F@ZL#jrOpB{MAB}O`y$6pWQ7W zzYm{e0&P~=R9is)Dw((mv{~g+Wddzhsl+TGe}ze<3A9-u619N*)g2KNXwyH2Eg*ko zMJNNbTNx2Ffi^1}0v3?JDq*4tv{_Y9VFGPd1e9Aq{*3nUl!%d*g{!YUzAb%FYU+t+tK21NM}eB#QVji!so))9S#=P8+bb&bFzOb9E8;U_V-xKajKz# zcj7T;`=?+t0`n!29P| zb_L`7HCs8@)nnRK-(b@^ za;PtrsjvEmDF4~Yu^r+)d@Q?CHp^slunTYJW7b!FoWJQ|u052@O!}&iqff(}R-c1i zZnnN~LYbo}$NEAW30do`>Z@!f9_C;d+EK__K2~3aK6Cb-U1)zH%C1Ys>u(Vy%ks^N2aN!L6)SHgQ7^ujB(+tHS70I;T%L$ezpKd2eFv~s1*5&S<-$hRsz9nYt?FW}3RLx0qv-6WDAZf->tNiM zY^Z||@V)j-ZD6cQHlW!P9A&%wOs#Kctx84tE0A+*>TRr5^)~C(cG)Tt|F0ADGxf3l z2mFh*PqfXN-*>UE()*lufAt^gQR;9wy?wgpHBU2qr$1dD?Y_^w(Djk)0GH2sp)=xm z#<5!ZPC7ywDqb&66h9H_}$Y~R~Rh7YRdeji; zt+g8K4R+U~hCsYm!z^~&qlQ43-wWnmv!I_78>y8}|HuGcmNG4K{h){|Uk zGxW^SF1+)R^&}@!y;fg%vm?u{1T6OAwfG$E!h0N1c7=N@0yj$8b{OaH!<}QWYLqae zHM_&2a(SZ^ce9JXPAylvideg<&}ydM=?^o9`lLT(RQ2j6cLqMi$7+W$oA@q=em-+# zPui}SO>mdv^M%joq3nVae|n|98V!6PkEN+H!4L6r@L=ZjowNrl(K-)K8_dyz__!U* zu4t;)?7~OuSUqpFcVm>n?2`;9*Kxg=LwyZmd#H%brb0Q^*Fe^;Nbkic16aGlHXAGF zXjgyMt}uU++^)Y-Nc>+X=%+&be-Fg}A42@ELi`_s)BpBSzfrfrn*M8*Jv}dZ*2=%g ze~^pace&@f-gkAlJkE2S0mmbbRniyIVN!v3wO9?S@$0(B|LYCBby23Jhr^NHZRvRb zqRbNv+Ip|02@@%BZQT_Kx2U~_Egcn>4Xt`J%$#p&O3 z=$Y^aMwDIrS&O-jo$xM3mR-G=?ZR6aS#||`bssVV?_)&S#XtLT*L$Y*2HwQTvMW%> ze`n>`4)IP#mR&YSxaMLP-p0tZE7Z`yA7kWb7v9Urv@6umYhOJLypa)QSMTOD@NPzy zU8&yt_>Q+Svh1qoFL%hb-@yABW$c3LO7zzE3Id~w!@jMU9niNwZj?R?BcKK$<;3Q z;Gu@fB)|8~p}yFYhZ-vRQ<`(Ni#>X%p)$}*+5hzhd-hO6lz*ILu6D794>d$1y_C~f zZ?LBiHAK*U0ln96u*VNIM5=l%w>Fu5z9KeR*Btx9-PwL4ob0uJV-jmun7^VT*LGOV z+7*iTTE7uz?F#W1@#SWh>bh2#DLgGX-*n!zGpq7p%Yg61VX*oht-*)2_-IW&oCA2L zbfT1W9OKyE5pk&WPJTPGV_;?%KzgS^`@I9x`G(AjhkBdIIvY)(&GexIEFgbU(l-?4;?O{C2?DB&Vs zwJ@-IZdDL6X4czG8|<=x{Aquk8KB*?y$%b=pK`as1lmlQYd3*5)7{!EApd-rRugD* zwo8izKz@=SWdd!^ z;;6TP{8f}m3&=kQqs|1{oMVx&fM{RT?T_%+m_VB|B=9a@xM#5WzANAza|x3FZC1Fz z>=|sntqOR@TzpTPZ==F_<~?n`YYKRmS$t2M?~(%EWtJdq-f?)BS&X##CMe)tW(ku2 zJx{>9%wnX?_c#IXGE0#BZ)pPFWtJfM3sMEV%PdCPEG8B3F0%y5UkobXU1l-TW-+IL zcbO$f{z6Ov?=nk}{Opu~cbUaVn?;bqiGtvGBKv)mm*hQ=_rU)<9zfs!ONC=H^Z%E@ z{QrYs{{Q7!^Z(!SGssOb)Y$>M1zzB&kRFoei|>l-;Pk&^cGdC? z+wh`8bjV~F`k!zl(!iZl>}zW6N_Dh%w1pbmLIKz}JOKYy!fzq;TL=!Bj8#YD)zQj| z0RB{Jl?AsHF(+wosnE7q3jfJgkt%b?9 zdU)aru~NJ^F*=||oQRDIpj}tD-zKxZwAVH#6TwggY-wvf>{ZpFNOdHXZYaJb4T+Yt z4-3c6pH?%j*~lzZBo!BKusHy+dlDSkT3H_IrZf<)4rF>5m8!T7120uHZ45W?cN*J4 z8yR(3HXdN$WsAegYs5HmY&d1J!0Lch2Qo7h2nNfc9S7ot!C-YLYWg+%d0zonr0O~n zU8%z4^o2E@g=1$dtQoh_z)KjB;uukE^QCKJYg1#YH3f>v;lQE7V6-|A;3%H4bXj4t zd1EK^;e}(Dlgr1gH}Hza%opr1gaG{cXd1-S(>QoTyNktjh0=osFC}GzIW_e$J&+X z)n)hwbC_^A+>3K;nA3#A;i}$!k{j9jszPUW^iF*>u=N!~rvY&^<=8{vLxrs#Di-By z%VEw2K2g}}p(=ZK#U?&h*s`m#w^nSfH}ILllwD!|EQ%cKE5WuyoAl|fzfl^EHQhAz z-ipmyw#7$b@Y#zket*`kh|PvSyWHYY{9hv6i{}52gj4@^*Z!o{!EXM?_=b7U^A@RB zsgsmHDM`;yp5r~EVE4Z`?EbgZ^{H#COLU&$9Ot;-u@{`lw?)##OT;ML=6~{M(>A=w zZ(>o65=Fz#XgI;0uv3tN(4`~Qo=SApb|qTtQ!Oyygb^U53z!%;R!xrpmtkZfxh_56 zZQ6zx{6WyEj3JsM+z$zq<{eSF1eej&g_rzUx@@KdA;ykkZ9J3pf{Do3`QQfR;z=`CH*r zx@zm2I#NlLuO@H02>eD;Y2S<=X8{SI|vYZ@yLg zvbyS0z4-R&(@hsTwyU>#X}y~+{&bey>dVjSO7Itf=b~%VHoQl#^#mmN0Su)p$3A7# zHoRxAr8!>zKh&EYybbT)8--EkBs9v5#4C67EeKD2XM3unGgWUsg;wUehX+3mW}p3a z+f-D)Wut1uGOWLp-s=^gkQaAhKK<0DKQoygx?+N-LLz;}mCirUFq=4R_G z#t&2Nm2Kw}9I|Y~HoUQ~^}Vl>pMSUc-nab*!hExJraPVVH`_}7dJz8izHF83_r49= z97vmGVU$0h*bxhRY?X|K5^G^J#?AikfQ5`o)14>V4HaGE-j} z?)lF1l;=WEm;LMit|ilgumO3IM+f(xPu3Aj)@GT(_gp$>KA8Q$QU&VQak_~N)^m4^5~o?n78Eh?7kuJ`0^w@4H*bD*inuSxCrS@!C?giLB>;O%dZJGKtPc z=9II_LPoj6ATeel>r&jLgji`I`7;5;sEJJQry+|G6B)1LTNJjC{2evKkcq6~2Mc1* zLRRsg_ke}uPoftmn#fp!-!oKL$Oyk@C^wOnDSmD4W+7vIe@?KF{Ph&#coP}rr;@~R z780H1%W0ouO=N_>#2oq_OY!ruENPenN9F{@aCHlmn7LuQs6Ngwx zep*c&Y$9!vV&WhZX_Lef2UD5N%)BUETm0K#wT6lK+-1JBI1*- z36h^G5&M|h>-dQd5ub^T?`e~!5dG#oZITS4W+H8p0;11C@`HHMYa(sJZBez5{8(93 zEF?eB6+I@>CQ21$3&{^LMYoBxi4R4Wh2%$dB7AzpYw^Mnn}|$wSV(>xB}#%I9q^xt zHu87LdtgUBkZGTlm2rO5v(Q4?^mPkNq|M$O;(YY|zgW0I&`*c`|L%kR|Gv;p(8l^6 z@y+(W;a%@_sh6ph%9F|}&&QqvJbmQT)(uQaCNq-nFqKRfy&=moH6iFr3@)PBlSLzX-iaDsAFvN`21C3&&<| zF>cE?yoF5|ih-xwR)+Y&IxfcgXk}>UoG=fr$o7G>4ex3*5tJ{$KCp@ZE#;Z=?|}b% zRLyt*Z+2sOAjnTG;6kiTH79n?1G7`}6FqqV?|(yifS;|fl<$NGdQ?q$VCy!#Espgh z*d#*Ig-CRC?W_ynl58J1x8c2VtS2GB&#qAFcghJpDQCQZH_;HaRu-+KnxV*4k8O*W5&FVK`VA3{{8I zODlR*G#lXyVVy(gf!nIk2Y@JicO&&_lazBeb|h;P%}tH1EveS7v}v=JOj`>Jr`pq> z{d!ahm_qZqLgJF-wir_0ub-)$pXV#+>S%~?zw&jTK(}nk%yG@zDv_2Eu z2n)KPy>4kq{eSGe1$b1)_cwm$?(TKjO@IJ_5}W{mbwP>-cc-*Xqd;-jmhNs+>fTcK zQg@@JN|h=tb)oM4)?NQ+X0Gif*}%7b|L^bpJ)4JT4|C>oN6y$eqbs4b;$>jN`0Z0F zjn{CDT?GS5W*A>BPepKafudokj1*o~?uo_%y4!C_<*G$^!(dhAs#?fnzx|36BFFf} zsW6VR45B1w3t@^YXWx(+WliPk{g1F5(2G;#37ys;P@)q=TA21MsDZOIM3^ldN1L#0 z9UR_TvV3vv`h}}El=K=2AC?}OB5&vvLUgo>CUVc6;#vZ+LAk+kyR0SQjK!&@DoaI* zJfqVYL|IHquZ8JXhbTk+g8dTKju%o>GNLnTN_C1nozq%3r5DdVZA+z>Biv?$MxM>F zg%-~}ooEOxjD?nYMk#9nxGAA6Ns*Ux23taFVb<6oG_%TAkS;9L&$)=-c=g#3;kp!g zJEt7tqg!HQx#ymnjjv+yvUU3zXGt%>mR6_8TRL{(wJ?`W3NK?%QkFQIEWFATc|)fV zstB#|(cJUkxbQL}$y!Hms?6r4dgDH$GsHnFdNlV8xIUUgWwrc=e4ZSUc1wqe-;1Y; zlF%UV{PDbxJCEz^xyIAS{g8XE>t)wGb}u^+9&E(?|T6J$p|jELlqYtlGMvh{UXYQ!!h zk=NqWYWov;v&!gxM(xl>H`SA)O2i_eiHO3U-WC(lf?d{BI+`+#lJ0tPeu-ElGmnvUEd zg?07h7!Gq)De6K_I^Zt0Qqk!Vn^<4 z>dApAVwce*1Y!F}t|a8J%Nl3fvdikpNhxBNk!ZsB{fOqHX~8aQ9FfB=t3M2PFvKpS zQQ>YmM^yV~mo<*EDZ6ZK{h>H=a=4#F9>ObQIU@hp4)@p3Gb4_Xh{2-F8S%e#xPMLk zAvj*V^==@JHyFa#=rx~V&-#_Mb=Ge80BFt8vVeWhMq|a**zOKDVXRtJ2H)1MtX*1N zyJ}7S+>Cewl?m8Hae(oLEZbne?rC`e$ zci`mAvWYIq&h@5x^Kld-_C!2qU)3mfd=W_0c^60%8E-cBB&sK`rQpm@B$+37ur{B0 z7sPs`sI6YKYR!@i-8sv!fqOHi0Cs*oc~~U`adgIU`0HZ12Soe>!saDF zUMOrh$`UIpU%IMxN!8;1;D%d@5)13ei4H5ScrAWJxcRvFe-Kw?Jvn935%N_Q@z(|t zEmYSwm8(cvH{{6H=n=yzhdu zSi7pD(cJ5qw5agSMzt$wlyGTF%qh#v^*bJFU>RUba1oa*Ay+9S)f9PH1$QyEB(p6n zjq>CYB|IAe6>=$_y^6uqRawZGy=p3}+GvPxm3ieCbTR7|u3k_AAwd3@)-8l?y1KTc zYD3A`*`ueANb)K2{tCW)=`fn0+&hzb(%se8RIHv~370$3%a;N<=6B8H;C>GhQ@3*2 zl9CythmBYppb0BqzicU#%IexAmm-g|^b8F{qe)U)*!s-Fa0&7?XVF0<`2L`PpBzoV z&9(Wm;ilEr!CGp`=ux9WrljCQ_i!EXYCg3Rn-xK0 zWx8cEt%01+vCOo}+DOaE_?OJI299*VrkPe*>)*eq4p8E<8E z&QfkN-v7!>I~vDpnQ4`k_>QIK3%K3CY^ISLHtpCGbvae{MzQaQi83;mnMN+#w9K^1 z1b)i3`OLTdKVzm@cW@G0u`+@0g+G8q?1v0mHq*$(oMon&RvC}ytOZ5?m6=8^=d{eU z%6I@Srf5E&MgO&#wx*uk$Vuz~(s#tLCfa;V`(p<*>Y;e^#iR7&H-Z@Dy|!A9qB5A5#bdU6Y=ox?zF z&g$8MP29NoHDwcX_2fcMV)v0O23lAq*l)Y9QT#2~ef3LmPeANGnvihr6`NdkU*ouK zyRV+y)Jg0<5|1CBcWk~)on}`KyRUJK%@|%uuAW@rN$ftF0Q~yN{w3f5l>TO-ci4TK z>dD=n))HN%AHRm(LPA>HO5Iox&26QwCl`KNwqK$SAB^6w=np^)O-JsK!iIWs6R2as zI+0VMA@!l9t<;T$(Byt*Sg>AzE4{s74KGf%C<7At0f?Z?*N2pQft9%D`N5Fy34CL{73FIY^mq12!48|E(?nfrAb=1&XR!kaS8A2u@g`G4kj3)#X`F3fKh zvV})km|tyV?qdziFDA03=TDfQZDj73OPHT5WDC!YFhAPJ-0y=hKUl~XUi4tTw~@JD z<6yqCkS)BX!F+2YbH9Yad}AYXzhuFDZ6RBDg@XCYM&^D+g87e)%>4=k^QDDs;ROfg z3mcjH&LHM<3)#Z!3Cw2}vW3?Vm``nF?w1RgPb_2$FAp#u+sNFn1~4C4$QEw>XFjx% zxo_-eKCqFwFRWzVw~#H|me0IrBXi$&&%A3RbKlXxykj9-xM`l*XCv|CfAe?oFmKz) z7G4H@%R+`KVb&{0m~Yz1+$WBhH!NhZ7A7Whg!#IS#Cu0`AYZeQc(x=5@>L5N$o&Wt z^NNj(<-CK5dD%v`FdDvOA^lak^S&3a|F`iR&FCrZH*K@}le$s)L0K<^h zxK?C^vxE}zakhdhPmDj3h?lsY#|J}-K19>;XT6wLCU^TG$!t1fncq+H)d$}8L z)HfGH$sNxPHb z?*H4B*9P*CgthWo6{yL%zD+iJu5NM1Z6j%O%`AN;xdw6;!CHB(3gkX0=1jl=thY52 zy<^2~Qv*4uV6D7X!TlpSCB9#mSTzz2GmVXeGY`E&0}A#$J#zXu?OrXzPq zVM7BsLSe1ER{8PW)HzxmmcqZb^4fsUR@f`ARsP)j*oX}N?UmOJ4dh7+hXiu(*d&Sg z*A7cJ&{r*B+b`WjSGOO{kwks~m7vLU+KxJ~sewLl0f|VE%@B3D51knj_}30gH<0%& ztd>w&7tY=F;VQVG7Dswvh2UnEl8R`%^X&Z{N;=+-)OUSg(H4LdJ5x zc*Q(nBV(|AHAn1^+emzcNDky<7BX6$yM{b!BU{*0@Q96s%L8)7zRNlUGCNLTWw?u`xI`mk)hnZ;>{MarY5&MZ?cgs>{GbWMz+v<-(VrDt8%xF>uqEt zcNtx0A*xd6!+0K)mq1QzhU} z*Fe(xr{=?Nzho31y=0L7BTj9E68zu%UtR)v3FIY^mq1SAU$_lWLk7c&i5}$Y!9RuvX z?Ky-x6|+j8#kEW4uU=45wLFxFM}n~s`V!y&ucJYXHWlvvU!k^>K9)v^ONFgmXU|5D z+kH8EA$kkECo!V{nCnlVo}RtAK>xe^k{xxvXm)>;9JX+2P3?MoH}|SqxEylz>Xi$t z)~v3rFgXirDuT7a%DUP>!em*X(h<|jhs`K289QlY`J9q2jr^Mmq)W-L178)g|S4+ulIm{fXcYfTZwBDui zMg9Aut&!E0Rf}sIrKJ(0r;)fB!-h{NZ(2Z-Xo)BzGLZj_^3mnfN+wO7Q8H=fgb5`j zeF3|A!}8iLC9{T28!=|sv|gcLX_o)m%EfCOfIu*wjo6=9%#1*xHJy$r)5cC5Hf?Un z`0}}qGR_FP6p}k?^0e}?qbFflW=$xWRz9kHTKS|A<`T z>N6*eojS8oL&Cs}8t2S6@hn{}^F@OphK?CA;G)OvqP8j$sf4@2jMxgBZUEWnW}`HK z&^o(Ge9d+v3{Vm8%vm zTWU9G8kg1Dt5?E{@3l}}a4VQGb|P*G&fdUGhb^9FQnI+Rs&;X9G|r%!ZqT@4WH&D} zPBZVN87<7|>#W!|`oC<|X25n@+wW@YW)#42mt7=!Qsa*=q-QqyUQ(0YIy9(FWib!3kHWCOVD%LDrxWa;%9|?wN zGW)+qu>A>}b_k6=#l>qeLBf4Yx>$*Wj;w^^i{^rwQNACU3RcF$aB*0b6`Yw1KC>rl zD9{?V^v^L?FKVsPm_(##%0z_oDT5A=}fXNzNow-O7_oeEwxKYUr>R&sfslj ze(omYGE-8~#Fvd@cY?Z<&Sjyug*3QmJZ48@2I*=#LKD_Fbh~nvru!nksAETTY@dv# zW(Lg~K^rQ%$Apqy-+huX>TIcxOSg&t!u&|=3 zs9ILD!A?wO8I+e^ci|gZ?7}jhuTxx&D!}|y|zL-OdG33wbmL^KTw}m?@=#Q>tVKF zwmL%ftF4qjmCuzu%1-4PU(7Sy7u;*yq}=sw=P-d*b+?(XL zajs>qd9Japn5)F4u-~$8vAfxu+4I@0>{50vJBkgnUC>YHee?vn5uJrnXgQkUoZCP< zoUZ);|KE^6Axx7MwPuyxWb!N=4Evd%+5oS(h*f&kuCH9Od~t16Fp&tNdwdvLh?E`# z3KMWcOip*o35C0x!F4f%i!i^m#WQgboM6qwh2tT=AN|q}d$eN}-tq|e!wHzzd)%D7 zb6Y+zc^8evBIrK_Bo(Y&WyZk#=*27_k}GL4g6)kM<-@GcPB+iz#!mQSqRklkdN^wlF4ITM6x)?39*YM3{sikG5fmYbR-!-eG^7%EZ>ecJ)@-Ki5R*%c`gOhlmlB*N$~Tr@@PkVLCe zAQXy)!`-@KNd;KRtV^Mh1A>t_6uiGI7!8GEfdIPOOfRiWB)y%?^ajlIZZOJHGOANJ z$o4QQ1F&dyiY0<i}k(vFzS=s-_{NAii zVYWB!P1?0%C9^t#u)`5nF$HDUr%)^!4h9mz82Z8#6s=JKe=ME|NT#67Dm7zeW$mgF z(?cWu!O<|Uj~nLwrl5>I3K#4_rl7i-f?AJjco8It)~{GN5e$XU7*i~E4Ku~^x|v^3 zR(`)Wb79x9U@#Vp#u5QP+Gj*8(pnab1P?PgMo$$9g^fN?bkwm>0+uPzUem|!tAdem zJRC(I6hrbmb!0`mjs-%oSRxjPpglwYtyz&)u?SRSq!_)GXx6aEfIuh!RV!GADGqXn znJ`+xAgPC%9HX;}ghEEyibnN{##z5ny?{lkS2PfdupP{VJE|AW(u-yYMt2npvaqg0 zIvdgGtpWkKS)G;5AnfkS$ou;f}+BIcVXk@Iy9|;8`P_gba#X&0;2xuNoNl_sy(q1bZ4KRNhwNIq=Di98Y zqkYY+IBFG@#tWv8-Ejp&iG)9b-Zj&1*Q!7;1pg8Vw3|fR8VS{O5P{y=Yh*{D^(-8Z zhLG9A31&@$Ck}(=r$>-agTbJGhSAUj+UY?<3&s+n(GY~gt=b-d_7{d=-!jrH*wrVAl0OY(Ny`7L5CYWl`v(f; zM5(}9vw|^RV=wE~bC}ss?RDre`2?b)TYILZAJ+ee1LF^lkqrY(@Y^Sq=(fH$R&G`yZh!;3@uZ3D%KRh&~XALz_g;nVxp96by%=Feb%<=snzhcIwJxa3l;vVIUHXpqGr~cpTor zKqLl9LQfj`bK8DUodVHF5dCaK>9V~7AQI@`{QA;D&U$MPH z{zNnyPC$atCz5g~a~azS=>zp%x~BcAeXKpJ?a;2$&eW3HOl_FfLsQi6)%Vor)!Wtc z#0g?R>>!H5kHUMx!@`Zi>0p=77bXgEp}QdQKk)DIkMp-idf1mB-8;C|uW z=5}$na2IjMbL+TTZW=d~E8~he!Sj>n1J54M1D@+W=Xs9xtoBrTCV2*WNy12aT zpX?XxYwY9f?d)ajDePu;Av=p5$p+X?%2*|;bW?ot-}0C88!#(zr+m45ntYVJNS-5? z%ORMX(4^m`Po-C+N2FV&i=~sK4N{#nO&TKgk=jab@muk2@hR~x@e1)&akIEU|BwE< z{vr>IYdLP1?miSm|CW`S2^W-z8hL@+qY%o&Qje-RL6KO$~H3ezvs)0mcLMN=Nma?j;tIi%ix^`(TR#wCDL=zJ4D}6t zXnHyHOsEIgihWfp#5*$!S>|M`#xr-CyERX;+QlXlcA^ct!-Sn+!8V$(<89dOChRy1 zw!wsLwPClJuwyOQdK1=Q!)`TU^%iWM2}|3sTTEEWf~_@SNgH;v2|LDutuf@i#YWv^ zbQ4Egpw$NGC>wO60orVVRvDm8Hs}Tew9x{sG(a0{(Depuz0JDL_->u`-3kM=)&^Z` zfYw-`0a|2(t}sAHTA)P+XrT?d+yKEsKi+N(O5l+OXub`)%wW~otV`i$@xlLNHQWE` z2{Zdr+x!grV}7tb-!^+l+xCQ+518!lHpLzj$r@DLkG?YcQiYC)FnbVWe(r<&HJt?sL3&g#z4e}>lTb*iZKpGLTsrq{s4=NgF)zJ*;Z!G z>|v0uuKj8TU<`th0Ncw9z!(JMU@Ef*nG&$aKtlpgnIRYh7_29BH$yN6u$UiKU^<$; z-#K*>dWfG>W%7oYFb^Q&Vl^^0d}j}fqh)%*p)6x`Hnq|JxJN7JgMBF zT&kR+Y*y-EcfbI&PwB4c^6&CT@*ep<`8xSr`B-_me26?!?k5+^yz~S5L3&4eM%p1= zDV-v1G%WGHQaiB3zY*UOpAhd9F9S>bC~=WETO1*liN$P46xa)e@6nUOJHoTV4p(R4 zO5s#i6gCJo!W8x=VIX^}&{HVn|KdOAUxRsyJNQfZllTq%e10bEA?VL{;6?5y?gMTQ zcRzO>w~edkR&a-NXr30h7()E12?ta30xO${ZA(CEU}4kpZ!1!9G0L}8heiRVy#Xjoxy zClltQLpmB#*dv1(4nuWP$&>*(SSC+fZ5SVJWSI;9}|lX zM2R+SoP1F4Bd|_dj6ww~fZy88Y%t)jLBZC2fLCmW0liZ+6sSS{TOa9Q2NTgmG!`vJ zeSOI&@C(f#V!?LIslH?+n|HD=8P4XN=u3vOdB^*b!ED}EUow!*Yw#ug*}Swb**}|? z^d@o96(VF#)3n>-P2%EkvX1g5`)08=d6QTUPSgf(5*L}1wceX7&0?+fCUGG+QLDYl zo>{C_-Xtz*Cu)T^**%N3%$w|%#aiM`cFkff@+P}vu@-uhowHc;y|6zuGsZe^vQrkT z#+y7Si&f=KcFbZ`dXpWpSQXx6aTe<^Z?b(BYo0gRE{iqSn{1oKn(a*%WwB;@leh{y zCR#W zy-8OVE8tDCS*-rvB+6oyd6P^QtB-d}7N^vEG;n-YZ!rZ4zM}|+cEX`(d=D^Wa7NRP1}h}*hD=UC@~+S1bd?I$0mtg|z@DBC!LJ3L6?_B? z*%^o{SmOkS68@1$ELcr|MwEEkV~$$5()lqgOvT$XzZ5KYehfSp#Ino@gw>tca3r-_ z3QTjr3I$+EA~6|Bg^L}~U?L7m6=Dh&5hjg1h%NXYYT?2RAgs-e1i>r-rr9uHZm2>n znD6`)FFQI2?GUuwlJEG#$b_%o$!JSS5N7&E!Nx@4QS-53%47;1n7Cco5GWMO5!x z;F+~47_Mc0E}R3Lb|#9@&ZAq0Aj)9OkQLX5?f6Io+V&^ z6bfe$@)S%2t|bDzLfKm=n2^DPnV{aPZ#?kKAsKIOf~<`rFjLiu#e*&=>oLG=Z3rs> zvx=2!!DzxVap8D5z(!@jg29m5svKBm`d}jf?5Qb6rL9J0aAC(wa5CasjmY2zVU}$G zaECj&F<8Qnj6jli7;w#s3#wO@;vJgFi74J7nVcRgH;xr8;wOGGoW;^)?y_SZ{Dhs3b5Le!HY-*SZ~ST^^jU)#l=!(q0{h(qA}Q# zgOwL6O|bqSo{U5vRbPyn9}G=FB1|Xa?!_pDV5O{M<;7-%WF4z6Hlw>-fE5=@(4goi zAYWJ~vGN6l6b_F;y?t0Mu^Jz&i1!q{PPGIMI#w!Pr&a=-kmAEiiTznPRxPx`N{JnQ z2u?_igjlg&VsoKm2+ja5R!tn-SRgS93K(lAmOuiq&OQja+F<>}vLyokI9M~$1o{Q!M22i ze-!k-SY@%Yi#IC>t+2}C075@K5(Z4HwOCnzsg>X)=mfCdVl!bLe;5*4Va=u3ELFOl zqKlxSYnWTnS&XMQth%%AuiS6AA9vs8zSw<&d#$_5J;^-)*4zugj{V&AiffnaCfE6{ zW6@dqm-=h^qxvoSg*qIm(vQ$5=yAQ9?$!R#KGj~*9@1{m&V~7c<=Uaz7%i-oz#f8M z)DP7?>V4{V^$b`cpRZ0+2dO<&ukyR{sq(V&uyUhvo>K1`sw`FJv3DzDl%Udq{XpU6 z@8x&or{x`NT)sj+Sza&K$WvT%*r#2~<-u}Kxj_00*6jC6_p^UUS4(F|N3&g|h0=6s zh^v*ExK&&Q=L^Qe`GT&ZF8nThBJ33&6s{Mx329-O zFi#jQgoI9l%>T@Pz(3EPq4OMXN;9$0noz4zr%h>iTkA6V!q36&}5I+3* zQn({G2d-$sm&5~}>4qitcFes1+laCM|Nj-Ha1UYDrf2~6mW_txk`%7YW{ZceG2RA^ zDoEk3%w)o@m1rw8vLJ;AO_Lc51)~LMctHyHxF!=8U;=5CN0SK)Sbhy1T$sY$ zs}()gQDrpHmvpMn;ix~3;;mD->6_hNBn*uv5UxS7HYr^5&Gr}u3m&Ey{4-Isbqe=d z)(5b{7Y)V7p-Af#?q^Lt%x}b@n;MJ4z7!tP&2otagJV#jbrLJ%CKje$!qBqDqkgSZ zxW_U1FdGw#1S1nrSz!wIT4r`&SCBtggZlWASe-FLCMCYZmvpK#gm;%OiS?Nb+#SB; z*lgZyz9d$0GH|!}l32&d;N9#?VjU-gccU+f%PWI-y)TJXoDANzzNAwcBz;%=lDGsj za98<~!?Jl-_>xq;p`#A@_A+0RDmV__CBCGyWf0s&z9d$0GUB++(ONf8!s()SA8jG3x&;{1D_41{hjg9bnW)DMv>)}f|8ymrO_obYTjqtkqQqIOkcwKxcXJaG0&c2khu@PR0 zFXe1(gxATJayB-?JII&9wuRXM39q9sg)NH=UI$-_+7(n>1Xt`!QOm-?Yv)U0+alxJ zw!Rd$Ei!m*d?{>OWbj)1QrNP{;1&8({jzxlzEoK@&*w{F3nb%PuP@ano2UCyy|a0m zFVzcpX7$3Sfx5^Ash)&qfr>!fsi?}FV#JZ*Bd_W>iif6q*7e7yJRqf z(Lo3mq_9O|R(E_nr5x8SY<^gI3593jn%NO}X3d1%yy1Wg@dYVteORBv9KZ;i%J$CB z{n2S)pQW(1VFDwtiKCYJy)cC>4l_*Hj1vqE06jO=#>tIE@Tn?@skJiz7-47Q_J*wy zD*!l`79R#CehOP7X7VFo@8Z^m%@Hg9Xv9Aa$Am2s>vO!`>H@Ppg{>0PZihW1U7@XG zo5Cz0e4JvA=u2Uf!pZ9mBF5%~6$|W*o`DmI%?T?Omj~4y4H&Uq6kl>(CNDS#cxy9x{@#i=xdwPvVuIl+*_&LQ$%@DY$yMY_BhN7L zH3RaTTnS7o&ro^erBM9I6%KAF0o$5pWA1V%7Y;kZ9F|m&T;>Qi1WR$FphYE@W-?)N zN-9h)aeg0*h2oQ;O(Yis*Q}GU+kYBVjO3yWWH6E#jzx521`_Oq?|jLH*}QLj$pzWG zuY5_Yx!AG5xBu}avF?(=`@)yR+DiuSGhY(xFB!Z~d`YaqWbi)nC9w{Z!TZ3M#9B-S z?>%1<>oFO;cYR5$$z<^M`I16=^OJZ#%gZG9niS?Nb-fO-j)@U+#ulSN!r^(>G zu2dHeYt)(*z^P7Oh6mmrG2Bl4R-AT zuXIm^(*VV8*7X^j*uM*AC5{#vghj$sAuP1vf92oiALg&-Pv%$gGx!955bxqX<(}nk zgH`>_ToqT&m2x^*>94`rgDa%hV8{PW(s@$7v`jig8X@_m4w5MTBz_?75$_kT6Ss-= z;tKI_m@|mOodgBK-@=!|8^RO99UwaM&zr`Bmf6>VGR!>fP2;i6$$HkC#$%w9^@2BD zoW*+Ho5o|R6ZNt;jfYexYp*xmIg9nCH;qSVC+c-?x>FYGRc{(=22Rw+-ZWMWoU9MM z>26u9_q}PXDmYQ^c+*%>aI)SmOk<7A>_FkPSrCR2sW6T8C5sCOiDJ`{)HMwnU2y~< z#p zWPRE$J%(f8A{Jzy6f%wi)p^>b!4}B$Gfpk>LQ#4Y_`w)#e@AW$;FUJ%a`1uqV22Ov zpFLD=lLmXCu}44f7}1mmFSkz*2aiq}K^X^*>RfHoU}(U#aAwgNXWDzo2c?ICM<2^0 zYd7=|wPPAgkK$4bkhx*Ems*lO82tNN{*CSv7$SF0gH=)-upl!Uoqp~mbx02aOiv4w zafY>*cu*P)7DqC(j=1#_O4DGy6c4k$Z+;Kk5T#W*0ay^a^OA^ON=X_F8%ItWoi!dJ zc20wx}|rQpV&SPBXCBs zT1VI1P_bYr&iss=!{xJMHpcsJ!GfESG6SzhGepa^lnP@d^Uw{7!~ zLKxAryvV-#{@?`zd$t!otLhgzq+xvT)YVa7j`M$YTu~Z^`V4` z^amdp_M7k#pj=?^&nOq@Tgd_Vx!?y%K$Cubpc;TOkWpsV@kWnOoQ64&PMw`O2*G3m zIWpQuXrG?Y=u_i_#9XM7IBfmG@HcS24?M)YDv7Ydz+hnmG z^QK#8u^#cJTV=5x_NEK7SPy#B1zD{7y>Rp`QwQ7WO?$Ig_juEK7VBe^W$V)=S|~jA1CV?Z<^0yZTF_}JdhK0 zr8kY|ft;+%y=iwA>r!vpmBqT)n`X0E7kJYsi*=qi&1A8*c~e`mSZ8}vM`y9l^rnu= zVx8tqZO&qy;!SPJVx8noZOmew;7x7FVjbsAtrJi8V%2+7YqMA>Z)!~z>li(? zny{?3jidF{s!YyiJ+(5Evr$j2$mFckQ_C|sYxLBzOwLL@wKS8nTuCdk35mV^(O6VM3^tmwb4KSs{8p8)6C ztMw`RAiY#?t+U!!+MC)F+8x@Z+R54mtxlV!4bl2&MVedvMtxh|4X55Ohg0vHnmYBa zT&0|@94$OA+$UTkoGm1UrNSX(g}p>jz)Js!f02KHznEC9m}ocD#$MUZk*5ar{{CeE1q4Rn>`nJjw3e)jP(RO2f>YgKf@mUXWcv8 zm%C4LuW?tn$GIc!PHxHdgKHn$6>z)j64&vrRj$KbV_YGaWsuk(*>~7y*t^-w*^}7~ zY&AQPjj>%>75xk=^G~BY(WU4FC9ZT)6!~ZQJ=lS8mwc&wg1lNjLLM(iw94+r z$*T^aH}Rv$mhC_QE?7yZt?-eJ*6`LtIpN}IcLaw(fr+6b4Jh9GqFdY%lnb+~fjHa< z1X%o7#BjoeHPlFg`NF~uGq8B0R@CASpxij#v^IjAB!Ss$K0&##yQj!PmQo(wGG)c( zB3v@{k2;!MZZ_eP*;D3QGgNLC4FR^V9ZWI{W)wGrBJpDXT8lZIGVvzZO{Q45X@m)z zF8!#09B+YHUv7$lj2~siJ(;k`iW(Yi1xX*!fa~7^L6^m(@`p_`u|TbrN-F+9A{@8B zrqYKq0r9{>D<7t?%1LGb?idvcUOPl1 z%>Y~!3-vD=QA{XHp|Eu#8bP-cC{#*Bp?ISQ>SBJ+P$=2FyVyto^S2Qw*-PLDF-Wg^thNCNZQP?E6# z-l>={nZF)PnULFXSCjcmd%_Ii-ODR|I7}a6ex_jt!*J~Y=CI696c&y$e-vR>N5uTN zfCgu55R*;*5A!MC*!CruL3~dGh0~Ka7=_AwXCKY_+=P8=!LB!9-`KFvOxV{J>^c+n zl@0sU;n__p#{6jgneMc-Zx?ITd*rl*n2kYJ(KsY&3o7U^d0NdD@@ov8}^O~d)tCt zZo=NOVf#$jn-=Uc6ZVD;d)tJ)Zow`!VXxV+w@lcp7VHue_KFRA(}cZj!7esoFWE4- zwvd+0UJG`S3476oy>7x@uwWOOust^HH52x{1-rn6J!ivSHDS+Mu=7pWGd2t^BcN$} z+Jc>D!k)5WFPpI47VKOT_M{Da$%H*&!M2&O$88uqNaVU8d$7&B^AgBQ;QzV=%ohBZ z)q>A4TkxZH3x3grJz~MmHetJL*b64?VGDMa346$f?J;2wTCg)s*aJ4~c@uWO1v|rp z-Dks|GhsU|*y$$hUK{qT3A@LFoo2#z*sy0z*xeTFR1*vTgBHX8=lXj0g%7VIPwc8d*r(&XK2^PVt2y~+CYL=$$S4SU>#-C)5^Fk#o* zu*Xc;br$S+6Lzf)d(?zoW5JFyVOQI*M@-mu3%1pSU1h^|nXoG@*s&(;3LEyY3A@~a zHJGr=Y}i94>{1I>Z^ACIVGo+Hi!B&TUqLCr4KWwlum?=ug*NYg^V18gPhk@i{q%er zcAp75&w?dQ*ts@rC%*sxGjT7Y|E7Nra{wRd`}9}!YqWiE>i;tBIQ=;73+-&}XMK}? zf%dI-fqu4rnSKhq3~-9}D%=yW6ZZb^)@A)h?P`6G_K0?;zDpmc-KXE7muNTX71~pJ zM4zL#)7|>aQB3&4oJ$$E)9ItF+GQ zhuTIhs(zvM*G6jXwL-0zHW+T#y9MqT=&g>2IfujH<$?Rusp_@rBkD>us=fek5Xk2* zGn9|W3kJL4u7W${KjdeXnaX7OC;16wnEa_SPZ=YBtt?c!%Wo(Hl;!e!3LMaq_bQ?i zQVvr3Dn;(p7K|;Wp_s>3At6ZIV{Q zdkJ+?g)~Q+Dvg7E3WKDG)KBUumB6hC1(FOmBm4=w7QPlg72gxz5ci7Dh>wX6h=t$jJ7K@Wjqnn~CBnII>*EP)VIZ8G=p%F$ ziiJW!7F_)A{P+A9aEjthelPzt{|LX6za8d!uHY}=&xHFS)BGmbow10oh8G;B^W)*J z$bo!_@56V6w;T$28Fp;^&V3JWI()#r$?fHy<{sg8a<_BWb60Q|aA$HSa%pZ8w~AZD zRde&W=`cSuf*Z(%xISE0xLLB0lR1~?chC2pFW`pBH$8hjPkSEm?1Z};uJ>F4Ge>87 zPV}Tbn>?#Li#*kyd7kN>@tzTI^JK`=$I}&VbSU)59+&%fcqQTs_XqB`+%Ln-(&O$2 zVRq?OxZ~k+_xbKKVV0@EeH6?zEp^wyY?JB^xZZ>PD0AGc++AFsy1s@JGq1a+xJz9> zxyQgxm7#8r>ok~ydc^gVYrE@C*L|)V;Xa5LTyXyb{ewj=-TXhH+@K6+-jSC;UIKXu zDCu1@U&B0_Sa}p*)&}>W&W=_OpFq(zQAm#*22BMjm3}BAO zB*7eqNu1e=Nes=vB+49%Nd!&DB+N8m5<=532{QGV1ei1?el!)6{!9v!erO6NWlR#2 zzGyNgeVAh~>5V3NTnLqJ!M|z+`5i-k7hrD{eNV~9lzc|XGX$}kIvyg9L&)za@>@wf z*b+)~3VVgR`cdMe%#WxmOi3|ieo9?kDUm2)Nyrl@;z8nAL>=QO@e&>pw~9WbyjLlC zn-G@42xS=gEx;@V{YJ^tlzc@9^D}kbOMpYkFG;S#mJ%Pf6$SiCUA-tdh%%p|uI`j{ zq|7e~VSb{ndq|K&$S=h)zfd28JWgHz!9-?$#6Y<{aj-lg=rQUNsjCMi4-mrqK=AD- zqKp#bYmT})Q__YI^eA=pq(q}cpnfEIGJ2T0I1+MO>LA&cSvPe(LI~@@2&shpZp17J zy-CTpl>9}!x>3j7#LLv6BW%i+@h<^1Ab@ir1q0BExAf&EH=ziij zi2San{$nV4oszF9*@qG0VdR%oK@si6J|g;nl0B4=I7GCA01qXzaODd|9QFH%>4 z5}7jJr>+Pktts<)N({(-BuLVyhzyaC*p~ucpyXXjc4M62#SQ@xQ42xBnn8X^Z4l5~ z)c;RPzN3UxJpp}ATr47ZQkMjD7jbwf4m5CxB0zqpliz{#6Ov(pCGAE)FH8I((!>NExVDB%{>+}k+>Zj`C zz@{Gr7CyG?OTfx6fSCX{SoS|@U&Ac`?`dynd$nh@$Fv9F?I7EwqmERN26BKDW%m@6f{;Ynjexkmkz6!4nJfS|Q-mTuOUaelD zZi9UWTh%SPhZHwu?2^OXu^wlY~6tqf6ON`IxN(h2N%9c~=>8&>?kmOp`e z2VRw*hnE5#l<$^rmampC0c-wLd8@odUI+I2e7QoNEl-w5%R|75?+R*8M@^G?5n%5f_RP;bP$`;RfMF;TPc%;Z)%>;T++1VXLqX-c{Tw zJSA*_R~%j!1`GWJ7G77JCisMr{O>|rVJ_T&FkU!9=m9q(L6+@@)59>^aAC3RK_xUtR+L4@-b| zL61C%9c$1r1|4nCQ3fqH=tzT(Fz9fD4m0RbgAOt1!3G^{&_M#JvLdY0Uf&n_ZihK!I>=0UxZY6Xi0{slUN34roMrLphSVc&p7vaX4KM9Q?jnF9UR>C5U zpdv!U2*zyqDg=rlkl+f!4InB&Ke~~y`}ZO2e#~!#mLV9v0p0gV;_QP!-3MoH(2;?Z z(!%J4sIYq?D(oJJ3cEX^!tRQwu)82C?9PY^y97~TcS2Oy2O%o#jwniE>wqGJ7Nans z?NEr&wkSww8x$b4HS!Z$i24&+fcg>YLsY0<)R(w*L^G!$DqRWPNwOi$q@*)JN$6(k z98Ae+VK64!M=sEr&3Z)$t=UOgF(Ugz~7oNjH1r*hA*ge*q4?a zkJ=D6&-_Z*yhceE%0+h=ls0o7l^E`h1{En~zM!9tq+|pov<>qS>Y^=;2fG8JhaH!M zsN{PN(Qb!BZ4GxTgBBXJfKujngMMdFFoYm9?kGw&QL>hjg_P7%GLDkblpIV6l@teR zHH6}sL;`gqnhTdgoGiMXP=r7g2Nbgy6Xx#$g#1MW!TgCB;{1cO4CZ$PCKrHyOAzua zDSGCYmBjV)TpS+r69XDPV15L%1;`Hq;eL;9AoM%tb3(sG*Aw~;^BJLEqw5I$iush# z|1h5r`X#!S&@Y&e3H=;hL+EGBM}&Tgt|s&o=0ie1M%xMfi1~of57AYGe!#p>==QFBlKP7T|(bMR}i|7d56%q(dC4`#q1;WO>`NdZ!m8Y`Z~Il(ASu^2z?b@Lg*{Z zn}oiME++IP<_$vkqKgQ9k$Iia7tn=-?qOad^m%jvq0cd|68bDUpU`KRR|tI?ok!?X z%*%xCM&}axB=ZuXPoQmtKF;hV^f7b}p^q{z68Z=_o6ud%3xqz5&LZ?7W)GncqB9A7 zfO($K`_UPM-p4#g=uUJxq4zS+5_%6hjnEy;GlbraP9^j%=4nFjM5hpX2lEu6x1*B@ zy^YyT=&k4^LT_Q7B=lzH2|{l|ClY!i^Ejb5pc4qao_UPW>(KFpUdud6=r!m#La$~X zA#^+1O6XP0E<&$F#}ax4^Dv>8qXt4RV;&;(QdCdqCCr0_UX0R&Uc@{==!MMvgkFGB zgr3jbN9cJdN$9!EPC~b#V+cKmxtGwh(H26_V(uaIOhkG-<_u;Bai7lIP3URpC_+zV z?jrOQw3*P8nL7zR32h?uM27TOu)lmGaUai+*2^4+HW2q#<~Bl)Me7M|U~VO}9+3fn zNi(+)cM7c~G|Ajd=rL#wwqdt0(5WN#XtWxWqZk;(5xW_IVu099%ng`qM9|C;yMehL zll9DXn5;u9Fj>o7i^&?a9Fx_|HJGeouEt~~f?*7?E12z=EJsT*S;kz2$x;NW4q}%u zS7NdlK^KJBMa&hL9ElcTvXHqPlLhEVOy)C}VN%Cjib*Ykt`M;`%q5sqqXn2$F&AS} z$y|iV5okUp70iX09F9QmLhND81(+O)pbJIpJm!2%4nZ}T%w^8QWDcsvWHxgyCbLi# zCNr6Bn9M+xm`rER!DJdb0+XrC*^*}^YUBDEdB%DAz*^-#cxP|2d!crWx<`LrStdWI zcF~`dcc{Ddht*1ZU$77VTleRl zS)R%64?TmWx1{I5`n?Tq@xMqqRZ2>$q{ULLG+P=g4FqeqljM_J;*a82;=AID;-m1o z-ZkR+uw(vcaXDDGGsKDF5O{B}H@rBgiHz`_@S*SuoF#Y|Y}gyXvOP^m39E%VVU93P z7z8$KiBKT8`9Jxu;T6KY{A2vx@DkzW{8{|5aC6_0{Gt3LekdP=73Pk-&Ldb`{)l@O ztkIot%HR_2bXZSb!_DXB!bhVipZ|;D*{4NAb^BB(tSTjD% z6NB~Q0IdJ6gWLXxy9c_%?lQP1v6H*4+vk?tF4rIKJ?`D^UGAOkJKQ(Ax4SQKpX)vy z?o>>BYW1tN#qyQPA*!nGRPWR;l`qoIhgpjm`dM17e2#jvGD)kDPt#9U8GWlVT0cgc zqh2E)ul(w+c8_(x>iXI}OTAo9>l>A!+EnE`eU&y&y+BFGo0Tu*HR@T)hx%e|gc6jO zDt(l<)syvFZIC=)Jr?eBn5}M+k5Jd^Q{=h&SbexYPXFL5T06PF>n*r_VHdo2FwXU|d!+kL*K_WJ zT~E4ic33wA_oKo598SLpMy$mxi_ej@E=SauF3lfJ* zQ>5WiSn2`iGbHg3@e}cN@oAV#xf$M(I8$s8*TH7bv7R<%rnYiy@UhYGIzTNxfolKOp0$tRw(9n6nCS2$cBd2V&M zKJ+~3aDCu;*5P{J^S;AH=78HV?|Qy*FyHa~<#6re6o>0=uD!$c7T3$+dXtMfTyJnA z9j@28X%5$G+z}4ftK3qD>lJRZ!}T(Eg2VL^cdo;=m)q`ey~y3+aJ|6oa=7+zdmOIk zxqS}TbKI8>*R$Mj4%aih;BY<7w{f_h;=4IqyZMB}^&~B^C-~70=HvWKhwCxE+TnVX zU*T{)!f$c7cJU`WTo3aXI9w0$*E(De@((y%WIe1MsCmygnD_B-I9xmVPaUp%`JWuF zdj#3x+Cg)4x6sbPyi4fmaNQ|H9IiWr5f0bw!c>RrHlf1dx>Z=>aNQzoa=305j(50j z61F*9HwsrdTsH{!I$T7RYsXwCJn3LwE4=M+5ml}obG7h=gSlP!)#18IvA#fa1m9m9doHT%E7!uoab;6RjwU#k+{&oyii={a9toaI9%t8XF6QxiI+KC z=ZZHwT-(I^9j@q>T>O@if}wDA_6<=kPmLI>+H^kgj*Q>gfk*=^h6&B|YJA zC8d`gu45$H5902*-4^+AX5zmva?&7hQu@>7|NbmYn}7?wf=NG?j062xGWPXDA7N%+ zmJF_aS(w4X+Y?A{--m@62-u~-N|cc0|K1a@qZcB}|2>Ei(H)J$ysn5W|96>#9Rgkc z=h3U!?sQh7h{^ z--qpqU42-M5&@Imh$OEUUHs33h))8+pzL~Rt%3z)~FcQJ9J-TEuc>HkQ&|Mtf?UH$3ue}4p%gE;$LD1oH}>~djJ z#*+M$(dGX#y8PdlB?@z2R>hFMbosvzOH}JVY$0a$L1g*A_eAXIg~;-MPvX-9k>&sH zWck0_H015uO$v5bhRUgO~nN zV41B3+pG?(vpHa&jROm95ZGw_z)C9tJFNirqQk6!HV5{;chaV6#cPaRdJQpL2IpPnjpR+F40(#Q~wYd^(XOpu}-)}{YLmr{R~d@SE%oc4~uiu zH-+!v<-_OU_Jdtu#oqzJ3FoS(t0%xqh?~_l>QdODaD+M+-Z>Z#ClUt335EV} zFJfo4z1m9EQ~~Zs{6qOk`9}F%`4G+=yr#UUJfl3OJfQ4=)%wSTYlV-M+m!2-E0v3s zb70rPaY|CzsH{>JE49kuuy0|CGFBO`3{=8OnbHGxF0@sAiln&UE$eECfIB)LI88ul+Nmlw)a@;rHlJW(D6I~d|}K<+Jfl{?6- zWliQ~M*3CyPWnRn@LxNV@V@xg{?*7lDldV&1o9HdOW^;w1hBR+ktLH>6Ir52PGm<@ z<|s;3aW|1A6L%9?GI2MNB@=fOSu$}qktGv%6In8GH<2Y1cN5t- z{hUnPO=P3kSPR$T-@(LZG%Ci9fkYdJ{T&!xgNPD86Be1lH4YKIc`PE^Y-?6v-WW6j ze^o;i>+#HQm^T6M&5*lSEH?3j)2#Ew}r@$U>`HcUr1W5=|?_;<=|{5yFm#!h0s z!H!YH#wbVQv126JO*(>16AoX7Il~6w-vLM9FA~gGG!mi|&q74YgEze}V){DlHI4Za zJEo94PVRvJKWQ@d7{w43z8sCkypd}#Zv>iv9mA(!$1rpoCIiq-n3vd$9kW3N1TqT| zQ*8$GJ@%S@IR0HA1s(=NxD+f6_PHObeW_} zC2f;*i6p8f39A>$tqUbxAnANb=SkWs>0C+FfE8BHmRn~@I#bdal1`VjMbc@KPL*_u zq?09`BHbNykb$MiM=zuzIxII!e-d zNmP;xtMp=o)wME_o_tugZH8r|W>~gnhGqL@ST+LI-@G!}AbJ z6EJD9Y7oiM1dEGt&tmHNzL*9?ET%sDB{cM-BpdgZP}lO3j-*>6E~0Mc#YdqoUPfr) zNe`D@&KJtT2@6$np@nj6#X>oNWT6}euu%4|U!Z=4$1PAll=Qx&rzAa!beQ@b(tPzx zNgqr42x%UaJBY~O=BdBZmP&3iPu(rIo<^Fh_K_4MQohHVo?AmmEfsS)?wF%eUC11T zE;d{F0W-`Via2vEVF+=?(S$wlkm>4ek~&Iii8NKESWZ0_^G&69dWt#*_e@bf!?Y>% z6ERucj%l!xC#FrNlI-X(>e15($%%_pdL%`qm{c?daa1|sY(f{$F;eYJr2K?wBXe+L zgxZ%#p-Pbvv{9(G#ten@15!wpX~XFkW|+DYGY?bmmvpzJ9g^;pbO#%MuFN2Hwx%Cp`aZm<*Bzy8ijlERuHBWc0tUg zw>3xAF;|Wp(vq_P_vFkc98O5TX<4IDXJrx6$b~F={j*wNO6Cm2jP-;ig!Dt3&a&{_ z>2gFvx*X9kKn~~_z*2GF06E@g0PEwx9~og|u>vFipLB14GX8of)em)hx+3%$tmJo3 z=(129%=kYI`sjBFG3O&#!|zV#A}HgQI}@Qq+bZ~N@U`H5P)O2od#IFj>4Ga&YK)F(ZKJovFx%S06F-0T^mA}Ssf$`&|d@yfoeqlatZi9CF zTr*^R0OPw)f{)_=^CRF#z>mQHk_hyP!sO;{hC#=%l9l0^%hp#_l$Rw=pIlfSUY%I7 zqI~J9mEl!2)sxi8y`!)gM4KUA#&C5_xVqVVX;D}hqRkYUZ^rWQif~QIio}&`s!Lad zn?0a!6jqC9Qz#FZT2)b9Q&Q7>&fZa2JtBS!Q!6S~gqy$Bv?wel5x<2>nXjsRamA9V zaPue5jlv=mZHm2HkO!=)s9FgDI0~*&S+Qb$VYBz%D+-HHv>7B1oU*p0YJIcWdPfTz zZhTU>YUv?vyjOI1!|5ijUs<`V+0*rm!WtEA3glHMu35FT*<8J%uu?_*-X@l>4Ocar zt#=ewtB416LV4M$aPyy`R}@yPh@Wn3xTLD4+0*rk!par#Y$GdHRIF+?Tkj~WUlG6R zh^lZ&^`TA&YgfciH=?Sfy!q4hism=UwxXh<`4^*46xOqdzwCu&RpC|eYBu+>_ld&N zFAW*XD=Vs-e{&L|Ii}J9rYv4rzN&a}WkGt1l@NsmVH%S13;H_=QCJS9QBq#IaHFsm zOb0i9V19~7h{9au4Vm&X)8JIFHcUfOZvFsBf~9I2C-sK|VYQe>Nm*%d!PLe{Ir#$u z2~k)+rXg2OUMd`z(j+OTznu_;=d{om~_4&YbLBD zG$7apruR}hz~U@2Yi4#{R!&wyif9#ux#t^B0ZWMIW~M_bOh4Z!6{c4%NP|xWGtf7j zI3p*gU;t!=Ip`Z@&4#&b;qUDzOhex!H7g7LwvIZGT7MI;kVj5dMqYo>IttU#H#`}b zXSX0bC&g|R4Kz7PMrJ`qn$v$kGdRI0j~~Z+c92W?r5M zbcn(n_D$9e$<2n@sbN0mG|?dnli4@j2dlH>=B8(+IGv&@>}$Nd3A{-K8QJ+6dFk`u zNadg-;eo(n?Rf>d({U5bbl+svl$;!xJ2(%fYwi#0qQIQ@O?PG%G$Xf_&?!YAY&FmQfdtfg7X7&itb`wmA-y|g2`B~}d3t{~ym>B=}I|jfG zm>&Q4J4CSkCYU6@N#Nnj0&_oSF45aak@y!m$9O)$Cs?|1Zv z9WclK?{^rm2oOxQ-{cNpZSUN?{PcMcg_X_i%FEGV7fil?@KLZ{PgY8>tR&>CTQ)R?~HaboGvim-nYSbgUP3$DhPX!M403$H-`^%L~P`ar#v7SUeU=4gG` zuk2;*+W#fR2>&+zdIXYSKFl`5U_|w#KP+>xaeXo4kot^=D08u~>6mXyJl~&|x!9Ow zJfJXsz@f`rY;@CGI8>R76*awuKP_{yQTcca#r3!FSIb;%WFI_mQ2f9{l(`txzCyP8 z*d40O#R{9A?hs`zHoP~Ut{{HZ=F41c*g+?2zRbmjHodn)mAM!UEpPl$4^ie~gPUeM zM45{XYI@Z}mATl!rl&hZnTr)1l&$$P7t3$@vLCX{#qti$c!)9=t6v6WQZ_ARkO@l| zXXP&O)?rX54v`BSRso>+$H(mLK@^)fs zUKyq3Was4Ki9_x2Zo4owcb1nIo?sR%rUGs2umcXr87~jW&(Fw(h_{QUXOE+Fcry7J zIk{@L_|0T>qI8IFeh&PV-j;3#N`aa3!m!dt`s(-%W{jo0d6}8&$avV&=Iar1#D?3{*&jRmxviI@wVKKylqWA|%>MVm%kf#ohr}b?} z8x~LN(~veap4Ph|ZAd(=XG7ZHcv_E!v_bK-?hR=J<7tTvX$A4LZVhSq@wBcDX?gLq zE)8k9@wCnjX*uzS1QVY?`Xb!&hVwMQ5?{D$2@$ zKkW-v)t^)@Rg{H`%q#or^LlGVrNbgZ>1O;ZWEaV=6%;ho3H4b=Q6elM3?D(SPxaP{ z%7gN6PQ6Rna=D_c3@B$+)MxdUih@E)X4c^PRJmLcEccp|pRuU^4hraES^3%N%IEc2 zy|top)6>BiC>7SFvgLY3RK!+W#7|(!hmeEc$Tsn(WyxodpPj2ts?R7NK@JoaVU=mJ zUYOS-zEo6t=8^RW%lJc4UHO#eMu&PWONKuqGpqi`$&%5Bs*;TC&h_V$!OzUd%$ZVu zVHtY(h&jp^^%wCXpOdAIt3Ox?D~6_vCf6Cs-5c- zWvp?5D77yoLT#V$-f&ptI*Zlkl)=u!h1W*cUs?tms;4H@=aa$C$;e7qMg9HAU_;GP z&Vcxb=J8iMCpTYh8$X=OXlG~T6(~Q%zcJkNmyC>pjLcAds*E>$o}7Z59`z@X5y$1x z)!X8s223Bj88i-#!9~2|DznDy^srFRNHtQCwY8 zSsq?hU5p9E8R^-@uuQb8E8S*6-?Z|Qn(~TOHC5#`<)v#@7MDPKQu$gC^}C95GU%A> zf{?ECU06}GEL^oDTvD^93bOw0uqM0f4^4G+rPH(}YgUymg^q*2JILEnpS^DoZXfDN ztHQs}OP?WrOW6T9Z?SiHbxCRIvXZKbmFr8x@L9uE;kD(}L)Kc%nld z(&Q>B7UYKlY*n~&MM?F_in4Nu&ytcArR9|+RUjK@&gdr~uw&|@*ChV+sq!J@_u{(J zp|EOI3G}OMl2ImkxiU?N`;;buZIZdk9`Bew1_WlL7nmlwSE}|xwHh{tN1y+$C8;_kjCO6KExr7V+Q$C)Od&&mz36o;jJuA zhq$g-5iZ5ovuTK(Kqn=nzNOfy)(r78f5;3N6ZO-zThzDQd7)cEvjPVKLt!?#b%Dym zI?1nkpp*KyfBP@}zsCpMG`&4<2VJ`Aj;kqI4DT1ba4S6=K5}|d;mo4MnS~=J7A5wO zyLu!h*_Nk^%gcHsj+;EQXiU-c#K}`;CQhC;abjX(|Aq`})?k*|h0{llEu5Z|k(r-- zP`;At>hQ|NE7t$PsVb`Ar7y2u`3G4_q3>!<7_Kx5?sw+6NkvVsGIjd6NrltrB~B=s zmzdP(-jm@@M^BkvG;Yjf+?Uj&@uiXzrx%SbnqD+{WYLVo`aSUR>owj`a^jT9iL<8S zb>W(cg(GK)%b%qy;OV;UMjBtsY}_(kp=B|yWYLk+N0^A!fz1< zxwyK#CfryLYx;m2?~;!h5BP(yW6z0(r<jl&!t3JqT?PIK)?N&qtgF$)yd#PiL!C7=yOtEMSyjIJpv*(P5X_o9 zZrZFOc$r5P%}wlaP^LdVV-I}X2OokD&%2Kv{S$lC-+W|n8{Y01xb=n2-g^9&^GY+9 zK+}0i@sj1m@tdK2UWRy@_mPKqpW+a=|5wj?$WP*(phxni?AE+pN{U+7t;vh!-Nr$8 zHMsfL%gZd^u=q1Ow3Ec62;ZoY@HL*;^sC(?eu6SE0QvntC_{5EVZBYkk80_fD(He< z(<5=_xXJUt%nmv{{?QwJuKwWorEAt#Hu@T5A4D_gu|cfhds0)3H{MteYWlz$?~+feamruzg{;hj0@CB4N7BsC zLQO?wd1-?+{QeYW;p)<=@=E+;r6F5pP7YkE{`r)_pqKI$)x}L*rfHt0&*tEd2Uaty zrP;1cvU)UqThZ_0d8#YcRF#GYHftZ!7ts}(=EkQ-`;sGbTJUzs$!cwRlLsPC+Vr6O z<{yg8+Vru=v_E(-P2betN42S;%TP7`S#LgE4VOi4UY-C3H$bh;qmacvOGynBEf%kV zpObh>d0BBoB5V|wWi8IiF3T?^n~vwI&(g2iNdGR|Up&2Zy5Aj*4=A1pUr;da`s-s< zVVfcdytZV;nsAR~_#3e2pZpyd$?L+~9hs~~4r}80E8*qDOBKVPRgG^tGq)@c{wB{u z=a1h?nf%i$zFp*n;vl#Gr_Lw?(Db|qefs3+{Lb`}Zmyu0v}xw1Tceu3q)m6qm$Yfx zAH1aTPkrd01n*Rb&d|tY8+^O*i`?T+jlb!u{`;H%oq0F9X7m2-Wxyym$@>>w{NNvp zh9ES(oJ_~7G|urKyhx*G(ex_bj)PyBzxvm(oqSj)-mYf{SZ#p572d64aY4$F&3@e* zWo!HbH~O$t;7E@2>d4zw!`a6*K6|6T?u+5i!Lqz1SvmMMt52^N@w*t&^qb~gzEQS6 zJPxy?p@^B1R=K|xuvkGUzgCYp*KUf!5n;t!MOhfn0x*1KQTgow;usN0)7Pi2>223 zBj88CkANQmKLUOP{0RJKBG6eIqBd!8rj}mW=^!CVo2CA~Nxz|4Jl?MF_SY6Rld)+_ zcRX{bk2bBD%m+0}XFEN$3C(0{+z<^jlWWE5Av*;ee8xaOZQh}CH#xE0SDT^!h28^J zcWq45@HGTSw%CiVT4B>1O*#wk-rAI=yPF10p2X~?jcl4L{@LVy;}4!Dc4Y5#}!v!DKz;=bw@hu#mZ4hfjcKI+VN(t=+Ew+Cav zg~9$oGjJ8GcHi56(7wQ4Z%?)MSPR6*A|m?0YJ1PYc>85M8AjQ^VqOU=xpy=6z^d#6 zjn;5d|DPWLKLUOP{#QjHu^(5ubm^uj^lJc9@6E=Jd%*R-4!x2&OzHw{Kh^73)r41- zhpT7AMQO!K=%)tV{MLpSCvj!KfUJ3n_nXl$m*4N^JFBm8Em^e++FP(;)60WZ?Q#}C zn6R#7Da^hG)3iaaz(iRco!^%$DJfZs0^Q}H7ff-yui$jrOpI?fbN-?}TuCj;P?XB5 zikdJ?ofgjvb5Y=SVp+vXyjo((sVM?>?e;SJl0Gaix2Aco>z-pmP#7z*SGJSM?8MKu@mp>CiSY;>g|-MqtBu31r2Ub&*t;gh_SKRUcmSMLMijTP6x zG>g?^KqZoDbeaBLxYD;T+$H5(QnIpq1$=hO8sBJ?yKiT%bn1j3Up{!u2hZQzYV;b+ z>%^7hRj}!`lC#4YU6t8&?0K4deKK)!nVYfB&B!0Y3tM1pEm25%446N5GGO9|1oCegymo z_!00U@Gla9G*u|9dxoWU;vZzDXJ)3RXQ!rTfJ#rCR5&#;FR{8ZTnbGB7Bpkkl$Wf) z{{O1`lLG(!e|`k~2>223Bj88CkANQmKLUOP{0R6F@FUmPcUj%ebwJcfwKcKh= z{{23n|B3tv_!00U;77oZfFA)r0)7Pi2>223Bj88CkHG)+2ymUL7XQG){{L2p*8e-# zEpt;~^}oA9b)o5y223Bj88CkANS6|5Fi2vkaIcXBc)N zPhDA3Neo@dm(|o%Ru3F70Jqb;Wo*)52K)h;0`re4tyo)LmYPv8a?0#+qk!Z24_4u5V!#tgTo!9U*bLT<E= z87+ERSpMfBTXFAltK5E}_d@4G*&jOv`2YL}_!00U;77oZfFA)r0)7Pi2>223Bj88i z-!uZFEmN7Ls)bp3>Di^>#Tlsu+4)d_&j^>MmSh!_rKYFnr03)=&dM(hX9*38{V=vX zGc_|aF(Y?iPWr&?{IqoXH`EPoLZ0-&O5|;OjDjGBQ-NGF+G1^X7<4B z%=meX#^=c{`J?j~M$_}8XAMlxjh{zvbe`NWe6B;^kFGa9Pu{?sf`K{p=g}IUCpYhp z&ZBwpfzOqjn2|p)8}29FyPqP4=dlVYJ~`=s7#~)DJ8&Ahove76i&Qv`rOMM}EcwIR zIp{RmxdWljMm{Yp>T`FG;{NP@=k9kuc0X|6hE4yU9|1oCegymo_!00U;77oZfFA)r z0)7Pi2>223Bk(T}0Yg(&VIi6(qG2HFI-;f_GNx&A{6CfdzjJ?r^8X%L1Mn~K0sUL_ zBj88CkANQmKLUOP{0R6F@FUk0*0Y3tM1QaUgAF}+fYnIAz{y#?T|DpGk(0fq! zzsaq07rNPQzz?7w0Y3tM1pEm25%446N5GGO9|1oCegymo_!0P5i$Ib#OZ_Wj8Z6BC zmj*2~Wc-s+3H2HOY}i3V#y=TXP@nP71`hPqW?A%M{$yx?0gscp-{3=?>i#IjzuFV_ z@7Irj9|1oCegymo_!00U;77oZfFA)r0)7Pi2>20bHUi`7MnU@6+OZ5smBs!Ee(As2 zSow*51pEm25%446N5GGO9|1oCegymo_!00U;78zJH3H+g#+Y&+yGEA(zr)Wl$tC(% z{Yd_O`w{RX;77oZfFA)r0)7Pi2>223Bj88CkANQmKLWptz(hl{7|U){{-5HP|9=-H zKf#ZH9|1oCegymo_!00U;77oZfFA)r0)7Pi2>feDU^15f)s_x){~ygRR^0F1&tUDp z*WKOjWA1(Kt?sq%CGOeoNp8eF(p~A6y7SyAZjn34&2am=UEEf#75XjoZRnHGyP;P@ z&x9Th-4(hibYlOTLeYm zx4?IS&jKF=-Uz%9cp|VfaA)Agz?Fdu17`+K3`7F!0xJWH19Jis1BHRyKuRDn&?aEp zzuDi|AK7o)FWS58`|MlntL+Qz)9pI@XuHx5+w<)y_9(l+PP2R3?QO?q*7w$@*1Og# z)>GC_>vrop>k{iM>jdjqtJ+#-EwrXvW30hehSkUFWF=UJ_)&ZzJ`k^oXT`%}hqysp zCe9Tni-=e&mWxGVmKZOFiENQ9x{6jp@L%{>{2%;H{ycw--@~`_EBX2SG#=&a`6^z@ z=kiH>1kdCBd3WBH2e@K>Ykq9LW4>fQVcu`vYF=YrWS(IjZ*DLv%`$VYInf+$W}8W7 zXEVXnjRVG~#$MwkW0!HSvE8`B*lL_?Y&2?&WyV5dx-rHWY-AXHj7~;^Vdy{VU+5p` zuj$X~59>Sh8}!TcbM=$;h`v@|t}oJO>ErcbdbXadchy_!ruL)ux%Qs+iuR;-zjlju zm3F>%s#dG5)sD~(*QRTuwSiii)~?u^k`3y23_RoBG98eJqq+lPmcsW!qX!_7kau7^l(oP2R+Qw!$1%9^ia@4 zJUs;TU{4PQJ;>98Ko9ivK+pxAE&!eH>3q<6p3XC^+FVcPg3j@D4(M!8XM@i2bQb7L zPiGodZHA{aK&N{;9rOTC4}fc>c{&Yrs;5&y_xE&v&?%lyVODKFPxk|z?CE4CYLh@) z5dS1m+t-tQMQtBX_7SzcJ=t5-_VQ#eQQOm#Jw(L|&gG`wBP*CJBo$*)9YwI{z6kxEbQ7m*52 zejy^OJo&kZtn}n(BC^7hpNhzGPktgIM|kpM5h?fNMo_t9}W_a>N5t;7E7er*5 zC!ZIQsh->|B2zs1oQO>J-$VqB8Rc~%lI+QAMZ~jZ5wv8Kbs~a}j4~!7Xvip|B7%O5a+8Rl9iyxj5p-je5fMQ%M!AuL z6~nKAbsPsDMsX|$6Gm|i2M0#6frI^`IGTg^qBx3!@uFDI!F5rr<6yZcj^yCCDAsZ? zTNG=i`?2XjTSii5SHSjoXyQLNx#t0uuT+)aWG93^Ep^1ig_Fi6UAH(c8OvR2eU*mn}b!N zn8m>;QOx9ElPG3zFi8~CIanl$X&ej^#Z(UVh++x{b3`$jgEgX<#K9O*OyppTC?;?) zMHJ)tI4Q<)Fhool%fSv&jNxF0C`NOzLKHLy^hB;!tF8FgO(H9PACn01oDcB8`K!p-AOmY$*D3ur(AZ983*G zKMt0LB3Xc;si2Zf0e*(6uOYzBQ1#ISxEZS6ngBCH)r$%6GE_ZH0ak{phbh3xP<1y1 z7#XTWLx7K=>ZS{@F;rc30WOBBizdLtP<7S>co?cqOn`-<>c|8*7^)7Y00TqS-Voql zsM_fQ>dmMl=308_#w zjdAcK5SEVR|3T~o#r?+J=e`N0|3};%?)C0A_bhj_d#qdI9^o!>XS);K5pKSl=Js+s zx(Tis`Z@GfXkX~<&`Y5wLpwuvgsu-=7TOv*H53gU6{-v^2`vashm!x$PJ{^20xFdLD@QUF1!7WhU-w><{E(;zWoEaP+93ISt(teL%yI?S=LRtTl zz}~>ifhPkG1a1pl8@L$C`I`gB1gZi{0}BGv0;2+MVJbL^AsjrJP*2)o#xX^*pq+F5pz-NkNcbL(g8OY1}H4QsdcsCBn>lXZo4 zo^`6V$y#Tvv=&=)tcg~km20I~iB=oS7Qcya#7E+7@uJuz?i06&tHp)lbWtac7L_6_ z=8Gv}lqe8sqNivt9Krba{8Roee}zBAck37C(U>%d7b^zK~DnWB6d6!Taz| zJb@eLkLDNV2j*+$v*yF*4)X@{GV@&XWHVx}HJ6)<%vt7ma~PEKlg+MXD|jh>F}^bX zVZ3QPZ#-t)110?{jq{9CjEJ$uC~u~u|AYRS{;vMA{)B#?ezSh1ex7~`l=Ii<<@!Q> znqH(A=&5>ly^U^Zzi3}-f7f2qp3xrEZr85WF49idV%mCbrB3~Z<5{!8myD_aiGCHNgoRu z43zXSpus~)ZvYK8O8RKf;H0FF0u5$LdOc|HQ_@F*21_Nq7BrYD={2CiR!P@@24f{% z4H~SKbQNeYSJJCNgT0bo02&OI^kJaEVoA>j4JJ!^9%!&x(sMzB(UP768myM|Y|vn~ zq-TK!yCppnG#D=F8KA*(QL9j$Q3s|=8mcquz;;PPbw(W+FKMXGr~~UI4Ta}AFkjSI z(5(aeB@G4LIxt|;P!O#H3nmQ((K^qB;isl9Bs~&-YwA2hhM$Q#&ynGGqRz8qu>CsE zlfn1vJW~ckuR~Xci@R_QF0Y|N6-ym>G+s}IDwaBMY0}A{!KX<>LB9^1n(he-;&ouw zqB-I_ zR^iD`BDTtt9Yt)VCp(DP3Qx8dvE`m@Ct^oFp85V6Ugd|$*SdGb9Go9M}RMQnm6_lnqfPrf5!<2?Dch>i8+TOu~b zlW&UHXivT&Vnv>OUBuA3;XPAc6ESpdlzT)BjT_~wB8I+=@)Z$7+eZ1ah@oqvd`ZO6 zv{Ak&V(8f@Ul1|0Y?RN77&Ql9!2C(36*n7`QN{ZWA$ZVUm}KnB~cf zMGRb+QZEuQbYZ;2g(8L~jPe2zLk~uIzKEd(qdZT<(1B5I6)`kml;?^V_%F$GL=60w ziI9!R75@hRZb95&wrK8BI@}s)Ko-0|Am^0sOP^>QxWz27iub^p8rBk zMbz_OsHupq@NPXKqMrXkO+^&^7k+!7sv=r0)v-JZ?u%*1@Fd^qhPhDj^I&nT2$pc3Py`+ z8IOX`qFTzMV6&)}@F=(}sxXg&$)YObQSew)r9282i)t~Cg2SRJ;ZZPHREu~N{1sI( zkB*b-a2^GB#k7Sy3g(Jx0gr;WqB@L6!CFzx=TUH0RP%Tgj1|>f9tB@THHSyRR#DC7 zQE*jMvv?Ft71c~01y4magGa$qQBCJja8y*&coYm3)l?n@KSec#N5M`}P3BQ>Q&f|9 z6wDOWL>>h%MKys(!Aen$=TUG{RO5IQj1<*a9t9soHHJsQMp2FCQE*XIMLY^7ifR;( zf`_6S$)jMQs7CN8I4G(@9t8tMHJnGmKT!?iQLs-`LwOY36V(tN1@lBTm`A}oQ4Qiz zuufD1c@&%zRRNFolq#P`!8b82k4M2aQRVU|xF)I`9tG1xmCd8znW(aO6f6@}CXa$+ zqRQY=FiceGJPLk^Y5)wS;Zd+kRQ-4qoDx;C6-9Rh z$y!=g6zvgp3(#nas9n(Lil{@DRSRz)YIQQS6~X&QdJ<@O14&PW_91u&NlyR`Zz1XN zkO$sF(&IGS+@O|gw<_*__ha{4_b2EB@V5Ij^Z~fr-3coKzTn;#taWb;9_?OZjc_ls zZ1=+8mF_vgi`^~38u!HDN;hf^a*wt8xa%y>hg3>==5)Y!$lS42E`?M(7sf*Uq2G5<)Ook z3qx~_vqRI3Q$rJt<3pp3jiKSj`p`h5DwJ(352YDpp(JBrsE08-)Y+I4YHN%QB^ZSv z+ZY(qjV$L^qrY>&==_a$Yx>^OF9P^Q``jvrGTXc}V}zxmSP3 zxkKOMY}cQ6uG61%uFxNLF4pgLw(7S#XXrONC+k-`b^11Eqkf)qlzxU&qo3rg(xc8Y z{TOGlzSdcwS2(lvWzJN+#2K&8cSh+moT2(eCtojeGWDTOe?8CXqo+HGda~0|@8Pu8 zJ2^qUm80u{;Lo}i{6_mJ_^I}F@B{6W;G5d}!I!i*f=_EN1|QL$3f`+d9K21tCwRSf zYj9k!Fjx@G2qp)+2RlGN3JdC1eh7RS_$csh;I+W>(39f9z+Hixp@!wsz?-7jD!9Z1%Zq}a-e&lL!d>#3aC)q@+I`Dc-MZ-e%^kRir)z7;3f5qrJ8+AgTeW_G`j?NOpT%p|^VSpA zgVtTv&DOQnrBDlVI`p=PSnI9TR=HJT&9kOii(;wAnxe}v!5 zZ{yeVEBJ*_FLN^Vzu3TQ_zGUe7x0;UA|C~{GuhA!qZjYYTk{~-&7aM0%uk_?=1u5} z@wEAfd9Qh!dA)gsd7*h0)YL@H4PNC(aD$TGP!ICwil**3nH@=d5?f1rB3naz0;?h3 z%&LixXH~>?Y&CI=RT4*81@R`finx}oB#y8Z#2eXi6Y6Y^V@Dtz%gT|CVat#x zvn5DJu`tqlR)(~Wl_DL<79*`?B}i-7BBUBtj8x4IN2+2Akyf(>NR{j`qzX14X%(A? zw35w5TEXTZEoZZlj$pHp%Gpe$Wo!o0QZ^lF37du#W>b;M*c7BvHW_I#n}k%tCL%3j z6OfA8c%;MGIHZMaEYbot2I(+18fiW&LYl`$A;=wNV8cX(kwO{X(k(nG=mLA zn$CtGO=E+Rrm{guQ`kVH$*cfr63a)L$nuaTuw10^EC*>E%SIZ@vXI8GOr+5)1F49m zBaLDMkVdjJq!BC?sgU(Y8qQLXhOvG~Ls>G?5SD~AnDs>(#QGo&WWA9JSTCe}))Og@ z^+3vH-H~!wB2qT%hLpv+B4x5JNExg%QabB|G=OzPN@E?6QdxVX{;VBR3TunhkF`Nc zX02i6nW{g3-TfSX1pcccfG=K>b~;i|Z3|Kl?KGqg+Nnq_wNsG#YEh)_+9sq#trn@h z7D4K!9fQ*F7+(UdfyHc`pH}PHU3dzb{ z#5>sKl9e6Ace2YQD|Zs#!7i1o+(CRh+a_7Lo%l9(iDczA;#=9pl9gMDZ($cnR&F7_ znO!JZxtVx7yFjwCo%kkpzGUSl;v3m{l9d~YZ(v&`D>o2d&(4*sTu=Nrc8+A_Z^YNJ zvn4Cn5ns#BlB`@yd<{EOvT_aa)$9z(ij3=3>~z|`N|ABBl5L^wD-{{nE7)nYeT5?9 zdO16lwl7y?TrXp%(Dr4DjO(TBWZJ$|k#XI|PNMB?ij3_pnWM3Hg5n4Lh|7b`NZ z7qQK>eUT#LdLcWWwl7p2y`%Fc~^$d0lZJ(jYxSq~7 z(DvzyjO!M5G;MEDWL!^U^8G$dk#Rkht*8B`Dl)F8uywS3ibCI?KAMZ)ir!iXsf*?y zb=HDNZM6VW8z^}IC1@5BG=3uW(p02Qnu64k{f5+<{fg9z{X&;GS&@(GBt<@=6BYSr zPEh0{*{sM%al9fQL7gH)A5&z=qlygmCPjw0R*|8NC^DoQm5sP|`fGwJhF;{VI%yK( zL>N)7suLz4jvtRWZXDv+v4~^FAdVi5SX6{KY82wgk%%KkAQl!P4j+y6< zAPydkIA{>!z=4Pb1&I0ihPnVE8z*smXAax!945@O%Jh<*AX_U?_?s~2L=o`^kqAa?JLn3#yzts7$3u83W_Aa?GI z*r^j@$Bu{{Iv}=hkJzpqV%xTeZQ3BVZjIQg6=KVlh%H(mCL|!bE~4!q27-vtTL4hl zh>nFA6o{sYXc&l0*ELJkP-;xqR7vc;atPFJKOj* z&Q`w7*}}IvoB0-JBj4<-;~SkyzRp?3E1gArnKPF!a;EaR&R9Ox8P3N#`FyyO&hwol z4&_&#TMZt8jIhZ6i1{1}iV0$q)nBeXV3U^0PF}4N{7;^*r#k#;gF*UH)-5%Iu zZVl`Xn*%$|je#BJy1;g`GH{K#EU?X76xeFc4Qw%|1~!{x0~^iZfpunnpwdha zEHje=i_FBpT(f;(s+kZNYl;9=;05xH1A%m7e;~=&7f3Yr2HG2Y0tv?MfG~Ci6l14- zz}R8$H@4gRj4k$FW3#=-*l6!IrrNuVvGz`5xV^*3x3{|o>}%Zp_BMB)z16+O-r{bv zH@jQyjqVnEox9nt)D!JxdV713o?y>~UL{j?#U862u!n2=?R;&Yov!V*le9f{qPE*^ zukErEw4JulcG!xx-8!IMW9`?rS^KoD)?RIkwa49P?S`74U1Eo|Q*5_(Slg{@tZhcR zkz^zq?P1h_FckfOzF*&`ZPqqw>$FO3nYKuqt4-C$YQwFq))s5CwGsMHRKhrkMb=z# zjlNgkqwm&t={sSJ!FI7tzeeAtZ`HTxoAr(QI=xa~rZ2LlT4Sx@R=$;PB|%?{_AsVG zSc*6x_KSUDuh=7YLywD{Vyiw^pQ?}5hwJ%zx}GGqXf*4kI$9ftza(mrHkNplHimel zHkx>ZRzzH=jUpbdjU*nXjUXPX6>=^97b&K&CE6U~ur`~xOq)eqs?8)`tj!=U(WVnG z(xwp?Yg362*QO9J)FvaVsyWBw~Y0bFN@Hk{5oSQ|z>NE=E#P#Z#A zpbaL@*9IX&4~c=q7itB>7ijs!=WBVy=V`gbTeTeGbG2;ZS}lt>qGb|q)G~;V)6$8L z)dmnBqoomV&{Bzy*7_44rKJ$B*ZL73sU;Jy)sl$UXnl!mv_8buT5sYitrziXttasU ztq1X8T6g04S|ag0tsC)Ntt;^ytqbvNtuyf~trPJ~tt0UatphUjOlVJ>rnMtZ)!GvG z*V+(stu-?ALTE+&tJaeETdf80H(CO+nxb*yews;~tQo|nrXwrAXd3a)&~Xd%C$XQ2 z`?8;i`>-F0d$S*id$9w=J=yofJ=k}|-PyOqiR>HVZtQE~uIww~F6>L<&TKz%C-wz# zNA@{!2lg3pd-f@DJN5~2TlO(=8}<=#YqpQL75fKqOZFjg3-)*71oi>3%ibprvG<4_ z_AYUd?IjMdcaW8@+1tclvA2l7WN#AhXKxUH!Coi+oV`Z;8QVkrDSMUp6ZQ)6$LwX| zkJwAZ``C-b|6nf=f5@IE{yW=E`~iE8_bECw_xHM*KQ^l=wCF2=N~FF!8JGA>voqgTybhoy0G(2Z&!}_Y=Rs?jwGl-AlZi z-9!8wyPNn~b{Fw8YzOhv>`vmR*d4@AvfGKDV7C$PVz&}M&Tb)ojNMH9DBDi_2)l{+ zVRj?&L+l3P2if(+JK5ieA7IxJ-_Nc^RxRxWVolpj%(UZa|MyxQ@poE`(uKB>Sk;ar zR9MRm5j%tBKFhDv3|mDu}me ztB6n2RuZ48tsp){TTXnkb_DTBS~>BF+A`u3w57zGwI#&IYhmI#t&BLPl@dp_#l)Mm z65m;_>Qu;&JLY;<4&j;xXzN;?e48;v%((c$7Mdc%(X#c!WBF zxKJ%599;yx{9-H`I^VNLfJT;FvSIs5PQFDm1 z)okJ{HH$b?%_PoHGlZlks#ZmqT^Zl$&&ZmH7qS6is`{M7_Cfzn---UBtH%J;xg z9ZC{q#Cw&!#P2BY5WlUwP5hSf7V(?Po5XJ@ZxFw(yiWX@ z@*43TWe@SI%B#e$D6bH|th`M8lJXMqi^_|{FDNe%Kd(Gbyj$5#{G9R}@w3Xa#Lp%A>@OD31_7tUOHokn#}mgUW-% zJC&Wp4=4{1->=*c-N^r`My&YX&;M5$Dr05C;*dKued+E zuR-7bHqg62;F_)qJ^a6iKK`FUFaP(UpZ{yn)Bic>>;EY9_P+=E``-*b{;!5U{}(~8 z|1+WA{|V6Z|2XLTzXp2$FNgmBB`^YD4vYbq1fu{(!Z?5e7zr={#sc()(Ey!bJU|N= z5x`+gz%MW=;AMGhx)gSZ9PY*vW;F1O1#{PFJTrj2;L&rlSOZgb@Uv2loZv z3%&`X2zCdb3_cRPA4U?~61+ZmRd5@OCO9j2YH)L~7Dg1T4ORw^2$sR9g1N!z!HL1q zFtT7^FgutQOoGt`or7(I2|+uk2YwA42z(XzH1HveGk87lQsCLZuE0Zqdjod_wg;{Y zTmd5vwg%1!oE)eNYz!O~s0pkJEQ1*a76fJorUu3bMg@ij@&lQH{((L)*FeWW>p&zJId5wZ4GX@As{@tXHA^`zaWM z@Bp-c-)h}pT@7vE7g%Ror$Hi%uVJo=8@)V7^4t2i_LlF40Dn>#w;`knK|YFGuiBEb}`$TEzE#v7{3`m z7+)Ko!MKHYjW>*!jpvLfjE9Z;j602+jlaPNhD%@!!O=HAJws2?d+Xiw4tguy zaldn4bT4wxb*o{Xj64`QvdSJ{&4nHa?CU>%n6ZWrNLYf`^3BAbr>h|w0Kn9FYXlE#kDXe#0Ah#;S}giewvFA}~$_&nim!siH|C47eP zX~L%npCo*Oa2Mg@gpUzEO85xj!-NkJK1jHe@Bza63GXAkm+&6Ky9w_i+(CFJ;T?px z6W&I6E8#7KHxq6ryovBe!W#&$C;S`Xb%fUvUPE{_;Z=lJ5?(=gIpJl5mlAFxyoB&# z!ixwmB)ov|e8Texw-TO9cn;y&gl7?+Nq7d~>4aMdPa`~)@D#$62~Q$Ck?;h<&4kAj z))B@CqlB9XYY8KS8?o*6ID}&njzQRfa5TbE2!VbFbZKL!U%*ygy9Io5QZWQ zK^TlM2w@;X0YW}P9zrfc4nj6U7D6UM20}W*0E9GzRD}KrDG2=#lHIqJyZ={v;URAh zZ(qRPu7}K_Xc|m502Md8^}&k!Bg_EsIm`j@9?Syp3d{rWB+LYGKguzw@x|J|5K$&~EJJ+2Ka|4Wahr0vaY?vP)$?f5GcH2TNg6-;|Uqc6= z4&l?#hoQZp*P#aC+0d@gL!o=2{$P9Py3iG&i=p=5jL^xUy3j_bJE#e*3M~sQhMI%f zp{b$qp;1t8kRQqn^$+!dT7!3yKEj|0hQ5swjoE4l5a~lp9*NMxa5Bu5T zRB^o6DAtQAm^HAh*_w)9U^av=0{fuH{_BAk15XDY4crg2A8v;}`d>{JAzYH@OJZ|oUI)huxzdIRa`6vdvVpkJ-&^4|N65k<9qn_}2IwY6|umuNf~GPZ^IuJ;5EuO~y6G zrN;SCOK`FgGmbTmG%BHvV6kzSG1Hi2jBZi~!vl)_1JoJh!;FXhjGjhkqmBKw{h9p_ z7_ab#{j&Y6{W#Re+y!$%{>{F^zQ_m}9Qro=pnnB*2_NWh>96R|L9c}e?Q@}|eUcrs zkAu++)%FUQE%I=Cjy)B|GmNkY+1Ylg-N)_*vqrYi@78bCuZP(cE`}P1E&2(1t$ws# z1N99{^kV3_Fb(EY9H|esZCitRC%!%OxA=c<4|dBlwM!&jEa@Ui7fQN7()p6kleAUR zxsuM2bhf0kB%LYg3`x{q*OdKrP1#@9l>K#0*yUeY>AM@m{NX^o^B zN!607B(0WIDXBuzDoHCPt&p@_(h-u%B`uRgV=^?2#$;$3jmgloGP$o*(qc&^k`_rS zmUOtJg_0IXI!w}hN%JJll{81vY)P{u(U=TPqcItpMq@HGZJOLiV=^>tirktkX_BOg zk|szRFKL{lv65&^hNjV&3{9gk8Jadq?i(p-grq`A!zB%qG*r?MNrNQ~k~C0Kfuwv% zd6IG^;%kYCt${Y z!9S(h&xAh_{z&)(;Q_+$3BM!!mhc-wDl#%EGBPSMGAc4MDl#%EGBPSMGAc4MDl#%E zGBPSMGAc4MDl#%EGBPSMGAc4MDl)S7=vq`{WK?8iRAgjSWMouiWK?8iRAgjSWMoui zWK?8iRAgjSWMouiWK?8iRAgjSWMouiWK?8iRAgjSWMouiWK?8iRAgjSWMouiWK?8i zk7HnAps6H!x-h&{Zc&eIQ>E{tsnYk+ROzc=s`OPbRr)HJDt#49mA(ol%xVhfG*x=6 zrb>_1RDPmF_FI(&>^H(#Zc*6W~lTnGgSJP87jS7hDtAv zfj>iF|H}80;K@UW*S>_^2@?t169x(CMs=0mO&#tBj@MNMcj?^-yArk|Y(W?xq>rYl z(!Nw_U#c`LRT`Em4NH}VrAot6i|`VfI!cl>EL9qoDh*4OhNViwQl(+3(y&x%SgJHE zRT`Em4NH}VrAp&brSYiJcvNXTDt-AhE>o!`^#2d+(>7?d*E?eiqL2 z?)U%fq-;odIG@+^dJg^P#p|6Pv$Hd^-)x!v@67(>!6AnO?}3@v5Bp*-+zGp55Pg_@ z;2J!y*$tl8>;}(kb~*4^Zm}G^mi#3TSvmfA0Pcc2V^7=>y(q8a@(_O%AHj$5A$$-Y z!26LA4Lc(m_IsIf58jP;;hlH~-j287t#}LGj5pzpcmrOKjA+=erM?EQ#;fp3+=Ps1 z*e|EP3@^n?a3fxf7a=1Wc1ASp=QHIzJQvTwv+*oE6F1-)csibj>+w`vho>MT8upW@ zPs9^&Egp}@AtM_0ChB8x4X(yxun~{Oqi_`-iAUh!xDr?3a$JT>u>tEbfpxe97h^5f zU^Q0ZB3y`Zti%c|#~7Aj6iYFJ3owlH@i3f+b8!yN##uNMXW(=!!D(2GhvHP6f<-tP zC*dJ@Fiyk?I3CAgAr|0RJP7mgKs*4);Ak9$`{RB%5=USj4#!;e{y*p&pg#ZqG5D?Y z0QflgzI<}{TJWXdb20|-hpC1V61`rq-t z;eW;df{YS8=6}$Cuk;(ZS;h&j^k3?~(0`8qjQ^XFf)4NA|ND+9xX!o9w^4c;Z1Am< z&xP0cR{56u>g3&OxqLD`N51#4$TvaWua1(>iih|H`3CrQm3OQ=_|kkXpUu13`@Q!| z@5kQvyl+a!gXg_ZdLQ=QC&&KZhfPLA8(&zs}jSB~7z@b>lgl4JLM@=5fsa`gVUa<=|Qa{T`5a=!kvp2s~8${G8& z$!FnL$vOKMc+T>ym$UYpWW-~ooVQ=&sq~b}XW}zFQ>9x%foF_ogeO}@DfaM$JUh$z z`vH$f#wmVr|KR@G{i&S8|CWqYyeMb!KkB~UeV3faf1P`id!wAmzrnrEy;epmR=JnE z>*Q?ya`yrmuPAXBxhF_hg;DO|GGZ}E>LP-P^r`oYn7g+vJ-UzjuA<`q=fJj9R?n zdfxS^j(-QofnFw_rf^ozObK+ zUhL}{=*n>Qb@g&}m+=dS^H=G_@U8Q6=SMPv@w)V5cvd#qooj zd-17^PrM~(RlMkU+VQBIS8EAj5oq$e2C-6r|K@M#<%dV_$I!Auj6a@D*gpu!I$wR{4>6YFW~d|96pQB;M4dN zK8a7@ybJHdJMebA4R6I;@MgRTZ^Rq$db|#= z#cS|tyb7G8F?9yDKsj{S_g_ zZi-zM{SQ)5mfjUX^L(NpTeu~C|nAsBKZvf zs*+EvlAr%S?Hpm#pa1_3&J@t^>VJ3d>i-D)m)qlQRIk=1`xz$t87BJ~Ci@vC`xz$t z87BJ~Ci@vC`xz$t87BJ~Ci@vC`xz$t87BJ~Ci@vC`xz$t87BJ~Ci@vC`xz$t87BJ~ zCi@vC`xz$t87BJ~Ci@vC`xz$t87BJ~=Fx2bQMd|^#3S%K~V+_kMilrFA1sKNpco@#Zxi|-B<1CzsGjKYV;5018Lvboj z!6KZDlkgBc7$@Qc9FOC$5DRcD9)$ULARd5Ya5Rp>{c%4Wi6bx%hhr}0;4sX_p*REw z0jj#eUcqcfp;p5BA1%?1ejFPuvlAz#iBg zgBUqMi)BKfhO9~K%3J3FZ>n%iND}Ka5MglKjDw~1O6Sq$M5i4{06_q zukcI!0zb#k@KgK*KgPe|NBALrfbZjb_%6PKZ{u6|S9}xSz}N9Ld=>wKui(r068;%q z#24^+d=8(*XYgr!3ZKL$@Ns+$AH_%TVSET5#0T(x{1e`X_u@TxH{OMJ;vIN9-iEj0 zEqF8Dgg4?1cs*W+*WxvJHC}~R;wHQTFUQO9QoIB=;>CCoUWgaq`FI|li|63kcov?C z8}JM~9Z$pccq*>LQ}ARw2~Wfma4jB>$6+%z;jy>|SK~3*h)3g5xC)QNBk*usi7Rk9 zF2kkRfc2QbI$VN_u@-Bv8mn*-F2p!iVg;6C49hTzr5M2l7{>W{7|z4FI0t9rES!lm za5|RYG%UtLaVk#1BAkqq@DMy0C*lMgkK?cq3vetRg!y*dkaX%c1BQOt# zV=m_4FwDlGI0OgdzPJzWjeFrB%))`VC+>lnH~@FY4D62~+zofde%Kdx!JV-W_QrJV zg*#zS+yQ%F5Ccksb5-P+J>rPa%BEGIVyjJzs4VxZhw>f2l{jT zS#rMqj?(Mzm$a|bK1h32I{n?Bc1zl(wDZ%}r!~u2`AgDbX|vNN%eT?z%6HNClW(GT z%JtyTKYH=D^)+Q>Ic4@fmt`p7p+4@gz^mh0K9<#`<5rlYLdkb0F>+Z>*z zBa^dB-}$B^lBG1BZ#q0#O85AtmC3S)TyI74dh*4m-lpYNy+P__R=r&6rB=OI>V{;k zdcQT*Teb9lYf{Z1WfSdZNL^>ur%S!Ws!x-8u~n~^y4I>smAb~N*GXM%)u%{ZWz{E3 zy~wIhl6s+4pD1$shg#i4w2MNQb(=&SgEB; zB-7VOEqx-XS4+LXs%xbVTXl`p^R2pC>cgzMO6qx5y-4c0R=rT_IaVE)dbU+pNJqDtN-aGk+0Ig_i>*2$^`Tb1KgQ)a zOzM_?e$uP2simLaM5$Z)`Av|zrJvt;sayK_jgxvpa+yY<)Y4m0ZI4kPwRD%H9xJu< zm!v+(RPX=YL3#iGbMTwsC&72+$p07QzxqcfpcBvu=mc~EIsu)4PCzH16VM6h1atyA zf&az?Tmh#|-s*c@K7N}nFTd^5{!dMpU;K8;$;Rsc4(at_liB^<#@PI}SvFs@_ZjzQ zcht3B&J|v1uCae(ud>YwW(4;AZ8vsJkAd#=ygZ{hzdll06|1eQh}6Ur)!~Y|+J?p9 z>R5GYtgh3EbH)}I=9d(PO7ahyR2a(Wbe@dRK%cksi^B1;jL^iQlEU$Y#i61pC846} zlO}~id&~UsM7S3oIBzgo&_+g)QDSMJMdwD0Lo&(AU%_l(z+#g=yn zGFn>}3paFf$!zN$F}-Nwq0>bKbtCUSj zWV+L{vW(UJJ9(_6Zo|y2JvuslSaf;+%wQuzGxCeaPRK7FI4nD>!()MsYrQ->H@D*q z1ll@7&Iq}@<-xYqJHNWi`m#y~xYINH8I3{y4zZeqJSSA~M`*dpGdc~t{hX=!sy}kd zrCFW&LaSyxJy zTivL(wJwg-RYl|pw!`X^_nwy3cX97X-Y*)9GCb*xetCp0Nj^ej5^+qPx~pQ5MBDFp zS-3PB$%_q*<%Y`_gMB$J zcWCP4B=y4Nqa}6PRvr-6j9ovd+C|s(3wgAmPF~0ByLcH-y?<@FXSGU9F}49NV}Od4bK_&7HnX?rC#Vo>Qx1^^vkjeIzUkZGRV! z=H}!KDIFO}dHh%_R`Vxf_2X0TdM$DMM@vk(FIvm(7-VD4uI}^(+47lPZ+UAZ;k@B_ zLn7Hx9{ASOidgD~kK2X~{~s3E)poaDEhEcjvw!{D_K)?obOPI70*y-s$!oJS&p2i% zkJFYNsg$>M;nu10qSji=esZ`xHljRdWT!jV)?31P*28wI`})auk8O+I>S~gY;`W=- z`u|Z7S(LXu?oq$e2C!iD13FriL0y+VmfKK2KkU*7mxVGB|=MNq{ z*w*9a9xs>F#p~nIhU!oxmZ*;}ZK!TNg*Y^DY-PMAmWYKCi|gVw6l%qf8ZRx-By^Gd;5@vuQ#@b);rOZFOxZ5m_v!EGASPw(81uH8VEW z*t^NLHukVBS+>mPe)>v#c3~n~8LNv&E8~$+w6-c9k`p8M4IQ%2(Ckp6p_Knj9zS$= zZmxBKOdmLYY<_r%`pF%UlbiLQFQMHv!fKsiSxtCRcxZMwxyo>Lg<4~{A{uF1PpoZ2 zxBW_$hKg%skC7us+Iok3hsQ?bB*wbRNNJhe8xtWp6;e*8PZVW$K0S46*qS?iB|_o$wix7b^)*KuU5&yx`*n@ZnGwRlIDr0J#oV z4J9oQe-W<|kK*s*=es_0ZG)u5zXS&o97u2=!GQz^5*$cyAi;qI2mT{C(C)CM5eM@8Q;zoJa{D#J(tissv`X(>f?H)+J*vszD|WT+hohOHLm6`f$SrFo#&G_J7E-yi6KZnx`e9igu^ zN;O>7F@hq$)s~hE^;>ZLU4d1mOp){r#K?wgK|@iriMQC&ii+qhiw68Fy8`;I>z_oW zoyE0va~n-~?R4b9MD_Ln2l8Ns7B@CEw#f4rESBdlnLAgO$3cEG|IFhXVI~oH7&b{ zJ{3>6nxUBne|Ny5pKg^XZnA+Cy#UetB0sBLO+Ap`+ScU{h4j^P`s!n3!!@9xD4Ne` zUNDrQubYjp``2pCD+(9Wcy&h7jH@%QZf4lkNf_}vRwwFkp1icS1+Bj^<&~A1wTD-n zW~foJ%F-B>v&aIwEh~MF_FO^wxAYA`|0A~GL?;s*NN^y*fdmH<97u2=!GQz^5*$cy zAi;qI2NE1ea9~&tI3v}NXA3WZzt$5O_)AOwK-3Nb5SsXx;6Q={2@WJUkl;Xq0|^c! zIFR5#f&&Q-Bsh@ZK!OARX&msV9kwU2UZxpbD7t&wgTZ!xfSyd`e{BEf6SjYqQ3;sf zK!O7a4kS2`;6Q={2@WJUkl;Xq0|^c!IFR7Le>w+TJev*of7-eR+XJB@Cz$`2T7s1H zqx796D19k?EWIziCA})WC_O9fk^U+@B>h>sRoWqKleS71NM}hA=@e-|>XueXtCFHMmurDCa2lBEo3q~ww~@h9Oo;d{KNxd_w$-c)w+<<$TK-mLW^8 zc&B)ixLv$byjVO}JY5_T*NG>ICyH(2@!}G3zStxlB~BE}MW0w8W{at!B-%w<_?PgN z@QLug@TPE3cuv?WJSOZC?h$Sib_&-BmkAdNe-Jha8-zijN9Yh%2*+5~3N6AMp+T4` zR0$=*7$H~46p{tr@|5Ko!NUK{f5(5pf5gAbzs4WnpXHzAAK@Q>$OJd@*YQ{Jmssw% z+`ym9Z?QbbpUMyN-F$#w&M)ET@s0dczLFo$d--fWg@@`~Ke@hfed>DO^@i&u*R!rC zTo1eMb=~IL;kw#&iR)a~7T2k+L07jc;972Z#kIsW&(-Lf>Z){&x7^|Ky0Tp;)p4EU3deSY3pCD z4_NQ8?zCQQz1VuTHDX}0$UWgP=U<|CcQ*2KrlI*o{wO98$C~Xo@-}WhTd0C z&rt|xCEcJR^(s<_ko>Gi=vsp8rjJ5M zhIc1DT}7r5WE(wIMW$ec*-uYakx2+i`AncEsz?n+KK+HRR*@=#w9u6*G65l@x@fur zAtO(8(&Y$oeooV62(h2Jn=VC&?U|eC5)~;{k?|@rPDOkOvA&;9kHtu66kVhuV^pLN zBmT+sXch6QNC84Dk1nM1F>>M@4c7axa~&B3T5lT~CSMyN~ZBo!HfpkAa%48BkeEJ4i&Mhh)qSTDq>L)4kOEdpjnJGZlM_!p)pea6iq1z^$S9%cWb@q{-q*6sL1yiIW&*@jv!6cw;0*>F7=Iye61p1VPxy|)IU|^OBMM7 zBjO+i#AErJa$OF{-D)OF+ z99EHcRpcFlM5wn_Q$^k&NFDXMioB*Ghg9TM6?sKP4ywq@D)N$w98i%L(Izn@ zP%kL(c?@~#IR);=&_(@SfzKl7J)L?+f%_ErG=^KKy$XCvfqO9AOg*WD)3PSKBBIx7QQ*xAyh(vKVz`{T0mI{|ofs~ob|~JkNB ztiX#D_(uej8>kBvc!2`XSKxUHJXe9|DDZ3r{y~9fDez1Mo}s|g6}Ux#n-#c8fe{Sr zsIUT0v%;2@oIOOqMhvn}C13*qr(obdnSk{eWUeD%Edgr?7(`&?`2z%m2rZ~_Lc%LzE1 zfa3@_mVjdr5M~@rz%l}s60n4T#RM!ufM4H2z(N9=30OeDd<2|(<`FQLfH?%rCSVo; zGYM!SU0n;#eYAOL!2$)R3BmyQ9P(wg90aXN45-@>) z3IfUzV9Lt~C?%kTfMNp16EKbd9|2|-33zade^Za(|SOTecySR^CV}jGu`ox z+d>oK8|=N6BX%c?6Y{DT9Xy->^g>`spH<|n<>*4y3P+as^-4EP5W9M$CO zfSMq?-rwVI5BhuLPJe&9yf)Y~5a^F1E?C7e`4veot?Uo@fe2NlLE zKpljk?{Yhg(G$y#?{Zcf$GCk-L(RSZwg7NIKX&g*j+y9*=E`;c{vPP`0F1k4Vr6XH zemw4>j(&*0A+Pdx2fNm5I+?nHV?6Gpp{9Pw=|Qcm@9FJX-<{qHLxl7?fA`A45NV&} zj6Q*5CPTZL9C^NfwLb_APn-~Ac;Rx6DXK_n1#b7Y^$x7>3bgn3gv|JKJjaZ8C$-Mg z62^LxaU8HQKUz;n)A{scAuBhQwGtd;2Jpi09K$iWzNFT=$A*zvI z4}EG^dZx*BH$!f&E;rVhoCPpyDB1~;kznn|RV~kl!aja|WB1Db^}T(VC;FA?o(Ig& zckT%cuJ!}T0Ib~DXfo$QX0A3<)ASrzj6Ua{Mx~%}($Z!_S+^!%U9F>L!J87zQ0FLr zCXiR4rrMN#n5@3ECbdpN6y@!x8ETy z?)J-}!Ika7HNj92mO6P|#y4=xJXD|`7}2ZJ4@)lBqs77<=osIpD-dInyAIwfs4&`K zM}O~NpVC@REo>^sIf1UO^^jc_+c`?6a?GrJ?x{Y) z0=T*UK$joBB)TQ(n~e7UXnU~#jSmfWts3k% zYfGNQF}@hFI-#206i?)srg(~Bo6oO-3H5PL=~swhzbdPSb>}e>nQ=L~^G~bdnAPz` zj>D0dmdg-@t8H~)C4|9hA5dqhY+_AKw0uq_^eY$GGR#8Eo4_&EZtkhtuD(wFLg|fe zllc|!kusz42Vz83&5&_KUG*ds5gESXR? zu)Z%KLqKHoQg&sP!hQk-^XnJa%M(jW^|{$4@aE&(`Z~FCLTPD@u5eB<>~ko)uBBcs zD=jZCt^XhKGQ{{&4MT-vIA*#DNkwaUYh}fZ+FF&cxDW_^ zy1Ggh!LAQ4q#w>PUBSRfgTXa^h}1^Dsov4BHRq=dvmjy>M}jsZ@D#ba}yC)x=&ncLp2{ zbfYUPg*T5FBs0^|X$iLs`@4Rc#-?#hz0zPTGf&oxEjohiRKoq*#r5#sl~q?)>Nq?$ zg<~3_54CNb{k`4F2Nk~qxIjf^MR|?dC3zG&sxW2I;RKB*it1#JS?mKN9oV zgTKP#D`fp98SEJk@dpPAlQ^c#$9TxLiW{nO8n0urAg>k=zIZPls9usy;d^ zIU@QPFdo3m~OuOH$&8Ztzh zb0oX{U0uqKf#m9 zg~dXpFaj*+d-xsv>3k<&#gBA-;dow*B39qwRFt3R{u&-`0KBo2_Sn#dnT%wB;wuYnF#C zms(D;G*~>`zqmu(BcKI1m0QLg#pQBV_6_!7_DXh;UBDKzsmzzmOUy3jJmy4Z7Bhxn z>Gwbfa3LL{XV673EVF+V;Uyf~% zdGvrXHoS;qYdwZcd3Ipcs{X)wB+_bDp*xJ^E#Hu^7=3(=d&#&k2whDcHCJx-_pb&4 zYP3AlA6g4vIxLu1N0)SN7^JZ5iXq#@D1CmXj>9l#mAfx5_yjAu70T6>ap+Un~vcn*#W%~*a zH}?n8Y1PQi(P0qOCVOJ}!;LpR4B}dLZo%O`r6SEf6P|_^Pc+N$T8s*VnB{h>O{fBH zei($Q+=_xtAo#bzZtw3hTU420kePCGwN$Z&^THq_mE>zO;Y1F?WS4fP)59Pp<+}?u zHLLBw3q=lf*8o(`t!md{uKJ;)FrkB3cHun^VIHThm5Sw2}NU$VWxK^yT_uh8Nir2B|35mwvoDwm3~= ze%Om%sPtu^rs-*43qRLm{z8GIs z2qQU1Q&3ZBb{NE*Y+w4a`J__g#3qM9&dG2q`Rcow69x&#<4b#>aj-iu;6J(7Sgbe< zV$K40>Rx!S@ohzrbH>c|!|MQ&p1%k*&|PgoI2?m6pG^MPFo-_YK3xF~k$x_#!ywdYA)7PZSoQGghA-Z^`-8P^~*4o?l6cqMefvHGyMVh`1HX6 zqaP`bNjEdXAm4bkxxpSaZ%i2E8(&50u1>XN5ZMsS<~cVE;*Hm*X#_Q)AEX=x87JSD zy1lk92onZ+#&t%L(P0p63M*2#!^c=9F>Nn93=&RZu7NPNLZ*d5kXh}~wI$CDtN~j9 zmM_M|PK#+#To& z!a*)HsO}*JVUSQJ$Cc?_6GXp|6;#Rc!yu?kj3W!ecMc3qD%JQfh$~Zl#ty_fYnZXg zVHap1J;T$>V;TaX?&2bOUSNHo2kp@nvExvF*lE_MHaK1MgrYt7gdMPQfYFGr@-gG% z`I;NHBkgW-!#uF?w1X7^)HqT0D$BSeYy*8X^wf+-#+}4Rp4d6n9k#+g0qxe;Ekg3R zUWt|!w!qSdHo1luF(Wk-(&zGE~ucs^Sn3uT$y6jHQ zYV2vpYaCV~(2xx$=M*GyCugl3Y;Q+WIc8ia_U0Cx3|;UgyLD~EwUD(QkJmjj(2WEZ z(n_?A%ysCylAIaxx5=vp;lQk!7|&X?UnXbPl2S-rtKX&y)}WJ4a;BzQlWCI&kwHUC zMOumtBzXXRXGWfnR%CSHWQIT{@r^ux2I`fe;go*J%N=<>?s2T1tdr1CM{cYKT^H;Q zJwdR|^+yE&xex8BBR8TE;@o!QnLDEwZSb1%G3g<-2U-N{aGce+8cc3s(xK34Ne3XcWr9`#xE)@!#_w^9T7|;6HE@ ze>^{zAIqn^z6Zbgzk;{?`L2!NCx47$=TyP+F1gA z1#dgfa~$uO<|uR|*?+QsYJb#zi~U6V0(+%B-S&}f7x)zn+LnQ@c`o=C{9^sW`kwV= z>mKkf-(kJTy2W~mb)|K-EDu_CST44#w*)LpEmJJxE!mc2&^H|6_Hegw zS92F|o47Sx2REOa&W-2XoWOq1-Ut2%+t{<%UUnAvAQZD6Hi`L#`HFd;d6Bt|xr{l3 z8DJWj2~;{;!IXoxe|%}>__8wC@FtbRe--pno^>;2RTb4$6U*pDE;fUyswyuloj|ul z@iKa$lTBkPCsdVI(DM*FVM2LLDLogXrB&4x^c;j%Oq@_Yfu4;~sI8Koh0%)g$})N; zLd&abDyr!w2b;o7s4lOjXJBkXbq(E!dr?ygR)bP{3F%T*SyfpLy%=?4Le<2|i8XXH z!pkcvORFpC1sE?ctE#G`=Z|3XQ4|Rx*9HC5gT-ts(+qln-jII{jw>NADqdC$f^Vn4 z8#EWoiWe2nhW%$8vfowH6GyUzdUCo3R~hI+-y1j(1*q>vu|CGIyHcll*?G)@KG0fr z_O3?S7f`Z-WdX#M@r$~H1D)uoQBA#xf?Q~+sJ8?*n^DiF)U{|R_{mRQgJ`v1Lh3Am z_0UmEPpQb}!jo#*DUsNGT4Tv6cCr~X*>DC>-+t?BNS%?vR+>^#XO3dW(?;Kg<8l31 zWoSjSG>@E>srPERFbhwin5o|%kmnW8E^YwthmOv{z&Lq!aV&TAVj;f+3B>#@}swH7NS9Ga#bs8k)ae$kD5-$FFZ7F2IlNI~(yr#0M%1U}% zF575I16Eo>Q8J!gJ`Ba2vU2>n9{>?Yp&pO+XtOqpi8UJfM$+@Jxj+cJZimR^4F}nUbI6R>mEIhU9L;~wHlJq_N}R56nZZWXYY+E zYzZA_CoV{3OBlWV4UX8fJ)50sNJgi8WmB@1u>rGO#inN|2(7CR}GEi);XG=^QI8xoQ<T1Q}&ac|;_}F|9j^H8!`V#5Hoeg+yW6osr@dnY>zCMKZSGpX(=)}CAkCtyku&)Qq zCB)zXn|(icpU@TPBij%}#z8+l7VSC>pd1EECDPKuC-Eb+uS8t|@=z1?;3?9N21k8? zcCmV_pBnJfELvLz8RDc7tT&bhUxr?^)7K*lw7rhmr)NN>=P;6AlClLw8 zwe30u3Uv^D8}u~PD|u{_nufm8C2_Vb>Lm|btB?>wmfluHy@)npQZ31+4xkMQ+$)B) zm(ddXT*hn_)MMz3VG!u4Ejes0J-mBt$5?h5lrhuC8Z@lbjp#gJPD%Zr1hh;wd99i3M0m#Te~K%I>ObKg$rc&1ve6J!i!Y1b0eFacLZst*8BS1nU*73_7kt#Eg{RoV-20B(i|0DW-RKh5&K_=Whk{Ve7b z`xW-PEG*L@KFgGd4~g5v)5Q6#9d7QYfEM6@@E74`*3Z;4b8Y`*r*kVT7h0}k4{)+g zfcxIha$jtvrmGxoDsWt>^DA4e^&IQT&NrRU*s^Sec8hbj^H%4XaQ7g^ zn&dnMG!DmEzJ=TN)0`#N@wUg|X8ZNd0^1*K8{p2p#qm$an~vRZzu{zjr@qXQ>qut4 z<~DO7`xo}NtUt5O+|Ar2_VM;C`%7j{2){oKEu@&Wfx04xogRIL6$^4-Ak-5?egP9f zVK51uz+&VYYX)@{TI`xEb9)MPHQHCr$>`B&UtLt&0>?%8>=D@ut`8?OU>>FGQPY6P zb%Xt@gBmq|4PA%IDYh;3V_S;`rrNuD{Pa=igi3BX^rB%c2B8%UcWtZu{owgK8ZI_0 z^ACi2k=h$cNz+mB7&$#H_Kc;ospux+)zfgvHyL4c4%$!_1-paTJODY_C}E&~FrX+}>2!1u(p20F zLb#t!LmMCI9Gn;FRCL;oKFSS)a2^@J-31L#3ffScd-3iXphu;#WlS6Rfq)BSzuemo z_RnCbJ47cVjSqaPVJsu@Bn|Wj`UbGHgc?jjUvF##L9X_Jl0fvNq@GqsppLGDOB-7I zHSNM&jfrATv^dPY)o2H5H=q&IfFBh4S}sC&5kSzzUjEe2h()0Q9De)oT?gtXW5SQ< z;IIZ1!g!1d)xXUW|Amg&i~B(fA0V~Mi@;Z;cK}?G*BO*UXxU7xp?*MHxwZuLJxWp6 zCX(~1Z_zhO@im~n(LQ{Q=3?=BI4hzP-#?Ki39i*3{7ZB)*1R<_+oL=t7((B-fLzf~ zT||AZeShJTuOWnd>NC`vMX|~AQ=g&&+7!^MfVUnp(NCZ>8$rL_LdMDePNBJ%d^yZbsBz@;(y3 zAnHlP{+JsN^*5ZWc+pUQMK8AMoMY5UJ&H(Gha2h<#A)S;`U`p><^0scs0rXv8}Xx| zb{n2|A>lNduR5_%520lBj2iWAq3*|Tq}H2-x(`vt`L0m+qGh9TK%xF@Ot>5MB<5X0 z-Gzo5d)E1qPt6u}8G`kgbN==A5Wl*=EjXEw_=iouzj5JHw z$kKz3pIXQMGPFc~)y7O+h=jb5YRX!Nh8Xj?pmv~cN1v(d?Q9B-+$@<=HbDRSRTKTy zjVXETtluaw70F6UohH{wCg-wEYBrIL!IL4XTtK%|CL$qJsX(Qegv1K)fYn?hszgEw zB&klZE_7CnJv)&Wn!KYeX!Jd*`v`TN{&726&}uIAC)AMs+TL;`zbHweEP90K6 zM3dBuQMKu8rIM=W?NLZ;WxR$}j}|DlJNBb&8c#Rb~Xrf{X;QgP0)`Hqw4ppf!2d_cwh&>a-?;vVN=e9y!9G`R%t_rql z{`UfO8UD3yAXIEa={ zT=t2&RF$?JaYdyKpm%wZ=7b9Fg(st8x-@haITh*d^r=XRI8?+g(Vj$yb%mkMN87lz zf{+|_fT7MqCqR9s>h?mNi;iRZJk2TE#Ce4}8);C7D?yzT-;^#-CYK-;(axd4;M&e7~by7@P6T{af5^XO*XCK-R%vY~=qZ6x}wYjIV$eSO6y zcO0wH%cpO@1}$YsBAc{7U`MZb?Af7YtCkHL+SHUQ-?IKv_e!MfQnK2R|Nlzr3rc!g zx?DP0I#!wp(fi&6S^f-hrPwHr6O%xa-zWS@7!r;XCJM>?m;BTGHhw+d#3zI0{#Dl_ zu5GSOu2$D1SE}<%=iScpovWR5o#UKVu+%^3ILC2BbAXERF~5B)v;GJO-hiSD4&VGzILpEpv?u|8kQr@t7ip9b%cxsfUh z3m4Gh3IA8@tWp2Aj7TNN=DSlqZPDlw6&H;B$OMipgf5Xh^~h%E(AY=?$5#3vE|!_< z+Cc1ylyj`d2eGpnRTa2_q99Vnu|+-zsuj}iDX`7zLL*FwlydAWAB5Z*?je%$iz-%Xm(m;JjX8ol^WsSzS z9j4!KZ$~kw8H#x$K8~I2HY-Lk6QMl zE4qMVD?Hkqm@`1Mx!g!Tyc0f%tfnz`8`|(h^3X!Iocw*As@IOA$WI5wpMNQSwKkrK(_*yMadpd6b}RE69~HW~xB?_P}-$WVD^Bn#af z0vfHNTw&Gdh?`@_Lj`$8)3c$Lf=DJzj+-6(8H~cj2STaO6UjjAAY|aZ2C6SZMczm{ zbh!ee&1v*hCN6iQBWb8-K&N^2vHHqTp(m1xnq;OwOwKCtevXBa6nH;8S_-|AE4n6f zBBMAKuC-0SQPp@E8XFTy=2*B5Nq-(yT||{&2GZonNRCZ&11Z*vDGVxzB%zIup)S$r zRDex}!sU?>Xa@tbU(=cyR@&Hz1clsCsQy{M5hr?4=zVpIqZ&U$eFYH*T7`7` zi&z92?#iksV&~WrL>6Z>S9(7>V&mAU@f0!pxk5N8V&&MtFoaQQ*Jw(QwqikR*w7Dj zNH&bCA_C!s7I{nvO|09R)e3=>vVHXOA5^=qp;}*rfejs;47S952hrEeKs`1>qffjk zby>M#trbKlw2tZWr}QdU16h7}2pukfOy@vjXgNQ;5m7;0MxCzKK$RUn6;@+DP-)b+ zn$0jPyaDoa_4zT++T8FdaP)%WHyCugnkwY*$v^{D7-?eFObM@t1>pe_ts3{Y6u;3q z%L}hVuZ^L&VWhd?wdmcX4$W(hIVBos^1^FyMTeRc`2uU`4Me%&LHOcVP}|;B^vNc# zU3z!`XmVpTv9acaLui3Pmg<&gs6Q>-4+Pl|*j3d^tIp$D;gdKv!v{G;Lv1LS9`1up z8x@RtFsLQV!oBb=xT$kL(i{UcYHFQ6TY1q+!aW>2-8XC*P;DDJkQeU8?EAwG%|2}0 zg^R*nP_2j36X_J-(TObxuZG>Lg4%RKOdD>(ZBO__^tA%AsNvbrv;1%nzYLKNb>1Ha zDo?l*sPd`EhdO1uW-aH2JMbckc#$Nh=-%UMS%rHOemLqsV4x@r2Ve`yr@{}ID(p4w zWry3*=@KXvM>|7J`QbKbs{++T{76l&`lN?f;?)>_KvDb0R%2?|4~q@1KtE8c*!Pv$ z&kV1CxrB^});geM=7n4FM290^!(Yts^p64v@hk<_Mn~UJi#$)ToJf zq0)AK_;@^(;X0j>!q9km_&APTh;DD|s0^)RdrMh#x#fh9g<-+G)MYpskA@9AcA*?Jtk}gz>3VT^8HggWE9Gjo(E}*jp^ETQ~R9`h-) zm?@?I0UqxW_Eaw4vcZ~e-3_+%=@9+>fb9wUfIT4nMXCgkf5tWBngaTPOC8zv&+MD5 zKUiMle&p_8e_`*TpJndg$|1(zNtt{k>1U`&L(kNEE(2wg!|aX8Ik_M(qcK=T4>#8YqQO_T_f#u zJp^|MRyv-uzij*3`Zh$EUt+lyGz*tapTzw*i*poUtnHgZe}(x)1_~u2Jm`VD=rs4;s42h zz!$-<0wlSL5~$8`c8#vRUFw%ybHAiO4^FEiW<~ zC@V$j6JOImK93xLO*UfcIp*g0!fy^o{deXS%0d}N`0jAj&#(f;8To^4n=uwVZOq@x zmcACB&C?5ldpPlluXSWow;feDY8&DvkMMVeU~u4ZgX z)U23YMwUDT)#zLQ!O;5G#v=D~;rNOA*Kj?!mwP0h=l>p#`p<^O@3!#qZT+b4@SVd| zc88&|+bwG}EHe)4r{SvkM&I1cCbK~sczC0=CvN4_oLND7xK?)<`**!D;X1?cwi^ll z1icuhdK$YDMqd>=#jI~5hAZqECWE@tdLK;JFuAnH&_Oz97)olZEj^xp1!jHB9j=Ot z4cxg%KZ}2~ok4NBB)ZVhJqmu|L_e=|m01_YnD@flCI`<=ak=|SZQe6?>w1GHygjM-V=uD(Q@Yw zidRb;YCcZS_+woos0k|R?}fuO3u{rk+LjnvUhFz<*j}|5Xcy|MYBppqaGe*=Py-FN z;>XthT-OV~e_aeSz?pm!Rr-6Ggy{66sON8>YW`P>tF*dF2WL#(OFGr?JjL)l+3-Bc z@H~)K-uoJ}?Yfns|^Jsqe40V2Wh<4Q3=G zBe)uyPipuL>Jhr$OZwF%O3x0{OJ386OM^Q#xI=^6HMmWKTZehqE&7gdz>o?(Q-1Ra z`Tzfo>7%5t;P(8J?4#^0?4@A$?qZj*b?kUH9ir@i#=Ocr&fLLV!E9mr;I{$yN%u?F zN$11w0Cq@=r0J4RN|RXlwZGTIJ>s9mYs9lb9&UqQ@tX+0-X}pkfcN3o`gXyu^j!$Q z&es9{{Zrw$_>w`t@Dcp(-XrjPdzbL1@vHfz_80AU*(3ID`_cA#d$B#k&Vdf$F56Wg zBlp{u!|%sc*m7(R>$7l||5EFKwZ%FWeiJSk?()BGc?jyOsYt?ycIv7Tk^uzYFRZ|SjATT-|`urE1z$G;p$94|W_ciio` z7UCFeaGdBk+A+g10d5b7_J7-t{N{B1#}l9fEjTZC1ln5%{OfvqT7&KM60^j`W{Hc; z5?jm?7n&tDn%@T{X zUGbSwjMY*UnNf@}OB}5&2KSlcIh${mm}izKn%qZMiicB+#470>Ev&2-h z#8GC6$=X&&no%TaDI_xrQA;71QSfGoPHi!}_Q9rou$q;%m?g4iiHu1i^@~~J&t{3= zno_$&>Mml`i8q-g-e8uv(=72?v&3y?iC38=USXDasafJBW{KyRC5Dl*!oc|TWgXQGD+(*NjuRb4PUG<^smi??iiD_qfOH0o21P#Ntws<{6{y!G(@uv#k35SG-g=>U} z5D;bxV+8?X|G&WB!(Ym;$qI_nX71SSzIpssujv5p{V0>;rFaE;D^0QaO$|+`6xFzyBvqBHsoeT z;CHOj;D=^#eC@bQ^cz-C6i3`PWV$1B;5r$)Z#4l0;Wp%EM&OsL(x6W`EO%Tc{8AOv zTUUVsb;o7Gk5xgBj;}zWyA7G{NE2@K`7#{M+mM?XnE}@p(H##I;5#m}QO$&y--gVr zNCR>{FB<=)KAM-JzsZQy!*xd=%J%mg{xVv~0Bh%qxuqVU2lUy+T9pS;Ey^tf*Q1!a9aXpwyNVbvc zP3}wGP>%J!R%LW&Y%EohUSVQlhBkJO;M55}^F-XQtE)mlnPpGeP2f0nM4!Vuqop;RWNLwx@a#Am>w ze>p_;3y5<-8;~i|!bie>;a>P9z)eD@umFAw5aK<8C4WDEFMk!knP0`v=PMzm|Ie=X zUHe>jxh{j4{%x+=5YImaZ0PTR{rpzvh0b+gH=pjzb2=QKJ6>|^a%^*KadbIa91|UG z2V;NF{OK*=lWLY?Ad`>mlo-*6ZLm15dQh zhVCc+B{-1aK!O7a4*VbHKuY-f*G{riOq!i#9nL*C((p|0lv%UycZbh;aJrphb5Ra_ z&VxOx`uz~?Ezs{hJllK3kq-G&pky}6Pd^^wX_3sg+}bZDFL2FAc4#aVn%R8n%uQYCmp?WcGBEd2cSAAo ziysWlTv0jGe`EUA(-x|E1&1LI&q&iXgH1b5NV(*jb!vr4L%8?pKi-^Cc#`{~t<{i` zkNW7X!hv83+ncUm*R-PyvMXT-xhNY#d&E{j(=}_Fc2u}8x-<`Eqkclf8(f^UdUZ6m7$vg{nmxbu7u=GBsAs7851Vr%ScgRyeNImnHsgR2~ z0LMMDMzXHX$eWOP<}YK^au7)*T5E=DdPZSi%9)#b?G&6mpjL(9)-O(*HT(I@Gs7vU z7|MVf$kFD~=X~o~yeH+1?PV%|(wAX|d#}8Aw0&jj8JE_p{eVykm~#y$&u!ZO=ae%p ztwTjng*hvfj5$sF?@8IRcad5bcL1})?&2Jjkg;Xgdc+Pi;v7%32MwK@n+^n0x14Q( zOuUSka+%_2r`u!bxAV8oY<+c#lvik%w2R zwGQ!6Ybeyz`BBsU+fyQU6sQ>^H{v0uA8g6+7o|n63_=E;j?}$M=+v1jmdsqSG%a$8 z7aGIwI$WzIlb=2-#k2Ui)X3>4sN(|31b2U?ck0YXMy5u#bf6r}i}1rZr(xX1O)saU zMmD4BbUEG)7dMQ%C?&E9mJ*q$vqi4zJrZ*?2MIvb0aUtg(rA*p;V?0Z|so|etk5am@?OohbQ;=)gzcnTNGq2V* zsI+|?WMGCuXdCrid#7nfY39>akb@T<1g?SK$6Q0+((O{yj`GyKZEAfG zxJG$>S2XQtP1(z$PNUT@B#_bcv^MR()ct5H6u^4|$j^9{KyD~BL%OJG|J^COSExhH znTAU>be`U{|K8Ny)6`}l#D+HMbIkaZCGkgS7-*0Y-qoRfAZ>KVy7)I5`x<2^jzd-&tjJC9d0AOZ^>ruWMG zyhrlW?p&s}0wK0Y``!&#jJBVedIwq`%92u6j` YbT}OHVZQF?hlE^OG}IR;JztJ2%OII8M0znavw#ZfH!qEe|rtC^wxz+Mn4xcIMW} zX*(O#Q6|?Zt;j;DEZv*36D>kKHObky5n0HPlWt7inGNZapSshn_6lMH;c1llo$}OI({^U6y@Ci=q*tCVe#)Q?FaBb^ru&Jd_Oi!HnFC z)3(D$U17`C>&aNs4=&0m+?l!^tv@_?2i=`n z9^uc@$I`pftHK`s7wIozhnOpzE!_)V{Lc%oNw@NUldj_*l!in>xh-TV&e zLg`F#xwJ-bNZtI$LYves9VfL&v!tW=Z^T7XvN%he&c7o$g-axwzmPve_(A+Y_+0!R zZVgn5ZwL>I2gH5CO~N(eWBfsgKX9_h!Y>Lw$UiGA5bqQUg+}oPVY0YQI7YlgJcmD3 z^hwo1vQ*69A$f&tDN9WIKYZv-RG;8Lf&&Q-Bsh@ZK!O7a4kS2`;6Q={|8)+4)W?GI z7!)=L12r+IkTCX^8x+V0LmFW3PK<%N*Sig2pxy=JDZ)UR3qm8tu9^gb9l}6e3wlL_ zfqoVgBnSh2EXe5y0|hK-4lyPyfT-381NACIZblfWQbBS>80bzx1Bw!iU7Z425t92Z=vxp5DoPNR5tfm4H7Kz$=9&(wZiIop z5oAe(fo>7RO@x6m5tI%H1LYwoO$aszG>QlV^&rT8IIVLtC`WMG^h2OCMp*jgZJ^vE zSUbqI1X~F)FA)ZsJJ53wYz}p(31Og=gCLWb?qCb}6CezfZV=BAr_D+M1t?DQPKC&c z2m>7CnA=*&RzO|XloFdiGI#2`!{N&_7jXvz=;Fh+V>3pODH^hk0mLO^kpvw|R7a;9OV z_3Rv^#$rGXl-@>=h3S|Wv^?p{amtnVr5}%x4OgTu!-)7;+5-py6;0}1j5I%)x|<*y zQ+E+$Z0dG|fPy6%egzF78OeBnpg~DS8g~X%CdpX@*_n(KAPi_kk~1-~q;TZ<2myV^ z$c+dA^+wW51bHy&0M0tNC}{{IS4~dBeFp7>FaxK|`Ho+YkhHB=JNF<2^b8y>1&Rgk zDUvDiMu`^+z0!@+7O6zKR5*vfR}{sm z|MjgXQA2_Q2@WJUkl;Xq0|^c!IFR5#f&&Q-{P*I3on=_(9z|OK3Ifm;prrKU6=eZP z(~7bHBy3O?pv=@=pesN~QY)wm5F*R~O#wm*Hi4o5A#$stCjc=P^aLm=ITO?b7->+n z1Rz?2mH;JH%m>RS$S~D(V5K00v}b9ju}o01+H?1E^g3GDS52+5k`upro7?fFp!E0Ez*e;sLz? zLYQ(zEdcVrq80!EY5|nVuZL8Gq_-(b0pKbq1yIru4>|#ajNAw+0feOPRWt%1$SWEF zm<~lF0HVL55x^Lj$Qd^60YxDIIsi}zpd{xWz*Pjg%rel*kYHmOX2?af0WcjyE|lQi zLX-i(CZY@gW)fup@RBG4fRzP@abbbz0)QcMD@w?jMpOa72BHdp-Vs#*j4!yjHV%ucSuFe^D5 zLpRX^z$6nb0IVRQ1pr}ksA?h(g8&Y;N3=)0Kj{q1b}r*lmIYyLbA*xn8~pRU&$ZX}FnIRwa9!@2Al(G_1@eWX`6qZ=6vI&j>b`joonp z*-2!xS-2#D9i~Ap6<9Z`-e&UdR5Hok6z?{k&0vZDF31#09(EZ9VIbNFocc9*OB4qo zDT;%%62(E5MD;57LC)0n00danU+A9VvJ7H~QV!gdL!*=~U|(YpceFzR@ip24NTx|_ zK2*~e=qKF=u}seh5YI?UK!RBTVw%KyP}8IYNOa0GafSxT2-S}{0|Ky)7Q|o;8$oi> zm!vLaF^$DN0TD=79>l{Kzd%xs6)Jx!ii5q4o530 z*o1ylCw93*ZjEN;tcao0P_<;xIi6S(>1~>Bq~oHv8|llVZKXr#OtonGvS^KI4`@oJ z?nUXiWa{o{$<$r3lBwG@Ufj0qeYXm5Q^W*WC(q!wx0|?RN!V5_K!SY zp=l3{+^DHN>7{7xNe5!JCk;i(lT;psLc)w_D!)F7^%71hEx^TjwHF+&i7=3RO4Axs z9&L?**FYT$1HY@}h0AjACMuONC{m}gDG~es$rS&i@VN9cME5@;+$lW{^81%yVLy-G zE}Y0;CJYG0(pJ$aZQ$>duH_$qi%1^iK1Dqbnnh}Xj}+7*bm33K_U#rwn_ zkpi!S)A$48BM@I;r}&ikJop40g17@Sq!D5>#3LLfWeAy49)GLk6GliA#4-HI(k{>$ z{O~{P`;r(u^FKryQ4IVLRYYL zvGPNd55>w4Q9VF!f#@KNhwA+Q-UQY8AAW62asJiq9e zo&QHE&i^|~73cpQ<%;wFj#kC_fB&V#;13Zbi1R;$j35?&2oXUn{tyvDasL1CdDZ#9 zMRorFSaJS8l21(j5Waz!{2^R};`|T68Hn>g1Y;o1{~H<==l`vf73Y8HUd8!8=|;u* zf7C~c^Z%6Z73cq{uM)FA#6loue~5fQ%>EGRKz06qRk8c$UQF!%5VwHX{UJ^PvHL?@ z0%G@vI0VG*4*>^=^FKrwAkO~~Qb2M3KX#Jh{J(Oo;{3m>ju`(T764-f?|-=e|NjB^ C+)$|i diff --git a/tests/test_api.py b/tests/test_api.py index f2314853..33b115e9 100644 --- a/tests/test_api.py +++ b/tests/test_api.py @@ -15,10 +15,6 @@ from os.path import dirname from ensembl.production.metadata.api import * -# Should be removed after the travis CI works properly. -# Many of the tests will fail on sqlite. -# DB_NAME = 'sqlite:///' + dirname(__file__) + '/metadata_20202.sqlite' -# TX_NAME = 'sqlite:/// + dirname(__file__) + '/ncbi_taxonomy.sqlite' DB_NAME = 'mysql://root:@127.0.0.1:3306/ensembl_metadata_2020' TX_NAME = 'mysql://root:@127.0.0.1:3306/ncbi_taxonomy'