From 7e1e9e82843b026ae7afb06a4452f10e89514487 Mon Sep 17 00:00:00 2001 From: AnthonyRonning Date: Wed, 15 Jan 2020 09:19:29 -0600 Subject: [PATCH 01/22] Example for v3, update cert-schema, issuing v3 w/ old MerkleProof --- .../verifiable-credential.json | 17 +++++++++++++++++ requirements.txt | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 examples/data-testnet/unsigned_certificates/verifiable-credential.json diff --git a/examples/data-testnet/unsigned_certificates/verifiable-credential.json b/examples/data-testnet/unsigned_certificates/verifiable-credential.json new file mode 100644 index 00000000..d3178aea --- /dev/null +++ b/examples/data-testnet/unsigned_certificates/verifiable-credential.json @@ -0,0 +1,17 @@ +{ + "@context": [ + "https://www.w3.org/2018/credentials/v1", + "https://www.blockcerts.org/schema/3.0-alpha/context.json", + "https://www.w3.org/2018/credentials/examples/v1" + ], + "id": "urn:uuid:bbba8553-8ec1-445f-82c9-a57251dd731c", + "type": ["VerifiableCredential"], + "issuer": "did:example:23adb1f712ebc6f1c276eba4dfa", + "issuanceDate": "2010-01-01T19:73:24Z", + "credentialSubject": { + "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", + "alumniOf": { + "id": "did:example:c276e12ec21ebfeb1f712ebc6f1" + } + } +} \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index e37c7d3d..b8ab2269 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ cert-core>=2.1.9 -cert-schema>=2.1.5 +cert-schema>=3.0.0a1 chainpoint>=0.0.2 configargparse==0.12.0 glob2==0.6 From e7051ca3c4b251bfb1c0eb891ad41ad53052e713 Mon Sep 17 00:00:00 2001 From: AnthonyRonning Date: Tue, 21 Jan 2020 12:33:59 -0600 Subject: [PATCH 02/22] Integrated MerkleProof2019 into v3 issuing --- .../blockchain_handlers/bitcoin/__init__.py | 12 ++- .../blockchain_handlers/ethereum/__init__.py | 7 +- cert_issuer/certificate_handlers.py | 8 +- cert_issuer/helpers.py | 18 ++++ cert_issuer/merkle_tree_generator.py | 33 +++++-- cert_issuer/models.py | 3 +- requirements.txt | 3 +- tests/test_certificate_handler.py | 92 ++++++------------- tests/test_merkle_tree_generator.py | 79 +++++++++++++--- 9 files changed, 157 insertions(+), 98 deletions(-) diff --git a/cert_issuer/blockchain_handlers/bitcoin/__init__.py b/cert_issuer/blockchain_handlers/bitcoin/__init__.py index 4280bde3..8b34a87b 100644 --- a/cert_issuer/blockchain_handlers/bitcoin/__init__.py +++ b/cert_issuer/blockchain_handlers/bitcoin/__init__.py @@ -7,7 +7,7 @@ from cert_issuer.blockchain_handlers.bitcoin.connectors import BitcoinServiceProviderConnector, MockServiceProviderConnector from cert_issuer.blockchain_handlers.bitcoin.signer import BitcoinSigner from cert_issuer.blockchain_handlers.bitcoin.transaction_handlers import BitcoinTransactionHandler -from cert_issuer.certificate_handlers import CertificateBatchHandler, CertificateV2Handler, CertificateBatchWebHandler, CertificateWebV2Handler +from cert_issuer.certificate_handlers import CertificateBatchHandler, CertificateV3Handler, CertificateBatchWebHandler, CertificateWebV3Handler from cert_issuer.merkle_tree_generator import MerkleTreeGenerator from cert_issuer.models import MockTransactionHandler from cert_issuer.signer import FileSecretManager @@ -50,12 +50,14 @@ def instantiate_blockchain_handlers(app_config, file_mode=True): if file_mode: certificate_batch_handler = CertificateBatchHandler(secret_manager=secret_manager, - certificate_handler=CertificateV2Handler(), - merkle_tree=MerkleTreeGenerator()) + certificate_handler=CertificateV3Handler(), + merkle_tree=MerkleTreeGenerator(), + config=app_config) else: certificate_batch_handler = CertificateBatchWebHandler(secret_manager=secret_manager, - certificate_handler=CertificateWebV2Handler(), - merkle_tree=MerkleTreeGenerator()) + certificate_handler=CertificateWebV3Handler(), + merkle_tree=MerkleTreeGenerator(), + config=app_config) if chain == Chain.mockchain: transaction_handler = MockTransactionHandler() connector = MockServiceProviderConnector() diff --git a/cert_issuer/blockchain_handlers/ethereum/__init__.py b/cert_issuer/blockchain_handlers/ethereum/__init__.py index c2b37ca3..6fbac259 100644 --- a/cert_issuer/blockchain_handlers/ethereum/__init__.py +++ b/cert_issuer/blockchain_handlers/ethereum/__init__.py @@ -4,7 +4,7 @@ from cert_core import BlockchainType from cert_core import Chain, UnknownChainError -from cert_issuer.certificate_handlers import CertificateBatchHandler, CertificateV2Handler +from cert_issuer.certificate_handlers import CertificateBatchHandler, CertificateV3Handler from cert_issuer.blockchain_handlers.ethereum.connectors import EthereumServiceProviderConnector from cert_issuer.blockchain_handlers.ethereum.signer import EthereumSigner from cert_issuer.blockchain_handlers.ethereum.transaction_handlers import EthereumTransactionHandler @@ -54,8 +54,9 @@ def instantiate_blockchain_handlers(app_config): chain = app_config.chain secret_manager = initialize_signer(app_config) certificate_batch_handler = CertificateBatchHandler(secret_manager=secret_manager, - certificate_handler=CertificateV2Handler(), - merkle_tree=MerkleTreeGenerator()) + certificate_handler=CertificateV3Handler(), + merkle_tree=MerkleTreeGenerator(), + config=app_config) if chain == Chain.mockchain: transaction_handler = MockTransactionHandler() # ethereum chains diff --git a/cert_issuer/certificate_handlers.py b/cert_issuer/certificate_handlers.py index c1f050d0..33f5f8fb 100644 --- a/cert_issuer/certificate_handlers.py +++ b/cert_issuer/certificate_handlers.py @@ -9,7 +9,7 @@ from cert_issuer.signer import FinalizableSigner -class CertificateV2Handler(CertificateHandler): +class CertificateV3Handler(CertificateHandler): def get_byte_array_to_issue(self, certificate_metadata): certificate_json = self._get_certificate_to_issue(certificate_metadata) normalized = normalize_jsonld(certificate_json, detect_unmapped_fields=False) @@ -32,7 +32,7 @@ def _get_certificate_to_issue(self, certificate_metadata): certificate_json = json.load(unsigned_cert_file) return certificate_json -class CertificateWebV2Handler(CertificateHandler): +class CertificateWebV3Handler(CertificateHandler): def get_byte_array_to_issue(self, certificate_json): normalized = normalize_jsonld(certificate_json, detect_unmapped_fields=False) return normalized.encode('utf-8') @@ -49,7 +49,7 @@ def add_proof(self, certificate_json, merkle_proof): class CertificateBatchWebHandler(BatchHandler): def finish_batch(self, tx_id, chain): self.proof = [] - proof_generator = self.merkle_tree.get_proof_generator(tx_id, chain) + proof_generator = self.merkle_tree.get_proof_generator(tx_id, self.config.issuing_address, chain) for metadata in self.certificates_to_issue: proof = next(proof_generator) self.proof.append(self.certificate_handler.add_proof(metadata, proof)) @@ -120,7 +120,7 @@ def get_certificate_generator(self): yield data_to_issue def finish_batch(self, tx_id, chain): - proof_generator = self.merkle_tree.get_proof_generator(tx_id, chain) + proof_generator = self.merkle_tree.get_proof_generator(tx_id, self.config.issuing_address, chain) for _, metadata in self.certificates_to_issue.items(): proof = next(proof_generator) self.certificate_handler.add_proof(metadata, proof) diff --git a/cert_issuer/helpers.py b/cert_issuer/helpers.py index c953e7ef..91718b4b 100644 --- a/cert_issuer/helpers.py +++ b/cert_issuer/helpers.py @@ -100,3 +100,21 @@ def to_pycoin_chain(chain): return 'BTC' else: raise UnknownChainError(chain.name) + +def tx_to_blink(chain, tx_id): + blink = 'blink:' + if chain == Chain.bitcoin_regtest: + blink += 'btc:regtest:' + elif chain == Chain.bitcoin_testnet: + blink += 'btc:testnet:' + elif chain == Chain.bitcoin_mainnet: + blink += 'btc:mainnet:' + elif chain == Chain.ethereum_ropsten: + blink += 'eth:ropsten:' + elif chain == Chain.ethereum_mainnet: + blink += 'eth:mainnet:' + elif chain == Chain.mockchain: + blink += 'mocknet:' + else: + raise UnknownChainError(chain.name) + return blink + tx_id \ No newline at end of file diff --git a/cert_issuer/merkle_tree_generator.py b/cert_issuer/merkle_tree_generator.py index 6d10815e..9d10e9de 100644 --- a/cert_issuer/merkle_tree_generator.py +++ b/cert_issuer/merkle_tree_generator.py @@ -1,8 +1,12 @@ import hashlib +import logging +from datetime import datetime from cert_core import Chain from chainpoint.chainpoint import MerkleTools from pycoin.serialize import h2b +from lds_merkle_proof_2019.merkle_proof_2019 import MerkleProof2019 +from cert_issuer import helpers def hash_byte_array(data): @@ -40,7 +44,7 @@ def get_blockchain_data(self): merkle_root = self.tree.get_merkle_root() return h2b(ensure_string(merkle_root)) - def get_proof_generator(self, tx_id, chain=Chain.bitcoin_mainnet): + def get_proof_generator(self, tx_id, issuing_address, chain=Chain.bitcoin_mainnet): """ Returns a generator (1-time iterator) of proofs in insertion order. @@ -59,16 +63,25 @@ def get_proof_generator(self, tx_id, chain=Chain.bitcoin_mainnet): dict2[key] = ensure_string(value) proof2.append(dict2) target_hash = ensure_string(self.tree.get_leaf(index)) + mp2019 = MerkleProof2019() + merkle_json = { + "path": proof2, + "merkleRoot": root, + "targetHash": target_hash, + "anchors": [ + helpers.tx_to_blink(chain, tx_id) + ] + } + logging.info('merkle_json: %s', str(merkle_json)) + + proof_value = mp2019.encode(merkle_json) merkle_proof = { - "type": ['MerkleProof2017', 'Extension'], - "merkleRoot": root, - "targetHash": target_hash, - "proof": proof2, - "anchors": [{ - "sourceId": to_source_id(tx_id, chain), - "type": chain.blockchain_type.external_display_value, - "chain": chain.external_display_value - }]} + "type": "MerkleProof2019", + "created": datetime.now().isoformat(), + "proofValue": proof_value.decode('utf8'), + "proofPurpose": "assertionMethod", + "verificationMethod": "ecdsa-koblitz-pubkey:" + issuing_address + } yield merkle_proof diff --git a/cert_issuer/models.py b/cert_issuer/models.py index ce6279a6..90505d9e 100644 --- a/cert_issuer/models.py +++ b/cert_issuer/models.py @@ -3,10 +3,11 @@ from cert_issuer.config import ESTIMATE_NUM_INPUTS class BatchHandler(object): - def __init__(self, secret_manager, certificate_handler, merkle_tree): + def __init__(self, secret_manager, certificate_handler, merkle_tree, config): self.certificate_handler = certificate_handler self.secret_manager = secret_manager self.merkle_tree = merkle_tree + self.config = config @abstractmethod def pre_batch_actions(self, config): diff --git a/requirements.txt b/requirements.txt index b8ab2269..6edf6a0c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -10,4 +10,5 @@ pyld>=1.0.3 pysha3>=1.0.2 python-bitcoinlib>=0.10.1 tox>=3.0.0 -jsonschema<3.0.0 \ No newline at end of file +jsonschema<3.0.0 +lds-merkle-proof-2019>=0.0.1 \ No newline at end of file diff --git a/tests/test_certificate_handler.py b/tests/test_certificate_handler.py index 4975413c..49b19cae 100644 --- a/tests/test_certificate_handler.py +++ b/tests/test_certificate_handler.py @@ -6,63 +6,22 @@ from pycoin.serialize import b2h from mock import patch, mock_open -from cert_issuer.certificate_handlers import CertificateWebV2Handler, CertificateV2Handler, CertificateBatchHandler, CertificateHandler, CertificateBatchWebHandler +from cert_issuer.certificate_handlers import CertificateWebV3Handler, CertificateV3Handler, CertificateBatchHandler, CertificateHandler, CertificateBatchWebHandler from cert_issuer.merkle_tree_generator import MerkleTreeGenerator from cert_issuer import helpers +from cert_core import Chain from mock import ANY class TestCertificateHandler(unittest.TestCase): def _proof_helper(self, chain): proof = { - 'merkleRoot': '0932f1d2e98219f7d7452801e2b64ebd9e5c005539db12d9b1ddabe7834d9044', - 'type': ['MerkleProof2017', 'Extension'], - 'targetHash': ANY, - 'anchors': [ - { - 'sourceId': ANY, - 'type': chain.blockchain_type.external_display_value, - 'chain': chain.external_display_value - } - ], - 'proof': [ - {'right': 'd4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35'}, - {'right': '4e07408562bedb8b60ce05c1decfe3ad16b72230967de01f640b7e4729b49fce'} - ], + 'type': 'MerkleProof2019', + 'created': ANY, + 'proofValue': ANY, + 'proofPurpose': 'assertionMethod', + 'verificationMethod': ANY } - - proof_1 = { - 'merkleRoot': '0932f1d2e98219f7d7452801e2b64ebd9e5c005539db12d9b1ddabe7834d9044', - 'type': ['MerkleProof2017', 'Extension'], - 'targetHash': ANY, - 'anchors': [ - { - 'sourceId': ANY, - 'type': chain.blockchain_type.external_display_value, - 'chain': chain.external_display_value - } - ], - 'proof': [ - {'left': '6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b'}, - {'right': '4e07408562bedb8b60ce05c1decfe3ad16b72230967de01f640b7e4729b49fce'} - ] - } - - proof_2 = { - 'merkleRoot': '0932f1d2e98219f7d7452801e2b64ebd9e5c005539db12d9b1ddabe7834d9044', - 'type': ['MerkleProof2017', 'Extension'], - 'targetHash': ANY, - 'anchors': [ - { - 'sourceId': ANY, - 'type': chain.blockchain_type.external_display_value, - 'chain': chain.external_display_value - } - ], - 'proof': [ - {'left': '4295f72eeb1e3507b8461e240e3b8d18c1e7bd2f1122b11fc9ec40a65894031a'} - ] - } - return proof, proof_1, proof_2 + return proof def _helper_mock_call(self, *args): helper_mock = mock.MagicMock() @@ -83,10 +42,14 @@ def _get_certificate_batch_web_handler(self): certificates_to_issue['2'] = mock.Mock() certificates_to_issue['3'] = mock.Mock() + config = mock.Mock() + config.issuing_address = "123" + handler = CertificateBatchWebHandler( secret_manager=secret_manager, certificate_handler=DummyCertificateHandler(), - merkle_tree=MerkleTreeGenerator()) + merkle_tree=MerkleTreeGenerator(), + config=config) return handler, certificates_to_issue @@ -97,10 +60,14 @@ def _get_certificate_batch_handler(self): certificates_to_issue['2'] = mock.Mock() certificates_to_issue['3'] = mock.Mock() + config = mock.Mock() + config.issuing_address = "123" + handler = CertificateBatchHandler( secret_manager=secret_manager, certificate_handler=DummyCertificateHandler(), - merkle_tree=MerkleTreeGenerator()) + merkle_tree=MerkleTreeGenerator(), + config=config) return handler, certificates_to_issue @@ -126,8 +93,8 @@ def test_batch_web_handler_finish_batch(self): certificate_batch_handler.set_certificates_in_batch(certificates_to_issue) result = certificate_batch_handler.prepare_batch() - chain = mock.Mock() - proof, proof_1, proof_2 = self._proof_helper(chain) + chain = Chain.bitcoin_mainnet + proof = self._proof_helper(chain) with patch.object(DummyCertificateHandler, 'add_proof', return_value= {"cert": "cert"} ) as mock_method: result = certificate_batch_handler.finish_batch( @@ -135,8 +102,6 @@ def test_batch_web_handler_finish_batch(self): ) self.assertEqual(certificate_batch_handler.proof, [{'cert': 'cert'}, {'cert': 'cert'}, {'cert': 'cert'}]) mock_method.assert_any_call(ANY, proof) - mock_method.assert_any_call(ANY, proof_1) - mock_method.assert_any_call(ANY, proof_2) def test_batch_handler_finish_batch(self): certificate_batch_handler, certificates_to_issue = self._get_certificate_batch_handler() @@ -144,8 +109,11 @@ def test_batch_handler_finish_batch(self): certificate_batch_handler.set_certificates_in_batch(certificates_to_issue) result = certificate_batch_handler.prepare_batch() - chain = mock.Mock() - proof, proof_1, proof_2 = self._proof_helper(chain) + chain = Chain.bitcoin_mainnet + proof = self._proof_helper(chain) + + config = mock.Mock() + config.issuing_address = "123" with patch.object(DummyCertificateHandler, 'add_proof') as mock_method: result = certificate_batch_handler.finish_batch( @@ -153,8 +121,6 @@ def test_batch_handler_finish_batch(self): ) mock_method.assert_any_call(ANY, proof) - mock_method.assert_any_call(ANY, proof_1) - mock_method.assert_any_call(ANY, proof_2) def test_pre_batch_actions(self): self.directory_count = 1 @@ -196,7 +162,7 @@ def test_pre_batch_actions_empty_directories(self): @mock.patch("builtins.open", create=True) def test_add_proof(self,mock_open): - handler = CertificateV2Handler() + handler = CertificateV3Handler() cert_to_issue = {'kek':'kek'} proof = {'a': 'merkel'} @@ -207,7 +173,7 @@ def test_add_proof(self,mock_open): metadata.blockchain_cert_file_name = 'file_path.nfo' with patch.object( - CertificateV2Handler, '_get_certificate_to_issue', return_value=cert_to_issue) as mock_method: + CertificateV3Handler, '_get_certificate_to_issue', return_value=cert_to_issue) as mock_method: handler.add_proof(metadata, proof) mock_open.assert_any_call('file_path.nfo','w') @@ -216,7 +182,7 @@ def test_add_proof(self,mock_open): assert file_call in call_strings def test_web_add_proof(self): - handler = CertificateWebV2Handler() + handler = CertificateWebV3Handler() proof = {'a': 'merkel'} chain = mock.Mock() certificate_json = {'kek': 'kek'} @@ -226,6 +192,8 @@ def test_web_add_proof(self): class DummyCertificateHandler(CertificateHandler): def __init__(self): + self.config = mock.Mock() + self.config.issuing_address = "123" self.counter = 0 def validate_certificate(self, certificate_metadata): diff --git a/tests/test_merkle_tree_generator.py b/tests/test_merkle_tree_generator.py index 20bd788d..1438f29c 100644 --- a/tests/test_merkle_tree_generator.py +++ b/tests/test_merkle_tree_generator.py @@ -4,6 +4,8 @@ from pycoin.serialize import b2h from cert_issuer.merkle_tree_generator import MerkleTreeGenerator +from cert_issuer import helpers +from lds_merkle_proof_2019.merkle_proof_2019 import MerkleProof2019 def get_test_data_generator(): @@ -29,36 +31,89 @@ def test_proofs_bitcoin_testnet(self): self.do_test_signature(Chain.bitcoin_testnet, 'bitcoinTestnet', 'BTCOpReturn') def test_proofs_bitcoin_regtest(self): - self.do_test_signature(Chain.bitcoin_regtest, 'bitcoinRegtest', 'BTCOpReturn') + ''' TODO merkle proof 2019 library with regtest ''' + # self.do_test_signature(Chain.bitcoin_regtest, 'bitcoinRegtest', 'BTCOpReturn') def test_proofs_mock(self): - self.do_test_signature(Chain.mockchain, 'mockchain', 'Mock') + ''' TODO merkle proof 2019 library with mocknet ''' + # self.do_test_signature(Chain.mockchain, 'mockchain', 'Mock') def do_test_signature(self, chain, display_chain, type): merkle_tree_generator = MerkleTreeGenerator() merkle_tree_generator.populate(get_test_data_generator()) _ = merkle_tree_generator.get_blockchain_data() gen = merkle_tree_generator.get_proof_generator( - '8087c03e7b7bc9ca7b355de9d9d8165cc5c76307f337f0deb8a204d002c8e582', chain) + '8087c03e7b7bc9ca7b355de9d9d8165cc5c76307f337f0deb8a204d002c8e582', '123', chain) p1 = next(gen) _ = next(gen) p3 = next(gen) - p1_expected = {'type': ['MerkleProof2017', 'Extension'], - 'merkleRoot': '0932f1d2e98219f7d7452801e2b64ebd9e5c005539db12d9b1ddabe7834d9044', - 'targetHash': '6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b', - 'proof': [{'right': 'd4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35'}, - {'right': '4e07408562bedb8b60ce05c1decfe3ad16b72230967de01f640b7e4729b49fce'}], - 'anchors': [ - {'sourceId': '8087c03e7b7bc9ca7b355de9d9d8165cc5c76307f337f0deb8a204d002c8e582', + p1_expected_old = { + 'type': ['MerkleProof2017', 'Extension'], + 'merkleRoot': '0932f1d2e98219f7d7452801e2b64ebd9e5c005539db12d9b1ddabe7834d9044', + 'targetHash': '6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b', + 'proof': [ + {'right': 'd4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35'}, + {'right': '4e07408562bedb8b60ce05c1decfe3ad16b72230967de01f640b7e4729b49fce'} + ], + 'anchors': [ + { + 'sourceId': '8087c03e7b7bc9ca7b355de9d9d8165cc5c76307f337f0deb8a204d002c8e582', 'type': type, - 'chain': display_chain}]} - p3_expected = {'type': ['MerkleProof2017', 'Extension'], + 'chain': display_chain + } + ] + } + + p1_json_proof = { + 'path': [ + {'right': 'd4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35'}, + {'right': '4e07408562bedb8b60ce05c1decfe3ad16b72230967de01f640b7e4729b49fce'} + ], + 'merkleRoot': '0932f1d2e98219f7d7452801e2b64ebd9e5c005539db12d9b1ddabe7834d9044', + 'targetHash': '6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b', + 'anchors': [ + helpers.tx_to_blink(chain, '8087c03e7b7bc9ca7b355de9d9d8165cc5c76307f337f0deb8a204d002c8e582') + ] + } + mp2019 = MerkleProof2019() + proof_value = mp2019.encode(p1_json_proof) + + p1_expected = { + "type": "MerkleProof2019", + "created": p1['created'], + "proofValue": proof_value.decode('utf8'), + "proofPurpose": "assertionMethod", + "verificationMethod": "ecdsa-koblitz-pubkey:123" + } + + p3_expected_old = {'type': ['MerkleProof2017', 'Extension'], 'merkleRoot': '0932f1d2e98219f7d7452801e2b64ebd9e5c005539db12d9b1ddabe7834d9044', 'targetHash': '4e07408562bedb8b60ce05c1decfe3ad16b72230967de01f640b7e4729b49fce', 'proof': [{'left': '4295f72eeb1e3507b8461e240e3b8d18c1e7bd2f1122b11fc9ec40a65894031a'}], 'anchors': [{'sourceId': '8087c03e7b7bc9ca7b355de9d9d8165cc5c76307f337f0deb8a204d002c8e582', 'type': type, 'chain': display_chain}]} + p3_json_proof = { + 'path': [ + {'left': '4295f72eeb1e3507b8461e240e3b8d18c1e7bd2f1122b11fc9ec40a65894031a'} + ], + 'merkleRoot': '0932f1d2e98219f7d7452801e2b64ebd9e5c005539db12d9b1ddabe7834d9044', + 'targetHash': '4e07408562bedb8b60ce05c1decfe3ad16b72230967de01f640b7e4729b49fce', + 'anchors': [ + helpers.tx_to_blink(chain, '8087c03e7b7bc9ca7b355de9d9d8165cc5c76307f337f0deb8a204d002c8e582') + ] + } + mp2019 = MerkleProof2019() + proof_value = mp2019.encode(p3_json_proof) + + p3_expected = { + "type": "MerkleProof2019", + "created": p3['created'], + "proofValue": proof_value.decode('utf8'), + "proofPurpose": "assertionMethod", + "verificationMethod": "ecdsa-koblitz-pubkey:123" + } + self.assertEqual(p1, p1_expected) self.assertEqual(p3, p3_expected) From 2a3adb4d157924b1ea3124e24f0c893960663301 Mon Sep 17 00:00:00 2001 From: AnthonyRonning Date: Thu, 23 Jan 2020 11:46:08 -0600 Subject: [PATCH 03/22] #164 - Updated MerkleProof2019 to support mocknet & bitcoin regtest --- cert_issuer/__init__.py | 2 +- cert_issuer/merkle_tree_generator.py | 2 +- requirements.txt | 2 +- tests/test_merkle_tree_generator.py | 29 ++-------------------------- tox.ini | 1 + 5 files changed, 6 insertions(+), 30 deletions(-) diff --git a/cert_issuer/__init__.py b/cert_issuer/__init__.py index b03a62d0..6e648d3c 100644 --- a/cert_issuer/__init__.py +++ b/cert_issuer/__init__.py @@ -1 +1 @@ -__version__ = '2.0.20' +__version__ = '3.0.0a1' diff --git a/cert_issuer/merkle_tree_generator.py b/cert_issuer/merkle_tree_generator.py index 9d10e9de..08f02078 100644 --- a/cert_issuer/merkle_tree_generator.py +++ b/cert_issuer/merkle_tree_generator.py @@ -72,7 +72,7 @@ def get_proof_generator(self, tx_id, issuing_address, chain=Chain.bitcoin_mainne helpers.tx_to_blink(chain, tx_id) ] } - logging.info('merkle_json: %s', str(merkle_json)) + logging.debug('merkle_json: %s', str(merkle_json)) proof_value = mp2019.encode(merkle_json) merkle_proof = { diff --git a/requirements.txt b/requirements.txt index 6edf6a0c..a6cf0206 100644 --- a/requirements.txt +++ b/requirements.txt @@ -11,4 +11,4 @@ pysha3>=1.0.2 python-bitcoinlib>=0.10.1 tox>=3.0.0 jsonschema<3.0.0 -lds-merkle-proof-2019>=0.0.1 \ No newline at end of file +lds-merkle-proof-2019>=0.0.2 \ No newline at end of file diff --git a/tests/test_merkle_tree_generator.py b/tests/test_merkle_tree_generator.py index 1438f29c..88648abd 100644 --- a/tests/test_merkle_tree_generator.py +++ b/tests/test_merkle_tree_generator.py @@ -31,12 +31,10 @@ def test_proofs_bitcoin_testnet(self): self.do_test_signature(Chain.bitcoin_testnet, 'bitcoinTestnet', 'BTCOpReturn') def test_proofs_bitcoin_regtest(self): - ''' TODO merkle proof 2019 library with regtest ''' - # self.do_test_signature(Chain.bitcoin_regtest, 'bitcoinRegtest', 'BTCOpReturn') + self.do_test_signature(Chain.bitcoin_regtest, 'bitcoinRegtest', 'BTCOpReturn') def test_proofs_mock(self): - ''' TODO merkle proof 2019 library with mocknet ''' - # self.do_test_signature(Chain.mockchain, 'mockchain', 'Mock') + self.do_test_signature(Chain.mockchain, 'mockchain', 'Mock') def do_test_signature(self, chain, display_chain, type): merkle_tree_generator = MerkleTreeGenerator() @@ -47,22 +45,6 @@ def do_test_signature(self, chain, display_chain, type): p1 = next(gen) _ = next(gen) p3 = next(gen) - p1_expected_old = { - 'type': ['MerkleProof2017', 'Extension'], - 'merkleRoot': '0932f1d2e98219f7d7452801e2b64ebd9e5c005539db12d9b1ddabe7834d9044', - 'targetHash': '6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b', - 'proof': [ - {'right': 'd4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35'}, - {'right': '4e07408562bedb8b60ce05c1decfe3ad16b72230967de01f640b7e4729b49fce'} - ], - 'anchors': [ - { - 'sourceId': '8087c03e7b7bc9ca7b355de9d9d8165cc5c76307f337f0deb8a204d002c8e582', - 'type': type, - 'chain': display_chain - } - ] - } p1_json_proof = { 'path': [ @@ -86,13 +68,6 @@ def do_test_signature(self, chain, display_chain, type): "verificationMethod": "ecdsa-koblitz-pubkey:123" } - p3_expected_old = {'type': ['MerkleProof2017', 'Extension'], - 'merkleRoot': '0932f1d2e98219f7d7452801e2b64ebd9e5c005539db12d9b1ddabe7834d9044', - 'targetHash': '4e07408562bedb8b60ce05c1decfe3ad16b72230967de01f640b7e4729b49fce', - 'proof': [{'left': '4295f72eeb1e3507b8461e240e3b8d18c1e7bd2f1122b11fc9ec40a65894031a'}], - 'anchors': [{'sourceId': '8087c03e7b7bc9ca7b355de9d9d8165cc5c76307f337f0deb8a204d002c8e582', - 'type': type, - 'chain': display_chain}]} p3_json_proof = { 'path': [ {'left': '4295f72eeb1e3507b8461e240e3b8d18c1e7bd2f1122b11fc9ec40a65894031a'} diff --git a/tox.ini b/tox.ini index f731e862..fa5e7bc5 100644 --- a/tox.ini +++ b/tox.ini @@ -11,5 +11,6 @@ envlist = py36 changedir=tests deps= pytest + -rrequirements.txt commands=py.test --basetemp={envtmpdir} {posargs} # substitute with tox' positional arguments From a40a7720ba8c36b8391b1224bff6ec3217e36b45 Mon Sep 17 00:00:00 2001 From: AnthonyRonning Date: Mon, 27 Jan 2020 10:02:45 -0600 Subject: [PATCH 04/22] Allowing issuer url/did's for verification method of ld merkle proof --- README.md | 3 +++ cert_issuer/__init__.py | 2 +- cert_issuer/certificate_handlers.py | 4 ++-- cert_issuer/config.py | 1 + cert_issuer/merkle_tree_generator.py | 6 +++--- conf_template.ini | 3 +++ tests/test_certificate_handler.py | 8 ++++---- tests/test_merkle_tree_generator.py | 6 +++--- 8 files changed, 20 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 34883f41..22b168c2 100644 --- a/README.md +++ b/README.md @@ -260,6 +260,9 @@ Edit your conf.ini file (the config file for this application). ``` issuing_address = +# issuer URL / DID +verification_method = + chain= usb_name = diff --git a/cert_issuer/__init__.py b/cert_issuer/__init__.py index 6e648d3c..e3dc11f6 100644 --- a/cert_issuer/__init__.py +++ b/cert_issuer/__init__.py @@ -1 +1 @@ -__version__ = '3.0.0a1' +__version__ = '3.0.0a2' diff --git a/cert_issuer/certificate_handlers.py b/cert_issuer/certificate_handlers.py index 33f5f8fb..ad29b3b2 100644 --- a/cert_issuer/certificate_handlers.py +++ b/cert_issuer/certificate_handlers.py @@ -49,7 +49,7 @@ def add_proof(self, certificate_json, merkle_proof): class CertificateBatchWebHandler(BatchHandler): def finish_batch(self, tx_id, chain): self.proof = [] - proof_generator = self.merkle_tree.get_proof_generator(tx_id, self.config.issuing_address, chain) + proof_generator = self.merkle_tree.get_proof_generator(tx_id, self.config.verification_method, chain) for metadata in self.certificates_to_issue: proof = next(proof_generator) self.proof.append(self.certificate_handler.add_proof(metadata, proof)) @@ -120,7 +120,7 @@ def get_certificate_generator(self): yield data_to_issue def finish_batch(self, tx_id, chain): - proof_generator = self.merkle_tree.get_proof_generator(tx_id, self.config.issuing_address, chain) + proof_generator = self.merkle_tree.get_proof_generator(tx_id, self.config.verification_method, chain) for _, metadata in self.certificates_to_issue.items(): proof = next(proof_generator) self.certificate_handler.add_proof(metadata, proof) diff --git a/cert_issuer/config.py b/cert_issuer/config.py index bbdfbc2e..169be1f1 100644 --- a/cert_issuer/config.py +++ b/cert_issuer/config.py @@ -34,6 +34,7 @@ def add_arguments(p): p.add('-c', '--my-config', required=False, env_var='CONFIG_FILE', is_config_file=True, help='config file path') p.add_argument('--issuing_address', required=True, help='issuing address', env_var='ISSUING_ADDRESS') + p.add_argument('--verification_method', required=True, help='Verification method for the Linked Data Proof', env_var='VERIFICATION_METHOD') p.add_argument('--usb_name', required=True, help='usb path to key_file', env_var='USB_NAME') p.add_argument('--key_file', required=True, help='name of file on USB containing private key', env_var='KEY_FILE') diff --git a/cert_issuer/merkle_tree_generator.py b/cert_issuer/merkle_tree_generator.py index 08f02078..372fd94f 100644 --- a/cert_issuer/merkle_tree_generator.py +++ b/cert_issuer/merkle_tree_generator.py @@ -44,7 +44,7 @@ def get_blockchain_data(self): merkle_root = self.tree.get_merkle_root() return h2b(ensure_string(merkle_root)) - def get_proof_generator(self, tx_id, issuing_address, chain=Chain.bitcoin_mainnet): + def get_proof_generator(self, tx_id, verification_method, chain=Chain.bitcoin_mainnet): """ Returns a generator (1-time iterator) of proofs in insertion order. @@ -72,7 +72,7 @@ def get_proof_generator(self, tx_id, issuing_address, chain=Chain.bitcoin_mainne helpers.tx_to_blink(chain, tx_id) ] } - logging.debug('merkle_json: %s', str(merkle_json)) + logging.info('merkle_json: %s', str(merkle_json)) proof_value = mp2019.encode(merkle_json) merkle_proof = { @@ -80,7 +80,7 @@ def get_proof_generator(self, tx_id, issuing_address, chain=Chain.bitcoin_mainne "created": datetime.now().isoformat(), "proofValue": proof_value.decode('utf8'), "proofPurpose": "assertionMethod", - "verificationMethod": "ecdsa-koblitz-pubkey:" + issuing_address + "verificationMethod": verification_method } yield merkle_proof diff --git a/conf_template.ini b/conf_template.ini index 499ab702..07c6d1a7 100644 --- a/conf_template.ini +++ b/conf_template.ini @@ -1,5 +1,8 @@ issuing_address = +# Issuer URL / DID as the verification method +verification_method = + # put your unsigned certificates here for signing. Default is /data/unsigned_certificates unsigned_certificates_dir= # signed certificates are the output from the cert signing step; input to the cert issuing step. Default is /data/signed_certificates diff --git a/tests/test_certificate_handler.py b/tests/test_certificate_handler.py index 49b19cae..7c7e4923 100644 --- a/tests/test_certificate_handler.py +++ b/tests/test_certificate_handler.py @@ -43,7 +43,7 @@ def _get_certificate_batch_web_handler(self): certificates_to_issue['3'] = mock.Mock() config = mock.Mock() - config.issuing_address = "123" + config.issuing_address = "http://example.com" handler = CertificateBatchWebHandler( secret_manager=secret_manager, @@ -61,7 +61,7 @@ def _get_certificate_batch_handler(self): certificates_to_issue['3'] = mock.Mock() config = mock.Mock() - config.issuing_address = "123" + config.issuing_address = "http://example.com" handler = CertificateBatchHandler( secret_manager=secret_manager, @@ -113,7 +113,7 @@ def test_batch_handler_finish_batch(self): proof = self._proof_helper(chain) config = mock.Mock() - config.issuing_address = "123" + config.issuing_address = "http://example.com" with patch.object(DummyCertificateHandler, 'add_proof') as mock_method: result = certificate_batch_handler.finish_batch( @@ -193,7 +193,7 @@ def test_web_add_proof(self): class DummyCertificateHandler(CertificateHandler): def __init__(self): self.config = mock.Mock() - self.config.issuing_address = "123" + self.config.issuing_address = "http://example.com" self.counter = 0 def validate_certificate(self, certificate_metadata): diff --git a/tests/test_merkle_tree_generator.py b/tests/test_merkle_tree_generator.py index 88648abd..426a138c 100644 --- a/tests/test_merkle_tree_generator.py +++ b/tests/test_merkle_tree_generator.py @@ -41,7 +41,7 @@ def do_test_signature(self, chain, display_chain, type): merkle_tree_generator.populate(get_test_data_generator()) _ = merkle_tree_generator.get_blockchain_data() gen = merkle_tree_generator.get_proof_generator( - '8087c03e7b7bc9ca7b355de9d9d8165cc5c76307f337f0deb8a204d002c8e582', '123', chain) + '8087c03e7b7bc9ca7b355de9d9d8165cc5c76307f337f0deb8a204d002c8e582', 'http://example.com', chain) p1 = next(gen) _ = next(gen) p3 = next(gen) @@ -65,7 +65,7 @@ def do_test_signature(self, chain, display_chain, type): "created": p1['created'], "proofValue": proof_value.decode('utf8'), "proofPurpose": "assertionMethod", - "verificationMethod": "ecdsa-koblitz-pubkey:123" + "verificationMethod": "http://example.com" } p3_json_proof = { @@ -86,7 +86,7 @@ def do_test_signature(self, chain, display_chain, type): "created": p3['created'], "proofValue": proof_value.decode('utf8'), "proofPurpose": "assertionMethod", - "verificationMethod": "ecdsa-koblitz-pubkey:123" + "verificationMethod": "http://example.com" } self.assertEqual(p1, p1_expected) From b1c464742d7bd42002a3b558bd1b1166e886fd30 Mon Sep 17 00:00:00 2001 From: AnthonyRonning Date: Thu, 13 Feb 2020 10:47:59 -0600 Subject: [PATCH 05/22] bump cert-schema to 3.0.0a2 --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index a6cf0206..ab4661c0 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ cert-core>=2.1.9 -cert-schema>=3.0.0a1 +cert-schema>=3.0.0a2 chainpoint>=0.0.2 configargparse==0.12.0 glob2==0.6 From 830ee9d8ff2860976138dca8f2440c571e5d2170 Mon Sep 17 00:00:00 2001 From: AnthonyRonning Date: Wed, 19 Feb 2020 15:44:27 -0600 Subject: [PATCH 06/22] RI etherscan changes from v2 to v3 --- .travis.yml | 2 +- .../blockchain_handlers/ethereum/connectors.py | 13 +++++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index 923b0188..beaa2d02 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,6 @@ sudo: false language: python python: - - "3.4" + - "3.6" install: pip install tox-travis script: tox diff --git a/cert_issuer/blockchain_handlers/ethereum/connectors.py b/cert_issuer/blockchain_handlers/ethereum/connectors.py index 1f75e84b..632289b2 100644 --- a/cert_issuer/blockchain_handlers/ethereum/connectors.py +++ b/cert_issuer/blockchain_handlers/ethereum/connectors.py @@ -95,12 +95,14 @@ def broadcast_tx(self, tx, api_token): broadcast_url = self.base_url + '?module=proxy&action=eth_sendRawTransaction' if api_token: - '&apikey=%s' % api_token + broadcast_url += '&apikey=%s' % api_token response = requests.post(broadcast_url, data={'hex': tx_hex}) if 'error' in response.json(): logging.error("Etherscan returned an error: %s", response.json()['error']) raise BroadcastError(response.json()['error']) if int(response.status_code) == 200: + if response.json().get('message', None) == 'NOTOK': + raise BroadcastError(response.json().get('result', None)) tx_id = response.json().get('result', None) logging.info("Transaction ID obtained from broadcast through Etherscan: %s", tx_id) return tx_id @@ -116,9 +118,11 @@ def get_balance(self, address, api_token): broadcast_url += '&address=%s' % address broadcast_url += '&tag=latest' if api_token: - '&apikey=%s' % api_token + broadcast_url += '&apikey=%s' % api_token response = requests.get(broadcast_url) if int(response.status_code) == 200: + if response.json().get('message', None) == 'NOTOK': + raise BroadcastError(response.json().get('result', None)) balance = int(response.json().get('result', None)) logging.info('Balance check succeeded: %s', response.json()) return balance @@ -133,10 +137,11 @@ def get_address_nonce(self, address, api_token): broadcast_url += '&address=%s' % address broadcast_url += '&tag=latest' if api_token: - '&apikey=%s' % api_token + broadcast_url += '&apikey=%s' % api_token response = requests.get(broadcast_url, ) if int(response.status_code) == 200: - # the int(res, 0) transforms the hex nonce to int + if response.json().get('message', None) == 'NOTOK': + raise BroadcastError(response.json().get('result', None)) nonce = int(response.json().get('result', None), 0) logging.info('Nonce check went correct: %s', response.json()) return nonce From 625b1f169fa52e3accd35eb3e56be644c72db190 Mon Sep 17 00:00:00 2001 From: AnthonyRonning Date: Wed, 19 Feb 2020 16:20:13 -0600 Subject: [PATCH 07/22] v3-alpha schema updates --- cert_issuer/__init__.py | 2 +- cert_issuer/certificate_handlers.py | 2 +- .../unsigned_certificates/verifiable-credential.json | 9 ++++++--- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/cert_issuer/__init__.py b/cert_issuer/__init__.py index e3dc11f6..7ccf291d 100644 --- a/cert_issuer/__init__.py +++ b/cert_issuer/__init__.py @@ -1 +1 @@ -__version__ = '3.0.0a2' +__version__ = '3.0.0a3' diff --git a/cert_issuer/certificate_handlers.py b/cert_issuer/certificate_handlers.py index ad29b3b2..3684ebf5 100644 --- a/cert_issuer/certificate_handlers.py +++ b/cert_issuer/certificate_handlers.py @@ -22,7 +22,7 @@ def add_proof(self, certificate_metadata, merkle_proof): :return: """ certificate_json = self._get_certificate_to_issue(certificate_metadata) - certificate_json['signature'] = merkle_proof + certificate_json['proof'] = merkle_proof with open(certificate_metadata.blockchain_cert_file_name, 'w') as out_file: out_file.write(json.dumps(certificate_json)) diff --git a/examples/data-testnet/unsigned_certificates/verifiable-credential.json b/examples/data-testnet/unsigned_certificates/verifiable-credential.json index d3178aea..37ab8c1d 100644 --- a/examples/data-testnet/unsigned_certificates/verifiable-credential.json +++ b/examples/data-testnet/unsigned_certificates/verifiable-credential.json @@ -5,13 +5,16 @@ "https://www.w3.org/2018/credentials/examples/v1" ], "id": "urn:uuid:bbba8553-8ec1-445f-82c9-a57251dd731c", - "type": ["VerifiableCredential"], + "type": [ + "VerifiableCredential", + "BlockcertsCredential" + ], "issuer": "did:example:23adb1f712ebc6f1c276eba4dfa", - "issuanceDate": "2010-01-01T19:73:24Z", + "issuanceDate": "2010-01-01T19:33:24Z", "credentialSubject": { "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "alumniOf": { "id": "did:example:c276e12ec21ebfeb1f712ebc6f1" } } -} \ No newline at end of file +} From df2a44f8b36c8885a0da2df3080e05a006b7496e Mon Sep 17 00:00:00 2001 From: AnthonyRonning Date: Thu, 20 Feb 2020 10:55:34 -0600 Subject: [PATCH 08/22] Fix test using proof instead of signature for v3 --- tests/test_certificate_handler.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_certificate_handler.py b/tests/test_certificate_handler.py index 7c7e4923..9a25689b 100644 --- a/tests/test_certificate_handler.py +++ b/tests/test_certificate_handler.py @@ -166,7 +166,7 @@ def test_add_proof(self,mock_open): cert_to_issue = {'kek':'kek'} proof = {'a': 'merkel'} - file_call = 'call().__enter__().write(\'{"kek": "kek", "signature": {"a": "merkel"}}\')' + file_call = 'call().__enter__().write(\'{"kek": "kek", "proof": {"a": "merkel"}}\')' chain = mock.Mock() metadata = mock.Mock() From c64f477e1000307a9d7db43c632d3d7c749f4383 Mon Sep 17 00:00:00 2001 From: AnthonyRonning Date: Thu, 20 Feb 2020 10:55:56 -0600 Subject: [PATCH 09/22] Bump v3-alpha schema to 3.0.0a3 --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index ab4661c0..3275b404 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ cert-core>=2.1.9 -cert-schema>=3.0.0a2 +cert-schema>=3.0.0a3 chainpoint>=0.0.2 configargparse==0.12.0 glob2==0.6 From 24a4f4f8ff202e51b77cc585b128ce9d862d49e2 Mon Sep 17 00:00:00 2001 From: AnthonyRonning Date: Wed, 11 Mar 2020 10:18:14 -0500 Subject: [PATCH 10/22] Bump v3-alpha schema to 3.0.0a4 --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 3275b404..65ce1f19 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ cert-core>=2.1.9 -cert-schema>=3.0.0a3 +cert-schema>=3.0.0a4 chainpoint>=0.0.2 configargparse==0.12.0 glob2==0.6 From f85bd555541044c2e561473e7e45ded521599002 Mon Sep 17 00:00:00 2001 From: James Date: Tue, 30 Jun 2020 11:03:18 +0200 Subject: [PATCH 11/22] updated for bloxberg --- .../ethereum_sc/.connectors.py.swp | Bin 0 -> 16384 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 cert_issuer/blockchain_handlers/ethereum_sc/.connectors.py.swp diff --git a/cert_issuer/blockchain_handlers/ethereum_sc/.connectors.py.swp b/cert_issuer/blockchain_handlers/ethereum_sc/.connectors.py.swp new file mode 100644 index 0000000000000000000000000000000000000000..a52c6d26e00a98a5dab66211c9ce1c4db5112ee0 GIT binary patch literal 16384 zcmeHNO^h5z6)wzA_{)zRky8$pv58Y8ibx+r* zs%K{wD8^h7Rn=GTRllyT(fMo7KF1$V&odkkF!tu}|8V1thaY0Eon~xb%%!FByBtpL+%;vY zr6``#>yyO4>I64OgSH?rE%w(KZjU;GoJ}nW;0Qa3u)}8tY*^4 zjL|Nn76V{ZYsfu8_B25te*1J{77 zz>~mdfQNwJ-N)E(fY*UnfL-7UZ~=H2I0gLuUdH|g{1x~P@FK7a+ylJ(amKy@+yJfv zj{^??_XBTzjInP6Uk0uKDR2(>3l<~32YeUU0lo-)3i#(o7<&i!CGbt)3E&ez^y4>0xv;QPSK zzzRr!+wVu+zzDbooCjXTBFj&KTfjDOAMg%%e;XkFe??>PpC25@SWb9m)wIkiBT6gs zO6fAOvX~6{!pMa%a-3D`jf-f#Ka8xFrsUOHjhiyM;9H#Z(vi_(oC{m^O`?w4RHH=I zx}uwRQsILej zaI5xKM4#DfR5r4MiQ&~zQiXo)9TvyVR zqTr5Y!|hBj3+PI|q{ga}V?WIPvUCH^SE`z|mL_dCAWHXoeXfY2yg;vcj+&?fj(s+~ z<3Vk+c4axXAgvzkt_-+!YVE!q*SnQamE{v{pk$;4saCe;0zu@rp+4`f{Q*DDVKXCh zsTNflG%-Za2s=w>a-Fn8Rjq?yaIb82A%#1o)V42Zv)6{omD*wgof$0kj8MT*3l?-- z5vz`cq-F*|mYUv;+7@-RJK(;vjnXlZiGj71S>_19b=iz+ue50vNflL7OI3`!ZAN$Xf;`+FiL95J`Z$iWQ(_xx7OHH>IuA95FS{ zAU5nvl)7{V>hSR+F_l%PJ==O&R*so83>A12%cA;xp3}XJ)@IvukZ`L%FEnk$t>!!{ z)Ld1)HWhk0Rpk`^U`qTagQsa4pw8h}AE+_HW^~9)S*^6W$@PSP((;*_Vlx_C9x(&s zUcSC(W#vP1qNc;fvq3PQL#^Ty%s?sMDWt%}bs&wJ98&z$``awSFwONm9SqxMcTVdb zw7!YCsOcSlvOTZmI+4>z)pvr|AB+1uOMsRP~A(@w`osmC%~nqs5V459)JBd-P-I7@)6I$X%sd1PTb znLw*?>GJM&*t(ju^=!DfBU7yjQkob&=d?%G?~6^_=WDYsmL6tdUu-H%%hi0LO~t!a zF)~I6k$mq~LqC+qZS{v8aSgX%wEvm?;&Qp;Ra|isP9J{l;dUQeE;xv%9@3%>f=M!O>bL zIOzu3cLvj5FFOkfA0<>HjZ6+>+_V6#v3wF^ktO3vmQ7S4vn&K?7|(^a zR#BFJAc`eMiYN;eUgU#1j%W)y9P9dy(aKE)YsVk({GWU#Xff z9ilJ^5|qI)7qu(QEg=+Xo*DA)L{rOjBYTdSrf7oqB(LzsCB5G?!pFS(Fh2?SgfIma-Prxs{&eusV9+82_Kx7~? z5E+OJL<@VT(F zutim!{Jrq(3wp`%krYezhgdn}m9D>s369Sey>)zA>^s}8k;ru}7g%v~e^}>lmxo=2 z^*7e$D-WZ>a5SY@>kxTfrBu-S_SyMD+SZ5`cDhB1(67n!A5~CBA4^hNjG#q3|3#&< IHnze31&%J9QUCw| literal 0 HcmV?d00001 From 7f0d1dbf3cff91a8fec9970b07386d913e862a19 Mon Sep 17 00:00:00 2001 From: James Date: Fri, 3 Jul 2020 12:11:31 +0200 Subject: [PATCH 12/22] updated pathing for merkle tree --- .gitignore | 2 +- cert_issuer/blockchain_handlers/__init__.py | 1 + cert_issuer/blockchain_handlers/ethereum/connectors.py | 2 +- cert_issuer/blockchain_handlers/ethereum_sc/connectors.py | 4 ++-- cert_issuer/blockchain_handlers/ethereum_sc/signer.py | 4 ++-- cert_issuer/config.py | 4 ++-- cert_issuer/merkle_tree_generator.py | 2 +- 7 files changed, 10 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index 14ef34ad..978ba581 100644 --- a/.gitignore +++ b/.gitignore @@ -4,7 +4,7 @@ venv*/ virtual\ usb/ secrets.py __pycache__ - +pk certs_dbdump.csv data/unsigned_certificates/ diff --git a/cert_issuer/blockchain_handlers/__init__.py b/cert_issuer/blockchain_handlers/__init__.py index e69de29b..b03a62d0 100644 --- a/cert_issuer/blockchain_handlers/__init__.py +++ b/cert_issuer/blockchain_handlers/__init__.py @@ -0,0 +1 @@ +__version__ = '2.0.20' diff --git a/cert_issuer/blockchain_handlers/ethereum/connectors.py b/cert_issuer/blockchain_handlers/ethereum/connectors.py index 1f75e84b..1b0bf581 100644 --- a/cert_issuer/blockchain_handlers/ethereum/connectors.py +++ b/cert_issuer/blockchain_handlers/ethereum/connectors.py @@ -221,7 +221,7 @@ def get_address_nonce(self, address, api_token): # Configure Ethereum Ropsten testnet connectors rop_provider_list = [] -rop_provider_list.append(EtherscanBroadcaster('https://ropsten.etherscan.io/api')) +rop_provider_list.append(EtherscanBroadcaster('https://blockexplorer.bloxberg.org/api')) rop_provider_list.append(MyEtherWalletBroadcaster('https://api.myetherwallet.com/rop')) connectors[Chain.ethereum_ropsten] = rop_provider_list diff --git a/cert_issuer/blockchain_handlers/ethereum_sc/connectors.py b/cert_issuer/blockchain_handlers/ethereum_sc/connectors.py index c3ab981b..2b2781d5 100644 --- a/cert_issuer/blockchain_handlers/ethereum_sc/connectors.py +++ b/cert_issuer/blockchain_handlers/ethereum_sc/connectors.py @@ -1,7 +1,7 @@ import json import os import logging -from errors import UnableToSignTxError +from cert_issuer.errors import UnableToSignTxError from cert_issuer.models import ServiceProviderConnector from web3 import Web3, HTTPProvider @@ -14,7 +14,7 @@ def get_abi(contract): """ directory = os.path.dirname(os.path.abspath(__file__)) - path = os.path.join(directory, f"data/{contract}_abi.json") + path = os.path.join(directory, f"/home/james/bloxberg-certs/cert-issuer/cert_issuer/blockchain_handlers/ethereum_sc/data/{contract}_abi.json") with open(path, "r") as f: raw = f.read() diff --git a/cert_issuer/blockchain_handlers/ethereum_sc/signer.py b/cert_issuer/blockchain_handlers/ethereum_sc/signer.py index dcddd8c5..61a107aa 100644 --- a/cert_issuer/blockchain_handlers/ethereum_sc/signer.py +++ b/cert_issuer/blockchain_handlers/ethereum_sc/signer.py @@ -12,9 +12,9 @@ def __init__(self, ethereum_chain): self.ethereum_chain = ethereum_chain # Netcode ensures replay protection (see EIP155) if ethereum_chain.external_display_value == 'ethereumMainnet': - self.netcode = 1 + self.netcode = 8995 elif ethereum_chain.external_display_value == 'ethereumRopsten': - self.netcode = 3 + self.netcode = 8995 else: self.netcode = None diff --git a/cert_issuer/config.py b/cert_issuer/config.py index faffa53d..8abcedb0 100644 --- a/cert_issuer/config.py +++ b/cert_issuer/config.py @@ -89,9 +89,9 @@ def add_arguments(p): help='ens_name that points to the smart contract to which to issue', env_var='ENS_NAME') p.add_argument('--revocation_list_file', required=False, help='list of certificates or batches to be revokes', env_var='REVOCATION_LIST_FILE') - p.add_argument('--ens_registry_ropsten', required=False, default="0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e", + p.add_argument('--ens_registry_ropsten', required=False, default="0xde68Fcf6814D81Ee910bf35703622571718E07a7", help='ENS registry address on ropsten', env_var='ENS_RESGISTRY_ROPSTEN') - p.add_argument('--ens_registry_mainnet', required=False, default="0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e", + p.add_argument('--ens_registry_mainnet', required=False, default="0xde68Fcf6814D81Ee910bf35703622571718E07a7", help='ENS registry address on ropsten', env_var='ENS_RESGISTRY_MAINNET') def get_config(): diff --git a/cert_issuer/merkle_tree_generator.py b/cert_issuer/merkle_tree_generator.py index e6f5e3cb..3f3b6fc4 100644 --- a/cert_issuer/merkle_tree_generator.py +++ b/cert_issuer/merkle_tree_generator.py @@ -61,7 +61,7 @@ def get_proof_generator(self, tx_id, app_config, chain=Chain.bitcoin_mainnet): proof2.append(dict2) target_hash = ensure_string(self.tree.get_leaf(index)) if app_config.issuing_method == "smart_contract": - from blockchain_handlers.ethereum_sc.ens import ENSConnector + from cert_issuer.blockchain_handlers.ethereum_sc.ens import ENSConnector ens = ENSConnector(app_config) abi = ens.get_abi() From e35071c1722f9f44116ac542f7da74cb43e7d25a Mon Sep 17 00:00:00 2001 From: James Date: Mon, 6 Jul 2020 17:05:30 +0200 Subject: [PATCH 13/22] updated with ERC721 bloxberg contracts --- .../ethereum/transaction_handlers.py | 2 +- .../ethereum_sc/transaction_handlers.py | 12 ++++++++---- cert_issuer/issuer.py | 10 ++++++++-- cert_issuer/models.py | 4 ++-- 4 files changed, 19 insertions(+), 9 deletions(-) diff --git a/cert_issuer/blockchain_handlers/ethereum/transaction_handlers.py b/cert_issuer/blockchain_handlers/ethereum/transaction_handlers.py index 8a483f5f..cdf1898b 100644 --- a/cert_issuer/blockchain_handlers/ethereum/transaction_handlers.py +++ b/cert_issuer/blockchain_handlers/ethereum/transaction_handlers.py @@ -54,7 +54,7 @@ def ensure_balance(self): logging.error(error_message) raise InsufficientFundsError(error_message) - def issue_transaction(self, blockchain_bytes, app_config): + def issue_transaction(self, recipient_address, token_uri, blockchain_bytes, app_config): eth_data_field = b2h(blockchain_bytes) prepared_tx = self.create_transaction(blockchain_bytes) signed_tx = self.sign_transaction(prepared_tx) diff --git a/cert_issuer/blockchain_handlers/ethereum_sc/transaction_handlers.py b/cert_issuer/blockchain_handlers/ethereum_sc/transaction_handlers.py index 60721188..92442af2 100644 --- a/cert_issuer/blockchain_handlers/ethereum_sc/transaction_handlers.py +++ b/cert_issuer/blockchain_handlers/ethereum_sc/transaction_handlers.py @@ -29,11 +29,15 @@ def ensure_balance(self): def revoke_transaction(self, blockchain_bytes, app_config): return self.make_transaction(blockchain_bytes, app_config, "revoke_hash") - def issue_transaction(self, blockchain_bytes, app_config): - return self.make_transaction(blockchain_bytes, app_config, "issue_hash") + #Outdated Function: TODO - REMOVE + #def issue_transaction(self, blockchain_bytes, app_config): + # return self.make_transaction(blockchain_bytes, app_config, "issue_hash") - def make_transaction(self, blockchain_bytes, app_config, method): - prepared_tx = self.connector.create_transaction(method, blockchain_bytes) + def issue_transaction(self, recipient_address, token_uri, blockchain_bytes, app_config): + return self.make_transaction(recipient_address, token_uri, blockchain_bytes, app_config, "createCertificate") + + def make_transaction(self, recipient_address, token_uri, blockchain_bytes, app_config, method): + prepared_tx = self.connector.create_transaction(method, recipient_address, token_uri, blockchain_bytes) signed_tx = self.sign_transaction(prepared_tx) logging.info('Broadcasting transaction to the blockchain...') diff --git a/cert_issuer/issuer.py b/cert_issuer/issuer.py index dc43b228..304c441e 100644 --- a/cert_issuer/issuer.py +++ b/cert_issuer/issuer.py @@ -2,7 +2,8 @@ Base class for building blockchain transactions to issue Blockchain Certificates. """ import logging - +from eth_utils import is_checksum_address +from web3 import Web3 from cert_issuer.errors import BroadcastError MAX_TX_RETRIES = 5 @@ -21,10 +22,15 @@ def issue(self, chain, app_config): """ blockchain_bytes = self.certificate_batch_handler.prepare_batch() + #Change to parameters that get passed in app.py TODO + recipient_address = Web3.toChecksumAddress('0xaA84378fA41da83a9B6523bA46E45A664FbEBFC8') + print(is_checksum_address(recipient_address)) + token_uri = "https://bloxberg.org" + blockchain_bytes = str(blockchain_bytes, 'latin-1') for attempt_number in range(0, self.max_retry): try: - txid = self.transaction_handler.issue_transaction(blockchain_bytes, app_config) + txid = self.transaction_handler.issue_transaction(recipient_address, token_uri, blockchain_bytes, app_config) self.certificate_batch_handler.finish_batch(txid, chain, app_config) logging.info('Broadcast transaction with txid %s', txid) return txid diff --git a/cert_issuer/models.py b/cert_issuer/models.py index ce6279a6..22d61fb8 100644 --- a/cert_issuer/models.py +++ b/cert_issuer/models.py @@ -90,7 +90,7 @@ def ensure_balance(self): pass @abstractmethod - def issue_transaction(self, blockchain_bytes): + def issue_transaction(self, recipient_address, token_uri, blockchain_bytes): pass @@ -98,7 +98,7 @@ class MockTransactionHandler(TransactionHandler): def ensure_balance(self): pass - def issue_transaction(self, op_return_bytes): + def issue_transaction(self, recipient_address, token_uri, op_return_bytes): return 'This has not been issued on a blockchain and is for testing only' From c8dd8d2c6288007f49061de9c2e97c9246540a4e Mon Sep 17 00:00:00 2001 From: James Date: Fri, 17 Jul 2020 09:48:24 +0200 Subject: [PATCH 14/22] updated issuing for bloxberg --- .app.py.swp | Bin 0 -> 12288 bytes app.py | 6 ++++-- .../ethereum_sc/connectors.py | 9 +++++++-- .../3bc1a96a-3501-46ed-8f75-49612bbac257.json | 1 + work/unsigned_certificates/.placeholder | 0 .../3bc1a96a-3501-46ed-8f75-49612bbac257.json | 1 + 6 files changed, 13 insertions(+), 4 deletions(-) create mode 100644 .app.py.swp create mode 100644 work/blockchain_certificates/3bc1a96a-3501-46ed-8f75-49612bbac257.json create mode 100644 work/unsigned_certificates/.placeholder create mode 100644 work/unsigned_certificates/3bc1a96a-3501-46ed-8f75-49612bbac257.json diff --git a/.app.py.swp b/.app.py.swp new file mode 100644 index 0000000000000000000000000000000000000000..8aabc4ae320ea3e0ce904862309e964017a33073 GIT binary patch literal 12288 zcmeI2J#W-77{^^$kZ1vc1QX!WAvx)qT-yazI)sp@gv6T!bm1j(a?YLGoE>5ZdKAGY zU;zd`1`^DC0QOEyOboyW02UrQiMXp;b?8*|`1C(3$@BWNGn~$GXZ6|*dNJq_7$*q% za`?}qr>oQC^JzlX*pO>`e~;np=2t~wN|s$w8@rjmaE4)=sg0Ny{rQ9!Mu+x$UT9tN zB4l|Up)OPr7Z5==U)~eu2J$wm_diuRxoiXP`@<1<)DL z)(j!9LDxawA>T*P2hcl^&A$o4fdr5M5Y9&G#r| z$Ks(`B_&UcDrlEJAU1gw6fXO=a+kqxkseQ}Bj>l4$z`{Esx;j9+(GV|Ega+);gf}+ z6FO6`O^4hJR8M#Bd$(`hx$8Y_O)O&--DRD~Jic6&O)yc6HHMwiRNAFCmE_AVPCrvI z%j!q2>TyrlMU9j5ALuMN za!sKMr^^`jZNjx~JQJ2>)w9%=+1z$Dx80i{(oq}U47Z!wl*LeblgI8YGB+ERx(H(- L!+ZqmA(zNs!|84j literal 0 HcmV?d00001 diff --git a/app.py b/app.py index 16aae656..d3d03a8f 100755 --- a/app.py +++ b/app.py @@ -4,7 +4,7 @@ from subprocess import call import cert_issuer.config -from cert_issuer.blockchain_handlers import bitcoin +from cert_issuer.blockchain_handlers import ethereum_sc import cert_issuer.issue_certificates app = Flask(__name__) @@ -20,7 +20,9 @@ def get_config(): def issue(): config = get_config() certificate_batch_handler, transaction_handler, connector = \ - bitcoin.instantiate_blockchain_handlers(config, False) + ethereum_sc.instantiate_blockchain_handlers(config) + #Removed File mode from ethereum_sc + #bitcoin.instantiate_blockchain_handlers(config, False) certificate_batch_handler.set_certificates_in_batch(request.json) cert_issuer.issue_certificates.issue(config, certificate_batch_handler, transaction_handler) return json.dumps(certificate_batch_handler.proof) diff --git a/cert_issuer/blockchain_handlers/ethereum_sc/connectors.py b/cert_issuer/blockchain_handlers/ethereum_sc/connectors.py index 2b2781d5..fbdbdac1 100644 --- a/cert_issuer/blockchain_handlers/ethereum_sc/connectors.py +++ b/cert_issuer/blockchain_handlers/ethereum_sc/connectors.py @@ -49,7 +49,7 @@ def get_balance(self, address): def create_transaction(self, method, *argv): gas_limit = self.cost_constants.get_gas_limit() - estimated_gas = self._contract_obj.functions[method](*argv).estimateGas() * 2 + estimated_gas = self._contract_obj.functions[method](*argv).estimateGas() * 5 if estimated_gas > gas_limit: logging.warning("Estimated gas of %s more than gas limit of %s, transaction might fail. Please verify on etherescan.com.", estimated_gas, gas_limit) estimated_gas = gas_limit @@ -57,13 +57,18 @@ def create_transaction(self, method, *argv): gas_price = self._w3.eth.gasPrice gas_price_limit = self.cost_constants.get_gas_price() + print("gas price: " + str(gas_price)) + print("gas_price_limit: " + str(gas_price_limit)) + print("estimated_gas: " + str(estimated_gas)) + if gas_price > gas_price_limit: logging.warning("Gas price provided by network of %s higher than gas price of %s set in config, transaction might fail. Please verify on etherescan.com.", gas_price, gas_price_limit) gas_price = gas_price_limit tx_options = { 'nonce': self._w3.eth.getTransactionCount(self._w3.eth.defaultAccount), - 'gas': estimated_gas, + 'gas': 700000, + #'gas': estimated_gas, 'gasPrice': gas_price } diff --git a/work/blockchain_certificates/3bc1a96a-3501-46ed-8f75-49612bbac257.json b/work/blockchain_certificates/3bc1a96a-3501-46ed-8f75-49612bbac257.json new file mode 100644 index 00000000..63394b26 --- /dev/null +++ b/work/blockchain_certificates/3bc1a96a-3501-46ed-8f75-49612bbac257.json @@ -0,0 +1 @@ +{"issuedOn": "2017-07-20T09:33:47.490752+00:00", "recipient": {"identity": "eularia@landroth.org", "type": "email", "hashed": false}, "type": "Assertion", "verification": {"publicKey": "ecdsa-koblitz-pubkey:msBCHdwaQ7N2ypBYupkp6uNxtr9Pg76imj", "type": ["MerkleProofVerification2017", "Extension"]}, "@context": ["https://w3id.org/openbadges/v2", "https://w3id.org/blockcerts/v2"], "badge": {"issuer": {"url": "https://www.issuer.org", "name": "University of Learning", "email": "contact@issuer.org", "type": "Profile", "id": "https://www.blockcerts.org/samples/2.0/issuer-testnet.json", "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZAAAAHBCAYAAABHbe2eAAD+k0lEQVR42uydB1yb17n/X/bekkDsZWwwxmzMFnvvLSQEQoihLSGJvZfBNjbYBk/AgBneO952kra3SW+Stmmbrtz2tv3ntrdpmt60TdIE/ucIyVFUCQTG2E7e1/59JL16JSHp6Hzf3/M85xwEQTd029pNA0EI2giSoofBhJs4m2eb4/HpGGdsqo29Vbqds02yszsuxW07JnO7u03GThdc4m5XTEKgs3XKHldscoQLNjXKGRNPcLJKjHW0iot3tExMcLCMT7K3SEyxs4hPszOJS7c1ic2wNUnItDWJgcqSCWdCyMabxGXjDYFMYnNwQHjjmFxF4aT34Uyic/AG4BhDQjZ8vLVJJFBUJgbI2jA6w9okIh3KxjQm1cYiOsXekpDsYBmbaAv+Ljur2Fh7DIHgjImJdsFGRzrhYsPsrWJCHDExAXbmMbsdLSO9XDDJ292wSe7wPdtaJjo4YZLw1taJOPAerFwtAszw+ABDBCnQBdJa+dzQDd3QDd2+2Zu2NZJoZG+aZOmASbB1NItzdbdM8XLFZwZ6YNMj3KwzYt1sUlLcbFOztuFT89xt0vNdsEmFztjEIkfLpEIb49gCG+O4fJwB6Mh1o3LNtaJzzLUis82RyCwoEyQsy0qLkA3vh8fZmcUXOlgmFjlhkkvccYmlOxwzKd6uOVT/bdn0IO+C2hDfQkbo7iJmmF8xOwIo3L+EGxFcwieElAoIoaT6mPAyYWwESRwTTmmEio8oE8eFUUTRoWVCQgipnhBCFsDjI/0LuREBxexQ/yJmMHg++Lz+O3OqvN0zKnc6Z1K2O6WUOljHFTliYwrtLGML8GaEPJx5aI6VYViWhd6eDEMkOE0L8U01REJS4XUoC63gdBO90HSM4Z4Ma8M9AHaRWXhzQraDVWSWo3V0hqtNZJqTTXSKCy4uwQUfF+lsnRrihIn1t7GM83LExbliDMNt8SYEjCUSYgo+d30UMuiGbuj2omyaCBKgg8USjCEMXHCZ1l74Akc3bKa7m3WatyM+McANlxjmjEknQBfgZJGcamuRkIGDZ/iSM3lCHoSBrVncSueOTyNJOneX7Eo/r9xq2KlHBZUK4kCnnRRNbU2Jo3ZlJNP7c9Nq9uVn1I4UZTOOFuUyTpQWsidLi9mz5BLeQhmRe6GslHO5vJR3tZzEu15eyr9BKeW+Uk7i36aQBXfLybz7FBLvAYXEfQguH1aQeY8qSCsCxzwRpZT/mELiPy5/It6r5STB4xXB61/dB4+Dx0uf5yGVxH8AXheI9wBcvwdVQRbcAa99pxL8HZUkwU0qWXC9gsS/Bo6/TC3jX6SW8c6B+xfA33WWQuRMkYqYp0lFnPHSQtbhknzGcEFO7WB+ZlVvdiqtPSOF2pQSXy5OjCbxCKHFjHDffFrAzkzKLvf0Ug9nAEp8fB7eKjrH2jwcOKHgdKxpSKqFYWCKpVFIopXenngr47BYjHFktK1laJiDVViQM5bg62gT6WWPJbi7WsQ7YjCReBubSKwFcDj29qEGK24QBQ+6oRu6qR1CgnCAHUeAjj0SauCIpFnYGiQ6OFsRdthbJQW7WqXHuVpnpDvaJBe4WScUO2GSiE6m8URbY0KRjXGM1CXEFjhYxhV52CWRIRT2+JWwIAwyEmi9uRm1wyX5rONkInuGQuSdp5YJrlVRRXeqK4UPaeWix7QK4Wu08vrvVFLqXwcd9usAAq/BjhsA4jGZyH1EIvIekEs498kl3Pvg8XfLiTzQQfNvUymCV8Djb4HnuVlX3XCdWdN0jc1ovspltV6p57VdFte3X2wUd11obuw539bSe76zc2Cxq2NoobsLqHtooadnaL6vd2iur/fA3ADQ3v7hs0N7h2f3Df279g4Agfv39u072y9VX8++s73dQ3M94LKna9/ZjraBufbm/nnwevPNDT3zImHnYj2v/RyP3XKex2w5z2E0n2fVNl2opYsvVVeJLtEo9ZcrKYIrFQCAFaX8qxVE/jXwHq+D9yeBIfgMbkJVUni3wHE36eVC+F4l77e6Uny9hia+WlslvkivrJ+rqhBM0SoExyrI3EPEQsZAXlZVW2oihRcVWkT3355J8nJMzHfARGXaWEDA+AL5pVjoBaZgDIPTMCZBGdYWwen22PBUPC4k0cY8NNrGKjLY3iJ0Fw4X5oZBAvCgbZghiLM+bCNSyKBhNHRDt2+Xg7A3sLFJwW63znABDsLHHZccug2XFu+GTUlxBG7BwSQpC2dIyLbSjc7BAWENCHmuABZeTlkV0CHA0E5mYlV3fnbtcHEe8xi5mH2mjMhZBGfqlyQdHpl3G5yl36OAs3HY8YPOUCIKkf8AnLU/AB3+vary+js1tIZbrLqm63xu2xWxoOsS7OA72wYWe3oG5wcG9s0NDR2YPbD/4PTB4ZEzBw+OnBkZPTJ1+OjRycOHj06OHRmbGBuDGpdefl3jx8ZPH5NqbOzIxPj40dPj4+ObKvA6p6DA9ZNQx44dOwEF9p0At4/Df8eBjh0bOwYuJdvxE8fHwM4nAscfBZdHVjS+cjl+/Ah47BHw3o4cOTJ2ZGTk8NGRg4ePDg+Pjg3vGx0bHBg+BkB1or194GRTQ/cE+Oym6jnt06yaxrN19Ib5appwsYoqOFdZwbsAXM7FijLehXIy90I5uKwsFyxWlfHnaOX82aoK/hSA0gkahX+YUso6QCph9Rfm1rVmZFTwYiOLq4J8c0o9nKJzbCzC0sz0AhOMtH3i9LW3xxhrexPMtX0JGONAAt4kJMLOMnyPnXmYL96EsANvEe5oY+yHRRAv4xXIoBu6odtL5CK8dGXhJSdMJN7BLNbNGZvgC8AQ7mKZkOhgnpBpbxmfJ8kPWMQTnTBxpW42KWW7XXOoIT6FdTB8lBRDbc1JrR7Mz2WMk4pYM+Uk7qUKMh+e/T4A7uAxcA6vAj2mkusfgcsHtHLBHaDb1VViiQOAZ/7i+s6LLQAIXZ2D83sH9s0ePHBoehQA4OjRsUnQl06cOHHs9MmTx0+dPHX81HFwCTpPieQ6569D4ciKQI8qkTJobLWOHj16GkoRJBAgTyAiFbh9DGr8q+0JQOQhAvhz+AQQuD4qE3j4CNSJEycOQZ06dWr41MSp4dOnTx6YmDi1f3Ly1L4zZyb3TU6efqLTp0/vA8+zH3zew4dGjxzcN3hopLd36GhLU894g6DrBJ/TdpLLaJxk1TVM1dHF0wA6s/RKwXw1tX6hulKwCCFUUyVaqKsWnqVXCieAuxmvIHMOkIsZ3YUZVeLMpApmfEQxNdg3i+jtmZDj6khIt7fYk4Iz8k+yNPJNsDLzi8OY+xIsDYLCMGbBgTbGu3fizALcMBg/W1NTL0sMst1kxckgaKgM3dDt+WwEfZxRnLWTVZrndtvMcDebjJRt2NQ8mHy2M0sosIKJZkSSaM52sEgohklkmCBOT67sK8lnHAdnpYv0cuHNKqrwfiVF9LiczH8VOIVXicWcx6UFrIekYs79MhIPwIF/m1XbdF0k6LjU0TGwMLT3wCx0BPDsH4IAdICnwbn3aQkAjq10/k/O1I9K9fUz9yed8IsEhKcFiAwi6gBE3oHIAwQA4jCUPECARqBkADl58uRBKACbYXB7GDx+GNx/AFzfD/btB4DZBwUgMgT2DU5MTAzCSyiwfwA8di+4r//05On+6emp3pmZyT54CXXq9Kl+8L3uBa5vf2/vvoNNjb1HAWyO19WKT9OAY6kgcaapJPZMBZk3W1nOm6VV8mfrqkUztXTRGVat6FRtdcNIVQW3j1hYK06KLa0J9EkudrWPSjXW9okFJzeRCOIRqY9sizLT9oq1NvOPxWODouytQoOtLQK9LfS9HE0RL0vQsHXR3za6odvTb9qWlimmGEyCrSs2fZsTPsnfBZsYBZ2EnUViOiw5tTOOy5fkHGzSy3w98qpgZVBqPLUjN6PuQEk+6xSpkDsvTS7fBk7iYYU0WQydQ1WF8G4tveEml9FyVSzqutDa0nMOxvIHBg7M7geOQRIqAh2lLBQE4aAUBFJ38DJCYDMAoo4LUeVA1ISIUoBAQYBAyQAikzxEoMB1CI9BCA+ZVmByagBc9oNj+k6ePN0HrveC6z2Tk5NQ3VNTUFNdAC5d8BLc1w2cTe/ooSP9+4dG9/b2Du5ra+4bbqjvGOVxmscYNU3HGXThqZpKwWQ1TTBFpwkm6ZW8U8DFjNMr+Icqy7gDJCKjpTCfzk1PINEiQrNLfLYDV4wPTTbT94o1198RbaLvEWFisCvUytA3CDgaH1uTwO0WFgGS0Jgl4m4KXTbqWtAN3Z7kJAja7kiKHqzxdzGPdXLCpPtvw6UmOOGSc2GlEpSdcUwhLE11Bdd9PXKqIkOJ9Vmp9EFiEfs0lcK/Qquov0+j1r9WSRHCBPSr5FLuQ0oJ7x6sRKqhNdzgsFqvtDb1nOvr2zd36NDoNOjSJk6dkoWQVkJHXwPCGKqnCWPJciEyiCgByJouRA4iagEE3D6gCBCwbwhKFUCgJG5kRX1QECIykEhh0i0T2C8DSScUcDcd4Hb77Ox069zcbOv8/NmWWXA5NT3VPnbkWNfg4HB/R1vfkIjbfohV3XCkmlZ/DDiU4zQq7ySAzASjpn6SxWg6xWA0jtfRBAdoZez2whwaOz66mOy7PSnLFrcnHmO+K1pf3zMK5l7M9H1iseZ+Udame0IsjAO9bcx9nVdciyyxjyb10e0bvaXoWRsn4pytEne4W8LkdWqCCyYlA2+SmG2lu5K4djCLK4LjCOCYhKzkmn4YbqKUcBckZaBk3t0ymJwuYUsS08BJ3KNThbc5zJZrDcKuiz2dg/P79g3PwBDT4cOHJ+UTyoqJZBQWzw4g63EhigBR4kJGVEFEFUBkEFEEiDxEVAFEBhFlAAHA6IIC1zuhIEBkEJmYgJpoP3PmTBtQCxQ4pgXc1zw1M9U8PT3dNDUx1Xz69MmWEydOtY4eGuvYt2+ku7O9f0AkbD/AqhUfBq5ljEblHKNDVdaP19CER+uqhQdraIL+KgqvpbiQzk5JLCkL3JWU5YgLjNfX9ojQ0XHeY4A47zHV8dxjZbA72M48eDfGJNgDXLezQFzNwI8OTeaj28uVzJaUwZqlWcBBc074eE8nXFqYs2VSsr15fK6DZAxEEtEdn0T28cihhQcWclPjaR0F2XWj5BLebAWZewMmrCvI0mR1GXQXwtt11U3XYVlqC3ASvb1Dc8PDI2fGxscmJEloaSJaaQIa1ZbnQTYZIKPqAESVCwH7lYaxlADkay4EwODfIKIKIDKIQEGAgMtWmSBEnoAECBzbBAWOa5yZmWkAzkU8Pz8vAu5FND09K544MdE0MnK4rb93uKu5uadfyG8bYtc2DtfQRaM1dP5RZrVojFErPgrcy6E6uqC/nMRpKsyjM9ISSkjBASnZO7fHJNnZBMRg9HdFW+h7RZga+OwxM/TxtzL29zTX93QyMdlhhUHCZUl8LbS7QrfnvsEG6WCW4uaESw+FYyVcbJIkIScrOGoaiczCGkTmwdBTSkxlG7GAfYxK4V8GUHhALRPCAWqvkgtZj2DiuozIu1tT1XBDJOy41NszOD96ZHTqSYJarkoJdloqK5ZQvRR5EMVy3o3kQWQAWS2MpSoP8iwBIg8RRYAANUFBgMg0NTXTAByKGABFBAWOBzCZFs7OztbPzs7Vnz8/zz93bl5wBtweP3K8cWjvofZGcVs/i9Gwj1bBPUSlcA/Ty/mH66rrj7BYjYfZrMbhOnp9D7Wcy89MLiP5bE9KtjDYGY4gDkEIYhOkg7jvsTDZHm5t5RNiYRSwC4IFWXErmmhvhm7PbIPOws06B+eKSfUAkAh2xCXFSxLaxvG5ME+xHZ9M8vPKr44PKxPDHEVxHvMkcBXnKUTuK5JR0CT+o5UEtugOHAPRKOq60CWtbBo5ODolS1rLJ6xl1Upoh/1yhbHUqMYaU+VC1qrGUpUHkU+mywACrn8NIhvJg8ggIgMIzIMoC2OpCZB/gwh0IhAgMoF9IigIEShwvR7CBBwnAJf82dlp/sLCHA9qdnqWf+r4KeHRw+Piob3DzZ3t/R1CYUcvu65xqJZeP1xLFx1auawfZFQLO2lUjrC0kFaTmlpK3LMnJcPNKTwGwsXAwDnEUMc1yEjHy9fS0t3L2my7C87I2xpcN0XDYOi2geS2l661daIR3iLe0QGTGuiKTUh1xMYXOlgklNgaxxXZWsYVeTpmlUUHk/g5GfQDZCJ3gVYhuEurqH8NOIzXy0t4j8pK+feoZMFtZm3jtZamvnNDQ8OzoNuYkCSv5UJOKCC+OS5EESDrcSGrJNLVDmMpAmSdLuRrAFmPC1EEiCJEYE5kNYAog4gMIF+5kRWIfAUSiXhnzszywD4u1NzCHPvChXkW1MzMHHts7Hj9wMC+pkZxVyeb0dBXRxfura7k72fWCQ+yWeJhZp14P5fZ0FVZweZlp5WRQnzTU/H4gAgrK68QAx3nPSba7qHWpttCzI08duP0vN2Mjd2xcDCuFCqoY0G3lbzFdky4iaNZmiucnM4Zn5rsYBWfhTNYGY3taBlfuHtbNj0hpry1MJd5hFLCW6gok0wzcb+shAtB8YBWVn+XWdN0o0ncfQFWO60kso9OwjzFuBJXgeqbDZCNlPNuJA8ig4giQDYYxnpmAFktjPW0AIGSAQRqenqWAy7ZZ8+eBRCZYc3PzzLn5+clgvsmJ8+wjx07yds3OCxqbe5u4XGau2ur6wdqaLx91XTBIMytMOvq22voPGFZSU11WjKxwNs7OsFSe0eojg4+QAfB+xvquPvjzP12Y0x2e1gZeMgS9tpoV/rN37QxmEwTHC7TGlZDOVokRzhZJKXZmSXmQ3fhgksi++/IpsPZV3PSqodKCznTEBaVlPqHFWWCVyvIvIe08vo7jOqG6yJ++6WursH5g/IJbamzeJkHyaHa3GqsVQAyvlGAKLqQ1RLpa40HUZUHWa0aSxbGWk8eRNGFyOdBFCGiGMZaCyDyEAHXOVAQIjKQQMkgMjc3x4BaXFysPXduoQZqcW6x9vSJ0+x9g4fqWxu7moSC5jYOQ9gNHAqAiXgvC1yy60QdVZXc+pIiOi01qSQvJDAxwdU1IMLawCvEUMchyNDQ3c9Y132nvv4OZ2NjNxwGA0fcu+uhTuXlz14YWJtluLhg0yLdcMk5zhYJxTYGhHw4DTic/jvAu6A2O6VmL4XEn6+qEN6vrBC8VlbKe5VYyHpEKubcgxPXNYm7LsBcBZyKA4ag5JPaqLNAAaIOQNYzKl0GEUWArKecVxEgysaEbCVAFF3IegAig4gSgPDXAogMIooAgQLPWwe1sLBQAwXur4a6eHGh6sqVi1Xnzp2rBm6F2d9/QCDitzXX0PldNCqnt6YGuhRxP5/b3MNlNzTXVPJr0+KJuY74kAgEwfohiNFuHcTJ39TQI8jc0MvPxGSHB4K44RB0pP2LvoUawPJZN4tEbzhy2840KQ0uGGRnHF3ggU8lh+4mMtPjaR1FuYyj5GLOIoDGLThKG07pXUkR3mPUNl0XCzsv9gBnceDAoekj8qOx0ZwFqg2U865nXizFXIg605qoKueVz4NAeKynGmsjYSwZRDYjjCUDiKILkQFktTDWegAC9tdBgeu1UtVAyUACBcACQUKDgtenp6arjxw5xhwaGua2NHWLBbzmFlatuJNRK+xm1Qo7WbX1jXQ6n11WwqzIyirNCQ1NjrPD+YXqII4BRjrOvrqIm7eJ3g4PSwM3BxMTPAaP4A1Rl/J8Ni1YGWVjnIK1t0j2ccGlJzpikwqdLJJL4JoTrtapRDhJYFYqvb+MyJurLBfeg+4Cls6C23DthttMRuO11taeczAMBed2At5C4i7QjhHVsyjnlUFkM8t51+NCNmNUuiJAFHMhm5kHWU8YSz4Pom4YSwlA/g0i4DodCsIDCuyjQS0uLlZevnyhAur8+fPUo0dP1PZ0DXCF/FYRs07UXFfDb2cz67t4nMZuCJnqagGntLiSGBqcnOTs7L/HzMwxwFDHMcDM0N3fwmjHLjM9d/kkvTYKlWewYRGCsT02yR1OIOiKSUqzN0/IsVqZdjzf2zWTGh9FaSnKZ41TSnkX4aI+5BLuQ3KxxGHcg6WzcM6n/YOHZuBI7a/CT0dRd4FqS8t5NwiQUXUAoqoaazOnNdnscl4ZQNaTB5GDyHMDCBTYR4UCDqUC3C4H90kuwfNSx8dP0QcHhxnNzV18FkPYVEPnt9bUiFrZTFEzm9lYX00T1BQX0IoiI9PjrEx3BiGIxS4oY10Hbysrb08zs+0ucPAj6Pr00N5/3VuADhzRjTePdXK1Sg6SjOY2i89zME0o9rBLKQvaWViXElPRVpjHHKOUci5WkusfVpD5kkR3FVX0CpvVfLW9pX8RTu8BZ42VJbnRDg/VVgNEnXLep5mdV91y3vVMa6IYxlJ3WhNlLkRVIl2dMNZGqrFUhbHUhIhSgChCRAYQeYhAeMgAAgWgUnbhwgXypUuXJJqenq04NDpK7+7oZwkEbQI2u7GBzWxo5nAaWzgskZhRy2eQi+nElMSilIAAQgQe7x2oo+Psa6Rrv8tEF79DXx/vZILgMQhibYSOT1FRJWVjnuzsjEmJdsEmFzhYxJbAUlq45rWXU3pFRhKtt7yUv1hT1fCoksJ/nVTMeVxSwHpYSRbc5vPbL8NE94mTMBR1HE1yo3op5sVaK5H+NONBnqacdz1hrGdRzvuiAGQ9LkQRIFBgPwUKggTq/PnzJKirVy8Qr169SlxYOE86dOgwrUncyWHUisQ1NF4To0bQxANQEQvbRXV1orqi/Mpc7x1RYboSh2K8E0HsfXR0XHYb6zp5GiIOtqDfNPpWjr+wNw21dMXEecjmi4IJb1gZ5WGXSo4IIHKyUqoGSvLZk5JpyUt5cFW7xzDZzWI0X4fzQu3t33d2ZGR0Sn6sBdqhoXpeENngvFjj4LHPfF6s9SbS1QljbWRaEzkX0vQilPOqAshGwlirAQS6ESiwjwwlAwmAChEKOJQSeHlmboZ89OiJir17D9AbxW0sDqtBwKqtFzPrxCI2U8ipruJXkUpqCtNTihI9Pf33GAGQ6Ora7NRF8Dv09OzdDQzc7U0Re0tpLuUbNTuxFh4JMHTCJOEdrJKDHDEpGbCk1hYIJr4DvXLpKXHlXaQSzjQc1V1JqX+tvJT7GDiOe3Sq+Cac+mPfvkOScNTJU+h4C1TfmGlNNj2MpQwgqlyIDCDrmdZkIwAB9ym6kM0ECH+jAFlPGEsRIOpAZC2AQIH9pVAymIB9JRcvXiwGDqXw8uXLRTMzc8ThfYepzQ1ddSyGiMutFddzGCKxgNMk5LKbGLQKbklSXGG8h6tvEA4HgWK/yxhx8IYOxRKxdUAQCzNpCbHWS5fHsDeItbO3Sg1xtUlOhTPSwqnL7YxjCwK8c2tzU+l7y0o5c1Sy4BXJOtrF3EcrCe/m6+2t/ecOyC1uhIaiUKGrFD5dHmQds/OqNSpdnUT6KmGspvWW866SSH/pACIPEWUAgQL7iqGAOymEunLlSgHYXzg/O1987NhJcnffQJWovplZW83ns6rr+XyOiMthNtTV1QjLS4urMoN8Y8OMdK13IYjJDgSx2qGHuGw303dyMUZgtdcLmJjHI+mGcKlVR8uknc6YZIKDeVy2g3FckSsupTTAK6cmKZraWpzDOE4p5V+jltU/qoBra1fU32XVNF1rFHdfgCvigR/hJFzoCE14o9qIjoytuNLRI6MrGl25lLjVsX93q4q5so1qbGz8K3Acky4udQL8O3bsCTzA9WOKABkD/46OHx2TTbB4VLqB60egwEO2bJVCOYisGyAyiDyLaU2edzmvqkT6agCRQUQRIMpciCJAZBCRAQTcLoICjymCAIECziT/6o2recCl5C0snC8cO36qtK/vQIVI1FrDZTeyOKxmLp/TwOUxG2pqqril+fnUlKioxDB3Jy8/XcTaW1cX76mnh3U3MLB1WAl5ScajPI/pWLx04XTmLriURCdMgmQMBpzG3M4spjAqhCwoLWSfolNF9yrL+a+XEVfW3KZR6l9pauy+MHLw8BkYjjquMLIb7QhRKQpCYGRkZGJEBgO50CVsM8fG4dT3x+Fii5LtzOSZk9OT0ydnz8yenD4zfRLcPnVmYuLUabkNHDZxfPw4fK6pQ6OHpg8c2De778DQ7ODg4Nm9+/aeHRgYmOvp753v6e2Z7+rtWmjval+UqLP9XCe4hOrq7lqA90H1DvTOQQ0MDcxCgeeYOThycAr+7QAPp0BnfgK85vHpqelxqJkzZ8Zmp2ePnp05e2Tx7OLo4vzi6ML8wsjCzMII6PBGQMc5AjplicBDJYLwAMAZAQg6BN67RABPB8H+gwBXWzYeRJULkQFkPeW8L/t4EHmAbCSMJQMIFNj/bwCRh4gMIBcvXiyAAvvygTvJgwIOJffatcs5N29ezQbPk79//yhJXN9WXU3js5h1Ag6fJeKKhS2cek5jZTm5OsN3Z3TQijvR89BF8J7Gxo5e+vrWLghiavnMwl3WiI+Rs3myM5zS3B67kvjGGhPydzhklMeGlYkliyMRuYtwSdVyEg+GpB7U0cU3G4SdF/v7VpLeiqO7UX1L3AF0BlJHIN/5w44fllmDjkyiU+A/6Phg+5iAIcyDwwfPDO4fnOnr7zvb2tG6UN9Yf4FTz75cx667SmfQrlPolJukctLtovKiOwWkonsFxQX38wvyH2blZj3OyM56NT0j/bW0zLTXU9PTvpOclvLd5NSU7yWmJH4vMSnxPxISEt6IS4p7IyYx9s2YxJgfRCdG/ychgfBWdHz0W9EJQPFRb4Prb0fER74TERchUVhc2A/BJVCYRPB2WHzYD0NjVxQeE/5OeEzkO2Ex4W+HxUS8FQ4UERv5n5GEyB9ExkT+ICIm8s2o2Og3omOjvx8FlUD4j+gEwnfB638nPjX+9YSMhMdJWUkP03LT7mcWZt7NJea+UlhWeKOkkni1oq7iQg23ZoEn5s02tzVPdvf1nNw3vG8MfKZHjp08dmhyYnIYdMr752bnhkCHOwRABS8HJ6YmBmVTmkABZzMI9bQAUacaazPnxVKEyEamNZFBZCNhLBlEFAHyNHkQeYCoCmOtBhCZIETAvlwo4FBywO1s4FCyL1+4kAM+w4KDB0eJnc3dFQJeQw2XIWZw2WIGhyOuqqsRlFaU1aSnJeVHutjt3A2hooeYuushOFcDA0t7U1PoUJCNJuW9dM3NCeZ2JnEertbJcS6WcLR3bImDRUKxj3sWLSWmspNcwp2BK+lRYeKbxH0IpzFns1qu9nQNzB89OjZ5cqWs9hSa9P5mhotk36myRa8kWjlZgPfD4yaPHj08uf/ggemBvQOznb2d8w3Njec5fM5lWjXtRml56e2CkoL7GfkZD5Mzk1+Lz0j4LuhUvxebEvcfsUlx34+FnX1SwpuxyXE/APrP6FTCW1HpUe+EpUf8MCwj7EfBGSHv+qcFvLcrY9cvPdM9f+2R6fEbl3SX/3bIcPq9bbrtB7g06z9ZZVj9r0W6xV/M0s0+Mkk3+dgwzeT/9NMM/q6brvsPnTSJPtVO0/lMO037M61k7c81U7U+10jRhPqXRorGF1CaUEmaX2gla/0LSjtZ63OtJO3PtaGStT/TTdH5TDdJ91O9JP1/6Ccb/N0wyfj/TJJM/2aaZPZX80SLv1gmWn2ITcD9Ly7e+k+2ifgPHBIcf++a4Prf7gkev/GI9/i1Z6znL3fF7nrPJ9bnZ77Rvj+VKMr3Jz7hvu/uDt/9rk+oz4937vH5sVfwrh957/F+xzvU522fPbv/MyAy4Pt74kK/Q0iLfZBekH6rqKz4Mr2OPs9v4E+197QfHzqw78jhI4cPHTt2Yv/E6YmhqYmpAdCJD4COf+D05GT/6cmvl/HC8JXk8tRE78nTJ3ugwDFqAWQji0ypO63JZpTzrndaE2UA2Ug11mp5EOhAoGQAUYSIDCDKICJzIjKIQIH9EpBAgdtZ165dy7h582bGzMxczqFDh4ubG7spXHYDHUJFyG9hiAStNaw6UWlRPjXRzzs80NHRcaeurhVwKc479PQc3JCVsmETZK0p7V3MU53cbTKinXGJ2XgTOOKbkO3hmF6WGFXRTCxmTVSQBTeA7pOK2Y8opYJ7HEbTNTiH1ChwGJJpzNGQ1DfOPYwcGfmac5CFiyZPT4KT2JOn4Xon+w/sn+7u656DLqGaVX21rIpys6C06G52YfaD7Jzsh5nZ2Y9yMnMe52TkvZqTkftaVlbW6xlZGd8DZ9xvRGVFvR2UHfSTnVk7f+GW7fZfdrl2v8fm4P5ommX+oXG28ceGWYaf6Gfp/0M3U++fupmgk0/X/lwrTetzzXTQsaeBjj1V80vNFS1ppmstaUFlAmUD5QDlAeUDFWotaRaDY0qASBpLGhSNJaQCXFZqLmvQgKo0lzXpUtWsSKMWqE5jWYMhJ3gb3l8rPa5a+pgqqcDzaZZrLWuUaS1plGouaYDX1CrUXPk7crSXtLKAMrWXwPtYAuBZ0k7UXtKJ11nWidNZ0o4B1wk6X2pHaX+pTdD+QqIY7X/pxGl/Bu7/TDcewCle758G8YZ/N44z+ZtZnPlHFnGWf8bFWf+PfYz971wJ7u97Rnv+wjvS+6e+Eb4/9g8PeCcgPPCtgD2Bb/mHBvznbiBfAJuA6IDvBccFv0pIj7mbXpR+lUwvn+OL+Sd79vaPjh8fHzo7c7YPdDydly9e7gSdWAe43QncTBcASfeJUye6wNe/6asUviBhrGdWzvs8ASITuJ0BBRxKOrxcXLyQeeTIifyurgESly2k1dXUV0N3whe2UrmshpLS0qqU8PCEQD3EdjvAAwAJ1h1BtgGH4mGHIObmX3Mn9kiSpYNlYhEcjxEKx2OkVg+Sizlz1DLB3XIy/1W4Vnd1VcNNOPEgHIsBO5QTJySwQBPfL7GTkM8nwHLpE8dOPDkBGBkZmRraPzTd3ds919zevMgT8i7SmfRr1ErqTSKJfCe/sPBBdm7uo/Ts9NdSM1O/k5CZ8B8xWTFvhudEvOOf4/+TXbm7fr4tb9v7Lrkuv7PNs/3AIscSQuFvejl6f9fM1vwMyUa+0MgGHXIu6Mih8kGnXogsIcVARHCbBO4rA514paSDXwId+pIGE+zngOP44Jh6ZElDpLGMNCLLSBNQK1A7UIecOuXUpaDOZyj51+le5bXh39gm/dvBe9AQg/csBBKsvE/4fgGgljSpmkvaFO1lbaL2slYhUC5QpvYyhCZwS0uaSQBQCUCxWhIQQQjpEvQ+NSAY/N2EYPKxOcHiL5gY7J9sCDYf2Ec7/M45yvm/3CLcfr0tdNvPPYI93vMI8nh3R5Dnj7yCvN/2CfP7fmBU0OtRKVH3UvPTrxaVFy3QOTUTjW2NR/uH+ocPHz08AN3I7PRsx9zsXDvohNtARy2BxuSZyTZwn0SwjHc9AHmact6NAEQGkY3kQWQQ2UgeRAaRzQxjyUMEAkQWzpKHCNifCSUDCdiXDtxJKtT169fTpqfPZh88OFrQ2tRFEggaK/gQJvyWKh5PRKmp4eXk5pbFRETEBNjYeHnp6UGoYI2fAMQVm77NGRtXRCvnX62k1L9OBC6DVMS5x2U0X907OHz2ycSDqLt4adyDvHOQlZzK8g8w5zAB/kEXcWT0yFRXT9c8V8i9RKGX3SwkFt7NyM14lJ6V/mpmZubj/Oz8R8U5xQ8L8gpezSzM/G5UYdTbPoU+7zkUOfy3ab7ph9p52n9H8pAvkHzQCeaBjj0HKAsoE3TwABCaOeCsPB90gkSgCs0lpBbcxwMSSzvPTmknC9UL1CNVl1wn2y5Vqwq1yR3zsqp1FbXLwbFL+vnAz6oPqF/uc+uQwpSvseKQSAA8ucDZpOos6cbpLulF6y3rROhIpB2pvaQZDb4TguayFkFrSZeg+5kBwfj/LAiWf7Yl2P/eLcrtVzsjvX/ivcfnR97B3j/a4ef5YzffbT919XV71zXA9Z2dYbu+E54c/kpxRfFsY0sjrBzrvXThUsvdW3cbbly50Qg602YIDtDMWkE7awGdeTOAQRMASzMQvFR7kSkZQNbjQlQBZCPTmsgAsh4Xsp5yXvlE+lYBRAYRqCtXrqRBgcdBmCTfvXsrCV4/MjKe2yRuJ9VV8yrZjAaaUNBEa6pvJerp2XkgiJnFV+ErXKaPKyaJCJzGzRqa+JWDcGrzI9I1u6VhKTSX8WIDQ/b9QEDIEtMwBzF8cPhM396+s+KWxnNMHhvmHa5XVFTcIpVSbpeWkO8W5Rc9yC7Ifi2xIPF74QURb/kW+v3UvdD9fdtC2z9gC7D/a1Zg9pF+nv4nWrlanyG5yJcaeeDMuBCoBDiBMgACKgBFDThrZgHxwH4h2N8I9rcAtSlxBR0KUJBXm4LaUa35Gan6rDoUnI7M7bQAp9MkcTpLmlwAEAiaCgCREq1lSdgvFTiYeJ0lHYLekk647pe64Xr/0osw/NQoyuQTs2izv1pGWv0ZF4n7wC7M7r+dwpx/7Rq87b1tQdve9Qzyets7eOebvuF+3wmJC7kflxl3LYeUd7aaU32svbd935GxsS7QoTZdvnBZDDpH8dmZsw3AsTSenjzdODE10TA1M7VpqxQ+xbQmterMi7VaNZYqgKhTzqsKIDKIyACyWhgLAkRZGEsGEACGzNUAAnX16tUUCBLgTpKgwLEp09NzaU3iVpK4vpWkq4vfgUjm6JKlza1TQ1xwaSQ6tf4unMUWzi2FAuPFdBXKxySMTcBcFExSN7c1L7I57MsUKuVmEbHobnZ+9oPcvNzH4PLVjMLM1xOKE94IKw770Y5ir1/ZFNv8P/0C/Y+RQuRzpAh0LkWg0y9aCSMBQCxrkDQk4RPNWuAcuGB/g/SMuFNJSKZDroNTPHNG9WK6HBl4ZC5Q5v66pfeLkGVNJvj+KVpL2vnaS3ppesu6ibrLugQAmCidJe1o4G6idZb0ovQ/N4oy+sQy3OrPthF2f3AOh2Bx/6Vr4Lb3nHe7vefk4/xTp92uP/IM8fpuaFLErbyyvFm2kHt47/69feBkp212erZpdm5ODDpq8cyZmSdJdOBgRFNTU2stMqV0WpPNAMhGynnXM62JYjmvqjzIai5EVR5E3TCWMoDIIAIF9idD3b59O6GrvbdY2NBabmy8zdMIcbZ5ApBt+NQoL4eM8iqq6JGA23oFlliiAHn+eQrZdYmjABsMOR08ePBMR3fHHKeec7GytvI6mUK+RSoh3aYUU25XlFTcIRKJD9JK0r7rTwx816nE5TdmxWZ/Nigx+ESvRO+fWkXARRRIwk1fOQgaEAd0FkJJ+GPFObRL9O9nvarOhtHO+ZvlapTtk88rdUjc5ZJGoyRXs6xFBe4lT2tJJ1EXwmRJb4/+km6I3pd6ofr/0g/X/8wgwvAfppFmH2HDrf+fQ6jz++7BHj/zCPR418N/+4/c/be97RG0/Q2faN8HhKzYi+RayjEAlh4Ik1duvsK9ef06F3TMgonpCSFwLJu+SqG61ViqAKIYxloPQBTDWM8bIIouRBEgPZ39RU3CVqqNjddOAwN7Oxk/NF3tkuN83HNotHLRY7Gg6xI6KnxrJXMSMJENL+H6JfuH95/p6es529jSdI7D5Vyi0+nXyynltwAg7uYX5z8EkPgOgUh406/U712PUo/3bYg2HxiVGH2sUazxKVICfuBQJKAKoCqgOmnuQSSBxFdnnp1Kwkqog0ClCjSKuZkOuWKB7pV9Go1AXM0lLbrmknap9pJ2js6yTorukk4sUKTukm643pf6YYafmoaZ/c0yDPNnXJj1H+yC7H7jEOj4awc/5184+zr/ZFvAth/4Rvg+isogXC4sL5xgi9nDgwcGYeVXw+L8Ih90hFzQwUJY8IBbkWgrAbKeaqyNTGsig4giQFQNKlQnjKUIERlAVIWx5AFy8+bNxP7+/QUNDU00V9eAXfr6ro5P5q9ytUlPDfAqrKFRha+3NPach7kPtGN/dqCQSTKQ7sTJ06Ojo1OwFJZdz75YRi27WUQsuUMsId2hEateoZGq7xSRih5HlEW85Uh2+o0uUfdvAA5fIkQpJIq+CjchdGSlQqlF7ofdpSS8hHaGqLYqVNYuBYss4Q/bIg9Z1qIAx5IGHEukwZJeiMGyTqDekk6Y3pJ2hO6SfqThp+bhlh/ahdn/1jXY7efb/D1+6rzL+T1bL7tf2O60/cm2EI/XYrPjF/jNgqGZszOi+3fuM+/cuMMAHTNnYmqCOzU1BUHCnp6e5gCwsM/MnHmuo9LVyYPIEumKuZC1ALKePMh6wliKAIG5kOHhI7ni+paqIN8wXzM9R1dJKa+zM0HfDZ+SvcevkEUtF3yns61/Ea222jxJZhMGoIAlsiOjI1O9fb2wamWRxWVdqqXXXqspr7lRSaHdKi0rvZdGSn09mBz8Q9cy1/ety6z/aEo2/UiHqPMPAIsvJG4ChpwgJJjgRyiQ5CS+SlavlphGOzVUL0qITDHJ3y5N7Is0ljRZsGRZe1k7HziWBACXCP1l/RCDLw2CDT83CjX+u1mY+ceWIZg/WYfgf28f4PBrJ1/n91z8XX+4LWjbG7sJu+8R0gnnSNWkI9393R2z07P8GzduMK5fuV4LgQFBMjUzxQLO5IWd1mSzynkVAaJOGEsGEUWAyCACAXL40FiOUNBEh+W8pnpu7hKAYDDhJq741DxCSKkAlvDCwYEoQJ7OWcD8xeHRw5ODg4Mz7Z3t8zw+72IVveoauYz8CqmMdIdYTryfTcl+LaIi4u1tZR7vm5BNPgSA+BwhSyFBkVQ3LSPVGjA/sQKKNrnkdQeag0D1DXQs8mXdvSvtXEOgsaxF017SyQFASdBf1ovUX9IFTkU3Qm9JP9Tgc9NQs48xe6z/RxIC83f8tf0u+18Bl/ILR1/Ht3dF7L6XWph6hiPiDB4aPQRLizmg82aCDp0xtzDHALfr5mbmGMCpbGh23s2e1uRFKudVdCEQIKdPnM4ScJvoSbFpwXp6rtskI9PtTZMsXWzS8xMiKxoryPzX9u7dfxaFgvrgOHn8pKRcFuYsWtpbFlgc1qVKWuX1GmrNNRaVdb2KWvVKWkXad3aV7/oJphzzgQHF4BOdcp1PNUga/0JK5VwFsPWS8tdWaRK7A3URqNCE/tckS+CD34gGH4ClXHtZN1V3ST/MYEk/CCjY4Av9UMPPDYFbsdhj9aFtoN1/O/o7/dJpt8vPHLydfmLv4/TOjjCv+4n5iZNNnU1doDNmPrr/qOrmzZtVEBxT01N1wKGovcztRsaDqBPGUhcgW1HOKx/Gmjw1nVnPaaxKScgNlwJEC3G3KcC6YJMKU+Iq2yrI3Nf2DQ7PoHBQ7TBggntoaGi6s6fzbGNT4zkuh3uptqr2WmVl5a0Sasn95PLk7wZQA37sUunyG7Nysw81KBqfSpwFVVrxVAt+BBwlyezVxkegQoXqqxye7ISqSy5xL4KDJ7WWtIk6Szrpesu6BP0lvTD9JRgCMwox/qd5iMVH2BDc/9j42f7OZpftb2y8bX/p4Ov0jueenQ8J6THzpfTSQ+0D7XDEPAt0ntWgQ60CHTodOJNqqGe5SuFaifSnmdZE5kI2kgeRQUQGkDNnZjM4LHFVVlpxpJ4exkMyHbwDJtPW0TK+MD2xsptcwnsVLuqEwuKrqigo6C4amxsXa+tqr1RQqTdqqXXXOVTONRqNdjuGFvOmXaXTb7QqtD5ByqVVT9BVwOs1QAJp+EkxoY0ms1Gh2vzqsHbpWJYB6W+Nq7GsU6C9pB9tsGQQaLisF7hSZgzDX2Z7LP5iF2j/345+Tr+022X/a4yn9W8wntifeYRuv5dfnn945PCI4LUHr1Hv3r5LhfAADgWCRAIQAJVNX2RKNi/WRsJYqgCymgtZbzkv+NvSIEAKc8tipADRRdwssxwczWIK4XrkZcX8xwe/hQCRK6GVhKLaOtvmBSLBeT6Tf4lXzbvMrGFeK6kquR9Ni37Trcr1V9hK7J8MqAZ/A7D4/EmZLENaAdXwZCwF6ipQoXqeYbD2r41dWdYAjl9ToLmkVaW1pJOvs6wXo79kEGK4ZBho9IVxsNGnZiFmn1gGW/4Z52/9B1sf2/ftdtn9zNnP+S2vMK/7hEzCdDW3tu/48eOs+6/cqbhz6w6EQ+X02WkagMozX6VQVTWWIkDWU42lKpG+JkAKK+IRBLtNApDt1gUuNsZx+TkZNQdIJdyHBw+OnBk78s13GJLR24dHJeMtOrs75+oF9RfqauuuwPEWlfTKW0U1RQ9jamJ+4Ep3/S+9Sr2PJaCgSVUNxJaGodrkxlOgP15UqF78ZH2HXKK+VTLaflmnSGdJP0F/2SDcYNlgD3ArIQZfmAab/h0ThP0T3h//O5tdNr/FeOJ+i/O0/rlr0LbHMVnxU9wGbsf4qeOsc/PnaJcvXK4AHb1EwJ1QZ2dn/22VwvWEsVStUqjoQtZKpKsDEHXyIHA6E/CaqVy2gEYurEqSAkQP8bTP24Y3JuTBhaFIxewHo6NHpr5pAJEfpAfzFw3NDYsw2c2p41wSM8QXmbXMG+l16a+50d1+aVRl9Bddmu4/NSo1Pn+St2BKJ/9TNkobFSpUL3+ivv2rKkc4wl6brr2sm6a7ZBgMHIqf0ZJBoPEXhsFGn5kFm3+MC7D+f/Y+ju/jve1/hduJ/wXez+GNgITgBWY9s+P6levUN17/XumNqzfIECKzc7NPVc6r7iqFyhaZWqucF64Vsh6AnDt3KYXHEVWSydWpgB0AIM76yDZ8jidONya3KJcxTi7h3ocrwr3M05jI5zDg8qK9A72zbW1t8yKB6Hw9s/5iHaPuenFd8b3ouug3dtTs+KUl3fJPmjTNTyVhqGppKIqrIsmN/vhQofp2lROD/Zr1msvaVO0lnWzdZf1YiUNZNgg0/NI40PQf5oGWH2H9cX/E+tr8AeNl/Vsbb9t3PfZsfxCVSZis5FV2Hzp8iHHx/BXKrSvXSaDTJs+fmy+DWm1ak81apXAj5byr5UGuXr2UwmDwqVVUZiYAiDuC2Bsgrtapu8y1onOIhezTZUTeXQiQlzXhfXT8qMRhNLY2LjDZzIvsOvZlYZ3wMpPJvJHMSP6uXY3dbzWqNP4pKZulSXMXcHpxIRqKQoUK1SpgkRXC9K+ARZOhuayfZrBsGGy8bOgHFGS8bBBi9C/TIIu/WvvZ/R6/y+43Vp7Y35vvsPgt3sfu+7F5Ccf3H9zPfnDvQendG3eJ8/PzZTNzM+Q5ABHgTEhQqhaZWisP8jSj0tdTzgvFZAoqaqrYOQiCAIBYGyHumCR/c62InNIizjQFAORlGd0NNTo6Otm3t2+mobFhUSQUnW/kNl0QsARXgMO4H1AX8EPbWtvfm9Sa/FWDrvHZE1hwJeGoJaRZbrpxVKhQoVpvcr5DNveX5rJWndayToHusgHBEAJlycjP5AvjINN/mgWZ/83SF/Mnm102v7PZafMrex/7dzzCdtxOyE8Ya+5p5l+9dJX8+uPXC0HnXHL27FkSAIvKVQo3ApDVVilc77QmUCyWsLyumpu/AhCMCeJqkxxkjkRmlxZz5sqJvDtjY+MvbtIbAGPf/n1nOjo75kQi0Tk+h3+JxWJdpbApt+NYcW+4MFze167R/j9JKKpWMoHgsiTZLZSbHwoNRaFChWqzw17tctPhNyLLOpU6y3pp+ssGEQAoQUbLBoHGX5oEmP7DKgDzZ9xu6w8wXtgPzD0sf2frg38rKDFovpJT2Tk6Plpz8dzF0kuXrkqgASECnEnJwvmF5zo7rwweN29eTWGzRRQGo75wZZlbCzPEHZccCgCSRS7mLlLJ/NsvmsuAeYyWrpZ5gVAAHEbjuQ5exzkmn3kjkh35plWd1R/0avX+qVmr+TlSg3z5ZLW7ZjTZjQoVqufkUFrlpsCHSflWjWXtaq1l/RSDZSM/42VjH5MloyBj4FBM/mnpb/WhzW6b31l72fzWcofVb3A+1m8FJgedae5q5n7/u98teOP1N3IhQIA7KdmKZW5XcyEQIHCJWyZTWLQCEDMLxBWbHGGChGWVlXIuUimCV57HPFjyqx4eOHhgqquv62x7S/t8u7h9QcgXXqRyqLdj2DHf92B6/NqUYfohgMXnkunJmU+WR116Up6HOgxUqFC9SA5FrsIL3tZiay3rEHWX9RMNlg33GEGoLBn7m35qEWj5seVuzJ8xO7F/tNyB/R1+t91bOwk+l3PKcwa7B7oZ1y5fK7p983Y+6NgLgDspAu5EbYCoM6BQnVUKhcKmMjZTTFwBiKkl4oJNjbLSCs2mlPIu0yuFN7caHBAa+/btO9Pc3jwvEAjON/OazzcLmy9SBJS7nmzPn2nXav+fpDKqTiqOFBjtKCxQoUL1Eo9F6V8JeWlyNJb1s/WXjYONl418TZYNA4yBQzH5zNIf8yFut80fLLbj/mi8zfR/MDsx74Slh58Y3D9Y+/rj1/NeufFK3tOEsWACfb3TmkCAcDhi0gpATDCIEyYpxko3OodSyr1WQxPd2Cp4HBo9NNnQ0LDYJe5aaBI2XSzkFz7w4nj9xJpl/Uc9pt4nSC3yhcRhwNHdjXKju1GhQoXqm5SQb/+q+lNTrAlnH5bkT4yCTZaNd5l+aeJn+pmZv8UnFr5WH2K8sR9YeWF+i/O2/klISuixW7du5Z67eG7LVilsaGgjs9ki8koZrzEWcbSKj7MxJuSXl/JvMGubrm0VQOAI8K7GrgVPnudPNVga/5C4DLbUYdSjSW9UqFB9i92JdDp7LaamxJ0YRhgtGwUZLxsHmHxpFmD2d6wP7gPfeN8F6EIUQ1kbmdZEVs67Vh6ktamdxOM1UoD78EAQIxvE0TIxwc4svrCczL8FAbJVORAIkMHGwXlTjumHCA/5Um6UN+o0UKFChbqTdrlkfLc0GV+uu2zia/IlAMgfvQjeF+/fuZ+jLBfyrFYpbG/tIgIHUoEgcDJFQzziYJmc5GCRUFxO4t3hs1qvbNVytkP7h6b3N+6fN2AbfCxxHGjDQYUKFapV3Qmctt5kl+kSbrf1Hz3Ct9988ztvZm0EIOsJY8kDpLOzv4TPbaLq6uJ3IIiVHeJkkZDqikkiUkn8e0Je++WtciB7B/fO9Df2L+qydT+RjNNAGwkqVKhQrQoRjUYAEB/TJawv7k+uoa733/reW5nrqcZ6mlUKIUB6e4eKuewGGgCIJ4LYOiB2FvFp7vjE0nIy776I33Fpq3Ige/funels6DyvxdL6x5OqKlSoUKFCpdqFNCPLJr4SgPyvU6DTa+++9W7mVpXzQoD09+8v4nMaq4yN3b0QBO+I2JnGp3naZZVRSLwHjaKuC+PjR09vRfluX1/fbHND80WEiXwmqbJCGwgqVKhQrZkfMQ40Wbbyw3xo52//H+/98D0JQLZilUIIkEEAEDZbSLe28PSWAMTWJDbDyy27XAKQxu4LWxHCkgCkt2+2QdxwGQDkiyez3qJChQoVKtXqBAAJAgDxx3yI97V76/1338+Ym5sretYAgYJTug8NHShksxvo9vbePgAgTgAgCRm+HjlV5STew5bGnvNbARA4RUlvd+9sjajmFgDIlyhAUKFChUoNdQOAhBkvWwRY/dXa2/rdX777y8y5xblNX2RKWTkvXFBq//7RAggQr21Bvghi4wwAEpPpv6OADgHS3tp3bqsA0tPZc7ZEXHIPYSkMqEGFChUqVMrLe3uQZcNoo2Vzf4u/Yb1xP/ve62/kwmlNtmKVwmvXrqWOjIznc7kNdB/PPf4IYuYqAUiQT2FdBYn7qKtj78JWAaSztXMuQ5jxGgAImv9AhQoVKnUBkmi4bB5g8Ql2J+6Xd+/eLVzP7LwygKiqxlptfRAIkKOjx/M4HHG1/66IABlAssJ2l7CAA3nU0zM0v5UAiRJEvSEBCDraHBUqVKjUAghcyMok0PwfGE/s+3DlQtDZF27FKoUQIOPjJ3IhQIJ844L0EJwbgjeMyw4NKuKUk/iP+nqH5rYKIO3N7fMB/IB3JNOXoI0DFSpUqNQCiF6O/rJJgOlnVp6Y356YPFGxEYCsp5xXGUAi9iSE6CFYdwlAIgOJPEop/3Ff74G5LarCmmhrbJvfxtv2nmTuK9SBoEKFCtXaAOlGlnWL9JaNA0w/t9qJ+V17XxcTTu++FasUrgBkQgKQ6LDkUD3EdBuCN4jNiQgpEVBIACB9WweQ9sb2BRuezX9JlphFAYIKFSpUawOkC1nWLtOBY0G+sPTC/L/aeob4+vXrWwaQEycgQBqr46LTVwCCM4nOIYSQJQDZ2z98dqumMmlpaFk0YZt8IFkQCgUIKlSoUK0NkE5EMt27UYDJlwAg/1NML+6CANnIKoXrmRcL6iuAiOUBEptDCCXVl28xQJpETef02fp/lqz3gQIEFSpUqNYGCJzivVZrZTT6TswfU0gZQzdv3syXX+r2Wc6LNTk5k8NjN9QkxmaF6elhPCQAiQktE0oAMjA8uxUAOXz48CQEiDZb+y8oQFChQoVKfYBoMlYAAhzInxIKkg7KHIgiQDZSzrs2QCa/DhA8AEhcGEUEAbJv6NkDBD7/wdGDUw2ihvMaLI2PEQEKEFSoUKFSSxAgLM0VgOy0+t/wjPBxRYA8zTK3a+VBpqfPZnNZ4tqEhNzwFYAYx+TGh5MbthQgBw9OicXiCxpMjU+QegRddRAVKlSo1AUIVxOuTLhsucvqz0FJgadXA8hGFpmSAeTatWtKQ1h8rrg2Ob4gQgEggi0DyMjBkSmhWHwRAOSfiBAFCCpUqFCpDRD+VwDxifU9qwwg6xmVrm41ljxAkuLyIwFAtksAEhdOadxKgEgciFACkM8REQoQVKhQoVJXmvXSEJaP1YceETsuXL1xtVAGkI1Ma7IRgCTG5kY9AUjsFjsQuB66UCyEAPkCBQgqVKhQrQMgIggQYwlAXEPcr0GAnDt3rlhdgMggst5lbiFAJibO5Mo5kJUkenxEmbicxHt1qwAC10MXiIWXNFgaX0oAgjYKVKhQoVpbrQAgjSsAsfDBfOgQ6Hjnxo0bagHkact5IUBmnoSwsiKflPHKqrCG9m4NQOB66Dwx7zIKEFSoUKFaJ0CapDmQ3VZ/wfvZPXrlxisSgMggspFR6eouMjUzOZfD4zTUxcfnREhCWBKAhJdv2TgQyWqEACAsMfuqBCDoeuioUKFCpT5AmqU5EAAQax/r7167cq14KwBy9erV9DMTE7kSgBCeACR6S0eirwCkDwCEe1WDjQIEFSpUqNYDEI0WjRUH4mf1EXYX9g3QuZfIA2QjYSx1ZueVB0hCTGa4FCCE7NgtBkjP3r6ZOiHjOgoQVKhQodoAQGAOxA/zEWYn5u3VALKZqxSuAOSMHEBMPCTTuRNCSiWTKfZuwXTu8Pm7Brpna4S1NyQAaUQBggoVKlRqA6RNY9kIAMTcz/IjSy/LH8NFpRYWFkrkAbKZ5byyVQohQCZPTedBgMRGZYXpIZgVgIQHy9YDGdoSgHT2dZ2li6tvSgDSgAIEFSpUqNQGSDsASBBwIP6WfzXbYf5zAI7ShfML6w5jrXdaEwiQEyem8iFAosPgbLwAIJIlbf2K2XBFwq1Y0hY+f0dvxxxNRL+FsBHUgaBC9bKqDfx2UW2tWpAl4ECWjAONlyz8rf5q6mH26/ML50lbBZBjR08WcABAQkJS9ugh9u6IrWFMZujuImYFifeoq2vvwlYBpBICBK6H3oQCBBUqVKjUdiAdGssmQabLFgFWH5tuN3sfwIMEQ1gAFiWr5UGedpEpCJCxw8cLoQPZvTsyeAUgJjGZQT4FtRVk3qOO1r5zKEBQoUKF6uUByOLiIlkZQNYzKl3dVQpHRsaLeBxRnZ9feKAegnMDAInN2L0jl15O4j1sb0IB8kxEAooASgBq/hY19jqgSKAoIP636H0zgVKB9kiV/i17/2jbeqYAQTpgFZZqgDxNOe9a05ocOHSomMMU1fl4RvpLAGJnEpfu455dSQEAaWrsvrB1ORDaKwj7KQHiD+Qn/ZFGKAju8wAqUfElhKp4rL9UTZv0hcOR9kZAiFTEb018fBlxkXvfYd+C99wkbTuICuWpeFwK0E4V7ThU+pywLbNRcHxr29ZqDuTC5gFktTwInN59376REg6zoc7dKdBPD3F0lQDEyy27HADkQaN4iwDSvUkAqQUiA2GV/FjDgehAglXOYChA1nKP0QUqAqqRNtLN+MKFCn9XwbfoR+4s976DvwXv10f6XlOkt+sV2hc8kWhQ8lgIBhqQl5J2bCttM7Att6Dw+Fa2LWUACfw6QOYWF4mrAeRpynllAIHlvAMDB4k8ABA7Oy9ffcTJBbGziE/zcEwpKyfz7ovrOy+OjR2ZeNYAae9qP0sVUZ8eIDJxFH50fusAAHQIFlJ4sJ7Rl54h/bu8gcTfosZeIe00YSfIWOP7q3zJ3ytRDhIiFW1T8T5FNSsAx2ITnfC3tW19wwFist1cEsJalAJkPS5kvasUXrp2KaNv775SuCIhDufto4/YOCNOFgmprpgkYjmJd1/Ib780Pn709EsHEMUfXsY6H4td5ewQ1bNXAFD8S35G7Cltex5KTl5qpKEoddxnsFw79thEJ4zqGwkQsx3m78/NAYBcUB8gMoioAogqFwJzIL29gyS4JrqxroO3PoJ3Quwt45KdMAklFLLgLp/TdvnYsfGXHyAp6/zx+6pxdojq2Yi1ge/sRVOzXBj1aTv9YIXQDAoQVGsBZFE9gDztqHQIkO7uvWQeWwQA4rjTALF0QBwtExPszOILgQO5zWU0Xx3/tgFE9qNFAbL1gjF9h28AQARyhRIe0iKNzQBIBtpGUK2RA9mxUoU1tzhHhFOaKAPIZk1rAgHS1tZHYXMb6LqIjRcAiD3iaBUfZ2dMyKeQeDeZtU3XtiKJ/tIBpFV6ptyk0PlxpPsb1azQYW3BGWWrNCnLkEqoxmN4CsdxpX+rsqQtX3ofT64kmbtKglfZZyf7znye4jt7VhJJ3xtHqtZ1uKjNdiCb+Znw5doEbx2fBUsqjpr5O8V23iDXXhSP5Sppn7K2J1SzrbPWyBM97WvIVC/3WfCeozNUzIEABzI/P18mD5CnqcaSAURVHqS1taucw2qs0kWsPBEEY4s4YZJicAYxucCBXK+targxNj72TJPoUO19LwlA4O0subPLKmnDyVJSLZOv4rlhZx4rV+UlUjj7dgNyV5CudCyBfAdvpHCshRJwFaooH/WT/gAUz/7JctUsKQqVRLIkrkiuk7RW8tyyyiHaGp9dpUKHa6HkuWTvzQ4Ir+KzsVDIVTVLE6luqxyjjsoVKnsUK/OUuSdv6esaKTxG9rfgV2kXWwWQShVVirbSyi5V41h2q2hLO1XAALbzOLligUZplaP8Y7OlnT1R7rNOkD6eoqRNRKsA+Gptq32TXkM+f6WsXRhJ2wVHASxb7kCkALmwOQBZLZEOq7CaGzsrBOwGGoKY7EAQrA3igk2MMkcisyml3Cv0SuHNZw0PCUBedAfSqtCRygQ7mcBV6vyZCmd8WCWNTqRQSuyrpBNlKDTqFmkD9Zc7plbuLEj+bB52XlSgMoXXl4dSqpK/PUU6DkFxf6X0hyF7jkLpe2BIO1BEDq6rfXZVcu+HLIWa/OOt5QbehUo/a6wSEHJVdF62cp8xdZ1niFFyr5Ep7TTICmAIUvhOWqV/q7+STslPun+XinFIWwWQVLnPhCgFhmJ7K1R4DF3h5EDmPvwUTizEq7RzeH+xkjaAU7IvQ8UJmbKxM+q0rdSnfA15FSl8Fy3Stu+t4nmwzw8gQKXKKrE2ssjUamEsAbeJxuUKqQii52GMWOMQV2xyhCESklVG5FymVYhuoQCRdj4lKjoxWYMUSDtxCxXlww3SBli0RhknPH673DGxq/ydYdJOXHHkbbjc2Jc2JWfnsud2lP4IK6SdrI+Ss+1MhfdcJ/f8sUr+9kCFH3GbtPNQ/Oyq1ii/zlARdjFSOINV9dkEqTgbXUv5CrBUzG1YqJHU5iicob8IIaxiJZ29MmAayY2Vkm+LRgpjqFoU2lKlnBsoUWjnMgXKuW9ZeK9cAUby47bYUqfsrQCjxnW0rYqnfA1l36nisIBGhdc3lc42kPccAOLxFUDkHYiiC9msVQr5nMYqNlNUAQCyzRixwSJOuORQ4ECyyETeeSqZf3t8/Njpbz1AVP2gjZSMFaEo/EBalYQ6sGuMA6CpMVaAr2LULXONMQPVCj+iagV7Ln9fsVwIgCqFh3znHKci3KEKEMFrAISpxneWK3eMg4pwg0B6v9U6E9j1coBSNZqZusrZrrL3sZlJ9JRN+D3UKbm/QQGMGUo6RmXtMHyVz6FNwd1YybVHpvR30qQi1EpapShBnd+lsu/kaV8jTiHyoPj8SQpgek5TmZh4mP2XPEDUCWMpLjK1nnJeDkdcza4VUCBATBATK8TFJikYAoRUzJ+HABkbG3/2Awl72s9WiatuAsp/+cIDJHeVM1TFMxVlCVT5vIKq11A8u1N2JpOpBADyP2ojafhBXjXSMyNVdp2pcObcusbZvbK/rU36t1et8jc/DUAUz/bKlBwjC0/krvN7z1rjeWXvz0HuOH8l3zHzBUuiExWmzqlWaBeKuQmZs5If4a3shKRgje8zeI3fikwMueMS1/g9q/rNrNW2nvY15Nu8slwRfRNPGjYCkIAnAPm1BCDnVkJYTwMQdcJYPKaohlEjIMMQlhliZoE4YVP8zLUickhFnOlyouDOs3YfKwtKdZ6tEtJXANL4ggNkrR+N/Gur6jyC1RiJnL/KmbbsNRyVNNSgVWK7ypStouPLULNTk+VZaApJy/YNfHZMNb+zLCVhOMXPxkhJocBaP0SHNToJZZ2VqZLv8EUDSP4624Ri6LVa4T3WKriPtQBiukYRgzrf+1q/mc1oW8FqAoSqhuts2zqASBaUCjBeNofrgeww//mFxQtkCJC1HIhiMn09y9yCx0ggwmXU19ZUcUshQBDEwgxxs07zttKKziEWsk+XlfDuHT58dPJZA6R7oHu2Vlh7XYOj8fwBInus6XMGiEghrKAY15UPMal67RapmlfRRjrwOhUdj62S6qtnARDFz6ZcSYhpvRPqNaqRo1F2tmn0EgAkWCGP0bqONiHvvErlPiPddQBkrTFVLwNAotfISzKeI0DaVgBi6Wf5kYWX1bugoyfDVQmh5BPpG6nGWm1ak0uXzmcz6wR1VVRGMYKYAIBYGyHb8GmeVrpRucV5jONPAHLk2QOEIWRckwCkYZMAgn0KgGBXSX5uFUAU465+cmEFXxVndfKv7b2BRsxcx2dWp6L0VhYCaX2GAFGMOctCBm1yydLqpzzpqFLzc3qZALKWE1it9NdCoYKrTSE09k0HCHkN1xm/SiXbswZIqwwgVh9hvLHvgM6etDUAuZTNqOUzqqjsQgCQ7QiCN0TcsJnueANCXmEO4zCpmP1gdPTI1LMGSN9g3wxbzL66aQBpU7CcG3EgHhvsBDcTIEyFiii+XAlt7Bpn0aZqjKRvfYoOXPb4AiXjHlRVKG0mQIQKr1sllzx33EAMWhEg5S85QFqkZ8VtChVI1Wp+r8pKV8MU7iv4FgFEsVrNS+4YksKJXusWA6QF5kBMli19rf6C8bF+Ux4g602kr6ecF16vq6lnUkg1eQhi7Ikg9gaIs022s41xXH5+Zu0wqYT7cGRkawDCErOuSAAi3qQFpfw2WErJQVafwXcrAaI4kC8L+WomX7aK47erWeYKRQBK3kAHTlcyeC9dSQkw9xkCRNGh+Urfy0anyFcMYUWr2eFZrREKfF4AyZW2wzaFsRBrOVOKNHHepmREfesq32f1twAgbSoGz8qU8xxGpMsA4r8CEOvdNt+7dvlaqbwDUVbOuxnL3J6bP5fLqqtnlpVVZwH3AQDirI+4WSY62JjFFmSn0veWEfmPDw6PnHnWOZC9Q3uneULeZQ22BCCb88GmKVhOda175hpJ5PUAZOcaAFHn76IoaairdQLBCp143SrTlShWx6ibRN+mYjQ2fY24+FodznoBwlPy2ajjvFYbV6PO1Ok1a1T0PCuAJKr5mAa5wXuKn/tqIRbZbAgpSh6XscrYElXP+byS6NXP6DWK5L4HnrQd0KVO73mtLAoAotmsueJAdmM+xPvbvXbj6g2iogPZyKj0tcaDLJxdyGMx6tlF/5+984Br6tz//2EFMtgh7I0DZMgSEQeIoIgDUFD23oTshLA3ouBCrVuQLYKordUOtet23d7e+bv3tv/e3g5trd23y2o9//McT2yMCQTIUZDneb0+LxRIcsg5ed7nu7dkrqMgZh4I4qaPOFnEW9mbhW/ZEJnbkJbIe3nnzj3dZAOkrb3tJF/CH9EoQDhjZBuNFxymIKqnvW0cJzVRHiCqXCmBSqrB1XWtjJViqqxOgUJASLH3j6WSTbIEUW+GyqIxNsaNYwBk8zgbTokKSBaO0XcpREkrisleMwVqViSHj3OdlJBUSKgOjGTuW4pc4Z9QiZtxvcJzlcl1HihRsikrXg9VCl0Y1sv97cqOvVDNpIRINRMBaiZ4bU31NeSvjek0MhcARKqNWyCmPuZf2fnbXX722WcTZQBRZoVoqq1JT0//5tISESc+NmMNg2K1AHtvKIi1dSjT2WJ1wtqVGTXpydxX2tt29TwKgIjKRPcAAshfq6E3d6Wad141xKZMV+NOT/5DsVaFK0Q+4Fim5C7PcoI+6Y2I+kOFFMd7yuRCBPrGaliobiaJ7D1IHONYld11jvfeFStYEkVELGKs94kzRvuYycTOxrPg2GpsRIWIZoZAVRPWnvxzicawHthyFdWKLqfVKvo3hRKtYpS5quKVQEdE3KQodmQIJs6pfPGmr5pJCQlq1E4tnEDNyVoSXiNO4boAf9tS4v1bRXyWYgir7BGPGtaWAIAwUFNv5lfOQW4Xn3nmGQCLFHUBIoOIugCRCQCEhwEkbmPaKgrFAQBED3EyCTVxtlq3OTwkXZqZyn+ltaW9j2yAtO9qPymWiIe12Fq3NQqQKoUPoCzVNJawHtKJE2+qRhCsirgLkf/g2CEPdt8Fxx6mxC8qkYPLViXBZuE4gTf5gLE6Lb2FKlquICoKBSuJi95NyYYxXtXvCuKOTKoA4SiFupAChfdZ9t5VKKmuH6suYSygaaKAS7G/EoUAJUch62iBii4DpQSs5Y8/nLgGpGoeQznxvkeoeD8sidobazkh41jcihYDosL9x1NRmY8oqf1xUfL9ROJvTVDyuStU4urhK4CGTqSpS8f4zCwhPhNVal5bU30NZTAdT0sfXTBdWwRcWAzUzJv55byl888qAkTRhaUpN1bnse4EIb+Cu3p1XBiF4uaB/d06mAWyjuZivXbTikUp/Ox04auN9dsHyGzpDp579+7dXWVl4tMYQH7RKEDk++WYjnPCbZS4esZylShCIHWMn8tM4rE29dxx/o6QCZrP5cRFrOy1ohQ25Phxjl0RIguU1AEodqutHqPwUF7rFJ47RUm/ovH8y7K762QNXjNRY/x9m8eJbY31XpZN0G01GVHGSLLYOAakJSpcP3QlQKxSsMZk7UEqxrnOo1TEUBRlSgCHPs5nZrxrSxOvoWzuujqKf0QAERAxEC/mlwvCvIZkAJFBBFggk03nVQWQc+fOxRw6dHSrSFDJWx0evcycMccdBwiCeFBcbdZuXOyzmZ2VIXitpnrbqUcDkDIAkB9x6teS9GbzCVdIOvHBSCLuRATTyKc5lhWSM4nHCYnHZRJWlyaGZJURHyjZDJQc4rkLNBRMrCTOiTrxsAq5eI6mRxCLCXeN7L1jP+IUTbJUTnwOMgnx1DgfPOKcSJW8R5zHGER+VComQONLvH8S4v3gIL/PVckhbi7my91Ykn1c2F6pzSMA4mlx0zfCvxezDpLlAUJGOi8AyIGOA0l8fgV/xZI1weaGc+djf7MWAijiahEV5e8RW5CTKXqlQtp4+vDhg8dIBUjH7q5yafkQBpDvsQ3vLmkAgXrylDHBDCUoqMnchNEncJMis8J8HxFASgmALGB+sWT9kuPY5p6kCBB14yDqAgSzcja2b9+bJuRXcRcuWBJopO/qhsiWq+36lQvcNubkZIhfkvDrRskGSMe+jk4AEB2OzjcY1SFAoNR3NTmNURcDBaUJhci5vCYykXLjIwIIWwYQiy/C4sIOjgUQTaTzYo+JAwBpadqeAQDi6urnb2wwz/k+QOZaxy6dbxudnp8pusIrrTx3+OjhY/v37yctkA6eu7Ks8pReqd6XECBQKoPbq4hA/2LCtx2CjD2XAwpqqlIsMN0wjhWSS4CGDJeqshsobK/UKdLBAWK+gHlj7dZ1u5UBZCJuLHWysS5efGZjXV1ztlhYVWpr4bHQ1MDF4T5AXKzWBzqzolNys8TPsYvKnz58jFyAAFVJqwaNuEbXET4ECNQ4Kb7jVbxDQWlyk16oIulgI5F1lki4UOXT99mP6NjqMIDk4AC5a+7B/Cy1MLX5UQGkqrw+R8yrKDGhO/vQaPY29wHiZrV+gSNzTWJWmuB8QU7Zs0cxC4TkVN4TNRU1AzZcmw+xzQACBEq9qvPJTByEgppM0sEyNTOvQh6B5SEPkHoE1U2lgELC2+buFtc4Uk7l6MgocFmljhdIn8qUwgsXLsRIJXX5Qn5lPp1i581A3CzuA8TBONzFxjh0S2aKYCgnU/j8kSPkTiU8+NTBE7UVtf3zuPP+CQECpVKJRI6/K+HOEsP3BOoRB9M3E/U0boSsibT2jWpks5EBkEYEpWyhoIb+Rr+au7M+aWhr4gFoAIDIICIfB5nqkCkZQM6fPx/L55YXs9lgHjqoQjcxuQ8QJ3qolRVjZXxqIqcrI53/ArAQyAZIXVVdf4Aw4F2Eo6FmilBQUFBPunsNA4h+rAEAyC2mh+VHxzo781QBZCJtTcYbMnX27Nk4brGEXZjDT6FQzBbgs0BkyxRZZWzNuNfSPT2Zf7lj//4uMmtBDh06dLy+pr4vTBj2Bj4XHVogUFBQUGoBxGAtFTX0M/nJwp31n+Gh4cxTw/fgocyNNdF0XlUAGT41vJnNFpZmpRdvolDMQRGhPvL78qBYG66MXb82ryU9kXdl9+69Jx8FQNaL1r+MsKEFAgUFBaUWQBowgERSURN/0x9YCyzfv3DhQhqYSDhRgEw0nbe3dyC+uFjI3RKTto4AiA4iv2wMwzZELs+sTE/kXmlt3dlLNkAa65r7kstSn8ctEJiSCQUFBTW+MIDQltNRU1/z71leNv984w9vJA4MDKSpAogmphQC99XRoye2FhUIeOtWbQ7XR5jzEMVla7Q6eplfIjc9mXulsXH7wMED5AKkqaGpt7is+GmkBPkNb50ALw4oKCiosVWPoPRgQ9Tcj/mNtbfN3//1x3/FywNEnWys8QCiaIUAgOzb91RySYGIF7Jo9TJ9xGLOQwBxMluz2n9ubE56Mu9yVWXz0IEDB0jth9Xc1NxbVl42grCROxAgUFBQUOpVotMXYQDxtfjadqHDu//44z/iewd6xwTIVKcUAoC0796bVoQBxGNu8CJ9xM7tIYA4mketnO8UnZ6Wwn1RKq4fJruhYktrS09Nec0QUorc0shcdCgoKKgnPQaCie5viDL9LL+093d682+v/zmhp68nHQNC2lgWiLJYiLp9sQBAtjXvyATDpKyZ7n4GBo7ODwHElbUhxMk0fGtGCv8Sn1M9SmYaL1Bra2t3Y0XjKR2Ozk8am4sOBQUF9SS396lEUIav0V0LX8ubzoGur7716ltb+vr6xgSIJqYU1te05HDYZaWWli5eBvJtTO63M7GOCLBlrIzPSOFdKCkoP3/wILnFhDvad3TvKN/RTynV/wERQYBAQUFBjQcQrTItlOFldNdyoeWNuYvnXX791dfvA0QGERlANDWl8Omnz8ZJpdX5PE5ZkampvSeTNs/mYQvEMtLTCgcI/0x+tuQCmR15cYDs3NG9s2JnL51D/w5v6Q4vECgoKKgxAaIt1AEA+Y3lY3VjwXLPi1dfvJo4ODj4AEBUxUEmm40FXFgSYXUhu0iYT6FYejIYrqyHAOLGinG1YixPSE/iDmZnCC6BTCkyAdLe3n6yraKtz5hr/BXekRdeIFBQUFBjAkSHQwDE2+qG70r/0QsXLiSTDpBnz8aJ+JXF7GJRFgCIkZGH2cMWiNlGexv6ysSkBPaJrHTBC2QDZPfe3V3NZc39llzLzxEeBAgUFBTUeADRzddFGT5Gdyy8LG8sXhvSC6ChDCBTSedVhMi5c+c28blSdmEeP4WC2HmbmroYK3FhxbLsTFclJW4u2Z+VJrh8hGSAgKFSjWWNfQ48h0/whorwAoGCgoIaMwtLL0MPZSw0um2xgPVF+KZVhwA8HgVAOBwxNyurOEEPsfWxQDwYD9eBmISauDDXJMatzWvNSuNf7ejY30UmQMC8keqy6oE5vDkf4HOG4QUCBQUFNWYNCGWrPsrwM/rV1J35xabM+Pb+/v4MeYCM58aSh4i6Y25HhkbiMQuEn5SUs5GOzPNGEDf9hwBihwRTXS2jtqwOy6rKTOO/0ta+p4fMWhAAEGm5dNCD5/F/REdeaIVAQUFBqaoBqUNQ/RgDlOFvfMt4vtnNHG5efWdvZ6YqK0QTQ6ZGR0c39548uZVfWiGMWbcl0pQ+3wvDhS7y8IrXcWVFxSzzS+ZmpQlebqzbMUAmQIDEFeJTAXyipXs1BAgUFBSUSoA0YAABnXgDjH8xnmv2uaRKUtbd230fIDKIaLIeBADkqacOpfI4ZaLlS9YuZ1DcPDBYaCHKlrNZVORCt9ic7AzhFam0afjgoQOkAqS8qnwwXBD+Og6QKggQKCgoKJUAaUJQ6ioaBhCTn0zmmV7bsbe9FLiwMChkKAOIJqYUjp4f3by9ZVcWj1MumOscvMhI39UNUbXms6KXuFmvScEskOe47Mpzhw6R286koqZiIEYccxUCBAoKCmocgLRgAFlBR40DTH4wmW/636PHj+crA8hY3XnHS+d9CCCYBVJd2ZzP51RwTehzFhoYeDioBIiD2foF94oJuWfzssQXyQZITWNNX4o45RIOkAoIECgoKCiVANmGoLQQOmrqb/Yta4HlP06fHswC8FAEiDIrZDJxECBggfB4FSVctrSQglh6IsqKCO+3MzFd5cCiLI9LSeT0paXynid1rC3oyLu9uadIUvQ0Uoq9OVJ4kUBBQUGNBRD6YgZq5sv82trX7q2LFy6mqQuQibQ1kQfI2bNn49mFQm5xAT+LgjAWIIipsWoLxHipKYuyInZLXPHBlATOi2Sm8gKAgGp0gURwBmEjt3GAwNG2UFBQUMrVgAEkkIGa+7G+dA2e+8Kzzz6bqgiQyVSlj5XOC1SUwxFkpJYkURAzEECnqgSIExJqYEkL2xgbVbAjeQv7ys72Pd1P7ScPIHv27emUSqWnMYD8iDdUhACBIlPlmFZiYsP3AmoGqhIDSIAharHQ8oZfhP/Ic88+dx8gY1khqtJ51Wlr0t3dl1iQxRFtjcuMRe4BRFclQDyQeIqN4eqNq8PSqlK2ll5taWnvIwsguLDnri+vH9Qv1f8ab6gIAQJFpriYjDElw/cCauZJS6SF0vwYd1neVp+FxkSckLdA1AGIohWiDkCOHz+eUpzHE0WvSliNIFYeD81Cf3CF6jow165bGpjESU/mv1Rbu22Q5DjIifqK+gFzjvk1vB8WBAgUmVqFSRvTFvheQM28KnTtQh2U7md4m+Vl/enm9M17zp8/DzKuMhUhMpk4iKophXt37c8oLRKJg4OjVhhSnOZjkNAeAyCIthtrzeqFc2NzM9P4L5M9mfDQwUPHmyub++bw5rxHVKPDCwWKNPMfMcOkhSkevh9QM0x1CEpJutfGxMrT+uMScUk9ttFnAIDIQ0RdN5YsE2usKYUggL5j2+5sPlcq9vMOWsw0nD9XZREhsbScLVYsm++wIR0UE/I5VWfJnAsCOv42Vjb2hYhC/oiU4tXo8EKBIkdFmPQxIZji4PsBNcNUj6DUtTTUyN/kZ8sFNh81tDaJsA0/c7IAUSedFwCkrnpbvpBfIXSx9wwwMZnvhIy33GxW+Toyo5Jzs8QXi/Olzxw+dvgYWXEQYIHU19T3xYnjXkJK8GJCeKFAkaN0THoEQDbC9wNq5lkg9BAGqAH5H8vT+j9Hjh0pPtl7MnuiAJlIOu+FCxc2l5fXFQt45TwLEzdfpZMIH6oFMVw719F0VVJmKm84N1P43DEAEBLjIA1NDb054pxnMQvkNlIO3VhQJClNDiDr4PsBNYNE3FjT/Q3vmvszv7X0sv03tuHnKgPIRKyQ8arSn3766Xg+v4ILigjpiLOPIWJrPi5A7JkRNvamEVvTEjnHszKELx48cvAE2QDhSrlndTm6vyBSCBCoCXyoyjDxCfdUNqYUTJsxrce0hkjZXYopGJMHJh0CIGvh+wc1w671SgRleGEA8bP4ytrb7m9nz57N6unrySITIOfOnUvgcMoEBbncDD0MIAgyz3BcgDCREEMHs5XxMesK2jJS+Fc79nd0kRlIb25t7paUSUb0Ofo/ImIIECgVqsAE5sZkYFqOyRWTDSYLTEaYDOQAMZ5Ww/cTamYBRFuifQ8gvqwvHQNd/3Dm9OnsvsHBLAwUWeq6sRQhAtxXY7mxsOdILC0RiVMSczfR6XagjTsFUWPp2pus3hi+JFWciQGkubmtn0yAtLa3dldKKocMOYbfw9noUErBATZ8O0xUTLpEKi4yBYXD9xVqhgGEq4MyfDCA+FjedA+Zf3Hk9AgOj6kAZLw4yMGDnWnsYrFkdXjcKgbFwWO8DKzf3VhmUZGebhuy0pN5l6XSxtMHD5LX1n337t1dFeKKUyYck68wgMB2JlAPVo57agAYigqD7y3UzJJugS5K92PcNfdk3QxZt6wH2+zvA0QRIhNta6JqSuH27btySook4jlO/kGG+i5zEXWXjVnkElvjiHgMIBdLCsvPk2mBgNnoEolkiMlhfkIUE0IrBOqehJiYGoYH0Ar43kLNEBGTCPXS9FB6AP038wUWN2IzN+0ZPD2oEiATTedVZoUAgJRL6orZxWVcCmLpZWDg7Kg2QFwtIz1NkOCY9ETumZxMwbNkTyYsLy8fnMOf80+ECwECpaC1hNtKkwBZCt9XqBkEkAYEpWymoPRF9Nvm7szrpWX8GgANbOPPnixA1HFj8XiVnKIicRGCUBbQ6U5WagPE2nSVg4nOspjkhNKTaUkCUtu6g2LCiuqKgRBRyNt4NToECJSiAokKck0BZAl8T6FmEECaEFQ/2gBlBBr+YubB/KjjYAen/1R/9lgAmcqUQhA8H8AAUpjPFxbkcrMQhLHABHEyUR8ghqFMK2ro5vgNRR3JSZzLezs6usgESE1NTV+sKPYKnI0OpVQg+8pSgxBZDN9TqJkFEGoYDTVZZPo9y9PqX6PDozkAHhMByETTefswiBQXCEQZqcVbKYipF4JY0tUGiJlZlJGD2eqE6NU5jaCpIt7WnUSAtLS09BRKCsFgqd/wnkXwwoFS/BAt0yBAAuF7CjWDrv1GBKUtoaPmAeZf2fo5vPPK1VfS+vr6cuQBMplsrLH6Yp04cTK1qEBUFhubtpGuZ+uDfW70EfVXqIGbRUR82OJkcVaa8NXG+u0DZMVBwPO2tbedLJeWDyNs5BekDFogUAqSEtlYmgKIP3xPoWYQQKruDZKyWmj9+ZzgeVdeuTw5gCjOSlcVSB8ZGdl64MDBTG5pWUV4eGwEy3Se9zht3B/uyjvHdnW0v+emgpws0atSScMwmU0VOzo6OreVb+tnlDK+RvgQIDO2Whak3UqI7Ck+4XoqwVSIKQ9TJqZUTEnIvZbqm4i+VFFEbUYoEeBehMkX0wJM8zA5TqBIUB35wvMFNXMAosXXRukLGb/ZLLS9FhC56Mzl5y/fB4gyiEx2SqEMIKPnR7ds39aeL+RXSv19QpaaM+a4IxNdLhbrls61jUrLzRS9yCmuPH/0KHk9sfbv33+ipaKlz45v9zFs6z497nhwVyKAAZhXn0ts/GDT30Bs9OAufi5R4GeOiUFUg8sLdL+lENIjpKsgbUKaDJKPJ294nqFmUA1Ipi7K8DW8be1p8+m6xHVHMAsBgGJcgEymOy8Ayfnz57dUShvYPE65yMp8QaCxwTznCQPEmblmno1x+JasVP4ZzAq5RCZAgBorGvu8Bd7/xNu6w4vm0UtEgAI0GnTHZIvcm59BVXL3/yg3e3WkIwctPTWOzwOeb6iZI/1YfdTQz+gXlofl9ezS7FYAD5mUBdOnMqUQ6OzZs1t5vHIBh11Wooc4LWQgrqwJAwTPxGKEb966qehwehL/8oEDBzrJjINUV1YPhApC38LbusNMrEdX6Q3cScEEMKjE5jvdAKFMWoTlA1xfYERtNqF0TAmYoonAuy/RN8tUrqJ9HmFpwWsAagYUEVLDaahJgMmPJvOYN6oaq8o7ezvzxgLIZKcUAgvkzJkziadODSeBCvScrJI0OsXOe0IZWPI9saxpoTHR4bl1qYncqzta23oxiJBWUFhRXdW/SbzpMm6BVECAkK4cwsLQmQGwUCY6AUB1P4hSuap2N8JFB68DqOkeV8QAQltMxwBi+p3xHNPP9h/ez+nq78+dKEDUjYMAgBw7fCyjMJ8vjYtO30Ch2Huq3QNLcdkZrVkb7JdQnJrIuVJbs22QTIDUNNb15UpyL+AAgXNByBOIaQQQ7h5khkqL+Bsm+rdbEo93gQCBmiEAqQEZWHTUzM/8G3N35nvd3d2F/YOqATKVtiYygOzZsy+nMF8oDfSNXE6hOLojk12OzNVhzrarU9NTeC8I+DVnyHRhgbbuXAn3DF4LIoEAIcUcziBcVVozGB4yxU7iPbAhHguyuirgNQE1/QGiVaGF0gMYKNOX9aWDv+MfQBEhBoNcoMkCRAYRZYF0AJD6mtYi0IXX3to3wMjIw23SAHGxWhNoxQhLyEjmP1OUX/40mQABXXmlkvIhpAT5ERHiLU3gBaRJgaFLxojyzrZaCplQ2kQ8BMQNLAiZEN9TfPzjyKIyISypib4H9sTj7Sbg/oKCeozS5mnjALHwYd0IiAo6de7MuWxlAFGnL5aiFaIKIBJJHYfDLhOYmDj6mpl52k8eIMy1c60YqxLSk3iDORmiS4cOkdtUsaq8atCUbXqd6MoLLyBNKYuIGWjJwYJBbKQgpXUlkaJbQNRvlKsIMlcTd+5iosYD1HZslQtYL0R+H/QE4is0uVRdTQEGQGztJIPgTsRzWBMxkcd1PtjQAoJSQ3UIqpOti9L86b+xPC2vpxWmtQ8PDz9ggWg6DgIAwuVKhcWFomK6nu1CBsPXYiouLGtH5qqkrfElhzJSBJcPHTl0nMyWJnUVtf0+PJ+/EU0V4QWkCQnl3Fa6RBxgNbH5k/m6EqJwMAa5N152MQEsA7l6EB014SKDHp0oPKya5DG5Es9n+RgBUkkUSIrgtQk1jhoRlLJJH2X4G95ieVp9tPepvQIZPOQBog5E1B0yNTIyksxll0mzM0vTjfVc/c0QM6NJA8TCIpThwlyTGBWR05iVJnhp986ObrLcWAAgDbUNvZuF8VewO7S7MM1SAyomLAywafsRMZDHtXFVEVDhE+4nYO2kIfdmmAOLAgx5CiGq0AOIflVBRGV6JPF7pVNMv51HAIT5GAGSQFhRXHh9Qo0PENpKGmrib/o/a0+b9y5euJhLNkC6evrSOWxJ5aZNGTFM2nx/BHHTRya/4nVczaNilvhvLc1K479cW9M6SGYcpKmpqVcgEZ7FNorbMJVXA1pJFAVmw/cClwcBEBDbKXsMry8grDAtAu7wnECNlfRSi6D0RQyUGWDxlb2vw1/++Pof03t7e/P6+/vzJurGUqetyejoaNLevftzeRxJZUhIdJgp3cVr0im8suXEjFox13ZdWla68Hkuu+IcmXEQ0JV3u3T7gG6p3o8wE0tD1eXQ1/67vAmAGD0mgMTJuezy4PmAGsdix6xkMAfd0tfyhluQ26tvvvSm2gCZTDovAEhVRWMpr1RaZmXus8jY2NMVmepyMIvysGKEbk5L5o3kpIsvHiJxOmHbrvaTrWU7+k25pl/CpopQGtdCAiAMwp32qF9ffjBWFjwfUGMDRJutjTK8DX+z9LH+zC/c79zT557OBvAgCyB4/KNUKmQXCEv1EFufCU0hVLWsGMsszClLY7fEFR9JSii9vG/fvk4y56M3SBr6HbjOH+NZPjAOAqVJ+RObN43IJNN088kyIsYDsqxkHYhzCFhkytWhAKXC8wE1tihpFJThZ3jbYgHr86gtUUe7+/ryMSDky0NkInGQ8aYUDvQOpOVml1ZkppVk3hsiZcGYMkDskGCqtWF4zLpVuQ1JW0uvtm7b2UtmV16JVDrozfP5O16RDntiQWlSiwgLgKoBgABIbCKyy2Qt5y2JGhUakWmmrSD5bLMt8HxAjXFTUo+g+hvwMba/ms9nfl4oLG4+2XOygCyAAJ04eiKrMF9QGbcxLZaC2IH4hx4y9eWv58CMWL80MImTkcJ/qb5m2yCZtSDiSsngauGa1/BU3ioIECgNajGxeRtMIRsNWBvriDoX3UnWt2gR8RB4TqBUAaQZNFGkosaBxj+azTP/ePfe3YI+JRaIMohMdkrhrvZ9+cWFouplwWvCGQxX0ANLWwMAQbRdLNeEe7psyMpOF74k5FWPkpmJVdtc25spyn4WNlWE0riWEhu4/hQAUkrAYyqFkeCxG+D5gBoDINswgITQUDN/s2+svGz/Ojw0jMODLIAAF1ZtbQubw5ZWz58fvIRpOH/ulDOwZMuVGe3vzFqTkpMpvliYV3bh8FFyphMCgOzcvbNLIikbQUqQnxExLCiE0qBWEBs4ZQoAKSeyubSnCJAoeD6gxhYtgIFa+lh+7rnC89KlZy9lywAyFkQmm857/vxIcpmoVsDjVErMjVwCzcxc7RFNLUfj9c72phGJ6SncvpwMwQtkVqQD1Zc3DZpwTD6HLU2gNF4XgxDxCeEUnoc3RSsEPG4VPB9QKoTteTrF2ijdj3HHxsf6kw3JG46dO3cuZzIAUXfI1MjISAqXXS5lF0gKjWkO/ghia64xgJiZRRk5GEfEb4zK35GRwr+6d+++k6RWpFc09fsIfP6BV6TDCwpKUwqVa+kinOJzpRGusMkCJBSeDyjVPbAom/AMrF9svGw+4pfzG0+fPg2AUUAWQPp7+zNKisRVCZtyE0xojr7YdaqPaHBpOZhGrgvx2VICAFJT3XLqIEkFhYcOHjpeV13XHyOMeQWfTggD6VCaaihphPzeQXjDFNPEQdqu5xSC6MvgOYFSDRDaUjpq4m/2P2tPqw+fOvSUoLu3u1AeIDKITKatieKUwuHh4dSdbR0FxYWS6iCf1WEMhtsCRNPL2SJyub1Z+JaMFO5zpcXVpFWkA8umrq6+L1+Sf0GLrfUrIoUAgZqiQMqug8Jmrz/FYj5Q4e82BYAshucFSkWWHya6DwM1DzD/xsbb5l/YZl/c2dtJKkAqyuq5xYVlUj3E0c/Y2N5V4wBxMAtbYIIs25iayDmdlcq/dJDEivTm1pYekURyRr9U/ydEBAECpWYxX8W99g/3283nIvfazXsqCXprEYV964iAdgRyr6EjyNQCTRz9iGA56CU2B7nXCt6OqPVgEvUeUwmk+8PzBqUcIFpiLZTuxUBZvpY3nQKc3hoZGino7e3FATIVN5aqbCwAEHZhmaQgT1iKIHQvjVSgP9QTyyLUyoISuik+pvhgWhLnckfH/i5Q+EcGQNrb209KxdJho1Kj7/DKXnhhQcnDQkpUfIM4RDQRTwCb/nxigzeQswy0xrEStJSIzFG8Muj4wE4LUMqlU6KL0nzpKMubdcMvwvccttEDcIwLkMlMKQTCniOjuFBQCSrQEYTlg0ylhftYgXR7s8gt6yKy6jNSuC+3te3pIbUiXSIdsuCwPkG4mAVSBy8qKOTeVMXlhDvKlACFtsIGPV1nuGsRFo0t8T1PCBAoJTdH2F6nm6aH0gIxgHiyPtuUuekAAY+HAKKpdN5jnZ3ZJUXC2g0bMuKMaY5+mLlggGh++eu5WkfHLvHdWpqdKXylqrJl6PBhcupBgMorKwcDeIHv4gWFECCzWwLCvUSfotvocYADNG70InpjlRFWEkJ8rYLnFkoBIE0Iqr9OH6UHMm5ZLGB9XLetrrK3v1fjAJFBBLivduzYXcTjSOsWL169ysJkzkJNVaA/tNys1q+Ya7smPSdDfJlTUnmerIJCkMpbXVvXnyrOuASHS81ygZ5T9tPYulAFDjphcXDlLA3QAdiF+B03aIFAKQcIdSkNNQ00+9bGx/4fz4w+UyBngUw6DiIDiKIVcubMcGpFRSNfyC+vsmX5BhMV6OQsO6N1c2wZYQlpyfxTORnC5w4ePHiCrEys9rb2k9Xi6tM6bB04G2S2Kp+IaWipcAmNFct4XOAwJ6ylPCUWhkguG8wZWiBQSgBSjqA0P8Zd6wDb6wuWeV658sKVnO7u7qKJAkR9N9bpdMz6KC8pEnFoeqCA0JKFkLdCGdaMsLhN6/LbUxO5V3bvJq+gELSN31bW2m/JsbyON1aEF9jskoi4W9eSq90AFeTGRBwBzDf3INxDHkSmlAthrVgj9zruPipw6BCuqmXI2KNygSvOiniMPQQIlJIAeq4OSvM1vGPnY/9JxKaI3gtnz+bJA4QIqN+HiKpAujoAOX36dHpnZ2d2UQG/NnlrXpKenrOPpgsIH1q2hpHrlvpuLU1P5FypqW46RWY6b720fsCX6/sPvKAQmvuzr2pc1gKdRWzOWUQF+XjXQhkBkYlaItpEei6QIXKvLTuFqFzXVvJ8OsSxRSq4qsZrgYIQKcQQIFAK0o8xQBn+Rj+zPKw+y+MVtPX09BQrWCAaS+cFANm5s6MIBNAXB6xeRaHgHXjJXU7MNaEu1muTMlIFz/HZVWfJAgjIxJJWVQ5G8aNexTugVkIrZFYV/hkTd+triM15Io/fPMlgO7Bw4pF788oLkHvDoMAgKDD8CczviCXShiMJwK2b4LFxCEsFIVxzECBQChlY1OV01DjA9H9m88w/27ZzW/nx7uMlfX19RUBkAKSqqpHPYYsqLS09giyM3OeQDhBn1hpvK+rK+MwU3mhetvhZMjOxahpr+rJBa3cO7hqAAJktHyQrotCuYpKPnzOFCvHlJCcEyPpnsYh2KPCcQ8kq0GsxgATRUTN/86/N3JkfnDx5shRYIOMBZLJDpkZHh9MEvKqy4gKBiEZz9Ten+tiSDhA3syg7e9M1iYmb2UcyUviXyQykt+7Y0S0SiUawD96dSbffhppZkhDV45PdXLlTiH9oEa4rAUl/WyHh9gKvZQEBAvWgtMTaqMEiOmqxkHVjXvC8K2fOnAGwIA0gI2dH0jlsSXVuBieXpucSYGLiZEI6QCwsQhlOFpFb1q7Mqs1KE77U3rarh0w3VmVZ5SmjUiPY2h1KPevDH5n6sKdwko4vR+7YzCFAoORUj6A62bqoQSDtN0svq2ubsxKeOnP6HkBkEJlMHETVkCkAkBMnTuSWlpbVx25IjWMazwsgPYAu68zraLFurc/8uLzsdMEViaj2DGmdeQ8dOl5TUTMQzA9+B7Z2hxpXpUQAfKqpuDbjZFNNVhlyADGDAIGSUwOCUqL1UUag0c/Wnjb/eerQU+KhgaEi0gAyfCqjoaGNwy0tr50/f9kKU4a7J/KoliNztZ+V8cr4jGTeuZxM8bNkxUBAa/eGhobe0rLSZ5Bi5A4ccQs1pjZqKC2XSmz2mj6+FDmAmEKAQD0YQKctZqBm/syvHXwc//7a1dfyent7S+QBogwi4/XFGsuNxWFLykuKJGI9PfsAM6oGJxCOG0inh1uyKCtit8QVHUpKKL28d29HF1lxkJaWlp4d0h0DlFLKD7AzL5RKgc3YXYMFgT4kbPAb5QBiRMR74LmDqrqXeUhfaHjXMsDq8znB81977eXXcicDEHWzsfp6+rJyszl1GansXD09i4VmiJvRIwOIExJqYG0SHhOxIqsqZQvnpeaGHf1kWSFgRnqraFs/i8u6gTdWhBcclKoUWaoGAUIlUnk1eYzyVfUgmB5wr/IYnj8IEN18PbyA0NLb6npI9NKR04Oni7HN/yGAKAbTJzvmdt++Q4V5OdzGqMjEGLqeE+h/pYs8wqXjaBEZ5Tc/Li8rTfSyRFw/jFkLpKTzduzvOCEVSofmcee9R1SkQ4hAPewCmOx0wLEUqcE7zEAV7VdS4fmb9dduLYJS4kADRcNfmR4Wn6UUpHV09XSx5QEykWys8dqaDA8PZzQ27uCWlpQ1Lly4KpSIf2g9SoAgcyzDgtyso1PyswTPFeVJLhw+Rl49iLhSPLRasPo1PJAOR9xCqSrQ0zRAbDR0fNmI8vnpWkTNCjyHsxsg2xBUP4yKGgWa/Gjuwfx4155dUhlAlFkhUwXImTPDGWJ+tRQDSI2lmftiY+N5zsijXtYmKx1tjMK3piZxu7JSBS+CEbdkpPOC52xobugtFhefR0qQO0gZBAiUgtYh5LR5B26mBJKsD5l0iQp3eB5ndQYWKCC08GfddA50efv86PliEP9QAyCTq0o/PZjFKZbUFeTySmh6LoGGyHzzRw4QEAexM161KSIsoyo9mf9Sa+uuPrIAcuDAgc66srpT9FL6lwgf1oNAyUlKWApkdde1m2IwvUCufclYlk4ZPJezUrX30s+pfoy7NgttPwmLXTn49Lmni3p6etikAASDx4FDRwpLCsSNa1YlxRnTXP2xa1APeRzLwTx6lZtddEpGCv8FPq96lKyCwiNHjhyvk9YP+PP8/4Y3VoQXHpRMSSrcQ5qSAdHEcbLuiUVquNZAw8ZEeC5npeoQVH+DAcoIMPrZZoHth9xy/jYADQAQDBYTdmONl857+vTprJqqRmFpQVkty2zhEgbFzQN5XMuZFeZjqLNkY1oybyQrXXDxwAESCwqrawaSREkv4m1NYD0IlGyD9kPIbdUOXGMhyOSGPwmIppDqWDoLYEbWrLx+sa+0QAZqGmD+rbWn9f87fOyw6HjXcQ6Ax2QAMp4VggEku7RIXFWcJxAhiMlCM6qn/WMDiCNztbU1NXRTwsaip1KSOaTVgwCBOIhALDhLYVN+hvUgUPe79poh5A+JAo0PeZM4vvVqBva1CEsnH57T2Za+q1WmhdK8GaiFH+umg6/juwMDvRzQRHE8gMhBRG2AAPUP9ucW5goaMhOLcxDEwd/U1MX4sQEE74tlFrUlcnl6RWaq4OWm5rZ+stxYbbvaTorF4mEjttHXCB9efFCYYpBHMyNdm4DBRI5NqKb1Ia8V8JzOtviHTqEuSsUsEJa35edBa4JGsY0fdODFpQwgk3FjyVsgBw4cLC4pFjdHR8THGlHnLkIQDwryGJeWC3NVtNfc2NycDOFLfG712cNHD5OWziuRSIbcOG7/RkphIH3Wq4zk2Iei3JCJze/YhPzeeVddWSNwTvpscl81Iqj+Zn2QgXWH5W75abGQ3dbf8yBA1HRjFaozpXBkZCSrurJJxGGXN7m5Ba8wpczzRh73cjFd6wXSeTPT+CNkzkmXxUE2CTddgRMKofDBT49y9jmFqDdR9/h8J3F8ukRDSHh+ZwdAmhCUGkpDTRaZfW/jZfuv3t5ePibOVAGiygrB4x8lZTVFRRKxkZ7zIhrN3uaxA4SJhBhaU8PiYqLy2lK38q60t+3pISudt7W1tadSUjmsXawN4yCz/cPn9QjhIdMCNa0QEDy3mGS8xRGBkwpnyzVcgaC0AMZdGz/ba/NDPF65+vyLhd3d3WoDZKJurCNHjhfm5/KatmzOSqPp4em7+sh0WI4WEWsXe8YXpiXxLldIG0+TFQfZvXd3V4u0ZcCm1OYabO8+i5VPNCN81AAxULM/VhphTUz2NdjwHM8GgID5HzR/xh07H4ePI+Mi+8+fPV+iDCAyiEwlDjI0NJTT0rKbl58vavJ1D19Fnw7uq/v1IKyIEEfmysTMVP6zRYVlTx8kaczt/qf2n6iSVg0G8gL/ipRAf/Gs7Vwa9oiC55MZNgXG8LpMwb2mRSQHwHP9xAfQ9ddSUUagyU8W7tafFgmK2gE85F1YE3RjjZmNBdxXIlFVeVGBuMbcHMw/93CbNgCxs4iYY2MUsTV1K6c3K53/wlESA+nlVeWDCaKEy3ggvRxaIbNOYLSx+WOAh0xOyNjDpnhEvGQqr+EHz/MTfxNUh6DUYDpqGmj2nclcs0869ndIu7q6uAAg6sRBlAyZKhjLCjlz7gyIf9QX5gi5VD2PIAbDlTVtAOJkEmriZBqxdf3qnMasFMFLZMZBWra39JSKSkfxvlhCCJBZp2RMeuPcwSuTDpG1RSVEIb6n7HfH2tzBc2SMk301VesI1J3AVPUn2n0F6j+oYP65n+UN5yC3N04PnOZMESBjurFOnDhRVFIkaondkLHVkuoRhF1nVGQaLS07i6gob7fYnKw0wWUhv2b00CFy56Sbc8w/xeeDwHTe2d22XYuIN9CQe1P+nIk7+DBiMwedcLlE2m8lcfdXRbiaJETWUybR0DCUeCxwQTEx0QnQaCu8nusY/bF8kalnh+kRcRR4zp9Mgfnn6bqowSLaHStvm0+SclIODQ0OAWBwgeQhohgHUScbSxlAaqsbJKD+Y77T0lBTuqc3Mt2WvWWkJ4uyPC41iXc6LVnw/FP7nyI1nTdWFHsVKcbbu8MLcrYoV85qAJu6JQGUOMK1JdVQBlMV0VZEQrxmMFEHYoT8PmyqRMnjJGo0TpzIRER4bT+xADFYQUONF5l+b+1t997AUJ+gr6uPqwwgk0nnVRYHKc7lNRTl8cV6iLW/OXWu7bQDiJNJjAmLFhoTE13UlpjAvtq2fVcPWWNum5qbeuukdUO6Jbo/wXTeWWR9gI3clrAUUgg3z6PaZMsJaCQS1k2ykt9JmEL2laIsENih90mNf2DnlbbQ8C4rwOpz16C5b1957kpx58lO3mQBMtaUQuxn+ceOHSvOy+C1xMdlZeghDv4IYk1Dpt/yoDgz12xY6r+Fk5kqeKWqqnGIrHTe9l3tJxvEDYOWHMvP8WA6zMaaHQDBgEGtp6K1V2rR4386jp7404lHJvB6HW90oEZNRqqPb4kGixsBiPLgeX8Sr2O9HD2Qvnvb0sfmWnD00rMDfQPckydPqgTIVNqanD59OnfHjl18dnHZ9pCAdWuZNHc/MFF2GgIE0ZpjEbnc3XZdWl6W+DK7uPz84aMkpfPu339CIBKc9uJ6/YOoSodWyCyRUbMR+va1t9E7v91Bf7v72yMTeL2bP95ErXZYKT824D6z13DKcAQ830/cTVADglI2GKD0RYa3mO6s6wWCot1dXV2gAl1tgEwknXdk5HSuRFJXyedWNtvb+y0zN5w7H5muy40V42pvGrE1LZnTl5nKI3VKobRaOpAgTHgRBwhs7z6rAPLHa39E7969i96+fRu9fv06qbp27Rr6008/4a/31U9foVbbVQAEtDkx0XDKMAuBLd6fNIA0Y1b0MipqGmj+naWnzXtdx49LFAEylTjI4OBggUJfrILiQnFzYb6Yb6TntpiBeLOQ6bui9O1MImJXhqSWZSTxrzY2bh8gCyDt7e0npULpsFax1g+IAGZjzUaAfPLJJ6izszNqZGREmszNzdELFy6MD5DYSTRPVKf/Vg48509aE1CQvmvlZ3fNLyzg+UtPX2J3d3drDCCKVsju3bt5RXmi1sjQTTHGevMCsOtKF5nOy4kZscLBbFVCWjLvYlF++dNkxUFAlld9Wf3AXO7c92Fbk9kJkE8//RTf4MksHKRQKOj58+fHBkiVhuMf8m3kV8NzTroqCRdk9TjWgxQZf7xxBSHZ85bL/RuTXjwFpQcwbtl5Of43m5194MzpM5zu3nsAAXGQffv2iY4fP47DBNvnBMeOHeOOlc6L/Zx96NAh8POizs7OYvBvAA/s34XY40vE/PKqkgJxPZXqFGRO8ZqPTPdlZxTqZqKzLCZ5C7s7PZn3/L59BzrJysaqrq4e2Mzf/BKSjPyGZGMQ2YydJKCtRABSmbYSv6Oo1DEeo6h0Fc8hr7QJPB+U2jIqxQDy398BwmQyHx1AfsAAIrR6+LhAHYkxScfgouH3MFmNazdrgs+5hXhchAopPr/8YxNUfH8in12Z4gmLTf4xsQrHshTTMiKjT/a9Dci9eS/rMC1H7s1lCSV+J5j4/zridzYQjwnCNB+TByZ34t9+xPeDiNcJIm4sgonMvY0Iqmuri1IsKb8YmNK+dXR0/LOdnd27tra2fwUi/v0u+Ori4vIG+LeDg8Pb2Nc/Y9f5v01NTT/Abpjex76+b2Nj8xdXV9dX5s2bdxnTCz4+Pk/7+vqeDQkJGQgKChpauXLliZSUpPbIiPVHczI5AgSx9qfTnS2nPUAcjKNN7U0jEtdH5DZlpPBe3tG6q5estib1jfV9XD73HJxSOHstkEcKEFUWSD6JvbmsJpfOq1OrA6+XaZa+qyXRQmm+dJQVYPmFo5/TnzErQnDi5AkB0cYdt0IUg+mKA6bUnVII3FeHDh0pZecLtm/akJZiRnULnqbpu4orVNeVFRXj75lQkJMpelksqD1zmITmisAC2bl7Z5eYJx42KTG5CavSIUAeG0CiEfJmk1AIi1fJexHTH4OytrMe+j6jkYGO/nNUdbwG6tEHz2vvdd81CKLetVxoc23F+hVn5MChEiATaWsiHwsZHh7Kr61ukfLYZdt9fFZGMo09QfxDG5kJy9EiytfGNHxrZgpvFB8ydZicIVNAZeKyU8Gc4HfwbCwIEAiQxwEQLxIBIusArOCfpzZQ0Vc/ehXd/ur2h44nsisS/eanb1DJcxJ4zUyj4VH6UVSUvpjxs6WnzYd1rQ3N3Rg0MDAIJguQ8bKxivMlTaVF4iqqrmOwiYG7IzJzViiDZbgydv2avJaUrdwrrdvaesnKxmpqaurlC/lntYq1biES6MaCAHkMALFAyG0hT3/YjRU/GI/+cOsH9MOvP0Rt22zvf9+wyRAd/scwevu32+ibn7yJ6tXpwetmOgCkEkFpi+h3WQHWN1yD5vzxuYvPcU72nBSMBZDJZmMBeBw8cISbnyPYHrsuPY2mZ49ZH276yExadmar13i4bMzMTBG8KBLUnCErG6ujo6OzUdQ4YMOx+RTvjQUv2CdS4I7btMV0+gGkBCF/NrsWEWchXpO5jYne/OEm+ttvv6G/3vkVLTxfiGrVaOE/i+qOQn/69Sf0l19+wQGTPZp9/2dQj0+6GXoo3Z9x28HX+b+rNq06fXb4LACEQCZNAQQIAKSmprG8OF+8zdVxRZgJfYEPMtOWI3O1n71Z+JbMFP5obpb44uFjB0mbESIVS08t4S55BwdIJYTIkyawAXIucNDqy9XTDyDLEfKHW2k9mM6bdzYPvX3nNvqXv/wFL3L82+d/Q+3b7fH36cz/nUF//OlHtLq6Gv35l5/Rd66/g1q0WsDr6DHP/jAIp6LGi0x+tHC3vMavELR3nuwUYmAQKgBEbTeW4pRCeYCMjg7lc0vKGovzRdVUqluwsbG380wEiDXIxtocU7g3I4V/9cBTBzrJcmNV1Vb1Z/IyL+JxkDIIkCdNjjsd0Q+++gC9/v111GOfx/QBCMj3n6ci/iE/X0QX+X0WCU1OYHytHgGg8WaRzLn3msbNxuhfPvsLbmFER0ejo6Oj6M+//oxbId77vdHvf/keff3111FjY2P8uG/duYWu710Pr6PHCZBqLZS6mIaaBzK/tFhg+f7R48elnSdPTgogilaIsvkgPT39xUX5gh1pyUX5pobzQkwQJxNk5q1QXVfzNbFB3glFWWnCq1JJ/TBZANm9e3eXRCABVenfw2ysJ09gcwS9qIB6/9o7fQBSQoBAtvnrEe1MrAiwgNoBrnrVyXh9RgDRbRjEVBgKYAGwESBo2fNl6C+//oJXx+vp6aGBgYHozz//jL7835fRL374Av93YmIifuzr1q1D79y5g5771zl4HT0uYXuRVpEWahBEQ60W2l0LWbv03NDQEACGKoA8ABEZQNR1YwGA1Na2SEuLJO0BvlFR5kYLA2dM9pUyN5YVI3RzWjJvJDOF9xxZLiwwI6RKUjWIu7FKYHfeJ0mMJgb6txt/w++4weZ444cb6KfffTo9AJJFFPqBYjEwkwQMrxKqUa08XsAVVC+XEsWtoHBtMYIPyrJKtUL/dP1P6DfffoP6+fnhx2dgYIA+//zz9wH78ssvo6ampvjPWCwWbo38eOtHNLonGl5Pj0MNIPtKHzUMMvrJ1tvhg9YdrY0DfQNqA2Qy6byF+cLmogJxFag+tzKZ74TM1GVsvNSURVkRGxNd0JaUwL3a1raHtBkh9fX1fVKR9AyejSWGbqwnRU0vNeH+/q6uLnRkZAT/N8gwetwA0a3TRasuVqHn/nIOPf/v86QrsScRzR7MxgPkw8PDDxzjqlWr0B9++AG3NjIzMx/4Gfg/+Nml9y+hBvUG8Jp61O6rCi2U7se4axlg+YWzv+ufn790iYddy6Lu7m7RGBCZUBxEHiIHDx7hZmeWtsfHZGXrIc6LEMSCgczc5UFxY0ZsWOSzpSQrXfiKVEyOGwuorb3tZB2/7pQF2+ILhAMB8iTIod0Bj32AjrheXl7o0qVL0Vu3buGbOViPEyCUOgr6zL+fwVu9g5+RrbbX2tC/3/g7HhhftmzZA8dIpVLRS5cu4d2JN2/e/NDxv/POO3jWlt9TfvC6esTpu7pg9kcA/Y6Nr+2nS9YseQaDv2CiAJFBRFUcRAaQU6dOFTY1tUqLCyW7ggLWrCWKB3WQmbycLKMWu7CikrMzBJfyciQXjx47TNqMEB6PN+zJ9vw7no0FZ4TMaGnXaqO8Z3n4HTf24bm/IZ48eRK/037cANGv10cvvHfh/gYPUmo1LRkowXr/y/dxFxX4+0HsQ/E4s7Ky0F9//RW30oBbS/5nUqkU/fX2r2jnu53QCnnEsz/0o/VRWhD9F5an5adFvKKOzs5OMYCHPEAwEGikHuTMmdOFHI60iV0iabEw9V5mYRTshsz05YpEshwYYQlxGwp3gRbvO3fu6SYrmF5ZVTmYykt9DgeIFAJkJsuu3Q6/4wabJrA8ZJuhv78/+vXXXz92F5Y8QMBm/+9//xsPbF+8eFFj+uabb+5DBHy9ceMG6uPjo/Q4LSws0C+++AL96quvcJeW/M8YDAae7gvqQgIOBcDr6xHO/jBYSkXNFzG/tvG2/ScGf6k8QBStkKnGQY4cOcEtyBPsTNqSl2dInR9shrgZIU/A0nI0jYya77QhPSOF/4KQVz1KZjZWhaDiNL2Y/hXuxoLZWDNWgosC/K756NGjqJaW1gObIXDXACtkugAEuI5aW1vx3wfHqglpa2ujb7311n2AAEgB64JGo6k8VhDvAFYItqE8ZIUUFBTgx9n+Wju8vh6F6jArukgbpQXQfrPzt/t42fpl58+ePcvXFECUTSmskNZVF+cLtzvaBoWZ0D0WIk/KsjNd422is3hD6lbOqYwUwXNglgdZ2Vg1kprBMG7Y20gRBpAqaIXMyKrdOl281uGzzz9DFyxY8NBGCeofvv32Wzw2YmtrO60AoikBiMgDBPy9ipaFogB0QHHhZ599hnp4eDzwMwcHB/S///0v+sl3n6ie6w6l0eaJ1DAaXjzo4OX4gbRa2o5ZIGKZlAFEGUQm4sbC4LEtP5dXiSDMAAMDF4cnBiBWjCgLG+PQLRvX5m3PTOFdbScxG6u6pnqgkF/4jG6R7i3Y4n1mquFqA3rr9i30xIkTqL6+/kMbJYgBPPfcc3hqb1xc3KwACLZR4IAY73ESiQQ/nr179z7wfV1dXbS5uRm36rr/0g3bm5Ddul0KWrfTUMtAy5v2vg7/h1ke0uNdxyVkAeT40eO8ogLRzviYnGyq7rwQM8TMCHlylr+eHSs61t8zvjAnQ/SykF8zSlaLdzDqVsQXjZgUm9yEbqyZJ9fdruhXP36Ffv755+iSJUtUbpQgaAw2SlCJPZZb50kACHj+sd4LeTk5OaHvv/8+7uIDmWvyPwP/B1YIKDh073CH1xtZ1kcdgupkgdbtBnetvK2vh6xb9jS28UswYOCSB8hU0nkJ4QCpq9pWzWVLd/l6RUaZG3kHzfjsq4fdWBu8rRhhCekpvKH0FP4LTx3Q/KRCABAgqUQ6FMYJewN3Y8GLekYJtCAHmx+o+xhrozQ0NER//PFH3LUjH2R/kgDy5ptv4u8FgKSyzCtVj6uvr8etM+yz8NDPsc8JXkcDW72THDxfZYAyFhv9aO1l85+2trYmGTw0DRDs/yUDA33sonzJjqI8YRWV6rrExGAGFw+qXm761obhMZHLMytTE7lXGuu3DZAVTMc+zD3lwvIRvSK9HxEBhMhMEWhLDiqtwYYcHBw87mYJWnWAupD+/n5UR0fniQKIpaUlbi1cv34d9fT0nNBjQdwIPA5YIvb29g/8LCgoCM9sA++zfBt4KM0BREukhdL8ab/ZBdhf8wjx/MPFCxcFXT1dZfIAUdONpRQgChBh72zbXZafI9y1JnzLViPaXNC6RBd5EpejedRKN+t1yRmpgkvsooqnyXBj4S3e93V01oprB+dy5v4/pBDWhMykjrsg9vHSSy89kHmlSnQ6HX3jjTdwK8Td3f2JAkheXh5uRYDYx2Qej21MeEZWbW3tQ7GTF154AY+FFJwrgLEQTVsfoMh0sz7KCGTccvR2+jAufXPPwMCAGNvoVQJEBpHJtDUB7iuxuKa+OF+83crKd4Ulfb4X8qQuF+baufbG4VtSE0t7MlMFLx49Sk5R4YEDB46LpeJT67nrX8FrQsohQKa7QMvx9758D712/Rpe06Cuu6asrOx+6ioZVsjjAAiIY/zrX//CW5BERkZO2oIB9TJffvkl6ujo+NDzg++/fe1tvNcYvP402LqkHkGpy6ioySLT75nzLT5ubW9tPn7yuFQeICCVV4MAYbOLhG15WbwyU0OPpebUubZPLECYSIihs9mqhPBlmVIMIC831G8bPHiIHDdWc2tzD5vHPocUIb8ifBhMn+7iP8vHhyMp89uPJVdXV9xV8/3336sdaJ7uAOHz+bhrDlgf4PUn+zwdHR04XEENiGIW2+DgIPrL7V/Q2P5YeP1p0pIWaqHUICpq5W/92dzF894Y6BsoA/CQB8hU3FjyEAEZWDt27JIWF5btWbsqMYFluCAEQZwMkCd5OVtEL7M1XpWAAeSZrHTBpYMkpfPileniyqH5pfP/iVshECDTuucV2JyBK2r58uUT3igrKyvxDXf//v0zHiDg9YBbDlSOq6o6V1cg3gGO7a9//etD1tnatWtxF9mN/93Ax+DC61ADwqwPvVgKSltMu2Xv4/BhqaR032D/oIQsgADro7hQuL2kSNRiqLsgxJrh6Y486YtFD7dkUZfGbl5fuDcpofRq2/ZdPWQVFdZW1/aXCkuf1i7U/hXOS5++qrlcg8+4AH2elNV9jKe5c+fiab+gnYiiu2amAQRUkwMYAgsB1G5M5blAjAh07gXHV1pa+lB7E9AGHgyjSh9Jh9ehhjrv0gJpd1mLWDdd/F3/Nnp6tAzUf4AWJooQURUHUTuY3t3LOXTkiCA3g7c7OaGwWA+ZE4TMzMFRE8zFQqL0ncwjY4J9kkqy0gSyDr2kxEJad7R2V/GqhszZ5jcRNpwTMh3FbGWi7372Lt7DaSp33MD1Bdw1wBpRp+BuOgIEVNUDVxyoJAeDojRx/CtWrMB7ZL377rv354TIBDr3ghkrZ/95FtWr04PX4xQD6Dp5uijVn3bH3s/+k6DVi58f6h8CoCAFIMD6aKhurWEXiTsC/aLWWxn5LHpis68eqgkxj17kYrk6KTtdeCEnQ/jckSOHSGnxDlqm8AX80wvZC/8KO/ROTyUOJeKZV6DWQZ3MK1UCPbFA6ipwg6kbhJ9uABEKhfhzgQr8qbwX8gKuq6tXr+Jgio+Pf+BnwNoDVtu3P3+LLj68GF6PU6z90F+rj9KX0H+2crf+pERYsv/YiWPligAZCyITcWMNDQ2WFheL27hFklamie8KCyP3OchsWXZGq80cjMM3r1+d05iWxL/a3LSjn7R56XVV/fmC/GfwYLoIxkKmVexj573YB7jjnmoaLthw9+zZg2/APB5vxgEEWB9//vOfcYtgvJ5XExUYcQsKEl988cWHrJD09HT0p59/Qp957xmU2kCF1+UUXFjUYCpqGWj1hWvgnD/39fVVyOChrhWibluT3t5uzu7d+8sK8wV7N67LzDSkzl+CIJZ0ZDYtF/NV4WDcbWYq72JBrvQZsgACvlYJq4Zc2C7/wWtC4MU+varOf7uD7tu3TyNuJ+CuAcFnkJWluFFOZ4CAv53L5eJB7T/96U9Tjn0o6x326quv4se5cePGB34Guva+9tpr+NjbxUegFTLZued68XooPZD+q/NC5/8kZCb0Dg8NS050nSjv6uoq1xRAfp+T3s0R8KpaigpEO6jI/CUs+gIfZLYte+MoVxZ1RWzi5tJjGSncFzv2dnSR1WBRWiE9lcRLelGrQOsOUgYhMh1ktcMK/fCbD/E7bk21IgGb4ZUrV/BYiKaskEcBEDMzMzxGAdxMZLWnB+AAcFUchwtUXFx8b2zwn7vgtTmZ4DkmWiANNV9k/o2dl/3/29Oxp+nYiWMVAB5jAWQybqzOzk4wEpdfkCvYnZlaIqYiTovpdA+rWQcQJnODoSNzTeLKkOSynAzBy3XVLafIarDYsr2lh8/hj9KL6N8jXOjGetzSqdXBZ53/fOtnfNrgZDKvVMnPzw8fxAQaEYKNeSYAJCcnB4fehx9+iLa0tKB1dXVodXU1Wl5ejnfXFYlEeG0IyKQCNR3Z2dloamoq7prasmWLWgKvAQZSAUgJBAIcsGw2G83Pz8dfDxQtfvfLd+iiw4vgNTrBynOdIh3UYJHBXWs/2+ueK7xfAe6rEydOAIBUKAPIWEWFMoAomRGCA+TUqVOc7dt3VrILJfvCQ+O3WJh4LX/iaz9UxkKYUSscWZHJWRmCC3lZ4osHDx8krSZExBed9iv1+zNssDg9el79++a/0Ztf3sQrpjV5pw2CxqDV+//+97+HgsbTESDg7wcZaLIRtsoEfgZiGOB1AGhAmi8QcHlNROA5wPOBr7LnA7r16y3cAgE6+s5RlFJPgdepugBpwq6RNQYoPYj+i52X3X9FlaK9PRhACHg8ABBlVoiqqnRVQ6YGBga4pSXSHcWF4u1WJgtDTRnunshsXcbIUlNrRljcxqjsbSmJnCstzW19ZMVCGusb+zCIjOoW6P4MGyw+3p5X3AtcvP4ATBskw10TFRWFb5Cvv/46Xgsx1fjBkSNH8Gylt/76FsosY6JIKfZ9nh7a/3o/vrlPBSBGRkZ440igiIgIHBDAUmhsbMSzsjSlAwcO4BABfcZk38PuZvFjP/PPM/j8efElMZp3Lg+HI7xW1Zz7IdZCqYG0u/aB9tfdF7u/fW70HKj9qJQHyETiIOMBZM+e/dLcbF7Hpg1ZudTZGDx/KBZitma1u+26tMxUwfPc4spzZAAEaE/Hns4afs2peSXzPkAKYE3I45Lldkv0w68/xDf4wsJCdOXKlRqXr68v3jAQbI6xsbGktXoHLiSwKWsqjRe0qAeWBRkFkWFhYbibateuXfe/l5ubiwNLdEkEr81JCq88X0S/5ezj/GFcShxmIAxIJwKQicZBpNLapsI84R4Hh8BwJs3LH5nty8EqysPeKHwraLCYlS56AVSQk9Jg8eCB40KJcCiWG/sS7saCwfTHIuddzuhbn76FZ1998+03+KYG3E3AN68Jgef6z3/+g3700Ue4dfDss8+SBpC0tDR8w1cGEAAD0G4eTEyUF7COVMV8IEBmXuNEgxAqahpk9q2lh+V/t7Vvaz127FjVWACRQWQyABkaGuQVY/DIzRZUWhi4Lzc18HCY9QCxQEIZoMFi2OJUcVYa/6VKaeNpstxYO3bs6ObxeKM6RTo/wmD643NhRfdEowffPoj2//WeCwhs9sBNhN08TEkAFuD5gFUAhk2BrCPQkTY0NPSBehGZ1Nl4wTwN7EOMtxYBwjYH1M3NbVyAgN8BhY0AaGDjloHyvffeUxn3gQCZQarDrqUSLdQgiHrX1tfuU98w36tDg0PlAB4KAFHbClEFEKDBwX5eQ8OO2sI80YGwsIQE0Hl31gbPFZeTWdRiK2ro5vQkzpm0JN7zpFSly1J6xdKhlZyVb+JurCr4QXicsm+3xzf8S5cuaSQTC9zhg+fbvXs3ntIrk6yuAmQxgbngINMJfK2pqcH7aCHjDGcCMJIFtEGGl6zNyFgAAc8LquJlM83BAv/+9NNPUSsrKwiQJ6BxosFKKmocZPyDg7fT/2tpa23DNvoKGUAm48Yar61JXhZ3T16OoMVA12Up09B7HiTH/cr0YDNr6srYdZG5zamJvKvNTW39ZAGktq62v5xfPqJfqP8DwoNurOkAEJA1RaVSp7xJbtq0CX8++U1SXm+//TYee5FlNQEYjDdvAwAEWDKyBaAAAQLdV9p8bZTqR/vNOtDms/mL3f94buQcSN2twkBRpS5AFIPpqgCC/Z+/b++B8vxs3v649Zl5VN35wUxkniEkx/0VqutiuX6d77yY7Nwc8WvcksrzR4+S02Bx997dXXwO/4xjieNHREovhMgsAohsQwdfwQY/FYCAWgzgLgObMATILFIjguptpqDUJbTbtl52n6xP3DiEAaAawEMeINj3KseKg6iTjYV9Tzg01M8rF9dt43PKD3q5h621Mg8AjRN1IDfk3VjmkfPtjSK2pm7lnMxIEVzu6NjfRVYsRCwRDyWUJlxGCpHfECkECATI5AACZmqAFiF/+MMfUA6HAwEyW2o/gPtqqQFqFmT+tb2Pw7/3HtjbjAHjPkCUWCHlk03nBRZI5/FOcWGeaF9uJqeSwfBaYUZ1s4PEeHjp2pus2bBwfmxuRgrvsohfe4aslF4wM72CX3GaVcy6BgsLIUAmCxBknBklECBPZt8r3RQ9lBpEu+3i5/ph5KbIcyOnRkDso1qZFTLVdF4AkPLypubCPME+97kRa42o3ouxc6cNcaFk2VqsXWiis2xjeiJ3ANSF7D+4/wRZw6YkEsnQJs6ml2B/rCcTICBwvnDhQjQvLw9v1giGJ3333XcPAATEQEDxHhkAmTNnjlKAgIA8yBY7d+7cfYEMNNB2BQJkZvS9oi6iAevjW3svhw927Nyx/dixYzVkAOTkyXtxkPwc3t68LG69LuIWzDL2coGkUAUQw3BzR9OIxKjwzLrMVP7LTXXbB8hyYzVta+rlcDlnqYXU7xAOBMiTBhCQRgsGKcmC5rJWIfKbOQh+g1RbUDcC+lAp0yeffII/h2yBxwArQtXvy/Txxx/jvyv/mrLXVWxbAn7fzs4OAmS6u64w60O7UAc1WGyA2vjbXfNa7v0HbKOvOdZ1rAbAYxyAjAsRZX2xdu/eV12UJzoYHZWcxWQsDEVg8Hzs5WoaGeVmHZ2Skyl8Pi9TfPHQIXLcWMAKEQqEw8Hs4HdgZfqTCZCbN28+tIFPxwVgA4ABATLNAdKIoAarqCh9MeMnO2/H/1Q3VO8loFEDpAwgk2lrgoFD1NUFANIvZOdLdpUUS/baGvuGG9M8AyAhxlkMxjILFiMsLia6oC01kXsFDJsiK6W3ubm5V8qVnsGskO+hFQIB8rgWsGicnZ0hQKa5tNnaoO/Vb3aLHD72Wr7wD+dGz1UcO3GsVhlAQErvRNN55V1YACD79h6szMngPBW3MbeIqrsgBEHMjCAh1MnIsli7xsNpfUZWmuAFdmH5+aNHD5OS0tvR0dEp5omHfUt8/4Hk44WFECIQII98geaJrq6uECDT3H2lH2WA0pcY/mTv7fhhWmHGSQwSNZgeAMhE4iBjWSEDAwOCMmHNdtC23c1+SSTTGFofai9H82h3e9OViSmJnK6MFP7lw4cPk1aZXlZZdiq9NP0S7sYSQYBAgDz6BY4TBN0hQKYxQCoR1GAJFbUIsvrC2tvuvSNHjjQdO3asdiyAyCCiCBB13FjY98TFeaIDuZmcahMDz1DY92oilelIMNXRfFXcEt8Edmaq4IqAX3WWjFgIAAhI6RVxRCM2RTYfwZReCBDFJQvAj6Wpvgbo1wXSfiFApm/bEt14CkpbTPvV0c/5w83pWwYH+gaqATyUAWSq2Vjdvd2imsqmbUUFooOBPtFxFoY+SxHEgwLJMBGImIZ7m1OCY5ITOL1JCZzLe0kceVteWT5YVFpyAbNCbiNiCBEIkHsLjNt95ZVX8BTg0dFRvJHinj178FkdJSUlaExMDN7HC7zmVBZIJ543bx4EyHRN3S1HUGoA7a7VYqubzv5u/zc0NFR7/PjxOhlApuLGUtbWBLNsynIySp/KyQCpu/NCjPVh6u6EF+jS62iyJm7l0hRJVhr/lary5iGyCgtbd7R2i0pFI6wi1udIMczIggD5HSC2trYqXw80gJRNK4QAeXJjH7qpeqjBYuode3/Hj5dHr3iut7d3KgAZc0ohcF01N7Y1FBcID0eGbk62MPBbBrvuTm5pOVlFrXBjRSXnZoqez8sSXzp05N54WjKsEC6XO7y6ePVreCykHFohECAoXv9RVlam8vW0tbXxFu+aAIi7uzsEyDRN3dVfQUWNg02+t/W2/6C2uX7PsRPH6jEo1AGpCxB13VinTvWKQNpuabFkn4N5wCoWa5EPRMGkCwsXmdsaR8SvW5VXm5HCv1pT3XKKLIC072o/KeVKh00LTb+AsRAIEBlAQGv4sV4TVJHLFxpOFiCg4h0CZPq1LdFJx6yPINodJ3+XD5dFL39h5PQIiH08BBAZRFQF0tUBCGbZSLZt29mQl80/vH5NaraJge8KBHGDqbtTioUw14SyqGFx6Snc83np4otkzgoRi8VD60vXv6KVr/UbbG8CAQLAwOPxxnxN0IUXVJxDgDyhmVeLaahpMPMbB2+nD+qa6/YCeKgDkMmk8wKAlORL9ubn8HcZ6M5dxjLxhdbHlAFivtLWiRmxNW593s6MZP5Lbdt39ZBlhTQ2NvZx2Jyz1Hzq90gpnFgIAXIHDQ8PH/M1s7Ky8FjJVAHi5eUFATKd4FGHWR95Oigl2OCuvZ/jp17LvN/o7u4G4GgAAMEAMK4bSwYRddqaAHgcPHi4uiCHd2RLfD7H0thvpSEylwkJMOUVquvKWhPr6RKblZMueqEwr+wCGXPTAUCABDzBcERJxBt4YWEF/DDNZoCA5wIFfmO95urVqx9otjhZgHh7e0OATDOA6IcZoMbBpv9zWOjyfn1zfQcBjUkDZCwrpL+/V8LhVO4uKpIcnOOyLJplujgEgTM/NLNsbCLtranL4zatK9yTvIVzZdu2tl6y3FgtrS09VdyqYZNCky+RQpiRNdstkPE67+bn5+NDpaYKEB8fHwiQaSSdLF3UYBHtjkug23+DVi1++eyZszXHO483yAACBDKxlLmxJpPOu2fP/trsTO6RxPh8PsPAfbm1oT+0PjS5XE2jokB7k4xU4Yvs4vLz2GZ/jKx4CJvDPrOsZNnbMCMLWiDbt28f8zWx63DKQXTQ9t3X1xcCZLpYHw0ISlmpjxqHGP/PZoHtR/xy/mEMFjg8ZBorDjJRgADrQ8Sr3llUWPaUi0vIWkujxUFwx9fwcjAL97A3jdianMDtzEjjXz5w4EAnWbGQ+sb6vmJ28XndQt0fYSxkdgPkzTffRA0MDJS+HmiA+MEHH0w5jRcAxN/fHwJkOqgOQbVKtFFKsP7d/8/edUA1kbXtSUIRRXqVjh0bioL0kgCh955GCEV6EpqioIgoNpAmXUDsvXdA91+3976u29zed93mqpl/3tHwsawFlQSC9znnHs+3H5DJnTvvM297XlN7sy9mucx5qburq5wgkPLBBDKUMNYDynn7CaRzW2dxWnJeM5+TW6qrPtfLWGu+BbL4w44pqha6AeELZoSnJLKFvVlLlh9rbpaNFwI5lnxR/n6fTB/IhdzGipEX8rRKmUB+g8Ph4DQa7T/TAzds2HDPmR+PQyALFy5EBDJKch/j3NQkGg6av1svmHxl9ZpVdR0ddwhkIIk8ah7kXl4I8fPLCHJamicqqUpPzWu1nekTqqU+x424N0rI3ssAMDfdWM0zPDYiszUhJqdn86bq7bLKhaxcvXJXfnb+4YlpE3/FshCBPM1aWN988w1pbCkUCvk56urqeHd3N2nsh0OsESYlQq4FEcjIEwgtFXIfarfNHSyuzXGf9+KuHbtWt7W1rbkXgdwrjPUoBEL83eKtW5tKk7i5Ldy4jJKJ2DRXbW0kmii7kl4QWTRghjnNi8sSJOZfyheWHpaVF1JXV9eRkZlx2Dbd9i0yF4Kk3p9KApFODYRRtD09PfimTZvwt99+e1g8j4EE4uDggAhkpL2PNRiuwlTFxztP+Mt0juWnKdlpXXdVd/9DIE8SxiL+G0kixEvI0uXLVm/MSMvftmhBULSx1nzwPlSRpZchLPR8F5jp0GO4Cbn7uAminvr6+k6Z5UJWle0UZgmPKqcpX8cyUS7kaZdzl46jHW789ttvuKOjIyKQEe46p2ZQcRUHVYm5vcW12S5zX9qzZ8/qlrbhJxBY27dvX9be3lGSJhC3EKtSd5wN3WSi/TRk4eWQCzHTYgZDLoTHEl7IzVlxRFYii/B383LzDnhmeL6EJWO3sKXIC3laCWTgDPOBazhw/fp1RCAj7X0Q/44DzSsnrd+s51tfyc3P3UYY+vLW1tYKIBCCGIYcxhpMIveTNVlasLIqTZDfMmcaPfSOZLudMrLvcoCVdvBcLZprCCsmu5vwQs5DuElWXkjJqpLdmZmZx8aljfuDzIUgL+SpIBCptwFd5lBpdfr0afzQoUP/WiDl/umnn5I/8ySEAgTi7OyMCGQEFXdpS2i4irOqxMze/Ivpi6e/3tHVsRbIgyCMJyaQwV7InRzIthUpieKWJHZ2BYZZu+hrLJiCLLucoKPjp2Gtx4xzc0gQ8zniS/nilYdaW4c/FyLtThfliA56ZXg9T3gh0BeCjP8YJxD4HWgOvHTpEm5mZkYmzZWUlP7zeVCZNWHCBFKG5PLly2TF1uN8HiKQUdB17jEOvI/rVgusryxfVdJIGHkgjH4CeVAi/VHDWDt27FhWsqJiU2ZqYaeHUwTLQHOhN4YZj0eWXY6wNgpaZKTuFcWKzdnJiRX2VFXVdMkqjFWxtqK7OKd4v06azndkQh0Z/zFLIPDzX375JWlcwaAP9bPHjx+Pp6Sk4F999dUj50mAQNzc3BCBjFDoisZRwtUWj781xWHaJ4t9F186fOBwGUEYawcTyP28kEcr5922oqWppTQ5UdjG5+WsVR8318tY124GsujyB81S1zdk0dzIdD5H1CPKKT0sq1wIrPSs9EO+Gb6XSY0spNQ7JglEGrJis9n9JbuPusLCwkjv5VE+FwgEDDwikBEgkDLC+3BVxbWctH81mW3y2dKSpc0tLS1AHkMmkHvJmtyPQLq6OpYvLSirShXktS+cGxh5R7IdoyBzPhLd6XoBdtCdzo4X7uJzxBcaG+94DLLSyMrJzDmskarxIzkvBOVCxhSBwM9BaW5ZWdkTXQOEuuBvPIrEOxh2BoOBCGQEus5pbCV8nNO4W1Z21p85+Tlf7O7ulpLHPUnkYdVYD8uDdHR1lKQlF7QKknIrdSYs9NabuHA6suQjBEPMZ4KVDjPKcV5MJuGF9GVnFB9tapKNF9LU2NSen1+wn5vJPUdWZOUhL2SsEcgPP/yAT5069YmvA/Im77///pA/Gwy7v78/IhB5ex8w63zReImeo8EP0xZOf79ha11Va2vrOoIo1kkJhCCFIRGINJn+IALp3tm9vEhcWrMkpaBj8YLQaCMtB080rnaEYWboM9tAxT0sLia7nRUt7Nm8ect2WYWx1lWu256TnnPEINXgG1KptxSRyFgikO3btw/LdcAiDMaQPxuaFENDQxGByDl0pRSrjKsS3oflQqvP3ALce4h7tnYwgUi9kKGEsR42ZKqpqaUsiZ27jZ2QtVpdabaHgeYca2TBRxjGWOB4CwNmuJNdbHZyYv6lPGHp4cZm2Sn1CsXCA2GZYX1YKnYTy0ehrLFCIBByysjIGDaDXVpaOuTPhuqt2NhYhSSQCeUTcJUyFcUjEGKpuozD9Zz0frRaYP3BxqqNNc2tzZVAHtI1XASybVtn6e7d3cuXFa2uzkwt3O64MCjOSMvOE3rakAUfFbkQH7tJGvRYdnzOLm6csLea8EJklQupra3tyM/OP2idZv0JJiAlThAZjAECgcR3UlLSsBnszMzMRyIQEGxUJAJRWqWEz22Yi+97Zx/5+2qr1RSq61w1WBVXcxx/Y5q9zZWQ2JDjO3fuBO+jEta9CORJynnB+2ghvA9BorhDwBev11Sd7T1pojPKfYwe2KiY63kH2ViEJPLY4rMZS4qOy2peCJBIfkH+flYG6zwthXYTEyIvBBHIfxd4M0P9bKj8EggECkMg6mvU8TUX1+Bf/vYlfuv2Lfy3v3/Di88XK8y5o+RRcFXHcbiRk/F3VvMnf1hdU72lpaVl/VAJROqFDFXWpJsgEHHOivqURHHbDHOvIP2Jdi7E/qOu89EEC/WAmcZqrhFxkVkt3IQ7uRBZeSGbqjZ1ZaVnHbFMs7yKpaA8CCKQJycQ+PnRTiDjysbhLq0u+MVPLuK3Jbf7u+9v3r6Jd7zWoRihq3IMVwlQxVWdx920nj/5k9D40GPtHe1AGg8lkKF4IfcikObm5tXJfHEnOy5rlbrSLE+tcWjex6iDJeYxzkrfO2qeTXhKEjevN5WcnS6jiqympvaS0pLdeel5R9VS1X7DMhCJIAJ5fAKBzxYKhaOaQHTX6eJbX9yK37h5gySPgcUHX/32FT5lyxSFIBBqKhUf5zD+tvVi62uznee9umffnnUtbS3rH0IgQy7nHUwg27d3lgozi7dmphV2zp3qG2GouYhO7L0KstijMReiGWBtrO4RERaYVs2Ozelds2bDLlk1F9bW1XZkpmceXrxk8eukxAkSWkQE8pgEAqRRWFg4Kglk4pqJeM7JHPzNb97Eb9z67/yT6zeu46lHU3HaSppCjKpV9RqHazhr/m41z/rj5MzkXQRhbCCIYAMQiJRE7pdIHyqBQFOh1Puo2rClMpGT0xUTllKkrjTXS09v/iRkqUcvKBb63v5TTANYfG7euSUphSeb22SXCykvL9+ZlZF1jJpCvU6W9aJcCCKQxyAQMOIrVqwYVQQClVW2Dbb4pU8vkXkO+C4w+x3CbbDHpNgk4YkceveQwjQNUvk0clStlb3153Nd5728ffv29fcikEfJg9yvKx1Wd3d3SXbm0qa0lMJt1iauAZMmujhjqOt8dBOIgSbd2lLHJyYyOLUqkS3qKy/fsLtRhqGsPHHegajMqD5qMvUf1FyICORxCWT16tWjgkAopRTcps6GDFf9+OeP/8p1vPLKK/ipU6f6CQSS5wsaFyhE6IpSRAG9K4m+k/5PMxZO/2DdhnWN7a3tGx5GIANI5JF0sYh/V26orNqQnCTujo1ILTSe4OCjqzbPBJloBSARSwOmr7kOIzoxQXSMEyc6X18vm54Qsrlw3boduWm5R41SjL4idbJWIhJBBPJoBAI9KJWVlSNOIJM2TMJLLpTgV3+6SibGpcTxxRdf4MXFxTiPxyOnJ8Ie//nPn3jS4SSScBSiaTBaGVdxUb1lvdD6Uzd/t4ud2zo3tLS0bAQCgTWYQB6nnHcgibS1bStL4Yk7kpPyGnVUF3qbTHRyRKZZQTBZ3cfAQocRwfTir+RzxBdLStbslWVZb15e3oGEjITzWAqGynoRgTwygUBoqLq6esQIZOm5pbhHuwf+61+/9nscsI/w/507dw4fN24cKS554sSJO6Gs27fwUx+ewlVWKUgDYSEFV3Eehxs7GX03beG097bUbKkD8iBI4D8E8ihhrPsRSHd316qKskoYFrXTn87O0FSdz9DE5mgjy6w4oFrrBtKtDfwSCAI5QaxzDQ0NHbJKqNfV1nXkZ+YfmpM25z1MgN3GipEXgghk6AQC10ycT7kTSGpqKkkS3/7+7Z3qKuI6pIrEcE/Cw8PJeSdUKpWsEgPJFfhO1369hru1uymMXLuqtxo+wXninzMWzrzCSmYd6u7sXt/U1LQJCAQWhLAeJQ/yoCFT4HnAv0sEeR3pyfnNptrO/kYajvYo96Fg0MOcJ5pq+kYsnheZBbPTRTIcfQu5kMJlhfsE6YJTSqlK/5Dz01chgkAEMnQCIc6Q3AhEWVkZDwkJwV966aX+fIY0Sf7mm2/ifD4f19LS6v9dGxsb/LvvviN/5p9b/+DLzi3DqSupCtFxTsmi4krOKriZk/mX1gsmv9/c2FwN5EF4IP0E0tzcPFQCWfswAtm2rbOsMH9VQ2pSfrejbUi8rupCBhoWpaAw0/NeaKDmFh4fk92dyBJeqK2p7ZRVcyGM1c3OzD7smOb4KumFLEUEgQhk6ARCGDS5EAhMTnz99df7vQkpcfz222/kNevo6PxrFgp4HzCZkfROJLfxT37+BNeo0FAY70PFUxWf6KT5+5SFUz/KEmd3b2vbRpLHQAIB8hhIIg9IpD8wjAW5j9bm1oqUJHEXnyvcqKk0l26k7mCDLLGCQkfHQcNazzsOhBaTuHkXszKXH2uWodBiWVnZzqKMooN6aXrfkjpZiCQQgQxRCZgwRriGhoZMCMTQ0BDPz8/vL8GVeh2QvL9y5Qq+YcMGfNq0af/5PSASkUjUPyDr818+x+c1zFMY8lCKVSHVdqc6zPjYwdvp8oF9ByoJotg8mECkuZDBBPKo5bzbt3eWiYUlTWnJ+bucFoWyjDUcmRg2dwKyxAoMcx0/G2N1RkRU6JIGdmxub8WaDbtkRSD1W+u3ZWRnHA5ZEnKJbC4UoVAWIpChEQhhiHBNTc1hJRDYU0iUv/baa/3XIvU4YAriunXrcEtLy/v+PsxG+eijj/p7Pkp7ShXnfK3AcGU3VVzf2fBH8zkWH68oK2kD8hhIIANJZDgIZPPG6o18jmhnbGTaygmq8xmGmvZWyAKPgbJeaz3fABvLIJ6AJz67JLnopKy8EAhlVVdXd+Zk5ByemjL1CkEikFB/KslhfPl4Uv4CEcjQCKSzs3NYCAS8BhMTE3zNmjX4u+++S3od0lAV7A3sSUVFBT5jxgxyeiL2gBnvUHUFZAPk8epXr+KTNk5SDO9jJYar+Kri453V/5q2aPpHoXFhJ7s6uzZJCYQghs33IpAHlfM+TNZkx47Osqwly9rSkgs7p1nSQ421nV1R4nyseCEGAdaWGvTY4IC0jTyW6OKqVev2yrK5cGnx0r25GblHJ6RO+O3u4Kmnijxm1M7AL39+GZ9bPxcRyBAJBAZQQeL6cQlEV1cXX7RoEVkODAlvMPxS0oC/CWSyadOme4aq7rWgQksa6vr+9+9xlzYXhZn1QU2h4SqLx0msHCdfs1ls89bOrq4q4rmsehQCGZwLeRCBdHZ2rK5Ys7k6JUm8OywkuVBfw5FpouNhiizvGCrrtdDz9TTX8YrixOce4MQJz9fU1nbKKpQFM0OWpC854prm+jKZCyl8ekhk6papJHlAl7JXhxcikCESyI4dO8gE9qMSCPwO5DcgOf7zzz/3E4c0VPXOO+/gOTk5JMFAQnwof3P+/Pn4559/3t/zUflMpWJUXd2tvFL2VMU1XbR+s7KdcjUzL3sXQRRV0iUlECmJDMyDDLWcd/CY25aWtrV8nrBbwBNu1dF08DHSJct2qcjsjiFoaDjqmOv4RDLceEV8juhSUX7ZQVmp9UIoq3JD5fb89PzDk1InfYElYbeJN6MxTyJWVVb4s58/SxodCHv89OdP+HvfvYefv3oeb3q5Cc89lYv7dvnik6snk5PsLKss+wkEmtWeZgLZtWsXaeQfRiAQotLW1sYDAwNJrwW6xOF3pN6CtKIK9jQuLu4/VVVDIST4XWno6sLHF3DNCk2FSZwrh0HiXO2fmYvnXPEM9rq4e+duCF1VDySQB3khj1LOS/x/FeB9LFte0ZCWXLCH7haXaqzj4INhDhrI4o7BXMhkA29nM23vWE5C7j6YGVJVVdMls96Qxqb2HFHOofi0+AvUZOpNLGdsJ9TBm3j5y5f7JTCkhnHgAmKRCvP9+vev+NmPzpKG78UXX8TnzJlDkgj0KDyKwRsrBLJ3715cT0/vngQCngN4aC4uLqSkiFROZODeQkMgJMaBiOzs7B77ulNSUvrzJj//9TPu3u6uOIOiRBRc2UUFN3ae9K3V/MlX1m9a30Q839XNrf8jkIFeyKMSyH/H3G5bU1fXsF6QKN4p4Ivq9DUW+hnrLV6Ach9jFh7jzLSYwfOmhPET2eKz6SlFJxtl6IVU11R3ZqRnHLVJsXmX8EIkYzmhbrLRBE/Yn4B/9vNn/QYNDOEvv/xy5232bvnoYMMn/VkImQCRHD9+nCwrhWY2MJjwVj6WCESal4C3e+kCUj1w8ABuaGKI/33jb7Lyyc3NDZ85cybpRRBGDH/++efxn3766T97Cb0dsGdg+IGEH5QYf9havHgx/tVXX5F/9++bf+Or+1bjqmWqipM491HFJ7io/zll4fSr8UnxR9ta26qJvetfg72Qe5Xz3otAHlSNlZ2xrC0lKa9rlrVvhJG6gydMR0V2dgzD0thnhom6d1RUaEYDL0HYW1lZtUOWHeqrVq3aVZheeEgrRevHsd4bArMjYG4E+fb688+4vb092YPg4eFBvjkTDxze09ODf/nll6Thg7ftgTH7gdVC8P8B+XzzzTf4xYsXSbnz6OhofOHChWS1koqKyn88ldFEIEvSl5DyIH/d/Av//cbvpM7Upz9/ir/y5Sv4mStn8B1v7sDrXqgjR8HG74vHF9QuwM1Xm+N///M3Sag//PADuWBe+uBucWgChKQ4JMxnzZo1LOE/8HCeeeaZ/s/q+bgHV16lrDBnT4mlBD0ft2e4zLhq57nopQN7920inj8YVbvlUQhkYCKdOK/3JRAo362urtsk4Ir3xEVkrNJQnedrYeiGynbHPmxUrPSYwdNM/Dh8jvgk4Ymcq62tl1lCvb6+flt6ZvoR31TfyySB5I1dsUXoUH7r27f6CQTeoAcbKnhDBq/CzMwMd3d3x7u7u8m36/fff5+M3fe/od++/a9ObakBBeIBAoKf37dvHx4UFEQmfSdPnoyz2WzyZzdv3jziBDIneA4etCOIrEgz32yOG603wrXXapPlzZCQhqVfqY/Prp+NB3YH4kffP0oSjFTMcKDHAgsIFb4z5D2ANNTV1YftWuGeQB8KEBd8FuSu7BrtFKvnw10F13XR+8lygdXVZaXLtjc0NNQAeTyIQO4VxhpqIr2ttXVdKk/cnZKY12E5yTXESM+d8D7s0JzzpwEmE+m6puqMcLordymX8EIK81cekpUXQs5Q37SpKys164iFwOJTMqG+fGwSiNZaLfy979+7Y4R++olsRBuKAYM3aGNjYzJkBSRQUlKCb9++nSSWr7/++l9J4oEEA2/j0E0NOQEIgUHIDP77c889h69du7afkB6Wf4AFcX8Imw2XUcYW303qEm/xOut08Fl1s3C/7X54+rF0fP3/rcf3vb0Pf/3r1/Ef/viB1JfqD2kN6BIH7wsS2oQXSxIl9HcMtZLqUVZYWBjp7ZG5KcJTSjuaphhVV9LQFVMFV3MZf2OG/cyrfjEB54mzU00QRA2sB5HIg/IgD5pSCFVYy5eVN6Yk5u/2ck1I05mw0Ftb21oTWdanCGRCXY8ey2Xl7uOxxBdkqdYLf7dwaeG+jNSME+NTxl/H0sZmQh0aBz/44QPSEP34448P7HIeygIlWAMDA3z69Olk8xtoOF27do30buBtWZoPGBwCG7geRh4Q6//y1y/x4+8exz1iPMjPhPAYGGoIkd1v0Wg0kvjAE4DKJbjOSZMm4dbW1mQuImVVCn74vcP4Rz9+hH/x6xdkLwXM0LjXNcL3gAXhKiBMIEAw6hD+U1VVHXbCGFx19dZbb/UXOcA1j189XjHIg3iGaAIaruSsLLF2sr42y3nOW23tbXXE81YzFAJ5UB7kfl4IeB+t7a2VKby8XYQHstVI2z5gkpbjfGRRnzKQar1azPD5M8JTQe49VZB/SlYEIpV8h94QjxSPFwkv5NZYnF4IIZkrP1whjRHE7+GNeTiNHRhuiNWDOmxAQACenp5OqthC8v3q1atkA93AkasPIxHyTf/2Tfz639dJSfOr166SU/cgFwBzMGD6HiSojx071r+gOxv++4ULF0hD//bbb5MhNfCCgACkeR2pR3E/YoPrBLKAPo2dO3fiaWlpZEgPCOlxq9AedUG3OXwnaVIfyH9K9RSFaRiEohQVdxVcy1Xn16kLp32ULc7e09rcWksQQ+2jEsijVGNlpRV2JvPzd86fFRQ3ScfZG+ldPaUw1fCdYqDmHhYRnFbNjsvtLS9bv1uWg6c2VW3qEqWKDk9NnXoV45JVWWOKRCDOf/XHq/0EAm/l8jCEEMOHsldHR0cykV5QUIB3dHSQxv7ZZ5/trwYDrwVCQw+qCLtXQn/wGurPw2cBoUAu5o033sDPnz+P79mzhywogOtcsGABWRAgjz0avKBcuqioqF8o8Y8bf5A5G4UhDwhdMcZB6OpvWwfbD/yj/S/s3rmz+i553JdAhhrGupesCXgf6yo21Qi4wn2RwSmlOqq23sbj7MyRJX2KE+rWRgEBM8wDuEk88Rk+J++sTENZDY3t4gLxfm4q9wzhev+JpY+tUBaU8kIimJS/IIwmNLyNhHGEN3ggFTCSEI4CIgPtJ5D68PLywmNiYvAtW7aQoRtp4vheRAD/HxDAwDWQhO71e9DYB7pWXC4Xp9PpZNUY5IKAKOB64Lrk5WE8aEEjorSfBLywnJM5OG0lTWFCVyBXouSigps7WXw5fdGM97ZsqW0mvNG64SCQ++VAiJ9ZnyrI37lEkLdjmoV3mKmeiwexlyhx/jTDSN1P31STEeFqHy+UDp5qkmEuBP5NT08/4p/q/ywliXITE48dL8RysyU5rQ4MKYSTRurt+lHJBkI5+vr6uLm5OVm9NXv2bLIEGcqPfXx8cH9/fzJkBv96e3vjrq6uZLMekJKVlRWZ+4DvCnmR0f59YUFoUarQS/agvHMAV1+jrjjeRxGGqzqPk+g66f0yc9HMDwuWF+wkDH4tYeBhVO1DSeR+siZSEpF6IANJZNu2tnX54pK2JI5or5t9bJKBhqMvGlOLcCehrudjZ6TpEZkQnd3BY4l6Nm2q6pZlQr1yfWV3RkrGUSuB1ScYnyCQMVKVBTpYX/32FWmYvv32W3K+hSIY1KdpQQk15G+kEu0w42NO/RzFIY9yDFcJUMXV3Mb/PdN+5lVmuH9fd2d3TWNzY/3jEMhQutKhH6S2tn6zIFG0lxuftVlf1ZFpqO00G1lOBBKGmM8Ea33fCNtpYQI+W3xWwBef2Vovm2Q6SSJbG7cJ84QHOKmcsyoClT/GimLvjJoZZDJaSiAwYQ8Z7dG1oOigX2X3j+9x51ZnnFJKURihRGoKFeRKbls4Wnw5y2nW21tqtrQQL2X1BBHci0D+RSKPEsYaHMqC0FWqoGDn7Mk+MaY6LkwMc1RDlhPhf1VZ432NjdU9Iphe/FLoDVlWuPqALKuyWppa2iGUFZkceQlLxG6Rw6cUnEDgTfbHP3/sJ5DhbHZD68mT5nl5eXc62wnPA9SShaeEikEeJXcWpYiCj7NXk+i7Gv44y37WB2VryrYDcUjX4xLIg7rSOzo6KlcUr2nic8X7/BlcoY6qnY86NtcAWUyEwaBMMfJztzb0jU/kCA/yOeLz0KEuy1DWmoo1O1KSUo6bpZh9RmplrVBsErFtsMV/+etOQxo0wUFuARnv0bEgdwPNndLSZZBRUVmlojihq9UECYYo4ypuqjen28/4xCfU5xJh4BuIZ6lhMIE8ThjrXuW8zc2tGxobmzenJOXv5fOFrZO03IKNdF1Bqh2JJSL8F5ZaHloWOv4RC2zCU/gc0fnkxLzTsvJApFpZUJWVmpJ6UpWveh1LVWwCAfkLeLOVEshwaDSh9eSLyWSS1WHSfo9nPnsGN95grFAlu7QkGq7ipHp7qtO0a/Ncbd9s2toEaID1EC/kgdVYD8uDpKcW7kjm5+2ZM8UvwUjD3Q/6x5ClRLgvTDW8p5po0iPDAtI28OKFfaUla/fK0gsBray0tLSjASkBlylJlFtYruKSiH2zPdlPAAQCTXKy7qJG6+ELqsoGzjWH0bQKda6AQAopuIrrOFzfTf+nKQumXc1bmrcHiIN4frYOJpFHJRDppMLBBLJtW/uG1as2NCbz8w+FByYv15/gyDTSWmyJLCTCQ2CnbKHv4zfFmMlKZImO8Vmi89XVspsbAn93beXa7jRB6okpgilXsESCQJYqJoFAQhakQaQEAj0YyIiP3IKO/ffee6/f8wBZFSB5hSKPUpBpV5GMd5/w1wz7GVf9ovz6WtpatjY0NGwlDP/W+3kh98uDDKUaCwiE+PNVgkTxvmSBuNPSmB5qqufqjmEeSsg+IgwBNuowvdB2WkQynyO+sCR56QlZTS+UksjyFcv3FCQXHNER6HyP8UgvROE8ERg+BMKAQCAwV+JJZlOg9WQLNLlABl/a4AjluvQOuuJUXN1tGFSOgbyHyq3ZzrM/XuRp/+qeHfvriGemEbyPgR7IYC/kiQikvX1jVvrS7mS+eL/NVN94fQ1nPwwzRVVXCEOHtTZjjommZ3REyJI6HlvYV7Z63Z7mZtnInEhl39PS046GC8IvEl7ITSxD8WTfGR2M/omDQCCK0lg31hY0Nko9D1J36+ZfeOiuUMXyaImzT8mhSpTclCSTXCd9O3XhjCulq0t31G+tb7wLkkDu5YXcrxprKF3p7e1tG9ev2bwVQlex4Usq9CbaB07Sc56OLCLCo3ohKlZ6gUHWBn4JPLb4CDsu9wKMwJWlF9LQUNeRnpZx1C3Z7WUKj6JwgovM7cz+N14QGBwNkh1PY9gKNLdIuRXJbVIuHiZFKlzeY+mdbnNtN53f5iye+0FyZsqxbS3btjb+G8NOIHX1W7cksnMPCBLzuswMPELNDVwYGJIrQXjMfIimhY5vhNP86GwBL683a8myY81tsvNCgERggmFSUvJJA4HBl2Rpb4nikEjgjsB+AgEPBBl0+YetYIaKVIEYGgWTjyTjSquUFIs81mC4crAyTnNTuj3DceYnbn5uLxDGvamhoaGJeE6aHkYgj5JMH0ggXV3tG3OzirtT+OJDjgvD+EbaELpCVVcITwALPd8FZjo+MTERGQ08lrh35cp1e2TZYAhLXCA8wE8WnFZPVP+VnGJYohgPf8jOkH95IMioy2/BMC4onZaOCIZiBt4hnuLkPAaErmhcGq7ionJrqvPUa/Pd7N6qraslvPOGZiCPgQQC5DFcBALeR/mqymY+V3wkJjK9Uk97cZChIZIrQXhyUCz0/fx0aS5hXJboEDs250J1leyqsqQrOSX5WIAg6P8wPnYLy1GMfEj47vB+JdsPP/wQGXY5LMgzwbRCmJEuLdX97JfP8Ni9sYpFHtJu80IKruyqTJbsTl80/WrB8oJ9wBWwpAQykETuV411PwK5Tyhrc3391i2cBOHBJJ6wY4LSAqaenrMnMn0IwwLjiR565jqMaBf7OJEgMf9SVnrx8aYW2RIICC4K+IITNkk275OlvUWj3whE7YnqJxAY8oQMvOxXZmYmKcsuJQ8Qs/Tp9FE8z+Mugah4q+Dq7up/zXSYeTU0IbSHMPjNUgIZSCIP80IeJmsykEDa29s352QX70gRFBxzdoxMnaTtEqSh4aiDLB/CsHkhU/X9bU3UvaMiQ5bUsOOEfSuWV+yTpRfS3NjcVry8eG9Ocs4xPYHetySJjHKpk9h9sf0E0tPTgwy8DBfIx4MwImhbSWXZoVTXpc1F8XqIpFIlUcq4qqvqzZnONp84+zi/vGP7DiCLlgcRyOA8iJREhkogbW1tVWUla9t4bOHR6PAla/QmOgYa6TjPQiYPYdhJxFo3gGGkSY/ksoSHE9nCc1A1JUsvhAxlpSUfixXE9mA87B9S6mQUh7Kg2kdKIIcPH0aGXkYhKxhSBZLsA/Mdp6+cxjXWaCimDA4MiEql4UquSriFi8U30xZO/6hiXcWOhoaGFiCQgSRyPwIZ7IUMWRerpXWLgJN3MIkn7tIe7xhopu/lhiGtKwRZwEjdVd9S3yfGZVFsNp8nvpAqKDglS/KQejhpaWnHmALmczQe7R8se/R6IawDrH4C6e7uRgZ/mBfMg4dxvVCgIO3xAPLYfHkzbrTBSDE9D+JfioiCqzirSvTdDX6a6zDvg0xR5pG2ljYgjFYpgUhJ5B4E8ihhrH8RCKx0QcHeZH7+YadF0cmTdF1DJk6010WWDkFmmDQxeLq+mkdEAFOwlpsg7CkqLDsoqznq0gVSJ1we99TkxMkfkV3qy0YniXAOcvoJBMa6okbC4Vu2trb40aNH8b/++ovcX2nICsp0VcpUFNPzgFWG4UoMZYmyp8o/Mx1mXfUO83mWMOyt9fX1bUAgA0nkfl7Iw2RN7kUiELpaXlzewWWJjoUwk4u1Ve0DDDRdrJGFQ5A1qJMN/bxA9p0bL9pPTjDcuKVblvkQUO1dUbpiTxo/7YQJ3+QLjEsQSPHoMwbcg9z+HgSYHV5VVUWOhIXBUlQqFRHBYywdHR08NTUVv379OrmvsL8gF/PmN2/itlttFZc47qrsKgep4KpuajfmOi+46urn+lJza3MbkAdx7odMII9azguex+bNtVuTuOIjSRzxNgsD9zBzfWcXFLpCkAt0dPw0LLS8w2wsg3iJbOFpYp2tq2vokHU4Kz0n/XBCUsJ5Fb7Kn1jK6MuHAIFIpUzIxO6tW/gff/yBv/nmm/iBAwfw/Px83MnJCc0JGcKCPUpOTsYvX75MkrFUEPGb69/gxeeLFTNkNUjnippExWnuShJLV6uvZiyy+aCyct2Ouro6eBEbEoEMIJEhy5oQv0MuATf/YApPtH+amUeMqbazvz5mo44sG4LcYGzMMIfSXqYHv5TPy7+UJyo93Nwq2y518ERA+p3FZ13AeNgNchTuKCKR6TXT8fZX2/F3vn0H/+OfP/qFFaVhLSAUKDm9cuUKXlZWRnon+vr65LQ8JHtyZ4EEfkBAAP7qq6/if//9d//+/fXPX3jfJ334wsaFileiew8CoWRRcRUXVdzU3fS7WYvnfVhWsXrP1satbQ0NDQ8lkHt4IUMmkPb21i1F+au6U5MKTvnRuQWTtJxCTHUdTZBFQ5A3aFb6vq7Qpc6Kzm7nJuT2lq2slGmXOvztyg2V2wWJghML+AveJkNZeaPPE9Gs0MRn1c3Cyy+W4y9/+TI55hbenqWJXymhgF7T559/TvaMFBUV4XZ2driRkdFTSRx6enp4TEwM/sYbb9wZO3t3r8Cju/LjFZx/iI+rr1FXbOIY0O+hzFDBNTw1r89ymH01mhN7oZ2w7A11DdBx3i4lkcEE8jhhrIEEQvxbU756QzuPJTzOis2qNdbyCLU09FgMzzIyZwgjAYqVoV+QkbpXFJ8jPsZLEJ4nzvI2WZMI8fa+k8yHJJp8jnGw29jSUVqZRRgKrbVa5AyKjOMZeNsrbfjb376N/37jd9IwkmGZuwu8k19++YUMd+3btw8vLi7Gw8PD8cmTJ4/ZkBd4GyBBsnLlSvyFF14giUNamgtjZ4E4SntKcetqa8X3OgZUXSnTVSSq7uNuzHO2veLm5/5i27Y20nOXksdgAhlKHmRwOe/gPEhra2tta2tzbRJbdCSZJ94zaaJTiJmOlw8yYQgjCjO94EkW2sw4d7s4URI3rxdcY1n3hgCJCAuEB9h89rkJvAm/kKKLZYohujihfAJusdkCr32hluyahhG4EOoCD0XqnUgXxP5//PFHchzr/v378ZkzZ5INdDAqV1FDXlBMoK6ujoeEhJDe1++///6v73zz1k1yrvymy5tI8lV40hjULEiLp0moHlTJVNfpn893W/B2XXVN1928x7aBJPIYBNL4IAJpa2upW5Ky9EAyX3zCZVF0uqmuV5jlBA8jZMEQRhym2ow5Buqe4SHMlPWEe9y7tHD1gcYm2UqdwPyQ1PTUo+H88IsqPJW/sGTFG0ClWqZKhrqgf6TuhTpy3CqQyo1bN/5DJtKQ12+//UaGefbs2YOvW7cOj4+Px+fNm4ebmJjgGhoao7J3A+ZzLF68GC8tLcWPHz+Of//996SnIQ1TAXmCVwbfX3xajE/dMnXsEMcAz4OaSgWdq9vmrhbfzHW0fb+krHTvVuIcDzzXAwnkXiTyuLImxUUV23ks8ckQv+RVeuPtA811XG2Q5UIYLaBaGXj7QJMhny06xE3I6dm4XralvdJ56jw+7yQ9if4ClojdxrIIElmluIZm4pqJuF2jHSmJ0vhSI5k0hjGsMBCJzKFI/p1DkS54i3/nnXfwc+fOkf0ny5Ytw0NDQ3FXV1eyf8LS0pI05PKonIIZ5Pb29nhwcDC+evVqsiP/7bffxm/cuNF/vVLSgDAefL/97+zHo/dE4/qV+mOLOAYsSgEFV3ZXxnU9dH+evXj2lbTMtBOEcYeS3QcSyOBcyIMI5F79IEAem6trm4kXu5MpvLwd4HlYGNE9Ud4DYVRBB/PTsNT1CZ1hHszls8XHobS3tra2U9ahrDUVa3bwk/gn5yXOewfjYrcw0Z36ekU3ODDDYtzqcbjReiPcodmB9FLOXz3fn1iGsJe0L2Lggjd7MNaQT4ASYvBYPvvsM7Kq6dKlS/ixY8fwHTt24GvXrsUjIyNJg/+oPSrQIDl16lScw+HghNEiw2sgLQKfAXNQgNDg86Xlt/+6PuLaYf3fZ/+H+3f745M2TlLsRsChVFwVEeThqSzRcNf4fY7jnCshMSGXoKKwfmv9f8704DzI4/SDDCQRIJVEtugo8WK3f5oZM9ZI281fD834QBiNmKTjZmau7x3l7cpflsQruJiTseIYqPbK2hNZsWLFnrTEtBPmPPNrGHv0dqoPxwK9pwWNC8iek/X/tx4/8M4B/IUvXsA//ulj/Oe/fialPSABPZhYBnstQDTSMBIsMPg//fQT/vXXX+PXrl3DP/300/4FuQqQD/nhhx9IUpL+7uC/Mfjz4DqgnPnaL9fwy59fJosIBEcE+OTqyTh1JXXsksbA0FU5hiv7KUtU6Co3bF3nX3H3d39pZ/fOlsGex1DCWPcr571XHoT4zw2Q98jOWr4vhZ9/huHKyjPT9QjVVfNCJbsIozeUZaLDWAyz1MOC06p58cI+Mh8i49khZFI9T3iAw+Oc1eHqfD9aO9VlFh4ppZCeCozUBQNdeLYQ3/3WbvzDHz4kR7pCUhqS9RAKgyT1v0Jhg0Jj0jUY9yKkgV4F9GnAZwCJQbMfiBsWnSsiPSfoj3la7sV/Os2DlXEVD5WbNi42nyx0X/hGdXX19nt5Ho9CIEPxQlpamhqWFa3eweOKTkUGJa8z1nIPM9fztINnFJkphNEMipWBj7eJplcUJz5nb2K88MKmTbLNh8BqbW1tS89MPwJNhqo81etkZdbKseuJPIxQ1Far4XqVerjJRhOyDBZyK75dvjjnAAcXnRaRPSpbX9xKejDPfPYM/u537+Jf/volSTZANEAKA6VDgBy+vv41/v737+PPfv4s+XuQ+C/pKcFTj6biwTuD8UVNi3CrKiuSzNTL1fGnce8HalzReDRcyV1JMsV1yhe2Lgveqais2DWU5+BhifSHEUhLS0vDli21rUlc4UkeW9gF/R4WenQ0IApBMWCp5aEFpb021iGJgsS8c+xY4YUaGedDYNXV1XVwE7mnIvgRFwkv5B9yHO5K7Ok2ZGiNyKKmkRVX0Gn+7Sz72R8uXVZ4YGv9nerBoZzlxyUQKThx2SdTk/KPT7cOTDDVYURYa9tpIsuEoED5EB8zU3VGhIcTpzCRLe7Nylh+rKVF9qGsTVWbuvg8/klnnvOrZJNhNiIRtOQ70xzLo+BKnkq4nqf+z3MXz/0wMS3xdFtrW9tQyeNx8iBSEmlra96ak1m8X8ATnaG7xIkMtVxDUN4DQSFDWZaG3g7mOt5RsWHpW3ksYd/SgjK55EPKy8t3JvIST03nTP8AY1Fuk3InyLihJY+8RzEGOQ/JeI/xf9q62H7oHep7uaWp6ZHP/P2qsR6UB4H/sbRo1W4+S3QmJjKjxlTXLdzaiL4ImSIEBYWdsrmBL8OY8ERY0dndnHhhz9q1m3bKg0RgHG5SYuKpSdxJ1whPZExXZqE1ShZUXAUq4yqeKjfmOM/9yD3Q48VWwvO4SwLDQiD3C2OB97GuYkMnNyH3NDs+d5vueKeQO/0edsrIDiEoLLS1GZrW+r4R86eHJyVxxWf4LOH56uqaLnmQSIYw43ACN+GcJlvrR5JEipGRQ0t2AolKIUpkxdVMl5mf2LkvfGNz9ebt9bX1j32Gh0ogTQSIZ6otiSM+mcwXH7OdEcSzNPAIRf0eCGMCBhMcDE00vaMWzghPFXDyLqQk5Z9qbpbtFEMgEIg7Jy9JPsblcs6N4437gyzvXYUMHlrD3+tBi6PhVDoFn+Y+7XMbB5v3N25cv1OqliBrAmltb21MExQeFXCFZxbNiEg21vUKg/HTyPIgjBlYGTDnTtKkx4T4Jq/jc/L6xDkrjjTJWC9LWpmVlJJ0PJwbfnEcZ9x1LJEgkRXI8KE1fIOhaBwlkCm5beU5+cv5TvPfzVuWf3A4POyhlPO2tDQ1CXNLDxAvZudC/ATlRpoekWbaPrORxUEYa6BaGPp46aq4h8VEZrWw43J6S0vW7JV1KEtKIjwe95QP1+85jEu5haWiyiy0hoc8KBkUnOapJDH2NP5+rsO8DzJyM4+1Nre2PYnnMdQ8CHgfq0rW7mTH5Z6Li8xq1FJ1DrY08nbH0GhahLGJKapWen5B000DWKCXxWEJL2xcX9Uta+VeIKmqqqouNpd3yofj9zyFTfkHkQhaT6xxlUEDz0Ni6Gn0g63jgvcFaYJTpMbVMJDHwwikqWlry4b1mzp5LNGZJG7eEetJ3nEWRt7+GOaniuwMwpiFkZGfvoUBM3yOdUhiIlt8IpEtPFdbU9spj6R6RUX5ThaLfWYeZ97bGBu7jeUgEkHrMbv9Cym4El1JoknX/G2Bs937YQlhvR0dHa3DRR73I5E75NHUUltb1048O6dhkNsMywAu6FwZqfuhvAfCU5AP0fKysNSmx3o6cvKT+fn/lyooOCWPfAjIZ5dXVOxMZCeemsOd9x4WSxCIEBlDtB6j18NFBZ9An/i7g+vid/3DAv5PFuTxIAJJFhSdSOXnXfRwShCb6HhGT9bxMUOWBeGpyYeY6wXYQWVWkK9gDZcl6hHlrDjS3CrbyixYEGIoWFq4j8VinbXgWHxOqvcWjg0JeLTkQB7LMZzmpyRRpav+Pdtlzkfu/u4vEsQhU5megQTS0trUIswpPchLyD8f4M0vN9Z0jbDQYszHkEgiwtMGS6NAD1M1j4jYqJxtMMlwVelaSKrLnEQgySnMEx5MZaeeMuQYfY3FUVCjIVpDm2fur4wr01VvLPKwf9+J4fJqS3PLtsdpFHwcAiFeflrLStft5iYIe+Iis9uBPKyM/d2QJUF4KmFq6qhmpscMNtPzjmXH5e5hxeb0VFRs2CVrArmbE9mWlp52NCYhpkeVo/br3W51ZCjRum/FlVKIMk7zUrpl42Hz8Tznee9Ubqzc2VDX0C6L0NW9CKSiYiNUXF3gJoh2T9Khx0zS8w7CMI9xyJIgPLXQwjy0LHS9w+ZOCxPwOeKzxDpXvbl2uzyS6hDOSklLOcbhcM9N5Ez8mQxnFSNPBK1B5AHS7NFKuJKX8q2ZnjM/dfBc/AaQhzxK0KUEUlVd3cVn550T8MVn5k4LFJgZ+ISCygOyIAgoqa7lb2Gm4R1rOysiWcDLuwDjcBsb5eKFtEOPSDQr5mwsK6GHwsL+wuJRoyFagzyPcGWcSqfhMz1sPp29ePZ7K1au2AdGXdaex//O6dZtiSwhvFxdsCVetMx1GNHG2gxzZDkQEO7CXIduA0l1pgevlM/Lu5iRvuw49IfIwxOBOQ18Af9EMDv8GRWWyu8YD5X3IvK463kk0CRUL6pksteUawtc5r9TWFx4EKr5HjZVcLjOJjwD8Cwk8cQXfT25JUbqXlEWuoyZyGIgIPwbVCt9X1djdY+I8ID0zVyWsFecu+KIPMIE8BnQi5LAZZ+OYEVcUk5Q/hNjESRS8j+hPGRUn7IFEiUsmkTJXfm2tefkLxa4LHw7R5xzpOkxpNmfpGIwT1RymJsg7A3zT9kMz4aVPt0VQ53mCAj3JhELQz8vmKmeEJndwWEJ+0qKy/fLo0cESKSmpqYzlp1wxo8dcBlLwG6TulnIE3kqx9FSeVQJhU6RmHtafDXHYe77WXnZR+VLHo3tK5ZX7IPqxITo7A4IW1kYBnkRzwgNmQkEhPtAX99D3UrPO8ja0DvubmVWb8WaDbvk5YmA5AmPyzsVyAp8TiVO5W+SRJBRfarCVtQkqoTmoXTbzMv860Uu9m+lZi053tLUIjfygLBVefn63azo3D5ObO5uSz1mLDwT8GwgC4GA8BAYY3bjYZLhLPMQToogv48Tn3uhrq6uS14ksmnTpu1h0WEXGGzGi4QnIsGSkAz8UzOONo2C07xoEkO60fe2jvPe56RwT7e0yJE8QAK+pqGTEy+8kMwv6JtpHsixIp4FQ2zuBGQZEBCGiElqPmbmOj6R86aGp/DYolN8jvBsjRw0s/pJZPOm7Ww2+7Qny/NlWgLtHywZhbPGvOexhCqhelEkxnTj7+xcF73DTeOehrBVQ2NDu7zIo6a2thPOOo8tPGU7LUQAz4CJmp8psggICI8IUw3fKRD79XLhFMIMEQE//wxUTMmLRMorynfGxcWds0+wf5MaT71DIsjgjj3yIF4MKOkUiZKX0m1duu7Pi1zt34lIiOxpamlqr91aKzfPo66uoSOZW3A6iZfX67mYXWCl7xttqu89FVkCBITHA8VSy98WwlkMF25xIlvcuyR16YlWOWhm/U/Bt2JHbEzseWeW8+sQzqIIKCicNcYS5kAeFAZFos/Q+9HO2e69aE70hdbW4ZnpMWR5HeJMw9lOZAl7GW7cYnhxstIKnIehiisEhCeDhUGAE1RmRQQu2ZLIFvXl5iw/Is+Y9KpVq3bHs+LPEiTymlKc0g1MgMJZY6VJkJpKxWketNuGDMPvF3k4vB0WH94HMje1tbVyIw9YwuzlR3nEC1JEcHo1nHULg0BH9OQjIAwPqJY6dKauimtobERGMzcht7cwvwzGhrbJS06ifG35zvCY8B7nBOdXyW51HkqsKzx5kDkPKoStfroTtorobSMgvw7zxvbG5sa2ovxVB+FMx0akN+nSXEMtdXyZyPNAQBhWOKpZ6DP9pxr6x3PicndCc9WypWsOyItAyHDWuoodrHjWWXeW+yu0eNo/lCQK8kQUNWGeTJAHgyqZ5G387SLXRe8k8BPOkZ5Hvfw8DzhTy4kzDL0e7NicHdbGvvEWer4BcNbR846AMMzQw5wnWhkyg6EjlxufuwdkrdfIqUekP5y1ZtUuSKy7xLu8SoazeHc71pFxVpgF5AEJc2Nv4x8Wudu/FZkQ2QN9HvIMW8FZWlO+fjc3NqeHnZCz10DFM9zK0DsYzjh60hEQZATjiR56FnrMuFmWwVw+R3wCJODXrt24U54ksq5y3Y6oqKjzHvEeL5PhLNSxrjgd5gR5ULzB8zD51s7V7l12Cud0W3ObXBPmpDe7esMukGZP4omPzzAP4FpqM2NNJtJ10ROOgCBj6E/wMLLQ8g6bOz00iccWneBz8s5VVVV3yTucFR8ff9Yz3vNl5VjlvzE+KvEd9eQhoOJUBu22ibfZN4s9Fr/FFnDPjITnsXlz9Xbi5ec8nF1Q1zUlzrL+BH8j9GQjIMgJFppBVhZ6jHj72dFpSbz8noSY3N7qqhq5kQgs8ESCIoN6veK8XiI8kdsYGxnqUZfvkCbME2kSCp0qMWZM+s7Oxe4dFp91FjrM5aGqO5A8qqtruuKjcvsExJldNDtqCZxhQ+IsoycaAUHOMNXwnmquSY90t2eJBHzxReKhPFNbW98pT09k4/qN3VDiy4hnvESLpd2gcCk4micyyhLmnDthK3Nv868Wudm/mZyecpIkDzmHrarrarqIl50zAn7eRTeHBLEJcXZNJtKnoScZAWFkQLHQ9FpgRDyI0K3O44rOA4lAR688SaSysrI7Jj7mrH+8/3MqsSp/UmDGunSyIUqwj2iHOS2OhisxlG9bMiy/cHR3fIMlYJ2Rp7bVwMFlAp74LJ84o3BWjdTpkVO0GPPRI4yAMMIkMkWfMR86d5ke/NLkxPxLKYkFp7c2ykfypF/Ft7qqKzIu8kJgXOCzWCz2N7Ek2FJkyEeSPJTClXCKDwWfzpjxma2z7dtZoixynoc8w1bkIs6igDiTSdy8Z5he/FJSml2fJA/U64GAMPLwUDLXZrqYaHpFBfny10BdfdaSZceb5DDR8N/x7eouDpdzOiwm7JJGnMbPpCdSiJLrI0EgtAglCZVBuzmDMeNjZ0+X10SFokPynOchPRNwBrOWFB3nsYW9gT7JFSaaPpHm2n7OcGbRc4uAMIpgqRfoYaJOj4wOyajhcUQX0wQFp0AQT65vm8SKjo8+FxcT16sep/4TJZJyG8tHJCK3hPkKTKLkqyyh+tJuLqQvfH+R86K3SlaV7IUZ5vI+B0Ae6clFJ3ks0cXI0IwayHnAGUVPKgLCqISf6p2Jht5RYYGp1fDg5mYuOyaPiYb/mbGezD8ZGhV2ST9e/xsynJWDjLzMCaQQw6mBShIlpvINW/r8D528nF4rKy/bPRJhKzhzcPZ4HPHF8KDUKvCOLXT9vOCMoucUAWHUIkplso4/00STER0bkdnKjRP2CrOLj8qzvPdO6KKpPTkt+VhCDOu8aZzpF1gUSSJ3Gg5RYn34B0EVUSQ0P5pkHFPtDwf64nfcme4vbty0qbtRji8P/xJHzCg+yk0Q9cQQZxByHnAmMcxGBT2fCAijHnbKlvr+TGM1z3AQXwRPRJSz4khzc3ObXEmksak9NSP1aERkZO/U2KkfY9EEgaQiEcZhn+UhpuA0upJkgu/E3528HN9y9nF+eXN19XbwOuTtecAZg7MGZw7OHpxBSwOmL5xJ9FwiICgIDDGfCdaGPoGWet6xMeFZLey43N4C8cpDTXJ+I21tbm3LEeUcio6M7pkWO+0qFoPdIgdTlSBPZFjII5MgDyZNosXU+sXBy+Ft31DfZxsaGjrkNUVwcNgKzhhx1vriiDMHZ8/K0C9IH0OzzBEQFBIgUAeJdV6scBdUZxWIV8u9Ggc+r2Bpwf7YqNgLC2MXvYXFYjcpHIoEWz3AGCJSeOQGQUoyRULxpkh0mbo/enrRX2GG+/1fe2tre11j3QiRx+pDd5R1hbvgzIHwJ4ZKdREQFBc6Og4a5nreQWbE22B8ZHb7HRJZeUheUw37DUxjU/uKlSv2hEdH9LjHer6iEq3yJwZlvssQITyOrhUtgSah+FJuWfhYfLnYY/GbUeyoC+B5jES+A84SnClegrA3jjhjZjo+MeZ6fkE6mIMGegIREBQcIJFtqesfYm3oG8+Kz93DiRf2FeSXHZJnYl0azqpYW7EzMjbyAiOa8YJarNrvWAwmwQpQcv0RynRxWiRNQvOl3bT2mfy5s4fLa9xk7umObR1tI0EepOdRUHYIBkKxYnN3Wxsy4yx1fUMQeSAgjCEYY4Hj4cHWVXEPi4/J7gZPBCbBNTfL1xMB0mrY2tARkxBzLiY65uLEmIm/kBVaYpRcH1KDYJASTvGn3Frgs+B9wvN4ffny5fvlHZL8X8L8zjRBOEusuJztcLbgjGGY3Xj0xCEgjDGYavjqWOgywq0NfBLio7I6IbFelF92sGkESj1ra2s72InsU6ERoc8YRRt9RYmi3MYy7pII8kT+kywHgqX6UyVqvmp/LPRe+K6Hj/tLy1Ys2weNovIURRzoeQB5cOJz++KjcjqnGPslTNZlhplqOOqgJw0BYczCRmWyATPMSN0rihMv2gvhrKJCIBH5v8XC/G1eMu9kVHhkn0mk2TUsknobSxoQzipB5EFWWuVQJFQ6VaLKVP3D2dv5TUdvx5e3bNmyfSS8jn7yyCs/CGOVibUPGlcnG/iFYtgU1CSIgDDWoanpom2p6xMKZZbE2+M2CEHki0oPt7Y2t8lfK6mpXZQnOhgWFt43L3r+exDOonBRmW//HA8YAuVHlegz9b938nR6MzAy8BLhcXTKO3/1v4R588CEeQecIUstn1A4U+jJQkB4SqCtzdCcbOgbYm3oH8eJE+6AJGi+aOWhkTBMQCKFywr3Qa+IY7Tj60rRSn9R4ikSbPlTqqEl9Tw4VAnVhyox9TP72p3h/kpEfHhP49ZGuTcHDvQ88ogXDTgrnLjcnRaQMCfOEJwl9EQhIDx1sCMT6wZqXmFxsZkdhCfSl5u7/Ii8E+tSb2RtxdqdfmF+l/yj/J9XiVH5nRJOgeQ6/tTkRUr+t2jByjjmh92a6Tfrqr3b4jd4qYmngGhr62u3jVTCHM4GL17YlxCZ2wFnxkoL+jwc1dBzhIDwlEJLy0PL0hBKfJlxpOwJYSDEuSVH5CkFP9AT2bx58/Z4dvw5/3D/5wxiDL6jRFIklHTK2C/zlXodIgpBHjSJqt+4v+b5zvvAje72ck6e8LC8h0ANlmQX564gyQPOiPVdzwPODnqCEBAQaKTkhKZHZEJ0NumJZKTCPJEmuZMIfF5LU0s7VGjFhsb2WEZZfoZFYrcp/LskMtY610sGkEc28R19qZIJ/hN+9/Chv+ru6/7Cho0bdoxUmS7cCxBjhLOQyMrtY8Vmd8D0SytD7yA4M+ixQUBAIAHaWRZGPn7mmt5REcFptTyW+GJWunyHUg1OrgvzhQeDw4Iv2kfZv6kUpXSDGk+9M2995RicW86mSih+lNuT/CZ97cxwey04MvgiTHkcCUHEgZ5HxpJlx5M44otwJsw1YZKgjx/StkJAQPgPTDFHtclGfn5gKCJCltTxWKKejLSiEw11dR0jkVxvbW1tKy4u3hsaEdrrFun2qlq02u/kgKo8TKLwJCL1oooJ8oik4UpMpX+smZM/86S7vRzHjTvX2tLaPlJlumSzJ3HP01MKYRhUT1Roei2U6lobMf1RzgMBAeHB4SwDf29jdUZ4iF/qhiSu+BkBT3ymvn6keg6a2muqa7pCo0J7QyJCnlWLUvuVTK6nj4HkegFBHn40CeaP3VroZ/+ug5vD63lFeQeBOEeq0gpWPbEEXPEZQaL4mWC/lI2mxFmYSpwJDItCYSsEBISHgfBEYLKhjndUgJegnM8R9aQKik6NlCcCn1lTW9PJE/BOhYaFPmMdZf0pFoHhlCSKROEIRNrfkUHFKYFUiYa/xi9OPk5v+Qb6Xi4rK9sDopMjRR6wz7W1tZ1wrxPZ4t4AhqAczsBkcpIg8jwQEBCGDoqlUaCHiaZPpD9DsJLPEfdw4nMvVFXVdI1cE1trm2CJ4FhYWFifXaTdO5RIyj+UGCqQiGTUJ9el10aQB4VHXDOTdtswwPA7b1/vlxhBjMvQHDiSXgfc02rC0+MmCM/zueIePzq/DO79FCM0wxwBAeGxYKdspetrD4l1hjOvSMDPu0gQybkNGzbvGClPBEJay5Yv2+cfHPiMe4TnKxMi1X7DIu+Oyy0b5XpWSzGcFkrDqQG0f2b4zfzYhe7yKiuRdXakBkAN3NcNlZt3JBL3VsAvuMhwZheZE56HqZGvPZokiICA8CSgWRp6OxhpekS62MXn8FiiU8Q6X7luZEhEOja1srJyR2Rc1AX/MP/n9CP1v6OEU25RUiiSgc14o4o8sjEJJYAqGR84/g87P7t3PXy9XszMzToCemAjRRxS8oB7ySXuaSJXdMpxYVwu3Gu458S9V0LHHwEB4YkxWdtntrWef9y8GeEpyYn55+JiMnvLVlbuGSkSgc9tbW1t56XwTgYHBz8zJ3LO+6QsPKzloyzfwaaCBLtEO0D7B7oP/WW6P/05Us+qqbF9JMkDynRXl1XuiYvK6hXw8s8vIO4tcY/j4V5jaJIgAgLCMIJire891VSTEbFgRkRyIkt0GEo8ly9ds38kDSFBJNvy8vMOhoaF9rmFub2mFq52nRJFkVByR7B7Xep1FGE4XAvmT7k1zX/6J57eni/HceLPQaJ6pIh3IHksL16zH+4hsY7YzghLhnsL9xiRBwICgkxgqOljZaXvG22m7R2bmCDcx4nJ6VlWuPrASDQc/iuGv2HDjqDIoL6Q0NBnyZBWCOU2zAyXe/f6/+Z34DQ/mkQlSOVPFz+XNzy8PV7MzM0kQ1a1W2tHNGQFM0SKC8sOsuNyernxwv2WxL2Ee2pB3Ft0whEQEGQKfX1/IytNn8jppgEsTlzudpA+ycpYfqxpZD2R9oa6hg4o9WUG+V2eEz7vA0oEVGkRJFIsJxKRdpVzqBIsAJMYBhp+5+br/ho9kH557dq1O0dCGmbwaiHuUXb68uOJbFEfKyZn+xRTJstcxy9SX9/DCJ1sBAQEucBI3VXfXM87yESTHhkTkd6UyBb2ZqQtPTGS4Rn43LbWtjZRvuhQcEjwxcWhjm+Mj1C/TjYe5spw7rr0bxZhEmoUVaIcqHzDKtD6U7ov48UYzp2u8oamhvaRTpbDvclIW3YCyCMuPKPRSJ0eaa3nE2g8MVAPnWgEBAT5hrMwnwnWBgHhxmqe4cG+gko+R9Qn4InONLU0juibdmMTjHlt6AyMDOwLCQ77P81wre8poYRxZ1OHv3v9rteBZWJkohwLwm66+Lu84cJwf6lgacEBCFmNtNdxJ2zV2A73hs/J6wv0E1QaqzMirI2Z4YbY3AnoJCMgIIwQpqha6Pl6munQY/wZ/JU8jug84Y2chb4CwnC1jegbd01tJ1fAO+UfHPDsnLA5H2Ch2J2QVt7dPEXJk1dYQXiMkkCVUAIpuHGw8deeTM9XAsMCL62uWL2rpWXkusoH7EPbhsqqHYkc4dlEtvgc04u/0kzHJ2ayUYCnJeYxDp1fBASEkQbF3MDPGTwRz8XsAgEvv4cTL7xQUbFx10jmRSBZDR5AXkHeAWg89A/xf35ixMRfKEEUCSWN8niz1wfIr2MFhFcTRJUoByv/betv+4GPr+/zUQmR55ubm0eUNAZWWsE9gHsB98TdmZNvrO4Zbq0f6IKhSisEBIRRBJqlvr+tJfF2azslTMBji4/zWOILxUvL9490ch2S11VVVV3h0ZEXmIHM56aHTv+IEk65SY2lkh7EIyn7Sns7uFQJFozd1gnW/cHd3+NVhh/jueUrlu8byZGzgycIwt7DPYB7AffEUt8nBu4REkVEQEAYlbBQZ8w01/eJnD0lmM+Ky93DiRX2FYjvzFofyVwASIXAVL+0zLRjQSFBl+xDF7+lHqZ+nRJKuU3JHELPyECvI5LwOoKUb0wJnvIJw8/nhfD48B4Qe2xsbmwbaeKQ7jPsOew9KyZ3D9wLc33vKLg36IQiICCMahhjHnpW+swoI3WvKE5czg4eS3QxhZd/prFlZJPJd97MW9uqq6u3M4OYzwQGB17WD9P/BgshSAFEGVc9IKRVjuGUFApO86dJlEOU//AM8nzVme78sjBfdLCjvaMVjPZo8Dy2NjduS+EXnIY9ZxN7D/cA7gXcE3QyERAQFAImE+m61vqB/iaajOiQwNRNfK74YmpS0anqzVu2j4aqpLq6uo6k1KST/gH+z84Pmf+ecpjyn5QIwhPJvivKWDKoo5wgGEoQ9aZVsNU1L3+vlyNiIno3btzYPVqIA65jM7G3sMd8ruhiWOCSTbD35D0g7gU6kQgICAoFcsKhvo+fsbpHBNOLV0qQyHluguj8po1bukeaRCDBDvLwK0pX7AkIDbjkF+z3vGaY5s+UYOotaiIV5OEldzvKJdQgikQlVPWvRUH2bzP9mJd5qfyTEA4bDYlyKXls2rSlG/ZWwBWfg2o42HPYe1M0xwMBAUGBoWxp6LcYSked5sdmE2/HZ9hxuWRyvbl15HMGsKqrq7vi2HFnffx9np8dNvtDLBS7jYVhEko0FcdCKRKdYJ3vff2ZL/qH+j+zZs2aXU1NLSPeUd4fkiP2EDStYFZLErG3Tnax2bDXsOew9+j4ISAgKDqo1tqMOabqjAjbKSECHku0n8sS9uYLSw9L36BH2hCDR5Gdl304MDTwGbcg91dMQ0y/0A/R/94m2OaKj7/v89HsmH4RxNESsoJ/YQ9hL2FPbaeFCGCPrbTpc2HP0bFDQEAYM5ii42c6Wc87VovmGhIfldWZyBb2pQoKTo2kEON/5oHX13dGxEWc9/DxeN7T2/N5L3/6swXL7nSUj4okeX9pcmN7enLhSdhDVkxOJ+ypJbG3k3V8zNBJQ0BAGJMwnuihB/pLoAAbzBSsh9nbyfyC0xs3VnWPBhKR9o3U1NR0bqre1NVISqM0jqp8B+xVcmLeadi7YGbKegs97zgrPe8g0CdDJwwBAWGsQ9laN5BurOYR4evOW8Hn5J1jxeb2lpet3904SrwRwhPZVlNfs200EQfsDewR7BWMFvb15K2AZLm1QQADQ/kOBASEpwceSuZ6AXagoQWT8AiDeILHEvaIckqONDWOnjf+0bJgT0Q5pYdhj4i9Ogl7Bntnbhxqh+aWIyAgPI2gWOkxp1voMsKnGPglxEdlbYOYftaSZcdramq6GhGRkJ5HTXVNF+wJ7A3sEewV7BnsHYY0rRAQEJ5maGl5aE3W8YkxUHMLDw1M2cjnifq4CcLztbX1nSOp6DsKyKMN9gD2AvYkPDBtI+wR7BXsGTo5CAgICCRs1C31mB7mmp7RDGd2USJHfBqEAJcXj55+EXmLIcJ3hz2AvaA7s5ca6XhGwx7BXqHzgoCAgPAvRNEsdf0dTDUZEbYzwpJ5bPERdkJub2728qMNDQ0dT0NIixzNS3zX3JwVR7jEd+dxhEdtp4Ulm2p6RFjqejsgJV0EBASEB8Bck25trsOMMtdhREeFZjQKEsWXkrjiM9Wbq7ePZRKB7wZCj/Bd+TzxpajQ9EbYA3N9ZpQBsScYyncgICAgPBzQL2Kh7RtgrsmI9mckr4YphzyW6Pyau6W+Y448oES3fP1u+I6JbPFZf6+k1fDdLbSZ/rAX6EQgICAgPCKs9P3d4C183ozwVHgzZ0XlkBIora2NbWPBG4HvAN8lj/hO8N0EXPHp+cR3he9sqefnjk4AAgICwmPDQ8lEjz7NQsc/YpZlMBfKWPkcYV9KYtGpzXdCWm2KXGUF3wG+SyJH1BcfmdMO3xG+6yQ9z+nw3dH9R0BAQHhC6Ov7G1kZMoN1VVzCQv0ElYQ3cp4XL75Adq83jh4trUeZGgjXDt8hkSO+EOwrqITvZmUYEAzfFd1xBAQEhGGFo5qFXoCnmSY9Zt7U8JREtugEVCoJs5YfbVKgvAhcK1wzN0HYS5DHCQhZwXey0Av2xND8DgQEBATZwUzbZ7a5jk/kNHM/Tlx4VguPLexLSyk6tWmUCDI+TAgRrpWXkHsxNiKzdaZ5IAe+C3wndGcREBAQ5ABtzE7T2iA43FiNER5IF5QJePm9CdHZPeWl6/aOtgQ7XEtbW1Nr2crKPQkx2T1wrYE+SasN1DzDrfT9IrUw1FWOgICAIFcYYnMnWBj4OEG5q8Os6AwuS7g/kS3szcpYdqyxsX7baJGHh2uBa+KxhL3ceOF+hznRGXDN5gbezoaYzwR0JxEQEBBGBlRzHT8bCy1muJGOV1RMeFYjjyXqSWSLz1VWbt4xUgl26eduIK6ByxKdh2uCazMnrhGuFa4ZQ1MDERAQEEYempou2tZ69EATTe8o98UsURIvv4cTL+zJA3n4lia5Ewh8Zn7OqsNwDRCycnNIEMO1WRvSA+Fa0R1DQEBAGFWwUzYzoi8y16RH2liEJN4ZmyvqS08tPElOPJRDpRZ8BnzWklQYNysC+fVOuBZzHXqkmRFzEZrdgYCAgDCKoTfee9JkveBYAxW38EBmUoWAl9fLjs+9sKp03V4YVyuLkJZ0FC58BnwWfGagT3KFgYpLGFyLrpqXCbozCAgICAoBD3UrfV9XmNq3aG5kOjsudw94BBnksKrazuEkEXLoE/E3M8ihT6I++KxFs2OWmGl7x1rp+7jpE9eC7gcCAgKCYoFioc6YaaHLDLfU8YmJDEmrh1ni3ATx+TXlT97BLv19+FvcONF5Pkd0Pjo0vd5SzzsWPtNcnUyUIwVdBAQEBEUFeACWOkxf8EYWz4vMSuSKT0EHe1b6suMtLY9HIvA78LvwN+BvCRLFpxbPj8wiRRCJz0JeBwICAsKYgY2KlTZzrqkWM2zm/7d3Ly+NQ1EcgMsoI4Iytb0RNZakHXHtC1FbfKba1urQOn2ZxpTqSitq4oCigqQufOwcZpSMLtxZGAQZBFEQZf4xc4rDKCq4tr8Psso5J3A24d7c3MuPKfFI7iAzpd9kp5av85s7Bfr4/ZYXSXHUQVuvG9unNJqhGsnI7EEzH1Ks2lHR7m+hZ6HfAADvTH11mH2uDUScH/sivvaUPjP97SYdX7xdyK3/OTz8Py312nQVxVAs5VCur13WqRbVrKsKcugwAMC71lQhcMFWtyMQ89QH5Vh07iedAGiNRq7yxk7BNM1nW8SbR+axYeyeUgzFJqwcyqWTEwU20kY10VcAgBLBmLfBzfzjXGX/xKBXWckqevF7hra4cf7vDHa6vu//ONEeziinmAGvslrcx8rKdVk10EkAgNJU7mGhDmsUMUkrtVJf539Nq/rdjLp8mTf2CmtrW79VWb/OqvpfuifW+JMCC6Uoh3LRPgCAEtfoDPMCFwjRSq1Rf3YrI2sXmbR2R/91qPLSmdSrrNAKKw+TRhscwy50DAAAHvsgsnC/+5MUpxeJrzOtdbclcjTFJXLDCdER7LLhvw4AAHhZrMxZ2c3zbGig0S5FXXbpi+AY7Km2DTlt2D0X4Il7yTKgO6NJ1P0AAAAASUVORK5CYII=", "revocationList": "https://www.blockcerts.org/samples/2.0/revocation-list-testnet.json"}, "name": "Certificate of Accomplishment", "type": "BadgeClass", "criteria": {"narrative": "Nibh iriure ei nam, modo ridens neglegentur mel eu. At his cibo mucius."}, "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAYAAAB5fY51AABW6UlEQVR42u19B3gc1dW2CC1ACCRAgGC6waC4Sbs7s+orreTg4BBsZ5G0swKDwRgbg427pN1Zuffee++9AAYbjGnGNNNs3J3k+5IvPeSHQMAw/33vasRoNNtnpV3p3Od5H4x25s7MnXvfOefcU9LSqFEzsXklSzu/JO6WyzPb02hQo0bN1FbVpcMNlfe1vdas/mR3Zo+aCrtS4xHf6eG45YcmdXuetzwji94WNWotvMkVwn4mER0f3jnjmrj7cllu8nvEz8b1zFJAWrIkLDXlHsut/Vm//5W7WG6iN0aNWgttw+5td5vfYz/HycUjHh/qslwRa1+utLTzGamcGPmgXflgjVNZ5c3lpOUrz+gezz363MIALrEFCPAQvTVq1FqqdOUR/wgieGF6AScEvyT8vocjLSY1jklpe9DHgXmFyu92d1LO7CxRJj2epTAS+0LuknZpLH163dZK9DlnQI6yY0I++vquumvm3fTmqFFrYc0rdbSBAPZMLeAE89JshxKwPQmfQlqKSgoqzehcUyF+u9afp5zdVcL7Aw6vLgoQocd+NgbJaiikv9n9s5XTO0qUY1uKa/sS/5feHjVqqdHO83uE3/k81vJ4OunXufXFNR7x/4EATm77nmBU0mKk8ElahKQ1LPemn8C+NK5n/b5U7Gd9ghh9km1txGQlWQf7K8Sv5zCyOqHpc+9MSILit9Wllk5xSZau9J/Kbtt7ld0smTSlqFFLlArXWfwxpA5OAG5hFYgnJumq1PogiOm1hY4GBPPSrFrSkjhpnRfyfrpYLmVq5Wkc/9E6Z4O+VNVwZXVuQJ0ry7wnvGRlHeCvsH8Nyer41uJ6fZ3cXqKM6sEJ9fMBrlaXxPLs1a7MIkhpAZuY7V2aVdSoJYqwJNtSLDTVoO2XhPcry8Wo/J0GMOmCLdj/jH80Szm9s6FE9Ltd35OWXCEckYO7JpzHpKbFOO6VuQ5+nhFhAaeYlAQJjEmHXw11Bd/p85Vb+kGCgs3q+JZiw77eXBRQM32ltieilU595baRkAZhW1s8OAfE91WvXpYLaWZRo2ZyG1TR/jIs1Kl9sridaP8chzK2J2xO9s+8bluPyElP9I1g/by/2hmUYOrZtCrEI0Ndt13RUG2zleL35VU59exWwXB0o1MZ+RAnrQ+H3Nfm8oaSle0J9DfzqSwuSQXrBxLbxF7cmP+1XG65OkIV8Dq/W9iH/pcOy1FOMMnt/VVO/nxVkvAQzS5q1MyWrsps2VhgB5cU1i1eqGEz+2VzdYsR0YJ+ndMuDt1Hx1vYsd/OfCo7LMFAYto7U7Vp2T8c3lW4qq6f7pa7WD9fTnkiK3w/GrxY258sCTO06iZTK3vh7zPYs5zZEZ78PlpXrIx4kElZHuu4cOM23JVRwK73F5Dl7kn530t97DqjHuLuHP+SHWkX0AyjRs28dh5bWAexSE/pFjQkjlXVARURvlTVFe1vDapyMVLDwj26sTgykmGk9cIMBycHvyR+wI3VXSyXMgJ7d/TDduXj9c6oCAtYMjSnVqWzuDhZua0BsnoyO6Raqcesp7N5P9WlltuDjZlXgsOp/dwEJpG9vbyoQR+7JuYH+nAFHzNq1KhFK125LDdhYS1miz3YAoaKGFC57N94yzLz0nQGc9ndsSPvY0hO1CSzZ1otaVWIH/gkK7dbPV/rDhELJvfmKt1/5HJxGPqa/mRWVGQFHN9aUvu84vIG49W59Y+ZVPUW+gaxndhmLLVhV5OTZ0Dii6v1a512Mc1UainfhnRtezdbEHuM7EARE5bH9igW1oltoRfxESY5jexR6xXuFsbJaWk/UPtgEtJ27LCd2l4SE8k8O6VAUT3Ol1fmxkxWwIdrnZwAv7fJxdbP4lppzVva0aY+5zC39TYmaX6Fv28alReyb9jexteGERnZ1SJ6N2yMq12Z99R4xC/SwuyqUqOW9M3ntk3jdqAK8WvZbZmmJZEo1MG/TngsMnvR6R3Fytz+2bW2J+HE0F6WK+RSSyfYudb5YycaLHyQFqSj0zuL4yIslQBBVrESKLdDsXNHczcHYQ8nj3LLo5AwIXkhPCiSzYA3FgZ2Hb2/5VJpVM3rsrSTPcJfMLb8/fYwLdibGrUmUuc84r+wIKb1zVKdMv8mS7Y+EZ8vZdpx3rZx+VGQS4nyomp78oj/YPgD3AriIQeVtE5sjZ+sVNubGX1tHJnPnUnZOH+M/05jJHhsc+T9nt1doox9BC4c9hcilpq7tW8lS+JrTKri5Lh+RB7f+DAjgJwataYjq/s7XqnajbDY31xSqEzsnaX6UB2tdFnuDdcHkx5mjo5RlXtvpVOBZIbr7ZpUYArRJBvgAgE3BzzjxpF5MY3ToiE5AQ96lxDS+O7KanUJ+9isZOr1F/x6TOU8uqmYg0tp5WJ/mvXUUpew3NbbuEf5gsJ6agyCjfFV91fYzzGVYl9lkGR3yJ7AVI3P4fUd64LGYoIEcGpHSbMkLO4uMaNAOTDPEfP5H60P+GR53dYng6r25bYaJsX9Q/XlOrzGWe+dBnZphSM066mlrv2q1PqwPl5PxYmtJcrWsfnKyAcDxMVUipVyWcbP69lIygMhNK/OL2y2ZJMsmNonG4RzUmtjdLnSzseGh99j56E8cwfkKIeWFRm6f8x4MiDlwcGXZj611CQsSdiLnbkzO4NLN0eYBLS8qs6P6pxPEmuG3dvuJwH7l7AX6g4RSuKxfVx+7e6qLb9WOi5mqt/7+BscZF+e41DOhDDiI+tFIJyJkgxSS0V10HHLD+FVPulxe0S7VYdXO+ucIdl5f0cQMCOw79bKeUQojWEL2xYIrJYlcZ3PY9uO9zDmYbuyZUxk43+8Nv2NHGcmCWrUmoawPJmt+e7e2PyoFs7+OYV1RmTg8ConEUojYcGggF8Xdv6WDs+JyoCPnF04T35QXEKzn1qjt36dW/84LXqfqbpWWd6xBJP/kw2xbd3vnFigzB2QTUTSiHiJqX2IzTwSwzuDFA2JjKnxn6fF4UA6wJV1Ca0+atFLSG7bX5hK9h9vmcUdm/3KNhXxdjEvoF2dIlIlCeYB4x3PmK+qDkhoVWVtb4x6vnVt/zNERMC3i1YftWjbD5C7SVXL2CT6TJaEHch2EPEElIRTyLtERNBygB3EwOaJLTvyeWLpDcdeEJU63/p3u/t6WoLUIm69LJYLEWqB3EzvLHcqS4bmqmlWvpHdwjEmPY3tlZYWNPEbz7/kEb9bMjSHFnKLktA68ZQ17GM3NNT8qv6t1cE+aHv9tX5dSKb4wnSH8vrCwoA/2AOWQlqF1KKwI7S6pIaR0wpNkO8n653c4XPqE7UGcUn8ws9EeNlt/ZXeZuF1i4U4Zv9cR8ostLPqf5MVKUJagQ0T4Q39nEI+MZ/bOpkR1Ul8zDA/1sq5XCo7XevUi/xmAY/5zD60CqlFbk9wpf8IzpxbDXb44FP11tJCZbUvt24nT/aIZ2WPME7Nq+STxIE8d9X2kuQkp2aCZCQspHeWPfZzyP7Qy5J2YbXbWobgbDZHvg5kVM1W9kwrUD41iHdUQ3x8Hts0WoXUIm4IiUFsGaq0hPbdKVaem4KdpbrA5nNscj7H/vtuUtivdjUvgkoFEnt2coGaKWO5WuwCsaDIw//uiqKQRn3k+KrNz7WHViG1iNvwB4WrILa/ZRSGEQTIaLmiKldRy7TPfSaHpKdkILBGJjFkc1Ul71lMmgKBRRrHCdUw4G0vnqFVSC3iVvWrjJtBWB9viN5p88zOTtyA+vz0AiKpFiqBra/J43nnY5GI4XwK+2kaJQOkFmmrdmcU40t3ZGNx8hrJCSkleUWK6cibht1oKoxBLdKmlpz6dHMxkRRJXo2KJcNzA2mHHJS9lFrEhCVMBmEd31pMREVSV6Nik5pB1ZX+I1qJ1CJqXrewk+exakK3BCKQlilxweUBhIWdalqJLUZCso6WPeILqHKMQgHRni9LtqMgrNONnaWTiKLFE9cbiwoD+eE1hWsjaUMeaXO5T7KXIoWzLAkvEQukEmFJwnh1a5lXNPHY/5e9xOcZRnkrMgrSwmRhYMfxOMJGCT4mUiDyqlcCrThQyfu++tln9Y1JYDf53JaejKBWsOPf90vfx76y//8jsUBKEZZtIF7cvpkOXvBzjS+Xl5TSvNAvGSkd8EvW8bLH9sBQV3pdlkjZlX4RjpncCI6fRAJEXEa1JQMZHzrWBVAPyGp1SVW5JVf2CM+webumxiOcVucyMoIsHJyjbB2bpxyYX8j/XeMRTxMLpFCTywWeC11fnhy7fi/Ndigrq/KU6U9m1xXz5M56knjWJ1kXed22Hvj/RUOyiagIjU5cmKOBqkriWNljrWQktd9fWxgWQBUkJBrcMb5AeWdFUYO0zbWE9QmxQCpJWKUZnfFy31hUFNazGDYDBKHO6JetjHnkewLbMDKPiIrQ6MSlhueoQIjXgkHZTFPI5wH44c5Hmm2EhhELpFCrKsuw4mUfiLLaDIpqvr+yiNe3MzPTAi1qIq1oqlkvGpKr7JvliCl4HqYPv8f+OrFAKhHWw21v5Das2Q7yoSK0KCfU8Y/y0J69xAIp1Ho40n4IwkJMH5EVoSWRViAWUdxFLJBijenx/22K8uy0WAlNRVp1FaglYTUxQOoR1mdboiyxRf5UhFQmLnWHUfYIM4kBUo+w/m9dTR5JVYQW5HTqrM2nJfiJAVKOsOxnkFCPiIrQUojr3ZVONWNpP2KAlCMs4eiiITlEVoQWU1Dj4OJAmTGvJLiJAVKNsCT7eygIQERFaCnS1qvzA2XCqsts9xADNLYvVbeMm2W3rWO11L4NYv3kcsvVcpfrL02LMHVsjSS+Mb1vNpEVocXk4IKzKZewSm22SNYI4mbl+zteWdnNcn11qeV2r2Rp53VlZFkswWtuUgtGWOXWh7UhCprA5W9lj3BKdou7veXWqb5y6+Nel61gSLf2rYa7Mq4Z5m73EyQ/q/EI+1EjzhSiIrIipIC0hUB/rJGhLks75NPCR36wK/26oa527eQy8bey21opl4srZY/4NsNnhutLEr9Mo3zy0TevZM3BAK6R85QdEwqUldW5yownc+oFLIcDyiuRVEVoKaS1Y0J+xGtDG0i9cVS+snemQxn7CN9hfI7YJ4YGaQmDunhoro5ASpTTO0u4k9yJrSXKsS3FvADlx+udTId3KM9OdnCSmzsgh70QO69iQ4RFaAnq4fbx+cq0vlnK0uE5ypYx+Ty90jsrCnnKGvhoIbD65LYSHvRvlOsNXvJIzUTsE2NDReUpT2RRaA2BJK3diXaJKKr14crIJ+aJsTG2Xzy2p53IikDSVqKLX4zODRBWt3a3EfPESljl1nIM4qkdRFYEkrYSN+dLlMm9sxSm0Zzr17n1xcQ8sRre3aKF57Wa5yCiIhBpJQhndpbwVMt+j0B5tOJpg12260BYS4flEFkRiLQSBBjhsfvulYQhxDrxtfNkj/AZtlsTVcGGFgOhpZMWUi9zh9Pu1gyinHjtWB7bulE97FxsJbIiUByi+YSl+m9VuTrcQIxjluF9ezGRFYGwy3yDeyAPvPgdyokR48Tri1Uq3AnCOrikkAiLQDBZyjq1oy5L6XFiGxM93lf78oioCASTSUvNUuort9UQ25jQHI60C+AfgrjAeA3veMlndhEIzQfxEtYHa5xcHZR/I6YT25hlx3LbX8BXAHFQMfua0OQmEGk1wHNTClDH8NyQ+9pcTkyja70saRfKv0z/6VCX5aah3Tv8Anl7fJLN6SvP/LUsWdyy29oLwZeyZPMxnXqCXxJny5K4QvYIR0BYCHImsiIQzCOtuQOymUoofsvW2waGRbJbnCZXCKPYuhvG1t2TstvWw+cWXNVlmffI5WKu7LJ1HObKbA0fyT6O9B+lNcdUND7J2tnvEb6KJvUFIsfHPBxIgYGwgWl9s5UPVjtJDSQQTCItuArN6JfNdwknPZ6ljOuZpcCFKJp1yvPTSeJrzY60/BX2P8MBdI0vT9k0Kl/ZOSFfeX6qQ3l5TqHy+sJC5e3lRbzqx6dMijptYuwgTWRCS4GZLg8ntpUon2xwKu+tcipvLS1UDswrVPbNLFR2Ty5Qto3LV9aPyK+VznhKmuZnsGfi5mY8HPJXNVYgM01iAklaiQPK6PkrxK/7uTKuaYaG88xfYjfi+WkFRFYEQiIlrUbK8DDxcZ5S+eVma3RnhPWHBQNzEj+YRFgEkrISijcXBRL++dy2p5uv17pbmFfzYOLVQpqwBEJiCWtZVS4M7t+g6k6zJSxvmZAHVkawZaIyL9BEJRAST1rjH81COM+OZp8uxi8JJ2c/nU1qIIGQoqT16oJAwVZvuc3TArIvCCORLOzoxmJSAwmEFHN3AOYPzEF20q+G3dvuJ82esKrKMqxgZ9RCI7IiEFJr5xDkB39KpimtbjkpYyThOLxryW5FIKSWaoj6CoHdwcxfthzCKhf7m+VEShORQGg81RCFWv0e8at+ncUftxjCqi7NvBuEtVbOI7IiEFJENQThIdbQ5xbnt7jMDX63cAxbo0RWBEJqqIb75wbUQa8r09LyclzV5mo/vrWECItASHIpC6E44x7lxVZbTu73oS7LFcitI7uFpezBj4OwVlTlElkRCEluz0LyzBGBdDJfyZL9Ja9kGyaXZ7ZvNg6ilQ9mtveWWZ6S3eIm9pBv+yvEP/kr7OfUPDrYGl0yNFd5fpoj6tTHZ3YSCIR4Ec2aO76lWNkwIo/nz9Llw/qcre1jNR5hryzZJlWXZnZJ6uylclnGz6vLhfuRE0eWxG1+j3CUPcR/tQ81p3+2sr4mT9k7w6EcWl7EE9/HXlabQCCYgVh3DVFp54O1TuXV+YXK9vEFytLhucrEXln1iIxxwV/8kviqz22b7ysXHq9yWQVXWtr5TRsb6LbtZuz6rXqTY5jUhKRe6/x5yh4mOb29vFA5ub3E3FhBmmgEQpNIWeEEiY/XO5UDjMSQ4G/Z8ByeybQeiXmEfw5hAk7TSVeuDgIithcNzlE+Wu9MfI4rmmAEQtKSlrHtq1h5abZDlbqaPpUybiIRsYEkWREIjURYCU5Fs2FkIDNpZakls+kJi91Ejcf+DW6KJCsCIUXtWQlau6h0BYFG9ojPJlNs4PMQ+eIxppN0RSA0IWElSDVc5c3lZcSGlmZ0SBrCquye2R6EtcqXR4RFIJAtiwMVsGqN7RuTMF+7sBG1BM2UsoisCITkd3MIhqXDczhhDXdlpCcdYVWWtm8Lt/3llblEWARCC5eyPtno5MWQZbdtSTIXmViKaO4jJuwYElkRCKkrZS0cnMOrQle7rG2SOM+V5S52k+cWDcmlnUECoYVKWXBxCkhXwpzkT87HbhI3G69fFk0cAqGJsCu+Aqtz+wekq2HdrLelAGFZb/N77Odw09EGNdfLxkATh0BIOSnr6CYn97vyuW3TUqkyzgzc9LEYdgzJdkUgpCZpnd1ZokzrkwWv9m8ru919fcoQVmU3y/VwFpvax06pYwiEFkJYH28ogir4nc9tnZxSybCGO++6yu8RTsAH48gmJxEWgdDMdwzP7mbSVd/sWsKySclfb7Db3TfLkn01u+G/qSlnpva1K++sKCJ1kEBo5lLWqe2BBH916WQ84heyJHzqK00i8mKqX6bssa1nJPUHlaRQFfb1hYU86JHUQQKhZfllnUZyvzVOZevYfGX0w3VZSf8fsg573cKTjDZ+0LhJ+8o6ZMhu20LGoKdraklq3jPZPOdNPK4MiBY/vZNAICQbYl3TIK93ljuVTaPyeUp0Tl6S+IXfI7ziLbc92q9z64sTo+5JmXYm3k1B+mNV5Fs4KFt5YXqBcmSDOYn7aGIQCM2LsPTkdXBJkbJxZJ4ytqeagVT8nHHKTq9kfaT//bdcGb97gtsmyR7hsEpSs5/KVnaMz1c+XOc0PVCSJgaBkJw4s8vs/HYlyoF5hbxilip5MY3tX37JtlROT7soZsIa5spsjY7QKfTSRGYUpYlBIDRvKSuY3Xo1z5llV3weW/wVpZmu2Qe2KlS9SchNE1kRCEmPswlKowy7NwQiphp+YlpVHdlj2wQGRIkukq4IBJKyzFn7Jcqsp7KhDv7X6860mGZ0H5LT5nLZI3424bGsmOMDyXZFIJCUpcWWMQG/LZ/b9kQigpqL0TnqDhJhEQgtkLB2mlmcoqS2OIVwQE6Ub5YsWUeBtF6e4yB1kEAgtTDmXcJxj4Ks7Ofk+xJYWHVQp/aX1XiE02DGE1vjVw3PEGERCKklZZkgpCCNOvfDKsu8J+Ge7tXdxTtwsWl9s7gzGO0OEghkx4oUbywqrK0CLayRGytMx+u2Pomo7J0T80kdJBBILYy4qOroHjy28G8uV/pFjRZPCGaUJfEdMOW7K4pidhijl08gtAwp6/TOEmXRkBwY2b+qLrXf3eiZGhyOtAvYxf858bGsmOxZ9OIJhJZDWHumOQK5siTb1CZLL1NdautW47F/s35EXlT+WaQOEggpHFsYpVqIsL5au9V7TZoPC6707CZewc28Ot+RsruDn24pVt5bU6i8sSxfObSiQDm8rtDwuA/XFykfbShKqcl1YluJ8u5qh3JoZUHE5+D51bHAuad2lNT99v7aQj5WqTYOqYq3VznCzstktmOdqfVmR2GaJq2iU1Vmy2Yi3j8g5sHN4eXZjpSyX4GkVo6yKF0Lr1fY4zTAjy45X+nd/RZl4wRBOb6tmJ/T+7e3KgM9rVNmsr++NF+546bL6p7pt86fK0c3O4Me/+yMLOWXWT9rMBZXXXmRsnq0VRnbL73e3/E3IpXEYJEvQ7npuksavIv8zKuUl+bnpoxaeIytMzibBzIy2L/xSeLaxlUD3ZndGFv+r0pUr84v5OlRU8l+NWd4B74IjRYmSOkJ1631JgvIq9B2Nf93Te+7kmpiY/I+Pyvb8DfvY20aPOO6sTbDY6t63ll3TEabKziZ1xubKy7i0P7N9osr68g8mQBJOFXJ9Chb4CXiNXVj3KvbLcrUQe2SbtyjSTkDc9En653KkqG5agbS/8gVts2DOl17WeJcGcozH/BL4nFcEOXoX5nriJqomtp+hclwv4FE1f6OHyu7ptsbHL9ndraS2/GqescmE2Ed21rM773ykTsb/AY1DhKV/ln9jze8fyxu7TH3FVzHF8Rdt/zIUPrUEjxUxGRb9E+X387vHepwqhHW4IfuqDfGE/u35ZJyso17TGXAdgXSJ6uOo0idLEvC6uFd77rKvBqDbpvEiOoDXGBcT7vy4gwQVUnK+V+dZPes/XKpeJypffgt2HlY+CCpZCQsX682Ie9pZJ+7Gzzv5olCg+e7J7u+Gvjr/Ov4Ys9u/9O6v7W69hJDCSvZSAEqPO7t3txrQ77XZARISK8GQg2H7UqrETza9eZ6dsVU88cCcb230qksHV5HXJ8x4loku9KviycP1gOyR+TZRpGl4bkpBcrJbSWmJOxKhi8XYL07MtFaK60kC2GtGWMNS6JYACAf9bin3bc3IJiPNxbVs3MBTuEavthh54O6CUCag11F+5V/dmZWUi14GKfVha0+QyoR1otzcxrMUfXd4l1ivPfNz2k2YTrAO8uLlCXDctWso0ziss2qcnW4IWKHUF+ZratfErhENbFXlrJjQj4jquKUzs6wdbJoqNLsmGaPejIlA2Ft0z0PvsKhjv9kkzOosR1/16t+oaQTEB5ILhl307TEm4oSFuyR+jka7t2mih0rHJBrb+HgHLVM2JeyJI4Z7LIFl7hkl1Vg7PaWqvptGpXHX7ipCbt2N40qaG/3kwYTIVrDJaQsqEhG9iIVb7Iv/Kyh7ZUxT6ZzwDYEycSIQOAaoIeWVPAlnfJMWz5h9y/MDWpvAgY/2Jq7GaAPdetbdT9Q/wbg30buC3o1BJIn3BlU1wXt/ap9of9QxIWxXT/Oxgl+dN/AeMCQj8K64dww9rKPA6S5SQPa8vPwX9gTg51zYFGe4TPgftVxMFKhcI+bmIqMMcZ1pg1qp7y2JN+cj8oUURnxxN3KguqO/D2uYs8ezO6EZ8aYrh9va/Bu+5Xdxt9DqN3dVLJjhcPBpYXKnP7Zqqr4rc8jDB3ganWJoZsCMv/hwE83FScmf/Ou5BCzY5WUNrAJtXaM1XDiP+NpbXid66++uME29AMlNxgeqxrEQUB6Iyt2vrS2tFCG8O1T7UF/x0JSCTFcX6qNKtj9BlO78Lx6NVO747p8RKbhB2H64HYh7wdb+vBHCrVhEPS5J4v1XTiYemXkNgBgxzRW6QwG8lCbFUMeuoNv/mjPmT2sQ9j7D/WhbE5ZSFUb1/raoqx+yfay7Ei7IEiSvg4CCqIix/LxrcUJSTifDLYrYMskwbSdR9XlAXiwy418kWvtPVikWikJgCSmvydVojC6351MfQ21ENrefjkHFiHI7QMGh+XqoISFhXXrDZfyc4z6w7Ue6nJT3cLVPk8otQtqtl7thn+X/lyQqpbwtf5wkHggjeybl9PgmfV2R2yahBsTjL/W9WPFCEu9d4P7gxSJvrWbMdEatvUfx7Jf3sClO5Cj1miul+5hj8R9GLnaqM8BKa2lpE3eNzsQxiNLwsdh87xXde8Ih9BzE3vZY3JbSDb7ledXNxpOgt0zzDEY99YsGEy4t2olAL0qCuO3dnFDjYlEMtD3ayQZBZMWjb7cKmFpbVjBjO7RHod71C66p5g6o46FlgwASG0qIawcWd/na+aQ9kHtdfE8g9G4D6r43hF47RhrzHNEv3kBAnpF85EC4eiluEhsWMnm95fItMkgq1fm1ZHVH6JwDrWW4SS41J/ekbqEFcwXySw/Fv3kxyLR7sJBQtH+rpWygqlkkNZgP4K0pf7NxRa3+kVOBGHppRj9c4Q6TksKelVWK8Xqx0J7Ddhp9O8HEmKw54U9KNaNg946iUx7j/pr4Z4jnQt6iVmVdIPNFRCa3l4WzbttjoZ31CqEM7rPI5yWo00/43NbB0CHXDQ4xzTjWmMPJr56RnYKswirv/v2kJMLRlft7zDqhiMs7VcdE14fA9hYhGUkYYU6zsiHSHutJXJmUJuMkc1OfT9Gkqj+eSN9hoPLCxpcRxufp38GPemEc+ANRZhG7007H1KWsEzihtcWFikjH+IB0ifl+zteGaPTqDAapAXP1FTM3w4JK1isYDQuDcGglxogzeGLDeM8bDQP/+amoJPPaHJCugq3c5mshGV0X3onVVwbkuNSf2a93VNIGlp1qrpnmzqy6m1go4qVsPT3CCkHtjk4m+Kd6VXTSD9s7zCJWG9/0l/faHz0ZoJUJCwz7FgHlxYpYx5mZFUhnpYlsVWchSeEGSCtNf7clMzfHsyGpV+4sbhLaI3tkUDrU2M0OY1UsVQhLJBQvHZC1bUD7iE9fn1T0HGMlbA2GLgNmBF6ZLQTHQlh6d93SyQseLzDjcpfIf5PtcvaxozonPMYaS0DaW0clZdy5bzwtQ5HHrGqm3pDL3bdVD8lI2ilJ6PJqRqpU5GwjK61yJsR1Zhip25ojzvqSZwIVDeLsPRBxMBCb0d+XaP3FWkKnWBkFAlhtWQJ66N1xcq4R7N4yuTKUkum2XmvNoO0to/PTynCCuaHpRfHo3ZnMFgk0TijGk3OSEg0lQgLLiWRjqd+6x8ZI+BkaqYNy+ge9QZ8s+ZYi5KwYjC8f7q5mJf6QjiO1yVkmZ/HPT3tItkt7ANpvTDdEXUF6KYaTNVD3ciBMVqvZtgqtJ7aRupmKI9sMwysqWTDAgEhZCbakBTteZE8b6w2LL17hZlBy5EQFnz2tNdOVcKK1rUBPp5jHuGe7P/1/jYzL3HFJxy3/BDOXCCt1xYWRkVaTTmgz83KMpSyIlHB9JMSBlptGpNIF8DUge349r36W3MjLH0KlFD+Rir5QxrFeOg96SH9quMUiYQVKoBb74VudI9GHxm4VWDnT+/wGywMSe9nFsku4Rz2flJ9lzBa14YTKllViN9Wl2cWJb5iTpc7r64NUFTeXelMmaR945/6heFk1XpcRxKrpl3wO6fZI7KPqZkVYC+Jd3KGWsDwuocNSI07SzRh6RelftdUhT4UR/UxA1EYkQ0kLIwPfuvzwK1hxxfPrXcr0D4D0uxg3IxS6ajuC9qQHzWJHmyS4WIfVSBmUO+Rr90JNZIiQdrNgbAitWOhjunUPoE4wWpJGJz4tMiuDrnIFogLbh6Tx0tOp1KVnIFB4v3gWR0sSHmaxlALfyHtAg0WWK26OCDMBhkjjewVRsSjbueHs53pFzgW3AtzspWe99/M/60usglP/yIsYeG59USklXBC+bTpic3IU1vFrxi5IVZSlURU6daIsMIBoSqqQT4YWULlR/C1So4vL8itly/LyESA/GIgCPU5ownfMvLFQmhRnTSu89kzslfCMz6VsjVES1jQyD7e4FQDm7+TJduzvSxpFybAfpV+kV8SNvsr7OcQZ/jh2uKUsWHpMWNI+6ATFpMKiwBhFEiSVk98H94horQm4UJrVHXDiDxxHKS2cJH5wXY+gU21vk/IeGB0XyBS3DPPEMDUXCNSw31oc9mDVIIFXiMuT3u/2ji9YADRqX0bqYTa+zBKQmg0pqFcFvQfgnH90sPeYyySDe5HO+bYOIBBHpK1PruG9oOAvGOQ8B75zc2GRK+SbXPZKUQC0M2j81Ti+ou33FZgXsbRMptT9oin0TkiqGOpQZhsZb0gOUFd0tsdjEgMKlY4wzEIKNiig2Fen9YlmOoU6VcVkx3SihHJhJN01GOD2fWMdlKjvV/s+AUjcajmel8zECcWpn7cVR8o/UcGWRuQFkc/LiBLvQMnPj5GNsVlNZlB3zmcSePJJ29EPKH6XixnROXD11xcG95eVsR3Cv0V4teyR1gYNtA5LFl5bNMYA341nnX6+sLCuHywTu1IToBMnpuVzdOUrBoVADy0sYMIMT+avmCgxfkbmCqCpIEgukTe+8cbnXyBYMEn49giQwLGAuMJexVU1VDH4zng+2Q07pE+6/GtAcnx8LqisO8PfeI9qe/8hTk5Ub/zYHhzWQGT+gT+/MCOqfawz5/KiJUbUFVnRVWuWrfwY2+FRYw+PXJpRgd28odqWA58JuKKIWymL4lAIMRHWCpenlOojOuZxaQt+3+8ZbbqyBxEXWnne8sz+0BEQ2wPCk78zoRobCIsAoEIKxyObChWFgzKqbVtCa8PK+t4S4jCqG1vlD3iyzh49tPZyrHN5qVHphdKIBBhRWrvRsEblBLkaqJbLHNoM44Oc2W2ri633O/3iN+MfNCu7JhQEPUOYDic3E4gEJozfrfL3MyjMENNfjwrQFoeYdewe9v9hBOWXxJ44Ql4nx5NUC53eqEEQvPG2d2Jye++orquduEXw10Z6WnVpZbb/ZL4J55CRs4jwiIQCElBWKiDOvrhgGrok6x969TCHogRdNtW4IdpfbK4Cz0RFoFAiJiwTFYJ98918HTJKPVlmHoGO4S+cuvjgUrPduXDdcVEWAQCoVEJCymX18i1aqAknqnsZrk+tA+Wy1Yge8T/wEr/8hyHKTdxYhuBQGjOMCO3OwztcwZkB+IMK2wrelkskcUZDutmvU2WxE95ltGRecqZOFVEeqEEAhFWKLyzokiZ9HhWIEeW2zYoam/3fp1bXyx7bJtAWqh5H081aHqhBAIRVjC8NNvB/a78Hvufq0uFLvHFE0q2GrDe5N5ZyuHVRURYBALBFMJCeiqkqaqNI/yw+n7L7aZkbKgus97HSOvvYME3FkUfBH1iK4JS48N7jCyPm9APoenw9spC5dCKQuX9NfQumxuiLaiKrC9zBqhhOLbtSMFubk4sl+Um2SP8ERfYOi6fsWNxVBJWPIPx0Xqn0vrGy5TVo2w0OZIIq0ZaeQqax7vfWg8P33czf2faY0f1Sdfl0bLGdW3fY3cpD957U73rlv+ylbLMb6F30xSEFUUSP5iXRkMFrLCf85bbfInN6e4Rj6jxhpGG8MRLWJiEPJlZzrXKp5tLaIIkCQ4szDfMa3/VFRdxaUo97uByB/9bvRTC6VcqR9jEjfXaG8cL/COmvzaIjN5NhFoLk3Tj/XCoiNSt4cN1gYyjgLdMSFwBCq4aVljLajz2b6AaIpl8Y0hYICix7fdpiJ+dkU2TLYlwbEuJUixcE5KwnpuZE5bUYsH2KXYirDjQr/R2nh776Kb4hYCzuyOXsPZMc6jhNicGdbr2soSQla/cNtDvsZ+b+kQWd5mP1uge60Bsm1x/Uj56/y002ZIMFffeFJKM8G8jCSvehfLC7BwirBixbqxgqtYSXUaGEmX/nEI1jcwp2ZV+nblk5bFNrKkQv533THbUZBWoQ4YvcfTAQP7WeUODxfDa4oKY+iMkBhW/akhYMK5rj5lflVHv9x1Ts+K+7p5ZxoRF7yQ0oMqrH5Ai2zX8wxFvn7F4D7w6v1AZ+RDiBMWzcmmHO80hK8m2GEy4dFhuzDGGJ7fFNgj75uUZ5remSZl6hAUc2VjCdwjNui4RVvR4c6mjnu2vM5OwmoqwgNcXFQUCnD32/60qE6zxcNX5vlrH0dW+3KhKejWskhHbIDxZershYd147SXczSHa/l5ZkK9MfLotn9Qjn0hXxj/Vlk/6cOe9u6pImTOso+J9NHAedrw2T7RzCTDUeR+sdSpLZQu/3tzhHZUJ7HobxgnKxxuKDY/Hgn5reWED4Pr4/ZONxVyUx/VxH+hT/U3FwWUOZQGTZtT7XM+O198nrgNCMbqW0XUWeTP5s8RCWIfZeWrf76wMQHVtCEZC6nWnPNOO279w/1Ofaa+8xD5g4QhLfuzuuoU5e2jHuve8b25u0HdrNA7qmGHOTBvUnvczrl9bZde07AZ9bJ+SxecVjpkxuAO/diTzcff07Lrz8Mw7pmQZzgmjd4VxVI/BXMQzop95lRlB3xUEAKwd7Xhl3nUl70+9RmMTFnBwSZEyPlC2/q/VZVZH1EzVw5H2Q79k49lHN43KV87uLok742i0A4CFp7d7aIHFGo1qOfShO4P21a3w50EX0GJfZtDzrrvqYuWF2cYLYc3o4GWnLrvkfL4I9Ofgb0bH4yuIzQb9ZFP7wsTH+XrXAe35IKFQC/37qjZtlXatf2x4HTxTtISlV+lV6FURvKP+7tYhK8dsGi+GJSyMwfRBHQzPx2/a87FjZTSmAIgeH5pglZBwvyCzNjf/yPCYYGOlzu17sq81PA9/187FYO8Kc2/rJLuSn3m14YYG7k17zeU11ohqPsZCVse3xB9HeHhVXWjO574y4d6IyWrIfW0ulyXxGMhq18QCU4Kfee21zdFhdJ9AvbwBUmvDSYUSXZBUwvWDRVHWqVXded2LbmBfpyLl4V/XL8XUmU2UTzaU1DsXi1cr1b26qIB/6fWTI/BF/v68WUPq16GDZHZ4jVOZOaT+QnpGuqPB/YJ8tERttHVvNEEfKL4h5DGQDrTXwT1riQmEpD0+t+NVhv1sm5zV4J49BoSlHRN89RuQKBtvSA/qMZP6f1+w1mG5mttZXpyTW29B6q/9/MycqAqwApCQtH1gDvUvbx11P5hHoT6oIBT9vAD2smfSngepG3O0r+u2ur/d8vNL+XzRnqNdA/p3ZYR7c6+rN77YrAp27C9uu5wD/Ua7ToFoje7BgCKrIC0maf23utTWLSxZDSy3XC17xH+BrPbOdJiapzmaAYC6h4WKl/TR+mK+/Rrsixuur2E92tR70QcY6eDv8D8JNZn1EtLC6kz+d5CW/rzJA9rVnffs9PqLCJMPz2BEnsCqkbZ69wtx3uirzQ3VTGVA2p/fFFxvOB5S5xs5GeM4/W+F1msaEPIEDSFrAQdd/G7Uj9GHIhxh4Zn0xIv7URcUxkf7zHhn6rk4Rn1e7TiHIiz3PYFxmDu8IVHi46GfI1D3jfoBiWC8148VgkrKmCcYD/0HEFjH1fH671b7kdCOJeaVlsig3oUaY+31Dy4rbCBpGX1Iw72HWGEWYallvzhpVYjf+kozJXaP5xmSVaXHcj1iBkFWby0pMj17YDQDML/2iwwR3ogEvq9ifAMngWD96MlFu2j3zc0LOsHwAqHba18+7BLBCEVdYLgXLJZQ96hfHCA0LQEY9Y+JqSVTowWGL776bLientT0Eg1gpDrpFzSkQP0xKnlHQ1j6Z9IulAO6xQpAwta/x2rdvRkRFqQzdTz1RKiSun7OGI0DJBL1OKN++Adzgr2uD6hn4aTR+TpJUzvWejLBx1orZRkRlvZjB9tZOGnS6D0YzYtocWKruVyBwreTe9dmGi23DKxHWnIXy6U8TbJH/BIZ/j5gg2R2EYpoCAuTDWSBCfzGEkfdAuxk/5khaUFtCNaX3OvuoISFSaj92mmvt2GcGHIB9up6qyHR7V+Q3+D+9F9Ko8WhnVhGk0ov3hv1oV8c+gkOFQUG5nD3ou/HSBLVE0e8hGX08VDJBdI2jhlUcQe/33CEpR3vYNfVS5rhxkGV+EMtdKN70arh6rwOpiFgjjt1DrjaeWH0PiFFhnoGvQYS7j3ECngBmM0XCP2b2ofbtL7zScKE7wmr1JKpqoEz+2UnJKd7QNSL7OFVsoA4Hm7hcBuXu3XQvvTSDkRw7WTFC582sD1XjfZqiE//8rVkpk4+SBmYkNpJoSc6I4nFaGJFssi0k8pI4tRPznAkEukkx6ZCOPtTvIQVTA1W+8K4Gr1fI5LQSy2RLNBw42AkOev7ieRe9KSH36FuQq3DR09/r9p7CDfGTUlYZpb5qufysLCQp0kO5HS3DVc567whZRk/Z3+YhR/G9sxSto0rUM6YLGWBsI5uCg0M3H1MlcHLOLCwoN5vIBr9F0p9cdDh9X3B9qA//lc51/F+wt1H3wdub/A1e3tFUdjzJj7dznDSao+ZNrBDyGOgBgSTCtRjjEJdNrLJqb2Op/NNYcfJ6F70/RhdS38/4a4VyTP5Hrs7pBF5ZO/0BuP9XBCSiOa6kY6D/hkjeSfae3l9cehdbyNo7yHcGEfyDJGOR7QwI9toPeP7eiePVa71hP9rdVnmPbLDcUHD9MgVFtFfIX6AA6f3zVIOLjXPlnU8AsLarZEcevz6Zm7IfKhLAHoSqSd6P9m2QV9Qf1q3uqyBvQgvLdx9lP/yxgY2pBeZpBHuvHBklIqEtXdOXqMQFlT0+4JsJmhdLlKVsHYbSMU9f3OL8v5qp3IIflAGiOZ9NiVhmcURiE9e589Ti09845WEIQOyWl0SdrfQK1l6+yXx7yCuFVW5yieM8eIv2RP+wdWt12DqQfptlwd1JMWLD/dy1LCecPehnxyBdCg2krA09/PxenMJS5Wwnw7hYqDabVKRsIx+x4ZGpKSQrIQFldAMLwJ4JUzsxW1W38qSsLna1f7WqJxH+zs6XomwHNbBV2MetivPTimIq/zX6R2hHxwqoDqA+NoGO85o1wpY4rOElZTUHb1YJCX9IjVCMBtWuL4n92+XUoTV3XkDJxczCWvzBHvde185MrjT7c6p2SlJWLgXvcSPD62WgFORsOL1cn93pVOZV5vIT/aIn/rc4m/iy4HVvW171tFBdIg0yYeWFcXMokc2BkflwwF/qfmVmSGPe3G28Y4SJ7p1JfWOfez+Ww1tXq8tcjTo9/CaYuUtNgHw73mVxt7tK5mUZXRPbywJnPfKgoY+WiN6p9c7duozDSfWczNy6n6HpGg0qUCW6jE4Xt/HlolZ9a4jGUzwN5cWhr2XTePt9Y7ZPrmhL1Z1z7uiula4Z8LvOGcx++io5+D8AgMv7rWjhZDjoL23SMYy2Djg4xPqGeGRHu6daO/lg7XFhhEEcJjVzycQCD62c4ZlRDzGkTwDyPH2VpeFHY9oEKsP1vGtJcqmkflqmpm/+9w2L7ufH5iXsUESHmLE9X+4wJJhsOc4o65FFhD7G0I1SPIYwVXOkAOEl9nV8XNDQtG/IKNJBGAhHFpeVHfcS/MCIRZdcgNGeaOJrk6S52bk1iM5ZL1UjfL4m96juM9vbwu5OPREa3Rt/eKANKK/N8TNmUFY+g+GGnFQ78s9zh43YWmfSf0dNkYsbPU8bJz8Ov/6erbEF2blNjphYU7cl399A3uodq4+PzM3LLHr3Wzq3GLGCPWO8z4aOG6P5lnNICzMVz1pascDcZjREla0Lg2ISVZ3/5Cuyi8Je4Z3veuqhOTE6mVJu1CW7MvYhb4Bcb0wPTo18djmTkG/Juokxv+HG6T1Y0XDF49dQUzyUItJO/kHeu5Qene/re7/983Nrztv5uCOQdWSR+67RRn84J11uz7aRQ7yaxCoXTuxMTH0O5f6SYUFq19kAR8qZ8jJqZXkjK6j7yNYPxgHVcrCgtB/kbHTql/wcFptsOW+rLDel10fXqUnDvU9wRCtJfAJT7UzHMsAYeWGHAcQlv7+jeaYPpRK3cjRvhN9PzxeUvPRW+63hpWuIdkH2yns67pdqXk8XSkWfhaxFKu9vnacgkndRv3gfUNzGPtkIOohWsI6vSPyHFgfM5UfWhqvOyiJf6/sam2b1hhNFlv/WDXKzx+YE5Vrg/Zh98/P5zuA9QJUn/gFX/SY5PrBwYKDP9SYvm2Dkol0z41cNdOeY+QOocdS2drgepHEmA19qE2D81bpbDCYJCDDQZ76AdhzNSK/+gWcH0QdhZ8NFiC8vkEa+t/zMq7mO3roA9KWUR+T+7evt+C1hKWPT8tuf5UhmWlJHdeC7dDoWkMYoUPqxHvE4jM6ZlG1hT+TfiFBCgABQEXULvAlOpXRyPu7w51XcGkH92Z0XTwD3rVKWpiDesJVpXD8hn7wngx3Lfu1DflOfpl1Lb+XSD62elLVfnhX1Bjb9HxMEsP1IYnpCVUlf735Y1UI+6DRXA6HSLUsmJK4+lchfuv1ZA5Ka8zW33HLlTUe+5djHrEzXbQ4qpL12ocNthto9HUyUrdCBQOrKpqqWgyuMM7WgCDfXdNygr6QYJIWt7l4LUHPg+pitOjVBbljSnaDc4wkHi0qH7nL0A6ilaL8vdJD9oHfQ10PixzkF4wQo7lfSFHBJFz9e8YixS6w0cIHyejJ3YhktOMQjCS1kq2RBKaXjsONJz5Cod6JkSqOjYNg1x3eo009CTOYWUMFJP1Q1zdSgfGh0Et6IN9ItBstonFpgIT14nRHQLpy29Y3GlkNeaTN5Uy6+gvY8qMo3R3gYPbJhqbDq+xrs2qkwEXgdWNELolFct47K538eJwHo+8Ls/L4JIjkXHz9ljFpYc0ogf8XXuqRnptoGBHO5glZ/DdIBnhW9XkTfS8g8LfYVxj/xiYG7gPjvXVSFpdykmG8zMb2ydlMarTyMYYajo9sY137Q0aK2GXEmEPljaWPY5ujt1+tlnN5YHNVueWhxKuCrvSLZI9tP8jqUIxOpQG7FSFZCQsqC40NIRKc2BZLMs8SZWrf7ICkVWrJTCxhSbZJIKudEwtiDpCGoxm9bCIsQurjdIwxhCe2FdemRRb/VdUt4+bEkJVHeDCQ2z0nTvd7etFEWITmgGjdmuplGF3jVFAuUJaE94a6brvCVLLylmdkIbZnRr+suNMlww0CNhxC0wO7SEY+QTQ2hHBAiuh4Q3JenOHg/liyx7bK5Uo73xSyGvyr9Ov8kvin8Y9m8WyA8ccN0ctuasC1YcagDoY+QXkdr+KkBT8qGitCMJzYZk42l/U1eYH0MQFP9zgdRXulXcj0zIMjGQu+ZWLmBsShYeuW0DTADuC1V13M/YSMgN82j7fTWBGCIp64Yj0WDArEElaXWe+L08gubgt4tDtMzXeDYqz00gmE1EU89qsGWtfOTgEP+ArxyyHdWreKsTS9WAN/iU2j8kxPmQx2hh8IgUBIPSADq9nZRZG0b0QgY8PZqMmq6oGMfMZ2XyPsxkzRT5u54cO1JQQCIQVxcltJYlIiLyistWeJByMmq36dW//Y7xH/jRPfWFSYsBzvRzeXKB+sJRAIqYbTOxNDWCBC5MbihSc8tvkREdbw7pa7fG7bWjUjw+ynsnlWhlMmS1ont7OHX0MgEFIJkLDMtF8B768qUlZ5c5SxjwQKTvgl8YxcZukdbRjOdV63tVKuEE/z4hSss/Uj8pTDq53mlPHZVaIcXkMgEFIJx7eUmFTGq0TZN8uhzOmvFpsQ/ytLwgZfubUkXu+G83xlmV1Zh/tkj3gOnS8YnKO8xvTNM3FKXYgOP7yaQCCkCs7Eow7uCmRO2TEhPxCaw4nKftZXLoyXyzJ+bn54Tuf2rWTJvhqOpNAzxz8aSOJ3ZGNxzBVe319dTCAQUgDImhGLOoiNO+TDWjIsR5WmvmV421tu85iaFjmU1CW7rU/6PcIppDlVq+t8tNYZFQPDXeL9VcUEAiEFcDzKSBccv39uoTLhMVWaEj+T3bbnqlx33pDWVM3rsrST3eLhGqaDqoUqPlkf+YN9tLZYeW8VgUBIdkTjj7l5TF2Bie9kRlSmhN6YmoX0/o5Xshv7asoTWVE92KkdbDBWEgiEZMb7URLWs5MLan2qhKGy3DhqX1TNLwnTY/HdwiC8ywaEQCAkL6LdHYSta2a/bHiufz7YZbsuqciK6aUdUXB12fDcGHcL2aCsIBAISYmVsW2qIWc+L5AqCauTi7A84mvYpjyy0RlzqM47bGAIBELyAa4IsboyrPXn8vqD1aWWTklBVr5y4XEY1nZNLIjLJ+sw05HfWU4gEJIN8cQTY6dwwmNZTMoSP4F3QZOS1YCsVpf4K8Q/TeubFXfoDkpXv80Gh0AgJA9gbI/Xq33vTEetAd4qN7UquAY3cnCJOUHS0JffXkYgEJIFRzcVm5KdZe4AVMoR/jm8q3BVk5BVVVnbG5GCZkVVjmlBkDC+H1rmJBAISYC3lztNW9vvrQxUfoa9u/Elq7S0H8ge4W+4ATMYWMvEGKi3lhIIhKbGx+uLTc3KsGl0Hi+i6nW1a9e4hFVuewBk9fIc8/NlfbiOJgqBkAwwO9MwCleANxi+lB2OCxqHrFxZP63x2L+BG0MispHCeP/WEieBQGhCfLjWmZAkfQeXFPFwHX9ZI4Xq+N329WDJj9YXJSwbKXJuHVxCIBCaCie3FSdkbSNbKbwKoBpWeu6+PrGG9u4ZVpDV4qG5pouL+mykBxc7CQRCE+CDNc6ErW2eHn1TMS+g6vMI+xPmm9Wvc+uL/ZL4CQhrSu8sZZU3V3lptiPqlBPRSFlvLiYQCI2NRBSZQNqpd5YXKdvG5SsLBuaotizF5878ZUIIq5fFciHSl/ok21iZMaO/Np0MMOupbGXz6DzllbkO5ejmYtMS0r+xyEkgEBoRH5okXUEDe2dFkfLclAJlWWWuMq5nXU6s75jgc8rvEZYzPnl8iNS+VaPYshxpaRf43NbfoLoFI7BDNR7xCy2B7ZxYwB1Kj28tjkvKoklEIDQeTm0viVmCgqF+/xyHsqI6VxlTW1CilqTOypKwQy4Xnqnu3vGO5AiA7nHLD33lYnfcGLvBM2omUmDeMznK3lkOrhtHE8KDwXt9YRGBQGgERGu7gi3q4NIiXpymngRVIf7TX2F/T3aLI4a50lunpUKTu1x/qa8scwCTvj6SK8S/YVcAD3RgXnS+WxjE1xYUEQiEBAKEFa2b0ox+dRVv/sMEld8jjYzXlZGV1hwa01s/nvR4VkyiJk0oAiGx+HhD9Kab56epQc0WV1pzatVlVgdExT3TCmLcBnUqr84vIhAICUIs5bsgkY15GAn6xDeaFWHJHvEg/C5idYHAjgMG9cA8AoFgNk7E4cawdVy+gsgXuZv1tmZBVkNdP7kC6ZM3jcqP283hlblFBALBRLy5KL6IlY/W1aVB3tksCMsn2dfhgcwocf/WEppgBIJZgHQVqxuDFvCzYmrhv1xpaeenvrHdY//33AE5MVWMbWiA78QHef8cAoEQLw6vMsfJ++1lRWpGUX9Kk5W3zNYDD4IHMsvFHyLoy7OLCARCHHh9QZFy1sSwGxRQ9leIf0tZsuplSbvQLwlfYRfhlMlpaKB3vzSLQCDEAhDWsc3mrslX5xdyp9Gq7m2tqbkz+JuMdDzAvpkO0wMpsauBgd83k0AgRIt3l5ufjQEhePAEkCXxz01eHSe24qriYaiDJ7YlJg3Neyudyt4ZRQQCIQpAukpUaqgtY/O5lCW70q9LLbIq63gLyGplVU7CBgdGfIQT0CQkECKHmTUY9Di2pbjW+C6uTS3CqrBPgXh4antxQhOBwTfrxelFBAIhAry3ymnKbn0oB29kaoGUVXlf22tTgqwGdW3/M3bDX0/rm53QrKQqUNnjhWlFBAIhBOB3FUv4TbQ4sjEgZXnLbX1Sw1G03PowVwerc5VX5zt4QrAzO0oSyOqdeA7qPVOLCARCECTKlszB1uCxzagpyiS5mQXKqId4Bod/DnC1uiTZ+eoHfkl4X82DpcX4R+3KzH7ZyuIhucoaOU/ZPj5f2TezUHlrGSLF4ysphCBM7H7QxCQQGgK+i/HuAL6/uoi7LiCD6MZR+cqKqlye527KE1kKKmjp17vsEc9VuTPyU0LKGuBK/6nXLVqqSzO7yR7hGb9bmC5L4gaG1xihnWQP8x8jUpvUO4sNQjbP+xyLPev5KUUEAkGDg4uLorZbIbXx0mG5PN/V2EcarlOepM8j/pmt7cN+j/Ac+/di2W0bUeMRH66uyCwa5m53GzISN6cEDudVdrNc7y3PKPBJ9sf8HttERmKbaiThDQzIOn9ejPYsp/Lc5CICgTA54CQai+ZyZKNTJaa/MhJ6VvbYlvg8wlBfubW7t9z2i36t0y5Oo4ZAaVtXDNQr8wpjtmeh6sezk4oIhBaNPVOK4toRnPEkdvuEt4iVQjqbCptBWMfirLzzMvuy7J5IILRMgLDiDb3ZOJI7gX4lp6ddRMwUPI3yMWR2MGPn4sVpRcquCQRCy8P7JmRheHVBYW2eqyw3MZORdOVI+yFj9G92TSowhbDgtIovDU1gQksCKjefNSVeN+BPxbSeXcROhvYra18M0CETU9Ec3VjCX+LO8QRC88er8831ZJ8/KFtB0VNiJyMJyyMcCoTzmOvg9uGaYmXHuEICoVnjpZnme7I/NyWQr31417uuIobSNSZd/XnJsNyEeOIeWuZUto8tJBCaJZ6bXKic3G6+J/vby2sziUrCYGIorXTlSr/OXyF+u3+uIzHhO8gHz3T7rWMKCYRmhV0TCxMWdgNtZ1QPbsc6TCxVz34ljAeTf7jWmdCYQ6SF3TK6kEBoFoAqeHJbYgOal1flwr3hb8RSWncGj/jnUQ/bEx5NDtJC1PrmUQ4CIaWxbYxDObUt8dkXDqipj39z+43EVNydwXEBk66+XOfPTfjgqzl79s0oVDaNdBAIKYmtox0JsVkZF32pdW/wCDOJrVirrsi8GwPy7kpno7wAFcgUsWGEg0BIKWxhZHVqe+OtE3zgA9kYxH+mpWKudtPtVxW2tSCsTzcXNyphqerhhhoHgZASaEzJSosNI/NQ2fkrVMJq0WTVq5flQvh5gLB2T3YwFCjbxhUom0fnKxvZIK325SmrvLnKsuG5yoJBORyzn85RpvfNVqb1yVamPpHN66Htme6IwxBfqKzzFxAISY2tYwriMrDPejpbmfJEYM1MZWsHqYxn9w+sKawvYLUvV1lXk8fX3tZx+cr28QV8XWI98uIS3QVriyasynLxWqO8WJFClgJ5tV5bWBiXy8Obi4uUtXIBgZCU2D7eoZzYGp8GgkR7SKrHiOe/Ma83t7C1RRNWv86tL/aWWUTZY8kc6rK0qyy1tq12d7wDCcCq3Bk3I2cWktnLrvSfMvwIcKWnI3r8B1yd9Ig8HfORDcVxp3iFk9waXwGBkFR4dhJTA7fGrwYi2y/7wP9dXXtYR1h/tesK6+unWG9VZW1vxNrDOpTLLXdhTVay9Yk1KrutAlnd4wvn8SN/tFm6+gdrivkXbbWXQGh67J1eyNN/mzG3lwzN4VISEwyuIOZoMv8t28qJvbJMNTB+uqlY2TAiX1lZTSA0HfbPKTS16hTSjnO1zpWRTszRVBKWJLwBUdf0kAT2Vds0skBZUZVPIDQqVjLEkoc9EgdQHhdYbi0h5mhCD3nsciRqO3fXJIeyvDKfQGgUrPblK59sKE5Y/U5uPJeEh4g5mqD1cVzzI7yAVd68hPqgvLawiE+mZcMJhMRh06gC5czOxPpTjXwQhSVsXmKPJmhel6UdCGvnxPyEO84d3eRUVlTmKUuHEQjmA36EjVElfcJjjLAkYSmxR5PYr6z3gbBQ3LExvH1PbivmBSSXDM0jEEzDoaXm26tCVcJhKuEBYo8maDUe8WmekmZd48UgIpsEVMRFQ/IIhLiAnejGDkdbMDAHKY//l9ijKQzukm0qUionOiVNMAPmKl+esnAwgRA9UHezKebtiupcBYkyB7haXUIM0uiEJW402wcrGsCh7/lpBcqCQbkEQkRYUZnLk1Se3V3SJHN2x/gCvlNYXZp5NzFI47s0vDn76eyoCObwaqdyYL5DeXZygbJ+RF7cqWVhKH17WZGysipXmfcMgWCMBQNzleenOkyRqmCzRYKAvTMdyqGlhcrRTcUR28D2z6v1xZKsnYlBGp2w7H9YqitagS8X0m/gK4aA5hdnOJR1NfkKiG3kQw2DOfGyTbFtsQnz3NQCZT6bmHMHEAjfA243H5iY+nvr2PwG83jS43YFa2HnhAJOaO+uKOIRG3pJ7vDqotqkAbY+xCCN2CyWtAsZYZ1bwSSbd5YXKXsZMSE1xpTeWfVeJJPCzske8W+oKM3++5rssc2RyyxuvxTIwWUWYdXZttY5lZXVeTxtB6FlY/7AHP7B/J3JO4CBVC/2f1c9YMv3ldmG+9zCLjbP32f4PcMX2vk/mn2k5w/M5mE5bywq5EkyuYTlEScSizRiqy5te7eGlL5j+IoR0j/8HuEPjJRe8ElClbesvRgs4ZjsFqbzLA8bE7NLA3F97jM5yqynCC0RK9hHK1E7gJtG5mHO/zPY2qjsdvP13nKbx+e2zZcl4SQ79v9kj/A5Wxvf1qWJ8YjriEUasfnKhHuZWLvXK4n9q7vffUfU55cLE/DiEhUGwW1mO0uULexrOKNfDqGFAGSFHeREGs5he63x2P8e7Zzv1zrt4urSzC6yZJ0rS0RYqUV4bvvoRBOWapQ/zr60CwflKNOfJDRXgKwOzC8yLRVMSMKqyYNrApXdaknNK2X5QFiJ/hpqUzHDEDpvYI4yDemdCc0Gz052KMe2NJ4D6Bo/JCzxr7SKW1CTK8RhICyUMGps3603FxdygyzyaxNSFzsm5CtHNjob3ZdqtZfbsP5Cq7glqYTltoEBwnI2iQMf8m0hP9G8Z3KUyb2zCSmEreMKEm5KCO2tngfD+Z9pFbckCcttfZLHIa51NtnEU4lr/xyHsmRYjjLx8SxCkgIS1fZx+U32gatXOr6Sl47/P1rFLUrCEh4HYX2wtuknoGrjQtT+yupcBeFGEx4jJANmP52l7JqUz1T5TkkxTwA4iNZUiH+iVdySjO5lth6csNY4oyaWTzY4ldcWFMZfqSdYaXB2T6t8ucrUvlnKuEcJjY3xjKjmDcpWXpxRYLrTp9ZP771VRcqpGIqiLh6aAwnrj7SKW5JKWGZxg7AQWxhJShnYLF6a5VCmI59QrfPdnukFiZW6dpcoL8928IKX49lCGvsIIZFA3b61ci5P1phoKWlsz8AcQraRdf48Rl7OiOsOLhoMwrJTipiW1KrLMn6LCfO+AWHBdwq2peNbS3h0++gedR713zBR/DNZsr2M/19WmdtoagDiI9eNyGMSgF0Z87BdGU0wBSCOKX3syqHlRY2q1iGuVZaEvX6P8Ht/hfglojUwp+Y/k628vdzJ33ewQGnsMLNz/odWcUuSsGqzlb6/qj5hfbTWyZ088eXThP584XPbvP3vv+VKOVDA9Ty/JH416fGsRrZzlXC3iKMbi5WV1TmcSAmxAcHC2OzAeDZ2XiqUmw9UUbblYy4ifMz7gDVHlsTX1DmH+QcyNcrwgJ1lNif/QKu4RUlYtnswMSCKI5nanKezueSiThifJHzq81jLn76v7bWutLTzGxKeeAD2jqY0vuIr/O6qIm6ExRebEBr4wLwwo4DH+J3ZVdJk7+2VuYW1GRPEBvUBh+S0uby6a+bdPsm2oMZj/wbHoXDEhF5ZPCQHsa9z+nPC+j2t4pZEWOVCESbDqO/VvW8ZSe31ldm6yi7LTWF3GSVhAlSKZNk5AnnBHvfiTAdPpYMvdEsH3u2GkXnKW0uL+EI/24QkVc9TXeZ+VArKwoeaY4M6tb/MW2bN8LmF0Uyi/6sqeQH+CvvvaBW3JJWwXMytkYQvZElYWu3O7DLc1fqaqNwiJFtXTKDGKh4Q/U5msfLqgkKeO2lWv+wG+ZOaI6BCId0QUrogjcqZHSXJ9252lygTHwukQOrXufXFEc9XR9oF3rIOIK8Bskc4zD6wZ2kVt6CGmoadW0c+YRpMILetIybd241srI0Vx7cU85Cg7ePzlQUDs5Vxj6Q+QU3rk6Ws8eUq+2Y5uHtKU+RIj6WICSQkpg4ei2f+DunWvhWtYmqRExZTG7Foto4tSAnCMjLgI9kg7HeQwpYNz1VmMElsXM/kIiXYbyb3zlLmD8pR1vrzlD1THfwjcWp7cUqOO1R3EJavXJhHq4haozUmzv8YC2r20zmxOYcystg1sSApVUr4A8HrHo6Tm8fkcTIDYcAfbGqfgAf4mEfs9XZSowXsS3DRgCEctfLmDshRFg3J5aQEz/ID8xx8xzbRlZBjwb6ZDq5ux+L0CVcZXgTCbS2jVUStUZtfEj/Doo3YmLsrQFQIv1EXbqqolKG26JFm+qP1xdxz+50VRcrBJUXKm7U4tCzwN8RswvB9gi3YZDF+x4rZ/QM2QRA3iDWaQiYIBeOE5Wp/K60gao3afJKwA5Mv3JcWdgss1rm1E93vEf8je4RDNRXit2vk3JRevC0NeJfw4/J7hA9lSfgLHD4hLaKmAIgrHBk/PyVQZmu4K+MaWkHUGpew3BZeeRpSQzA7Eb6oGteJ7xjJLVJ3h2RJfGda3ywighTCS7MChCOX2e7BO/Q+0BEOn5+pnur4AJ3eEdyFYvGQwEerjyv9R7SCqDVqq+ye2T5YIQuUWhr3WC1RVcDHyzZwyH1tLq9PeMJQ/H58SwmRQQqpg7LHfg4+Uup7dLnSzkdhUrlCOK3a55ACRh8bCHul+vGqjZigRq0Rdwp72K7D5Ns/t7BuUu6aVMDTwwQkKvu/Zbe1F0J6DM9/INOO4+BqQGSQGkAQOlMFtwSbE5y43MJ+lbgWDs7hmwf1QnIk2yFaPdQavQ11Wa7ABESE//ZxecqEx+pKKP2Pr1x4SC9R6VuvQG3FfyADRHw+ViShRZQscTuK7MbuDnF4TZEaA9gt3NzwSpZ2qEwDVRFhQQsG5TCpO3C+120bQauHWuNLWK70i+oVba0QP/C5bdIAV6tLIt5p9AgzYw3xObGtWFnlzeWuAad3EiGFw84J+dyn69UFjthSE1fl1tqvOt4S6fv1ltt+IUv2uYy4vlbnideVkUWrh1rTkJYk/tEvia/6yjO6GwVJh53QbkshJvHrC6Nzb8B2+oTHvq9yvWdaAZFSGEfZyZqq4PCQPx5FpRucP7YnVwePxzJP4Jnul2xT2Xz5d784IiyoUYurDXG1bxPP+QO73Hk1Aq9R2jwS/6RPNzvZlz5PjfY/7ivP/DWq+07vm52UTqjJAjjB8iwciMWTxBVMFT839hE73xyJZNzhWQ+fOyYx9YnnfUcTP0iNWnJKaW5hH9TCUAsH/j+vLyzU7DoKa3p1sVwaON/2FP6OKjzxLOqjG51x2XgShY/XO+MmY9QPlD3CH3v1slyIMfOVZTgZaf0O44YdvU83hX7u3ZPyaz3UO95BM5ZaCyeszC5YDMc2Gy8a/H3REJ4D6TtGVn+Su1rb1jvfcv2lskf8N0JnYieFYr4Dtnl0nmn1F83oBwVK4aiJ+4o1uPnQ0sLaHGdi33qbHoy8GNlvYuN6Dr+/sajQ8Br4kATcEcT/koRErcW3KleHG1SnQ23RAyweBCfXOp2eYwtuRbA+fJJteKxly5B1FTtZ/gr7uUjz3IfzBkca34NLCuO0O3XibgGQKEHWKL4QC2lN7ZOt+CXxm2DuJVXd7r6ZEf4/cI35z+QoJ7cVG8b/wXhOs5UatbS085i68k8sCnVBntpWosx6ujaURxL/NKyb9baQtrSyjJ/j2JlRSlkgRJ7uxCN87i3taGOL9ktkbYir0Gftbhqkkk82xq5ivjTbUSsZ2cb4JPsU/Hv6k9FFBiC7aMDVRKgMNX5wMWGq+RyeIYKR90uzvydbxEaCzAYyYqOpSo1aGlI2WwdgsWCBYftdLXzhKxcGy12uvzRCW9gUkM/JbZFJLxtGqMZ74VM1to2Rw2P42+bRsTmzbhqVr/a5jC3yz5HaN5asBmd3dlLG9cwCURzv4bjlh/AM95UJPdH3pAj7xDPOqK1yJEuR5Y+Su1vu8nvsRwOZOLK5Oo4YUBCWXGszpEatxbeny9tei0WBUlO1C/7jSpetY1Sk5+54B85dOCg7rAG/zqfII+zTOrg6HGkXyJL4EjYBjm2JTjpCIr1AcjphB0jGV24tYarWd7FIbFD/uM9Sua2gnupbav0N/o70Nh+FUX8hpdbez6JoxhFxfnK5zYfrqB8O1sf7NEupUVO/7NwJVfy2dut9aDTOp/X6kYSdUGlOB5FAkFGA24UQiO22zpcdjgv0fQznUoZ4Lhr1EimJeekqj/jJsHvb/aSOYNwBqQi19CLt653lRQGicQszjZ4Rjpd+j/BfXO/1RUVBU/ksqwyQ3rAoHD3rXcedaWHj+R7Pv16W4aRZSo2aVnqQbGMrS9u3jUu1dLVvgwW2aVTD3T5UquZ2MY/9G0YG/pD34ha4ioriseEI5shGZ60dTPxHVZcONzSwz0m2Mehr/ci8sD5Pp5n0h+pFjJD+ObzrXVcFuz8Yyv2S+Af0+8J0R4MKzXAKrfVVew33EOt4YldQdtsG0eykRi0Rklpa2g+YmndEn/bm3ZVFPCjbXyF+zlS1h8P2A7uRWzgGIjoeoiLxsS0lvPgD6/frYD5KKKDgk6wbVI/8YD5VILN1NQG7WnWZ1RHuHgdktbpE9tgOcoIencfJTu0LAeWQWAd2yyBDOTVqydyQMQAq3wvTC+p2uUZzqUX8qyxZOkXaz7Bu7W7j1YgHZhu6EyD7wMx+AYlteFn7vHAqLyPSj7i/00JjdwdkLA3Y1WzPRSEVMQlO3IbnXV6Vy43xx76Xrs5SGhdq1JK8IT8T1DMs2r0zA4Zwpj79cXhphzujVlPd4jSQASru6FW3ld5c7rvlc9uejpRc4KIRKGBb3/Z0akcJz3bBfv8iFudMprbNCoQ4ZTMpzsGlK1Q2otlAjVoqSFlu66/ULJhMsvldKHtQOPLz1/qIqcHCUN22j8sPbPW7hVVREYsr/UeMlP6N3bejm4rr3A+em+Lg/Xk9tgdiVocl6xDECKopfmgWUKOWQo2pan+WK8R35fT0i+LpZ5grszW8zdfKebWBxA7VofXlmIjF1bEjiAUuHKiKc3iNs9ZBVPg43mf2PWD7Ne+rLKOCZgA1ainUqh7IyO9lCQT7xk0EHnE7dygdkxdQMT3C+/HE1TF1rUfAZyyHl0pj0tX/Q0JEU6RLqkhDjVrLbtg1ZFLW/9TGNf5hUNf2P4ubBN320Wp+KsRC0ihTo0bNtOYrF7vLHvFzb2lGB1NIEC4YkrgCJc/SaDePGjVqpkta3S13mdnfoE7XXgY3DBpZapG2/w9KMUTJysWRhQAAAABJRU5ErkJggg==", "id": "urn:uuid:82a4c9f2-3588-457b-80ea-da695571b8fc", "description": "Lorem ipsum dolor sit amet, mei docendi concludaturque ad, cu nec partem graece. Est aperiam consetetur cu, expetenda moderatius neglegentur ei nam, suas dolor laudem eam an.", "signatureLines": [{"jobTitle": "University Issuer", "name": "Your signature", "type": ["SignatureLine", "Extension"], "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJcAAABVBAMAAAC2kWv1AAAAMFBMVEX///8AAAC/v79/f39fX1+fn5/f398/Pz8fHx/Dw8NTU1Onp6cvLy93d3cnJydvb28isqiqAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADQElEQVRYhe2WS27bMBCGp5RIudsCRbasX8iqUJ3Y3hIO7HZJSJayKAqw8StLIYnTLpNFnCv0BL1NT9MLdEhJzkNSEkfaFNAPmKQl6tNwNDMkQK1atV4nyqtjsbPqWODwCmF+hSyIKmTZvELYvEIWXFbIIgJgaUZMlobZwfAiphwHZVnz6/NuPCJRqyyMvE8G7HQpCC8HY1dJvx5Pg7AcCyy5AgihvyDrbkkUqAb0gbwjG26rkijyY9NiETSuaADOawD3Az5siEtLwoFrS5i9BnYRdwxWiqr9ZdQA0ubfOcKY2hFFJI8HCzYEDw6p24aFA4f4JSA3Zslhv5A1lEL3S3BPOkxQz1EjkDZs8JqfZxgb62+dKxYCucK+9ZOFXDiqKxzYULCnoujtU3xDgTc7uBoXf/zYXjB3yrhowWYAbwuDVc+GVcYms0hM6AYH5sL5SlpqfeLJHgwVtHpFsAPdtHVD77HWutVR8UvfpP1P3IE93lFYsjlWjgIW0YbFe4RpkmQx99CZXR/ob5Cjc0SO0BsRMF5cueNANtXTbBRJspirF+i0Hnx1KUQc+lgRW0RgSOBDKh9mls80hwpy+zlMksXowxEHYa1CCREL/jQ5tagEd2tBVkI3li6dTXk9sFtJshjRPfzOkzc3wG48OAM3pDa3tFFFJda4rIE/0lFH4KTJYjTf1y1RzMdZRxBw6iwHW4cUwbTrmzbWvVmaLGbxkzieiGchff/bANjHvypdSJ6autnorcbC1YltsuhnvHixIejaRTS5oYzFBSzQZZy6Oti9UzwrZZMFWXcOjz/jg/uPhVMw2Mc+monJwh4ki37RnSkmwCz1FKxtVjueoJXDRxOpcfj26xn04CkWTPRZkK572R2CjZIJ6f/oOcMwJAcw+6JY9s5BMmF7wU9sLRRzfWgP8qrQnJuOiLu5z+6VvmrLPE/QBGLxZwAPNJO6aGWULHK3XY1Nct1qpfydDijaXZ3s5Wk6mGTvFcuFvFWy6PHgRZK5hm0r4G7+X7JOzvxVZvAyNVXOxW0OjXaD5SqFEVEBLE2JSs79VtLvFBhFSqKl9Akx1kxjWCWGoQIOpPC0tbM6gVcZq1atWrVq1fqP9Q9Wkn4v31JdhQAAAABJRU5ErkJggg=="}]}, "id": "urn:uuid:3bc1a96a-3501-46ed-8f75-49612bbac257", "recipientProfile": {"publicKey": "ecdsa-koblitz-pubkey:mtr98kany9G1XYNU74pRnfBQmaCg2FZLmc", "name": "Eularia Landroth", "type": ["RecipientProfile", "Extension"]}, "signature": {"type": ["MerkleProof2017", "Extension"], "merkleRoot": "c65c6184e3d5a945ddb5437e93ea312411fd33aa1def22b0746d6ecd4aa30f20", "targetHash": "c65c6184e3d5a945ddb5437e93ea312411fd33aa1def22b0746d6ecd4aa30f20", "proof": [], "anchors": [{"sourceId": "0xd85776b42af81083517d5399db02ff63b87ca96b5e86ee36a96cbf968b0352f0", "type": "ETHSmartContract", "chain": "ethereumMainnet", "contract_address": "0x7aF019edb78B6932f796996a7Eaa1fC8d8e183CF", "ens_name": "mpdl.berg", "contract_abi": [{"inputs": [], "stateMutability": "nonpayable", "type": "constructor"}, {"anonymous": false, "inputs": [{"indexed": true, "internalType": "address", "name": "owner", "type": "address"}, {"indexed": true, "internalType": "address", "name": "approved", "type": "address"}, {"indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256"}], "name": "Approval", "type": "event"}, {"anonymous": false, "inputs": [{"indexed": true, "internalType": "address", "name": "owner", "type": "address"}, {"indexed": true, "internalType": "address", "name": "operator", "type": "address"}, {"indexed": false, "internalType": "bool", "name": "approved", "type": "bool"}], "name": "ApprovalForAll", "type": "event"}, {"anonymous": false, "inputs": [{"indexed": true, "internalType": "address", "name": "from", "type": "address"}, {"indexed": true, "internalType": "address", "name": "to", "type": "address"}, {"indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256"}], "name": "Transfer", "type": "event"}, {"inputs": [{"internalType": "address", "name": "to", "type": "address"}, {"internalType": "uint256", "name": "tokenId", "type": "uint256"}], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function"}, {"inputs": [{"internalType": "address", "name": "owner", "type": "address"}], "name": "balanceOf", "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}], "stateMutability": "view", "type": "function"}, {"inputs": [], "name": "baseURI", "outputs": [{"internalType": "string", "name": "", "type": "string"}], "stateMutability": "view", "type": "function"}, {"inputs": [{"internalType": "address", "name": "recipient", "type": "address"}, {"internalType": "string", "name": "tokenURI", "type": "string"}, {"internalType": "string", "name": "tokenHash", "type": "string"}], "name": "createCertificate", "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}], "stateMutability": "nonpayable", "type": "function"}, {"inputs": [{"internalType": "uint256", "name": "tokenId", "type": "uint256"}], "name": "getApproved", "outputs": [{"internalType": "address", "name": "", "type": "address"}], "stateMutability": "view", "type": "function"}, {"inputs": [{"internalType": "address", "name": "owner", "type": "address"}, {"internalType": "address", "name": "operator", "type": "address"}], "name": "isApprovedForAll", "outputs": [{"internalType": "bool", "name": "", "type": "bool"}], "stateMutability": "view", "type": "function"}, {"inputs": [], "name": "name", "outputs": [{"internalType": "string", "name": "", "type": "string"}], "stateMutability": "view", "type": "function"}, {"inputs": [{"internalType": "uint256", "name": "tokenId", "type": "uint256"}], "name": "ownerOf", "outputs": [{"internalType": "address", "name": "", "type": "address"}], "stateMutability": "view", "type": "function"}, {"inputs": [{"internalType": "address", "name": "from", "type": "address"}, {"internalType": "address", "name": "to", "type": "address"}, {"internalType": "uint256", "name": "tokenId", "type": "uint256"}], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function"}, {"inputs": [{"internalType": "address", "name": "from", "type": "address"}, {"internalType": "address", "name": "to", "type": "address"}, {"internalType": "uint256", "name": "tokenId", "type": "uint256"}, {"internalType": "bytes", "name": "_data", "type": "bytes"}], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function"}, {"inputs": [{"internalType": "address", "name": "operator", "type": "address"}, {"internalType": "bool", "name": "approved", "type": "bool"}], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function"}, {"inputs": [{"internalType": "bytes4", "name": "interfaceId", "type": "bytes4"}], "name": "supportsInterface", "outputs": [{"internalType": "bool", "name": "", "type": "bool"}], "stateMutability": "view", "type": "function"}, {"inputs": [], "name": "symbol", "outputs": [{"internalType": "string", "name": "", "type": "string"}], "stateMutability": "view", "type": "function"}, {"inputs": [{"internalType": "uint256", "name": "index", "type": "uint256"}], "name": "tokenByIndex", "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}], "stateMutability": "view", "type": "function"}, {"inputs": [{"internalType": "uint256", "name": "tokenId", "type": "uint256"}], "name": "tokenHash", "outputs": [{"internalType": "string", "name": "", "type": "string"}], "stateMutability": "view", "type": "function"}, {"inputs": [{"internalType": "address", "name": "owner", "type": "address"}, {"internalType": "uint256", "name": "index", "type": "uint256"}], "name": "tokenOfOwnerByIndex", "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}], "stateMutability": "view", "type": "function"}, {"inputs": [{"internalType": "uint256", "name": "tokenId", "type": "uint256"}], "name": "tokenURI", "outputs": [{"internalType": "string", "name": "", "type": "string"}], "stateMutability": "view", "type": "function"}, {"inputs": [], "name": "totalSupply", "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}], "stateMutability": "view", "type": "function"}, {"inputs": [{"internalType": "address", "name": "from", "type": "address"}, {"internalType": "address", "name": "to", "type": "address"}, {"internalType": "uint256", "name": "tokenId", "type": "uint256"}], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function"}]}]}} \ No newline at end of file diff --git a/work/unsigned_certificates/.placeholder b/work/unsigned_certificates/.placeholder new file mode 100644 index 00000000..e69de29b diff --git a/work/unsigned_certificates/3bc1a96a-3501-46ed-8f75-49612bbac257.json b/work/unsigned_certificates/3bc1a96a-3501-46ed-8f75-49612bbac257.json new file mode 100644 index 00000000..716deae0 --- /dev/null +++ b/work/unsigned_certificates/3bc1a96a-3501-46ed-8f75-49612bbac257.json @@ -0,0 +1 @@ +{"issuedOn": "2017-07-20T09:33:47.490752+00:00", "recipient": {"identity": "eularia@landroth.org", "type": "email", "hashed": false}, "type": "Assertion", "verification": {"publicKey": "ecdsa-koblitz-pubkey:msBCHdwaQ7N2ypBYupkp6uNxtr9Pg76imj", "type": ["MerkleProofVerification2017", "Extension"]}, "@context": ["https://w3id.org/openbadges/v2", "https://w3id.org/blockcerts/v2"], "badge": {"issuer": {"url": "https://www.issuer.org", "name": "University of Learning", "email": "contact@issuer.org", "type": "Profile", "id": "https://www.blockcerts.org/samples/2.0/issuer-testnet.json", "image": "data:image/png;base64,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", "revocationList": "https://www.blockcerts.org/samples/2.0/revocation-list-testnet.json"}, "name": "Certificate of Accomplishment", "type": "BadgeClass", "criteria": {"narrative": "Nibh iriure ei nam, modo ridens neglegentur mel eu. At his cibo mucius."}, "image": "data:image/png;base64,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", "id": "urn:uuid:82a4c9f2-3588-457b-80ea-da695571b8fc", "description": "Lorem ipsum dolor sit amet, mei docendi concludaturque ad, cu nec partem graece. Est aperiam consetetur cu, expetenda moderatius neglegentur ei nam, suas dolor laudem eam an.", "signatureLines": [{"jobTitle": "University Issuer", "name": "Your signature", "type": ["SignatureLine", "Extension"], "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJcAAABVBAMAAAC2kWv1AAAAMFBMVEX///8AAAC/v79/f39fX1+fn5/f398/Pz8fHx/Dw8NTU1Onp6cvLy93d3cnJydvb28isqiqAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADQElEQVRYhe2WS27bMBCGp5RIudsCRbasX8iqUJ3Y3hIO7HZJSJayKAqw8StLIYnTLpNFnCv0BL1NT9MLdEhJzkNSEkfaFNAPmKQl6tNwNDMkQK1atV4nyqtjsbPqWODwCmF+hSyIKmTZvELYvEIWXFbIIgJgaUZMlobZwfAiphwHZVnz6/NuPCJRqyyMvE8G7HQpCC8HY1dJvx5Pg7AcCyy5AgihvyDrbkkUqAb0gbwjG26rkijyY9NiETSuaADOawD3Az5siEtLwoFrS5i9BnYRdwxWiqr9ZdQA0ubfOcKY2hFFJI8HCzYEDw6p24aFA4f4JSA3Zslhv5A1lEL3S3BPOkxQz1EjkDZs8JqfZxgb62+dKxYCucK+9ZOFXDiqKxzYULCnoujtU3xDgTc7uBoXf/zYXjB3yrhowWYAbwuDVc+GVcYms0hM6AYH5sL5SlpqfeLJHgwVtHpFsAPdtHVD77HWutVR8UvfpP1P3IE93lFYsjlWjgIW0YbFe4RpkmQx99CZXR/ob5Cjc0SO0BsRMF5cueNANtXTbBRJspirF+i0Hnx1KUQc+lgRW0RgSOBDKh9mls80hwpy+zlMksXowxEHYa1CCREL/jQ5tagEd2tBVkI3li6dTXk9sFtJshjRPfzOkzc3wG48OAM3pDa3tFFFJda4rIE/0lFH4KTJYjTf1y1RzMdZRxBw6iwHW4cUwbTrmzbWvVmaLGbxkzieiGchff/bANjHvypdSJ6autnorcbC1YltsuhnvHixIejaRTS5oYzFBSzQZZy6Oti9UzwrZZMFWXcOjz/jg/uPhVMw2Mc+monJwh4ki37RnSkmwCz1FKxtVjueoJXDRxOpcfj26xn04CkWTPRZkK572R2CjZIJ6f/oOcMwJAcw+6JY9s5BMmF7wU9sLRRzfWgP8qrQnJuOiLu5z+6VvmrLPE/QBGLxZwAPNJO6aGWULHK3XY1Nct1qpfydDijaXZ3s5Wk6mGTvFcuFvFWy6PHgRZK5hm0r4G7+X7JOzvxVZvAyNVXOxW0OjXaD5SqFEVEBLE2JSs79VtLvFBhFSqKl9Akx1kxjWCWGoQIOpPC0tbM6gVcZq1atWrVq1fqP9Q9Wkn4v31JdhQAAAABJRU5ErkJggg=="}]}, "id": "urn:uuid:3bc1a96a-3501-46ed-8f75-49612bbac257", "recipientProfile": {"publicKey": "ecdsa-koblitz-pubkey:mtr98kany9G1XYNU74pRnfBQmaCg2FZLmc", "name": "Eularia Landroth", "type": ["RecipientProfile", "Extension"]}} \ No newline at end of file From 80b2a3347745c58119d03e209ce0bf195772058c Mon Sep 17 00:00:00 2001 From: James Date: Thu, 23 Jul 2020 15:51:40 +0200 Subject: [PATCH 15/22] updated API for bloxberg --- .dockerignore | 1 + Dockerfilebloxberg | 12 +++++ app/main.py | 48 +++++++++++++++++++ .../ethereum_sc/connectors.py | 3 +- cert_issuer/config.py | 2 +- cert_issuer/issuer.py | 1 + ethereum_smart_contract_requirements.txt | 16 +++++++ .../3bc1a96a-3501-46ed-8f75-49612bbac257.json | 1 - .../3bc1a96a-3501-46ed-8f75-49612bbac257.json | 1 - work/unsigned_certificates/testcert.json | 27 +++++++++++ 10 files changed, 108 insertions(+), 4 deletions(-) create mode 100644 Dockerfilebloxberg create mode 100644 app/main.py delete mode 100644 work/blockchain_certificates/3bc1a96a-3501-46ed-8f75-49612bbac257.json delete mode 100644 work/unsigned_certificates/3bc1a96a-3501-46ed-8f75-49612bbac257.json create mode 100644 work/unsigned_certificates/testcert.json diff --git a/.dockerignore b/.dockerignore index 4f37e5ab..ba79feef 100644 --- a/.dockerignore +++ b/.dockerignore @@ -2,3 +2,4 @@ .tox *egg-info venv +pk diff --git a/Dockerfilebloxberg b/Dockerfilebloxberg new file mode 100644 index 00000000..858f7d4f --- /dev/null +++ b/Dockerfilebloxberg @@ -0,0 +1,12 @@ +FROM tiangolo/uvicorn-gunicorn-fastapi:python3.7 + +EXPOSE 80 + +COPY ./app /app/app +COPY ./cert_issuer /app/cert_issuer +COPY ./sample_data /app/sample_data +COPY ethereum_smart_contract_requirements.txt . +COPY conf.ini . + +RUN pip install -r ethereum_smart_contract_requirements.txt + diff --git a/app/main.py b/app/main.py new file mode 100644 index 00000000..0a179337 --- /dev/null +++ b/app/main.py @@ -0,0 +1,48 @@ +from typing import List, Optional +from functools import lru_cache +from fastapi import Depends, FastAPI +from cert_tools import instantiate_v3_alpha_certificate_batch, create_v3_alpha_certificate_template +from pydantic import BaseModel +import configargparse +import os + +app = FastAPI() + + +@app.get("/") +def read_root(): + return {"Hello": "World"} + +class Batch(BaseModel): + publicKey: str + recipient_name: Optional[str] + email: Optional[str] + SHA256: List[str] + + class Config: + schema_extra = { + "example": { + "publicKey": "0x69575606E8b8F0cAaA5A3BD1fc5D032024Bb85AF", + "recipient_name": "Albert Einstein", + "email": "einstein@mpg.de", + "SHA256": ["0x0e4ded5319861c8daac00d425c53a16bd180a7d01a340a0e00f7dede40d2c9f6", "0xfda3124d5319861c8daac00d425c53a16bd180a7d01a340a0e00f7dede40d2c9f6"], + } + } + + +@app.post("/createUnsignedCertificateBatch") +def createUnsignedCertificate(batch: Batch): + #create_v3_alpha_certificate_template(recipient_name, email) + conf = create_v3_alpha_certificate_template.get_config() + create_v3_alpha_certificate_template.write_certificate_template(conf, batch.recipient_name, batch.email) + conf_instantiate = instantiate_v3_alpha_certificate_batch.get_config() + instantiate_v3_alpha_certificate_batch.instantiate_batch(conf_instantiate, batch.publicKey, batch.recipient_name, batch.email, batch.SHA256) + + return {"Unsigned Certificate Created!"} + +@app.post("/createCertificateBatch") +def createCertificateBatch(batch: Batch): + conf = instantiate_v3_alpha_certificate_batch.get_config() + instantiate_v3_alpha_certificate_batch.instantiate_batch(conf, batch.publicKey, batch.recipient_name, batch.email, batch.SHA256) + + return {"Batch Created!"} diff --git a/cert_issuer/blockchain_handlers/ethereum_sc/connectors.py b/cert_issuer/blockchain_handlers/ethereum_sc/connectors.py index fbdbdac1..5caa4e0b 100644 --- a/cert_issuer/blockchain_handlers/ethereum_sc/connectors.py +++ b/cert_issuer/blockchain_handlers/ethereum_sc/connectors.py @@ -14,7 +14,8 @@ def get_abi(contract): """ directory = os.path.dirname(os.path.abspath(__file__)) - path = os.path.join(directory, f"/home/james/bloxberg-certs/cert-issuer/cert_issuer/blockchain_handlers/ethereum_sc/data/{contract}_abi.json") + path = os.path.join(directory, f"data/{contract}_abi.json") + print(path) with open(path, "r") as f: raw = f.read() diff --git a/cert_issuer/config.py b/cert_issuer/config.py index 8abcedb0..4c47309c 100644 --- a/cert_issuer/config.py +++ b/cert_issuer/config.py @@ -1,7 +1,7 @@ import logging import os -import bitcoin +#import bitcoin import configargparse from cert_core import BlockchainType, Chain, chain_to_bitcoin_network, UnknownChainError diff --git a/cert_issuer/issuer.py b/cert_issuer/issuer.py index 304c441e..44fc19d5 100644 --- a/cert_issuer/issuer.py +++ b/cert_issuer/issuer.py @@ -25,6 +25,7 @@ def issue(self, chain, app_config): #Change to parameters that get passed in app.py TODO recipient_address = Web3.toChecksumAddress('0xaA84378fA41da83a9B6523bA46E45A664FbEBFC8') print(is_checksum_address(recipient_address)) + #change token_uri address token_uri = "https://bloxberg.org" blockchain_bytes = str(blockchain_bytes, 'latin-1') diff --git a/ethereum_smart_contract_requirements.txt b/ethereum_smart_contract_requirements.txt index b9e889d4..b8b03e9d 100644 --- a/ethereum_smart_contract_requirements.txt +++ b/ethereum_smart_contract_requirements.txt @@ -1,2 +1,18 @@ coincurve==7.1.0 web3>=5 + + + +configargparse==0.12.0 +cert-core +cert-schema +chainpoint3>=0.0.2 +glob2==0.6 +mock==2.0.0 +requests[security]>=2.18.4 +pycoin==0.80 +pyld +pysha3>=1.0.2 +python-bitcoinlib>=0.10.1 +tox>=3.0.0 +jsonschema<3 diff --git a/work/blockchain_certificates/3bc1a96a-3501-46ed-8f75-49612bbac257.json b/work/blockchain_certificates/3bc1a96a-3501-46ed-8f75-49612bbac257.json deleted file mode 100644 index 63394b26..00000000 --- a/work/blockchain_certificates/3bc1a96a-3501-46ed-8f75-49612bbac257.json +++ /dev/null @@ -1 +0,0 @@ -{"issuedOn": "2017-07-20T09:33:47.490752+00:00", "recipient": {"identity": "eularia@landroth.org", "type": "email", "hashed": false}, "type": "Assertion", "verification": {"publicKey": "ecdsa-koblitz-pubkey:msBCHdwaQ7N2ypBYupkp6uNxtr9Pg76imj", "type": ["MerkleProofVerification2017", "Extension"]}, "@context": ["https://w3id.org/openbadges/v2", "https://w3id.org/blockcerts/v2"], "badge": {"issuer": {"url": "https://www.issuer.org", "name": "University of Learning", "email": "contact@issuer.org", "type": "Profile", "id": "https://www.blockcerts.org/samples/2.0/issuer-testnet.json", "image": "data:image/png;base64,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", "revocationList": "https://www.blockcerts.org/samples/2.0/revocation-list-testnet.json"}, "name": "Certificate of Accomplishment", "type": "BadgeClass", "criteria": {"narrative": "Nibh iriure ei nam, modo ridens neglegentur mel eu. At his cibo mucius."}, "image": "data:image/png;base64,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", "id": "urn:uuid:82a4c9f2-3588-457b-80ea-da695571b8fc", "description": "Lorem ipsum dolor sit amet, mei docendi concludaturque ad, cu nec partem graece. Est aperiam consetetur cu, expetenda moderatius neglegentur ei nam, suas dolor laudem eam an.", "signatureLines": [{"jobTitle": "University Issuer", "name": "Your signature", "type": ["SignatureLine", "Extension"], "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJcAAABVBAMAAAC2kWv1AAAAMFBMVEX///8AAAC/v79/f39fX1+fn5/f398/Pz8fHx/Dw8NTU1Onp6cvLy93d3cnJydvb28isqiqAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADQElEQVRYhe2WS27bMBCGp5RIudsCRbasX8iqUJ3Y3hIO7HZJSJayKAqw8StLIYnTLpNFnCv0BL1NT9MLdEhJzkNSEkfaFNAPmKQl6tNwNDMkQK1atV4nyqtjsbPqWODwCmF+hSyIKmTZvELYvEIWXFbIIgJgaUZMlobZwfAiphwHZVnz6/NuPCJRqyyMvE8G7HQpCC8HY1dJvx5Pg7AcCyy5AgihvyDrbkkUqAb0gbwjG26rkijyY9NiETSuaADOawD3Az5siEtLwoFrS5i9BnYRdwxWiqr9ZdQA0ubfOcKY2hFFJI8HCzYEDw6p24aFA4f4JSA3Zslhv5A1lEL3S3BPOkxQz1EjkDZs8JqfZxgb62+dKxYCucK+9ZOFXDiqKxzYULCnoujtU3xDgTc7uBoXf/zYXjB3yrhowWYAbwuDVc+GVcYms0hM6AYH5sL5SlpqfeLJHgwVtHpFsAPdtHVD77HWutVR8UvfpP1P3IE93lFYsjlWjgIW0YbFe4RpkmQx99CZXR/ob5Cjc0SO0BsRMF5cueNANtXTbBRJspirF+i0Hnx1KUQc+lgRW0RgSOBDKh9mls80hwpy+zlMksXowxEHYa1CCREL/jQ5tagEd2tBVkI3li6dTXk9sFtJshjRPfzOkzc3wG48OAM3pDa3tFFFJda4rIE/0lFH4KTJYjTf1y1RzMdZRxBw6iwHW4cUwbTrmzbWvVmaLGbxkzieiGchff/bANjHvypdSJ6autnorcbC1YltsuhnvHixIejaRTS5oYzFBSzQZZy6Oti9UzwrZZMFWXcOjz/jg/uPhVMw2Mc+monJwh4ki37RnSkmwCz1FKxtVjueoJXDRxOpcfj26xn04CkWTPRZkK572R2CjZIJ6f/oOcMwJAcw+6JY9s5BMmF7wU9sLRRzfWgP8qrQnJuOiLu5z+6VvmrLPE/QBGLxZwAPNJO6aGWULHK3XY1Nct1qpfydDijaXZ3s5Wk6mGTvFcuFvFWy6PHgRZK5hm0r4G7+X7JOzvxVZvAyNVXOxW0OjXaD5SqFEVEBLE2JSs79VtLvFBhFSqKl9Akx1kxjWCWGoQIOpPC0tbM6gVcZq1atWrVq1fqP9Q9Wkn4v31JdhQAAAABJRU5ErkJggg=="}]}, "id": "urn:uuid:3bc1a96a-3501-46ed-8f75-49612bbac257", "recipientProfile": {"publicKey": "ecdsa-koblitz-pubkey:mtr98kany9G1XYNU74pRnfBQmaCg2FZLmc", "name": "Eularia Landroth", "type": ["RecipientProfile", "Extension"]}, "signature": {"type": ["MerkleProof2017", "Extension"], "merkleRoot": "c65c6184e3d5a945ddb5437e93ea312411fd33aa1def22b0746d6ecd4aa30f20", "targetHash": "c65c6184e3d5a945ddb5437e93ea312411fd33aa1def22b0746d6ecd4aa30f20", "proof": [], "anchors": [{"sourceId": "0xd85776b42af81083517d5399db02ff63b87ca96b5e86ee36a96cbf968b0352f0", "type": "ETHSmartContract", "chain": "ethereumMainnet", "contract_address": "0x7aF019edb78B6932f796996a7Eaa1fC8d8e183CF", "ens_name": "mpdl.berg", "contract_abi": [{"inputs": [], "stateMutability": "nonpayable", "type": "constructor"}, {"anonymous": false, "inputs": [{"indexed": true, "internalType": "address", "name": "owner", "type": "address"}, {"indexed": true, "internalType": "address", "name": "approved", "type": "address"}, {"indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256"}], "name": "Approval", "type": "event"}, {"anonymous": false, "inputs": [{"indexed": true, "internalType": "address", "name": "owner", "type": "address"}, {"indexed": true, "internalType": "address", "name": "operator", "type": "address"}, {"indexed": false, "internalType": "bool", "name": "approved", "type": "bool"}], "name": "ApprovalForAll", "type": "event"}, {"anonymous": false, "inputs": [{"indexed": true, "internalType": "address", "name": "from", "type": "address"}, {"indexed": true, "internalType": "address", "name": "to", "type": "address"}, {"indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256"}], "name": "Transfer", "type": "event"}, {"inputs": [{"internalType": "address", "name": "to", "type": "address"}, {"internalType": "uint256", "name": "tokenId", "type": "uint256"}], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function"}, {"inputs": [{"internalType": "address", "name": "owner", "type": "address"}], "name": "balanceOf", "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}], "stateMutability": "view", "type": "function"}, {"inputs": [], "name": "baseURI", "outputs": [{"internalType": "string", "name": "", "type": "string"}], "stateMutability": "view", "type": "function"}, {"inputs": [{"internalType": "address", "name": "recipient", "type": "address"}, {"internalType": "string", "name": "tokenURI", "type": "string"}, {"internalType": "string", "name": "tokenHash", "type": "string"}], "name": "createCertificate", "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}], "stateMutability": "nonpayable", "type": "function"}, {"inputs": [{"internalType": "uint256", "name": "tokenId", "type": "uint256"}], "name": "getApproved", "outputs": [{"internalType": "address", "name": "", "type": "address"}], "stateMutability": "view", "type": "function"}, {"inputs": [{"internalType": "address", "name": "owner", "type": "address"}, {"internalType": "address", "name": "operator", "type": "address"}], "name": "isApprovedForAll", "outputs": [{"internalType": "bool", "name": "", "type": "bool"}], "stateMutability": "view", "type": "function"}, {"inputs": [], "name": "name", "outputs": [{"internalType": "string", "name": "", "type": "string"}], "stateMutability": "view", "type": "function"}, {"inputs": [{"internalType": "uint256", "name": "tokenId", "type": "uint256"}], "name": "ownerOf", "outputs": [{"internalType": "address", "name": "", "type": "address"}], "stateMutability": "view", "type": "function"}, {"inputs": [{"internalType": "address", "name": "from", "type": "address"}, {"internalType": "address", "name": "to", "type": "address"}, {"internalType": "uint256", "name": "tokenId", "type": "uint256"}], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function"}, {"inputs": [{"internalType": "address", "name": "from", "type": "address"}, {"internalType": "address", "name": "to", "type": "address"}, {"internalType": "uint256", "name": "tokenId", "type": "uint256"}, {"internalType": "bytes", "name": "_data", "type": "bytes"}], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function"}, {"inputs": [{"internalType": "address", "name": "operator", "type": "address"}, {"internalType": "bool", "name": "approved", "type": "bool"}], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function"}, {"inputs": [{"internalType": "bytes4", "name": "interfaceId", "type": "bytes4"}], "name": "supportsInterface", "outputs": [{"internalType": "bool", "name": "", "type": "bool"}], "stateMutability": "view", "type": "function"}, {"inputs": [], "name": "symbol", "outputs": [{"internalType": "string", "name": "", "type": "string"}], "stateMutability": "view", "type": "function"}, {"inputs": [{"internalType": "uint256", "name": "index", "type": "uint256"}], "name": "tokenByIndex", "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}], "stateMutability": "view", "type": "function"}, {"inputs": [{"internalType": "uint256", "name": "tokenId", "type": "uint256"}], "name": "tokenHash", "outputs": [{"internalType": "string", "name": "", "type": "string"}], "stateMutability": "view", "type": "function"}, {"inputs": [{"internalType": "address", "name": "owner", "type": "address"}, {"internalType": "uint256", "name": "index", "type": "uint256"}], "name": "tokenOfOwnerByIndex", "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}], "stateMutability": "view", "type": "function"}, {"inputs": [{"internalType": "uint256", "name": "tokenId", "type": "uint256"}], "name": "tokenURI", "outputs": [{"internalType": "string", "name": "", "type": "string"}], "stateMutability": "view", "type": "function"}, {"inputs": [], "name": "totalSupply", "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}], "stateMutability": "view", "type": "function"}, {"inputs": [{"internalType": "address", "name": "from", "type": "address"}, {"internalType": "address", "name": "to", "type": "address"}, {"internalType": "uint256", "name": "tokenId", "type": "uint256"}], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function"}]}]}} \ No newline at end of file diff --git a/work/unsigned_certificates/3bc1a96a-3501-46ed-8f75-49612bbac257.json b/work/unsigned_certificates/3bc1a96a-3501-46ed-8f75-49612bbac257.json deleted file mode 100644 index 716deae0..00000000 --- a/work/unsigned_certificates/3bc1a96a-3501-46ed-8f75-49612bbac257.json +++ /dev/null @@ -1 +0,0 @@ -{"issuedOn": "2017-07-20T09:33:47.490752+00:00", "recipient": {"identity": "eularia@landroth.org", "type": "email", "hashed": false}, "type": "Assertion", "verification": {"publicKey": "ecdsa-koblitz-pubkey:msBCHdwaQ7N2ypBYupkp6uNxtr9Pg76imj", "type": ["MerkleProofVerification2017", "Extension"]}, "@context": ["https://w3id.org/openbadges/v2", "https://w3id.org/blockcerts/v2"], "badge": {"issuer": {"url": "https://www.issuer.org", "name": "University of Learning", "email": "contact@issuer.org", "type": "Profile", "id": "https://www.blockcerts.org/samples/2.0/issuer-testnet.json", "image": "data:image/png;base64,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", "revocationList": "https://www.blockcerts.org/samples/2.0/revocation-list-testnet.json"}, "name": "Certificate of Accomplishment", "type": "BadgeClass", "criteria": {"narrative": "Nibh iriure ei nam, modo ridens neglegentur mel eu. At his cibo mucius."}, "image": "data:image/png;base64,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", "id": "urn:uuid:82a4c9f2-3588-457b-80ea-da695571b8fc", "description": "Lorem ipsum dolor sit amet, mei docendi concludaturque ad, cu nec partem graece. Est aperiam consetetur cu, expetenda moderatius neglegentur ei nam, suas dolor laudem eam an.", "signatureLines": [{"jobTitle": "University Issuer", "name": "Your signature", "type": ["SignatureLine", "Extension"], "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJcAAABVBAMAAAC2kWv1AAAAMFBMVEX///8AAAC/v79/f39fX1+fn5/f398/Pz8fHx/Dw8NTU1Onp6cvLy93d3cnJydvb28isqiqAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADQElEQVRYhe2WS27bMBCGp5RIudsCRbasX8iqUJ3Y3hIO7HZJSJayKAqw8StLIYnTLpNFnCv0BL1NT9MLdEhJzkNSEkfaFNAPmKQl6tNwNDMkQK1atV4nyqtjsbPqWODwCmF+hSyIKmTZvELYvEIWXFbIIgJgaUZMlobZwfAiphwHZVnz6/NuPCJRqyyMvE8G7HQpCC8HY1dJvx5Pg7AcCyy5AgihvyDrbkkUqAb0gbwjG26rkijyY9NiETSuaADOawD3Az5siEtLwoFrS5i9BnYRdwxWiqr9ZdQA0ubfOcKY2hFFJI8HCzYEDw6p24aFA4f4JSA3Zslhv5A1lEL3S3BPOkxQz1EjkDZs8JqfZxgb62+dKxYCucK+9ZOFXDiqKxzYULCnoujtU3xDgTc7uBoXf/zYXjB3yrhowWYAbwuDVc+GVcYms0hM6AYH5sL5SlpqfeLJHgwVtHpFsAPdtHVD77HWutVR8UvfpP1P3IE93lFYsjlWjgIW0YbFe4RpkmQx99CZXR/ob5Cjc0SO0BsRMF5cueNANtXTbBRJspirF+i0Hnx1KUQc+lgRW0RgSOBDKh9mls80hwpy+zlMksXowxEHYa1CCREL/jQ5tagEd2tBVkI3li6dTXk9sFtJshjRPfzOkzc3wG48OAM3pDa3tFFFJda4rIE/0lFH4KTJYjTf1y1RzMdZRxBw6iwHW4cUwbTrmzbWvVmaLGbxkzieiGchff/bANjHvypdSJ6autnorcbC1YltsuhnvHixIejaRTS5oYzFBSzQZZy6Oti9UzwrZZMFWXcOjz/jg/uPhVMw2Mc+monJwh4ki37RnSkmwCz1FKxtVjueoJXDRxOpcfj26xn04CkWTPRZkK572R2CjZIJ6f/oOcMwJAcw+6JY9s5BMmF7wU9sLRRzfWgP8qrQnJuOiLu5z+6VvmrLPE/QBGLxZwAPNJO6aGWULHK3XY1Nct1qpfydDijaXZ3s5Wk6mGTvFcuFvFWy6PHgRZK5hm0r4G7+X7JOzvxVZvAyNVXOxW0OjXaD5SqFEVEBLE2JSs79VtLvFBhFSqKl9Akx1kxjWCWGoQIOpPC0tbM6gVcZq1atWrVq1fqP9Q9Wkn4v31JdhQAAAABJRU5ErkJggg=="}]}, "id": "urn:uuid:3bc1a96a-3501-46ed-8f75-49612bbac257", "recipientProfile": {"publicKey": "ecdsa-koblitz-pubkey:mtr98kany9G1XYNU74pRnfBQmaCg2FZLmc", "name": "Eularia Landroth", "type": ["RecipientProfile", "Extension"]}} \ No newline at end of file diff --git a/work/unsigned_certificates/testcert.json b/work/unsigned_certificates/testcert.json new file mode 100644 index 00000000..d816a6ea --- /dev/null +++ b/work/unsigned_certificates/testcert.json @@ -0,0 +1,27 @@ +{ + "@context":[ + "https://www.w3.org/2018/credentials/v1", + "https://w3id.org/blockcerts/schema/3.0-alpha/context.json", + "https://www.w3.org/2018/credentials/examples/v1" + ], + "type":[ + "VerifiableCredential", + "BlockcertsCredential" + ], + "issuer":"https://raw.githubusercontent.com/AnthonyRonning/https-github.com-labnol-files/master/issuer-eth.json", + "issuanceDate":"2020-03-27T19:33:48.260278+00:00", + "id":"urn:uuid:ea856760-c1e9-4243-8e95-1a36c70f9615", + "credentialSubject":{ + "id":"ecdsa-koblitz-pubkey:mkwntSiQmc14H65YxwckLenxY3DsEpvFbe", + "alumniOf":{ + "id":"https://www.issuer.org" + } + }, + "proof":{ + "type":"MerkleProof2019", + "created":"2020-03-27T14:34:08.976994", + "proofValue":"zG7NYSuZNW6m3AqhgaP3kTHowuF5vwFNeVaNGisY5KQckwVZCf1Ze6QUeEghjGN1va4WVq9HBamzEFG4gq6AUxWrn6728njszRaXudPjGFbjAzNMpuRd6Bb27XzKzygXUEk4uPRPtKSr78Aibka5gMNmTf8LhWSsfNB6DdQVoUVc9tM1ctBy2jXY2sL5YDt1it66RhgRdirCaj8tUDhAfXMoe14DTyJvDDZgQmpYNtFqhrg7d71raPFPmo4AgHpFipGLs3NjxrSoBd29ex6Fae3rJAwHWHp173chNrXuvGDT99M2YxJqnxnr4LitxrGz39V57QrC5x4WqqpB1osMnKzfUHgtxetvzkKStuTzZsCLhFrZT7eSjrjy9wuU4er1dzk3nN23A1cDpWWFQM7mw79Rs8tv4U7As6r9wvUjm7VSRhfH9ur2qJxVbwBgEs7WDhmrbMeF7demEmKcU5Fq91JZRowXouyz6cGxWHb4QhLTHhtcQMx34", + "proofPurpose":"assertionMethod", + "verificationMethod":"ecdsa-koblitz-pubkey:0x7e30a37763e6Ba1fFeDE1750bBeFB4c60b17a1B3" + } +} From 5cdb14b4f7d60305c76e8ceacd2dc66e07676486 Mon Sep 17 00:00:00 2001 From: James Date: Fri, 24 Jul 2020 10:50:09 +0200 Subject: [PATCH 16/22] updated smart contract merkle proof anchors --- .../ethereum_sc/__init__.py | 5 +- cert_issuer/certificate_handlers.py | 7 +- cert_issuer/merkle_tree_generator.py | 77 ++++++++++++++----- ethereum_smart_contract_requirements.txt | 2 +- tests/test_merkle_tree_generator.py | 4 - work/blockchain_certificates/testcert.json | 1 + work/unsigned_certificates/testcert.json | 41 ++++------ 7 files changed, 82 insertions(+), 55 deletions(-) create mode 100644 work/blockchain_certificates/testcert.json diff --git a/cert_issuer/blockchain_handlers/ethereum_sc/__init__.py b/cert_issuer/blockchain_handlers/ethereum_sc/__init__.py index 3b9d026b..755c34d3 100644 --- a/cert_issuer/blockchain_handlers/ethereum_sc/__init__.py +++ b/cert_issuer/blockchain_handlers/ethereum_sc/__init__.py @@ -82,8 +82,9 @@ def instantiate_blockchain_handlers(app_config): chain = app_config.chain secret_manager = initialize_signer(app_config) certificate_batch_handler = CertificateBatchHandler(secret_manager=secret_manager, - certificate_handler=CertificateV2Handler(), - merkle_tree=MerkleTreeGenerator()) + certificate_handler=CertificateV3Handler(), + merkle_tree=MerkleTreeGenerator(), + config=app_config) if chain == Chain.mockchain: transaction_handler = MockTransactionHandler() # ethereum chains diff --git a/cert_issuer/certificate_handlers.py b/cert_issuer/certificate_handlers.py index 533c9cd8..b82dc050 100644 --- a/cert_issuer/certificate_handlers.py +++ b/cert_issuer/certificate_handlers.py @@ -47,9 +47,10 @@ def add_proof(self, certificate_json, merkle_proof): class CertificateBatchWebHandler(BatchHandler): + #Smart contract version has app_config as variable - removed in V3 def finish_batch(self, tx_id, chain, app_config): self.proof = [] - proof_generator = self.merkle_tree.get_proof_generator(tx_id, self.config.verification_method, chain) + proof_generator = self.merkle_tree.get_proof_generator(tx_id, app_config, self.config.verification_method, chain) for metadata in self.certificates_to_issue: proof = next(proof_generator) self.proof.append(self.certificate_handler.add_proof(metadata, proof)) @@ -119,8 +120,8 @@ def get_certificate_generator(self): data_to_issue = self.certificate_handler.get_byte_array_to_issue(metadata) yield data_to_issue - def finish_batch(self, tx_id, chain): - proof_generator = self.merkle_tree.get_proof_generator(tx_id, self.config.verification_method, chain) + def finish_batch(self, tx_id, chain, app_config): + proof_generator = self.merkle_tree.get_proof_generator(tx_id, app_config, self.config.verification_method, chain) for _, metadata in self.certificates_to_issue.items(): proof = next(proof_generator) self.certificate_handler.add_proof(metadata, proof) diff --git a/cert_issuer/merkle_tree_generator.py b/cert_issuer/merkle_tree_generator.py index ffa89c83..1451e20a 100644 --- a/cert_issuer/merkle_tree_generator.py +++ b/cert_issuer/merkle_tree_generator.py @@ -45,7 +45,7 @@ def get_blockchain_data(self): merkle_root = self.tree.get_merkle_root() return h2b(ensure_string(merkle_root)) - def get_proof_generator(self, tx_id, verification_method, chain=Chain.bitcoin_mainnet): + def get_proof_generator(self, tx_id, app_config, verification_method, chain=Chain.bitcoin_mainnet): """ Returns a generator (1-time iterator) of proofs in insertion order. @@ -57,33 +57,70 @@ def get_proof_generator(self, tx_id, verification_method, chain=Chain.bitcoin_ma for index in range(0, node_count): proof = self.tree.get_proof(index) proof2 = [] - + #Change back to smart contract proof & verification for p in proof: dict2 = dict() for key, value in p.items(): dict2[key] = ensure_string(value) proof2.append(dict2) target_hash = ensure_string(self.tree.get_leaf(index)) - mp2019 = MerkleProof2019() - merkle_json = { - "path": proof2, - "merkleRoot": root, - "targetHash": target_hash, - "anchors": [ - helpers.tx_to_blink(chain, tx_id) - ] + + """ + Add additional parameters for smart contract certification + """ + if app_config.issuing_method == "smart_contract": + from cert_issuer.blockchain_handlers.ethereum_sc.ens import ENSConnector + + ens = ENSConnector(app_config) + abi = ens.get_abi() + + mp2019 = MerkleProof2019() + merkle_json = { + "path": proof2, + "merkleRoot": root, + "targetHash": target_hash + } + logging.info('merkle_json: %s', str(merkle_json)) + + proof_value = mp2019.encode(merkle_json) + merkle_proof = { + "type": "MerkleProof2019", + "created": datetime.now().isoformat(), + "proofValue": proof_value.decode('utf8'), + "proofPurpose": "assertionMethod", + "verificationMethod": verification_method, + "anchors": [{ + #helpers.tx_to_blink(chain, tx_id), + "sourceId": to_source_id(tx_id, chain), + "type": "ETHSmartContract", + "contract_address": app_config.contract_address, + "ens_name": app_config.ens_name, + "contract_abi": abi + }] + } + else: + mp2019 = MerkleProof2019() + merkle_json = { + "path": proof2, + "merkleRoot": root, + "targetHash": target_hash, + "anchors": [ + helpers.tx_to_blink(chain, tx_id) + ] + } + logging.info('merkle_json: %s', str(merkle_json)) + + proof_value = mp2019.encode(merkle_json) + merkle_proof = { + "type": "MerkleProof2019", + "created": datetime.now().isoformat(), + "proofValue": proof_value.decode('utf8'), + "proofPurpose": "assertionMethod", + "verificationMethod": verification_method } - logging.info('merkle_json: %s', str(merkle_json)) - - proof_value = mp2019.encode(merkle_json) - merkle_proof = { - "type": "MerkleProof2019", - "created": datetime.now().isoformat(), - "proofValue": proof_value.decode('utf8'), - "proofPurpose": "assertionMethod", - "verificationMethod": verification_method - } + yield merkle_proof + def to_source_id(txid, chain): diff --git a/ethereum_smart_contract_requirements.txt b/ethereum_smart_contract_requirements.txt index c16ed4bb..297bae74 100644 --- a/ethereum_smart_contract_requirements.txt +++ b/ethereum_smart_contract_requirements.txt @@ -2,7 +2,7 @@ coincurve==7.1.0 web3>=5 - +lds-merkle-proof-2019 configargparse==0.12.0 cert-core>=2.1.9 cert-schema>=2.1.5 diff --git a/tests/test_merkle_tree_generator.py b/tests/test_merkle_tree_generator.py index caa6bd19..922b4938 100644 --- a/tests/test_merkle_tree_generator.py +++ b/tests/test_merkle_tree_generator.py @@ -47,11 +47,7 @@ def do_test_signature(self, chain, display_chain, type): merkle_tree_generator.populate(get_test_data_generator()) _ = merkle_tree_generator.get_blockchain_data() gen = merkle_tree_generator.get_proof_generator( -<<<<<<< HEAD - '8087c03e7b7bc9ca7b355de9d9d8165cc5c76307f337f0deb8a204d002c8e582', app_config, chain) -======= '8087c03e7b7bc9ca7b355de9d9d8165cc5c76307f337f0deb8a204d002c8e582', 'http://example.com', chain) ->>>>>>> 24a4f4f8ff202e51b77cc585b128ce9d862d49e2 p1 = next(gen) _ = next(gen) p3 = next(gen) diff --git a/work/blockchain_certificates/testcert.json b/work/blockchain_certificates/testcert.json new file mode 100644 index 00000000..dd347d2f --- /dev/null +++ b/work/blockchain_certificates/testcert.json @@ -0,0 +1 @@ +{"@context": ["https://www.w3.org/2018/credentials/v1"], "id": "urn:uuid:bbba8553-8ec1-445f-82c9-a57251dd731c", "type": ["VerifiableCredential", "BlockcertsCredential"], "issuer": "did:example:23adb1f712ebc6f1c276eba4dfa", "issuanceDate": "2010-01-01T19:33:24Z", "credentialSubject": {"id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "alumniOf": {"id": "did:example:c276e12ec21ebfeb1f712ebc6f1"}}, "proof": {"type": "MerkleProof2019", "created": "2020-07-24T08:47:20.600951", "proofValue": "z8LQoL6KgPhoogRUFwfZ1rLhC36BBqheSDxHGE2MVeJ72eAakygWPg7uPh5ai5NF7mXpnQP8s7b4pS5Bz1W35EBrXAHSF3vbasxikUa578zWkkrpuAk5d9AVgtpyyTBeuscD2tQzQ8U1hqqAjq382hYmZecknwpJuYyVhBQ4S3aL4uiu8fYNK7Yn3m6KMVG3f2nhpN", "proofPurpose": "assertionMethod", "verificationMethod": "url", "anchors": [{"sourceId": "0x862b3de090744a2e719b6598bd8e9362198e64e3c3523b68afc986708c2004ab", "type": "ETHSmartContract", "contract_address": "0x7aF019edb78B6932f796996a7Eaa1fC8d8e183CF", "ens_name": "mpdl.berg", "contract_abi": [{"inputs": [], "stateMutability": "nonpayable", "type": "constructor"}, {"anonymous": false, "inputs": [{"indexed": true, "internalType": "address", "name": "owner", "type": "address"}, {"indexed": true, "internalType": "address", "name": "approved", "type": "address"}, {"indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256"}], "name": "Approval", "type": "event"}, {"anonymous": false, "inputs": [{"indexed": true, "internalType": "address", "name": "owner", "type": "address"}, {"indexed": true, "internalType": "address", "name": "operator", "type": "address"}, {"indexed": false, "internalType": "bool", "name": "approved", "type": "bool"}], "name": "ApprovalForAll", "type": "event"}, {"anonymous": false, "inputs": [{"indexed": true, "internalType": "address", "name": "from", "type": "address"}, {"indexed": true, "internalType": "address", "name": "to", "type": "address"}, {"indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256"}], "name": "Transfer", "type": "event"}, {"inputs": [{"internalType": "address", "name": "to", "type": "address"}, {"internalType": "uint256", "name": "tokenId", "type": "uint256"}], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function"}, {"inputs": [{"internalType": "address", "name": "owner", "type": "address"}], "name": "balanceOf", "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}], "stateMutability": "view", "type": "function"}, {"inputs": [], "name": "baseURI", "outputs": [{"internalType": "string", "name": "", "type": "string"}], "stateMutability": "view", "type": "function"}, {"inputs": [{"internalType": "address", "name": "recipient", "type": "address"}, {"internalType": "string", "name": "tokenURI", "type": "string"}, {"internalType": "string", "name": "tokenHash", "type": "string"}], "name": "createCertificate", "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}], "stateMutability": "nonpayable", "type": "function"}, {"inputs": [{"internalType": "uint256", "name": "tokenId", "type": "uint256"}], "name": "getApproved", "outputs": [{"internalType": "address", "name": "", "type": "address"}], "stateMutability": "view", "type": "function"}, {"inputs": [{"internalType": "address", "name": "owner", "type": "address"}, {"internalType": "address", "name": "operator", "type": "address"}], "name": "isApprovedForAll", "outputs": [{"internalType": "bool", "name": "", "type": "bool"}], "stateMutability": "view", "type": "function"}, {"inputs": [], "name": "name", "outputs": [{"internalType": "string", "name": "", "type": "string"}], "stateMutability": "view", "type": "function"}, {"inputs": [{"internalType": "uint256", "name": "tokenId", "type": "uint256"}], "name": "ownerOf", "outputs": [{"internalType": "address", "name": "", "type": "address"}], "stateMutability": "view", "type": "function"}, {"inputs": [{"internalType": "address", "name": "from", "type": "address"}, {"internalType": "address", "name": "to", "type": "address"}, {"internalType": "uint256", "name": "tokenId", "type": "uint256"}], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function"}, {"inputs": [{"internalType": "address", "name": "from", "type": "address"}, {"internalType": "address", "name": "to", "type": "address"}, {"internalType": "uint256", "name": "tokenId", "type": "uint256"}, {"internalType": "bytes", "name": "_data", "type": "bytes"}], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function"}, {"inputs": [{"internalType": "address", "name": "operator", "type": "address"}, {"internalType": "bool", "name": "approved", "type": "bool"}], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function"}, {"inputs": [{"internalType": "bytes4", "name": "interfaceId", "type": "bytes4"}], "name": "supportsInterface", "outputs": [{"internalType": "bool", "name": "", "type": "bool"}], "stateMutability": "view", "type": "function"}, {"inputs": [], "name": "symbol", "outputs": [{"internalType": "string", "name": "", "type": "string"}], "stateMutability": "view", "type": "function"}, {"inputs": [{"internalType": "uint256", "name": "index", "type": "uint256"}], "name": "tokenByIndex", "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}], "stateMutability": "view", "type": "function"}, {"inputs": [{"internalType": "uint256", "name": "tokenId", "type": "uint256"}], "name": "tokenHash", "outputs": [{"internalType": "string", "name": "", "type": "string"}], "stateMutability": "view", "type": "function"}, {"inputs": [{"internalType": "address", "name": "owner", "type": "address"}, {"internalType": "uint256", "name": "index", "type": "uint256"}], "name": "tokenOfOwnerByIndex", "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}], "stateMutability": "view", "type": "function"}, {"inputs": [{"internalType": "uint256", "name": "tokenId", "type": "uint256"}], "name": "tokenURI", "outputs": [{"internalType": "string", "name": "", "type": "string"}], "stateMutability": "view", "type": "function"}, {"inputs": [], "name": "totalSupply", "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}], "stateMutability": "view", "type": "function"}, {"inputs": [{"internalType": "address", "name": "from", "type": "address"}, {"internalType": "address", "name": "to", "type": "address"}, {"internalType": "uint256", "name": "tokenId", "type": "uint256"}], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function"}]}]}} \ No newline at end of file diff --git a/work/unsigned_certificates/testcert.json b/work/unsigned_certificates/testcert.json index d816a6ea..96dd6abf 100644 --- a/work/unsigned_certificates/testcert.json +++ b/work/unsigned_certificates/testcert.json @@ -1,27 +1,18 @@ { - "@context":[ - "https://www.w3.org/2018/credentials/v1", - "https://w3id.org/blockcerts/schema/3.0-alpha/context.json", - "https://www.w3.org/2018/credentials/examples/v1" - ], - "type":[ - "VerifiableCredential", - "BlockcertsCredential" - ], - "issuer":"https://raw.githubusercontent.com/AnthonyRonning/https-github.com-labnol-files/master/issuer-eth.json", - "issuanceDate":"2020-03-27T19:33:48.260278+00:00", - "id":"urn:uuid:ea856760-c1e9-4243-8e95-1a36c70f9615", - "credentialSubject":{ - "id":"ecdsa-koblitz-pubkey:mkwntSiQmc14H65YxwckLenxY3DsEpvFbe", - "alumniOf":{ - "id":"https://www.issuer.org" - } - }, - "proof":{ - "type":"MerkleProof2019", - "created":"2020-03-27T14:34:08.976994", - "proofValue":"zG7NYSuZNW6m3AqhgaP3kTHowuF5vwFNeVaNGisY5KQckwVZCf1Ze6QUeEghjGN1va4WVq9HBamzEFG4gq6AUxWrn6728njszRaXudPjGFbjAzNMpuRd6Bb27XzKzygXUEk4uPRPtKSr78Aibka5gMNmTf8LhWSsfNB6DdQVoUVc9tM1ctBy2jXY2sL5YDt1it66RhgRdirCaj8tUDhAfXMoe14DTyJvDDZgQmpYNtFqhrg7d71raPFPmo4AgHpFipGLs3NjxrSoBd29ex6Fae3rJAwHWHp173chNrXuvGDT99M2YxJqnxnr4LitxrGz39V57QrC5x4WqqpB1osMnKzfUHgtxetvzkKStuTzZsCLhFrZT7eSjrjy9wuU4er1dzk3nN23A1cDpWWFQM7mw79Rs8tv4U7As6r9wvUjm7VSRhfH9ur2qJxVbwBgEs7WDhmrbMeF7demEmKcU5Fq91JZRowXouyz6cGxWHb4QhLTHhtcQMx34", - "proofPurpose":"assertionMethod", - "verificationMethod":"ecdsa-koblitz-pubkey:0x7e30a37763e6Ba1fFeDE1750bBeFB4c60b17a1B3" - } + "@context": [ + "https://www.w3.org/2018/credentials/v1" + ], + "id": "urn:uuid:bbba8553-8ec1-445f-82c9-a57251dd731c", + "type": [ + "VerifiableCredential", + "BlockcertsCredential" + ], + "issuer": "did:example:23adb1f712ebc6f1c276eba4dfa", + "issuanceDate": "2010-01-01T19:33:24Z", + "credentialSubject": { + "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", + "alumniOf": { + "id": "did:example:c276e12ec21ebfeb1f712ebc6f1" + } + } } From c3074b26f8c7cc1e20590a660a279286bab46bfe Mon Sep 17 00:00:00 2001 From: James Date: Thu, 30 Jul 2020 14:37:26 +0200 Subject: [PATCH 17/22] changed anchor structure in merkle tree --- cert_issuer/issue_certificates.py | 4 +-- cert_issuer/issuer.py | 12 ++++---- cert_issuer/merkle_tree_generator.py | 28 ++++++++++++------- data/blockchain_certificates/.placeholder | 0 ethereum_smart_contract_requirements.txt | 2 +- .../35b6c347-51e4-4881-96bf-287ffbccdfce.json | 1 + .../7f2e45da-be39-4f4d-86ed-15ea4d0512bf.json | 1 + work/blockchain_certificates/testcert.json | 1 - .../35b6c347-51e4-4881-96bf-287ffbccdfce.json | 1 + .../7f2e45da-be39-4f4d-86ed-15ea4d0512bf.json | 1 + work/unsigned_certificates/testcert.json | 18 ------------ 11 files changed, 31 insertions(+), 38 deletions(-) mode change 100755 => 100644 data/blockchain_certificates/.placeholder create mode 100644 work/blockchain_certificates/35b6c347-51e4-4881-96bf-287ffbccdfce.json create mode 100644 work/blockchain_certificates/7f2e45da-be39-4f4d-86ed-15ea4d0512bf.json delete mode 100644 work/blockchain_certificates/testcert.json create mode 100644 work/unsigned_certificates/35b6c347-51e4-4881-96bf-287ffbccdfce.json create mode 100644 work/unsigned_certificates/7f2e45da-be39-4f4d-86ed-15ea4d0512bf.json delete mode 100644 work/unsigned_certificates/testcert.json diff --git a/cert_issuer/issue_certificates.py b/cert_issuer/issue_certificates.py index feeb4345..4b506e4b 100644 --- a/cert_issuer/issue_certificates.py +++ b/cert_issuer/issue_certificates.py @@ -11,7 +11,7 @@ sys.exit(1) -def issue(app_config, certificate_batch_handler, transaction_handler): +def issue(app_config, certificate_batch_handler, transaction_handler, recipient_address): certificate_batch_handler.pre_batch_actions(app_config) transaction_handler.ensure_balance() @@ -20,7 +20,7 @@ def issue(app_config, certificate_batch_handler, transaction_handler): certificate_batch_handler=certificate_batch_handler, transaction_handler=transaction_handler, max_retry=app_config.max_retry) - tx_id = issuer.issue(app_config.chain, app_config) + tx_id = issuer.issue(app_config.chain, app_config, recipient_address) certificate_batch_handler.post_batch_actions(app_config) return tx_id diff --git a/cert_issuer/issuer.py b/cert_issuer/issuer.py index 44fc19d5..77141983 100644 --- a/cert_issuer/issuer.py +++ b/cert_issuer/issuer.py @@ -15,20 +15,20 @@ def __init__(self, certificate_batch_handler, transaction_handler, max_retry=MAX self.transaction_handler = transaction_handler self.max_retry = max_retry - def issue(self, chain, app_config): + def issue(self, chain, app_config, recipient_address): """ Issue the certificates on the blockchain :return: """ blockchain_bytes = self.certificate_batch_handler.prepare_batch() - #Change to parameters that get passed in app.py TODO - recipient_address = Web3.toChecksumAddress('0xaA84378fA41da83a9B6523bA46E45A664FbEBFC8') + + recipient_address = Web3.toChecksumAddress(recipient_address) print(is_checksum_address(recipient_address)) - #change token_uri address + #change token_uri address token_uri = "https://bloxberg.org" - blockchain_bytes = str(blockchain_bytes, 'latin-1') - + #blockchain_bytes = str(blockchain_bytes, 'latin-1') + blockchain_bytes = blockchain_bytes.hex() for attempt_number in range(0, self.max_retry): try: txid = self.transaction_handler.issue_transaction(recipient_address, token_uri, blockchain_bytes, app_config) diff --git a/cert_issuer/merkle_tree_generator.py b/cert_issuer/merkle_tree_generator.py index 1451e20a..f96af55a 100644 --- a/cert_issuer/merkle_tree_generator.py +++ b/cert_issuer/merkle_tree_generator.py @@ -78,7 +78,11 @@ def get_proof_generator(self, tx_id, app_config, verification_method, chain=Chai merkle_json = { "path": proof2, "merkleRoot": root, - "targetHash": target_hash + "targetHash": target_hash, + #Possibly adjust anchor to merkle_proof dict + "anchors": [ + helpers.tx_to_blink(chain, tx_id) + ] } logging.info('merkle_json: %s', str(merkle_json)) @@ -88,16 +92,20 @@ def get_proof_generator(self, tx_id, app_config, verification_method, chain=Chai "created": datetime.now().isoformat(), "proofValue": proof_value.decode('utf8'), "proofPurpose": "assertionMethod", - "verificationMethod": verification_method, - "anchors": [{ - #helpers.tx_to_blink(chain, tx_id), - "sourceId": to_source_id(tx_id, chain), - "type": "ETHSmartContract", - "contract_address": app_config.contract_address, - "ens_name": app_config.ens_name, - "contract_abi": abi - }] + "verificationMethod": verification_method } + #Uncomment after checking verification + """ + "anchors": [{ + #helpers.tx_to_blink(chain, tx_id), + "sourceId": to_source_id(tx_id, chain), + "type": "ETHSmartContract", + "contract_address": app_config.contract_address, + "ens_name": app_config.ens_name, + "contract_abi": abi + }] + """ + else: mp2019 = MerkleProof2019() merkle_json = { diff --git a/data/blockchain_certificates/.placeholder b/data/blockchain_certificates/.placeholder old mode 100755 new mode 100644 diff --git a/ethereum_smart_contract_requirements.txt b/ethereum_smart_contract_requirements.txt index 297bae74..7a96b013 100644 --- a/ethereum_smart_contract_requirements.txt +++ b/ethereum_smart_contract_requirements.txt @@ -1,7 +1,7 @@ coincurve==7.1.0 web3>=5 - +ipfshttpclient lds-merkle-proof-2019 configargparse==0.12.0 cert-core>=2.1.9 diff --git a/work/blockchain_certificates/35b6c347-51e4-4881-96bf-287ffbccdfce.json b/work/blockchain_certificates/35b6c347-51e4-4881-96bf-287ffbccdfce.json new file mode 100644 index 00000000..8fa6a469 --- /dev/null +++ b/work/blockchain_certificates/35b6c347-51e4-4881-96bf-287ffbccdfce.json @@ -0,0 +1 @@ +{"@context": ["https://www.w3.org/2018/credentials/v1", "https://w3id.org/blockcerts/schema/3.0-alpha/context.json"], "id": "urn:uuid:35b6c347-51e4-4881-96bf-287ffbccdfce", "type": ["VerifiableCredential", "BlockcertsCredential"], "issuer": "https://raw.githubusercontent.com/AnthonyRonning/https-github.com-labnol-files/master/issuer-eth.json", "issuanceDate": "2020-07-30T12:04:01.829304+00:00", "credentialSubject": {"id": "did:key:z6Mkq3L1jEDDZ5R7eT523FMLxC4k6MCpzqD7ff1CrkWpoJwM", "alumniOf": {"id": "https://www.issuer.org"}}, "proof": {"type": "MerkleProof2019", "created": "2020-07-30T12:36:26.247132", "proofValue": "z2LuLBVSfogU8YhUjfqryx2c8kYrVZ6jAJz2XGxy12hmXpzP2u1h5aWhceYdMwZQM9YqD1Kk7qW3WLArFSp1xgSGquLRThhk15ou5FkXtEDHtGCV4HE4aLxYjcfQX8DnS5GM1gA9npS9SjQ5UDaHMdh8qvqQA4gPumEMWLhVavs7PqtsqJpaDozD7XAkyv1RVfQVBW9EcJsF22KBAWKZvrUnU2jhzGBojt19Av2AsEp7rJM6HeW6dPRx3cKKmSEZqNUCogWBuoUNhsMiD3hmo9dBdHTcnnDhgrcCQ2hjgfa98ftN6NeV25TTe7nHCqLyQ9yWaV2ShkKg6ah7ma6347h3eEmcbkPqSctxZQ6dMQoXqRDAcmM66JYnnWttWXwAGhMPYGqU33Ys5Uwr1qvGfb", "proofPurpose": "assertionMethod", "verificationMethod": "ecdsa-koblitz-pubkey:0xD748BF41264b906093460923169643f45BDbC32e"}} \ No newline at end of file diff --git a/work/blockchain_certificates/7f2e45da-be39-4f4d-86ed-15ea4d0512bf.json b/work/blockchain_certificates/7f2e45da-be39-4f4d-86ed-15ea4d0512bf.json new file mode 100644 index 00000000..b4ce0e12 --- /dev/null +++ b/work/blockchain_certificates/7f2e45da-be39-4f4d-86ed-15ea4d0512bf.json @@ -0,0 +1 @@ +{"@context": ["https://www.w3.org/2018/credentials/v1", "https://w3id.org/blockcerts/schema/3.0-alpha/context.json"], "id": "urn:uuid:7f2e45da-be39-4f4d-86ed-15ea4d0512bf", "type": ["VerifiableCredential", "BlockcertsCredential"], "issuer": "https://raw.githubusercontent.com/AnthonyRonning/https-github.com-labnol-files/master/issuer-eth.json", "issuanceDate": "2020-07-30T12:04:01.829304+00:00", "credentialSubject": {"id": "did:key:z6Mkq3L1jEDDZ5R7eT523FMLxC4k6MCpzqD7ff1CrkWpoJwM", "alumniOf": {"id": "https://www.issuer.org"}}, "proof": {"type": "MerkleProof2019", "created": "2020-07-30T12:36:26.404988", "proofValue": "z2LuLBVSfnVzaQtw5CHiYTk8VQf8pSv2ppMr3tnknHhNQFFDTA1KMRa8kLyeXj1MogtTaDdCmfd74QBzKff9vcJsHvxYmbUQPBqdAcpfD5oM8zo8XiXGQd9eXfPh1wkNhwngkt2XGDKP2T2fewubVZRAyNDBFgKwuUThraP8KDvzEjMXyxkjA69Y9ukXTR25FL7znrkbsHy2yP13WV87RkpmNb1NQuG8sWkV4RAu9aXh79RoSmFz8Ty91HPXRkc7TwesgqHQMLvFMeZY3ZoLA3fvzfNY3xaUiPcuceUxdmjuC2i8NQZuf6j84YeZT3aY2gsMsMtgdgJxqWH3GqPwSEQu1SFZ6dmhvDF5kmHUkPD3esGtXiGc898Xn2f9RtL4b5kihT3oFqFfAffPzSDN9F", "proofPurpose": "assertionMethod", "verificationMethod": "ecdsa-koblitz-pubkey:0xD748BF41264b906093460923169643f45BDbC32e"}} \ No newline at end of file diff --git a/work/blockchain_certificates/testcert.json b/work/blockchain_certificates/testcert.json deleted file mode 100644 index dd347d2f..00000000 --- a/work/blockchain_certificates/testcert.json +++ /dev/null @@ -1 +0,0 @@ -{"@context": ["https://www.w3.org/2018/credentials/v1"], "id": "urn:uuid:bbba8553-8ec1-445f-82c9-a57251dd731c", "type": ["VerifiableCredential", "BlockcertsCredential"], "issuer": "did:example:23adb1f712ebc6f1c276eba4dfa", "issuanceDate": "2010-01-01T19:33:24Z", "credentialSubject": {"id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "alumniOf": {"id": "did:example:c276e12ec21ebfeb1f712ebc6f1"}}, "proof": {"type": "MerkleProof2019", "created": "2020-07-24T08:47:20.600951", "proofValue": "z8LQoL6KgPhoogRUFwfZ1rLhC36BBqheSDxHGE2MVeJ72eAakygWPg7uPh5ai5NF7mXpnQP8s7b4pS5Bz1W35EBrXAHSF3vbasxikUa578zWkkrpuAk5d9AVgtpyyTBeuscD2tQzQ8U1hqqAjq382hYmZecknwpJuYyVhBQ4S3aL4uiu8fYNK7Yn3m6KMVG3f2nhpN", "proofPurpose": "assertionMethod", "verificationMethod": "url", "anchors": [{"sourceId": "0x862b3de090744a2e719b6598bd8e9362198e64e3c3523b68afc986708c2004ab", "type": "ETHSmartContract", "contract_address": "0x7aF019edb78B6932f796996a7Eaa1fC8d8e183CF", "ens_name": "mpdl.berg", "contract_abi": [{"inputs": [], "stateMutability": "nonpayable", "type": "constructor"}, {"anonymous": false, "inputs": [{"indexed": true, "internalType": "address", "name": "owner", "type": "address"}, {"indexed": true, "internalType": "address", "name": "approved", "type": "address"}, {"indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256"}], "name": "Approval", "type": "event"}, {"anonymous": false, "inputs": [{"indexed": true, "internalType": "address", "name": "owner", "type": "address"}, {"indexed": true, "internalType": "address", "name": "operator", "type": "address"}, {"indexed": false, "internalType": "bool", "name": "approved", "type": "bool"}], "name": "ApprovalForAll", "type": "event"}, {"anonymous": false, "inputs": [{"indexed": true, "internalType": "address", "name": "from", "type": "address"}, {"indexed": true, "internalType": "address", "name": "to", "type": "address"}, {"indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256"}], "name": "Transfer", "type": "event"}, {"inputs": [{"internalType": "address", "name": "to", "type": "address"}, {"internalType": "uint256", "name": "tokenId", "type": "uint256"}], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function"}, {"inputs": [{"internalType": "address", "name": "owner", "type": "address"}], "name": "balanceOf", "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}], "stateMutability": "view", "type": "function"}, {"inputs": [], "name": "baseURI", "outputs": [{"internalType": "string", "name": "", "type": "string"}], "stateMutability": "view", "type": "function"}, {"inputs": [{"internalType": "address", "name": "recipient", "type": "address"}, {"internalType": "string", "name": "tokenURI", "type": "string"}, {"internalType": "string", "name": "tokenHash", "type": "string"}], "name": "createCertificate", "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}], "stateMutability": "nonpayable", "type": "function"}, {"inputs": [{"internalType": "uint256", "name": "tokenId", "type": "uint256"}], "name": "getApproved", "outputs": [{"internalType": "address", "name": "", "type": "address"}], "stateMutability": "view", "type": "function"}, {"inputs": [{"internalType": "address", "name": "owner", "type": "address"}, {"internalType": "address", "name": "operator", "type": "address"}], "name": "isApprovedForAll", "outputs": [{"internalType": "bool", "name": "", "type": "bool"}], "stateMutability": "view", "type": "function"}, {"inputs": [], "name": "name", "outputs": [{"internalType": "string", "name": "", "type": "string"}], "stateMutability": "view", "type": "function"}, {"inputs": [{"internalType": "uint256", "name": "tokenId", "type": "uint256"}], "name": "ownerOf", "outputs": [{"internalType": "address", "name": "", "type": "address"}], "stateMutability": "view", "type": "function"}, {"inputs": [{"internalType": "address", "name": "from", "type": "address"}, {"internalType": "address", "name": "to", "type": "address"}, {"internalType": "uint256", "name": "tokenId", "type": "uint256"}], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function"}, {"inputs": [{"internalType": "address", "name": "from", "type": "address"}, {"internalType": "address", "name": "to", "type": "address"}, {"internalType": "uint256", "name": "tokenId", "type": "uint256"}, {"internalType": "bytes", "name": "_data", "type": "bytes"}], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function"}, {"inputs": [{"internalType": "address", "name": "operator", "type": "address"}, {"internalType": "bool", "name": "approved", "type": "bool"}], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function"}, {"inputs": [{"internalType": "bytes4", "name": "interfaceId", "type": "bytes4"}], "name": "supportsInterface", "outputs": [{"internalType": "bool", "name": "", "type": "bool"}], "stateMutability": "view", "type": "function"}, {"inputs": [], "name": "symbol", "outputs": [{"internalType": "string", "name": "", "type": "string"}], "stateMutability": "view", "type": "function"}, {"inputs": [{"internalType": "uint256", "name": "index", "type": "uint256"}], "name": "tokenByIndex", "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}], "stateMutability": "view", "type": "function"}, {"inputs": [{"internalType": "uint256", "name": "tokenId", "type": "uint256"}], "name": "tokenHash", "outputs": [{"internalType": "string", "name": "", "type": "string"}], "stateMutability": "view", "type": "function"}, {"inputs": [{"internalType": "address", "name": "owner", "type": "address"}, {"internalType": "uint256", "name": "index", "type": "uint256"}], "name": "tokenOfOwnerByIndex", "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}], "stateMutability": "view", "type": "function"}, {"inputs": [{"internalType": "uint256", "name": "tokenId", "type": "uint256"}], "name": "tokenURI", "outputs": [{"internalType": "string", "name": "", "type": "string"}], "stateMutability": "view", "type": "function"}, {"inputs": [], "name": "totalSupply", "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}], "stateMutability": "view", "type": "function"}, {"inputs": [{"internalType": "address", "name": "from", "type": "address"}, {"internalType": "address", "name": "to", "type": "address"}, {"internalType": "uint256", "name": "tokenId", "type": "uint256"}], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function"}]}]}} \ No newline at end of file diff --git a/work/unsigned_certificates/35b6c347-51e4-4881-96bf-287ffbccdfce.json b/work/unsigned_certificates/35b6c347-51e4-4881-96bf-287ffbccdfce.json new file mode 100644 index 00000000..425f6de7 --- /dev/null +++ b/work/unsigned_certificates/35b6c347-51e4-4881-96bf-287ffbccdfce.json @@ -0,0 +1 @@ +{"@context": ["https://www.w3.org/2018/credentials/v1", "https://w3id.org/blockcerts/schema/3.0-alpha/context.json"], "id": "urn:uuid:35b6c347-51e4-4881-96bf-287ffbccdfce", "type": ["VerifiableCredential", "BlockcertsCredential"], "issuer": "https://raw.githubusercontent.com/AnthonyRonning/https-github.com-labnol-files/master/issuer-eth.json", "issuanceDate": "2020-07-30T12:04:01.829304+00:00", "credentialSubject": {"id": "did:key:z6Mkq3L1jEDDZ5R7eT523FMLxC4k6MCpzqD7ff1CrkWpoJwM", "alumniOf": {"id": "https://www.issuer.org"}}} \ No newline at end of file diff --git a/work/unsigned_certificates/7f2e45da-be39-4f4d-86ed-15ea4d0512bf.json b/work/unsigned_certificates/7f2e45da-be39-4f4d-86ed-15ea4d0512bf.json new file mode 100644 index 00000000..76097d1e --- /dev/null +++ b/work/unsigned_certificates/7f2e45da-be39-4f4d-86ed-15ea4d0512bf.json @@ -0,0 +1 @@ +{"@context": ["https://www.w3.org/2018/credentials/v1", "https://w3id.org/blockcerts/schema/3.0-alpha/context.json"], "id": "urn:uuid:7f2e45da-be39-4f4d-86ed-15ea4d0512bf", "type": ["VerifiableCredential", "BlockcertsCredential"], "issuer": "https://raw.githubusercontent.com/AnthonyRonning/https-github.com-labnol-files/master/issuer-eth.json", "issuanceDate": "2020-07-30T12:04:01.829304+00:00", "credentialSubject": {"id": "did:key:z6Mkq3L1jEDDZ5R7eT523FMLxC4k6MCpzqD7ff1CrkWpoJwM", "alumniOf": {"id": "https://www.issuer.org"}}} \ No newline at end of file diff --git a/work/unsigned_certificates/testcert.json b/work/unsigned_certificates/testcert.json deleted file mode 100644 index 96dd6abf..00000000 --- a/work/unsigned_certificates/testcert.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "@context": [ - "https://www.w3.org/2018/credentials/v1" - ], - "id": "urn:uuid:bbba8553-8ec1-445f-82c9-a57251dd731c", - "type": [ - "VerifiableCredential", - "BlockcertsCredential" - ], - "issuer": "did:example:23adb1f712ebc6f1c276eba4dfa", - "issuanceDate": "2010-01-01T19:33:24Z", - "credentialSubject": { - "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", - "alumniOf": { - "id": "did:example:c276e12ec21ebfeb1f712ebc6f1" - } - } -} From 2459d4b0e6adaac7e822cddb018853638fed93d4 Mon Sep 17 00:00:00 2001 From: James Date: Wed, 12 Aug 2020 10:27:33 +0200 Subject: [PATCH 18/22] updated bloxberg as blink --- README.md | 8 ++++---- cert_issuer/blockchain_handlers/ethereum/__init__.py | 2 +- .../blockchain_handlers/ethereum/connectors.py | 4 ++-- cert_issuer/blockchain_handlers/ethereum/signer.py | 2 +- .../blockchain_handlers/ethereum_sc/__init__.py | 2 +- cert_issuer/blockchain_handlers/ethereum_sc/ens.py | 4 ++-- cert_issuer/blockchain_handlers/ethereum_sc/signer.py | 2 +- cert_issuer/config.py | 11 ++++++----- cert_issuer/helpers.py | 4 ++-- cert_issuer/issue_certificates.py | 2 +- cert_issuer/merkle_tree_generator.py | 2 +- docs/ethereum_smart_contract.md | 4 ++-- ethereum_smart_contract_requirements.txt | 7 +++---- requirements.txt | 2 +- .../15186643-ec29-4055-bebc-aa464d928849.json | 1 + .../1f0d1af0-4c14-4836-ade3-0df9facb3ced.json | 1 + .../35b6c347-51e4-4881-96bf-287ffbccdfce.json | 1 - .../7f2e45da-be39-4f4d-86ed-15ea4d0512bf.json | 1 - .../a2a99a9e-457b-4de9-930b-3146442275a8.json | 1 + .../c7494b9c-cc9c-4740-b7b8-9037f3cd64ec.json | 1 + ...json => 15186643-ec29-4055-bebc-aa464d928849.json} | 2 +- ...json => 1f0d1af0-4c14-4836-ade3-0df9facb3ced.json} | 2 +- .../a2a99a9e-457b-4de9-930b-3146442275a8.json | 1 + .../c7494b9c-cc9c-4740-b7b8-9037f3cd64ec.json | 1 + 24 files changed, 36 insertions(+), 32 deletions(-) create mode 100644 work/blockchain_certificates/15186643-ec29-4055-bebc-aa464d928849.json create mode 100644 work/blockchain_certificates/1f0d1af0-4c14-4836-ade3-0df9facb3ced.json delete mode 100644 work/blockchain_certificates/35b6c347-51e4-4881-96bf-287ffbccdfce.json delete mode 100644 work/blockchain_certificates/7f2e45da-be39-4f4d-86ed-15ea4d0512bf.json create mode 100644 work/blockchain_certificates/a2a99a9e-457b-4de9-930b-3146442275a8.json create mode 100644 work/blockchain_certificates/c7494b9c-cc9c-4740-b7b8-9037f3cd64ec.json rename work/unsigned_certificates/{35b6c347-51e4-4881-96bf-287ffbccdfce.json => 15186643-ec29-4055-bebc-aa464d928849.json} (63%) rename work/unsigned_certificates/{7f2e45da-be39-4f4d-86ed-15ea4d0512bf.json => 1f0d1af0-4c14-4836-ade3-0df9facb3ced.json} (63%) create mode 100644 work/unsigned_certificates/a2a99a9e-457b-4de9-930b-3146442275a8.json create mode 100644 work/unsigned_certificates/c7494b9c-cc9c-4740-b7b8-9037f3cd64ec.json diff --git a/README.md b/README.md index 6b3ed604..d884bdac 100644 --- a/README.md +++ b/README.md @@ -223,7 +223,7 @@ If you are using a local bitcoin node, you can create addresses by command line. ### Create an Ethereum issuing address -Currently Blockcerts just supports issuing to the Ropsten Ethereum testnet, and the Ethereum mainnet. In Ethereum a public/private key pair is the same accross all test/main networks. +Currently Blockcerts just supports issuing to the Bloxberg Ethereum testnet, and the Ethereum mainnet. In Ethereum a public/private key pair is the same accross all test/main networks. __These steps involve storing secure information on a USB. Do not plug in this USB when your computer's wifi is on.__ @@ -268,7 +268,7 @@ issuing_address = # issuer URL / DID verification_method = -chain= +chain= usb_name = key_file = @@ -301,7 +301,7 @@ python cert-issuer -c conf.ini - The Blockchain Certificates will be located in data/blockchain_certificates. - If you ran in the mainnet or testnet mode, you can also see your transaction on a live blockchain explorer. - For Bitcoin, Blockr.io has explorers for both [testnet](https://tbtc.blockr.io/) and [mainnet](https://blockr.io/). - - For Ethereum, Etherscan has explorers for [ropsten](https://ropsten.etherscan.io/) and [mainnet](https://etherscan.io/) + - For Ethereum, Etherscan has explorers for [bloxberg](https://bloxberg.etherscan.io/) and [mainnet](https://etherscan.io/) - The transaction id is located in the Blockchain Certificate under `signature.anchors[0].sourceId` @@ -400,7 +400,7 @@ For an Ethereum transaction, you'll need to use a different explorer, which migh output. To view a transaction in a web browser, you might try something like this: - Ethereum Mainnet: https://etherscan.io/tx/0xf537d81667c8011e34e1f450e18fd1c5a8a10c770cd0acdc91a79746696f36a3 -- Ethereum Ropsten (testnet): https://ropsten.etherscan.io/tx/0xf537d81667c8011e34e1f450e18fd1c5a8a10c770cd0acdc91a79746696f36a3 +- Ethereum Bloxberg (testnet): https://bloxberg.etherscan.io/tx/0xf537d81667c8011e34e1f450e18fd1c5a8a10c770cd0acdc91a79746696f36a3 ## Mac scrypt problems diff --git a/cert_issuer/blockchain_handlers/ethereum/__init__.py b/cert_issuer/blockchain_handlers/ethereum/__init__.py index 6fbac259..5d2d3291 100644 --- a/cert_issuer/blockchain_handlers/ethereum/__init__.py +++ b/cert_issuer/blockchain_handlers/ethereum/__init__.py @@ -60,7 +60,7 @@ def instantiate_blockchain_handlers(app_config): if chain == Chain.mockchain: transaction_handler = MockTransactionHandler() # ethereum chains - elif chain == Chain.ethereum_mainnet or chain == Chain.ethereum_ropsten: + elif chain == Chain.ethereum_mainnet or chain == Chain.ethereum_bloxberg: cost_constants = EthereumTransactionCostConstants(app_config.gas_price, app_config.gas_limit) connector = EthereumServiceProviderConnector(chain, app_config.api_token) transaction_handler = EthereumTransactionHandler(connector, cost_constants, secret_manager, diff --git a/cert_issuer/blockchain_handlers/ethereum/connectors.py b/cert_issuer/blockchain_handlers/ethereum/connectors.py index cff82a4e..89b7ee6f 100644 --- a/cert_issuer/blockchain_handlers/ethereum/connectors.py +++ b/cert_issuer/blockchain_handlers/ethereum/connectors.py @@ -224,11 +224,11 @@ def get_address_nonce(self, address, api_token): eth_provider_list.append(MyEtherWalletBroadcaster('https://api.myetherwallet.com/eth')) connectors[Chain.ethereum_mainnet] = eth_provider_list -# Configure Ethereum Ropsten testnet connectors +# Configure Ethereum Bloxberg testnet connectors rop_provider_list = [] rop_provider_list.append(EtherscanBroadcaster('https://blockexplorer.bloxberg.org/api')) rop_provider_list.append(MyEtherWalletBroadcaster('https://api.myetherwallet.com/rop')) -connectors[Chain.ethereum_ropsten] = rop_provider_list +connectors[Chain.ethereum_bloxberg] = rop_provider_list def get_providers_for_chain(chain, local_node=False): diff --git a/cert_issuer/blockchain_handlers/ethereum/signer.py b/cert_issuer/blockchain_handlers/ethereum/signer.py index fe6358d2..e6619f6f 100644 --- a/cert_issuer/blockchain_handlers/ethereum/signer.py +++ b/cert_issuer/blockchain_handlers/ethereum/signer.py @@ -12,7 +12,7 @@ def __init__(self, ethereum_chain): # Netcode ensures replay protection (see EIP155) if ethereum_chain.external_display_value == 'ethereumMainnet': self.netcode = 1 - elif ethereum_chain.external_display_value == 'ethereumRopsten': + elif ethereum_chain.external_display_value == 'ethereumBloxberg': self.netcode = 3 else: self.netcode = None diff --git a/cert_issuer/blockchain_handlers/ethereum_sc/__init__.py b/cert_issuer/blockchain_handlers/ethereum_sc/__init__.py index 755c34d3..cdd7eb79 100644 --- a/cert_issuer/blockchain_handlers/ethereum_sc/__init__.py +++ b/cert_issuer/blockchain_handlers/ethereum_sc/__init__.py @@ -88,7 +88,7 @@ def instantiate_blockchain_handlers(app_config): if chain == Chain.mockchain: transaction_handler = MockTransactionHandler() # ethereum chains - elif chain == Chain.ethereum_mainnet or chain == Chain.ethereum_ropsten: + elif chain == Chain.ethereum_mainnet or chain == Chain.ethereum_bloxberg: cost_constants = EthereumTransactionCostConstants(app_config.gas_price, app_config.gas_limit) connector = instantiate_connector(app_config, cost_constants) transaction_handler = EthereumSCTransactionHandler(connector, cost_constants, secret_manager, diff --git a/cert_issuer/blockchain_handlers/ethereum_sc/ens.py b/cert_issuer/blockchain_handlers/ethereum_sc/ens.py index 9edf1e76..7b62834e 100644 --- a/cert_issuer/blockchain_handlers/ethereum_sc/ens.py +++ b/cert_issuer/blockchain_handlers/ethereum_sc/ens.py @@ -11,8 +11,8 @@ def __init__(self, app_config): self._w3 = Web3(HTTPProvider()) def get_registry_address(self): - if self.app_config.chain == Chain.ethereum_ropsten: - addr = self.app_config.ens_registry_ropsten + if self.app_config.chain == Chain.ethereum_bloxberg: + addr = self.app_config.ens_registry_bloxberg else: addr = self.app_config.ens_registry_mainnet diff --git a/cert_issuer/blockchain_handlers/ethereum_sc/signer.py b/cert_issuer/blockchain_handlers/ethereum_sc/signer.py index 61a107aa..69c54584 100644 --- a/cert_issuer/blockchain_handlers/ethereum_sc/signer.py +++ b/cert_issuer/blockchain_handlers/ethereum_sc/signer.py @@ -13,7 +13,7 @@ def __init__(self, ethereum_chain): # Netcode ensures replay protection (see EIP155) if ethereum_chain.external_display_value == 'ethereumMainnet': self.netcode = 8995 - elif ethereum_chain.external_display_value == 'ethereumRopsten': + elif ethereum_chain.external_display_value == 'ethereumBloxberg': self.netcode = 8995 else: self.netcode = None diff --git a/cert_issuer/config.py b/cert_issuer/config.py index 4a80200e..aa9790c7 100644 --- a/cert_issuer/config.py +++ b/cert_issuer/config.py @@ -53,7 +53,7 @@ def add_arguments(p): p.add_argument('--max_retry', default=10, type=int, help='Maximum attempts to retry transaction on failure', env_var='MAX_RETRY') p.add_argument('--chain', default='bitcoin_regtest', help=('Which chain to use. Default is bitcoin_regtest (which is how the docker container is configured). Other options are ' - 'bitcoin_testnet bitcoin_mainnet, mockchain, ethereum_mainnet, ethereum_ropsten'), env_var='CHAIN') + 'bitcoin_testnet bitcoin_mainnet, mockchain, ethereum_mainnet, ethereum_bloxberg'), env_var='CHAIN') p.add_argument('--safe_mode', dest='safe_mode', default=True, action='store_true', help='Used to make sure your private key is not plugged in with the wifi.', env_var='SAFE_MODE') @@ -90,10 +90,10 @@ def add_arguments(p): help='ens_name that points to the smart contract to which to issue', env_var='ENS_NAME') p.add_argument('--revocation_list_file', required=False, help='list of certificates or batches to be revokes', env_var='REVOCATION_LIST_FILE') - p.add_argument('--ens_registry_ropsten', required=False, default="0xde68Fcf6814D81Ee910bf35703622571718E07a7", - help='ENS registry address on ropsten', env_var='ENS_RESGISTRY_ROPSTEN') + p.add_argument('--ens_registry_bloxberg', required=False, default="0xde68Fcf6814D81Ee910bf35703622571718E07a7", + help='ENS registry address on bloxberg', env_var='ENS_RESGISTRY_BLOXBERG') p.add_argument('--ens_registry_mainnet', required=False, default="0xde68Fcf6814D81Ee910bf35703622571718E07a7", - help='ENS registry address on ropsten', env_var='ENS_RESGISTRY_MAINNET') + help='ENS registry address on bloxberg', env_var='ENS_RESGISTRY_MAINNET') def get_config(): configure_logger() @@ -110,11 +110,12 @@ def get_config(): parsed_config.chain = Chain.parse_from_chain(parsed_config.chain) # ensure it's a supported chain + """ if parsed_config.chain.blockchain_type != BlockchainType.bitcoin and \ parsed_config.chain.blockchain_type != BlockchainType.ethereum and \ parsed_config.chain.blockchain_type != BlockchainType.mock: raise UnknownChainError(parsed_config.chain.name) - + """ logging.info('This run will try to issue on the %s chain', parsed_config.chain.name) if parsed_config.chain.blockchain_type == BlockchainType.bitcoin: diff --git a/cert_issuer/helpers.py b/cert_issuer/helpers.py index 91718b4b..83953ec1 100644 --- a/cert_issuer/helpers.py +++ b/cert_issuer/helpers.py @@ -109,8 +109,8 @@ def tx_to_blink(chain, tx_id): blink += 'btc:testnet:' elif chain == Chain.bitcoin_mainnet: blink += 'btc:mainnet:' - elif chain == Chain.ethereum_ropsten: - blink += 'eth:ropsten:' + elif chain == Chain.ethereum_bloxberg: + blink += 'eth:bloxberg:' elif chain == Chain.ethereum_mainnet: blink += 'eth:mainnet:' elif chain == Chain.mockchain: diff --git a/cert_issuer/issue_certificates.py b/cert_issuer/issue_certificates.py index 4b506e4b..deda492a 100644 --- a/cert_issuer/issue_certificates.py +++ b/cert_issuer/issue_certificates.py @@ -38,7 +38,7 @@ def revoke_certificates(app_config, transaction_handler): def main(app_config): chain = app_config.chain - if chain == Chain.ethereum_mainnet or chain == Chain.ethereum_ropsten: + if chain == Chain.ethereum_mainnet or chain == Chain.ethereum_bloxberg: if app_config.issuing_method == "smart_contract": from cert_issuer.blockchain_handlers import ethereum_sc certificate_batch_handler, transaction_handler, connector = ethereum_sc.instantiate_blockchain_handlers(app_config) diff --git a/cert_issuer/merkle_tree_generator.py b/cert_issuer/merkle_tree_generator.py index f96af55a..081f82fe 100644 --- a/cert_issuer/merkle_tree_generator.py +++ b/cert_issuer/merkle_tree_generator.py @@ -135,7 +135,7 @@ def to_source_id(txid, chain): # workaround return txid # previously the == operator to actually compare with 'chain' was missing - this caused the below text to be returned, breaking the tests - if chain == Chain.bitcoin_mainnet or chain == Chain.bitcoin_testnet or chain == Chain.ethereum_mainnet or chain == Chain.ethereum_ropsten: + if chain == Chain.bitcoin_mainnet or chain == Chain.bitcoin_testnet or chain == Chain.ethereum_mainnet or chain == Chain.ethereum_bloxberg: return txid else: return 'This has not been issued on a blockchain and is for testing only' diff --git a/docs/ethereum_smart_contract.md b/docs/ethereum_smart_contract.md index 8fe2335e..8270604f 100644 --- a/docs/ethereum_smart_contract.md +++ b/docs/ethereum_smart_contract.md @@ -62,8 +62,8 @@ Configuration is done via the `conf_eth.ini` file. Cert-deployer's configuration `deploying_address = ` The ethereum account's address. -`chain = ` -Choice of deployment on Ethereum Mainnet or the Ropsten test network. +`chain = ` +Choice of deployment on Ethereum Mainnet or the Bloxberg test network. `node_url = ` The web3py library requires an ethereum node that is compatible with the json-rpc interface. The easiest option is to use a public node e.g. infura’s, or connect to a locally-run node such as geth or parity. diff --git a/ethereum_smart_contract_requirements.txt b/ethereum_smart_contract_requirements.txt index 7a96b013..cbdc14f8 100644 --- a/ethereum_smart_contract_requirements.txt +++ b/ethereum_smart_contract_requirements.txt @@ -1,11 +1,10 @@ coincurve==7.1.0 web3>=5 - ipfshttpclient -lds-merkle-proof-2019 configargparse==0.12.0 -cert-core>=2.1.9 -cert-schema>=2.1.5 +lds-merkle-proof-2019-bloxberg +cert-core-bloxberg==2.1.2 +cert-schema chainpoint3>=0.0.2 configargparse==0.12.0 glob2==0.6 diff --git a/requirements.txt b/requirements.txt index fd717916..0fd28a51 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -cert-core>=2.1.9 +cert-core-bloxberg==2.1.2 cert-schema>=2.1.5 chainpoint3>=0.0.2 configargparse==0.12.0 diff --git a/work/blockchain_certificates/15186643-ec29-4055-bebc-aa464d928849.json b/work/blockchain_certificates/15186643-ec29-4055-bebc-aa464d928849.json new file mode 100644 index 00000000..f175368d --- /dev/null +++ b/work/blockchain_certificates/15186643-ec29-4055-bebc-aa464d928849.json @@ -0,0 +1 @@ +{"@context": ["https://www.w3.org/2018/credentials/v1", "https://w3id.org/blockcerts/schema/3.0-alpha/context.json"], "id": "urn:uuid:15186643-ec29-4055-bebc-aa464d928849", "type": ["VerifiableCredential", "BlockcertsCredential"], "issuer": "https://raw.githubusercontent.com/AnthonyRonning/https-github.com-labnol-files/master/issuer-eth.json", "issuanceDate": "2020-08-10T07:40:30.304362+00:00", "credentialSubject": {"id": "did:key:z6Mkq3L1jEDDZ5R7eT523FMLxC4k6MCpzqD7ff1CrkWpoJwM", "alumniOf": {"id": "https://www.issuer.org"}}, "proof": {"type": "MerkleProof2019", "created": "2020-08-11T14:39:35.956897", "proofValue": "z65N6GBZC3gTCaERU11XMMh9LYfKrT5n29yM87W2recMTB7wmPxH2BB9mroHqganzTNnt6qxV922pCfacfb8z2cLu4V67vkJXBME9EksBapcD6vQKed1vcovX7h9w1XAMgJqJNRjYCw4kdFUdjAQR4MWbZkYphneJn1D5zfA4X2MkcSkj6pV8BXbEQ49ZZ5ugoCZew2t7aXEQES7mKGrmbPqTpXMrjGdtVwrMqeH6FU7QDjEzs2wJCmZV3jL42PpgbYSvFVY6KXCK2Z3P4iTWZYwL3DLb46Txy6ukPXwJznfTt2n1fybDFGHUhZJKEw5qDZPjUTY3V8VbnH3ySxofxxST39PTQStrbKTHNV27qY4wmK73buZzwmGjPj1t52AfEtx1TEXeFbtFgQCuxTFsTceCuWC8rgp9NrogVvTuZmukYBGUhr7sHTNQDD5wDmL71RcBtVmSmHqy1bE3VD9EB6wjgZKEYZGoF2BTRyLerbwVv1UxmTfXh4T", "proofPurpose": "assertionMethod", "verificationMethod": "ecdsa-koblitz-pubkey:0xD748BF41264b906093460923169643f45BDbC32e"}} \ No newline at end of file diff --git a/work/blockchain_certificates/1f0d1af0-4c14-4836-ade3-0df9facb3ced.json b/work/blockchain_certificates/1f0d1af0-4c14-4836-ade3-0df9facb3ced.json new file mode 100644 index 00000000..217b2388 --- /dev/null +++ b/work/blockchain_certificates/1f0d1af0-4c14-4836-ade3-0df9facb3ced.json @@ -0,0 +1 @@ +{"@context": ["https://www.w3.org/2018/credentials/v1", "https://w3id.org/blockcerts/schema/3.0-alpha/context.json"], "id": "urn:uuid:1f0d1af0-4c14-4836-ade3-0df9facb3ced", "type": ["VerifiableCredential", "BlockcertsCredential"], "issuer": "https://raw.githubusercontent.com/AnthonyRonning/https-github.com-labnol-files/master/issuer-eth.json", "issuanceDate": "2020-08-10T12:48:28.879555+00:00", "credentialSubject": {"id": "did:key:z6Mkq3L1jEDDZ5R7eT523FMLxC4k6MCpzqD7ff1CrkWpoJwM", "alumniOf": {"id": "https://www.issuer.org"}}, "proof": {"type": "MerkleProof2019", "created": "2020-08-11T14:39:36.179793", "proofValue": "z65N6GBZByDiB7gLEoeUugVq4yyHARNdri8J9zNzUMpaSAW1WQg7wVLQjEwVWn6jgLjJjEgqNaapzty73k922PVp82VpC7w9fkVhwHzrcohsj1akZ5V3RLfJgsdoz7ZvdpnPQYd2yb6BuzbrZHo9YBgR7CdBKJp6ZQP6sQdhpEmGPnzweNvxXSP672xBXZo3fZzbhcNBKJQZeGuJBqbdnbn5xQgevnxhE37LyTKomxQnpMZS3fDLYpMqazGhdLkTqzaUujMBoCwy6ZFnpxT5HMLMSUegZKC39KBSHHF5GWVuNhTSGVdRN7cvVan46vmNW9rChv5YaWsbK8RD3a2G8HSLHc7BZ1DANyzdJFRDHj4wVRWLgy9hscCZKmRvENY7rcqZyaTHfC6zAZQV7R5oikr4QpFMc9uVav72zBDfGkfTR7fnDc2mTdhXSinJJsng1Swci57TuVEaf5emnGUDdZf9vKsQV4ji5SfDQsZ2z9PxG3xNnuzcmSsq", "proofPurpose": "assertionMethod", "verificationMethod": "ecdsa-koblitz-pubkey:0xD748BF41264b906093460923169643f45BDbC32e"}} \ No newline at end of file diff --git a/work/blockchain_certificates/35b6c347-51e4-4881-96bf-287ffbccdfce.json b/work/blockchain_certificates/35b6c347-51e4-4881-96bf-287ffbccdfce.json deleted file mode 100644 index 8fa6a469..00000000 --- a/work/blockchain_certificates/35b6c347-51e4-4881-96bf-287ffbccdfce.json +++ /dev/null @@ -1 +0,0 @@ -{"@context": ["https://www.w3.org/2018/credentials/v1", "https://w3id.org/blockcerts/schema/3.0-alpha/context.json"], "id": "urn:uuid:35b6c347-51e4-4881-96bf-287ffbccdfce", "type": ["VerifiableCredential", "BlockcertsCredential"], "issuer": "https://raw.githubusercontent.com/AnthonyRonning/https-github.com-labnol-files/master/issuer-eth.json", "issuanceDate": "2020-07-30T12:04:01.829304+00:00", "credentialSubject": {"id": "did:key:z6Mkq3L1jEDDZ5R7eT523FMLxC4k6MCpzqD7ff1CrkWpoJwM", "alumniOf": {"id": "https://www.issuer.org"}}, "proof": {"type": "MerkleProof2019", "created": "2020-07-30T12:36:26.247132", "proofValue": "z2LuLBVSfogU8YhUjfqryx2c8kYrVZ6jAJz2XGxy12hmXpzP2u1h5aWhceYdMwZQM9YqD1Kk7qW3WLArFSp1xgSGquLRThhk15ou5FkXtEDHtGCV4HE4aLxYjcfQX8DnS5GM1gA9npS9SjQ5UDaHMdh8qvqQA4gPumEMWLhVavs7PqtsqJpaDozD7XAkyv1RVfQVBW9EcJsF22KBAWKZvrUnU2jhzGBojt19Av2AsEp7rJM6HeW6dPRx3cKKmSEZqNUCogWBuoUNhsMiD3hmo9dBdHTcnnDhgrcCQ2hjgfa98ftN6NeV25TTe7nHCqLyQ9yWaV2ShkKg6ah7ma6347h3eEmcbkPqSctxZQ6dMQoXqRDAcmM66JYnnWttWXwAGhMPYGqU33Ys5Uwr1qvGfb", "proofPurpose": "assertionMethod", "verificationMethod": "ecdsa-koblitz-pubkey:0xD748BF41264b906093460923169643f45BDbC32e"}} \ No newline at end of file diff --git a/work/blockchain_certificates/7f2e45da-be39-4f4d-86ed-15ea4d0512bf.json b/work/blockchain_certificates/7f2e45da-be39-4f4d-86ed-15ea4d0512bf.json deleted file mode 100644 index b4ce0e12..00000000 --- a/work/blockchain_certificates/7f2e45da-be39-4f4d-86ed-15ea4d0512bf.json +++ /dev/null @@ -1 +0,0 @@ -{"@context": ["https://www.w3.org/2018/credentials/v1", "https://w3id.org/blockcerts/schema/3.0-alpha/context.json"], "id": "urn:uuid:7f2e45da-be39-4f4d-86ed-15ea4d0512bf", "type": ["VerifiableCredential", "BlockcertsCredential"], "issuer": "https://raw.githubusercontent.com/AnthonyRonning/https-github.com-labnol-files/master/issuer-eth.json", "issuanceDate": "2020-07-30T12:04:01.829304+00:00", "credentialSubject": {"id": "did:key:z6Mkq3L1jEDDZ5R7eT523FMLxC4k6MCpzqD7ff1CrkWpoJwM", "alumniOf": {"id": "https://www.issuer.org"}}, "proof": {"type": "MerkleProof2019", "created": "2020-07-30T12:36:26.404988", "proofValue": "z2LuLBVSfnVzaQtw5CHiYTk8VQf8pSv2ppMr3tnknHhNQFFDTA1KMRa8kLyeXj1MogtTaDdCmfd74QBzKff9vcJsHvxYmbUQPBqdAcpfD5oM8zo8XiXGQd9eXfPh1wkNhwngkt2XGDKP2T2fewubVZRAyNDBFgKwuUThraP8KDvzEjMXyxkjA69Y9ukXTR25FL7znrkbsHy2yP13WV87RkpmNb1NQuG8sWkV4RAu9aXh79RoSmFz8Ty91HPXRkc7TwesgqHQMLvFMeZY3ZoLA3fvzfNY3xaUiPcuceUxdmjuC2i8NQZuf6j84YeZT3aY2gsMsMtgdgJxqWH3GqPwSEQu1SFZ6dmhvDF5kmHUkPD3esGtXiGc898Xn2f9RtL4b5kihT3oFqFfAffPzSDN9F", "proofPurpose": "assertionMethod", "verificationMethod": "ecdsa-koblitz-pubkey:0xD748BF41264b906093460923169643f45BDbC32e"}} \ No newline at end of file diff --git a/work/blockchain_certificates/a2a99a9e-457b-4de9-930b-3146442275a8.json b/work/blockchain_certificates/a2a99a9e-457b-4de9-930b-3146442275a8.json new file mode 100644 index 00000000..78d061a2 --- /dev/null +++ b/work/blockchain_certificates/a2a99a9e-457b-4de9-930b-3146442275a8.json @@ -0,0 +1 @@ +{"@context": ["https://www.w3.org/2018/credentials/v1", "https://w3id.org/blockcerts/schema/3.0-alpha/context.json"], "id": "urn:uuid:a2a99a9e-457b-4de9-930b-3146442275a8", "type": ["VerifiableCredential", "BlockcertsCredential"], "issuer": "https://raw.githubusercontent.com/AnthonyRonning/https-github.com-labnol-files/master/issuer-eth.json", "issuanceDate": "2020-08-10T12:48:28.879555+00:00", "credentialSubject": {"id": "did:key:z6Mkq3L1jEDDZ5R7eT523FMLxC4k6MCpzqD7ff1CrkWpoJwM", "alumniOf": {"id": "https://www.issuer.org"}}, "proof": {"type": "MerkleProof2019", "created": "2020-08-11T14:39:36.387999", "proofValue": "z65N6GBZC3gTCaEYPUvvvYq6o1PFB7EKAW5cTVe58KTaNHLkkHkZ2he7UrP7RgxqfXyMRtVA1DdLLnj4zWtweJ5rkVGtuvpsjfz5jndcehadaxvZe9TqxVZDjgrxrtLcRwyXvhnS8Li8jYcb2nefsAvPKVgkhLMNu3iJDLxakdPB5xbMQhStMTFeoGFYgJtEFuXK17zMzeK9yrTxx96rVhefiZHLem6oMSgDDJDxjJQ13Wqt9T8aShTkmsKh1iT37vHjubsfQD73SFMQcpbkbcyCPM2LsbFVqHphECMyLN5dmhTkPciJdhtqao7XFP52W47sQeSiEnT1oar2Wo7NvEse1yxUDkwv8hUFUHpUBU1BgxqjKqVMAkGcjT45VBRKGdcWbwZj73LKsYAFy2nSQWDHT73eeZfDNSga7Mo8S2hNGkKjVprstLuRaXx4KQ8WLtB9so6bqWddS3yWmurFF2U7Bcim99DE6BShrjKjoLve6ij5TK6A8Dhq", "proofPurpose": "assertionMethod", "verificationMethod": "ecdsa-koblitz-pubkey:0xD748BF41264b906093460923169643f45BDbC32e"}} \ No newline at end of file diff --git a/work/blockchain_certificates/c7494b9c-cc9c-4740-b7b8-9037f3cd64ec.json b/work/blockchain_certificates/c7494b9c-cc9c-4740-b7b8-9037f3cd64ec.json new file mode 100644 index 00000000..17dc5dfc --- /dev/null +++ b/work/blockchain_certificates/c7494b9c-cc9c-4740-b7b8-9037f3cd64ec.json @@ -0,0 +1 @@ +{"@context": ["https://www.w3.org/2018/credentials/v1", "https://w3id.org/blockcerts/schema/3.0-alpha/context.json"], "id": "urn:uuid:c7494b9c-cc9c-4740-b7b8-9037f3cd64ec", "type": ["VerifiableCredential", "BlockcertsCredential"], "issuer": "https://raw.githubusercontent.com/AnthonyRonning/https-github.com-labnol-files/master/issuer-eth.json", "issuanceDate": "2020-08-10T07:40:30.304362+00:00", "credentialSubject": {"id": "did:key:z6Mkq3L1jEDDZ5R7eT523FMLxC4k6MCpzqD7ff1CrkWpoJwM", "alumniOf": {"id": "https://www.issuer.org"}}, "proof": {"type": "MerkleProof2019", "created": "2020-08-11T14:39:36.533486", "proofValue": "z65N6GBZByDiB7gKxdycoYqEhCB8kmgsvjzyQiNfe8x9sppWwf3aaBAu9T3jrkhKUigceUycsRtrcaouqCNBDMUCMpFpN376pUSsZPkNPjHgkSUumzKihYEimm2gS2S2w5wXDmjaLrLg9KQ9jSTxnZbFf4h9bTJxQqj33MNcar4hkojJrgPR8kSHRCrRx7jWfRWyzCekXWFB5U8d9bB9aip2apBNwDFGA282Ce15hTYRjdd8FVjFnstFNLwthYeABnk9VZFBhKZFswDhBGHZYbrf3XDALNMrJdxrdm8CZZTe1Hpqp1iJJHo7WzmTuRR2HwxWWoxg46UhTBhut7ZR2YCW3Kx7XgtDQ5ZqseWhqucjy4dYFsEXgUKVFSCsS7PYXLqiscoUc6Z2DSHmRpTQy8ZAhjLcLnWpyW6uxWLZeqx2RCFSJNJs34n2ZYdVnn9jnFnA1m3epnyt68KqgLqaS66WLB3hrciXssjYjxqF22gXBeAX9bGriR3D", "proofPurpose": "assertionMethod", "verificationMethod": "ecdsa-koblitz-pubkey:0xD748BF41264b906093460923169643f45BDbC32e"}} \ No newline at end of file diff --git a/work/unsigned_certificates/35b6c347-51e4-4881-96bf-287ffbccdfce.json b/work/unsigned_certificates/15186643-ec29-4055-bebc-aa464d928849.json similarity index 63% rename from work/unsigned_certificates/35b6c347-51e4-4881-96bf-287ffbccdfce.json rename to work/unsigned_certificates/15186643-ec29-4055-bebc-aa464d928849.json index 425f6de7..bd7943dc 100644 --- a/work/unsigned_certificates/35b6c347-51e4-4881-96bf-287ffbccdfce.json +++ b/work/unsigned_certificates/15186643-ec29-4055-bebc-aa464d928849.json @@ -1 +1 @@ -{"@context": ["https://www.w3.org/2018/credentials/v1", "https://w3id.org/blockcerts/schema/3.0-alpha/context.json"], "id": "urn:uuid:35b6c347-51e4-4881-96bf-287ffbccdfce", "type": ["VerifiableCredential", "BlockcertsCredential"], "issuer": "https://raw.githubusercontent.com/AnthonyRonning/https-github.com-labnol-files/master/issuer-eth.json", "issuanceDate": "2020-07-30T12:04:01.829304+00:00", "credentialSubject": {"id": "did:key:z6Mkq3L1jEDDZ5R7eT523FMLxC4k6MCpzqD7ff1CrkWpoJwM", "alumniOf": {"id": "https://www.issuer.org"}}} \ No newline at end of file +{"@context": ["https://www.w3.org/2018/credentials/v1", "https://w3id.org/blockcerts/schema/3.0-alpha/context.json"], "id": "urn:uuid:15186643-ec29-4055-bebc-aa464d928849", "type": ["VerifiableCredential", "BlockcertsCredential"], "issuer": "https://raw.githubusercontent.com/AnthonyRonning/https-github.com-labnol-files/master/issuer-eth.json", "issuanceDate": "2020-08-10T07:40:30.304362+00:00", "credentialSubject": {"id": "did:key:z6Mkq3L1jEDDZ5R7eT523FMLxC4k6MCpzqD7ff1CrkWpoJwM", "alumniOf": {"id": "https://www.issuer.org"}}} \ No newline at end of file diff --git a/work/unsigned_certificates/7f2e45da-be39-4f4d-86ed-15ea4d0512bf.json b/work/unsigned_certificates/1f0d1af0-4c14-4836-ade3-0df9facb3ced.json similarity index 63% rename from work/unsigned_certificates/7f2e45da-be39-4f4d-86ed-15ea4d0512bf.json rename to work/unsigned_certificates/1f0d1af0-4c14-4836-ade3-0df9facb3ced.json index 76097d1e..ad0c45cb 100644 --- a/work/unsigned_certificates/7f2e45da-be39-4f4d-86ed-15ea4d0512bf.json +++ b/work/unsigned_certificates/1f0d1af0-4c14-4836-ade3-0df9facb3ced.json @@ -1 +1 @@ -{"@context": ["https://www.w3.org/2018/credentials/v1", "https://w3id.org/blockcerts/schema/3.0-alpha/context.json"], "id": "urn:uuid:7f2e45da-be39-4f4d-86ed-15ea4d0512bf", "type": ["VerifiableCredential", "BlockcertsCredential"], "issuer": "https://raw.githubusercontent.com/AnthonyRonning/https-github.com-labnol-files/master/issuer-eth.json", "issuanceDate": "2020-07-30T12:04:01.829304+00:00", "credentialSubject": {"id": "did:key:z6Mkq3L1jEDDZ5R7eT523FMLxC4k6MCpzqD7ff1CrkWpoJwM", "alumniOf": {"id": "https://www.issuer.org"}}} \ No newline at end of file +{"@context": ["https://www.w3.org/2018/credentials/v1", "https://w3id.org/blockcerts/schema/3.0-alpha/context.json"], "id": "urn:uuid:1f0d1af0-4c14-4836-ade3-0df9facb3ced", "type": ["VerifiableCredential", "BlockcertsCredential"], "issuer": "https://raw.githubusercontent.com/AnthonyRonning/https-github.com-labnol-files/master/issuer-eth.json", "issuanceDate": "2020-08-10T12:48:28.879555+00:00", "credentialSubject": {"id": "did:key:z6Mkq3L1jEDDZ5R7eT523FMLxC4k6MCpzqD7ff1CrkWpoJwM", "alumniOf": {"id": "https://www.issuer.org"}}} \ No newline at end of file diff --git a/work/unsigned_certificates/a2a99a9e-457b-4de9-930b-3146442275a8.json b/work/unsigned_certificates/a2a99a9e-457b-4de9-930b-3146442275a8.json new file mode 100644 index 00000000..213f0f4a --- /dev/null +++ b/work/unsigned_certificates/a2a99a9e-457b-4de9-930b-3146442275a8.json @@ -0,0 +1 @@ +{"@context": ["https://www.w3.org/2018/credentials/v1", "https://w3id.org/blockcerts/schema/3.0-alpha/context.json"], "id": "urn:uuid:a2a99a9e-457b-4de9-930b-3146442275a8", "type": ["VerifiableCredential", "BlockcertsCredential"], "issuer": "https://raw.githubusercontent.com/AnthonyRonning/https-github.com-labnol-files/master/issuer-eth.json", "issuanceDate": "2020-08-10T12:48:28.879555+00:00", "credentialSubject": {"id": "did:key:z6Mkq3L1jEDDZ5R7eT523FMLxC4k6MCpzqD7ff1CrkWpoJwM", "alumniOf": {"id": "https://www.issuer.org"}}} \ No newline at end of file diff --git a/work/unsigned_certificates/c7494b9c-cc9c-4740-b7b8-9037f3cd64ec.json b/work/unsigned_certificates/c7494b9c-cc9c-4740-b7b8-9037f3cd64ec.json new file mode 100644 index 00000000..ad06da4d --- /dev/null +++ b/work/unsigned_certificates/c7494b9c-cc9c-4740-b7b8-9037f3cd64ec.json @@ -0,0 +1 @@ +{"@context": ["https://www.w3.org/2018/credentials/v1", "https://w3id.org/blockcerts/schema/3.0-alpha/context.json"], "id": "urn:uuid:c7494b9c-cc9c-4740-b7b8-9037f3cd64ec", "type": ["VerifiableCredential", "BlockcertsCredential"], "issuer": "https://raw.githubusercontent.com/AnthonyRonning/https-github.com-labnol-files/master/issuer-eth.json", "issuanceDate": "2020-08-10T07:40:30.304362+00:00", "credentialSubject": {"id": "did:key:z6Mkq3L1jEDDZ5R7eT523FMLxC4k6MCpzqD7ff1CrkWpoJwM", "alumniOf": {"id": "https://www.issuer.org"}}} \ No newline at end of file From a8b3a7286f61d1fe33d208fdbdd7e9b20cd8557f Mon Sep 17 00:00:00 2001 From: James Date: Thu, 20 Aug 2020 14:45:19 +0200 Subject: [PATCH 19/22] updated proof mapping and initial IPFS functions --- .../blockchain_handlers/ethereum_sc/connectors.py | 8 +++++++- .../ethereum_sc/transaction_handlers.py | 14 ++++++++++++++ cert_issuer/issuer.py | 8 ++++++++ cert_issuer/merkle_tree_generator.py | 7 +++++-- .../15186643-ec29-4055-bebc-aa464d928849.json | 1 - .../1f0d1af0-4c14-4836-ade3-0df9facb3ced.json | 1 - .../96e4392d-461e-473c-b751-60f0dc408136.json | 1 + .../a2a99a9e-457b-4de9-930b-3146442275a8.json | 1 - .../bd2a927d-9374-4b5a-a923-e52aa215a4f7.json | 1 + .../c7494b9c-cc9c-4740-b7b8-9037f3cd64ec.json | 1 - .../15186643-ec29-4055-bebc-aa464d928849.json | 1 - .../1f0d1af0-4c14-4836-ade3-0df9facb3ced.json | 1 - .../96e4392d-461e-473c-b751-60f0dc408136.json | 1 + .../a2a99a9e-457b-4de9-930b-3146442275a8.json | 1 - .../bd2a927d-9374-4b5a-a923-e52aa215a4f7.json | 1 + .../c7494b9c-cc9c-4740-b7b8-9037f3cd64ec.json | 1 - 16 files changed, 38 insertions(+), 11 deletions(-) delete mode 100644 work/blockchain_certificates/15186643-ec29-4055-bebc-aa464d928849.json delete mode 100644 work/blockchain_certificates/1f0d1af0-4c14-4836-ade3-0df9facb3ced.json create mode 100644 work/blockchain_certificates/96e4392d-461e-473c-b751-60f0dc408136.json delete mode 100644 work/blockchain_certificates/a2a99a9e-457b-4de9-930b-3146442275a8.json create mode 100644 work/blockchain_certificates/bd2a927d-9374-4b5a-a923-e52aa215a4f7.json delete mode 100644 work/blockchain_certificates/c7494b9c-cc9c-4740-b7b8-9037f3cd64ec.json delete mode 100644 work/unsigned_certificates/15186643-ec29-4055-bebc-aa464d928849.json delete mode 100644 work/unsigned_certificates/1f0d1af0-4c14-4836-ade3-0df9facb3ced.json create mode 100644 work/unsigned_certificates/96e4392d-461e-473c-b751-60f0dc408136.json delete mode 100644 work/unsigned_certificates/a2a99a9e-457b-4de9-930b-3146442275a8.json create mode 100644 work/unsigned_certificates/bd2a927d-9374-4b5a-a923-e52aa215a4f7.json delete mode 100644 work/unsigned_certificates/c7494b9c-cc9c-4740-b7b8-9037f3cd64ec.json diff --git a/cert_issuer/blockchain_handlers/ethereum_sc/connectors.py b/cert_issuer/blockchain_handlers/ethereum_sc/connectors.py index 5caa4e0b..d68a346c 100644 --- a/cert_issuer/blockchain_handlers/ethereum_sc/connectors.py +++ b/cert_issuer/blockchain_handlers/ethereum_sc/connectors.py @@ -52,7 +52,7 @@ def create_transaction(self, method, *argv): gas_limit = self.cost_constants.get_gas_limit() estimated_gas = self._contract_obj.functions[method](*argv).estimateGas() * 5 if estimated_gas > gas_limit: - logging.warning("Estimated gas of %s more than gas limit of %s, transaction might fail. Please verify on etherescan.com.", estimated_gas, gas_limit) + logging.warning("Estimated gas of %s more than gas limit of %s, transaction might fail. Please verify on blockexplorer.bloxberg.org.", estimated_gas, gas_limit) estimated_gas = gas_limit gas_price = self._w3.eth.gasPrice @@ -81,6 +81,12 @@ def broadcast_tx(self, signed_tx): tx_receipt = self._w3.eth.waitForTransactionReceipt(tx_hash) return tx_receipt.transactionHash.hex() + def get_tokenID(self, txid): + tx_receipt = receipt = self._w3.eth.getTransactionReceipt(txid) + logs = self._contract_obj.events.Transfer().processReceipt(tx_receipt) + tokenID = logs[0]['args']['tokenId'] + return tokenID + def transact(self, method, *argv): """ Sends a signed transaction on the blockchain and waits for a response. diff --git a/cert_issuer/blockchain_handlers/ethereum_sc/transaction_handlers.py b/cert_issuer/blockchain_handlers/ethereum_sc/transaction_handlers.py index 92442af2..4a0bb236 100644 --- a/cert_issuer/blockchain_handlers/ethereum_sc/transaction_handlers.py +++ b/cert_issuer/blockchain_handlers/ethereum_sc/transaction_handlers.py @@ -45,6 +45,18 @@ def make_transaction(self, recipient_address, token_uri, blockchain_bytes, app_c txid = self.broadcast_transaction(signed_tx) return txid + def ipfs_transaction(self, token_id, token_uri, blockchain_bytes, app_config): + return self.update_ipfs(token_id, token_uri, blockchain_bytes, app_config, "updateTokenURI") + + def update_ipfs(self, token_id, token_uri, blockchain_bytes, app_config): + prepared_tx = self.connector.create_transaction(method, token_id, token_uri, blockchain_bytes) + signed_tx = self.sign_transaction(prepared_tx) + + logging.info('Updating tokenURI field with ipfs link..') + + txid = self.broadcast_transaction(signed_tx) + return txid + def sign_transaction(self, prepared_tx): # stubbed from BitcoinTransactionHandler @@ -57,3 +69,5 @@ def sign_transaction(self, prepared_tx): def broadcast_transaction(self, signed_tx): txid = self.connector.broadcast_tx(signed_tx) return txid + + diff --git a/cert_issuer/issuer.py b/cert_issuer/issuer.py index 77141983..afb1589d 100644 --- a/cert_issuer/issuer.py +++ b/cert_issuer/issuer.py @@ -34,6 +34,7 @@ def issue(self, chain, app_config, recipient_address): txid = self.transaction_handler.issue_transaction(recipient_address, token_uri, blockchain_bytes, app_config) self.certificate_batch_handler.finish_batch(txid, chain, app_config) logging.info('Broadcast transaction with txid %s', txid) + return txid except BroadcastError: logging.warning( @@ -41,3 +42,10 @@ def issue(self, chain, app_config, recipient_address): attempt_number) logging.error('All attempts to broadcast failed. Try rerunning issuer.') raise BroadcastError('All attempts to broadcast failed. Try rerunning issuer.') + + def updateIPFS(self, chain, app_config): + """ + Update IPFS link on smart contract + """ + txid = self.transaction_handler.ipfs_transaction(token_id, token_uri, blockchain_bytes, app_config) + diff --git a/cert_issuer/merkle_tree_generator.py b/cert_issuer/merkle_tree_generator.py index 081f82fe..b7c49386 100644 --- a/cert_issuer/merkle_tree_generator.py +++ b/cert_issuer/merkle_tree_generator.py @@ -75,6 +75,7 @@ def get_proof_generator(self, tx_id, app_config, verification_method, chain=Chai abi = ens.get_abi() mp2019 = MerkleProof2019() + print(helpers.tx_to_blink(chain, tx_id)) merkle_json = { "path": proof2, "merkleRoot": root, @@ -83,7 +84,7 @@ def get_proof_generator(self, tx_id, app_config, verification_method, chain=Chai "anchors": [ helpers.tx_to_blink(chain, tx_id) ] - } + } logging.info('merkle_json: %s', str(merkle_json)) proof_value = mp2019.encode(merkle_json) @@ -92,7 +93,9 @@ def get_proof_generator(self, tx_id, app_config, verification_method, chain=Chai "created": datetime.now().isoformat(), "proofValue": proof_value.decode('utf8'), "proofPurpose": "assertionMethod", - "verificationMethod": verification_method + "verificationMethod": verification_method, + #Add ENS name for issuer validation + "ens_name": app_config.ens_name } #Uncomment after checking verification """ diff --git a/work/blockchain_certificates/15186643-ec29-4055-bebc-aa464d928849.json b/work/blockchain_certificates/15186643-ec29-4055-bebc-aa464d928849.json deleted file mode 100644 index f175368d..00000000 --- a/work/blockchain_certificates/15186643-ec29-4055-bebc-aa464d928849.json +++ /dev/null @@ -1 +0,0 @@ -{"@context": ["https://www.w3.org/2018/credentials/v1", "https://w3id.org/blockcerts/schema/3.0-alpha/context.json"], "id": "urn:uuid:15186643-ec29-4055-bebc-aa464d928849", "type": ["VerifiableCredential", "BlockcertsCredential"], "issuer": "https://raw.githubusercontent.com/AnthonyRonning/https-github.com-labnol-files/master/issuer-eth.json", "issuanceDate": "2020-08-10T07:40:30.304362+00:00", "credentialSubject": {"id": "did:key:z6Mkq3L1jEDDZ5R7eT523FMLxC4k6MCpzqD7ff1CrkWpoJwM", "alumniOf": {"id": "https://www.issuer.org"}}, "proof": {"type": "MerkleProof2019", "created": "2020-08-11T14:39:35.956897", "proofValue": "z65N6GBZC3gTCaERU11XMMh9LYfKrT5n29yM87W2recMTB7wmPxH2BB9mroHqganzTNnt6qxV922pCfacfb8z2cLu4V67vkJXBME9EksBapcD6vQKed1vcovX7h9w1XAMgJqJNRjYCw4kdFUdjAQR4MWbZkYphneJn1D5zfA4X2MkcSkj6pV8BXbEQ49ZZ5ugoCZew2t7aXEQES7mKGrmbPqTpXMrjGdtVwrMqeH6FU7QDjEzs2wJCmZV3jL42PpgbYSvFVY6KXCK2Z3P4iTWZYwL3DLb46Txy6ukPXwJznfTt2n1fybDFGHUhZJKEw5qDZPjUTY3V8VbnH3ySxofxxST39PTQStrbKTHNV27qY4wmK73buZzwmGjPj1t52AfEtx1TEXeFbtFgQCuxTFsTceCuWC8rgp9NrogVvTuZmukYBGUhr7sHTNQDD5wDmL71RcBtVmSmHqy1bE3VD9EB6wjgZKEYZGoF2BTRyLerbwVv1UxmTfXh4T", "proofPurpose": "assertionMethod", "verificationMethod": "ecdsa-koblitz-pubkey:0xD748BF41264b906093460923169643f45BDbC32e"}} \ No newline at end of file diff --git a/work/blockchain_certificates/1f0d1af0-4c14-4836-ade3-0df9facb3ced.json b/work/blockchain_certificates/1f0d1af0-4c14-4836-ade3-0df9facb3ced.json deleted file mode 100644 index 217b2388..00000000 --- a/work/blockchain_certificates/1f0d1af0-4c14-4836-ade3-0df9facb3ced.json +++ /dev/null @@ -1 +0,0 @@ -{"@context": ["https://www.w3.org/2018/credentials/v1", "https://w3id.org/blockcerts/schema/3.0-alpha/context.json"], "id": "urn:uuid:1f0d1af0-4c14-4836-ade3-0df9facb3ced", "type": ["VerifiableCredential", "BlockcertsCredential"], "issuer": "https://raw.githubusercontent.com/AnthonyRonning/https-github.com-labnol-files/master/issuer-eth.json", "issuanceDate": "2020-08-10T12:48:28.879555+00:00", "credentialSubject": {"id": "did:key:z6Mkq3L1jEDDZ5R7eT523FMLxC4k6MCpzqD7ff1CrkWpoJwM", "alumniOf": {"id": "https://www.issuer.org"}}, "proof": {"type": "MerkleProof2019", "created": "2020-08-11T14:39:36.179793", "proofValue": "z65N6GBZByDiB7gLEoeUugVq4yyHARNdri8J9zNzUMpaSAW1WQg7wVLQjEwVWn6jgLjJjEgqNaapzty73k922PVp82VpC7w9fkVhwHzrcohsj1akZ5V3RLfJgsdoz7ZvdpnPQYd2yb6BuzbrZHo9YBgR7CdBKJp6ZQP6sQdhpEmGPnzweNvxXSP672xBXZo3fZzbhcNBKJQZeGuJBqbdnbn5xQgevnxhE37LyTKomxQnpMZS3fDLYpMqazGhdLkTqzaUujMBoCwy6ZFnpxT5HMLMSUegZKC39KBSHHF5GWVuNhTSGVdRN7cvVan46vmNW9rChv5YaWsbK8RD3a2G8HSLHc7BZ1DANyzdJFRDHj4wVRWLgy9hscCZKmRvENY7rcqZyaTHfC6zAZQV7R5oikr4QpFMc9uVav72zBDfGkfTR7fnDc2mTdhXSinJJsng1Swci57TuVEaf5emnGUDdZf9vKsQV4ji5SfDQsZ2z9PxG3xNnuzcmSsq", "proofPurpose": "assertionMethod", "verificationMethod": "ecdsa-koblitz-pubkey:0xD748BF41264b906093460923169643f45BDbC32e"}} \ No newline at end of file diff --git a/work/blockchain_certificates/96e4392d-461e-473c-b751-60f0dc408136.json b/work/blockchain_certificates/96e4392d-461e-473c-b751-60f0dc408136.json new file mode 100644 index 00000000..c6e0aa06 --- /dev/null +++ b/work/blockchain_certificates/96e4392d-461e-473c-b751-60f0dc408136.json @@ -0,0 +1 @@ +{"@context": ["https://www.w3.org/2018/credentials/v1", "https://w3id.org/blockcerts/schema/3.0-alpha/context.json"], "id": "urn:uuid:96e4392d-461e-473c-b751-60f0dc408136", "type": ["VerifiableCredential", "BlockcertsCredential"], "issuer": "https://raw.githubusercontent.com/AnthonyRonning/https-github.com-labnol-files/master/issuer-eth.json", "issuanceDate": "2020-08-20T12:14:10.363378+00:00", "credentialSubject": {"id": "einstein@mpg.de", "alumniOf": {"id": "https://bloxberg.org"}}, "SHA256Hash": "0x0e4ded5319861c8daac00d425c53a16bd180a7d01a340a0e00f7dede40d2c9f6", "proof": {"type": "MerkleProof2019", "created": "2020-08-20T12:15:50.473528", "proofValue": "zTAfB64R9FnirA3SRy33KqoBNysBwHuFKYP2P5kyMMWHX6hyyMZgJJRzzPjQRMwtCPxZNyHR8eeCwXCx8gRPP1cAccZLEotjmkQYVUNfUGC92fnJBuMq5BatkuGV9GZsszwzevfEGtXdCVhXmMxFevDhS8ELPQBHoNS7B4RFmKBNGjDJmpbrARY7iDC9hQLdWqFQmX6ucyGUNKFmibBeKWNNkGuboVZpzDsokDmsRAwFjDk3vbb4EZsTtwFq4h8WsqmWZGsVBKBasL5fgY9eegoVdHFeaVG9mxy6CRtBVSSQcaXPQJ3D7isPA8PCT5k6eb4ZpHCUvrug3zh181nPFci6FomhtyPD7mgCQiDtMjQNpFMUiLYswSHFA2EWx1iCBg6gCkUodLCvKEpQcWid7LhQ", "proofPurpose": "assertionMethod", "verificationMethod": "ecdsa-koblitz-pubkey:0xD748BF41264b906093460923169643f45BDbC32e", "ens_name": "mpdl.berg"}} \ No newline at end of file diff --git a/work/blockchain_certificates/a2a99a9e-457b-4de9-930b-3146442275a8.json b/work/blockchain_certificates/a2a99a9e-457b-4de9-930b-3146442275a8.json deleted file mode 100644 index 78d061a2..00000000 --- a/work/blockchain_certificates/a2a99a9e-457b-4de9-930b-3146442275a8.json +++ /dev/null @@ -1 +0,0 @@ -{"@context": ["https://www.w3.org/2018/credentials/v1", "https://w3id.org/blockcerts/schema/3.0-alpha/context.json"], "id": "urn:uuid:a2a99a9e-457b-4de9-930b-3146442275a8", "type": ["VerifiableCredential", "BlockcertsCredential"], "issuer": "https://raw.githubusercontent.com/AnthonyRonning/https-github.com-labnol-files/master/issuer-eth.json", "issuanceDate": "2020-08-10T12:48:28.879555+00:00", "credentialSubject": {"id": "did:key:z6Mkq3L1jEDDZ5R7eT523FMLxC4k6MCpzqD7ff1CrkWpoJwM", "alumniOf": {"id": "https://www.issuer.org"}}, "proof": {"type": "MerkleProof2019", "created": "2020-08-11T14:39:36.387999", "proofValue": "z65N6GBZC3gTCaEYPUvvvYq6o1PFB7EKAW5cTVe58KTaNHLkkHkZ2he7UrP7RgxqfXyMRtVA1DdLLnj4zWtweJ5rkVGtuvpsjfz5jndcehadaxvZe9TqxVZDjgrxrtLcRwyXvhnS8Li8jYcb2nefsAvPKVgkhLMNu3iJDLxakdPB5xbMQhStMTFeoGFYgJtEFuXK17zMzeK9yrTxx96rVhefiZHLem6oMSgDDJDxjJQ13Wqt9T8aShTkmsKh1iT37vHjubsfQD73SFMQcpbkbcyCPM2LsbFVqHphECMyLN5dmhTkPciJdhtqao7XFP52W47sQeSiEnT1oar2Wo7NvEse1yxUDkwv8hUFUHpUBU1BgxqjKqVMAkGcjT45VBRKGdcWbwZj73LKsYAFy2nSQWDHT73eeZfDNSga7Mo8S2hNGkKjVprstLuRaXx4KQ8WLtB9so6bqWddS3yWmurFF2U7Bcim99DE6BShrjKjoLve6ij5TK6A8Dhq", "proofPurpose": "assertionMethod", "verificationMethod": "ecdsa-koblitz-pubkey:0xD748BF41264b906093460923169643f45BDbC32e"}} \ No newline at end of file diff --git a/work/blockchain_certificates/bd2a927d-9374-4b5a-a923-e52aa215a4f7.json b/work/blockchain_certificates/bd2a927d-9374-4b5a-a923-e52aa215a4f7.json new file mode 100644 index 00000000..db11e3fe --- /dev/null +++ b/work/blockchain_certificates/bd2a927d-9374-4b5a-a923-e52aa215a4f7.json @@ -0,0 +1 @@ +{"@context": ["https://www.w3.org/2018/credentials/v1", "https://w3id.org/blockcerts/schema/3.0-alpha/context.json"], "id": "urn:uuid:bd2a927d-9374-4b5a-a923-e52aa215a4f7", "type": ["VerifiableCredential", "BlockcertsCredential"], "issuer": "https://raw.githubusercontent.com/AnthonyRonning/https-github.com-labnol-files/master/issuer-eth.json", "issuanceDate": "2020-08-20T12:14:10.363378+00:00", "credentialSubject": {"id": "einstein@mpg.de", "alumniOf": {"id": "https://bloxberg.org"}}, "SHA256Hash": "0xfda3124d5319861c8daac00d425c53a16bd180a7d01a340a0e00f7dede40d2c9f6", "proof": {"type": "MerkleProof2019", "created": "2020-08-20T12:15:50.692579", "proofValue": "zTAfB64R8rnijzFj9xZceVEQsH7yrpVvrc2bDidHKGYJKPpe1K3dtYgspAdJDDsNyd3yNnbrAAM1ZXwqVzCYvcAtHhqVxFxt6v4PXrCdbF6hCaFed3tQoUwhf8yXLAhWHNtjaSYawFBvyTMSJZSeYRQqXY8iedcrDb1Qx646TsBkGMaSVz7jhTNJt6Eeo6Jq1tN2Z7kR7WCCmqBNyjBZw7K39Lvw6n9qBTuNsm88LEbMXnb8ESEbRccQeUqJJXHXmhjDshuvbhpHGfHmJZ31AMEV33qmXzipsdAD4vKhdVRjnovm1TYkgnzNWg8Wv37Smi6oXySvMDjhptE5XTYLZNxuXyAh9NMdKrnEJeAXBNHvqS3ayARHemaTBGqyGJFxJNh14xX8FkKtnQTNwbu98Dcn", "proofPurpose": "assertionMethod", "verificationMethod": "ecdsa-koblitz-pubkey:0xD748BF41264b906093460923169643f45BDbC32e", "ens_name": "mpdl.berg"}} \ No newline at end of file diff --git a/work/blockchain_certificates/c7494b9c-cc9c-4740-b7b8-9037f3cd64ec.json b/work/blockchain_certificates/c7494b9c-cc9c-4740-b7b8-9037f3cd64ec.json deleted file mode 100644 index 17dc5dfc..00000000 --- a/work/blockchain_certificates/c7494b9c-cc9c-4740-b7b8-9037f3cd64ec.json +++ /dev/null @@ -1 +0,0 @@ -{"@context": ["https://www.w3.org/2018/credentials/v1", "https://w3id.org/blockcerts/schema/3.0-alpha/context.json"], "id": "urn:uuid:c7494b9c-cc9c-4740-b7b8-9037f3cd64ec", "type": ["VerifiableCredential", "BlockcertsCredential"], "issuer": "https://raw.githubusercontent.com/AnthonyRonning/https-github.com-labnol-files/master/issuer-eth.json", "issuanceDate": "2020-08-10T07:40:30.304362+00:00", "credentialSubject": {"id": "did:key:z6Mkq3L1jEDDZ5R7eT523FMLxC4k6MCpzqD7ff1CrkWpoJwM", "alumniOf": {"id": "https://www.issuer.org"}}, "proof": {"type": "MerkleProof2019", "created": "2020-08-11T14:39:36.533486", "proofValue": "z65N6GBZByDiB7gKxdycoYqEhCB8kmgsvjzyQiNfe8x9sppWwf3aaBAu9T3jrkhKUigceUycsRtrcaouqCNBDMUCMpFpN376pUSsZPkNPjHgkSUumzKihYEimm2gS2S2w5wXDmjaLrLg9KQ9jSTxnZbFf4h9bTJxQqj33MNcar4hkojJrgPR8kSHRCrRx7jWfRWyzCekXWFB5U8d9bB9aip2apBNwDFGA282Ce15hTYRjdd8FVjFnstFNLwthYeABnk9VZFBhKZFswDhBGHZYbrf3XDALNMrJdxrdm8CZZTe1Hpqp1iJJHo7WzmTuRR2HwxWWoxg46UhTBhut7ZR2YCW3Kx7XgtDQ5ZqseWhqucjy4dYFsEXgUKVFSCsS7PYXLqiscoUc6Z2DSHmRpTQy8ZAhjLcLnWpyW6uxWLZeqx2RCFSJNJs34n2ZYdVnn9jnFnA1m3epnyt68KqgLqaS66WLB3hrciXssjYjxqF22gXBeAX9bGriR3D", "proofPurpose": "assertionMethod", "verificationMethod": "ecdsa-koblitz-pubkey:0xD748BF41264b906093460923169643f45BDbC32e"}} \ No newline at end of file diff --git a/work/unsigned_certificates/15186643-ec29-4055-bebc-aa464d928849.json b/work/unsigned_certificates/15186643-ec29-4055-bebc-aa464d928849.json deleted file mode 100644 index bd7943dc..00000000 --- a/work/unsigned_certificates/15186643-ec29-4055-bebc-aa464d928849.json +++ /dev/null @@ -1 +0,0 @@ -{"@context": ["https://www.w3.org/2018/credentials/v1", "https://w3id.org/blockcerts/schema/3.0-alpha/context.json"], "id": "urn:uuid:15186643-ec29-4055-bebc-aa464d928849", "type": ["VerifiableCredential", "BlockcertsCredential"], "issuer": "https://raw.githubusercontent.com/AnthonyRonning/https-github.com-labnol-files/master/issuer-eth.json", "issuanceDate": "2020-08-10T07:40:30.304362+00:00", "credentialSubject": {"id": "did:key:z6Mkq3L1jEDDZ5R7eT523FMLxC4k6MCpzqD7ff1CrkWpoJwM", "alumniOf": {"id": "https://www.issuer.org"}}} \ No newline at end of file diff --git a/work/unsigned_certificates/1f0d1af0-4c14-4836-ade3-0df9facb3ced.json b/work/unsigned_certificates/1f0d1af0-4c14-4836-ade3-0df9facb3ced.json deleted file mode 100644 index ad0c45cb..00000000 --- a/work/unsigned_certificates/1f0d1af0-4c14-4836-ade3-0df9facb3ced.json +++ /dev/null @@ -1 +0,0 @@ -{"@context": ["https://www.w3.org/2018/credentials/v1", "https://w3id.org/blockcerts/schema/3.0-alpha/context.json"], "id": "urn:uuid:1f0d1af0-4c14-4836-ade3-0df9facb3ced", "type": ["VerifiableCredential", "BlockcertsCredential"], "issuer": "https://raw.githubusercontent.com/AnthonyRonning/https-github.com-labnol-files/master/issuer-eth.json", "issuanceDate": "2020-08-10T12:48:28.879555+00:00", "credentialSubject": {"id": "did:key:z6Mkq3L1jEDDZ5R7eT523FMLxC4k6MCpzqD7ff1CrkWpoJwM", "alumniOf": {"id": "https://www.issuer.org"}}} \ No newline at end of file diff --git a/work/unsigned_certificates/96e4392d-461e-473c-b751-60f0dc408136.json b/work/unsigned_certificates/96e4392d-461e-473c-b751-60f0dc408136.json new file mode 100644 index 00000000..8c7deda5 --- /dev/null +++ b/work/unsigned_certificates/96e4392d-461e-473c-b751-60f0dc408136.json @@ -0,0 +1 @@ +{"@context": ["https://www.w3.org/2018/credentials/v1", "https://w3id.org/blockcerts/schema/3.0-alpha/context.json"], "id": "urn:uuid:96e4392d-461e-473c-b751-60f0dc408136", "type": ["VerifiableCredential", "BlockcertsCredential"], "issuer": "https://raw.githubusercontent.com/AnthonyRonning/https-github.com-labnol-files/master/issuer-eth.json", "issuanceDate": "2020-08-20T12:14:10.363378+00:00", "credentialSubject": {"id": "einstein@mpg.de", "alumniOf": {"id": "https://bloxberg.org"}}, "SHA256Hash": "0x0e4ded5319861c8daac00d425c53a16bd180a7d01a340a0e00f7dede40d2c9f6"} \ No newline at end of file diff --git a/work/unsigned_certificates/a2a99a9e-457b-4de9-930b-3146442275a8.json b/work/unsigned_certificates/a2a99a9e-457b-4de9-930b-3146442275a8.json deleted file mode 100644 index 213f0f4a..00000000 --- a/work/unsigned_certificates/a2a99a9e-457b-4de9-930b-3146442275a8.json +++ /dev/null @@ -1 +0,0 @@ -{"@context": ["https://www.w3.org/2018/credentials/v1", "https://w3id.org/blockcerts/schema/3.0-alpha/context.json"], "id": "urn:uuid:a2a99a9e-457b-4de9-930b-3146442275a8", "type": ["VerifiableCredential", "BlockcertsCredential"], "issuer": "https://raw.githubusercontent.com/AnthonyRonning/https-github.com-labnol-files/master/issuer-eth.json", "issuanceDate": "2020-08-10T12:48:28.879555+00:00", "credentialSubject": {"id": "did:key:z6Mkq3L1jEDDZ5R7eT523FMLxC4k6MCpzqD7ff1CrkWpoJwM", "alumniOf": {"id": "https://www.issuer.org"}}} \ No newline at end of file diff --git a/work/unsigned_certificates/bd2a927d-9374-4b5a-a923-e52aa215a4f7.json b/work/unsigned_certificates/bd2a927d-9374-4b5a-a923-e52aa215a4f7.json new file mode 100644 index 00000000..ff25841a --- /dev/null +++ b/work/unsigned_certificates/bd2a927d-9374-4b5a-a923-e52aa215a4f7.json @@ -0,0 +1 @@ +{"@context": ["https://www.w3.org/2018/credentials/v1", "https://w3id.org/blockcerts/schema/3.0-alpha/context.json"], "id": "urn:uuid:bd2a927d-9374-4b5a-a923-e52aa215a4f7", "type": ["VerifiableCredential", "BlockcertsCredential"], "issuer": "https://raw.githubusercontent.com/AnthonyRonning/https-github.com-labnol-files/master/issuer-eth.json", "issuanceDate": "2020-08-20T12:14:10.363378+00:00", "credentialSubject": {"id": "einstein@mpg.de", "alumniOf": {"id": "https://bloxberg.org"}}, "SHA256Hash": "0xfda3124d5319861c8daac00d425c53a16bd180a7d01a340a0e00f7dede40d2c9f6"} \ No newline at end of file diff --git a/work/unsigned_certificates/c7494b9c-cc9c-4740-b7b8-9037f3cd64ec.json b/work/unsigned_certificates/c7494b9c-cc9c-4740-b7b8-9037f3cd64ec.json deleted file mode 100644 index ad06da4d..00000000 --- a/work/unsigned_certificates/c7494b9c-cc9c-4740-b7b8-9037f3cd64ec.json +++ /dev/null @@ -1 +0,0 @@ -{"@context": ["https://www.w3.org/2018/credentials/v1", "https://w3id.org/blockcerts/schema/3.0-alpha/context.json"], "id": "urn:uuid:c7494b9c-cc9c-4740-b7b8-9037f3cd64ec", "type": ["VerifiableCredential", "BlockcertsCredential"], "issuer": "https://raw.githubusercontent.com/AnthonyRonning/https-github.com-labnol-files/master/issuer-eth.json", "issuanceDate": "2020-08-10T07:40:30.304362+00:00", "credentialSubject": {"id": "did:key:z6Mkq3L1jEDDZ5R7eT523FMLxC4k6MCpzqD7ff1CrkWpoJwM", "alumniOf": {"id": "https://www.issuer.org"}}} \ No newline at end of file From 05ffa02488dc2b28ad5c656a36e031e592a80edc Mon Sep 17 00:00:00 2001 From: Andrei Ionita Date: Tue, 25 Aug 2020 13:18:23 +0200 Subject: [PATCH 20/22] added certificate validation for v3 --- cert_issuer/certificate_handlers.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/cert_issuer/certificate_handlers.py b/cert_issuer/certificate_handlers.py index b82dc050..7b1f7bb3 100644 --- a/cert_issuer/certificate_handlers.py +++ b/cert_issuer/certificate_handlers.py @@ -1,7 +1,7 @@ import json import logging -from cert_schema import normalize_jsonld +from cert_schema import normalize_jsonld, validate_v3_alpha from cert_issuer import helpers from pycoin.serialize import b2h from cert_issuer.models import CertificateHandler, BatchHandler @@ -31,6 +31,15 @@ def _get_certificate_to_issue(self, certificate_metadata): certificate_json = json.load(unsigned_cert_file) return certificate_json + def validate_certificate(self, certificate_metadata): + certificate_json = self._get_certificate_to_issue(certificate_metadata) + return validate_v3_alpha(certificate_json) + + def sign_certificate(self, signer, certificate_metadata): + # TODO + return self.sign_certificate(signer, certificate_metadata) + + class CertificateWebV3Handler(CertificateHandler): def get_byte_array_to_issue(self, certificate_json): normalized = normalize_jsonld(certificate_json, detect_unmapped_fields=False) @@ -45,6 +54,14 @@ def add_proof(self, certificate_json, merkle_proof): certificate_json['signature'] = merkle_proof return certificate_json + def validate_certificate(self, certificate_metadata): + certificate_json = self._get_certificate_to_issue(certificate_metadata) + return validate_v3_alpha(certificate_json) + + def sign_certificate(self, signer, certificate_metadata): + # TODO + return self.sign_certificate(signer, certificate_metadata) + class CertificateBatchWebHandler(BatchHandler): #Smart contract version has app_config as variable - removed in V3 From f2d4efe959f89c72d0f93f31693decfca2197f72 Mon Sep 17 00:00:00 2001 From: Andrei Ionita Date: Tue, 25 Aug 2020 13:33:45 +0200 Subject: [PATCH 21/22] added ipfs_batch_file in conf --- conf_regtest.ini | 2 ++ conf_template.ini | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/conf_regtest.ini b/conf_regtest.ini index 08a7103c..f30ecde0 100644 --- a/conf_regtest.ini +++ b/conf_regtest.ini @@ -10,4 +10,6 @@ unsigned_certificates_dir=/etc/cert-issuer/data/unsigned_certificates blockchain_certificates_dir=/etc/cert-issuer/data/blockchain_certificates work_dir=/etc/cert-issuer/work +ipfs_batch_file=ipfsBatch.json + no_safe_mode diff --git a/conf_template.ini b/conf_template.ini index 07c6d1a7..773ef370 100644 --- a/conf_template.ini +++ b/conf_template.ini @@ -15,8 +15,11 @@ work_dir= usb_name = key_file = +# a list of the IPFS hashes of the uploded certificates +ipfs_batch_file= + # which blockchain; bitcoin_regtest is default chain= # this disables the wifi check, and should only be used recommended during testing -no_safe_mode \ No newline at end of file +no_safe_mode From bba566720a178c825f0e6827d6341e381f51055c Mon Sep 17 00:00:00 2001 From: Andrei Ionita Date: Tue, 25 Aug 2020 13:35:17 +0200 Subject: [PATCH 22/22] added updating of token uri with ipfs batch file --- .../ethereum_sc/connectors.py | 12 ++++----- .../ethereum_sc/transaction_handlers.py | 24 ++++++------------ cert_issuer/issue_certificates.py | 10 ++++++-- cert_issuer/issuer.py | 25 +++++++++++++++---- 4 files changed, 42 insertions(+), 29 deletions(-) diff --git a/cert_issuer/blockchain_handlers/ethereum_sc/connectors.py b/cert_issuer/blockchain_handlers/ethereum_sc/connectors.py index d68a346c..564a62aa 100644 --- a/cert_issuer/blockchain_handlers/ethereum_sc/connectors.py +++ b/cert_issuer/blockchain_handlers/ethereum_sc/connectors.py @@ -81,12 +81,6 @@ def broadcast_tx(self, signed_tx): tx_receipt = self._w3.eth.waitForTransactionReceipt(tx_hash) return tx_receipt.transactionHash.hex() - def get_tokenID(self, txid): - tx_receipt = receipt = self._w3.eth.getTransactionReceipt(txid) - logs = self._contract_obj.events.Transfer().processReceipt(tx_receipt) - tokenID = logs[0]['args']['tokenId'] - return tokenID - def transact(self, method, *argv): """ Sends a signed transaction on the blockchain and waits for a response. @@ -113,3 +107,9 @@ def _sign_transaction(self, prepared_tx): def call(self, method, *argv): return self._contract_obj.functions[method](*argv).call() + + def get_event_args(self, tx_hash, event): + tx_receipt = self._w3.eth.getTransactionReceipt(tx_hash) + logs = self._contract_obj.events[event]().processReceipt(tx_receipt) + return logs[0]['args'] + diff --git a/cert_issuer/blockchain_handlers/ethereum_sc/transaction_handlers.py b/cert_issuer/blockchain_handlers/ethereum_sc/transaction_handlers.py index 4a0bb236..8c388519 100644 --- a/cert_issuer/blockchain_handlers/ethereum_sc/transaction_handlers.py +++ b/cert_issuer/blockchain_handlers/ethereum_sc/transaction_handlers.py @@ -34,25 +34,16 @@ def revoke_transaction(self, blockchain_bytes, app_config): # return self.make_transaction(blockchain_bytes, app_config, "issue_hash") def issue_transaction(self, recipient_address, token_uri, blockchain_bytes, app_config): - return self.make_transaction(recipient_address, token_uri, blockchain_bytes, app_config, "createCertificate") + return self.make_transaction(app_config, "createCertificate", recipient_address, token_uri, blockchain_bytes) - def make_transaction(self, recipient_address, token_uri, blockchain_bytes, app_config, method): - prepared_tx = self.connector.create_transaction(method, recipient_address, token_uri, blockchain_bytes) - signed_tx = self.sign_transaction(prepared_tx) - - logging.info('Broadcasting transaction to the blockchain...') + def update_token_uri(self, token_id, token_uri, app_config): + return self.make_transaction(app_config, "updateTokenURI", token_id, token_uri) - txid = self.broadcast_transaction(signed_tx) - return txid - - def ipfs_transaction(self, token_id, token_uri, blockchain_bytes, app_config): - return self.update_ipfs(token_id, token_uri, blockchain_bytes, app_config, "updateTokenURI") - - def update_ipfs(self, token_id, token_uri, blockchain_bytes, app_config): - prepared_tx = self.connector.create_transaction(method, token_id, token_uri, blockchain_bytes) + def make_transaction(self, app_config, method, *argv): + prepared_tx = self.connector.create_transaction(method, *argv) signed_tx = self.sign_transaction(prepared_tx) - logging.info('Updating tokenURI field with ipfs link..') + logging.info('Broadcasting transaction to the blockchain...') txid = self.broadcast_transaction(signed_tx) return txid @@ -70,4 +61,5 @@ def broadcast_transaction(self, signed_tx): txid = self.connector.broadcast_tx(signed_tx) return txid - + def get_event_args(self, tx_hash, event): + return self.connector(tx_hash, event) diff --git a/cert_issuer/issue_certificates.py b/cert_issuer/issue_certificates.py index deda492a..7d29fd45 100644 --- a/cert_issuer/issue_certificates.py +++ b/cert_issuer/issue_certificates.py @@ -20,10 +20,10 @@ def issue(app_config, certificate_batch_handler, transaction_handler, recipient_ certificate_batch_handler=certificate_batch_handler, transaction_handler=transaction_handler, max_retry=app_config.max_retry) - tx_id = issuer.issue(app_config.chain, app_config, recipient_address) + (tx_id, token_id) = issuer.issue(app_config.chain, app_config, recipient_address) certificate_batch_handler.post_batch_actions(app_config) - return tx_id + return (tx_id, token_id) def revoke_certificates(app_config, transaction_handler): # revocations are executed one hash at a time - balance is ensure before each tx @@ -36,6 +36,12 @@ def revoke_certificates(app_config, transaction_handler): return tx_id +def update_token_uri(app_config, token_id, token_uri, transaction_handler): + issuer = Issuer(transaction_handler=transaction_handler, + max_retry=app_config.max_retry) + + issuer.update_token_uri(token_id, token_uri, app_config) + def main(app_config): chain = app_config.chain if chain == Chain.ethereum_mainnet or chain == Chain.ethereum_bloxberg: diff --git a/cert_issuer/issuer.py b/cert_issuer/issuer.py index afb1589d..66c6a4b1 100644 --- a/cert_issuer/issuer.py +++ b/cert_issuer/issuer.py @@ -32,10 +32,12 @@ def issue(self, chain, app_config, recipient_address): for attempt_number in range(0, self.max_retry): try: txid = self.transaction_handler.issue_transaction(recipient_address, token_uri, blockchain_bytes, app_config) + event_args = self.transaction_handler.get_event_args(txid, 'Transfer') + token_id = event_args['tokenId'] + self.certificate_batch_handler.finish_batch(txid, chain, app_config) logging.info('Broadcast transaction with txid %s', txid) - - return txid + return (txid, token_id) except BroadcastError: logging.warning( 'Failed broadcast reattempts. Trying to recreate transaction. This is attempt number %d', @@ -43,9 +45,22 @@ def issue(self, chain, app_config, recipient_address): logging.error('All attempts to broadcast failed. Try rerunning issuer.') raise BroadcastError('All attempts to broadcast failed. Try rerunning issuer.') - def updateIPFS(self, chain, app_config): + def update_token_uri(self, token_id, token_uri, app_config): """ - Update IPFS link on smart contract + Update the tokenURI for the issued certificate batch + :return: transaction id """ - txid = self.transaction_handler.ipfs_transaction(token_id, token_uri, blockchain_bytes, app_config) + + for attempt_number in range(0, self.max_retry): + try: + txid = self.transaction_handler.update_token_uri(token_id, token_uri, app_config) + logging.info('Updating tokenURI field with ipfs link. Txid: %s', txid) + return txid + except BroadcastError: + logging.warning( + 'Failed broadcast reattempts. Trying to recreate transaction. This is attempt number %d', + attempt_number) + logging.error('All attempts to broadcast failed. Try rerunning issuer.') + raise BroadcastError('All attempts to broadcast failed. Try rerunning issuer.') +