@decaf-ts/for-fabric 0.12.6 → 0.12.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +177 -146
- package/dist/for-fabric.cjs +2 -3797
- package/dist/for-fabric.cjs.map +1 -0
- package/dist/for-fabric.js +2 -3901
- package/dist/for-fabric.js.map +1 -0
- package/lib/cjs/bin/cli.cjs +2 -2
- package/lib/cjs/bin/cli.cjs.map +1 -0
- package/lib/cjs/cli-module.cjs +107 -3
- package/lib/cjs/cli-module.cjs.map +1 -0
- package/lib/cjs/cli-utils.cjs +2 -2
- package/lib/cjs/cli-utils.cjs.map +1 -0
- package/lib/cjs/client/FabricClientAdapter.cjs +2 -2
- package/lib/cjs/client/FabricClientAdapter.cjs.map +1 -0
- package/lib/cjs/client/FabricClientDispatch.cjs +2 -2
- package/lib/cjs/client/FabricClientDispatch.cjs.map +1 -0
- package/lib/cjs/client/FabricClientPaginator.cjs +2 -2
- package/lib/cjs/client/FabricClientPaginator.cjs.map +1 -0
- package/lib/cjs/client/FabricClientRepository.cjs +2 -2
- package/lib/cjs/client/FabricClientRepository.cjs.map +1 -0
- package/lib/cjs/client/FabricClientStatement.cjs +2 -2
- package/lib/cjs/client/FabricClientStatement.cjs.map +1 -0
- package/lib/cjs/client/collections/generation.cjs +2 -2
- package/lib/cjs/client/collections/generation.cjs.map +1 -0
- package/lib/cjs/client/collections/index.cjs +2 -2
- package/lib/cjs/client/collections/index.cjs.map +1 -0
- package/lib/cjs/client/constants.cjs +2 -2
- package/lib/cjs/client/constants.cjs.map +1 -0
- package/lib/cjs/client/crypto.cjs +2 -2
- package/lib/cjs/client/crypto.cjs.map +1 -0
- package/lib/cjs/client/erc20/FabricERC20ClientRepository.cjs +2 -2
- package/lib/cjs/client/erc20/FabricERC20ClientRepository.cjs.map +1 -0
- package/lib/cjs/client/erc20/index.cjs +2 -2
- package/lib/cjs/client/erc20/index.cjs.map +1 -0
- package/lib/cjs/client/fabric-fs.cjs +2 -2
- package/lib/cjs/client/fabric-fs.cjs.map +1 -0
- package/lib/cjs/client/fabric-hsm.cjs +2 -2
- package/lib/cjs/client/fabric-hsm.cjs.map +1 -0
- package/lib/cjs/client/ids/id-extraction.cjs +2 -2
- package/lib/cjs/client/ids/id-extraction.cjs.map +1 -0
- package/lib/cjs/client/ids/index.cjs +2 -2
- package/lib/cjs/client/ids/index.cjs.map +1 -0
- package/lib/cjs/client/index.cjs +2 -2
- package/lib/cjs/client/index.cjs.map +1 -0
- package/lib/cjs/client/indexes/generation.cjs +9 -4
- package/lib/cjs/client/indexes/generation.cjs.map +1 -0
- package/lib/cjs/client/indexes/index.cjs +2 -2
- package/lib/cjs/client/indexes/index.cjs.map +1 -0
- package/lib/cjs/client/logging.cjs +2 -2
- package/lib/cjs/client/logging.cjs.map +1 -0
- package/lib/cjs/client/services/FabricEnrollmentService.cjs +2 -2
- package/lib/cjs/client/services/FabricEnrollmentService.cjs.map +1 -0
- package/lib/cjs/client/services/FabricIdentityService.cjs +2 -2
- package/lib/cjs/client/services/FabricIdentityService.cjs.map +1 -0
- package/lib/cjs/client/services/RegistrationRequestBuilder.cjs +2 -2
- package/lib/cjs/client/services/RegistrationRequestBuilder.cjs.map +1 -0
- package/lib/cjs/client/services/constants.cjs +2 -2
- package/lib/cjs/client/services/constants.cjs.map +1 -0
- package/lib/cjs/client/services/index.cjs +2 -2
- package/lib/cjs/client/services/index.cjs.map +1 -0
- package/lib/cjs/client/types.cjs +2 -2
- package/lib/cjs/client/types.cjs.map +1 -0
- package/lib/cjs/client/utils.cjs +2 -2
- package/lib/cjs/client/utils.cjs.map +1 -0
- package/lib/cjs/contract/Address.cjs +2 -2
- package/lib/cjs/contract/Address.cjs.map +1 -0
- package/lib/cjs/contract/AddressContract.cjs +2 -2
- package/lib/cjs/contract/AddressContract.cjs.map +1 -0
- package/lib/cjs/contract/AuditContract.cjs +2 -2
- package/lib/cjs/contract/AuditContract.cjs.map +1 -0
- package/lib/cjs/contract/BatchContract.cjs +2 -2
- package/lib/cjs/contract/BatchContract.cjs.map +1 -0
- package/lib/cjs/contract/MarketContract.cjs +2 -2
- package/lib/cjs/contract/MarketContract.cjs.map +1 -0
- package/lib/cjs/contract/OtherAuditContract.cjs +2 -2
- package/lib/cjs/contract/OtherAuditContract.cjs.map +1 -0
- package/lib/cjs/contract/OtherBatchContract.cjs +2 -2
- package/lib/cjs/contract/OtherBatchContract.cjs.map +1 -0
- package/lib/cjs/contract/OtherLeafletContract.cjs +72 -0
- package/lib/cjs/contract/OtherLeafletContract.cjs.map +1 -0
- package/lib/cjs/contract/OtherLeafletFileContract.cjs +76 -0
- package/lib/cjs/contract/OtherLeafletFileContract.cjs.map +1 -0
- package/lib/cjs/contract/OtherMarketContract.cjs +2 -2
- package/lib/cjs/contract/OtherMarketContract.cjs.map +1 -0
- package/lib/cjs/contract/OtherProductContract.cjs +2 -2
- package/lib/cjs/contract/OtherProductContract.cjs.map +1 -0
- package/lib/cjs/contract/OtherProductImageContract.cjs +2 -2
- package/lib/cjs/contract/OtherProductImageContract.cjs.map +1 -0
- package/lib/cjs/contract/OtherProductSharedContract.cjs +2 -2
- package/lib/cjs/contract/OtherProductSharedContract.cjs.map +1 -0
- package/lib/cjs/contract/OtherProductStrengthContract.cjs +2 -2
- package/lib/cjs/contract/OtherProductStrengthContract.cjs.map +1 -0
- package/lib/cjs/contract/Product.cjs +2 -2
- package/lib/cjs/contract/Product.cjs.map +1 -0
- package/lib/cjs/contract/ProductContract.cjs +2 -2
- package/lib/cjs/contract/ProductContract.cjs.map +1 -0
- package/lib/cjs/contract/ProductStrengthContract.cjs +2 -2
- package/lib/cjs/contract/ProductStrengthContract.cjs.map +1 -0
- package/lib/cjs/contract/SegregatedPrivateDocumentContract.cjs +2 -2
- package/lib/cjs/contract/SegregatedPrivateDocumentContract.cjs.map +1 -0
- package/lib/cjs/contract/SegregatedSharedDocumentContract.cjs +2 -2
- package/lib/cjs/contract/SegregatedSharedDocumentContract.cjs.map +1 -0
- package/lib/cjs/contract/User.cjs +2 -2
- package/lib/cjs/contract/User.cjs.map +1 -0
- package/lib/cjs/contract/UserContract.cjs +2 -2
- package/lib/cjs/contract/UserContract.cjs.map +1 -0
- package/lib/cjs/contract/index.cjs +20 -20
- package/lib/cjs/contract/index.cjs.map +1 -0
- package/lib/cjs/contract/logging-context.cjs +2 -2
- package/lib/cjs/contract/logging-context.cjs.map +1 -0
- package/lib/cjs/contract/models/Audit.cjs +2 -2
- package/lib/cjs/contract/models/Audit.cjs.map +1 -0
- package/lib/cjs/contract/models/BaseIdentifiedModel.cjs +2 -2
- package/lib/cjs/contract/models/BaseIdentifiedModel.cjs.map +1 -0
- package/lib/cjs/contract/models/BaseModel.cjs +2 -2
- package/lib/cjs/contract/models/BaseModel.cjs.map +1 -0
- package/lib/cjs/contract/models/Batch.cjs +2 -2
- package/lib/cjs/contract/models/Batch.cjs.map +1 -0
- package/lib/cjs/contract/models/GtinOwner.cjs +2 -2
- package/lib/cjs/contract/models/GtinOwner.cjs.map +1 -0
- package/lib/cjs/contract/models/History.cjs +2 -2
- package/lib/cjs/contract/models/History.cjs.map +1 -0
- package/lib/cjs/contract/models/Leaflet.cjs +2 -2
- package/lib/cjs/contract/models/Leaflet.cjs.map +1 -0
- package/lib/cjs/contract/models/LeafletFile.cjs +2 -2
- package/lib/cjs/contract/models/LeafletFile.cjs.map +1 -0
- package/lib/cjs/contract/models/Market.cjs +2 -2
- package/lib/cjs/contract/models/Market.cjs.map +1 -0
- package/lib/cjs/contract/models/OtherAudit.cjs +3 -3
- package/lib/cjs/contract/models/OtherAudit.cjs.map +1 -0
- package/lib/cjs/contract/models/OtherBatchShared.cjs +137 -28
- package/lib/cjs/contract/models/OtherBatchShared.cjs.map +1 -0
- package/lib/cjs/contract/models/OtherLeaflet.cjs +3 -3
- package/lib/cjs/contract/models/OtherLeaflet.cjs.map +1 -0
- package/lib/cjs/contract/models/OtherLeafletFile.cjs +3 -3
- package/lib/cjs/contract/models/OtherLeafletFile.cjs.map +1 -0
- package/lib/cjs/contract/models/OtherMarket.cjs +3 -3
- package/lib/cjs/contract/models/OtherMarket.cjs.map +1 -0
- package/lib/cjs/contract/models/OtherProduct.cjs +3 -3
- package/lib/cjs/contract/models/OtherProduct.cjs.map +1 -0
- package/lib/cjs/contract/models/OtherProductImage.cjs +3 -3
- package/lib/cjs/contract/models/OtherProductImage.cjs.map +1 -0
- package/lib/cjs/contract/models/OtherProductShared.cjs +3 -3
- package/lib/cjs/contract/models/OtherProductShared.cjs.map +1 -0
- package/lib/cjs/contract/models/OtherProductStrength.cjs +3 -5
- package/lib/cjs/contract/models/OtherProductStrength.cjs.map +1 -0
- package/lib/cjs/contract/models/Product.cjs +2 -2
- package/lib/cjs/contract/models/Product.cjs.map +1 -0
- package/lib/cjs/contract/models/ProductStrength.cjs +2 -2
- package/lib/cjs/contract/models/ProductStrength.cjs.map +1 -0
- package/lib/cjs/contract/models/SegregatedDocument.cjs +2 -2
- package/lib/cjs/contract/models/SegregatedDocument.cjs.map +1 -0
- package/lib/cjs/contract/models/constants.cjs +2 -2
- package/lib/cjs/contract/models/constants.cjs.map +1 -0
- package/lib/cjs/contract/models/decorators-private.cjs +2 -2
- package/lib/cjs/contract/models/decorators-private.cjs.map +1 -0
- package/lib/cjs/contract/models/decorators.cjs +2 -2
- package/lib/cjs/contract/models/decorators.cjs.map +1 -0
- package/lib/cjs/contract/models/gtin.cjs +2 -2
- package/lib/cjs/contract/models/gtin.cjs.map +1 -0
- package/lib/cjs/contract/models/history-dec.cjs +2 -2
- package/lib/cjs/contract/models/history-dec.cjs.map +1 -0
- package/lib/cjs/contract/trackedModels/History.cjs +81 -0
- package/lib/cjs/contract/trackedModels/History.cjs.map +1 -0
- package/lib/cjs/contract/trackedModels/OtherAudit.cjs +124 -0
- package/lib/cjs/contract/trackedModels/OtherAudit.cjs.map +1 -0
- package/lib/cjs/contract/trackedModels/OtherLeaflet.cjs +121 -0
- package/lib/cjs/contract/trackedModels/OtherLeaflet.cjs.map +1 -0
- package/lib/cjs/contract/trackedModels/OtherLeafletFile.cjs +71 -0
- package/lib/cjs/contract/trackedModels/OtherLeafletFile.cjs.map +1 -0
- package/lib/cjs/contract/trackedModels/OtherMarket.cjs +90 -0
- package/lib/cjs/contract/trackedModels/OtherMarket.cjs.map +1 -0
- package/lib/cjs/contract/trackedModels/OtherProduct.cjs +83 -0
- package/lib/cjs/contract/trackedModels/OtherProduct.cjs.map +1 -0
- package/lib/cjs/contract/trackedModels/OtherProductImage.cjs +65 -0
- package/lib/cjs/contract/trackedModels/OtherProductImage.cjs.map +1 -0
- package/lib/cjs/contract/trackedModels/OtherProductShared.cjs +105 -0
- package/lib/cjs/contract/trackedModels/OtherProductShared.cjs.map +1 -0
- package/lib/cjs/contract/trackedModels/OtherProductStrength.cjs +91 -0
- package/lib/cjs/contract/trackedModels/OtherProductStrength.cjs.map +1 -0
- package/lib/cjs/contracts/ContractAdapter.cjs +2 -2
- package/lib/cjs/contracts/ContractAdapter.cjs.map +1 -0
- package/lib/cjs/contracts/ContractContext.cjs +2 -2
- package/lib/cjs/contracts/ContractContext.cjs.map +1 -0
- package/lib/cjs/contracts/FabricContractDispatch.cjs +2 -2
- package/lib/cjs/contracts/FabricContractDispatch.cjs.map +1 -0
- package/lib/cjs/contracts/FabricContractPaginator.cjs +2 -2
- package/lib/cjs/contracts/FabricContractPaginator.cjs.map +1 -0
- package/lib/cjs/contracts/FabricContractRepository.cjs +2 -2
- package/lib/cjs/contracts/FabricContractRepository.cjs.map +1 -0
- package/lib/cjs/contracts/FabricContractRepositoryObservableHandler.cjs +2 -2
- package/lib/cjs/contracts/FabricContractRepositoryObservableHandler.cjs.map +1 -0
- package/lib/cjs/contracts/FabricContractSequence.cjs +2 -2
- package/lib/cjs/contracts/FabricContractSequence.cjs.map +1 -0
- package/lib/cjs/contracts/FabricContractStatement.cjs +2 -2
- package/lib/cjs/contracts/FabricContractStatement.cjs.map +1 -0
- package/lib/cjs/contracts/MigrationContract.cjs +2 -2
- package/lib/cjs/contracts/MigrationContract.cjs.map +1 -0
- package/lib/cjs/contracts/PrivateSequence.cjs +2 -2
- package/lib/cjs/contracts/PrivateSequence.cjs.map +1 -0
- package/lib/cjs/contracts/auth/decorators.cjs +2 -2
- package/lib/cjs/contracts/auth/decorators.cjs.map +1 -0
- package/lib/cjs/contracts/auth/index.cjs +2 -2
- package/lib/cjs/contracts/auth/index.cjs.map +1 -0
- package/lib/cjs/contracts/bootstrap.cjs +14 -0
- package/lib/cjs/contracts/bootstrap.cjs.map +1 -0
- package/lib/cjs/contracts/crud/crud-contract.cjs +3 -2
- package/lib/cjs/contracts/crud/crud-contract.cjs.map +1 -0
- package/lib/cjs/contracts/crud/index.cjs +2 -2
- package/lib/cjs/contracts/crud/index.cjs.map +1 -0
- package/lib/cjs/contracts/crud/serialized-crud-contract.cjs +2 -2
- package/lib/cjs/contracts/crud/serialized-crud-contract.cjs.map +1 -0
- package/lib/cjs/contracts/erc20/erc20contract.cjs +2 -2
- package/lib/cjs/contracts/erc20/erc20contract.cjs.map +1 -0
- package/lib/cjs/contracts/erc20/index.cjs +2 -2
- package/lib/cjs/contracts/erc20/index.cjs.map +1 -0
- package/lib/cjs/contracts/erc20/models.cjs +2 -2
- package/lib/cjs/contracts/erc20/models.cjs.map +1 -0
- package/lib/cjs/contracts/fabric-overrides.cjs +65 -0
- package/lib/cjs/contracts/fabric-overrides.cjs.map +1 -0
- package/lib/cjs/contracts/index.cjs +3 -2
- package/lib/cjs/contracts/index.cjs.map +1 -0
- package/lib/cjs/contracts/logging.cjs +2 -2
- package/lib/cjs/contracts/logging.cjs.map +1 -0
- package/lib/cjs/contracts/overrides.cjs +2 -2
- package/lib/cjs/contracts/overrides.cjs.map +1 -0
- package/lib/cjs/contracts/types.cjs +2 -2
- package/lib/cjs/contracts/types.cjs.map +1 -0
- package/lib/cjs/contracts/uuid.cjs +2 -2
- package/lib/cjs/contracts/uuid.cjs.map +1 -0
- package/lib/cjs/index.cjs +2 -2
- package/lib/cjs/index.cjs.map +1 -0
- package/lib/cjs/shared/ClientSerializer.cjs +2 -2
- package/lib/cjs/shared/ClientSerializer.cjs.map +1 -0
- package/lib/cjs/shared/DeterministicSerializer.cjs +2 -2
- package/lib/cjs/shared/DeterministicSerializer.cjs.map +1 -0
- package/lib/cjs/shared/SimpleDeterministicSerializer.cjs +2 -2
- package/lib/cjs/shared/SimpleDeterministicSerializer.cjs.map +1 -0
- package/lib/cjs/shared/constants.cjs +2 -2
- package/lib/cjs/shared/constants.cjs.map +1 -0
- package/lib/cjs/shared/decorators.cjs +2 -2
- package/lib/cjs/shared/decorators.cjs.map +1 -0
- package/lib/cjs/shared/erc20/erc20-constants.cjs +2 -2
- package/lib/cjs/shared/erc20/erc20-constants.cjs.map +1 -0
- package/lib/cjs/shared/erc20/index.cjs +2 -2
- package/lib/cjs/shared/erc20/index.cjs.map +1 -0
- package/lib/cjs/shared/errors.cjs +2 -2
- package/lib/cjs/shared/errors.cjs.map +1 -0
- package/lib/cjs/shared/events.cjs +2 -2
- package/lib/cjs/shared/events.cjs.map +1 -0
- package/lib/cjs/shared/fabric-types.cjs +2 -2
- package/lib/cjs/shared/fabric-types.cjs.map +1 -0
- package/lib/cjs/shared/index.cjs +2 -2
- package/lib/cjs/shared/index.cjs.map +1 -0
- package/lib/cjs/shared/interfaces/Checkable.cjs +2 -2
- package/lib/cjs/shared/interfaces/Checkable.cjs.map +1 -0
- package/lib/cjs/shared/interfaces/index.cjs +2 -2
- package/lib/cjs/shared/interfaces/index.cjs.map +1 -0
- package/lib/cjs/shared/math.cjs +2 -2
- package/lib/cjs/shared/math.cjs.map +1 -0
- package/lib/cjs/shared/model/FabricBaseModel.cjs +2 -2
- package/lib/cjs/shared/model/FabricBaseModel.cjs.map +1 -0
- package/lib/cjs/shared/model/FabricIdentifiedBaseModel.cjs +2 -2
- package/lib/cjs/shared/model/FabricIdentifiedBaseModel.cjs.map +1 -0
- package/lib/cjs/shared/model/Identity.cjs +2 -2
- package/lib/cjs/shared/model/Identity.cjs.map +1 -0
- package/lib/cjs/shared/model/IdentityCredentials.cjs +2 -2
- package/lib/cjs/shared/model/IdentityCredentials.cjs.map +1 -0
- package/lib/cjs/shared/model/index.cjs +2 -2
- package/lib/cjs/shared/model/index.cjs.map +1 -0
- package/lib/cjs/shared/overrides/Model.cjs +2 -2
- package/lib/cjs/shared/overrides/Model.cjs.map +1 -0
- package/lib/cjs/shared/overrides/index.cjs +2 -2
- package/lib/cjs/shared/overrides/index.cjs.map +1 -0
- package/lib/cjs/shared/overrides/overrides.cjs +2 -2
- package/lib/cjs/shared/overrides/overrides.cjs.map +1 -0
- package/lib/cjs/shared/types.cjs +2 -2
- package/lib/cjs/shared/types.cjs.map +1 -0
- package/lib/cjs/version.cjs +3 -3
- package/lib/cjs/version.cjs.map +1 -0
- package/lib/esm/bin/cli.js +1 -1
- package/lib/esm/bin/cli.js.map +1 -0
- package/lib/esm/cli-module.js +106 -2
- package/lib/esm/cli-module.js.map +1 -0
- package/lib/esm/cli-utils.js +1 -1
- package/lib/esm/cli-utils.js.map +1 -0
- package/lib/esm/client/FabricClientAdapter.js +1 -1
- package/lib/esm/client/FabricClientAdapter.js.map +1 -0
- package/lib/esm/client/FabricClientDispatch.js +1 -1
- package/lib/esm/client/FabricClientDispatch.js.map +1 -0
- package/lib/esm/client/FabricClientPaginator.js +1 -1
- package/lib/esm/client/FabricClientPaginator.js.map +1 -0
- package/lib/esm/client/FabricClientRepository.js +1 -1
- package/lib/esm/client/FabricClientRepository.js.map +1 -0
- package/lib/esm/client/FabricClientStatement.js +1 -1
- package/lib/esm/client/FabricClientStatement.js.map +1 -0
- package/lib/esm/client/collections/generation.js +1 -1
- package/lib/esm/client/collections/generation.js.map +1 -0
- package/lib/esm/client/collections/index.js +1 -1
- package/lib/esm/client/collections/index.js.map +1 -0
- package/lib/esm/client/constants.js +1 -1
- package/lib/esm/client/constants.js.map +1 -0
- package/lib/esm/client/crypto.js +1 -1
- package/lib/esm/client/crypto.js.map +1 -0
- package/lib/esm/client/erc20/FabricERC20ClientRepository.js +1 -1
- package/lib/esm/client/erc20/FabricERC20ClientRepository.js.map +1 -0
- package/lib/esm/client/erc20/index.js +1 -1
- package/lib/esm/client/erc20/index.js.map +1 -0
- package/lib/esm/client/fabric-fs.js +1 -1
- package/lib/esm/client/fabric-fs.js.map +1 -0
- package/lib/esm/client/fabric-hsm.js +1 -1
- package/lib/esm/client/fabric-hsm.js.map +1 -0
- package/lib/esm/client/ids/id-extraction.js +1 -1
- package/lib/esm/client/ids/id-extraction.js.map +1 -0
- package/lib/esm/client/ids/index.js +1 -1
- package/lib/esm/client/ids/index.js.map +1 -0
- package/lib/esm/client/index.js +1 -1
- package/lib/esm/client/index.js.map +1 -0
- package/lib/esm/client/indexes/generation.js +8 -3
- package/lib/esm/client/indexes/generation.js.map +1 -0
- package/lib/esm/client/indexes/index.js +1 -1
- package/lib/esm/client/indexes/index.js.map +1 -0
- package/lib/esm/client/logging.js +1 -1
- package/lib/esm/client/logging.js.map +1 -0
- package/lib/esm/client/services/FabricEnrollmentService.js +1 -1
- package/lib/esm/client/services/FabricEnrollmentService.js.map +1 -0
- package/lib/esm/client/services/FabricIdentityService.js +1 -1
- package/lib/esm/client/services/FabricIdentityService.js.map +1 -0
- package/lib/esm/client/services/RegistrationRequestBuilder.js +1 -1
- package/lib/esm/client/services/RegistrationRequestBuilder.js.map +1 -0
- package/lib/esm/client/services/constants.js +1 -1
- package/lib/esm/client/services/constants.js.map +1 -0
- package/lib/esm/client/services/index.js +1 -1
- package/lib/esm/client/services/index.js.map +1 -0
- package/lib/esm/client/types.js +1 -1
- package/lib/esm/client/types.js.map +1 -0
- package/lib/esm/client/utils.js +1 -1
- package/lib/esm/client/utils.js.map +1 -0
- package/lib/esm/contract/Address.js +1 -1
- package/lib/esm/contract/Address.js.map +1 -0
- package/lib/esm/contract/AddressContract.js +1 -1
- package/lib/esm/contract/AddressContract.js.map +1 -0
- package/lib/esm/contract/AuditContract.js +1 -1
- package/lib/esm/contract/AuditContract.js.map +1 -0
- package/lib/esm/contract/BatchContract.js +1 -1
- package/lib/esm/contract/BatchContract.js.map +1 -0
- package/lib/esm/contract/MarketContract.js +1 -1
- package/lib/esm/contract/MarketContract.js.map +1 -0
- package/lib/esm/contract/OtherAuditContract.js +1 -1
- package/lib/esm/contract/OtherAuditContract.js.map +1 -0
- package/lib/esm/contract/OtherBatchContract.js +1 -1
- package/lib/esm/contract/OtherBatchContract.js.map +1 -0
- package/lib/esm/contract/OtherLeafletContract.js +63 -0
- package/lib/esm/contract/OtherLeafletContract.js.map +1 -0
- package/lib/esm/contract/OtherLeafletFileContract.js +67 -0
- package/lib/esm/contract/OtherLeafletFileContract.js.map +1 -0
- package/lib/esm/contract/OtherMarketContract.js +1 -1
- package/lib/esm/contract/OtherMarketContract.js.map +1 -0
- package/lib/esm/contract/OtherProductContract.js +1 -1
- package/lib/esm/contract/OtherProductContract.js.map +1 -0
- package/lib/esm/contract/OtherProductImageContract.js +1 -1
- package/lib/esm/contract/OtherProductImageContract.js.map +1 -0
- package/lib/esm/contract/OtherProductSharedContract.js +1 -1
- package/lib/esm/contract/OtherProductSharedContract.js.map +1 -0
- package/lib/esm/contract/OtherProductStrengthContract.js +1 -1
- package/lib/esm/contract/OtherProductStrengthContract.js.map +1 -0
- package/lib/esm/contract/Product.js +1 -1
- package/lib/esm/contract/Product.js.map +1 -0
- package/lib/esm/contract/ProductContract.js +1 -1
- package/lib/esm/contract/ProductContract.js.map +1 -0
- package/lib/esm/contract/ProductStrengthContract.js +1 -1
- package/lib/esm/contract/ProductStrengthContract.js.map +1 -0
- package/lib/esm/contract/SegregatedPrivateDocumentContract.js +1 -1
- package/lib/esm/contract/SegregatedPrivateDocumentContract.js.map +1 -0
- package/lib/esm/contract/SegregatedSharedDocumentContract.js +1 -1
- package/lib/esm/contract/SegregatedSharedDocumentContract.js.map +1 -0
- package/lib/esm/contract/User.js +1 -1
- package/lib/esm/contract/User.js.map +1 -0
- package/lib/esm/contract/UserContract.js +1 -1
- package/lib/esm/contract/UserContract.js.map +1 -0
- package/lib/esm/contract/index.js +19 -19
- package/lib/esm/contract/index.js.map +1 -0
- package/lib/esm/contract/logging-context.js +1 -1
- package/lib/esm/contract/logging-context.js.map +1 -0
- package/lib/esm/contract/models/Audit.js +1 -1
- package/lib/esm/contract/models/Audit.js.map +1 -0
- package/lib/esm/contract/models/BaseIdentifiedModel.js +1 -1
- package/lib/esm/contract/models/BaseIdentifiedModel.js.map +1 -0
- package/lib/esm/contract/models/BaseModel.js +1 -1
- package/lib/esm/contract/models/BaseModel.js.map +1 -0
- package/lib/esm/contract/models/Batch.js +1 -1
- package/lib/esm/contract/models/Batch.js.map +1 -0
- package/lib/esm/contract/models/GtinOwner.js +1 -1
- package/lib/esm/contract/models/GtinOwner.js.map +1 -0
- package/lib/esm/contract/models/History.js +1 -1
- package/lib/esm/contract/models/History.js.map +1 -0
- package/lib/esm/contract/models/Leaflet.js +1 -1
- package/lib/esm/contract/models/Leaflet.js.map +1 -0
- package/lib/esm/contract/models/LeafletFile.js +1 -1
- package/lib/esm/contract/models/LeafletFile.js.map +1 -0
- package/lib/esm/contract/models/Market.js +1 -1
- package/lib/esm/contract/models/Market.js.map +1 -0
- package/lib/esm/contract/models/OtherAudit.js +2 -2
- package/lib/esm/contract/models/OtherAudit.js.map +1 -0
- package/lib/esm/contract/models/OtherBatchShared.js +139 -31
- package/lib/esm/contract/models/OtherBatchShared.js.map +1 -0
- package/lib/esm/contract/models/OtherLeaflet.js +2 -2
- package/lib/esm/contract/models/OtherLeaflet.js.map +1 -0
- package/lib/esm/contract/models/OtherLeafletFile.js +2 -2
- package/lib/esm/contract/models/OtherLeafletFile.js.map +1 -0
- package/lib/esm/contract/models/OtherMarket.js +2 -2
- package/lib/esm/contract/models/OtherMarket.js.map +1 -0
- package/lib/esm/contract/models/OtherProduct.js +2 -2
- package/lib/esm/contract/models/OtherProduct.js.map +1 -0
- package/lib/esm/contract/models/OtherProductImage.js +2 -2
- package/lib/esm/contract/models/OtherProductImage.js.map +1 -0
- package/lib/esm/contract/models/OtherProductShared.js +2 -2
- package/lib/esm/contract/models/OtherProductShared.js.map +1 -0
- package/lib/esm/contract/models/OtherProductStrength.js +2 -4
- package/lib/esm/contract/models/OtherProductStrength.js.map +1 -0
- package/lib/esm/contract/models/Product.js +1 -1
- package/lib/esm/contract/models/Product.js.map +1 -0
- package/lib/esm/contract/models/ProductStrength.js +1 -1
- package/lib/esm/contract/models/ProductStrength.js.map +1 -0
- package/lib/esm/contract/models/SegregatedDocument.js +1 -1
- package/lib/esm/contract/models/SegregatedDocument.js.map +1 -0
- package/lib/esm/contract/models/constants.js +1 -1
- package/lib/esm/contract/models/constants.js.map +1 -0
- package/lib/esm/contract/models/decorators-private.js +1 -1
- package/lib/esm/contract/models/decorators-private.js.map +1 -0
- package/lib/esm/contract/models/decorators.js +1 -1
- package/lib/esm/contract/models/decorators.js.map +1 -0
- package/lib/esm/contract/models/gtin.js +1 -1
- package/lib/esm/contract/models/gtin.js.map +1 -0
- package/lib/esm/contract/models/history-dec.js +1 -1
- package/lib/esm/contract/models/history-dec.js.map +1 -0
- package/lib/esm/contract/trackedModels/History.js +72 -0
- package/lib/esm/contract/trackedModels/History.js.map +1 -0
- package/lib/esm/contract/trackedModels/OtherAudit.js +115 -0
- package/lib/esm/contract/trackedModels/OtherAudit.js.map +1 -0
- package/lib/esm/contract/trackedModels/OtherLeaflet.js +112 -0
- package/lib/esm/contract/trackedModels/OtherLeaflet.js.map +1 -0
- package/lib/esm/contract/trackedModels/OtherLeafletFile.js +62 -0
- package/lib/esm/contract/trackedModels/OtherLeafletFile.js.map +1 -0
- package/lib/esm/contract/trackedModels/OtherMarket.js +81 -0
- package/lib/esm/contract/trackedModels/OtherMarket.js.map +1 -0
- package/lib/esm/contract/trackedModels/OtherProduct.js +74 -0
- package/lib/esm/contract/trackedModels/OtherProduct.js.map +1 -0
- package/lib/esm/contract/trackedModels/OtherProductImage.js +56 -0
- package/lib/esm/contract/trackedModels/OtherProductImage.js.map +1 -0
- package/lib/esm/contract/trackedModels/OtherProductShared.js +96 -0
- package/lib/esm/contract/trackedModels/OtherProductShared.js.map +1 -0
- package/lib/esm/contract/trackedModels/OtherProductStrength.js +82 -0
- package/lib/esm/contract/trackedModels/OtherProductStrength.js.map +1 -0
- package/lib/esm/contracts/ContractAdapter.js +1 -1
- package/lib/esm/contracts/ContractAdapter.js.map +1 -0
- package/lib/esm/contracts/ContractContext.js +1 -1
- package/lib/esm/contracts/ContractContext.js.map +1 -0
- package/lib/esm/contracts/FabricContractDispatch.js +1 -1
- package/lib/esm/contracts/FabricContractDispatch.js.map +1 -0
- package/lib/esm/contracts/FabricContractPaginator.js +1 -1
- package/lib/esm/contracts/FabricContractPaginator.js.map +1 -0
- package/lib/esm/contracts/FabricContractRepository.js +1 -1
- package/lib/esm/contracts/FabricContractRepository.js.map +1 -0
- package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js +1 -1
- package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js.map +1 -0
- package/lib/esm/contracts/FabricContractSequence.js +1 -1
- package/lib/esm/contracts/FabricContractSequence.js.map +1 -0
- package/lib/esm/contracts/FabricContractStatement.js +1 -1
- package/lib/esm/contracts/FabricContractStatement.js.map +1 -0
- package/lib/esm/contracts/MigrationContract.js +1 -1
- package/lib/esm/contracts/MigrationContract.js.map +1 -0
- package/lib/esm/contracts/PrivateSequence.js +1 -1
- package/lib/esm/contracts/PrivateSequence.js.map +1 -0
- package/lib/esm/contracts/auth/decorators.js +1 -1
- package/lib/esm/contracts/auth/decorators.js.map +1 -0
- package/lib/esm/contracts/auth/index.js +1 -1
- package/lib/esm/contracts/auth/index.js.map +1 -0
- package/lib/esm/contracts/bootstrap.js +11 -0
- package/lib/esm/contracts/bootstrap.js.map +1 -0
- package/lib/esm/contracts/crud/crud-contract.js +2 -1
- package/lib/esm/contracts/crud/crud-contract.js.map +1 -0
- package/lib/esm/contracts/crud/index.js +1 -1
- package/lib/esm/contracts/crud/index.js.map +1 -0
- package/lib/esm/contracts/crud/serialized-crud-contract.js +1 -1
- package/lib/esm/contracts/crud/serialized-crud-contract.js.map +1 -0
- package/lib/esm/contracts/erc20/erc20contract.js +1 -1
- package/lib/esm/contracts/erc20/erc20contract.js.map +1 -0
- package/lib/esm/contracts/erc20/index.js +1 -1
- package/lib/esm/contracts/erc20/index.js.map +1 -0
- package/lib/esm/contracts/erc20/models.js +1 -1
- package/lib/esm/contracts/erc20/models.js.map +1 -0
- package/lib/esm/contracts/fabric-overrides.js +61 -0
- package/lib/esm/contracts/fabric-overrides.js.map +1 -0
- package/lib/esm/contracts/index.js +2 -1
- package/lib/esm/contracts/index.js.map +1 -0
- package/lib/esm/contracts/logging.js +1 -1
- package/lib/esm/contracts/logging.js.map +1 -0
- package/lib/esm/contracts/overrides.js +1 -1
- package/lib/esm/contracts/overrides.js.map +1 -0
- package/lib/esm/contracts/types.js +1 -1
- package/lib/esm/contracts/types.js.map +1 -0
- package/lib/esm/contracts/uuid.js +1 -1
- package/lib/esm/contracts/uuid.js.map +1 -0
- package/lib/esm/index.js +1 -1
- package/lib/esm/index.js.map +1 -0
- package/lib/esm/shared/ClientSerializer.js +1 -1
- package/lib/esm/shared/ClientSerializer.js.map +1 -0
- package/lib/esm/shared/DeterministicSerializer.js +1 -1
- package/lib/esm/shared/DeterministicSerializer.js.map +1 -0
- package/lib/esm/shared/SimpleDeterministicSerializer.js +1 -1
- package/lib/esm/shared/SimpleDeterministicSerializer.js.map +1 -0
- package/lib/esm/shared/constants.js +1 -1
- package/lib/esm/shared/constants.js.map +1 -0
- package/lib/esm/shared/decorators.js +1 -1
- package/lib/esm/shared/decorators.js.map +1 -0
- package/lib/esm/shared/erc20/erc20-constants.js +1 -1
- package/lib/esm/shared/erc20/erc20-constants.js.map +1 -0
- package/lib/esm/shared/erc20/index.js +1 -1
- package/lib/esm/shared/erc20/index.js.map +1 -0
- package/lib/esm/shared/errors.js +1 -1
- package/lib/esm/shared/errors.js.map +1 -0
- package/lib/esm/shared/events.js +1 -1
- package/lib/esm/shared/events.js.map +1 -0
- package/lib/esm/shared/fabric-types.js +1 -1
- package/lib/esm/shared/fabric-types.js.map +1 -0
- package/lib/esm/shared/index.js +1 -1
- package/lib/esm/shared/index.js.map +1 -0
- package/lib/esm/shared/interfaces/Checkable.js +1 -1
- package/lib/esm/shared/interfaces/Checkable.js.map +1 -0
- package/lib/esm/shared/interfaces/index.js +1 -1
- package/lib/esm/shared/interfaces/index.js.map +1 -0
- package/lib/esm/shared/math.js +1 -1
- package/lib/esm/shared/math.js.map +1 -0
- package/lib/esm/shared/model/FabricBaseModel.js +1 -1
- package/lib/esm/shared/model/FabricBaseModel.js.map +1 -0
- package/lib/esm/shared/model/FabricIdentifiedBaseModel.js +1 -1
- package/lib/esm/shared/model/FabricIdentifiedBaseModel.js.map +1 -0
- package/lib/esm/shared/model/Identity.js +1 -1
- package/lib/esm/shared/model/Identity.js.map +1 -0
- package/lib/esm/shared/model/IdentityCredentials.js +1 -1
- package/lib/esm/shared/model/IdentityCredentials.js.map +1 -0
- package/lib/esm/shared/model/index.js +1 -1
- package/lib/esm/shared/model/index.js.map +1 -0
- package/lib/esm/shared/overrides/Model.js +1 -1
- package/lib/esm/shared/overrides/Model.js.map +1 -0
- package/lib/esm/shared/overrides/index.js +1 -1
- package/lib/esm/shared/overrides/index.js.map +1 -0
- package/lib/esm/shared/overrides/overrides.js +1 -1
- package/lib/esm/shared/overrides/overrides.js.map +1 -0
- package/lib/esm/shared/types.js +1 -1
- package/lib/esm/shared/types.js.map +1 -0
- package/lib/esm/version.js +2 -2
- package/lib/esm/version.js.map +1 -0
- package/lib/types/contract/OtherLeafletContract.d.cts +18 -0
- package/lib/types/contract/OtherLeafletContract.d.mts +18 -0
- package/lib/types/contract/OtherLeafletFileContract.d.cts +17 -0
- package/lib/types/contract/OtherLeafletFileContract.d.mts +17 -0
- package/lib/types/contract/index.d.cts +1 -0
- package/lib/types/contract/index.d.mts +1 -0
- package/lib/types/contract/models/OtherBatchShared.d.cts +43 -6
- package/lib/types/contract/models/OtherBatchShared.d.mts +43 -6
- package/lib/types/contract/trackedModels/History.d.cts +9 -0
- package/lib/types/contract/trackedModels/History.d.mts +9 -0
- package/lib/types/contract/trackedModels/OtherAudit.d.cts +15 -0
- package/lib/types/contract/trackedModels/OtherAudit.d.mts +15 -0
- package/lib/types/contract/trackedModels/OtherLeaflet.d.cts +16 -0
- package/lib/types/contract/trackedModels/OtherLeaflet.d.mts +16 -0
- package/lib/types/contract/trackedModels/OtherLeafletFile.d.cts +10 -0
- package/lib/types/contract/trackedModels/OtherLeafletFile.d.mts +10 -0
- package/lib/types/contract/trackedModels/OtherMarket.d.cts +13 -0
- package/lib/types/contract/trackedModels/OtherMarket.d.mts +13 -0
- package/lib/types/contract/trackedModels/OtherProduct.d.cts +12 -0
- package/lib/types/contract/trackedModels/OtherProduct.d.mts +12 -0
- package/lib/types/contract/trackedModels/OtherProductImage.d.cts +9 -0
- package/lib/types/contract/trackedModels/OtherProductImage.d.mts +9 -0
- package/lib/types/contract/trackedModels/OtherProductShared.d.cts +18 -0
- package/lib/types/contract/trackedModels/OtherProductShared.d.mts +18 -0
- package/lib/types/contract/trackedModels/OtherProductStrength.d.cts +12 -0
- package/lib/types/contract/trackedModels/OtherProductStrength.d.mts +12 -0
- package/lib/types/contracts/bootstrap.d.cts +10 -0
- package/lib/types/contracts/bootstrap.d.mts +10 -0
- package/lib/types/contracts/crud/crud-contract.d.cts +1 -0
- package/lib/types/contracts/crud/crud-contract.d.mts +1 -0
- package/lib/types/contracts/fabric-overrides.d.cts +1 -0
- package/lib/types/contracts/fabric-overrides.d.mts +1 -0
- package/lib/types/contracts/index.d.cts +1 -0
- package/lib/types/contracts/index.d.mts +1 -0
- package/lib/types/version.d.cts +1 -1
- package/lib/types/version.d.mts +1 -1
- package/package.json +31 -5
|
@@ -1190,5 +1190,5 @@ class FabricContractAdapter extends for_couchdb_1.CouchDBAdapter {
|
|
|
1190
1190
|
exports.FabricContractAdapter = FabricContractAdapter;
|
|
1191
1191
|
FabricContractAdapter.decoration();
|
|
1192
1192
|
core_1.Adapter.setCurrent(constants_js_1.FabricFlavour);
|
|
1193
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udHJhY3RBZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRyYWN0cy9Db250cmFjdEFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGNBQWMsRUFDZCxXQUFXLEdBR1osTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXZFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSw2QkFBMEI7QUFDMUQsT0FBTyxFQUNMLGVBQWUsRUFFZixxQkFBcUIsRUFDckIsYUFBYSxFQUNiLGFBQWEsRUFDYixhQUFhLEVBQ2IsUUFBUSxFQUNSLGNBQWMsRUFHZCxrQkFBa0IsR0FDbkIsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBRUwsTUFBTSxJQUFJLFlBQVksRUFDdEIsUUFBUSxFQUNSLFFBQVEsSUFBSSxjQUFjLEdBQzNCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFVLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFDTCxlQUFlLEVBSWYsZ0JBQWdCLEVBQ2hCLE9BQU8sRUFJUCxVQUFVLEVBQ1YsV0FBVyxFQUNYLGNBQWMsRUFDZCxhQUFhLEVBQ2Isa0JBQWtCLEVBQ2xCLGNBQWMsRUFDZCxlQUFlLEVBRWYsT0FBTyxFQVNQLHdCQUF3QixFQUd4QixlQUFlLEVBQ2YseUJBQXlCLEdBQzFCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLHdCQUF3QixFQUFFLHNDQUFtQztBQU90RSxPQUFPLEVBQUUsZUFBZSxFQUFFLHFDQUFrQztBQUM1RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsb0NBQWlDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsaUNBQTRCO0FBQ3BELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxxREFBZ0Q7QUFDeEYsT0FBTyxFQUNMLEtBQUss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IHtcbiAgQ291Y2hEQkFkYXB0ZXIsXG4gIENvdWNoREJLZXlzLFxuICBNYW5nb1F1ZXJ5LFxuICBWaWV3UmVzcG9uc2UsXG59IGZyb20gXCJAZGVjYWYtdHMvZm9yLWNvdWNoZGJcIjtcbmltcG9ydCB7IE1vZGVsLCBWYWxpZGF0aW9uS2V5cyB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IEZhYnJpY0NvbnRyYWN0RmxhZ3MgfSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHsgRmFicmljQ29udHJhY3RDb250ZXh0IH0gZnJvbSBcIi4vQ29udHJhY3RDb250ZXh0XCI7XG5pbXBvcnQge1xuICBCYWRSZXF1ZXN0RXJyb3IsXG4gIEJhc2VFcnJvcixcbiAgQnVsa0NydWRPcGVyYXRpb25LZXlzLFxuICBDb25mbGljdEVycm9yLFxuICBJbnRlcm5hbEVycm9yLFxuICBOb3RGb3VuZEVycm9yLFxuICBvbkNyZWF0ZSxcbiAgb25DcmVhdGVVcGRhdGUsXG4gIE9wZXJhdGlvbktleXMsXG4gIFByaW1hcnlLZXlUeXBlLFxuICBTZXJpYWxpemF0aW9uRXJyb3IsXG59IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHtcbiAgQ29udGV4dCBhcyBDdHgsXG4gIE9iamVjdCBhcyBGYWJyaWNPYmplY3QsXG4gIFByb3BlcnR5LFxuICBQcm9wZXJ0eSBhcyBGYWJyaWNQcm9wZXJ0eSxcbn0gZnJvbSBcImZhYnJpYy1jb250cmFjdC1hcGlcIjtcbmltcG9ydCB7IExvZ2dlciwgTG9nZ2luZyB9IGZyb20gXCJAZGVjYWYtdHMvbG9nZ2luZ1wiO1xuaW1wb3J0IHtcbiAgUGVyc2lzdGVuY2VLZXlzLFxuICBSZWxhdGlvbnNNZXRhZGF0YSxcbiAgU2VxdWVuY2UsXG4gIFNlcXVlbmNlT3B0aW9ucyxcbiAgVW5zdXBwb3J0ZWRFcnJvcixcbiAgQWRhcHRlcixcbiAgQWRhcHRlckZsYWdzLFxuICBQcmVwYXJlZE1vZGVsLFxuICBSZXBvc2l0b3J5LFxuICBRdWVyeUVycm9yLFxuICBQYWdpbmdFcnJvcixcbiAgTWlncmF0aW9uRXJyb3IsXG4gIE9ic2VydmVyRXJyb3IsXG4gIEF1dGhvcml6YXRpb25FcnJvcixcbiAgRm9yYmlkZGVuRXJyb3IsXG4gIENvbm5lY3Rpb25FcnJvcixcbiAgQ29udGV4dHVhbGl6ZWRBcmdzLFxuICBDb250ZXh0LFxuICBSYXdSZXN1bHQsXG4gIFBhZ2luYXRvcixcbiAgQ29udGV4dHVhbEFyZ3MsXG4gIE1heWJlQ29udGV4dHVhbEFyZyxcbiAgTWV0aG9kT3JPcGVyYXRpb24sXG4gIEFsbE9wZXJhdGlvbktleXMsXG4gIEZsYWdzT2YsXG4gIENvbnRleHRPZixcbiAgVHJhbnNhY3Rpb25PcGVyYXRpb25LZXlzLFxuICBFdmVudElkcyxcbiAgRGlzcGF0Y2gsXG4gIHByb21pc2VTZXF1ZW5jZSxcbiAgcmVzb2x2ZUJ1bGtTZXF1ZW5jZVJlc3VsdCxcbn0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBGYWJyaWNDb250cmFjdFJlcG9zaXRvcnkgfSBmcm9tIFwiLi9GYWJyaWNDb250cmFjdFJlcG9zaXRvcnlcIjtcbmltcG9ydCB7XG4gIENoYWluY29kZVN0dWIsXG4gIENsaWVudElkZW50aXR5LFxuICBJdGVyYXRvcnMsXG4gIFN0YXRlUXVlcnlSZXNwb25zZSxcbn0gZnJvbSBcImZhYnJpYy1zaGltLWFwaVwiO1xuaW1wb3J0IHsgRmFicmljU3RhdGVtZW50IH0gZnJvbSBcIi4vRmFicmljQ29udHJhY3RTdGF0ZW1lbnRcIjtcbmltcG9ydCB7IEZhYnJpY0NvbnRyYWN0U2VxdWVuY2UgfSBmcm9tIFwiLi9GYWJyaWNDb250cmFjdFNlcXVlbmNlXCI7XG5pbXBvcnQgeyBGYWJyaWNGbGF2b3VyIH0gZnJvbSBcIi4uL3NoYXJlZC9jb25zdGFudHNcIjtcbmltcG9ydCB7IFNpbXBsZURldGVybWluaXN0aWNTZXJpYWxpemVyIH0gZnJvbSBcIi4uL3NoYXJlZC9TaW1wbGVEZXRlcm1pbmlzdGljU2VyaWFsaXplclwiO1xuaW1wb3J0IHtcbiAgYXBwbHksXG4gIENvbnN0cnVjdG9yLFxuICBEZWNvcmF0aW9uLFxuICBNZXRhZGF0YSxcbiAgcHJvcE1ldGFkYXRhLFxufSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcbmltcG9ydCB7IEZhYnJpY0NvbnRyYWN0UGFnaW5hdG9yIH0gZnJvbSBcIi4vRmFicmljQ29udHJhY3RQYWdpbmF0b3JcIjtcbmltcG9ydCB7IE1pc3NpbmdDb250ZXh0RXJyb3IgfSBmcm9tIFwiLi4vc2hhcmVkL2Vycm9yc1wiO1xuaW1wb3J0IHsgU2VncmVnYXRlZE1vZGVsIH0gZnJvbSBcIi4uL3NoYXJlZC9pbmRleFwiO1xuaW1wb3J0IHsgRmFicmljQ29udHJhY3REaXNwYXRjaCB9IGZyb20gXCIuL0ZhYnJpY0NvbnRyYWN0RGlzcGF0Y2hcIjtcblxuZXhwb3J0IHR5cGUgRmFicmljQ29udGV4dHVhbGl6ZWRBcmdzPFxuICBBUkdTIGV4dGVuZHMgYW55W10gPSBhbnlbXSxcbiAgRVhURU5EIGV4dGVuZHMgYm9vbGVhbiA9IGZhbHNlLFxuPiA9IENvbnRleHR1YWxpemVkQXJnczxGYWJyaWNDb250cmFjdENvbnRleHQsIEFSR1MsIEVYVEVORD4gJiB7XG4gIHN0dWI6IENoYWluY29kZVN0dWI7XG4gIGlkZW50aXR5OiBDbGllbnRJZGVudGl0eTtcbn07XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFNldHMgdGhlIGNyZWF0b3Igb3IgdXBkYXRlciBmaWVsZCBpbiBhIG1vZGVsIGJhc2VkIG9uIHRoZSB1c2VyIGluIHRoZSBjb250ZXh0XG4gKiBAc3VtbWFyeSBDYWxsYmFjayBmdW5jdGlvbiB1c2VkIGluIGRlY29yYXRvcnMgdG8gYXV0b21hdGljYWxseSBzZXQgdGhlIGNyZWF0ZWRfYnkgb3IgdXBkYXRlZF9ieSBmaWVsZHNcbiAqIHdpdGggdGhlIHVzZXJuYW1lIGZyb20gdGhlIGNvbnRleHQgd2hlbiBhIGRvY3VtZW50IGlzIGNyZWF0ZWQgb3IgdXBkYXRlZFxuICogQHRlbXBsYXRlIE0gLSBUeXBlIGV4dGVuZGluZyBNb2RlbFxuICogQHRlbXBsYXRlIFIgLSBUeXBlIGV4dGVuZGluZyBOYW5vUmVwb3NpdG9yeTxNPlxuICogQHRlbXBsYXRlIFYgLSBUeXBlIGV4dGVuZGluZyBSZWxhdGlvbnNNZXRhZGF0YVxuICogQHBhcmFtIHtSfSB0aGlzIC0gVGhlIHJlcG9zaXRvcnkgaW5zdGFuY2VcbiAqIEBwYXJhbSB7RmFicmljQ29udHJhY3RDb250ZXh0fSBjb250ZXh0IC0gVGhlIG9wZXJhdGlvbiBjb250ZXh0IGNvbnRhaW5pbmcgdXNlciBpbmZvcm1hdGlvblxuICogQHBhcmFtIHtWfSBkYXRhIC0gVGhlIHJlbGF0aW9uIG1ldGFkYXRhXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IC0gVGhlIHByb3BlcnR5IGtleSB0byBzZXQgd2l0aCB0aGUgdXNlcm5hbWVcbiAqIEBwYXJhbSB7TX0gbW9kZWwgLSBUaGUgbW9kZWwgaW5zdGFuY2UgYmVpbmcgY3JlYXRlZCBvciB1cGRhdGVkXG4gKiBAcmV0dXJuIHtQcm9taXNlPHZvaWQ+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBvcGVyYXRpb24gaXMgY29tcGxldGVcbiAqIEBmdW5jdGlvbiBjcmVhdGVkQnlPbkZhYnJpY0NyZWF0ZVVwZGF0ZVxuICogQG1lbWJlck9mIG1vZHVsZTpmYWJyaWMuY29udHJhY3RzXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IEYgYXMgY3JlYXRlZEJ5T25OYW5vQ3JlYXRlVXBkYXRlXG4gKiAgIHBhcnRpY2lwYW50IEMgYXMgQ29udGV4dFxuICogICBwYXJ0aWNpcGFudCBNIGFzIE1vZGVsXG4gKiAgIEYtPj5DOiBnZXQoXCJ1c2VyXCIpXG4gKiAgIEMtLT4+RjogdXNlciBvYmplY3RcbiAqICAgRi0+Pk06IHNldCBrZXkgdG8gdXNlci5uYW1lXG4gKiAgIE5vdGUgb3ZlciBGOiBJZiBubyB1c2VyIGluIGNvbnRleHRcbiAqICAgRi0tPj5GOiB0aHJvdyBVbnN1cHBvcnRlZEVycm9yXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVkQnlPbkZhYnJpY0NyZWF0ZVVwZGF0ZTxcbiAgTSBleHRlbmRzIE1vZGVsLFxuICBSIGV4dGVuZHMgRmFicmljQ29udHJhY3RSZXBvc2l0b3J5PE0+LFxuICBWIGV4dGVuZHMgUmVsYXRpb25zTWV0YWRhdGEsXG4+KFxuICB0aGlzOiBSLFxuICBjb250ZXh0OiBDb250ZXh0T2Y8Uj4sXG4gIGRhdGE6IFYsXG4gIGtleToga2V5b2YgTSxcbiAgbW9kZWw6IE1cbik6IFByb21pc2U8dm9pZD4ge1xuICB0cnkge1xuICAgIGNvbnN0IHVzZXIgPSBjb250ZXh0LmdldChcImlkZW50aXR5XCIpIGFzIENsaWVudElkZW50aXR5O1xuICAgIG1vZGVsW2tleV0gPSB1c2VyLmdldElEKCkgYXMgTVt0eXBlb2Yga2V5XTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRFcnJvcihcbiAgICAgIFwiTm8gVXNlciBmb3VuZCBpbiBjb250ZXh0LiBQbGVhc2UgcHJvdmlkZSBhIHVzZXIgaW4gdGhlIGNvbnRleHRcIlxuICAgICk7XG4gIH1cbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQWRhcHRlciBmb3IgSHlwZXJsZWRnZXIgRmFicmljIGNoYWluY29kZSBzdGF0ZSBkYXRhYmFzZSBvcGVyYXRpb25zXG4gKiBAc3VtbWFyeSBQcm92aWRlcyBhIENvdWNoREItbGlrZSBpbnRlcmZhY2UgZm9yIGludGVyYWN0aW5nIHdpdGggdGhlIEZhYnJpYyBzdGF0ZSBkYXRhYmFzZSBmcm9tIHdpdGhpbiBhIGNoYWluY29kZSBjb250cmFjdFxuICogQHRlbXBsYXRlIHZvaWQgLSBObyBjb25maWd1cmF0aW9uIG5lZWRlZCBmb3IgY29udHJhY3QgYWRhcHRlclxuICogQHRlbXBsYXRlIEZhYnJpY0NvbnRyYWN0RmxhZ3MgLSBGbGFncyBzcGVjaWZpYyB0byBGYWJyaWMgY29udHJhY3Qgb3BlcmF0aW9uc1xuICogQHRlbXBsYXRlIEZhYnJpY0NvbnRyYWN0Q29udGV4dCAtIENvbnRleHQgdHlwZSBmb3IgRmFicmljIGNvbnRyYWN0IG9wZXJhdGlvbnNcbiAqIEBjbGFzcyBGYWJyaWNDb250cmFjdEFkYXB0ZXJcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBJbiBhIEZhYnJpYyBjaGFpbmNvZGUgY29udHJhY3QgY2xhc3NcbiAqIGltcG9ydCB7IEZhYnJpY0NvbnRyYWN0QWRhcHRlciB9IGZyb20gJ0BkZWNhZi10cy9mb3ItZmFicmljJztcbiAqXG4gKiBleHBvcnQgY2xhc3MgTXlDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHtcbiAqICAgcHJpdmF0ZSBhZGFwdGVyID0gbmV3IEZhYnJpY0NvbnRyYWN0QWRhcHRlcigpO1xuICpcbiAqICAgQFRyYW5zYWN0aW9uKClcbiAqICAgYXN5bmMgY3JlYXRlQXNzZXQoY3R4OiBDb250ZXh0LCBpZDogc3RyaW5nLCBkYXRhOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAqICAgICBjb25zdCBtb2RlbCA9IHsgaWQsIGRhdGEsIHRpbWVzdGFtcDogRGF0ZS5ub3coKSB9O1xuICogICAgIGF3YWl0IHRoaXMuYWRhcHRlci5jcmVhdGUoJ2Fzc2V0cycsIGlkLCBtb2RlbCwge30sIHsgc3R1YjogY3R4LnN0dWIgfSk7XG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBDb250cmFjdFxuICogICBwYXJ0aWNpcGFudCBGYWJyaWNDb250cmFjdEFkYXB0ZXJcbiAqICAgcGFydGljaXBhbnQgU3R1YlxuICogICBwYXJ0aWNpcGFudCBTdGF0ZURCXG4gKlxuICogICBDb250cmFjdC0+PkZhYnJpY0NvbnRyYWN0QWRhcHRlcjogY3JlYXRlKHRhYmxlTmFtZSwgaWQsIG1vZGVsLCB0cmFuc2llbnQsIGN0eClcbiAqICAgRmFicmljQ29udHJhY3RBZGFwdGVyLT4+RmFicmljQ29udHJhY3RBZGFwdGVyOiBTZXJpYWxpemUgbW9kZWwgdG8gSlNPTlxuICogICBGYWJyaWNDb250cmFjdEFkYXB0ZXItPj5TdHViOiBwdXRTdGF0ZShpZCwgc2VyaWFsaXplZERhdGEpXG4gKiAgIFN0dWItPj5TdGF0ZURCOiBXcml0ZSBkYXRhXG4gKiAgIFN0YXRlREItLT4+U3R1YjogU3VjY2Vzc1xuICogICBTdHViLS0+PkZhYnJpY0NvbnRyYWN0QWRhcHRlcjogU3VjY2Vzc1xuICogICBGYWJyaWNDb250cmFjdEFkYXB0ZXItLT4+Q29udHJhY3Q6IG1vZGVsXG4gKi9cbmV4cG9ydCBjbGFzcyBGYWJyaWNDb250cmFjdEFkYXB0ZXIgZXh0ZW5kcyBDb3VjaERCQWRhcHRlcjxcbiAgYW55LFxuICB2b2lkLFxuICBGYWJyaWNDb250cmFjdENvbnRleHRcbj4ge1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBQUklWQVRFX0JPT0tNQVJLX1BSRUZJWCA9IFwiX19kY2ZfcHZ0Ym1fX1wiO1xuXG4gIHByaXZhdGUgc3RhdGljIHBhcnNlU3ludGhldGljUHJpdmF0ZUJvb2ttYXJrKFxuICAgIGJvb2ttYXJrOiB1bmtub3duXG4gICk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHR5cGVvZiBib29rbWFyayAhPT0gXCJzdHJpbmdcIikgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBpZiAoIWJvb2ttYXJrLnN0YXJ0c1dpdGgoRmFicmljQ29udHJhY3RBZGFwdGVyLlBSSVZBVEVfQk9PS01BUktfUFJFRklYKSlcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgY29uc3QgcmF3ID0gYm9va21hcmsuc2xpY2UoXG4gICAgICBGYWJyaWNDb250cmFjdEFkYXB0ZXIuUFJJVkFURV9CT09LTUFSS19QUkVGSVgubGVuZ3RoXG4gICAgKTtcbiAgICBjb25zdCBwYXJzZWQgPSBOdW1iZXIocmF3KTtcbiAgICByZXR1cm4gTnVtYmVyLmlzSW50ZWdlcihwYXJzZWQpICYmIHBhcnNlZCA+PSAwID8gcGFyc2VkIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgYnVpbGRTeW50aGV0aWNQcml2YXRlQm9va21hcmsob2Zmc2V0OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHtGYWJyaWNDb250cmFjdEFkYXB0ZXIuUFJJVkFURV9CT09LTUFSS19QUkVGSVh9JHtvZmZzZXR9YDtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBnZXRDbGllbnQoKTogdm9pZCB7XG4gICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkRXJyb3IoXCJDbGllbnQgaXMgbm90IHN1cHBvcnRlZCBpbiBGYWJyaWMgY29udHJhY3RzXCIpO1xuICB9XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVGV4dCBkZWNvZGVyIGZvciBjb252ZXJ0aW5nIGJpbmFyeSBkYXRhIHRvIHN0cmluZ3NcbiAgICovXG4gIHByaXZhdGUgc3RhdGljIHRleHREZWNvZGVyID0gbmV3IFRleHREZWNvZGVyKFwidXRmOFwiKTtcblxuICBwcm90ZWN0ZWQgc3RhdGljIHJlYWRvbmx5IHNlcmlhbGl6ZXIgPSBuZXcgU2ltcGxlRGV0ZXJtaW5pc3RpY1NlcmlhbGl6ZXIoKTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENvbnRleHQgY29uc3RydWN0b3IgZm9yIHRoaXMgYWRhcHRlclxuICAgKiBAc3VtbWFyeSBPdmVycmlkZXMgdGhlIGJhc2UgQ29udGV4dCBjb25zdHJ1Y3RvciB3aXRoIEZhYnJpY0NvbnRyYWN0Q29udGV4dFxuICAgKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGdldCBDb250ZXh0KCk6IENvbnN0cnVjdG9yPEZhYnJpY0NvbnRyYWN0Q29udGV4dD4ge1xuICAgIHJldHVybiBGYWJyaWNDb250cmFjdENvbnRleHQ7XG4gIH1cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBHZXRzIHRoZSByZXBvc2l0b3J5IGNvbnN0cnVjdG9yIGZvciB0aGlzIGFkYXB0ZXJcbiAgICogQHN1bW1hcnkgUmV0dXJucyB0aGUgRmFicmljQ29udHJhY3RSZXBvc2l0b3J5IGNvbnN0cnVjdG9yIGZvciBjcmVhdGluZyByZXBvc2l0b3JpZXNcbiAgICogQHRlbXBsYXRlIE0gLSBUeXBlIGV4dGVuZGluZyBNb2RlbFxuICAgKiBAcmV0dXJuIHtDb25zdHJ1Y3RvcjxSZXBvc2l0b3J5PE0sIE1hbmdvUXVlcnksIEZhYnJpY0NvbnRyYWN0QWRhcHRlciwgRmFicmljQ29udHJhY3RGbGFncywgRmFicmljQ29udHJhY3RDb250ZXh0Pj59IFRoZSByZXBvc2l0b3J5IGNvbnN0cnVjdG9yXG4gICAqL1xuICBvdmVycmlkZSByZXBvc2l0b3J5PFxuICAgIFIgZXh0ZW5kcyBSZXBvc2l0b3J5PFxuICAgICAgYW55LFxuICAgICAgQWRhcHRlcjxhbnksIHZvaWQsIE1hbmdvUXVlcnksIENvbnRleHQ8RmFicmljQ29udHJhY3RGbGFncz4+XG4gICAgPixcbiAgPigpOiBDb25zdHJ1Y3RvcjxSPiB7XG4gICAgcmV0dXJuIEZhYnJpY0NvbnRyYWN0UmVwb3NpdG9yeSBhcyB1bmtub3duIGFzIENvbnN0cnVjdG9yPFI+O1xuICB9XG5cbiAgb3ZlcnJpZGUgUGFnaW5hdG9yPE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgcXVlcnk6IE1hbmdvUXVlcnksXG4gICAgc2l6ZTogbnVtYmVyLFxuICAgIGNsYXp6OiBDb25zdHJ1Y3RvcjxNPlxuICApOiBQYWdpbmF0b3I8TSwgYW55LCBNYW5nb1F1ZXJ5PiB7XG4gICAgcmV0dXJuIG5ldyBGYWJyaWNDb250cmFjdFBhZ2luYXRvcih0aGlzLCBxdWVyeSwgc2l6ZSwgY2xhenopO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgU2VxdWVuY2Uob3B0aW9uczogU2VxdWVuY2VPcHRpb25zKTogUHJvbWlzZTxTZXF1ZW5jZT4ge1xuICAgIHJldHVybiBuZXcgRmFicmljQ29udHJhY3RTZXF1ZW5jZShvcHRpb25zLCB0aGlzIGFzIGFueSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgRGlzcGF0Y2goKTogRGlzcGF0Y2g8RmFicmljQ29udHJhY3RBZGFwdGVyPiB7XG4gICAgcmV0dXJuIG5ldyBGYWJyaWNDb250cmFjdERpc3BhdGNoKCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgYSBuZXcgRmFicmljQ29udHJhY3RBZGFwdGVyIGluc3RhbmNlXG4gICAqIEBzdW1tYXJ5IEluaXRpYWxpemVzIGFuIGFkYXB0ZXIgZm9yIGludGVyYWN0aW5nIHdpdGggdGhlIEZhYnJpYyBzdGF0ZSBkYXRhYmFzZVxuICAgKiBAcGFyYW0ge3ZvaWR9IHNjb3BlIC0gTm90IHVzZWQgaW4gdGhpcyBhZGFwdGVyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbYWxpYXNdIC0gT3B0aW9uYWwgYWxpYXMgZm9yIHRoZSBhZGFwdGVyIGluc3RhbmNlXG4gICAqL1xuICBjb25zdHJ1Y3RvcihzY29wZTogdm9pZCwgYWxpYXM/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihzY29wZSwgRmFicmljRmxhdm91ciwgYWxpYXMpO1xuICB9XG5cbiAgb3ZlcnJpZGUgZm9yKGNvbmZpZzogUGFydGlhbDxhbnk+LCAuLi5hcmdzOiBhbnkpOiB0eXBlb2YgdGhpcyB7XG4gICAgcmV0dXJuIHN1cGVyLmZvcihjb25maWcsIC4uLmFyZ3MpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldE1vZGVsRGVmYXVsdHM8TSBleHRlbmRzIE1vZGVsPihjbGF6ejogQ29uc3RydWN0b3I8TT4pIHtcbiAgICBjb25zdCBtID0gbmV3IGNsYXp6KCk7XG4gICAgcmV0dXJuIChNZXRhZGF0YS5wcm9wZXJ0aWVzKGNsYXp6KSB8fCBbXSkucmVkdWNlKFxuICAgICAgKGFjYywgcCkgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIG1bcCBhcyBrZXlvZiBNXSAhPT0gXCJ1bmRlZmluZWRcIilcbiAgICAgICAgICBhY2NbcCBhcyBrZXlvZiBNXSA9IG1bcCBhcyBrZXlvZiBNXTtcbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sXG4gICAgICB7fSBhcyBSZWNvcmQ8a2V5b2YgTSwgYW55PlxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgYSByZWNvcmQgaW4gdGhlIHN0YXRlIGRhdGFiYXNlXG4gICAqIEBzdW1tYXJ5IFNlcmlhbGl6ZXMgYSBtb2RlbCBhbmQgc3RvcmVzIGl0IGluIHRoZSBGYWJyaWMgc3RhdGUgZGF0YWJhc2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRhYmxlTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSB0YWJsZS9jb2xsZWN0aW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVtYmVyfSBpZCAtIFRoZSByZWNvcmQgaWRlbnRpZmllclxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IG1vZGVsIC0gVGhlIHJlY29yZCBkYXRhXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gdHJhbnNpZW50IC0gVHJhbnNpZW50IGRhdGEgKG5vdCB1c2VkIGluIHRoaXMgaW1wbGVtZW50YXRpb24pXG4gICAqIEBwYXJhbSB7Li4uYW55W119IGFyZ3MgLSBBZGRpdGlvbmFsIGFyZ3VtZW50cywgaW5jbHVkaW5nIHRoZSBjaGFpbmNvZGUgc3R1YiBhbmQgbG9nZ2VyXG4gICAqIEByZXR1cm4ge1Byb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBjcmVhdGVkIHJlY29yZFxuICAgKi9cbiAgb3ZlcnJpZGUgYXN5bmMgY3JlYXRlPE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgY2xheno6IENvbnN0cnVjdG9yPE0+LFxuICAgIGlkOiBQcmltYXJ5S2V5VHlwZSxcbiAgICBtb2RlbDogUmVjb3JkPHN0cmluZywgYW55PixcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxDb250ZXh0PEZhYnJpY0NvbnRyYWN0RmxhZ3M+PlxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+IHtcbiAgICBjb25zdCB7IGN0eCwgbG9nIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLmNyZWF0ZSk7XG4gICAgdGhpcy5lbmZvcmNlTWlycm9yQXV0aG9yaXphdGlvbihjbGF6eiwgY3R4KTtcbiAgICBsb2cuaW5mbyhgaW4gQURBUFRFUiBjcmVhdGUgd2l0aCBhcmdzICR7YXJnc31gKTtcbiAgICBjb25zdCB0YWJsZU5hbWUgPSBNb2RlbC50YWJsZU5hbWUoY2xhenopO1xuICAgIGNvbnN0IGNvbXBvc2VkS2V5ID0gY3R4LnN0dWIuY3JlYXRlQ29tcG9zaXRlS2V5KHRhYmxlTmFtZSwgW1N0cmluZyhpZCldKTtcbiAgICBjb25zdCBtaXJyb3JDb2xsZWN0aW9uID0gY3R4LmdldE9yVW5kZWZpbmVkKFwibWlycm9yQ29sbGVjdGlvblwiKSBhc1xuICAgICAgfCBzdHJpbmdcbiAgICAgIHwgdW5kZWZpbmVkO1xuICAgIGNvbnN0IGZ1bGx5U2VncmVnYXRlZCA9IGN0eC5pc0Z1bGx5U2VncmVnYXRlZCAmJiAhbWlycm9yQ29sbGVjdGlvbjtcblxuICAgIGlmICghbWlycm9yQ29sbGVjdGlvbikge1xuICAgICAgbGV0IGV4aXN0aW5nOiBhbnk7XG4gICAgICB0cnkge1xuICAgICAgICBleGlzdGluZyA9IGF3YWl0IHRoaXMucmVhZFN0YXRlKGNvbXBvc2VkS2V5LCBjdHgpO1xuICAgICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZXgtYXNzaWduXG4gICAgICAgIGUgPSB0aGlzLnBhcnNlRXJyb3IoZSBhcyBFcnJvcik7XG4gICAgICAgIGlmICghKGUgaW5zdGFuY2VvZiBOb3RGb3VuZEVycm9yKSkgdGhyb3cgZTtcbiAgICAgIH1cbiAgICAgIGlmIChleGlzdGluZylcbiAgICAgICAgdGhyb3cgbmV3IENvbmZsaWN0RXJyb3IoXG4gICAgICAgICAgYHJlY29yZCB3aXRoIGlkICR7aWR9IGluIHRhYmxlICR7dGFibGVOYW1lfSBhbHJlYWR5IGV4aXN0c2BcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgbG9nLmluZm8oYGFkZGluZyBlbnRyeSB0byAke3RhYmxlTmFtZX0gdGFibGUgd2l0aCBwayAke2lkfWApO1xuXG4gICAgICBpZiAobWlycm9yQ29sbGVjdGlvbikge1xuICAgICAgICBtb2RlbCA9IGF3YWl0IHRoaXMuZm9yUHJpdmF0ZShtaXJyb3JDb2xsZWN0aW9uKS5wdXRTdGF0ZShcbiAgICAgICAgICBjb21wb3NlZEtleSxcbiAgICAgICAgICBtb2RlbCxcbiAgICAgICAgICBjdHhcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRzID0gdGhpcy5nZXRNb2RlbERlZmF1bHRzKGNsYXp6KTtcbiAgICAgICAgLy8gaGFuZGxlIHB1YmxpYyBkYXRhIGlmIG5vdCBmdWxseSBzZWdyZWdhdGVkXG4gICAgICAgIGlmICghZnVsbHlTZWdyZWdhdGVkKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgT2JqZWN0LmtleXMobW9kZWwpLmZpbHRlcigoaykgPT4ge1xuICAgICAgICAgICAgICBpZiAoayA9PT0gQ291Y2hEQktleXMuVEFCTEUpIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgcmV0dXJuICEoXG4gICAgICAgICAgICAgICAgZGVmYXVsdHMgJiZcbiAgICAgICAgICAgICAgICBrIGluIGRlZmF1bHRzICYmXG4gICAgICAgICAgICAgICAgZGVmYXVsdHNbayBhcyBrZXlvZiBNXSA9PT0gbW9kZWxba11cbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pLmxlbmd0aFxuICAgICAgICAgIClcbiAgICAgICAgICAgIG1vZGVsID0gYXdhaXQgdGhpcy5wdXRTdGF0ZShjb21wb3NlZEtleSwgbW9kZWwsIGN0eCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBoYW5kbGUgc2VncmVnYXRlZCB3cml0ZXNcbiAgICAgICAgY29uc3QgZGF0YSA9IGN0eC5nZXRGcm9tQ2hpbGRyZW4oXCJzZWdyZWdhdGVkRGF0YVwiKTtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IGNvbGxlY3Rpb24gaW4gZGF0YSkge1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICAgICAgbW9kZWwsXG4gICAgICAgICAgICAgIGF3YWl0IHRoaXMuZm9yUHJpdmF0ZShjb2xsZWN0aW9uKS5wdXRTdGF0ZShcbiAgICAgICAgICAgICAgICBjb21wb3NlZEtleSxcbiAgICAgICAgICAgICAgICBkYXRhW2NvbGxlY3Rpb25dW2lkIGFzIGFueV0sXG4gICAgICAgICAgICAgICAgY3R4XG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUgYXMgRXJyb3IpO1xuICAgIH1cblxuICAgIHJldHVybiBtb2RlbDtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGNyZWF0ZUFsbDxNIGV4dGVuZHMgTW9kZWw+KFxuICAgIHRhYmxlTmFtZTogQ29uc3RydWN0b3I8TT4sXG4gICAgaWQ6IFByaW1hcnlLZXlUeXBlW10sXG4gICAgbW9kZWw6IFJlY29yZDxzdHJpbmcsIGFueT5bXSxcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxGYWJyaWNDb250cmFjdENvbnRleHQ+XG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55PltdPiB7XG4gICAgaWYgKGlkLmxlbmd0aCAhPT0gbW9kZWwubGVuZ3RoKVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJJZHMgYW5kIG1vZGVscyBtdXN0IGhhdmUgdGhlIHNhbWUgbGVuZ3RoXCIpO1xuICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLmNyZWF0ZUFsbCk7XG4gICAgY29uc3QgdGFibGVMYWJlbCA9IE1vZGVsLnRhYmxlTmFtZSh0YWJsZU5hbWUpO1xuICAgIGxvZy5kZWJ1ZyhgQ3JlYXRpbmcgJHtpZC5sZW5ndGh9IGVudHJpZXMgJHt0YWJsZUxhYmVsfSB0YWJsZWApO1xuICAgIHJldHVybiBQcm9taXNlLmFsbChcbiAgICAgIGlkLm1hcCgoaSwgY291bnQpID0+IHRoaXMuY3JlYXRlKHRhYmxlTmFtZSwgaSwgbW9kZWxbY291bnRdLCAuLi5jdHhBcmdzKSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBSZWFkcyBhIHJlY29yZCBmcm9tIHRoZSBzdGF0ZSBkYXRhYmFzZVxuICAgKiBAc3VtbWFyeSBSZXRyaWV2ZXMgYW5kIGRlc2VyaWFsaXplcyBhIHJlY29yZCBmcm9tIHRoZSBGYWJyaWMgc3RhdGUgZGF0YWJhc2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRhYmxlTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSB0YWJsZS9jb2xsZWN0aW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVtYmVyfSBpZCAtIFRoZSByZWNvcmQgaWRlbnRpZmllclxuICAgKiBAcGFyYW0gey4uLmFueVtdfSBhcmdzIC0gQWRkaXRpb25hbCBhcmd1bWVudHMsIGluY2x1ZGluZyB0aGUgY2hhaW5jb2RlIHN0dWIgYW5kIGxvZ2dlclxuICAgKiBAcmV0dXJuIHtQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgcmV0cmlldmVkIHJlY29yZFxuICAgKi9cbiAgb3ZlcnJpZGUgYXN5bmMgcmVhZDxNIGV4dGVuZHMgTW9kZWw+KFxuICAgIGNsYXp6OiBDb25zdHJ1Y3RvcjxNPixcbiAgICBpZDogUHJpbWFyeUtleVR5cGUsXG4gICAgLi4uYXJnczogQ29udGV4dHVhbEFyZ3M8Q29udGV4dDxGYWJyaWNDb250cmFjdEZsYWdzPj5cbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gICAgY29uc3QgeyBjdHgsIGxvZyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5yZWFkKTtcbiAgICBsb2cuaW5mbyhgaW4gQURBUFRFUiByZWFkIHdpdGggYXJncyAke2FyZ3N9YCk7XG4gICAgY29uc3QgdGFibGVOYW1lID0gTW9kZWwudGFibGVOYW1lKGNsYXp6KTtcblxuICAgIGNvbnN0IGNvbXBvc2VkS2V5ID0gY3R4LnN0dWIuY3JlYXRlQ29tcG9zaXRlS2V5KHRhYmxlTmFtZSwgW1N0cmluZyhpZCldKTtcbiAgICBjb25zdCBtaXJyb3JDb2xsZWN0aW9uID0gY3R4LmdldE9yVW5kZWZpbmVkKFwibWlycm9yQ29sbGVjdGlvblwiKSBhc1xuICAgICAgfCBzdHJpbmdcbiAgICAgIHwgdW5kZWZpbmVkO1xuICAgIGNvbnN0IGlzTWlycm9yID0gY3R4LmdldE9yVW5kZWZpbmVkKFwibWlycm9yXCIpIGFzIGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgaWYgKGlzTWlycm9yICYmIG1pcnJvckNvbGxlY3Rpb24pIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmZvclByaXZhdGUobWlycm9yQ29sbGVjdGlvbikucmVhZFN0YXRlKFxuICAgICAgICAgIGNvbXBvc2VkS2V5LFxuICAgICAgICAgIGN0eFxuICAgICAgICApO1xuICAgICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZSBhcyBFcnJvcik7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBjdHgucHV0KFwibWlycm9yXCIgYXMgYW55LCB1bmRlZmluZWQpO1xuICAgICAgICBjdHgucHV0KFwibWlycm9yQ29sbGVjdGlvblwiIGFzIGFueSwgdW5kZWZpbmVkKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsZXQgbW9kZWw6IFJlY29yZDxzdHJpbmcsIGFueT47XG5cbiAgICB0cnkge1xuICAgICAgbW9kZWwgPSBjdHguaXNGdWxseVNlZ3JlZ2F0ZWRcbiAgICAgICAgPyB7fVxuICAgICAgICA6IGF3YWl0IHRoaXMucmVhZFN0YXRlKGNvbXBvc2VkS2V5LCBjdHgpO1xuICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlIGFzIEVycm9yKTtcbiAgICB9XG5cbiAgICBjb25zdCByZWFkQ29sbGVjdGlvbnMgPSBuZXcgU2V0PHN0cmluZz4oW1xuICAgICAgLi4uKGN0eC5nZXRSZWFkQ29sbGVjdGlvbnMoKSB8fCBbXSksXG4gICAgICAuLi4oY3R4LmNvbnN1bWVSZWFkQ29sbGVjdGlvbnMoKSB8fCBbXSksXG4gICAgXSk7XG4gICAgZm9yIChjb25zdCBjb2wgb2YgcmVhZENvbGxlY3Rpb25zKSB7XG4gICAgICB0cnkge1xuICAgICAgICBPYmplY3QuYXNzaWduKG1vZGVsLCBhd2FpdCB0aGlzLmZvclByaXZhdGUoY29sKS5yZWFkU3RhdGUoY29tcG9zZWRLZXksIGN0eCkpO1xuICAgICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgICBjb25zdCBwYXJzZWQgPSB0aGlzLnBhcnNlRXJyb3IoZSBhcyBFcnJvcik7XG4gICAgICAgIGlmIChwYXJzZWQgaW5zdGFuY2VvZiBOb3RGb3VuZEVycm9yKSBjb250aW51ZTtcbiAgICAgICAgdGhyb3cgcGFyc2VkO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIU9iamVjdC5rZXlzKG1vZGVsKS5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKFxuICAgICAgICBgcmVjb3JkIHdpdGggaWQgJHtpZH0gaW4gdGFibGUgJHt0YWJsZU5hbWV9IGRvZXMgbm90IGV4aXN0YFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBSZXRyaWV2ZXMgbXVsdGlwbGUgcmVjb3JkcyBmcm9tIHRoZSBkYXRhYmFzZVxuICAgKiBAc3VtbWFyeSBGZXRjaGVzIG11bHRpcGxlIHJlY29yZHMgd2l0aCB0aGUgZ2l2ZW4gSURzIGZyb20gdGhlIHNwZWNpZmllZCB0YWJsZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGFibGVOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHRhYmxlIHRvIHJlYWQgZnJvbVxuICAgKiBAcGFyYW0gaWQgLSBUaGUgaWRlbnRpZmllcnMgb2YgdGhlIHJlY29yZHMgdG8gcmV0cmlldmVcbiAgICogQHBhcmFtIHsuLi5hbnlbXX0gYXJncyAtIEFkZGl0aW9uYWwgYXJndW1lbnRzIHNwZWNpZmljIHRvIHRoZSBhZGFwdGVyIGltcGxlbWVudGF0aW9uXG4gICAqIEByZXR1cm4gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gYW4gYXJyYXkgb2YgcmV0cmlldmVkIHJlY29yZHNcbiAgICovXG4gIG92ZXJyaWRlIGFzeW5jIHJlYWRBbGw8TSBleHRlbmRzIE1vZGVsPihcbiAgICBjbGF6ejogQ29uc3RydWN0b3I8TT4sXG4gICAgaWQ6IFByaW1hcnlLZXlUeXBlW10sXG4gICAgLi4uYXJnczogQ29udGV4dHVhbEFyZ3M8Q29udGV4dDxGYWJyaWNDb250cmFjdEZsYWdzPj5cbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+W10+IHtcbiAgICBjb25zdCB7IGxvZywgY3R4IH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLnJlYWRBbGwpO1xuICAgIGNvbnN0IHRhYmxlTmFtZSA9IE1vZGVsLnRhYmxlTmFtZShjbGF6eik7XG4gICAgbG9nLmRlYnVnKGBSZWFkaW5nICR7aWQubGVuZ3RofSBlbnRyaWVzICR7dGFibGVOYW1lfSB0YWJsZWApO1xuICAgIGNvbnN0IGJyZWFrT25TaW5nbGVGYWlsdXJlID0gY3R4LmdldChcImJyZWFrT25TaW5nbGVGYWlsdXJlSW5CdWxrXCIpID8/IHRydWU7XG4gICAgY29uc3QgY29udGludWVPbkVycm9yID0gIWJyZWFrT25TaW5nbGVGYWlsdXJlO1xuXG4gICAgY29uc3QgbWlycm9yQ29sbGVjdGlvbiA9IGN0eC5nZXRPclVuZGVmaW5lZChcIm1pcnJvckNvbGxlY3Rpb25cIikgYXNcbiAgICAgIHwgc3RyaW5nXG4gICAgICB8IHVuZGVmaW5lZDtcbiAgICBjb25zdCBpc01pcnJvciA9IGN0eC5nZXRPclVuZGVmaW5lZChcIm1pcnJvclwiKSBhcyBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgcmVhZE1pcnJvciA9IGFzeW5jIDxNIGV4dGVuZHMgTW9kZWw+KFxuICAgICAgY2xheno6IENvbnN0cnVjdG9yPE0+LFxuICAgICAgaWQ6IFByaW1hcnlLZXlUeXBlLFxuICAgICAgLi4uYXJnczogQ29udGV4dHVhbEFyZ3M8Q29udGV4dDxGYWJyaWNDb250cmFjdEZsYWdzPj5cbiAgICApID0+IHtcbiAgICAgIGlmICghbWlycm9yQ29sbGVjdGlvbilcbiAgICAgICAgdGhyb3cgbmV3IEJhZFJlcXVlc3RFcnJvcihcIk1pc3NpbmcgbWlycm9yIGNvbGxlY3Rpb24gZm9yIG1pcnJvciByZWFkXCIpO1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgeyBjdHgsIGxvZyB9ID0gdGhpcy5sb2dDdHgoYXJncywgcmVhZE1pcnJvcik7XG4gICAgICAgIGxvZy5pbmZvKGBpbiBBREFQVEVSIHJlYWQgd2l0aCBhcmdzICR7YXJnc31gKTtcbiAgICAgICAgY29uc3QgdGFibGVOYW1lID0gTW9kZWwudGFibGVOYW1lKGNsYXp6KTtcblxuICAgICAgICBjb25zdCBjb21wb3NlZEtleSA9IGN0eC5zdHViLmNyZWF0ZUNvbXBvc2l0ZUtleSh0YWJsZU5hbWUsIFtcbiAgICAgICAgICBTdHJpbmcoaWQpLFxuICAgICAgICBdKTtcblxuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5mb3JQcml2YXRlKG1pcnJvckNvbGxlY3Rpb24pLnJlYWRTdGF0ZShcbiAgICAgICAgICBjb21wb3NlZEtleSxcbiAgICAgICAgICBjdHhcbiAgICAgICAgKTtcbiAgICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUgYXMgRXJyb3IpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgdGFza3MgPSBpZC5tYXAoXG4gICAgICAgIChpKSA9PiAoKSA9PlxuICAgICAgICAgIGlzTWlycm9yICYmIG1pcnJvckNvbGxlY3Rpb25cbiAgICAgICAgICAgID8gcmVhZE1pcnJvcihcbiAgICAgICAgICAgICAgICBjbGF6eixcbiAgICAgICAgICAgICAgICBpLFxuICAgICAgICAgICAgICAgIC4uLmFyZ3MsXG4gICAgICAgICAgICAgICAgY3R4Lm92ZXJyaWRlKHsgbm9FbWl0U2luZ2xlOiB0cnVlIH0pXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIDogdGhpcy5yZWFkKGNsYXp6LCBpLCAuLi5hcmdzLCBjdHgub3ZlcnJpZGUoeyBub0VtaXRTaW5nbGU6IHRydWUgfSkpXG4gICAgICApO1xuXG4gICAgICBjb25zdCByYXdSZXN1bHQgPSBjb250aW51ZU9uRXJyb3JcbiAgICAgICAgPyBhd2FpdCBwcm9taXNlU2VxdWVuY2UodGFza3MsIHRydWUpXG4gICAgICAgIDogYXdhaXQgcHJvbWlzZVNlcXVlbmNlKHRhc2tzKTtcbiAgICAgIHJldHVybiByZXNvbHZlQnVsa1NlcXVlbmNlUmVzdWx0KFxuICAgICAgICByYXdSZXN1bHQsXG4gICAgICAgIGNvbnRpbnVlT25FcnJvcixcbiAgICAgICAgbG9nLFxuICAgICAgICBCdWxrQ3J1ZE9wZXJhdGlvbktleXMuUkVBRF9BTExcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUgYXMgRXJyb3IpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBjdHgucHV0KFwibWlycm9yXCIgYXMgYW55LCB1bmRlZmluZWQpO1xuICAgICAgY3R4LnB1dChcIm1pcnJvckNvbGxlY3Rpb25cIiBhcyBhbnksIHVuZGVmaW5lZCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBVcGRhdGVzIGEgcmVjb3JkIGluIHRoZSBzdGF0ZSBkYXRhYmFzZVxuICAgKiBAc3VtbWFyeSBTZXJpYWxpemVzIGEgbW9kZWwgYW5kIHVwZGF0ZXMgaXQgaW4gdGhlIEZhYnJpYyBzdGF0ZSBkYXRhYmFzZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGFibGVOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHRhYmxlL2NvbGxlY3Rpb25cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudW1iZXJ9IGlkIC0gVGhlIHJlY29yZCBpZGVudGlmaWVyXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gbW9kZWwgLSBUaGUgdXBkYXRlZCByZWNvcmQgZGF0YVxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IHRyYW5zaWVudCAtIFRyYW5zaWVudCBkYXRhIChub3QgdXNlZCBpbiB0aGlzIGltcGxlbWVudGF0aW9uKVxuICAgKiBAcGFyYW0gey4uLmFueVtdfSBhcmdzIC0gQWRkaXRpb25hbCBhcmd1bWVudHMsIGluY2x1ZGluZyB0aGUgY2hhaW5jb2RlIHN0dWIgYW5kIGxvZ2dlclxuICAgKiBAcmV0dXJuIHtQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgdXBkYXRlZCByZWNvcmRcbiAgICovXG4gIG92ZXJyaWRlIGFzeW5jIHVwZGF0ZTxNIGV4dGVuZHMgTW9kZWw+KFxuICAgIGNsYXp6OiBDb25zdHJ1Y3RvcjxNPixcbiAgICBpZDogUHJpbWFyeUtleVR5cGUsXG4gICAgbW9kZWw6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgLi4uYXJnczogQ29udGV4dHVhbEFyZ3M8Q29udGV4dDxGYWJyaWNDb250cmFjdEZsYWdzPj5cbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gICAgY29uc3QgeyBjdHgsIGxvZyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy51cGRhdGUpO1xuXG4gICAgdGhpcy5lbmZvcmNlTWlycm9yQXV0aG9yaXphdGlvbihjbGF6eiwgY3R4KTtcbiAgICBsb2cuaW5mbyhgaW4gQURBUFRFUiB1cGRhdGUgd2l0aCBhcmdzICR7YXJnc31gKTtcbiAgICBjb25zdCB0YWJsZU5hbWUgPSBNb2RlbC50YWJsZU5hbWUoY2xhenopO1xuICAgIGNvbnN0IGNvbXBvc2VkS2V5ID0gY3R4LnN0dWIuY3JlYXRlQ29tcG9zaXRlS2V5KHRhYmxlTmFtZSwgW1N0cmluZyhpZCldKTtcbiAgICBjb25zdCBtaXJyb3JDb2xsZWN0aW9uID0gY3R4LmdldE9yVW5kZWZpbmVkKFwibWlycm9yQ29sbGVjdGlvblwiKSBhc1xuICAgICAgfCBzdHJpbmdcbiAgICAgIHwgdW5kZWZpbmVkO1xuXG4gICAgdHJ5IHtcbiAgICAgIGxvZy5pbmZvKGB1cGRhdGluZyBlbnRyeSBpbiAke3RhYmxlTmFtZX0gdGFibGUgd2l0aCBwayAke2lkfWApO1xuXG4gICAgICBpZiAobWlycm9yQ29sbGVjdGlvbikge1xuICAgICAgICBtb2RlbCA9IGF3YWl0IHRoaXMuZm9yUHJpdmF0ZShtaXJyb3JDb2xsZWN0aW9uKS5wdXRTdGF0ZShcbiAgICAgICAgICBjb21wb3NlZEtleSxcbiAgICAgICAgICBtb2RlbCxcbiAgICAgICAgICBjdHhcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRzID0gdGhpcy5nZXRNb2RlbERlZmF1bHRzKGNsYXp6KTtcbiAgICAgICAgLy8gaGFuZGxlIHB1YmxpYyBkYXRhXG4gICAgICAgIGlmIChcbiAgICAgICAgICBPYmplY3Qua2V5cyhtb2RlbCkuZmlsdGVyKChrKSA9PiB7XG4gICAgICAgICAgICBpZiAoayA9PT0gQ291Y2hEQktleXMuVEFCTEUpIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybiAhKFxuICAgICAgICAgICAgICBkZWZhdWx0cyAmJlxuICAgICAgICAgICAgICBrIGluIGRlZmF1bHRzICYmXG4gICAgICAgICAgICAgIGRlZmF1bHRzW2sgYXMga2V5b2YgTV0gPT09IG1vZGVsW2tdXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pLmxlbmd0aFxuICAgICAgICApXG4gICAgICAgICAgbW9kZWwgPSBhd2FpdCB0aGlzLnB1dFN0YXRlKGNvbXBvc2VkS2V5LCBtb2RlbCwgY3R4KTtcblxuICAgICAgICAvLyBoYW5kbGUgc2VncmVnYXRlZCB3cml0ZXNcbiAgICAgICAgY29uc3QgZGF0YSA9IGN0eC5nZXRGcm9tQ2hpbGRyZW4oXCJzZWdyZWdhdGVkRGF0YVwiKTtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IGNvbGxlY3Rpb24gaW4gZGF0YSkge1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICAgICAgbW9kZWwsXG4gICAgICAgICAgICAgIGF3YWl0IHRoaXMuZm9yUHJpdmF0ZShjb2xsZWN0aW9uKS5wdXRTdGF0ZShcbiAgICAgICAgICAgICAgICBjb21wb3NlZEtleSxcbiAgICAgICAgICAgICAgICBkYXRhW2NvbGxlY3Rpb25dW2lkIGFzIGFueV0sXG4gICAgICAgICAgICAgICAgY3R4XG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUgYXMgRXJyb3IpO1xuICAgIH1cblxuICAgIHJldHVybiBtb2RlbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRGVsZXRlcyBhIHJlY29yZCBmcm9tIHRoZSBzdGF0ZSBkYXRhYmFzZVxuICAgKiBAc3VtbWFyeSBSZXRyaWV2ZXMgYSByZWNvcmQgYW5kIHRoZW4gcmVtb3ZlcyBpdCBmcm9tIHRoZSBGYWJyaWMgc3RhdGUgZGF0YWJhc2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRhYmxlTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSB0YWJsZS9jb2xsZWN0aW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVtYmVyfSBpZCAtIFRoZSByZWNvcmQgaWRlbnRpZmllciB0byBkZWxldGVcbiAgICogQHBhcmFtIHsuLi5hbnlbXX0gYXJncyAtIEFkZGl0aW9uYWwgYXJndW1lbnRzLCBpbmNsdWRpbmcgdGhlIGNoYWluY29kZSBzdHViIGFuZCBsb2dnZXJcbiAgICogQHJldHVybiB7UHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGRlbGV0ZWQgcmVjb3JkXG4gICAqL1xuICBhc3luYyBkZWxldGU8TSBleHRlbmRzIE1vZGVsPihcbiAgICBjbGF6ejogQ29uc3RydWN0b3I8TT4sXG4gICAgaWQ6IFByaW1hcnlLZXlUeXBlLFxuICAgIC4uLmFyZ3M6IENvbnRleHR1YWxBcmdzPENvbnRleHQ8RmFicmljQ29udHJhY3RGbGFncz4+XG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj4ge1xuICAgIGNvbnN0IHsgY3R4LCBsb2cgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMuZGVsZXRlKTtcblxuICAgIHRoaXMuZW5mb3JjZU1pcnJvckF1dGhvcml6YXRpb24oY2xhenosIGN0eCk7XG4gICAgY29uc3QgdGFibGVOYW1lID0gTW9kZWwudGFibGVOYW1lKGNsYXp6KTtcblxuICAgIGNvbnN0IGNvbXBvc2VkS2V5ID0gY3R4LnN0dWIuY3JlYXRlQ29tcG9zaXRlS2V5KHRhYmxlTmFtZSwgW1N0cmluZyhpZCldKTtcbiAgICBjb25zdCBtaXJyb3JDb2xsZWN0aW9uID0gY3R4LmdldE9yVW5kZWZpbmVkKFwibWlycm9yQ29sbGVjdGlvblwiKSBhc1xuICAgICAgfCBzdHJpbmdcbiAgICAgIHwgdW5kZWZpbmVkO1xuICAgIGxldCBtb2RlbDogUmVjb3JkPHN0cmluZywgYW55PjtcblxuICAgIGlmIChtaXJyb3JDb2xsZWN0aW9uKSB7XG4gICAgICB0cnkge1xuICAgICAgICBtb2RlbCA9IGF3YWl0IHRoaXMuZm9yUHJpdmF0ZShtaXJyb3JDb2xsZWN0aW9uKS5yZWFkU3RhdGUoXG4gICAgICAgICAgY29tcG9zZWRLZXksXG4gICAgICAgICAgY3R4XG4gICAgICAgICk7XG4gICAgICAgIGF3YWl0IHRoaXMuZm9yUHJpdmF0ZShtaXJyb3JDb2xsZWN0aW9uKS5kZWxldGVTdGF0ZShjb21wb3NlZEtleSwgY3R4KTtcbiAgICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUgYXMgRXJyb3IpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0cnkge1xuICAgICAgICBtb2RlbCA9IGN0eC5pc0Z1bGx5U2VncmVnYXRlZFxuICAgICAgICAgID8ge31cbiAgICAgICAgICA6IGF3YWl0IHRoaXMucmVhZFN0YXRlKGNvbXBvc2VkS2V5LCBjdHgpO1xuICAgICAgICBpZiAoIWN0eC5pc0Z1bGx5U2VncmVnYXRlZCkge1xuICAgICAgICAgIGxvZy5kZWJ1ZyhgRGVsZXRpbmcgZW50cnkgJHtjb21wb3NlZEtleX0gZnJvbSBwdWJsaWMgbGVkZ2VyYCk7XG4gICAgICAgICAgYXdhaXQgdGhpcy5kZWxldGVTdGF0ZShjb21wb3NlZEtleSwgY3R4KTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZSBhcyBFcnJvcik7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNvbGxlY3Rpb25zID0gY3R4LmdldFJlYWRDb2xsZWN0aW9ucygpO1xuICAgICAgaWYgKGNvbGxlY3Rpb25zICYmIGNvbGxlY3Rpb25zLmxlbmd0aCkge1xuICAgICAgICBmb3IgKGNvbnN0IGNvbCBvZiBjb2xsZWN0aW9ucykge1xuICAgICAgICAgIGxvZy5kZWJ1ZyhcbiAgICAgICAgICAgIGBlbnN1cmluZyBjb2xsZWN0aW9uICR7Y29sfSBoYXMgZW50cnkgZm9yIGlkICR7Y29tcG9zZWRLZXl9IGJlZm9yZSBkZWxldGluZ2BcbiAgICAgICAgICApO1xuICAgICAgICAgIE9iamVjdC5hc3NpZ24oXG4gICAgICAgICAgICBtb2RlbCxcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuZm9yUHJpdmF0ZShjb2wpLnJlYWRTdGF0ZShjb21wb3NlZEtleSwgY3R4KVxuICAgICAgICAgICk7XG4gICAgICAgICAgbG9nLmRlYnVnKFxuICAgICAgICAgICAgYERlbGV0aW5nIHByaXZhdGUgY29sbGVjdGlvbiAke2NvbH0gZW50cnkgZm9yIGlkICR7Y29tcG9zZWRLZXl9YFxuICAgICAgICAgICk7XG4gICAgICAgICAgYXdhaXQgdGhpcy5mb3JQcml2YXRlKGNvbCkuZGVsZXRlU3RhdGUoY29tcG9zZWRLZXksIGN0eCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGRlbGV0ZVN0YXRlKGlkOiBzdHJpbmcsIGNvbnRleHQ6IEZhYnJpY0NvbnRyYWN0Q29udGV4dCkge1xuICAgIGF3YWl0IGNvbnRleHQuc3R1Yi5kZWxldGVTdGF0ZShpZCk7XG4gIH1cblxuICBmb3JQcml2YXRlKGNvbGxlY3Rpb246IHN0cmluZyk6IEZhYnJpY0NvbnRyYWN0QWRhcHRlciB7XG4gICAgY29uc3QgdG9PdmVycmlkZSA9IFtcbiAgICAgIHRoaXMucHV0U3RhdGUsXG4gICAgICB0aGlzLnJlYWRTdGF0ZSxcbiAgICAgIHRoaXMuZGVsZXRlU3RhdGUsXG4gICAgICB0aGlzLnF1ZXJ5UmVzdWx0LFxuICAgICAgdGhpcy5xdWVyeVJlc3VsdFBhZ2luYXRlZCxcbiAgICBdLm1hcCgoZm4pID0+IGZuLm5hbWUpO1xuICAgIHJldHVybiBuZXcgUHJveHkodGhpcywge1xuICAgICAgZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpIHtcbiAgICAgICAgaWYgKCF0b092ZXJyaWRlLmluY2x1ZGVzKHByb3AgYXMgc3RyaW5nKSlcbiAgICAgICAgICByZXR1cm4gUmVmbGVjdC5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgIHJldHVybiBuZXcgUHJveHkoKHRhcmdldCBhcyBhbnkpW3Byb3BdLCB7XG4gICAgICAgICAgYXN5bmMgYXBwbHkoZm4sIHRoaXNBcmcsIGFyZ3NMaXN0KSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHByb3ApIHtcbiAgICAgICAgICAgICAgY2FzZSBcInB1dFN0YXRlXCI6IHtcbiAgICAgICAgICAgICAgICAvLyBwdXRTdGF0ZSBzaWduYXR1cmU6IChpZDogc3RyaW5nLCBtb2RlbDogUmVjb3JkPHN0cmluZywgYW55PiwgY3R4OiBGYWJyaWNDb250cmFjdENvbnRleHQpXG4gICAgICAgICAgICAgICAgY29uc3QgW2lkLCBtb2RlbCwgY3R4XSA9IGFyZ3NMaXN0O1xuICAgICAgICAgICAgICAgIGNvbnN0IGxvZyA9IGN0eC5sb2dnZXIuZm9yKHByb3ApO1xuICAgICAgICAgICAgICAgIGxvZy5kZWJ1ZyhcbiAgICAgICAgICAgICAgICAgIGBQcml2YXRlIHdyaXRlIHRvICR7Y29sbGVjdGlvbn0gZm9yICR7aWQudG9TdHJpbmcoKX1gXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gQnVmZmVyLmZyb20oXG4gICAgICAgICAgICAgICAgICBGYWJyaWNDb250cmFjdEFkYXB0ZXIuc2VyaWFsaXplci5zZXJpYWxpemUoXG4gICAgICAgICAgICAgICAgICAgIG1vZGVsIGFzIE1vZGVsLFxuICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgYXdhaXQgY3R4LnN0dWIucHV0UHJpdmF0ZURhdGEoY29sbGVjdGlvbiwgaWQudG9TdHJpbmcoKSwgZGF0YSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1vZGVsO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNhc2UgXCJkZWxldGVTdGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgLy8gZGVsZXRlU3RhdGUgc2lnbmF0dXJlOiAoaWQ6IHN0cmluZywgY29udGV4dDogRmFicmljQ29udHJhY3RDb250ZXh0KVxuICAgICAgICAgICAgICAgIGNvbnN0IFtpZCwgY3R4XSA9IGFyZ3NMaXN0O1xuICAgICAgICAgICAgICAgIGNvbnN0IGxvZyA9IGN0eC5sb2dnZXIuZm9yKHByb3ApO1xuICAgICAgICAgICAgICAgIGxvZy5kZWJ1ZyhcbiAgICAgICAgICAgICAgICAgIGBQcml2YXRlIGRlbGV0ZSBvbiAke2NvbGxlY3Rpb259IGZvciAke2lkLnRvU3RyaW5nKCl9YFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgYXdhaXQgY3R4LnN0dWIuZGVsZXRlUHJpdmF0ZURhdGEoY29sbGVjdGlvbiwgaWQudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNhc2UgXCJyZWFkU3RhdGVcIjoge1xuICAgICAgICAgICAgICAgIC8vIHJlYWRTdGF0ZSBzaWduYXR1cmU6IChpZDogc3RyaW5nLCBjdHg6IEZhYnJpY0NvbnRyYWN0Q29udGV4dClcbiAgICAgICAgICAgICAgICBjb25zdCBbaWQsIGN0eF0gPSBhcmdzTGlzdDtcbiAgICAgICAgICAgICAgICBjb25zdCBsb2cgPSBjdHgubG9nZ2VyLmZvcihwcm9wKTtcbiAgICAgICAgICAgICAgICBsb2cuZGVidWcoXG4gICAgICAgICAgICAgICAgICBgUHJpdmF0ZSByZWFkIGZyb20gJHtjb2xsZWN0aW9ufSBmb3IgJHtpZC50b1N0cmluZygpfWBcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBjdHguc3R1Yi5nZXRQcml2YXRlRGF0YShjb2xsZWN0aW9uLCBpZCk7XG4gICAgICAgICAgICAgICAgaWYgKCFkYXRhIHx8ICFkYXRhLnRvU3RyaW5nKCkubGVuZ3RoKVxuICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IoYFJlY29yZCB3aXRoIGlkICR7aWR9IG5vdCBmb3VuZGApO1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gRmFicmljQ29udHJhY3RBZGFwdGVyLnNlcmlhbGl6ZXIuZGVzZXJpYWxpemUoXG4gICAgICAgICAgICAgICAgICAgIGRhdGEudG9TdHJpbmcoXCJ1dGY4XCIpXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIGRhdGEudG9TdHJpbmcoXCJ1dGY4XCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjYXNlIFwicXVlcnlSZXN1bHRcIjoge1xuICAgICAgICAgICAgICAgIGNvbnN0IFtzdHViLCByYXdJbnB1dCwgLi4uYXJnc10gPSBhcmdzTGlzdDtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGxvZyB9ID0gdGhpc0FyZ1tcImxvZ0N0eFwiXShhcmdzLCBwcm9wKTtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgbG9nLmRlYnVnKFxuICAgICAgICAgICAgICAgICAgICBgUXVlcnlpbmcgY29sbGVjdGlvbiAke2NvbGxlY3Rpb259IGZvciAke0pTT04uc3RyaW5naWZ5KHJhd0lucHV0KX1gXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgc3R1Yi5nZXRQcml2YXRlRGF0YVF1ZXJ5UmVzdWx0KFxuICAgICAgICAgICAgICAgICAgICBjb2xsZWN0aW9uLFxuICAgICAgICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeShyYXdJbnB1dClcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICBsb2cudmVyYm9zZShcbiAgICAgICAgICAgICAgICAgICAgYGl0ZXJhdG9yIGZyb20gY29sbGVjdGlvbiAke2NvbGxlY3Rpb259IHJlY2VpdmVkYFxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIHJldHVybiByZXMuaXRlcmF0b3IgfHwgcmVzO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgICAgICAgICAgICAgbG9nLmVycm9yKGUpO1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjYXNlIFwicXVlcnlSZXN1bHRQYWdpbmF0ZWRcIjoge1xuICAgICAgICAgICAgICAgIGNvbnN0IFtzdHViLCByYXdJbnB1dCwgbGltaXQsIHNraXAsIGJvb2ttYXJrLCAuLi5hcmdzXSA9IGFyZ3NMaXN0O1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgbG9nIH0gPSB0aGlzQXJnW1wibG9nQ3R4XCJdKGFyZ3MsIHByb3ApO1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhZ2VTaXplID0gTWF0aC5tYXgoMSwgTnVtYmVyKGxpbWl0KSB8fCAyNTApO1xuICAgICAgICAgICAgICAgIGNvbnN0IHF1ZXJ5OiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0geyAuLi5yYXdJbnB1dCB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IHNraXBWYWx1ZSA9IE51bWJlcihza2lwKTtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJzZWRTa2lwID1cbiAgICAgICAgICAgICAgICAgIE51bWJlci5pc0ludGVnZXIoc2tpcFZhbHVlKSAmJiBza2lwVmFsdWUgPj0gMFxuICAgICAgICAgICAgICAgICAgICA/IHNraXBWYWx1ZVxuICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICBjb25zdCBzeW50aGV0aWNPZmZzZXQgPVxuICAgICAgICAgICAgICAgICAgRmFicmljQ29udHJhY3RBZGFwdGVyLnBhcnNlU3ludGhldGljUHJpdmF0ZUJvb2ttYXJrKGJvb2ttYXJrKSA/P1xuICAgICAgICAgICAgICAgICAgcGFyc2VkU2tpcCA/P1xuICAgICAgICAgICAgICAgICAgMDtcbiAgICAgICAgICAgICAgICBjb25zdCBoYXNPcGFxdWVCb29rbWFyayA9XG4gICAgICAgICAgICAgICAgICBib29rbWFyayAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICAgICAgICBib29rbWFyayAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgICAgICAgYm9va21hcmsgIT09IFwiXCIgJiZcbiAgICAgICAgICAgICAgICAgIHR5cGVvZiBib29rbWFyayA9PT0gXCJzdHJpbmdcIiAmJlxuICAgICAgICAgICAgICAgICAgIWJvb2ttYXJrLnN0YXJ0c1dpdGgoRmFicmljQ29udHJhY3RBZGFwdGVyLlBSSVZBVEVfQk9PS01BUktfUFJFRklYKTtcbiAgICAgICAgICAgICAgICAvLyBLZWVwIHRoZSBxdWVyeSBDb3VjaERCLWNvbXBhdGlibGUgYW5kIGxldCBGYWJyaWMvQ291Y2hEQiBvd24gYm9va21hcmsgc2VtYW50aWNzLlxuICAgICAgICAgICAgICAgIC8vIFN5bnRoZXRpYyBtb2RlIGZldGNoZXMgb25lIGV4dHJhIHJlY29yZCB0byBkZXRlY3Qgd2hldGhlciBhIG5leHQgcGFnZSBleGlzdHMuXG4gICAgICAgICAgICAgICAgcXVlcnkubGltaXQgPSBoYXNPcGFxdWVCb29rbWFyayA/IHBhZ2VTaXplIDogcGFnZVNpemUgKyAxO1xuICAgICAgICAgICAgICAgIGlmIChoYXNPcGFxdWVCb29rbWFyaykge1xuICAgICAgICAgICAgICAgICAgcXVlcnkuYm9va21hcmsgPSBib29rbWFyay50b1N0cmluZygpO1xuICAgICAgICAgICAgICAgICAgZGVsZXRlIHF1ZXJ5LnNraXA7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIGRlbGV0ZSBxdWVyeS5ib29rbWFyaztcbiAgICAgICAgICAgICAgICAgIGlmIChzeW50aGV0aWNPZmZzZXQgPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5LnNraXAgPSBzeW50aGV0aWNPZmZzZXQ7XG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBkZWxldGUgcXVlcnkuc2tpcDtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbG9nLmRlYnVnKFxuICAgICAgICAgICAgICAgICAgYFF1ZXJ5aW5nIGNvbGxlY3Rpb24gJHtjb2xsZWN0aW9ufSBmb3IgJHtKU09OLnN0cmluZ2lmeShxdWVyeSl9YFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCAoXG4gICAgICAgICAgICAgICAgICBzdHViIGFzIENoYWluY29kZVN0dWJcbiAgICAgICAgICAgICAgICApLmdldFByaXZhdGVEYXRhUXVlcnlSZXN1bHQoY29sbGVjdGlvbiwgSlNPTi5zdHJpbmdpZnkocXVlcnkpKTtcbiAgICAgICAgICAgICAgICBjb25zdCBpdGVyYXRvciA9XG4gICAgICAgICAgICAgICAgICAoKHJlc3BvbnNlIGFzIGFueSkuaXRlcmF0b3IgfHxcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UpIGFzIEl0ZXJhdG9ycy5TdGF0ZVF1ZXJ5SXRlcmF0b3I7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzcG9uc2VNZXRhZGF0YSA9XG4gICAgICAgICAgICAgICAgICAocmVzcG9uc2UgYXMgYW55KS5tZXRhZGF0YSB8fCAoaXRlcmF0b3IgYXMgYW55KS5tZXRhZGF0YSB8fCB7fTtcbiAgICAgICAgICAgICAgICBjb25zdCByZXNwb25zZUJvb2ttYXJrID1cbiAgICAgICAgICAgICAgICAgIHR5cGVvZiByZXNwb25zZU1ldGFkYXRhLmJvb2ttYXJrID09PSBcInN0cmluZ1wiXG4gICAgICAgICAgICAgICAgICAgID8gcmVzcG9uc2VNZXRhZGF0YS5ib29rbWFya1xuICAgICAgICAgICAgICAgICAgICA6IFwiXCI7XG5cbiAgICAgICAgICAgICAgICBsb2cudmVyYm9zZShgaXRlcmF0b3IgZnJvbSBjb2xsZWN0aW9uICR7Y29sbGVjdGlvbn0gcmVjZWl2ZWRgKTtcbiAgICAgICAgICAgICAgICBjb25zdCBwYWdlZDogQXJyYXk8eyBrZXk6IHN0cmluZzsgdmFsdWU6IEJ1ZmZlciB9PiA9IFtdO1xuICAgICAgICAgICAgICAgIGxldCBoYXNNb3JlID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgaXRlcmF0b3IubmV4dCgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVzLmRvbmUpIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXMudmFsdWUgJiYgcmVzLnZhbHVlLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gcmVzLnZhbHVlLmtleSBhcyBzdHJpbmc7XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHBhZ2VkLmxlbmd0aCA8IHBhZ2VTaXplKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWdlZC5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogQnVmZmVyLmlzQnVmZmVyKHJlcy52YWx1ZS52YWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHJlcy52YWx1ZS52YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogQnVmZmVyLmZyb20oXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXMudmFsdWUudmFsdWUgYXMgYW55KS50b1N0cmluZyhcInV0ZjhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgaGFzTW9yZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsgLy8gZWFybHkgZXhpdFxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICAgICAgICBhd2FpdCBpdGVyYXRvci5jbG9zZSgpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIFdyYXAgdGhlIHBhZ2UgaW4gYW4gYXN5bmMgaXRlcmF0b3IgZm9yIHJlc3VsdEl0ZXJhdG9yKClcbiAgICAgICAgICAgICAgICBsZXQgaWR4ID0gMDtcbiAgICAgICAgICAgICAgICBjb25zdCBhcnJheUl0ZXJhdG9yID0ge1xuICAgICAgICAgICAgICAgICAgYXN5bmMgbmV4dCgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlkeCA8IHBhZ2VkLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IHZhbHVlOiBwYWdlZFtpZHgrK10sIGRvbmU6IGZhbHNlIH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IHVuZGVmaW5lZCBhcyBhbnksIGRvbmU6IHRydWUgfTtcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBhc3luYyBjbG9zZSgpIHt9LFxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgaXRlcmF0b3I6XG4gICAgICAgICAgICAgICAgICAgIGFycmF5SXRlcmF0b3IgYXMgdW5rbm93biBhcyBJdGVyYXRvcnMuU3RhdGVRdWVyeUl0ZXJhdG9yLFxuICAgICAgICAgICAgICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgICAgICAgICAgICAgZmV0Y2hlZFJlY29yZHNDb3VudDogcGFnZWQubGVuZ3RoLFxuICAgICAgICAgICAgICAgICAgICBib29rbWFyazpcbiAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZUJvb2ttYXJrIHx8XG4gICAgICAgICAgICAgICAgICAgICAgKGhhc01vcmVcbiAgICAgICAgICAgICAgICAgICAgICAgID8gRmFicmljQ29udHJhY3RBZGFwdGVyLmJ1aWxkU3ludGhldGljUHJpdmF0ZUJvb2ttYXJrKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bnRoZXRpY09mZnNldCArIHBhZ2VkLmxlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICA6IFwiXCIpLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgICAgICAgICAgICBgVW5zdXBwb3J0ZWQgbWV0aG9kIG92ZXJyaWRlICR7U3RyaW5nKHByb3ApfWBcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBwdXRTdGF0ZShcbiAgICBpZDogc3RyaW5nLFxuICAgIG1vZGVsOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgIGN0eDogRmFicmljQ29udHJhY3RDb250ZXh0XG4gICkge1xuICAgIGxldCBkYXRhOiBCdWZmZXI7XG5cbiAgICB0cnkge1xuICAgICAgZGF0YSA9IEJ1ZmZlci5mcm9tKFxuICAgICAgICBGYWJyaWNDb250cmFjdEFkYXB0ZXIuc2VyaWFsaXplci5zZXJpYWxpemUobW9kZWwgYXMgTW9kZWwsIGZhbHNlKVxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICB0aHJvdyBuZXcgU2VyaWFsaXphdGlvbkVycm9yKFxuICAgICAgICBgRmFpbGVkIHRvIHNlcmlhbGl6ZSByZWNvcmQgd2l0aCBpZCAke2lkfTogJHtlfWBcbiAgICAgICk7XG4gICAgfVxuICAgIGF3YWl0IGN0eC5zdHViLnB1dFN0YXRlKGlkLnRvU3RyaW5nKCksIGRhdGEpO1xuXG4gICAgcmV0dXJuIG1vZGVsO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHJlYWRTdGF0ZShpZDogc3RyaW5nLCBjdHg6IEZhYnJpY0NvbnRyYWN0Q29udGV4dCkge1xuICAgIGxldCByZXN1bHQ6IGFueTtcblxuICAgIGNvbnN0IHsgbG9nIH0gPSB0aGlzLmxvZ0N0eChbY3R4XSwgdGhpcy5yZWFkU3RhdGUpO1xuICAgIGNvbnN0IHJlcyA9IChhd2FpdCBjdHguc3R1Yi5nZXRTdGF0ZShpZC50b1N0cmluZygpKSkudG9TdHJpbmcoKTtcbiAgICBpZiAoIXJlcykgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IoYFJlY29yZCB3aXRoIGlkICR7aWR9IG5vdCBmb3VuZGApO1xuICAgIGxvZy5zaWxseShgc3RhdGUgcmV0cmlldmVkIHVuZGVyIGlkICR7aWR9YCk7XG4gICAgdHJ5IHtcbiAgICAgIHJlc3VsdCA9IEZhYnJpY0NvbnRyYWN0QWRhcHRlci5zZXJpYWxpemVyLmRlc2VyaWFsaXplKHJlcy50b1N0cmluZygpKTtcbiAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICB0aHJvdyBuZXcgU2VyaWFsaXphdGlvbkVycm9yKGBGYWlsZWQgdG8gcGFyc2UgcmVjb3JkOiAke2V9YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBxdWVyeVJlc3VsdChcbiAgICBzdHViOiBDaGFpbmNvZGVTdHViLFxuICAgIHJhd0lucHV0OiBhbnksXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIC4uLmFyZ3M6IENvbnRleHR1YWxBcmdzPEZhYnJpY0NvbnRyYWN0Q29udGV4dD5cbiAgKTogUHJvbWlzZTxJdGVyYXRvcnMuU3RhdGVRdWVyeUl0ZXJhdG9yPiB7XG4gICAgcmV0dXJuIHN0dWIuZ2V0UXVlcnlSZXN1bHQoSlNPTi5zdHJpbmdpZnkocmF3SW5wdXQpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBxdWVyeVJlc3VsdFBhZ2luYXRlZChcbiAgICBzdHViOiBDaGFpbmNvZGVTdHViLFxuICAgIHJhd0lucHV0OiBhbnksXG4gICAgbGltaXQ6IG51bWJlciA9IDI1MCxcbiAgICBwYWdlPzogbnVtYmVyLFxuICAgIGJvb2ttYXJrPzogc3RyaW5nIHwgbnVtYmVyLFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPFN0YXRlUXVlcnlSZXNwb25zZTxJdGVyYXRvcnMuU3RhdGVRdWVyeUl0ZXJhdG9yPj4ge1xuICAgIHJldHVybiBzdHViLmdldFF1ZXJ5UmVzdWx0V2l0aFBhZ2luYXRpb24oXG4gICAgICBKU09OLnN0cmluZ2lmeShyYXdJbnB1dCksXG4gICAgICBsaW1pdCxcbiAgICAgIGJvb2ttYXJrPy50b1N0cmluZygpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRGVjb2RlcyBiaW5hcnkgZGF0YSB0byBzdHJpbmdcbiAgICogQHN1bW1hcnkgQ29udmVydHMgYSBVaW50OEFycmF5IHRvIGEgc3RyaW5nIHVzaW5nIFVURi04IGVuY29kaW5nXG4gICAqIEBwYXJhbSB7VWludDhBcnJheX0gYnVmZmVyIC0gVGhlIGJpbmFyeSBkYXRhIHRvIGRlY29kZVxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBkZWNvZGVkIHN0cmluZ1xuICAgKi9cbiAgcHJvdGVjdGVkIGRlY29kZShidWZmZXI6IFVpbnQ4QXJyYXkpIHtcbiAgICByZXR1cm4gRmFicmljQ29udHJhY3RBZGFwdGVyLnRleHREZWNvZGVyLmRlY29kZShidWZmZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIG9wZXJhdGlvbiBmbGFncyBmb3IgRmFicmljIGNvbnRyYWN0IG9wZXJhdGlvbnNcbiAgICogQHN1bW1hcnkgTWVyZ2VzIGRlZmF1bHQgZmxhZ3Mgd2l0aCBGYWJyaWMtc3BlY2lmaWMgY29udGV4dCBpbmZvcm1hdGlvblxuICAgKiBAdGVtcGxhdGUgTSAtIFR5cGUgZXh0ZW5kaW5nIE1vZGVsXG4gICAqIEBwYXJhbSB7T3BlcmF0aW9uS2V5c30gb3BlcmF0aW9uIC0gVGhlIG9wZXJhdGlvbiBiZWluZyBwZXJmb3JtZWRcbiAgICogQHBhcmFtIHtDb25zdHJ1Y3RvcjxNPn0gbW9kZWwgLSBUaGUgbW9kZWwgY29uc3RydWN0b3JcbiAgICogQHBhcmFtIHtQYXJ0aWFsPEZhYnJpY0NvbnRyYWN0RmxhZ3M+fSBmbGFncyAtIFBhcnRpYWwgZmxhZ3MgdG8gbWVyZ2Ugd2l0aCBkZWZhdWx0c1xuICAgKiBAcGFyYW0ge0N0eH0gY3R4IC0gVGhlIEZhYnJpYyBjaGFpbmNvZGUgY29udGV4dFxuICAgKiBAcmV0dXJuIHtGYWJyaWNDb250cmFjdEZsYWdzfSBUaGUgbWVyZ2VkIGZsYWdzXG4gICAqL1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgYXN5bmMgZmxhZ3M8TSBleHRlbmRzIE1vZGVsPihcbiAgICBvcGVyYXRpb246IEFsbE9wZXJhdGlvbktleXMsXG4gICAgbW9kZWw6IENvbnN0cnVjdG9yPE0+IHwgdW5kZWZpbmVkLFxuICAgIGZsYWdzOiBQYXJ0aWFsPEZhYnJpY0NvbnRyYWN0RmxhZ3M+IHwgRmFicmljQ29udHJhY3RDb250ZXh0IHwgQ3R4IHwgYW55XG4gICk6IFByb21pc2U8RmFicmljQ29udHJhY3RGbGFncz4ge1xuICAgIGxldCBiYXNlRmxhZ3MgPSB7XG4gICAgICBzZWdyZWdhdGVkOiBmYWxzZSxcbiAgICAgIHJlYnVpbGRXaXRoVHJhbnNpZW50OiBmYWxzZSxcbiAgICAgIGZ1bGx5U2VncmVnYXRlZDogZmFsc2UsXG4gICAgfTtcbiAgICBpZiAoZmxhZ3MgaW5zdGFuY2VvZiBGYWJyaWNDb250cmFjdENvbnRleHQgfHwgZmxhZ3MgaW5zdGFuY2VvZiBDb250ZXh0KSB7XG4gICAgICBmbGFncyA9IGZsYWdzLnRvT3ZlcnJpZGVzKCk7XG4gICAgfVxuXG4gICAgYmFzZUZsYWdzID0gT2JqZWN0LmFzc2lnbihiYXNlRmxhZ3MsIGZsYWdzKTtcbiAgICBjb25zdCBzdHViRnJvbUZsYWdzID1cbiAgICAgIChmbGFncyBhcyBGYWJyaWNDb250cmFjdENvbnRleHQpLnN0dWIgfHwgKGZsYWdzIGFzIEN0eCkuc3R1YjtcbiAgICBjb25zdCBpZGVudGl0eUZyb21GbGFncyA9XG4gICAgICAoZmxhZ3MgYXMgRmFicmljQ29udHJhY3RDb250ZXh0KS5pZGVudGl0eSB8fFxuICAgICAgKGZsYWdzIGFzIEN0eCkuY2xpZW50SWRlbnRpdHk7XG4gICAgaWYgKHN0dWJGcm9tRmxhZ3MgJiYgaWRlbnRpdHlGcm9tRmxhZ3MpIHtcbiAgICAgIGNvbnN0IHR4SWQgPSBzdHViRnJvbUZsYWdzLmdldFR4SUQoKTtcbiAgICAgIE9iamVjdC5hc3NpZ24oYmFzZUZsYWdzLCB7XG4gICAgICAgIHN0dWI6IHN0dWJGcm9tRmxhZ3MsXG4gICAgICAgIGlkZW50aXR5OiBpZGVudGl0eUZyb21GbGFncyxcbiAgICAgICAgY2VydDogaWRlbnRpdHlGcm9tRmxhZ3MuZ2V0SURCeXRlcygpLnRvU3RyaW5nKCksXG4gICAgICAgIHJvbGVzOiBpZGVudGl0eUZyb21GbGFncy5nZXRBdHRyaWJ1dGVWYWx1ZShcInJvbGVzXCIpLFxuICAgICAgICBsb2dnZXI6IExvZ2dpbmcuZm9yKFxuICAgICAgICAgIG9wZXJhdGlvbixcbiAgICAgICAgICB7XG4gICAgICAgICAgICBsb2dMZXZlbDogZmFsc2UsXG4gICAgICAgICAgICB0aW1lc3RhbXA6IGZhbHNlLFxuICAgICAgICAgICAgY29ycmVsYXRpb25JZDogdHhJZCxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGZsYWdzXG4gICAgICAgICksXG4gICAgICAgIGNvcnJlbGF0aW9uSWQ6IHR4SWQsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgYmFzZUZsYWdzID0gT2JqZWN0LmFzc2lnbihiYXNlRmxhZ3MsIGZsYWdzIHx8IHt9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gKGF3YWl0IHN1cGVyLmZsYWdzKFxuICAgICAgb3BlcmF0aW9uLFxuICAgICAgbW9kZWwsXG4gICAgICBiYXNlRmxhZ3MgYXMgYW55XG4gICAgKSkgYXMgRmFicmljQ29udHJhY3RGbGFncztcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBhbiBpbmRleCBmb3IgYSBtb2RlbFxuICAgKiBAc3VtbWFyeSBUaGlzIG1ldGhvZCBpcyBub3QgaW1wbGVtZW50ZWQgZm9yIEZhYnJpYyBjb250cmFjdHMgYW5kIHJldHVybnMgYSByZXNvbHZlZCBwcm9taXNlXG4gICAqIEB0ZW1wbGF0ZSBNIC0gVHlwZSBleHRlbmRpbmcgTW9kZWxcbiAgICogQHBhcmFtIHtDb25zdHJ1Y3RvcjxNPn0gbW9kZWxzIC0gVGhlIG1vZGVsIGNvbnN0cnVjdG9yXG4gICAqIEByZXR1cm4ge1Byb21pc2U8dm9pZD59IFByb21pc2UgdGhhdCByZXNvbHZlcyBpbW1lZGlhdGVseVxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICBwcm90ZWN0ZWQgaW5kZXg8TT4obW9kZWxzOiBDb25zdHJ1Y3RvcjxNPik6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodW5kZWZpbmVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUHJvY2Vzc2VzIHJlc3VsdHMgZnJvbSBhIHN0YXRlIHF1ZXJ5IGl0ZXJhdG9yXG4gICAqIEBzdW1tYXJ5IEl0ZXJhdGVzIHRocm91Z2ggcXVlcnkgcmVzdWx0cyBhbmQgY29udmVydHMgdGhlbSB0byBhIHN0cnVjdHVyZWQgZm9ybWF0XG4gICAqIEBwYXJhbSB7TG9nZ2VyfSBsb2cgLSBMb2dnZXIgaW5zdGFuY2UgZm9yIGRlYnVnZ2luZ1xuICAgKiBAcGFyYW0ge0l0ZXJhdG9ycy5TdGF0ZVF1ZXJ5SXRlcmF0b3J9IGl0ZXJhdG9yIC0gVGhlIHN0YXRlIHF1ZXJ5IGl0ZXJhdG9yXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzSGlzdG9yeT1mYWxzZV0gLSBXaGV0aGVyIHRoaXMgaXMgYSBoaXN0b3J5IHF1ZXJ5XG4gICAqIEByZXR1cm4ge1Byb21pc2U8YW55W10+fSBQcm9taXNlIHJlc29sdmluZyB0byBhbiBhcnJheSBvZiBwcm9jZXNzZWQgcmVzdWx0c1xuICAgKiBAbWVybWFpZFxuICAgKiBzZXF1ZW5jZURpYWdyYW1cbiAgICogICBwYXJ0aWNpcGFudCBDYWxsZXJcbiAgICogICBwYXJ0aWNpcGFudCBSZXN1bHRJdGVyYXRvclxuICAgKiAgIHBhcnRpY2lwYW50IEl0ZXJhdG9yXG4gICAqXG4gICAqICAgQ2FsbGVyLT4+UmVzdWx0SXRlcmF0b3I6IHJlc3VsdEl0ZXJhdG9yKGxvZywgaXRlcmF0b3IsIGlzSGlzdG9yeSlcbiAgICogICBsb29wIFVudGlsIGRvbmVcbiAgICogICAgIFJlc3VsdEl0ZXJhdG9yLT4+SXRlcmF0b3I6IG5leHQoKVxuICAgKiAgICAgSXRlcmF0b3ItLT4+UmVzdWx0SXRlcmF0b3I6IHsgdmFsdWUsIGRvbmUgfVxuICAgKiAgICAgYWx0IEhhcyB2YWx1ZVxuICAgKiAgICAgICBSZXN1bHRJdGVyYXRvci0+PlJlc3VsdEl0ZXJhdG9yOiBQcm9jZXNzIHZhbHVlIGJhc2VkIG9uIGlzSGlzdG9yeVxuICAgKiAgICAgICBSZXN1bHRJdGVyYXRvci0+PlJlc3VsdEl0ZXJhdG9yOiBBZGQgdG8gcmVzdWx0cyBhcnJheVxuICAgKiAgICAgZW5kXG4gICAqICAgZW5kXG4gICAqICAgUmVzdWx0SXRlcmF0b3ItPj5JdGVyYXRvcjogY2xvc2UoKVxuICAgKiAgIFJlc3VsdEl0ZXJhdG9yLS0+PkNhbGxlcjogYWxsUmVzdWx0c1xuICAgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIHJlc3VsdEl0ZXJhdG9yKFxuICAgIGxvZzogTG9nZ2VyLFxuICAgIGl0ZXJhdG9yOiBJdGVyYXRvcnMuU3RhdGVRdWVyeUl0ZXJhdG9yLFxuICAgIGlzSGlzdG9yeSA9IGZhbHNlXG4gICkge1xuICAgIGNvbnN0IGFsbFJlc3VsdHMgPSBbXTtcbiAgICBsZXQgcmVzOiB7IHZhbHVlOiBhbnk7IGRvbmU6IGJvb2xlYW4gfSA9IGF3YWl0IGl0ZXJhdG9yLm5leHQoKTtcbiAgICB3aGlsZSAoIXJlcy5kb25lKSB7XG4gICAgICBpZiAocmVzLnZhbHVlICYmIHJlcy52YWx1ZS52YWx1ZS50b1N0cmluZygpKSB7XG4gICAgICAgIGxldCBqc29uUmVzOiBhbnkgPSB7fTtcbiAgICAgICAgbG9nLmRlYnVnKHJlcy52YWx1ZS52YWx1ZS50b1N0cmluZyhcInV0ZjhcIikpO1xuICAgICAgICBpZiAoaXNIaXN0b3J5IC8qICYmIGlzSGlzdG9yeSA9PT0gdHJ1ZSovKSB7XG4gICAgICAgICAganNvblJlcy5UeElkID0gcmVzLnZhbHVlLnR4SWQ7XG4gICAgICAgICAganNvblJlcy5UaW1lc3RhbXAgPSByZXMudmFsdWUudGltZXN0YW1wO1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBqc29uUmVzLlZhbHVlID0gSlNPTi5wYXJzZShyZXMudmFsdWUudmFsdWUudG9TdHJpbmcoXCJ1dGY4XCIpKTtcbiAgICAgICAgICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgICAgICAgICAgbG9nLmVycm9yKGVycik7XG4gICAgICAgICAgICBqc29uUmVzLlZhbHVlID0gcmVzLnZhbHVlLnZhbHVlLnRvU3RyaW5nKFwidXRmOFwiKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGpzb25SZXMgPSBKU09OLnBhcnNlKHJlcy52YWx1ZS52YWx1ZS50b1N0cmluZyhcInV0ZjhcIikpO1xuICAgICAgICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICAgICAgICBsb2cuZXJyb3IoZXJyKTtcbiAgICAgICAgICAgIGpzb25SZXMgPSByZXMudmFsdWUudmFsdWUudG9TdHJpbmcoXCJ1dGY4XCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBhbGxSZXN1bHRzLnB1c2goanNvblJlcyk7XG4gICAgICB9XG4gICAgICByZXMgPSBhd2FpdCBpdGVyYXRvci5uZXh0KCk7XG4gICAgfVxuICAgIGxvZy5kZWJ1ZyhgQ2xvc2luZyBpdGVyYXRvciBhZnRlciAke2FsbFJlc3VsdHMubGVuZ3RofSByZXN1bHRzYCk7XG4gICAgYXdhaXQgaXRlcmF0b3IuY2xvc2UoKTtcbiAgICByZXR1cm4gYWxsUmVzdWx0cztcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRXhlY3V0ZXMgYSByYXcgcXVlcnkgYWdhaW5zdCB0aGUgc3RhdGUgZGF0YWJhc2VcbiAgICogQHN1bW1hcnkgUGVyZm9ybXMgYSByaWNoIHF1ZXJ5IHVzaW5nIENvdWNoREIgc3ludGF4IGFnYWluc3QgdGhlIEZhYnJpYyBzdGF0ZSBkYXRhYmFzZVxuICAgKiBAdGVtcGxhdGUgUiAtIFRoZSByZXR1cm4gdHlwZVxuICAgKiBAcGFyYW0ge01hbmdvUXVlcnl9IHJhd0lucHV0IC0gVGhlIE1hbmdvIFF1ZXJ5IHRvIGV4ZWN1dGVcbiAgICogQHBhcmFtIHtib29sZWFufSBkb2NzT25seSAtIFdoZXRoZXIgdG8gcmV0dXJuIG9ubHkgZG9jdW1lbnRzIChub3QgdXNlZCBpbiB0aGlzIGltcGxlbWVudGF0aW9uKVxuICAgKiBAcGFyYW0gey4uLmFueVtdfSBhcmdzIC0gQWRkaXRpb25hbCBhcmd1bWVudHMsIGluY2x1ZGluZyB0aGUgY2hhaW5jb2RlIHN0dWIgYW5kIGxvZ2dlclxuICAgKiBAcmV0dXJuIHtQcm9taXNlPFI+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgcXVlcnkgcmVzdWx0c1xuICAgKiBAbWVybWFpZFxuICAgKiBzZXF1ZW5jZURpYWdyYW1cbiAgICogICBwYXJ0aWNpcGFudCBDYWxsZXJcbiAgICogICBwYXJ0aWNpcGFudCBGYWJyaWNDb250cmFjdEFkYXB0ZXJcbiAgICogICBwYXJ0aWNpcGFudCBTdHViXG4gICAqICAgcGFydGljaXBhbnQgU3RhdGVEQlxuICAgKlxuICAgKiAgIENhbGxlci0+PkZhYnJpY0NvbnRyYWN0QWRhcHRlcjogcmF3KHJhd0lucHV0LCBkb2NzT25seSwgY3R4KVxuICAgKiAgIEZhYnJpY0NvbnRyYWN0QWRhcHRlci0+PkZhYnJpY0NvbnRyYWN0QWRhcHRlcjogRXh0cmFjdCBsaW1pdCBhbmQgc2tpcFxuICAgKiAgIGFsdCBXaXRoIHBhZ2luYXRpb25cbiAgICogICAgIEZhYnJpY0NvbnRyYWN0QWRhcHRlci0+PlN0dWI6IGdldFF1ZXJ5UmVzdWx0V2l0aFBhZ2luYXRpb24ocXVlcnksIGxpbWl0LCBza2lwKVxuICAgKiAgIGVsc2UgV2l0aG91dCBwYWdpbmF0aW9uXG4gICAqICAgICBGYWJyaWNDb250cmFjdEFkYXB0ZXItPj5TdHViOiBnZXRRdWVyeVJlc3VsdChxdWVyeSlcbiAgICogICBlbmRcbiAgICogICBTdHViLT4+U3RhdGVEQjogRXhlY3V0ZSBxdWVyeVxuICAgKiAgIFN0YXRlREItLT4+U3R1YjogSXRlcmF0b3JcbiAgICogICBTdHViLS0+PkZhYnJpY0NvbnRyYWN0QWRhcHRlcjogSXRlcmF0b3JcbiAgICogICBGYWJyaWNDb250cmFjdEFkYXB0ZXItPj5GYWJyaWNDb250cmFjdEFkYXB0ZXI6IHJlc3VsdEl0ZXJhdG9yKGxvZywgaXRlcmF0b3IpXG4gICAqICAgRmFicmljQ29udHJhY3RBZGFwdGVyLS0+PkNhbGxlcjogcmVzdWx0c1xuICAgKi9cbiAgYXN5bmMgcmF3PFIsIEQgZXh0ZW5kcyBib29sZWFuPihcbiAgICByYXdJbnB1dDogTWFuZ29RdWVyeSxcbiAgICBkb2NzT25seTogRCA9IHRydWUgYXMgRCxcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxGYWJyaWNDb250cmFjdENvbnRleHQ+XG4gICk6IFByb21pc2U8UmF3UmVzdWx0PFIsIEQ+PiB7XG4gICAgY29uc3QgeyBsb2csIGN0eCwgY3R4QXJncyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5yYXcpO1xuXG4gICAgY29uc3QgZW5hYmxlU2VncmVnYXRlcyA9ICFhcmdzLmxlbmd0aCB8fCBhcmdzWzBdICE9PSB0cnVlO1xuICAgIGNvbnN0IGZ1bGx5U2VncmVnYXRlZCA9IGVuYWJsZVNlZ3JlZ2F0ZXMgJiYgY3R4LmlzRnVsbHlTZWdyZWdhdGVkO1xuXG4gICAgY29uc3QgeyBza2lwLCBsaW1pdCB9ID0gcmF3SW5wdXQ7XG4gICAgY29uc3QgYm9va21hcmsgPSByYXdJbnB1dFtcImJvb2ttYXJrXCJdO1xuICAgIGNvbnN0IHBhZ2luYXRpb25BY3RpdmUgPSBCb29sZWFuKGxpbWl0IHx8IHNraXAgfHwgYm9va21hcmspO1xuICAgIGxldCByZXNwID0geyBkb2NzOiBbXSwgYm9va21hcms6IHVuZGVmaW5lZCBhcyBzdHJpbmcgfCB1bmRlZmluZWQgfTtcblxuICAgIC8vIFF1ZXJ5IHB1YmxpYyBzdGF0ZSBvbmx5IHdoZW4gdGhlIG1vZGVsIGlzIE5PVCBmdWxseSBzZWdyZWdhdGVkXG4gICAgaWYgKCFmdWxseVNlZ3JlZ2F0ZWQpIHtcbiAgICAgIGxldCBpdGVyYXRvcjogSXRlcmF0b3JzLlN0YXRlUXVlcnlJdGVyYXRvcjtcbiAgICAgIGlmIChsaW1pdCB8fCBza2lwKSB7XG4gICAgICAgIGRlbGV0ZSByYXdJbnB1dFtcImxpbWl0XCJdO1xuICAgICAgICBkZWxldGUgcmF3SW5wdXRbXCJza2lwXCJdO1xuICAgICAgICBsb2cuZGVidWcoXG4gICAgICAgICAgYFJldHJpZXZpbmcgcHVibGljIHBhZ2luYXRlZCBpdGVyYXRvcjogbGltaXQ6ICR7bGltaXR9LyBza2lwOiAke3NraXB9YFxuICAgICAgICApO1xuICAgICAgICBjb25zdCByZXNwb25zZTogU3RhdGVRdWVyeVJlc3BvbnNlPEl0ZXJhdG9ycy5TdGF0ZVF1ZXJ5SXRlcmF0b3I+ID1cbiAgICAgICAgICAoYXdhaXQgdGhpcy5xdWVyeVJlc3VsdFBhZ2luYXRlZChcbiAgICAgICAgICAgIGN0eC5zdHViLFxuICAgICAgICAgICAgcmF3SW5wdXQsXG4gICAgICAgICAgICBsaW1pdCB8fCBOdW1iZXIuTUFYX1ZBTFVFLFxuICAgICAgICAgICAgKHNraXAgYXMgYW55KT8udG9TdHJpbmcoKSxcbiAgICAgICAgICAgIGJvb2ttYXJrLFxuICAgICAgICAgICAgLi4uW2N0eCBhcyBGYWJyaWNDb250cmFjdENvbnRleHRdXG4gICAgICAgICAgKSkgYXMgU3RhdGVRdWVyeVJlc3BvbnNlPEl0ZXJhdG9ycy5TdGF0ZVF1ZXJ5SXRlcmF0b3I+O1xuICAgICAgICByZXNwLmJvb2ttYXJrID0gcmVzcG9uc2UubWV0YWRhdGEuYm9va21hcms7XG4gICAgICAgIGl0ZXJhdG9yID0gcmVzcG9uc2UuaXRlcmF0b3I7XG4gICAgICAgIGxvZy5kZWJ1ZyhgUmV0cmlldmVkIHB1YmxpYyBwYWdpbmcgaXRlcmF0b3JgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxvZy5kZWJ1ZyhcIlJldHJpZXZpbmcgbGlzdGluZyBwdWJsaWMgaXRlcmF0b3JcIik7XG4gICAgICAgIGl0ZXJhdG9yID0gKGF3YWl0IHRoaXMucXVlcnlSZXN1bHQoXG4gICAgICAgICAgY3R4LnN0dWIsXG4gICAgICAgICAgcmF3SW5wdXQsXG4gICAgICAgICAgY3R4XG4gICAgICAgICkpIGFzIEl0ZXJhdG9ycy5TdGF0ZVF1ZXJ5SXRlcmF0b3I7XG4gICAgICB9XG4gICAgICBsb2cuZGVidWcoYFJldHJpZXZlZCBwdWJsaWMgbGlzdGluZyBpdGVyYXRvcmApO1xuXG4gICAgICByZXNwLmRvY3MgPSAoYXdhaXQgdGhpcy5yZXN1bHRJdGVyYXRvcihsb2csIGl0ZXJhdG9yKSkgYXMgYW55O1xuICAgICAgbG9nLmRlYnVnKFxuICAgICAgICBgcmV0dXJuaW5nICR7QXJyYXkuaXNBcnJheShyZXNwLmRvY3MpID8gcmVzcC5kb2NzLmxlbmd0aCA6IDF9IHJlc3VsdHNgXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBGb3IgZnVsbHkgc2VncmVnYXRlZCBtb2RlbHMsIHN0cmlwIHBhZ2luYXRpb24gZmllbGRzIGZyb20gcmF3SW5wdXRcbiAgICAgIC8vIHNvIHRoZSBzZWdyZWdhdGVkIHF1ZXJ5IGJlbG93IGNhbiByZS1hcHBseSB0aGVtIGNsZWFubHlcbiAgICAgIGlmIChsaW1pdCB8fCBza2lwKSB7XG4gICAgICAgIGRlbGV0ZSByYXdJbnB1dFtcImxpbWl0XCJdO1xuICAgICAgICBkZWxldGUgcmF3SW5wdXRbXCJza2lwXCJdO1xuICAgICAgfVxuICAgICAgbG9nLmRlYnVnKFwiU2tpcHBpbmcgcHVibGljIHN0YXRlIHF1ZXJ5IChmdWxseSBzZWdyZWdhdGVkIG1vZGVsKVwiKTtcbiAgICB9XG5cbiAgICBjb25zdCBjb2xsZWN0aW9ucyA9IGVuYWJsZVNlZ3JlZ2F0ZXMgPyBjdHguZ2V0UmVhZENvbGxlY3Rpb25zKCkgOiB1bmRlZmluZWQ7XG5cbiAgICBpZiAoY29sbGVjdGlvbnMgJiYgY29sbGVjdGlvbnMubGVuZ3RoKSB7XG4gICAgICAvLyBCdWlsZCBhIGZyZXNoIGlucHV0IHdpdGggbGltaXQvc2tpcC9ib29rbWFyayByZXN0b3JlZFxuICAgICAgY29uc3Qgc2VncmVnYXRlZElucHV0ID0geyAuLi5yYXdJbnB1dCB9O1xuICAgICAgaWYgKGxpbWl0KSBzZWdyZWdhdGVkSW5wdXQubGltaXQgPSBsaW1pdDtcbiAgICAgIGlmIChza2lwKSBzZWdyZWdhdGVkSW5wdXQuc2tpcCA9IHNraXA7XG4gICAgICBpZiAoYm9va21hcmspIHNlZ3JlZ2F0ZWRJbnB1dFtcImJvb2ttYXJrXCJdID0gYm9va21hcms7XG5cbiAgICAgIGNvbnN0IHNlZ3JlZ2F0ZWQ6IGFueVtdID0gW107XG4gICAgICBmb3IgKGNvbnN0IGNvbGxlY3Rpb24gb2YgY29sbGVjdGlvbnMpIHtcbiAgICAgICAgbG9nLmRlYnVnKGBRdWVyeWluZyBmcm9tICR7Y29sbGVjdGlvbn1gKTtcbiAgICAgICAgY29uc3QgZnJvbUNvbHMgPSBhd2FpdCB0aGlzLmZvclByaXZhdGUoY29sbGVjdGlvbikucmF3KFxuICAgICAgICAgIHsgLi4uc2VncmVnYXRlZElucHV0IH0sXG4gICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICAuLi5jdHhBcmdzXG4gICAgICAgICk7XG4gICAgICAgIGxvZy52ZXJib3NlKFxuICAgICAgICAgIGByZWNlaXZlZCAkeyhmcm9tQ29scyBhcyB1bmtub3duIGFzIGFueVtdKS5sZW5ndGh9IGZyb20gJHtjb2xsZWN0aW9ufWBcbiAgICAgICAgKTtcbiAgICAgICAgc2VncmVnYXRlZC5wdXNoKGZyb21Db2xzKTtcbiAgICAgIH1cbiAgICAgIGlmIChwYWdpbmF0aW9uQWN0aXZlKSB7XG4gICAgICAgIC8vIEZvciBwYWdpbmF0ZWQgZmxvd3MsIGtlZXAgc291cmNlIHNlbGVjdGlvbiBkZXRlcm1pbmlzdGljIHNvXG4gICAgICAgIC8vIGV4dGVybmFsbHkgZ2VuZXJhdGVkIG9wYXF1ZSBib29rbWFya3Mgc3RheSB2YWxpZCBhY3Jvc3MgcGFnZXMuXG4gICAgICAgIGlmIChmdWxseVNlZ3JlZ2F0ZWQpIHtcbiAgICAgICAgICByZXNwID0gKHNlZ3JlZ2F0ZWRbMF0gYXMgYW55KSB8fCByZXNwO1xuICAgICAgICB9IGVsc2UgaWYgKCFyZXNwLmRvY3M/Lmxlbmd0aCAmJiBzZWdyZWdhdGVkLmxlbmd0aCkge1xuICAgICAgICAgIC8vIFByZXNlcnZlIHB1YmxpYy1zdGF0ZSBwcmlvcml0eSBmb3IgbWl4ZWQgbW9kZWxzLCBidXQgYWxsb3cgYVxuICAgICAgICAgIC8vIHN0YWJsZSBmYWxsYmFjayB3aGVuIHB1YmxpYyBxdWVyeSByZXR1cm5zIG5vIGRvY3MuXG4gICAgICAgICAgcmVzcCA9IHNlZ3JlZ2F0ZWRbMF0gYXMgYW55O1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBOb24tcGFnaW5hdGVkIHJlYWRzIGNhbiBzdGlsbCBwcmVmZXIgdGhlIHJpY2hlc3QgcmVzcG9uc2UuXG4gICAgICAgIHJlc3AgPSBzZWdyZWdhdGVkLnJlZHVjZSgoYWNjLCBjdXJyKSA9PiB7XG4gICAgICAgICAgaWYgKCFhY2MpIHJldHVybiBjdXJyO1xuICAgICAgICAgIGlmIChjdXJyLmRvY3MgJiYgY3Vyci5kb2NzLmxlbmd0aCA+PSBhY2M/LmRvY3MubGVuZ3RoKSByZXR1cm4gY3VycjtcbiAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9LCByZXNwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZG9jc09ubHkpIHtcbiAgICAgIHJldHVybiByZXNwLmRvY3MgYXMgYW55O1xuICAgIH1cbiAgICByZXR1cm4gcmVzcCBhcyBhbnk7XG4gIH1cblxuICBhc3luYyB2aWV3PFI+KFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICBkZG9jOiBzdHJpbmcsXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIHZpZXdOYW1lOiBzdHJpbmcsXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIG9wdGlvbnM6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIC4uLl9hcmdzOiBDb250ZXh0dWFsQXJnczxGYWJyaWNDb250cmFjdENvbnRleHQ+XG4gICk6IFByb21pc2U8Vmlld1Jlc3BvbnNlPFI+PiB7XG4gICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkRXJyb3IoXG4gICAgICBcIkZhYnJpYyBjb250cmFjdHMgZG8gbm90IHN1cHBvcnQgQ291Y2hEQiB2aWV3cy5cIlxuICAgICk7XG4gIH1cblxuICBvdmVycmlkZSBTdGF0ZW1lbnQ8TSBleHRlbmRzIE1vZGVsPihcbiAgICBvdmVycmlkZXM/OiBQYXJ0aWFsPEFkYXB0ZXJGbGFncz5cbiAgKTogRmFicmljU3RhdGVtZW50PE0sIGFueT4ge1xuICAgIHJldHVybiBuZXcgRmFicmljU3RhdGVtZW50KHRoaXMgYXMgYW55LCBvdmVycmlkZXMpO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgdXBkYXRlQWxsPE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgdGFibGVOYW1lOiBDb25zdHJ1Y3RvcjxNPixcbiAgICBpZDogUHJpbWFyeUtleVR5cGVbXSxcbiAgICBtb2RlbDogUmVjb3JkPHN0cmluZywgYW55PltdLFxuICAgIC4uLmFyZ3M6IENvbnRleHR1YWxBcmdzPEZhYnJpY0NvbnRyYWN0Q29udGV4dD5cbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+W10+IHtcbiAgICBpZiAoaWQubGVuZ3RoICE9PSBtb2RlbC5sZW5ndGgpXG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIklkcyBhbmQgbW9kZWxzIG11c3QgaGF2ZSB0aGUgc2FtZSBsZW5ndGhcIik7XG4gICAgY29uc3QgeyBsb2csIGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMudXBkYXRlQWxsKTtcbiAgICBjb25zdCB0YWJsZUxhYmVsID0gTW9kZWwudGFibGVOYW1lKHRhYmxlTmFtZSk7XG4gICAgbG9nLmRlYnVnKGBVcGRhdGluZyAke2lkLmxlbmd0aH0gZW50cmllcyAke3RhYmxlTGFiZWx9IHRhYmxlYCk7XG4gICAgcmV0dXJuIFByb21pc2UuYWxsKFxuICAgICAgaWQubWFwKChpLCBjb3VudCkgPT4gdGhpcy51cGRhdGUodGFibGVOYW1lLCBpLCBtb2RlbFtjb3VudF0sIC4uLmN0eEFyZ3MpKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIG1vZGVsXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwa1xuICAgKiBAcGFyYW0gYXJnc1xuICAgKi9cbiAgb3ZlcnJpZGUgcHJlcGFyZTxNIGV4dGVuZHMgTW9kZWw+KFxuICAgIG1vZGVsOiBNLFxuICAgIC4uLmFyZ3M6IENvbnRleHR1YWxBcmdzPEZhYnJpY0NvbnRyYWN0Q29udGV4dD5cbiAgKTogUHJlcGFyZWRNb2RlbCAmIHtcbiAgICBzZWdyZWdhdGVkPzogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgYW55Pj47XG4gIH0ge1xuICAgIGNvbnN0IHsgbG9nLCBjdHggfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMucHJlcGFyZSk7XG4gICAgY29uc3Qgc3BsaXQ6IFNlZ3JlZ2F0ZWRNb2RlbDxNPiA9IE1vZGVsLnNlZ3JlZ2F0ZShtb2RlbCk7XG4gICAgY29uc3QgdGFibGVOYW1lID0gTW9kZWwudGFibGVOYW1lKG1vZGVsLmNvbnN0cnVjdG9yIGFzIGFueSk7XG4gICAgY29uc3QgcGsgPSBNb2RlbC5wayhtb2RlbC5jb25zdHJ1Y3RvciBhcyBhbnkpO1xuICAgIGNvbnN0IGlkID0gbW9kZWxbcGsgYXMga2V5b2YgTV07XG5cbiAgICBjb25zdCBpc01pcnJvciA9IGN0eC5nZXRPclVuZGVmaW5lZChcIm1pcnJvclwiKSBhcyBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgbWFwVG9SZWNvcmQgPSBmdW5jdGlvbiAoXG4gICAgICB0aGlzOiBGYWJyaWNDb250cmFjdEFkYXB0ZXIsXG4gICAgICBvYmo6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgICBrZXlzT3ZlcnJpZGU/OiBzdHJpbmdbXVxuICAgICkge1xuICAgICAgaWYgKGtleXNPdmVycmlkZSlcbiAgICAgICAga2V5c092ZXJyaWRlID0gWy4uLm5ldyBTZXQoWy4uLmtleXNPdmVycmlkZSwgcGsgYXMgc3RyaW5nXSldO1xuICAgICAgY29uc3QgcmVzdWx0ID0gT2JqZWN0LmVudHJpZXMob2JqKS5yZWR1Y2UoXG4gICAgICAgIChhY2N1bTogUmVjb3JkPHN0cmluZywgYW55PiwgW2tleSwgdmFsXSkgPT4ge1xuICAgICAgICAgIGlmICh0eXBlb2YgdmFsID09PSBcInVuZGVmaW5lZFwiKSByZXR1cm4gYWNjdW07XG4gICAgICAgICAgaWYgKGtleXNPdmVycmlkZSAmJiAha2V5c092ZXJyaWRlLmluY2x1ZGVzKGtleSkpIHJldHVybiBhY2N1bTtcbiAgICAgICAgICBjb25zdCBtYXBwZWRQcm9wID0gTW9kZWwuY29sdW1uTmFtZShtb2RlbCwga2V5IGFzIGFueSk7XG4gICAgICAgICAgaWYgKHRoaXMuaXNSZXNlcnZlZChtYXBwZWRQcm9wKSlcbiAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBQcm9wZXJ0eSBuYW1lICR7bWFwcGVkUHJvcH0gaXMgcmVzZXJ2ZWRgKTtcbiAgICAgICAgICB2YWwgPSB2YWwgaW5zdGFuY2VvZiBEYXRlID8gbmV3IERhdGUodmFsKSA6IHZhbDtcbiAgICAgICAgICBhY2N1bVttYXBwZWRQcm9wXSA9IHZhbDtcbiAgICAgICAgICByZXR1cm4gYWNjdW07XG4gICAgICAgIH0sXG4gICAgICAgIHt9XG4gICAgICApO1xuICAgICAgaWYgKE9iamVjdC5rZXlzKHJlc3VsdCkuZmlsdGVyKChrKSA9PiBCb29sZWFuKHJlc3VsdFtrXSkpLmxlbmd0aCkge1xuICAgICAgICAvLyBBZGQgdGFibGUgaWRlbnRpZmllclxuICAgICAgICByZXN1bHRbQ291Y2hEQktleXMuVEFCTEVdID0gdGFibGVOYW1lO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9LmJpbmQodGhpcyk7XG5cbiAgICBsb2cuc2lsbHkoXG4gICAgICBgUHJlcGFyaW5nIHJlY29yZCBmb3IgJHt0YWJsZU5hbWV9IHRhYmxlIHdpdGggcGsgJHsobW9kZWwgYXMgYW55KVtwa119YFxuICAgICk7XG5cbiAgICBjb25zdCBzZWdyZWdhdGVkV3JpdGVLZXlzID0gY3R4LmdldFNlZ3JlZ2F0ZWRXcml0ZXMoKTtcbiAgICBjb25zdCBzZWdyZWdhdGVkV3JpdGVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gICAgLy8gT25seSBhcHBseSBzZWdyZWdhdGVkIHdyaXRlcyB3aGVuIHRoZSBjdXJyZW50IG1vZGVsIGFjdHVhbGx5IGhhcyBhIHRyYW5zaWVudCBzcGxpdC5cbiAgICAvLyBUaGUgc2FtZSBGYWJyaWNDb250cmFjdENvbnRleHQgY2FuIGJlIHJldXNlZCBhY3Jvc3MgbmVzdGVkIG9wZXJhdGlvbnMgKGZvciBleGFtcGxlXG4gICAgLy8gc2VxdWVuY2UgdXBzZXJ0cyBkdXJpbmcgcGVyc2lzdGVudCB2ZXJzaW9uIGdlbmVyYXRpb24pLiBJbiB0aG9zZSBjYXNlcywgd2UgbXVzdCBub3RcbiAgICAvLyBhdHRlbXB0IHRvIGFwcGx5IHBhcmVudC1tb2RlbCBzZWdyZWdhdGVkIHdyaXRlIGtleXMgdG8gdW5yZWxhdGVkIG1vZGVscy5cbiAgICBpZiAoc2VncmVnYXRlZFdyaXRlS2V5cyAmJiBzcGxpdC50cmFuc2llbnQgJiYgdHlwZW9mIHNwbGl0LnRyYW5zaWVudCA9PT0gXCJvYmplY3RcIikge1xuICAgICAgZm9yIChjb25zdCBjb2xsZWN0aW9uIGluIHNlZ3JlZ2F0ZWRXcml0ZUtleXMpIHtcbiAgICAgICAgc2VncmVnYXRlZFdyaXRlc1tjb2xsZWN0aW9uXSA9IHNlZ3JlZ2F0ZWRXcml0ZXNbY29sbGVjdGlvbl0gfHwge307XG4gICAgICAgIHNlZ3JlZ2F0ZWRXcml0ZXNbY29sbGVjdGlvbl1baWQgYXMgYW55XSA9IG1hcFRvUmVjb3JkKFxuICAgICAgICAgIGN0eC5nZXRPclVuZGVmaW5lZChcImZvcmNlU2VncmVnYXRlV3JpdGVcIilcbiAgICAgICAgICAgID8gc3BsaXQubW9kZWxcbiAgICAgICAgICAgIDogKChzcGxpdC50cmFuc2llbnQgYXMgYW55KSB8fCB7fSksXG4gICAgICAgICAgc2VncmVnYXRlZFdyaXRlS2V5c1tjb2xsZWN0aW9uXVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEluIG1pcnJvciBtb2RlLCB0aGUgcmVjb3JkIHNob3VsZCBjb250YWluIEFMTCBtb2RlbCBwcm9wZXJ0aWVzIChmdWxsIGNvcHkpXG4gICAgY29uc3QgcmVjb3JkID0gaXNNaXJyb3IgPyBtYXBUb1JlY29yZChtb2RlbCkgOiBtYXBUb1JlY29yZChzcGxpdC5tb2RlbCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcmVjb3JkLFxuICAgICAgaWQ6IChtb2RlbCBhcyBhbnkpW3BrXSBhcyBzdHJpbmcsXG4gICAgICB0cmFuc2llbnQ6XG4gICAgICAgICFpc01pcnJvciAmJiBzcGxpdC50cmFuc2llbnQgJiYgT2JqZWN0LmtleXMoc3BsaXQudHJhbnNpZW50KS5sZW5ndGhcbiAgICAgICAgICA/IG1hcFRvUmVjb3JkKHNwbGl0LnRyYW5zaWVudClcbiAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIHNlZ3JlZ2F0ZWQ6IGlzTWlycm9yID8gdW5kZWZpbmVkIDogc2VncmVnYXRlZFdyaXRlcyxcbiAgICB9O1xuICB9XG5cbiAgb3ZlcnJpZGUgcmV2ZXJ0PE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgb2JqOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgIGNsYXp6OiBDb25zdHJ1Y3RvcjxNPixcbiAgICBpZDogUHJpbWFyeUtleVR5cGUsXG4gICAgdHJhbnNpZW50PzogUmVjb3JkPHN0cmluZywgYW55PixcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxGYWJyaWNDb250cmFjdENvbnRleHQ+XG4gICk6IE0ge1xuICAgIGNvbnN0IHsgbG9nLCBjdHggfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMucmV2ZXJ0KTtcbiAgICBjb25zdCBvYjogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuICAgIGNvbnN0IHBrID0gTW9kZWwucGsoY2xhenopO1xuICAgIGNvbnN0IHBrUHJvcHMgPSBNb2RlbC5wa1Byb3BzKGNsYXp6KTtcbiAgICBpZiAocGtQcm9wcz8udHlwZSA9PT0gTnVtYmVyICYmIHR5cGVvZiBpZCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgaWQgPSBOdW1iZXIoaWQpO1xuICAgIH1cbiAgICBvYltwayBhcyBzdHJpbmddID0gaWQ7XG4gICAgbG9nLnNpbGx5KGBSZWJ1aWxkaW5nIG1vZGVsICR7Y2xhenoubmFtZX0gaWQgJHtpZH1gKTtcblxuICAgIGZ1bmN0aW9uIG1hcFRvTW9kZWwocjogUmVjb3JkPGFueSwgYW55Pikge1xuICAgICAgY29uc3QgbSA9IChcbiAgICAgICAgdHlwZW9mIGNsYXp6ID09PSBcInN0cmluZ1wiID8gTW9kZWwuYnVpbGQob2IsIGNsYXp6KSA6IG5ldyBjbGF6eihvYilcbiAgICAgICkgYXMgTTtcbiAgICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSBNb2RlbC5nZXRBdHRyaWJ1dGVzKGNsYXp6KTtcbiAgICAgIGNvbnN0IGtleXMgPSBhdHRyaWJ1dGVzLmxlbmd0aCA/IGF0dHJpYnV0ZXMgOiBPYmplY3Qua2V5cyhtKTtcbiAgICAgIHJldHVybiBrZXlzXG4gICAgICAgIC5maWx0ZXIoKGspID0+IGsgIT09IChwayBhcyBzdHJpbmcpKVxuICAgICAgICAucmVkdWNlKChhY2N1bTogTSwga2V5KSA9PiB7XG4gICAgICAgICAgKGFjY3VtIGFzIFJlY29yZDxzdHJpbmcsIGFueT4pW2tleV0gPVxuICAgICAgICAgICAgcltNb2RlbC5jb2x1bW5OYW1lKGFjY3VtLCBrZXkgYXMgYW55KV07XG4gICAgICAgICAgcmV0dXJuIGFjY3VtO1xuICAgICAgICB9LCBtKTtcbiAgICB9XG5cbiAgICBsZXQgcmVzdWx0ID0gbWFwVG9Nb2RlbChvYmopO1xuXG4gICAgaWYgKHRyYW5zaWVudCAmJiAhdGhpcy5zaG91bGRSZWJ1aWxkV2l0aFRyYW5zaWVudChjdHgpKSB7XG4gICAgICBsb2cuZGVidWcoXG4gICAgICAgIGBmaWx0ZXJpbmcgdHJhbnNpZW50IHByb3BlcnRpZXM6ICR7T2JqZWN0LmtleXModHJhbnNpZW50KS5qb2luKFwiLCBcIil9YFxuICAgICAgKTtcbiAgICAgIHJlc3VsdCA9IE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKChhY2MsIFtrZXksIHZdKSA9PiB7XG4gICAgICAgIGlmIChrZXkgPT09IHBrIHx8ICEoa2V5IGluIHRyYW5zaWVudCkpIHtcbiAgICAgICAgICBhY2Nba2V5IGFzIGtleW9mIE1dID0gdjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSwgbmV3IGNsYXp6KCkpO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIHNob3VsZFJlYnVpbGRXaXRoVHJhbnNpZW50KGN0eDogRmFicmljQ29udHJhY3RDb250ZXh0KTogYm9vbGVhbiB7XG4gICAgaWYgKCFjdHgpIHJldHVybiBmYWxzZTtcbiAgICBpZiAoY3R4LmdldE9yVW5kZWZpbmVkKFwicmVidWlsZFdpdGhUcmFuc2llbnRcIikpIHJldHVybiB0cnVlO1xuICAgIGNvbnN0IG9wZXJhdGlvbiA9IGN0eC5nZXRPclVuZGVmaW5lZChcIm9wZXJhdGlvblwiKSBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgaWYgKCFvcGVyYXRpb24pIHJldHVybiB0cnVlO1xuICAgIGNvbnN0IG9wID0gb3BlcmF0aW9uLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKTtcbiAgICByZXR1cm4gIVRyYW5zYWN0aW9uT3BlcmF0aW9uS2V5cy5tYXAoKGspID0+IGsudG9Mb3dlckNhc2UoKSkuaW5jbHVkZXMob3ApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb250ZXh0TXNwKGNvbnRleHQ6IEZhYnJpY0NvbnRyYWN0Q29udGV4dCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgaWRlbnRpdHkgPSBjb250ZXh0LmdldChcImlkZW50aXR5XCIpIGFzXG4gICAgICB8IHN0cmluZ1xuICAgICAgfCBDbGllbnRJZGVudGl0eVxuICAgICAgfCB1bmRlZmluZWQ7XG4gICAgaWYgKCFpZGVudGl0eSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBpZiAodHlwZW9mIGlkZW50aXR5ID09PSBcInN0cmluZ1wiKSByZXR1cm4gaWRlbnRpdHk7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBpZGVudGl0eS5nZXRNU1BJRCgpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGVuZm9yY2VNaXJyb3JBdXRob3JpemF0aW9uPE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgY2xheno6IENvbnN0cnVjdG9yPE0+LFxuICAgIGN0eDogRmFicmljQ29udHJhY3RDb250ZXh0XG4gICk6IHZvaWQge1xuICAgIGNvbnN0IG1pcnJvck1ldGEgPSBNb2RlbC5taXJyb3JlZEF0KGNsYXp6KTtcbiAgICBpZiAoIW1pcnJvck1ldGEpIHJldHVybjtcbiAgICBjb25zdCBtc3AgPSB0aGlzLmdldENvbnRleHRNc3AoY3R4KTtcbiAgICBpZiAoIW1zcCkgcmV0dXJuO1xuICAgIGlmIChcbiAgICAgIG1zcCA9PT0gbWlycm9yTWV0YS5tc3BJZCB8fFxuICAgICAgKG1pcnJvck1ldGEuY29uZGl0aW9uICYmIG1pcnJvck1ldGEuY29uZGl0aW9uKG1zcCkpXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgQXV0aG9yaXphdGlvbkVycm9yKFxuICAgICAgICBgT3JnYW5pemF0aW9uICR7bXNwfSBpcyBub3QgYXV0aG9yaXplZCB0byBtb2RpZnkgbWlycm9yZWQgZGF0YWBcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgb3ZlcnJpZGUgY3JlYXRlUHJlZml4PE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgdGFibGVOYW1lOiBDb25zdHJ1Y3RvcjxNPixcbiAgICBpZDogUHJpbWFyeUtleVR5cGUsXG4gICAgbW9kZWw6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPEZhYnJpY0NvbnRyYWN0Q29udGV4dD5cbiAgKSB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLmNyZWF0ZVByZWZpeCk7XG4gICAgY29uc3QgcmVjb3JkOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gICAgcmVjb3JkW0NvdWNoREJLZXlzLlRBQkxFXSA9IE1vZGVsLnRhYmxlTmFtZSh0YWJsZU5hbWUpO1xuICAgIE9iamVjdC5hc3NpZ24ocmVjb3JkLCBtb2RlbCk7XG5cbiAgICByZXR1cm4gW3RhYmxlTmFtZSwgaWQsIHJlY29yZCwgLi4uY3R4QXJnc10gYXMgW1xuICAgICAgQ29uc3RydWN0b3I8TT4sXG4gICAgICBQcmltYXJ5S2V5VHlwZSxcbiAgICAgIFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgICAuLi5hbnlbXSxcbiAgICAgIEZhYnJpY0NvbnRyYWN0Q29udGV4dCxcbiAgICBdO1xuICB9XG5cbiAgb3ZlcnJpZGUgdXBkYXRlUHJlZml4PE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgdGFibGVOYW1lOiBDb25zdHJ1Y3RvcjxNPixcbiAgICBpZDogUHJpbWFyeUtleVR5cGUsXG4gICAgbW9kZWw6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPEZhYnJpY0NvbnRyYWN0Q29udGV4dD5cbiAgKTogYW55W10ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy51cGRhdGVQcmVmaXgpO1xuICAgIGNvbnN0IHJlY29yZDogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuICAgIHJlY29yZFtDb3VjaERCS2V5cy5UQUJMRV0gPSBNb2RlbC50YWJsZU5hbWUodGFibGVOYW1lKTtcbiAgICBPYmplY3QuYXNzaWduKHJlY29yZCwgbW9kZWwpO1xuXG4gICAgcmV0dXJuIFt0YWJsZU5hbWUsIGlkLCByZWNvcmQsIC4uLmN0eEFyZ3NdIGFzIFtcbiAgICAgIENvbnN0cnVjdG9yPE0+LFxuICAgICAgUHJpbWFyeUtleVR5cGUsXG4gICAgICBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgICAgLi4uYW55W10sXG4gICAgICBGYWJyaWNDb250cmFjdENvbnRleHQsXG4gICAgXTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBjcmVhdGVBbGxQcmVmaXg8TSBleHRlbmRzIE1vZGVsPihcbiAgICB0YWJsZU5hbWU6IENvbnN0cnVjdG9yPE0+LFxuICAgIGlkczogUHJpbWFyeUtleVR5cGVbXSxcbiAgICBtb2RlbHM6IFJlY29yZDxzdHJpbmcsIGFueT5bXSxcbiAgICAuLi5hcmdzOiBbLi4uYW55LCBGYWJyaWNDb250cmFjdENvbnRleHRdXG4gICk6IChzdHJpbmcgfCBzdHJpbmdbXSB8IG51bWJlcltdIHwgUmVjb3JkPHN0cmluZywgYW55PltdKVtdIHtcbiAgICBpZiAoaWRzLmxlbmd0aCAhPT0gbW9kZWxzLmxlbmd0aClcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiSWRzIGFuZCBtb2RlbHMgbXVzdCBoYXZlIHRoZSBzYW1lIGxlbmd0aFwiKTtcblxuICAgIGNvbnN0IGN0eDogRmFicmljQ29udHJhY3RDb250ZXh0ID0gYXJncy5wb3AoKTtcblxuICAgIGNvbnN0IHJlY29yZHMgPSBpZHMubWFwKChpZCwgY291bnQpID0+IHtcbiAgICAgIGNvbnN0IHJlY29yZDogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuICAgICAgcmVjb3JkW0NvdWNoREJLZXlzLlRBQkxFXSA9IE1vZGVsLnRhYmxlTmFtZSh0YWJsZU5hbWUpO1xuICAgICAgT2JqZWN0LmFzc2lnbihyZWNvcmQsIG1vZGVsc1tjb3VudF0pO1xuICAgICAgcmV0dXJuIHJlY29yZDtcbiAgICB9KTtcbiAgICByZXR1cm4gW3RhYmxlTmFtZSwgaWRzLCByZWNvcmRzLCBjdHggYXMgYW55XTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB1cGRhdGVBbGxQcmVmaXg8TSBleHRlbmRzIE1vZGVsPihcbiAgICB0YWJsZU5hbWU6IENvbnN0cnVjdG9yPE0+LFxuICAgIGlkczogUHJpbWFyeUtleVR5cGVbXSxcbiAgICBtb2RlbHM6IFJlY29yZDxzdHJpbmcsIGFueT5bXSxcbiAgICAuLi5hcmdzOiBbLi4uYW55LCBGYWJyaWNDb250cmFjdENvbnRleHRdXG4gICkge1xuICAgIGlmIChpZHMubGVuZ3RoICE9PSBtb2RlbHMubGVuZ3RoKVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJJZHMgYW5kIG1vZGVscyBtdXN0IGhhdmUgdGhlIHNhbWUgbGVuZ3RoXCIpO1xuXG4gICAgY29uc3QgY3R4OiBGYWJyaWNDb250cmFjdENvbnRleHQgPSBhcmdzLnBvcCgpO1xuXG4gICAgY29uc3QgcmVjb3JkcyA9IGlkcy5tYXAoKGlkLCBjb3VudCkgPT4ge1xuICAgICAgY29uc3QgcmVjb3JkOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gICAgICByZWNvcmRbQ291Y2hEQktleXMuVEFCTEVdID0gTW9kZWwudGFibGVOYW1lKHRhYmxlTmFtZSk7XG4gICAgICBPYmplY3QuYXNzaWduKHJlY29yZCwgbW9kZWxzW2NvdW50XSk7XG4gICAgICByZXR1cm4gcmVjb3JkO1xuICAgIH0pO1xuICAgIHJldHVybiBbdGFibGVOYW1lLCBpZHMsIHJlY29yZHMsIGN0eCBhcyBhbnldO1xuICB9XG5cbiAgb3ZlcnJpZGUgcGFyc2VFcnJvcjxFIGV4dGVuZHMgQmFzZUVycm9yPihcbiAgICBlcnI6IEVycm9yIHwgc3RyaW5nLFxuICAgIHJlYXNvbj86IHN0cmluZ1xuICApOiBFIHtcbiAgICByZXR1cm4gRmFicmljQ29udHJhY3RBZGFwdGVyLnBhcnNlRXJyb3IocmVhc29uIHx8IGVycik7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgbG9nQ3R4PFxuICAgIEFSR1MgZXh0ZW5kcyBhbnlbXSA9IGFueVtdLFxuICAgIE1FVEhPRCBleHRlbmRzIE1ldGhvZE9yT3BlcmF0aW9uID0gTWV0aG9kT3JPcGVyYXRpb24sXG4gID4oXG4gICAgYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPEZhYnJpY0NvbnRyYWN0Q29udGV4dCwgQVJHUz4sXG4gICAgb3BlcmF0aW9uOiBNRVRIT0RcbiAgKTogRmFicmljQ29udGV4dHVhbGl6ZWRBcmdzPEFSR1MsIE1FVEhPRCBleHRlbmRzIHN0cmluZyA/IHRydWUgOiBmYWxzZT47XG4gIHByb3RlY3RlZCBvdmVycmlkZSBsb2dDdHg8XG4gICAgQVJHUyBleHRlbmRzIGFueVtdID0gYW55W10sXG4gICAgTUVUSE9EIGV4dGVuZHMgTWV0aG9kT3JPcGVyYXRpb24gPSBNZXRob2RPck9wZXJhdGlvbixcbiAgPihcbiAgICBhcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8RmFicmljQ29udHJhY3RDb250ZXh0LCBBUkdTPixcbiAgICBvcGVyYXRpb246IE1FVEhPRCxcbiAgICBhbGxvd0NyZWF0ZTogZmFsc2VcbiAgKTogRmFicmljQ29udGV4dHVhbGl6ZWRBcmdzPEFSR1MsIE1FVEhPRCBleHRlbmRzIHN0cmluZyA/IHRydWUgOiBmYWxzZT47XG4gIHByb3RlY3RlZCBvdmVycmlkZSBsb2dDdHg8XG4gICAgQVJHUyBleHRlbmRzIGFueVtdID0gYW55W10sXG4gICAgTUVUSE9EIGV4dGVuZHMgTWV0aG9kT3JPcGVyYXRpb24gPSBNZXRob2RPck9wZXJhdGlvbixcbiAgPihcbiAgICBhcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8RmFicmljQ29udHJhY3RDb250ZXh0LCBBUkdTPixcbiAgICBvcGVyYXRpb246IE1FVEhPRCxcbiAgICBhbGxvd0NyZWF0ZTogdHJ1ZSxcbiAgICBvdmVycmlkZXM/OiBQYXJ0aWFsPEZsYWdzT2Y8RmFicmljQ29udHJhY3RDb250ZXh0Pj5cbiAgKTogUHJvbWlzZTxcbiAgICBGYWJyaWNDb250ZXh0dWFsaXplZEFyZ3M8QVJHUywgTUVUSE9EIGV4dGVuZHMgc3RyaW5nID8gdHJ1ZSA6IGZhbHNlPlxuICA+O1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgbG9nQ3R4PFxuICAgIEFSR1MgZXh0ZW5kcyBhbnlbXSA9IGFueVtdLFxuICAgIE1FVEhPRCBleHRlbmRzIE1ldGhvZE9yT3BlcmF0aW9uID0gTWV0aG9kT3JPcGVyYXRpb24sXG4gID4oXG4gICAgYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPEZhYnJpY0NvbnRyYWN0Q29udGV4dCwgQVJHUz4sXG4gICAgb3BlcmF0aW9uOiBNRVRIT0QsXG4gICAgYWxsb3dDcmVhdGU6IGJvb2xlYW4gPSBmYWxzZSxcbiAgICBvdmVycmlkZXM/OiBQYXJ0aWFsPEZsYWdzT2Y8RmFicmljQ29udHJhY3RDb250ZXh0Pj4gfCBDdHhcbiAgKTpcbiAgICB8IFByb21pc2U8XG4gICAgICAgIEZhYnJpY0NvbnRleHR1YWxpemVkQXJnczxBUkdTLCBNRVRIT0QgZXh0ZW5kcyBzdHJpbmcgPyB0cnVlIDogZmFsc2U+XG4gICAgICA+XG4gICAgfCBGYWJyaWNDb250ZXh0dWFsaXplZEFyZ3M8QVJHUywgTUVUSE9EIGV4dGVuZHMgc3RyaW5nID8gdHJ1ZSA6IGZhbHNlPiB7XG4gICAgaWYgKCFhbGxvd0NyZWF0ZSlcbiAgICAgIHJldHVybiBzdXBlci5sb2dDdHg8QVJHUywgTUVUSE9EPihcbiAgICAgICAgYXJncyxcbiAgICAgICAgb3BlcmF0aW9uIGFzIGFueSxcbiAgICAgICAgYWxsb3dDcmVhdGUgYXMgYW55LFxuICAgICAgICBvdmVycmlkZXMgYXMgYW55XG4gICAgICApIGFzIGFueTtcblxuICAgIHJldHVybiBzdXBlci5sb2dDdHhcbiAgICAgIC5jYWxsKHRoaXMsIGFyZ3MsIG9wZXJhdGlvbiBhcyBhbnksIGFsbG93Q3JlYXRlLCBvdmVycmlkZXMgYXMgYW55KVxuICAgICAgLnRoZW4oKHJlcykgPT4ge1xuICAgICAgICBpZiAoIShyZXMuY3R4IGluc3RhbmNlb2YgRmFicmljQ29udHJhY3RDb250ZXh0KSlcbiAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgSW52YWxpZCBjb250ZXh0IGJpbmRpbmdgKTtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24ocmVzLCB7XG4gICAgICAgICAgc3R1YjogcmVzLmN0eC5zdHViLFxuICAgICAgICAgIGlkZW50aXR5OiByZXMuY3R4LmlkZW50aXR5LFxuICAgICAgICB9KTtcbiAgICAgIH0pIGFzIGFueTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIHVwZGF0ZU9ic2VydmVycyhcbiAgICB0YWJsZTogQ29uc3RydWN0b3I8YW55PiB8IHN0cmluZyxcbiAgICBldmVudDogT3BlcmF0aW9uS2V5cyB8IEJ1bGtDcnVkT3BlcmF0aW9uS2V5cyB8IHN0cmluZyxcbiAgICBpZDogRXZlbnRJZHMsXG4gICAgLi4uYXJnczogQ29udGV4dHVhbEFyZ3M8RmFicmljQ29udHJhY3RDb250ZXh0PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMub2JzZXJ2ZXJIYW5kbGVyKVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgIFwiT2JzZXJ2ZXJIYW5kbGVyIG5vdCBpbml0aWFsaXplZC4gRGlkIHlvdSByZWdpc3RlciBhbnkgb2JzZXJ2YWJsZXM/XCJcbiAgICAgICk7XG4gICAgY29uc3QgeyBjdHgsIGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMudXBkYXRlT2JzZXJ2ZXJzKTtcbiAgICBpZiAoY3R4LmlzRnVsbHlTZWdyZWdhdGVkKSByZXR1cm47XG4gICAgaWYgKGN0eC5nZXRPclVuZGVmaW5lZChcIm5vRW1pdFwiKSkgcmV0dXJuO1xuICAgIGlmICghY3R4LnN0dWIpIHJldHVybjtcbiAgICBjb25zdCBpc0J1bGsgPSBBcnJheS5pc0FycmF5KGlkKTtcbiAgICBjb25zdCBlbWl0U2luZ2xlID0gIWN0eC5nZXRPclVuZGVmaW5lZChcIm5vRW1pdFNpbmdsZVwiKTtcbiAgICBjb25zdCBlbWl0QnVsayA9ICFjdHguZ2V0T3JVbmRlZmluZWQoXCJub0VtaXRCdWxrXCIpO1xuICAgIGlmICgoaXNCdWxrICYmIGVtaXRCdWxrKSB8fCAoIWlzQnVsayAmJiBlbWl0U2luZ2xlKSkge1xuICAgICAgLy8gUGFzcyB0aGUgTVNQIG93bmVyIGZyb20gc3R1YiBhbmQgdGhlIHJlc3VsdCBwYXlsb2FkIChpZiBhbnkpIGluIHRoZVxuICAgICAgLy8gcG9zaXRpb25zIHRoZSBoYW5kbGVyIGV4cGVjdHM6ICh0YWJsZSwgZXZlbnQsIGlkLCBvd25lcj8sIHBheWxvYWQ/LCBjdHgpXG4gICAgICBjb25zdCBtc3BJZCA9IGN0eC5zdHViLmdldE1zcElEID8gY3R4LnN0dWIuZ2V0TXNwSUQoKSA6IHVuZGVmaW5lZDtcbiAgICAgIGNvbnN0IG5vbkN0eEFyZ3MgPSBjdHhBcmdzLnNsaWNlKDAsIC0xKTsgLy8gZXZlcnl0aGluZyBiZWZvcmUgY3R4XG4gICAgICBjb25zdCBwYXlsb2FkID0gbm9uQ3R4QXJncy5sZW5ndGggPiAwID8gbm9uQ3R4QXJnc1swXSA6IHVuZGVmaW5lZDtcbiAgICAgIGF3YWl0IHRoaXMub2JzZXJ2ZXJIYW5kbGVyLnVwZGF0ZU9ic2VydmVycyhcbiAgICAgICAgdGFibGUsXG4gICAgICAgIGV2ZW50LFxuICAgICAgICBpZCxcbiAgICAgICAgbXNwSWQsXG4gICAgICAgIHBheWxvYWQsXG4gICAgICAgIGN0eFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgb3ZlcnJpZGUgcGFyc2VFcnJvcjxFIGV4dGVuZHMgQmFzZUVycm9yPihlcnI6IEVycm9yIHwgc3RyaW5nKTogRSB7XG4gICAgLy8gaWYgKFxuICAgIC8vICAgTUlTU0lOR19QUklWQVRFX0RBVEFfUkVHRVgudGVzdChcbiAgICAvLyAgICAgdHlwZW9mIGVyciA9PT0gXCJzdHJpbmdcIiA/IGVyciA6IGVyci5tZXNzYWdlXG4gICAgLy8gICApXG4gICAgLy8gKVxuICAgIC8vICAgcmV0dXJuIG5ldyBVbmF1dGhvcml6ZWRQcml2YXRlRGF0YUFjY2VzcyhlcnIpIGFzIEU7XG4gICAgY29uc3QgbXNnID0gdHlwZW9mIGVyciA9PT0gXCJzdHJpbmdcIiA/IGVyciA6IGVyci5tZXNzYWdlO1xuICAgIGlmIChtc2cuaW5jbHVkZXMoTm90Rm91bmRFcnJvci5uYW1lKSkgcmV0dXJuIG5ldyBOb3RGb3VuZEVycm9yKGVycikgYXMgRTtcbiAgICBpZiAobXNnLmluY2x1ZGVzKENvbmZsaWN0RXJyb3IubmFtZSkpIHJldHVybiBuZXcgQ29uZmxpY3RFcnJvcihlcnIpIGFzIEU7XG4gICAgaWYgKG1zZy5pbmNsdWRlcyhCYWRSZXF1ZXN0RXJyb3IubmFtZSkpXG4gICAgICByZXR1cm4gbmV3IEJhZFJlcXVlc3RFcnJvcihlcnIpIGFzIEU7XG4gICAgaWYgKG1zZy5pbmNsdWRlcyhRdWVyeUVycm9yLm5hbWUpKSByZXR1cm4gbmV3IFF1ZXJ5RXJyb3IoZXJyKSBhcyBFO1xuICAgIGlmIChtc2cuaW5jbHVkZXMoUGFnaW5nRXJyb3IubmFtZSkpIHJldHVybiBuZXcgUGFnaW5nRXJyb3IoZXJyKSBhcyBFO1xuICAgIGlmIChtc2cuaW5jbHVkZXMoVW5zdXBwb3J0ZWRFcnJvci5uYW1lKSlcbiAgICAgIHJldHVybiBuZXcgVW5zdXBwb3J0ZWRFcnJvcihlcnIpIGFzIEU7XG4gICAgaWYgKG1zZy5pbmNsdWRlcyhNaWdyYXRpb25FcnJvci5uYW1lKSkgcmV0dXJuIG5ldyBNaWdyYXRpb25FcnJvcihlcnIpIGFzIEU7XG4gICAgaWYgKG1zZy5pbmNsdWRlcyhPYnNlcnZlckVycm9yLm5hbWUpKSByZXR1cm4gbmV3IE9ic2VydmVyRXJyb3IoZXJyKSBhcyBFO1xuICAgIGlmIChtc2cuaW5jbHVkZXMoQXV0aG9yaXphdGlvbkVycm9yLm5hbWUpKVxuICAgICAgcmV0dXJuIG5ldyBBdXRob3JpemF0aW9uRXJyb3IoZXJyKSBhcyBFO1xuICAgIGlmIChtc2cuaW5jbHVkZXMoRm9yYmlkZGVuRXJyb3IubmFtZSkpIHJldHVybiBuZXcgRm9yYmlkZGVuRXJyb3IoZXJyKSBhcyBFO1xuICAgIGlmIChtc2cuaW5jbHVkZXMoQ29ubmVjdGlvbkVycm9yLm5hbWUpKVxuICAgICAgcmV0dXJuIG5ldyBDb25uZWN0aW9uRXJyb3IoZXJyKSBhcyBFO1xuICAgIGlmIChtc2cuaW5jbHVkZXMoU2VyaWFsaXphdGlvbkVycm9yLm5hbWUpKVxuICAgICAgcmV0dXJuIG5ldyBTZXJpYWxpemF0aW9uRXJyb3IoZXJyKSBhcyBFO1xuICAgIGlmIChtc2cuaW5jbHVkZXMoXCJubyBsZWRnZXIgY29udGV4dFwiKSlcbiAgICAgIHJldHVybiBuZXcgTWlzc2luZ0NvbnRleHRFcnJvcihcbiAgICAgICAgYE5vIGNvbnRleHQgZm91bmQuIHRoaXMgY2FuIGJlIGNhdXNlZCBieSBkZWJ1Z2dpbmc6ICR7bXNnfWBcbiAgICAgICkgYXMgRTtcblxuICAgIHJldHVybiBuZXcgSW50ZXJuYWxFcnJvcihlcnIpIGFzIEU7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFN0YXRpYyBtZXRob2QgZm9yIGRlY29yYXRpb24gb3ZlcnJpZGVzXG4gICAqIEBzdW1tYXJ5IE92ZXJyaWRlcy9leHRlbmRzIGRlY2FmIGRlY29yYXRpb24gd2l0aCBGYWJyaWMtc3BlY2lmaWMgZnVuY3Rpb25hbGl0eVxuICAgKiBAc3RhdGljXG4gICAqIEBvdmVycmlkZVxuICAgKiBAcmV0dXJuIHt2b2lkfVxuICAgKi9cbiAgc3RhdGljIG92ZXJyaWRlIGRlY29yYXRpb24oKTogdm9pZCB7XG4gICAgc3VwZXIuZGVjb3JhdGlvbigpO1xuICAgIERlY29yYXRpb24uZmxhdm91cmVkQXMoRmFicmljRmxhdm91cilcbiAgICAgIC5mb3IoUGVyc2lzdGVuY2VLZXlzLkNSRUFURURfQlkpXG4gICAgICAuZGVmaW5lKHtcbiAgICAgICAgZGVjb3JhdG9yOiBmdW5jdGlvbiBjcmVhdGVkQnkoKSB7XG4gICAgICAgICAgcmV0dXJuIGFwcGx5KFxuICAgICAgICAgICAgb25DcmVhdGUoY3JlYXRlZEJ5T25GYWJyaWNDcmVhdGVVcGRhdGUpLFxuICAgICAgICAgICAgcHJvcE1ldGFkYXRhKFBlcnNpc3RlbmNlS2V5cy5DUkVBVEVEX0JZLCB7fSlcbiAgICAgICAgICApO1xuICAgICAgICB9LFxuICAgICAgfSBhcyBhbnkpXG4gICAgICAuYXBwbHkoKTtcblxuICAgIERlY29yYXRpb24uZmxhdm91cmVkQXMoRmFicmljRmxhdm91cilcbiAgICAgIC5mb3IoUGVyc2lzdGVuY2VLZXlzLlVQREFURURfQlkpXG4gICAgICAuZGVmaW5lKHtcbiAgICAgICAgZGVjb3JhdG9yOiBmdW5jdGlvbiBjcmVhdGVkQnkoKSB7XG4gICAgICAgICAgcmV0dXJuIGFwcGx5KFxuICAgICAgICAgICAgb25DcmVhdGVVcGRhdGUoY3JlYXRlZEJ5T25GYWJyaWNDcmVhdGVVcGRhdGUpLFxuICAgICAgICAgICAgcHJvcE1ldGFkYXRhKFBlcnNpc3RlbmNlS2V5cy5VUERBVEVEX0JZLCB7fSlcbiAgICAgICAgICApO1xuICAgICAgICB9LFxuICAgICAgfSBhcyBhbnkpXG4gICAgICAuYXBwbHkoKTtcblxuICAgIERlY29yYXRpb24uZmxhdm91cmVkQXMoRmFicmljRmxhdm91cilcbiAgICAgIC5mb3IoUGVyc2lzdGVuY2VLZXlzLkNPTFVNTilcbiAgICAgIC5leHRlbmQoRmFicmljUHJvcGVydHkoKSlcbiAgICAgIC5hcHBseSgpO1xuXG4gICAgRGVjb3JhdGlvbi5mbGF2b3VyZWRBcyhGYWJyaWNGbGF2b3VyKVxuICAgICAgLmZvcihWYWxpZGF0aW9uS2V5cy5EQVRFKVxuICAgICAgLmV4dGVuZChmdW5jdGlvbiBmYWJyaWNQcm9wZXJ0eSgpIHtcbiAgICAgICAgcmV0dXJuICh0YXJnZXQ6IGFueSwgcHJvcD86IGFueSkgPT4ge1xuICAgICAgICAgIFByb3BlcnR5KHByb3AsIFwic3RyaW5nOmRhdGVcIikodGFyZ2V0LCBwcm9wKTtcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuXG4gICAgRGVjb3JhdGlvbi5mbGF2b3VyZWRBcyhGYWJyaWNGbGF2b3VyKVxuICAgICAgLmZvcihQZXJzaXN0ZW5jZUtleXMuVEFCTEUpXG4gICAgICAuZXh0ZW5kKGZ1bmN0aW9uIHRhYmxlKG9iajogYW55KSB7XG4gICAgICAgIGNvbnN0IGNoYWluOiBhbnlbXSA9IFtdO1xuICAgICAgICBsZXQgY3VycmVudCA9XG4gICAgICAgICAgdHlwZW9mIG9iaiA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgICAgICA/IE1ldGFkYXRhLmNvbnN0cihvYmopXG4gICAgICAgICAgICA6IE1ldGFkYXRhLmNvbnN0cihvYmouY29uc3RydWN0b3IpO1xuXG4gICAgICAgIHdoaWxlIChjdXJyZW50ICYmIGN1cnJlbnQgIT09IE9iamVjdCAmJiBjdXJyZW50LnByb3RvdHlwZSkge1xuICAgICAgICAgIGNoYWluLnB1c2goY3VycmVudCk7XG4gICAgICAgICAgY3VycmVudCA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihjdXJyZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnNvbGUubG9nKGNoYWluLm1hcCgoYykgPT4gYy5uYW1lIHx8IGMpKTtcblxuICAgICAgICAvLyBBcHBseSBmcm9tIHRoZSBiYXNlIGNsYXNzIGRvd24gdG8gdGhlIGRlY29yYXRlZCBjbGFzc1xuICAgICAgICB3aGlsZSAoY2hhaW4ubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGNvbnN0IGNvbnN0cnVjdG9yID0gY2hhaW4ucG9wKCk7XG4gICAgICAgICAgY29uc29sZS5sb2coYENhbGxpbmcgb24gJHtjb25zdHJ1Y3Rvci5uYW1lfWApO1xuICAgICAgICAgIEZhYnJpY09iamVjdCgpKGNvbnN0cnVjdG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBGYWJyaWNPYmplY3QoKShvYmopO1xuICAgICAgfSlcbiAgICAgIC5hcHBseSgpO1xuICB9XG59XG5cbkZhYnJpY0NvbnRyYWN0QWRhcHRlci5kZWNvcmF0aW9uKCk7XG5BZGFwdGVyLnNldEN1cnJlbnQoRmFicmljRmxhdm91cik7XG4iXX0=
|
|
1194
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udHJhY3RBZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiQ29udHJhY3RBZGFwdGVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQTBDQSxzRUFTQztBQW5ERCx1REFBcUU7QUFDckUseUVBQXVFO0FBQ3ZFLDZEQUE2RDtBQUM3RCwyREFBNks7QUFDN0ssNkRBQW9HO0FBQ3BHLCtDQUE0QztBQUM1Qyx5Q0FBeVE7QUFDelEsK0VBQXlFO0FBQ3pFLDZFQUErRDtBQUMvRCwyRUFBcUU7QUFDckUsMkRBQXlEO0FBQ3pELG1HQUE2RjtBQUM3RixxREFBa0Y7QUFDbEYsNkVBQXVFO0FBQ3ZFLHFEQUE0RDtBQUM1RCwyRUFBcUU7QUFDckU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5Qkc7QUFDSSxLQUFLLFVBQVUsNkJBQTZCLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSztJQUN6RSxJQUFJLENBQUM7UUFDRCxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3JDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDMUIsNkRBQTZEO0lBQ2pFLENBQUM7SUFDRCxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ1AsTUFBTSxJQUFJLHVCQUFnQixDQUFDLGdFQUFnRSxDQUFDLENBQUM7SUFDakcsQ0FBQztBQUNMLENBQUM7QUFDRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0NHO0FBQ0gsTUFBYSxxQkFBc0IsU0FBUSw0QkFBYztJQUNyRCxTQUFTLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFDO0lBQzFELE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxRQUFRO1FBQ3pDLElBQUksT0FBTyxRQUFRLEtBQUssUUFBUTtZQUM1QixPQUFPLFNBQVMsQ0FBQztRQUNyQixJQUFJLENB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RUFBRSxDQUFDO0lBQ2pCLENBQUM7Q0FDSjtBQXZrQ0Qsc0RBdWtDQztBQUNELHFCQUFxQixDQUFDLFVBQVUsRUFBRSxDQUFDO0FBQ25DLGNBQU8sQ0FBQyxVQUFVLENBQUMsNEJBQWEsQ0FBQyxDQUFDO0FBQ2xDLDg0bUlBQTg0bUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb3VjaERCQWRhcHRlciwgQ291Y2hEQktleXMsIH0gZnJvbSBcIkBkZWNhZi10cy9mb3ItY291Y2hkYlwiO1xuaW1wb3J0IHsgTW9kZWwsIFZhbGlkYXRpb25LZXlzIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgRmFicmljQ29udHJhY3RDb250ZXh0IH0gZnJvbSBcIi4vQ29udHJhY3RDb250ZXh0LmpzXCI7XG5pbXBvcnQgeyBCYWRSZXF1ZXN0RXJyb3IsIEJ1bGtDcnVkT3BlcmF0aW9uS2V5cywgQ29uZmxpY3RFcnJvciwgSW50ZXJuYWxFcnJvciwgTm90Rm91bmRFcnJvciwgb25DcmVhdGUsIG9uQ3JlYXRlVXBkYXRlLCBTZXJpYWxpemF0aW9uRXJyb3IsIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBPYmplY3QgYXMgRmFicmljT2JqZWN0LCBQcm9wZXJ0eSwgUHJvcGVydHkgYXMgRmFicmljUHJvcGVydHksIH0gZnJvbSBcImZhYnJpYy1jb250cmFjdC1hcGlcIjtcbmltcG9ydCB7IExvZ2dpbmcgfSBmcm9tIFwiQGRlY2FmLXRzL2xvZ2dpbmdcIjtcbmltcG9ydCB7IFBlcnNpc3RlbmNlS2V5cywgVW5zdXBwb3J0ZWRFcnJvciwgQWRhcHRlciwgUXVlcnlFcnJvciwgUGFnaW5nRXJyb3IsIE1pZ3JhdGlvbkVycm9yLCBPYnNlcnZlckVycm9yLCBBdXRob3JpemF0aW9uRXJyb3IsIEZvcmJpZGRlbkVycm9yLCBDb25uZWN0aW9uRXJyb3IsIENvbnRleHQsIFRyYW5zYWN0aW9uT3BlcmF0aW9uS2V5cywgcHJvbWlzZVNlcXVlbmNlLCByZXNvbHZlQnVsa1NlcXVlbmNlUmVzdWx0LCB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgRmFicmljQ29udHJhY3RSZXBvc2l0b3J5IH0gZnJvbSBcIi4vRmFicmljQ29udHJhY3RSZXBvc2l0b3J5LmpzXCI7XG5pbXBvcnQgeyBGYWJyaWNTdGF0ZW1lbnQgfSBmcm9tIFwiLi9GYWJyaWNDb250cmFjdFN0YXRlbWVudC5qc1wiO1xuaW1wb3J0IHsgRmFicmljQ29udHJhY3RTZXF1ZW5jZSB9IGZyb20gXCIuL0ZhYnJpY0NvbnRyYWN0U2VxdWVuY2UuanNcIjtcbmltcG9ydCB7IEZhYnJpY0ZsYXZvdXIgfSBmcm9tIFwiLi8uLi9zaGFyZWQvY29uc3RhbnRzLmpzXCI7XG5pbXBvcnQgeyBTaW1wbGVEZXRlcm1pbmlzdGljU2VyaWFsaXplciB9IGZyb20gXCIuLy4uL3NoYXJlZC9TaW1wbGVEZXRlcm1pbmlzdGljU2VyaWFsaXplci5qc1wiO1xuaW1wb3J0IHsgYXBwbHksIERlY29yYXRpb24sIE1ldGFkYXRhLCBwcm9wTWV0YWRhdGEsIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0aW9uXCI7XG5pbXBvcnQgeyBGYWJyaWNDb250cmFjdFBhZ2luYXRvciB9IGZyb20gXCIuL0ZhYnJpY0NvbnRyYWN0UGFnaW5hdG9yLmpzXCI7XG5pbXBvcnQgeyBNaXNzaW5nQ29udGV4dEVycm9yIH0gZnJvbSBcIi4vLi4vc2hhcmVkL2Vycm9ycy5qc1wiO1xuaW1wb3J0IHsgRmFicmljQ29udHJhY3REaXNwYXRjaCB9IGZyb20gXCIuL0ZhYnJpY0NvbnRyYWN0RGlzcGF0Y2guanNcIjtcbi8qKlxuICogQGRlc2NyaXB0aW9uIFNldHMgdGhlIGNyZWF0b3Igb3IgdXBkYXRlciBmaWVsZCBpbiBhIG1vZGVsIGJhc2VkIG9uIHRoZSB1c2VyIGluIHRoZSBjb250ZXh0XG4gKiBAc3VtbWFyeSBDYWxsYmFjayBmdW5jdGlvbiB1c2VkIGluIGRlY29yYXRvcnMgdG8gYXV0b21hdGljYWxseSBzZXQgdGhlIGNyZWF0ZWRfYnkgb3IgdXBkYXRlZF9ieSBmaWVsZHNcbiAqIHdpdGggdGhlIHVzZXJuYW1lIGZyb20gdGhlIGNvbnRleHQgd2hlbiBhIGRvY3VtZW50IGlzIGNyZWF0ZWQgb3IgdXBkYXRlZFxuICogQHRlbXBsYXRlIE0gLSBUeXBlIGV4dGVuZGluZyBNb2RlbFxuICogQHRlbXBsYXRlIFIgLSBUeXBlIGV4dGVuZGluZyBOYW5vUmVwb3NpdG9yeTxNPlxuICogQHRlbXBsYXRlIFYgLSBUeXBlIGV4dGVuZGluZyBSZWxhdGlvbnNNZXRhZGF0YVxuICogQHBhcmFtIHtSfSB0aGlzIC0gVGhlIHJlcG9zaXRvcnkgaW5zdGFuY2VcbiAqIEBwYXJhbSB7RmFicmljQ29udHJhY3RDb250ZXh0fSBjb250ZXh0IC0gVGhlIG9wZXJhdGlvbiBjb250ZXh0IGNvbnRhaW5pbmcgdXNlciBpbmZvcm1hdGlvblxuICogQHBhcmFtIHtWfSBkYXRhIC0gVGhlIHJlbGF0aW9uIG1ldGFkYXRhXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IC0gVGhlIHByb3BlcnR5IGtleSB0byBzZXQgd2l0aCB0aGUgdXNlcm5hbWVcbiAqIEBwYXJhbSB7TX0gbW9kZWwgLSBUaGUgbW9kZWwgaW5zdGFuY2UgYmVpbmcgY3JlYXRlZCBvciB1cGRhdGVkXG4gKiBAcmV0dXJuIHtQcm9taXNlPHZvaWQ+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBvcGVyYXRpb24gaXMgY29tcGxldGVcbiAqIEBmdW5jdGlvbiBjcmVhdGVkQnlPbkZhYnJpY0NyZWF0ZVVwZGF0ZVxuICogQG1lbWJlck9mIG1vZHVsZTpmYWJyaWMuY29udHJhY3RzXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IEYgYXMgY3JlYXRlZEJ5T25OYW5vQ3JlYXRlVXBkYXRlXG4gKiAgIHBhcnRpY2lwYW50IEMgYXMgQ29udGV4dFxuICogICBwYXJ0aWNpcGFudCBNIGFzIE1vZGVsXG4gKiAgIEYtPj5DOiBnZXQoXCJ1c2VyXCIpXG4gKiAgIEMtLT4+RjogdXNlciBvYmplY3RcbiAqICAgRi0+Pk06IHNldCBrZXkgdG8gdXNlci5uYW1lXG4gKiAgIE5vdGUgb3ZlciBGOiBJZiBubyB1c2VyIGluIGNvbnRleHRcbiAqICAgRi0tPj5GOiB0aHJvdyBVbnN1cHBvcnRlZEVycm9yXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVkQnlPbkZhYnJpY0NyZWF0ZVVwZGF0ZShjb250ZXh0LCBkYXRhLCBrZXksIG1vZGVsKSB7XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgdXNlciA9IGNvbnRleHQuZ2V0KFwiaWRlbnRpdHlcIik7XG4gICAgICAgIG1vZGVsW2tleV0gPSB1c2VyLmdldElEKCk7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICB9XG4gICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkRXJyb3IoXCJObyBVc2VyIGZvdW5kIGluIGNvbnRleHQuIFBsZWFzZSBwcm92aWRlIGEgdXNlciBpbiB0aGUgY29udGV4dFwiKTtcbiAgICB9XG59XG4vKipcbiAqIEBkZXNjcmlwdGlvbiBBZGFwdGVyIGZvciBIeXBlcmxlZGdlciBGYWJyaWMgY2hhaW5jb2RlIHN0YXRlIGRhdGFiYXNlIG9wZXJhdGlvbnNcbiAqIEBzdW1tYXJ5IFByb3ZpZGVzIGEgQ291Y2hEQi1saWtlIGludGVyZmFjZSBmb3IgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgRmFicmljIHN0YXRlIGRhdGFiYXNlIGZyb20gd2l0aGluIGEgY2hhaW5jb2RlIGNvbnRyYWN0XG4gKiBAdGVtcGxhdGUgdm9pZCAtIE5vIGNvbmZpZ3VyYXRpb24gbmVlZGVkIGZvciBjb250cmFjdCBhZGFwdGVyXG4gKiBAdGVtcGxhdGUgRmFicmljQ29udHJhY3RGbGFncyAtIEZsYWdzIHNwZWNpZmljIHRvIEZhYnJpYyBjb250cmFjdCBvcGVyYXRpb25zXG4gKiBAdGVtcGxhdGUgRmFicmljQ29udHJhY3RDb250ZXh0IC0gQ29udGV4dCB0eXBlIGZvciBGYWJyaWMgY29udHJhY3Qgb3BlcmF0aW9uc1xuICogQGNsYXNzIEZhYnJpY0NvbnRyYWN0QWRhcHRlclxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIEluIGEgRmFicmljIGNoYWluY29kZSBjb250cmFjdCBjbGFzc1xuICogaW1wb3J0IHsgRmFicmljQ29udHJhY3RBZGFwdGVyIH0gZnJvbSAnQGRlY2FmLXRzL2Zvci1mYWJyaWMnO1xuICpcbiAqIGV4cG9ydCBjbGFzcyBNeUNvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3Qge1xuICogICBwcml2YXRlIGFkYXB0ZXIgPSBuZXcgRmFicmljQ29udHJhY3RBZGFwdGVyKCk7XG4gKlxuICogICBAVHJhbnNhY3Rpb24oKVxuICogICBhc3luYyBjcmVhdGVBc3NldChjdHg6IENvbnRleHQsIGlkOiBzdHJpbmcsIGRhdGE6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICogICAgIGNvbnN0IG1vZGVsID0geyBpZCwgZGF0YSwgdGltZXN0YW1wOiBEYXRlLm5vdygpIH07XG4gKiAgICAgYXdhaXQgdGhpcy5hZGFwdGVyLmNyZWF0ZSgnYXNzZXRzJywgaWQsIG1vZGVsLCB7fSwgeyBzdHViOiBjdHguc3R1YiB9KTtcbiAqICAgfVxuICogfVxuICogYGBgXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IENvbnRyYWN0XG4gKiAgIHBhcnRpY2lwYW50IEZhYnJpY0NvbnRyYWN0QWRhcHRlclxuICogICBwYXJ0aWNpcGFudCBTdHViXG4gKiAgIHBhcnRpY2lwYW50IFN0YXRlREJcbiAqXG4gKiAgIENvbnRyYWN0LT4+RmFicmljQ29udHJhY3RBZGFwdGVyOiBjcmVhdGUodGFibGVOYW1lLCBpZCwgbW9kZWwsIHRyYW5zaWVudCwgY3R4KVxuICogICBGYWJyaWNDb250cmFjdEFkYXB0ZXItPj5GYWJyaWNDb250cmFjdEFkYXB0ZXI6IFNlcmlhbGl6ZSBtb2RlbCB0byBKU09OXG4gKiAgIEZhYnJpY0NvbnRyYWN0QWRhcHRlci0+PlN0dWI6IHB1dFN0YXRlKGlkLCBzZXJpYWxpemVkRGF0YSlcbiAqICAgU3R1Yi0+PlN0YXRlREI6IFdyaXRlIGRhdGFcbiAqICAgU3RhdGVEQi0tPj5TdHViOiBTdWNjZXNzXG4gKiAgIFN0dWItLT4+RmFicmljQ29udHJhY3RBZGFwdGVyOiBTdWNjZXNzXG4gKiAgIEZhYnJpY0NvbnRyYWN0QWRhcHRlci0tPj5Db250cmFjdDogbW9kZWxcbiAqL1xuZXhwb3J0IGNsYXNzIEZhYnJpY0NvbnRyYWN0QWRhcHRlciBleHRlbmRzIENvdWNoREJBZGFwdGVyIHtcbiAgICBzdGF0aWMgeyB0aGlzLlBSSVZBVEVfQk9PS01BUktfUFJFRklYID0gXCJfX2RjZl9wdnRibV9fXCI7IH1cbiAgICBzdGF0aWMgcGFyc2VTeW50aGV0aWNQcml2YXRlQm9va21hcmsoYm9va21hcmspIHtcbiAgICAgICAgaWYgKHR5cGVvZiBib29rbWFyayAhPT0gXCJzdHJpbmdcIilcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIGlmICghYm9va21hcmsuc3RhcnRzV2l0aChGYWJyaWNDb250cmFjdEFkYXB0ZXIuUFJJVkFURV9CT09LTUFSS19QUkVGSVgpKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3QgcmF3ID0gYm9va21hcmsuc2xpY2UoRmFicmljQ29udHJhY3RBZGFwdGVyLlBSSVZBVEVfQk9PS01BUktfUFJFRklYLmxlbmd0aCk7XG4gICAgICAgIGNvbnN0IHBhcnNlZCA9IE51bWJlcihyYXcpO1xuICAgICAgICByZXR1cm4gTnVtYmVyLmlzSW50ZWdlcihwYXJzZWQpICYmIHBhcnNlZCA+PSAwID8gcGFyc2VkIDogdW5kZWZpbmVkO1xuICAgIH1cbiAgICBzdGF0aWMgYnVpbGRTeW50aGV0aWNQcml2YXRlQm9va21hcmsob2Zmc2V0KSB7XG4gICAgICAgIHJldHVybiBgJHtGYWJyaWNDb250cmFjdEFkYXB0ZXIuUFJJVkFURV9CT09LTUFSS19QUkVGSVh9JHtvZmZzZXR9YDtcbiAgICB9XG4gICAgZ2V0Q2xpZW50KCkge1xuICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRFcnJvcihcIkNsaWVudCBpcyBub3Qgc3VwcG9ydGVkIGluIEZhYnJpYyBjb250cmFjdHNcIik7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUZXh0IGRlY29kZXIgZm9yIGNvbnZlcnRpbmcgYmluYXJ5IGRhdGEgdG8gc3RyaW5nc1xuICAgICAqL1xuICAgIHN0YXRpYyB7IHRoaXMudGV4dERlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoXCJ1dGY4XCIpOyB9XG4gICAgc3RhdGljIHsgdGhpcy5zZXJpYWxpemVyID0gbmV3IFNpbXBsZURldGVybWluaXN0aWNTZXJpYWxpemVyKCk7IH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQ29udGV4dCBjb25zdHJ1Y3RvciBmb3IgdGhpcyBhZGFwdGVyXG4gICAgICogQHN1bW1hcnkgT3ZlcnJpZGVzIHRoZSBiYXNlIENvbnRleHQgY29uc3RydWN0b3Igd2l0aCBGYWJyaWNDb250cmFjdENvbnRleHRcbiAgICAgKi9cbiAgICBnZXQgQ29udGV4dCgpIHtcbiAgICAgICAgcmV0dXJuIEZhYnJpY0NvbnRyYWN0Q29udGV4dDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEdldHMgdGhlIHJlcG9zaXRvcnkgY29uc3RydWN0b3IgZm9yIHRoaXMgYWRhcHRlclxuICAgICAqIEBzdW1tYXJ5IFJldHVybnMgdGhlIEZhYnJpY0NvbnRyYWN0UmVwb3NpdG9yeSBjb25zdHJ1Y3RvciBmb3IgY3JlYXRpbmcgcmVwb3NpdG9yaWVzXG4gICAgICogQHRlbXBsYXRlIE0gLSBUeXBlIGV4dGVuZGluZyBNb2RlbFxuICAgICAqIEByZXR1cm4ge0NvbnN0cnVjdG9yPFJlcG9zaXRvcnk8TSwgTWFuZ29RdWVyeSwgRmFicmljQ29udHJhY3RBZGFwdGVyLCBGYWJyaWNDb250cmFjdEZsYWdzLCBGYWJyaWNDb250cmFjdENvbnRleHQ+Pn0gVGhlIHJlcG9zaXRvcnkgY29uc3RydWN0b3JcbiAgICAgKi9cbiAgICByZXBvc2l0b3J5KCkge1xuICAgICAgICByZXR1cm4gRmFicmljQ29udHJhY3RSZXBvc2l0b3J5O1xuICAgIH1cbiAgICBQYWdpbmF0b3IocXVlcnksIHNpemUsIGNsYXp6KSB7XG4gICAgICAgIHJldHVybiBuZXcgRmFicmljQ29udHJhY3RQYWdpbmF0b3IodGhpcywgcXVlcnksIHNpemUsIGNsYXp6KTtcbiAgICB9XG4gICAgYXN5bmMgU2VxdWVuY2Uob3B0aW9ucykge1xuICAgICAgICByZXR1cm4gbmV3IEZhYnJpY0NvbnRyYWN0U2VxdWVuY2Uob3B0aW9ucywgdGhpcyk7XG4gICAgfVxuICAgIERpc3BhdGNoKCkge1xuICAgICAgICByZXR1cm4gbmV3IEZhYnJpY0NvbnRyYWN0RGlzcGF0Y2goKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgYSBuZXcgRmFicmljQ29udHJhY3RBZGFwdGVyIGluc3RhbmNlXG4gICAgICogQHN1bW1hcnkgSW5pdGlhbGl6ZXMgYW4gYWRhcHRlciBmb3IgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgRmFicmljIHN0YXRlIGRhdGFiYXNlXG4gICAgICogQHBhcmFtIHt2b2lkfSBzY29wZSAtIE5vdCB1c2VkIGluIHRoaXMgYWRhcHRlclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbYWxpYXNdIC0gT3B0aW9uYWwgYWxpYXMgZm9yIHRoZSBhZGFwdGVyIGluc3RhbmNlXG4gICAgICovXG4gICAgY29uc3RydWN0b3Ioc2NvcGUsIGFsaWFzKSB7XG4gICAgICAgIHN1cGVyKHNjb3BlLCBGYWJyaWNGbGF2b3VyLCBhbGlhcyk7XG4gICAgfVxuICAgIGZvcihjb25maWcsIC4uLmFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLmZvcihjb25maWcsIC4uLmFyZ3MpO1xuICAgIH1cbiAgICBnZXRNb2RlbERlZmF1bHRzKGNsYXp6KSB7XG4gICAgICAgIGNvbnN0IG0gPSBuZXcgY2xhenooKTtcbiAgICAgICAgcmV0dXJuIChNZXRhZGF0YS5wcm9wZXJ0aWVzKGNsYXp6KSB8fCBbXSkucmVkdWNlKChhY2MsIHApID0+IHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgbVtwXSAhPT0gXCJ1bmRlZmluZWRcIilcbiAgICAgICAgICAgICAgICBhY2NbcF0gPSBtW3BdO1xuICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSwge30pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBhIHJlY29yZCBpbiB0aGUgc3RhdGUgZGF0YWJhc2VcbiAgICAgKiBAc3VtbWFyeSBTZXJpYWxpemVzIGEgbW9kZWwgYW5kIHN0b3JlcyBpdCBpbiB0aGUgRmFicmljIHN0YXRlIGRhdGFiYXNlXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHRhYmxlTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSB0YWJsZS9jb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtzdHJpbmcgfCBudW1iZXJ9IGlkIC0gVGhlIHJlY29yZCBpZGVudGlmaWVyXG4gICAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBtb2RlbCAtIFRoZSByZWNvcmQgZGF0YVxuICAgICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gdHJhbnNpZW50IC0gVHJhbnNpZW50IGRhdGEgKG5vdCB1c2VkIGluIHRoaXMgaW1wbGVtZW50YXRpb24pXG4gICAgICogQHBhcmFtIHsuLi5hbnlbXX0gYXJncyAtIEFkZGl0aW9uYWwgYXJndW1lbnRzLCBpbmNsdWRpbmcgdGhlIGNoYWluY29kZSBzdHViIGFuZCBsb2dnZXJcbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgY3JlYXRlZCByZWNvcmRcbiAgICAgKi9cbiAgICBhc3luYyBjcmVhdGUoY2xhenosIGlkLCBtb2RlbCwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eCwgbG9nIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLmNyZWF0ZSk7XG4gICAgICAgIHRoaXMuZW5mb3JjZU1pcnJvckF1dGhvcml6YXRpb24oY2xhenosIGN0eCk7XG4gICAgICAgIGxvZy5pbmZvKGBpbiBBREFQVEVSIGNyZWF0ZSB3aXRoIGFyZ3MgJHthcmdzfWApO1xuICAgICAgICBjb25zdCB0YWJsZU5hbWUgPSBNb2RlbC50YWJsZU5hbWUoY2xhenopO1xuICAgICAgICBjb25zdCBjb21wb3NlZEtleSA9IGN0eC5zdHViLmNyZWF0ZUNvbXBvc2l0ZUtleSh0YWJsZU5hbWUsIFtTdHJpbmcoaWQpXSk7XG4gICAgICAgIGNvbnN0IG1pcnJvckNvbGxlY3Rpb24gPSBjdHguZ2V0T3JVbmRlZmluZWQoXCJtaXJyb3JDb2xsZWN0aW9uXCIpO1xuICAgICAgICBjb25zdCBmdWxseVNlZ3JlZ2F0ZWQgPSBjdHguaXNGdWxseVNlZ3JlZ2F0ZWQgJiYgIW1pcnJvckNvbGxlY3Rpb247XG4gICAgICAgIGlmICghbWlycm9yQ29sbGVjdGlvbikge1xuICAgICAgICAgICAgbGV0IGV4aXN0aW5nO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBleGlzdGluZyA9IGF3YWl0IHRoaXMucmVhZFN0YXRlKGNvbXBvc2VkS2V5LCBjdHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZXgtYXNzaWduXG4gICAgICAgICAgICAgICAgZSA9IHRoaXMucGFyc2VFcnJvcihlKTtcbiAgICAgICAgICAgICAgICBpZiAoIShlIGluc3RhbmNlb2YgTm90Rm91bmRFcnJvcikpXG4gICAgICAgICAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZXhpc3RpbmcpXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IENvbmZsaWN0RXJyb3IoYHJlY29yZCB3aXRoIGlkICR7aWR9IGluIHRhYmxlICR7dGFibGVOYW1lfSBhbHJlYWR5IGV4aXN0c2ApO1xuICAgICAgICB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsb2cuaW5mbyhgYWRkaW5nIGVudHJ5IHRvICR7dGFibGVOYW1lfSB0YWJsZSB3aXRoIHBrICR7aWR9YCk7XG4gICAgICAgICAgICBpZiAobWlycm9yQ29sbGVjdGlvbikge1xuICAgICAgICAgICAgICAgIG1vZGVsID0gYXdhaXQgdGhpcy5mb3JQcml2YXRlKG1pcnJvckNvbGxlY3Rpb24pLnB1dFN0YXRlKGNvbXBvc2VkS2V5LCBtb2RlbCwgY3R4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRlZmF1bHRzID0gdGhpcy5nZXRNb2RlbERlZmF1bHRzKGNsYXp6KTtcbiAgICAgICAgICAgICAgICAvLyBoYW5kbGUgcHVibGljIGRhdGEgaWYgbm90IGZ1bGx5IHNlZ3JlZ2F0ZWRcbiAgICAgICAgICAgICAgICBpZiAoIWZ1bGx5U2VncmVnYXRlZCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoT2JqZWN0LmtleXMobW9kZWwpLmZpbHRlcigoaykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGsgPT09IENvdWNoREJLZXlzLlRBQkxFKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAhKGRlZmF1bHRzICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgayBpbiBkZWZhdWx0cyAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRzW2tdID09PSBtb2RlbFtrXSk7XG4gICAgICAgICAgICAgICAgICAgIH0pLmxlbmd0aClcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vZGVsID0gYXdhaXQgdGhpcy5wdXRTdGF0ZShjb21wb3NlZEtleSwgbW9kZWwsIGN0eCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIGhhbmRsZSBzZWdyZWdhdGVkIHdyaXRlc1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBjdHguZ2V0RnJvbUNoaWxkcmVuKFwic2VncmVnYXRlZERhdGFcIik7XG4gICAgICAgICAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBjb2xsZWN0aW9uIGluIGRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24obW9kZWwsIGF3YWl0IHRoaXMuZm9yUHJpdmF0ZShjb2xsZWN0aW9uKS5wdXRTdGF0ZShjb21wb3NlZEtleSwgZGF0YVtjb2xsZWN0aW9uXVtpZF0sIGN0eCkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1vZGVsO1xuICAgIH1cbiAgICBhc3luYyBjcmVhdGVBbGwodGFibGVOYW1lLCBpZCwgbW9kZWwsIC4uLmFyZ3MpIHtcbiAgICAgICAgaWYgKGlkLmxlbmd0aCAhPT0gbW9kZWwubGVuZ3RoKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJJZHMgYW5kIG1vZGVscyBtdXN0IGhhdmUgdGhlIHNhbWUgbGVuZ3RoXCIpO1xuICAgICAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5jcmVhdGVBbGwpO1xuICAgICAgICBjb25zdCB0YWJsZUxhYmVsID0gTW9kZWwudGFibGVOYW1lKHRhYmxlTmFtZSk7XG4gICAgICAgIGxvZy5kZWJ1ZyhgQ3JlYXRpbmcgJHtpZC5sZW5ndGh9IGVudHJpZXMgJHt0YWJsZUxhYmVsfSB0YWJsZWApO1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoaWQubWFwKChpLCBjb3VudCkgPT4gdGhpcy5jcmVhdGUodGFibGVOYW1lLCBpLCBtb2RlbFtjb3VudF0sIC4uLmN0eEFyZ3MpKSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBSZWFkcyBhIHJlY29yZCBmcm9tIHRoZSBzdGF0ZSBkYXRhYmFzZVxuICAgICAqIEBzdW1tYXJ5IFJldHJpZXZlcyBhbmQgZGVzZXJpYWxpemVzIGEgcmVjb3JkIGZyb20gdGhlIEZhYnJpYyBzdGF0ZSBkYXRhYmFzZVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0YWJsZU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgdGFibGUvY29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVtYmVyfSBpZCAtIFRoZSByZWNvcmQgaWRlbnRpZmllclxuICAgICAqIEBwYXJhbSB7Li4uYW55W119IGFyZ3MgLSBBZGRpdGlvbmFsIGFyZ3VtZW50cywgaW5jbHVkaW5nIHRoZSBjaGFpbmNvZGUgc3R1YiBhbmQgbG9nZ2VyXG4gICAgICogQHJldHVybiB7UHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIHJldHJpZXZlZCByZWNvcmRcbiAgICAgKi9cbiAgICBhc3luYyByZWFkKGNsYXp6LCBpZCwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eCwgbG9nIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLnJlYWQpO1xuICAgICAgICBsb2cuaW5mbyhgaW4gQURBUFRFUiByZWFkIHdpdGggYXJncyAke2FyZ3N9YCk7XG4gICAgICAgIGNvbnN0IHRhYmxlTmFtZSA9IE1vZGVsLnRhYmxlTmFtZShjbGF6eik7XG4gICAgICAgIGNvbnN0IGNvbXBvc2VkS2V5ID0gY3R4LnN0dWIuY3JlYXRlQ29tcG9zaXRlS2V5KHRhYmxlTmFtZSwgW1N0cmluZyhpZCldKTtcbiAgICAgICAgY29uc3QgbWlycm9yQ29sbGVjdGlvbiA9IGN0eC5nZXRPclVuZGVmaW5lZChcIm1pcnJvckNvbGxlY3Rpb25cIik7XG4gICAgICAgIGNvbnN0IGlzTWlycm9yID0gY3R4LmdldE9yVW5kZWZpbmVkKFwibWlycm9yXCIpO1xuICAgICAgICBpZiAoaXNNaXJyb3IgJiYgbWlycm9yQ29sbGVjdGlvbikge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5mb3JQcml2YXRlKG1pcnJvckNvbGxlY3Rpb24pLnJlYWRTdGF0ZShjb21wb3NlZEtleSwgY3R4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZmluYWxseSB7XG4gICAgICAgICAgICAgICAgY3R4LnB1dChcIm1pcnJvclwiLCB1bmRlZmluZWQpO1xuICAgICAgICAgICAgICAgIGN0eC5wdXQoXCJtaXJyb3JDb2xsZWN0aW9uXCIsIHVuZGVmaW5lZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbGV0IG1vZGVsO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgbW9kZWwgPSBjdHguaXNGdWxseVNlZ3JlZ2F0ZWRcbiAgICAgICAgICAgICAgICA/IHt9XG4gICAgICAgICAgICAgICAgOiBhd2FpdCB0aGlzLnJlYWRTdGF0ZShjb21wb3NlZEtleSwgY3R4KTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlYWRDb2xsZWN0aW9ucyA9IG5ldyBTZXQoW1xuICAgICAgICAgICAgLi4uKGN0eC5nZXRSZWFkQ29sbGVjdGlvbnMoKSB8fCBbXSksXG4gICAgICAgICAgICAuLi4oY3R4LmNvbnN1bWVSZWFkQ29sbGVjdGlvbnMoKSB8fCBbXSksXG4gICAgICAgIF0pO1xuICAgICAgICBmb3IgKGNvbnN0IGNvbCBvZiByZWFkQ29sbGVjdGlvbnMpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihtb2RlbCwgYXdhaXQgdGhpcy5mb3JQcml2YXRlKGNvbCkucmVhZFN0YXRlKGNvbXBvc2VkS2V5LCBjdHgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFyc2VkID0gdGhpcy5wYXJzZUVycm9yKGUpO1xuICAgICAgICAgICAgICAgIGlmIChwYXJzZWQgaW5zdGFuY2VvZiBOb3RGb3VuZEVycm9yKVxuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB0aHJvdyBwYXJzZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFPYmplY3Qua2V5cyhtb2RlbCkubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihgcmVjb3JkIHdpdGggaWQgJHtpZH0gaW4gdGFibGUgJHt0YWJsZU5hbWV9IGRvZXMgbm90IGV4aXN0YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1vZGVsO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUmV0cmlldmVzIG11bHRpcGxlIHJlY29yZHMgZnJvbSB0aGUgZGF0YWJhc2VcbiAgICAgKiBAc3VtbWFyeSBGZXRjaGVzIG11bHRpcGxlIHJlY29yZHMgd2l0aCB0aGUgZ2l2ZW4gSURzIGZyb20gdGhlIHNwZWNpZmllZCB0YWJsZVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0YWJsZU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgdGFibGUgdG8gcmVhZCBmcm9tXG4gICAgICogQHBhcmFtIGlkIC0gVGhlIGlkZW50aWZpZXJzIG9mIHRoZSByZWNvcmRzIHRvIHJldHJpZXZlXG4gICAgICogQHBhcmFtIHsuLi5hbnlbXX0gYXJncyAtIEFkZGl0aW9uYWwgYXJndW1lbnRzIHNwZWNpZmljIHRvIHRoZSBhZGFwdGVyIGltcGxlbWVudGF0aW9uXG4gICAgICogQHJldHVybiBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byBhbiBhcnJheSBvZiByZXRyaWV2ZWQgcmVjb3Jkc1xuICAgICAqL1xuICAgIGFzeW5jIHJlYWRBbGwoY2xhenosIGlkLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgbG9nLCBjdHggfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMucmVhZEFsbCk7XG4gICAgICAgIGNvbnN0IHRhYmxlTmFtZSA9IE1vZGVsLnRhYmxlTmFtZShjbGF6eik7XG4gICAgICAgIGxvZy5kZWJ1ZyhgUmVhZGluZyAke2lkLmxlbmd0aH0gZW50cmllcyAke3RhYmxlTmFtZX0gdGFibGVgKTtcbiAgICAgICAgY29uc3QgYnJlYWtPblNpbmdsZUZhaWx1cmUgPSBjdHguZ2V0KFwiYnJlYWtPblNpbmdsZUZhaWx1cmVJbkJ1bGtcIikgPz8gdHJ1ZTtcbiAgICAgICAgY29uc3QgY29udGludWVPbkVycm9yID0gIWJyZWFrT25TaW5nbGVGYWlsdXJlO1xuICAgICAgICBjb25zdCBtaXJyb3JDb2xsZWN0aW9uID0gY3R4LmdldE9yVW5kZWZpbmVkKFwibWlycm9yQ29sbGVjdGlvblwiKTtcbiAgICAgICAgY29uc3QgaXNNaXJyb3IgPSBjdHguZ2V0T3JVbmRlZmluZWQoXCJtaXJyb3JcIik7XG4gICAgICAgIGNvbnN0IHJlYWRNaXJyb3IgPSBhc3luYyAoY2xhenosIGlkLCAuLi5hcmdzKSA9PiB7XG4gICAgICAgICAgICBpZiAoIW1pcnJvckNvbGxlY3Rpb24pXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEJhZFJlcXVlc3RFcnJvcihcIk1pc3NpbmcgbWlycm9yIGNvbGxlY3Rpb24gZm9yIG1pcnJvciByZWFkXCIpO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGN0eCwgbG9nIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCByZWFkTWlycm9yKTtcbiAgICAgICAgICAgICAgICBsb2cuaW5mbyhgaW4gQURBUFRFUiByZWFkIHdpdGggYXJncyAke2FyZ3N9YCk7XG4gICAgICAgICAgICAgICAgY29uc3QgdGFibGVOYW1lID0gTW9kZWwudGFibGVOYW1lKGNsYXp6KTtcbiAgICAgICAgICAgICAgICBjb25zdCBjb21wb3NlZEtleSA9IGN0eC5zdHViLmNyZWF0ZUNvbXBvc2l0ZUtleSh0YWJsZU5hbWUsIFtcbiAgICAgICAgICAgICAgICAgICAgU3RyaW5nKGlkKSxcbiAgICAgICAgICAgICAgICBdKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5mb3JQcml2YXRlKG1pcnJvckNvbGxlY3Rpb24pLnJlYWRTdGF0ZShjb21wb3NlZEtleSwgY3R4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgdGFza3MgPSBpZC5tYXAoKGkpID0+ICgpID0+IGlzTWlycm9yICYmIG1pcnJvckNvbGxlY3Rpb25cbiAgICAgICAgICAgICAgICA/IHJlYWRNaXJyb3IoY2xhenosIGksIC4uLmFyZ3MsIGN0eC5vdmVycmlkZSh7IG5vRW1pdFNpbmdsZTogdHJ1ZSB9KSlcbiAgICAgICAgICAgICAgICA6IHRoaXMucmVhZChjbGF6eiwgaSwgLi4uYXJncywgY3R4Lm92ZXJyaWRlKHsgbm9FbWl0U2luZ2xlOiB0cnVlIH0pKSk7XG4gICAgICAgICAgICBjb25zdCByYXdSZXN1bHQgPSBjb250aW51ZU9uRXJyb3JcbiAgICAgICAgICAgICAgICA/IGF3YWl0IHByb21pc2VTZXF1ZW5jZSh0YXNrcywgdHJ1ZSlcbiAgICAgICAgICAgICAgICA6IGF3YWl0IHByb21pc2VTZXF1ZW5jZSh0YXNrcyk7XG4gICAgICAgICAgICByZXR1cm4gcmVzb2x2ZUJ1bGtTZXF1ZW5jZVJlc3VsdChyYXdSZXN1bHQsIGNvbnRpbnVlT25FcnJvciwgbG9nLCBCdWxrQ3J1ZE9wZXJhdGlvbktleXMuUkVBRF9BTEwpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZSk7XG4gICAgICAgIH1cbiAgICAgICAgZmluYWxseSB7XG4gICAgICAgICAgICBjdHgucHV0KFwibWlycm9yXCIsIHVuZGVmaW5lZCk7XG4gICAgICAgICAgICBjdHgucHV0KFwibWlycm9yQ29sbGVjdGlvblwiLCB1bmRlZmluZWQpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBVcGRhdGVzIGEgcmVjb3JkIGluIHRoZSBzdGF0ZSBkYXRhYmFzZVxuICAgICAqIEBzdW1tYXJ5IFNlcmlhbGl6ZXMgYSBtb2RlbCBhbmQgdXBkYXRlcyBpdCBpbiB0aGUgRmFicmljIHN0YXRlIGRhdGFiYXNlXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHRhYmxlTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSB0YWJsZS9jb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtzdHJpbmcgfCBudW1iZXJ9IGlkIC0gVGhlIHJlY29yZCBpZGVudGlmaWVyXG4gICAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBtb2RlbCAtIFRoZSB1cGRhdGVkIHJlY29yZCBkYXRhXG4gICAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSB0cmFuc2llbnQgLSBUcmFuc2llbnQgZGF0YSAobm90IHVzZWQgaW4gdGhpcyBpbXBsZW1lbnRhdGlvbilcbiAgICAgKiBAcGFyYW0gey4uLmFueVtdfSBhcmdzIC0gQWRkaXRpb25hbCBhcmd1bWVudHMsIGluY2x1ZGluZyB0aGUgY2hhaW5jb2RlIHN0dWIgYW5kIGxvZ2dlclxuICAgICAqIEByZXR1cm4ge1Byb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSB1cGRhdGVkIHJlY29yZFxuICAgICAqL1xuICAgIGFzeW5jIHVwZGF0ZShjbGF6eiwgaWQsIG1vZGVsLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4LCBsb2cgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMudXBkYXRlKTtcbiAgICAgICAgdGhpcy5lbmZvcmNlTWlycm9yQXV0aG9yaXphdGlvbihjbGF6eiwgY3R4KTtcbiAgICAgICAgbG9nLmluZm8oYGluIEFEQVBURVIgdXBkYXRlIHdpdGggYXJncyAke2FyZ3N9YCk7XG4gICAgICAgIGNvbnN0IHRhYmxlTmFtZSA9IE1vZGVsLnRhYmxlTmFtZShjbGF6eik7XG4gICAgICAgIGNvbnN0IGNvbXBvc2VkS2V5ID0gY3R4LnN0dWIuY3JlYXRlQ29tcG9zaXRlS2V5KHRhYmxlTmFtZSwgW1N0cmluZyhpZCldKTtcbiAgICAgICAgY29uc3QgbWlycm9yQ29sbGVjdGlvbiA9IGN0eC5nZXRPclVuZGVmaW5lZChcIm1pcnJvckNvbGxlY3Rpb25cIik7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsb2cuaW5mbyhgdXBkYXRpbmcgZW50cnkgaW4gJHt0YWJsZU5hbWV9IHRhYmxlIHdpdGggcGsgJHtpZH1gKTtcbiAgICAgICAgICAgIGlmIChtaXJyb3JDb2xsZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgbW9kZWwgPSBhd2FpdCB0aGlzLmZvclByaXZhdGUobWlycm9yQ29sbGVjdGlvbikucHV0U3RhdGUoY29tcG9zZWRLZXksIG1vZGVsLCBjdHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGVmYXVsdHMgPSB0aGlzLmdldE1vZGVsRGVmYXVsdHMoY2xhenopO1xuICAgICAgICAgICAgICAgIC8vIGhhbmRsZSBwdWJsaWMgZGF0YVxuICAgICAgICAgICAgICAgIGlmIChPYmplY3Qua2V5cyhtb2RlbCkuZmlsdGVyKChrKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChrID09PSBDb3VjaERCS2V5cy5UQUJMRSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICEoZGVmYXVsdHMgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGsgaW4gZGVmYXVsdHMgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRzW2tdID09PSBtb2RlbFtrXSk7XG4gICAgICAgICAgICAgICAgfSkubGVuZ3RoKVxuICAgICAgICAgICAgICAgICAgICBtb2RlbCA9IGF3YWl0IHRoaXMucHV0U3RhdGUoY29tcG9zZWRLZXksIG1vZGVsLCBjdHgpO1xuICAgICAgICAgICAgICAgIC8vIGhhbmRsZSBzZWdyZWdhdGVkIHdyaXRlc1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBjdHguZ2V0RnJvbUNoaWxkcmVuKFwic2VncmVnYXRlZERhdGFcIik7XG4gICAgICAgICAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBjb2xsZWN0aW9uIGluIGRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24obW9kZWwsIGF3YWl0IHRoaXMuZm9yUHJpdmF0ZShjb2xsZWN0aW9uKS5wdXRTdGF0ZShjb21wb3NlZEtleSwgZGF0YVtjb2xsZWN0aW9uXVtpZF0sIGN0eCkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1vZGVsO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRGVsZXRlcyBhIHJlY29yZCBmcm9tIHRoZSBzdGF0ZSBkYXRhYmFzZVxuICAgICAqIEBzdW1tYXJ5IFJldHJpZXZlcyBhIHJlY29yZCBhbmQgdGhlbiByZW1vdmVzIGl0IGZyb20gdGhlIEZhYnJpYyBzdGF0ZSBkYXRhYmFzZVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0YWJsZU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgdGFibGUvY29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVtYmVyfSBpZCAtIFRoZSByZWNvcmQgaWRlbnRpZmllciB0byBkZWxldGVcbiAgICAgKiBAcGFyYW0gey4uLmFueVtdfSBhcmdzIC0gQWRkaXRpb25hbCBhcmd1bWVudHMsIGluY2x1ZGluZyB0aGUgY2hhaW5jb2RlIHN0dWIgYW5kIGxvZ2dlclxuICAgICAqIEByZXR1cm4ge1Byb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBkZWxldGVkIHJlY29yZFxuICAgICAqL1xuICAgIGFzeW5jIGRlbGV0ZShjbGF6eiwgaWQsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHgsIGxvZyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5kZWxldGUpO1xuICAgICAgICB0aGlzLmVuZm9yY2VNaXJyb3JBdXRob3JpemF0aW9uKGNsYXp6LCBjdHgpO1xuICAgICAgICBjb25zdCB0YWJsZU5hbWUgPSBNb2RlbC50YWJsZU5hbWUoY2xhenopO1xuICAgICAgICBjb25zdCBjb21wb3NlZEtleSA9IGN0eC5zdHViLmNyZWF0ZUNvbXBvc2l0ZUtleSh0YWJsZU5hbWUsIFtTdHJpbmcoaWQpXSk7XG4gICAgICAgIGNvbnN0IG1pcnJvckNvbGxlY3Rpb24gPSBjdHguZ2V0T3JVbmRlZmluZWQoXCJtaXJyb3JDb2xsZWN0aW9uXCIpO1xuICAgICAgICBsZXQgbW9kZWw7XG4gICAgICAgIGlmIChtaXJyb3JDb2xsZWN0aW9uKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIG1vZGVsID0gYXdhaXQgdGhpcy5mb3JQcml2YXRlKG1pcnJvckNvbGxlY3Rpb24pLnJlYWRTdGF0ZShjb21wb3NlZEtleSwgY3R4KTtcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLmZvclByaXZhdGUobWlycm9yQ29sbGVjdGlvbikuZGVsZXRlU3RhdGUoY29tcG9zZWRLZXksIGN0eCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbW9kZWwgPSBjdHguaXNGdWxseVNlZ3JlZ2F0ZWRcbiAgICAgICAgICAgICAgICAgICAgPyB7fVxuICAgICAgICAgICAgICAgICAgICA6IGF3YWl0IHRoaXMucmVhZFN0YXRlKGNvbXBvc2VkS2V5LCBjdHgpO1xuICAgICAgICAgICAgICAgIGlmICghY3R4LmlzRnVsbHlTZWdyZWdhdGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGxvZy5kZWJ1ZyhgRGVsZXRpbmcgZW50cnkgJHtjb21wb3NlZEtleX0gZnJvbSBwdWJsaWMgbGVkZ2VyYCk7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuZGVsZXRlU3RhdGUoY29tcG9zZWRLZXksIGN0eCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBjb2xsZWN0aW9ucyA9IGN0eC5nZXRSZWFkQ29sbGVjdGlvbnMoKTtcbiAgICAgICAgICAgIGlmIChjb2xsZWN0aW9ucyAmJiBjb2xsZWN0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGNvbCBvZiBjb2xsZWN0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICBsb2cuZGVidWcoYGVuc3VyaW5nIGNvbGxlY3Rpb24gJHtjb2x9IGhhcyBlbnRyeSBmb3IgaWQgJHtjb21wb3NlZEtleX0gYmVmb3JlIGRlbGV0aW5nYCk7XG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24obW9kZWwsIGF3YWl0IHRoaXMuZm9yUHJpdmF0ZShjb2wpLnJlYWRTdGF0ZShjb21wb3NlZEtleSwgY3R4KSk7XG4gICAgICAgICAgICAgICAgICAgIGxvZy5kZWJ1ZyhgRGVsZXRpbmcgcHJpdmF0ZSBjb2xsZWN0aW9uICR7Y29sfSBlbnRyeSBmb3IgaWQgJHtjb21wb3NlZEtleX1gKTtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5mb3JQcml2YXRlKGNvbCkuZGVsZXRlU3RhdGUoY29tcG9zZWRLZXksIGN0eCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtb2RlbDtcbiAgICB9XG4gICAgYXN5bmMgZGVsZXRlU3RhdGUoaWQsIGNvbnRleHQpIHtcbiAgICAgICAgYXdhaXQgY29udGV4dC5zdHViLmRlbGV0ZVN0YXRlKGlkKTtcbiAgICB9XG4gICAgZm9yUHJpdmF0ZShjb2xsZWN0aW9uKSB7XG4gICAgICAgIGNvbnN0IHRvT3ZlcnJpZGUgPSBbXG4gICAgICAgICAgICB0aGlzLnB1dFN0YXRlLFxuICAgICAgICAgICAgdGhpcy5yZWFkU3RhdGUsXG4gICAgICAgICAgICB0aGlzLmRlbGV0ZVN0YXRlLFxuICAgICAgICAgICAgdGhpcy5xdWVyeVJlc3VsdCxcbiAgICAgICAgICAgIHRoaXMucXVlcnlSZXN1bHRQYWdpbmF0ZWQsXG4gICAgICAgIF0ubWFwKChmbikgPT4gZm4ubmFtZSk7XG4gICAgICAgIHJldHVybiBuZXcgUHJveHkodGhpcywge1xuICAgICAgICAgICAgZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXRvT3ZlcnJpZGUuaW5jbHVkZXMocHJvcCkpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBSZWZsZWN0LmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFByb3h5KHRhcmdldFtwcm9wXSwge1xuICAgICAgICAgICAgICAgICAgICBhc3luYyBhcHBseShmbiwgdGhpc0FyZywgYXJnc0xpc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAocHJvcCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJwdXRTdGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHB1dFN0YXRlIHNpZ25hdHVyZTogKGlkOiBzdHJpbmcsIG1vZGVsOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LCBjdHg6IEZhYnJpY0NvbnRyYWN0Q29udGV4dClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgW2lkLCBtb2RlbCwgY3R4XSA9IGFyZ3NMaXN0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsb2cgPSBjdHgubG9nZ2VyLmZvcihwcm9wKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nLmRlYnVnKGBQcml2YXRlIHdyaXRlIHRvICR7Y29sbGVjdGlvbn0gZm9yICR7aWQudG9TdHJpbmcoKX1gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IEJ1ZmZlci5mcm9tKEZhYnJpY0NvbnRyYWN0QWRhcHRlci5zZXJpYWxpemVyLnNlcmlhbGl6ZShtb2RlbCwgZmFsc2UpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgY3R4LnN0dWIucHV0UHJpdmF0ZURhdGEoY29sbGVjdGlvbiwgaWQudG9TdHJpbmcoKSwgZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtb2RlbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcImRlbGV0ZVN0YXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZGVsZXRlU3RhdGUgc2lnbmF0dXJlOiAoaWQ6IHN0cmluZywgY29udGV4dDogRmFicmljQ29udHJhY3RDb250ZXh0KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBbaWQsIGN0eF0gPSBhcmdzTGlzdDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbG9nID0gY3R4LmxvZ2dlci5mb3IocHJvcCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZy5kZWJ1ZyhgUHJpdmF0ZSBkZWxldGUgb24gJHtjb2xsZWN0aW9ufSBmb3IgJHtpZC50b1N0cmluZygpfWApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBjdHguc3R1Yi5kZWxldGVQcml2YXRlRGF0YShjb2xsZWN0aW9uLCBpZC50b1N0cmluZygpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwicmVhZFN0YXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVhZFN0YXRlIHNpZ25hdHVyZTogKGlkOiBzdHJpbmcsIGN0eDogRmFicmljQ29udHJhY3RDb250ZXh0KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBbaWQsIGN0eF0gPSBhcmdzTGlzdDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbG9nID0gY3R4LmxvZ2dlci5mb3IocHJvcCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZy5kZWJ1ZyhgUHJpdmF0ZSByZWFkIGZyb20gJHtjb2xsZWN0aW9ufSBmb3IgJHtpZC50b1N0cmluZygpfWApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgY3R4LnN0dWIuZ2V0UHJpdmF0ZURhdGEoY29sbGVjdGlvbiwgaWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWRhdGEgfHwgIWRhdGEudG9TdHJpbmcoKS5sZW5ndGgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihgUmVjb3JkIHdpdGggaWQgJHtpZH0gbm90IGZvdW5kYCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRmFicmljQ29udHJhY3RBZGFwdGVyLnNlcmlhbGl6ZXIuZGVzZXJpYWxpemUoZGF0YS50b1N0cmluZyhcInV0ZjhcIikpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkYXRhLnRvU3RyaW5nKFwidXRmOFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwicXVlcnlSZXN1bHRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBbc3R1YiwgcmF3SW5wdXQsIC4uLmFyZ3NdID0gYXJnc0xpc3Q7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgbG9nIH0gPSB0aGlzQXJnW1wibG9nQ3R4XCJdKGFyZ3MsIHByb3ApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nLmRlYnVnKGBRdWVyeWluZyBjb2xsZWN0aW9uICR7Y29sbGVjdGlvbn0gZm9yICR7SlNPTi5zdHJpbmdpZnkocmF3SW5wdXQpfWApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgc3R1Yi5nZXRQcml2YXRlRGF0YVF1ZXJ5UmVzdWx0KGNvbGxlY3Rpb24sIEpTT04uc3RyaW5naWZ5KHJhd0lucHV0KSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2cudmVyYm9zZShgaXRlcmF0b3IgZnJvbSBjb2xsZWN0aW9uICR7Y29sbGVjdGlvbn0gcmVjZWl2ZWRgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXMuaXRlcmF0b3IgfHwgcmVzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2cuZXJyb3IoZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcInF1ZXJ5UmVzdWx0UGFnaW5hdGVkXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgW3N0dWIsIHJhd0lucHV0LCBsaW1pdCwgc2tpcCwgYm9va21hcmssIC4uLmFyZ3NdID0gYXJnc0xpc3Q7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgbG9nIH0gPSB0aGlzQXJnW1wibG9nQ3R4XCJdKGFyZ3MsIHByb3ApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwYWdlU2l6ZSA9IE1hdGgubWF4KDEsIE51bWJlcihsaW1pdCkgfHwgMjUwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcXVlcnkgPSB7IC4uLnJhd0lucHV0IH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNraXBWYWx1ZSA9IE51bWJlcihza2lwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyc2VkU2tpcCA9IE51bWJlci5pc0ludGVnZXIoc2tpcFZhbHVlKSAmJiBza2lwVmFsdWUgPj0gMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBza2lwVmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzeW50aGV0aWNPZmZzZXQgPSBGYWJyaWNDb250cmFjdEFkYXB0ZXIucGFyc2VTeW50aGV0aWNQcml2YXRlQm9va21hcmsoYm9va21hcmspID8/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJzZWRTa2lwID8/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoYXNPcGFxdWVCb29rbWFyayA9IGJvb2ttYXJrICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2ttYXJrICE9PSBudWxsICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29rbWFyayAhPT0gXCJcIiAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZW9mIGJvb2ttYXJrID09PSBcInN0cmluZ1wiICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhYm9va21hcmsuc3RhcnRzV2l0aChGYWJyaWNDb250cmFjdEFkYXB0ZXIuUFJJVkFURV9CT09LTUFSS19QUkVGSVgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBLZWVwIHRoZSBxdWVyeSBDb3VjaERCLWNvbXBhdGlibGUgYW5kIGxldCBGYWJyaWMvQ291Y2hEQiBvd24gYm9va21hcmsgc2VtYW50aWNzLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTeW50aGV0aWMgbW9kZSBmZXRjaGVzIG9uZSBleHRyYSByZWNvcmQgdG8gZGV0ZWN0IHdoZXRoZXIgYSBuZXh0IHBhZ2UgZXhpc3RzLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVyeS5saW1pdCA9IGhhc09wYXF1ZUJvb2ttYXJrID8gcGFnZVNpemUgOiBwYWdlU2l6ZSArIDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoYXNPcGFxdWVCb29rbWFyaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnkuYm9va21hcmsgPSBib29rbWFyay50b1N0cmluZygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHF1ZXJ5LnNraXA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgcXVlcnkuYm9va21hcms7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3ludGhldGljT2Zmc2V0ID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5LnNraXAgPSBzeW50aGV0aWNPZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgcXVlcnkuc2tpcDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2cuZGVidWcoYFF1ZXJ5aW5nIGNvbGxlY3Rpb24gJHtjb2xsZWN0aW9ufSBmb3IgJHtKU09OLnN0cmluZ2lmeShxdWVyeSl9YCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgc3R1Yi5nZXRQcml2YXRlRGF0YVF1ZXJ5UmVzdWx0KGNvbGxlY3Rpb24sIEpTT04uc3RyaW5naWZ5KHF1ZXJ5KSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ZXJhdG9yID0gKHJlc3BvbnNlLml0ZXJhdG9yIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlTWV0YWRhdGEgPSByZXNwb25zZS5tZXRhZGF0YSB8fCBpdGVyYXRvci5tZXRhZGF0YSB8fCB7fTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzcG9uc2VCb29rbWFyayA9IHR5cGVvZiByZXNwb25zZU1ldGFkYXRhLmJvb2ttYXJrID09PSBcInN0cmluZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHJlc3BvbnNlTWV0YWRhdGEuYm9va21hcmtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nLnZlcmJvc2UoYGl0ZXJhdG9yIGZyb20gY29sbGVjdGlvbiAke2NvbGxlY3Rpb259IHJlY2VpdmVkYCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhZ2VkID0gW107XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBoYXNNb3JlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGl0ZXJhdG9yLm5leHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzLmRvbmUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXMudmFsdWUgJiYgcmVzLnZhbHVlLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IHJlcy52YWx1ZS5rZXk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYWdlZC5sZW5ndGggPCBwYWdlU2l6ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZWQucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBCdWZmZXIuaXNCdWZmZXIocmVzLnZhbHVlLnZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHJlcy52YWx1ZS52YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IEJ1ZmZlci5mcm9tKHJlcy52YWx1ZS52YWx1ZS50b1N0cmluZyhcInV0ZjhcIikpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNNb3JlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOyAvLyBlYXJseSBleGl0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWxseSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBpdGVyYXRvci5jbG9zZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdyYXAgdGhlIHBhZ2UgaW4gYW4gYXN5bmMgaXRlcmF0b3IgZm9yIHJlc3VsdEl0ZXJhdG9yKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGlkeCA9IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGFycmF5SXRlcmF0b3IgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3luYyBuZXh0KCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpZHggPCBwYWdlZC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IHBhZ2VkW2lkeCsrXSwgZG9uZTogZmFsc2UgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IHVuZGVmaW5lZCwgZG9uZTogdHJ1ZSB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzeW5jIGNsb3NlKCkgeyB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlcmF0b3I6IGFycmF5SXRlcmF0b3IsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhZGF0YToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZldGNoZWRSZWNvcmRzQ291bnQ6IHBhZ2VkLmxlbmd0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29rbWFyazogcmVzcG9uc2VCb29rbWFyayB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaGFzTW9yZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBGYWJyaWNDb250cmFjdEFkYXB0ZXIuYnVpbGRTeW50aGV0aWNQcml2YXRlQm9va21hcmsoc3ludGhldGljT2Zmc2V0ICsgcGFnZWQubGVuZ3RoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIlwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBVbnN1cHBvcnRlZCBtZXRob2Qgb3ZlcnJpZGUgJHtTdHJpbmcocHJvcCl9YCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgYXN5bmMgcHV0U3RhdGUoaWQsIG1vZGVsLCBjdHgpIHtcbiAgICAgICAgbGV0IGRhdGE7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBkYXRhID0gQnVmZmVyLmZyb20oRmFicmljQ29udHJhY3RBZGFwdGVyLnNlcmlhbGl6ZXIuc2VyaWFsaXplKG1vZGVsLCBmYWxzZSkpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgU2VyaWFsaXphdGlvbkVycm9yKGBGYWlsZWQgdG8gc2VyaWFsaXplIHJlY29yZCB3aXRoIGlkICR7aWR9OiAke2V9YCk7XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgY3R4LnN0dWIucHV0U3RhdGUoaWQudG9TdHJpbmcoKSwgZGF0YSk7XG4gICAgICAgIHJldHVybiBtb2RlbDtcbiAgICB9XG4gICAgYXN5bmMgcmVhZFN0YXRlKGlkLCBjdHgpIHtcbiAgICAgICAgbGV0IHJlc3VsdDtcbiAgICAgICAgY29uc3QgeyBsb2cgfSA9IHRoaXMubG9nQ3R4KFtjdHhdLCB0aGlzLnJlYWRTdGF0ZSk7XG4gICAgICAgIGNvbnN0IHJlcyA9IChhd2FpdCBjdHguc3R1Yi5nZXRTdGF0ZShpZC50b1N0cmluZygpKSkudG9TdHJpbmcoKTtcbiAgICAgICAgaWYgKCFyZXMpXG4gICAgICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihgUmVjb3JkIHdpdGggaWQgJHtpZH0gbm90IGZvdW5kYCk7XG4gICAgICAgIGxvZy5zaWxseShgc3RhdGUgcmV0cmlldmVkIHVuZGVyIGlkICR7aWR9YCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXN1bHQgPSBGYWJyaWNDb250cmFjdEFkYXB0ZXIuc2VyaWFsaXplci5kZXNlcmlhbGl6ZShyZXMudG9TdHJpbmcoKSk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBTZXJpYWxpemF0aW9uRXJyb3IoYEZhaWxlZCB0byBwYXJzZSByZWNvcmQ6ICR7ZX1gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICBhc3luYyBxdWVyeVJlc3VsdChzdHViLCByYXdJbnB1dCwgXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIC4uLmFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIHN0dWIuZ2V0UXVlcnlSZXN1bHQoSlNPTi5zdHJpbmdpZnkocmF3SW5wdXQpKTtcbiAgICB9XG4gICAgYXN5bmMgcXVlcnlSZXN1bHRQYWdpbmF0ZWQoc3R1YiwgcmF3SW5wdXQsIGxpbWl0ID0gMjUwLCBwYWdlLCBib29rbWFyaywgXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIC4uLmFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIHN0dWIuZ2V0UXVlcnlSZXN1bHRXaXRoUGFnaW5hdGlvbihKU09OLnN0cmluZ2lmeShyYXdJbnB1dCksIGxpbWl0LCBib29rbWFyaz8udG9TdHJpbmcoKSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBEZWNvZGVzIGJpbmFyeSBkYXRhIHRvIHN0cmluZ1xuICAgICAqIEBzdW1tYXJ5IENvbnZlcnRzIGEgVWludDhBcnJheSB0byBhIHN0cmluZyB1c2luZyBVVEYtOCBlbmNvZGluZ1xuICAgICAqIEBwYXJhbSB7VWludDhBcnJheX0gYnVmZmVyIC0gVGhlIGJpbmFyeSBkYXRhIHRvIGRlY29kZVxuICAgICAqIEByZXR1cm4ge3N0cmluZ30gVGhlIGRlY29kZWQgc3RyaW5nXG4gICAgICovXG4gICAgZGVjb2RlKGJ1ZmZlcikge1xuICAgICAgICByZXR1cm4gRmFicmljQ29udHJhY3RBZGFwdGVyLnRleHREZWNvZGVyLmRlY29kZShidWZmZXIpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBvcGVyYXRpb24gZmxhZ3MgZm9yIEZhYnJpYyBjb250cmFjdCBvcGVyYXRpb25zXG4gICAgICogQHN1bW1hcnkgTWVyZ2VzIGRlZmF1bHQgZmxhZ3Mgd2l0aCBGYWJyaWMtc3BlY2lmaWMgY29udGV4dCBpbmZvcm1hdGlvblxuICAgICAqIEB0ZW1wbGF0ZSBNIC0gVHlwZSBleHRlbmRpbmcgTW9kZWxcbiAgICAgKiBAcGFyYW0ge09wZXJhdGlvbktleXN9IG9wZXJhdGlvbiAtIFRoZSBvcGVyYXRpb24gYmVpbmcgcGVyZm9ybWVkXG4gICAgICogQHBhcmFtIHtDb25zdHJ1Y3RvcjxNPn0gbW9kZWwgLSBUaGUgbW9kZWwgY29uc3RydWN0b3JcbiAgICAgKiBAcGFyYW0ge1BhcnRpYWw8RmFicmljQ29udHJhY3RGbGFncz59IGZsYWdzIC0gUGFydGlhbCBmbGFncyB0byBtZXJnZSB3aXRoIGRlZmF1bHRzXG4gICAgICogQHBhcmFtIHtDdHh9IGN0eCAtIFRoZSBGYWJyaWMgY2hhaW5jb2RlIGNvbnRleHRcbiAgICAgKiBAcmV0dXJuIHtGYWJyaWNDb250cmFjdEZsYWdzfSBUaGUgbWVyZ2VkIGZsYWdzXG4gICAgICovXG4gICAgYXN5bmMgZmxhZ3Mob3BlcmF0aW9uLCBtb2RlbCwgZmxhZ3MpIHtcbiAgICAgICAgbGV0IGJhc2VGbGFncyA9IHtcbiAgICAgICAgICAgIHNlZ3JlZ2F0ZWQ6IGZhbHNlLFxuICAgICAgICAgICAgcmVidWlsZFdpdGhUcmFuc2llbnQ6IGZhbHNlLFxuICAgICAgICAgICAgZnVsbHlTZWdyZWdhdGVkOiBmYWxzZSxcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGZsYWdzIGluc3RhbmNlb2YgRmFicmljQ29udHJhY3RDb250ZXh0IHx8IGZsYWdzIGluc3RhbmNlb2YgQ29udGV4dCkge1xuICAgICAgICAgICAgZmxhZ3MgPSBmbGFncy50b092ZXJyaWRlcygpO1xuICAgICAgICB9XG4gICAgICAgIGJhc2VGbGFncyA9IE9iamVjdC5hc3NpZ24oYmFzZUZsYWdzLCBmbGFncyk7XG4gICAgICAgIGNvbnN0IHN0dWJGcm9tRmxhZ3MgPSBmbGFncy5zdHViIHx8IGZsYWdzLnN0dWI7XG4gICAgICAgIGNvbnN0IGlkZW50aXR5RnJvbUZsYWdzID0gZmxhZ3MuaWRlbnRpdHkgfHxcbiAgICAgICAgICAgIGZsYWdzLmNsaWVudElkZW50aXR5O1xuICAgICAgICBpZiAoc3R1YkZyb21GbGFncyAmJiBpZGVudGl0eUZyb21GbGFncykge1xuICAgICAgICAgICAgY29uc3QgdHhJZCA9IHN0dWJGcm9tRmxhZ3MuZ2V0VHhJRCgpO1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihiYXNlRmxhZ3MsIHtcbiAgICAgICAgICAgICAgICBzdHViOiBzdHViRnJvbUZsYWdzLFxuICAgICAgICAgICAgICAgIGlkZW50aXR5OiBpZGVudGl0eUZyb21GbGFncyxcbiAgICAgICAgICAgICAgICBjZXJ0OiBpZGVudGl0eUZyb21GbGFncy5nZXRJREJ5dGVzKCkudG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgICByb2xlczogaWRlbnRpdHlGcm9tRmxhZ3MuZ2V0QXR0cmlidXRlVmFsdWUoXCJyb2xlc1wiKSxcbiAgICAgICAgICAgICAgICBsb2dnZXI6IExvZ2dpbmcuZm9yKG9wZXJhdGlvbiwge1xuICAgICAgICAgICAgICAgICAgICBsb2dMZXZlbDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGNvcnJlbGF0aW9uSWQ6IHR4SWQsXG4gICAgICAgICAgICAgICAgfSwgZmxhZ3MpLFxuICAgICAgICAgICAgICAgIGNvcnJlbGF0aW9uSWQ6IHR4SWQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGJhc2VGbGFncyA9IE9iamVjdC5hc3NpZ24oYmFzZUZsYWdzLCBmbGFncyB8fCB7fSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIChhd2FpdCBzdXBlci5mbGFncyhvcGVyYXRpb24sIG1vZGVsLCBiYXNlRmxhZ3MpKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgYW4gaW5kZXggZm9yIGEgbW9kZWxcbiAgICAgKiBAc3VtbWFyeSBUaGlzIG1ldGhvZCBpcyBub3QgaW1wbGVtZW50ZWQgZm9yIEZhYnJpYyBjb250cmFjdHMgYW5kIHJldHVybnMgYSByZXNvbHZlZCBwcm9taXNlXG4gICAgICogQHRlbXBsYXRlIE0gLSBUeXBlIGV4dGVuZGluZyBNb2RlbFxuICAgICAqIEBwYXJhbSB7Q29uc3RydWN0b3I8TT59IG1vZGVscyAtIFRoZSBtb2RlbCBjb25zdHJ1Y3RvclxuICAgICAqIEByZXR1cm4ge1Byb21pc2U8dm9pZD59IFByb21pc2UgdGhhdCByZXNvbHZlcyBpbW1lZGlhdGVseVxuICAgICAqL1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICBpbmRleChtb2RlbHMpIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh1bmRlZmluZWQpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUHJvY2Vzc2VzIHJlc3VsdHMgZnJvbSBhIHN0YXRlIHF1ZXJ5IGl0ZXJhdG9yXG4gICAgICogQHN1bW1hcnkgSXRlcmF0ZXMgdGhyb3VnaCBxdWVyeSByZXN1bHRzIGFuZCBjb252ZXJ0cyB0aGVtIHRvIGEgc3RydWN0dXJlZCBmb3JtYXRcbiAgICAgKiBAcGFyYW0ge0xvZ2dlcn0gbG9nIC0gTG9nZ2VyIGluc3RhbmNlIGZvciBkZWJ1Z2dpbmdcbiAgICAgKiBAcGFyYW0ge0l0ZXJhdG9ycy5TdGF0ZVF1ZXJ5SXRlcmF0b3J9IGl0ZXJhdG9yIC0gVGhlIHN0YXRlIHF1ZXJ5IGl0ZXJhdG9yXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbaXNIaXN0b3J5PWZhbHNlXSAtIFdoZXRoZXIgdGhpcyBpcyBhIGhpc3RvcnkgcXVlcnlcbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlPGFueVtdPn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gYW4gYXJyYXkgb2YgcHJvY2Vzc2VkIHJlc3VsdHNcbiAgICAgKiBAbWVybWFpZFxuICAgICAqIHNlcXVlbmNlRGlhZ3JhbVxuICAgICAqICAgcGFydGljaXBhbnQgQ2FsbGVyXG4gICAgICogICBwYXJ0aWNpcGFudCBSZXN1bHRJdGVyYXRvclxuICAgICAqICAgcGFydGljaXBhbnQgSXRlcmF0b3JcbiAgICAgKlxuICAgICAqICAgQ2FsbGVyLT4+UmVzdWx0SXRlcmF0b3I6IHJlc3VsdEl0ZXJhdG9yKGxvZywgaXRlcmF0b3IsIGlzSGlzdG9yeSlcbiAgICAgKiAgIGxvb3AgVW50aWwgZG9uZVxuICAgICAqICAgICBSZXN1bHRJdGVyYXRvci0+Pkl0ZXJhdG9yOiBuZXh0KClcbiAgICAgKiAgICAgSXRlcmF0b3ItLT4+UmVzdWx0SXRlcmF0b3I6IHsgdmFsdWUsIGRvbmUgfVxuICAgICAqICAgICBhbHQgSGFzIHZhbHVlXG4gICAgICogICAgICAgUmVzdWx0SXRlcmF0b3ItPj5SZXN1bHRJdGVyYXRvcjogUHJvY2VzcyB2YWx1ZSBiYXNlZCBvbiBpc0hpc3RvcnlcbiAgICAgKiAgICAgICBSZXN1bHRJdGVyYXRvci0+PlJlc3VsdEl0ZXJhdG9yOiBBZGQgdG8gcmVzdWx0cyBhcnJheVxuICAgICAqICAgICBlbmRcbiAgICAgKiAgIGVuZFxuICAgICAqICAgUmVzdWx0SXRlcmF0b3ItPj5JdGVyYXRvcjogY2xvc2UoKVxuICAgICAqICAgUmVzdWx0SXRlcmF0b3ItLT4+Q2FsbGVyOiBhbGxSZXN1bHRzXG4gICAgICovXG4gICAgYXN5bmMgcmVzdWx0SXRlcmF0b3IobG9nLCBpdGVyYXRvciwgaXNIaXN0b3J5ID0gZmFsc2UpIHtcbiAgICAgICAgY29uc3QgYWxsUmVzdWx0cyA9IFtdO1xuICAgICAgICBsZXQgcmVzID0gYXdhaXQgaXRlcmF0b3IubmV4dCgpO1xuICAgICAgICB3aGlsZSAoIXJlcy5kb25lKSB7XG4gICAgICAgICAgICBpZiAocmVzLnZhbHVlICYmIHJlcy52YWx1ZS52YWx1ZS50b1N0cmluZygpKSB7XG4gICAgICAgICAgICAgICAgbGV0IGpzb25SZXMgPSB7fTtcbiAgICAgICAgICAgICAgICBsb2cuZGVidWcocmVzLnZhbHVlLnZhbHVlLnRvU3RyaW5nKFwidXRmOFwiKSk7XG4gICAgICAgICAgICAgICAgaWYgKGlzSGlzdG9yeSAvKiAmJiBpc0hpc3RvcnkgPT09IHRydWUqLykge1xuICAgICAgICAgICAgICAgICAgICBqc29uUmVzLlR4SWQgPSByZXMudmFsdWUudHhJZDtcbiAgICAgICAgICAgICAgICAgICAganNvblJlcy5UaW1lc3RhbXAgPSByZXMudmFsdWUudGltZXN0YW1wO1xuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAganNvblJlcy5WYWx1ZSA9IEpTT04ucGFyc2UocmVzLnZhbHVlLnZhbHVlLnRvU3RyaW5nKFwidXRmOFwiKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICAgICAgICAgbG9nLmVycm9yKGVycik7XG4gICAgICAgICAgICAgICAgICAgICAgICBqc29uUmVzLlZhbHVlID0gcmVzLnZhbHVlLnZhbHVlLnRvU3RyaW5nKFwidXRmOFwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGpzb25SZXMgPSBKU09OLnBhcnNlKHJlcy52YWx1ZS52YWx1ZS50b1N0cmluZyhcInV0ZjhcIikpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvZy5lcnJvcihlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAganNvblJlcyA9IHJlcy52YWx1ZS52YWx1ZS50b1N0cmluZyhcInV0ZjhcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYWxsUmVzdWx0cy5wdXNoKGpzb25SZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVzID0gYXdhaXQgaXRlcmF0b3IubmV4dCgpO1xuICAgICAgICB9XG4gICAgICAgIGxvZy5kZWJ1ZyhgQ2xvc2luZyBpdGVyYXRvciBhZnRlciAke2FsbFJlc3VsdHMubGVuZ3RofSByZXN1bHRzYCk7XG4gICAgICAgIGF3YWl0IGl0ZXJhdG9yLmNsb3NlKCk7XG4gICAgICAgIHJldHVybiBhbGxSZXN1bHRzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRXhlY3V0ZXMgYSByYXcgcXVlcnkgYWdhaW5zdCB0aGUgc3RhdGUgZGF0YWJhc2VcbiAgICAgKiBAc3VtbWFyeSBQZXJmb3JtcyBhIHJpY2ggcXVlcnkgdXNpbmcgQ291Y2hEQiBzeW50YXggYWdhaW5zdCB0aGUgRmFicmljIHN0YXRlIGRhdGFiYXNlXG4gICAgICogQHRlbXBsYXRlIFIgLSBUaGUgcmV0dXJuIHR5cGVcbiAgICAgKiBAcGFyYW0ge01hbmdvUXVlcnl9IHJhd0lucHV0IC0gVGhlIE1hbmdvIFF1ZXJ5IHRvIGV4ZWN1dGVcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGRvY3NPbmx5IC0gV2hldGhlciB0byByZXR1cm4gb25seSBkb2N1bWVudHMgKG5vdCB1c2VkIGluIHRoaXMgaW1wbGVtZW50YXRpb24pXG4gICAgICogQHBhcmFtIHsuLi5hbnlbXX0gYXJncyAtIEFkZGl0aW9uYWwgYXJndW1lbnRzLCBpbmNsdWRpbmcgdGhlIGNoYWluY29kZSBzdHViIGFuZCBsb2dnZXJcbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlPFI+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgcXVlcnkgcmVzdWx0c1xuICAgICAqIEBtZXJtYWlkXG4gICAgICogc2VxdWVuY2VEaWFncmFtXG4gICAgICogICBwYXJ0aWNpcGFudCBDYWxsZXJcbiAgICAgKiAgIHBhcnRpY2lwYW50IEZhYnJpY0NvbnRyYWN0QWRhcHRlclxuICAgICAqICAgcGFydGljaXBhbnQgU3R1YlxuICAgICAqICAgcGFydGljaXBhbnQgU3RhdGVEQlxuICAgICAqXG4gICAgICogICBDYWxsZXItPj5GYWJyaWNDb250cmFjdEFkYXB0ZXI6IHJhdyhyYXdJbnB1dCwgZG9jc09ubHksIGN0eClcbiAgICAgKiAgIEZhYnJpY0NvbnRyYWN0QWRhcHRlci0+PkZhYnJpY0NvbnRyYWN0QWRhcHRlcjogRXh0cmFjdCBsaW1pdCBhbmQgc2tpcFxuICAgICAqICAgYWx0IFdpdGggcGFnaW5hdGlvblxuICAgICAqICAgICBGYWJyaWNDb250cmFjdEFkYXB0ZXItPj5TdHViOiBnZXRRdWVyeVJlc3VsdFdpdGhQYWdpbmF0aW9uKHF1ZXJ5LCBsaW1pdCwgc2tpcClcbiAgICAgKiAgIGVsc2UgV2l0aG91dCBwYWdpbmF0aW9uXG4gICAgICogICAgIEZhYnJpY0NvbnRyYWN0QWRhcHRlci0+PlN0dWI6IGdldFF1ZXJ5UmVzdWx0KHF1ZXJ5KVxuICAgICAqICAgZW5kXG4gICAgICogICBTdHViLT4+U3RhdGVEQjogRXhlY3V0ZSBxdWVyeVxuICAgICAqICAgU3RhdGVEQi0tPj5TdHViOiBJdGVyYXRvclxuICAgICAqICAgU3R1Yi0tPj5GYWJyaWNDb250cmFjdEFkYXB0ZXI6IEl0ZXJhdG9yXG4gICAgICogICBGYWJyaWNDb250cmFjdEFkYXB0ZXItPj5GYWJyaWNDb250cmFjdEFkYXB0ZXI6IHJlc3VsdEl0ZXJhdG9yKGxvZywgaXRlcmF0b3IpXG4gICAgICogICBGYWJyaWNDb250cmFjdEFkYXB0ZXItLT4+Q2FsbGVyOiByZXN1bHRzXG4gICAgICovXG4gICAgYXN5bmMgcmF3KHJhd0lucHV0LCBkb2NzT25seSA9IHRydWUsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBsb2csIGN0eCwgY3R4QXJncyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5yYXcpO1xuICAgICAgICBjb25zdCBlbmFibGVTZWdyZWdhdGVzID0gIWFyZ3MubGVuZ3RoIHx8IGFyZ3NbMF0gIT09IHRydWU7XG4gICAgICAgIGNvbnN0IGZ1bGx5U2VncmVnYXRlZCA9IGVuYWJsZVNlZ3JlZ2F0ZXMgJiYgY3R4LmlzRnVsbHlTZWdyZWdhdGVkO1xuICAgICAgICBjb25zdCB7IHNraXAsIGxpbWl0IH0gPSByYXdJbnB1dDtcbiAgICAgICAgY29uc3QgYm9va21hcmsgPSByYXdJbnB1dFtcImJvb2ttYXJrXCJdO1xuICAgICAgICBjb25zdCBwYWdpbmF0aW9uQWN0aXZlID0gQm9vbGVhbihsaW1pdCB8fCBza2lwIHx8IGJvb2ttYXJrKTtcbiAgICAgICAgbGV0IHJlc3AgPSB7IGRvY3M6IFtdLCBib29rbWFyazogdW5kZWZpbmVkIH07XG4gICAgICAgIC8vIFF1ZXJ5IHB1YmxpYyBzdGF0ZSBvbmx5IHdoZW4gdGhlIG1vZGVsIGlzIE5PVCBmdWxseSBzZWdyZWdhdGVkXG4gICAgICAgIGlmICghZnVsbHlTZWdyZWdhdGVkKSB7XG4gICAgICAgICAgICBsZXQgaXRlcmF0b3I7XG4gICAgICAgICAgICBpZiAobGltaXQgfHwgc2tpcCkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSByYXdJbnB1dFtcImxpbWl0XCJdO1xuICAgICAgICAgICAgICAgIGRlbGV0ZSByYXdJbnB1dFtcInNraXBcIl07XG4gICAgICAgICAgICAgICAgbG9nLmRlYnVnKGBSZXRyaWV2aW5nIHB1YmxpYyBwYWdpbmF0ZWQgaXRlcmF0b3I6IGxpbWl0OiAke2xpbWl0fS8gc2tpcDogJHtza2lwfWApO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gKGF3YWl0IHRoaXMucXVlcnlSZXN1bHRQYWdpbmF0ZWQoY3R4LnN0dWIsIHJhd0lucHV0LCBsaW1pdCB8fCBOdW1iZXIuTUFYX1ZBTFVFLCBza2lwPy50b1N0cmluZygpLCBib29rbWFyaywgLi4uW2N0eF0pKTtcbiAgICAgICAgICAgICAgICByZXNwLmJvb2ttYXJrID0gcmVzcG9uc2UubWV0YWRhdGEuYm9va21hcms7XG4gICAgICAgICAgICAgICAgaXRlcmF0b3IgPSByZXNwb25zZS5pdGVyYXRvcjtcbiAgICAgICAgICAgICAgICBsb2cuZGVidWcoYFJldHJpZXZlZCBwdWJsaWMgcGFnaW5nIGl0ZXJhdG9yYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBsb2cuZGVidWcoXCJSZXRyaWV2aW5nIGxpc3RpbmcgcHVibGljIGl0ZXJhdG9yXCIpO1xuICAgICAgICAgICAgICAgIGl0ZXJhdG9yID0gKGF3YWl0IHRoaXMucXVlcnlSZXN1bHQoY3R4LnN0dWIsIHJhd0lucHV0LCBjdHgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxvZy5kZWJ1ZyhgUmV0cmlldmVkIHB1YmxpYyBsaXN0aW5nIGl0ZXJhdG9yYCk7XG4gICAgICAgICAgICByZXNwLmRvY3MgPSAoYXdhaXQgdGhpcy5yZXN1bHRJdGVyYXRvcihsb2csIGl0ZXJhdG9yKSk7XG4gICAgICAgICAgICBsb2cuZGVidWcoYHJldHVybmluZyAke0FycmF5LmlzQXJyYXkocmVzcC5kb2NzKSA/IHJlc3AuZG9jcy5sZW5ndGggOiAxfSByZXN1bHRzYCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAvLyBGb3IgZnVsbHkgc2VncmVnYXRlZCBtb2RlbHMsIHN0cmlwIHBhZ2luYXRpb24gZmllbGRzIGZyb20gcmF3SW5wdXRcbiAgICAgICAgICAgIC8vIHNvIHRoZSBzZWdyZWdhdGVkIHF1ZXJ5IGJlbG93IGNhbiByZS1hcHBseSB0aGVtIGNsZWFubHlcbiAgICAgICAgICAgIGlmIChsaW1pdCB8fCBza2lwKSB7XG4gICAgICAgICAgICAgICAgZGVsZXRlIHJhd0lucHV0W1wibGltaXRcIl07XG4gICAgICAgICAgICAgICAgZGVsZXRlIHJhd0lucHV0W1wic2tpcFwiXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxvZy5kZWJ1ZyhcIlNraXBwaW5nIHB1YmxpYyBzdGF0ZSBxdWVyeSAoZnVsbHkgc2VncmVnYXRlZCBtb2RlbClcIik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29sbGVjdGlvbnMgPSBlbmFibGVTZWdyZWdhdGVzID8gY3R4LmdldFJlYWRDb2xsZWN0aW9ucygpIDogdW5kZWZpbmVkO1xuICAgICAgICBpZiAoY29sbGVjdGlvbnMgJiYgY29sbGVjdGlvbnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAvLyBCdWlsZCBhIGZyZXNoIGlucHV0IHdpdGggbGltaXQvc2tpcC9ib29rbWFyayByZXN0b3JlZFxuICAgICAgICAgICAgY29uc3Qgc2VncmVnYXRlZElucHV0ID0geyAuLi5yYXdJbnB1dCB9O1xuICAgICAgICAgICAgaWYgKGxpbWl0KVxuICAgICAgICAgICAgICAgIHNlZ3JlZ2F0ZWRJbnB1dC5saW1pdCA9IGxpbWl0O1xuICAgICAgICAgICAgaWYgKHNraXApXG4gICAgICAgICAgICAgICAgc2VncmVnYXRlZElucHV0LnNraXAgPSBza2lwO1xuICAgICAgICAgICAgaWYgKGJvb2ttYXJrKVxuICAgICAgICAgICAgICAgIHNlZ3JlZ2F0ZWRJbnB1dFtcImJvb2ttYXJrXCJdID0gYm9va21hcms7XG4gICAgICAgICAgICBjb25zdCBzZWdyZWdhdGVkID0gW107XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNvbGxlY3Rpb24gb2YgY29sbGVjdGlvbnMpIHtcbiAgICAgICAgICAgICAgICBsb2cuZGVidWcoYFF1ZXJ5aW5nIGZyb20gJHtjb2xsZWN0aW9ufWApO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZyb21Db2xzID0gYXdhaXQgdGhpcy5mb3JQcml2YXRlKGNvbGxlY3Rpb24pLnJhdyh7IC4uLnNlZ3JlZ2F0ZWRJbnB1dCB9LCBmYWxzZSwgdHJ1ZSwgLi4uY3R4QXJncyk7XG4gICAgICAgICAgICAgICAgbG9nLnZlcmJvc2UoYHJlY2VpdmVkICR7ZnJvbUNvbHMubGVuZ3RofSBmcm9tICR7Y29sbGVjdGlvbn1gKTtcbiAgICAgICAgICAgICAgICBzZWdyZWdhdGVkLnB1c2goZnJvbUNvbHMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHBhZ2luYXRpb25BY3RpdmUpIHtcbiAgICAgICAgICAgICAgICAvLyBGb3IgcGFnaW5hdGVkIGZsb3dzLCBrZWVwIHNvdXJjZSBzZWxlY3Rpb24gZGV0ZXJtaW5pc3RpYyBzb1xuICAgICAgICAgICAgICAgIC8vIGV4dGVybmFsbHkgZ2VuZXJhdGVkIG9wYXF1ZSBib29rbWFya3Mgc3RheSB2YWxpZCBhY3Jvc3MgcGFnZXMuXG4gICAgICAgICAgICAgICAgaWYgKGZ1bGx5U2VncmVnYXRlZCkge1xuICAgICAgICAgICAgICAgICAgICByZXNwID0gc2VncmVnYXRlZFswXSB8fCByZXNwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmICghcmVzcC5kb2NzPy5sZW5ndGggJiYgc2VncmVnYXRlZC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gUHJlc2VydmUgcHVibGljLXN0YXRlIHByaW9yaXR5IGZvciBtaXhlZCBtb2RlbHMsIGJ1dCBhbGxvdyBhXG4gICAgICAgICAgICAgICAgICAgIC8vIHN0YWJsZSBmYWxsYmFjayB3aGVuIHB1YmxpYyBxdWVyeSByZXR1cm5zIG5vIGRvY3MuXG4gICAgICAgICAgICAgICAgICAgIHJlc3AgPSBzZWdyZWdhdGVkWzBdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIE5vbi1wYWdpbmF0ZWQgcmVhZHMgY2FuIHN0aWxsIHByZWZlciB0aGUgcmljaGVzdCByZXNwb25zZS5cbiAgICAgICAgICAgICAgICByZXNwID0gc2VncmVnYXRlZC5yZWR1Y2UoKGFjYywgY3VycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWFjYylcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjdXJyO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY3Vyci5kb2NzICYmIGN1cnIuZG9jcy5sZW5ndGggPj0gYWNjPy5kb2NzLmxlbmd0aClcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjdXJyO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgICAgIH0sIHJlc3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChkb2NzT25seSkge1xuICAgICAgICAgICAgcmV0dXJuIHJlc3AuZG9jcztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzcDtcbiAgICB9XG4gICAgYXN5bmMgdmlldyhcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgZGRvYywgXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIHZpZXdOYW1lLCBcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgb3B0aW9ucywgXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIC4uLl9hcmdzKSB7XG4gICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZEVycm9yKFwiRmFicmljIGNvbnRyYWN0cyBkbyBub3Qgc3VwcG9ydCBDb3VjaERCIHZpZXdzLlwiKTtcbiAgICB9XG4gICAgU3RhdGVtZW50KG92ZXJyaWRlcykge1xuICAgICAgICByZXR1cm4gbmV3IEZhYnJpY1N0YXRlbWVudCh0aGlzLCBvdmVycmlkZXMpO1xuICAgIH1cbiAgICBhc3luYyB1cGRhdGVBbGwodGFibGVOYW1lLCBpZCwgbW9kZWwsIC4uLmFyZ3MpIHtcbiAgICAgICAgaWYgKGlkLmxlbmd0aCAhPT0gbW9kZWwubGVuZ3RoKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJJZHMgYW5kIG1vZGVscyBtdXN0IGhhdmUgdGhlIHNhbWUgbGVuZ3RoXCIpO1xuICAgICAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy51cGRhdGVBbGwpO1xuICAgICAgICBjb25zdCB0YWJsZUxhYmVsID0gTW9kZWwudGFibGVOYW1lKHRhYmxlTmFtZSk7XG4gICAgICAgIGxvZy5kZWJ1ZyhgVXBkYXRpbmcgJHtpZC5sZW5ndGh9IGVudHJpZXMgJHt0YWJsZUxhYmVsfSB0YWJsZWApO1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoaWQubWFwKChpLCBjb3VudCkgPT4gdGhpcy51cGRhdGUodGFibGVOYW1lLCBpLCBtb2RlbFtjb3VudF0sIC4uLmN0eEFyZ3MpKSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIG1vZGVsXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHBrXG4gICAgICogQHBhcmFtIGFyZ3NcbiAgICAgKi9cbiAgICBwcmVwYXJlKG1vZGVsLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgbG9nLCBjdHggfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMucHJlcGFyZSk7XG4gICAgICAgIGNvbnN0IHNwbGl0ID0gTW9kZWwuc2VncmVnYXRlKG1vZGVsKTtcbiAgICAgICAgY29uc3QgdGFibGVOYW1lID0gTW9kZWwudGFibGVOYW1lKG1vZGVsLmNvbnN0cnVjdG9yKTtcbiAgICAgICAgY29uc3QgcGsgPSBNb2RlbC5wayhtb2RlbC5jb25zdHJ1Y3Rvcik7XG4gICAgICAgIGNvbnN0IGlkID0gbW9kZWxbcGtdO1xuICAgICAgICBjb25zdCBpc01pcnJvciA9IGN0eC5nZXRPclVuZGVmaW5lZChcIm1pcnJvclwiKTtcbiAgICAgICAgY29uc3QgbWFwVG9SZWNvcmQgPSBmdW5jdGlvbiAob2JqLCBrZXlzT3ZlcnJpZGUpIHtcbiAgICAgICAgICAgIGlmIChrZXlzT3ZlcnJpZGUpXG4gICAgICAgICAgICAgICAga2V5c092ZXJyaWRlID0gWy4uLm5ldyBTZXQoWy4uLmtleXNPdmVycmlkZSwgcGtdKV07XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBPYmplY3QuZW50cmllcyhvYmopLnJlZHVjZSgoYWNjdW0sIFtrZXksIHZhbF0pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHZhbCA9PT0gXCJ1bmRlZmluZWRcIilcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFjY3VtO1xuICAgICAgICAgICAgICAgIGlmIChrZXlzT3ZlcnJpZGUgJiYgIWtleXNPdmVycmlkZS5pbmNsdWRlcyhrZXkpKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWNjdW07XG4gICAgICAgICAgICAgICAgY29uc3QgbWFwcGVkUHJvcCA9IE1vZGVsLmNvbHVtbk5hbWUobW9kZWwsIGtleSk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNSZXNlcnZlZChtYXBwZWRQcm9wKSlcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYFByb3BlcnR5IG5hbWUgJHttYXBwZWRQcm9wfSBpcyByZXNlcnZlZGApO1xuICAgICAgICAgICAgICAgIHZhbCA9IHZhbCBpbnN0YW5jZW9mIERhdGUgPyBuZXcgRGF0ZSh2YWwpIDogdmFsO1xuICAgICAgICAgICAgICAgIGFjY3VtW21hcHBlZFByb3BdID0gdmFsO1xuICAgICAgICAgICAgICAgIHJldHVybiBhY2N1bTtcbiAgICAgICAgICAgIH0sIHt9KTtcbiAgICAgICAgICAgIGlmIChPYmplY3Qua2V5cyhyZXN1bHQpLmZpbHRlcigoaykgPT4gQm9vbGVhbihyZXN1bHRba10pKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAvLyBBZGQgdGFibGUgaWRlbnRpZmllclxuICAgICAgICAgICAgICAgIHJlc3VsdFtDb3VjaERCS2V5cy5UQUJMRV0gPSB0YWJsZU5hbWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9LmJpbmQodGhpcyk7XG4gICAgICAgIGxvZy5zaWxseShgUHJlcGFyaW5nIHJlY29yZCBmb3IgJHt0YWJsZU5hbWV9IHRhYmxlIHdpdGggcGsgJHttb2RlbFtwa119YCk7XG4gICAgICAgIGNvbnN0IHNlZ3JlZ2F0ZWRXcml0ZUtleXMgPSBjdHguZ2V0U2VncmVnYXRlZFdyaXRlcygpO1xuICAgICAgICBjb25zdCBzZWdyZWdhdGVkV3JpdGVzID0ge307XG4gICAgICAgIC8vIE9ubHkgYXBwbHkgc2VncmVnYXRlZCB3cml0ZXMgd2hlbiB0aGUgY3VycmVudCBtb2RlbCBhY3R1YWxseSBoYXMgYSB0cmFuc2llbnQgc3BsaXQuXG4gICAgICAgIC8vIFRoZSBzYW1lIEZhYnJpY0NvbnRyYWN0Q29udGV4dCBjYW4gYmUgcmV1c2VkIGFjcm9zcyBuZXN0ZWQgb3BlcmF0aW9ucyAoZm9yIGV4YW1wbGVcbiAgICAgICAgLy8gc2VxdWVuY2UgdXBzZXJ0cyBkdXJpbmcgcGVyc2lzdGVudCB2ZXJzaW9uIGdlbmVyYXRpb24pLiBJbiB0aG9zZSBjYXNlcywgd2UgbXVzdCBub3RcbiAgICAgICAgLy8gYXR0ZW1wdCB0byBhcHBseSBwYXJlbnQtbW9kZWwgc2VncmVnYXRlZCB3cml0ZSBrZXlzIHRvIHVucmVsYXRlZCBtb2RlbHMuXG4gICAgICAgIGlmIChzZWdyZWdhdGVkV3JpdGVLZXlzICYmIHNwbGl0LnRyYW5zaWVudCAmJiB0eXBlb2Ygc3BsaXQudHJhbnNpZW50ID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNvbGxlY3Rpb24gaW4gc2VncmVnYXRlZFdyaXRlS2V5cykge1xuICAgICAgICAgICAgICAgIHNlZ3JlZ2F0ZWRXcml0ZXNbY29sbGVjdGlvbl0gPSBzZWdyZWdhdGVkV3JpdGVzW2NvbGxlY3Rpb25dIHx8IHt9O1xuICAgICAgICAgICAgICAgIHNlZ3JlZ2F0ZWRXcml0ZXNbY29sbGVjdGlvbl1baWRdID0gbWFwVG9SZWNvcmQoY3R4LmdldE9yVW5kZWZpbmVkKFwiZm9yY2VTZWdyZWdhdGVXcml0ZVwiKVxuICAgICAgICAgICAgICAgICAgICA/IHNwbGl0Lm1vZGVsXG4gICAgICAgICAgICAgICAgICAgIDogKHNwbGl0LnRyYW5zaWVudCB8fCB7fSksIHNlZ3JlZ2F0ZWRXcml0ZUtleXNbY29sbGVjdGlvbl0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIEluIG1pcnJvciBtb2RlLCB0aGUgcmVjb3JkIHNob3VsZCBjb250YWluIEFMTCBtb2RlbCBwcm9wZXJ0aWVzIChmdWxsIGNvcHkpXG4gICAgICAgIGNvbnN0IHJlY29yZCA9IGlzTWlycm9yID8gbWFwVG9SZWNvcmQobW9kZWwpIDogbWFwVG9SZWNvcmQoc3BsaXQubW9kZWwpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcmVjb3JkLFxuICAgICAgICAgICAgaWQ6IG1vZGVsW3BrXSxcbiAgICAgICAgICAgIHRyYW5zaWVudDogIWlzTWlycm9yICYmIHNwbGl0LnRyYW5zaWVudCAmJiBPYmplY3Qua2V5cyhzcGxpdC50cmFuc2llbnQpLmxlbmd0aFxuICAgICAgICAgICAgICAgID8gbWFwVG9SZWNvcmQoc3BsaXQudHJhbnNpZW50KVxuICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgc2VncmVnYXRlZDogaXNNaXJyb3IgPyB1bmRlZmluZWQgOiBzZWdyZWdhdGVkV3JpdGVzLFxuICAgICAgICB9O1xuICAgIH1cbiAgICByZXZlcnQob2JqLCBjbGF6eiwgaWQsIHRyYW5zaWVudCwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGxvZywgY3R4IH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLnJldmVydCk7XG4gICAgICAgIGNvbnN0IG9iID0ge307XG4gICAgICAgIGNvbnN0IHBrID0gTW9kZWwucGsoY2xhenopO1xuICAgICAgICBjb25zdCBwa1Byb3BzID0gTW9kZWwucGtQcm9wcyhjbGF6eik7XG4gICAgICAgIGlmIChwa1Byb3BzPy50eXBlID09PSBOdW1iZXIgJiYgdHlwZW9mIGlkID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICBpZCA9IE51bWJlcihpZCk7XG4gICAgICAgIH1cbiAgICAgICAgb2JbcGtdID0gaWQ7XG4gICAgICAgIGxvZy5zaWxseShgUmVidWlsZGluZyBtb2RlbCAke2NsYXp6Lm5hbWV9IGlkICR7aWR9YCk7XG4gICAgICAgIGZ1bmN0aW9uIG1hcFRvTW9kZWwocikge1xuICAgICAgICAgICAgY29uc3QgbSA9ICh0eXBlb2YgY2xhenogPT09IFwic3RyaW5nXCIgPyBNb2RlbC5idWlsZChvYiwgY2xhenopIDogbmV3IGNsYXp6KG9iKSk7XG4gICAgICAgICAgICBjb25zdCBhdHRyaWJ1dGVzID0gTW9kZWwuZ2V0QXR0cmlidXRlcyhjbGF6eik7XG4gICAgICAgICAgICBjb25zdCBrZXlzID0gYXR0cmlidXRlcy5sZW5ndGggPyBhdHRyaWJ1dGVzIDogT2JqZWN0LmtleXMobSk7XG4gICAgICAgICAgICByZXR1cm4ga2V5c1xuICAgICAgICAgICAgICAgIC5maWx0ZXIoKGspID0+IGsgIT09IHBrKVxuICAgICAgICAgICAgICAgIC5yZWR1Y2UoKGFjY3VtLCBrZXkpID0+IHtcbiAgICAgICAgICAgICAgICBhY2N1bVtrZXldID1cbiAgICAgICAgICAgICAgICAgICAgcltNb2RlbC5jb2x1bW5OYW1lKGFjY3VtLCBrZXkpXTtcbiAgICAgICAgICAgICAgICByZXR1cm4gYWNjdW07XG4gICAgICAgICAgICB9LCBtKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgcmVzdWx0ID0gbWFwVG9Nb2RlbChvYmopO1xuICAgICAgICBpZiAodHJhbnNpZW50ICYmICF0aGlzLnNob3VsZFJlYnVpbGRXaXRoVHJhbnNpZW50KGN0eCkpIHtcbiAgICAgICAgICAgIGxvZy5kZWJ1ZyhgZmlsdGVyaW5nIHRyYW5zaWVudCBwcm9wZXJ0aWVzOiAke09iamVjdC5rZXlzKHRyYW5zaWVudCkuam9pbihcIiwgXCIpfWApO1xuICAgICAgICAgICAgcmVzdWx0ID0gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoKGFjYywgW2tleSwgdl0pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoa2V5ID09PSBwayB8fCAhKGtleSBpbiB0cmFuc2llbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgIGFjY1trZXldID0gdjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICAgIH0sIG5ldyBjbGF6eigpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICBzaG91bGRSZWJ1aWxkV2l0aFRyYW5zaWVudChjdHgpIHtcbiAgICAgICAgaWYgKCFjdHgpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIGlmIChjdHguZ2V0T3JVbmRlZmluZWQoXCJyZWJ1aWxkV2l0aFRyYW5zaWVudFwiKSlcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICBjb25zdCBvcGVyYXRpb24gPSBjdHguZ2V0T3JVbmRlZmluZWQoXCJvcGVyYXRpb25cIik7XG4gICAgICAgIGlmICghb3BlcmF0aW9uKVxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIGNvbnN0IG9wID0gb3BlcmF0aW9uLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgcmV0dXJuICFUcmFuc2FjdGlvbk9wZXJhdGlvbktleXMubWFwKChrKSA9PiBrLnRvTG93ZXJDYXNlKCkpLmluY2x1ZGVzKG9wKTtcbiAgICB9XG4gICAgZ2V0Q29udGV4dE1zcChjb250ZXh0KSB7XG4gICAgICAgIGNvbnN0IGlkZW50aXR5ID0gY29udGV4dC5nZXQoXCJpZGVudGl0eVwiKTtcbiAgICAgICAgaWYgKCFpZGVudGl0eSlcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIGlmICh0eXBlb2YgaWRlbnRpdHkgPT09IFwic3RyaW5nXCIpXG4gICAgICAgICAgICByZXR1cm4gaWRlbnRpdHk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gaWRlbnRpdHkuZ2V0TVNQSUQoKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgfVxuICAgIGVuZm9yY2VNaXJyb3JBdXRob3JpemF0aW9uKGNsYXp6LCBjdHgpIHtcbiAgICAgICAgY29uc3QgbWlycm9yTWV0YSA9IE1vZGVsLm1pcnJvcmVkQXQoY2xhenopO1xuICAgICAgICBpZiAoIW1pcnJvck1ldGEpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IG1zcCA9IHRoaXMuZ2V0Q29udGV4dE1zcChjdHgpO1xuICAgICAgICBpZiAoIW1zcClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaWYgKG1zcCA9PT0gbWlycm9yTWV0YS5tc3BJZCB8fFxuICAgICAgICAgICAgKG1pcnJvck1ldGEuY29uZGl0aW9uICYmIG1pcnJvck1ldGEuY29uZGl0aW9uKG1zcCkpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQXV0aG9yaXphdGlvbkVycm9yKGBPcmdhbml6YXRpb24gJHttc3B9IGlzIG5vdCBhdXRob3JpemVkIHRvIG1vZGlmeSBtaXJyb3JlZCBkYXRhYCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY3JlYXRlUHJlZml4KHRhYmxlTmFtZSwgaWQsIG1vZGVsLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5jcmVhdGVQcmVmaXgpO1xuICAgICAgICBjb25zdCByZWNvcmQgPSB7fTtcbiAgICAgICAgcmVjb3JkW0NvdWNoREJLZXlzLlRBQkxFXSA9IE1vZGVsLnRhYmxlTmFtZSh0YWJsZU5hbWUpO1xuICAgICAgICBPYmplY3QuYXNzaWduKHJlY29yZCwgbW9kZWwpO1xuICAgICAgICByZXR1cm4gW3RhYmxlTmFtZSwgaWQsIHJlY29yZCwgLi4uY3R4QXJnc107XG4gICAgfVxuICAgIHVwZGF0ZVByZWZpeCh0YWJsZU5hbWUsIGlkLCBtb2RlbCwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMudXBkYXRlUHJlZml4KTtcbiAgICAgICAgY29uc3QgcmVjb3JkID0ge307XG4gICAgICAgIHJlY29yZFtDb3VjaERCS2V5cy5UQUJMRV0gPSBNb2RlbC50YWJsZU5hbWUodGFibGVOYW1lKTtcbiAgICAgICAgT2JqZWN0LmFzc2lnbihyZWNvcmQsIG1vZGVsKTtcbiAgICAgICAgcmV0dXJuIFt0YWJsZU5hbWUsIGlkLCByZWNvcmQsIC4uLmN0eEFyZ3NdO1xuICAgIH1cbiAgICBjcmVhdGVBbGxQcmVmaXgodGFibGVOYW1lLCBpZHMsIG1vZGVscywgLi4uYXJncykge1xuICAgICAgICBpZiAoaWRzLmxlbmd0aCAhPT0gbW9kZWxzLmxlbmd0aClcbiAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiSWRzIGFuZCBtb2RlbHMgbXVzdCBoYXZlIHRoZSBzYW1lIGxlbmd0aFwiKTtcbiAgICAgICAgY29uc3QgY3R4ID0gYXJncy5wb3AoKTtcbiAgICAgICAgY29uc3QgcmVjb3JkcyA9IGlkcy5tYXAoKGlkLCBjb3VudCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVjb3JkID0ge307XG4gICAgICAgICAgICByZWNvcmRbQ291Y2hEQktleXMuVEFCTEVdID0gTW9kZWwudGFibGVOYW1lKHRhYmxlTmFtZSk7XG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKHJlY29yZCwgbW9kZWxzW2NvdW50XSk7XG4gICAgICAgICAgICByZXR1cm4gcmVjb3JkO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIFt0YWJsZU5hbWUsIGlkcywgcmVjb3JkcywgY3R4XTtcbiAgICB9XG4gICAgdXBkYXRlQWxsUHJlZml4KHRhYmxlTmFtZSwgaWRzLCBtb2RlbHMsIC4uLmFyZ3MpIHtcbiAgICAgICAgaWYgKGlkcy5sZW5ndGggIT09IG1vZGVscy5sZW5ndGgpXG4gICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIklkcyBhbmQgbW9kZWxzIG11c3QgaGF2ZSB0aGUgc2FtZSBsZW5ndGhcIik7XG4gICAgICAgIGNvbnN0IGN0eCA9IGFyZ3MucG9wKCk7XG4gICAgICAgIGNvbnN0IHJlY29yZHMgPSBpZHMubWFwKChpZCwgY291bnQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlY29yZCA9IHt9O1xuICAgICAgICAgICAgcmVjb3JkW0NvdWNoREJLZXlzLlRBQkxFXSA9IE1vZGVsLnRhYmxlTmFtZSh0YWJsZU5hbWUpO1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihyZWNvcmQsIG1vZGVsc1tjb3VudF0pO1xuICAgICAgICAgICAgcmV0dXJuIHJlY29yZDtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBbdGFibGVOYW1lLCBpZHMsIHJlY29yZHMsIGN0eF07XG4gICAgfVxuICAgIHBhcnNlRXJyb3IoZXJyLCByZWFzb24pIHtcbiAgICAgICAgcmV0dXJuIEZhYnJpY0NvbnRyYWN0QWRhcHRlci5wYXJzZUVycm9yKHJlYXNvbiB8fCBlcnIpO1xuICAgIH1cbiAgICBsb2dDdHgoYXJncywgb3BlcmF0aW9uLCBhbGxvd0NyZWF0ZSA9IGZhbHNlLCBvdmVycmlkZXMpIHtcbiAgICAgICAgaWYgKCFhbGxvd0NyZWF0ZSlcbiAgICAgICAgICAgIHJldHVybiBzdXBlci5sb2dDdHgoYXJncywgb3BlcmF0aW9uLCBhbGxvd0NyZWF0ZSwgb3ZlcnJpZGVzKTtcbiAgICAgICAgcmV0dXJuIHN1cGVyLmxvZ0N0eFxuICAgICAgICAgICAgLmNhbGwodGhpcywgYXJncywgb3BlcmF0aW9uLCBhbGxvd0NyZWF0ZSwgb3ZlcnJpZGVzKVxuICAgICAgICAgICAgLnRoZW4oKHJlcykgPT4ge1xuICAgICAgICAgICAgaWYgKCEocmVzLmN0eCBpbnN0YW5jZW9mIEZhYnJpY0NvbnRyYWN0Q29udGV4dCkpXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYEludmFsaWQgY29udGV4dCBiaW5kaW5nYCk7XG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihyZXMsIHtcbiAgICAgICAgICAgICAgICBzdHViOiByZXMuY3R4LnN0dWIsXG4gICAgICAgICAgICAgICAgaWRlbnRpdHk6IHJlcy5jdHguaWRlbnRpdHksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGFzeW5jIHVwZGF0ZU9ic2VydmVycyh0YWJsZSwgZXZlbnQsIGlkLCAuLi5hcmdzKSB7XG4gICAgICAgIGlmICghdGhpcy5vYnNlcnZlckhhbmRsZXIpXG4gICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIk9ic2VydmVySGFuZGxlciBub3QgaW5pdGlhbGl6ZWQuIERpZCB5b3UgcmVnaXN0ZXIgYW55IG9ic2VydmFibGVzP1wiKTtcbiAgICAgICAgY29uc3QgeyBjdHgsIGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMudXBkYXRlT2JzZXJ2ZXJzKTtcbiAgICAgICAgaWYgKGN0eC5pc0Z1bGx5U2VncmVnYXRlZClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaWYgKGN0eC5nZXRPclVuZGVmaW5lZChcIm5vRW1pdFwiKSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaWYgKCFjdHguc3R1YilcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgaXNCdWxrID0gQXJyYXkuaXNBcnJheShpZCk7XG4gICAgICAgIGNvbnN0IGVtaXRTaW5nbGUgPSAhY3R4LmdldE9yVW5kZWZpbmVkKFwibm9FbWl0U2luZ2xlXCIpO1xuICAgICAgICBjb25zdCBlbWl0QnVsayA9ICFjdHguZ2V0T3JVbmRlZmluZWQoXCJub0VtaXRCdWxrXCIpO1xuICAgICAgICBpZiAoKGlzQnVsayAmJiBlbWl0QnVsaykgfHwgKCFpc0J1bGsgJiYgZW1pdFNpbmdsZSkpIHtcbiAgICAgICAgICAgIC8vIFBhc3MgdGhlIE1TUCBvd25lciBmcm9tIHN0dWIgYW5kIHRoZSByZXN1bHQgcGF5bG9hZCAoaWYgYW55KSBpbiB0aGVcbiAgICAgICAgICAgIC8vIHBvc2l0aW9ucyB0aGUgaGFuZGxlciBleHBlY3RzOiAodGFibGUsIGV2ZW50LCBpZCwgb3duZXI/LCBwYXlsb2FkPywgY3R4KVxuICAgICAgICAgICAgY29uc3QgbXNwSWQgPSBjdHguc3R1Yi5nZXRNc3BJRCA/IGN0eC5zdHViLmdldE1zcElEKCkgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBjb25zdCBub25DdHhBcmdzID0gY3R4QXJncy5zbGljZSgwLCAtMSk7IC8vIGV2ZXJ5dGhpbmcgYmVmb3JlIGN0eFxuICAgICAgICAgICAgY29uc3QgcGF5bG9hZCA9IG5vbkN0eEFyZ3MubGVuZ3RoID4gMCA/IG5vbkN0eEFyZ3NbMF0gOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLm9ic2VydmVySGFuZGxlci51cGRhdGVPYnNlcnZlcnModGFibGUsIGV2ZW50LCBpZCwgbXNwSWQsIHBheWxvYWQsIGN0eCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc3RhdGljIHBhcnNlRXJyb3IoZXJyKSB7XG4gICAgICAgIC8vIGlmIChcbiAgICAgICAgLy8gICBNSVNTSU5HX1BSSVZBVEVfREFUQV9SRUdFWC50ZXN0KFxuICAgICAgICAvLyAgICAgdHlwZW9mIGVyciA9PT0gXCJzdHJpbmdcIiA/IGVyciA6IGVyci5tZXNzYWdlXG4gICAgICAgIC8vICAgKVxuICAgICAgICAvLyApXG4gICAgICAgIC8vICAgcmV0dXJuIG5ldyBVbmF1dGhvcml6ZWRQcml2YXRlRGF0YUFjY2VzcyhlcnIpIGFzIEU7XG4gICAgICAgIGNvbnN0IG1zZyA9IHR5cGVvZiBlcnIgPT09IFwic3RyaW5nXCIgPyBlcnIgOiBlcnIubWVzc2FnZTtcbiAgICAgICAgaWYgKG1zZy5pbmNsdWRlcyhOb3RGb3VuZEVycm9yLm5hbWUpKVxuICAgICAgICAgICAgcmV0dXJuIG5ldyBOb3RGb3VuZEVycm9yKGVycik7XG4gICAgICAgIGlmIChtc2cuaW5jbHVkZXMoQ29uZmxpY3RFcnJvci5uYW1lKSlcbiAgICAgICAgICAgIHJldHVybiBuZXcgQ29uZmxpY3RFcnJvcihlcnIpO1xuICAgICAgICBpZiAobXNnLmluY2x1ZGVzKEJhZFJlcXVlc3RFcnJvci5uYW1lKSlcbiAgICAgICAgICAgIHJldHVybiBuZXcgQmFkUmVxdWVzdEVycm9yKGVycik7XG4gICAgICAgIGlmIChtc2cuaW5jbHVkZXMoUXVlcnlFcnJvci5uYW1lKSlcbiAgICAgICAgICAgIHJldHVybiBuZXcgUXVlcnlFcnJvcihlcnIpO1xuICAgICAgICBpZiAobXNnLmluY2x1ZGVzKFBhZ2luZ0Vycm9yLm5hbWUpKVxuICAgICAgICAgICAgcmV0dXJuIG5ldyBQYWdpbmdFcnJvcihlcnIpO1xuICAgICAgICBpZiAobXNnLmluY2x1ZGVzKFVuc3VwcG9ydGVkRXJyb3IubmFtZSkpXG4gICAgICAgICAgICByZXR1cm4gbmV3IFVuc3VwcG9ydGVkRXJyb3IoZXJyKTtcbiAgICAgICAgaWYgKG1zZy5pbmNsdWRlcyhNaWdyYXRpb25FcnJvci5uYW1lKSlcbiAgICAgICAgICAgIHJldHVybiBuZXcgTWlncmF0aW9uRXJyb3IoZXJyKTtcbiAgICAgICAgaWYgKG1zZy5pbmNsdWRlcyhPYnNlcnZlckVycm9yLm5hbWUpKVxuICAgICAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZlckVycm9yKGVycik7XG4gICAgICAgIGlmIChtc2cuaW5jbHVkZXMoQXV0aG9yaXphdGlvbkVycm9yLm5hbWUpKVxuICAgICAgICAgICAgcmV0dXJuIG5ldyBBdXRob3JpemF0aW9uRXJyb3IoZXJyKTtcbiAgICAgICAgaWYgKG1zZy5pbmNsdWRlcyhGb3JiaWRkZW5FcnJvci5uYW1lKSlcbiAgICAgICAgICAgIHJldHVybiBuZXcgRm9yYmlkZGVuRXJyb3IoZXJyKTtcbiAgICAgICAgaWYgKG1zZy5pbmNsdWRlcyhDb25uZWN0aW9uRXJyb3IubmFtZSkpXG4gICAgICAgICAgICByZXR1cm4gbmV3IENvbm5lY3Rpb25FcnJvcihlcnIpO1xuICAgICAgICBpZiAobXNnLmluY2x1ZGVzKFNlcmlhbGl6YXRpb25FcnJvci5uYW1lKSlcbiAgICAgICAgICAgIHJldHVybiBuZXcgU2VyaWFsaXphdGlvbkVycm9yKGVycik7XG4gICAgICAgIGlmIChtc2cuaW5jbHVkZXMoXCJubyBsZWRnZXIgY29udGV4dFwiKSlcbiAgICAgICAgICAgIHJldHVybiBuZXcgTWlzc2luZ0NvbnRleHRFcnJvcihgTm8gY29udGV4dCBmb3VuZC4gdGhpcyBjYW4gYmUgY2F1c2VkIGJ5IGRlYnVnZ2luZzogJHttc2d9YCk7XG4gICAgICAgIHJldHVybiBuZXcgSW50ZXJuYWxFcnJvcihlcnIpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gU3RhdGljIG1ldGhvZCBmb3IgZGVjb3JhdGlvbiBvdmVycmlkZXNcbiAgICAgKiBAc3VtbWFyeSBPdmVycmlkZXMvZXh0ZW5kcyBkZWNhZiBkZWNvcmF0aW9uIHdpdGggRmFicmljLXNwZWNpZmljIGZ1bmN0aW9uYWxpdHlcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG92ZXJyaWRlXG4gICAgICogQHJldHVybiB7dm9pZH1cbiAgICAgKi9cbiAgICBzdGF0aWMgZGVjb3JhdGlvbigpIHtcbiAgICAgICAgc3VwZXIuZGVjb3JhdGlvbigpO1xuICAgICAgICBEZWNvcmF0aW9uLmZsYXZvdXJlZEFzKEZhYnJpY0ZsYXZvdXIpXG4gICAgICAgICAgICAuZm9yKFBlcnNpc3RlbmNlS2V5cy5DUkVBVEVEX0JZKVxuICAgICAgICAgICAgLmRlZmluZSh7XG4gICAgICAgICAgICBkZWNvcmF0b3I6IGZ1bmN0aW9uIGNyZWF0ZWRCeSgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYXBwbHkob25DcmVhdGUoY3JlYXRlZEJ5T25GYWJyaWNDcmVhdGVVcGRhdGUpLCBwcm9wTWV0YWRhdGEoUGVyc2lzdGVuY2VLZXlzLkNSRUFURURfQlksIHt9KSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KVxuICAgICAgICAgICAgLmFwcGx5KCk7XG4gICAgICAgIERlY29yYXRpb24uZmxhdm91cmVkQXMoRmFicmljRmxhdm91cilcbiAgICAgICAgICAgIC5mb3IoUGVyc2lzdGVuY2VLZXlzLlVQREFURURfQlkpXG4gICAgICAgICAgICAuZGVmaW5lKHtcbiAgICAgICAgICAgIGRlY29yYXRvcjogZnVuY3Rpb24gY3JlYXRlZEJ5KCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBhcHBseShvbkNyZWF0ZVVwZGF0ZShjcmVhdGVkQnlPbkZhYnJpY0NyZWF0ZVVwZGF0ZSksIHByb3BNZXRhZGF0YShQZXJzaXN0ZW5jZUtleXMuVVBEQVRFRF9CWSwge30pKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pXG4gICAgICAgICAgICAuYXBwbHkoKTtcbiAgICAgICAgRGVjb3JhdGlvbi5mbGF2b3VyZWRBcyhGYWJyaWNGbGF2b3VyKVxuICAgICAgICAgICAgLmZvcihQZXJzaXN0ZW5jZUtleXMuQ09MVU1OKVxuICAgICAgICAgICAgLmV4dGVuZChGYWJyaWNQcm9wZXJ0eSgpKVxuICAgICAgICAgICAgLmFwcGx5KCk7XG4gICAgICAgIERlY29yYXRpb24uZmxhdm91cmVkQXMoRmFicmljRmxhdm91cilcbiAgICAgICAgICAgIC5mb3IoVmFsaWRhdGlvbktleXMuREFURSlcbiAgICAgICAgICAgIC5leHRlbmQoZnVuY3Rpb24gZmFicmljUHJvcGVydHkoKSB7XG4gICAgICAgICAgICByZXR1cm4gKHRhcmdldCwgcHJvcCkgPT4ge1xuICAgICAgICAgICAgICAgIFByb3BlcnR5KHByb3AsIFwic3RyaW5nOmRhdGVcIikodGFyZ2V0LCBwcm9wKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgICAgICBEZWNvcmF0aW9uLmZsYXZvdXJlZEFzKEZhYnJpY0ZsYXZvdXIpXG4gICAgICAgICAgICAuZm9yKFBlcnNpc3RlbmNlS2V5cy5UQUJMRSlcbiAgICAgICAgICAgIC5leHRlbmQoZnVuY3Rpb24gdGFibGUob2JqKSB7XG4gICAgICAgICAgICBjb25zdCBjaGFpbiA9IFtdO1xuICAgICAgICAgICAgbGV0IGN1cnJlbnQgPSB0eXBlb2Ygb2JqID09PSBcImZ1bmN0aW9uXCJcbiAgICAgICAgICAgICAgICA/IE1ldGFkYXRhLmNvbnN0cihvYmopXG4gICAgICAgICAgICAgICAgOiBNZXRhZGF0YS5jb25zdHIob2JqLmNvbnN0cnVjdG9yKTtcbiAgICAgICAgICAgIHdoaWxlIChjdXJyZW50ICYmIGN1cnJlbnQgIT09IE9iamVjdCAmJiBjdXJyZW50LnByb3RvdHlwZSkge1xuICAgICAgICAgICAgICAgIGNoYWluLnB1c2goY3VycmVudCk7XG4gICAgICAgICAgICAgICAgY3VycmVudCA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihjdXJyZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWluLm1hcCgoYykgPT4gYy5uYW1lIHx8IGMpKTtcbiAgICAgICAgICAgIC8vIEFwcGx5IGZyb20gdGhlIGJhc2UgY2xhc3MgZG93biB0byB0aGUgZGVjb3JhdGVkIGNsYXNzXG4gICAgICAgICAgICB3aGlsZSAoY2hhaW4ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnN0cnVjdG9yID0gY2hhaW4ucG9wKCk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coYENhbGxpbmcgb24gJHtjb25zdHJ1Y3Rvci5uYW1lfWApO1xuICAgICAgICAgICAgICAgIEZhYnJpY09iamVjdCgpKGNvbnN0cnVjdG9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBGYWJyaWNPYmplY3QoKShvYmopO1xuICAgICAgICB9KVxuICAgICAgICAgICAgLmFwcGx5KCk7XG4gICAgfVxufVxuRmFicmljQ29udHJhY3RBZGFwdGVyLmRlY29yYXRpb24oKTtcbkFkYXB0ZXIuc2V0Q3VycmVudChGYWJyaWNGbGF2b3VyKTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVEyOXVkSEpoWTNSQlpHRndkR1Z5TG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2lMaTR2TGk0dkxpNHZjM0pqTDJOdmJuUnlZV04wY3k5RGIyNTBjbUZqZEVGa1lYQjBaWEl1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQlFVRXNUMEZCVHl4RlFVTk1MR05CUVdNc1JVRkRaQ3hYUVVGWExFZEJSMW9zVFVGQlRTeDFRa0ZCZFVJc1EwRkJRenRCUVVNdlFpeFBRVUZQTEVWQlFVVXNTMEZCU3l4RlFVRkZMR05CUVdNc1JVRkJSU3hOUVVGTkxHZERRVUZuUXl4RFFVRkRPMEZCUlhaRkxFOUJRVThzUlVGQlJTeHhRa0ZCY1VJc1JVRkJSU3cyUWtGQk1FSTdRVUZETVVRc1QwRkJUeXhGUVVOTUxHVkJRV1VzUlVGRlppeHhRa0ZCY1VJc1JVRkRja0lzWVVGQllTeEZRVU5pTEdGQlFXRXNSVUZEWWl4aFFVRmhMRVZCUTJJc1VVRkJVU3hGUVVOU0xHTkJRV01zUlVGSFpDeHJRa0ZCYTBJc1IwRkRia0lzVFVGQlRTeDVRa0ZCZVVJc1EwRkJRenRCUVVOcVF5eFBRVUZQTEVWQlJVd3NUVUZCVFN4SlFVRkpMRmxCUVZrc1JVRkRkRUlzVVVGQlVTeEZRVU5TTEZGQlFWRXNTVUZCU1N4alFVRmpMRWRCUXpOQ0xFMUJRVTBzY1VKQlFYRkNMRU5CUVVNN1FVRkROMElzVDBGQlR5eEZRVUZWTEU5QlFVOHNSVUZCUlN4TlFVRk5MRzFDUVVGdFFpeERRVUZETzBGQlEzQkVMRTlCUVU4c1JVRkRUQ3hsUVVGbExFVkJTV1lzWjBKQlFXZENMRVZCUTJoQ0xFOUJRVThzUlVGSlVDeFZRVUZWTEVWQlExWXNWMEZCVnl4RlFVTllMR05CUVdNc1JVRkRaQ3hoUVVGaExFVkJRMklzYTBKQlFXdENMRVZCUTJ4Q0xHTkJRV01zUlVGRFpDeGxRVUZsTEVWQlJXWXNUMEZCVHl4RlFWTlFMSGRDUVVGM1FpeEZRVWQ0UWl4bFFVRmxMRVZCUTJZc2VVSkJRWGxDTEVkQlF6RkNMRTFCUVUwc1owSkJRV2RDTEVOQlFVTTdRVUZEZUVJc1QwRkJUeXhGUVVGRkxIZENRVUYzUWl4RlFVRkZMSE5EUVVGdFF6dEJRVTkwUlN4UFFVRlBMRVZCUVVVc1pVRkJaU3hGUVVGRkxIRkRRVUZyUXp0QlFVTTFSQ3hQUVVGUExFVkJRVVVzYzBKQlFYTkNMRVZCUVVVc2IwTkJRV2xETzBGQlEyeEZMRTlCUVU4c1JVRkJSU3hoUVVGaExFVkJRVVVzYVVOQlFUUkNPMEZCUTNCRUxFOUJRVThzUlVGQlJTdzJRa0ZCTmtJc1JVRkJSU3h4UkVGQlowUTdRVUZEZUVZc1QwRkJUeXhGUVVOTUxFdEJRVXNzUlVGRlRDeFZRVUZWTEVWQlExWXNVVUZCVVN4RlFVTlNMRmxCUVZrc1IwRkRZaXhOUVVGTkxITkNRVUZ6UWl4RFFVRkRPMEZCUXpsQ0xFOUJRVThzUlVGQlJTeDFRa0ZCZFVJc1JVRkJSU3h4UTBGQmEwTTdRVUZEY0VVc1QwRkJUeXhGUVVGRkxHMUNRVUZ0UWl4RlFVRkZMRGhDUVVGNVFqdEJRVVYyUkN4UFFVRlBMRVZCUVVVc2MwSkJRWE5DTEVWQlFVVXNiME5CUVdsRE8wRkJWV3hGT3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPMGRCZVVKSE8wRkJRMGdzVFVGQlRTeERRVUZETEV0QlFVc3NWVUZCVlN3MlFrRkJOa0lzUTBGTmFrUXNUMEZCY1VJc1JVRkRja0lzU1VGQlR5eEZRVU5RTEVkQlFWa3NSVUZEV2l4TFFVRlJPMGxCUlZJc1NVRkJTU3hEUVVGRE8xRkJRMGdzVFVGQlRTeEpRVUZKTEVkQlFVY3NUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhWUVVGVkxFTkJRVzFDTEVOQlFVTTdVVUZEZGtRc1MwRkJTeXhEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXl4TFFVRkxMRVZCUVcxQ0xFTkJRVU03VVVGRE0wTXNOa1JCUVRaRU8wbEJReTlFTEVOQlFVTTdTVUZCUXl4UFFVRlBMRU5CUVZVc1JVRkJSU3hEUVVGRE8xRkJRM0JDTEUxQlFVMHNTVUZCU1N4blFrRkJaMElzUTBGRGVFSXNaMFZCUVdkRkxFTkJRMnBGTEVOQlFVTTdTVUZEU2l4RFFVRkRPMEZCUTBnc1EwRkJRenRCUVVWRU96czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN1IwRnZRMGM3UVVGRFNDeE5RVUZOTEU5QlFVOHNjVUpCUVhOQ0xGTkJRVkVzWTBGSk1VTTdZVUZEZVVJc05FSkJRWFZDTEVkQlFVY3NaVUZCWlN4RFFVRkRPMGxCUlRGRUxFMUJRVTBzUTBGQlF5dzJRa0ZCTmtJc1EwRkRNVU1zVVVGQmFVSTdVVUZGYWtJc1NVRkJTU3hQUVVGUExGRkJRVkVzUzBGQlN5eFJRVUZSTzFsQlFVVXNUMEZCVHl4VFFVRlRMRU5CUVVNN1VVRkRia1FzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4VlFVRlZMRU5CUVVNc2NVSkJRWEZDTEVOQlFVTXNkVUpCUVhWQ0xFTkJRVU03V1VGRGNrVXNUMEZCVHl4VFFVRlRMRU5CUVVNN1VVRkRia0lzVFVGQlRTeEhRVUZITEVkQlFVY3NVVUZCVVN4RFFVRkRMRXRCUVVzc1EwRkRlRUlzY1VKQlFYRkNMRU5CUVVNc2RVSkJRWFZDTEVOQlFVTXNUVUZCVFN4RFFVTnlSQ3hEUVVGRE8xRkJRMFlzVFVGQlRTeE5RVUZOTEVkQlFVY3NUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRek5DTEU5QlFVOHNUVUZCVFN4RFFVRkRMRk5CUVZNc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeE5RVUZOTEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEZOQlFWTXNRMEZCUXp0SlFVTjBSU3hEUVVGRE8wbEJSVThzVFVGQlRTeERRVUZETERaQ1FVRTJRaXhEUVVGRExFMUJRV003VVVGRGVrUXNUMEZCVHl4SFFVRkhMSEZDUVVGeFFpeERRVUZETEhWQ1FVRjFRaXhIUVVGSExFMUJRVTBzUlVGQlJTeERRVUZETzBsQlEzSkZMRU5CUVVNN1NVRkZhMElzVTBGQlV6dFJRVU14UWl4TlFVRk5MRWxCUVVrc1owSkJRV2RDTEVOQlFVTXNOa05CUVRaRExFTkJRVU1zUTBGQlF6dEpRVU0xUlN4RFFVRkRPMGxCUTBRN08wOUJSVWM3WVVGRFdTeG5Ra0ZCVnl4SFFVRkhMRWxCUVVrc1YwRkJWeXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETzJGQlJUTkNMR1ZCUVZVc1IwRkJSeXhKUVVGSkxEWkNRVUUyUWl4RlFVRkZMRU5CUVVNN1NVRkZNMFU3T3p0UFFVZEhPMGxCUTBnc1NVRkJkVUlzVDBGQlR6dFJRVU0xUWl4UFFVRlBMSEZDUVVGeFFpeERRVUZETzBsQlF5OUNMRU5CUVVNN1NVRkRSRHM3T3pzN1QwRkxSenRKUVVOTkxGVkJRVlU3VVVGTmFrSXNUMEZCVHl4M1FrRkJjVVFzUTBGQlF6dEpRVU12UkN4RFFVRkRPMGxCUlZFc1UwRkJVeXhEUVVOb1FpeExRVUZwUWl4RlFVTnFRaXhKUVVGWkxFVkJRMW9zUzBGQmNVSTdVVUZGY2tJc1QwRkJUeXhKUVVGSkxIVkNRVUYxUWl4RFFVRkRMRWxCUVVrc1JVRkJSU3hMUVVGTExFVkJRVVVzU1VGQlNTeEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRPMGxCUXk5RUxFTkJRVU03U1VGRlVTeExRVUZMTEVOQlFVTXNVVUZCVVN4RFFVRkRMRTlCUVhkQ08xRkJRemxETEU5QlFVOHNTVUZCU1N4elFrRkJjMElzUTBGQlF5eFBRVUZQTEVWQlFVVXNTVUZCVnl4RFFVRkRMRU5CUVVNN1NVRkRNVVFzUTBGQlF6dEpRVVZyUWl4UlFVRlJPMUZCUTNwQ0xFOUJRVThzU1VGQlNTeHpRa0ZCYzBJc1JVRkJSU3hEUVVGRE8wbEJRM1JETEVOQlFVTTdTVUZGUkRzN096czdUMEZMUnp0SlFVTklMRmxCUVZrc1MwRkJWeXhGUVVGRkxFdEJRV003VVVGRGNrTXNTMEZCU3l4RFFVRkRMRXRCUVVzc1JVRkJSU3hoUVVGaExFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTTdTVUZEY2tNc1EwRkJRenRKUVVWUkxFZEJRVWNzUTBGQlF5eE5RVUZ2UWl4RlFVRkZMRWRCUVVjc1NVRkJVenRSUVVNM1F5eFBRVUZQTEV0QlFVc3NRMEZCUXl4SFFVRkhMRU5CUVVNc1RVRkJUU3hGUVVGRkxFZEJRVWNzU1VGQlNTeERRVUZETEVOQlFVTTdTVUZEY0VNc1EwRkJRenRKUVVWVExHZENRVUZuUWl4RFFVRnJRaXhMUVVGeFFqdFJRVU12UkN4TlFVRk5MRU5CUVVNc1IwRkJSeXhKUVVGSkxFdEJRVXNzUlVGQlJTeERRVUZETzFGQlEzUkNMRTlCUVU4c1EwRkJReXhSUVVGUkxFTkJRVU1zVlVGQlZTeERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGRE9VTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVU3V1VGRFZDeEpRVUZKTEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVZrc1EwRkJReXhMUVVGTExGZEJRVmM3WjBKQlEzaERMRWRCUVVjc1EwRkJReXhEUVVGWkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCV1N4RFFVRkRMRU5CUVVNN1dVRkRkRU1zVDBGQlR5eEhRVUZITEVOQlFVTTdVVUZEWWl4RFFVRkRMRVZCUTBRc1JVRkJNRUlzUTBGRE0wSXNRMEZCUXp0SlFVTktMRU5CUVVNN1NVRkZSRHM3T3pzN096czdPMDlCVTBjN1NVRkRUU3hMUVVGTExFTkJRVU1zVFVGQlRTeERRVU51UWl4TFFVRnhRaXhGUVVOeVFpeEZRVUZyUWl4RlFVTnNRaXhMUVVFd1FpeEZRVU14UWl4SFFVRkhMRWxCUVd0RU8xRkJSWEpFTEUxQlFVMHNSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRVZCUVVVc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETzFGQlEzQkVMRWxCUVVrc1EwRkJReXd3UWtGQk1FSXNRMEZCUXl4TFFVRkxMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRE5VTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXdyUWtGQkswSXNTVUZCU1N4RlFVRkZMRU5CUVVNc1EwRkJRenRSUVVOb1JDeE5RVUZOTEZOQlFWTXNSMEZCUnl4TFFVRkxMRU5CUVVNc1UwRkJVeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzFGQlEzcERMRTFCUVUwc1YwRkJWeXhIUVVGSExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zVTBGQlV5eEZRVUZGTEVOQlFVTXNUVUZCVFN4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU42UlN4TlFVRk5MR2RDUVVGblFpeEhRVUZITEVkQlFVY3NRMEZCUXl4alFVRmpMRU5CUVVNc2EwSkJRV3RDTEVOQlJXcEVMRU5CUVVNN1VVRkRaQ3hOUVVGTkxHVkJRV1VzUjBGQlJ5eEhRVUZITEVOQlFVTXNhVUpCUVdsQ0xFbEJRVWtzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJRenRSUVVWdVJTeEpRVUZKTEVOQlFVTXNaMEpCUVdkQ0xFVkJRVVVzUTBGQlF6dFpRVU4wUWl4SlFVRkpMRkZCUVdFc1EwRkJRenRaUVVOc1FpeEpRVUZKTEVOQlFVTTdaMEpCUTBnc1VVRkJVU3hIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4WFFVRlhMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU03V1VGRGNFUXNRMEZCUXp0WlFVRkRMRTlCUVU4c1EwRkJWU3hGUVVGRkxFTkJRVU03WjBKQlEzQkNMSGREUVVGM1F6dG5Ra0ZEZUVNc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCVlN4RFFVRkRMRU5CUVVNN1owSkJRMmhETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1dVRkJXU3hoUVVGaExFTkJRVU03YjBKQlFVVXNUVUZCVFN4RFFVRkRMRU5CUVVNN1dVRkROME1zUTBGQlF6dFpRVU5FTEVsQlFVa3NVVUZCVVR0blFrRkRWaXhOUVVGTkxFbEJRVWtzWVVGQllTeERRVU55UWl4clFrRkJhMElzUlVGQlJTeGhRVUZoTEZOQlFWTXNhVUpCUVdsQ0xFTkJRelZFTEVOQlFVTTdVVUZEVGl4RFFVRkRPMUZCUlVRc1NVRkJTU3hEUVVGRE8xbEJRMGdzUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4dFFrRkJiVUlzVTBGQlV5eHJRa0ZCYTBJc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF6dFpRVVUzUkN4SlFVRkpMR2RDUVVGblFpeEZRVUZGTEVOQlFVTTdaMEpCUTNKQ0xFdEJRVXNzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNRMEZCUXl4UlFVRlJMRU5CUTNSRUxGZEJRVmNzUlVGRFdDeExRVUZMTEVWQlEwd3NSMEZCUnl4RFFVTktMRU5CUVVNN1dVRkRTaXhEUVVGRE8ybENRVUZOTEVOQlFVTTdaMEpCUTA0c1RVRkJUU3hSUVVGUkxFZEJRVWNzU1VGQlNTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzJkQ1FVTTVReXcyUTBGQk5rTTdaMEpCUXpkRExFbEJRVWtzUTBGQlF5eGxRVUZsTEVWQlFVVXNRMEZCUXp0dlFrRkRja0lzU1VGRFJTeE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZPM2RDUVVNNVFpeEpRVUZKTEVOQlFVTXNTMEZCU3l4WFFVRlhMRU5CUVVNc1MwRkJTenMwUWtGQlJTeFBRVUZQTEV0QlFVc3NRMEZCUXp0M1FrRkRNVU1zVDBGQlR5eERRVUZETEVOQlEwNHNVVUZCVVRzMFFrRkRVaXhEUVVGRExFbEJRVWtzVVVGQlVUczBRa0ZEWWl4UlFVRlJMRU5CUVVNc1EwRkJXU3hEUVVGRExFdEJRVXNzUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVTndReXhEUVVGRE8yOUNRVU5LTEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwN2QwSkJSVlFzUzBGQlN5eEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhYUVVGWExFVkJRVVVzUzBGQlN5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVRkRPMmRDUVVONlJDeERRVUZETzJkQ1FVVkVMREpDUVVFeVFqdG5Ra0ZETTBJc1RVRkJUU3hKUVVGSkxFZEJRVWNzUjBGQlJ5eERRVUZETEdWQlFXVXNRMEZCUXl4blFrRkJaMElzUTBGQlF5eERRVUZETzJkQ1FVTnVSQ3hKUVVGSkxFbEJRVWtzUlVGQlJTeERRVUZETzI5Q1FVTlVMRXRCUVVzc1RVRkJUU3hWUVVGVkxFbEJRVWtzU1VGQlNTeEZRVUZGTEVOQlFVTTdkMEpCUXpsQ0xFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlExZ3NTMEZCU3l4RlFVTk1MRTFCUVUwc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXl4UlFVRlJMRU5CUTNoRExGZEJRVmNzUlVGRFdDeEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNc1JVRkJVeXhEUVVGRExFVkJRek5DTEVkQlFVY3NRMEZEU2l4RFFVTkdMRU5CUVVNN2IwSkJRMG9zUTBGQlF6dG5Ra0ZEU0N4RFFVRkRPMWxCUTBnc1EwRkJRenRSUVVOSUxFTkJRVU03VVVGQlF5eFBRVUZQTEVOQlFWVXNSVUZCUlN4RFFVRkRPMWxCUTNCQ0xFMUJRVTBzU1VGQlNTeERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRlZMRU5CUVVNc1EwRkJRenRSUVVOd1F5eERRVUZETzFGQlJVUXNUMEZCVHl4TFFVRkxMRU5CUVVNN1NVRkRaaXhEUVVGRE8wbEJSVkVzUzBGQlN5eERRVUZETEZOQlFWTXNRMEZEZEVJc1UwRkJlVUlzUlVGRGVrSXNSVUZCYjBJc1JVRkRjRUlzUzBGQk5FSXNSVUZETlVJc1IwRkJSeXhKUVVFeVF6dFJRVVU1UXl4SlFVRkpMRVZCUVVVc1EwRkJReXhOUVVGTkxFdEJRVXNzUzBGQlN5eERRVUZETEUxQlFVMDdXVUZETlVJc1RVRkJUU3hKUVVGSkxHRkJRV0VzUTBGQlF5d3dRMEZCTUVNc1EwRkJReXhEUVVGRE8xRkJRM1JGTEUxQlFVMHNSVUZCUlN4SFFVRkhMRVZCUVVVc1QwRkJUeXhGUVVGRkxFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRVZCUVVVc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETzFGQlF6TkVMRTFCUVUwc1ZVRkJWU3hIUVVGSExFdEJRVXNzUTBGQlF5eFRRVUZUTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNN1VVRkRPVU1zUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4WlFVRlpMRVZCUVVVc1EwRkJReXhOUVVGTkxGbEJRVmtzVlVGQlZTeFJRVUZSTEVOQlFVTXNRMEZCUXp0UlFVTXZSQ3hQUVVGUExFOUJRVThzUTBGQlF5eEhRVUZITEVOQlEyaENMRVZCUVVVc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNTMEZCU3l4RlFVRkZMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEZOQlFWTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1MwRkJTeXhEUVVGRExFdEJRVXNzUTBGQlF5eEZRVUZGTEVkQlFVY3NUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkRNVVVzUTBGQlF6dEpRVU5LTEVOQlFVTTdTVUZGUkRzN096czdPenRQUVU5SE8wbEJRMDBzUzBGQlN5eERRVUZETEVsQlFVa3NRMEZEYWtJc1MwRkJjVUlzUlVGRGNrSXNSVUZCYTBJc1JVRkRiRUlzUjBGQlJ5eEpRVUZyUkR0UlFVVnlSQ3hOUVVGTkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeEZRVUZGTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRSUVVOc1JDeEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRFpDUVVFMlFpeEpRVUZKTEVWQlFVVXNRMEZCUXl4RFFVRkRPMUZCUXpsRExFMUJRVTBzVTBGQlV5eEhRVUZITEV0QlFVc3NRMEZCUXl4VFFVRlRMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRmVrTXNUVUZCVFN4WFFVRlhMRWRCUVVjc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhUUVVGVExFVkJRVVVzUTBGQlF5eE5RVUZOTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRM3BGTEUxQlFVMHNaMEpCUVdkQ0xFZEJRVWNzUjBGQlJ5eERRVUZETEdOQlFXTXNRMEZCUXl4clFrRkJhMElzUTBGRmFrUXNRMEZCUXp0UlFVTmtMRTFCUVUwc1VVRkJVU3hIUVVGSExFZEJRVWNzUTBGQlF5eGpRVUZqTEVOQlFVTXNVVUZCVVN4RFFVRjNRaXhEUVVGRE8xRkJRM0pGTEVsQlFVa3NVVUZCVVN4SlFVRkpMR2RDUVVGblFpeEZRVUZGTEVOQlFVTTdXVUZEYWtNc1NVRkJTU3hEUVVGRE8yZENRVU5JTEU5QlFVOHNUVUZCVFN4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMRU5CUVVNc1UwRkJVeXhEUVVOMFJDeFhRVUZYTEVWQlExZ3NSMEZCUnl4RFFVTktMRU5CUVVNN1dVRkRTaXhEUVVGRE8xbEJRVU1zVDBGQlR5eERRVUZWTEVWQlFVVXNRMEZCUXp0blFrRkRjRUlzVFVGQlRTeEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVZVc1EwRkJReXhEUVVGRE8xbEJRM0JETEVOQlFVTTdiMEpCUVZNc1EwRkJRenRuUWtGRFZDeEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRkZCUVdVc1JVRkJSU3hUUVVGVExFTkJRVU1zUTBGQlF6dG5Ra0ZEY0VNc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eHJRa0ZCZVVJc1JVRkJSU3hUUVVGVExFTkJRVU1zUTBGQlF6dFpRVU5vUkN4RFFVRkRPMUZCUTBnc1EwRkJRenRSUVVWRUxFbEJRVWtzUzBGQk1FSXNRMEZCUXp0UlFVVXZRaXhKUVVGSkxFTkJRVU03V1VGRFNDeExRVUZMTEVkQlFVY3NSMEZCUnl4RFFVRkRMR2xDUVVGcFFqdG5Ra0ZETTBJc1EwRkJReXhEUVVGRExFVkJRVVU3WjBKQlEwb3NRMEZCUXl4RFFVRkRMRTFCUVUwc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eFhRVUZYTEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkROME1zUTBGQlF6dFJRVUZETEU5QlFVOHNRMEZCVlN4RlFVRkZMRU5CUVVNN1dVRkRjRUlzVFVGQlRTeEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVZVc1EwRkJReXhEUVVGRE8xRkJRM0JETEVOQlFVTTdVVUZGUkN4TlFVRk5MR1ZCUVdVc1IwRkJSeXhKUVVGSkxFZEJRVWNzUTBGQlV6dFpRVU4wUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExHdENRVUZyUWl4RlFVRkZMRWxCUVVrc1JVRkJSU3hEUVVGRE8xbEJRMjVETEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc2MwSkJRWE5DTEVWQlFVVXNTVUZCU1N4RlFVRkZMRU5CUVVNN1UwRkRlRU1zUTBGQlF5eERRVUZETzFGQlEwZ3NTMEZCU3l4TlFVRk5MRWRCUVVjc1NVRkJTU3hsUVVGbExFVkJRVVVzUTBGQlF6dFpRVU5zUXl4SlFVRkpMRU5CUVVNN1owSkJRMGdzVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRVZCUVVVc1RVRkJUU3hKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRk5CUVZNc1EwRkJReXhYUVVGWExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTXZSU3hEUVVGRE8xbEJRVU1zVDBGQlR5eERRVUZWTEVWQlFVVXNRMEZCUXp0blFrRkRjRUlzVFVGQlRTeE5RVUZOTEVkQlFVY3NTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGVkxFTkJRVU1zUTBGQlF6dG5Ra0ZETTBNc1NVRkJTU3hOUVVGTkxGbEJRVmtzWVVGQllUdHZRa0ZCUlN4VFFVRlRPMmRDUVVNNVF5eE5RVUZOTEUxQlFVMHNRMEZCUXp0WlFVTm1MRU5CUVVNN1VVRkRTQ3hEUVVGRE8xRkJRMFFzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTTdXVUZETDBJc1RVRkJUU3hKUVVGSkxHRkJRV0VzUTBGRGNrSXNhMEpCUVd0Q0xFVkJRVVVzWVVGQllTeFRRVUZUTEdsQ1FVRnBRaXhEUVVNMVJDeERRVUZETzFGQlEwb3NRMEZCUXp0UlFVTkVMRTlCUVU4c1MwRkJTeXhEUVVGRE8wbEJRMllzUTBGQlF6dEpRVVZFT3pzN096czdPMDlCVDBjN1NVRkRUU3hMUVVGTExFTkJRVU1zVDBGQlR5eERRVU53UWl4TFFVRnhRaXhGUVVOeVFpeEZRVUZ2UWl4RlFVTndRaXhIUVVGSExFbEJRV3RFTzFGQlJYSkVMRTFCUVUwc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMUZCUTNKRUxFMUJRVTBzVTBGQlV5eEhRVUZITEV0QlFVc3NRMEZCUXl4VFFVRlRMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRGVrTXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXhYUVVGWExFVkJRVVVzUTBGQlF5eE5RVUZOTEZsQlFWa3NVMEZCVXl4UlFVRlJMRU5CUVVNc1EwRkJRenRSUVVNM1JDeE5RVUZOTEc5Q1FVRnZRaXhIUVVGSExFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNORUpCUVRSQ0xFTkJRVU1zU1VGQlNTeEpRVUZKTEVOQlFVTTdVVUZETTBVc1RVRkJUU3hsUVVGbExFZEJRVWNzUTBGQlF5eHZRa0ZCYjBJc1EwRkJRenRSUVVVNVF5eE5RVUZOTEdkQ1FVRm5RaXhIUVVGSExFZEJRVWNzUTBGQlF5eGpRVUZqTEVOQlFVTXNhMEpCUVd0Q0xFTkJSV3BFTEVOQlFVTTdVVUZEWkN4TlFVRk5MRkZCUVZFc1IwRkJSeXhIUVVGSExFTkJRVU1zWTBGQll5eERRVUZETEZGQlFWRXNRMEZCZDBJc1EwRkJRenRSUVVWeVJTeE5RVUZOTEZWQlFWVXNSMEZCUnl4TFFVRkxMRVZCUTNSQ0xFdEJRWEZDTEVWQlEzSkNMRVZCUVd0Q0xFVkJRMnhDTEVkQlFVY3NTVUZCYTBRc1JVRkRja1FzUlVGQlJUdFpRVU5HTEVsQlFVa3NRMEZCUXl4blFrRkJaMEk3WjBKQlEyNUNMRTFCUVUwc1NVRkJTU3hsUVVGbExFTkJRVU1zTWtOQlFUSkRMRU5CUVVNc1EwRkJRenRaUVVONlJTeEpRVUZKTEVOQlFVTTdaMEpCUTBnc1RVRkJUU3hGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeFZRVUZWTEVOQlFVTXNRMEZCUXp0blFrRkRia1FzUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl3MlFrRkJOa0lzU1VGQlNTeEZRVUZGTEVOQlFVTXNRMEZCUXp0blFrRkRPVU1zVFVGQlRTeFRRVUZUTEVkQlFVY3NTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dG5Ra0ZGZWtNc1RVRkJUU3hYUVVGWExFZEJRVWNzUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4clFrRkJhMElzUTBGQlF5eFRRVUZUTEVWQlFVVTdiMEpCUTNwRUxFMUJRVTBzUTBGQlF5eEZRVUZGTEVOQlFVTTdhVUpCUTFnc1EwRkJReXhEUVVGRE8yZENRVVZJTEU5QlFVOHNUVUZCVFN4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMRU5CUVVNc1UwRkJVeXhEUVVOMFJDeFhRVUZYTEVWQlExZ3NSMEZCUnl4RFFVTktMRU5CUVVNN1dVRkRTaXhEUVVGRE8xbEJRVU1zVDBGQlR5eERRVUZWTEVWQlFVVXNRMEZCUXp0blFrRkRjRUlzVFVGQlRTeEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVZVc1EwRkJReXhEUVVGRE8xbEJRM0JETEVOQlFVTTdVVUZEU0N4RFFVRkRMRU5CUVVNN1VVRkZSaXhKUVVGSkxFTkJRVU03V1VGRFNDeE5RVUZOTEV0QlFVc3NSMEZCUnl4RlFVRkZMRU5CUVVNc1IwRkJSeXhEUVVOc1FpeERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1IwRkJSeXhGUVVGRkxFTkJRMVlzVVVGQlVTeEpRVUZKTEdkQ1FVRm5RanRuUWtGRE1VSXNRMEZCUXl4RFFVRkRMRlZCUVZVc1EwRkRVaXhMUVVGTExFVkJRMHdzUTBGQlF5eEZRVU5FTEVkQlFVY3NTVUZCU1N4RlFVTlFMRWRCUVVjc1EwRkJReXhSUVVGUkxFTkJRVU1zUlVGQlJTeFpRVUZaTEVWQlFVVXNTVUZCU1N4RlFVRkZMRU5CUVVNc1EwRkRja003WjBKQlEwZ3NRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eEZRVUZGTEVOQlFVTXNSVUZCUlN4SFFVRkhMRWxCUVVrc1JVRkJSU3hIUVVGSExFTkJRVU1zVVVGQlVTeERRVUZETEVWQlFVVXNXVUZCV1N4RlFVRkZMRWxCUVVrc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGRGVrVXNRMEZCUXp0WlFVVkdMRTFCUVUwc1UwRkJVeXhIUVVGSExHVkJRV1U3WjBKQlF5OUNMRU5CUVVNc1EwRkJReXhOUVVGTkxHVkJRV1VzUTBGQlF5eExRVUZMTEVWQlFVVXNTVUZCU1N4RFFVRkRPMmRDUVVOd1F5eERRVUZETEVOQlFVTXNUVUZCVFN4bFFVRmxMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03V1VGRGFrTXNUMEZCVHl4NVFrRkJlVUlzUTBGRE9VSXNVMEZCVXl4RlFVTlVMR1ZCUVdVc1JVRkRaaXhIUVVGSExFVkJRMGdzY1VKQlFYRkNMRU5CUVVNc1VVRkJVU3hEUVVNdlFpeERRVUZETzFGQlEwb3NRMEZCUXp0UlFVRkRMRTlCUVU4c1EwRkJReXhGUVVGRkxFTkJRVU03V1VGRFdDeE5RVUZOTEVsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJWU3hEUVVGRExFTkJRVU03VVVGRGNFTXNRMEZCUXp0blFrRkJVeXhEUVVGRE8xbEJRMVFzUjBGQlJ5eERRVUZETEVkQlFVY3NRMEZCUXl4UlFVRmxMRVZCUVVVc1UwRkJVeXhEUVVGRExFTkJRVU03V1VGRGNFTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1EwRkJReXhyUWtGQmVVSXNSVUZCUlN4VFFVRlRMRU5CUVVNc1EwRkJRenRSUVVOb1JDeERRVUZETzBsQlEwZ3NRMEZCUXp0SlFVVkVPenM3T3pzN096czdUMEZUUnp0SlFVTk5MRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRMjVDTEV0QlFYRkNMRVZCUTNKQ0xFVkJRV3RDTEVWQlEyeENMRXRCUVRCQ0xFVkJRekZDTEVkQlFVY3NTVUZCYTBRN1VVRkZja1FzVFVGQlRTeEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NSVUZCUlN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03VVVGRmNFUXNTVUZCU1N4RFFVRkRMREJDUVVFd1FpeERRVUZETEV0QlFVc3NSVUZCUlN4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVNMVF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMQ3RDUVVFclFpeEpRVUZKTEVWQlFVVXNRMEZCUXl4RFFVRkRPMUZCUTJoRUxFMUJRVTBzVTBGQlV5eEhRVUZITEV0QlFVc3NRMEZCUXl4VFFVRlRMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRGVrTXNUVUZCVFN4WFFVRlhMRWRCUVVjc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhUUVVGVExFVkJRVVVzUTBGQlF5eE5RVUZOTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRM3BGTEUxQlFVMHNaMEpCUVdkQ0xFZEJRVWNzUjBGQlJ5eERRVUZETEdOQlFXTXNRMEZCUXl4clFrRkJhMElzUTBGRmFrUXNRMEZCUXp0UlFVVmtMRWxCUVVrc1EwRkJRenRaUVVOSUxFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNjVUpCUVhGQ0xGTkJRVk1zYTBKQlFXdENMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU03V1VGRkwwUXNTVUZCU1N4blFrRkJaMElzUlVGQlJTeERRVUZETzJkQ1FVTnlRaXhMUVVGTExFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRMR2RDUVVGblFpeERRVUZETEVOQlFVTXNVVUZCVVN4RFFVTjBSQ3hYUVVGWExFVkJRMWdzUzBGQlN5eEZRVU5NTEVkQlFVY3NRMEZEU2l4RFFVRkRPMWxCUTBvc1EwRkJRenRwUWtGQlRTeERRVUZETzJkQ1FVTk9MRTFCUVUwc1VVRkJVU3hIUVVGSExFbEJRVWtzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dG5Ra0ZET1VNc2NVSkJRWEZDTzJkQ1FVTnlRaXhKUVVORkxFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVWQlFVVTdiMEpCUXpsQ0xFbEJRVWtzUTBGQlF5eExRVUZMTEZkQlFWY3NRMEZCUXl4TFFVRkxPM2RDUVVGRkxFOUJRVThzUzBGQlN5eERRVUZETzI5Q1FVTXhReXhQUVVGUExFTkJRVU1zUTBGRFRpeFJRVUZSTzNkQ1FVTlNMRU5CUVVNc1NVRkJTU3hSUVVGUk8zZENRVU5pTEZGQlFWRXNRMEZCUXl4RFFVRlpMRU5CUVVNc1MwRkJTeXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlEzQkRMRU5CUVVNN1owSkJRMG9zUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFR0dlFrRkZWQ3hMUVVGTExFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRmRCUVZjc1JVRkJSU3hMUVVGTExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdaMEpCUlhaRUxESkNRVUV5UWp0blFrRkRNMElzVFVGQlRTeEpRVUZKTEVkQlFVY3NSMEZCUnl4RFFVRkRMR1ZCUVdVc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4RFFVRkRPMmRDUVVOdVJDeEpRVUZKTEVsQlFVa3NSVUZCUlN4RFFVRkRPMjlDUVVOVUxFdEJRVXNzVFVGQlRTeFZRVUZWTEVsQlFVa3NTVUZCU1N4RlFVRkZMRU5CUVVNN2QwSkJRemxDTEUxQlFVMHNRMEZCUXl4TlFVRk5MRU5CUTFnc1MwRkJTeXhGUVVOTUxFMUJRVTBzU1VGQlNTeERRVUZETEZWQlFWVXNRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRM2hETEZkQlFWY3NSVUZEV0N4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU1zUlVGQlV5eERRVUZETEVWQlF6TkNMRWRCUVVjc1EwRkRTaXhEUVVOR0xFTkJRVU03YjBKQlEwb3NRMEZCUXp0blFrRkRTQ3hEUVVGRE8xbEJRMGdzUTBGQlF6dFJRVU5JTEVOQlFVTTdVVUZCUXl4UFFVRlBMRU5CUVZVc1JVRkJSU3hEUVVGRE8xbEJRM0JDTEUxQlFVMHNTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGVkxFTkJRVU1zUTBGQlF6dFJRVU53UXl4RFFVRkRPMUZCUlVRc1QwRkJUeXhMUVVGTExFTkJRVU03U1VGRFppeERRVUZETzBsQlJVUTdPenM3T3pzN1QwRlBSenRKUVVOSUxFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlExWXNTMEZCY1VJc1JVRkRja0lzUlVGQmEwSXNSVUZEYkVJc1IwRkJSeXhKUVVGclJEdFJRVVZ5UkN4TlFVRk5MRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hGUVVGRkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0UlFVVndSQ3hKUVVGSkxFTkJRVU1zTUVKQlFUQkNMRU5CUVVNc1MwRkJTeXhGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETzFGQlF6VkRMRTFCUVUwc1UwRkJVeXhIUVVGSExFdEJRVXNzUTBGQlF5eFRRVUZUTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1VVRkZla01zVFVGQlRTeFhRVUZYTEVkQlFVY3NSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4VFFVRlRMRVZCUVVVc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTNwRkxFMUJRVTBzWjBKQlFXZENMRWRCUVVjc1IwRkJSeXhEUVVGRExHTkJRV01zUTBGQlF5eHJRa0ZCYTBJc1EwRkZha1FzUTBGQlF6dFJRVU5rTEVsQlFVa3NTMEZCTUVJc1EwRkJRenRSUVVVdlFpeEpRVUZKTEdkQ1FVRm5RaXhGUVVGRkxFTkJRVU03V1VGRGNrSXNTVUZCU1N4RFFVRkRPMmRDUVVOSUxFdEJRVXNzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNRMEZCUXl4VFFVRlRMRU5CUTNaRUxGZEJRVmNzUlVGRFdDeEhRVUZITEVOQlEwb3NRMEZCUXp0blFrRkRSaXhOUVVGTkxFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zUTBGQlF5eFhRVUZYTEVOQlFVTXNWMEZCVnl4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRE8xbEJRM2hGTEVOQlFVTTdXVUZCUXl4UFFVRlBMRU5CUVZVc1JVRkJSU3hEUVVGRE8yZENRVU53UWl4TlFVRk5MRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlZTeERRVUZETEVOQlFVTTdXVUZEY0VNc1EwRkJRenRSUVVOSUxFTkJRVU03WVVGQlRTeERRVUZETzFsQlEwNHNTVUZCU1N4RFFVRkRPMmRDUVVOSUxFdEJRVXNzUjBGQlJ5eEhRVUZITEVOQlFVTXNhVUpCUVdsQ08yOUNRVU16UWl4RFFVRkRMRU5CUVVNc1JVRkJSVHR2UWtGRFNpeERRVUZETEVOQlFVTXNUVUZCVFN4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExGZEJRVmNzUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXp0blFrRkRNME1zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4cFFrRkJhVUlzUlVGQlJTeERRVUZETzI5Q1FVTXpRaXhIUVVGSExFTkJRVU1zUzBGQlN5eERRVUZETEd0Q1FVRnJRaXhYUVVGWExIRkNRVUZ4UWl4RFFVRkRMRU5CUVVNN2IwSkJRemxFTEUxQlFVMHNTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJReXhYUVVGWExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdaMEpCUXpORExFTkJRVU03V1VGRFNDeERRVUZETzFsQlFVTXNUMEZCVHl4RFFVRlZMRVZCUVVVc1EwRkJRenRuUWtGRGNFSXNUVUZCVFN4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVlVzUTBGQlF5eERRVUZETzFsQlEzQkRMRU5CUVVNN1dVRkZSQ3hOUVVGTkxGZEJRVmNzUjBGQlJ5eEhRVUZITEVOQlFVTXNhMEpCUVd0Q0xFVkJRVVVzUTBGQlF6dFpRVU0zUXl4SlFVRkpMRmRCUVZjc1NVRkJTU3hYUVVGWExFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTTdaMEpCUTNSRExFdEJRVXNzVFVGQlRTeEhRVUZITEVsQlFVa3NWMEZCVnl4RlFVRkZMRU5CUVVNN2IwSkJRemxDTEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUTFBc2RVSkJRWFZDTEVkQlFVY3NjVUpCUVhGQ0xGZEJRVmNzYTBKQlFXdENMRU5CUXpkRkxFTkJRVU03YjBKQlEwWXNUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkRXQ3hMUVVGTExFVkJRMHdzVFVGQlRTeEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExGTkJRVk1zUTBGQlF5eFhRVUZYTEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUTNaRUxFTkJRVU03YjBKQlEwWXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkRVQ3dyUWtGQkswSXNSMEZCUnl4cFFrRkJhVUlzVjBGQlZ5eEZRVUZGTEVOQlEycEZMRU5CUVVNN2IwSkJRMFlzVFVGQlRTeEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExGZEJRVmNzUTBGQlF5eFhRVUZYTEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1owSkJRek5FTEVOQlFVTTdXVUZEU0N4RFFVRkRPMUZCUTBnc1EwRkJRenRSUVVORUxFOUJRVThzUzBGQlN5eERRVUZETzBsQlEyWXNRMEZCUXp0SlFVVlRMRXRCUVVzc1EwRkJReXhYUVVGWExFTkJRVU1zUlVGQlZTeEZRVUZGTEU5QlFUaENPMUZCUTNCRkxFMUJRVTBzVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU03U1VGRGNrTXNRMEZCUXp0SlFVVkVMRlZCUVZVc1EwRkJReXhWUVVGclFqdFJRVU16UWl4TlFVRk5MRlZCUVZVc1IwRkJSenRaUVVOcVFpeEpRVUZKTEVOQlFVTXNVVUZCVVR0WlFVTmlMRWxCUVVrc1EwRkJReXhUUVVGVE8xbEJRMlFzU1VGQlNTeERRVUZETEZkQlFWYzdXVUZEYUVJc1NVRkJTU3hEUVVGRExGZEJRVmM3V1VGRGFFSXNTVUZCU1N4RFFVRkRMRzlDUVVGdlFqdFRRVU14UWl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFVkJRVVVzUlVGQlJTeEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8xRkJRM1pDTEU5QlFVOHNTVUZCU1N4TFFVRkxMRU5CUVVNc1NVRkJTU3hGUVVGRk8xbEJRM0pDTEVkQlFVY3NRMEZCUXl4TlFVRk5MRVZCUVVVc1NVRkJTU3hGUVVGRkxGRkJRVkU3WjBKQlEzaENMRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU1zVVVGQlVTeERRVUZETEVsQlFXTXNRMEZCUXp0dlFrRkRkRU1zVDBGQlR5eFBRVUZQTEVOQlFVTXNSMEZCUnl4RFFVRkRMRTFCUVUwc1JVRkJSU3hKUVVGSkxFVkJRVVVzVVVGQlVTeERRVUZETEVOQlFVTTdaMEpCUXpkRExFOUJRVThzU1VGQlNTeExRVUZMTEVOQlFVVXNUVUZCWXl4RFFVRkRMRWxCUVVrc1EwRkJReXhGUVVGRk8yOUNRVU4wUXl4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExFVkJRVVVzUlVGQlJTeFBRVUZQTEVWQlFVVXNVVUZCVVR0M1FrRkRMMElzVVVGQlVTeEpRVUZKTEVWQlFVVXNRMEZCUXpzMFFrRkRZaXhMUVVGTExGVkJRVlVzUTBGQlF5eERRVUZETEVOQlFVTTdaME5CUTJoQ0xESkdRVUV5Ump0blEwRkRNMFlzVFVGQlRTeERRVUZETEVWQlFVVXNSVUZCUlN4TFFVRkxMRVZCUVVVc1IwRkJSeXhEUVVGRExFZEJRVWNzVVVGQlVTeERRVUZETzJkRFFVTnNReXhOUVVGTkxFZEJRVWNzUjBGQlJ5eEhRVUZITEVOQlFVTXNUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dG5RMEZEYWtNc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGRFVDeHZRa0ZCYjBJc1ZVRkJWU3hSUVVGUkxFVkJRVVVzUTBGQlF5eFJRVUZSTEVWQlFVVXNSVUZCUlN4RFFVTjBSQ3hEUVVGRE8yZERRVU5HTEUxQlFVMHNTVUZCU1N4SFFVRkhMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRM1JDTEhGQ1FVRnhRaXhEUVVGRExGVkJRVlVzUTBGQlF5eFRRVUZUTEVOQlEzaERMRXRCUVdNc1JVRkRaQ3hMUVVGTExFTkJRMDRzUTBGRFJpeERRVUZETzJkRFFVTkdMRTFCUVUwc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTXNWVUZCVlN4RlFVRkZMRVZCUVVVc1EwRkJReXhSUVVGUkxFVkJRVVVzUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXp0blEwRkRMMFFzVDBGQlR5eExRVUZMTEVOQlFVTTdORUpCUTJZc1EwRkJRenMwUWtGRFJDeExRVUZMTEdGQlFXRXNRMEZCUXl4RFFVRkRMRU5CUVVNN1owTkJRMjVDTEhORlFVRnpSVHRuUTBGRGRFVXNUVUZCVFN4RFFVRkRMRVZCUVVVc1JVRkJSU3hIUVVGSExFTkJRVU1zUjBGQlJ5eFJRVUZSTEVOQlFVTTdaME5CUXpOQ0xFMUJRVTBzUjBGQlJ5eEhRVUZITEVkQlFVY3NRMEZCUXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzJkRFFVTnFReXhIUVVGSExFTkJRVU1zUzBGQlN5eERRVU5RTEhGQ1FVRnhRaXhWUVVGVkxGRkJRVkVzUlVGQlJTeERRVUZETEZGQlFWRXNSVUZCUlN4RlFVRkZMRU5CUTNaRUxFTkJRVU03WjBOQlEwWXNUVUZCVFN4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExHbENRVUZwUWl4RFFVRkRMRlZCUVZVc1JVRkJSU3hGUVVGRkxFTkJRVU1zVVVGQlVTeEZRVUZGTEVOQlFVTXNRMEZCUXp0blEwRkROVVFzVDBGQlR6czBRa0ZEVkN4RFFVRkRPelJDUVVORUxFdEJRVXNzVjBGQlZ5eERRVUZETEVOQlFVTXNRMEZCUXp0blEwRkRha0lzWjBWQlFXZEZPMmREUVVOb1JTeE5RVUZOTEVOQlFVTXNSVUZCUlN4RlFVRkZMRWRCUVVjc1EwRkJReXhIUVVGSExGRkJRVkVzUTBGQlF6dG5RMEZETTBJc1RVRkJUU3hIUVVGSExFZEJRVWNzUjBGQlJ5eERRVUZETEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03WjBOQlEycERMRWRCUVVjc1EwRkJReXhMUVVGTExFTkJRMUFzY1VKQlFYRkNMRlZCUVZVc1VVRkJVU3hGUVVGRkxFTkJRVU1zVVVGQlVTeEZRVUZGTEVWQlFVVXNRMEZEZGtRc1EwRkJRenRuUTBGRFJpeE5RVUZOTEVsQlFVa3NSMEZCUnl4TlFVRk5MRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zWTBGQll5eERRVUZETEZWQlFWVXNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJRenRuUTBGRE0wUXNTVUZCU1N4RFFVRkRMRWxCUVVrc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eFJRVUZSTEVWQlFVVXNRMEZCUXl4TlFVRk5PMjlEUVVOc1F5eE5RVUZOTEVsQlFVa3NZVUZCWVN4RFFVRkRMR3RDUVVGclFpeEZRVUZGTEZsQlFWa3NRMEZCUXl4RFFVRkRPMmREUVVNMVJDeEpRVUZKTEVOQlFVTTdiME5CUTBnc1QwRkJUeXh4UWtGQmNVSXNRMEZCUXl4VlFVRlZMRU5CUVVNc1YwRkJWeXhEUVVOcVJDeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVOMFFpeERRVUZETzJkRFFVTktMRU5CUVVNN1owTkJRVU1zVFVGQlRTeERRVUZETzI5RFFVTlFMRTlCUVU4c1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0blEwRkRMMElzUTBGQlF6czBRa0ZEU0N4RFFVRkRPelJDUVVORUxFdEJRVXNzWVVGQllTeERRVUZETEVOQlFVTXNRMEZCUXp0blEwRkRia0lzVFVGQlRTeERRVUZETEVsQlFVa3NSVUZCUlN4UlFVRlJMRVZCUVVVc1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eFJRVUZSTEVOQlFVTTdaME5CUXpORExFMUJRVTBzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4UFFVRlBMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU1zU1VGQlNTeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRPMmREUVVNNVF5eEpRVUZKTEVOQlFVTTdiME5CUTBnc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGRFVDeDFRa0ZCZFVJc1ZVRkJWU3hSUVVGUkxFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNVVUZCVVN4RFFVRkRMRVZCUVVVc1EwRkRjRVVzUTBGQlF6dHZRMEZEUml4TlFVRk5MRWRCUVVjc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eDVRa0ZCZVVJc1EwRkRPVU1zVlVGQlZTeEZRVU5XTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRM3BDTEVOQlFVTTdiME5CUTBZc1IwRkJSeXhEUVVGRExFOUJRVThzUTBGRFZDdzBRa0ZCTkVJc1ZVRkJWU3hYUVVGWExFTkJRMnhFTEVOQlFVTTdiME5CUTBZc1QwRkJUeXhIUVVGSExFTkJRVU1zVVVGQlVTeEpRVUZKTEVkQlFVY3NRMEZCUXp0blEwRkROMElzUTBGQlF6dG5RMEZCUXl4UFFVRlBMRU5CUVUwc1JVRkJSU3hEUVVGRE8yOURRVU5vUWl4SFFVRkhMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzI5RFFVTmlMRTlCUVU4c1JVRkJSU3hEUVVGRE8yZERRVU5hTEVOQlFVTTdORUpCUTBnc1EwRkJRenMwUWtGRFJDeExRVUZMTEhOQ1FVRnpRaXhEUVVGRExFTkJRVU1zUTBGQlF6dG5RMEZETlVJc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeFJRVUZSTEVWQlFVVXNTMEZCU3l4RlFVRkZMRWxCUVVrc1JVRkJSU3hSUVVGUkxFVkJRVVVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4UlFVRlJMRU5CUVVNN1owTkJRMnhGTEUxQlFVMHNSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhQUVVGUExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNTVUZCU1N4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE8yZERRVU01UXl4TlFVRk5MRkZCUVZFc1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNSVUZCUlN4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUjBGQlJ5eERRVUZETEVOQlFVTTdaME5CUTI1RUxFMUJRVTBzUzBGQlN5eEhRVUYzUWl4RlFVRkZMRWRCUVVjc1VVRkJVU3hGUVVGRkxFTkJRVU03WjBOQlEyNUVMRTFCUVUwc1UwRkJVeXhIUVVGSExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0blEwRkRMMElzVFVGQlRTeFZRVUZWTEVkQlEyUXNUVUZCVFN4RFFVRkRMRk5CUVZNc1EwRkJReXhUUVVGVExFTkJRVU1zU1VGQlNTeFRRVUZUTEVsQlFVa3NRMEZCUXp0dlEwRkRNME1zUTBGQlF5eERRVUZETEZOQlFWTTdiME5CUTFnc1EwRkJReXhEUVVGRExGTkJRVk1zUTBGQlF6dG5RMEZEYUVJc1RVRkJUU3hsUVVGbExFZEJRMjVDTEhGQ1FVRnhRaXhEUVVGRExEWkNRVUUyUWl4RFFVRkRMRkZCUVZFc1EwRkJRenR2UTBGRE4wUXNWVUZCVlR0dlEwRkRWaXhEUVVGRExFTkJRVU03WjBOQlEwb3NUVUZCVFN4cFFrRkJhVUlzUjBGRGNrSXNVVUZCVVN4TFFVRkxMRk5CUVZNN2IwTkJRM1JDTEZGQlFWRXNTMEZCU3l4SlFVRkpPMjlEUVVOcVFpeFJRVUZSTEV0QlFVc3NSVUZCUlR0dlEwRkRaaXhQUVVGUExGRkJRVkVzUzBGQlN5eFJRVUZSTzI5RFFVTTFRaXhEUVVGRExGRkJRVkVzUTBGQlF5eFZRVUZWTEVOQlFVTXNjVUpCUVhGQ0xFTkJRVU1zZFVKQlFYVkNMRU5CUVVNc1EwRkJRenRuUTBGRGRFVXNiVVpCUVcxR08yZERRVU51Uml4blJrRkJaMFk3WjBOQlEyaEdMRXRCUVVzc1EwRkJReXhMUVVGTExFZEJRVWNzYVVKQlFXbENMRU5CUVVNc1EwRkJReXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNVVUZCVVN4SFFVRkhMRU5CUVVNc1EwRkJRenRuUTBGRE1VUXNTVUZCU1N4cFFrRkJhVUlzUlVGQlJTeERRVUZETzI5RFFVTjBRaXhMUVVGTExFTkJRVU1zVVVGQlVTeEhRVUZITEZGQlFWRXNRMEZCUXl4UlFVRlJMRVZCUVVVc1EwRkJRenR2UTBGRGNrTXNUMEZCVHl4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRE8yZERRVU53UWl4RFFVRkRPM0ZEUVVGTkxFTkJRVU03YjBOQlEwNHNUMEZCVHl4TFFVRkxMRU5CUVVNc1VVRkJVU3hEUVVGRE8yOURRVU4wUWl4SlFVRkpMR1ZCUVdVc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF6dDNRMEZEZUVJc1MwRkJTeXhEUVVGRExFbEJRVWtzUjBGQlJ5eGxRVUZsTEVOQlFVTTdiME5CUXk5Q0xFTkJRVU03ZVVOQlFVMHNRMEZCUXp0M1EwRkRUaXhQUVVGUExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTTdiME5CUTNCQ0xFTkJRVU03WjBOQlEwZ3NRMEZCUXp0blEwRkRSQ3hIUVVGSExFTkJRVU1zUzBGQlN5eERRVU5RTEhWQ1FVRjFRaXhWUVVGVkxGRkJRVkVzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1JVRkJSU3hEUVVOcVJTeERRVUZETzJkRFFVTkdMRTFCUVUwc1VVRkJVU3hIUVVGSExFMUJRMllzU1VGRFJDeERRVUZETEhsQ1FVRjVRaXhEUVVGRExGVkJRVlVzUlVGQlJTeEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU03WjBOQlF5OUVMRTFCUVUwc1VVRkJVU3hIUVVOYUxFTkJRVVVzVVVGQlowSXNRMEZCUXl4UlFVRlJPMjlEUVVONlFpeFJRVUZSTEVOQlFXbERMRU5CUVVNN1owTkJRemxETEUxQlFVMHNaMEpCUVdkQ0xFZEJRMjVDTEZGQlFXZENMRU5CUVVNc1VVRkJVU3hKUVVGTExGRkJRV2RDTEVOQlFVTXNVVUZCVVN4SlFVRkpMRVZCUVVVc1EwRkJRenRuUTBGRGFrVXNUVUZCVFN4blFrRkJaMElzUjBGRGNFSXNUMEZCVHl4blFrRkJaMElzUTBGQlF5eFJRVUZSTEV0QlFVc3NVVUZCVVR0dlEwRkRNME1zUTBGQlF5eERRVUZETEdkQ1FVRm5RaXhEUVVGRExGRkJRVkU3YjBOQlF6TkNMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU03WjBOQlJWUXNSMEZCUnl4RFFVRkRMRTlCUVU4c1EwRkJReXcwUWtGQk5FSXNWVUZCVlN4WFFVRlhMRU5CUVVNc1EwRkJRenRuUTBGREwwUXNUVUZCVFN4TFFVRkxMRWRCUVRCRExFVkJRVVVzUTBGQlF6dG5RMEZEZUVRc1NVRkJTU3hQUVVGUExFZEJRVWNzUzBGQlN5eERRVUZETzJkRFFVVndRaXhKUVVGSkxFTkJRVU03YjBOQlEwZ3NUMEZCVHl4SlFVRkpMRVZCUVVVc1EwRkJRenQzUTBGRFdpeE5RVUZOTEVkQlFVY3NSMEZCUnl4TlFVRk5MRkZCUVZFc1EwRkJReXhKUVVGSkxFVkJRVVVzUTBGQlF6dDNRMEZEYkVNc1NVRkJTU3hIUVVGSExFTkJRVU1zU1VGQlNUczBRMEZCUlN4TlFVRk5PM2REUVVWd1FpeEpRVUZKTEVkQlFVY3NRMEZCUXl4TFFVRkxMRWxCUVVrc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eExRVUZMTEVWQlFVVXNRMEZCUXpzMFEwRkRha01zVFVGQlRTeEhRVUZITEVkQlFVY3NSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXhIUVVGaExFTkJRVU03TkVOQlEzQkRMRWxCUVVrc1MwRkJTeXhEUVVGRExFMUJRVTBzUjBGQlJ5eFJRVUZSTEVWQlFVVXNRMEZCUXp0blJFRkROVUlzUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXp0dlJFRkRWQ3hIUVVGSE8yOUVRVU5JTEV0QlFVc3NSVUZCUlN4TlFVRk5MRU5CUVVNc1VVRkJVU3hEUVVGRExFZEJRVWNzUTBGQlF5eExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkRPM2RFUVVOeVF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXhMUVVGTE8zZEVRVU5xUWl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGRFVpeEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVRkRMRXRCUVdFc1EwRkJReXhSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlF6RkRPMmxFUVVOT0xFTkJRVU1zUTBGQlF6czBRMEZEVEN4RFFVRkRPMmxFUVVGTkxFTkJRVU03WjBSQlEwNHNUMEZCVHl4SFFVRkhMRWxCUVVrc1EwRkJRenRuUkVGRFppeE5RVUZOTEVOQlFVTXNZVUZCWVRzMFEwRkRkRUlzUTBGQlF6dDNRMEZEU0N4RFFVRkRPMjlEUVVOSUxFTkJRVU03WjBOQlEwZ3NRMEZCUXp0M1EwRkJVeXhEUVVGRE8yOURRVU5VTEUxQlFVMHNVVUZCVVN4RFFVRkRMRXRCUVVzc1JVRkJSU3hEUVVGRE8yZERRVU42UWl4RFFVRkRPMmREUVVWRUxEQkVRVUV3UkR0blEwRkRNVVFzU1VGQlNTeEhRVUZITEVkQlFVY3NRMEZCUXl4RFFVRkRPMmREUVVOYUxFMUJRVTBzWVVGQllTeEhRVUZITzI5RFFVTndRaXhMUVVGTExFTkJRVU1zU1VGQlNUdDNRMEZEVWl4SlFVRkpMRWRCUVVjc1IwRkJSeXhMUVVGTExFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTTdORU5CUTNaQ0xFOUJRVThzUlVGQlJTeExRVUZMTEVWQlFVVXNTMEZCU3l4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRExFVkJRVVVzU1VGQlNTeEZRVUZGTEV0QlFVc3NSVUZCUlN4RFFVRkRPM2REUVVNNVF5eERRVUZETzNkRFFVTkVMRTlCUVU4c1JVRkJSU3hMUVVGTExFVkJRVVVzVTBGQlowSXNSVUZCUlN4SlFVRkpMRVZCUVVVc1NVRkJTU3hGUVVGRkxFTkJRVU03YjBOQlEycEVMRU5CUVVNN2IwTkJRMFFzUzBGQlN5eERRVUZETEV0QlFVc3NTMEZCU1N4RFFVRkRPMmxEUVVOcVFpeERRVUZETzJkRFFVVkdMRTlCUVU4N2IwTkJRMHdzVVVGQlVTeEZRVU5PTEdGQlFYZEVPMjlEUVVNeFJDeFJRVUZSTEVWQlFVVTdkME5CUTFJc2JVSkJRVzFDTEVWQlFVVXNTMEZCU3l4RFFVRkRMRTFCUVUwN2QwTkJRMnBETEZGQlFWRXNSVUZEVGl4blFrRkJaMEk3TkVOQlEyaENMRU5CUVVNc1QwRkJUenRuUkVGRFRpeERRVUZETEVOQlFVTXNjVUpCUVhGQ0xFTkJRVU1zTmtKQlFUWkNMRU5CUTJwRUxHVkJRV1VzUjBGQlJ5eExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVTXZRanRuUkVGRFNDeERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRPM0ZEUVVOV08ybERRVU5HTEVOQlFVTTdORUpCUTBvc1EwRkJRenMwUWtGRFJEdG5RMEZEUlN4TlFVRk5MRWxCUVVrc1lVRkJZU3hEUVVOeVFpd3JRa0ZCSzBJc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eEZRVUZGTEVOQlF6bERMRU5CUVVNN2QwSkJRMDRzUTBGQlF6dHZRa0ZEU0N4RFFVRkRPMmxDUVVOR0xFTkJRVU1zUTBGQlF6dFpRVU5NTEVOQlFVTTdVMEZEUml4RFFVRkRMRU5CUVVNN1NVRkRUQ3hEUVVGRE8wbEJSVk1zUzBGQlN5eERRVUZETEZGQlFWRXNRMEZEZEVJc1JVRkJWU3hGUVVOV0xFdEJRVEJDTEVWQlF6RkNMRWRCUVRCQ08xRkJSVEZDTEVsQlFVa3NTVUZCV1N4RFFVRkRPMUZCUldwQ0xFbEJRVWtzUTBGQlF6dFpRVU5JTEVsQlFVa3NSMEZCUnl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVOb1FpeHhRa0ZCY1VJc1EwRkJReXhWUVVGVkxFTkJRVU1zVTBGQlV5eERRVUZETEV0QlFXTXNSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkRiRVVzUTBGQlF6dFJRVU5LTEVOQlFVTTdVVUZCUXl4UFFVRlBMRU5CUVZVc1JVRkJSU3hEUVVGRE8xbEJRM0JDTEUxQlFVMHNTVUZCU1N4clFrRkJhMElzUTBGRE1VSXNjME5CUVhORExFVkJRVVVzUzBGQlN5eERRVUZETEVWQlFVVXNRMEZEYWtRc1EwRkJRenRSUVVOS0xFTkJRVU03VVVGRFJDeE5RVUZOTEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExFVkJRVVVzUTBGQlF5eFJRVUZSTEVWQlFVVXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRSUVVVM1F5eFBRVUZQTEV0QlFVc3NRMEZCUXp0SlFVTm1MRU5CUVVNN1NVRkZVeXhMUVVGTExFTkJRVU1zVTBGQlV5eERRVUZETEVWQlFWVXNSVUZCUlN4SFFVRXdRanRSUVVNNVJDeEpRVUZKTEUxQlFWY3NRMEZCUXp0UlFVVm9RaXhOUVVGTkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJRenRSUVVOdVJDeE5RVUZOTEVkQlFVY3NSMEZCUnl4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNSVUZCUlN4RFFVRkRMRkZCUVZFc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eFJRVUZSTEVWQlFVVXNRMEZCUXp0UlFVTm9SU3hKUVVGSkxFTkJRVU1zUjBGQlJ6dFpRVUZGTEUxQlFVMHNTVUZCU1N4aFFVRmhMRU5CUVVNc2EwSkJRV3RDTEVWQlFVVXNXVUZCV1N4RFFVRkRMRU5CUVVNN1VVRkRjRVVzUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl3MFFrRkJORUlzUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXp0UlFVTTFReXhKUVVGSkxFTkJRVU03V1VGRFNDeE5RVUZOTEVkQlFVY3NjVUpCUVhGQ0xFTkJRVU1zVlVGQlZTeERRVUZETEZkQlFWY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1VVRkJVU3hGUVVGRkxFTkJRVU1zUTBGQlF6dFJRVU40UlN4RFFVRkRPMUZCUVVNc1QwRkJUeXhEUVVGVkxFVkJRVVVzUTBGQlF6dFpRVU53UWl4TlFVRk5MRWxCUVVrc2EwSkJRV3RDTEVOQlFVTXNNa0pCUVRKQ0xFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTTdVVUZETDBRc1EwRkJRenRSUVVWRUxFOUJRVThzVFVGQlRTeERRVUZETzBsQlEyaENMRU5CUVVNN1NVRkZVeXhMUVVGTExFTkJRVU1zVjBGQlZ5eERRVU42UWl4SlFVRnRRaXhGUVVOdVFpeFJRVUZoTzBsQlEySXNOa1JCUVRaRU8wbEJRemRFTEVkQlFVY3NTVUZCTWtNN1VVRkZPVU1zVDBGQlR5eEpRVUZKTEVOQlFVTXNZMEZCWXl4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTjJSQ3hEUVVGRE8wbEJSVk1zUzBGQlN5eERRVUZETEc5Q1FVRnZRaXhEUVVOc1F5eEpRVUZ0UWl4RlFVTnVRaXhSUVVGaExFVkJRMklzVVVGQlowSXNSMEZCUnl4RlFVTnVRaXhKUVVGaExFVkJRMklzVVVGQk1FSTdTVUZETVVJc05rUkJRVFpFTzBsQlF6ZEVMRWRCUVVjc1NVRkJWenRSUVVWa0xFOUJRVThzU1VGQlNTeERRVUZETERSQ1FVRTBRaXhEUVVOMFF5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRkZCUVZFc1EwRkJReXhGUVVONFFpeExRVUZMTEVWQlEwd3NVVUZCVVN4RlFVRkZMRkZCUVZFc1JVRkJSU3hEUVVOeVFpeERRVUZETzBsQlEwb3NRMEZCUXp0SlFVVkVPenM3T3p0UFFVdEhPMGxCUTA4c1RVRkJUU3hEUVVGRExFMUJRV3RDTzFGQlEycERMRTlCUVU4c2NVSkJRWEZDTEVOQlFVTXNWMEZCVnl4RFFVRkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dEpRVU14UkN4RFFVRkRPMGxCUlVRN096czdPenM3T3p0UFFWTkhPMGxCUTJkQ0xFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlF6VkNMRk5CUVRKQ0xFVkJRek5DTEV0QlFXbERMRVZCUTJwRExFdEJRWFZGTzFGQlJYWkZMRWxCUVVrc1UwRkJVeXhIUVVGSE8xbEJRMlFzVlVGQlZTeEZRVUZGTEV0QlFVczdXVUZEYWtJc2IwSkJRVzlDTEVWQlFVVXNTMEZCU3p0WlFVTXpRaXhsUVVGbExFVkJRVVVzUzBGQlN6dFRRVU4yUWl4RFFVRkRPMUZCUTBZc1NVRkJTU3hMUVVGTExGbEJRVmtzY1VKQlFYRkNMRWxCUVVrc1MwRkJTeXhaUVVGWkxFOUJRVThzUlVGQlJTeERRVUZETzFsQlEzWkZMRXRCUVVzc1IwRkJSeXhMUVVGTExFTkJRVU1zVjBGQlZ5eEZRVUZGTEVOQlFVTTdVVUZET1VJc1EwRkJRenRSUVVWRUxGTkJRVk1zUjBGQlJ5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRMRk5CUVZNc1JVRkJSU3hMUVVGTExFTkJRVU1zUTBGQlF6dFJRVU0xUXl4TlFVRk5MR0ZCUVdFc1IwRkRhRUlzUzBGQkswSXNRMEZCUXl4SlFVRkpMRWxCUVVzc1MwRkJZU3hEUVVGRExFbEJRVWtzUTBGQlF6dFJRVU12UkN4TlFVRk5MR2xDUVVGcFFpeEhRVU53UWl4TFFVRXJRaXhEUVVGRExGRkJRVkU3V1VGRGVFTXNTMEZCWVN4RFFVRkRMR05CUVdNc1EwRkJRenRSUVVOb1F5eEpRVUZKTEdGQlFXRXNTVUZCU1N4cFFrRkJhVUlzUlVGQlJTeERRVUZETzFsQlEzWkRMRTFCUVUwc1NVRkJTU3hIUVVGSExHRkJRV0VzUTBGQlF5eFBRVUZQTEVWQlFVVXNRMEZCUXp0WlFVTnlReXhOUVVGTkxFTkJRVU1zVFVGQlRTeERRVUZETEZOQlFWTXNSVUZCUlR0blFrRkRka0lzU1VGQlNTeEZRVUZGTEdGQlFXRTdaMEpCUTI1Q0xGRkJRVkVzUlVGQlJTeHBRa0ZCYVVJN1owSkJRek5DTEVsQlFVa3NSVUZCUlN4cFFrRkJhVUlzUTBGQlF5eFZRVUZWTEVWQlFVVXNRMEZCUXl4UlFVRlJMRVZCUVVVN1owSkJReTlETEV0QlFVc3NSVUZCUlN4cFFrRkJhVUlzUTBGQlF5eHBRa0ZCYVVJc1EwRkJReXhQUVVGUExFTkJRVU03WjBKQlEyNUVMRTFCUVUwc1JVRkJSU3hQUVVGUExFTkJRVU1zUjBGQlJ5eERRVU5xUWl4VFFVRlRMRVZCUTFRN2IwSkJRMFVzVVVGQlVTeEZRVUZGTEV0QlFVczdiMEpCUTJZc1UwRkJVeXhGUVVGRkxFdEJRVXM3YjBKQlEyaENMR0ZCUVdFc1JVRkJSU3hKUVVGSk8ybENRVU53UWl4RlFVTkVMRXRCUVVzc1EwRkRUanRuUWtGRFJDeGhRVUZoTEVWQlFVVXNTVUZCU1R0aFFVTndRaXhEUVVGRExFTkJRVU03VVVGRFRDeERRVUZETzJGQlFVMHNRMEZCUXp0WlFVTk9MRk5CUVZNc1IwRkJSeXhOUVVGTkxFTkJRVU1zVFVGQlRTeERRVUZETEZOQlFWTXNSVUZCUlN4TFFVRkxMRWxCUVVrc1JVRkJSU3hEUVVGRExFTkJRVU03VVVGRGNFUXNRMEZCUXp0UlFVVkVMRTlCUVU4c1EwRkJReXhOUVVGTkxFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlEzWkNMRk5CUVZNc1JVRkRWQ3hMUVVGTExFVkJRMHdzVTBGQlowSXNRMEZEYWtJc1EwRkJkMElzUTBGQlF6dEpRVU0xUWl4RFFVRkRPMGxCUlVRN096czdPenRQUVUxSE8wbEJRMGdzTmtSQlFUWkVPMGxCUTI1RUxFdEJRVXNzUTBGQlNTeE5RVUZ6UWp0UlFVTjJReXhQUVVGUExFOUJRVThzUTBGQlF5eFBRVUZQTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNN1NVRkRjRU1zUTBGQlF6dEpRVVZFT3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdUMEYzUWtjN1NVRkRUeXhMUVVGTExFTkJRVU1zWTBGQll5eERRVU0xUWl4SFFVRlhMRVZCUTFnc1VVRkJjME1zUlVGRGRFTXNVMEZCVXl4SFFVRkhMRXRCUVVzN1VVRkZha0lzVFVGQlRTeFZRVUZWTEVkQlFVY3NSVUZCUlN4RFFVRkRPMUZCUTNSQ0xFbEJRVWtzUjBGQlJ5eEhRVUZyUXl4TlFVRk5MRkZCUVZFc1EwRkJReXhKUVVGSkxFVkJRVVVzUTBGQlF6dFJRVU12UkN4UFFVRlBMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUlVGQlJTeERRVUZETzFsQlEycENMRWxCUVVrc1IwRkJSeXhEUVVGRExFdEJRVXNzU1VGQlNTeEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVRkRMRXRCUVVzc1EwRkJReXhSUVVGUkxFVkJRVVVzUlVGQlJTeERRVUZETzJkQ1FVTTFReXhKUVVGSkxFOUJRVThzUjBGQlVTeEZRVUZGTEVOQlFVTTdaMEpCUTNSQ0xFZEJRVWNzUTBGQlF5eExRVUZMTEVOQlFVTXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU1zVVVGQlVTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNN1owSkJRelZETEVsQlFVa3NVMEZCVXl4RFFVRkRMREJDUVVFd1FpeEZRVUZGTEVOQlFVTTdiMEpCUTNwRExFOUJRVThzUTBGQlF5eEpRVUZKTEVkQlFVY3NSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU03YjBKQlF6bENMRTlCUVU4c1EwRkJReXhUUVVGVExFZEJRVWNzUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4VFFVRlRMRU5CUVVNN2IwSkJRM2hETEVsQlFVa3NRMEZCUXp0M1FrRkRTQ3hQUVVGUExFTkJRVU1zUzBGQlN5eEhRVUZITEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTXNVVUZCVVN4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU03YjBKQlF5OUVMRU5CUVVNN2IwSkJRVU1zVDBGQlR5eEhRVUZSTEVWQlFVVXNRMEZCUXp0M1FrRkRiRUlzUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenQzUWtGRFppeFBRVUZQTEVOQlFVTXNTMEZCU3l4SFFVRkhMRWRCUVVjc1EwRkJReXhMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenR2UWtGRGJrUXNRMEZCUXp0blFrRkRTQ3hEUVVGRE8zRkNRVUZOTEVOQlFVTTdiMEpCUTA0c1NVRkJTU3hEUVVGRE8zZENRVU5JTEU5QlFVOHNSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFZEJRVWNzUTBGQlF5eExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkRMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETzI5Q1FVTjZSQ3hEUVVGRE8yOUNRVUZETEU5QlFVOHNSMEZCVVN4RlFVRkZMRU5CUVVNN2QwSkJRMnhDTEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03ZDBKQlEyWXNUMEZCVHl4SFFVRkhMRWRCUVVjc1EwRkJReXhMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenR2UWtGRE4wTXNRMEZCUXp0blFrRkRTQ3hEUVVGRE8yZENRVU5FTEZWQlFWVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03V1VGRE0wSXNRMEZCUXp0WlFVTkVMRWRCUVVjc1IwRkJSeXhOUVVGTkxGRkJRVkVzUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXp0UlFVTTVRaXhEUVVGRE8xRkJRMFFzUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl3d1FrRkJNRUlzVlVGQlZTeERRVUZETEUxQlFVMHNWVUZCVlN4RFFVRkRMRU5CUVVNN1VVRkRha1VzVFVGQlRTeFJRVUZSTEVOQlFVTXNTMEZCU3l4RlFVRkZMRU5CUVVNN1VVRkRka0lzVDBGQlR5eFZRVUZWTEVOQlFVTTdTVUZEY0VJc1EwRkJRenRKUVVWRU96czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN1QwRXlRa2M3U1VGRFNDeExRVUZMTEVOQlFVTXNSMEZCUnl4RFFVTlFMRkZCUVc5Q0xFVkJRM0JDTEZkQlFXTXNTVUZCVXl4RlFVTjJRaXhIUVVGSExFbEJRVEpETzFGQlJUbERMRTFCUVUwc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEU5QlFVOHNSVUZCUlN4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeEZRVUZGTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVVeFJDeE5RVUZOTEdkQ1FVRm5RaXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNTVUZCU1N4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzU1VGQlNTeERRVUZETzFGQlF6RkVMRTFCUVUwc1pVRkJaU3hIUVVGSExHZENRVUZuUWl4SlFVRkpMRWRCUVVjc1EwRkJReXhwUWtGQmFVSXNRMEZCUXp0UlFVVnNSU3hOUVVGTkxFVkJRVVVzU1VGQlNTeEZRVUZGTEV0QlFVc3NSVUZCUlN4SFFVRkhMRkZCUVZFc1EwRkJRenRSUVVOcVF5eE5RVUZOTEZGQlFWRXNSMEZCUnl4UlFVRlJMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU03VVVGRGRFTXNUVUZCVFN4blFrRkJaMElzUjBGQlJ5eFBRVUZQTEVOQlFVTXNTMEZCU3l4SlFVRkpMRWxCUVVrc1NVRkJTU3hSUVVGUkxFTkJRVU1zUTBGQlF6dFJRVU0xUkN4SlFVRkpMRWxCUVVrc1IwRkJSeXhGUVVGRkxFbEJRVWtzUlVGQlJTeEZRVUZGTEVWQlFVVXNVVUZCVVN4RlFVRkZMRk5CUVN0Q0xFVkJRVVVzUTBGQlF6dFJRVVZ1UlN4cFJVRkJhVVU3VVVGRGFrVXNTVUZCU1N4RFFVRkRMR1ZCUVdVc1JVRkJSU3hEUVVGRE8xbEJRM0pDTEVsQlFVa3NVVUZCYzBNc1EwRkJRenRaUVVNelF5eEpRVUZKTEV0QlFVc3NTVUZCU1N4SlFVRkpMRVZCUVVVc1EwRkJRenRuUWtGRGJFSXNUMEZCVHl4UlFVRlJMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03WjBKQlEzcENMRTlCUVU4c1VVRkJVU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETzJkQ1FVTjRRaXhIUVVGSExFTkJRVU1zUzBGQlN5eERRVU5RTEdkRVFVRm5SQ3hMUVVGTExGZEJRVmNzU1VGQlNTeEZRVUZGTEVOQlEzWkZMRU5CUVVNN1owSkJRMFlzVFVGQlRTeFJRVUZSTEVkQlExb3NRMEZCUXl4TlFVRk5MRWxCUVVrc1EwRkJReXh2UWtGQmIwSXNRMEZET1VJc1IwRkJSeXhEUVVGRExFbEJRVWtzUlVGRFVpeFJRVUZSTEVWQlExSXNTMEZCU3l4SlFVRkpMRTFCUVUwc1EwRkJReXhUUVVGVExFVkJRM2hDTEVsQlFWa3NSVUZCUlN4UlFVRlJMRVZCUVVVc1JVRkRla0lzVVVGQlVTeEZRVU5TTEVkQlFVY3NRMEZCUXl4SFFVRTBRaXhEUVVGRExFTkJRMnhETEVOQlFYRkVMRU5CUVVNN1owSkJRM3BFTEVsQlFVa3NRMEZCUXl4UlFVRlJMRWRCUVVjc1VVRkJVU3hEUVVGRExGRkJRVkVzUTBGQlF5eFJRVUZSTEVOQlFVTTdaMEpCUXpORExGRkJRVkVzUjBGQlJ5eFJRVUZSTEVOQlFVTXNVVUZCVVN4RFFVRkRPMmRDUVVNM1FpeEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVRkRMR3REUVVGclF5eERRVUZETEVOQlFVTTdXVUZEYUVRc1EwRkJRenRwUWtGQlRTeERRVUZETzJkQ1FVTk9MRWRCUVVjc1EwRkJReXhMUVVGTExFTkJRVU1zYjBOQlFXOURMRU5CUVVNc1EwRkJRenRuUWtGRGFFUXNVVUZCVVN4SFFVRkhMRU5CUVVNc1RVRkJUU3hKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVU5vUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hGUVVOU0xGRkJRVkVzUlVGRFVpeEhRVUZITEVOQlEwb3NRMEZCYVVNc1EwRkJRenRaUVVOeVF5eERRVUZETzFsQlEwUXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXh0UTBGQmJVTXNRMEZCUXl4RFFVRkRPMWxCUlM5RExFbEJRVWtzUTBGQlF5eEpRVUZKTEVkQlFVY3NRMEZCUXl4TlFVRk5MRWxCUVVrc1EwRkJReXhqUVVGakxFTkJRVU1zUjBGQlJ5eEZRVUZGTEZGQlFWRXNRMEZCUXl4RFFVRlJMRU5CUVVNN1dVRkRPVVFzUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZEVUN4aFFVRmhMRXRCUVVzc1EwRkJReXhQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhWUVVGVkxFTkJRM1pGTEVOQlFVTTdVVUZEU2l4RFFVRkRPMkZCUVUwc1EwRkJRenRaUVVOT0xIRkZRVUZ4UlR0WlFVTnlSU3d3UkVGQk1FUTdXVUZETVVRc1NVRkJTU3hMUVVGTExFbEJRVWtzU1VGQlNTeEZRVUZGTEVOQlFVTTdaMEpCUTJ4Q0xFOUJRVThzVVVGQlVTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMmRDUVVONlFpeFBRVUZQTEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRaUVVNeFFpeERRVUZETzFsQlEwUXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXh6UkVGQmMwUXNRMEZCUXl4RFFVRkRPMUZCUTNCRkxFTkJRVU03VVVGRlJDeE5RVUZOTEZkQlFWY3NSMEZCUnl4blFrRkJaMElzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMR3RDUVVGclFpeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRk5CUVZNc1EwRkJRenRSUVVVMVJTeEpRVUZKTEZkQlFWY3NTVUZCU1N4WFFVRlhMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU03V1VGRGRFTXNkMFJCUVhkRU8xbEJRM2hFTEUxQlFVMHNaVUZCWlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhSUVVGUkxFVkJRVVVzUTBGQlF6dFpRVU40UXl4SlFVRkpMRXRCUVVzN1owSkJRVVVzWlVGQlpTeERRVUZETEV0QlFVc3NSMEZCUnl4TFFVRkxMRU5CUVVNN1dVRkRla01zU1VGQlNTeEpRVUZKTzJkQ1FVRkZMR1ZCUVdVc1EwRkJReXhKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETzFsQlEzUkRMRWxCUVVrc1VVRkJVVHRuUWtGQlJTeGxRVUZsTEVOQlFVTXNWVUZCVlN4RFFVRkRMRWRCUVVjc1VVRkJVU3hEUVVGRE8xbEJSWEpFTEUxQlFVMHNWVUZCVlN4SFFVRlZMRVZCUVVVc1EwRkJRenRaUVVNM1FpeExRVUZMTEUxQlFVMHNWVUZCVlN4SlFVRkpMRmRCUVZjc1JVRkJSU3hEUVVGRE8yZENRVU55UXl4SFFVRkhMRU5CUVVNc1MwRkJTeXhEUVVGRExHbENRVUZwUWl4VlFVRlZMRVZCUVVVc1EwRkJReXhEUVVGRE8yZENRVU42UXl4TlFVRk5MRkZCUVZFc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVOd1JDeEZRVUZGTEVkQlFVY3NaVUZCWlN4RlFVRkZMRVZCUTNSQ0xFdEJRVXNzUlVGRFRDeEpRVUZKTEVWQlEwb3NSMEZCUnl4UFFVRlBMRU5CUTFnc1EwRkJRenRuUWtGRFJpeEhRVUZITEVOQlFVTXNUMEZCVHl4RFFVTlVMRmxCUVdFc1VVRkJOa0lzUTBGQlF5eE5RVUZOTEZOQlFWTXNWVUZCVlN4RlFVRkZMRU5CUTNaRkxFTkJRVU03WjBKQlEwWXNWVUZCVlN4RFFVRkRMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dFpRVU0xUWl4RFFVRkRPMWxCUTBRc1NVRkJTU3huUWtGQlowSXNSVUZCUlN4RFFVRkRPMmRDUVVOeVFpdzRSRUZCT0VRN1owSkJRemxFTEdsRlFVRnBSVHRuUWtGRGFrVXNTVUZCU1N4bFFVRmxMRVZCUVVVc1EwRkJRenR2UWtGRGNFSXNTVUZCU1N4SFFVRkpMRlZCUVZVc1EwRkJReXhEUVVGRExFTkJRVk1zU1VGQlNTeEpRVUZKTEVOQlFVTTdaMEpCUTNoRExFTkJRVU03Y1VKQlFVMHNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFVkJRVVVzVFVGQlRTeEpRVUZKTEZWQlFWVXNRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJRenR2UWtGRGJrUXNLMFJCUVN0RU8yOUNRVU12UkN4eFJFRkJjVVE3YjBKQlEzSkVMRWxCUVVrc1IwRkJSeXhWUVVGVkxFTkJRVU1zUTBGQlF5eERRVUZSTEVOQlFVTTdaMEpCUXpsQ0xFTkJRVU03V1VGRFNDeERRVUZETzJsQ1FVRk5MRU5CUVVNN1owSkJRMDRzTmtSQlFUWkVPMmRDUVVNM1JDeEpRVUZKTEVkQlFVY3NWVUZCVlN4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeEpRVUZKTEVWQlFVVXNSVUZCUlR0dlFrRkRja01zU1VGQlNTeERRVUZETEVkQlFVYzdkMEpCUVVVc1QwRkJUeXhKUVVGSkxFTkJRVU03YjBKQlEzUkNMRWxCUVVrc1NVRkJTU3hEUVVGRExFbEJRVWtzU1VGQlNTeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1NVRkJTU3hIUVVGSExFVkJRVVVzU1VGQlNTeERRVUZETEUxQlFVMDdkMEpCUVVVc1QwRkJUeXhKUVVGSkxFTkJRVU03YjBKQlEyNUZMRTlCUVU4c1IwRkJSeXhEUVVGRE8yZENRVU5pTEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRaUVVOWUxFTkJRVU03VVVGRFNDeERRVUZETzFGQlJVUXNTVUZCU1N4UlFVRlJMRVZCUVVVc1EwRkJRenRaUVVOaUxFOUJRVThzU1VGQlNTeERRVUZETEVsQlFWY3NRMEZCUXp0UlFVTXhRaXhEUVVGRE8xRkJRMFFzVDBGQlR5eEpRVUZYTEVOQlFVTTdTVUZEY2tJc1EwRkJRenRKUVVWRUxFdEJRVXNzUTBGQlF5eEpRVUZKTzBsQlExSXNOa1JCUVRaRU8wbEJRemRFTEVsQlFWazdTVUZEV2l3MlJFRkJOa1E3U1VGRE4wUXNVVUZCWjBJN1NVRkRhRUlzTmtSQlFUWkVPMGxCUXpkRUxFOUJRVFJDTzBsQlF6VkNMRFpFUVVFMlJEdEpRVU0zUkN4SFFVRkhMRXRCUVRSRE8xRkJSUzlETEUxQlFVMHNTVUZCU1N4blFrRkJaMElzUTBGRGVFSXNaMFJCUVdkRUxFTkJRMnBFTEVOQlFVTTdTVUZEU2l4RFFVRkRPMGxCUlZFc1UwRkJVeXhEUVVOb1FpeFRRVUZwUXp0UlFVVnFReXhQUVVGUExFbEJRVWtzWlVGQlpTeERRVUZETEVsQlFWY3NSVUZCUlN4VFFVRlRMRU5CUVVNc1EwRkJRenRKUVVOeVJDeERRVUZETzBsQlJWRXNTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkRkRUlzVTBGQmVVSXNSVUZEZWtJc1JVRkJiMElzUlVGRGNFSXNTMEZCTkVJc1JVRkROVUlzUjBGQlJ5eEpRVUV5UXp0UlFVVTVReXhKUVVGSkxFVkJRVVVzUTBGQlF5eE5RVUZOTEV0QlFVc3NTMEZCU3l4RFFVRkRMRTFCUVUwN1dVRkROVUlzVFVGQlRTeEpRVUZKTEdGQlFXRXNRMEZCUXl3d1EwRkJNRU1zUTBGQlF5eERRVUZETzFGQlEzUkZMRTFCUVUwc1JVRkJSU3hIUVVGSExFVkJRVVVzVDBGQlR5eEZRVUZGTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRPMUZCUXpORUxFMUJRVTBzVlVGQlZTeEhRVUZITEV0QlFVc3NRMEZCUXl4VFFVRlRMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU03VVVGRE9VTXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXhaUVVGWkxFVkJRVVVzUTBGQlF5eE5RVUZOTEZsQlFWa3NWVUZCVlN4UlFVRlJMRU5CUVVNc1EwRkJRenRSUVVNdlJDeFBRVUZQTEU5QlFVOHNRMEZCUXl4SFFVRkhMRU5CUTJoQ0xFVkJRVVVzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1MwRkJTeXhGUVVGRkxFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRk5CUVZNc1JVRkJSU3hEUVVGRExFVkJRVVVzUzBGQlN5eERRVUZETEV0QlFVc3NRMEZCUXl4RlFVRkZMRWRCUVVjc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGRE1VVXNRMEZCUXp0SlFVTktMRU5CUVVNN1NVRkZSRHM3T3pzN1QwRkxSenRKUVVOTkxFOUJRVThzUTBGRFpDeExRVUZSTEVWQlExSXNSMEZCUnl4SlFVRXlRenRSUVVrNVF5eE5RVUZOTEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dFJRVU55UkN4TlFVRk5MRXRCUVVzc1IwRkJkVUlzUzBGQlN5eERRVUZETEZOQlFWTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRSUVVONlJDeE5RVUZOTEZOQlFWTXNSMEZCUnl4TFFVRkxMRU5CUVVNc1UwRkJVeXhEUVVGRExFdEJRVXNzUTBGQlF5eFhRVUZyUWl4RFFVRkRMRU5CUVVNN1VVRkROVVFzVFVGQlRTeEZRVUZGTEVkQlFVY3NTMEZCU3l4RFFVRkRMRVZCUVVVc1EwRkJReXhMUVVGTExFTkJRVU1zVjBGQmEwSXNRMEZCUXl4RFFVRkRPMUZCUXpsRExFMUJRVTBzUlVGQlJTeEhRVUZITEV0QlFVc3NRMEZCUXl4RlFVRmhMRU5CUVVNc1EwRkJRenRSUVVWb1F5eE5RVUZOTEZGQlFWRXNSMEZCUnl4SFFVRkhMRU5CUVVNc1kwRkJZeXhEUVVGRExGRkJRVkVzUTBGQmQwSXNRMEZCUXp0UlFVVnlSU3hOUVVGTkxGZEJRVmNzUjBGQlJ5eFZRVVZzUWl4SFFVRjNRaXhGUVVONFFpeFpRVUYxUWp0WlFVVjJRaXhKUVVGSkxGbEJRVms3WjBKQlEyUXNXVUZCV1N4SFFVRkhMRU5CUVVNc1IwRkJSeXhKUVVGSkxFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NXVUZCV1N4RlFVRkZMRVZCUVZrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU12UkN4TlFVRk5MRTFCUVUwc1IwRkJSeXhOUVVGTkxFTkJRVU1zVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkRka01zUTBGQlF5eExRVUV3UWl4RlFVRkZMRU5CUVVNc1IwRkJSeXhGUVVGRkxFZEJRVWNzUTBGQlF5eEZRVUZGTEVWQlFVVTdaMEpCUTNwRExFbEJRVWtzVDBGQlR5eEhRVUZITEV0QlFVc3NWMEZCVnp0dlFrRkJSU3hQUVVGUExFdEJRVXNzUTBGQlF6dG5Ra0ZETjBNc1NVRkJTU3haUVVGWkxFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNVVUZCVVN4RFFVRkRMRWRCUVVjc1EwRkJRenR2UWtGQlJTeFBRVUZQTEV0QlFVc3NRMEZCUXp0blFrRkRPVVFzVFVGQlRTeFZRVUZWTEVkQlFVY3NTMEZCU3l4RFFVRkRMRlZCUVZVc1EwRkJReXhMUVVGTExFVkJRVVVzUjBGQlZTeERRVUZETEVOQlFVTTdaMEpCUTNaRUxFbEJRVWtzU1VGQlNTeERRVUZETEZWQlFWVXNRMEZCUXl4VlFVRlZMRU5CUVVNN2IwSkJRemRDTEUxQlFVMHNTVUZCU1N4aFFVRmhMRU5CUVVNc2FVSkJRV2xDTEZWQlFWVXNZMEZCWXl4RFFVRkRMRU5CUVVNN1owSkJRM0pGTEVkQlFVY3NSMEZCUnl4SFFVRkhMRmxCUVZrc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETzJkQ1FVTm9SQ3hMUVVGTExFTkJRVU1zVlVGQlZTeERRVUZETEVkQlFVY3NSMEZCUnl4RFFVRkRPMmRDUVVONFFpeFBRVUZQTEV0QlFVc3NRMEZCUXp0WlFVTm1MRU5CUVVNc1JVRkRSQ3hGUVVGRkxFTkJRMGdzUTBGQlF6dFpRVU5HTEVsQlFVa3NUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETzJkQ1FVTnFSU3gxUWtGQmRVSTdaMEpCUTNaQ0xFMUJRVTBzUTBGQlF5eFhRVUZYTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWRCUVVjc1UwRkJVeXhEUVVGRE8xbEJRM2hETEVOQlFVTTdXVUZEUkN4UFFVRlBMRTFCUVUwc1EwRkJRenRSUVVOb1FpeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8xRkJSV0lzUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZEVUN4M1FrRkJkMElzVTBGQlV5eHJRa0ZCYlVJc1MwRkJZU3hEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlEzaEZMRU5CUVVNN1VVRkZSaXhOUVVGTkxHMUNRVUZ0UWl4SFFVRkhMRWRCUVVjc1EwRkJReXh0UWtGQmJVSXNSVUZCUlN4RFFVRkRPMUZCUTNSRUxFMUJRVTBzWjBKQlFXZENMRWRCUVhkQ0xFVkJRVVVzUTBGQlF6dFJRVU5xUkN4elJrRkJjMFk3VVVGRGRFWXNjVVpCUVhGR08xRkJRM0pHTEhOR1FVRnpSanRSUVVOMFJpd3lSVUZCTWtVN1VVRkRNMFVzU1VGQlNTeHRRa0ZCYlVJc1NVRkJTU3hMUVVGTExFTkJRVU1zVTBGQlV5eEpRVUZKTEU5QlFVOHNTMEZCU3l4RFFVRkRMRk5CUVZNc1MwRkJTeXhSUVVGUkxFVkJRVVVzUTBGQlF6dFpRVU5zUml4TFFVRkxMRTFCUVUwc1ZVRkJWU3hKUVVGSkxHMUNRVUZ0UWl4RlFVRkZMRU5CUVVNN1owSkJRemRETEdkQ1FVRm5RaXhEUVVGRExGVkJRVlVzUTBGQlF5eEhRVUZITEdkQ1FVRm5RaXhEUVVGRExGVkJRVlVzUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXp0blFrRkRiRVVzWjBKQlFXZENMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU1zUlVGQlV5eERRVUZETEVkQlFVY3NWMEZCVnl4RFFVTnVSQ3hIUVVGSExFTkJRVU1zWTBGQll5eERRVUZETEhGQ1FVRnhRaXhEUVVGRE8yOUNRVU4yUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFdEJRVXM3YjBKQlEySXNRMEZCUXl4RFFVRkRMRU5CUVVVc1MwRkJTeXhEUVVGRExGTkJRV2xDTEVsQlFVa3NSVUZCUlN4RFFVRkRMRVZCUTNCRExHMUNRVUZ0UWl4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVOb1F5eERRVUZETzFsQlEwb3NRMEZCUXp0UlFVTklMRU5CUVVNN1VVRkZSQ3cyUlVGQk5rVTdVVUZETjBVc1RVRkJUU3hOUVVGTkxFZEJRVWNzVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4WFFVRlhMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEZkQlFWY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRmVFVXNUMEZCVHp0WlFVTk1MRTFCUVUwN1dVRkRUaXhGUVVGRkxFVkJRVWNzUzBGQllTeERRVUZETEVWQlFVVXNRMEZCVnp0WlFVTm9ReXhUUVVGVExFVkJRMUFzUTBGQlF5eFJRVUZSTEVsQlFVa3NTMEZCU3l4RFFVRkRMRk5CUVZNc1NVRkJTU3hOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJReXhOUVVGTk8yZENRVU5xUlN4RFFVRkRMRU5CUVVNc1YwRkJWeXhEUVVGRExFdEJRVXNzUTBGQlF5eFRRVUZUTEVOQlFVTTdaMEpCUXpsQ0xFTkJRVU1zUTBGQlF5eFRRVUZUTzFsQlEyWXNWVUZCVlN4RlFVRkZMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCUXl4blFrRkJaMEk3VTBGRGNFUXNRMEZCUXp0SlFVTktMRU5CUVVNN1NVRkZVU3hOUVVGTkxFTkJRMklzUjBGQmQwSXNSVUZEZUVJc1MwRkJjVUlzUlVGRGNrSXNSVUZCYTBJc1JVRkRiRUlzVTBGQkswSXNSVUZETDBJc1IwRkJSeXhKUVVFeVF6dFJRVVU1UXl4TlFVRk5MRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hGUVVGRkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0UlFVTndSQ3hOUVVGTkxFVkJRVVVzUjBGQmQwSXNSVUZCUlN4RFFVRkRPMUZCUTI1RExFMUJRVTBzUlVGQlJTeEhRVUZITEV0QlFVc3NRMEZCUXl4RlFVRkZMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRE0wSXNUVUZCVFN4UFFVRlBMRWRCUVVjc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0UlFVTnlReXhKUVVGSkxFOUJRVThzUlVGQlJTeEpRVUZKTEV0QlFVc3NUVUZCVFN4SlFVRkpMRTlCUVU4c1JVRkJSU3hMUVVGTExGRkJRVkVzUlVGQlJTeERRVUZETzFsQlEzWkVMRVZCUVVVc1IwRkJSeXhOUVVGTkxFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTTdVVUZEYkVJc1EwRkJRenRSUVVORUxFVkJRVVVzUTBGQlF5eEZRVUZaTEVOQlFVTXNSMEZCUnl4RlFVRkZMRU5CUVVNN1VVRkRkRUlzUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4dlFrRkJiMElzUzBGQlN5eERRVUZETEVsQlFVa3NUMEZCVHl4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRE8xRkJSWEpFTEZOQlFWTXNWVUZCVlN4RFFVRkRMRU5CUVcxQ08xbEJRM0pETEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUTFJc1QwRkJUeXhMUVVGTExFdEJRVXNzVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExFVkJRVVVzUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hMUVVGTExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlF6bEVMRU5CUVVNN1dVRkRVQ3hOUVVGTkxGVkJRVlVzUjBGQlJ5eExRVUZMTEVOQlFVTXNZVUZCWVN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8xbEJRemxETEUxQlFVMHNTVUZCU1N4SFFVRkhMRlZCUVZVc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTTNSQ3hQUVVGUExFbEJRVWs3YVVKQlExSXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETEV0QlFVMHNSVUZCWVN4RFFVRkRPMmxDUVVOdVF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4TFFVRlJMRVZCUVVVc1IwRkJSeXhGUVVGRkxFVkJRVVU3WjBKQlEzWkNMRXRCUVRaQ0xFTkJRVU1zUjBGQlJ5eERRVUZETzI5Q1FVTnFReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEZWQlFWVXNRMEZCUXl4TFFVRkxMRVZCUVVVc1IwRkJWU3hEUVVGRExFTkJRVU1zUTBGQlF6dG5Ra0ZEZWtNc1QwRkJUeXhMUVVGTExFTkJRVU03V1VGRFppeERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRWaXhEUVVGRE8xRkJSVVFzU1VGQlNTeE5RVUZOTEVkQlFVY3NWVUZCVlN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJSVGRDTEVsQlFVa3NVMEZCVXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExEQkNRVUV3UWl4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU03V1VGRGRrUXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkRVQ3h0UTBGQmJVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVc1EwRkRka1VzUTBGQlF6dFpRVU5HTEUxQlFVMHNSMEZCUnl4TlFVRk5MRU5CUVVNc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZPMmRDUVVOMlJDeEpRVUZKTEVkQlFVY3NTMEZCU3l4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRExFZEJRVWNzU1VGQlNTeFRRVUZUTEVOQlFVTXNSVUZCUlN4RFFVRkRPMjlDUVVOMFF5eEhRVUZITEVOQlFVTXNSMEZCWXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8yZENRVU14UWl4RFFVRkRPMmRDUVVORUxFOUJRVThzUjBGQlJ5eERRVUZETzFsQlEySXNRMEZCUXl4RlFVRkZMRWxCUVVrc1MwRkJTeXhGUVVGRkxFTkJRVU1zUTBGQlF6dFJRVU5zUWl4RFFVRkRPMUZCUlVRc1QwRkJUeXhOUVVGTkxFTkJRVU03U1VGRGFFSXNRMEZCUXp0SlFVVlBMREJDUVVFd1FpeERRVUZETEVkQlFUQkNPMUZCUXpORUxFbEJRVWtzUTBGQlF5eEhRVUZITzFsQlFVVXNUMEZCVHl4TFFVRkxMRU5CUVVNN1VVRkRka0lzU1VGQlNTeEhRVUZITEVOQlFVTXNZMEZCWXl4RFFVRkRMSE5DUVVGelFpeERRVUZETzFsQlFVVXNUMEZCVHl4SlFVRkpMRU5CUVVNN1VVRkROVVFzVFVGQlRTeFRRVUZUTEVkQlFVY3NSMEZCUnl4RFFVRkRMR05CUVdNc1EwRkJReXhYUVVGWExFTkJRWFZDTEVOQlFVTTdVVUZEZUVVc1NVRkJTU3hEUVVGRExGTkJRVk03V1VGQlJTeFBRVUZQTEVsQlFVa3NRMEZCUXp0UlFVTTFRaXhOUVVGTkxFVkJRVVVzUjBGQlJ5eFRRVUZUTEVOQlFVTXNVVUZCVVN4RlFVRkZMRU5CUVVNc1YwRkJWeXhGUVVGRkxFTkJRVU03VVVGRE9VTXNUMEZCVHl4RFFVRkRMSGRDUVVGM1FpeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEZkQlFWY3NSVUZCUlN4RFFVRkRMRU5CUVVNc1VVRkJVU3hEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETzBsQlF6VkZMRU5CUVVNN1NVRkZUeXhoUVVGaExFTkJRVU1zVDBGQk9FSTdVVUZEYkVRc1RVRkJUU3hSUVVGUkxFZEJRVWNzVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4VlFVRlZMRU5CUnpGQ0xFTkJRVU03VVVGRFpDeEpRVUZKTEVOQlFVTXNVVUZCVVR0WlFVRkZMRTlCUVU4c1UwRkJVeXhEUVVGRE8xRkJRMmhETEVsQlFVa3NUMEZCVHl4UlFVRlJMRXRCUVVzc1VVRkJVVHRaUVVGRkxFOUJRVThzVVVGQlVTeERRVUZETzFGQlEyeEVMRWxCUVVrc1EwRkJRenRaUVVOSUxFOUJRVThzVVVGQlVTeERRVUZETEZGQlFWRXNSVUZCUlN4RFFVRkRPMUZCUXpkQ0xFTkJRVU03VVVGQlF5eE5RVUZOTEVOQlFVTTdXVUZEVUN4UFFVRlBMRk5CUVZNc1EwRkJRenRSUVVOdVFpeERRVUZETzBsQlEwZ3NRMEZCUXp0SlFVVlBMREJDUVVFd1FpeERRVU5vUXl4TFFVRnhRaXhGUVVOeVFpeEhRVUV3UWp0UlFVVXhRaXhOUVVGTkxGVkJRVlVzUjBGQlJ5eExRVUZMTEVOQlFVTXNWVUZCVlN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8xRkJRek5ETEVsQlFVa3NRMEZCUXl4VlFVRlZPMWxCUVVVc1QwRkJUenRSUVVONFFpeE5RVUZOTEVkQlFVY3NSMEZCUnl4SlFVRkpMRU5CUVVNc1lVRkJZU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFGQlEzQkRMRWxCUVVrc1EwRkJReXhIUVVGSE8xbEJRVVVzVDBGQlR6dFJRVU5xUWl4SlFVTkZMRWRCUVVjc1MwRkJTeXhWUVVGVkxFTkJRVU1zUzBGQlN6dFpRVU40UWl4RFFVRkRMRlZCUVZVc1EwRkJReXhUUVVGVExFbEJRVWtzVlVGQlZTeERRVUZETEZOQlFWTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhGUVVOdVJDeERRVUZETzFsQlEwUXNUVUZCVFN4SlFVRkpMR3RDUVVGclFpeERRVU14UWl4blFrRkJaMElzUjBGQlJ5dzBRMEZCTkVNc1EwRkRhRVVzUTBGQlF6dFJRVU5LTEVOQlFVTTdTVUZEU0N4RFFVRkRPMGxCUlZFc1dVRkJXU3hEUVVOdVFpeFRRVUY1UWl4RlFVTjZRaXhGUVVGclFpeEZRVU5zUWl4TFFVRXdRaXhGUVVNeFFpeEhRVUZITEVsQlFTdERPMUZCUld4RUxFMUJRVTBzUlVGQlJTeFBRVUZQTEVWQlFVVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNN1VVRkRla1FzVFVGQlRTeE5RVUZOTEVkQlFYZENMRVZCUVVVc1EwRkJRenRSUVVOMlF5eE5RVUZOTEVOQlFVTXNWMEZCVnl4RFFVRkRMRXRCUVVzc1EwRkJReXhIUVVGSExFdEJRVXNzUTBGQlF5eFRRVUZUTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNN1VVRkRka1FzVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4TlFVRk5MRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRk4wSXNUMEZCVHl4RFFVRkRMRk5CUVZNc1JVRkJSU3hGUVVGRkxFVkJRVVVzVFVGQlRTeEZRVUZGTEVkQlFVY3NUMEZCVHl4RFFVMTRReXhEUVVGRE8wbEJRMG9zUTBGQlF6dEpRVVZSTEZsQlFWa3NRMEZEYmtJc1UwRkJlVUlzUlVGRGVrSXNSVUZCYTBJc1JVRkRiRUlzUzBGQk1FSXNSVUZETVVJc1IwRkJSeXhKUVVFclF6dFJRVVZzUkN4TlFVRk5MRVZCUVVVc1QwRkJUeXhGUVVGRkxFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRVZCUVVVc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETzFGQlEzcEVMRTFCUVUwc1RVRkJUU3hIUVVGM1FpeEZRVUZGTEVOQlFVTTdVVUZEZGtNc1RVRkJUU3hEUVVGRExGZEJRVmNzUTBGQlF5eExRVUZMTEVOQlFVTXNSMEZCUnl4TFFVRkxMRU5CUVVNc1UwRkJVeXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETzFGQlEzWkVMRTFCUVUwc1EwRkJReXhOUVVGTkxFTkJRVU1zVFVGQlRTeEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRPMUZCUlRkQ0xFOUJRVThzUTBGQlF5eFRRVUZUTEVWQlFVVXNSVUZCUlN4RlFVRkZMRTFCUVUwc1JVRkJSU3hIUVVGSExFOUJRVThzUTBGTmVFTXNRMEZCUXp0SlFVTktMRU5CUVVNN1NVRkZhMElzWlVGQlpTeERRVU5vUXl4VFFVRjVRaXhGUVVONlFpeEhRVUZ4UWl4RlFVTnlRaXhOUVVFMlFpeEZRVU0zUWl4SFFVRkhMRWxCUVhGRE8xRkJSWGhETEVsQlFVa3NSMEZCUnl4RFFVRkRMRTFCUVUwc1MwRkJTeXhOUVVGTkxFTkJRVU1zVFVGQlRUdFpRVU01UWl4TlFVRk5MRWxCUVVrc1lVRkJZU3hEUVVGRExEQkRRVUV3UXl4RFFVRkRMRU5CUVVNN1VVRkZkRVVzVFVGQlRTeEhRVUZITEVkQlFUQkNMRWxCUVVrc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF6dFJRVVU1UXl4TlFVRk5MRTlCUVU4c1IwRkJSeXhIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZMRXRCUVVzc1JVRkJSU3hGUVVGRk8xbEJRM0JETEUxQlFVMHNUVUZCVFN4SFFVRjNRaXhGUVVGRkxFTkJRVU03V1VGRGRrTXNUVUZCVFN4RFFVRkRMRmRCUVZjc1EwRkJReXhMUVVGTExFTkJRVU1zUjBGQlJ5eExRVUZMTEVOQlFVTXNVMEZCVXl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRE8xbEJRM1pFTEUxQlFVMHNRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hGUVVGRkxFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUTNKRExFOUJRVThzVFVGQlRTeERRVUZETzFGQlEyaENMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRMGdzVDBGQlR5eERRVUZETEZOQlFWTXNSVUZCUlN4SFFVRkhMRVZCUVVVc1QwRkJUeXhGUVVGRkxFZEJRVlVzUTBGQlF5eERRVUZETzBsQlF5OURMRU5CUVVNN1NVRkZhMElzWlVGQlpTeERRVU5vUXl4VFFVRjVRaXhGUVVONlFpeEhRVUZ4UWl4RlFVTnlRaXhOUVVFMlFpeEZRVU0zUWl4SFFVRkhMRWxCUVhGRE8xRkJSWGhETEVsQlFVa3NSMEZCUnl4RFFVRkRMRTFCUVUwc1MwRkJTeXhOUVVGTkxFTkJRVU1zVFVGQlRUdFpRVU01UWl4TlFVRk5MRWxCUVVrc1lVRkJZU3hEUVVGRExEQkRRVUV3UXl4RFFVRkRMRU5CUVVNN1VVRkZkRVVzVFVGQlRTeEhRVUZITEVkQlFUQkNMRWxCUVVrc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF6dFJRVVU1UXl4TlFVRk5MRTlCUVU4c1IwRkJSeXhIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZMRXRCUVVzc1JVRkJSU3hGUVVGRk8xbEJRM0JETEUxQlFVMHNUVUZCVFN4SFFVRjNRaXhGUVVGRkxFTkJRVU03V1VGRGRrTXNUVUZCVFN4RFFVRkRMRmRCUVZjc1EwRkJReXhMUVVGTExFTkJRVU1zUjBGQlJ5eExRVUZMTEVOQlFVTXNVMEZCVXl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRE8xbEJRM1pFTEUxQlFVMHNRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hGUVVGRkxFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUTNKRExFOUJRVThzVFVGQlRTeERRVUZETzFGQlEyaENMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRMGdzVDBGQlR5eERRVUZETEZOQlFWTXNSVUZCUlN4SFFVRkhMRVZCUVVVc1QwRkJUeXhGUVVGRkxFZEJRVlVzUTBGQlF5eERRVUZETzBsQlF5OURMRU5CUVVNN1NVRkZVU3hWUVVGVkxFTkJRMnBDTEVkQlFXMUNMRVZCUTI1Q0xFMUJRV1U3VVVGRlppeFBRVUZQTEhGQ1FVRnhRaXhEUVVGRExGVkJRVlVzUTBGQlF5eE5RVUZOTEVsQlFVa3NSMEZCUnl4RFFVRkRMRU5CUVVNN1NVRkRla1FzUTBGQlF6dEpRVFJDYTBJc1RVRkJUU3hEUVVsMlFpeEpRVUZ4UkN4RlFVTnlSQ3hUUVVGcFFpeEZRVU5xUWl4alFVRjFRaXhMUVVGTExFVkJRelZDTEZOQlFYbEVPMUZCVFhwRUxFbEJRVWtzUTBGQlF5eFhRVUZYTzFsQlEyUXNUMEZCVHl4TFFVRkxMRU5CUVVNc1RVRkJUU3hEUVVOcVFpeEpRVUZKTEVWQlEwb3NVMEZCWjBJc1JVRkRhRUlzVjBGQmEwSXNSVUZEYkVJc1UwRkJaMElzUTBGRFZpeERRVUZETzFGQlJWZ3NUMEZCVHl4TFFVRkxMRU5CUVVNc1RVRkJUVHRoUVVOb1FpeEpRVUZKTEVOQlFVTXNTVUZCU1N4RlFVRkZMRWxCUVVrc1JVRkJSU3hUUVVGblFpeEZRVUZGTEZkQlFWY3NSVUZCUlN4VFFVRm5RaXhEUVVGRE8yRkJRMnBGTEVsQlFVa3NRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hGUVVGRk8xbEJRMW9zU1VGQlNTeERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1dVRkJXU3h4UWtGQmNVSXNRMEZCUXp0blFrRkROME1zVFVGQlRTeEpRVUZKTEdGQlFXRXNRMEZCUXl4NVFrRkJlVUlzUTBGQlF5eERRVUZETzFsQlEzSkVMRTlCUVU4c1RVRkJUU3hEUVVGRExFMUJRVTBzUTBGQlF5eEhRVUZITEVWQlFVVTdaMEpCUTNoQ0xFbEJRVWtzUlVGQlJTeEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrN1owSkJRMnhDTEZGQlFWRXNSVUZCUlN4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExGRkJRVkU3WVVGRE0wSXNRMEZCUXl4RFFVRkRPMUZCUTB3c1EwRkJReXhEUVVGUkxFTkJRVU03U1VGRFpDeERRVUZETzBsQlJWRXNTMEZCU3l4RFFVRkRMR1ZCUVdVc1EwRkROVUlzUzBGQlowTXNSVUZEYUVNc1MwRkJjVVFzUlVGRGNrUXNSVUZCV1N4RlFVTmFMRWRCUVVjc1NVRkJNa003VVVGRk9VTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhsUVVGbE8xbEJRM1pDTEUxQlFVMHNTVUZCU1N4aFFVRmhMRU5CUTNKQ0xHOUZRVUZ2UlN4RFFVTnlSU3hEUVVGRE8xRkJRMG9zVFVGQlRTeEZRVUZGTEVkQlFVY3NSVUZCUlN4UFFVRlBMRVZCUVVVc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NSVUZCUlN4SlFVRkpMRU5CUVVNc1pVRkJaU3hEUVVGRExFTkJRVU03VVVGRGFrVXNTVUZCU1N4SFFVRkhMRU5CUVVNc2FVSkJRV2xDTzFsQlFVVXNUMEZCVHp0UlFVTnNReXhKUVVGSkxFZEJRVWNzUTBGQlF5eGpRVUZqTEVOQlFVTXNVVUZCVVN4RFFVRkRPMWxCUVVVc1QwRkJUenRSUVVONlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrN1dVRkJSU3hQUVVGUE8xRkJRM1JDTEUxQlFVMHNUVUZCVFN4SFFVRkhMRXRCUVVzc1EwRkJReXhQUVVGUExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTTdVVUZEYWtNc1RVRkJUU3hWUVVGVkxFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNZMEZCWXl4RFFVRkRMR05CUVdNc1EwRkJReXhEUVVGRE8xRkJRM1pFTEUxQlFVMHNVVUZCVVN4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExHTkJRV01zUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXp0UlFVTnVSQ3hKUVVGSkxFTkJRVU1zVFVGQlRTeEpRVUZKTEZGQlFWRXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhOUVVGTkxFbEJRVWtzVlVGQlZTeERRVUZETEVWQlFVVXNRMEZCUXp0WlFVTndSQ3h6UlVGQmMwVTdXVUZEZEVVc01rVkJRVEpGTzFsQlF6TkZMRTFCUVUwc1MwRkJTeXhIUVVGSExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEZGQlFWRXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVExFTkJRVU03V1VGRGJFVXNUVUZCVFN4VlFVRlZMRWRCUVVjc1QwRkJUeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExIZENRVUYzUWp0WlFVTnFSU3hOUVVGTkxFOUJRVThzUjBGQlJ5eFZRVUZWTEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVExFTkJRVU03V1VGRGJFVXNUVUZCVFN4SlFVRkpMRU5CUVVNc1pVRkJaU3hEUVVGRExHVkJRV1VzUTBGRGVFTXNTMEZCU3l4RlFVTk1MRXRCUVVzc1JVRkRUQ3hGUVVGRkxFVkJRMFlzUzBGQlN5eEZRVU5NTEU5QlFVOHNSVUZEVUN4SFFVRkhMRU5CUTBvc1EwRkJRenRSUVVOS0xFTkJRVU03U1VGRFNDeERRVUZETzBsQlJVUXNUVUZCVFN4RFFVRlZMRlZCUVZVc1EwRkJjMElzUjBGQmJVSTdVVUZEYWtVc1QwRkJUenRSUVVOUUxIRkRRVUZ4UXp0UlFVTnlReXhyUkVGQmEwUTdVVUZEYkVRc1RVRkJUVHRSUVVOT0xFbEJRVWs3VVVGRFNpeDNSRUZCZDBRN1VVRkRlRVFzVFVGQlRTeEhRVUZITEVkQlFVY3NUMEZCVHl4SFFVRkhMRXRCUVVzc1VVRkJVU3hEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhQUVVGUExFTkJRVU03VVVGRGVFUXNTVUZCU1N4SFFVRkhMRU5CUVVNc1VVRkJVU3hEUVVGRExHRkJRV0VzUTBGQlF5eEpRVUZKTEVOQlFVTTdXVUZCUlN4UFFVRlBMRWxCUVVrc1lVRkJZU3hEUVVGRExFZEJRVWNzUTBGQlRTeERRVUZETzFGQlEzcEZMRWxCUVVrc1IwRkJSeXhEUVVGRExGRkJRVkVzUTBGQlF5eGhRVUZoTEVOQlFVTXNTVUZCU1N4RFFVRkRPMWxCUVVVc1QwRkJUeXhKUVVGSkxHRkJRV0VzUTBGQlF5eEhRVUZITEVOQlFVMHNRMEZCUXp0UlFVTjZSU3hKUVVGSkxFZEJRVWNzUTBGQlF5eFJRVUZSTEVOQlFVTXNaVUZCWlN4RFFVRkRMRWxCUVVrc1EwRkJRenRaUVVOd1F5eFBRVUZQTEVsQlFVa3NaVUZCWlN4RFFVRkRMRWRCUVVjc1EwRkJUU3hEUVVGRE8xRkJRM1pETEVsQlFVa3NSMEZCUnl4RFFVRkRMRkZCUVZFc1EwRkJReXhWUVVGVkxFTkJRVU1zU1VGQlNTeERRVUZETzFsQlFVVXNUMEZCVHl4SlFVRkpMRlZCUVZVc1EwRkJReXhIUVVGSExFTkJRVTBzUTBGQlF6dFJRVU51UlN4SlFVRkpMRWRCUVVjc1EwRkJReXhSUVVGUkxFTkJRVU1zVjBGQlZ5eERRVUZETEVsQlFVa3NRMEZCUXp0WlFVRkZMRTlCUVU4c1NVRkJTU3hYUVVGWExFTkJRVU1zUjBGQlJ5eERRVUZOTEVOQlFVTTdVVUZEY2tVc1NVRkJTU3hIUVVGSExFTkJRVU1zVVVGQlVTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExFbEJRVWtzUTBGQlF6dFpRVU55UXl4UFFVRlBMRWxCUVVrc1owSkJRV2RDTEVOQlFVTXNSMEZCUnl4RFFVRk5MRU5CUVVNN1VVRkRlRU1zU1VGQlNTeEhRVUZITEVOQlFVTXNVVUZCVVN4RFFVRkRMR05CUVdNc1EwRkJReXhKUVVGSkxFTkJRVU03V1VGQlJTeFBRVUZQTEVsQlFVa3NZMEZCWXl4RFFVRkRMRWRCUVVjc1EwRkJUU3hEUVVGRE8xRkJRek5GTEVsQlFVa3NSMEZCUnl4RFFVRkRMRkZCUVZFc1EwRkJReXhoUVVGaExFTkJRVU1zU1VGQlNTeERRVUZETzFsQlFVVXNUMEZCVHl4SlFVRkpMR0ZCUVdFc1EwRkJReXhIUVVGSExFTkJRVTBzUTBGQlF6dFJRVU42UlN4SlFVRkpMRWRCUVVjc1EwRkJReXhSUVVGUkxFTkJRVU1zYTBKQlFXdENMRU5CUVVNc1NVRkJTU3hEUVVGRE8xbEJRM1pETEU5QlFVOHNTVUZCU1N4clFrRkJhMElzUTBGQlF5eEhRVUZITEVOQlFVMHNRMEZCUXp0UlFVTXhReXhKUVVGSkxFZEJRVWNzUTBGQlF5eFJRVUZSTEVOQlFVTXNZMEZCWXl4RFFVRkRMRWxCUVVrc1EwRkJRenRaUVVGRkxFOUJRVThzU1VGQlNTeGpRVUZqTEVOQlFVTXNSMEZCUnl4RFFVRk5MRU5CUVVNN1VVRkRNMFVzU1VGQlNTeEhRVUZITEVOQlFVTXNVVUZCVVN4RFFVRkRMR1ZCUVdVc1EwRkJReXhKUVVGSkxFTkJRVU03V1VGRGNFTXNUMEZCVHl4SlFVRkpMR1ZCUVdVc1EwRkJReXhIUVVGSExFTkJRVTBzUTBGQlF6dFJRVU4yUXl4SlFVRkpMRWRCUVVjc1EwRkJReXhSUVVGUkxFTkJRVU1zYTBKQlFXdENMRU5CUVVNc1NVRkJTU3hEUVVGRE8xbEJRM1pETEU5QlFVOHNTVUZCU1N4clFrRkJhMElzUTBGQlF5eEhRVUZITEVOQlFVMHNRMEZCUXp0UlFVTXhReXhKUVVGSkxFZEJRVWNzUTBGQlF5eFJRVUZSTEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU03V1VGRGJrTXNUMEZCVHl4SlFVRkpMRzFDUVVGdFFpeERRVU0xUWl4elJFRkJjMFFzUjBGQlJ5eEZRVUZGTEVOQlEzWkVMRU5CUVVNN1VVRkZWQ3hQUVVGUExFbEJRVWtzWVVGQllTeERRVUZETEVkQlFVY3NRMEZCVFN4RFFVRkRPMGxCUTNKRExFTkJRVU03U1VGRlJEczdPenM3TzA5QlRVYzdTVUZEU0N4TlFVRk5MRU5CUVZVc1ZVRkJWVHRSUVVONFFpeExRVUZMTEVOQlFVTXNWVUZCVlN4RlFVRkZMRU5CUVVNN1VVRkRia0lzVlVGQlZTeERRVUZETEZkQlFWY3NRMEZCUXl4aFFVRmhMRU5CUVVNN1lVRkRiRU1zUjBGQlJ5eERRVUZETEdWQlFXVXNRMEZCUXl4VlFVRlZMRU5CUVVNN1lVRkRMMElzVFVGQlRTeERRVUZETzFsQlEwNHNVMEZCVXl4RlFVRkZMRk5CUVZNc1UwRkJVenRuUWtGRE0wSXNUMEZCVHl4TFFVRkxMRU5CUTFZc1VVRkJVU3hEUVVGRExEWkNRVUUyUWl4RFFVRkRMRVZCUTNaRExGbEJRVmtzUTBGQlF5eGxRVUZsTEVOQlFVTXNWVUZCVlN4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVNM1F5eERRVUZETzFsQlEwb3NRMEZCUXp0VFFVTkxMRU5CUVVNN1lVRkRVaXhMUVVGTExFVkJRVVVzUTBGQlF6dFJRVVZZTEZWQlFWVXNRMEZCUXl4WFFVRlhMRU5CUVVNc1lVRkJZU3hEUVVGRE8yRkJRMnhETEVkQlFVY3NRMEZCUXl4bFFVRmxMRU5CUVVNc1ZVRkJWU3hEUVVGRE8yRkJReTlDTEUxQlFVMHNRMEZCUXp0WlFVTk9MRk5CUVZNc1JVRkJSU3hUUVVGVExGTkJRVk03WjBKQlF6TkNMRTlCUVU4c1MwRkJTeXhEUVVOV0xHTkJRV01zUTBGQlF5dzJRa0ZCTmtJc1EwRkJReXhGUVVNM1F5eFpRVUZaTEVOQlFVTXNaVUZCWlN4RFFVRkRMRlZCUVZVc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGRE4wTXNRMEZCUXp0WlFVTktMRU5CUVVNN1UwRkRTeXhEUVVGRE8yRkJRMUlzUzBGQlN5eEZRVUZGTEVOQlFVTTdVVUZGV0N4VlFVRlZMRU5CUVVNc1YwRkJWeXhEUVVGRExHRkJRV0VzUTBGQlF6dGhRVU5zUXl4SFFVRkhMRU5CUVVNc1pVRkJaU3hEUVVGRExFMUJRVTBzUTBGQlF6dGhRVU16UWl4TlFVRk5MRU5CUVVNc1kwRkJZeXhGUVVGRkxFTkJRVU03WVVGRGVFSXNTMEZCU3l4RlFVRkZMRU5CUVVNN1VVRkZXQ3hWUVVGVkxFTkJRVU1zVjBGQlZ5eERRVUZETEdGQlFXRXNRMEZCUXp0aFFVTnNReXhIUVVGSExFTkJRVU1zWTBGQll5eERRVUZETEVsQlFVa3NRMEZCUXp0aFFVTjRRaXhOUVVGTkxFTkJRVU1zVTBGQlV5eGpRVUZqTzFsQlF6ZENMRTlCUVU4c1EwRkJReXhOUVVGWExFVkJRVVVzU1VGQlZTeEZRVUZGTEVWQlFVVTdaMEpCUTJwRExGRkJRVkVzUTBGQlF5eEpRVUZKTEVWQlFVVXNZVUZCWVN4RFFVRkRMRU5CUVVNc1RVRkJUU3hGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETzFsQlF6bERMRU5CUVVNc1EwRkJRenRSUVVOS0xFTkJRVU1zUTBGQlF5eERRVUZETzFGQlJVd3NWVUZCVlN4RFFVRkRMRmRCUVZjc1EwRkJReXhoUVVGaExFTkJRVU03WVVGRGJFTXNSMEZCUnl4RFFVRkRMR1ZCUVdVc1EwRkJReXhMUVVGTExFTkJRVU03WVVGRE1VSXNUVUZCVFN4RFFVRkRMRk5CUVZNc1MwRkJTeXhEUVVGRExFZEJRVkU3V1VGRE4wSXNUVUZCVFN4TFFVRkxMRWRCUVZVc1JVRkJSU3hEUVVGRE8xbEJRM2hDTEVsQlFVa3NUMEZCVHl4SFFVTlVMRTlCUVU4c1IwRkJSeXhMUVVGTExGVkJRVlU3WjBKQlEzWkNMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXp0blFrRkRkRUlzUTBGQlF5eERRVUZETEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExGZEJRVmNzUTBGQlF5eERRVUZETzFsQlJYWkRMRTlCUVU4c1QwRkJUeXhKUVVGSkxFOUJRVThzUzBGQlN5eE5RVUZOTEVsQlFVa3NUMEZCVHl4RFFVRkRMRk5CUVZNc1JVRkJSU3hEUVVGRE8yZENRVU14UkN4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzJkQ1FVTndRaXhQUVVGUExFZEJRVWNzVFVGQlRTeERRVUZETEdOQlFXTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRaUVVNelF5eERRVUZETzFsQlJVUXNUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhMUVVGTExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkZNME1zZDBSQlFYZEVPMWxCUTNoRUxFOUJRVThzUzBGQlN5eERRVUZETEUxQlFVMHNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJRenRuUWtGRGVFSXNUVUZCVFN4WFFVRlhMRWRCUVVjc1MwRkJTeXhEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETzJkQ1FVTm9ReXhQUVVGUExFTkJRVU1zUjBGQlJ5eERRVUZETEdOQlFXTXNWMEZCVnl4RFFVRkRMRWxCUVVrc1JVRkJSU3hEUVVGRExFTkJRVU03WjBKQlF6bERMRmxCUVZrc1JVRkJSU3hEUVVGRExGZEJRVmNzUTBGQlF5eERRVUZETzFsQlF6bENMRU5CUVVNN1dVRkZSQ3hQUVVGUExGbEJRVmtzUlVGQlJTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUXpkQ0xFTkJRVU1zUTBGQlF6dGhRVU5FTEV0QlFVc3NSVUZCUlN4RFFVRkRPMGxCUTJJc1EwRkJRenM3UVVGSFNDeHhRa0ZCY1VJc1EwRkJReXhWUVVGVkxFVkJRVVVzUTBGQlF6dEJRVU51UXl4UFFVRlBMRU5CUVVNc1ZVRkJWU3hEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZESWl3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUh0Y2JpQWdRMjkxWTJoRVFrRmtZWEIwWlhJc1hHNGdJRU52ZFdOb1JFSkxaWGx6TEZ4dUlDQk5ZVzVuYjFGMVpYSjVMRnh1SUNCV2FXVjNVbVZ6Y0c5dWMyVXNYRzU5SUdaeWIyMGdYQ0pBWkdWallXWXRkSE12Wm05eUxXTnZkV05vWkdKY0lqdGNibWx0Y0c5eWRDQjdJRTF2WkdWc0xDQldZV3hwWkdGMGFXOXVTMlY1Y3lCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlpHVmpiM0poZEc5eUxYWmhiR2xrWVhScGIyNWNJanRjYm1sdGNHOXlkQ0I3SUVaaFluSnBZME52Ym5SeVlXTjBSbXhoWjNNZ2ZTQm1jbTl0SUZ3aUxpOTBlWEJsYzF3aU8xeHVhVzF3YjNKMElIc2dSbUZpY21salEyOXVkSEpoWTNSRGIyNTBaWGgwSUgwZ1puSnZiU0JjSWk0dlEyOXVkSEpoWTNSRGIyNTBaWGgwWENJN1hHNXBiWEJ2Y25RZ2UxeHVJQ0JDWVdSU1pYRjFaWE4wUlhKeWIzSXNYRzRnSUVKaGMyVkZjbkp2Y2l4Y2JpQWdRblZzYTBOeWRXUlBjR1Z5WVhScGIyNUxaWGx6TEZ4dUlDQkRiMjVtYkdsamRFVnljbTl5TEZ4dUlDQkpiblJsY201aGJFVnljbTl5TEZ4dUlDQk9iM1JHYjNWdVpFVnljbTl5TEZ4dUlDQnZia055WldGMFpTeGNiaUFnYjI1RGNtVmhkR1ZWY0dSaGRHVXNYRzRnSUU5d1pYSmhkR2x2Ymt0bGVYTXNYRzRnSUZCeWFXMWhjbmxMWlhsVWVYQmxMRnh1SUNCVFpYSnBZV3hwZW1GMGFXOXVSWEp5YjNJc1hHNTlJR1p5YjIwZ1hDSkFaR1ZqWVdZdGRITXZaR0l0WkdWamIzSmhkRzl5YzF3aU8xeHVhVzF3YjNKMElIdGNiaUFnUTI5dWRHVjRkQ0JoY3lCRGRIZ3NYRzRnSUU5aWFtVmpkQ0JoY3lCR1lXSnlhV05QWW1wbFkzUXNYRzRnSUZCeWIzQmxjblI1TEZ4dUlDQlFjbTl3WlhKMGVTQmhjeUJHWVdKeWFXTlFjbTl3WlhKMGVTeGNibjBnWm5KdmJTQmNJbVpoWW5KcFl5MWpiMjUwY21GamRDMWhjR2xjSWp0Y2JtbHRjRzl5ZENCN0lFeHZaMmRsY2l3Z1RHOW5aMmx1WnlCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdmJHOW5aMmx1WjF3aU8xeHVhVzF3YjNKMElIdGNiaUFnVUdWeWMybHpkR1Z1WTJWTFpYbHpMRnh1SUNCU1pXeGhkR2x2Ym5OTlpYUmhaR0YwWVN4Y2JpQWdVMlZ4ZFdWdVkyVXNYRzRnSUZObGNYVmxibU5sVDNCMGFXOXVjeXhjYmlBZ1ZXNXpkWEJ3YjNKMFpXUkZjbkp2Y2l4Y2JpQWdRV1JoY0hSbGNpeGNiaUFnUVdSaGNIUmxja1pzWVdkekxGeHVJQ0JRY21Wd1lYSmxaRTF2WkdWc0xGeHVJQ0JTWlhCdmMybDBiM0o1TEZ4dUlDQlJkV1Z5ZVVWeWNtOXlMRnh1SUNCUVlXZHBibWRGY25KdmNpeGNiaUFnVFdsbmNtRjBhVzl1UlhKeWIzSXNYRzRnSUU5aWMyVnlkbVZ5UlhKeWIzSXNYRzRnSUVGMWRHaHZjbWw2WVhScGIyNUZjbkp2Y2l4Y2JpQWdSbTl5WW1sa1pHVnVSWEp5YjNJc1hHNGdJRU52Ym01bFkzUnBiMjVGY25KdmNpeGNiaUFnUTI5dWRHVjRkSFZoYkdsNlpXUkJjbWR6TEZ4dUlDQkRiMjUwWlhoMExGeHVJQ0JTWVhkU1pYTjFiSFFzWEc0Z0lGQmhaMmx1WVhSdmNpeGNiaUFnUTI5dWRHVjRkSFZoYkVGeVozTXNYRzRnSUUxaGVXSmxRMjl1ZEdWNGRIVmhiRUZ5Wnl4Y2JpQWdUV1YwYUc5a1QzSlBjR1Z5WVhScGIyNHNYRzRnSUVGc2JFOXdaWEpoZEdsdmJrdGxlWE1zWEc0Z0lFWnNZV2R6VDJZc1hHNGdJRU52Ym5SbGVIUlBaaXhjYmlBZ1ZISmhibk5oWTNScGIyNVBjR1Z5WVhScGIyNUxaWGx6TEZ4dUlDQkZkbVZ1ZEVsa2N5eGNiaUFnUkdsemNHRjBZMmdzWEc0Z0lIQnliMjFwYzJWVFpYRjFaVzVqWlN4Y2JpQWdjbVZ6YjJ4MlpVSjFiR3RUWlhGMVpXNWpaVkpsYzNWc2RDeGNibjBnWm5KdmJTQmNJa0JrWldOaFppMTBjeTlqYjNKbFhDSTdYRzVwYlhCdmNuUWdleUJHWVdKeWFXTkRiMjUwY21GamRGSmxjRzl6YVhSdmNua2dmU0JtY205dElGd2lMaTlHWVdKeWFXTkRiMjUwY21GamRGSmxjRzl6YVhSdmNubGNJanRjYm1sdGNHOXlkQ0I3WEc0Z0lFTm9ZV2x1WTI5a1pWTjBkV0lzWEc0Z0lFTnNhV1Z1ZEVsa1pXNTBhWFI1TEZ4dUlDQkpkR1Z5WVhSdmNuTXNYRzRnSUZOMFlYUmxVWFZsY25sU1pYTndiMjV6WlN4Y2JuMGdabkp2YlNCY0ltWmhZbkpwWXkxemFHbHRMV0Z3YVZ3aU8xeHVhVzF3YjNKMElIc2dSbUZpY21salUzUmhkR1Z0Wlc1MElIMGdabkp2YlNCY0lpNHZSbUZpY21salEyOXVkSEpoWTNSVGRHRjBaVzFsYm5SY0lqdGNibWx0Y0c5eWRDQjdJRVpoWW5KcFkwTnZiblJ5WVdOMFUyVnhkV1Z1WTJVZ2ZTQm1jbTl0SUZ3aUxpOUdZV0p5YVdORGIyNTBjbUZqZEZObGNYVmxibU5sWENJN1hHNXBiWEJ2Y25RZ2V5QkdZV0p5YVdOR2JHRjJiM1Z5SUgwZ1puSnZiU0JjSWk0dUwzTm9ZWEpsWkM5amIyNXpkR0Z1ZEhOY0lqdGNibWx0Y0c5eWRDQjdJRk5wYlhCc1pVUmxkR1Z5YldsdWFYTjBhV05UWlhKcFlXeHBlbVZ5SUgwZ1puSnZiU0JjSWk0dUwzTm9ZWEpsWkM5VGFXMXdiR1ZFWlhSbGNtMXBibWx6ZEdsalUyVnlhV0ZzYVhwbGNsd2lPMXh1YVcxd2IzSjBJSHRjYmlBZ1lYQndiSGtzWEc0Z0lFTnZibk4wY25WamRHOXlMRnh1SUNCRVpXTnZjbUYwYVc5dUxGeHVJQ0JOWlhSaFpHRjBZU3hjYmlBZ2NISnZjRTFsZEdGa1lYUmhMRnh1ZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJSbFkyOXlZWFJwYjI1Y0lqdGNibWx0Y0c5eWRDQjdJRVpoWW5KcFkwTnZiblJ5WVdOMFVHRm5hVzVoZEc5eUlIMGdabkp2YlNCY0lpNHZSbUZpY21salEyOXVkSEpoWTNSUVlXZHBibUYwYjNKY0lqdGNibWx0Y0c5eWRDQjdJRTFwYzNOcGJtZERiMjUwWlhoMFJYSnliM0lnZlNCbWNtOXRJRndpTGk0dmMyaGhjbVZrTDJWeWNtOXljMXdpTzF4dWFXMXdiM0owSUhzZ1UyVm5jbVZuWVhSbFpFMXZaR1ZzSUgwZ1puSnZiU0JjSWk0dUwzTm9ZWEpsWkM5cGJtUmxlRndpTzF4dWFXMXdiM0owSUhzZ1JtRmljbWxqUTI5dWRISmhZM1JFYVhOd1lYUmphQ0I5SUdaeWIyMGdYQ0l1TDBaaFluSnBZME52Ym5SeVlXTjBSR2x6Y0dGMFkyaGNJanRjYmx4dVpYaHdiM0owSUhSNWNHVWdSbUZpY21salEyOXVkR1Y0ZEhWaGJHbDZaV1JCY21kelBGeHVJQ0JCVWtkVElHVjRkR1Z1WkhNZ1lXNTVXMTBnUFNCaGJubGJYU3hjYmlBZ1JWaFVSVTVFSUdWNGRHVnVaSE1nWW05dmJHVmhiaUE5SUdaaGJITmxMRnh1UGlBOUlFTnZiblJsZUhSMVlXeHBlbVZrUVhKbmN6eEdZV0p5YVdORGIyNTBjbUZqZEVOdmJuUmxlSFFzSUVGU1IxTXNJRVZZVkVWT1JENGdKaUI3WEc0Z0lITjBkV0k2SUVOb1lXbHVZMjlrWlZOMGRXSTdYRzRnSUdsa1pXNTBhWFI1T2lCRGJHbGxiblJKWkdWdWRHbDBlVHRjYm4wN1hHNWNiaThxS2x4dUlDb2dRR1JsYzJOeWFYQjBhVzl1SUZObGRITWdkR2hsSUdOeVpXRjBiM0lnYjNJZ2RYQmtZWFJsY2lCbWFXVnNaQ0JwYmlCaElHMXZaR1ZzSUdKaGMyVmtJRzl1SUhSb1pTQjFjMlZ5SUdsdUlIUm9aU0JqYjI1MFpYaDBYRzRnS2lCQWMzVnRiV0Z5ZVNCRFlXeHNZbUZqYXlCbWRXNWpkR2x2YmlCMWMyVmtJR2x1SUdSbFkyOXlZWFJ2Y25NZ2RHOGdZWFYwYjIxaGRHbGpZV3hzZVNCelpYUWdkR2hsSUdOeVpXRjBaV1JmWW5rZ2IzSWdkWEJrWVhSbFpGOWllU0JtYVdWc1pITmNiaUFxSUhkcGRHZ2dkR2hsSUhWelpYSnVZVzFsSUdaeWIyMGdkR2hsSUdOdmJuUmxlSFFnZDJobGJpQmhJR1J2WTNWdFpXNTBJR2x6SUdOeVpXRjBaV1FnYjNJZ2RYQmtZWFJsWkZ4dUlDb2dRSFJsYlhCc1lYUmxJRTBnTFNCVWVYQmxJR1Y0ZEdWdVpHbHVaeUJOYjJSbGJGeHVJQ29nUUhSbGJYQnNZWFJsSUZJZ0xTQlVlWEJsSUdWNGRHVnVaR2x1WnlCT1lXNXZVbVZ3YjNOcGRHOXllVHhOUGx4dUlDb2dRSFJsYlhCc1lYUmxJRllnTFNCVWVYQmxJR1Y0ZEdWdVpHbHVaeUJTWld4aGRHbHZibk5OWlhSaFpHRjBZVnh1SUNvZ1FIQmhjbUZ0SUh0U2ZTQjBhR2x6SUMwZ1ZHaGxJSEpsY0c5emFYUnZjbmtnYVc1emRHRnVZMlZjYmlBcUlFQndZWEpoYlNCN1JtRmljbWxqUTI5dWRISmhZM1JEYjI1MFpYaDBmU0JqYjI1MFpYaDBJQzBnVkdobElHOXdaWEpoZEdsdmJpQmpiMjUwWlhoMElHTnZiblJoYVc1cGJtY2dkWE5sY2lCcGJtWnZjbTFoZEdsdmJseHVJQ29nUUhCaGNtRnRJSHRXZlNCa1lYUmhJQzBnVkdobElISmxiR0YwYVc5dUlHMWxkR0ZrWVhSaFhHNGdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdhMlY1SUMwZ1ZHaGxJSEJ5YjNCbGNuUjVJR3RsZVNCMGJ5QnpaWFFnZDJsMGFDQjBhR1VnZFhObGNtNWhiV1ZjYmlBcUlFQndZWEpoYlNCN1RYMGdiVzlrWld3Z0xTQlVhR1VnYlc5a1pXd2dhVzV6ZEdGdVkyVWdZbVZwYm1jZ1kzSmxZWFJsWkNCdmNpQjFjR1JoZEdWa1hHNGdLaUJBY21WMGRYSnVJSHRRY205dGFYTmxQSFp2YVdRK2ZTQkJJSEJ5YjIxcGMyVWdkR2hoZENCeVpYTnZiSFpsY3lCM2FHVnVJSFJvWlNCdmNHVnlZWFJwYjI0Z2FYTWdZMjl0Y0d4bGRHVmNiaUFxSUVCbWRXNWpkR2x2YmlCamNtVmhkR1ZrUW5sUGJrWmhZbkpwWTBOeVpXRjBaVlZ3WkdGMFpWeHVJQ29nUUcxbGJXSmxjazltSUcxdlpIVnNaVHBtWVdKeWFXTXVZMjl1ZEhKaFkzUnpYRzRnS2lCQWJXVnliV0ZwWkZ4dUlDb2djMlZ4ZFdWdVkyVkVhV0ZuY21GdFhHNGdLaUFnSUhCaGNuUnBZMmx3WVc1MElFWWdZWE1nWTNKbFlYUmxaRUo1VDI1T1lXNXZRM0psWVhSbFZYQmtZWFJsWEc0Z0tpQWdJSEJoY25ScFkybHdZVzUwSUVNZ1lYTWdRMjl1ZEdWNGRGeHVJQ29nSUNCd1lYSjBhV05wY0dGdWRDQk5JR0Z6SUUxdlpHVnNYRzRnS2lBZ0lFWXRQajVET2lCblpYUW9YQ0oxYzJWeVhDSXBYRzRnS2lBZ0lFTXRMVDQrUmpvZ2RYTmxjaUJ2WW1wbFkzUmNiaUFxSUNBZ1JpMCtQazA2SUhObGRDQnJaWGtnZEc4Z2RYTmxjaTV1WVcxbFhHNGdLaUFnSUU1dmRHVWdiM1psY2lCR09pQkpaaUJ1YnlCMWMyVnlJR2x1SUdOdmJuUmxlSFJjYmlBcUlDQWdSaTB0UGo1R09pQjBhSEp2ZHlCVmJuTjFjSEJ2Y25SbFpFVnljbTl5WEc0Z0tpOWNibVY0Y0c5eWRDQmhjM2x1WXlCbWRXNWpkR2x2YmlCamNtVmhkR1ZrUW5sUGJrWmhZbkpwWTBOeVpXRjBaVlZ3WkdGMFpUeGNiaUFnVFNCbGVIUmxibVJ6SUUxdlpHVnNMRnh1SUNCU0lHVjRkR1Z1WkhNZ1JtRmljbWxqUTI5dWRISmhZM1JTWlhCdmMybDBiM0o1UEUwK0xGeHVJQ0JXSUdWNGRHVnVaSE1nVW1Wc1lYUnBiMjV6VFdWMFlXUmhkR0VzWEc0K0tGeHVJQ0IwYUdsek9pQlNMRnh1SUNCamIyNTBaWGgwT2lCRGIyNTBaWGgwVDJZOFVqNHNYRzRnSUdSaGRHRTZJRllzWEc0Z0lHdGxlVG9nYTJWNWIyWWdUU3hjYmlBZ2JXOWtaV3c2SUUxY2JpazZJRkJ5YjIxcGMyVThkbTlwWkQ0Z2UxeHVJQ0IwY25rZ2UxeHVJQ0FnSUdOdmJuTjBJSFZ6WlhJZ1BTQmpiMjUwWlhoMExtZGxkQ2hjSW1sa1pXNTBhWFI1WENJcElHRnpJRU5zYVdWdWRFbGtaVzUwYVhSNU8xeHVJQ0FnSUcxdlpHVnNXMnRsZVYwZ1BTQjFjMlZ5TG1kbGRFbEVLQ2tnWVhNZ1RWdDBlWEJsYjJZZ2EyVjVYVHRjYmlBZ0lDQXZMeUJsYzJ4cGJuUXRaR2x6WVdKc1pTMXVaWGgwTFd4cGJtVWdRSFI1Y0dWelkzSnBjSFF0WlhOc2FXNTBMMjV2TFhWdWRYTmxaQzEyWVhKelhHNGdJSDBnWTJGMFkyZ2dLR1U2SUhWdWEyNXZkMjRwSUh0Y2JpQWdJQ0IwYUhKdmR5QnVaWGNnVlc1emRYQndiM0owWldSRmNuSnZjaWhjYmlBZ0lDQWdJRndpVG04Z1ZYTmxjaUJtYjNWdVpDQnBiaUJqYjI1MFpYaDBMaUJRYkdWaGMyVWdjSEp2ZG1sa1pTQmhJSFZ6WlhJZ2FXNGdkR2hsSUdOdmJuUmxlSFJjSWx4dUlDQWdJQ2s3WEc0Z0lIMWNibjFjYmx4dUx5b3FYRzRnS2lCQVpHVnpZM0pwY0hScGIyNGdRV1JoY0hSbGNpQm1iM0lnU0hsd1pYSnNaV1JuWlhJZ1JtRmljbWxqSUdOb1lXbHVZMjlrWlNCemRHRjBaU0JrWVhSaFltRnpaU0J2Y0dWeVlYUnBiMjV6WEc0Z0tpQkFjM1Z0YldGeWVTQlFjbTkyYVdSbGN5QmhJRU52ZFdOb1JFSXRiR2xyWlNCcGJuUmxjbVpoWTJVZ1ptOXlJR2x1ZEdWeVlXTjBhVzVuSUhkcGRHZ2dkR2hsSUVaaFluSnBZeUJ6ZEdGMFpTQmtZWFJoWW1GelpTQm1jbTl0SUhkcGRHaHBiaUJoSUdOb1lXbHVZMjlrWlNCamIyNTBjbUZqZEZ4dUlDb2dRSFJsYlhCc1lYUmxJSFp2YVdRZ0xTQk9ieUJqYjI1bWFXZDFjbUYwYVc5dUlHNWxaV1JsWkNCbWIzSWdZMjl1ZEhKaFkzUWdZV1JoY0hSbGNseHVJQ29nUUhSbGJYQnNZWFJsSUVaaFluSnBZME52Ym5SeVlXTjBSbXhoWjNNZ0xTQkdiR0ZuY3lCemNHVmphV1pwWXlCMGJ5QkdZV0p5YVdNZ1kyOXVkSEpoWTNRZ2IzQmxjbUYwYVc5dWMxeHVJQ29nUUhSbGJYQnNZWFJsSUVaaFluSnBZME52Ym5SeVlXTjBRMjl1ZEdWNGRDQXRJRU52Ym5SbGVIUWdkSGx3WlNCbWIzSWdSbUZpY21saklHTnZiblJ5WVdOMElHOXdaWEpoZEdsdmJuTmNiaUFxSUVCamJHRnpjeUJHWVdKeWFXTkRiMjUwY21GamRFRmtZWEIwWlhKY2JpQXFJRUJsZUdGdGNHeGxYRzRnS2lCZ1lHQjBlWEJsYzJOeWFYQjBYRzRnS2lBdkx5QkpiaUJoSUVaaFluSnBZeUJqYUdGcGJtTnZaR1VnWTI5dWRISmhZM1FnWTJ4aGMzTmNiaUFxSUdsdGNHOXlkQ0I3SUVaaFluSnBZME52Ym5SeVlXTjBRV1JoY0hSbGNpQjlJR1p5YjIwZ0owQmtaV05oWmkxMGN5OW1iM0l0Wm1GaWNtbGpKenRjYmlBcVhHNGdLaUJsZUhCdmNuUWdZMnhoYzNNZ1RYbERiMjUwY21GamRDQmxlSFJsYm1SeklFTnZiblJ5WVdOMElIdGNiaUFxSUNBZ2NISnBkbUYwWlNCaFpHRndkR1Z5SUQwZ2JtVjNJRVpoWW5KcFkwTnZiblJ5WVdOMFFXUmhjSFJsY2lncE8xeHVJQ3BjYmlBcUlDQWdRRlJ5WVc1ellXTjBhVzl1S0NsY2JpQXFJQ0FnWVhONWJtTWdZM0psWVhSbFFYTnpaWFFvWTNSNE9pQkRiMjUwWlhoMExDQnBaRG9nYzNSeWFXNW5MQ0JrWVhSaE9pQnpkSEpwYm1jcE9pQlFjbTl0YVhObFBIWnZhV1ErSUh0Y2JpQXFJQ0FnSUNCamIyNXpkQ0J0YjJSbGJDQTlJSHNnYVdRc0lHUmhkR0VzSUhScGJXVnpkR0Z0Y0RvZ1JHRjBaUzV1YjNjb0tTQjlPMXh1SUNvZ0lDQWdJR0YzWVdsMElIUm9hWE11WVdSaGNIUmxjaTVqY21WaGRHVW9KMkZ6YzJWMGN5Y3NJR2xrTENCdGIyUmxiQ3dnZTMwc0lIc2djM1IxWWpvZ1kzUjRMbk4wZFdJZ2ZTazdYRzRnS2lBZ0lIMWNiaUFxSUgxY2JpQXFJR0JnWUZ4dUlDb2dRRzFsY20xaGFXUmNiaUFxSUhObGNYVmxibU5sUkdsaFozSmhiVnh1SUNvZ0lDQndZWEowYVdOcGNHRnVkQ0JEYjI1MGNtRmpkRnh1SUNvZ0lDQndZWEowYVdOcGNHRnVkQ0JHWVdKeWFXTkRiMjUwY21GamRFRmtZWEIwWlhKY2JpQXFJQ0FnY0dGeWRHbGphWEJoYm5RZ1UzUjFZbHh1SUNvZ0lDQndZWEowYVdOcGNHRnVkQ0JUZEdGMFpVUkNYRzRnS2x4dUlDb2dJQ0JEYjI1MGNtRmpkQzArUGtaaFluSnBZME52Ym5SeVlXTjBRV1JoY0hSbGNqb2dZM0psWVhSbEtIUmhZbXhsVG1GdFpTd2dhV1FzSUcxdlpHVnNMQ0IwY21GdWMybGxiblFzSUdOMGVDbGNiaUFxSUNBZ1JtRmljbWxqUTI5dWRISmhZM1JCWkdGd2RHVnlMVDQrUm1GaWNtbGpRMjl1ZEhKaFkzUkJaR0Z3ZEdWeU9pQlRaWEpwWVd4cGVtVWdiVzlrWld3Z2RHOGdTbE5QVGx4dUlDb2dJQ0JHWVdKeWFXTkRiMjUwY21GamRFRmtZWEIwWlhJdFBqNVRkSFZpT2lCd2RYUlRkR0YwWlNocFpDd2djMlZ5YVdGc2FYcGxaRVJoZEdFcFhHNGdLaUFnSUZOMGRXSXRQajVUZEdGMFpVUkNPaUJYY21sMFpTQmtZWFJoWEc0Z0tpQWdJRk4wWVhSbFJFSXRMVDQrVTNSMVlqb2dVM1ZqWTJWemMxeHVJQ29nSUNCVGRIVmlMUzArUGtaaFluSnBZME52Ym5SeVlXTjBRV1JoY0hSbGNqb2dVM1ZqWTJWemMxeHVJQ29nSUNCR1lXSnlhV05EYjI1MGNtRmpkRUZrWVhCMFpYSXRMVDQrUTI5dWRISmhZM1E2SUcxdlpHVnNYRzRnS2k5Y2JtVjRjRzl5ZENCamJHRnpjeUJHWVdKeWFXTkRiMjUwY21GamRFRmtZWEIwWlhJZ1pYaDBaVzVrY3lCRGIzVmphRVJDUVdSaGNIUmxjanhjYmlBZ1lXNTVMRnh1SUNCMmIybGtMRnh1SUNCR1lXSnlhV05EYjI1MGNtRmpkRU52Ym5SbGVIUmNiajRnZTF4dUlDQndjbWwyWVhSbElITjBZWFJwWXlCeVpXRmtiMjVzZVNCUVVrbFdRVlJGWDBKUFQwdE5RVkpMWDFCU1JVWkpXQ0E5SUZ3aVgxOWtZMlpmY0haMFltMWZYMXdpTzF4dVhHNGdJSEJ5YVhaaGRHVWdjM1JoZEdsaklIQmhjbk5sVTNsdWRHaGxkR2xqVUhKcGRtRjBaVUp2YjJ0dFlYSnJLRnh1SUNBZ0lHSnZiMnR0WVhKck9pQjFibXR1YjNkdVhHNGdJQ2s2SUc1MWJXSmxjaUI4SUhWdVpHVm1hVzVsWkNCN1hHNGdJQ0FnYVdZZ0tIUjVjR1Z2WmlCaWIyOXJiV0Z5YXlBaFBUMGdYQ0p6ZEhKcGJtZGNJaWtnY21WMGRYSnVJSFZ1WkdWbWFXNWxaRHRjYmlBZ0lDQnBaaUFvSVdKdmIydHRZWEpyTG5OMFlYSjBjMWRwZEdnb1JtRmljbWxqUTI5dWRISmhZM1JCWkdGd2RHVnlMbEJTU1ZaQlZFVmZRazlQUzAxQlVrdGZVRkpGUmtsWUtTbGNiaUFnSUNBZ0lISmxkSFZ5YmlCMWJtUmxabWx1WldRN1hHNGdJQ0FnWTI5dWMzUWdjbUYzSUQwZ1ltOXZhMjFoY21zdWMyeHBZMlVvWEc0Z0lDQWdJQ0JHWVdKeWFXTkRiMjUwY21GamRFRmtZWEIwWlhJdVVGSkpWa0ZVUlY5Q1QwOUxUVUZTUzE5UVVrVkdTVmd1YkdWdVozUm9YRzRnSUNBZ0tUdGNiaUFnSUNCamIyNXpkQ0J3WVhKelpXUWdQU0JPZFcxaVpYSW9jbUYzS1R0Y2JpQWdJQ0J5WlhSMWNtNGdUblZ0WW1WeUxtbHpTVzUwWldkbGNpaHdZWEp6WldRcElDWW1JSEJoY25ObFpDQStQU0F3SUQ4Z2NHRnljMlZrSURvZ2RXNWtaV1pwYm1Wa08xeHVJQ0I5WEc1Y2JpQWdjSEpwZG1GMFpTQnpkR0YwYVdNZ1luVnBiR1JUZVc1MGFHVjBhV05RY21sMllYUmxRbTl2YTIxaGNtc29iMlptYzJWME9pQnVkVzFpWlhJcE9pQnpkSEpwYm1jZ2UxeHVJQ0FnSUhKbGRIVnliaUJnSkh0R1lXSnlhV05EYjI1MGNtRmpkRUZrWVhCMFpYSXVVRkpKVmtGVVJWOUNUMDlMVFVGU1MxOVFVa1ZHU1ZoOUpIdHZabVp6WlhSOVlEdGNiaUFnZlZ4dVhHNGdJSEJ5YjNSbFkzUmxaQ0J2ZG1WeWNtbGtaU0JuWlhSRGJHbGxiblFvS1RvZ2RtOXBaQ0I3WEc0Z0lDQWdkR2h5YjNjZ2JtVjNJRlZ1YzNWd2NHOXlkR1ZrUlhKeWIzSW9YQ0pEYkdsbGJuUWdhWE1nYm05MElITjFjSEJ2Y25SbFpDQnBiaUJHWVdKeWFXTWdZMjl1ZEhKaFkzUnpYQ0lwTzF4dUlDQjlYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdWR1Y0ZENCa1pXTnZaR1Z5SUdadmNpQmpiMjUyWlhKMGFXNW5JR0pwYm1GeWVTQmtZWFJoSUhSdklITjBjbWx1WjNOY2JpQWdJQ292WEc0Z0lIQnlhWFpoZEdVZ2MzUmhkR2xqSUhSbGVIUkVaV052WkdWeUlEMGdibVYzSUZSbGVIUkVaV052WkdWeUtGd2lkWFJtT0Z3aUtUdGNibHh1SUNCd2NtOTBaV04wWldRZ2MzUmhkR2xqSUhKbFlXUnZibXg1SUhObGNtbGhiR2w2WlhJZ1BTQnVaWGNnVTJsdGNHeGxSR1YwWlhKdGFXNXBjM1JwWTFObGNtbGhiR2w2WlhJb0tUdGNibHh1SUNBdktpcGNiaUFnSUNvZ1FHUmxjMk55YVhCMGFXOXVJRU52Ym5SbGVIUWdZMjl1YzNSeWRXTjBiM0lnWm05eUlIUm9hWE1nWVdSaGNIUmxjbHh1SUNBZ0tpQkFjM1Z0YldGeWVTQlBkbVZ5Y21sa1pYTWdkR2hsSUdKaGMyVWdRMjl1ZEdWNGRDQmpiMjV6ZEhKMVkzUnZjaUIzYVhSb0lFWmhZbkpwWTBOdmJuUnlZV04wUTI5dWRHVjRkRnh1SUNBZ0tpOWNiaUFnY0hKdmRHVmpkR1ZrSUc5MlpYSnlhV1JsSUdkbGRDQkRiMjUwWlhoMEtDazZJRU52Ym5OMGNuVmpkRzl5UEVaaFluSnBZME52Ym5SeVlXTjBRMjl1ZEdWNGRENGdlMXh1SUNBZ0lISmxkSFZ5YmlCR1lXSnlhV05EYjI1MGNtRmpkRU52Ym5SbGVIUTdYRzRnSUgxY2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhOamNtbHdkR2x2YmlCSFpYUnpJSFJvWlNCeVpYQnZjMmwwYjNKNUlHTnZibk4wY25WamRHOXlJR1p2Y2lCMGFHbHpJR0ZrWVhCMFpYSmNiaUFnSUNvZ1FITjFiVzFoY25rZ1VtVjBkWEp1Y3lCMGFHVWdSbUZpY21salEyOXVkSEpoWTNSU1pYQnZjMmwwYjNKNUlHTnZibk4wY25WamRHOXlJR1p2Y2lCamNtVmhkR2x1WnlCeVpYQnZjMmwwYjNKcFpYTmNiaUFnSUNvZ1FIUmxiWEJzWVhSbElFMGdMU0JVZVhCbElHVjRkR1Z1WkdsdVp5Qk5iMlJsYkZ4dUlDQWdLaUJBY21WMGRYSnVJSHREYjI1emRISjFZM1J2Y2p4U1pYQnZjMmwwYjNKNVBFMHNJRTFoYm1kdlVYVmxjbmtzSUVaaFluSnBZME52Ym5SeVlXTjBRV1JoY0hSbGNpd2dSbUZpY21salEyOXVkSEpoWTNSR2JHRm5jeXdnUm1GaWNtbGpRMjl1ZEhKaFkzUkRiMjUwWlhoMFBqNTlJRlJvWlNCeVpYQnZjMmwwYjNKNUlHTnZibk4wY25WamRHOXlYRzRnSUNBcUwxeHVJQ0J2ZG1WeWNtbGtaU0J5WlhCdmMybDBiM0o1UEZ4dUlDQWdJRklnWlhoMFpXNWtjeUJTWlhCdmMybDBiM0o1UEZ4dUlDQWdJQ0FnWVc1NUxGeHVJQ0FnSUNBZ1FXUmhjSFJsY2p4aGJua3NJSFp2YVdRc0lFMWhibWR2VVhWbGNua3NJRU52Ym5SbGVIUThSbUZpY21salEyOXVkSEpoWTNSR2JHRm5jejQrWEc0Z0lDQWdQaXhjYmlBZ1BpZ3BPaUJEYjI1emRISjFZM1J2Y2p4U1BpQjdYRzRnSUNBZ2NtVjBkWEp1SUVaaFluSnBZME52Ym5SeVlXTjBVbVZ3YjNOcGRHOXllU0JoY3lCMWJtdHViM2R1SUdGeklFTnZibk4wY25WamRHOXlQRkkrTzF4dUlDQjlYRzVjYmlBZ2IzWmxjbkpwWkdVZ1VHRm5hVzVoZEc5eVBFMGdaWGgwWlc1a2N5Qk5iMlJsYkQ0b1hHNGdJQ0FnY1hWbGNuazZJRTFoYm1kdlVYVmxjbmtzWEc0Z0lDQWdjMmw2WlRvZ2JuVnRZbVZ5TEZ4dUlDQWdJR05zWVhwNk9pQkRiMjV6ZEhKMVkzUnZjanhOUGx4dUlDQXBPaUJRWVdkcGJtRjBiM0k4VFN3Z1lXNTVMQ0JOWVc1bmIxRjFaWEo1UGlCN1hHNGdJQ0FnY21WMGRYSnVJRzVsZHlCR1lXSnlhV05EYjI1MGNtRmpkRkJoWjJsdVlYUnZjaWgwYUdsekxDQnhkV1Z5ZVN3Z2MybDZaU3dnWTJ4aGVub3BPMXh1SUNCOVhHNWNiaUFnYjNabGNuSnBaR1VnWVhONWJtTWdVMlZ4ZFdWdVkyVW9iM0IwYVc5dWN6b2dVMlZ4ZFdWdVkyVlBjSFJwYjI1ektUb2dVSEp2YldselpUeFRaWEYxWlc1alpUNGdlMXh1SUNBZ0lISmxkSFZ5YmlCdVpYY2dSbUZpY21salEyOXVkSEpoWTNSVFpYRjFaVzVqWlNodmNIUnBiMjV6TENCMGFHbHpJR0Z6SUdGdWVTazdYRzRnSUgxY2JseHVJQ0J3Y205MFpXTjBaV1FnYjNabGNuSnBaR1VnUkdsemNHRjBZMmdvS1RvZ1JHbHpjR0YwWTJnOFJtRmljbWxqUTI5dWRISmhZM1JCWkdGd2RHVnlQaUI3WEc0Z0lDQWdjbVYwZFhKdUlHNWxkeUJHWVdKeWFXTkRiMjUwY21GamRFUnBjM0JoZEdOb0tDazdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUUdSbGMyTnlhWEIwYVc5dUlFTnlaV0YwWlhNZ1lTQnVaWGNnUm1GaWNtbGpRMjl1ZEhKaFkzUkJaR0Z3ZEdWeUlHbHVjM1JoYm1ObFhHNGdJQ0FxSUVCemRXMXRZWEo1SUVsdWFYUnBZV3hwZW1WeklHRnVJR0ZrWVhCMFpYSWdabTl5SUdsdWRHVnlZV04wYVc1bklIZHBkR2dnZEdobElFWmhZbkpwWXlCemRHRjBaU0JrWVhSaFltRnpaVnh1SUNBZ0tpQkFjR0Z5WVcwZ2UzWnZhV1I5SUhOamIzQmxJQzBnVG05MElIVnpaV1FnYVc0Z2RHaHBjeUJoWkdGd2RHVnlYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCYllXeHBZWE5kSUMwZ1QzQjBhVzl1WVd3Z1lXeHBZWE1nWm05eUlIUm9aU0JoWkdGd2RHVnlJR2x1YzNSaGJtTmxYRzRnSUNBcUwxeHVJQ0JqYjI1emRISjFZM1J2Y2loelkyOXdaVG9nZG05cFpDd2dZV3hwWVhNL09pQnpkSEpwYm1jcElIdGNiaUFnSUNCemRYQmxjaWh6WTI5d1pTd2dSbUZpY21salJteGhkbTkxY2l3Z1lXeHBZWE1wTzF4dUlDQjlYRzVjYmlBZ2IzWmxjbkpwWkdVZ1ptOXlLR052Ym1acFp6b2dVR0Z5ZEdsaGJEeGhibmsrTENBdUxpNWhjbWR6T2lCaGJua3BPaUIwZVhCbGIyWWdkR2hwY3lCN1hHNGdJQ0FnY21WMGRYSnVJSE4xY0dWeUxtWnZjaWhqYjI1bWFXY3NJQzR1TG1GeVozTXBPMXh1SUNCOVhHNWNiaUFnY0hKdmRHVmpkR1ZrSUdkbGRFMXZaR1ZzUkdWbVlYVnNkSE04VFNCbGVIUmxibVJ6SUUxdlpHVnNQaWhqYkdGNmVqb2dRMjl1YzNSeWRXTjBiM0k4VFQ0cElIdGNiaUFnSUNCamIyNXpkQ0J0SUQwZ2JtVjNJR05zWVhwNktDazdYRzRnSUNBZ2NtVjBkWEp1SUNoTlpYUmhaR0YwWVM1d2NtOXdaWEowYVdWektHTnNZWHA2S1NCOGZDQmJYU2t1Y21Wa2RXTmxLRnh1SUNBZ0lDQWdLR0ZqWXl3Z2NDa2dQVDRnZTF4dUlDQWdJQ0FnSUNCcFppQW9kSGx3Wlc5bUlHMWJjQ0JoY3lCclpYbHZaaUJOWFNBaFBUMGdYQ0oxYm1SbFptbHVaV1JjSWlsY2JpQWdJQ0FnSUNBZ0lDQmhZMk5iY0NCaGN5QnJaWGx2WmlCTlhTQTlJRzFiY0NCaGN5QnJaWGx2WmlCTlhUdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHRmpZenRjYmlBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0I3ZlNCaGN5QlNaV052Y21ROGEyVjViMllnVFN3Z1lXNTVQbHh1SUNBZ0lDazdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUUdSbGMyTnlhWEIwYVc5dUlFTnlaV0YwWlhNZ1lTQnlaV052Y21RZ2FXNGdkR2hsSUhOMFlYUmxJR1JoZEdGaVlYTmxYRzRnSUNBcUlFQnpkVzF0WVhKNUlGTmxjbWxoYkdsNlpYTWdZU0J0YjJSbGJDQmhibVFnYzNSdmNtVnpJR2wwSUdsdUlIUm9aU0JHWVdKeWFXTWdjM1JoZEdVZ1pHRjBZV0poYzJWY2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJSFJoWW14bFRtRnRaU0F0SUZSb1pTQnVZVzFsSUc5bUlIUm9aU0IwWVdKc1pTOWpiMnhzWldOMGFXOXVYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuSUh3Z2JuVnRZbVZ5ZlNCcFpDQXRJRlJvWlNCeVpXTnZjbVFnYVdSbGJuUnBabWxsY2x4dUlDQWdLaUJBY0dGeVlXMGdlMUpsWTI5eVpEeHpkSEpwYm1jc0lHRnVlVDU5SUcxdlpHVnNJQzBnVkdobElISmxZMjl5WkNCa1lYUmhYRzRnSUNBcUlFQndZWEpoYlNCN1VtVmpiM0prUEhOMGNtbHVaeXdnWVc1NVBuMGdkSEpoYm5OcFpXNTBJQzBnVkhKaGJuTnBaVzUwSUdSaGRHRWdLRzV2ZENCMWMyVmtJR2x1SUhSb2FYTWdhVzF3YkdWdFpXNTBZWFJwYjI0cFhHNGdJQ0FxSUVCd1lYSmhiU0I3TGk0dVlXNTVXMTE5SUdGeVozTWdMU0JCWkdScGRHbHZibUZzSUdGeVozVnRaVzUwY3l3Z2FXNWpiSFZrYVc1bklIUm9aU0JqYUdGcGJtTnZaR1VnYzNSMVlpQmhibVFnYkc5bloyVnlYRzRnSUNBcUlFQnlaWFIxY200Z2UxQnliMjFwYzJVOFVtVmpiM0prUEhOMGNtbHVaeXdnWVc1NVBqNTlJRkJ5YjIxcGMyVWdjbVZ6YjJ4MmFXNW5JSFJ2SUhSb1pTQmpjbVZoZEdWa0lISmxZMjl5WkZ4dUlDQWdLaTljYmlBZ2IzWmxjbkpwWkdVZ1lYTjVibU1nWTNKbFlYUmxQRTBnWlhoMFpXNWtjeUJOYjJSbGJENG9YRzRnSUNBZ1kyeGhlbm82SUVOdmJuTjBjblZqZEc5eVBFMCtMRnh1SUNBZ0lHbGtPaUJRY21sdFlYSjVTMlY1Vkhsd1pTeGNiaUFnSUNCdGIyUmxiRG9nVW1WamIzSmtQSE4wY21sdVp5d2dZVzU1UGl4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJEYjI1MFpYaDBkV0ZzUVhKbmN6eERiMjUwWlhoMFBFWmhZbkpwWTBOdmJuUnlZV04wUm14aFozTStQbHh1SUNBcE9pQlFjbTl0YVhObFBGSmxZMjl5WkR4emRISnBibWNzSUdGdWVUNCtJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHTjBlQ3dnYkc5bklIMGdQU0IwYUdsekxteHZaME4wZUNoaGNtZHpMQ0IwYUdsekxtTnlaV0YwWlNrN1hHNGdJQ0FnZEdocGN5NWxibVp2Y21ObFRXbHljbTl5UVhWMGFHOXlhWHBoZEdsdmJpaGpiR0Y2ZWl3Z1kzUjRLVHRjYmlBZ0lDQnNiMmN1YVc1bWJ5aGdhVzRnUVVSQlVGUkZVaUJqY21WaGRHVWdkMmwwYUNCaGNtZHpJQ1I3WVhKbmMzMWdLVHRjYmlBZ0lDQmpiMjV6ZENCMFlXSnNaVTVoYldVZ1BTQk5iMlJsYkM1MFlXSnNaVTVoYldVb1kyeGhlbm9wTzF4dUlDQWdJR052Ym5OMElHTnZiWEJ2YzJWa1MyVjVJRDBnWTNSNExuTjBkV0l1WTNKbFlYUmxRMjl0Y0c5emFYUmxTMlY1S0hSaFlteGxUbUZ0WlN3Z1cxTjBjbWx1WnlocFpDbGRLVHRjYmlBZ0lDQmpiMjV6ZENCdGFYSnliM0pEYjJ4c1pXTjBhVzl1SUQwZ1kzUjRMbWRsZEU5eVZXNWtaV1pwYm1Wa0tGd2liV2x5Y205eVEyOXNiR1ZqZEdsdmJsd2lLU0JoYzF4dUlDQWdJQ0FnZkNCemRISnBibWRjYmlBZ0lDQWdJSHdnZFc1a1pXWnBibVZrTzF4dUlDQWdJR052Ym5OMElHWjFiR3g1VTJWbmNtVm5ZWFJsWkNBOUlHTjBlQzVwYzBaMWJHeDVVMlZuY21WbllYUmxaQ0FtSmlBaGJXbHljbTl5UTI5c2JHVmpkR2x2Ymp0Y2JseHVJQ0FnSUdsbUlDZ2hiV2x5Y205eVEyOXNiR1ZqZEdsdmJpa2dlMXh1SUNBZ0lDQWdiR1YwSUdWNGFYTjBhVzVuT2lCaGJuazdYRzRnSUNBZ0lDQjBjbmtnZTF4dUlDQWdJQ0FnSUNCbGVHbHpkR2x1WnlBOUlHRjNZV2wwSUhSb2FYTXVjbVZoWkZOMFlYUmxLR052YlhCdmMyVmtTMlY1TENCamRIZ3BPMXh1SUNBZ0lDQWdmU0JqWVhSamFDQW9aVG9nZFc1cmJtOTNiaWtnZTF4dUlDQWdJQ0FnSUNBdkx5QmxjMnhwYm5RdFpHbHpZV0pzWlMxdVpYaDBMV3hwYm1VZ2JtOHRaWGd0WVhOemFXZHVYRzRnSUNBZ0lDQWdJR1VnUFNCMGFHbHpMbkJoY25ObFJYSnliM0lvWlNCaGN5QkZjbkp2Y2lrN1hHNGdJQ0FnSUNBZ0lHbG1JQ2doS0dVZ2FXNXpkR0Z1WTJWdlppQk9iM1JHYjNWdVpFVnljbTl5S1NrZ2RHaHliM2NnWlR0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUdsbUlDaGxlR2x6ZEdsdVp5bGNiaUFnSUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRU52Ym1ac2FXTjBSWEp5YjNJb1hHNGdJQ0FnSUNBZ0lDQWdZSEpsWTI5eVpDQjNhWFJvSUdsa0lDUjdhV1I5SUdsdUlIUmhZbXhsSUNSN2RHRmliR1ZPWVcxbGZTQmhiSEpsWVdSNUlHVjRhWE4wYzJCY2JpQWdJQ0FnSUNBZ0tUdGNiaUFnSUNCOVhHNWNiaUFnSUNCMGNua2dlMXh1SUNBZ0lDQWdiRzluTG1sdVptOG9ZR0ZrWkdsdVp5QmxiblJ5ZVNCMGJ5QWtlM1JoWW14bFRtRnRaWDBnZEdGaWJHVWdkMmwwYUNCd2F5QWtlMmxrZldBcE8xeHVYRzRnSUNBZ0lDQnBaaUFvYldseWNtOXlRMjlzYkdWamRHbHZiaWtnZTF4dUlDQWdJQ0FnSUNCdGIyUmxiQ0E5SUdGM1lXbDBJSFJvYVhNdVptOXlVSEpwZG1GMFpTaHRhWEp5YjNKRGIyeHNaV04wYVc5dUtTNXdkWFJUZEdGMFpTaGNiaUFnSUNBZ0lDQWdJQ0JqYjIxd2IzTmxaRXRsZVN4Y2JpQWdJQ0FnSUNBZ0lDQnRiMlJsYkN4Y2JpQWdJQ0FnSUNBZ0lDQmpkSGhjYmlBZ0lDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR1JsWm1GMWJIUnpJRDBnZEdocGN5NW5aWFJOYjJSbGJFUmxabUYxYkhSektHTnNZWHA2S1R0Y2JpQWdJQ0FnSUNBZ0x5OGdhR0Z1Wkd4bElIQjFZbXhwWXlCa1lYUmhJR2xtSUc1dmRDQm1kV3hzZVNCelpXZHlaV2RoZEdWa1hHNGdJQ0FnSUNBZ0lHbG1JQ2doWm5Wc2JIbFRaV2R5WldkaGRHVmtLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2FXWWdLRnh1SUNBZ0lDQWdJQ0FnSUNBZ1QySnFaV04wTG10bGVYTW9iVzlrWld3cExtWnBiSFJsY2lnb2F5a2dQVDRnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2F5QTlQVDBnUTI5MVkyaEVRa3RsZVhNdVZFRkNURVVwSUhKbGRIVnliaUJtWVd4elpUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUNFb1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1pHVm1ZWFZzZEhNZ0ppWmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnJJR2x1SUdSbFptRjFiSFJ6SUNZbVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1pHVm1ZWFZzZEhOYmF5QmhjeUJyWlhsdlppQk5YU0E5UFQwZ2JXOWtaV3hiYTExY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDBwTG14bGJtZDBhRnh1SUNBZ0lDQWdJQ0FnSUNsY2JpQWdJQ0FnSUNBZ0lDQWdJRzF2WkdWc0lEMGdZWGRoYVhRZ2RHaHBjeTV3ZFhSVGRHRjBaU2hqYjIxd2IzTmxaRXRsZVN3Z2JXOWtaV3dzSUdOMGVDazdYRzRnSUNBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnSUNBdkx5Qm9ZVzVrYkdVZ2MyVm5jbVZuWVhSbFpDQjNjbWwwWlhOY2JpQWdJQ0FnSUNBZ1kyOXVjM1FnWkdGMFlTQTlJR04wZUM1blpYUkdjbTl0UTJocGJHUnlaVzRvWENKelpXZHlaV2RoZEdWa1JHRjBZVndpS1R0Y2JpQWdJQ0FnSUNBZ2FXWWdLR1JoZEdFcElIdGNiaUFnSUNBZ0lDQWdJQ0JtYjNJZ0tHTnZibk4wSUdOdmJHeGxZM1JwYjI0Z2FXNGdaR0YwWVNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnVDJKcVpXTjBMbUZ6YzJsbmJpaGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2JXOWtaV3dzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJR0YzWVdsMElIUm9hWE11Wm05eVVISnBkbUYwWlNoamIyeHNaV04wYVc5dUtTNXdkWFJUZEdGMFpTaGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjF3YjNObFpFdGxlU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JrWVhSaFcyTnZiR3hsWTNScGIyNWRXMmxrSUdGeklHRnVlVjBzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTNSNFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNsY2JpQWdJQ0FnSUNBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZTQmpZWFJqYUNBb1pUb2dkVzVyYm05M2Jpa2dlMXh1SUNBZ0lDQWdkR2h5YjNjZ2RHaHBjeTV3WVhKelpVVnljbTl5S0dVZ1lYTWdSWEp5YjNJcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUhKbGRIVnliaUJ0YjJSbGJEdGNiaUFnZlZ4dVhHNGdJRzkyWlhKeWFXUmxJR0Z6ZVc1aklHTnlaV0YwWlVGc2JEeE5JR1Y0ZEdWdVpITWdUVzlrWld3K0tGeHVJQ0FnSUhSaFlteGxUbUZ0WlRvZ1EyOXVjM1J5ZFdOMGIzSThUVDRzWEc0Z0lDQWdhV1E2SUZCeWFXMWhjbmxMWlhsVWVYQmxXMTBzWEc0Z0lDQWdiVzlrWld3NklGSmxZMjl5WkR4emRISnBibWNzSUdGdWVUNWJYU3hjYmlBZ0lDQXVMaTVoY21kek9pQkRiMjUwWlhoMGRXRnNRWEpuY3p4R1lXSnlhV05EYjI1MGNtRmpkRU52Ym5SbGVIUStYRzRnSUNrNklGQnliMjFwYzJVOFVtVmpiM0prUEhOMGNtbHVaeXdnWVc1NVBsdGRQaUI3WEc0Z0lDQWdhV1lnS0dsa0xteGxibWQwYUNBaFBUMGdiVzlrWld3dWJHVnVaM1JvS1Z4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVsdWRHVnlibUZzUlhKeWIzSW9YQ0pKWkhNZ1lXNWtJRzF2WkdWc2N5QnRkWE4wSUdoaGRtVWdkR2hsSUhOaGJXVWdiR1Z1WjNSb1hDSXBPMXh1SUNBZ0lHTnZibk4wSUhzZ2JHOW5MQ0JqZEhoQmNtZHpJSDBnUFNCMGFHbHpMbXh2WjBOMGVDaGhjbWR6TENCMGFHbHpMbU55WldGMFpVRnNiQ2s3WEc0Z0lDQWdZMjl1YzNRZ2RHRmliR1ZNWVdKbGJDQTlJRTF2WkdWc0xuUmhZbXhsVG1GdFpTaDBZV0pzWlU1aGJXVXBPMXh1SUNBZ0lHeHZaeTVrWldKMVp5aGdRM0psWVhScGJtY2dKSHRwWkM1c1pXNW5kR2g5SUdWdWRISnBaWE1nSkh0MFlXSnNaVXhoWW1Wc2ZTQjBZV0pzWldBcE8xeHVJQ0FnSUhKbGRIVnliaUJRY205dGFYTmxMbUZzYkNoY2JpQWdJQ0FnSUdsa0xtMWhjQ2dvYVN3Z1kyOTFiblFwSUQwK0lIUm9hWE11WTNKbFlYUmxLSFJoWW14bFRtRnRaU3dnYVN3Z2JXOWtaV3hiWTI5MWJuUmRMQ0F1TGk1amRIaEJjbWR6S1NsY2JpQWdJQ0FwTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFQmtaWE5qY21sd2RHbHZiaUJTWldGa2N5QmhJSEpsWTI5eVpDQm1jbTl0SUhSb1pTQnpkR0YwWlNCa1lYUmhZbUZ6WlZ4dUlDQWdLaUJBYzNWdGJXRnllU0JTWlhSeWFXVjJaWE1nWVc1a0lHUmxjMlZ5YVdGc2FYcGxjeUJoSUhKbFkyOXlaQ0JtY205dElIUm9aU0JHWVdKeWFXTWdjM1JoZEdVZ1pHRjBZV0poYzJWY2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJSFJoWW14bFRtRnRaU0F0SUZSb1pTQnVZVzFsSUc5bUlIUm9aU0IwWVdKc1pTOWpiMnhzWldOMGFXOXVYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuSUh3Z2JuVnRZbVZ5ZlNCcFpDQXRJRlJvWlNCeVpXTnZjbVFnYVdSbGJuUnBabWxsY2x4dUlDQWdLaUJBY0dGeVlXMGdleTR1TG1GdWVWdGRmU0JoY21keklDMGdRV1JrYVhScGIyNWhiQ0JoY21kMWJXVnVkSE1zSUdsdVkyeDFaR2x1WnlCMGFHVWdZMmhoYVc1amIyUmxJSE4wZFdJZ1lXNWtJR3h2WjJkbGNseHVJQ0FnS2lCQWNtVjBkWEp1SUh0UWNtOXRhWE5sUEZKbFkyOXlaRHh6ZEhKcGJtY3NJR0Z1ZVQ0K2ZTQlFjbTl0YVhObElISmxjMjlzZG1sdVp5QjBieUIwYUdVZ2NtVjBjbWxsZG1Wa0lISmxZMjl5WkZ4dUlDQWdLaTljYmlBZ2IzWmxjbkpwWkdVZ1lYTjVibU1nY21WaFpEeE5JR1Y0ZEdWdVpITWdUVzlrWld3K0tGeHVJQ0FnSUdOc1lYcDZPaUJEYjI1emRISjFZM1J2Y2p4TlBpeGNiaUFnSUNCcFpEb2dVSEpwYldGeWVVdGxlVlI1Y0dVc1hHNGdJQ0FnTGk0dVlYSm5jem9nUTI5dWRHVjRkSFZoYkVGeVozTThRMjl1ZEdWNGREeEdZV0p5YVdORGIyNTBjbUZqZEVac1lXZHpQajVjYmlBZ0tUb2dVSEp2YldselpUeFNaV052Y21ROGMzUnlhVzVuTENCaGJuaytQaUI3WEc0Z0lDQWdZMjl1YzNRZ2V5QmpkSGdzSUd4dlp5QjlJRDBnZEdocGN5NXNiMmREZEhnb1lYSm5jeXdnZEdocGN5NXlaV0ZrS1R0Y2JpQWdJQ0JzYjJjdWFXNW1ieWhnYVc0Z1FVUkJVRlJGVWlCeVpXRmtJSGRwZEdnZ1lYSm5jeUFrZTJGeVozTjlZQ2s3WEc0Z0lDQWdZMjl1YzNRZ2RHRmliR1ZPWVcxbElEMGdUVzlrWld3dWRHRmliR1ZPWVcxbEtHTnNZWHA2S1R0Y2JseHVJQ0FnSUdOdmJuTjBJR052YlhCdmMyVmtTMlY1SUQwZ1kzUjRMbk4wZFdJdVkzSmxZWFJsUTI5dGNHOXphWFJsUzJWNUtIUmhZbXhsVG1GdFpTd2dXMU4wY21sdVp5aHBaQ2xkS1R0Y2JpQWdJQ0JqYjI1emRDQnRhWEp5YjNKRGIyeHNaV04wYVc5dUlEMGdZM1I0TG1kbGRFOXlWVzVrWldacGJtVmtLRndpYldseWNtOXlRMjlzYkdWamRHbHZibHdpS1NCaGMxeHVJQ0FnSUNBZ2ZDQnpkSEpwYm1kY2JpQWdJQ0FnSUh3Z2RXNWtaV1pwYm1Wa08xeHVJQ0FnSUdOdmJuTjBJR2x6VFdseWNtOXlJRDBnWTNSNExtZGxkRTl5Vlc1a1pXWnBibVZrS0Z3aWJXbHljbTl5WENJcElHRnpJR0p2YjJ4bFlXNGdmQ0IxYm1SbFptbHVaV1E3WEc0Z0lDQWdhV1lnS0dselRXbHljbTl5SUNZbUlHMXBjbkp2Y2tOdmJHeGxZM1JwYjI0cElIdGNiaUFnSUNBZ0lIUnllU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJoZDJGcGRDQjBhR2x6TG1admNsQnlhWFpoZEdVb2JXbHljbTl5UTI5c2JHVmpkR2x2YmlrdWNtVmhaRk4wWVhSbEtGeHVJQ0FnSUNBZ0lDQWdJR052YlhCdmMyVmtTMlY1TEZ4dUlDQWdJQ0FnSUNBZ0lHTjBlRnh1SUNBZ0lDQWdJQ0FwTzF4dUlDQWdJQ0FnZlNCallYUmphQ0FvWlRvZ2RXNXJibTkzYmlrZ2UxeHVJQ0FnSUNBZ0lDQjBhSEp2ZHlCMGFHbHpMbkJoY25ObFJYSnliM0lvWlNCaGN5QkZjbkp2Y2lrN1hHNGdJQ0FnSUNCOUlHWnBibUZzYkhrZ2UxeHVJQ0FnSUNBZ0lDQmpkSGd1Y0hWMEtGd2liV2x5Y205eVhDSWdZWE1nWVc1NUxDQjFibVJsWm1sdVpXUXBPMXh1SUNBZ0lDQWdJQ0JqZEhndWNIVjBLRndpYldseWNtOXlRMjlzYkdWamRHbHZibHdpSUdGeklHRnVlU3dnZFc1a1pXWnBibVZrS1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc1Y2JpQWdJQ0JzWlhRZ2JXOWtaV3c2SUZKbFkyOXlaRHh6ZEhKcGJtY3NJR0Z1ZVQ0N1hHNWNiaUFnSUNCMGNua2dlMXh1SUNBZ0lDQWdiVzlrWld3Z1BTQmpkSGd1YVhOR2RXeHNlVk5sWjNKbFoyRjBaV1JjYmlBZ0lDQWdJQ0FnUHlCN2ZWeHVJQ0FnSUNBZ0lDQTZJR0YzWVdsMElIUm9hWE11Y21WaFpGTjBZWFJsS0dOdmJYQnZjMlZrUzJWNUxDQmpkSGdwTzF4dUlDQWdJSDBnWTJGMFkyZ2dLR1U2SUhWdWEyNXZkMjRwSUh0Y2JpQWdJQ0FnSUhSb2NtOTNJSFJvYVhNdWNHRnljMlZGY25KdmNpaGxJR0Z6SUVWeWNtOXlLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQmpiMjV6ZENCeVpXRmtRMjlzYkdWamRHbHZibk1nUFNCdVpYY2dVMlYwUEhOMGNtbHVaejRvVzF4dUlDQWdJQ0FnTGk0dUtHTjBlQzVuWlhSU1pXRmtRMjlzYkdWamRHbHZibk1vS1NCOGZDQmJYU2tzWEc0Z0lDQWdJQ0F1TGk0b1kzUjRMbU52Ym5OMWJXVlNaV0ZrUTI5c2JHVmpkR2x2Ym5Nb0tTQjhmQ0JiWFNrc1hHNGdJQ0FnWFNrN1hHNGdJQ0FnWm05eUlDaGpiMjV6ZENCamIyd2diMllnY21WaFpFTnZiR3hsWTNScGIyNXpLU0I3WEc0Z0lDQWdJQ0IwY25rZ2UxeHVJQ0FnSUNBZ0lDQlBZbXBsWTNRdVlYTnphV2R1S0cxdlpHVnNMQ0JoZDJGcGRDQjBhR2x6TG1admNsQnlhWFpoZEdVb1kyOXNLUzV5WldGa1UzUmhkR1VvWTI5dGNHOXpaV1JMWlhrc0lHTjBlQ2twTzF4dUlDQWdJQ0FnZlNCallYUmphQ0FvWlRvZ2RXNXJibTkzYmlrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCd1lYSnpaV1FnUFNCMGFHbHpMbkJoY25ObFJYSnliM0lvWlNCaGN5QkZjbkp2Y2lrN1hHNGdJQ0FnSUNBZ0lHbG1JQ2h3WVhKelpXUWdhVzV6ZEdGdVkyVnZaaUJPYjNSR2IzVnVaRVZ5Y205eUtTQmpiMjUwYVc1MVpUdGNiaUFnSUNBZ0lDQWdkR2h5YjNjZ2NHRnljMlZrTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ0lDQnBaaUFvSVU5aWFtVmpkQzVyWlhsektHMXZaR1ZzS1M1c1pXNW5kR2dwSUh0Y2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCT2IzUkdiM1Z1WkVWeWNtOXlLRnh1SUNBZ0lDQWdJQ0JnY21WamIzSmtJSGRwZEdnZ2FXUWdKSHRwWkgwZ2FXNGdkR0ZpYkdVZ0pIdDBZV0pzWlU1aGJXVjlJR1J2WlhNZ2JtOTBJR1Y0YVhOMFlGeHVJQ0FnSUNBZ0tUdGNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJRzF2WkdWc08xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhOamNtbHdkR2x2YmlCU1pYUnlhV1YyWlhNZ2JYVnNkR2x3YkdVZ2NtVmpiM0prY3lCbWNtOXRJSFJvWlNCa1lYUmhZbUZ6WlZ4dUlDQWdLaUJBYzNWdGJXRnllU0JHWlhSamFHVnpJRzExYkhScGNHeGxJSEpsWTI5eVpITWdkMmwwYUNCMGFHVWdaMmwyWlc0Z1NVUnpJR1p5YjIwZ2RHaGxJSE53WldOcFptbGxaQ0IwWVdKc1pWeHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnZEdGaWJHVk9ZVzFsSUMwZ1ZHaGxJRzVoYldVZ2IyWWdkR2hsSUhSaFlteGxJSFJ2SUhKbFlXUWdabkp2YlZ4dUlDQWdLaUJBY0dGeVlXMGdhV1FnTFNCVWFHVWdhV1JsYm5ScFptbGxjbk1nYjJZZ2RHaGxJSEpsWTI5eVpITWdkRzhnY21WMGNtbGxkbVZjYmlBZ0lDb2dRSEJoY21GdElIc3VMaTVoYm5sYlhYMGdZWEpuY3lBdElFRmtaR2wwYVc5dVlXd2dZWEpuZFcxbGJuUnpJSE53WldOcFptbGpJSFJ2SUhSb1pTQmhaR0Z3ZEdWeUlHbHRjR3hsYldWdWRHRjBhVzl1WEc0Z0lDQXFJRUJ5WlhSMWNtNGdRU0J3Y205dGFYTmxJSFJvWVhRZ2NtVnpiMngyWlhNZ2RHOGdZVzRnWVhKeVlYa2diMllnY21WMGNtbGxkbVZrSUhKbFkyOXlaSE5jYmlBZ0lDb3ZYRzRnSUc5MlpYSnlhV1JsSUdGemVXNWpJSEpsWVdSQmJHdzhUU0JsZUhSbGJtUnpJRTF2WkdWc1BpaGNiaUFnSUNCamJHRjZlam9nUTI5dWMzUnlkV04wYjNJOFRUNHNYRzRnSUNBZ2FXUTZJRkJ5YVcxaGNubExaWGxVZVhCbFcxMHNYRzRnSUNBZ0xpNHVZWEpuY3pvZ1EyOXVkR1Y0ZEhWaGJFRnlaM004UTI5dWRHVjRkRHhHWVdKeWFXTkRiMjUwY21GamRFWnNZV2R6UGo1Y2JpQWdLVG9nVUhKdmJXbHpaVHhTWldOdmNtUThjM1J5YVc1bkxDQmhibmsrVzEwK0lIdGNiaUFnSUNCamIyNXpkQ0I3SUd4dlp5d2dZM1I0SUgwZ1BTQjBhR2x6TG14dlowTjBlQ2hoY21kekxDQjBhR2x6TG5KbFlXUkJiR3dwTzF4dUlDQWdJR052Ym5OMElIUmhZbXhsVG1GdFpTQTlJRTF2WkdWc0xuUmhZbXhsVG1GdFpTaGpiR0Y2ZWlrN1hHNGdJQ0FnYkc5bkxtUmxZblZuS0dCU1pXRmthVzVuSUNSN2FXUXViR1Z1WjNSb2ZTQmxiblJ5YVdWeklDUjdkR0ZpYkdWT1lXMWxmU0IwWVdKc1pXQXBPMXh1SUNBZ0lHTnZibk4wSUdKeVpXRnJUMjVUYVc1bmJHVkdZV2xzZFhKbElEMGdZM1I0TG1kbGRDaGNJbUp5WldGclQyNVRhVzVuYkdWR1lXbHNkWEpsU1c1Q2RXeHJYQ0lwSUQ4L0lIUnlkV1U3WEc0Z0lDQWdZMjl1YzNRZ1kyOXVkR2x1ZFdWUGJrVnljbTl5SUQwZ0lXSnlaV0ZyVDI1VGFXNW5iR1ZHWVdsc2RYSmxPMXh1WEc0Z0lDQWdZMjl1YzNRZ2JXbHljbTl5UTI5c2JHVmpkR2x2YmlBOUlHTjBlQzVuWlhSUGNsVnVaR1ZtYVc1bFpDaGNJbTFwY25KdmNrTnZiR3hsWTNScGIyNWNJaWtnWVhOY2JpQWdJQ0FnSUh3Z2MzUnlhVzVuWEc0Z0lDQWdJQ0I4SUhWdVpHVm1hVzVsWkR0Y2JpQWdJQ0JqYjI1emRDQnBjMDFwY25KdmNpQTlJR04wZUM1blpYUlBjbFZ1WkdWbWFXNWxaQ2hjSW0xcGNuSnZjbHdpS1NCaGN5QmliMjlzWldGdUlId2dkVzVrWldacGJtVmtPMXh1WEc0Z0lDQWdZMjl1YzNRZ2NtVmhaRTFwY25KdmNpQTlJR0Z6ZVc1aklEeE5JR1Y0ZEdWdVpITWdUVzlrWld3K0tGeHVJQ0FnSUNBZ1kyeGhlbm82SUVOdmJuTjBjblZqZEc5eVBFMCtMRnh1SUNBZ0lDQWdhV1E2SUZCeWFXMWhjbmxMWlhsVWVYQmxMRnh1SUNBZ0lDQWdMaTR1WVhKbmN6b2dRMjl1ZEdWNGRIVmhiRUZ5WjNNOFEyOXVkR1Y0ZER4R1lXSnlhV05EYjI1MGNtRmpkRVpzWVdkelBqNWNiaUFnSUNBcElEMCtJSHRjYmlBZ0lDQWdJR2xtSUNnaGJXbHljbTl5UTI5c2JHVmpkR2x2YmlsY2JpQWdJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFSmhaRkpsY1hWbGMzUkZjbkp2Y2loY0lrMXBjM05wYm1jZ2JXbHljbTl5SUdOdmJHeGxZM1JwYjI0Z1ptOXlJRzFwY25KdmNpQnlaV0ZrWENJcE8xeHVJQ0FnSUNBZ2RISjVJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdleUJqZEhnc0lHeHZaeUI5SUQwZ2RHaHBjeTVzYjJkRGRIZ29ZWEpuY3l3Z2NtVmhaRTFwY25KdmNpazdYRzRnSUNBZ0lDQWdJR3h2Wnk1cGJtWnZLR0JwYmlCQlJFRlFWRVZTSUhKbFlXUWdkMmwwYUNCaGNtZHpJQ1I3WVhKbmMzMWdLVHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdkR0ZpYkdWT1lXMWxJRDBnVFc5a1pXd3VkR0ZpYkdWT1lXMWxLR05zWVhwNktUdGNibHh1SUNBZ0lDQWdJQ0JqYjI1emRDQmpiMjF3YjNObFpFdGxlU0E5SUdOMGVDNXpkSFZpTG1OeVpXRjBaVU52YlhCdmMybDBaVXRsZVNoMFlXSnNaVTVoYldVc0lGdGNiaUFnSUNBZ0lDQWdJQ0JUZEhKcGJtY29hV1FwTEZ4dUlDQWdJQ0FnSUNCZEtUdGNibHh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdZWGRoYVhRZ2RHaHBjeTVtYjNKUWNtbDJZWFJsS0cxcGNuSnZja052Ykd4bFkzUnBiMjRwTG5KbFlXUlRkR0YwWlNoY2JpQWdJQ0FnSUNBZ0lDQmpiMjF3YjNObFpFdGxlU3hjYmlBZ0lDQWdJQ0FnSUNCamRIaGNiaUFnSUNBZ0lDQWdLVHRjYmlBZ0lDQWdJSDBnWTJGMFkyZ2dLR1U2SUhWdWEyNXZkMjRwSUh0Y2JpQWdJQ0FnSUNBZ2RHaHliM2NnZEdocGN5NXdZWEp6WlVWeWNtOXlLR1VnWVhNZ1JYSnliM0lwTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDA3WEc1Y2JpQWdJQ0IwY25rZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnZEdGemEzTWdQU0JwWkM1dFlYQW9YRzRnSUNBZ0lDQWdJQ2hwS1NBOVBpQW9LU0E5UGx4dUlDQWdJQ0FnSUNBZ0lHbHpUV2x5Y205eUlDWW1JRzFwY25KdmNrTnZiR3hsWTNScGIyNWNiaUFnSUNBZ0lDQWdJQ0FnSUQ4Z2NtVmhaRTFwY25KdmNpaGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiR0Y2ZWl4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDNHVMbUZ5WjNNc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kzUjRMbTkyWlhKeWFXUmxLSHNnYm05RmJXbDBVMmx1WjJ4bE9pQjBjblZsSUgwcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNsY2JpQWdJQ0FnSUNBZ0lDQWdJRG9nZEdocGN5NXlaV0ZrS0dOc1lYcDZMQ0JwTENBdUxpNWhjbWR6TENCamRIZ3ViM1psY25KcFpHVW9leUJ1YjBWdGFYUlRhVzVuYkdVNklIUnlkV1VnZlNrcFhHNGdJQ0FnSUNBcE8xeHVYRzRnSUNBZ0lDQmpiMjV6ZENCeVlYZFNaWE4xYkhRZ1BTQmpiMjUwYVc1MVpVOXVSWEp5YjNKY2JpQWdJQ0FnSUNBZ1B5QmhkMkZwZENCd2NtOXRhWE5sVTJWeGRXVnVZMlVvZEdGemEzTXNJSFJ5ZFdVcFhHNGdJQ0FnSUNBZ0lEb2dZWGRoYVhRZ2NISnZiV2x6WlZObGNYVmxibU5sS0hSaGMydHpLVHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnlaWE52YkhabFFuVnNhMU5sY1hWbGJtTmxVbVZ6ZFd4MEtGeHVJQ0FnSUNBZ0lDQnlZWGRTWlhOMWJIUXNYRzRnSUNBZ0lDQWdJR052Ym5ScGJuVmxUMjVGY25KdmNpeGNiaUFnSUNBZ0lDQWdiRzluTEZ4dUlDQWdJQ0FnSUNCQ2RXeHJRM0oxWkU5d1pYSmhkR2x2Ymt0bGVYTXVVa1ZCUkY5QlRFeGNiaUFnSUNBZ0lDazdYRzRnSUNBZ2ZTQmpZWFJqYUNBb1pTa2dlMXh1SUNBZ0lDQWdkR2h5YjNjZ2RHaHBjeTV3WVhKelpVVnljbTl5S0dVZ1lYTWdSWEp5YjNJcE8xeHVJQ0FnSUgwZ1ptbHVZV3hzZVNCN1hHNGdJQ0FnSUNCamRIZ3VjSFYwS0Z3aWJXbHljbTl5WENJZ1lYTWdZVzU1TENCMWJtUmxabWx1WldRcE8xeHVJQ0FnSUNBZ1kzUjRMbkIxZENoY0ltMXBjbkp2Y2tOdmJHeGxZM1JwYjI1Y0lpQmhjeUJoYm5rc0lIVnVaR1ZtYVc1bFpDazdYRzRnSUNBZ2ZWeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhOamNtbHdkR2x2YmlCVmNHUmhkR1Z6SUdFZ2NtVmpiM0prSUdsdUlIUm9aU0J6ZEdGMFpTQmtZWFJoWW1GelpWeHVJQ0FnS2lCQWMzVnRiV0Z5ZVNCVFpYSnBZV3hwZW1WeklHRWdiVzlrWld3Z1lXNWtJSFZ3WkdGMFpYTWdhWFFnYVc0Z2RHaGxJRVpoWW5KcFl5QnpkR0YwWlNCa1lYUmhZbUZ6WlZ4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdkR0ZpYkdWT1lXMWxJQzBnVkdobElHNWhiV1VnYjJZZ2RHaGxJSFJoWW14bEwyTnZiR3hsWTNScGIyNWNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWNnZkNCdWRXMWlaWEo5SUdsa0lDMGdWR2hsSUhKbFkyOXlaQ0JwWkdWdWRHbG1hV1Z5WEc0Z0lDQXFJRUJ3WVhKaGJTQjdVbVZqYjNKa1BITjBjbWx1Wnl3Z1lXNTVQbjBnYlc5a1pXd2dMU0JVYUdVZ2RYQmtZWFJsWkNCeVpXTnZjbVFnWkdGMFlWeHVJQ0FnS2lCQWNHRnlZVzBnZTFKbFkyOXlaRHh6ZEhKcGJtY3NJR0Z1ZVQ1OUlIUnlZVzV6YVdWdWRDQXRJRlJ5WVc1emFXVnVkQ0JrWVhSaElDaHViM1FnZFhObFpDQnBiaUIwYUdseklHbHRjR3hsYldWdWRHRjBhVzl1S1Z4dUlDQWdLaUJBY0dGeVlXMGdleTR1TG1GdWVWdGRmU0JoY21keklDMGdRV1JrYVhScGIyNWhiQ0JoY21kMWJXVnVkSE1zSUdsdVkyeDFaR2x1WnlCMGFHVWdZMmhoYVc1amIyUmxJSE4wZFdJZ1lXNWtJR3h2WjJkbGNseHVJQ0FnS2lCQWNtVjBkWEp1SUh0UWNtOXRhWE5sUEZKbFkyOXlaRHh6ZEhKcGJtY3NJR0Z1ZVQ0K2ZTQlFjbTl0YVhObElISmxjMjlzZG1sdVp5QjBieUIwYUdVZ2RYQmtZWFJsWkNCeVpXTnZjbVJjYmlBZ0lDb3ZYRzRnSUc5MlpYSnlhV1JsSUdGemVXNWpJSFZ3WkdGMFpUeE5JR1Y0ZEdWdVpITWdUVzlrWld3K0tGeHVJQ0FnSUdOc1lYcDZPaUJEYjI1emRISjFZM1J2Y2p4TlBpeGNiaUFnSUNCcFpEb2dVSEpwYldGeWVVdGxlVlI1Y0dVc1hHNGdJQ0FnYlc5a1pXdzZJRkpsWTI5eVpEeHpkSEpwYm1jc0lHRnVlVDRzWEc0Z0lDQWdMaTR1WVhKbmN6b2dRMjl1ZEdWNGRIVmhiRUZ5WjNNOFEyOXVkR1Y0ZER4R1lXSnlhV05EYjI1MGNtRmpkRVpzWVdkelBqNWNiaUFnS1RvZ1VISnZiV2x6WlR4U1pXTnZjbVE4YzNSeWFXNW5MQ0JoYm5rK1BpQjdYRzRnSUNBZ1kyOXVjM1FnZXlCamRIZ3NJR3h2WnlCOUlEMGdkR2hwY3k1c2IyZERkSGdvWVhKbmN5d2dkR2hwY3k1MWNHUmhkR1VwTzF4dVhHNGdJQ0FnZEdocGN5NWxibVp2Y21ObFRXbHljbTl5UVhWMGFHOXlhWHBoZEdsdmJpaGpiR0Y2ZWl3Z1kzUjRLVHRjYmlBZ0lDQnNiMmN1YVc1bWJ5aGdhVzRnUVVSQlVGUkZVaUIxY0dSaGRHVWdkMmwwYUNCaGNtZHpJQ1I3WVhKbmMzMWdLVHRjYmlBZ0lDQmpiMjV6ZENCMFlXSnNaVTVoYldVZ1BTQk5iMlJsYkM1MFlXSnNaVTVoYldVb1kyeGhlbm9wTzF4dUlDQWdJR052Ym5OMElHTnZiWEJ2YzJWa1MyVjVJRDBnWTNSNExuTjBkV0l1WTNKbFlYUmxRMjl0Y0c5emFYUmxTMlY1S0hSaFlteGxUbUZ0WlN3Z1cxTjBjbWx1WnlocFpDbGRLVHRjYmlBZ0lDQmpiMjV6ZENCdGFYSnliM0pEYjJ4c1pXTjBhVzl1SUQwZ1kzUjRMbWRsZEU5eVZXNWtaV1pwYm1Wa0tGd2liV2x5Y205eVEyOXNiR1ZqZEdsdmJsd2lLU0JoYzF4dUlDQWdJQ0FnZkNCemRISnBibWRjYmlBZ0lDQWdJSHdnZFc1a1pXWnBibVZrTzF4dVhHNGdJQ0FnZEhKNUlIdGNiaUFnSUNBZ0lHeHZaeTVwYm1adktHQjFjR1JoZEdsdVp5QmxiblJ5ZVNCcGJpQWtlM1JoWW14bFRtRnRaWDBnZEdGaWJHVWdkMmwwYUNCd2F5QWtlMmxrZldBcE8xeHVYRzRnSUNBZ0lDQnBaaUFvYldseWNtOXlRMjlzYkdWamRHbHZiaWtnZTF4dUlDQWdJQ0FnSUNCdGIyUmxiQ0E5SUdGM1lXbDBJSFJvYVhNdVptOXlVSEpwZG1GMFpTaHRhWEp5YjNKRGIyeHNaV04wYVc5dUtTNXdkWFJUZEdGMFpTaGNiaUFnSUNBZ0lDQWdJQ0JqYjIxd2IzTmxaRXRsZVN4Y2JpQWdJQ0FnSUNBZ0lDQnRiMlJsYkN4Y2JpQWdJQ0FnSUNBZ0lDQmpkSGhjYmlBZ0lDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR1JsWm1GMWJIUnpJRDBnZEdocGN5NW5aWFJOYjJSbGJFUmxabUYxYkhSektHTnNZWHA2S1R0Y2JpQWdJQ0FnSUNBZ0x5OGdhR0Z1Wkd4bElIQjFZbXhwWXlCa1lYUmhYRzRnSUNBZ0lDQWdJR2xtSUNoY2JpQWdJQ0FnSUNBZ0lDQlBZbXBsWTNRdWEyVjVjeWh0YjJSbGJDa3VabWxzZEdWeUtDaHJLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2F5QTlQVDBnUTI5MVkyaEVRa3RsZVhNdVZFRkNURVVwSUhKbGRIVnliaUJtWVd4elpUdGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUFoS0Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0JrWldaaGRXeDBjeUFtSmx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0JySUdsdUlHUmxabUYxYkhSeklDWW1YRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lHUmxabUYxYkhSelcyc2dZWE1nYTJWNWIyWWdUVjBnUFQwOUlHMXZaR1ZzVzJ0ZFhHNGdJQ0FnSUNBZ0lDQWdJQ0FwTzF4dUlDQWdJQ0FnSUNBZ0lIMHBMbXhsYm1kMGFGeHVJQ0FnSUNBZ0lDQXBYRzRnSUNBZ0lDQWdJQ0FnYlc5a1pXd2dQU0JoZDJGcGRDQjBhR2x6TG5CMWRGTjBZWFJsS0dOdmJYQnZjMlZrUzJWNUxDQnRiMlJsYkN3Z1kzUjRLVHRjYmx4dUlDQWdJQ0FnSUNBdkx5Qm9ZVzVrYkdVZ2MyVm5jbVZuWVhSbFpDQjNjbWwwWlhOY2JpQWdJQ0FnSUNBZ1kyOXVjM1FnWkdGMFlTQTlJR04wZUM1blpYUkdjbTl0UTJocGJHUnlaVzRvWENKelpXZHlaV2RoZEdWa1JHRjBZVndpS1R0Y2JpQWdJQ0FnSUNBZ2FXWWdLR1JoZEdFcElIdGNiaUFnSUNBZ0lDQWdJQ0JtYjNJZ0tHTnZibk4wSUdOdmJHeGxZM1JwYjI0Z2FXNGdaR0YwWVNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnVDJKcVpXTjBMbUZ6YzJsbmJpaGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2JXOWtaV3dzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJR0YzWVdsMElIUm9hWE11Wm05eVVISnBkbUYwWlNoamIyeHNaV04wYVc5dUtTNXdkWFJUZEdGMFpTaGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjF3YjNObFpFdGxlU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JrWVhSaFcyTnZiR3hsWTNScGIyNWRXMmxrSUdGeklHRnVlVjBzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTNSNFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNsY2JpQWdJQ0FnSUNBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZTQmpZWFJqYUNBb1pUb2dkVzVyYm05M2Jpa2dlMXh1SUNBZ0lDQWdkR2h5YjNjZ2RHaHBjeTV3WVhKelpVVnljbTl5S0dVZ1lYTWdSWEp5YjNJcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUhKbGRIVnliaUJ0YjJSbGJEdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI0Z1JHVnNaWFJsY3lCaElISmxZMjl5WkNCbWNtOXRJSFJvWlNCemRHRjBaU0JrWVhSaFltRnpaVnh1SUNBZ0tpQkFjM1Z0YldGeWVTQlNaWFJ5YVdWMlpYTWdZU0J5WldOdmNtUWdZVzVrSUhSb1pXNGdjbVZ0YjNabGN5QnBkQ0JtY205dElIUm9aU0JHWVdKeWFXTWdjM1JoZEdVZ1pHRjBZV0poYzJWY2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJSFJoWW14bFRtRnRaU0F0SUZSb1pTQnVZVzFsSUc5bUlIUm9aU0IwWVdKc1pTOWpiMnhzWldOMGFXOXVYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuSUh3Z2JuVnRZbVZ5ZlNCcFpDQXRJRlJvWlNCeVpXTnZjbVFnYVdSbGJuUnBabWxsY2lCMGJ5QmtaV3hsZEdWY2JpQWdJQ29nUUhCaGNtRnRJSHN1TGk1aGJubGJYWDBnWVhKbmN5QXRJRUZrWkdsMGFXOXVZV3dnWVhKbmRXMWxiblJ6TENCcGJtTnNkV1JwYm1jZ2RHaGxJR05vWVdsdVkyOWtaU0J6ZEhWaUlHRnVaQ0JzYjJkblpYSmNiaUFnSUNvZ1FISmxkSFZ5YmlCN1VISnZiV2x6WlR4U1pXTnZjbVE4YzNSeWFXNW5MQ0JoYm5rK1BuMGdVSEp2YldselpTQnlaWE52YkhacGJtY2dkRzhnZEdobElHUmxiR1YwWldRZ2NtVmpiM0prWEc0Z0lDQXFMMXh1SUNCaGMzbHVZeUJrWld4bGRHVThUU0JsZUhSbGJtUnpJRTF2WkdWc1BpaGNiaUFnSUNCamJHRjZlam9nUTI5dWMzUnlkV04wYjNJOFRUNHNYRzRnSUNBZ2FXUTZJRkJ5YVcxaGNubExaWGxVZVhCbExGeHVJQ0FnSUM0dUxtRnlaM002SUVOdmJuUmxlSFIxWVd4QmNtZHpQRU52Ym5SbGVIUThSbUZpY21salEyOXVkSEpoWTNSR2JHRm5jejQrWEc0Z0lDazZJRkJ5YjIxcGMyVThVbVZqYjNKa1BITjBjbWx1Wnl3Z1lXNTVQajRnZTF4dUlDQWdJR052Ym5OMElIc2dZM1I0TENCc2IyY2dmU0E5SUhSb2FYTXViRzluUTNSNEtHRnlaM01zSUhSb2FYTXVaR1ZzWlhSbEtUdGNibHh1SUNBZ0lIUm9hWE11Wlc1bWIzSmpaVTFwY25KdmNrRjFkR2h2Y21sNllYUnBiMjRvWTJ4aGVub3NJR04wZUNrN1hHNGdJQ0FnWTI5dWMzUWdkR0ZpYkdWT1lXMWxJRDBnVFc5a1pXd3VkR0ZpYkdWT1lXMWxLR05zWVhwNktUdGNibHh1SUNBZ0lHTnZibk4wSUdOdmJYQnZjMlZrUzJWNUlEMGdZM1I0TG5OMGRXSXVZM0psWVhSbFEyOXRjRzl6YVhSbFMyVjVLSFJoWW14bFRtRnRaU3dnVzFOMGNtbHVaeWhwWkNsZEtUdGNiaUFnSUNCamIyNXpkQ0J0YVhKeWIzSkRiMnhzWldOMGFXOXVJRDBnWTNSNExtZGxkRTl5Vlc1a1pXWnBibVZrS0Z3aWJXbHljbTl5UTI5c2JHVmpkR2x2Ymx3aUtTQmhjMXh1SUNBZ0lDQWdmQ0J6ZEhKcGJtZGNiaUFnSUNBZ0lId2dkVzVrWldacGJtVmtPMXh1SUNBZ0lHeGxkQ0J0YjJSbGJEb2dVbVZqYjNKa1BITjBjbWx1Wnl3Z1lXNTVQanRjYmx4dUlDQWdJR2xtSUNodGFYSnliM0pEYjJ4c1pXTjBhVzl1S1NCN1hHNGdJQ0FnSUNCMGNua2dlMXh1SUNBZ0lDQWdJQ0J0YjJSbGJDQTlJR0YzWVdsMElIUm9hWE11Wm05eVVISnBkbUYwWlNodGFYSnliM0pEYjJ4c1pXTjBhVzl1S1M1eVpXRmtVM1JoZEdVb1hHNGdJQ0FnSUNBZ0lDQWdZMjl0Y0c5elpXUkxaWGtzWEc0Z0lDQWdJQ0FnSUNBZ1kzUjRYRzRnSUNBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0FnSUdGM1lXbDBJSFJvYVhNdVptOXlVSEpwZG1GMFpTaHRhWEp5YjNKRGIyeHNaV04wYVc5dUtTNWtaV3hsZEdWVGRHRjBaU2hqYjIxd2IzTmxaRXRsZVN3Z1kzUjRLVHRjYmlBZ0lDQWdJSDBnWTJGMFkyZ2dLR1U2SUhWdWEyNXZkMjRwSUh0Y2JpQWdJQ0FnSUNBZ2RHaHliM2NnZEdocGN5NXdZWEp6WlVWeWNtOXlLR1VnWVhNZ1JYSnliM0lwTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQjBjbmtnZTF4dUlDQWdJQ0FnSUNCdGIyUmxiQ0E5SUdOMGVDNXBjMFoxYkd4NVUyVm5jbVZuWVhSbFpGeHVJQ0FnSUNBZ0lDQWdJRDhnZTMxY2JpQWdJQ0FnSUNBZ0lDQTZJR0YzWVdsMElIUm9hWE11Y21WaFpGTjBZWFJsS0dOdmJYQnZjMlZrUzJWNUxDQmpkSGdwTzF4dUlDQWdJQ0FnSUNCcFppQW9JV04wZUM1cGMwWjFiR3g1VTJWbmNtVm5ZWFJsWkNrZ2UxeHVJQ0FnSUNBZ0lDQWdJR3h2Wnk1a1pXSjFaeWhnUkdWc1pYUnBibWNnWlc1MGNua2dKSHRqYjIxd2IzTmxaRXRsZVgwZ1puSnZiU0J3ZFdKc2FXTWdiR1ZrWjJWeVlDazdYRzRnSUNBZ0lDQWdJQ0FnWVhkaGFYUWdkR2hwY3k1a1pXeGxkR1ZUZEdGMFpTaGpiMjF3YjNObFpFdGxlU3dnWTNSNEtUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmU0JqWVhSamFDQW9aVG9nZFc1cmJtOTNiaWtnZTF4dUlDQWdJQ0FnSUNCMGFISnZkeUIwYUdsekxuQmhjbk5sUlhKeWIzSW9aU0JoY3lCRmNuSnZjaWs3WEc0Z0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUdOdmJuTjBJR052Ykd4bFkzUnBiMjV6SUQwZ1kzUjRMbWRsZEZKbFlXUkRiMnhzWldOMGFXOXVjeWdwTzF4dUlDQWdJQ0FnYVdZZ0tHTnZiR3hsWTNScGIyNXpJQ1ltSUdOdmJHeGxZM1JwYjI1ekxteGxibWQwYUNrZ2UxeHVJQ0FnSUNBZ0lDQm1iM0lnS0dOdmJuTjBJR052YkNCdlppQmpiMnhzWldOMGFXOXVjeWtnZTF4dUlDQWdJQ0FnSUNBZ0lHeHZaeTVrWldKMVp5aGNiaUFnSUNBZ0lDQWdJQ0FnSUdCbGJuTjFjbWx1WnlCamIyeHNaV04wYVc5dUlDUjdZMjlzZlNCb1lYTWdaVzUwY25rZ1ptOXlJR2xrSUNSN1kyOXRjRzl6WldSTFpYbDlJR0psWm05eVpTQmtaV3hsZEdsdVoyQmNiaUFnSUNBZ0lDQWdJQ0FwTzF4dUlDQWdJQ0FnSUNBZ0lFOWlhbVZqZEM1aGMzTnBaMjRvWEc0Z0lDQWdJQ0FnSUNBZ0lDQnRiMlJsYkN4Y2JpQWdJQ0FnSUNBZ0lDQWdJR0YzWVdsMElIUm9hWE11Wm05eVVISnBkbUYwWlNoamIyd3BMbkpsWVdSVGRHRjBaU2hqYjIxd2IzTmxaRXRsZVN3Z1kzUjRLVnh1SUNBZ0lDQWdJQ0FnSUNrN1hHNGdJQ0FnSUNBZ0lDQWdiRzluTG1SbFluVm5LRnh1SUNBZ0lDQWdJQ0FnSUNBZ1lFUmxiR1YwYVc1bklIQnlhWFpoZEdVZ1kyOXNiR1ZqZEdsdmJpQWtlMk52YkgwZ1pXNTBjbmtnWm05eUlHbGtJQ1I3WTI5dGNHOXpaV1JMWlhsOVlGeHVJQ0FnSUNBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0FnSUNBZ1lYZGhhWFFnZEdocGN5NW1iM0pRY21sMllYUmxLR052YkNrdVpHVnNaWFJsVTNSaGRHVW9ZMjl0Y0c5elpXUkxaWGtzSUdOMGVDazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUcxdlpHVnNPMXh1SUNCOVhHNWNiaUFnY0hKdmRHVmpkR1ZrSUdGemVXNWpJR1JsYkdWMFpWTjBZWFJsS0dsa09pQnpkSEpwYm1jc0lHTnZiblJsZUhRNklFWmhZbkpwWTBOdmJuUnlZV04wUTI5dWRHVjRkQ2tnZTF4dUlDQWdJR0YzWVdsMElHTnZiblJsZUhRdWMzUjFZaTVrWld4bGRHVlRkR0YwWlNocFpDazdYRzRnSUgxY2JseHVJQ0JtYjNKUWNtbDJZWFJsS0dOdmJHeGxZM1JwYjI0NklITjBjbWx1WnlrNklFWmhZbkpwWTBOdmJuUnlZV04wUVdSaGNIUmxjaUI3WEc0Z0lDQWdZMjl1YzNRZ2RHOVBkbVZ5Y21sa1pTQTlJRnRjYmlBZ0lDQWdJSFJvYVhNdWNIVjBVM1JoZEdVc1hHNGdJQ0FnSUNCMGFHbHpMbkpsWVdSVGRHRjBaU3hjYmlBZ0lDQWdJSFJvYVhNdVpHVnNaWFJsVTNSaGRHVXNYRzRnSUNBZ0lDQjBhR2x6TG5GMVpYSjVVbVZ6ZFd4MExGeHVJQ0FnSUNBZ2RHaHBjeTV4ZFdWeWVWSmxjM1ZzZEZCaFoybHVZWFJsWkN4Y2JpQWdJQ0JkTG0xaGNDZ29abTRwSUQwK0lHWnVMbTVoYldVcE8xeHVJQ0FnSUhKbGRIVnliaUJ1WlhjZ1VISnZlSGtvZEdocGN5d2dlMXh1SUNBZ0lDQWdaMlYwS0hSaGNtZGxkQ3dnY0hKdmNDd2djbVZqWldsMlpYSXBJSHRjYmlBZ0lDQWdJQ0FnYVdZZ0tDRjBiMDkyWlhKeWFXUmxMbWx1WTJ4MVpHVnpLSEJ5YjNBZ1lYTWdjM1J5YVc1bktTbGNiaUFnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdVbVZtYkdWamRDNW5aWFFvZEdGeVoyVjBMQ0J3Y205d0xDQnlaV05sYVhabGNpazdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnVaWGNnVUhKdmVIa29LSFJoY21kbGRDQmhjeUJoYm5rcFczQnliM0JkTENCN1hHNGdJQ0FnSUNBZ0lDQWdZWE41Ym1NZ1lYQndiSGtvWm00c0lIUm9hWE5CY21jc0lHRnlaM05NYVhOMEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCemQybDBZMmdnS0hCeWIzQXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNCY0luQjFkRk4wWVhSbFhDSTZJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F2THlCd2RYUlRkR0YwWlNCemFXZHVZWFIxY21VNklDaHBaRG9nYzNSeWFXNW5MQ0J0YjJSbGJEb2dVbVZqYjNKa1BITjBjbWx1Wnl3Z1lXNTVQaXdnWTNSNE9pQkdZV0p5YVdORGIyNTBjbUZqZEVOdmJuUmxlSFFwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdXMmxrTENCdGIyUmxiQ3dnWTNSNFhTQTlJR0Z5WjNOTWFYTjBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHeHZaeUE5SUdOMGVDNXNiMmRuWlhJdVptOXlLSEJ5YjNBcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHeHZaeTVrWldKMVp5aGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR0JRY21sMllYUmxJSGR5YVhSbElIUnZJQ1I3WTI5c2JHVmpkR2x2Ym4wZ1ptOXlJQ1I3YVdRdWRHOVRkSEpwYm1jb0tYMWdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQmtZWFJoSUQwZ1FuVm1abVZ5TG1aeWIyMG9YRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JHWVdKeWFXTkRiMjUwY21GamRFRmtZWEIwWlhJdWMyVnlhV0ZzYVhwbGNpNXpaWEpwWVd4cGVtVW9YRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUcxdlpHVnNJR0Z6SUUxdlpHVnNMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCbVlXeHpaVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1lYZGhhWFFnWTNSNExuTjBkV0l1Y0hWMFVISnBkbUYwWlVSaGRHRW9ZMjlzYkdWamRHbHZiaXdnYVdRdWRHOVRkSEpwYm1jb0tTd2daR0YwWVNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUcxdlpHVnNPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnWENKa1pXeGxkR1ZUZEdGMFpWd2lPaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z1pHVnNaWFJsVTNSaGRHVWdjMmxuYm1GMGRYSmxPaUFvYVdRNklITjBjbWx1Wnl3Z1kyOXVkR1Y0ZERvZ1JtRmljbWxqUTI5dWRISmhZM1JEYjI1MFpYaDBLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElGdHBaQ3dnWTNSNFhTQTlJR0Z5WjNOTWFYTjBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHeHZaeUE5SUdOMGVDNXNiMmRuWlhJdVptOXlLSEJ5YjNBcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHeHZaeTVrWldKMVp5aGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR0JRY21sMllYUmxJR1JsYkdWMFpTQnZiaUFrZTJOdmJHeGxZM1JwYjI1OUlHWnZjaUFrZTJsa0xuUnZVM1J5YVc1bktDbDlZRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWVhkaGFYUWdZM1I0TG5OMGRXSXVaR1ZzWlhSbFVISnBkbUYwWlVSaGRHRW9ZMjlzYkdWamRHbHZiaXdnYVdRdWRHOVRkSEpwYm1jb0tTazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdU8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdYQ0p5WldGa1UzUmhkR1ZjSWpvZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDOHZJSEpsWVdSVGRHRjBaU0J6YVdkdVlYUjFjbVU2SUNocFpEb2djM1J5YVc1bkxDQmpkSGc2SUVaaFluSnBZME52Ym5SeVlXTjBRMjl1ZEdWNGRDbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCYmFXUXNJR04wZUYwZ1BTQmhjbWR6VEdsemREdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCc2IyY2dQU0JqZEhndWJHOW5aMlZ5TG1admNpaHdjbTl3S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCc2IyY3VaR1ZpZFdjb1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmdVSEpwZG1GMFpTQnlaV0ZrSUdaeWIyMGdKSHRqYjJ4c1pXTjBhVzl1ZlNCbWIzSWdKSHRwWkM1MGIxTjBjbWx1WnlncGZXQmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHUmhkR0VnUFNCaGQyRnBkQ0JqZEhndWMzUjFZaTVuWlhSUWNtbDJZWFJsUkdGMFlTaGpiMnhzWldOMGFXOXVMQ0JwWkNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLQ0ZrWVhSaElIeDhJQ0ZrWVhSaExuUnZVM1J5YVc1bktDa3ViR1Z1WjNSb0tWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRTV2ZEVadmRXNWtSWEp5YjNJb1lGSmxZMjl5WkNCM2FYUm9JR2xrSUNSN2FXUjlJRzV2ZENCbWIzVnVaR0FwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhSeWVTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdSbUZpY21salEyOXVkSEpoWTNSQlpHRndkR1Z5TG5ObGNtbGhiR2w2WlhJdVpHVnpaWEpwWVd4cGVtVW9YRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdSaGRHRXVkRzlUZEhKcGJtY29YQ0oxZEdZNFhDSXBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgwZ1kyRjBZMmdnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUdSaGRHRXVkRzlUZEhKcGJtY29YQ0oxZEdZNFhDSXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUZ3aWNYVmxjbmxTWlhOMWJIUmNJam9nZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJRnR6ZEhWaUxDQnlZWGRKYm5CMWRDd2dMaTR1WVhKbmMxMGdQU0JoY21kelRHbHpkRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQjdJR3h2WnlCOUlEMGdkR2hwYzBGeVoxdGNJbXh2WjBOMGVGd2lYU2hoY21kekxDQndjbTl3S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGNua2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYkc5bkxtUmxZblZuS0Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmdVWFZsY25scGJtY2dZMjlzYkdWamRHbHZiaUFrZTJOdmJHeGxZM1JwYjI1OUlHWnZjaUFrZTBwVFQwNHVjM1J5YVc1bmFXWjVLSEpoZDBsdWNIVjBLWDFnWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2NtVnpJRDBnWVhkaGFYUWdjM1IxWWk1blpYUlFjbWwyWVhSbFJHRjBZVkYxWlhKNVVtVnpkV3gwS0Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMnhzWldOMGFXOXVMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCS1UwOU9Mbk4wY21sdVoybG1lU2h5WVhkSmJuQjFkQ2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnNiMmN1ZG1WeVltOXpaU2hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1lHbDBaWEpoZEc5eUlHWnliMjBnWTI5c2JHVmpkR2x2YmlBa2UyTnZiR3hsWTNScGIyNTlJSEpsWTJWcGRtVmtZRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCeVpYTXVhWFJsY21GMGIzSWdmSHdnY21Wek8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMGdZMkYwWTJnZ0tHVTZJR0Z1ZVNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiRzluTG1WeWNtOXlLR1VwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUZ0ZE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCallYTmxJRndpY1hWbGNubFNaWE4xYkhSUVlXZHBibUYwWldSY0lqb2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElGdHpkSFZpTENCeVlYZEpibkIxZEN3Z2JHbHRhWFFzSUhOcmFYQXNJR0p2YjJ0dFlYSnJMQ0F1TGk1aGNtZHpYU0E5SUdGeVozTk1hWE4wTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJSHNnYkc5bklIMGdQU0IwYUdselFYSm5XMXdpYkc5blEzUjRYQ0pkS0dGeVozTXNJSEJ5YjNBcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUhCaFoyVlRhWHBsSUQwZ1RXRjBhQzV0WVhnb01Td2dUblZ0WW1WeUtHeHBiV2wwS1NCOGZDQXlOVEFwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJSEYxWlhKNU9pQlNaV052Y21ROGMzUnlhVzVuTENCaGJuaytJRDBnZXlBdUxpNXlZWGRKYm5CMWRDQjlPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElITnJhWEJXWVd4MVpTQTlJRTUxYldKbGNpaHphMmx3S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J3WVhKelpXUlRhMmx3SUQxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lFNTFiV0psY2k1cGMwbHVkR1ZuWlhJb2MydHBjRlpoYkhWbEtTQW1KaUJ6YTJsd1ZtRnNkV1VnUGowZ01GeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0EvSUhOcmFYQldZV3gxWlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQTZJSFZ1WkdWbWFXNWxaRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQnplVzUwYUdWMGFXTlBabVp6WlhRZ1BWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdSbUZpY21salEyOXVkSEpoWTNSQlpHRndkR1Z5TG5CaGNuTmxVM2x1ZEdobGRHbGpVSEpwZG1GMFpVSnZiMnR0WVhKcktHSnZiMnR0WVhKcktTQS9QMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY0dGeWMyVmtVMnRwY0NBL1AxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdNRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQm9ZWE5QY0dGeGRXVkNiMjlyYldGeWF5QTlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JpYjI5cmJXRnlheUFoUFQwZ2RXNWtaV1pwYm1Wa0lDWW1YRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JpYjI5cmJXRnlheUFoUFQwZ2JuVnNiQ0FtSmx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1ltOXZhMjFoY21zZ0lUMDlJRndpWENJZ0ppWmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFI1Y0dWdlppQmliMjlyYldGeWF5QTlQVDBnWENKemRISnBibWRjSWlBbUpseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJV0p2YjJ0dFlYSnJMbk4wWVhKMGMxZHBkR2dvUm1GaWNtbGpRMjl1ZEhKaFkzUkJaR0Z3ZEdWeUxsQlNTVlpCVkVWZlFrOVBTMDFCVWt0ZlVGSkZSa2xZS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBdkx5QkxaV1Z3SUhSb1pTQnhkV1Z5ZVNCRGIzVmphRVJDTFdOdmJYQmhkR2xpYkdVZ1lXNWtJR3hsZENCR1lXSnlhV012UTI5MVkyaEVRaUJ2ZDI0Z1ltOXZhMjFoY21zZ2MyVnRZVzUwYVdOekxseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDOHZJRk41Ym5Sb1pYUnBZeUJ0YjJSbElHWmxkR05vWlhNZ2IyNWxJR1Y0ZEhKaElISmxZMjl5WkNCMGJ5QmtaWFJsWTNRZ2QyaGxkR2hsY2lCaElHNWxlSFFnY0dGblpTQmxlR2x6ZEhNdVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NYVmxjbmt1YkdsdGFYUWdQU0JvWVhOUGNHRnhkV1ZDYjI5cmJXRnlheUEvSUhCaFoyVlRhWHBsSURvZ2NHRm5aVk5wZW1VZ0t5QXhPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNob1lYTlBjR0Z4ZFdWQ2IyOXJiV0Z5YXlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjWFZsY25rdVltOXZhMjFoY21zZ1BTQmliMjlyYldGeWF5NTBiMU4wY21sdVp5Z3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWkdWc1pYUmxJSEYxWlhKNUxuTnJhWEE3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdSbGJHVjBaU0J4ZFdWeWVTNWliMjlyYldGeWF6dGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoemVXNTBhR1YwYVdOUFptWnpaWFFnUGlBd0tTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhGMVpYSjVMbk5yYVhBZ1BTQnplVzUwYUdWMGFXTlBabVp6WlhRN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JrWld4bGRHVWdjWFZsY25rdWMydHBjRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2JHOW5MbVJsWW5WbktGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZRkYxWlhKNWFXNW5JR052Ykd4bFkzUnBiMjRnSkh0amIyeHNaV04wYVc5dWZTQm1iM0lnSkh0S1UwOU9Mbk4wY21sdVoybG1lU2h4ZFdWeWVTbDlZRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdjbVZ6Y0c5dWMyVWdQU0JoZDJGcGRDQW9YRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J6ZEhWaUlHRnpJRU5vWVdsdVkyOWtaVk4wZFdKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBcExtZGxkRkJ5YVhaaGRHVkVZWFJoVVhWbGNubFNaWE4xYkhRb1kyOXNiR1ZqZEdsdmJpd2dTbE5QVGk1emRISnBibWRwWm5rb2NYVmxjbmtwS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JwZEdWeVlYUnZjaUE5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBb0tISmxjM0J2Ym5ObElHRnpJR0Z1ZVNrdWFYUmxjbUYwYjNJZ2ZIeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WemNHOXVjMlVwSUdGeklFbDBaWEpoZEc5eWN5NVRkR0YwWlZGMVpYSjVTWFJsY21GMGIzSTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2NtVnpjRzl1YzJWTlpYUmhaR0YwWVNBOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQW9jbVZ6Y0c5dWMyVWdZWE1nWVc1NUtTNXRaWFJoWkdGMFlTQjhmQ0FvYVhSbGNtRjBiM0lnWVhNZ1lXNTVLUzV0WlhSaFpHRjBZU0I4ZkNCN2ZUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCeVpYTndiMjV6WlVKdmIydHRZWEpySUQxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIUjVjR1Z2WmlCeVpYTndiMjV6WlUxbGRHRmtZWFJoTG1KdmIydHRZWEpySUQwOVBTQmNJbk4wY21sdVoxd2lYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUQ4Z2NtVnpjRzl1YzJWTlpYUmhaR0YwWVM1aWIyOXJiV0Z5YTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQTZJRndpWENJN1hHNWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnNiMmN1ZG1WeVltOXpaU2hnYVhSbGNtRjBiM0lnWm5KdmJTQmpiMnhzWldOMGFXOXVJQ1I3WTI5c2JHVmpkR2x2Ym4wZ2NtVmpaV2wyWldSZ0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCd1lXZGxaRG9nUVhKeVlYazhleUJyWlhrNklITjBjbWx1WnpzZ2RtRnNkV1U2SUVKMVptWmxjaUI5UGlBOUlGdGRPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR3hsZENCb1lYTk5iM0psSUQwZ1ptRnNjMlU3WEc1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGNua2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZDJocGJHVWdLSFJ5ZFdVcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdjbVZ6SUQwZ1lYZGhhWFFnYVhSbGNtRjBiM0l1Ym1WNGRDZ3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9jbVZ6TG1SdmJtVXBJR0p5WldGck8xeHVYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaHlaWE11ZG1Gc2RXVWdKaVlnY21WekxuWmhiSFZsTG5aaGJIVmxLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2EyVjVJRDBnY21WekxuWmhiSFZsTG10bGVTQmhjeUJ6ZEhKcGJtYzdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSEJoWjJWa0xteGxibWQwYUNBOElIQmhaMlZUYVhwbEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQndZV2RsWkM1d2RYTm9LSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYTJWNUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjJZV3gxWlRvZ1FuVm1abVZ5TG1selFuVm1abVZ5S0hKbGN5NTJZV3gxWlM1MllXeDFaU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBL0lISmxjeTUyWVd4MVpTNTJZV3gxWlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEb2dRblZtWm1WeUxtWnliMjBvWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ2h5WlhNdWRtRnNkV1V1ZG1Gc2RXVWdZWE1nWVc1NUtTNTBiMU4wY21sdVp5aGNJblYwWmpoY0lpbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYUdGelRXOXlaU0E5SUhSeWRXVTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmljbVZoYXpzZ0x5OGdaV0Z5YkhrZ1pYaHBkRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMGdabWx1WVd4c2VTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JoZDJGcGRDQnBkR1Z5WVhSdmNpNWpiRzl6WlNncE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMWNibHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQzh2SUZkeVlYQWdkR2hsSUhCaFoyVWdhVzRnWVc0Z1lYTjVibU1nYVhSbGNtRjBiM0lnWm05eUlISmxjM1ZzZEVsMFpYSmhkRzl5S0NsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCc1pYUWdhV1I0SUQwZ01EdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCaGNuSmhlVWwwWlhKaGRHOXlJRDBnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1lYTjVibU1nYm1WNGRDZ3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR2xrZUNBOElIQmhaMlZrTG14bGJtZDBhQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQjdJSFpoYkhWbE9pQndZV2RsWkZ0cFpIZ3JLMTBzSUdSdmJtVTZJR1poYkhObElIMDdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIc2dkbUZzZFdVNklIVnVaR1ZtYVc1bFpDQmhjeUJoYm5rc0lHUnZibVU2SUhSeWRXVWdmVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgwc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmhjM2x1WXlCamJHOXpaU2dwSUh0OUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMDdYRzVjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVhSbGNtRjBiM0k2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHRnljbUY1U1hSbGNtRjBiM0lnWVhNZ2RXNXJibTkzYmlCaGN5QkpkR1Z5WVhSdmNuTXVVM1JoZEdWUmRXVnllVWwwWlhKaGRHOXlMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYldWMFlXUmhkR0U2SUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdabVYwWTJobFpGSmxZMjl5WkhORGIzVnVkRG9nY0dGblpXUXViR1Z1WjNSb0xGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JpYjI5cmJXRnlhenBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWE53YjI1elpVSnZiMnR0WVhKcklIeDhYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0tHaGhjMDF2Y21WY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUQ4Z1JtRmljbWxqUTI5dWRISmhZM1JCWkdGd2RHVnlMbUoxYVd4a1UzbHVkR2hsZEdsalVISnBkbUYwWlVKdmIydHRZWEpyS0Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lITjViblJvWlhScFkwOW1abk5sZENBcklIQmhaMlZrTG14bGJtZDBhRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E2SUZ3aVhDSXBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOU8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUdSbFptRjFiSFE2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdoeWIzY2dibVYzSUVsdWRHVnlibUZzUlhKeWIzSW9YRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JnVlc1emRYQndiM0owWldRZ2JXVjBhRzlrSUc5MlpYSnlhV1JsSUNSN1UzUnlhVzVuS0hCeWIzQXBmV0JjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUgwc1hHNGdJQ0FnSUNBZ0lIMHBPMXh1SUNBZ0lDQWdmU3hjYmlBZ0lDQjlLVHRjYmlBZ2ZWeHVYRzRnSUhCeWIzUmxZM1JsWkNCaGMzbHVZeUJ3ZFhSVGRHRjBaU2hjYmlBZ0lDQnBaRG9nYzNSeWFXNW5MRnh1SUNBZ0lHMXZaR1ZzT2lCU1pXTnZjbVE4YzNSeWFXNW5MQ0JoYm5rK0xGeHVJQ0FnSUdOMGVEb2dSbUZpY21salEyOXVkSEpoWTNSRGIyNTBaWGgwWEc0Z0lDa2dlMXh1SUNBZ0lHeGxkQ0JrWVhSaE9pQkNkV1ptWlhJN1hHNWNiaUFnSUNCMGNua2dlMXh1SUNBZ0lDQWdaR0YwWVNBOUlFSjFabVpsY2k1bWNtOXRLRnh1SUNBZ0lDQWdJQ0JHWVdKeWFXTkRiMjUwY21GamRFRmtZWEIwWlhJdWMyVnlhV0ZzYVhwbGNpNXpaWEpwWVd4cGVtVW9iVzlrWld3Z1lYTWdUVzlrWld3c0lHWmhiSE5sS1Z4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0I5SUdOaGRHTm9JQ2hsT2lCMWJtdHViM2R1S1NCN1hHNGdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1UyVnlhV0ZzYVhwaGRHbHZia1Z5Y205eUtGeHVJQ0FnSUNBZ0lDQmdSbUZwYkdWa0lIUnZJSE5sY21saGJHbDZaU0J5WldOdmNtUWdkMmwwYUNCcFpDQWtlMmxrZlRvZ0pIdGxmV0JjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdmVnh1SUNBZ0lHRjNZV2wwSUdOMGVDNXpkSFZpTG5CMWRGTjBZWFJsS0dsa0xuUnZVM1J5YVc1bktDa3NJR1JoZEdFcE8xeHVYRzRnSUNBZ2NtVjBkWEp1SUcxdlpHVnNPMXh1SUNCOVhHNWNiaUFnY0hKdmRHVmpkR1ZrSUdGemVXNWpJSEpsWVdSVGRHRjBaU2hwWkRvZ2MzUnlhVzVuTENCamRIZzZJRVpoWW5KcFkwTnZiblJ5WVdOMFEyOXVkR1Y0ZENrZ2UxeHVJQ0FnSUd4bGRDQnlaWE4xYkhRNklHRnVlVHRjYmx4dUlDQWdJR052Ym5OMElIc2diRzluSUgwZ1BTQjBhR2x6TG14dlowTjBlQ2hiWTNSNFhTd2dkR2hwY3k1eVpXRmtVM1JoZEdVcE8xeHVJQ0FnSUdOdmJuTjBJSEpsY3lBOUlDaGhkMkZwZENCamRIZ3VjM1IxWWk1blpYUlRkR0YwWlNocFpDNTBiMU4wY21sdVp5Z3BLU2t1ZEc5VGRISnBibWNvS1R0Y2JpQWdJQ0JwWmlBb0lYSmxjeWtnZEdoeWIzY2dibVYzSUU1dmRFWnZkVzVrUlhKeWIzSW9ZRkpsWTI5eVpDQjNhWFJvSUdsa0lDUjdhV1I5SUc1dmRDQm1iM1Z1WkdBcE8xeHVJQ0FnSUd4dlp5NXphV3hzZVNoZ2MzUmhkR1VnY21WMGNtbGxkbVZrSUhWdVpHVnlJR2xrSUNSN2FXUjlZQ2s3WEc0Z0lDQWdkSEo1SUh0Y2JpQWdJQ0FnSUhKbGMzVnNkQ0E5SUVaaFluSnBZME52Ym5SeVlXTjBRV1JoY0hSbGNpNXpaWEpwWVd4cGVtVnlMbVJsYzJWeWFXRnNhWHBsS0hKbGN5NTBiMU4wY21sdVp5Z3BLVHRjYmlBZ0lDQjlJR05oZEdOb0lDaGxPaUIxYm10dWIzZHVLU0I3WEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnVTJWeWFXRnNhWHBoZEdsdmJrVnljbTl5S0dCR1lXbHNaV1FnZEc4Z2NHRnljMlVnY21WamIzSmtPaUFrZTJWOVlDazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NtVjBkWEp1SUhKbGMzVnNkRHRjYmlBZ2ZWeHVYRzRnSUhCeWIzUmxZM1JsWkNCaGMzbHVZeUJ4ZFdWeWVWSmxjM1ZzZENoY2JpQWdJQ0J6ZEhWaU9pQkRhR0ZwYm1OdlpHVlRkSFZpTEZ4dUlDQWdJSEpoZDBsdWNIVjBPaUJoYm5rc1hHNGdJQ0FnTHk4Z1pYTnNhVzUwTFdScGMyRmliR1V0Ym1WNGRDMXNhVzVsSUVCMGVYQmxjMk55YVhCMExXVnpiR2x1ZEM5dWJ5MTFiblZ6WldRdGRtRnljMXh1SUNBZ0lDNHVMbUZ5WjNNNklFTnZiblJsZUhSMVlXeEJjbWR6UEVaaFluSnBZME52Ym5SeVlXTjBRMjl1ZEdWNGRENWNiaUFnS1RvZ1VISnZiV2x6WlR4SmRHVnlZWFJ2Y25NdVUzUmhkR1ZSZFdWeWVVbDBaWEpoZEc5eVBpQjdYRzRnSUNBZ2NtVjBkWEp1SUhOMGRXSXVaMlYwVVhWbGNubFNaWE4xYkhRb1NsTlBUaTV6ZEhKcGJtZHBabmtvY21GM1NXNXdkWFFwS1R0Y2JpQWdmVnh1WEc0Z0lIQnliM1JsWTNSbFpDQmhjM2x1WXlCeGRXVnllVkpsYzNWc2RGQmhaMmx1WVhSbFpDaGNiaUFnSUNCemRIVmlPaUJEYUdGcGJtTnZaR1ZUZEhWaUxGeHVJQ0FnSUhKaGQwbHVjSFYwT2lCaGJua3NYRzRnSUNBZ2JHbHRhWFE2SUc1MWJXSmxjaUE5SURJMU1DeGNiaUFnSUNCd1lXZGxQem9nYm5WdFltVnlMRnh1SUNBZ0lHSnZiMnR0WVhKclB6b2djM1J5YVc1bklId2diblZ0WW1WeUxGeHVJQ0FnSUM4dklHVnpiR2x1ZEMxa2FYTmhZbXhsTFc1bGVIUXRiR2x1WlNCQWRIbHdaWE5qY21sd2RDMWxjMnhwYm5RdmJtOHRkVzUxYzJWa0xYWmhjbk5jYmlBZ0lDQXVMaTVoY21kek9pQmhibmxiWFZ4dUlDQXBPaUJRY205dGFYTmxQRk4wWVhSbFVYVmxjbmxTWlhOd2IyNXpaVHhKZEdWeVlYUnZjbk11VTNSaGRHVlJkV1Z5ZVVsMFpYSmhkRzl5UGo0Z2UxeHVJQ0FnSUhKbGRIVnliaUJ6ZEhWaUxtZGxkRkYxWlhKNVVtVnpkV3gwVjJsMGFGQmhaMmx1WVhScGIyNG9YRzRnSUNBZ0lDQktVMDlPTG5OMGNtbHVaMmxtZVNoeVlYZEpibkIxZENrc1hHNGdJQ0FnSUNCc2FXMXBkQ3hjYmlBZ0lDQWdJR0p2YjJ0dFlYSnJQeTUwYjFOMGNtbHVaeWdwWEc0Z0lDQWdLVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdSR1ZqYjJSbGN5QmlhVzVoY25rZ1pHRjBZU0IwYnlCemRISnBibWRjYmlBZ0lDb2dRSE4xYlcxaGNua2dRMjl1ZG1WeWRITWdZU0JWYVc1ME9FRnljbUY1SUhSdklHRWdjM1J5YVc1bklIVnphVzVuSUZWVVJpMDRJR1Z1WTI5a2FXNW5YRzRnSUNBcUlFQndZWEpoYlNCN1ZXbHVkRGhCY25KaGVYMGdZblZtWm1WeUlDMGdWR2hsSUdKcGJtRnllU0JrWVhSaElIUnZJR1JsWTI5a1pWeHVJQ0FnS2lCQWNtVjBkWEp1SUh0emRISnBibWQ5SUZSb1pTQmtaV052WkdWa0lITjBjbWx1WjF4dUlDQWdLaTljYmlBZ2NISnZkR1ZqZEdWa0lHUmxZMjlrWlNoaWRXWm1aWEk2SUZWcGJuUTRRWEp5WVhrcElIdGNiaUFnSUNCeVpYUjFjbTRnUm1GaWNtbGpRMjl1ZEhKaFkzUkJaR0Z3ZEdWeUxuUmxlSFJFWldOdlpHVnlMbVJsWTI5a1pTaGlkV1ptWlhJcE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhOamNtbHdkR2x2YmlCRGNtVmhkR1Z6SUc5d1pYSmhkR2x2YmlCbWJHRm5jeUJtYjNJZ1JtRmljbWxqSUdOdmJuUnlZV04wSUc5d1pYSmhkR2x2Ym5OY2JpQWdJQ29nUUhOMWJXMWhjbmtnVFdWeVoyVnpJR1JsWm1GMWJIUWdabXhoWjNNZ2QybDBhQ0JHWVdKeWFXTXRjM0JsWTJsbWFXTWdZMjl1ZEdWNGRDQnBibVp2Y20xaGRHbHZibHh1SUNBZ0tpQkFkR1Z0Y0d4aGRHVWdUU0F0SUZSNWNHVWdaWGgwWlc1a2FXNW5JRTF2WkdWc1hHNGdJQ0FxSUVCd1lYSmhiU0I3VDNCbGNtRjBhVzl1UzJWNWMzMGdiM0JsY21GMGFXOXVJQzBnVkdobElHOXdaWEpoZEdsdmJpQmlaV2x1WnlCd1pYSm1iM0p0WldSY2JpQWdJQ29nUUhCaGNtRnRJSHREYjI1emRISjFZM1J2Y2p4TlBuMGdiVzlrWld3Z0xTQlVhR1VnYlc5a1pXd2dZMjl1YzNSeWRXTjBiM0pjYmlBZ0lDb2dRSEJoY21GdElIdFFZWEowYVdGc1BFWmhZbkpwWTBOdmJuUnlZV04wUm14aFozTStmU0JtYkdGbmN5QXRJRkJoY25ScFlXd2dabXhoWjNNZ2RHOGdiV1Z5WjJVZ2QybDBhQ0JrWldaaGRXeDBjMXh1SUNBZ0tpQkFjR0Z5WVcwZ2UwTjBlSDBnWTNSNElDMGdWR2hsSUVaaFluSnBZeUJqYUdGcGJtTnZaR1VnWTI5dWRHVjRkRnh1SUNBZ0tpQkFjbVYwZFhKdUlIdEdZV0p5YVdORGIyNTBjbUZqZEVac1lXZHpmU0JVYUdVZ2JXVnlaMlZrSUdac1lXZHpYRzRnSUNBcUwxeHVJQ0J3Y205MFpXTjBaV1FnYjNabGNuSnBaR1VnWVhONWJtTWdabXhoWjNNOFRTQmxlSFJsYm1SeklFMXZaR1ZzUGloY2JpQWdJQ0J2Y0dWeVlYUnBiMjQ2SUVGc2JFOXdaWEpoZEdsdmJrdGxlWE1zWEc0Z0lDQWdiVzlrWld3NklFTnZibk4wY25WamRHOXlQRTArSUh3Z2RXNWtaV1pwYm1Wa0xGeHVJQ0FnSUdac1lXZHpPaUJRWVhKMGFXRnNQRVpoWW5KcFkwTnZiblJ5WVdOMFJteGhaM00rSUh3Z1JtRmljbWxqUTI5dWRISmhZM1JEYjI1MFpYaDBJSHdnUTNSNElId2dZVzU1WEc0Z0lDazZJRkJ5YjIxcGMyVThSbUZpY21salEyOXVkSEpoWTNSR2JHRm5jejRnZTF4dUlDQWdJR3hsZENCaVlYTmxSbXhoWjNNZ1BTQjdYRzRnSUNBZ0lDQnpaV2R5WldkaGRHVmtPaUJtWVd4elpTeGNiaUFnSUNBZ0lISmxZblZwYkdSWGFYUm9WSEpoYm5OcFpXNTBPaUJtWVd4elpTeGNiaUFnSUNBZ0lHWjFiR3g1VTJWbmNtVm5ZWFJsWkRvZ1ptRnNjMlVzWEc0Z0lDQWdmVHRjYmlBZ0lDQnBaaUFvWm14aFozTWdhVzV6ZEdGdVkyVnZaaUJHWVdKeWFXTkRiMjUwY21GamRFTnZiblJsZUhRZ2ZId2dabXhoWjNNZ2FXNXpkR0Z1WTJWdlppQkRiMjUwWlhoMEtTQjdYRzRnSUNBZ0lDQm1iR0ZuY3lBOUlHWnNZV2R6TG5SdlQzWmxjbkpwWkdWektDazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1ltRnpaVVpzWVdkeklEMGdUMkpxWldOMExtRnpjMmxuYmloaVlYTmxSbXhoWjNNc0lHWnNZV2R6S1R0Y2JpQWdJQ0JqYjI1emRDQnpkSFZpUm5KdmJVWnNZV2R6SUQxY2JpQWdJQ0FnSUNobWJHRm5jeUJoY3lCR1lXSnlhV05EYjI1MGNtRmpkRU52Ym5SbGVIUXBMbk4wZFdJZ2ZId2dLR1pzWVdkeklHRnpJRU4wZUNrdWMzUjFZanRjYmlBZ0lDQmpiMjV6ZENCcFpHVnVkR2wwZVVaeWIyMUdiR0ZuY3lBOVhHNGdJQ0FnSUNBb1pteGhaM01nWVhNZ1JtRmljbWxqUTI5dWRISmhZM1JEYjI1MFpYaDBLUzVwWkdWdWRHbDBlU0I4ZkZ4dUlDQWdJQ0FnS0dac1lXZHpJR0Z6SUVOMGVDa3VZMnhwWlc1MFNXUmxiblJwZEhrN1hHNGdJQ0FnYVdZZ0tITjBkV0pHY205dFJteGhaM01nSmlZZ2FXUmxiblJwZEhsR2NtOXRSbXhoWjNNcElIdGNiaUFnSUNBZ0lHTnZibk4wSUhSNFNXUWdQU0J6ZEhWaVJuSnZiVVpzWVdkekxtZGxkRlI0U1VRb0tUdGNiaUFnSUNBZ0lFOWlhbVZqZEM1aGMzTnBaMjRvWW1GelpVWnNZV2R6TENCN1hHNGdJQ0FnSUNBZ0lITjBkV0k2SUhOMGRXSkdjbTl0Um14aFozTXNYRzRnSUNBZ0lDQWdJR2xrWlc1MGFYUjVPaUJwWkdWdWRHbDBlVVp5YjIxR2JHRm5jeXhjYmlBZ0lDQWdJQ0FnWTJWeWREb2dhV1JsYm5ScGRIbEdjbTl0Um14aFozTXVaMlYwU1VSQ2VYUmxjeWdwTG5SdlUzUnlhVzVuS0Nrc1hHNGdJQ0FnSUNBZ0lISnZiR1Z6T2lCcFpHVnVkR2wwZVVaeWIyMUdiR0ZuY3k1blpYUkJkSFJ5YVdKMWRHVldZV3gxWlNoY0luSnZiR1Z6WENJcExGeHVJQ0FnSUNBZ0lDQnNiMmRuWlhJNklFeHZaMmRwYm1jdVptOXlLRnh1SUNBZ0lDQWdJQ0FnSUc5d1pYSmhkR2x2Yml4Y2JpQWdJQ0FnSUNBZ0lDQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCc2IyZE1aWFpsYkRvZ1ptRnNjMlVzWEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhVzFsYzNSaGJYQTZJR1poYkhObExGeHVJQ0FnSUNBZ0lDQWdJQ0FnWTI5eWNtVnNZWFJwYjI1SlpEb2dkSGhKWkN4Y2JpQWdJQ0FnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdJQ0FnSUdac1lXZHpYRzRnSUNBZ0lDQWdJQ2tzWEc0Z0lDQWdJQ0FnSUdOdmNuSmxiR0YwYVc5dVNXUTZJSFI0U1dRc1hHNGdJQ0FnSUNCOUtUdGNiaUFnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnWW1GelpVWnNZV2R6SUQwZ1QySnFaV04wTG1GemMybG5iaWhpWVhObFJteGhaM01zSUdac1lXZHpJSHg4SUh0OUtUdGNiaUFnSUNCOVhHNWNiaUFnSUNCeVpYUjFjbTRnS0dGM1lXbDBJSE4xY0dWeUxtWnNZV2R6S0Z4dUlDQWdJQ0FnYjNCbGNtRjBhVzl1TEZ4dUlDQWdJQ0FnYlc5a1pXd3NYRzRnSUNBZ0lDQmlZWE5sUm14aFozTWdZWE1nWVc1NVhHNGdJQ0FnS1NrZ1lYTWdSbUZpY21salEyOXVkSEpoWTNSR2JHRm5jenRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdRM0psWVhSbGN5QmhiaUJwYm1SbGVDQm1iM0lnWVNCdGIyUmxiRnh1SUNBZ0tpQkFjM1Z0YldGeWVTQlVhR2x6SUcxbGRHaHZaQ0JwY3lCdWIzUWdhVzF3YkdWdFpXNTBaV1FnWm05eUlFWmhZbkpwWXlCamIyNTBjbUZqZEhNZ1lXNWtJSEpsZEhWeWJuTWdZU0J5WlhOdmJIWmxaQ0J3Y205dGFYTmxYRzRnSUNBcUlFQjBaVzF3YkdGMFpTQk5JQzBnVkhsd1pTQmxlSFJsYm1ScGJtY2dUVzlrWld4Y2JpQWdJQ29nUUhCaGNtRnRJSHREYjI1emRISjFZM1J2Y2p4TlBuMGdiVzlrWld4eklDMGdWR2hsSUcxdlpHVnNJR052Ym5OMGNuVmpkRzl5WEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMUJ5YjIxcGMyVThkbTlwWkQ1OUlGQnliMjFwYzJVZ2RHaGhkQ0J5WlhOdmJIWmxjeUJwYlcxbFpHbGhkR1ZzZVZ4dUlDQWdLaTljYmlBZ0x5OGdaWE5zYVc1MExXUnBjMkZpYkdVdGJtVjRkQzFzYVc1bElFQjBlWEJsYzJOeWFYQjBMV1Z6YkdsdWRDOXVieTExYm5WelpXUXRkbUZ5YzF4dUlDQndjbTkwWldOMFpXUWdhVzVrWlhnOFRUNG9iVzlrWld4ek9pQkRiMjV6ZEhKMVkzUnZjanhOUGlrNklGQnliMjFwYzJVOGRtOXBaRDRnZTF4dUlDQWdJSEpsZEhWeWJpQlFjbTl0YVhObExuSmxjMjlzZG1Vb2RXNWtaV1pwYm1Wa0tUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI0Z1VISnZZMlZ6YzJWeklISmxjM1ZzZEhNZ1puSnZiU0JoSUhOMFlYUmxJSEYxWlhKNUlHbDBaWEpoZEc5eVhHNGdJQ0FxSUVCemRXMXRZWEo1SUVsMFpYSmhkR1Z6SUhSb2NtOTFaMmdnY1hWbGNua2djbVZ6ZFd4MGN5QmhibVFnWTI5dWRtVnlkSE1nZEdobGJTQjBieUJoSUhOMGNuVmpkSFZ5WldRZ1ptOXliV0YwWEc0Z0lDQXFJRUJ3WVhKaGJTQjdURzluWjJWeWZTQnNiMmNnTFNCTWIyZG5aWElnYVc1emRHRnVZMlVnWm05eUlHUmxZblZuWjJsdVoxeHVJQ0FnS2lCQWNHRnlZVzBnZTBsMFpYSmhkRzl5Y3k1VGRHRjBaVkYxWlhKNVNYUmxjbUYwYjNKOUlHbDBaWEpoZEc5eUlDMGdWR2hsSUhOMFlYUmxJSEYxWlhKNUlHbDBaWEpoZEc5eVhHNGdJQ0FxSUVCd1lYSmhiU0I3WW05dmJHVmhibjBnVzJselNHbHpkRzl5ZVQxbVlXeHpaVjBnTFNCWGFHVjBhR1Z5SUhSb2FYTWdhWE1nWVNCb2FYTjBiM0o1SUhGMVpYSjVYRzRnSUNBcUlFQnlaWFIxY200Z2UxQnliMjFwYzJVOFlXNTVXMTArZlNCUWNtOXRhWE5sSUhKbGMyOXNkbWx1WnlCMGJ5QmhiaUJoY25KaGVTQnZaaUJ3Y205alpYTnpaV1FnY21WemRXeDBjMXh1SUNBZ0tpQkFiV1Z5YldGcFpGeHVJQ0FnS2lCelpYRjFaVzVqWlVScFlXZHlZVzFjYmlBZ0lDb2dJQ0J3WVhKMGFXTnBjR0Z1ZENCRFlXeHNaWEpjYmlBZ0lDb2dJQ0J3WVhKMGFXTnBjR0Z1ZENCU1pYTjFiSFJKZEdWeVlYUnZjbHh1SUNBZ0tpQWdJSEJoY25ScFkybHdZVzUwSUVsMFpYSmhkRzl5WEc0Z0lDQXFYRzRnSUNBcUlDQWdRMkZzYkdWeUxUNCtVbVZ6ZFd4MFNYUmxjbUYwYjNJNklISmxjM1ZzZEVsMFpYSmhkRzl5S0d4dlp5d2dhWFJsY21GMGIzSXNJR2x6U0dsemRHOXllU2xjYmlBZ0lDb2dJQ0JzYjI5d0lGVnVkR2xzSUdSdmJtVmNiaUFnSUNvZ0lDQWdJRkpsYzNWc2RFbDBaWEpoZEc5eUxUNCtTWFJsY21GMGIzSTZJRzVsZUhRb0tWeHVJQ0FnS2lBZ0lDQWdTWFJsY21GMGIzSXRMVDQrVW1WemRXeDBTWFJsY21GMGIzSTZJSHNnZG1Gc2RXVXNJR1J2Ym1VZ2ZWeHVJQ0FnS2lBZ0lDQWdZV3gwSUVoaGN5QjJZV3gxWlZ4dUlDQWdLaUFnSUNBZ0lDQlNaWE4xYkhSSmRHVnlZWFJ2Y2kwK1BsSmxjM1ZzZEVsMFpYSmhkRzl5T2lCUWNtOWpaWE56SUhaaGJIVmxJR0poYzJWa0lHOXVJR2x6U0dsemRHOXllVnh1SUNBZ0tpQWdJQ0FnSUNCU1pYTjFiSFJKZEdWeVlYUnZjaTArUGxKbGMzVnNkRWwwWlhKaGRHOXlPaUJCWkdRZ2RHOGdjbVZ6ZFd4MGN5QmhjbkpoZVZ4dUlDQWdLaUFnSUNBZ1pXNWtYRzRnSUNBcUlDQWdaVzVrWEc0Z0lDQXFJQ0FnVW1WemRXeDBTWFJsY21GMGIzSXRQajVKZEdWeVlYUnZjam9nWTJ4dmMyVW9LVnh1SUNBZ0tpQWdJRkpsYzNWc2RFbDBaWEpoZEc5eUxTMCtQa05oYkd4bGNqb2dZV3hzVW1WemRXeDBjMXh1SUNBZ0tpOWNiaUFnY0hKdmRHVmpkR1ZrSUdGemVXNWpJSEpsYzNWc2RFbDBaWEpoZEc5eUtGeHVJQ0FnSUd4dlp6b2dURzluWjJWeUxGeHVJQ0FnSUdsMFpYSmhkRzl5T2lCSmRHVnlZWFJ2Y25NdVUzUmhkR1ZSZFdWeWVVbDBaWEpoZEc5eUxGeHVJQ0FnSUdselNHbHpkRzl5ZVNBOUlHWmhiSE5sWEc0Z0lDa2dlMXh1SUNBZ0lHTnZibk4wSUdGc2JGSmxjM1ZzZEhNZ1BTQmJYVHRjYmlBZ0lDQnNaWFFnY21Wek9pQjdJSFpoYkhWbE9pQmhibms3SUdSdmJtVTZJR0p2YjJ4bFlXNGdmU0E5SUdGM1lXbDBJR2wwWlhKaGRHOXlMbTVsZUhRb0tUdGNiaUFnSUNCM2FHbHNaU0FvSVhKbGN5NWtiMjVsS1NCN1hHNGdJQ0FnSUNCcFppQW9jbVZ6TG5aaGJIVmxJQ1ltSUhKbGN5NTJZV3gxWlM1MllXeDFaUzUwYjFOMGNtbHVaeWdwS1NCN1hHNGdJQ0FnSUNBZ0lHeGxkQ0JxYzI5dVVtVnpPaUJoYm5rZ1BTQjdmVHRjYmlBZ0lDQWdJQ0FnYkc5bkxtUmxZblZuS0hKbGN5NTJZV3gxWlM1MllXeDFaUzUwYjFOMGNtbHVaeWhjSW5WMFpqaGNJaWtwTzF4dUlDQWdJQ0FnSUNCcFppQW9hWE5JYVhOMGIzSjVJQzhxSUNZbUlHbHpTR2x6ZEc5eWVTQTlQVDBnZEhKMVpTb3ZLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2FuTnZibEpsY3k1VWVFbGtJRDBnY21WekxuWmhiSFZsTG5SNFNXUTdYRzRnSUNBZ0lDQWdJQ0FnYW5OdmJsSmxjeTVVYVcxbGMzUmhiWEFnUFNCeVpYTXVkbUZzZFdVdWRHbHRaWE4wWVcxd08xeHVJQ0FnSUNBZ0lDQWdJSFJ5ZVNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JxYzI5dVVtVnpMbFpoYkhWbElEMGdTbE5QVGk1d1lYSnpaU2h5WlhNdWRtRnNkV1V1ZG1Gc2RXVXVkRzlUZEhKcGJtY29YQ0oxZEdZNFhDSXBLVHRjYmlBZ0lDQWdJQ0FnSUNCOUlHTmhkR05vSUNobGNuSTZJR0Z1ZVNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYkc5bkxtVnljbTl5S0dWeWNpazdYRzRnSUNBZ0lDQWdJQ0FnSUNCcWMyOXVVbVZ6TGxaaGJIVmxJRDBnY21WekxuWmhiSFZsTG5aaGJIVmxMblJ2VTNSeWFXNW5LRndpZFhSbU9Gd2lLVHRjYmlBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdkSEo1SUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR3B6YjI1U1pYTWdQU0JLVTA5T0xuQmhjbk5sS0hKbGN5NTJZV3gxWlM1MllXeDFaUzUwYjFOMGNtbHVaeWhjSW5WMFpqaGNJaWtwTzF4dUlDQWdJQ0FnSUNBZ0lIMGdZMkYwWTJnZ0tHVnljam9nWVc1NUtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCc2IyY3VaWEp5YjNJb1pYSnlLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHcHpiMjVTWlhNZ1BTQnlaWE11ZG1Gc2RXVXVkbUZzZFdVdWRHOVRkSEpwYm1jb1hDSjFkR1k0WENJcE8xeHVJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCaGJHeFNaWE4xYkhSekxuQjFjMmdvYW5OdmJsSmxjeWs3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0J5WlhNZ1BTQmhkMkZwZENCcGRHVnlZWFJ2Y2k1dVpYaDBLQ2s3WEc0Z0lDQWdmVnh1SUNBZ0lHeHZaeTVrWldKMVp5aGdRMnh2YzJsdVp5QnBkR1Z5WVhSdmNpQmhablJsY2lBa2UyRnNiRkpsYzNWc2RITXViR1Z1WjNSb2ZTQnlaWE4xYkhSellDazdYRzRnSUNBZ1lYZGhhWFFnYVhSbGNtRjBiM0l1WTJ4dmMyVW9LVHRjYmlBZ0lDQnlaWFIxY200Z1lXeHNVbVZ6ZFd4MGN6dGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI0Z1JYaGxZM1YwWlhNZ1lTQnlZWGNnY1hWbGNua2dZV2RoYVc1emRDQjBhR1VnYzNSaGRHVWdaR0YwWVdKaGMyVmNiaUFnSUNvZ1FITjFiVzFoY25rZ1VHVnlabTl5YlhNZ1lTQnlhV05vSUhGMVpYSjVJSFZ6YVc1bklFTnZkV05vUkVJZ2MzbHVkR0Y0SUdGbllXbHVjM1FnZEdobElFWmhZbkpwWXlCemRHRjBaU0JrWVhSaFltRnpaVnh1SUNBZ0tpQkFkR1Z0Y0d4aGRHVWdVaUF0SUZSb1pTQnlaWFIxY200Z2RIbHdaVnh1SUNBZ0tpQkFjR0Z5WVcwZ2UwMWhibWR2VVhWbGNubDlJSEpoZDBsdWNIVjBJQzBnVkdobElFMWhibWR2SUZGMVpYSjVJSFJ2SUdWNFpXTjFkR1ZjYmlBZ0lDb2dRSEJoY21GdElIdGliMjlzWldGdWZTQmtiMk56VDI1c2VTQXRJRmRvWlhSb1pYSWdkRzhnY21WMGRYSnVJRzl1YkhrZ1pHOWpkVzFsYm5SeklDaHViM1FnZFhObFpDQnBiaUIwYUdseklHbHRjR3hsYldWdWRHRjBhVzl1S1Z4dUlDQWdLaUJBY0dGeVlXMGdleTR1TG1GdWVWdGRmU0JoY21keklDMGdRV1JrYVhScGIyNWhiQ0JoY21kMWJXVnVkSE1zSUdsdVkyeDFaR2x1WnlCMGFHVWdZMmhoYVc1amIyUmxJSE4wZFdJZ1lXNWtJR3h2WjJkbGNseHVJQ0FnS2lCQWNtVjBkWEp1SUh0UWNtOXRhWE5sUEZJK2ZTQlFjbTl0YVhObElISmxjMjlzZG1sdVp5QjBieUIwYUdVZ2NYVmxjbmtnY21WemRXeDBjMXh1SUNBZ0tpQkFiV1Z5YldGcFpGeHVJQ0FnS2lCelpYRjFaVzVqWlVScFlXZHlZVzFjYmlBZ0lDb2dJQ0J3WVhKMGFXTnBjR0Z1ZENCRFlXeHNaWEpjYmlBZ0lDb2dJQ0J3WVhKMGFXTnBjR0Z1ZENCR1lXSnlhV05EYjI1MGNtRmpkRUZrWVhCMFpYSmNiaUFnSUNvZ0lDQndZWEowYVdOcGNHRnVkQ0JUZEhWaVhHNGdJQ0FxSUNBZ2NHRnlkR2xqYVhCaGJuUWdVM1JoZEdWRVFseHVJQ0FnS2x4dUlDQWdLaUFnSUVOaGJHeGxjaTArUGtaaFluSnBZME52Ym5SeVlXTjBRV1JoY0hSbGNqb2djbUYzS0hKaGQwbHVjSFYwTENCa2IyTnpUMjVzZVN3Z1kzUjRLVnh1SUNBZ0tpQWdJRVpoWW5KcFkwTnZiblJ5WVdOMFFXUmhjSFJsY2kwK1BrWmhZbkpwWTBOdmJuUnlZV04wUVdSaGNIUmxjam9nUlhoMGNtRmpkQ0JzYVcxcGRDQmhibVFnYzJ0cGNGeHVJQ0FnS2lBZ0lHRnNkQ0JYYVhSb0lIQmhaMmx1WVhScGIyNWNiaUFnSUNvZ0lDQWdJRVpoWW5KcFkwTnZiblJ5WVdOMFFXUmhjSFJsY2kwK1BsTjBkV0k2SUdkbGRGRjFaWEo1VW1WemRXeDBWMmwwYUZCaFoybHVZWFJwYjI0b2NYVmxjbmtzSUd4cGJXbDBMQ0J6YTJsd0tWeHVJQ0FnS2lBZ0lHVnNjMlVnVjJsMGFHOTFkQ0J3WVdkcGJtRjBhVzl1WEc0Z0lDQXFJQ0FnSUNCR1lXSnlhV05EYjI1MGNtRmpkRUZrWVhCMFpYSXRQajVUZEhWaU9pQm5aWFJSZFdWeWVWSmxjM1ZzZENoeGRXVnllU2xjYmlBZ0lDb2dJQ0JsYm1SY2JpQWdJQ29nSUNCVGRIVmlMVDQrVTNSaGRHVkVRam9nUlhobFkzVjBaU0J4ZFdWeWVWeHVJQ0FnS2lBZ0lGTjBZWFJsUkVJdExUNCtVM1IxWWpvZ1NYUmxjbUYwYjNKY2JpQWdJQ29nSUNCVGRIVmlMUzArUGtaaFluSnBZME52Ym5SeVlXTjBRV1JoY0hSbGNqb2dTWFJsY21GMGIzSmNiaUFnSUNvZ0lDQkdZV0p5YVdORGIyNTBjbUZqZEVGa1lYQjBaWEl0UGo1R1lXSnlhV05EYjI1MGNtRmpkRUZrWVhCMFpYSTZJSEpsYzNWc2RFbDBaWEpoZEc5eUtHeHZaeXdnYVhSbGNtRjBiM0lwWEc0Z0lDQXFJQ0FnUm1GaWNtbGpRMjl1ZEhKaFkzUkJaR0Z3ZEdWeUxTMCtQa05oYkd4bGNqb2djbVZ6ZFd4MGMxeHVJQ0FnS2k5Y2JpQWdZWE41Ym1NZ2NtRjNQRklzSUVRZ1pYaDBaVzVrY3lCaWIyOXNaV0Z1UGloY2JpQWdJQ0J5WVhkSmJuQjFkRG9nVFdGdVoyOVJkV1Z5ZVN4Y2JpQWdJQ0JrYjJOelQyNXNlVG9nUkNBOUlIUnlkV1VnWVhNZ1JDeGNiaUFnSUNBdUxpNWhjbWR6T2lCRGIyNTBaWGgwZFdGc1FYSm5jenhHWVdKeWFXTkRiMjUwY21GamRFTnZiblJsZUhRK1hHNGdJQ2s2SUZCeWIyMXBjMlU4VW1GM1VtVnpkV3gwUEZJc0lFUStQaUI3WEc0Z0lDQWdZMjl1YzNRZ2V5QnNiMmNzSUdOMGVDd2dZM1I0UVhKbmN5QjlJRDBnZEdocGN5NXNiMmREZEhnb1lYSm5jeXdnZEdocGN5NXlZWGNwTzF4dVhHNGdJQ0FnWTI5dWMzUWdaVzVoWW14bFUyVm5jbVZuWVhSbGN5QTlJQ0ZoY21kekxteGxibWQwYUNCOGZDQmhjbWR6V3pCZElDRTlQU0IwY25WbE8xeHVJQ0FnSUdOdmJuTjBJR1oxYkd4NVUyVm5jbVZuWVhSbFpDQTlJR1Z1WVdKc1pWTmxaM0psWjJGMFpYTWdKaVlnWTNSNExtbHpSblZzYkhsVFpXZHlaV2RoZEdWa08xeHVYRzRnSUNBZ1kyOXVjM1FnZXlCemEybHdMQ0JzYVcxcGRDQjlJRDBnY21GM1NXNXdkWFE3WEc0Z0lDQWdZMjl1YzNRZ1ltOXZhMjFoY21zZ1BTQnlZWGRKYm5CMWRGdGNJbUp2YjJ0dFlYSnJYQ0pkTzF4dUlDQWdJR052Ym5OMElIQmhaMmx1WVhScGIyNUJZM1JwZG1VZ1BTQkNiMjlzWldGdUtHeHBiV2wwSUh4OElITnJhWEFnZkh3Z1ltOXZhMjFoY21zcE8xeHVJQ0FnSUd4bGRDQnlaWE53SUQwZ2V5QmtiMk56T2lCYlhTd2dZbTl2YTIxaGNtczZJSFZ1WkdWbWFXNWxaQ0JoY3lCemRISnBibWNnZkNCMWJtUmxabWx1WldRZ2ZUdGNibHh1SUNBZ0lDOHZJRkYxWlhKNUlIQjFZbXhwWXlCemRHRjBaU0J2Ym14NUlIZG9aVzRnZEdobElHMXZaR1ZzSUdseklFNVBWQ0JtZFd4c2VTQnpaV2R5WldkaGRHVmtYRzRnSUNBZ2FXWWdLQ0ZtZFd4c2VWTmxaM0psWjJGMFpXUXBJSHRjYmlBZ0lDQWdJR3hsZENCcGRHVnlZWFJ2Y2pvZ1NYUmxjbUYwYjNKekxsTjBZWFJsVVhWbGNubEpkR1Z5WVhSdmNqdGNiaUFnSUNBZ0lHbG1JQ2hzYVcxcGRDQjhmQ0J6YTJsd0tTQjdYRzRnSUNBZ0lDQWdJR1JsYkdWMFpTQnlZWGRKYm5CMWRGdGNJbXhwYldsMFhDSmRPMXh1SUNBZ0lDQWdJQ0JrWld4bGRHVWdjbUYzU1c1d2RYUmJYQ0p6YTJsd1hDSmRPMXh1SUNBZ0lDQWdJQ0JzYjJjdVpHVmlkV2NvWEc0Z0lDQWdJQ0FnSUNBZ1lGSmxkSEpwWlhacGJtY2djSFZpYkdsaklIQmhaMmx1WVhSbFpDQnBkR1Z5WVhSdmNqb2diR2x0YVhRNklDUjdiR2x0YVhSOUx5QnphMmx3T2lBa2UzTnJhWEI5WUZ4dUlDQWdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCeVpYTndiMjV6WlRvZ1UzUmhkR1ZSZFdWeWVWSmxjM0J2Ym5ObFBFbDBaWEpoZEc5eWN5NVRkR0YwWlZGMVpYSjVTWFJsY21GMGIzSStJRDFjYmlBZ0lDQWdJQ0FnSUNBb1lYZGhhWFFnZEdocGN5NXhkV1Z5ZVZKbGMzVnNkRkJoWjJsdVlYUmxaQ2hjYmlBZ0lDQWdJQ0FnSUNBZ0lHTjBlQzV6ZEhWaUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnY21GM1NXNXdkWFFzWEc0Z0lDQWdJQ0FnSUNBZ0lDQnNhVzFwZENCOGZDQk9kVzFpWlhJdVRVRllYMVpCVEZWRkxGeHVJQ0FnSUNBZ0lDQWdJQ0FnS0hOcmFYQWdZWE1nWVc1NUtUOHVkRzlUZEhKcGJtY29LU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lHSnZiMnR0WVhKckxGeHVJQ0FnSUNBZ0lDQWdJQ0FnTGk0dVcyTjBlQ0JoY3lCR1lXSnlhV05EYjI1MGNtRmpkRU52Ym5SbGVIUmRYRzRnSUNBZ0lDQWdJQ0FnS1NrZ1lYTWdVM1JoZEdWUmRXVnllVkpsYzNCdmJuTmxQRWwwWlhKaGRHOXljeTVUZEdGMFpWRjFaWEo1U1hSbGNtRjBiM0krTzF4dUlDQWdJQ0FnSUNCeVpYTndMbUp2YjJ0dFlYSnJJRDBnY21WemNHOXVjMlV1YldWMFlXUmhkR0V1WW05dmEyMWhjbXM3WEc0Z0lDQWdJQ0FnSUdsMFpYSmhkRzl5SUQwZ2NtVnpjRzl1YzJVdWFYUmxjbUYwYjNJN1hHNGdJQ0FnSUNBZ0lHeHZaeTVrWldKMVp5aGdVbVYwY21sbGRtVmtJSEIxWW14cFl5QndZV2RwYm1jZ2FYUmxjbUYwYjNKZ0tUdGNiaUFnSUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lHeHZaeTVrWldKMVp5aGNJbEpsZEhKcFpYWnBibWNnYkdsemRHbHVaeUJ3ZFdKc2FXTWdhWFJsY21GMGIzSmNJaWs3WEc0Z0lDQWdJQ0FnSUdsMFpYSmhkRzl5SUQwZ0tHRjNZV2wwSUhSb2FYTXVjWFZsY25sU1pYTjFiSFFvWEc0Z0lDQWdJQ0FnSUNBZ1kzUjRMbk4wZFdJc1hHNGdJQ0FnSUNBZ0lDQWdjbUYzU1c1d2RYUXNYRzRnSUNBZ0lDQWdJQ0FnWTNSNFhHNGdJQ0FnSUNBZ0lDa3BJR0Z6SUVsMFpYSmhkRzl5Y3k1VGRHRjBaVkYxWlhKNVNYUmxjbUYwYjNJN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCc2IyY3VaR1ZpZFdjb1lGSmxkSEpwWlhabFpDQndkV0pzYVdNZ2JHbHpkR2x1WnlCcGRHVnlZWFJ2Y21BcE8xeHVYRzRnSUNBZ0lDQnlaWE53TG1SdlkzTWdQU0FvWVhkaGFYUWdkR2hwY3k1eVpYTjFiSFJKZEdWeVlYUnZjaWhzYjJjc0lHbDBaWEpoZEc5eUtTa2dZWE1nWVc1NU8xeHVJQ0FnSUNBZ2JHOW5MbVJsWW5WbktGeHVJQ0FnSUNBZ0lDQmdjbVYwZFhKdWFXNW5JQ1I3UVhKeVlYa3VhWE5CY25KaGVTaHlaWE53TG1SdlkzTXBJRDhnY21WemNDNWtiMk56TG14bGJtZDBhQ0E2SURGOUlISmxjM1ZzZEhOZ1hHNGdJQ0FnSUNBcE8xeHVJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0F2THlCR2IzSWdablZzYkhrZ2MyVm5jbVZuWVhSbFpDQnRiMlJsYkhNc0lITjBjbWx3SUhCaFoybHVZWFJwYjI0Z1ptbGxiR1J6SUdaeWIyMGdjbUYzU1c1d2RYUmNiaUFnSUNBZ0lDOHZJSE52SUhSb1pTQnpaV2R5WldkaGRHVmtJSEYxWlhKNUlHSmxiRzkzSUdOaGJpQnlaUzFoY0hCc2VTQjBhR1Z0SUdOc1pXRnViSGxjYmlBZ0lDQWdJR2xtSUNoc2FXMXBkQ0I4ZkNCemEybHdLU0I3WEc0Z0lDQWdJQ0FnSUdSbGJHVjBaU0J5WVhkSmJuQjFkRnRjSW14cGJXbDBYQ0pkTzF4dUlDQWdJQ0FnSUNCa1pXeGxkR1VnY21GM1NXNXdkWFJiWENKemEybHdYQ0pkTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnYkc5bkxtUmxZblZuS0Z3aVUydHBjSEJwYm1jZ2NIVmliR2xqSUhOMFlYUmxJSEYxWlhKNUlDaG1kV3hzZVNCelpXZHlaV2RoZEdWa0lHMXZaR1ZzS1Z3aUtUdGNiaUFnSUNCOVhHNWNiaUFnSUNCamIyNXpkQ0JqYjJ4c1pXTjBhVzl1Y3lBOUlHVnVZV0pzWlZObFozSmxaMkYwWlhNZ1B5QmpkSGd1WjJWMFVtVmhaRU52Ykd4bFkzUnBiMjV6S0NrZ09pQjFibVJsWm1sdVpXUTdYRzVjYmlBZ0lDQnBaaUFvWTI5c2JHVmpkR2x2Ym5NZ0ppWWdZMjlzYkdWamRHbHZibk11YkdWdVozUm9LU0I3WEc0Z0lDQWdJQ0F2THlCQ2RXbHNaQ0JoSUdaeVpYTm9JR2x1Y0hWMElIZHBkR2dnYkdsdGFYUXZjMnRwY0M5aWIyOXJiV0Z5YXlCeVpYTjBiM0psWkZ4dUlDQWdJQ0FnWTI5dWMzUWdjMlZuY21WbllYUmxaRWx1Y0hWMElEMGdleUF1TGk1eVlYZEpibkIxZENCOU8xeHVJQ0FnSUNBZ2FXWWdLR3hwYldsMEtTQnpaV2R5WldkaGRHVmtTVzV3ZFhRdWJHbHRhWFFnUFNCc2FXMXBkRHRjYmlBZ0lDQWdJR2xtSUNoemEybHdLU0J6WldkeVpXZGhkR1ZrU1c1d2RYUXVjMnRwY0NBOUlITnJhWEE3WEc0Z0lDQWdJQ0JwWmlBb1ltOXZhMjFoY21zcElITmxaM0psWjJGMFpXUkpibkIxZEZ0Y0ltSnZiMnR0WVhKclhDSmRJRDBnWW05dmEyMWhjbXM3WEc1Y2JpQWdJQ0FnSUdOdmJuTjBJSE5sWjNKbFoyRjBaV1E2SUdGdWVWdGRJRDBnVzEwN1hHNGdJQ0FnSUNCbWIzSWdLR052Ym5OMElHTnZiR3hsWTNScGIyNGdiMllnWTI5c2JHVmpkR2x2Ym5NcElIdGNiaUFnSUNBZ0lDQWdiRzluTG1SbFluVm5LR0JSZFdWeWVXbHVaeUJtY205dElDUjdZMjlzYkdWamRHbHZibjFnS1R0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnWm5KdmJVTnZiSE1nUFNCaGQyRnBkQ0IwYUdsekxtWnZjbEJ5YVhaaGRHVW9ZMjlzYkdWamRHbHZiaWt1Y21GM0tGeHVJQ0FnSUNBZ0lDQWdJSHNnTGk0dWMyVm5jbVZuWVhSbFpFbHVjSFYwSUgwc1hHNGdJQ0FnSUNBZ0lDQWdabUZzYzJVc1hHNGdJQ0FnSUNBZ0lDQWdkSEoxWlN4Y2JpQWdJQ0FnSUNBZ0lDQXVMaTVqZEhoQmNtZHpYRzRnSUNBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0FnSUd4dlp5NTJaWEppYjNObEtGeHVJQ0FnSUNBZ0lDQWdJR0J5WldObGFYWmxaQ0FrZXlobWNtOXRRMjlzY3lCaGN5QjFibXR1YjNkdUlHRnpJR0Z1ZVZ0ZEtTNXNaVzVuZEdoOUlHWnliMjBnSkh0amIyeHNaV04wYVc5dWZXQmNiaUFnSUNBZ0lDQWdLVHRjYmlBZ0lDQWdJQ0FnYzJWbmNtVm5ZWFJsWkM1d2RYTm9LR1p5YjIxRGIyeHpLVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJR2xtSUNod1lXZHBibUYwYVc5dVFXTjBhWFpsS1NCN1hHNGdJQ0FnSUNBZ0lDOHZJRVp2Y2lCd1lXZHBibUYwWldRZ1pteHZkM01zSUd0bFpYQWdjMjkxY21ObElITmxiR1ZqZEdsdmJpQmtaWFJsY20xcGJtbHpkR2xqSUhOdlhHNGdJQ0FnSUNBZ0lDOHZJR1Y0ZEdWeWJtRnNiSGtnWjJWdVpYSmhkR1ZrSUc5d1lYRjFaU0JpYjI5cmJXRnlhM01nYzNSaGVTQjJZV3hwWkNCaFkzSnZjM01nY0dGblpYTXVYRzRnSUNBZ0lDQWdJR2xtSUNobWRXeHNlVk5sWjNKbFoyRjBaV1FwSUh0Y2JpQWdJQ0FnSUNBZ0lDQnlaWE53SUQwZ0tITmxaM0psWjJGMFpXUmJNRjBnWVhNZ1lXNTVLU0I4ZkNCeVpYTndPMXh1SUNBZ0lDQWdJQ0I5SUdWc2MyVWdhV1lnS0NGeVpYTndMbVJ2WTNNL0xteGxibWQwYUNBbUppQnpaV2R5WldkaGRHVmtMbXhsYm1kMGFDa2dlMXh1SUNBZ0lDQWdJQ0FnSUM4dklGQnlaWE5sY25abElIQjFZbXhwWXkxemRHRjBaU0J3Y21sdmNtbDBlU0JtYjNJZ2JXbDRaV1FnYlc5a1pXeHpMQ0JpZFhRZ1lXeHNiM2NnWVZ4dUlDQWdJQ0FnSUNBZ0lDOHZJSE4wWVdKc1pTQm1ZV3hzWW1GamF5QjNhR1Z1SUhCMVlteHBZeUJ4ZFdWeWVTQnlaWFIxY201eklHNXZJR1J2WTNNdVhHNGdJQ0FnSUNBZ0lDQWdjbVZ6Y0NBOUlITmxaM0psWjJGMFpXUmJNRjBnWVhNZ1lXNTVPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0F2THlCT2IyNHRjR0ZuYVc1aGRHVmtJSEpsWVdSeklHTmhiaUJ6ZEdsc2JDQndjbVZtWlhJZ2RHaGxJSEpwWTJobGMzUWdjbVZ6Y0c5dWMyVXVYRzRnSUNBZ0lDQWdJSEpsYzNBZ1BTQnpaV2R5WldkaGRHVmtMbkpsWkhWalpTZ29ZV05qTENCamRYSnlLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDQWdhV1lnS0NGaFkyTXBJSEpsZEhWeWJpQmpkWEp5TzF4dUlDQWdJQ0FnSUNBZ0lHbG1JQ2hqZFhKeUxtUnZZM01nSmlZZ1kzVnljaTVrYjJOekxteGxibWQwYUNBK1BTQmhZMk0vTG1SdlkzTXViR1Z1WjNSb0tTQnlaWFIxY200Z1kzVnljanRjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnWVdOak8xeHVJQ0FnSUNBZ0lDQjlMQ0J5WlhOd0tUdGNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNWNiaUFnSUNCcFppQW9aRzlqYzA5dWJIa3BJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnlaWE53TG1SdlkzTWdZWE1nWVc1NU8xeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdjbVZ6Y0NCaGN5Qmhibms3WEc0Z0lIMWNibHh1SUNCaGMzbHVZeUIyYVdWM1BGSStLRnh1SUNBZ0lDOHZJR1Z6YkdsdWRDMWthWE5oWW14bExXNWxlSFF0YkdsdVpTQkFkSGx3WlhOamNtbHdkQzFsYzJ4cGJuUXZibTh0ZFc1MWMyVmtMWFpoY25OY2JpQWdJQ0JrWkc5ak9pQnpkSEpwYm1jc1hHNGdJQ0FnTHk4Z1pYTnNhVzUwTFdScGMyRmliR1V0Ym1WNGRDMXNhVzVsSUVCMGVYQmxjMk55YVhCMExXVnpiR2x1ZEM5dWJ5MTFiblZ6WldRdGRtRnljMXh1SUNBZ0lIWnBaWGRPWVcxbE9pQnpkSEpwYm1jc1hHNGdJQ0FnTHk4Z1pYTnNhVzUwTFdScGMyRmliR1V0Ym1WNGRDMXNhVzVsSUVCMGVYQmxjMk55YVhCMExXVnpiR2x1ZEM5dWJ5MTFiblZ6WldRdGRtRnljMXh1SUNBZ0lHOXdkR2x2Ym5NNklGSmxZMjl5WkR4emRISnBibWNzSUdGdWVUNHNYRzRnSUNBZ0x5OGdaWE5zYVc1MExXUnBjMkZpYkdVdGJtVjRkQzFzYVc1bElFQjBlWEJsYzJOeWFYQjBMV1Z6YkdsdWRDOXVieTExYm5WelpXUXRkbUZ5YzF4dUlDQWdJQzR1TGw5aGNtZHpPaUJEYjI1MFpYaDBkV0ZzUVhKbmN6eEdZV0p5YVdORGIyNTBjbUZqZEVOdmJuUmxlSFErWEc0Z0lDazZJRkJ5YjIxcGMyVThWbWxsZDFKbGMzQnZibk5sUEZJK1BpQjdYRzRnSUNBZ2RHaHliM2NnYm1WM0lGVnVjM1Z3Y0c5eWRHVmtSWEp5YjNJb1hHNGdJQ0FnSUNCY0lrWmhZbkpwWXlCamIyNTBjbUZqZEhNZ1pHOGdibTkwSUhOMWNIQnZjblFnUTI5MVkyaEVRaUIyYVdWM2N5NWNJbHh1SUNBZ0lDazdYRzRnSUgxY2JseHVJQ0J2ZG1WeWNtbGtaU0JUZEdGMFpXMWxiblE4VFNCbGVIUmxibVJ6SUUxdlpHVnNQaWhjYmlBZ0lDQnZkbVZ5Y21sa1pYTS9PaUJRWVhKMGFXRnNQRUZrWVhCMFpYSkdiR0ZuY3o1Y2JpQWdLVG9nUm1GaWNtbGpVM1JoZEdWdFpXNTBQRTBzSUdGdWVUNGdlMXh1SUNBZ0lISmxkSFZ5YmlCdVpYY2dSbUZpY21salUzUmhkR1Z0Wlc1MEtIUm9hWE1nWVhNZ1lXNTVMQ0J2ZG1WeWNtbGtaWE1wTzF4dUlDQjlYRzVjYmlBZ2IzWmxjbkpwWkdVZ1lYTjVibU1nZFhCa1lYUmxRV3hzUEUwZ1pYaDBaVzVrY3lCTmIyUmxiRDRvWEc0Z0lDQWdkR0ZpYkdWT1lXMWxPaUJEYjI1emRISjFZM1J2Y2p4TlBpeGNiaUFnSUNCcFpEb2dVSEpwYldGeWVVdGxlVlI1Y0dWYlhTeGNiaUFnSUNCdGIyUmxiRG9nVW1WamIzSmtQSE4wY21sdVp5d2dZVzU1UGx0ZExGeHVJQ0FnSUM0dUxtRnlaM002SUVOdmJuUmxlSFIxWVd4QmNtZHpQRVpoWW5KcFkwTnZiblJ5WVdOMFEyOXVkR1Y0ZEQ1Y2JpQWdLVG9nVUhKdmJXbHpaVHhTWldOdmNtUThjM1J5YVc1bkxDQmhibmsrVzEwK0lIdGNiaUFnSUNCcFppQW9hV1F1YkdWdVozUm9JQ0U5UFNCdGIyUmxiQzVzWlc1bmRHZ3BYRzRnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dTVzUwWlhKdVlXeEZjbkp2Y2loY0lrbGtjeUJoYm1RZ2JXOWtaV3h6SUcxMWMzUWdhR0YyWlNCMGFHVWdjMkZ0WlNCc1pXNW5kR2hjSWlrN1hHNGdJQ0FnWTI5dWMzUWdleUJzYjJjc0lHTjBlRUZ5WjNNZ2ZTQTlJSFJvYVhNdWJHOW5RM1I0S0dGeVozTXNJSFJvYVhNdWRYQmtZWFJsUVd4c0tUdGNiaUFnSUNCamIyNXpkQ0IwWVdKc1pVeGhZbVZzSUQwZ1RXOWtaV3d1ZEdGaWJHVk9ZVzFsS0hSaFlteGxUbUZ0WlNrN1hHNGdJQ0FnYkc5bkxtUmxZblZuS0dCVmNHUmhkR2x1WnlBa2UybGtMbXhsYm1kMGFIMGdaVzUwY21sbGN5QWtlM1JoWW14bFRHRmlaV3g5SUhSaFlteGxZQ2s3WEc0Z0lDQWdjbVYwZFhKdUlGQnliMjFwYzJVdVlXeHNLRnh1SUNBZ0lDQWdhV1F1YldGd0tDaHBMQ0JqYjNWdWRDa2dQVDRnZEdocGN5NTFjR1JoZEdVb2RHRmliR1ZPWVcxbExDQnBMQ0J0YjJSbGJGdGpiM1Z1ZEYwc0lDNHVMbU4wZUVGeVozTXBLVnh1SUNBZ0lDazdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ3BjYmlBZ0lDb2dRSEJoY21GdElHMXZaR1ZzWEc0Z0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQndhMXh1SUNBZ0tpQkFjR0Z5WVcwZ1lYSm5jMXh1SUNBZ0tpOWNiaUFnYjNabGNuSnBaR1VnY0hKbGNHRnlaVHhOSUdWNGRHVnVaSE1nVFc5a1pXdytLRnh1SUNBZ0lHMXZaR1ZzT2lCTkxGeHVJQ0FnSUM0dUxtRnlaM002SUVOdmJuUmxlSFIxWVd4QmNtZHpQRVpoWW5KcFkwTnZiblJ5WVdOMFEyOXVkR1Y0ZEQ1Y2JpQWdLVG9nVUhKbGNHRnlaV1JOYjJSbGJDQW1JSHRjYmlBZ0lDQnpaV2R5WldkaGRHVmtQem9nVW1WamIzSmtQSE4wY21sdVp5d2dVbVZqYjNKa1BITjBjbWx1Wnl3Z1lXNTVQajQ3WEc0Z0lIMGdlMXh1SUNBZ0lHTnZibk4wSUhzZ2JHOW5MQ0JqZEhnZ2ZTQTlJSFJvYVhNdWJHOW5RM1I0S0dGeVozTXNJSFJvYVhNdWNISmxjR0Z5WlNrN1hHNGdJQ0FnWTI5dWMzUWdjM0JzYVhRNklGTmxaM0psWjJGMFpXUk5iMlJsYkR4TlBpQTlJRTF2WkdWc0xuTmxaM0psWjJGMFpTaHRiMlJsYkNrN1hHNGdJQ0FnWTI5dWMzUWdkR0ZpYkdWT1lXMWxJRDBnVFc5a1pXd3VkR0ZpYkdWT1lXMWxLRzF2WkdWc0xtTnZibk4wY25WamRHOXlJR0Z6SUdGdWVTazdYRzRnSUNBZ1kyOXVjM1FnY0dzZ1BTQk5iMlJsYkM1d2F5aHRiMlJsYkM1amIyNXpkSEoxWTNSdmNpQmhjeUJoYm5rcE8xeHVJQ0FnSUdOdmJuTjBJR2xrSUQwZ2JXOWtaV3hiY0dzZ1lYTWdhMlY1YjJZZ1RWMDdYRzVjYmlBZ0lDQmpiMjV6ZENCcGMwMXBjbkp2Y2lBOUlHTjBlQzVuWlhSUGNsVnVaR1ZtYVc1bFpDaGNJbTFwY25KdmNsd2lLU0JoY3lCaWIyOXNaV0Z1SUh3Z2RXNWtaV1pwYm1Wa08xeHVYRzRnSUNBZ1kyOXVjM1FnYldGd1ZHOVNaV052Y21RZ1BTQm1kVzVqZEdsdmJpQW9YRzRnSUNBZ0lDQjBhR2x6T2lCR1lXSnlhV05EYjI1MGNtRmpkRUZrWVhCMFpYSXNYRzRnSUNBZ0lDQnZZbW82SUZKbFkyOXlaRHh6ZEhKcGJtY3NJR0Z1ZVQ0c1hHNGdJQ0FnSUNCclpYbHpUM1psY25KcFpHVS9PaUJ6ZEhKcGJtZGJYVnh1SUNBZ0lDa2dlMXh1SUNBZ0lDQWdhV1lnS0d0bGVYTlBkbVZ5Y21sa1pTbGNiaUFnSUNBZ0lDQWdhMlY1YzA5MlpYSnlhV1JsSUQwZ1d5NHVMbTVsZHlCVFpYUW9XeTR1TG10bGVYTlBkbVZ5Y21sa1pTd2djR3NnWVhNZ2MzUnlhVzVuWFNsZE8xeHVJQ0FnSUNBZ1kyOXVjM1FnY21WemRXeDBJRDBnVDJKcVpXTjBMbVZ1ZEhKcFpYTW9iMkpxS1M1eVpXUjFZMlVvWEc0Z0lDQWdJQ0FnSUNoaFkyTjFiVG9nVW1WamIzSmtQSE4wY21sdVp5d2dZVzU1UGl3Z1cydGxlU3dnZG1Gc1hTa2dQVDRnZTF4dUlDQWdJQ0FnSUNBZ0lHbG1JQ2gwZVhCbGIyWWdkbUZzSUQwOVBTQmNJblZ1WkdWbWFXNWxaRndpS1NCeVpYUjFjbTRnWVdOamRXMDdYRzRnSUNBZ0lDQWdJQ0FnYVdZZ0tHdGxlWE5QZG1WeWNtbGtaU0FtSmlBaGEyVjVjMDkyWlhKeWFXUmxMbWx1WTJ4MVpHVnpLR3RsZVNrcElISmxkSFZ5YmlCaFkyTjFiVHRjYmlBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J0WVhCd1pXUlFjbTl3SUQwZ1RXOWtaV3d1WTI5c2RXMXVUbUZ0WlNodGIyUmxiQ3dnYTJWNUlHRnpJR0Z1ZVNrN1hHNGdJQ0FnSUNBZ0lDQWdhV1lnS0hSb2FYTXVhWE5TWlhObGNuWmxaQ2h0WVhCd1pXUlFjbTl3S1NsY2JpQWdJQ0FnSUNBZ0lDQWdJSFJvY205M0lHNWxkeUJKYm5SbGNtNWhiRVZ5Y205eUtHQlFjbTl3WlhKMGVTQnVZVzFsSUNSN2JXRndjR1ZrVUhKdmNIMGdhWE1nY21WelpYSjJaV1JnS1R0Y2JpQWdJQ0FnSUNBZ0lDQjJZV3dnUFNCMllXd2dhVzV6ZEdGdVkyVnZaaUJFWVhSbElEOGdibVYzSUVSaGRHVW9kbUZzS1NBNklIWmhiRHRjYmlBZ0lDQWdJQ0FnSUNCaFkyTjFiVnR0WVhCd1pXUlFjbTl3WFNBOUlIWmhiRHRjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnWVdOamRXMDdYRzRnSUNBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0FnSUh0OVhHNGdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ2FXWWdLRTlpYW1WamRDNXJaWGx6S0hKbGMzVnNkQ2t1Wm1sc2RHVnlLQ2hyS1NBOVBpQkNiMjlzWldGdUtISmxjM1ZzZEZ0clhTa3BMbXhsYm1kMGFDa2dlMXh1SUNBZ0lDQWdJQ0F2THlCQlpHUWdkR0ZpYkdVZ2FXUmxiblJwWm1sbGNseHVJQ0FnSUNBZ0lDQnlaWE4xYkhSYlEyOTFZMmhFUWt0bGVYTXVWRUZDVEVWZElEMGdkR0ZpYkdWT1lXMWxPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdjbVYwZFhKdUlISmxjM1ZzZER0Y2JpQWdJQ0I5TG1KcGJtUW9kR2hwY3lrN1hHNWNiaUFnSUNCc2IyY3VjMmxzYkhrb1hHNGdJQ0FnSUNCZ1VISmxjR0Z5YVc1bklISmxZMjl5WkNCbWIzSWdKSHQwWVdKc1pVNWhiV1Y5SUhSaFlteGxJSGRwZEdnZ2NHc2dKSHNvYlc5a1pXd2dZWE1nWVc1NUtWdHdhMTE5WUZ4dUlDQWdJQ2s3WEc1Y2JpQWdJQ0JqYjI1emRDQnpaV2R5WldkaGRHVmtWM0pwZEdWTFpYbHpJRDBnWTNSNExtZGxkRk5sWjNKbFoyRjBaV1JYY21sMFpYTW9LVHRjYmlBZ0lDQmpiMjV6ZENCelpXZHlaV2RoZEdWa1YzSnBkR1Z6T2lCU1pXTnZjbVE4YzNSeWFXNW5MQ0JoYm5rK0lEMGdlMzA3WEc0Z0lDQWdMeThnVDI1c2VTQmhjSEJzZVNCelpXZHlaV2RoZEdWa0lIZHlhWFJsY3lCM2FHVnVJSFJvWlNCamRYSnlaVzUwSUcxdlpHVnNJR0ZqZEhWaGJHeDVJR2hoY3lCaElIUnlZVzV6YVdWdWRDQnpjR3hwZEM1Y2JpQWdJQ0F2THlCVWFHVWdjMkZ0WlNCR1lXSnlhV05EYjI1MGNtRmpkRU52Ym5SbGVIUWdZMkZ1SUdKbElISmxkWE5sWkNCaFkzSnZjM01nYm1WemRHVmtJRzl3WlhKaGRHbHZibk1nS0dadmNpQmxlR0Z0Y0d4bFhHNGdJQ0FnTHk4Z2MyVnhkV1Z1WTJVZ2RYQnpaWEowY3lCa2RYSnBibWNnY0dWeWMybHpkR1Z1ZENCMlpYSnphVzl1SUdkbGJtVnlZWFJwYjI0cExpQkpiaUIwYUc5elpTQmpZWE5sY3l3Z2QyVWdiWFZ6ZENCdWIzUmNiaUFnSUNBdkx5QmhkSFJsYlhCMElIUnZJR0Z3Y0d4NUlIQmhjbVZ1ZEMxdGIyUmxiQ0J6WldkeVpXZGhkR1ZrSUhkeWFYUmxJR3RsZVhNZ2RHOGdkVzV5Wld4aGRHVmtJRzF2WkdWc2N5NWNiaUFnSUNCcFppQW9jMlZuY21WbllYUmxaRmR5YVhSbFMyVjVjeUFtSmlCemNHeHBkQzUwY21GdWMybGxiblFnSmlZZ2RIbHdaVzltSUhOd2JHbDBMblJ5WVc1emFXVnVkQ0E5UFQwZ1hDSnZZbXBsWTNSY0lpa2dlMXh1SUNBZ0lDQWdabTl5SUNoamIyNXpkQ0JqYjJ4c1pXTjBhVzl1SUdsdUlITmxaM0psWjJGMFpXUlhjbWwwWlV0bGVYTXBJSHRjYmlBZ0lDQWdJQ0FnYzJWbmNtVm5ZWFJsWkZkeWFYUmxjMXRqYjJ4c1pXTjBhVzl1WFNBOUlITmxaM0psWjJGMFpXUlhjbWwwWlhOYlkyOXNiR1ZqZEdsdmJsMGdmSHdnZTMwN1hHNGdJQ0FnSUNBZ0lITmxaM0psWjJGMFpXUlhjbWwwWlhOYlkyOXNiR1ZqZEdsdmJsMWJhV1FnWVhNZ1lXNTVYU0E5SUcxaGNGUnZVbVZqYjNKa0tGeHVJQ0FnSUNBZ0lDQWdJR04wZUM1blpYUlBjbFZ1WkdWbWFXNWxaQ2hjSW1admNtTmxVMlZuY21WbllYUmxWM0pwZEdWY0lpbGNiaUFnSUNBZ0lDQWdJQ0FnSUQ4Z2MzQnNhWFF1Ylc5a1pXeGNiaUFnSUNBZ0lDQWdJQ0FnSURvZ0tDaHpjR3hwZEM1MGNtRnVjMmxsYm5RZ1lYTWdZVzU1S1NCOGZDQjdmU2tzWEc0Z0lDQWdJQ0FnSUNBZ2MyVm5jbVZuWVhSbFpGZHlhWFJsUzJWNWMxdGpiMnhzWldOMGFXOXVYVnh1SUNBZ0lDQWdJQ0FwTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmx4dUlDQWdJQzh2SUVsdUlHMXBjbkp2Y2lCdGIyUmxMQ0IwYUdVZ2NtVmpiM0prSUhOb2IzVnNaQ0JqYjI1MFlXbHVJRUZNVENCdGIyUmxiQ0J3Y205d1pYSjBhV1Z6SUNobWRXeHNJR052Y0hrcFhHNGdJQ0FnWTI5dWMzUWdjbVZqYjNKa0lEMGdhWE5OYVhKeWIzSWdQeUJ0WVhCVWIxSmxZMjl5WkNodGIyUmxiQ2tnT2lCdFlYQlViMUpsWTI5eVpDaHpjR3hwZEM1dGIyUmxiQ2s3WEc1Y2JpQWdJQ0J5WlhSMWNtNGdlMXh1SUNBZ0lDQWdjbVZqYjNKa0xGeHVJQ0FnSUNBZ2FXUTZJQ2h0YjJSbGJDQmhjeUJoYm5rcFczQnJYU0JoY3lCemRISnBibWNzWEc0Z0lDQWdJQ0IwY21GdWMybGxiblE2WEc0Z0lDQWdJQ0FnSUNGcGMwMXBjbkp2Y2lBbUppQnpjR3hwZEM1MGNtRnVjMmxsYm5RZ0ppWWdUMkpxWldOMExtdGxlWE1vYzNCc2FYUXVkSEpoYm5OcFpXNTBLUzVzWlc1bmRHaGNiaUFnSUNBZ0lDQWdJQ0EvSUcxaGNGUnZVbVZqYjNKa0tITndiR2wwTG5SeVlXNXphV1Z1ZENsY2JpQWdJQ0FnSUNBZ0lDQTZJSFZ1WkdWbWFXNWxaQ3hjYmlBZ0lDQWdJSE5sWjNKbFoyRjBaV1E2SUdselRXbHljbTl5SUQ4Z2RXNWtaV1pwYm1Wa0lEb2djMlZuY21WbllYUmxaRmR5YVhSbGN5eGNiaUFnSUNCOU8xeHVJQ0I5WEc1Y2JpQWdiM1psY25KcFpHVWdjbVYyWlhKMFBFMGdaWGgwWlc1a2N5Qk5iMlJsYkQ0b1hHNGdJQ0FnYjJKcU9pQlNaV052Y21ROGMzUnlhVzVuTENCaGJuaytMRnh1SUNBZ0lHTnNZWHA2T2lCRGIyNXpkSEoxWTNSdmNqeE5QaXhjYmlBZ0lDQnBaRG9nVUhKcGJXRnllVXRsZVZSNWNHVXNYRzRnSUNBZ2RISmhibk5wWlc1MFB6b2dVbVZqYjNKa1BITjBjbWx1Wnl3Z1lXNTVQaXhjYmlBZ0lDQXVMaTVoY21kek9pQkRiMjUwWlhoMGRXRnNRWEpuY3p4R1lXSnlhV05EYjI1MGNtRmpkRU52Ym5SbGVIUStYRzRnSUNrNklFMGdlMXh1SUNBZ0lHTnZibk4wSUhzZ2JHOW5MQ0JqZEhnZ2ZTQTlJSFJvYVhNdWJHOW5RM1I0S0dGeVozTXNJSFJvYVhNdWNtVjJaWEowS1R0Y2JpQWdJQ0JqYjI1emRDQnZZam9nVW1WamIzSmtQSE4wY21sdVp5d2dZVzU1UGlBOUlIdDlPMXh1SUNBZ0lHTnZibk4wSUhCcklEMGdUVzlrWld3dWNHc29ZMnhoZW5vcE8xeHVJQ0FnSUdOdmJuTjBJSEJyVUhKdmNITWdQU0JOYjJSbGJDNXdhMUJ5YjNCektHTnNZWHA2S1R0Y2JpQWdJQ0JwWmlBb2NHdFFjbTl3Y3o4dWRIbHdaU0E5UFQwZ1RuVnRZbVZ5SUNZbUlIUjVjR1Z2WmlCcFpDQTlQVDBnWENKemRISnBibWRjSWlrZ2UxeHVJQ0FnSUNBZ2FXUWdQU0JPZFcxaVpYSW9hV1FwTzF4dUlDQWdJSDFjYmlBZ0lDQnZZbHR3YXlCaGN5QnpkSEpwYm1kZElEMGdhV1E3WEc0Z0lDQWdiRzluTG5OcGJHeDVLR0JTWldKMWFXeGthVzVuSUcxdlpHVnNJQ1I3WTJ4aGVub3VibUZ0WlgwZ2FXUWdKSHRwWkgxZ0tUdGNibHh1SUNBZ0lHWjFibU4wYVc5dUlHMWhjRlJ2VFc5a1pXd29jam9nVW1WamIzSmtQR0Z1ZVN3Z1lXNTVQaWtnZTF4dUlDQWdJQ0FnWTI5dWMzUWdiU0E5SUNoY2JpQWdJQ0FnSUNBZ2RIbHdaVzltSUdOc1lYcDZJRDA5UFNCY0luTjBjbWx1WjF3aUlEOGdUVzlrWld3dVluVnBiR1FvYjJJc0lHTnNZWHA2S1NBNklHNWxkeUJqYkdGNmVpaHZZaWxjYmlBZ0lDQWdJQ2tnWVhNZ1RUdGNiaUFnSUNBZ0lHTnZibk4wSUdGMGRISnBZblYwWlhNZ1BTQk5iMlJsYkM1blpYUkJkSFJ5YVdKMWRHVnpLR05zWVhwNktUdGNiaUFnSUNBZ0lHTnZibk4wSUd0bGVYTWdQU0JoZEhSeWFXSjFkR1Z6TG14bGJtZDBhQ0EvSUdGMGRISnBZblYwWlhNZ09pQlBZbXBsWTNRdWEyVjVjeWh0S1R0Y2JpQWdJQ0FnSUhKbGRIVnliaUJyWlhselhHNGdJQ0FnSUNBZ0lDNW1hV3gwWlhJb0tHc3BJRDArSUdzZ0lUMDlJQ2h3YXlCaGN5QnpkSEpwYm1jcEtWeHVJQ0FnSUNBZ0lDQXVjbVZrZFdObEtDaGhZMk4xYlRvZ1RTd2dhMlY1S1NBOVBpQjdYRzRnSUNBZ0lDQWdJQ0FnS0dGalkzVnRJR0Z6SUZKbFkyOXlaRHh6ZEhKcGJtY3NJR0Z1ZVQ0cFcydGxlVjBnUFZ4dUlDQWdJQ0FnSUNBZ0lDQWdjbHROYjJSbGJDNWpiMngxYlc1T1lXMWxLR0ZqWTNWdExDQnJaWGtnWVhNZ1lXNTVLVjA3WEc0Z0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUdGalkzVnRPMXh1SUNBZ0lDQWdJQ0I5TENCdEtUdGNiaUFnSUNCOVhHNWNiaUFnSUNCc1pYUWdjbVZ6ZFd4MElEMGdiV0Z3Vkc5TmIyUmxiQ2h2WW1vcE8xeHVYRzRnSUNBZ2FXWWdLSFJ5WVc1emFXVnVkQ0FtSmlBaGRHaHBjeTV6YUc5MWJHUlNaV0oxYVd4a1YybDBhRlJ5WVc1emFXVnVkQ2hqZEhncEtTQjdYRzRnSUNBZ0lDQnNiMmN1WkdWaWRXY29YRzRnSUNBZ0lDQWdJR0JtYVd4MFpYSnBibWNnZEhKaGJuTnBaVzUwSUhCeWIzQmxjblJwWlhNNklDUjdUMkpxWldOMExtdGxlWE1vZEhKaGJuTnBaVzUwS1M1cWIybHVLRndpTENCY0lpbDlZRnh1SUNBZ0lDQWdLVHRjYmlBZ0lDQWdJSEpsYzNWc2RDQTlJRTlpYW1WamRDNWxiblJ5YVdWektISmxjM1ZzZENrdWNtVmtkV05sS0NoaFkyTXNJRnRyWlhrc0lIWmRLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2hyWlhrZ1BUMDlJSEJySUh4OElDRW9hMlY1SUdsdUlIUnlZVzV6YVdWdWRDa3BJSHRjYmlBZ0lDQWdJQ0FnSUNCaFkyTmJhMlY1SUdGeklHdGxlVzltSUUxZElEMGdkanRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnWVdOak8xeHVJQ0FnSUNBZ2ZTd2dibVYzSUdOc1lYcDZLQ2twTzF4dUlDQWdJSDFjYmx4dUlDQWdJSEpsZEhWeWJpQnlaWE4xYkhRN1hHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElITm9iM1ZzWkZKbFluVnBiR1JYYVhSb1ZISmhibk5wWlc1MEtHTjBlRG9nUm1GaWNtbGpRMjl1ZEhKaFkzUkRiMjUwWlhoMEtUb2dZbTl2YkdWaGJpQjdYRzRnSUNBZ2FXWWdLQ0ZqZEhncElISmxkSFZ5YmlCbVlXeHpaVHRjYmlBZ0lDQnBaaUFvWTNSNExtZGxkRTl5Vlc1a1pXWnBibVZrS0Z3aWNtVmlkV2xzWkZkcGRHaFVjbUZ1YzJsbGJuUmNJaWtwSUhKbGRIVnliaUIwY25WbE8xeHVJQ0FnSUdOdmJuTjBJRzl3WlhKaGRHbHZiaUE5SUdOMGVDNW5aWFJQY2xWdVpHVm1hVzVsWkNoY0ltOXdaWEpoZEdsdmJsd2lLU0JoY3lCemRISnBibWNnZkNCMWJtUmxabWx1WldRN1hHNGdJQ0FnYVdZZ0tDRnZjR1Z5WVhScGIyNHBJSEpsZEhWeWJpQjBjblZsTzF4dUlDQWdJR052Ym5OMElHOXdJRDBnYjNCbGNtRjBhVzl1TG5SdlUzUnlhVzVuS0NrdWRHOU1iM2RsY2tOaGMyVW9LVHRjYmlBZ0lDQnlaWFIxY200Z0lWUnlZVzV6WVdOMGFXOXVUM0JsY21GMGFXOXVTMlY1Y3k1dFlYQW9LR3NwSUQwK0lHc3VkRzlNYjNkbGNrTmhjMlVvS1NrdWFXNWpiSFZrWlhNb2IzQXBPMXh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0JuWlhSRGIyNTBaWGgwVFhOd0tHTnZiblJsZUhRNklFWmhZbkpwWTBOdmJuUnlZV04wUTI5dWRHVjRkQ2s2SUhOMGNtbHVaeUI4SUhWdVpHVm1hVzVsWkNCN1hHNGdJQ0FnWTI5dWMzUWdhV1JsYm5ScGRIa2dQU0JqYjI1MFpYaDBMbWRsZENoY0ltbGtaVzUwYVhSNVhDSXBJR0Z6WEc0Z0lDQWdJQ0I4SUhOMGNtbHVaMXh1SUNBZ0lDQWdmQ0JEYkdsbGJuUkpaR1Z1ZEdsMGVWeHVJQ0FnSUNBZ2ZDQjFibVJsWm1sdVpXUTdYRzRnSUNBZ2FXWWdLQ0ZwWkdWdWRHbDBlU2tnY21WMGRYSnVJSFZ1WkdWbWFXNWxaRHRjYmlBZ0lDQnBaaUFvZEhsd1pXOW1JR2xrWlc1MGFYUjVJRDA5UFNCY0luTjBjbWx1WjF3aUtTQnlaWFIxY200Z2FXUmxiblJwZEhrN1hHNGdJQ0FnZEhKNUlIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCcFpHVnVkR2wwZVM1blpYUk5VMUJKUkNncE8xeHVJQ0FnSUgwZ1kyRjBZMmdnZTF4dUlDQWdJQ0FnY21WMGRYSnVJSFZ1WkdWbWFXNWxaRHRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJR1Z1Wm05eVkyVk5hWEp5YjNKQmRYUm9iM0pwZW1GMGFXOXVQRTBnWlhoMFpXNWtjeUJOYjJSbGJENG9YRzRnSUNBZ1kyeGhlbm82SUVOdmJuTjBjblZqZEc5eVBFMCtMRnh1SUNBZ0lHTjBlRG9nUm1GaWNtbGpRMjl1ZEhKaFkzUkRiMjUwWlhoMFhHNGdJQ2s2SUhadmFXUWdlMXh1SUNBZ0lHTnZibk4wSUcxcGNuSnZjazFsZEdFZ1BTQk5iMlJsYkM1dGFYSnliM0psWkVGMEtHTnNZWHA2S1R0Y2JpQWdJQ0JwWmlBb0lXMXBjbkp2Y2sxbGRHRXBJSEpsZEhWeWJqdGNiaUFnSUNCamIyNXpkQ0J0YzNBZ1BTQjBhR2x6TG1kbGRFTnZiblJsZUhSTmMzQW9ZM1I0S1R0Y2JpQWdJQ0JwWmlBb0lXMXpjQ2tnY21WMGRYSnVPMXh1SUNBZ0lHbG1JQ2hjYmlBZ0lDQWdJRzF6Y0NBOVBUMGdiV2x5Y205eVRXVjBZUzV0YzNCSlpDQjhmRnh1SUNBZ0lDQWdLRzFwY25KdmNrMWxkR0V1WTI5dVpHbDBhVzl1SUNZbUlHMXBjbkp2Y2sxbGRHRXVZMjl1WkdsMGFXOXVLRzF6Y0NrcFhHNGdJQ0FnS1NCN1hHNGdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1FYVjBhRzl5YVhwaGRHbHZia1Z5Y205eUtGeHVJQ0FnSUNBZ0lDQmdUM0puWVc1cGVtRjBhVzl1SUNSN2JYTndmU0JwY3lCdWIzUWdZWFYwYUc5eWFYcGxaQ0IwYnlCdGIyUnBabmtnYldseWNtOXlaV1FnWkdGMFlXQmNiaUFnSUNBZ0lDazdYRzRnSUNBZ2ZWeHVJQ0I5WEc1Y2JpQWdiM1psY25KcFpHVWdZM0psWVhSbFVISmxabWw0UEUwZ1pYaDBaVzVrY3lCTmIyUmxiRDRvWEc0Z0lDQWdkR0ZpYkdWT1lXMWxPaUJEYjI1emRISjFZM1J2Y2p4TlBpeGNiaUFnSUNCcFpEb2dVSEpwYldGeWVVdGxlVlI1Y0dVc1hHNGdJQ0FnYlc5a1pXdzZJRkpsWTI5eVpEeHpkSEpwYm1jc0lHRnVlVDRzWEc0Z0lDQWdMaTR1WVhKbmN6b2dUV0Y1WW1WRGIyNTBaWGgwZFdGc1FYSm5QRVpoWW5KcFkwTnZiblJ5WVdOMFEyOXVkR1Y0ZEQ1Y2JpQWdLU0I3WEc0Z0lDQWdZMjl1YzNRZ2V5QmpkSGhCY21keklIMGdQU0IwYUdsekxteHZaME4wZUNoaGNtZHpMQ0IwYUdsekxtTnlaV0YwWlZCeVpXWnBlQ2s3WEc0Z0lDQWdZMjl1YzNRZ2NtVmpiM0prT2lCU1pXTnZjbVE4YzNSeWFXNW5MQ0JoYm5rK0lEMGdlMzA3WEc0Z0lDQWdjbVZqYjNKa1cwTnZkV05vUkVKTFpYbHpMbFJCUWt4RlhTQTlJRTF2WkdWc0xuUmhZbXhsVG1GdFpTaDBZV0pzWlU1aGJXVXBPMXh1SUNBZ0lFOWlhbVZqZEM1aGMzTnBaMjRvY21WamIzSmtMQ0J0YjJSbGJDazdYRzVjYmlBZ0lDQnlaWFIxY200Z1czUmhZbXhsVG1GdFpTd2dhV1FzSUhKbFkyOXlaQ3dnTGk0dVkzUjRRWEpuYzEwZ1lYTWdXMXh1SUNBZ0lDQWdRMjl1YzNSeWRXTjBiM0k4VFQ0c1hHNGdJQ0FnSUNCUWNtbHRZWEo1UzJWNVZIbHdaU3hjYmlBZ0lDQWdJRkpsWTI5eVpEeHpkSEpwYm1jc0lHRnVlVDRzWEc0Z0lDQWdJQ0F1TGk1aGJubGJYU3hjYmlBZ0lDQWdJRVpoWW5KcFkwTnZiblJ5WVdOMFEyOXVkR1Y0ZEN4Y2JpQWdJQ0JkTzF4dUlDQjlYRzVjYmlBZ2IzWmxjbkpwWkdVZ2RYQmtZWFJsVUhKbFptbDRQRTBnWlhoMFpXNWtjeUJOYjJSbGJENG9YRzRnSUNBZ2RHRmliR1ZPWVcxbE9pQkRiMjV6ZEhKMVkzUnZjanhOUGl4Y2JpQWdJQ0JwWkRvZ1VISnBiV0Z5ZVV0bGVWUjVjR1VzWEc0Z0lDQWdiVzlrWld3NklGSmxZMjl5WkR4emRISnBibWNzSUdGdWVUNHNYRzRnSUNBZ0xpNHVZWEpuY3pvZ1RXRjVZbVZEYjI1MFpYaDBkV0ZzUVhKblBFWmhZbkpwWTBOdmJuUnlZV04wUTI5dWRHVjRkRDVjYmlBZ0tUb2dZVzU1VzEwZ2UxeHVJQ0FnSUdOdmJuTjBJSHNnWTNSNFFYSm5jeUI5SUQwZ2RHaHBjeTVzYjJkRGRIZ29ZWEpuY3l3Z2RHaHBjeTUxY0dSaGRHVlFjbVZtYVhncE8xeHVJQ0FnSUdOdmJuTjBJSEpsWTI5eVpEb2dVbVZqYjNKa1BITjBjbWx1Wnl3Z1lXNTVQaUE5SUh0OU8xeHVJQ0FnSUhKbFkyOXlaRnREYjNWamFFUkNTMlY1Y3k1VVFVSk1SVjBnUFNCTmIyUmxiQzUwWVdKc1pVNWhiV1VvZEdGaWJHVk9ZVzFsS1R0Y2JpQWdJQ0JQWW1wbFkzUXVZWE56YVdkdUtISmxZMjl5WkN3Z2JXOWtaV3dwTzF4dVhHNGdJQ0FnY21WMGRYSnVJRnQwWVdKc1pVNWhiV1VzSUdsa0xDQnlaV052Y21Rc0lDNHVMbU4wZUVGeVozTmRJR0Z6SUZ0Y2JpQWdJQ0FnSUVOdmJuTjBjblZqZEc5eVBFMCtMRnh1SUNBZ0lDQWdVSEpwYldGeWVVdGxlVlI1Y0dVc1hHNGdJQ0FnSUNCU1pXTnZjbVE4YzNSeWFXNW5MQ0JoYm5rK0xGeHVJQ0FnSUNBZ0xpNHVZVzU1VzEwc1hHNGdJQ0FnSUNCR1lXSnlhV05EYjI1MGNtRmpkRU52Ym5SbGVIUXNYRzRnSUNBZ1hUdGNiaUFnZlZ4dVhHNGdJSEJ5YjNSbFkzUmxaQ0J2ZG1WeWNtbGtaU0JqY21WaGRHVkJiR3hRY21WbWFYZzhUU0JsZUhSbGJtUnpJRTF2WkdWc1BpaGNiaUFnSUNCMFlXSnNaVTVoYldVNklFTnZibk4wY25WamRHOXlQRTArTEZ4dUlDQWdJR2xrY3pvZ1VISnBiV0Z5ZVV0bGVWUjVjR1ZiWFN4Y2JpQWdJQ0J0YjJSbGJITTZJRkpsWTI5eVpEeHpkSEpwYm1jc0lHRnVlVDViWFN4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJiTGk0dVlXNTVMQ0JHWVdKeWFXTkRiMjUwY21GamRFTnZiblJsZUhSZFhHNGdJQ2s2SUNoemRISnBibWNnZkNCemRISnBibWRiWFNCOElHNTFiV0psY2x0ZElId2dVbVZqYjNKa1BITjBjbWx1Wnl3Z1lXNTVQbHRkS1Z0ZElIdGNiaUFnSUNCcFppQW9hV1J6TG14bGJtZDBhQ0FoUFQwZ2JXOWtaV3h6TG14bGJtZDBhQ2xjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJKYm5SbGNtNWhiRVZ5Y205eUtGd2lTV1J6SUdGdVpDQnRiMlJsYkhNZ2JYVnpkQ0JvWVhabElIUm9aU0J6WVcxbElHeGxibWQwYUZ3aUtUdGNibHh1SUNBZ0lHTnZibk4wSUdOMGVEb2dSbUZpY21salEyOXVkSEpoWTNSRGIyNTBaWGgwSUQwZ1lYSm5jeTV3YjNBb0tUdGNibHh1SUNBZ0lHTnZibk4wSUhKbFkyOXlaSE1nUFNCcFpITXViV0Z3S0NocFpDd2dZMjkxYm5RcElEMCtJSHRjYmlBZ0lDQWdJR052Ym5OMElISmxZMjl5WkRvZ1VtVmpiM0prUEhOMGNtbHVaeXdnWVc1NVBpQTlJSHQ5TzF4dUlDQWdJQ0FnY21WamIzSmtXME52ZFdOb1JFSkxaWGx6TGxSQlFreEZYU0E5SUUxdlpHVnNMblJoWW14bFRtRnRaU2gwWVdKc1pVNWhiV1VwTzF4dUlDQWdJQ0FnVDJKcVpXTjBMbUZ6YzJsbmJpaHlaV052Y21Rc0lHMXZaR1ZzYzF0amIzVnVkRjBwTzF4dUlDQWdJQ0FnY21WMGRYSnVJSEpsWTI5eVpEdGNiaUFnSUNCOUtUdGNiaUFnSUNCeVpYUjFjbTRnVzNSaFlteGxUbUZ0WlN3Z2FXUnpMQ0J5WldOdmNtUnpMQ0JqZEhnZ1lYTWdZVzU1WFR0Y2JpQWdmVnh1WEc0Z0lIQnliM1JsWTNSbFpDQnZkbVZ5Y21sa1pTQjFjR1JoZEdWQmJHeFFjbVZtYVhnOFRTQmxlSFJsYm1SeklFMXZaR1ZzUGloY2JpQWdJQ0IwWVdKc1pVNWhiV1U2SUVOdmJuTjBjblZqZEc5eVBFMCtMRnh1SUNBZ0lHbGtjem9nVUhKcGJXRnllVXRsZVZSNWNHVmJYU3hjYmlBZ0lDQnRiMlJsYkhNNklGSmxZMjl5WkR4emRISnBibWNzSUdGdWVUNWJYU3hjYmlBZ0lDQXVMaTVoY21kek9pQmJMaTR1WVc1NUxDQkdZV0p5YVdORGIyNTBjbUZqZEVOdmJuUmxlSFJkWEc0Z0lDa2dlMXh1SUNBZ0lHbG1JQ2hwWkhNdWJHVnVaM1JvSUNFOVBTQnRiMlJsYkhNdWJHVnVaM1JvS1Z4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVsdWRHVnlibUZzUlhKeWIzSW9YQ0pKWkhNZ1lXNWtJRzF2WkdWc2N5QnRkWE4wSUdoaGRtVWdkR2hsSUhOaGJXVWdiR1Z1WjNSb1hDSXBPMXh1WEc0Z0lDQWdZMjl1YzNRZ1kzUjRPaUJHWVdKeWFXTkRiMjUwY21GamRFTnZiblJsZUhRZ1BTQmhjbWR6TG5CdmNDZ3BPMXh1WEc0Z0lDQWdZMjl1YzNRZ2NtVmpiM0prY3lBOUlHbGtjeTV0WVhBb0tHbGtMQ0JqYjNWdWRDa2dQVDRnZTF4dUlDQWdJQ0FnWTI5dWMzUWdjbVZqYjNKa09pQlNaV052Y21ROGMzUnlhVzVuTENCaGJuaytJRDBnZTMwN1hHNGdJQ0FnSUNCeVpXTnZjbVJiUTI5MVkyaEVRa3RsZVhNdVZFRkNURVZkSUQwZ1RXOWtaV3d1ZEdGaWJHVk9ZVzFsS0hSaFlteGxUbUZ0WlNrN1hHNGdJQ0FnSUNCUFltcGxZM1F1WVhOemFXZHVLSEpsWTI5eVpDd2diVzlrWld4elcyTnZkVzUwWFNrN1hHNGdJQ0FnSUNCeVpYUjFjbTRnY21WamIzSmtPMXh1SUNBZ0lIMHBPMXh1SUNBZ0lISmxkSFZ5YmlCYmRHRmliR1ZPWVcxbExDQnBaSE1zSUhKbFkyOXlaSE1zSUdOMGVDQmhjeUJoYm5sZE8xeHVJQ0I5WEc1Y2JpQWdiM1psY25KcFpHVWdjR0Z5YzJWRmNuSnZjanhGSUdWNGRHVnVaSE1nUW1GelpVVnljbTl5UGloY2JpQWdJQ0JsY25JNklFVnljbTl5SUh3Z2MzUnlhVzVuTEZ4dUlDQWdJSEpsWVhOdmJqODZJSE4wY21sdVoxeHVJQ0FwT2lCRklIdGNiaUFnSUNCeVpYUjFjbTRnUm1GaWNtbGpRMjl1ZEhKaFkzUkJaR0Z3ZEdWeUxuQmhjbk5sUlhKeWIzSW9jbVZoYzI5dUlIeDhJR1Z5Y2lrN1hHNGdJSDFjYmx4dUlDQndjbTkwWldOMFpXUWdiM1psY25KcFpHVWdiRzluUTNSNFBGeHVJQ0FnSUVGU1IxTWdaWGgwWlc1a2N5QmhibmxiWFNBOUlHRnVlVnRkTEZ4dUlDQWdJRTFGVkVoUFJDQmxlSFJsYm1SeklFMWxkR2h2WkU5eVQzQmxjbUYwYVc5dUlEMGdUV1YwYUc5a1QzSlBjR1Z5WVhScGIyNHNYRzRnSUQ0b1hHNGdJQ0FnWVhKbmN6b2dUV0Y1WW1WRGIyNTBaWGgwZFdGc1FYSm5QRVpoWW5KcFkwTnZiblJ5WVdOMFEyOXVkR1Y0ZEN3Z1FWSkhVejRzWEc0Z0lDQWdiM0JsY21GMGFXOXVPaUJOUlZSSVQwUmNiaUFnS1RvZ1JtRmljbWxqUTI5dWRHVjRkSFZoYkdsNlpXUkJjbWR6UEVGU1IxTXNJRTFGVkVoUFJDQmxlSFJsYm1SeklITjBjbWx1WnlBL0lIUnlkV1VnT2lCbVlXeHpaVDQ3WEc0Z0lIQnliM1JsWTNSbFpDQnZkbVZ5Y21sa1pTQnNiMmREZEhnOFhHNGdJQ0FnUVZKSFV5QmxlSFJsYm1SeklHRnVlVnRkSUQwZ1lXNTVXMTBzWEc0Z0lDQWdUVVZVU0U5RUlHVjRkR1Z1WkhNZ1RXVjBhRzlrVDNKUGNHVnlZWFJwYjI0Z1BTQk5aWFJvYjJSUGNrOXdaWEpoZEdsdmJpeGNiaUFnUGloY2JpQWdJQ0JoY21kek9pQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtYzhSbUZpY21salEyOXVkSEpoWTNSRGIyNTBaWGgwTENCQlVrZFRQaXhjYmlBZ0lDQnZjR1Z5WVhScGIyNDZJRTFGVkVoUFJDeGNiaUFnSUNCaGJHeHZkME55WldGMFpUb2dabUZzYzJWY2JpQWdLVG9nUm1GaWNtbGpRMjl1ZEdWNGRIVmhiR2w2WldSQmNtZHpQRUZTUjFNc0lFMUZWRWhQUkNCbGVIUmxibVJ6SUhOMGNtbHVaeUEvSUhSeWRXVWdPaUJtWVd4elpUNDdYRzRnSUhCeWIzUmxZM1JsWkNCdmRtVnljbWxrWlNCc2IyZERkSGc4WEc0Z0lDQWdRVkpIVXlCbGVIUmxibVJ6SUdGdWVWdGRJRDBnWVc1NVcxMHNYRzRnSUNBZ1RVVlVTRTlFSUdWNGRHVnVaSE1nVFdWMGFHOWtUM0pQY0dWeVlYUnBiMjRnUFNCTlpYUm9iMlJQY2s5d1pYSmhkR2x2Yml4Y2JpQWdQaWhjYmlBZ0lDQmhjbWR6T2lCTllYbGlaVU52Ym5SbGVIUjFZV3hCY21jOFJtRmljbWxqUTI5dWRISmhZM1JEYjI1MFpYaDBMQ0JCVWtkVFBpeGNiaUFnSUNCdmNHVnlZWFJwYjI0NklFMUZWRWhQUkN4Y2JpQWdJQ0JoYkd4dmQwTnlaV0YwWlRvZ2RISjFaU3hjYmlBZ0lDQnZkbVZ5Y21sa1pYTS9PaUJRWVhKMGFXRnNQRVpzWVdkelQyWThSbUZpY21salEyOXVkSEpoWTNSRGIyNTBaWGgwUGo1Y2JpQWdLVG9nVUhKdmJXbHpaVHhjYmlBZ0lDQkdZV0p5YVdORGIyNTBaWGgwZFdGc2FYcGxaRUZ5WjNNOFFWSkhVeXdnVFVWVVNFOUVJR1Y0ZEdWdVpITWdjM1J5YVc1bklEOGdkSEoxWlNBNklHWmhiSE5sUGx4dUlDQStPMXh1SUNCd2NtOTBaV04wWldRZ2IzWmxjbkpwWkdVZ2JHOW5RM1I0UEZ4dUlDQWdJRUZTUjFNZ1pYaDBaVzVrY3lCaGJubGJYU0E5SUdGdWVWdGRMRnh1SUNBZ0lFMUZWRWhQUkNCbGVIUmxibVJ6SUUxbGRHaHZaRTl5VDNCbGNtRjBhVzl1SUQwZ1RXVjBhRzlrVDNKUGNHVnlZWFJwYjI0c1hHNGdJRDRvWEc0Z0lDQWdZWEpuY3pvZ1RXRjVZbVZEYjI1MFpYaDBkV0ZzUVhKblBFWmhZbkpwWTBOdmJuUnlZV04wUTI5dWRHVjRkQ3dnUVZKSFV6NHNYRzRnSUNBZ2IzQmxjbUYwYVc5dU9pQk5SVlJJVDBRc1hHNGdJQ0FnWVd4c2IzZERjbVZoZEdVNklHSnZiMnhsWVc0Z1BTQm1ZV3h6WlN4Y2JpQWdJQ0J2ZG1WeWNtbGtaWE0vT2lCUVlYSjBhV0ZzUEVac1lXZHpUMlk4Um1GaWNtbGpRMjl1ZEhKaFkzUkRiMjUwWlhoMFBqNGdmQ0JEZEhoY2JpQWdLVHBjYmlBZ0lDQjhJRkJ5YjIxcGMyVThYRzRnSUNBZ0lDQWdJRVpoWW5KcFkwTnZiblJsZUhSMVlXeHBlbVZrUVhKbmN6eEJVa2RUTENCTlJWUklUMFFnWlhoMFpXNWtjeUJ6ZEhKcGJtY2dQeUIwY25WbElEb2dabUZzYzJVK1hHNGdJQ0FnSUNBK1hHNGdJQ0FnZkNCR1lXSnlhV05EYjI1MFpYaDBkV0ZzYVhwbFpFRnlaM004UVZKSFV5d2dUVVZVU0U5RUlHVjRkR1Z1WkhNZ2MzUnlhVzVuSUQ4Z2RISjFaU0E2SUdaaGJITmxQaUI3WEc0Z0lDQWdhV1lnS0NGaGJHeHZkME55WldGMFpTbGNiaUFnSUNBZ0lISmxkSFZ5YmlCemRYQmxjaTVzYjJkRGRIZzhRVkpIVXl3Z1RVVlVTRTlFUGloY2JpQWdJQ0FnSUNBZ1lYSm5jeXhjYmlBZ0lDQWdJQ0FnYjNCbGNtRjBhVzl1SUdGeklHRnVlU3hjYmlBZ0lDQWdJQ0FnWVd4c2IzZERjbVZoZEdVZ1lYTWdZVzU1TEZ4dUlDQWdJQ0FnSUNCdmRtVnljbWxrWlhNZ1lYTWdZVzU1WEc0Z0lDQWdJQ0FwSUdGeklHRnVlVHRjYmx4dUlDQWdJSEpsZEhWeWJpQnpkWEJsY2k1c2IyZERkSGhjYmlBZ0lDQWdJQzVqWVd4c0tIUm9hWE1zSUdGeVozTXNJRzl3WlhKaGRHbHZiaUJoY3lCaGJua3NJR0ZzYkc5M1EzSmxZWFJsTENCdmRtVnljbWxrWlhNZ1lYTWdZVzU1S1Z4dUlDQWdJQ0FnTG5Sb1pXNG9LSEpsY3lrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0JwWmlBb0lTaHlaWE11WTNSNElHbHVjM1JoYm1ObGIyWWdSbUZpY21salEyOXVkSEpoWTNSRGIyNTBaWGgwS1NsY2JpQWdJQ0FnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dTVzUwWlhKdVlXeEZjbkp2Y2loZ1NXNTJZV3hwWkNCamIyNTBaWGgwSUdKcGJtUnBibWRnS1R0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUU5aWFtVmpkQzVoYzNOcFoyNG9jbVZ6TENCN1hHNGdJQ0FnSUNBZ0lDQWdjM1IxWWpvZ2NtVnpMbU4wZUM1emRIVmlMRnh1SUNBZ0lDQWdJQ0FnSUdsa1pXNTBhWFI1T2lCeVpYTXVZM1I0TG1sa1pXNTBhWFI1TEZ4dUlDQWdJQ0FnSUNCOUtUdGNiaUFnSUNBZ0lIMHBJR0Z6SUdGdWVUdGNiaUFnZlZ4dVhHNGdJRzkyWlhKeWFXUmxJR0Z6ZVc1aklIVndaR0YwWlU5aWMyVnlkbVZ5Y3loY2JpQWdJQ0IwWVdKc1pUb2dRMjl1YzNSeWRXTjBiM0k4WVc1NVBpQjhJSE4wY21sdVp5eGNiaUFnSUNCbGRtVnVkRG9nVDNCbGNtRjBhVzl1UzJWNWN5QjhJRUoxYkd0RGNuVmtUM0JsY21GMGFXOXVTMlY1Y3lCOElITjBjbWx1Wnl4Y2JpQWdJQ0JwWkRvZ1JYWmxiblJKWkhNc1hHNGdJQ0FnTGk0dVlYSm5jem9nUTI5dWRHVjRkSFZoYkVGeVozTThSbUZpY21salEyOXVkSEpoWTNSRGIyNTBaWGgwUGx4dUlDQXBPaUJRY205dGFYTmxQSFp2YVdRK0lIdGNiaUFnSUNCcFppQW9JWFJvYVhNdWIySnpaWEoyWlhKSVlXNWtiR1Z5S1Z4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVsdWRHVnlibUZzUlhKeWIzSW9YRzRnSUNBZ0lDQWdJRndpVDJKelpYSjJaWEpJWVc1a2JHVnlJRzV2ZENCcGJtbDBhV0ZzYVhwbFpDNGdSR2xrSUhsdmRTQnlaV2RwYzNSbGNpQmhibmtnYjJKelpYSjJZV0pzWlhNL1hDSmNiaUFnSUNBZ0lDazdYRzRnSUNBZ1kyOXVjM1FnZXlCamRIZ3NJR04wZUVGeVozTWdmU0E5SUhSb2FYTXViRzluUTNSNEtHRnlaM01zSUhSb2FYTXVkWEJrWVhSbFQySnpaWEoyWlhKektUdGNiaUFnSUNCcFppQW9ZM1I0TG1selJuVnNiSGxUWldkeVpXZGhkR1ZrS1NCeVpYUjFjbTQ3WEc0Z0lDQWdhV1lnS0dOMGVDNW5aWFJQY2xWdVpHVm1hVzVsWkNoY0ltNXZSVzFwZEZ3aUtTa2djbVYwZFhKdU8xeHVJQ0FnSUdsbUlDZ2hZM1I0TG5OMGRXSXBJSEpsZEhWeWJqdGNiaUFnSUNCamIyNXpkQ0JwYzBKMWJHc2dQU0JCY25KaGVTNXBjMEZ5Y21GNUtHbGtLVHRjYmlBZ0lDQmpiMjV6ZENCbGJXbDBVMmx1WjJ4bElEMGdJV04wZUM1blpYUlBjbFZ1WkdWbWFXNWxaQ2hjSW01dlJXMXBkRk5wYm1kc1pWd2lLVHRjYmlBZ0lDQmpiMjV6ZENCbGJXbDBRblZzYXlBOUlDRmpkSGd1WjJWMFQzSlZibVJsWm1sdVpXUW9YQ0p1YjBWdGFYUkNkV3hyWENJcE8xeHVJQ0FnSUdsbUlDZ29hWE5DZFd4cklDWW1JR1Z0YVhSQ2RXeHJLU0I4ZkNBb0lXbHpRblZzYXlBbUppQmxiV2wwVTJsdVoyeGxLU2tnZTF4dUlDQWdJQ0FnTHk4Z1VHRnpjeUIwYUdVZ1RWTlFJRzkzYm1WeUlHWnliMjBnYzNSMVlpQmhibVFnZEdobElISmxjM1ZzZENCd1lYbHNiMkZrSUNocFppQmhibmtwSUdsdUlIUm9aVnh1SUNBZ0lDQWdMeThnY0c5emFYUnBiMjV6SUhSb1pTQm9ZVzVrYkdWeUlHVjRjR1ZqZEhNNklDaDBZV0pzWlN3Z1pYWmxiblFzSUdsa0xDQnZkMjVsY2o4c0lIQmhlV3h2WVdRL0xDQmpkSGdwWEc0Z0lDQWdJQ0JqYjI1emRDQnRjM0JKWkNBOUlHTjBlQzV6ZEhWaUxtZGxkRTF6Y0VsRUlEOGdZM1I0TG5OMGRXSXVaMlYwVFhOd1NVUW9LU0E2SUhWdVpHVm1hVzVsWkR0Y2JpQWdJQ0FnSUdOdmJuTjBJRzV2YmtOMGVFRnlaM01nUFNCamRIaEJjbWR6TG5Oc2FXTmxLREFzSUMweEtUc2dMeThnWlhabGNubDBhR2x1WnlCaVpXWnZjbVVnWTNSNFhHNGdJQ0FnSUNCamIyNXpkQ0J3WVhsc2IyRmtJRDBnYm05dVEzUjRRWEpuY3k1c1pXNW5kR2dnUGlBd0lEOGdibTl1UTNSNFFYSm5jMXN3WFNBNklIVnVaR1ZtYVc1bFpEdGNiaUFnSUNBZ0lHRjNZV2wwSUhSb2FYTXViMkp6WlhKMlpYSklZVzVrYkdWeUxuVndaR0YwWlU5aWMyVnlkbVZ5Y3loY2JpQWdJQ0FnSUNBZ2RHRmliR1VzWEc0Z0lDQWdJQ0FnSUdWMlpXNTBMRnh1SUNBZ0lDQWdJQ0JwWkN4Y2JpQWdJQ0FnSUNBZ2JYTndTV1FzWEc0Z0lDQWdJQ0FnSUhCaGVXeHZZV1FzWEc0Z0lDQWdJQ0FnSUdOMGVGeHVJQ0FnSUNBZ0tUdGNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQnpkR0YwYVdNZ2IzWmxjbkpwWkdVZ2NHRnljMlZGY25KdmNqeEZJR1Y0ZEdWdVpITWdRbUZ6WlVWeWNtOXlQaWhsY25JNklFVnljbTl5SUh3Z2MzUnlhVzVuS1RvZ1JTQjdYRzRnSUNBZ0x5OGdhV1lnS0Z4dUlDQWdJQzh2SUNBZ1RVbFRVMGxPUjE5UVVrbFdRVlJGWDBSQlZFRmZVa1ZIUlZndWRHVnpkQ2hjYmlBZ0lDQXZMeUFnSUNBZ2RIbHdaVzltSUdWeWNpQTlQVDBnWENKemRISnBibWRjSWlBL0lHVnljaUE2SUdWeWNpNXRaWE56WVdkbFhHNGdJQ0FnTHk4Z0lDQXBYRzRnSUNBZ0x5OGdLVnh1SUNBZ0lDOHZJQ0FnY21WMGRYSnVJRzVsZHlCVmJtRjFkR2h2Y21sNlpXUlFjbWwyWVhSbFJHRjBZVUZqWTJWemN5aGxjbklwSUdGeklFVTdYRzRnSUNBZ1kyOXVjM1FnYlhObklEMGdkSGx3Wlc5bUlHVnljaUE5UFQwZ1hDSnpkSEpwYm1kY0lpQS9JR1Z5Y2lBNklHVnljaTV0WlhOellXZGxPMXh1SUNBZ0lHbG1JQ2h0YzJjdWFXNWpiSFZrWlhNb1RtOTBSbTkxYm1SRmNuSnZjaTV1WVcxbEtTa2djbVYwZFhKdUlHNWxkeUJPYjNSR2IzVnVaRVZ5Y205eUtHVnljaWtnWVhNZ1JUdGNiaUFnSUNCcFppQW9iWE5uTG1sdVkyeDFaR1Z6S0VOdmJtWnNhV04wUlhKeWIzSXVibUZ0WlNrcElISmxkSFZ5YmlCdVpYY2dRMjl1Wm14cFkzUkZjbkp2Y2lobGNuSXBJR0Z6SUVVN1hHNGdJQ0FnYVdZZ0tHMXpaeTVwYm1Oc2RXUmxjeWhDWVdSU1pYRjFaWE4wUlhKeWIzSXVibUZ0WlNrcFhHNGdJQ0FnSUNCeVpYUjFjbTRnYm1WM0lFSmhaRkpsY1hWbGMzUkZjbkp2Y2lobGNuSXBJR0Z6SUVVN1hHNGdJQ0FnYVdZZ0tHMXpaeTVwYm1Oc2RXUmxjeWhSZFdWeWVVVnljbTl5TG01aGJXVXBLU0J5WlhSMWNtNGdibVYzSUZGMVpYSjVSWEp5YjNJb1pYSnlLU0JoY3lCRk8xeHVJQ0FnSUdsbUlDaHRjMmN1YVc1amJIVmtaWE1vVUdGbmFXNW5SWEp5YjNJdWJtRnRaU2twSUhKbGRIVnliaUJ1WlhjZ1VHRm5hVzVuUlhKeWIzSW9aWEp5S1NCaGN5QkZPMXh1SUNBZ0lHbG1JQ2h0YzJjdWFXNWpiSFZrWlhNb1ZXNXpkWEJ3YjNKMFpXUkZjbkp2Y2k1dVlXMWxLU2xjYmlBZ0lDQWdJSEpsZEhWeWJpQnVaWGNnVlc1emRYQndiM0owWldSRmNuSnZjaWhsY25JcElHRnpJRVU3WEc0Z0lDQWdhV1lnS0cxelp5NXBibU5zZFdSbGN5aE5hV2R5WVhScGIyNUZjbkp2Y2k1dVlXMWxLU2tnY21WMGRYSnVJRzVsZHlCTmFXZHlZWFJwYjI1RmNuSnZjaWhsY25JcElHRnpJRVU3WEc0Z0lDQWdhV1lnS0cxelp5NXBibU5zZFdSbGN5aFBZbk5sY25abGNrVnljbTl5TG01aGJXVXBLU0J5WlhSMWNtNGdibVYzSUU5aWMyVnlkbVZ5UlhKeWIzSW9aWEp5S1NCaGN5QkZPMXh1SUNBZ0lHbG1JQ2h0YzJjdWFXNWpiSFZrWlhNb1FYVjBhRzl5YVhwaGRHbHZia1Z5Y205eUxtNWhiV1VwS1Z4dUlDQWdJQ0FnY21WMGRYSnVJRzVsZHlCQmRYUm9iM0pwZW1GMGFXOXVSWEp5YjNJb1pYSnlLU0JoY3lCRk8xeHVJQ0FnSUdsbUlDaHRjMmN1YVc1amJIVmtaWE1vUm05eVltbGtaR1Z1UlhKeWIzSXVibUZ0WlNrcElISmxkSFZ5YmlCdVpYY2dSbTl5WW1sa1pHVnVSWEp5YjNJb1pYSnlLU0JoY3lCRk8xeHVJQ0FnSUdsbUlDaHRjMmN1YVc1amJIVmtaWE1vUTI5dWJtVmpkR2x2YmtWeWNtOXlMbTVoYldVcEtWeHVJQ0FnSUNBZ2NtVjBkWEp1SUc1bGR5QkRiMjV1WldOMGFXOXVSWEp5YjNJb1pYSnlLU0JoY3lCRk8xeHVJQ0FnSUdsbUlDaHRjMmN1YVc1amJIVmtaWE1vVTJWeWFXRnNhWHBoZEdsdmJrVnljbTl5TG01aGJXVXBLVnh1SUNBZ0lDQWdjbVYwZFhKdUlHNWxkeUJUWlhKcFlXeHBlbUYwYVc5dVJYSnliM0lvWlhKeUtTQmhjeUJGTzF4dUlDQWdJR2xtSUNodGMyY3VhVzVqYkhWa1pYTW9YQ0p1YnlCc1pXUm5aWElnWTI5dWRHVjRkRndpS1NsY2JpQWdJQ0FnSUhKbGRIVnliaUJ1WlhjZ1RXbHpjMmx1WjBOdmJuUmxlSFJGY25KdmNpaGNiaUFnSUNBZ0lDQWdZRTV2SUdOdmJuUmxlSFFnWm05MWJtUXVJSFJvYVhNZ1kyRnVJR0psSUdOaGRYTmxaQ0JpZVNCa1pXSjFaMmRwYm1jNklDUjdiWE5uZldCY2JpQWdJQ0FnSUNrZ1lYTWdSVHRjYmx4dUlDQWdJSEpsZEhWeWJpQnVaWGNnU1c1MFpYSnVZV3hGY25KdmNpaGxjbklwSUdGeklFVTdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUUdSbGMyTnlhWEIwYVc5dUlGTjBZWFJwWXlCdFpYUm9iMlFnWm05eUlHUmxZMjl5WVhScGIyNGdiM1psY25KcFpHVnpYRzRnSUNBcUlFQnpkVzF0WVhKNUlFOTJaWEp5YVdSbGN5OWxlSFJsYm1SeklHUmxZMkZtSUdSbFkyOXlZWFJwYjI0Z2QybDBhQ0JHWVdKeWFXTXRjM0JsWTJsbWFXTWdablZ1WTNScGIyNWhiR2wwZVZ4dUlDQWdLaUJBYzNSaGRHbGpYRzRnSUNBcUlFQnZkbVZ5Y21sa1pWeHVJQ0FnS2lCQWNtVjBkWEp1SUh0MmIybGtmVnh1SUNBZ0tpOWNiaUFnYzNSaGRHbGpJRzkyWlhKeWFXUmxJR1JsWTI5eVlYUnBiMjRvS1RvZ2RtOXBaQ0I3WEc0Z0lDQWdjM1Z3WlhJdVpHVmpiM0poZEdsdmJpZ3BPMXh1SUNBZ0lFUmxZMjl5WVhScGIyNHVabXhoZG05MWNtVmtRWE1vUm1GaWNtbGpSbXhoZG05MWNpbGNiaUFnSUNBZ0lDNW1iM0lvVUdWeWMybHpkR1Z1WTJWTFpYbHpMa05TUlVGVVJVUmZRbGtwWEc0Z0lDQWdJQ0F1WkdWbWFXNWxLSHRjYmlBZ0lDQWdJQ0FnWkdWamIzSmhkRzl5T2lCbWRXNWpkR2x2YmlCamNtVmhkR1ZrUW5rb0tTQjdYRzRnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJR0Z3Y0d4NUtGeHVJQ0FnSUNBZ0lDQWdJQ0FnYjI1RGNtVmhkR1VvWTNKbFlYUmxaRUo1VDI1R1lXSnlhV05EY21WaGRHVlZjR1JoZEdVcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnY0hKdmNFMWxkR0ZrWVhSaEtGQmxjbk5wYzNSbGJtTmxTMlY1Y3k1RFVrVkJWRVZFWDBKWkxDQjdmU2xjYmlBZ0lDQWdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdmU0JoY3lCaGJua3BYRzRnSUNBZ0lDQXVZWEJ3Ykhrb0tUdGNibHh1SUNBZ0lFUmxZMjl5WVhScGIyNHVabXhoZG05MWNtVmtRWE1vUm1GaWNtbGpSbXhoZG05MWNpbGNiaUFnSUNBZ0lDNW1iM0lvVUdWeWMybHpkR1Z1WTJWTFpYbHpMbFZRUkVGVVJVUmZRbGtwWEc0Z0lDQWdJQ0F1WkdWbWFXNWxLSHRjYmlBZ0lDQWdJQ0FnWkdWamIzSmhkRzl5T2lCbWRXNWpkR2x2YmlCamNtVmhkR1ZrUW5rb0tTQjdYRzRnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJR0Z3Y0d4NUtGeHVJQ0FnSUNBZ0lDQWdJQ0FnYjI1RGNtVmhkR1ZWY0dSaGRHVW9ZM0psWVhSbFpFSjVUMjVHWVdKeWFXTkRjbVZoZEdWVmNHUmhkR1VwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdjSEp2Y0UxbGRHRmtZWFJoS0ZCbGNuTnBjM1JsYm1ObFMyVjVjeTVWVUVSQlZFVkVYMEpaTENCN2ZTbGNiaUFnSUNBZ0lDQWdJQ0FwTzF4dUlDQWdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ2ZTQmhjeUJoYm5rcFhHNGdJQ0FnSUNBdVlYQndiSGtvS1R0Y2JseHVJQ0FnSUVSbFkyOXlZWFJwYjI0dVpteGhkbTkxY21Wa1FYTW9SbUZpY21salJteGhkbTkxY2lsY2JpQWdJQ0FnSUM1bWIzSW9VR1Z5YzJsemRHVnVZMlZMWlhsekxrTlBURlZOVGlsY2JpQWdJQ0FnSUM1bGVIUmxibVFvUm1GaWNtbGpVSEp2Y0dWeWRIa29LU2xjYmlBZ0lDQWdJQzVoY0hCc2VTZ3BPMXh1WEc0Z0lDQWdSR1ZqYjNKaGRHbHZiaTVtYkdGMmIzVnlaV1JCY3loR1lXSnlhV05HYkdGMmIzVnlLVnh1SUNBZ0lDQWdMbVp2Y2loV1lXeHBaR0YwYVc5dVMyVjVjeTVFUVZSRktWeHVJQ0FnSUNBZ0xtVjRkR1Z1WkNobWRXNWpkR2x2YmlCbVlXSnlhV05RY205d1pYSjBlU2dwSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUNoMFlYSm5aWFE2SUdGdWVTd2djSEp2Y0Q4NklHRnVlU2tnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJRkJ5YjNCbGNuUjVLSEJ5YjNBc0lGd2ljM1J5YVc1bk9tUmhkR1ZjSWlrb2RHRnlaMlYwTENCd2NtOXdLVHRjYmlBZ0lDQWdJQ0FnZlR0Y2JpQWdJQ0FnSUgwcE8xeHVYRzRnSUNBZ1JHVmpiM0poZEdsdmJpNW1iR0YyYjNWeVpXUkJjeWhHWVdKeWFXTkdiR0YyYjNWeUtWeHVJQ0FnSUNBZ0xtWnZjaWhRWlhKemFYTjBaVzVqWlV0bGVYTXVWRUZDVEVVcFhHNGdJQ0FnSUNBdVpYaDBaVzVrS0daMWJtTjBhVzl1SUhSaFlteGxLRzlpYWpvZ1lXNTVLU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR05vWVdsdU9pQmhibmxiWFNBOUlGdGRPMXh1SUNBZ0lDQWdJQ0JzWlhRZ1kzVnljbVZ1ZENBOVhHNGdJQ0FnSUNBZ0lDQWdkSGx3Wlc5bUlHOWlhaUE5UFQwZ1hDSm1kVzVqZEdsdmJsd2lYRzRnSUNBZ0lDQWdJQ0FnSUNBL0lFMWxkR0ZrWVhSaExtTnZibk4wY2lodlltb3BYRzRnSUNBZ0lDQWdJQ0FnSUNBNklFMWxkR0ZrWVhSaExtTnZibk4wY2lodlltb3VZMjl1YzNSeWRXTjBiM0lwTzF4dVhHNGdJQ0FnSUNBZ0lIZG9hV3hsSUNoamRYSnlaVzUwSUNZbUlHTjFjbkpsYm5RZ0lUMDlJRTlpYW1WamRDQW1KaUJqZFhKeVpXNTBMbkJ5YjNSdmRIbHdaU2tnZTF4dUlDQWdJQ0FnSUNBZ0lHTm9ZV2x1TG5CMWMyZ29ZM1Z5Y21WdWRDazdYRzRnSUNBZ0lDQWdJQ0FnWTNWeWNtVnVkQ0E5SUU5aWFtVmpkQzVuWlhSUWNtOTBiM1I1Y0dWUFppaGpkWEp5Wlc1MEtUdGNiaUFnSUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0FnSUdOdmJuTnZiR1V1Ykc5bktHTm9ZV2x1TG0xaGNDZ29ZeWtnUFQ0Z1l5NXVZVzFsSUh4OElHTXBLVHRjYmx4dUlDQWdJQ0FnSUNBdkx5QkJjSEJzZVNCbWNtOXRJSFJvWlNCaVlYTmxJR05zWVhOeklHUnZkMjRnZEc4Z2RHaGxJR1JsWTI5eVlYUmxaQ0JqYkdGemMxeHVJQ0FnSUNBZ0lDQjNhR2xzWlNBb1kyaGhhVzR1YkdWdVozUm9JRDRnTUNrZ2UxeHVJQ0FnSUNBZ0lDQWdJR052Ym5OMElHTnZibk4wY25WamRHOXlJRDBnWTJoaGFXNHVjRzl3S0NrN1hHNGdJQ0FnSUNBZ0lDQWdZMjl1YzI5c1pTNXNiMmNvWUVOaGJHeHBibWNnYjI0Z0pIdGpiMjV6ZEhKMVkzUnZjaTV1WVcxbGZXQXBPMXh1SUNBZ0lDQWdJQ0FnSUVaaFluSnBZMDlpYW1WamRDZ3BLR052Ym5OMGNuVmpkRzl5S1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQkdZV0p5YVdOUFltcGxZM1FvS1Nodlltb3BPMXh1SUNBZ0lDQWdmU2xjYmlBZ0lDQWdJQzVoY0hCc2VTZ3BPMXh1SUNCOVhHNTlYRzVjYmtaaFluSnBZME52Ym5SeVlXTjBRV1JoY0hSbGNpNWtaV052Y21GMGFXOXVLQ2s3WEc1QlpHRndkR1Z5TG5ObGRFTjFjbkpsYm5Rb1JtRmljbWxqUm14aGRtOTFjaWs3WEc0aVhYMD0iXX0=
|
|
1193
|
+
//# sourceMappingURL=ContractAdapter.js.map
|
|
1194
|
+
//# sourceMappingURL=ContractAdapter.js.map
|