@decaf-ts/for-fabric 0.1.24 → 0.1.26
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/dist/for-fabric.cjs +1726 -2
- package/dist/for-fabric.js +1831 -2
- package/lib/bin/build-contract.cjs +2 -1
- package/lib/bin/build-contracts.cjs +2 -1
- package/lib/bin/build-contracts2.cjs +2 -1
- package/lib/bin/compile-indexes.cjs +2 -1
- package/lib/cli-module.cjs +1 -1
- package/lib/client/FabricClientAdapter.cjs +1 -1
- package/lib/client/FabricClientDispatch.cjs +1 -1
- package/lib/client/FabricClientPaginator.cjs +1 -1
- package/lib/client/FabricClientRepository.cjs +1 -1
- package/lib/client/FabricClientStatement.cjs +1 -1
- package/lib/client/erc20/FabricERC20ClientRepository.cjs +1 -1
- package/lib/client/erc20/index.cjs +1 -1
- package/lib/client/fabric-fs.cjs +1 -1
- package/lib/client/fabric-hsm.cjs +1 -1
- package/lib/client/index.cjs +1 -1
- package/lib/client/indexes/generation.cjs +1 -1
- package/lib/client/indexes/index.cjs +1 -1
- package/lib/client/logging.cjs +1 -1
- package/lib/client/services/FabricEnrollmentService.cjs +1 -2
- package/lib/client/services/constants.cjs +1 -1
- package/lib/client/services/index.cjs +1 -1
- package/lib/contract/Address.cjs +1 -1
- package/lib/contract/AddressContract.cjs +1 -1
- package/lib/contract/Product.cjs +1 -1
- package/lib/contract/ProductContract.cjs +1 -1
- package/lib/contract/User.cjs +1 -1
- package/lib/contract/UserContract.cjs +1 -1
- package/lib/contract/index.cjs +1 -1
- package/lib/contracts/ContractAdapter.cjs +1 -1
- package/lib/contracts/ContractContext.cjs +1 -1
- package/lib/contracts/ContractPrivateDataAdapter.cjs +1 -1
- package/lib/contracts/FabricConstruction.cjs +1 -1
- package/lib/contracts/FabricContractRepository.cjs +1 -1
- package/lib/contracts/FabricContractRepositoryObservableHandler.cjs +1 -1
- package/lib/contracts/FabricContractStatement.cjs +1 -1
- package/lib/contracts/PrivateSequence.cjs +1 -1
- package/lib/contracts/crud/crud-contract.cjs +1 -1
- package/lib/contracts/crud/index.cjs +1 -1
- package/lib/contracts/crud/serialized-crud-contract.cjs +1 -1
- package/lib/contracts/erc20/erc20contract.cjs +1 -1
- package/lib/contracts/erc20/index.cjs +1 -1
- package/lib/contracts/erc20/models.cjs +1 -1
- package/lib/contracts/index.cjs +1 -1
- package/lib/contracts/logging.cjs +1 -1
- package/lib/contracts/private-data.cjs +1 -1
- package/lib/contracts/types.cjs +1 -1
- package/lib/esm/bin/build-contract.js +1 -1
- package/lib/esm/bin/build-contracts.js +1 -1
- package/lib/esm/bin/build-contracts2.js +1 -1
- package/lib/esm/bin/compile-indexes.js +1 -1
- package/lib/esm/cli-module.js +1 -1
- package/lib/esm/client/FabricClientAdapter.js +1 -1
- package/lib/esm/client/FabricClientDispatch.js +1 -1
- package/lib/esm/client/FabricClientPaginator.js +1 -1
- package/lib/esm/client/FabricClientRepository.js +1 -1
- package/lib/esm/client/FabricClientStatement.js +1 -1
- package/lib/esm/client/erc20/FabricERC20ClientRepository.js +1 -1
- package/lib/esm/client/erc20/index.js +1 -1
- package/lib/esm/client/fabric-fs.js +1 -1
- package/lib/esm/client/fabric-hsm.js +1 -1
- package/lib/esm/client/index.js +1 -1
- package/lib/esm/client/indexes/generation.js +1 -1
- package/lib/esm/client/indexes/index.js +1 -1
- package/lib/esm/client/logging.js +1 -1
- package/lib/esm/client/services/FabricEnrollmentService.js +1 -2
- package/lib/esm/client/services/constants.js +1 -1
- package/lib/esm/client/services/index.js +1 -1
- package/lib/esm/contract/Address.js +1 -1
- package/lib/esm/contract/AddressContract.js +1 -1
- package/lib/esm/contract/Product.js +1 -1
- package/lib/esm/contract/ProductContract.js +1 -1
- package/lib/esm/contract/User.js +1 -1
- package/lib/esm/contract/UserContract.js +1 -1
- package/lib/esm/contract/index.js +1 -1
- package/lib/esm/contracts/ContractAdapter.js +1 -1
- package/lib/esm/contracts/ContractContext.js +1 -1
- package/lib/esm/contracts/ContractPrivateDataAdapter.js +1 -1
- package/lib/esm/contracts/FabricConstruction.js +1 -1
- package/lib/esm/contracts/FabricContractRepository.js +1 -1
- package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js +1 -1
- package/lib/esm/contracts/FabricContractStatement.js +1 -1
- package/lib/esm/contracts/PrivateSequence.js +1 -1
- package/lib/esm/contracts/crud/crud-contract.js +1 -1
- package/lib/esm/contracts/crud/index.js +1 -1
- package/lib/esm/contracts/crud/serialized-crud-contract.js +1 -1
- package/lib/esm/contracts/erc20/erc20contract.js +1 -1
- package/lib/esm/contracts/erc20/index.js +1 -1
- package/lib/esm/contracts/erc20/models.js +1 -1
- package/lib/esm/contracts/index.js +1 -1
- package/lib/esm/contracts/logging.js +1 -1
- package/lib/esm/contracts/private-data.js +1 -1
- package/lib/esm/contracts/types.js +1 -1
- package/lib/esm/index.js +1 -1
- package/lib/esm/shared/ClientSerializer.js +1 -1
- package/lib/esm/shared/DeterministicSerializer.js +1 -1
- package/lib/esm/shared/SimpleDeterministicSerializer.js +1 -1
- package/lib/esm/shared/constants.js +1 -1
- package/lib/esm/shared/crypto.js +1 -1
- package/lib/esm/shared/decorators.js +1 -1
- package/lib/esm/shared/erc20/erc20-constants.js +1 -1
- package/lib/esm/shared/errors.js +1 -1
- package/lib/esm/shared/events.js +1 -1
- package/lib/esm/shared/fabric-types.js +1 -1
- package/lib/esm/shared/index.js +1 -1
- package/lib/esm/shared/interfaces/Checkable.js +1 -1
- package/lib/esm/shared/math.js +1 -1
- package/lib/esm/shared/model/FabricBaseModel.js +1 -1
- package/lib/esm/shared/model/FabricIdentifiedBaseModel.js +1 -1
- package/lib/esm/shared/model/Identity.js +1 -1
- package/lib/esm/shared/model/IdentityCredentials.js +1 -1
- package/lib/esm/shared/model/index.js +1 -1
- package/lib/esm/shared/overrides/Model.js +1 -1
- package/lib/esm/shared/overrides/index.js +1 -1
- package/lib/esm/shared/overrides/overrides.js +1 -1
- package/lib/esm/shared/types.js +1 -1
- package/lib/esm/shared/utils.js +1 -1
- package/lib/esm/version.d.ts +1 -1
- package/lib/esm/version.js +2 -2
- package/lib/index.cjs +1 -1
- package/lib/shared/ClientSerializer.cjs +1 -1
- package/lib/shared/DeterministicSerializer.cjs +1 -1
- package/lib/shared/SimpleDeterministicSerializer.cjs +1 -1
- package/lib/shared/constants.cjs +1 -1
- package/lib/shared/crypto.cjs +1 -1
- package/lib/shared/decorators.cjs +1 -1
- package/lib/shared/erc20/erc20-constants.cjs +1 -1
- package/lib/shared/errors.cjs +1 -1
- package/lib/shared/events.cjs +1 -1
- package/lib/shared/fabric-types.cjs +1 -1
- package/lib/shared/index.cjs +1 -1
- package/lib/shared/interfaces/Checkable.cjs +1 -1
- package/lib/shared/math.cjs +1 -1
- package/lib/shared/model/FabricBaseModel.cjs +1 -1
- package/lib/shared/model/FabricIdentifiedBaseModel.cjs +1 -1
- package/lib/shared/model/Identity.cjs +1 -1
- package/lib/shared/model/IdentityCredentials.cjs +1 -1
- package/lib/shared/model/index.cjs +1 -1
- package/lib/shared/overrides/Model.cjs +1 -1
- package/lib/shared/overrides/index.cjs +1 -1
- package/lib/shared/overrides/overrides.cjs +1 -1
- package/lib/shared/types.cjs +1 -1
- package/lib/shared/utils.cjs +1 -1
- package/lib/version.cjs +2 -2
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
- package/dist/for-fabric.cjs.map +0 -1
- package/dist/for-fabric.js.map +0 -1
- package/lib/bin/build-contract.js.map +0 -1
- package/lib/bin/build-contracts.js.map +0 -1
- package/lib/bin/build-contracts2.js.map +0 -1
- package/lib/bin/compile-indexes.js.map +0 -1
- package/lib/cli-module.js.map +0 -1
- package/lib/client/FabricClientAdapter.js.map +0 -1
- package/lib/client/FabricClientDispatch.js.map +0 -1
- package/lib/client/FabricClientPaginator.js.map +0 -1
- package/lib/client/FabricClientRepository.js.map +0 -1
- package/lib/client/FabricClientStatement.js.map +0 -1
- package/lib/client/erc20/FabricERC20ClientRepository.js.map +0 -1
- package/lib/client/erc20/index.js.map +0 -1
- package/lib/client/fabric-fs.js.map +0 -1
- package/lib/client/fabric-hsm.js.map +0 -1
- package/lib/client/index.js.map +0 -1
- package/lib/client/indexes/generation.js.map +0 -1
- package/lib/client/indexes/index.js.map +0 -1
- package/lib/client/logging.js.map +0 -1
- package/lib/client/services/FabricEnrollmentService.js.map +0 -1
- package/lib/client/services/constants.js.map +0 -1
- package/lib/client/services/index.js.map +0 -1
- package/lib/contract/Address.js.map +0 -1
- package/lib/contract/AddressContract.js.map +0 -1
- package/lib/contract/Product.js.map +0 -1
- package/lib/contract/ProductContract.js.map +0 -1
- package/lib/contract/User.js.map +0 -1
- package/lib/contract/UserContract.js.map +0 -1
- package/lib/contract/index.js.map +0 -1
- package/lib/contracts/ContractAdapter.js.map +0 -1
- package/lib/contracts/ContractContext.js.map +0 -1
- package/lib/contracts/ContractPrivateDataAdapter.js.map +0 -1
- package/lib/contracts/FabricConstruction.js.map +0 -1
- package/lib/contracts/FabricContractRepository.js.map +0 -1
- package/lib/contracts/FabricContractRepositoryObservableHandler.js.map +0 -1
- package/lib/contracts/FabricContractStatement.js.map +0 -1
- package/lib/contracts/PrivateSequence.js.map +0 -1
- package/lib/contracts/crud/crud-contract.js.map +0 -1
- package/lib/contracts/crud/index.js.map +0 -1
- package/lib/contracts/crud/serialized-crud-contract.js.map +0 -1
- package/lib/contracts/erc20/erc20contract.js.map +0 -1
- package/lib/contracts/erc20/index.js.map +0 -1
- package/lib/contracts/erc20/models.js.map +0 -1
- package/lib/contracts/index.js.map +0 -1
- package/lib/contracts/logging.js.map +0 -1
- package/lib/contracts/private-data.js.map +0 -1
- package/lib/contracts/types.js.map +0 -1
- package/lib/esm/bin/build-contract.js.map +0 -1
- package/lib/esm/bin/build-contracts.js.map +0 -1
- package/lib/esm/bin/build-contracts2.js.map +0 -1
- package/lib/esm/bin/compile-indexes.js.map +0 -1
- package/lib/esm/cli-module.js.map +0 -1
- package/lib/esm/client/FabricClientAdapter.js.map +0 -1
- package/lib/esm/client/FabricClientDispatch.js.map +0 -1
- package/lib/esm/client/FabricClientPaginator.js.map +0 -1
- package/lib/esm/client/FabricClientRepository.js.map +0 -1
- package/lib/esm/client/FabricClientStatement.js.map +0 -1
- package/lib/esm/client/erc20/FabricERC20ClientRepository.js.map +0 -1
- package/lib/esm/client/erc20/index.js.map +0 -1
- package/lib/esm/client/fabric-fs.js.map +0 -1
- package/lib/esm/client/fabric-hsm.js.map +0 -1
- package/lib/esm/client/index.js.map +0 -1
- package/lib/esm/client/indexes/generation.js.map +0 -1
- package/lib/esm/client/indexes/index.js.map +0 -1
- package/lib/esm/client/logging.js.map +0 -1
- package/lib/esm/client/services/FabricEnrollmentService.js.map +0 -1
- package/lib/esm/client/services/constants.js.map +0 -1
- package/lib/esm/client/services/index.js.map +0 -1
- package/lib/esm/contract/Address.js.map +0 -1
- package/lib/esm/contract/AddressContract.js.map +0 -1
- package/lib/esm/contract/Product.js.map +0 -1
- package/lib/esm/contract/ProductContract.js.map +0 -1
- package/lib/esm/contract/User.js.map +0 -1
- package/lib/esm/contract/UserContract.js.map +0 -1
- package/lib/esm/contract/index.js.map +0 -1
- package/lib/esm/contracts/ContractAdapter.js.map +0 -1
- package/lib/esm/contracts/ContractContext.js.map +0 -1
- package/lib/esm/contracts/ContractPrivateDataAdapter.js.map +0 -1
- package/lib/esm/contracts/FabricConstruction.js.map +0 -1
- package/lib/esm/contracts/FabricContractRepository.js.map +0 -1
- package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js.map +0 -1
- package/lib/esm/contracts/FabricContractStatement.js.map +0 -1
- package/lib/esm/contracts/PrivateSequence.js.map +0 -1
- package/lib/esm/contracts/crud/crud-contract.js.map +0 -1
- package/lib/esm/contracts/crud/index.js.map +0 -1
- package/lib/esm/contracts/crud/serialized-crud-contract.js.map +0 -1
- package/lib/esm/contracts/erc20/erc20contract.js.map +0 -1
- package/lib/esm/contracts/erc20/index.js.map +0 -1
- package/lib/esm/contracts/erc20/models.js.map +0 -1
- package/lib/esm/contracts/index.js.map +0 -1
- package/lib/esm/contracts/logging.js.map +0 -1
- package/lib/esm/contracts/private-data.js.map +0 -1
- package/lib/esm/contracts/types.js.map +0 -1
- package/lib/esm/index.js.map +0 -1
- package/lib/esm/shared/ClientSerializer.js.map +0 -1
- package/lib/esm/shared/DeterministicSerializer.js.map +0 -1
- package/lib/esm/shared/SimpleDeterministicSerializer.js.map +0 -1
- package/lib/esm/shared/constants.js.map +0 -1
- package/lib/esm/shared/crypto.js.map +0 -1
- package/lib/esm/shared/decorators.js.map +0 -1
- package/lib/esm/shared/erc20/erc20-constants.js.map +0 -1
- package/lib/esm/shared/errors.js.map +0 -1
- package/lib/esm/shared/events.js.map +0 -1
- package/lib/esm/shared/fabric-types.js.map +0 -1
- package/lib/esm/shared/index.js.map +0 -1
- package/lib/esm/shared/interfaces/Checkable.js.map +0 -1
- package/lib/esm/shared/math.js.map +0 -1
- package/lib/esm/shared/model/FabricBaseModel.js.map +0 -1
- package/lib/esm/shared/model/FabricIdentifiedBaseModel.js.map +0 -1
- package/lib/esm/shared/model/Identity.js.map +0 -1
- package/lib/esm/shared/model/IdentityCredentials.js.map +0 -1
- package/lib/esm/shared/model/index.js.map +0 -1
- package/lib/esm/shared/overrides/Model.js.map +0 -1
- package/lib/esm/shared/overrides/index.js.map +0 -1
- package/lib/esm/shared/overrides/overrides.js.map +0 -1
- package/lib/esm/shared/types.js.map +0 -1
- package/lib/esm/shared/utils.js.map +0 -1
- package/lib/esm/version.js.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/shared/ClientSerializer.js.map +0 -1
- package/lib/shared/DeterministicSerializer.js.map +0 -1
- package/lib/shared/SimpleDeterministicSerializer.js.map +0 -1
- package/lib/shared/constants.js.map +0 -1
- package/lib/shared/crypto.js.map +0 -1
- package/lib/shared/decorators.js.map +0 -1
- package/lib/shared/erc20/erc20-constants.js.map +0 -1
- package/lib/shared/errors.js.map +0 -1
- package/lib/shared/events.js.map +0 -1
- package/lib/shared/fabric-types.js.map +0 -1
- package/lib/shared/index.js.map +0 -1
- package/lib/shared/interfaces/Checkable.js.map +0 -1
- package/lib/shared/math.js.map +0 -1
- package/lib/shared/model/FabricBaseModel.js.map +0 -1
- package/lib/shared/model/FabricIdentifiedBaseModel.js.map +0 -1
- package/lib/shared/model/Identity.js.map +0 -1
- package/lib/shared/model/IdentityCredentials.js.map +0 -1
- package/lib/shared/model/index.js.map +0 -1
- package/lib/shared/overrides/Model.js.map +0 -1
- package/lib/shared/overrides/index.js.map +0 -1
- package/lib/shared/overrides/overrides.js.map +0 -1
- package/lib/shared/types.js.map +0 -1
- package/lib/shared/utils.js.map +0 -1
- package/lib/version.js.map +0 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
1
2
|
"use strict";
|
|
2
3
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
4
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
@@ -68,4 +69,4 @@ program
|
|
|
68
69
|
(0, child_process_1.execSync)("rm -rf ./global/lib && rm -rf ./global/dist");
|
|
69
70
|
});
|
|
70
71
|
program.parse(process.argv);
|
|
71
|
-
//# sourceMappingURL=
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtY29udHJhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYmluL2J1aWxkLWNvbnRyYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsZ0RBQXdCO0FBQ3hCLDRDQUFvQjtBQUNwQixtQ0FBZ0M7QUFDaEMsNEVBQTZDO0FBQzdDLGtGQUFtRDtBQUNuRCx5Q0FBb0M7QUFDcEMsaURBQXlDO0FBQ3pDLE1BQU0sT0FBTyxHQUFHLElBQUksbUJBQU8sRUFBRSxDQUFDO0FBRTlCLE9BQU87S0FDSixPQUFPLENBQUMseUJBQXlCLENBQUM7S0FDbEMsV0FBVyxDQUFDLDJCQUEyQixDQUFDO0tBQ3hDLE1BQU0sQ0FBQyxPQUFPLEVBQUUseUNBQXlDLEVBQUUsS0FBSyxDQUFDO0tBQ2pFLE1BQU0sQ0FBQyxTQUFTLEVBQUUsbUNBQW1DLEVBQUUsS0FBSyxDQUFDO0tBQzdELE1BQU0sQ0FBQyxLQUFLLEVBQUUsT0FBWSxFQUFFLEVBQUU7SUFDN0IsTUFBTSxHQUFHLEdBQVksT0FBTyxDQUFDLEdBQUcsQ0FBQztJQUVqQyxJQUFBLHdCQUFRLEVBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUU1QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUNwQixZQUFFLENBQUMsWUFBWSxDQUFDLGNBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLG9CQUFvQixDQUFDLEVBQUUsT0FBTyxDQUFDLENBQ3JFLENBQUM7SUFFRixNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDO0lBRTVCLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBQSxlQUFNLEVBQUM7UUFDMUIsS0FBSyxFQUFFLHlCQUF5QjtRQUNoQyxPQUFPLEVBQUU7WUFDUCxJQUFBLHdCQUFPLEVBQUM7Z0JBQ04saUJBQWlCLEVBQUUsSUFBSTtnQkFDdkIsVUFBVSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQztnQkFDcEIsTUFBTSxFQUFFLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRTthQUNuQyxDQUFDO1lBQ0YsSUFBQSwyQkFBVSxFQUFDO2dCQUNULFFBQVEsRUFBRSxpQkFBaUI7Z0JBQzNCLGVBQWUsRUFBRTtvQkFDZixNQUFNLEVBQUUsUUFBUTtpQkFDakI7Z0JBQ0QsTUFBTSxFQUFFLFFBQVE7Z0JBQ2hCLFdBQVcsRUFBRSxLQUFLO2FBQ25CLENBQUM7U0FDSDtLQUNGLENBQUMsQ0FBQztJQUVILE1BQU0sTUFBTSxDQUFDLEtBQUssQ0FBQztRQUNqQixJQUFJLEVBQUUsNEJBQTRCO1FBQ2xDLE1BQU0sRUFBRSxLQUFLO1FBQ2IsSUFBSSxFQUFFLG1CQUFtQjtLQUMxQixDQUFDLENBQUM7SUFFSCxNQUFNLE9BQU8sR0FBRztRQUNkLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSztZQUNsQixDQUFDLENBQUMsMEZBQTBGO1lBQzVGLENBQUMsQ0FBQyw2QkFBNkI7UUFDakMsV0FBVyxFQUNULHdIQUF3SDtRQUMxSCxhQUFhLEVBQUUsb0NBQW9DO1FBQ25ELEtBQUssRUFBRSx1Q0FBdUM7UUFDOUMsSUFBSSxFQUFFLDBCQUEwQjtLQUNqQyxDQUFDO0lBRUYsTUFBTSxlQUFlLEdBQUcsR0FBRyxDQUFDO0lBRTVCLGVBQWUsQ0FBQyxJQUFJLEdBQUcsaUJBQWlCLENBQUM7SUFDekMsZUFBZSxDQUFDLFdBQVcsR0FBRyxnQ0FBZ0MsQ0FBQztJQUMvRCxlQUFlLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUVsQyxPQUFPLGVBQWUsQ0FBQyxJQUFJLENBQUM7SUFDNUIsT0FBTyxlQUFlLENBQUMsS0FBSyxDQUFDO0lBQzdCLE9BQU8sZUFBZSxDQUFDLE9BQU8sQ0FBQztJQUMvQixlQUFlLENBQUMsSUFBSSxHQUFHLG1CQUFtQixDQUFDO0lBRTNDLFlBQUUsQ0FBQyxhQUFhLENBQ2QsY0FBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsMkJBQTJCLENBQUMsRUFDakQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FDaEMsQ0FBQztJQUVGLElBQUEsd0JBQVEsRUFBQyw0QkFBNEIsQ0FBQyxDQUFDO0lBQ3ZDLElBQUEsd0JBQVEsRUFBQywrQkFBK0IsQ0FBQyxDQUFDO0lBQzFDLElBQUEsd0JBQVEsRUFBQyxvQ0FBb0MsQ0FBQyxDQUFDO0lBRS9DLElBQUEsd0JBQVEsRUFBQyw2Q0FBNkMsQ0FBQyxDQUFDO0FBQzFELENBQUMsQ0FBQyxDQUFDO0FBRUwsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IGZzIGZyb20gXCJmc1wiO1xuaW1wb3J0IHsgcm9sbHVwIH0gZnJvbSBcInJvbGx1cFwiO1xuaW1wb3J0IHJlcGxhY2UgZnJvbSBcIkByb2xsdXAvcGx1Z2luLXJlcGxhY2VcIjtcbmltcG9ydCB0eXBlc2NyaXB0IGZyb20gXCJAcm9sbHVwL3BsdWdpbi10eXBlc2NyaXB0XCI7XG5pbXBvcnQgeyBDb21tYW5kIH0gZnJvbSBcImNvbW1hbmRlclwiO1xuaW1wb3J0IHsgZXhlY1N5bmMgfSBmcm9tIFwiY2hpbGRfcHJvY2Vzc1wiO1xuY29uc3QgcHJvZ3JhbSA9IG5ldyBDb21tYW5kKCk7XG5cbnByb2dyYW1cbiAgLmNvbW1hbmQoXCJjb21waWxlLWdsb2JhbC1jb250cmFjdFwiKVxuICAuZGVzY3JpcHRpb24oXCJDcmVhdGVzIGEgZ2xvYmFsIGNvbnRyYWN0XCIpXG4gIC5vcHRpb24oXCItLWRldlwiLCBcImNvbXBpbGVzIGNvbnRyYWN0cyB3aXRob3V0IG1pbmlmaWNhdGlvblwiLCBmYWxzZSlcbiAgLm9wdGlvbihcIi0tZGVidWdcIiwgXCJtYWtlcyBhdHRhY2hpbmcgZGVidWdnZXIgcG9zc2libGVcIiwgZmFsc2UpXG4gIC5hY3Rpb24oYXN5bmMgKG9wdGlvbnM6IGFueSkgPT4ge1xuICAgIGNvbnN0IGRldjogYm9vbGVhbiA9IG9wdGlvbnMuZGV2O1xuXG4gICAgZXhlY1N5bmMoXCJybSAtcmYgLi9nbG9iYWxcIik7XG5cbiAgICBjb25zdCBwa2cgPSBKU09OLnBhcnNlKFxuICAgICAgZnMucmVhZEZpbGVTeW5jKHBhdGguam9pbihfX2Rpcm5hbWUsIFwiLi4vLi4vcGFja2FnZS5qc29uXCIpLCBcInV0Zi04XCIpXG4gICAgKTtcblxuICAgIGNvbnN0IHZlcnNpb24gPSBwa2cudmVyc2lvbjtcblxuICAgIGNvbnN0IGJ1bmRsZSA9IGF3YWl0IHJvbGx1cCh7XG4gICAgICBpbnB1dDogXCIuL3NyYy9jb250cmFjdC9pbmRleC50c1wiLFxuICAgICAgcGx1Z2luczogW1xuICAgICAgICByZXBsYWNlKHtcbiAgICAgICAgICBwcmV2ZW50QXNzaWdubWVudDogdHJ1ZSxcbiAgICAgICAgICBkZWxpbWl0ZXJzOiBbXCJcIiwgXCJcIl0sXG4gICAgICAgICAgdmFsdWVzOiB7IFwiIyNWRVJTSU9OIyNcIjogdmVyc2lvbiB9LFxuICAgICAgICB9KSxcbiAgICAgICAgdHlwZXNjcmlwdCh7XG4gICAgICAgICAgdHNjb25maWc6IFwiLi90c2NvbmZpZy5qc29uXCIsXG4gICAgICAgICAgY29tcGlsZXJPcHRpb25zOiB7XG4gICAgICAgICAgICBvdXREaXI6IFwiZ2xvYmFsXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBtb2R1bGU6IFwiZXNuZXh0XCIsXG4gICAgICAgICAgZGVjbGFyYXRpb246IGZhbHNlLFxuICAgICAgICB9KSxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICBhd2FpdCBidW5kbGUud3JpdGUoe1xuICAgICAgZmlsZTogXCIuL2dsb2JhbC9HbG9iYWxDb250cmFjdC5qc1wiLFxuICAgICAgZm9ybWF0OiBcInVtZFwiLFxuICAgICAgbmFtZTogXCJHbG9iYWxDb250cmFjdC5qc1wiLFxuICAgIH0pO1xuXG4gICAgY29uc3Qgc2NyaXB0cyA9IHtcbiAgICAgIHN0YXJ0OiBvcHRpb25zLmRlYnVnXG4gICAgICAgID8gXCJub2RlIC0taW5zcGVjdD0wLjAuMC4wOjkyMjkgL3Vzci9sb2NhbC9zcmMvbm9kZV9tb2R1bGVzLy5iaW4vZmFicmljLWNoYWluY29kZS1ub2RlIHN0YXJ0XCJcbiAgICAgICAgOiBcImZhYnJpYy1jaGFpbmNvZGUtbm9kZSBzdGFydFwiLFxuICAgICAgXCJzdGFydDpkZXZcIjpcbiAgICAgICAgJ2ZhYnJpYy1jaGFpbmNvZGUtbm9kZSBzdGFydCAtLXBlZXIuYWRkcmVzcyBcIjEyNy4wLjAuMTo4NTQxXCIgLS1jaGFpbmNvZGUtaWQtbmFtZSBcImNoYWluY29kZTE6MC4wLjFcIiAtLXRscy5lbmFibGVkIGZhbHNlJyxcbiAgICAgIFwic3RhcnQ6d2F0Y2hcIjogJ25vZGVtb24gLS1leGVjIFwibnBtIHJ1biBzdGFydDpkZXZcIicsXG4gICAgICBidWlsZDogJ2VjaG8gXCJObyBuZWVkIHRvIGJ1aWxkIHRoZSBjaGFpbmNvZGVcIicsXG4gICAgICBsaW50OiBcImVzbGludCAuIC0tZml4IC0tZXh0IC5qc1wiLFxuICAgIH07XG5cbiAgICBjb25zdCBjb250cmFjdFBhY2thZ2UgPSBwa2c7XG5cbiAgICBjb250cmFjdFBhY2thZ2UubmFtZSA9IFwiZ2xvYmFsLWNvbnRyYWN0XCI7XG4gICAgY29udHJhY3RQYWNrYWdlLmRlc2NyaXB0aW9uID0gXCJHbG9iYWwgY29udHJhY3QgaW1wbGVtZW50YXRpb25cIjtcbiAgICBjb250cmFjdFBhY2thZ2Uuc2NyaXB0cyA9IHNjcmlwdHM7XG5cbiAgICBkZWxldGUgY29udHJhY3RQYWNrYWdlLnR5cGU7XG4gICAgZGVsZXRlIGNvbnRyYWN0UGFja2FnZS50eXBlcztcbiAgICBkZWxldGUgY29udHJhY3RQYWNrYWdlLmV4cG9ydHM7XG4gICAgY29udHJhY3RQYWNrYWdlLm1haW4gPSBcIkdsb2JhbENvbnRyYWN0LmpzXCI7XG5cbiAgICBmcy53cml0ZUZpbGVTeW5jKFxuICAgICAgcGF0aC5qb2luKF9fZGlybmFtZSwgXCIuLi8uLi9nbG9iYWwvcGFja2FnZS5qc29uXCIpLFxuICAgICAgSlNPTi5zdHJpbmdpZnkoY29udHJhY3RQYWNrYWdlKVxuICAgICk7XG5cbiAgICBleGVjU3luYyhcImNkIC4vZ2xvYmFsICYmIG5wbSBpbnN0YWxsXCIpO1xuICAgIGV4ZWNTeW5jKFwiY2QgLi9nbG9iYWwgJiYgbnBtIHNocmlua3dyYXBcIik7XG4gICAgZXhlY1N5bmMoXCJjZCAuL2dsb2JhbCAmJiBybSAtcmYgbm9kZV9tb2R1bGVzXCIpO1xuXG4gICAgZXhlY1N5bmMoXCJybSAtcmYgLi9nbG9iYWwvbGliICYmIHJtIC1yZiAuL2dsb2JhbC9kaXN0XCIpO1xuICB9KTtcblxucHJvZ3JhbS5wYXJzZShwcm9jZXNzLmFyZ3YpO1xuIl19
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
1
2
|
"use strict";
|
|
2
3
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
4
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
@@ -44,4 +45,4 @@ program
|
|
|
44
45
|
// );
|
|
45
46
|
});
|
|
46
47
|
program.parse(process.argv);
|
|
47
|
-
//# sourceMappingURL=
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtY29udHJhY3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jpbi9idWlsZC1jb250cmFjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnREFBd0I7QUFDeEIsNENBQW9CO0FBQ3BCLHlDQUFvQztBQUNwQyxpREFBeUM7QUFDekMsTUFBTSxPQUFPLEdBQUcsSUFBSSxtQkFBTyxFQUFFLENBQUM7QUFFOUIsT0FBTztLQUNKLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQztLQUMzQixXQUFXLENBQUMsMkJBQTJCLENBQUM7S0FDeEMsTUFBTSxDQUFDLE9BQU8sRUFBRSx5Q0FBeUMsRUFBRSxLQUFLLENBQUM7S0FDakUsTUFBTSxDQUFDLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxLQUFLLENBQUM7S0FDN0MsTUFBTSxDQUFDLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxVQUFVLENBQUM7S0FDdEQsTUFBTSxDQUFDLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxTQUFTLENBQUM7S0FDaEQsTUFBTSxDQUFDLEtBQUssRUFBRSxPQUFZLEVBQUUsRUFBRTtJQUM3QixNQUFNLEdBQUcsR0FBWSxPQUFPLENBQUMsR0FBRyxDQUFDO0lBQ2pDLE1BQU0sS0FBSyxHQUFZLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFFckMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FDcEIsWUFBRSxDQUFDLFlBQVksQ0FBQyxjQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxvQkFBb0IsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUNyRSxDQUFDO0lBRUYsTUFBTSxPQUFPLEdBQUc7UUFDZCxLQUFLLEVBQUUsS0FBSztZQUNWLENBQUMsQ0FBQywwRkFBMEY7WUFDNUYsQ0FBQyxDQUFDLDZCQUE2QjtRQUNqQyxXQUFXLEVBQ1Qsd0hBQXdIO1FBQzFILGFBQWEsRUFBRSxvQ0FBb0M7UUFDbkQsS0FBSyxFQUFFLHVDQUF1QztRQUM5QyxJQUFJLEVBQUUsMEJBQTBCO0tBQ2pDLENBQUM7SUFFRixNQUFNLGVBQWUsR0FBRyxHQUFHLENBQUM7SUFFNUIsZUFBZSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO0lBQ3BDLGVBQWUsQ0FBQyxXQUFXLEdBQUcsZ0NBQWdDLENBQUM7SUFDL0QsZUFBZSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFFbEMsT0FBTyxlQUFlLENBQUMsSUFBSSxDQUFDO0lBQzVCLE9BQU8sZUFBZSxDQUFDLEtBQUssQ0FBQztJQUM3QixPQUFPLGVBQWUsQ0FBQyxPQUFPLENBQUM7SUFDL0IsZUFBZSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUM7SUFFbEMsWUFBRSxDQUFDLGFBQWEsQ0FDZCxjQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsRUFDOUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FDaEMsQ0FBQztJQUVGLElBQUEsd0JBQVEsRUFDTixNQUFNLGNBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUN0RSxDQUFDO0lBQ0YsSUFBQSx3QkFBUSxFQUNOLE1BQU0sY0FBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQzFFLENBQUM7SUFDRixZQUFZO0lBQ1osbUZBQW1GO0lBQ25GLEtBQUs7QUFDUCxDQUFDLENBQUMsQ0FBQztBQUVMLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCBmcyBmcm9tIFwiZnNcIjtcbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tIFwiY29tbWFuZGVyXCI7XG5pbXBvcnQgeyBleGVjU3luYyB9IGZyb20gXCJjaGlsZF9wcm9jZXNzXCI7XG5jb25zdCBwcm9ncmFtID0gbmV3IENvbW1hbmQoKTtcblxucHJvZ3JhbVxuICAuY29tbWFuZChcImNvbXBpbGUtY29udHJhY3RcIilcbiAgLmRlc2NyaXB0aW9uKFwiQ3JlYXRlcyBhIGdsb2JhbCBjb250cmFjdFwiKVxuICAub3B0aW9uKFwiLS1kZXZcIiwgXCJjb21waWxlcyBjb250cmFjdHMgd2l0aG91dCBtaW5pZmljYXRpb25cIiwgZmFsc2UpXG4gIC5vcHRpb24oXCItLWRlYnVnXCIsIFwiZW5hYmxlcyBpbnNwZWN0b3JcIiwgZmFsc2UpXG4gIC5vcHRpb24oXCItLW5hbWUgPFN0cmluZz5cIiwgXCJjb250cmFjdCBuYW1lXCIsIFwiY29udHJhY3RcIilcbiAgLm9wdGlvbihcIi0tb3V0cHV0IDxTdHJpbmc+XCIsIFwib3V0cHV0XCIsIHVuZGVmaW5lZClcbiAgLmFjdGlvbihhc3luYyAob3B0aW9uczogYW55KSA9PiB7XG4gICAgY29uc3QgZGV2OiBib29sZWFuID0gb3B0aW9ucy5kZXY7XG4gICAgY29uc3QgZGVidWc6IGJvb2xlYW4gPSBvcHRpb25zLmRlYnVnO1xuXG4gICAgY29uc3QgcGtnID0gSlNPTi5wYXJzZShcbiAgICAgIGZzLnJlYWRGaWxlU3luYyhwYXRoLmpvaW4oX19kaXJuYW1lLCBcIi4uLy4uL3BhY2thZ2UuanNvblwiKSwgXCJ1dGYtOFwiKVxuICAgICk7XG5cbiAgICBjb25zdCBzY3JpcHRzID0ge1xuICAgICAgc3RhcnQ6IGRlYnVnXG4gICAgICAgID8gXCJub2RlIC0taW5zcGVjdD0wLjAuMC4wOjkyMjkgL3Vzci9sb2NhbC9zcmMvbm9kZV9tb2R1bGVzLy5iaW4vZmFicmljLWNoYWluY29kZS1ub2RlIHN0YXJ0XCJcbiAgICAgICAgOiBcImZhYnJpYy1jaGFpbmNvZGUtbm9kZSBzdGFydFwiLFxuICAgICAgXCJzdGFydDpkZXZcIjpcbiAgICAgICAgJ2ZhYnJpYy1jaGFpbmNvZGUtbm9kZSBzdGFydCAtLXBlZXIuYWRkcmVzcyBcIjEyNy4wLjAuMTo4NTQxXCIgLS1jaGFpbmNvZGUtaWQtbmFtZSBcImNoYWluY29kZTE6MC4wLjFcIiAtLXRscy5lbmFibGVkIGZhbHNlJyxcbiAgICAgIFwic3RhcnQ6d2F0Y2hcIjogJ25vZGVtb24gLS1leGVjIFwibnBtIHJ1biBzdGFydDpkZXZcIicsXG4gICAgICBidWlsZDogJ2VjaG8gXCJObyBuZWVkIHRvIGJ1aWxkIHRoZSBjaGFpbmNvZGVcIicsXG4gICAgICBsaW50OiBcImVzbGludCAuIC0tZml4IC0tZXh0IC5qc1wiLFxuICAgIH07XG5cbiAgICBjb25zdCBjb250cmFjdFBhY2thZ2UgPSBwa2c7XG5cbiAgICBjb250cmFjdFBhY2thZ2UubmFtZSA9IG9wdGlvbnMubmFtZTtcbiAgICBjb250cmFjdFBhY2thZ2UuZGVzY3JpcHRpb24gPSBcIkdsb2JhbCBjb250cmFjdCBpbXBsZW1lbnRhdGlvblwiO1xuICAgIGNvbnRyYWN0UGFja2FnZS5zY3JpcHRzID0gc2NyaXB0cztcblxuICAgIGRlbGV0ZSBjb250cmFjdFBhY2thZ2UudHlwZTtcbiAgICBkZWxldGUgY29udHJhY3RQYWNrYWdlLnR5cGVzO1xuICAgIGRlbGV0ZSBjb250cmFjdFBhY2thZ2UuZXhwb3J0cztcbiAgICBjb250cmFjdFBhY2thZ2UubWFpbiA9IFwiaW5kZXguanNcIjtcblxuICAgIGZzLndyaXRlRmlsZVN5bmMoXG4gICAgICBwYXRoLmpvaW4oX19kaXJuYW1lLCBcIi4uLy4uL1wiLCBvcHRpb25zLm91dHB1dCwgXCJwYWNrYWdlLmpzb25cIiksXG4gICAgICBKU09OLnN0cmluZ2lmeShjb250cmFjdFBhY2thZ2UpXG4gICAgKTtcblxuICAgIGV4ZWNTeW5jKFxuICAgICAgYGNkICR7cGF0aC5qb2luKF9fZGlybmFtZSwgXCIuLi8uLi9cIiwgb3B0aW9ucy5vdXRwdXQpfSAmJiBucG0gaW5zdGFsbGBcbiAgICApO1xuICAgIGV4ZWNTeW5jKFxuICAgICAgYGNkICR7cGF0aC5qb2luKF9fZGlybmFtZSwgXCIuLi8uLi9cIiwgb3B0aW9ucy5vdXRwdXQpfSAgJiYgbnBtIHNocmlua3dyYXBgXG4gICAgKTtcbiAgICAvLyBleGVjU3luYyhcbiAgICAvLyAgIGBjZCAke3BhdGguam9pbihfX2Rpcm5hbWUsIFwiLi4vLi4vXCIsIG9wdGlvbnMub3V0cHV0KX0gICYmIHJtIC1yZiBub2RlX21vZHVsZXNgXG4gICAgLy8gKTtcbiAgfSk7XG5cbnByb2dyYW0ucGFyc2UocHJvY2Vzcy5hcmd2KTtcbiJdfQ==
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
1
2
|
"use strict";
|
|
2
3
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
4
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
@@ -70,4 +71,4 @@ program
|
|
|
70
71
|
(0, child_process_1.execSync)("rm -rf ./contracts/lib && rm -rf ./contracts/dist");
|
|
71
72
|
});
|
|
72
73
|
program.parse(process.argv);
|
|
73
|
-
//# sourceMappingURL=
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtY29udHJhY3RzMi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iaW4vYnVpbGQtY29udHJhY3RzMi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGdEQUF3QjtBQUN4Qiw0Q0FBb0I7QUFDcEIsbUNBQWdDO0FBQ2hDLDRFQUE2QztBQUM3QyxrRkFBbUQ7QUFDbkQseUNBQW9DO0FBQ3BDLGlEQUF5QztBQUN6QyxNQUFNLE9BQU8sR0FBRyxJQUFJLG1CQUFPLEVBQUUsQ0FBQztBQUU5QixPQUFPO0tBQ0osT0FBTyxDQUFDLGtCQUFrQixDQUFDO0tBQzNCLFdBQVcsQ0FBQywyQkFBMkIsQ0FBQztLQUN4QyxNQUFNLENBQUMsT0FBTyxFQUFFLHlDQUF5QyxFQUFFLEtBQUssQ0FBQztLQUNqRSxNQUFNLENBQUMsU0FBUyxFQUFFLG1DQUFtQyxFQUFFLEtBQUssQ0FBQztLQUM3RCxNQUFNLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLFVBQVUsQ0FBQztLQUN0RCxNQUFNLENBQUMsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQztLQUNoRCxNQUFNLENBQUMsS0FBSyxFQUFFLE9BQVksRUFBRSxFQUFFO0lBQzdCLE1BQU0sR0FBRyxHQUFZLE9BQU8sQ0FBQyxHQUFHLENBQUM7SUFFakMsSUFBQSx3QkFBUSxFQUFDLG9CQUFvQixDQUFDLENBQUM7SUFFL0IsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FDcEIsWUFBRSxDQUFDLFlBQVksQ0FBQyxjQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxvQkFBb0IsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUNyRSxDQUFDO0lBRUYsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQztJQUU1QixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUEsZUFBTSxFQUFDO1FBQzFCLEtBQUssRUFBRSwwQkFBMEI7UUFDakMsT0FBTyxFQUFFO1lBQ1AsSUFBQSx3QkFBTyxFQUFDO2dCQUNOLGlCQUFpQixFQUFFLElBQUk7Z0JBQ3ZCLFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7Z0JBQ3BCLE1BQU0sRUFBRSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUU7YUFDNUQsQ0FBQztZQUNGLElBQUEsMkJBQVUsRUFBQztnQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2dCQUMzQixlQUFlLEVBQUU7b0JBQ2YsTUFBTSxFQUFFLFdBQVc7aUJBQ3BCO2dCQUNELE1BQU0sRUFBRSxRQUFRO2dCQUNoQixXQUFXLEVBQUUsS0FBSzthQUNuQixDQUFDO1NBQ0g7S0FDRixDQUFDLENBQUM7SUFFSCxNQUFNLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDakIsSUFBSSxFQUFFLCtCQUErQjtRQUNyQyxNQUFNLEVBQUUsS0FBSztRQUNiLElBQUksRUFBRSxtQkFBbUI7S0FDMUIsQ0FBQyxDQUFDO0lBRUgsTUFBTSxPQUFPLEdBQUc7UUFDZCxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7WUFDbEIsQ0FBQyxDQUFDLDBGQUEwRjtZQUM1RixDQUFDLENBQUMsNkJBQTZCO1FBQ2pDLFdBQVcsRUFDVCx3SEFBd0g7UUFDMUgsYUFBYSxFQUFFLG9DQUFvQztRQUNuRCxLQUFLLEVBQUUsdUNBQXVDO1FBQzlDLElBQUksRUFBRSwwQkFBMEI7S0FDakMsQ0FBQztJQUVGLE1BQU0sZUFBZSxHQUFHLEdBQUcsQ0FBQztJQUU1QixlQUFlLENBQUMsSUFBSSxHQUFHLGlCQUFpQixDQUFDO0lBQ3pDLGVBQWUsQ0FBQyxXQUFXLEdBQUcsZ0NBQWdDLENBQUM7SUFDL0QsZUFBZSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFFbEMsT0FBTyxlQUFlLENBQUMsSUFBSSxDQUFDO0lBQzVCLE9BQU8sZUFBZSxDQUFDLEtBQUssQ0FBQztJQUM3QixPQUFPLGVBQWUsQ0FBQyxPQUFPLENBQUM7SUFDL0IsZUFBZSxDQUFDLElBQUksR0FBRyxtQkFBbUIsQ0FBQztJQUUzQyxZQUFFLENBQUMsYUFBYSxDQUNkLGNBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLDhCQUE4QixDQUFDLEVBQ3BELElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLENBQ2hDLENBQUM7SUFFRixJQUFBLHdCQUFRLEVBQUMsK0JBQStCLENBQUMsQ0FBQztJQUMxQyxJQUFBLHdCQUFRLEVBQUMsa0NBQWtDLENBQUMsQ0FBQztJQUM3QyxJQUFBLHdCQUFRLEVBQUMsdUNBQXVDLENBQUMsQ0FBQztJQUVsRCxJQUFBLHdCQUFRLEVBQUMsbURBQW1ELENBQUMsQ0FBQztBQUNoRSxDQUFDLENBQUMsQ0FBQztBQUVMLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCBmcyBmcm9tIFwiZnNcIjtcbmltcG9ydCB7IHJvbGx1cCB9IGZyb20gXCJyb2xsdXBcIjtcbmltcG9ydCByZXBsYWNlIGZyb20gXCJAcm9sbHVwL3BsdWdpbi1yZXBsYWNlXCI7XG5pbXBvcnQgdHlwZXNjcmlwdCBmcm9tIFwiQHJvbGx1cC9wbHVnaW4tdHlwZXNjcmlwdFwiO1xuaW1wb3J0IHsgQ29tbWFuZCB9IGZyb20gXCJjb21tYW5kZXJcIjtcbmltcG9ydCB7IGV4ZWNTeW5jIH0gZnJvbSBcImNoaWxkX3Byb2Nlc3NcIjtcbmNvbnN0IHByb2dyYW0gPSBuZXcgQ29tbWFuZCgpO1xuXG5wcm9ncmFtXG4gIC5jb21tYW5kKFwiY29tcGlsZS1jb250cmFjdFwiKVxuICAuZGVzY3JpcHRpb24oXCJDcmVhdGVzIGEgZ2xvYmFsIGNvbnRyYWN0XCIpXG4gIC5vcHRpb24oXCItLWRldlwiLCBcImNvbXBpbGVzIGNvbnRyYWN0cyB3aXRob3V0IG1pbmlmaWNhdGlvblwiLCBmYWxzZSlcbiAgLm9wdGlvbihcIi0tZGVidWdcIiwgXCJtYWtlcyBhdHRhY2hpbmcgZGVidWdnZXIgcG9zc2libGVcIiwgZmFsc2UpXG4gIC5vcHRpb24oXCItLW5hbWUgPFN0cmluZz5cIiwgXCJjb250cmFjdCBuYW1lXCIsIFwiY29udHJhY3RcIilcbiAgLm9wdGlvbihcIi0tb3V0cHV0IDxTdHJpbmc+XCIsIFwib3V0cHV0XCIsIHVuZGVmaW5lZClcbiAgLmFjdGlvbihhc3luYyAob3B0aW9uczogYW55KSA9PiB7XG4gICAgY29uc3QgZGV2OiBib29sZWFuID0gb3B0aW9ucy5kZXY7XG5cbiAgICBleGVjU3luYyhcInJtIC1yZiAuL2NvbnRyYWN0c1wiKTtcblxuICAgIGNvbnN0IHBrZyA9IEpTT04ucGFyc2UoXG4gICAgICBmcy5yZWFkRmlsZVN5bmMocGF0aC5qb2luKF9fZGlybmFtZSwgXCIuLi8uLi9wYWNrYWdlLmpzb25cIiksIFwidXRmLThcIilcbiAgICApO1xuXG4gICAgY29uc3QgdmVyc2lvbiA9IHBrZy52ZXJzaW9uO1xuXG4gICAgY29uc3QgYnVuZGxlID0gYXdhaXQgcm9sbHVwKHtcbiAgICAgIGlucHV0OiBcIi4vc3JjL2NvbnRyYWN0cy9pbmRleC50c1wiLFxuICAgICAgcGx1Z2luczogW1xuICAgICAgICByZXBsYWNlKHtcbiAgICAgICAgICBwcmV2ZW50QXNzaWdubWVudDogdHJ1ZSxcbiAgICAgICAgICBkZWxpbWl0ZXJzOiBbXCJcIiwgXCJcIl0sXG4gICAgICAgICAgdmFsdWVzOiB7IFwiIyNWRVJTSU9OIyNcIjogdmVyc2lvbiwgXCIjI1BBQ0tBR0UjI1wiOiBwa2cubmFtZSB9LFxuICAgICAgICB9KSxcbiAgICAgICAgdHlwZXNjcmlwdCh7XG4gICAgICAgICAgdHNjb25maWc6IFwiLi90c2NvbmZpZy5qc29uXCIsXG4gICAgICAgICAgY29tcGlsZXJPcHRpb25zOiB7XG4gICAgICAgICAgICBvdXREaXI6IFwiY29udHJhY3RzXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBtb2R1bGU6IFwiZXNuZXh0XCIsXG4gICAgICAgICAgZGVjbGFyYXRpb246IGZhbHNlLFxuICAgICAgICB9KSxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICBhd2FpdCBidW5kbGUud3JpdGUoe1xuICAgICAgZmlsZTogXCIuL2NvbnRyYWN0cy9HbG9iYWxDb250cmFjdC5qc1wiLFxuICAgICAgZm9ybWF0OiBcInVtZFwiLFxuICAgICAgbmFtZTogXCJHbG9iYWxDb250cmFjdC5qc1wiLFxuICAgIH0pO1xuXG4gICAgY29uc3Qgc2NyaXB0cyA9IHtcbiAgICAgIHN0YXJ0OiBvcHRpb25zLmRlYnVnXG4gICAgICAgID8gXCJub2RlIC0taW5zcGVjdD0wLjAuMC4wOjkyMjkgL3Vzci9sb2NhbC9zcmMvbm9kZV9tb2R1bGVzLy5iaW4vZmFicmljLWNoYWluY29kZS1ub2RlIHN0YXJ0XCJcbiAgICAgICAgOiBcImZhYnJpYy1jaGFpbmNvZGUtbm9kZSBzdGFydFwiLFxuICAgICAgXCJzdGFydDpkZXZcIjpcbiAgICAgICAgJ2ZhYnJpYy1jaGFpbmNvZGUtbm9kZSBzdGFydCAtLXBlZXIuYWRkcmVzcyBcIjEyNy4wLjAuMTo4NTQxXCIgLS1jaGFpbmNvZGUtaWQtbmFtZSBcImNoYWluY29kZTE6MC4wLjFcIiAtLXRscy5lbmFibGVkIGZhbHNlJyxcbiAgICAgIFwic3RhcnQ6d2F0Y2hcIjogJ25vZGVtb24gLS1leGVjIFwibnBtIHJ1biBzdGFydDpkZXZcIicsXG4gICAgICBidWlsZDogJ2VjaG8gXCJObyBuZWVkIHRvIGJ1aWxkIHRoZSBjaGFpbmNvZGVcIicsXG4gICAgICBsaW50OiBcImVzbGludCAuIC0tZml4IC0tZXh0IC5qc1wiLFxuICAgIH07XG5cbiAgICBjb25zdCBjb250cmFjdFBhY2thZ2UgPSBwa2c7XG5cbiAgICBjb250cmFjdFBhY2thZ2UubmFtZSA9IFwiZ2xvYmFsLWNvbnRyYWN0XCI7XG4gICAgY29udHJhY3RQYWNrYWdlLmRlc2NyaXB0aW9uID0gXCJHbG9iYWwgY29udHJhY3QgaW1wbGVtZW50YXRpb25cIjtcbiAgICBjb250cmFjdFBhY2thZ2Uuc2NyaXB0cyA9IHNjcmlwdHM7XG5cbiAgICBkZWxldGUgY29udHJhY3RQYWNrYWdlLnR5cGU7XG4gICAgZGVsZXRlIGNvbnRyYWN0UGFja2FnZS50eXBlcztcbiAgICBkZWxldGUgY29udHJhY3RQYWNrYWdlLmV4cG9ydHM7XG4gICAgY29udHJhY3RQYWNrYWdlLm1haW4gPSBcIkdsb2JhbENvbnRyYWN0LmpzXCI7XG5cbiAgICBmcy53cml0ZUZpbGVTeW5jKFxuICAgICAgcGF0aC5qb2luKF9fZGlybmFtZSwgXCIuLi8uLi9jb250cmFjdHMvcGFja2FnZS5qc29uXCIpLFxuICAgICAgSlNPTi5zdHJpbmdpZnkoY29udHJhY3RQYWNrYWdlKVxuICAgICk7XG5cbiAgICBleGVjU3luYyhcImNkIC4vY29udHJhY3RzICYmIG5wbSBpbnN0YWxsXCIpO1xuICAgIGV4ZWNTeW5jKFwiY2QgLi9jb250cmFjdHMgJiYgbnBtIHNocmlua3dyYXBcIik7XG4gICAgZXhlY1N5bmMoXCJjZCAuL2NvbnRyYWN0cyAmJiBybSAtcmYgbm9kZV9tb2R1bGVzXCIpO1xuXG4gICAgZXhlY1N5bmMoXCJybSAtcmYgLi9jb250cmFjdHMvbGliICYmIHJtIC1yZiAuL2NvbnRyYWN0cy9kaXN0XCIpO1xuICB9KTtcblxucHJvZ3JhbS5wYXJzZShwcm9jZXNzLmFyZ3YpO1xuIl19
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
1
2
|
"use strict";
|
|
2
3
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
4
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
@@ -27,4 +28,4 @@ program
|
|
|
27
28
|
await adapter["index"](folder);
|
|
28
29
|
});
|
|
29
30
|
program.parse(process.argv);
|
|
30
|
-
//# sourceMappingURL=
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGlsZS1pbmRleGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jpbi9jb21waWxlLWluZGV4ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnREFBd0I7QUFDeEIseUNBQW9DO0FBQ3BDLDJEQUF3RDtBQUN4RCxpREFBc0Q7QUFDdEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxtQkFBTyxFQUFFLENBQUM7QUFFOUIsT0FBTztLQUNKLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztLQUMxQixXQUFXLENBQ1YsMkVBQTJFLENBQzVFO0tBQ0EsTUFBTSxDQUFDLFFBQVEsRUFBRSw4QkFBOEIsRUFBRSxLQUFLLENBQUM7S0FDdkQsTUFBTSxDQUFDLFVBQVUsRUFBRSwyQ0FBMkMsRUFBRSxLQUFLLENBQUM7S0FDdEUsTUFBTSxDQUFDLE9BQU8sRUFBRSx5Q0FBeUMsRUFBRSxLQUFLLENBQUM7S0FDakUsTUFBTSxDQUFDLFNBQVMsRUFBRSxtQ0FBbUMsRUFBRSxLQUFLLENBQUM7S0FDN0QsTUFBTSxDQUFDLEtBQUssRUFBRSxPQUFZLEVBQUUsRUFBRTtJQUM3Qix3Q0FBd0M7SUFDeEMsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUM7SUFFL0IsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNULE1BQU0sR0FBRyxjQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTTtRQUNsQixNQUFNLElBQUksNkJBQWEsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0lBRTFELE1BQU0sT0FBTyxHQUFHLElBQUksMkJBQW1CLENBQUMsRUFBUyxDQUFDLENBQUM7SUFDbkQsTUFBTSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDakMsQ0FBQyxDQUFDLENBQUM7QUFFTCxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeyBDb21tYW5kIH0gZnJvbSBcImNvbW1hbmRlclwiO1xuaW1wb3J0IHsgSW50ZXJuYWxFcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgRmFicmljQ2xpZW50QWRhcHRlciB9IGZyb20gXCIuLi9jbGllbnQvaW5kZXhcIjtcbmNvbnN0IHByb2dyYW0gPSBuZXcgQ29tbWFuZCgpO1xuXG5wcm9ncmFtXG4gIC5jb21tYW5kKFwiY29tcGlsZS1pbmRleGVzXCIpXG4gIC5kZXNjcmlwdGlvbihcbiAgICBcIkNyZWF0ZXMgYSB0aGUgSlNPTiBpbmRleCBmaWxlcyB0byBiZSBzdWJtaXR0ZWQgdG8gYWxvbmcgd2l0aCB0aGUgY29udHJhY3RcIlxuICApXG4gIC5vcHRpb24oXCItLWZpbGVcIiwgXCJwYXRoIHRvIHRoZSBNb2RlbCBDbGFzcyBmaWxlXCIsIGZhbHNlKVxuICAub3B0aW9uKFwiLS1mb2xkZXJcIiwgXCJwYXRoIHRvIHRoZSBmb2xkZXIgd2l0aCBNb2RlbCBDbGFzcyBGaWxlc1wiLCBmYWxzZSlcbiAgLm9wdGlvbihcIi0tZGV2XCIsIFwiY29tcGlsZXMgY29udHJhY3RzIHdpdGhvdXQgbWluaWZpY2F0aW9uXCIsIGZhbHNlKVxuICAub3B0aW9uKFwiLS1kZWJ1Z1wiLCBcIm1ha2VzIGF0dGFjaGluZyBkZWJ1Z2dlciBwb3NzaWJsZVwiLCBmYWxzZSlcbiAgLmFjdGlvbihhc3luYyAob3B0aW9uczogYW55KSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZWZlci1jb25zdFxuICAgIGxldCB7IGZpbGUsIGZvbGRlciB9ID0gb3B0aW9ucztcblxuICAgIGlmIChmaWxlKSB7XG4gICAgICBmb2xkZXIgPSBwYXRoLmRpcm5hbWUoZmlsZSk7XG4gICAgfVxuXG4gICAgaWYgKCFmaWxlICYmICFmb2xkZXIpXG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgTXVzdCBwYXNzIGEgZmlsZSBvciBhIGZvbGRlcmApO1xuXG4gICAgY29uc3QgYWRhcHRlciA9IG5ldyBGYWJyaWNDbGllbnRBZGFwdGVyKHt9IGFzIGFueSk7XG4gICAgYXdhaXQgYWRhcHRlcltcImluZGV4XCJdKGZvbGRlcik7XG4gIH0pO1xuXG5wcm9ncmFtLnBhcnNlKHByb2Nlc3MuYXJndik7XG4iXX0=
|
package/lib/cli-module.cjs
CHANGED
|
@@ -136,4 +136,4 @@ function fabric() {
|
|
|
136
136
|
mainCommand.addCommand(ensureInfra);
|
|
137
137
|
return mainCommand;
|
|
138
138
|
}
|
|
139
|
-
//# sourceMappingURL=cli-module.js.map
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jbGktbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBOEtBLHlCQVdDO0FBekxELHlDQUFvQztBQUVwQywrQ0FBMEQ7QUFDMUQsaURBQXlDO0FBQ3pDLDRDQUFvQjtBQUNwQixnREFBd0I7QUFDeEIsbUNBQWdDO0FBQ2hDLDRFQUE2QztBQUM3QyxrRkFBbUQ7QUFDbkQsMkRBQXdEO0FBRXhELE1BQU0sTUFBTSxHQUFHLGlCQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBRXJDLE1BQU0sY0FBYyxHQUFHLElBQUksbUJBQU8sRUFBRTtLQUNqQyxJQUFJLENBQUMsa0JBQWtCLENBQUM7S0FDeEIsV0FBVyxDQUFDLDJCQUEyQixDQUFDO0tBQ3hDLE1BQU0sQ0FBQyxPQUFPLEVBQUUseUNBQXlDLEVBQUUsS0FBSyxDQUFDO0tBQ2pFLE1BQU0sQ0FBQyxTQUFTLEVBQUUsbUNBQW1DLEVBQUUsSUFBSSxDQUFDO0tBQzVELE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLENBQUM7S0FDN0QsTUFBTSxDQUNMLHdCQUF3QixFQUN4QixzQkFBc0IsRUFDdEIsZ0NBQWdDLENBQ2pDO0tBQ0EsTUFBTSxDQUFDLGtCQUFrQixFQUFFLDRCQUE0QixFQUFFLGVBQWUsQ0FBQztLQUN6RSxNQUFNLENBQUMsbUJBQW1CLEVBQUUsNkJBQTZCLEVBQUUsYUFBYSxDQUFDO0tBQ3pFLE1BQU0sQ0FBQyxLQUFLLEVBQUUsT0FBWSxFQUFFLEVBQUU7SUFDN0IsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FDcEIsWUFBRSxDQUFDLFlBQVksQ0FBQyxjQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxjQUFjLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FDbkUsQ0FBQztJQUVGLE1BQU0sT0FBTyxHQUFHLEdB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TSxTQUFTLEdBQUcsY0FBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDekMsTUFBTSxVQUFVLEdBQUcsY0FBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDM0MsR0FBRyxDQUFDLElBQUksQ0FBQyx3Q0FBd0MsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUMvRCxJQUFBLHdCQUFRLEVBQUMsVUFBVSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0FBQ25DLENBQUMsQ0FBQyxDQUFDO0FBRUwsU0FBd0IsTUFBTTtJQUM1QixNQUFNLFdBQVcsR0FBRyxJQUFJLG1CQUFPLEVBQUU7U0FDOUIsSUFBSSxDQUFDLFFBQVEsQ0FBQztTQUNkLFdBQVcsQ0FDVixtRUFBbUUsQ0FDcEUsQ0FBQztJQUVKLFdBQVcsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdkMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUVwQyxPQUFPLFdBQVcsQ0FBQztBQUNyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbWFuZCB9IGZyb20gXCJjb21tYW5kZXJcIjtcbmltcG9ydCB7IHJ1bkNvbW1hbmQgfSBmcm9tIFwiQGRlY2FmLXRzL3V0aWxzXCI7XG5pbXBvcnQgeyBMb2dnaW5nLCB0b1Bhc2NhbENhc2UgfSBmcm9tIFwiQGRlY2FmLXRzL2xvZ2dpbmdcIjtcbmltcG9ydCB7IGV4ZWNTeW5jIH0gZnJvbSBcImNoaWxkX3Byb2Nlc3NcIjtcbmltcG9ydCBmcyBmcm9tIFwiZnNcIjtcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeyByb2xsdXAgfSBmcm9tIFwicm9sbHVwXCI7XG5pbXBvcnQgcmVwbGFjZSBmcm9tIFwiQHJvbGx1cC9wbHVnaW4tcmVwbGFjZVwiO1xuaW1wb3J0IHR5cGVzY3JpcHQgZnJvbSBcIkByb2xsdXAvcGx1Z2luLXR5cGVzY3JpcHRcIjtcbmltcG9ydCB7IEludGVybmFsRXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcblxuY29uc3QgbG9nZ2VyID0gTG9nZ2luZy5mb3IoXCJmYWJyaWNcIik7XG5cbmNvbnN0IGNvbXBpbGVDb21tYW5kID0gbmV3IENvbW1hbmQoKVxuICAubmFtZShcImNvbXBpbGUtY29udHJhY3RcIilcbiAgLmRlc2NyaXB0aW9uKFwiQ3JlYXRlcyBhIGdsb2JhbCBjb250cmFjdFwiKVxuICAub3B0aW9uKFwiLS1kZXZcIiwgXCJjb21waWxlcyBjb250cmFjdHMgd2l0aG91dCBtaW5pZmljYXRpb25cIiwgZmFsc2UpXG4gIC5vcHRpb24oXCItLWRlYnVnXCIsIFwibWFrZXMgYXR0YWNoaW5nIGRlYnVnZ2VyIHBvc3NpYmxlXCIsIHRydWUpXG4gIC5vcHRpb24oXCItLW5hbWUgPFN0cmluZz5cIiwgXCJjb250cmFjdCBuYW1lXCIsIFwiZ2xvYmFsLWNvbnRyYWN0XCIpXG4gIC5vcHRpb24oXG4gICAgXCItLWRlc2NyaXB0aW9uIDxTdHJpbmc+XCIsXG4gICAgXCJjb250cmFjdCBkZXNjcmlwdGlvblwiLFxuICAgIFwiR2xvYmFsIGNvbnRyYWN0IGltcGxlbWVudGF0aW9uXCJcbiAgKVxuICAub3B0aW9uKFwiLS1pbnB1dCA8U3RyaW5nPlwiLCBcImlucHV0IGZvbGRlciBmb3IgY29udHJhY3RzXCIsIFwic3JjL2NvbnRyYWN0c1wiKVxuICAub3B0aW9uKFwiLS1vdXRwdXQgPFN0cmluZz5cIiwgXCJvdXRwdXQgZm9sZGVyIGZvciBjb250cmFjdHNcIiwgXCIuL2NvbnRyYWN0c1wiKVxuICAuYWN0aW9uKGFzeW5jIChvcHRpb25zOiBhbnkpID0+IHtcbiAgICBjb25zdCBwa2cgPSBKU09OLnBhcnNlKFxuICAgICAgZnMucmVhZEZpbGVTeW5jKHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBcInBhY2thZ2UuanNvblwiKSwgXCJ1dGYtOFwiKVxuICAgICk7XG5cbiAgICBjb25zdCB2ZXJzaW9uID0gcGtnLnZlcnNpb247XG5cbiAgICBjb25zdCB7IGRldiwgZGVidWcsIG5hbWUsIGRlc2NyaXB0aW9uLCBvdXRwdXQsIGlucHV0IH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IGxvZyA9IGxvZ2dlci5mb3IoXCJjb21waWxlLWNvbnRyYWN0XCIpO1xuICAgIGxvZy5kZWJ1ZyhcbiAgICAgIGBydW5uaW5nIHdpdGggb3B0aW9uczogJHtKU09OLnN0cmluZ2lmeShvcHRpb25zKX0gZm9yICR7cGtnLm5hbWV9IHZlcnNpb24gJHt2ZXJzaW9ufWBcbiAgICApO1xuXG4gICAgbG9nLmluZm8oYERlbGV0aW5nIGV4aXN0aW5nIG91dHB1dCBmb2xkZXIgKGlmIGV4aXN0cykgdW5kZXIgJHtvdXRwdXR9YCk7XG4gICAgZXhlY1N5bmMoYHJtIC1yZiAke291dHB1dH1gKTtcbiAgICBsb2cuaW5mbyhgYnVuZGxpbmcgY29udHJhY3QgZnJvbSAke2lucHV0fWApO1xuICAgIGNvbnN0IGJ1bmRsZSA9IGF3YWl0IHJvbGx1cCh7XG4gICAgICBpbnB1dDogYCR7aW5wdXR9L2luZGV4LnRzYCxcbiAgICAgIHBsdWdpbnM6IFtcbiAgICAgICAgcmVwbGFjZSh7XG4gICAgICAgICAgcHJldmVudEFzc2lnbm1lbnQ6IHRydWUsXG4gICAgICAgICAgZGVsaW1pdGVyczogW1wiXCIsIFwiXCJdLFxuICAgICAgICAgIHZhbHVlczogeyBcIiMjVkVSU0lPTiMjXCI6IHZlcnNpb24sIFwiIyNQQUNLQUdFIyNcIjogcGtnLm5hbWUgfSxcbiAgICAgICAgfSksXG4gICAgICAgIHR5cGVzY3JpcHQoe1xuICAgICAgICAgIHRzY29uZmlnOiBcIi4vdHNjb25maWcuanNvblwiLFxuICAgICAgICAgIGNvbXBpbGVyT3B0aW9uczoge1xuICAgICAgICAgICAgb3V0RGlyOiBvdXRwdXQsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBtb2R1bGU6IFwiZXNuZXh0XCIsXG4gICAgICAgICAgZGVjbGFyYXRpb246IGZhbHNlLFxuICAgICAgICB9KSxcbiAgICAgIF0sXG4gICAgfSk7XG4gICAgbG9nLmluZm8oXG4gICAgICBgd2l0aGluZyBjb250cmFjdCB0byAke291dHB1dH0gd2l0aCBuYW1lICR7dG9QYXNjYWxDYXNlKG5hbWUpfS5qc2BcbiAgICApO1xuICAgIGF3YWl0IGJ1bmRsZS53cml0ZSh7XG4gICAgICBmaWxlOiBgJHtvdXRwdXR9LyR7dG9QYXNjYWxDYXNlKG5hbWUpfS5qc2AsXG4gICAgICBmb3JtYXQ6IFwidW1kXCIsXG4gICAgICBuYW1lOiBgJHt0b1Bhc2NhbENhc2UobmFtZSl9LmpzYCxcbiAgICB9KTtcblxuICAgIGNvbnN0IHNjcmlwdHMgPSB7XG4gICAgICBzdGFydDogZGVidWdcbiAgICAgICAgPyBcIm5vZGUgLS1pbnNwZWN0PTAuMC4wLjA6OTIyOSAvdXNyL2xvY2FsL3NyYy9ub2RlX21vZHVsZXMvLmJpbi9mYWJyaWMtY2hhaW5jb2RlLW5vZGUgc3RhcnRcIlxuICAgICAgICA6IFwiZmFicmljLWNoYWluY29kZS1ub2RlIHN0YXJ0XCIsXG4gICAgICBcInN0YXJ0OmRldlwiOlxuICAgICAgICAnZmFicmljLWNoYWluY29kZS1ub2RlIHN0YXJ0IC0tcGVlci5hZGRyZXNzIFwiMTI3LjAuMC4xOjg1NDFcIiAtLWNoYWluY29kZS1pZC1uYW1lIFwiY2hhaW5jb2RlMTowLjAuMVwiIC0tdGxzLmVuYWJsZWQgZmFsc2UnLFxuICAgICAgXCJzdGFydDp3YXRjaFwiOiAnbm9kZW1vbiAtLWV4ZWMgXCJucG0gcnVuIHN0YXJ0OmRldlwiJyxcbiAgICAgIGJ1aWxkOiAnZWNobyBcIk5vIG5lZWQgdG8gYnVpbGQgdGhlIGNoYWluY29kZVwiJyxcbiAgICAgIGxpbnQ6IFwiZXNsaW50IC4gLS1maXggLS1leHQgLmpzXCIsXG4gICAgfTtcblxuICAgIGNvbnN0IGNvbnRyYWN0UGFja2FnZSA9IHBrZztcblxuICAgIGNvbnRyYWN0UGFja2FnZS5uYW1lID0gbmFtZTtcbiAgICBjb250cmFjdFBhY2thZ2UuZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjtcbiAgICBjb250cmFjdFBhY2thZ2Uuc2NyaXB0cyA9IHNjcmlwdHM7XG5cbiAgICBkZWxldGUgY29udHJhY3RQYWNrYWdlLnR5cGU7XG4gICAgZGVsZXRlIGNvbnRyYWN0UGFja2FnZS50eXBlcztcbiAgICBkZWxldGUgY29udHJhY3RQYWNrYWdlLmV4cG9ydHM7XG4gICAgY29udHJhY3RQYWNrYWdlLm1haW4gPSBgJHt0b1Bhc2NhbENhc2UobmFtZSl9LmpzYDtcblxuICAgIGZzLndyaXRlRmlsZVN5bmMoXG4gICAgICBwYXRoLmpvaW4ob3V0cHV0LCBcInBhY2thZ2UuanNvblwiKSxcbiAgICAgIEpTT04uc3RyaW5naWZ5KGNvbnRyYWN0UGFja2FnZSlcbiAgICApO1xuXG4gICAgbG9nLmluZm8oYEluc3RhbGxpbmcgYW5kIHNocmlua3dyYXBwaW5nIGRlcGVuZGVuY2llc2ApO1xuICAgIGV4ZWNTeW5jKGBjZCAke291dHB1dH0gJiYgbnBtIGluc3RhbGxgKTtcbiAgICBleGVjU3luYyhgY2QgJHtvdXRwdXR9ICYmIG5wbSBzaHJpbmt3cmFwYCk7XG4gICAgZXhlY1N5bmMoXCJjZCAke291dHB1dH0gJiYgcm0gLXJmIG5vZGVfbW9kdWxlc1wiKTtcblxuICAgIGxvZy5pbmZvKGBkZWxldGluZyB0ZW1wIGZvbGRlcnNgKTtcbiAgICBleGVjU3luYyhgcm0gLXJmICR7b3V0cHV0fS9saWIgJiYgcm0gLXJmICR7b3V0cHV0fS9kaXN0YCk7XG4gIH0pO1xuXG5jb25zdCBlbnN1cmVJbmZyYSA9IG5ldyBDb21tYW5kKClcbiAgLm5hbWUoXCJhd2FpdC1pbmZyYVwiKVxuICAuZGVzY3JpcHRpb24oXCJ3YWl0cyBmb3IgdGhlIGluZnJhc3RydWN0dXJlIHRvIGJlIHVwIGFuZCBydW5uaW5nXCIpXG4gIC5vcHRpb24oXG4gICAgXCItLWNvbnRhaW5lciA8U3RyaW5nPlwiLFxuICAgIFwiZG9ja2VyIGNvbnRhaW5lciBuYW1lIHRvIHRlc3QgKHVzdWFsbHkgbGFzdCBwZWVyKVwiLFxuICAgIFwiYm9vdC1vcmctYy1wZWVyLTBcIlxuICApXG4gIC5vcHRpb24oXCItLXRpbWVvdXQgPFN0cmluZz5cIiwgXCJ0aW1lb3V0IGJldHdlZW4gdGVzdHMgaW4gbWlsbGlzZWNvbmRzXCIsIFwiNTAwMFwiKVxuICAub3B0aW9uKFwiLS1hdHRlbXB0cyA8U3RyaW5nPlwiLCBcIm51bWJlciBvZiBhdHRlbXB0cyBiZWZvcmUgZ2l2aW5nIHVwXCIsIFwiMTBcIilcbiAgLmFjdGlvbihhc3luYyAob3B0aW9uczogYW55KSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZWZlci1jb25zdFxuICAgIGxldCB7IGNvbnRhaW5lciwgdGltZW91dCwgYXR0ZW1wdHMgfSA9IG9wdGlvbnM7XG4gICAgdGltZW91dCA9IHBhcnNlSW50KHRpbWVvdXQpIHx8IDUwMDA7XG4gICAgYXR0ZW1wdHMgPSBwYXJzZUludChhdHRlbXB0cykgfHwgMTA7XG4gICAgY29uc3QgbG9nID0gbG9nZ2VyLmZvcihcImF3YWl0LWluZnJhXCIpO1xuICAgIGZ1bmN0aW9uIGRpZEluZnJhc3RydWN0dXJlQm9vdCgpOiBib29sZWFuIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IG91dHB1dCA9IGV4ZWNTeW5jKFxuICAgICAgICAgIGBkb2NrZXIgaW5zcGVjdCAke2NvbnRhaW5lcn0gLS1mb3JtYXQ9J3t7LlN0YXRlLkV4aXRDb2RlfX0nYFxuICAgICAgICApXG4gICAgICAgICAgLnRvU3RyaW5nKClcbiAgICAgICAgICAudHJpbSgpO1xuXG4gICAgICAgIHJldHVybiBvdXRwdXQgPT09IFwiMFwiO1xuICAgICAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcIkVycm9yIGluc3BlY3RpbmcgY29udGFpbmVyOlwiLCBlcnIubWVzc2FnZSk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB3aGlsZSAoIWRpZEluZnJhc3RydWN0dXJlQm9vdCgpKSB7XG4gICAgICBpZiAoLS1hdHRlbXB0cyA8PSAwKSB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcImV4Y2VlZGVkIGFsbG93ZWQgYXR0ZW1wdHNcIik7XG4gICAgICBsb2cuaW5mbyhcIldhaXRpbmcgZm9yIGluZnJhc3RydWN0dXJlIHRvIGJvb3QuLi5cIik7XG4gICAgICBhd2FpdCBuZXcgUHJvbWlzZSgocikgPT4gc2V0VGltZW91dChyLCB0aW1lb3V0KSk7IC8vIFdhaXQgZm9yIDUgc2Vjb25kcyBiZWZvcmUgcmV0cnlpbmdcbiAgICB9XG5cbiAgICBsb2cuaW5mbyhcbiAgICAgIGBJbmZyYXN0cnVjdHVyZSBib290ZWQgc3VjY2Vzc2Z1bGx5IChhY2NvcmRpbmcgdG8gY29udGFpbmVyICR7Y29udGFpbmVyfSkhYFxuICAgICk7XG4gIH0pO1xuXG5jb25zdCBjb3B5Q29udHJhY3RzID0gbmV3IENvbW1hbmQoKVxuICAubmFtZShcImNvcHktY29udHJhY3RzXCIpXG4gIC5kZXNjcmlwdGlvbihcbiAgICBcImNvcGllcyB0aGUgY29udHJhY3RzIHRvIHRoZSBmb2xkZXIgdGhleSdsbCBiZSBjb25zdW1lZCBieSBmYWJyaWNcIlxuICApXG4gIC5vcHRpb24oXCItLWlucHV0IDxTdHJpbmc+XCIsIFwiaW5wdXQgZm9sZGVyXCIsIFwiLi9jb250cmFjdHNcIilcbiAgLm9wdGlvbihcbiAgICBcIi0tbmFtZSA8U3RyaW5nPlwiLFxuICAgIFwiY29udHJhY3QgbmFtZSAoYW5kIGZvbGRlciBuYW1lIHdpdGhpbiBpbnB1dCBmb2xkZXIpXCIsXG4gICAgXCJnbG9iYWwtY29udHJhY3RcIlxuICApXG4gIC5vcHRpb24oXG4gICAgXCItLW91dHB1dCA8U3RyaW5nPlwiLFxuICAgIFwib3V0cHV0IGZvbGRlclwiLFxuICAgIFwiLi9kb2NrZXIvaW5mcmFzdHJ1Y3R1cmUvY2hhaW5jb2RlXCJcbiAgKVxuICAuYWN0aW9uKGFzeW5jIChvcHRpb25zOiBhbnkpID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLWNvbnN0XG4gICAgbGV0IHsgaW5wdXQsIG91dHB1dCwgbmFtZSB9ID0gb3B0aW9ucztcblxuICAgIGNvbnN0IGxvZyA9IGxvZ2dlci5mb3IoXCJjb3B5LWNvbnRyYWN0c1wiKTtcbiAgICBjb25zdCBpbnB1dFBhdGggPSBwYXRoLmpvaW4oaW5wdXQsIG5hbWUpO1xuICAgIGNvbnN0IG91dHB1dFBhdGggPSBwYXRoLmpvaW4ob3V0cHV0LCBuYW1lKTtcbiAgICBsb2cuaW5mbyhgZGVsZXRpbmcgcHJldmlvdXMgY29udHJhY3QgZm9sZGVyIGF0ICR7b3V0cHV0UGF0aH1gKTtcbiAgICBleGVjU3luYyhgcm0gLXJmICR7b3V0cHV0UGF0aH1gKTtcbiAgfSk7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGZhYnJpYygpIHtcbiAgY29uc3QgbWFpbkNvbW1hbmQgPSBuZXcgQ29tbWFuZCgpXG4gICAgLm5hbWUoXCJmYWJyaWNcIilcbiAgICAuZGVzY3JpcHRpb24oXG4gICAgICBcImV4cG9zZXMgc2V2ZXJhbCBjb21tYW5kcyB0byBoZWxwIG1hbmFnZSB0aGUgZmFicmljIGluZnJhc3RydWN0dXJlXCJcbiAgICApO1xuXG4gIG1haW5Db21tYW5kLmFkZENvbW1hbmQoY29tcGlsZUNvbW1hbmQpO1xuICBtYWluQ29tbWFuZC5hZGRDb21tYW5kKGVuc3VyZUluZnJhKTtcblxuICByZXR1cm4gbWFpbkNvbW1hbmQ7XG59XG4iXX0=
|
|
@@ -871,4 +871,4 @@ __decorate([
|
|
|
871
871
|
], FabricClientAdapter.prototype, "raw", null);
|
|
872
872
|
FabricClientAdapter.decoration();
|
|
873
873
|
core_1.Adapter.setCurrent(constants_1.FabricFlavour);
|
|
874
|
-
//# sourceMappingURL=FabricClientAdapter.js.map
|
|
874
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQ2xpZW50QWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGllbnQvRmFicmljQ2xpZW50QWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkNBQTZCO0FBQzdCLHVEQUFxRTtBQUNyRSwyQ0FBdUM7QUFDdkMsb0RBQXNDO0FBQ3RDLHlFQUl3QztBQUN4QywrQ0FBMEQ7QUFNMUQsZ0VBUXFDO0FBQ3JDLCtDQUFxRDtBQUNyRCwyREFVaUM7QUFDakMseUNBb0J3QjtBQUN4Qix5REFBb0Q7QUFDcEQsdUVBQThEO0FBRTlELGlEQUFzRDtBQUV0RCwrQ0FJeUI7QUFDekIsdUVBQWdFO0FBQ2hFLHVFQUFnRTtBQUNoRSx5RUFBa0U7QUFDbEUsbURBQW9EO0FBRXBEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtERztBQUNILE1BQWEsbUJBQW9CLFNBQVEsY0FLeEM7SUFDQzs7T0FFRzthQUNZLFlBQU8sR0FBRyxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsQUFBMUIsQ0FBMkI7YUFFbEMsZUFBVSxHQUFHLElBQUksbUNBQWdCLEVBQUUsQUFBekIsQ0FBMEI7YUFFbEMsUUFBRyxHQUFHLGlCQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLEFBQW5DLENBQW9DO0lBS3hEOzs7OztPQUtHO0lBQ0gsWUFBWSxNQUFrQixFQUFFLEtBQWM7UUFDNUMsS0FBSyxDQUFDLE1BQU0sRUFBRSx5QkFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBVm5CLGVBQVUsR0FDM0IsbUJBQW1CLENBQUMsVUFBVSxDQUFDO0lBVWpDLENBQUM7SUFFUSxTQUFTLENBQ2hCLFNBQWlDO1FBRWpDLE9BQU8sSUFBSSw2Q0FBcUIsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDcEQs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QUMsR0FBRyxDQUFNLENBQUM7UUFDdkMsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLGtDQUFrQixDQUFDLElBQUksQ0FBQztZQUN2QyxPQUFPLElBQUksa0NBQWtCLENBQUMsR0FBRyxDQUFNLENBQUM7UUFDMUMsT0FBTyxJQUFJLDZCQUFhLENBQUMsR0FBRyxDQUFNLENBQUM7SUFDckMsQ0FBQzs7QUF6K0JILGtEQTArQkM7QUExb0JpQjtJQURmLElBQUEsZUFBSyxHQUFFOzs7O2dEQTZCUDtBQWFjO0lBRmQsSUFBQSxlQUFLLEdBQUU7SUFDUCxJQUFBLGVBQUssR0FBRTs7cUVBTWtCLGNBQU87O2lEQWtCaEM7QUFXSztJQUZMLElBQUEsZUFBSyxHQUFFO0lBQ1AsSUFBQSxlQUFLLEdBQUU7O3FEQUlrQixjQUFPOzsrQ0FlaEM7QUE0Qks7SUFGTCxJQUFBLGVBQUssR0FBRTtJQUNQLElBQUEsZUFBSyxHQUFFOztxRUFNa0IsY0FBTzs7aURBbUJoQztBQVdjO0lBRmQsSUFBQSxlQUFLLEdBQUU7SUFDUCxJQUFBLGVBQUssR0FBRTs7cURBSWtCLGNBQU87O2lEQWNoQztBQTRCSztJQURMLElBQUEsZUFBSyxHQUFFOztpRUFHSSxDQUFDLG9CQUFELENBQUMsd0NBRWEsY0FBTzs7OENBdUNoQztBQXdaSCxtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsQ0FBQztBQUNqQyxjQUFPLENBQUMsVUFBVSxDQUFDLHlCQUFhLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcIi4uL3NoYXJlZC9vdmVycmlkZXNcIjtcbmltcG9ydCB7IENvdWNoREJLZXlzLCB0eXBlIE1hbmdvUXVlcnkgfSBmcm9tIFwiQGRlY2FmLXRzL2Zvci1jb3VjaGRiXCI7XG5pbXBvcnQgeyBDbGllbnQgfSBmcm9tIFwiQGdycGMvZ3JwYy1qc1wiO1xuaW1wb3J0ICogYXMgZ3JwYyBmcm9tIFwiQGdycGMvZ3JwYy1qc1wiO1xuaW1wb3J0IHtcbiAgTW9kZWwsXG4gIHR5cGUgTW9kZWxDb25zdHJ1Y3RvcixcbiAgdHlwZSBTZXJpYWxpemVyLFxufSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBkZWJ1ZywgZmluYWwsIExvZ2dpbmcgfSBmcm9tIFwiQGRlY2FmLXRzL2xvZ2dpbmdcIjtcbmltcG9ydCB7XG4gIHR5cGUgRmFicmljRmxhZ3MsXG4gIHR5cGUgUGVlckNvbmZpZyxcbiAgdHlwZSBTZWdyZWdhdGVkTW9kZWwsXG59IGZyb20gXCIuLi9zaGFyZWQvdHlwZXNcIjtcbmltcG9ydCB7XG4gIGNvbm5lY3QsXG4gIHR5cGUgQ29ubmVjdE9wdGlvbnMsXG4gIEdhdGV3YXksXG4gIE5ldHdvcmssXG4gIFByb3Bvc2FsT3B0aW9ucyxcbiAgQ29udHJhY3QgYXMgQ29udHJha3QsXG4gIHR5cGUgU2lnbmVyLFxufSBmcm9tIFwiQGh5cGVybGVkZ2VyL2ZhYnJpYy1nYXRld2F5XCI7XG5pbXBvcnQgeyBnZXRJZGVudGl0eSwgZ2V0U2lnbmVyIH0gZnJvbSBcIi4vZmFicmljLWZzXCI7XG5pbXBvcnQge1xuICBCYXNlRXJyb3IsXG4gIEludGVybmFsRXJyb3IsXG4gIE9wZXJhdGlvbktleXMsXG4gIFNlcmlhbGl6YXRpb25FcnJvcixcbiAgQnVsa0NydWRPcGVyYXRpb25LZXlzLFxuICBOb3RGb3VuZEVycm9yLFxuICBDb25mbGljdEVycm9yLFxuICBCYWRSZXF1ZXN0RXJyb3IsXG4gIHR5cGUgUHJpbWFyeUtleVR5cGUsXG59IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHtcbiAgQ29udGV4dCxcbiAgQWRhcHRlcixcbiAgdHlwZSBBZGFwdGVyRmxhZ3MsXG4gIEF1dGhvcml6YXRpb25FcnJvcixcbiAgQ29ubmVjdGlvbkVycm9yLFxuICBGb3JiaWRkZW5FcnJvcixcbiAgTWlncmF0aW9uRXJyb3IsXG4gIE9ic2VydmVyRXJyb3IsXG4gIFBhZ2luZ0Vycm9yLFxuICBQZXJzaXN0ZW5jZUtleXMsXG4gIFF1ZXJ5RXJyb3IsXG4gIFJlcG9zaXRvcnksXG4gIFVuc3VwcG9ydGVkRXJyb3IsXG4gIFN0YXRlbWVudCxcbiAgdHlwZSBQcmVwYXJlZFN0YXRlbWVudCxcbiAgUGFnaW5hdG9yLFxuICBNYXliZUNvbnRleHR1YWxBcmcsXG4gIENvbnRleHR1YWxBcmdzLFxuICB0eXBlIFByZXBhcmVkTW9kZWwsXG59IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgRmFicmljRmxhdm91ciB9IGZyb20gXCIuLi9zaGFyZWQvY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBDbGllbnRTZXJpYWxpemVyIH0gZnJvbSBcIi4uL3NoYXJlZC9DbGllbnRTZXJpYWxpemVyXCI7XG5pbXBvcnQgeyBGYWJyaWNDbGllbnREaXNwYXRjaCB9IGZyb20gXCIuL0ZhYnJpY0NsaWVudERpc3BhdGNoXCI7XG5pbXBvcnQgeyBIU01TaWduZXJGYWN0b3J5Q3VzdG9tIH0gZnJvbSBcIi4vZmFicmljLWhzbVwiO1xuaW1wb3J0IHsgdHlwZSBDb25zdHJ1Y3RvciB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuaW1wb3J0IHtcbiAgZ2VuZXJhdGVNb2RlbEluZGV4ZXMsXG4gIHJlYWRNb2RlbEZvbGRlcnMsXG4gIHdyaXRlSW5kZXhlcyxcbn0gZnJvbSBcIi4vaW5kZXhlcy9pbmRleFwiO1xuaW1wb3J0IHsgRmFicmljQ2xpZW50U3RhdGVtZW50IH0gZnJvbSBcIi4vRmFicmljQ2xpZW50U3RhdGVtZW50XCI7XG5pbXBvcnQgeyBGYWJyaWNDbGllbnRQYWdpbmF0b3IgfSBmcm9tIFwiLi9GYWJyaWNDbGllbnRQYWdpbmF0b3JcIjtcbmltcG9ydCB7IEZhYnJpY0NsaWVudFJlcG9zaXRvcnkgfSBmcm9tIFwiLi9GYWJyaWNDbGllbnRSZXBvc2l0b3J5XCI7XG5pbXBvcnQgeyBFbmRvcnNlbWVudEVycm9yIH0gZnJvbSBcIi4uL3NoYXJlZC9lcnJvcnNcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQWRhcHRlciBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBIeXBlcmxlZGdlciBGYWJyaWMgbmV0d29ya3NcbiAqIEBzdW1tYXJ5IFRoZSBGYWJyaWNBZGFwdGVyIGV4dGVuZHMgQ291Y2hEQkFkYXB0ZXIgdG8gcHJvdmlkZSBhIHNlYW1sZXNzIGludGVyZmFjZSBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBIeXBlcmxlZGdlciBGYWJyaWMgbmV0d29ya3MuXG4gKiBJdCBoYW5kbGVzIGNvbm5lY3Rpb24gbWFuYWdlbWVudCwgdHJhbnNhY3Rpb24gc3VibWlzc2lvbiwgYW5kIENSVUQgb3BlcmF0aW9ucyBhZ2FpbnN0IEZhYnJpYyBjaGFpbmNvZGUuXG4gKiBAdGVtcGxhdGUgUGVlckNvbmZpZyAtIENvbmZpZ3VyYXRpb24gdHlwZSBmb3IgY29ubmVjdGluZyB0byBhIEZhYnJpYyBwZWVyXG4gKiBAdGVtcGxhdGUgRmFicmljRmxhZ3MgLSBGbGFncyBzcGVjaWZpYyB0byBGYWJyaWMgb3BlcmF0aW9uc1xuICogQHRlbXBsYXRlIENvbnRleHQ8RmFicmljRmxhZ3M+IC0gQ29udGV4dCB0eXBlIGNvbnRhaW5pbmcgRmFicmljLXNwZWNpZmljIGZsYWdzXG4gKiBAcGFyYW0gY29uZmlnIC0gQ29uZmlndXJhdGlvbiBmb3IgY29ubmVjdGluZyB0byBhIEZhYnJpYyBwZWVyXG4gKiBAcGFyYW0gYWxpYXMgLSBPcHRpb25hbCBhbGlhcyBmb3IgdGhlIGFkYXB0ZXIgaW5zdGFuY2VcbiAqIEBjbGFzcyBGYWJyaWNDbGllbnRBZGFwdGVyXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogLy8gQ3JlYXRlIGEgbmV3IEZhYnJpY0FkYXB0ZXIgaW5zdGFuY2VcbiAqIGNvbnN0IGNvbmZpZzogUGVlckNvbmZpZyA9IHtcbiAqICAgbXNwSWQ6ICdPcmcxTVNQJyxcbiAqICAgcGVlckVuZHBvaW50OiAnbG9jYWxob3N0OjcwNTEnLFxuICogICBjaGFubmVsTmFtZTogJ215Y2hhbm5lbCcsXG4gKiAgIGNoYWluY29kZU5hbWU6ICdteWNjJyxcbiAqICAgY29udHJhY3ROYW1lOiAnbXljb250cmFjdCcsXG4gKiAgIHRsc0NlcnRQYXRoOiAnL3BhdGgvdG8vdGxzL2NlcnQnLFxuICogICBjZXJ0RGlyZWN0b3J5UGF0aDogJy9wYXRoL3RvL2NlcnQvZGlyJyxcbiAqICAga2V5RGlyZWN0b3J5UGF0aDogJy9wYXRoL3RvL2tleS9kaXInXG4gKiB9O1xuICpcbiAqIGNvbnN0IGFkYXB0ZXIgPSBuZXcgRmFicmljQWRhcHRlcihjb25maWcsICdvcmcxLWFkYXB0ZXInKTtcbiAqXG4gKiAvLyBVc2UgdGhlIGFkYXB0ZXIgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgRmFicmljIG5ldHdvcmtcbiAqIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGFkYXB0ZXIucmVhZCgndXNlcnMnLCAndXNlcjEnLCBteVNlcmlhbGl6ZXIpO1xuICogYGBgXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IENsaWVudFxuICogICBwYXJ0aWNpcGFudCBGYWJyaWNBZGFwdGVyXG4gKiAgIHBhcnRpY2lwYW50IEdhdGV3YXlcbiAqICAgcGFydGljaXBhbnQgTmV0d29ya1xuICogICBwYXJ0aWNpcGFudCBDb250cmFjdFxuICogICBwYXJ0aWNpcGFudCBDaGFpbmNvZGVcbiAqXG4gKiAgIENsaWVudC0+PkZhYnJpY0FkYXB0ZXI6IGNyZWF0ZSh0YWJsZU5hbWUsIGlkLCBtb2RlbCwgdHJhbnNpZW50LCBzZXJpYWxpemVyKVxuICogICBGYWJyaWNBZGFwdGVyLT4+RmFicmljQWRhcHRlcjogc3VibWl0VHJhbnNhY3Rpb24oT3BlcmF0aW9uS2V5cy5DUkVBVEUsIFtzZXJpYWxpemVkTW9kZWxdLCB0cmFuc2llbnQpXG4gKiAgIEZhYnJpY0FkYXB0ZXItPj5HYXRld2F5OiBjb25uZWN0KClcbiAqICAgR2F0ZXdheS0+Pk5ldHdvcms6IGdldE5ldHdvcmsoY2hhbm5lbE5hbWUpXG4gKiAgIE5ldHdvcmstPj5Db250cmFjdDogZ2V0Q29udHJhY3QoY2hhaW5jb2RlTmFtZSwgY29udHJhY3ROYW1lKVxuICogICBGYWJyaWNBZGFwdGVyLT4+Q29udHJhY3Q6IHN1Ym1pdChhcGksIHByb3Bvc2FsT3B0aW9ucylcbiAqICAgQ29udHJhY3QtPj5DaGFpbmNvZGU6IGludm9rZVxuICogICBDaGFpbmNvZGUtLT4+Q29udHJhY3Q6IHJlc3BvbnNlXG4gKiAgIENvbnRyYWN0LS0+PkZhYnJpY0FkYXB0ZXI6IHJlc3VsdFxuICogICBGYWJyaWNBZGFwdGVyLT4+RmFicmljQWRhcHRlcjogZGVjb2RlKHJlc3VsdClcbiAqICAgRmFicmljQWRhcHRlci0+PkZhYnJpY0FkYXB0ZXI6IHNlcmlhbGl6ZXIuZGVzZXJpYWxpemUoZGVjb2RlZFJlc3VsdClcbiAqICAgRmFicmljQWRhcHRlci0tPj5DbGllbnQ6IGRlc2VyaWFsaXplZFJlc3VsdFxuICovXG5leHBvcnQgY2xhc3MgRmFicmljQ2xpZW50QWRhcHRlciBleHRlbmRzIEFkYXB0ZXI8XG4gIFBlZXJDb25maWcsXG4gIENsaWVudCxcbiAgTWFuZ29RdWVyeSxcbiAgQ29udGV4dDxGYWJyaWNGbGFncz5cbj4ge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFN0YXRpYyB0ZXh0IGRlY29kZXIgZm9yIGNvbnZlcnRpbmcgVWludDhBcnJheSB0byBzdHJpbmdcbiAgICovXG4gIHByaXZhdGUgc3RhdGljIGRlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoXCJ1dGY4XCIpO1xuXG4gIHByaXZhdGUgc3RhdGljIHNlcmlhbGl6ZXIgPSBuZXcgQ2xpZW50U2VyaWFsaXplcigpO1xuXG4gIHByb3RlY3RlZCBzdGF0aWMgbG9nID0gTG9nZ2luZy5mb3IoRmFicmljQ2xpZW50QWRhcHRlcik7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNlcmlhbGl6ZXI6IFNlcmlhbGl6ZXI8YW55PiA9XG4gICAgRmFicmljQ2xpZW50QWRhcHRlci5zZXJpYWxpemVyO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBhIG5ldyBGYWJyaWNBZGFwdGVyIGluc3RhbmNlXG4gICAqIEBzdW1tYXJ5IEluaXRpYWxpemVzIGEgbmV3IGFkYXB0ZXIgZm9yIGludGVyYWN0aW5nIHdpdGggYSBIeXBlcmxlZGdlciBGYWJyaWMgbmV0d29ya1xuICAgKiBAcGFyYW0ge1BlZXJDb25maWd9IGNvbmZpZyAtIENvbmZpZ3VyYXRpb24gZm9yIGNvbm5lY3RpbmcgdG8gYSBGYWJyaWMgcGVlclxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2FsaWFzXSAtIE9wdGlvbmFsIGFsaWFzIGZvciB0aGUgYWRhcHRlciBpbnN0YW5jZVxuICAgKi9cbiAgY29uc3RydWN0b3IoY29uZmlnOiBQZWVyQ29uZmlnLCBhbGlhcz86IHN0cmluZykge1xuICAgIHN1cGVyKGNvbmZpZywgRmFicmljRmxhdm91ciwgYWxpYXMpO1xuICB9XG5cbiAgb3ZlcnJpZGUgU3RhdGVtZW50PE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgb3ZlcnJpZGVzPzogUGFydGlhbDxBZGFwdGVyRmxhZ3M+XG4gICk6IFN0YXRlbWVudDxNLCBGYWJyaWNDbGllbnRBZGFwdGVyLCBhbnksIE1hbmdvUXVlcnk+IHtcbiAgICByZXR1cm4gbmV3IEZhYnJpY0NsaWVudFN0YXRlbWVudCh0aGlzLCBvdmVycmlkZXMpO1xuICB9XG5cbiAgUGFnaW5hdG9yPE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgcXVlcnk6IFByZXBhcmVkU3RhdGVtZW50PGFueT4gfCBNYW5nb1F1ZXJ5LFxuICAgIHNpemU6IG51bWJlcixcbiAgICBjbGF6ejogQ29uc3RydWN0b3I8TT5cbiAgKTogUGFnaW5hdG9yPE0sIGFueSwgTWFuZ29RdWVyeT4ge1xuICAgIHJldHVybiBuZXcgRmFicmljQ2xpZW50UGFnaW5hdG9yKHRoaXMsIHF1ZXJ5LCBzaXplLCBjbGF6eik7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBjb250ZXh0PE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgb3BlcmF0aW9uOlxuICAgICAgfCBPcGVyYXRpb25LZXlzLkNSRUFURVxuICAgICAgfCBPcGVyYXRpb25LZXlzLlJFQURcbiAgICAgIHwgT3BlcmF0aW9uS2V5cy5VUERBVEVcbiAgICAgIHwgT3BlcmF0aW9uS2V5cy5ERUxFVEVcbiAgICAgIHwgc3RyaW5nLFxuICAgIG92ZXJyaWRlczogUGFydGlhbDxGYWJyaWNGbGFncz4sXG4gICAgbW9kZWw6IENvbnN0cnVjdG9yPE0+IHwgQ29uc3RydWN0b3I8TT5bXSxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPENvbnRleHQ8RmFicmljRmxhZ3M+PiB7XG4gICAgY29uc3QgbG9nID0gdGhpcy5sb2cuZm9yKHRoaXMuY29udGV4dCk7XG4gICAgbG9nLmRlYnVnKFxuICAgICAgYENyZWF0aW5nIG5ldyBjb250ZXh0IGZvciAke29wZXJhdGlvbn0gb3BlcmF0aW9uIG9uICR7QXJyYXkuaXNBcnJheShtb2RlbCkgPyBtb2RlbC5tYXAoKG0pID0+IG0ubmFtZSkgOiBtb2RlbC5uYW1lfSBtb2RlbCB3aXRoIGZsYWcgb3ZlcnJpZGVzOiAke0pTT04uc3RyaW5naWZ5KG92ZXJyaWRlcyl9YFxuICAgICk7XG4gICAgY29uc3QgZmxhZ3MgPSBhd2FpdCB0aGlzLmZsYWdzKG9wZXJhdGlvbiwgbW9kZWwsIG92ZXJyaWRlcywgLi4uYXJncyk7XG4gICAgcmV0dXJuIG5ldyBDb250ZXh0KCkuYWNjdW11bGF0ZShmbGFncyk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIERlY29kZXMgYSBVaW50OEFycmF5IHRvIGEgc3RyaW5nXG4gICAqIEBzdW1tYXJ5IENvbnZlcnRzIGJpbmFyeSBkYXRhIHJlY2VpdmVkIGZyb20gRmFicmljIHRvIGEgc3RyaW5nIHVzaW5nIFVURi04IGVuY29kaW5nXG4gICAqIEBwYXJhbSB7VWludDhBcnJheX0gZGF0YSAtIFRoZSBiaW5hcnkgZGF0YSB0byBkZWNvZGVcbiAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgZGVjb2RlZCBzdHJpbmdcbiAgICovXG4gIGRlY29kZShkYXRhOiBVaW50OEFycmF5KTogc3RyaW5nIHtcbiAgICByZXR1cm4gRmFicmljQ2xpZW50QWRhcHRlci5kZWNvZGVyLmRlY29kZShkYXRhKTtcbiAgfVxuXG4gIG92ZXJyaWRlIHJlcG9zaXRvcnk8XG4gICAgUiBleHRlbmRzIFJlcG9zaXRvcnk8XG4gICAgICBhbnksXG4gICAgICBBZGFwdGVyPFBlZXJDb25maWcsIENsaWVudCwgTWFuZ29RdWVyeSwgQ29udGV4dDxGYWJyaWNGbGFncz4+XG4gICAgPixcbiAgPigpOiBDb25zdHJ1Y3RvcjxSPiB7XG4gICAgcmV0dXJuIEZhYnJpY0NsaWVudFJlcG9zaXRvcnkgYXMgdW5rbm93biBhcyBDb25zdHJ1Y3RvcjxSPjtcbiAgfVxuXG4gIHByb3RlY3RlZCBjcmVhdGVQcmVmaXg8TSBleHRlbmRzIE1vZGVsPihcbiAgICBjbGF6ejogQ29uc3RydWN0b3I8TT4sXG4gICAgaWQ6IFByaW1hcnlLZXlUeXBlLFxuICAgIG1vZGVsOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxDb250ZXh0PEZhYnJpY0ZsYWdzPj5cbiAgKTogW0NvbnN0cnVjdG9yPE0+LCBQcmltYXJ5S2V5VHlwZSwgUmVjb3JkPHN0cmluZywgYW55PiwgLi4uYW55W10sIENvbnRleHRdIHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMuY3JlYXRlUHJlZml4KTtcbiAgICBjb25zdCB0YWJsZU5hbWUgPSBNb2RlbC50YWJsZU5hbWUoY2xhenopO1xuICAgIGNvbnN0IHJlY29yZDogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuICAgIHJlY29yZFtDb3VjaERCS2V5cy5UQUJMRV0gPSB0YWJsZU5hbWU7XG4gICAgT2JqZWN0LmFzc2lnbihyZWNvcmQsIG1vZGVsKTtcbiAgICByZXR1cm4gW2NsYXp6LCBpZCwgcmVjb3JkLCAuLi5jdHhBcmdzXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUHJlcGFyZXMgbXVsdGlwbGUgcmVjb3JkcyBmb3IgY3JlYXRpb25cbiAgICogQHN1bW1hcnkgQWRkcyBuZWNlc3NhcnkgQ291Y2hEQiBmaWVsZHMgdG8gbXVsdGlwbGUgcmVjb3JkcyBiZWZvcmUgY3JlYXRpb25cbiAgICogQHBhcmFtIHtzdHJpbmd9IHRhYmxlTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSB0YWJsZVxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfG51bWJlcltdfSBpZHMgLSBUaGUgSURzIG9mIHRoZSByZWNvcmRzXG4gICAqIEBwYXJhbSBtb2RlbHMgLSBUaGUgbW9kZWxzIHRvIHByZXBhcmVcbiAgICogQHJldHVybiBBIHR1cGxlIGNvbnRhaW5pbmcgdGhlIHRhYmxlTmFtZSwgaWRzLCBhbmQgcHJlcGFyZWQgcmVjb3Jkc1xuICAgKiBAdGhyb3dzIHtJbnRlcm5hbEVycm9yfSBJZiBpZHMgYW5kIG1vZGVscyBhcnJheXMgaGF2ZSBkaWZmZXJlbnQgbGVuZ3Roc1xuICAgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZUFsbFByZWZpeDxNIGV4dGVuZHMgTW9kZWw+KFxuICAgIGNsYXp6OiBDb25zdHJ1Y3RvcjxNPixcbiAgICBpZHM6IHN0cmluZ1tdIHwgbnVtYmVyW10sXG4gICAgbW9kZWxzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+W10sXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPENvbnRleHQ8RmFicmljRmxhZ3M+PlxuICApIHtcbiAgICBjb25zdCB0YWJsZU5hbWUgPSBNb2RlbC50YWJsZU5hbWUoY2xhenopO1xuICAgIGlmIChpZHMubGVuZ3RoICE9PSBtb2RlbHMubGVuZ3RoKVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJJZHMgYW5kIG1vZGVscyBtdXN0IGhhdmUgdGhlIHNhbWUgbGVuZ3RoXCIpO1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5jcmVhdGVBbGxQcmVmaXgpO1xuICAgIGNvbnN0IHJlY29yZHMgPSBpZHMubWFwKChpZCwgY291bnQpID0+IHtcbiAgICAgIGNvbnN0IHJlY29yZDogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuICAgICAgcmVjb3JkW0NvdWNoREJLZXlzLlRBQkxFXSA9IHRhYmxlTmFtZTtcbiAgICAgIE9iamVjdC5hc3NpZ24ocmVjb3JkLCBtb2RlbHNbY291bnRdKTtcbiAgICAgIHJldHVybiByZWNvcmQ7XG4gICAgfSk7XG4gICAgcmV0dXJuIFtjbGF6eiwgaWRzLCByZWNvcmRzLCAuLi5jdHhBcmdzXTtcbiAgfVxuXG4gIHByb3RlY3RlZCB1cGRhdGVBbGxQcmVmaXg8TSBleHRlbmRzIE1vZGVsPihcbiAgICBjbGF6ejogQ29uc3RydWN0b3I8TT4sXG4gICAgaWRzOiBQcmltYXJ5S2V5VHlwZVtdLFxuICAgIG1vZGVsczogUmVjb3JkPHN0cmluZywgYW55PltdLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxDb250ZXh0PEZhYnJpY0ZsYWdzPj5cbiAgKSB7XG4gICAgY29uc3QgdGFibGVOYW1lID0gTW9kZWwudGFibGVOYW1lKGNsYXp6KTtcbiAgICBpZiAoaWRzLmxlbmd0aCAhPT0gbW9kZWxzLmxlbmd0aClcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiSWRzIGFuZCBtb2RlbHMgbXVzdCBoYXZlIHRoZSBzYW1lIGxlbmd0aFwiKTtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMudXBkYXRlQWxsUHJlZml4KTtcbiAgICBjb25zdCByZWNvcmRzID0gaWRzLm1hcCgoKSA9PiB7XG4gICAgICBjb25zdCByZWNvcmQ6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgICAgIHJlY29yZFtDb3VjaERCS2V5cy5UQUJMRV0gPSB0YWJsZU5hbWU7XG4gICAgICByZXR1cm4gcmVjb3JkO1xuICAgIH0pO1xuICAgIHJldHVybiBbY2xhenosIGlkcywgcmVjb3JkcywgLi4uY3R4QXJnc107XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgbXVsdGlwbGUgcmVjb3JkcyBpbiBhIHNpbmdsZSB0cmFuc2FjdGlvblxuICAgKiBAc3VtbWFyeSBTdWJtaXRzIGEgdHJhbnNhY3Rpb24gdG8gY3JlYXRlIG11bHRpcGxlIHJlY29yZHMgaW4gdGhlIEZhYnJpYyBsZWRnZXJcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRhYmxlTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSB0YWJsZS9jb2xsZWN0aW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nW10gfCBudW1iZXJbXX0gaWRzIC0gQXJyYXkgb2YgcmVjb3JkIGlkZW50aWZpZXJzXG4gICAqIEBwYXJhbSB7QXJyYXk8UmVjb3JkPHN0cmluZywgYW55Pj59IG1vZGVscyAtIEFycmF5IG9mIHJlY29yZCBkYXRhXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gdHJhbnNpZW50IC0gVHJhbnNpZW50IGRhdGEgZm9yIHRoZSB0cmFuc2FjdGlvblxuICAgKiBAcmV0dXJuIHtQcm9taXNlPEFycmF5PFJlY29yZDxzdHJpbmcsIGFueT4+Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGNyZWF0ZWQgcmVjb3Jkc1xuICAgKi9cbiAgb3ZlcnJpZGUgYXN5bmMgY3JlYXRlQWxsPE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgY2xheno6IENvbnN0cnVjdG9yPE0+LFxuICAgIGlkczogUHJpbWFyeUtleVR5cGVbXSxcbiAgICBtb2RlbHM6IFJlY29yZDxzdHJpbmcsIGFueT5bXSxcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxDb250ZXh0PEZhYnJpY0ZsYWdzPj5cbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+W10+IHtcbiAgICBpZiAoaWRzLmxlbmd0aCAhPT0gbW9kZWxzLmxlbmd0aClcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiSWRzIGFuZCBtb2RlbHMgbXVzdCBoYXZlIHRoZSBzYW1lIGxlbmd0aFwiKTtcbiAgICBjb25zdCBjdHhBcmdzID0gWy4uLihhcmdzIGFzIHVua25vd24gYXMgYW55W10pXTtcbiAgICBjb25zdCB0cmFuc2llbnQgPSBjdHhBcmdzLnNoaWZ0KCkgYXMgUmVjb3JkPHN0cmluZywgYW55PjtcbiAgICBjb25zdCB7IGxvZyB9ID0gdGhpcy5sb2dDdHgoXG4gICAgICBjdHhBcmdzIGFzIENvbnRleHR1YWxBcmdzPENvbnRleHQ8RmFicmljRmxhZ3M+PixcbiAgICAgIHRoaXMuY3JlYXRlQWxsXG4gICAgKTtcbiAgICBjb25zdCB0YWJsZU5hbWUgPSBNb2RlbC50YWJsZU5hbWUoY2xhenopO1xuXG4gICAgbG9nLmluZm8oYGFkZGluZyAke2lkcy5sZW5ndGh9IGVudHJpZXMgdG8gJHt0YWJsZU5hbWV9IHRhYmxlYCk7XG4gICAgbG9nLnZlcmJvc2UoYHBrczogJHtpZHN9YCk7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5zdWJtaXRUcmFuc2FjdGlvbihcbiAgICAgIEJ1bGtDcnVkT3BlcmF0aW9uS2V5cy5DUkVBVEVfQUxMLFxuICAgICAgW2lkcywgbW9kZWxzLm1hcCgobSkgPT4gdGhpcy5zZXJpYWxpemVyLnNlcmlhbGl6ZShtLCBjbGF6ei5uYW1lKSldLFxuICAgICAgdHJhbnNpZW50LFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgdGFibGVOYW1lXG4gICAgKTtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIEpTT04ucGFyc2UodGhpcy5kZWNvZGUocmVzdWx0KSkubWFwKChyOiBhbnkpID0+IEpTT04ucGFyc2UocikpO1xuICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgIHRocm93IG5ldyBTZXJpYWxpemF0aW9uRXJyb3IoZSBhcyBFcnJvcik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBSZWFkcyBtdWx0aXBsZSByZWNvcmRzIGluIGEgc2luZ2xlIHRyYW5zYWN0aW9uXG4gICAqIEBzdW1tYXJ5IFN1Ym1pdHMgYSB0cmFuc2FjdGlvbiB0byByZWFkIG11bHRpcGxlIHJlY29yZHMgZnJvbSB0aGUgRmFicmljIGxlZGdlclxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGFibGVOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHRhYmxlL2NvbGxlY3Rpb25cbiAgICogQHBhcmFtIHtzdHJpbmdbXSB8IG51bWJlcltdfSBpZHMgLSBBcnJheSBvZiByZWNvcmQgaWRlbnRpZmllcnMgdG8gcmVhZFxuICAgKiBAcmV0dXJuIHtQcm9taXNlPEFycmF5PFJlY29yZDxzdHJpbmcsIGFueT4+Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIHJldHJpZXZlZCByZWNvcmRzXG4gICAqL1xuICBvdmVycmlkZSBhc3luYyByZWFkQWxsPE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgY2xheno6IENvbnN0cnVjdG9yPE0+LFxuICAgIGlkczogUHJpbWFyeUtleVR5cGVbXSxcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxDb250ZXh0PEZhYnJpY0ZsYWdzPj5cbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+W10+IHtcbiAgICBjb25zdCB7IGxvZyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5yZWFkQWxsKTtcbiAgICBjb25zdCB0YWJsZU5hbWUgPSBNb2RlbC50YWJsZU5hbWUoY2xhenopO1xuICAgIGxvZy5pbmZvKGByZWFkaW5nICR7aWRzLmxlbmd0aH0gZW50cmllcyB0byAke3RhYmxlTmFtZX0gdGFibGVgKTtcbiAgICBsb2cudmVyYm9zZShgcGtzOiAke2lkc31gKTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmV2YWx1YXRlVHJhbnNhY3Rpb24oXG4gICAgICBCdWxrQ3J1ZE9wZXJhdGlvbktleXMuUkVBRF9BTEwsXG4gICAgICBbaWRzXSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIHRhYmxlTmFtZVxuICAgICk7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBKU09OLnBhcnNlKHRoaXMuZGVjb2RlKHJlc3VsdCkpLm1hcCgocjogYW55KSA9PiBKU09OLnBhcnNlKHIpKTtcbiAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICB0aHJvdyBuZXcgU2VyaWFsaXphdGlvbkVycm9yKGUgYXMgRXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVXBkYXRlcyBtdWx0aXBsZSByZWNvcmRzIGluIGEgc2luZ2xlIHRyYW5zYWN0aW9uXG4gICAqIEBzdW1tYXJ5IFN1Ym1pdHMgYSB0cmFuc2FjdGlvbiB0byB1cGRhdGUgbXVsdGlwbGUgcmVjb3JkcyBpbiB0aGUgRmFicmljIGxlZGdlclxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGFibGVOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHRhYmxlL2NvbGxlY3Rpb25cbiAgICogQHBhcmFtIHtzdHJpbmdbXSB8IG51bWJlcltdfSBpZHMgLSBBcnJheSBvZiByZWNvcmQgaWRlbnRpZmllcnNcbiAgICogQHBhcmFtIHtBcnJheTxSZWNvcmQ8c3RyaW5nLCBhbnk+Pn0gbW9kZWxzIC0gQXJyYXkgb2YgdXBkYXRlZCByZWNvcmQgZGF0YVxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IHRyYW5zaWVudCAtIFRyYW5zaWVudCBkYXRhIGZvciB0aGUgdHJhbnNhY3Rpb25cbiAgICogQHJldHVybiB7UHJvbWlzZTxBcnJheTxSZWNvcmQ8c3RyaW5nLCBhbnk+Pj59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSB1cGRhdGVkIHJlY29yZHNcbiAgICovXG4gIG92ZXJyaWRlIGFzeW5jIHVwZGF0ZUFsbDxNIGV4dGVuZHMgTW9kZWw+KFxuICAgIGNsYXp6OiBDb25zdHJ1Y3RvcjxNPixcbiAgICBpZHM6IFByaW1hcnlLZXlUeXBlW10sXG4gICAgbW9kZWxzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+W10sXG4gICAgLi4uYXJnczogQ29udGV4dHVhbEFyZ3M8Q29udGV4dDxGYWJyaWNGbGFncz4+XG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55PltdPiB7XG4gICAgaWYgKGlkcy5sZW5ndGggIT09IG1vZGVscy5sZW5ndGgpXG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIklkcyBhbmQgbW9kZWxzIG11c3QgaGF2ZSB0aGUgc2FtZSBsZW5ndGhcIik7XG4gICAgY29uc3QgY3R4QXJncyA9IFsuLi4oYXJncyBhcyB1bmtub3duIGFzIGFueVtdKV07XG4gICAgY29uc3QgdHJhbnNpZW50ID0gY3R4QXJncy5zaGlmdCgpIGFzIFJlY29yZDxzdHJpbmcsIGFueT47XG4gICAgY29uc3QgeyBsb2cgfSA9IHRoaXMubG9nQ3R4KFxuICAgICAgY3R4QXJncyBhcyBDb250ZXh0dWFsQXJnczxDb250ZXh0PEZhYnJpY0ZsYWdzPj4sXG4gICAgICB0aGlzLnVwZGF0ZUFsbFxuICAgICk7XG4gICAgY29uc3QgdGFibGVOYW1lID0gTW9kZWwudGFibGVOYW1lKGNsYXp6KTtcbiAgICBsb2cuaW5mbyhgdXBkYXRpbmcgJHtpZHMubGVuZ3RofSBlbnRyaWVzIHRvICR7dGFibGVOYW1lfSB0YWJsZWApO1xuICAgIGxvZy52ZXJib3NlKGBwa3M6ICR7aWRzfWApO1xuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5zdWJtaXRUcmFuc2FjdGlvbihcbiAgICAgIEJ1bGtDcnVkT3BlcmF0aW9uS2V5cy5VUERBVEVfQUxMLFxuICAgICAgW2lkcywgbW9kZWxzLm1hcCgobSkgPT4gdGhpcy5zZXJpYWxpemVyLnNlcmlhbGl6ZShtLCBjbGF6ei5uYW1lKSldLFxuICAgICAgdHJhbnNpZW50LFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgY2xhenoubmFtZVxuICAgICk7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBKU09OLnBhcnNlKHRoaXMuZGVjb2RlKHJlc3VsdCkpLm1hcCgocjogYW55KSA9PiBKU09OLnBhcnNlKHIpKTtcbiAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICB0aHJvdyBuZXcgU2VyaWFsaXphdGlvbkVycm9yKGUgYXMgRXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRGVsZXRlcyBtdWx0aXBsZSByZWNvcmRzIGluIGEgc2luZ2xlIHRyYW5zYWN0aW9uXG4gICAqIEBzdW1tYXJ5IFN1Ym1pdHMgYSB0cmFuc2FjdGlvbiB0byBkZWxldGUgbXVsdGlwbGUgcmVjb3JkcyBmcm9tIHRoZSBGYWJyaWMgbGVkZ2VyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0YWJsZU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgdGFibGUvY29sbGVjdGlvblxuICAgKiBAcGFyYW0ge0FycmF5PHN0cmluZyB8IG51bWJlciB8IGJpZ2ludD59IGlkcyAtIEFycmF5IG9mIHJlY29yZCBpZGVudGlmaWVycyB0byBkZWxldGVcbiAgICogQHBhcmFtIHtTZXJpYWxpemVyPGFueT59IHNlcmlhbGl6ZXIgLSBTZXJpYWxpemVyIGZvciB0aGUgbW9kZWwgZGF0YVxuICAgKiBAcmV0dXJuIHtQcm9taXNlPEFycmF5PFJlY29yZDxzdHJpbmcsIGFueT4+Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGRlbGV0ZWQgcmVjb3Jkc1xuICAgKi9cbiAgb3ZlcnJpZGUgYXN5bmMgZGVsZXRlQWxsPE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgY2xheno6IENvbnN0cnVjdG9yPE0+LFxuICAgIGlkczogUHJpbWFyeUtleVR5cGVbXSxcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxDb250ZXh0PEZhYnJpY0ZsYWdzPj5cbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+W10+IHtcbiAgICBjb25zdCB7IGxvZyB9ID0gQWRhcHRlci5sb2dDdHgoYXJncywgdGhpcy5kZWxldGVBbGwpO1xuICAgIGNvbnN0IHRhYmxlTmFtZSA9IE1vZGVsLnRhYmxlTmFtZShjbGF6eik7XG4gICAgbG9nLmluZm8oYGRlbGV0aW5nICR7aWRzLmxlbmd0aH0gZW50cmllcyB0byAke3RhYmxlTmFtZX0gdGFibGVgKTtcbiAgICBsb2cudmVyYm9zZShgcGtzOiAke2lkc31gKTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnN1Ym1pdFRyYW5zYWN0aW9uKFxuICAgICAgQnVsa0NydWRPcGVyYXRpb25LZXlzLkRFTEVURV9BTEwsXG4gICAgICBbaWRzXSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIGNsYXp6Lm5hbWVcbiAgICApO1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gSlNPTi5wYXJzZSh0aGlzLmRlY29kZShyZXN1bHQpKS5tYXAoKHI6IGFueSkgPT4gSlNPTi5wYXJzZShyKSk7XG4gICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgdGhyb3cgbmV3IFNlcmlhbGl6YXRpb25FcnJvcihlIGFzIEVycm9yKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFByZXBhcmVzIGEgbW9kZWwgZm9yIHBlcnNpc3RlbmNlXG4gICAqIEBzdW1tYXJ5IENvbnZlcnRzIGEgbW9kZWwgaW5zdGFuY2UgaW50byBhIGZvcm1hdCBzdWl0YWJsZSBmb3IgZGF0YWJhc2Ugc3RvcmFnZSxcbiAgICogaGFuZGxpbmcgY29sdW1uIG1hcHBpbmcgYW5kIHNlcGFyYXRpbmcgdHJhbnNpZW50IHByb3BlcnRpZXNcbiAgICogQHRlbXBsYXRlIE0gLSBUaGUgbW9kZWwgdHlwZVxuICAgKiBAcGFyYW0ge019IG1vZGVsIC0gVGhlIG1vZGVsIGluc3RhbmNlIHRvIHByZXBhcmVcbiAgICogQHBhcmFtIHBrIC0gVGhlIHByaW1hcnkga2V5IHByb3BlcnR5IG5hbWVcbiAgICogQHJldHVybiBUaGUgcHJlcGFyZWQgZGF0YVxuICAgKi9cbiAgb3ZlcnJpZGUgcHJlcGFyZTxNIGV4dGVuZHMgTW9kZWw+KFxuICAgIG1vZGVsOiBNLFxuICAgIC4uLmFyZ3M6IENvbnRleHR1YWxBcmdzPENvbnRleHQ8RmFicmljRmxhZ3M+PlxuICApOiBTZWdyZWdhdGVkTW9kZWw8TT4gJiBQcmVwYXJlZE1vZGVsIHtcbiAgICBjb25zdCB7IGxvZyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5wcmVwYXJlKTtcbiAgICBjb25zdCBzcGxpdCA9IE1vZGVsLnNlZ3JlZ2F0ZShtb2RlbCk7XG4gICAgaWYgKChtb2RlbCBhcyBhbnkpW1BlcnNpc3RlbmNlS2V5cy5NRVRBREFUQV0pIHtcbiAgICAgIGxvZy5zaWxseShcbiAgICAgICAgYFBhc3NpbmcgYWxvbmcgcGVyc2lzdGVuY2UgbWV0YWRhdGEgZm9yICR7KG1vZGVsIGFzIGFueSlbUGVyc2lzdGVuY2VLZXlzLk1FVEFEQVRBXX1gXG4gICAgICApO1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHNwbGl0Lm1vZGVsLCBQZXJzaXN0ZW5jZUtleXMuTUVUQURBVEEsIHtcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICB2YWx1ZTogKG1vZGVsIGFzIGFueSlbUGVyc2lzdGVuY2VLZXlzLk1FVEFEQVRBXSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICByZWNvcmQ6IHNwbGl0Lm1vZGVsLFxuICAgICAgbW9kZWw6IHNwbGl0Lm1vZGVsLFxuICAgICAgaWQ6IG1vZGVsW01vZGVsLnBrKG1vZGVsLmNvbnN0cnVjdG9yIGFzIENvbnN0cnVjdG9yPE0+KV0gYXMgc3RyaW5nLFxuICAgICAgdHJhbnNpZW50OiBzcGxpdC50cmFuc2llbnQsXG4gICAgICBwcml2YXRlOiBzcGxpdC5wcml2YXRlLFxuICAgICAgc2hhcmVkOiBzcGxpdC5zaGFyZWQsXG4gICAgfTtcbiAgfVxuXG4gIG92ZXJyaWRlIHJldmVydDxNIGV4dGVuZHMgTW9kZWw+KFxuICAgIG9iajogUmVjb3JkPHN0cmluZywgYW55PixcbiAgICBjbGF6ejogQ29uc3RydWN0b3I8TT4sXG4gICAgaWQ6IFByaW1hcnlLZXlUeXBlLFxuICAgIHRyYW5zaWVudD86IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgLi4uYXJnczogQ29udGV4dHVhbEFyZ3M8Q29udGV4dDxGYWJyaWNGbGFncz4+XG4gICk6IE0ge1xuICAgIGNvbnN0IHsgbG9nIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLnJldmVydCk7XG4gICAgaWYgKHRyYW5zaWVudCkge1xuICAgICAgbG9nLnZlcmJvc2UoXG4gICAgICAgIGByZS1hZGRpbmcgdHJhbnNpZW50IHByb3BlcnRpZXM6ICR7T2JqZWN0LmtleXModHJhbnNpZW50KS5qb2luKFwiLCBcIil9YFxuICAgICAgKTtcbiAgICAgIE9iamVjdC5lbnRyaWVzKHRyYW5zaWVudCBhcyBSZWNvcmQ8c3RyaW5nLCBhbnk+KS5mb3JFYWNoKChba2V5LCB2YWxdKSA9PiB7XG4gICAgICAgIGlmIChrZXkgaW4gb2JqKVxuICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICAgICAgYFRyYW5zaWVudCBwcm9wZXJ0eSAke2tleX0gYWxyZWFkeSBleGlzdHMgb24gbW9kZWwgJHt0eXBlb2YgY2xhenogPT09IFwic3RyaW5nXCIgPyBjbGF6eiA6IGNsYXp6Lm5hbWV9LiBzaG91bGQgYmUgaW1wb3NzaWJsZWBcbiAgICAgICAgICApO1xuICAgICAgICAob2JqIGFzIE0pW2tleSBhcyBrZXlvZiBNXSA9IHZhbDtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgKGNsYXp6IGFzIENvbnN0cnVjdG9yPE0+KShvYmopO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIGluZGV4ZXMgZm9yIHRoZSBnaXZlbiBtb2RlbHNcbiAgICogQHN1bW1hcnkgQWJzdHJhY3QgbWV0aG9kIHRoYXQgbXVzdCBiZSBpbXBsZW1lbnRlZCB0byBjcmVhdGUgZGF0YWJhc2UgaW5kZXhlcyBmb3IgdGhlIHNwZWNpZmllZCBtb2RlbHNcbiAgICogQHRlbXBsYXRlIE0gLSBUaGUgbW9kZWwgdHlwZVxuICAgKiBAcGFyYW0gey4uLkNvbnN0cnVjdG9yPE0+fSBtb2RlbHMgLSBUaGUgbW9kZWwgY29uc3RydWN0b3JzIHRvIGNyZWF0ZSBpbmRleGVzIGZvclxuICAgKiBAcmV0dXJuIHtQcm9taXNlPHZvaWQ+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIGFsbCBpbmRleGVzIGFyZSBjcmVhdGVkXG4gICAqL1xuICBAZGVidWcoKVxuICBwcm90ZWN0ZWQgYXN5bmMgaW5kZXg8TSBleHRlbmRzIE1vZGVsPihcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8XG4gICAgICBDb250ZXh0PEZhYnJpY0ZsYWdzPixcbiAgICAgIFtzdHJpbmcsIC4uLihDb25zdHJ1Y3RvcjxNPiB8IHN0cmluZylbXV1cbiAgICA+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgbG9nIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLmluZGV4KTtcbiAgICBjb25zdCBvdXREaXI6IHN0cmluZyA9IGFyZ3Muc2hpZnQoKTtcbiAgICBjb25zdCBtb2RlbHM6IE1vZGVsQ29uc3RydWN0b3I8YW55PltdID0gKFxuICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgIGFyZ3MubWFwKGFzeW5jIChtKSA9PiB7XG4gICAgICAgICAgY29uc3QgaXNGb2xkZXIgPSB0eXBlb2YgbSA9PT0gXCJzdHJpbmdcIjtcbiAgICAgICAgICBpZiAoaXNGb2xkZXIpIHtcbiAgICAgICAgICAgIGxvZy52ZXJib3NlKGBMb2FkaW5nIG1vZGVscyBmcm9tICR7bX0uLi5gKTtcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCByZWFkTW9kZWxGb2xkZXJzKG0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICApLmZsYXQoKTtcbiAgICBjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgICBmb3IgKGNvbnN0IG0gb2YgbW9kZWxzKSB7XG4gICAgICBsb2cudmVyYm9zZShgRXh0cmFjdGluZyBpbmRleGVzIGZvciB0YWJsZSAke01vZGVsLnRhYmxlTmFtZShtKX1gKTtcbiAgICAgIGdlbmVyYXRlTW9kZWxJbmRleGVzKG0sIHJlc3VsdCk7XG4gICAgfVxuICAgIGxvZy52ZXJib3NlKGBGb3VuZCAke09iamVjdC5rZXlzKHJlc3VsdCkubGVuZ3RofSBpbmRleGVzIHRvIGNyZWF0ZWApO1xuICAgIGxvZy5kZWJ1ZyhgSW5kZXhlczogJHtKU09OLnN0cmluZ2lmeShyZXN1bHQpfWApO1xuICAgIHdyaXRlSW5kZXhlcyhPYmplY3QudmFsdWVzKHJlc3VsdCksIG91dERpcik7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgYSBzaW5nbGUgcmVjb3JkXG4gICAqIEBzdW1tYXJ5IFN1Ym1pdHMgYSB0cmFuc2FjdGlvbiB0byBjcmVhdGUgYSByZWNvcmQgaW4gdGhlIEZhYnJpYyBsZWRnZXJcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRhYmxlTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSB0YWJsZS9jb2xsZWN0aW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVtYmVyfSBpZCAtIFRoZSByZWNvcmQgaWRlbnRpZmllclxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IG1vZGVsIC0gVGhlIHJlY29yZCBkYXRhXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gdHJhbnNpZW50IC0gVHJhbnNpZW50IGRhdGEgZm9yIHRoZSB0cmFuc2FjdGlvblxuICAgKiBAcmV0dXJuIHtQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgY3JlYXRlZCByZWNvcmRcbiAgICovXG4gIEBkZWJ1ZygpXG4gIEBmaW5hbCgpXG4gIG92ZXJyaWRlIGFzeW5jIGNyZWF0ZTxNIGV4dGVuZHMgTW9kZWw+KFxuICAgIGNsYXp6OiBDb25zdHJ1Y3RvcjxNPixcbiAgICBpZDogUHJpbWFyeUtleVR5cGUsXG4gICAgbW9kZWw6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgdHJhbnNpZW50OiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge30sXG4gICAgLi4uYXJnczogQ29udGV4dHVhbEFyZ3M8Q29udGV4dDxGYWJyaWNGbGFncz4+XG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj4ge1xuICAgIGNvbnN0IGN0eEFyZ3MgPSBbLi4uKGFyZ3MgYXMgdW5rbm93biBhcyBhbnlbXSldO1xuICAgIGNvbnN0IHsgbG9nIH0gPSB0aGlzLmxvZ0N0eChcbiAgICAgIGN0eEFyZ3MgYXMgQ29udGV4dHVhbEFyZ3M8Q29udGV4dDxGYWJyaWNGbGFncz4+LFxuICAgICAgdGhpcy5jcmVhdGVcbiAgICApO1xuICAgIGNvbnN0IHRhYmxlTmFtZSA9IE1vZGVsLnRhYmxlTmFtZShjbGF6eik7XG4gICAgbG9nLnZlcmJvc2UoYGFkZGluZyBlbnRyeSB0byAke3RhYmxlTmFtZX0gdGFibGVgKTtcbiAgICBsb2cuZGVidWcoYHBrOiAke2lkfWApO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuc3VibWl0VHJhbnNhY3Rpb24oXG4gICAgICBPcGVyYXRpb25LZXlzLkNSRUFURSxcbiAgICAgIFt0aGlzLnNlcmlhbGl6ZXIuc2VyaWFsaXplKG1vZGVsLCBjbGF6ei5uYW1lKV0sXG4gICAgICB0cmFuc2llbnQsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBjbGF6ei5uYW1lXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5zZXJpYWxpemVyLmRlc2VyaWFsaXplKHRoaXMuZGVjb2RlKHJlc3VsdCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBSZWFkcyBhIHNpbmdsZSByZWNvcmRcbiAgICogQHN1bW1hcnkgRXZhbHVhdGVzIGEgdHJhbnNhY3Rpb24gdG8gcmVhZCBhIHJlY29yZCBmcm9tIHRoZSBGYWJyaWMgbGVkZ2VyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0YWJsZU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgdGFibGUvY29sbGVjdGlvblxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bWJlcn0gaWQgLSBUaGUgcmVjb3JkIGlkZW50aWZpZXJcbiAgICogQHJldHVybiB7UHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIHJldHJpZXZlZCByZWNvcmRcbiAgICovXG4gIEBkZWJ1ZygpXG4gIEBmaW5hbCgpXG4gIGFzeW5jIHJlYWQ8TSBleHRlbmRzIE1vZGVsPihcbiAgICBjbGF6ejogQ29uc3RydWN0b3I8TT4sXG4gICAgaWQ6IFByaW1hcnlLZXlUeXBlLFxuICAgIC4uLmFyZ3M6IENvbnRleHR1YWxBcmdzPENvbnRleHQ8RmFicmljRmxhZ3M+PlxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+IHtcbiAgICBjb25zdCB7IGxvZyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5yZWFkQWxsKTtcbiAgICBjb25zdCB0YWJsZU5hbWUgPSBNb2RlbC50YWJsZU5hbWUoY2xhenopO1xuXG4gICAgbG9nLnZlcmJvc2UoYHJlYWRpbmcgZW50cnkgZnJvbSAke3RhYmxlTmFtZX0gdGFibGVgKTtcbiAgICBsb2cuZGVidWcoYHBrOiAke2lkfWApO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZXZhbHVhdGVUcmFuc2FjdGlvbihcbiAgICAgIE9wZXJhdGlvbktleXMuUkVBRCxcbiAgICAgIFtpZC50b1N0cmluZygpXSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIGNsYXp6Lm5hbWVcbiAgICApO1xuICAgIHJldHVybiB0aGlzLnNlcmlhbGl6ZXIuZGVzZXJpYWxpemUodGhpcy5kZWNvZGUocmVzdWx0KSk7XG4gIH1cblxuICB1cGRhdGVQcmVmaXg8TSBleHRlbmRzIE1vZGVsPihcbiAgICBjbGF6ejogQ29uc3RydWN0b3I8TT4sXG4gICAgaWQ6IFByaW1hcnlLZXlUeXBlLFxuICAgIG1vZGVsOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxDb250ZXh0PEZhYnJpY0ZsYWdzPj5cbiAgKSB7XG4gICAgY29uc3QgdGFibGVOYW1lID0gTW9kZWwudGFibGVOYW1lKGNsYXp6KTtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMudXBkYXRlUHJlZml4KTtcbiAgICBjb25zdCByZWNvcmQ6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgICByZWNvcmRbQ291Y2hEQktleXMuVEFCTEVdID0gdGFibGVOYW1lO1xuICAgIC8vIHJlY29yZFtDb3VjaERCS2V5cy5JRF0gPSB0aGlzLmdlbmVyYXRlSWQodGFibGVOYW1lLCBpZCk7XG4gICAgT2JqZWN0LmFzc2lnbihyZWNvcmQsIG1vZGVsKTtcbiAgICByZXR1cm4gW2NsYXp6LCBpZCwgcmVjb3JkLCAuLi5jdHhBcmdzXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVXBkYXRlcyBhIHNpbmdsZSByZWNvcmRcbiAgICogQHN1bW1hcnkgU3VibWl0cyBhIHRyYW5zYWN0aW9uIHRvIHVwZGF0ZSBhIHJlY29yZCBpbiB0aGUgRmFicmljIGxlZGdlclxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGFibGVOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHRhYmxlL2NvbGxlY3Rpb25cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudW1iZXJ9IGlkIC0gVGhlIHJlY29yZCBpZGVudGlmaWVyXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gbW9kZWwgLSBUaGUgdXBkYXRlZCByZWNvcmQgZGF0YVxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IHRyYW5zaWVudCAtIFRyYW5zaWVudCBkYXRhIGZvciB0aGUgdHJhbnNhY3Rpb25cbiAgICogQHJldHVybiB7UHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIHVwZGF0ZWQgcmVjb3JkXG4gICAqL1xuICBAZGVidWcoKVxuICBAZmluYWwoKVxuICBhc3luYyB1cGRhdGU8TSBleHRlbmRzIE1vZGVsPihcbiAgICBjbGF6ejogQ29uc3RydWN0b3I8TT4sXG4gICAgaWQ6IFByaW1hcnlLZXlUeXBlLFxuICAgIG1vZGVsOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgIHRyYW5zaWVudDogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9LFxuICAgIC4uLmFyZ3M6IENvbnRleHR1YWxBcmdzPENvbnRleHQ8RmFicmljRmxhZ3M+PlxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+IHtcbiAgICBjb25zdCBjdHhBcmdzID0gWy4uLihhcmdzIGFzIHVua25vd24gYXMgYW55W10pXTtcbiAgICBjb25zdCB7IGxvZyB9ID0gdGhpcy5sb2dDdHgoXG4gICAgICBjdHhBcmdzIGFzIENvbnRleHR1YWxBcmdzPENvbnRleHQ8RmFicmljRmxhZ3M+PixcbiAgICAgIHRoaXMudXBkYXRlQWxsXG4gICAgKTtcbiAgICBsb2cuaW5mbyhgQ0xJRU5UIFVQREFURSBjbGFzcyA6ICR7dHlwZW9mIGNsYXp6fWApO1xuICAgIGNvbnN0IHRhYmxlTmFtZSA9IE1vZGVsLnRhYmxlTmFtZShjbGF6eik7XG4gICAgbG9nLnZlcmJvc2UoYHVwZGF0aW5nIGVudHJ5IHRvICR7dGFibGVOYW1lfSB0YWJsZWApO1xuICAgIGxvZy5kZWJ1ZyhgcGs6ICR7aWR9YCk7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5zdWJtaXRUcmFuc2FjdGlvbihcbiAgICAgIE9wZXJhdGlvbktleXMuVVBEQVRFLFxuICAgICAgW3RoaXMuc2VyaWFsaXplci5zZXJpYWxpemUobW9kZWwsIGNsYXp6Lm5hbWUgfHwgY2xhenopXSwgLy8gVE9ETyBzaG91bGQgYmUgcmVjZXZpbmcgY2xhc3MgYnV0IGlzIHJlY2VpdmluZyBzdHJpbmdcbiAgICAgIHRyYW5zaWVudCxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIGNsYXp6Lm5hbWVcbiAgICApO1xuICAgIHJldHVybiB0aGlzLnNlcmlhbGl6ZXIuZGVzZXJpYWxpemUodGhpcy5kZWNvZGUocmVzdWx0KSk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIERlbGV0ZXMgYSBzaW5nbGUgcmVjb3JkXG4gICAqIEBzdW1tYXJ5IFN1Ym1pdHMgYSB0cmFuc2FjdGlvbiB0byBkZWxldGUgYSByZWNvcmQgZnJvbSB0aGUgRmFicmljIGxlZGdlclxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGFibGVOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHRhYmxlL2NvbGxlY3Rpb25cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudW1iZXJ9IGlkIC0gVGhlIHJlY29yZCBpZGVudGlmaWVyIHRvIGRlbGV0ZVxuICAgKiBAcmV0dXJuIHtQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgZGVsZXRlZCByZWNvcmRcbiAgICovXG4gIEBkZWJ1ZygpXG4gIEBmaW5hbCgpXG4gIG92ZXJyaWRlIGFzeW5jIGRlbGV0ZTxNIGV4dGVuZHMgTW9kZWw+KFxuICAgIGNsYXp6OiBDb25zdHJ1Y3RvcjxNPixcbiAgICBpZDogUHJpbWFyeUtleVR5cGUsXG4gICAgLi4uYXJnczogQ29udGV4dHVhbEFyZ3M8Q29udGV4dDxGYWJyaWNGbGFncz4+XG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj4ge1xuICAgIGNvbnN0IHsgbG9nIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLmRlbGV0ZSk7XG4gICAgY29uc3QgdGFibGVOYW1lID0gTW9kZWwudGFibGVOYW1lKGNsYXp6KTtcbiAgICBsb2cudmVyYm9zZShgZGVsZXRpbmcgZW50cnkgZnJvbSAke3RhYmxlTmFtZX0gdGFibGVgKTtcbiAgICBsb2cuZGVidWcoYHBrOiAke2lkfWApO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuc3VibWl0VHJhbnNhY3Rpb24oXG4gICAgICBPcGVyYXRpb25LZXlzLkRFTEVURSxcbiAgICAgIFtpZC50b1N0cmluZygpXSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIGNsYXp6Lm5hbWVcbiAgICApO1xuICAgIHJldHVybiB0aGlzLnNlcmlhbGl6ZXIuZGVzZXJpYWxpemUodGhpcy5kZWNvZGUocmVzdWx0KSk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEV4ZWN1dGVzIGEgcmF3IHF1ZXJ5IGFnYWluc3QgdGhlIEZhYnJpYyBsZWRnZXJcbiAgICogQHN1bW1hcnkgRXZhbHVhdGVzIGEgdHJhbnNhY3Rpb24gdG8gcGVyZm9ybSBhIHF1ZXJ5IHVzaW5nIE1hbmdvIFF1ZXJ5IHN5bnRheFxuICAgKiBAdGVtcGxhdGUgViAtIFRoZSByZXR1cm4gdHlwZVxuICAgKiBAcGFyYW0ge01hbmdvUXVlcnl9IHJhd0lucHV0IC0gVGhlIE1hbmdvIFF1ZXJ5IHRvIGV4ZWN1dGVcbiAgICogQHBhcmFtIHtib29sZWFufSBwcm9jZXNzIC0gV2hldGhlciB0byBwcm9jZXNzIHRoZSByZXN1bHRcbiAgICogQHJldHVybiB7UHJvbWlzZTxWPn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIHF1ZXJ5IHJlc3VsdFxuICAgKiBAbWVybWFpZFxuICAgKiBzZXF1ZW5jZURpYWdyYW1cbiAgICogICBwYXJ0aWNpcGFudCBDbGllbnRcbiAgICogICBwYXJ0aWNpcGFudCBGYWJyaWNBZGFwdGVyXG4gICAqICAgcGFydGljaXBhbnQgQ29udHJhY3RcbiAgICogICBwYXJ0aWNpcGFudCBDaGFpbmNvZGVcbiAgICpcbiAgICogICBDbGllbnQtPj5GYWJyaWNBZGFwdGVyOiByYXcocmF3SW5wdXQsIHByb2Nlc3MpXG4gICAqICAgRmFicmljQWRhcHRlci0+PkZhYnJpY0FkYXB0ZXI6IEpTT04uc3RyaW5naWZ5KHJhd0lucHV0KVxuICAgKiAgIEZhYnJpY0FkYXB0ZXItPj5GYWJyaWNBZGFwdGVyOiBldmFsdWF0ZVRyYW5zYWN0aW9uKFwicXVlcnlcIiwgW2lucHV0XSlcbiAgICogICBGYWJyaWNBZGFwdGVyLT4+Q29udHJhY3Q6IGV2YWx1YXRlKFwicXVlcnlcIiwgcHJvcG9zYWxPcHRpb25zKVxuICAgKiAgIENvbnRyYWN0LT4+Q2hhaW5jb2RlOiBpbnZva2VcbiAgICogICBDaGFpbmNvZGUtLT4+Q29udHJhY3Q6IHJlc3BvbnNlXG4gICAqICAgQ29udHJhY3QtLT4+RmFicmljQWRhcHRlcjogcmVzdWx0XG4gICAqICAgRmFicmljQWRhcHRlci0+PkZhYnJpY0FkYXB0ZXI6IEpTT04ucGFyc2UoZGVjb2RlKHJlc3VsdCkpXG4gICAqICAgRmFicmljQWRhcHRlci0+PkZhYnJpY0FkYXB0ZXI6IFByb2Nlc3MgcmVzdWx0IGJhc2VkIG9uIHR5cGVcbiAgICogICBGYWJyaWNBZGFwdGVyLS0+PkNsaWVudDogcHJvY2Vzc2VkIHJlc3VsdFxuICAgKi9cbiAgQGRlYnVnKClcbiAgYXN5bmMgcmF3PFYsIEQgZXh0ZW5kcyBib29sZWFuPihcbiAgICByYXdJbnB1dDogTWFuZ29RdWVyeSxcbiAgICBkb2NzT25seTogRCA9IHRydWUgYXMgRCxcbiAgICBjbGF6ejogTW9kZWxDb25zdHJ1Y3Rvcjxhbnk+LFxuICAgIC4uLmFyZ3M6IENvbnRleHR1YWxBcmdzPENvbnRleHQ8RmFicmljRmxhZ3M+PlxuICApOiBQcm9taXNlPFY+IHtcbiAgICBjb25zdCB7IGxvZyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5yYXcpO1xuICAgIGNvbnN0IHRhYmxlTmFtZSA9IGNsYXp6Lm5hbWU7XG4gICAgbG9nLmluZm8oYFBlcmZvcm1pbmcgcmF3IHN0YXRlbWVudCBvbiB0YWJsZSAke01vZGVsLnRhYmxlTmFtZShjbGF6eil9YCk7XG4gICAgbGV0IHRyYW5zYWN0aW9uUmVzdWx0OiBhbnk7XG4gICAgdHJ5IHtcbiAgICAgIHRyYW5zYWN0aW9uUmVzdWx0ID0gYXdhaXQgdGhpcy5ldmFsdWF0ZVRyYW5zYWN0aW9uKFxuICAgICAgICBcInJhd1wiLFxuICAgICAgICBbSlNPTi5zdHJpbmdpZnkocmF3SW5wdXQpLCBkb2NzT25seV0sXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICB0YWJsZU5hbWVcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUgYXMgRXJyb3IpO1xuICAgIH1cbiAgICBsZXQgcmVzdWx0OiBhbnk7XG4gICAgdHJ5IHtcbiAgICAgIHJlc3VsdCA9IEpTT04ucGFyc2UodGhpcy5kZWNvZGUodHJhbnNhY3Rpb25SZXN1bHQpKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IG5ldyBTZXJpYWxpemF0aW9uRXJyb3IoYEZhaWxlZCB0byBwcm9jZXNzIHJlc3VsdDogJHtlfWApO1xuICAgIH1cblxuICAgIGNvbnN0IHBhcnNlUmVjb3JkID0gKHJlY29yZDogUmVjb3JkPGFueSwgYW55PikgPT4ge1xuICAgICAgaWYgKE1vZGVsLmlzTW9kZWwocmVjb3JkKSkgcmV0dXJuIE1vZGVsLmJ1aWxkKHJlY29yZCk7XG4gICAgICByZXR1cm4gcmVjb3JkO1xuICAgIH07XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShyZXN1bHQpKSB7XG4gICAgICBpZiAoIXJlc3VsdC5sZW5ndGgpIHJldHVybiByZXN1bHQgYXMgVjtcbiAgICAgIGNvbnN0IGVsID0gcmVzdWx0WzBdO1xuICAgICAgaWYgKE1vZGVsLmlzTW9kZWwoZWwpKVxuICAgICAgICAvLyBpZiB0aGUgZmlyc3Qgb25lIGlzIGEgbW9kZWwsIGFsbCBhcmUgbW9kZWxzXG4gICAgICAgIHJldHVybiByZXN1bHQubWFwKChlbCkgPT4gTW9kZWwuYnVpbGQoZWwpKSBhcyBWO1xuICAgICAgcmV0dXJuIHJlc3VsdCBhcyBWO1xuICAgIH1cblxuICAgIHJldHVybiBwYXJzZVJlY29yZChyZXN1bHQgYXMgYW55KSBhcyBWO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBHZXRzIG9yIGNyZWF0ZXMgYSBnUlBDIGNsaWVudCBmb3IgdGhlIEZhYnJpYyBwZWVyXG4gICAqIEBzdW1tYXJ5IFJldHVybnMgYSBjYWNoZWQgY2xpZW50IG9yIGNyZWF0ZXMgYSBuZXcgb25lIGlmIG5vbmUgZXhpc3RzXG4gICAqIEByZXR1cm4ge1Byb21pc2U8Q2xpZW50Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGdSUEMgY2xpZW50XG4gICAqL1xuICBvdmVycmlkZSBnZXRDbGllbnQoKTogQ2xpZW50IHtcbiAgICBpZiAoIXRoaXMuX2NsaWVudClcbiAgICAgIHRoaXMuX2NsaWVudCA9IEZhYnJpY0NsaWVudEFkYXB0ZXIuZ2V0Q2xpZW50KHRoaXMuY29uZmlnKTtcbiAgICByZXR1cm4gdGhpcy5fY2xpZW50O1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBHZXRzIGEgR2F0ZXdheSBpbnN0YW5jZSBmb3IgdGhlIEZhYnJpYyBuZXR3b3JrXG4gICAqIEBzdW1tYXJ5IENyZWF0ZXMgYSBuZXcgR2F0ZXdheSBpbnN0YW5jZSB1c2luZyB0aGUgY3VycmVudCBjbGllbnRcbiAgICogQHJldHVybiB7UHJvbWlzZTxHYXRld2F5Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIEdhdGV3YXkgaW5zdGFuY2VcbiAgICovXG4gIHByb3RlY3RlZCBhc3luYyBHYXRld2F5KCk6IFByb21pc2U8R2F0ZXdheT4ge1xuICAgIHJldHVybiBGYWJyaWNDbGllbnRBZGFwdGVyLmdldEdhdGV3YXkodGhpcy5jb25maWcsIHRoaXMuY2xpZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29udHJhY3ROYW1lKGNsYXNzTmFtZT86IHN0cmluZykge1xuICAgIGlmICghY2xhc3NOYW1lKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiBgJHtjbGFzc05hbWV9Q29udHJhY3RgO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBHZXRzIGEgQ29udHJhY3QgaW5zdGFuY2UgZm9yIHRoZSBGYWJyaWMgY2hhaW5jb2RlXG4gICAqIEBzdW1tYXJ5IENyZWF0ZXMgYSBuZXcgQ29udHJhY3QgaW5zdGFuY2UgdXNpbmcgdGhlIGN1cnJlbnQgR2F0ZXdheVxuICAgKiBAcmV0dXJuIHtQcm9taXNlPENvbnRyYWt0Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIENvbnRyYWN0IGluc3RhbmNlXG4gICAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgQ29udHJhY3QoY29udHJhY3ROYW1lPzogc3RyaW5nKTogUHJvbWlzZTxDb250cmFrdD4ge1xuICAgIHJldHVybiBGYWJyaWNDbGllbnRBZGFwdGVyLmdldENvbnRyYWN0KFxuICAgICAgYXdhaXQgdGhpcy5HYXRld2F5KCksXG4gICAgICB0aGlzLmNvbmZpZyxcbiAgICAgIGNvbnRyYWN0TmFtZVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEV4ZWN1dGVzIGEgdHJhbnNhY3Rpb24gb24gdGhlIEZhYnJpYyBuZXR3b3JrXG4gICAqIEBzdW1tYXJ5IFN1Ym1pdHMgb3IgZXZhbHVhdGVzIGEgdHJhbnNhY3Rpb24gb24gdGhlIEZhYnJpYyBjaGFpbmNvZGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFwaSAtIFRoZSBjaGFpbmNvZGUgZnVuY3Rpb24gdG8gY2FsbFxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IHN1Ym1pdCAtIFdoZXRoZXIgdG8gc3VibWl0ICh0cnVlKSBvciBldmFsdWF0ZSAoZmFsc2UpIHRoZSB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0ge2FueVtdfSBbYXJnc10gLSBBcmd1bWVudHMgdG8gcGFzcyB0byB0aGUgY2hhaW5jb2RlIGZ1bmN0aW9uXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn0gW3RyYW5zaWVudERhdGFdIC0gVHJhbnNpZW50IGRhdGEgZm9yIHRoZSB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0ge0FycmF5PHN0cmluZz59IFtlbmRvcnNpbmdPcmdhbml6YXRpb25zXSAtIE9yZ2FuaXphdGlvbnMgdGhhdCBtdXN0IGVuZG9yc2UgdGhlIHRyYW5zYWN0aW9uXG4gICAqIEByZXR1cm4ge1Byb21pc2U8VWludDhBcnJheT59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSB0cmFuc2FjdGlvbiByZXN1bHRcbiAgICogQG1lcm1haWRcbiAgICogc2VxdWVuY2VEaWFncmFtXG4gICAqICAgcGFydGljaXBhbnQgRmFicmljQWRhcHRlclxuICAgKiAgIHBhcnRpY2lwYW50IEdhdGV3YXlcbiAgICogICBwYXJ0aWNpcGFudCBDb250cmFjdFxuICAgKiAgIHBhcnRpY2lwYW50IENoYWluY29kZVxuICAgKlxuICAgKiAgIEZhYnJpY0FkYXB0ZXItPj5HYXRld2F5OiBjb25uZWN0KClcbiAgICogICBGYWJyaWNBZGFwdGVyLT4+Q29udHJhY3Q6IGdldENvbnRyYWN0KClcbiAgICogICBhbHQgc3VibWl0IHRyYW5zYWN0aW9uXG4gICAqICAgICBGYWJyaWNBZGFwdGVyLT4+Q29udHJhY3Q6IHN1Ym1pdChhcGksIHByb3Bvc2FsT3B0aW9ucylcbiAgICogICBlbHNlIGV2YWx1YXRlIHRyYW5zYWN0aW9uXG4gICAqICAgICBGYWJyaWNBZGFwdGVyLT4+Q29udHJhY3Q6IGV2YWx1YXRlKGFwaSwgcHJvcG9zYWxPcHRpb25zKVxuICAgKiAgIGVuZFxuICAgKiAgIENvbnRyYWN0LT4+Q2hhaW5jb2RlOiBpbnZva2VcbiAgICogICBDaGFpbmNvZGUtLT4+Q29udHJhY3Q6IHJlc3BvbnNlXG4gICAqICAgQ29udHJhY3QtLT4+RmFicmljQWRhcHRlcjogcmVzdWx0XG4gICAqICAgRmFicmljQWRhcHRlci0+PkdhdGV3YXk6IGNsb3NlKClcbiAgICovXG4gIHByb3RlY3RlZCBhc3luYyB0cmFuc2FjdGlvbihcbiAgICBhcGk6IHN0cmluZyxcbiAgICBzdWJtaXQgPSB0cnVlLFxuICAgIGFyZ3M/OiBhbnlbXSxcbiAgICB0cmFuc2llbnREYXRhPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPixcbiAgICBlbmRvcnNpbmdPcmdhbml6YXRpb25zPzogQXJyYXk8c3RyaW5nPixcbiAgICBjbGFzc05hbWU/OiBzdHJpbmdcbiAgKTogUHJvbWlzZTxVaW50OEFycmF5PiB7XG4gICAgY29uc3QgbG9nID0gdGhpcy5sb2cuZm9yKHRoaXMudHJhbnNhY3Rpb24pO1xuICAgIGNvbnN0IGdhdGV3YXkgPSBhd2FpdCB0aGlzLkdhdGV3YXkoKTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgY29udHJhY3QgPSBhd2FpdCB0aGlzLkNvbnRyYWN0KHRoaXMuZ2V0Q29udHJhY3ROYW1lKGNsYXNzTmFtZSkpO1xuICAgICAgbG9nLnZlcmJvc2UoXG4gICAgICAgIGAke3N1Ym1pdCA/IFwiU3VibWl0XCIgOiBcIkV2YWx1YXRlXCJ9dGluZyB0cmFuc2FjdGlvbiAke3RoaXMuZ2V0Q29udHJhY3ROYW1lKGNsYXNzTmFtZSkgfHwgdGhpcy5jb25maWcuY29udHJhY3ROYW1lfS4ke2FwaX1gXG4gICAgICApO1xuICAgICAgbG9nLmRlYnVnKGBhcmdzOiAke2FyZ3M/Lm1hcCgoYSkgPT4gYS50b1N0cmluZygpKS5qb2luKFwiXFxuXCIpIHx8IFwibm9uZVwifWApO1xuICAgICAgY29uc3QgbWV0aG9kID0gc3VibWl0ID8gY29udHJhY3Quc3VibWl0IDogY29udHJhY3QuZXZhbHVhdGU7XG5cbiAgICAgIGVuZG9yc2luZ09yZ2FuaXphdGlvbnMgPSBlbmRvcnNpbmdPcmdhbml6YXRpb25zPy5sZW5ndGhcbiAgICAgICAgPyBlbmRvcnNpbmdPcmdhbml6YXRpb25zXG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgY29uc3QgcHJvcG9zYWxPcHRpb25zOiBQcm9wb3NhbE9wdGlvbnMgPSB7XG4gICAgICAgIGFyZ3VtZW50czogYXJncyB8fCBbXSxcbiAgICAgICAgdHJhbnNpZW50RGF0YTogdHJhbnNpZW50RGF0YSxcbiAgICAgICAgLy8gLi4uKGVuZG9yc2luZ09yZ2FuaXphdGlvbnMgJiYgeyBlbmRvcnNpbmdPcmdhbml6YXRpb25zIH0pIC8vIG1zcElkIGxpc3RcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBhd2FpdCBtZXRob2QuY2FsbChjb250cmFjdCwgYXBpLCBwcm9wb3NhbE9wdGlvbnMpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgaWYgKGUuY29kZSA9PT0gMTApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke2UuZGV0YWlsc1swXS5tZXNzYWdlfWApO1xuICAgICAgfVxuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmxvZy5kZWJ1ZyhgQ2xvc2luZyAke3RoaXMuY29uZmlnLm1zcElkfSBnYXRld2F5IGNvbm5lY3Rpb25gKTtcbiAgICAgIGdhdGV3YXkuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFBhcnNlcyBhbiBlcnJvciBpbnRvIGEgQmFzZUVycm9yXG4gICAqIEBzdW1tYXJ5IENvbnZlcnRzIGFueSBlcnJvciBpbnRvIGEgc3RhbmRhcmRpemVkIEJhc2VFcnJvclxuICAgKiBAcGFyYW0ge0Vycm9yIHwgc3RyaW5nfSBlcnIgLSBUaGUgZXJyb3IgdG8gcGFyc2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtyZWFzb25dIC0gT3B0aW9uYWwgcmVhc29uIGZvciB0aGUgZXJyb3JcbiAgICogQHJldHVybiB7QmFzZUVycm9yfSBUaGUgcGFyc2VkIGVycm9yXG4gICAqL1xuICBvdmVycmlkZSBwYXJzZUVycm9yPEUgZXh0ZW5kcyBCYXNlRXJyb3I+KGVycjogRXJyb3IgfCBzdHJpbmcpOiBFIHtcbiAgICByZXR1cm4gRmFicmljQ2xpZW50QWRhcHRlci5wYXJzZUVycm9yPEU+KGVycik7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFN1Ym1pdHMgYSB0cmFuc2FjdGlvbiB0byB0aGUgRmFicmljIG5ldHdvcmtcbiAgICogQHN1bW1hcnkgRXhlY3V0ZXMgYSB0cmFuc2FjdGlvbiB0aGF0IG1vZGlmaWVzIHRoZSBsZWRnZXIgc3RhdGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFwaSAtIFRoZSBjaGFpbmNvZGUgZnVuY3Rpb24gdG8gY2FsbFxuICAgKiBAcGFyYW0ge2FueVtdfSBbYXJnc10gLSBBcmd1bWVudHMgdG8gcGFzcyB0byB0aGUgY2hhaW5jb2RlIGZ1bmN0aW9uXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn0gW3RyYW5zaWVudERhdGFdIC0gVHJhbnNpZW50IGRhdGEgZm9yIHRoZSB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0ge0FycmF5PHN0cmluZz59IFtlbmRvcnNpbmdPcmdhbml6YXRpb25zXSAtIE9yZ2FuaXphdGlvbnMgdGhhdCBtdXN0IGVuZG9yc2UgdGhlIHRyYW5zYWN0aW9uXG4gICAqIEByZXR1cm4ge1Byb21pc2U8VWludDhBcnJheT59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSB0cmFuc2FjdGlvbiByZXN1bHRcbiAgICovXG4gIGFzeW5jIHN1Ym1pdFRyYW5zYWN0aW9uKFxuICAgIGFwaTogc3RyaW5nLFxuICAgIGFyZ3M/OiBhbnlbXSxcbiAgICB0cmFuc2llbnREYXRhPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPixcbiAgICBlbmRvcnNpbmdPcmdhbml6YXRpb25zPzogQXJyYXk8c3RyaW5nPixcbiAgICBjbGFzc05hbWU/OiBzdHJpbmdcbiAgKTogUHJvbWlzZTxVaW50OEFycmF5PiB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb24oXG4gICAgICBhcGksXG4gICAgICB0cnVlLFxuICAgICAgYXJncyxcbiAgICAgIHRyYW5zaWVudERhdGEsXG4gICAgICBlbmRvcnNpbmdPcmdhbml6YXRpb25zLFxuICAgICAgY2xhc3NOYW1lXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRXZhbHVhdGVzIGEgdHJhbnNhY3Rpb24gb24gdGhlIEZhYnJpYyBuZXR3b3JrXG4gICAqIEBzdW1tYXJ5IEV4ZWN1dGVzIGEgdHJhbnNhY3Rpb24gdGhhdCBkb2VzIG5vdCBtb2RpZnkgdGhlIGxlZGdlciBzdGF0ZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXBpIC0gVGhlIGNoYWluY29kZSBmdW5jdGlvbiB0byBjYWxsXG4gICAqIEBwYXJhbSB7YW55W119IFthcmdzXSAtIEFyZ3VtZW50cyB0byBwYXNzIHRvIHRoZSBjaGFpbmNvZGUgZnVuY3Rpb25cbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fSBbdHJhbnNpZW50RGF0YV0gLSBUcmFuc2llbnQgZGF0YSBmb3IgdGhlIHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSB7QXJyYXk8c3RyaW5nPn0gW2VuZG9yc2luZ09yZ2FuaXphdGlvbnNdIC0gT3JnYW5pemF0aW9ucyB0aGF0IG11c3QgZW5kb3JzZSB0aGUgdHJhbnNhY3Rpb25cbiAgICogQHJldHVybiB7UHJvbWlzZTxVaW50OEFycmF5Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIHRyYW5zYWN0aW9uIHJlc3VsdFxuICAgKi9cbiAgYXN5bmMgZXZhbHVhdGVUcmFuc2FjdGlvbihcbiAgICBhcGk6IHN0cmluZyxcbiAgICBhcmdzPzogYW55W10sXG4gICAgdHJhbnNpZW50RGF0YT86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4gICAgZW5kb3JzaW5nT3JnYW5pemF0aW9ucz86IEFycmF5PHN0cmluZz4sXG4gICAgY2xhc3NOYW1lPzogc3RyaW5nXG4gICk6IFByb21pc2U8VWludDhBcnJheT4ge1xuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uKFxuICAgICAgYXBpLFxuICAgICAgZmFsc2UsXG4gICAgICBhcmdzLFxuICAgICAgdHJhbnNpZW50RGF0YSxcbiAgICAgIGVuZG9yc2luZ09yZ2FuaXphdGlvbnMsXG4gICAgICBjbGFzc05hbWVcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDbG9zZXMgdGhlIGNvbm5lY3Rpb24gdG8gdGhlIEZhYnJpYyBuZXR3b3JrXG4gICAqIEBzdW1tYXJ5IENsb3NlcyB0aGUgZ1JQQyBjbGllbnQgaWYgaXQgZXhpc3RzXG4gICAqIEByZXR1cm4ge1Byb21pc2U8dm9pZD59IFByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBjbGllbnQgaXMgY2xvc2VkXG4gICAqL1xuICBhc3luYyBjbG9zZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5jbGllbnQpIHtcbiAgICAgIHRoaXMubG9nLnZlcmJvc2UoYENsb3NpbmcgJHt0aGlzLmNvbmZpZy5tc3BJZH0gZ2F0ZXdheSBjbGllbnRgKTtcbiAgICAgIHRoaXMuY2xpZW50LmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBHZXRzIGEgQ29udHJhY3QgaW5zdGFuY2UgZnJvbSBhIEdhdGV3YXlcbiAgICogQHN1bW1hcnkgUmV0cmlldmVzIGEgY2hhaW5jb2RlIGNvbnRyYWN0IGZyb20gdGhlIHNwZWNpZmllZCBuZXR3b3JrXG4gICAqIEBwYXJhbSB7R2F0ZXdheX0gZ2F0ZXdheSAtIFRoZSBHYXRld2F5IGluc3RhbmNlXG4gICAqIEBwYXJhbSB7UGVlckNvbmZpZ30gY29uZmlnIC0gVGhlIHBlZXIgY29uZmlndXJhdGlvblxuICAgKiBAcmV0dXJuIHtDb250cmFrdH0gVGhlIENvbnRyYWN0IGluc3RhbmNlXG4gICAqL1xuICBzdGF0aWMgZ2V0Q29udHJhY3QoXG4gICAgZ2F0ZXdheTogR2F0ZXdheSxcbiAgICBjb25maWc6IFBlZXJDb25maWcsXG4gICAgY29udHJhY3ROYW1lPzogc3RyaW5nXG4gICk6IENvbnRyYWt0IHtcbiAgICBjb25zdCBsb2cgPSB0aGlzLmxvZy5mb3IodGhpcy5nZXRDb250cmFjdCk7XG4gICAgY29uc3QgbmV0d29yayA9IHRoaXMuZ2V0TmV0d29yayhnYXRld2F5LCBjb25maWcuY2hhbm5lbCk7XG4gICAgbGV0IGNvbnRyYWN0OiBDb250cmFrdDtcbiAgICB0cnkge1xuICAgICAgbG9nLmRlYnVnKFxuICAgICAgICBgUmV0cmlldmluZyBjaGFpbmNvZGUgJHtjb25maWcuY2hhaW5jb2RlTmFtZX0gY29udHJhY3QgJHtjb250cmFjdE5hbWUgfHwgY29uZmlnLmNvbnRyYWN0TmFtZX0gZnJvbSBuZXR3b3JrICR7Y29uZmlnLmNoYW5uZWx9YFxuICAgICAgKTtcbiAgICAgIGNvbnRyYWN0TmFtZSA9IGNvbnRyYWN0TmFtZSA/IGNvbnRyYWN0TmFtZSA6IGNvbmZpZy5jb250cmFjdE5hbWU7XG4gICAgICBjb250cmFjdCA9IG5ldHdvcmsuZ2V0Q29udHJhY3QoY29uZmlnLmNoYWluY29kZU5hbWUsIGNvbnRyYWN0TmFtZSk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZSk7XG4gICAgfVxuICAgIHJldHVybiBjb250cmFjdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gR2V0cyBhIE5ldHdvcmsgaW5zdGFuY2UgZnJvbSBhIEdhdGV3YXlcbiAgICogQHN1bW1hcnkgQ29ubmVjdHMgdG8gYSBzcGVjaWZpYyBjaGFubmVsIG9uIHRoZSBGYWJyaWMgbmV0d29ya1xuICAgKiBAcGFyYW0ge0dhdGV3YXl9IGdhdGV3YXkgLSBUaGUgR2F0ZXdheSBpbnN0YW5jZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gY2hhbm5lbE5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgY2hhbm5lbCB0byBjb25uZWN0IHRvXG4gICAqIEByZXR1cm4ge05ldHdvcmt9IFRoZSBOZXR3b3JrIGluc3RhbmNlXG4gICAqL1xuICBzdGF0aWMgZ2V0TmV0d29yayhnYXRld2F5OiBHYXRld2F5LCBjaGFubmVsTmFtZTogc3RyaW5nKTogTmV0d29yayB7XG4gICAgY29uc3QgbG9nID0gTG9nZ2luZy5mb3IodGhpcy5nZXROZXR3b3JrKTtcbiAgICBsZXQgbmV0d29yazogTmV0d29yaztcbiAgICB0cnkge1xuICAgICAgbG9nLmRlYnVnKGBDb25uZWN0aW5nIHRvIGNoYW5uZWwgJHtjaGFubmVsTmFtZX1gKTtcbiAgICAgIG5ldHdvcmsgPSBnYXRld2F5LmdldE5ldHdvcmsoY2hhbm5lbE5hbWUpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUpO1xuICAgIH1cblxuICAgIHJldHVybiBuZXR3b3JrO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBHZXRzIGEgR2F0ZXdheSBpbnN0YW5jZSBmb3IgY29ubmVjdGluZyB0byB0aGUgRmFicmljIG5ldHdvcmtcbiAgICogQHN1bW1hcnkgQ3JlYXRlcyBhIEdhdGV3YXkgdXNpbmcgdGhlIHByb3ZpZGVkIGNvbmZpZ3VyYXRpb24gYW5kIGNsaWVudFxuICAgKiBAcGFyYW0ge1BlZXJDb25maWd9IGNvbmZpZyAtIFRoZSBwZWVyIGNvbmZpZ3VyYXRpb25cbiAgICogQHBhcmFtIHtDbGllbnR9IFtjbGllbnRdIC0gT3B0aW9uYWwgZ1JQQyBjbGllbnQsIHdpbGwgYmUgY3JlYXRlZCBpZiBub3QgcHJvdmlkZWRcbiAgICogQHJldHVybiB7UHJvbWlzZTxHYXRld2F5Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIEdhdGV3YXkgaW5zdGFuY2VcbiAgICovXG4gIHN0YXRpYyBhc3luYyBnZXRHYXRld2F5KGNvbmZpZzogUGVlckNvbmZpZywgY2xpZW50PzogQ2xpZW50KSB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmdldENvbm5lY3Rpb24oXG4gICAgICBjbGllbnQgfHwgKGF3YWl0IHRoaXMuZ2V0Q2xpZW50KGNvbmZpZykpLFxuICAgICAgY29uZmlnXG4gICAgKSkgYXMgR2F0ZXdheTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBhIGdSUEMgY2xpZW50IGZvciBjb25uZWN0aW5nIHRvIGEgRmFicmljIHBlZXJcbiAgICogQHN1bW1hcnkgSW5pdGlhbGl6ZXMgYSBjbGllbnQgd2l0aCBUTFMgY3JlZGVudGlhbHMgZm9yIHNlY3VyZSBjb21tdW5pY2F0aW9uXG4gICAqIEBwYXJhbSB7UGVlckNvbmZpZ30gY29uZmlnIC0gVGhlIHBlZXIgY29uZmlndXJhdGlvblxuICAgKiBAcmV0dXJuIHtDbGllbnR9IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBnUlBDIGNsaWVudFxuICAgKi9cbiAgc3RhdGljIGdldENsaWVudChjb25maWc6IFBlZXJDb25maWcpOiBDbGllbnQge1xuICAgIGNvbnN0IGxvZyA9IHRoaXMubG9nLmZvcih0aGlzLmdldENsaWVudCk7XG4gICAgbG9nLmRlYnVnKGBnZW5lcmF0aW5nIFRMUyBjcmVkZW50aWFscyBmb3IgbXNwICR7Y29uZmlnLm1zcElkfWApO1xuICAgIGNvbnN0IHRsc0NyZWRlbnRpYWxzID0gZ3JwYy5jcmVkZW50aWFscy5jcmVhdGVTc2woXG4gICAgICB0eXBlb2YgY29uZmlnLnRsc0NlcnQgPT09IFwic3RyaW5nXCJcbiAgICAgICAgPyBCdWZmZXIuZnJvbShjb25maWcudGxzQ2VydClcbiAgICAgICAgOiBjb25maWcudGxzQ2VydFxuICAgICk7XG4gICAgbG9nLmRlYnVnKGBnZW5lcmF0aW5nIEdhdGV3YXkgQ2xpZW50IGZvciB1cmwgJHtjb25maWcucGVlckVuZHBvaW50fWApO1xuICAgIHJldHVybiBuZXcgQ2xpZW50KGNvbmZpZy5wZWVyRW5kcG9pbnQsIHRsc0NyZWRlbnRpYWxzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRXN0YWJsaXNoZXMgYSBjb25uZWN0aW9uIHRvIHRoZSBGYWJyaWMgbmV0d29ya1xuICAgKiBAc3VtbWFyeSBDcmVhdGVzIGEgR2F0ZXdheSBjb25uZWN0aW9uIHdpdGggaWRlbnRpdHkgYW5kIHNpZ25lclxuICAgKiBAcGFyYW0ge0NsaWVudH0gY2xpZW50IC0gVGhlIGdSUEMgY2xpZW50XG4gICAqIEBwYXJhbSB7UGVlckNvbmZpZ30gY29uZmlnIC0gVGhlIHBlZXIgY29uZmlndXJhdGlvblxuICAgKiBAcmV0dXJuIHtQcm9taXNlPEdhdGV3YXk+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgY29ubmVjdGVkIEdhdGV3YXlcbiAgICogQG1lcm1haWRcbiAgICogc2VxdWVuY2VEaWFncmFtXG4gICAqICAgcGFydGljaXBhbnQgQ2FsbGVyXG4gICAqICAgcGFydGljaXBhbnQgRmFicmljQWRhcHRlclxuICAgKiAgIHBhcnRpY2lwYW50IElkZW50aXR5XG4gICAqICAgcGFydGljaXBhbnQgU2lnbmVyXG4gICAqICAgcGFydGljaXBhbnQgR2F0ZXdheVxuICAgKlxuICAgKiAgIENhbGxlci0+PkZhYnJpY0FkYXB0ZXI6IGdldENvbm5lY3Rpb24oY2xpZW50LCBjb25maWcpXG4gICAqICAgRmFicmljQWRhcHRlci0+PklkZW50aXR5OiBnZXRJZGVudGl0eShtc3BJZCwgY2VydERpcmVjdG9yeVBhdGgpXG4gICAqICAgSWRlbnRpdHktLT4+RmFicmljQWRhcHRlcjogaWRlbnRpdHlcbiAgICogICBGYWJyaWNBZGFwdGVyLT4+U2lnbmVyOiBnZXRTaWduZXIoa2V5RGlyZWN0b3J5UGF0aClcbiAgICogICBTaWduZXItLT4+RmFicmljQWRhcHRlcjogc2lnbmVyXG4gICAqICAgRmFicmljQWRhcHRlci0+PkZhYnJpY0FkYXB0ZXI6IENyZWF0ZSBDb25uZWN0T3B0aW9uc1xuICAgKiAgIEZhYnJpY0FkYXB0ZXItPj5HYXRld2F5OiBjb25uZWN0KG9wdGlvbnMpXG4gICAqICAgR2F0ZXdheS0tPj5GYWJyaWNBZGFwdGVyOiBnYXRld2F5XG4gICAqICAgRmFicmljQWRhcHRlci0tPj5DYWxsZXI6IGdhdGV3YXlcbiAgICovXG4gIHN0YXRpYyBhc3luYyBnZXRDb25uZWN0aW9uKGNsaWVudDogQ2xpZW50LCBjb25maWc6IFBlZXJDb25maWcpIHtcbiAgICBjb25zdCBsb2cgPSBMb2dnaW5nLmZvcih0aGlzLmdldENvbm5lY3Rpb24pO1xuICAgIGxvZy5kZWJ1ZyhcbiAgICAgIGBSZXRyaWV2aW5nIFBlZXIgSWRlbnRpdHkgZm9yICR7Y29uZmlnLm1zcElkfSB1bmRlciAke2NvbmZpZy5jZXJ0Q2VydE9yRGlyZWN0b3J5UGF0aH1gXG4gICAgKTtcbiAgICBjb25zdCBpZGVudGl0eSA9IGF3YWl0IGdldElkZW50aXR5KFxuICAgICAgY29uZmlnLm1zcElkLFxuICAgICAgY29uZmlnLmNlcnRDZXJ0T3JEaXJlY3RvcnlQYXRoIGFzIGFueVxuICAgICk7XG4gICAgbG9nLmRlYnVnKGBSZXRyaWV2aW5nIHNpZ25lciBrZXkgZnJvbSAke2NvbmZpZy5rZXlDZXJ0T3JEaXJlY3RvcnlQYXRofWApO1xuXG4gICAgbGV0IHNpZ25lcjogU2lnbmVyLFxuICAgICAgY2xvc2UgPSAoKSA9PiB7fTtcbiAgICBpZiAoIWNvbmZpZy5oc20pIHtcbiAgICAgIHNpZ25lciA9IGF3YWl0IGdldFNpZ25lcihjb25maWcua2V5Q2VydE9yRGlyZWN0b3J5UGF0aCBhcyBhbnkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBoc20gPSBuZXcgSFNNU2lnbmVyRmFjdG9yeUN1c3RvbShjb25maWcuaHNtLmxpYnJhcnkpO1xuICAgICAgY29uc3QgaWRlbnRpZmllciA9IGhzbS5nZXRTS0lGcm9tQ2VydGlmaWNhdGVQYXRoKFxuICAgICAgICBjb25maWcuY2VydENlcnRPckRpcmVjdG9yeVBhdGggYXMgYW55XG4gICAgICApO1xuICAgICAgY29uc3QgcGtjczExU2lnbmVyID0gaHNtLm5ld1NpZ25lcih7XG4gICAgICAgIGxhYmVsOiBjb25maWcuaHNtLnRva2VuTGFiZWwgYXMgc3RyaW5nLFxuICAgICAgICBwaW46IFN0cmluZyhjb25maWcuaHNtLnBpbikgYXMgc3RyaW5nLFxuICAgICAgICBpZGVudGlmaWVyOiBpZGVudGlmaWVyLFxuICAgICAgICAvLyB1c2VyVHlwZTogMSAvKkNLVV9VU0VSICovLFxuICAgICAgfSk7XG4gICAgICBzaWduZXIgPSBwa2NzMTFTaWduZXIuc2lnbmVyO1xuXG4gICAgICBjbG9zZSA9IHBrY3MxMVNpZ25lci5jbG9zZTtcbiAgICB9XG5cbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgY2xpZW50LFxuICAgICAgaWRlbnRpdHk6IGlkZW50aXR5LFxuICAgICAgc2lnbmVyOiBzaWduZXIsXG4gICAgICAvLyBEZWZhdWx0IHRpbWVvdXRzIGZvciBkaWZmZXJlbnQgZ1JQQyBjYWxsc1xuICAgICAgZXZhbHVhdGVPcHRpb25zOiAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7IGRlYWRsaW5lOiBEYXRlLm5vdygpICsgNTAwMCB9OyAvLyA1IHNlY29uZHNcbiAgICAgIH0sXG4gICAgICBlbmRvcnNlT3B0aW9uczogKCkgPT4ge1xuICAgICAgICByZXR1cm4geyBkZWFkbGluZTogRGF0ZS5ub3coKSArIDE1MDAwIH07IC8vIDE1IHNlY29uZHNcbiAgICAgIH0sXG4gICAgICBzdWJtaXRPcHRpb25zOiAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7IGRlYWRsaW5lOiBEYXRlLm5vdygpICsgNTAwMCB9OyAvLyA1IHNlY29uZHNcbiAgICAgIH0sXG4gICAgICBjb21taXRTdGF0dXNPcHRpb25zOiAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7IGRlYWRsaW5lOiBEYXRlLm5vdygpICsgNjAwMDAgfTsgLy8gMSBtaW51dGVcbiAgICAgIH0sXG4gICAgfSBhcyBDb25uZWN0T3B0aW9ucztcblxuICAgIGxvZy5kZWJ1ZyhgQ29ubmVjdGluZyB0byAke2NvbmZpZy5tc3BJZH1gKTtcbiAgICBjb25zdCBnYXRld2F5ID0gY29ubmVjdChvcHRpb25zKTtcblxuICAgIC8vIFRPRE86IHJlcGxhY2U/XG4gICAgaWYgKGNvbmZpZy5oc20pIHtcbiAgICAgIGdhdGV3YXkuY2xvc2UgPSBuZXcgUHJveHkoZ2F0ZXdheS5jbG9zZSwge1xuICAgICAgICBhcHBseSh0YXJnZXQ6ICgpID0+IHZvaWQsIHRoaXNBcmc6IGFueSwgYXJnQXJyYXk6IGFueVtdKTogYW55IHtcbiAgICAgICAgICBSZWZsZWN0LmFwcGx5KHRhcmdldCwgdGhpc0FyZywgYXJnQXJyYXkpO1xuICAgICAgICAgIGNsb3NlKCk7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZ2F0ZXdheTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBhIG5ldyBEaXNwYXRjaCBpbnN0YW5jZSBmb3IgdGhlIEZhYnJpYyBjbGllbnQuXG4gICAqIEBzdW1tYXJ5IFRoaXMgZnVuY3Rpb24gaXMgcmVzcG9uc2libGUgZm9yIGNyZWF0aW5nIGEgbmV3IEZhYnJpY0NsaWVudERpc3BhdGNoIGluc3RhbmNlIHRoYXQgY2FuIGJlIHVzZWQgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgRmFicmljIG5ldHdvcmsuXG4gICAqIEByZXR1cm5zIHtEaXNwYXRjaH0gQSBuZXcgRGlzcGF0Y2ggaW5zdGFuY2UgY29uZmlndXJlZCBmb3IgdGhlIEZhYnJpYyBjbGllbnQuXG4gICAqIEByZW1hcmtzIFRoZSBEaXNwYXRjaCBpbnN0YW5jZSBpcyB1c2VkIHRvIGVuY2Fwc3VsYXRlIHRoZSBsb2dpYyBmb3IgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgRmFicmljIG5ldHdvcmssIHN1Y2ggYXMgc3VibWl0dGluZyB0cmFuc2FjdGlvbnMgb3IgcXVlcnlpbmcgZGF0YS5cbiAgICogQGV4YW1wbGVcbiAgICogY29uc3QgZmFicmljRGlzcGF0Y2ggPSBmYWJyaWNDbGllbnRBZGFwdGVyLkRpc3BhdGNoKCk7XG4gICAqIGZhYnJpY0Rpc3BhdGNoLnN1Ym1pdFRyYW5zYWN0aW9uKCdjcmVhdGVQcm9kdWN0JywgeyBuYW1lOiAnUHJvZHVjdCBBJywgcHJpY2U6IDEwMCB9KTtcbiAgICovXG4gIG92ZXJyaWRlIERpc3BhdGNoKCk6IEZhYnJpY0NsaWVudERpc3BhdGNoIHtcbiAgICByZXR1cm4gbmV3IEZhYnJpY0NsaWVudEFkYXB0ZXJbXCJfYmFzZURpc3BhdGNoXCJdKCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFBhcnNlcyBhbiBlcnJvciBpbnRvIGEgQmFzZUVycm9yXG4gICAqIEBzdW1tYXJ5IENvbnZlcnRzIGFueSBlcnJvciBpbnRvIGEgc3RhbmRhcmRpemVkIEJhc2VFcnJvciB1c2luZyB0aGUgcGFyZW50IGNsYXNzIGltcGxlbWVudGF0aW9uXG4gICAqIEBwYXJhbSB7RXJyb3IgfCBzdHJpbmd9IGVyciAtIFRoZSBlcnJvciB0byBwYXJzZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW3JlYXNvbl0gLSBPcHRpb25hbCByZWFzb24gZm9yIHRoZSBlcnJvclxuICAgKiBAcmV0dXJuIHtCYXNlRXJyb3J9IFRoZSBwYXJzZWQgZXJyb3JcbiAgICovXG4gIHByb3RlY3RlZCBzdGF0aWMgcGFyc2VFcnJvcjxFIGV4dGVuZHMgQmFzZUVycm9yPihlcnI6IEVycm9yIHwgc3RyaW5nKTogRSB7XG4gICAgLy8gaWYgKFxuICAgIC8vICAgTUlTU0lOR19QUklWQVRFX0RBVEFfUkVHRVgudGVzdChcbiAgICAvLyAgICAgdHlwZW9mIGVyciA9PT0gXCJzdHJpbmdcIiA/IGVyciA6IGVyci5tZXNzYWdlXG4gICAgLy8gICApXG4gICAgLy8gKVxuICAgIC8vICAgcmV0dXJuIG5ldyBVbmF1dGhvcml6ZWRQcml2YXRlRGF0YUFjY2VzcyhlcnIpIGFzIEU7XG5cbiAgICBpZiAoZXJyIGluc3RhbmNlb2YgRXJyb3IgJiYgKGVyciBhcyBhbnkpLmNvZGUpIHtcbiAgICAgIHN3aXRjaCAoKGVyciBhcyBhbnkpLmNvZGUpIHtcbiAgICAgICAgY2FzZSA5OlxuICAgICAgICAgIHJldHVybiBuZXcgRW5kb3JzZW1lbnRFcnJvcihlcnIpIGFzIEU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgbXNnID0gdHlwZW9mIGVyciA9PT0gXCJzdHJpbmdcIiA/IGVyciA6IGVyci5tZXNzYWdlO1xuICAgIGlmIChtc2cuaW5jbHVkZXMoTm90Rm91bmRFcnJvci5uYW1lKSkgcmV0dXJuIG5ldyBOb3RGb3VuZEVycm9yKGVycikgYXMgRTtcbiAgICBpZiAobXNnLmluY2x1ZGVzKENvbmZsaWN0RXJyb3IubmFtZSkpIHJldHVybiBuZXcgQ29uZmxpY3RFcnJvcihlcnIpIGFzIEU7XG4gICAgaWYgKG1zZy5pbmNsdWRlcyhCYWRSZXF1ZXN0RXJyb3IubmFtZSkpXG4gICAgICByZXR1cm4gbmV3IEJhZFJlcXVlc3RFcnJvcihlcnIpIGFzIEU7XG4gICAgaWYgKG1zZy5pbmNsdWRlcyhRdWVyeUVycm9yLm5hbWUpKSByZXR1cm4gbmV3IFF1ZXJ5RXJyb3IoZXJyKSBhcyBFO1xuICAgIGlmIChtc2cuaW5jbHVkZXMoUGFnaW5nRXJyb3IubmFtZSkpIHJldHVybiBuZXcgUGFnaW5nRXJyb3IoZXJyKSBhcyBFO1xuICAgIGlmIChtc2cuaW5jbHVkZXMoVW5zdXBwb3J0ZWRFcnJvci5uYW1lKSlcbiAgICAgIHJldHVybiBuZXcgVW5zdXBwb3J0ZWRFcnJvcihlcnIpIGFzIEU7XG4gICAgaWYgKG1zZy5pbmNsdWRlcyhNaWdyYXRpb25FcnJvci5uYW1lKSkgcmV0dXJuIG5ldyBNaWdyYXRpb25FcnJvcihlcnIpIGFzIEU7XG4gICAgaWYgKG1zZy5pbmNsdWRlcyhPYnNlcnZlckVycm9yLm5hbWUpKSByZXR1cm4gbmV3IE9ic2VydmVyRXJyb3IoZXJyKSBhcyBFO1xuICAgIGlmIChtc2cuaW5jbHVkZXMoQXV0aG9yaXphdGlvbkVycm9yLm5hbWUpKVxuICAgICAgcmV0dXJuIG5ldyBBdXRob3JpemF0aW9uRXJyb3IoZXJyKSBhcyBFO1xuICAgIGlmIChtc2cuaW5jbHVkZXMoRm9yYmlkZGVuRXJyb3IubmFtZSkpIHJldHVybiBuZXcgRm9yYmlkZGVuRXJyb3IoZXJyKSBhcyBFO1xuICAgIGlmIChtc2cuaW5jbHVkZXMoQ29ubmVjdGlvbkVycm9yLm5hbWUpKVxuICAgICAgcmV0dXJuIG5ldyBDb25uZWN0aW9uRXJyb3IoZXJyKSBhcyBFO1xuICAgIGlmIChtc2cuaW5jbHVkZXMoU2VyaWFsaXphdGlvbkVycm9yLm5hbWUpKVxuICAgICAgcmV0dXJuIG5ldyBTZXJpYWxpemF0aW9uRXJyb3IoZXJyKSBhcyBFO1xuICAgIHJldHVybiBuZXcgSW50ZXJuYWxFcnJvcihlcnIpIGFzIEU7XG4gIH1cbn1cblxuRmFicmljQ2xpZW50QWRhcHRlci5kZWNvcmF0aW9uKCk7XG5BZGFwdGVyLnNldEN1cnJlbnQoRmFicmljRmxhdm91cik7XG4iXX0=
|
|
@@ -193,4 +193,4 @@ class FabricClientDispatch extends core_1.Dispatch {
|
|
|
193
193
|
exports.FabricClientDispatch = FabricClientDispatch;
|
|
194
194
|
if (FabricClientAdapter_1.FabricClientAdapter)
|
|
195
195
|
FabricClientAdapter_1.FabricClientAdapter["_baseDispatch"] = FabricClientDispatch;
|
|
196
|
-
//# sourceMappingURL=FabricClientDispatch.js.map
|
|
196
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQ2xpZW50RGlzcGF0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpZW50L0ZhYnJpY0NsaWVudERpc3BhdGNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlDQU93QjtBQUd4QixtRUFBNEQ7QUFDNUQsMkRBSWlDO0FBS2pDLG1EQUFrRDtBQUNsRCx5RUFBdUQ7QUFHdkQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0NHO0FBQ0gsTUFBYSxvQkFBcUIsU0FBUSxlQUE2QjtJQVdyRTs7OztPQUlHO0lBQ0gsWUFBc0IsTUFBYztRQUNsQyxLQUFLLEVBQUUsQ0FBQztRQURZLFdBQU0sR0FBTixNQUFNLENBQVE7UUFWcEM7O1dBRUc7UUFDSyxZQUFPLEdBQUcsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7SUFTMUMsQ0FBQztJQUVEOzs7O09BSUc7SUFDTSxLQUFLLENBQUMsS0FBSztRQUNsQixJQUFJLElBQUksQ0FBQyxjQUFjO1lBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxZQUFZLENBQUMsU0FBcUI7UUFDeEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDNUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNNLE9BQU8sQ0FBQyxRQUFnQztRQUMvQyxJQUFJLENBQUMsQ0FBQyxRQUFRLFlBQVkseUNBQW1CLENBQUM7WUFDNUMsTUFBTSxJQUFJLHVCQUFnQixDQUN4QixzREFBc0QsQ0FDdkQsQ0FBQztRQUNKLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBK0IsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRDs7Ozs7OztPQU9HO0lB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a0MsQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBTSxPQUFPLENBQUMsa0JBQWtCLENBQ3BELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FDbEMsQ0FBQztRQUNGLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0NBQ0Y7QUFqTEQsb0RBaUxDO0FBRUQsSUFBSSx5Q0FBbUI7SUFDckIseUNBQW1CLENBQUMsZUFBZSxDQUFDLEdBQUcsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZGFwdGVyLFxuICBDb250ZXh0dWFsQXJncyxcbiAgRGlzcGF0Y2gsXG4gIEV2ZW50SWRzLFxuICBVbnN1cHBvcnRlZEVycm9yLFxuICBDb250ZXh0LFxufSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IEZhYnJpY0ZsYWdzLCBQZWVyQ29uZmlnIH0gZnJvbSBcIi4uL3NoYXJlZC90eXBlc1wiO1xuaW1wb3J0IHsgQ2xpZW50IH0gZnJvbSBcIkBncnBjL2dycGMtanNcIjtcbmltcG9ydCB7IEZhYnJpY0NsaWVudEFkYXB0ZXIgfSBmcm9tIFwiLi9GYWJyaWNDbGllbnRBZGFwdGVyXCI7XG5pbXBvcnQge1xuICBCdWxrQ3J1ZE9wZXJhdGlvbktleXMsXG4gIEludGVybmFsRXJyb3IsXG4gIE9wZXJhdGlvbktleXMsXG59IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHtcbiAgQ2hhaW5jb2RlRXZlbnQsXG4gIENsb3NlYWJsZUFzeW5jSXRlcmFibGUsXG59IGZyb20gXCJAaHlwZXJsZWRnZXIvZmFicmljLWdhdGV3YXlcIjtcbmltcG9ydCB7IHBhcnNlRXZlbnROYW1lIH0gZnJvbSBcIi4uL3NoYXJlZC9ldmVudHNcIjtcbmltcG9ydCB7IE1vZGVsIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgQ29uc3RydWN0b3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gRXZlbnQgZGlzcGF0Y2hlciBmb3IgSHlwZXJsZWRnZXIgRmFicmljIGNoYWluY29kZSBldmVudHNcbiAqIEBzdW1tYXJ5IExpc3RlbnMgZm9yIGFuZCBwcm9jZXNzZXMgZXZlbnRzIGVtaXR0ZWQgYnkgRmFicmljIGNoYWluY29kZSwgZGlzcGF0Y2hpbmcgdGhlbSB0byByZWdpc3RlcmVkIG9ic2VydmVyc1xuICogQHRlbXBsYXRlIFBlZXJDb25maWcgLSBDb25maWd1cmF0aW9uIHR5cGUgZm9yIGNvbm5lY3RpbmcgdG8gYSBGYWJyaWMgcGVlclxuICogQHBhcmFtIGNsaWVudCAtIGdSUEMgY2xpZW50IGZvciBjb25uZWN0aW5nIHRvIHRoZSBGYWJyaWMgbmV0d29ya1xuICogQGNsYXNzIEZhYnJpY0NsaWVudERpc3BhdGNoXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogLy8gQ3JlYXRlIGEgbmV3IEZhYnJpY0Rpc3BhdGNoIGluc3RhbmNlXG4gKiBjb25zdCBjbGllbnQgPSBhd2FpdCBGYWJyaWNBZGFwdGVyLmdldENsaWVudChwZWVyQ29uZmlnKTtcbiAqIGNvbnN0IGRpc3BhdGNoID0gbmV3IEZhYnJpY0Rpc3BhdGNoKGNsaWVudCk7XG4gKlxuICogLy8gQ29uZmlndXJlIHRoZSBkaXNwYXRjaCB3aXRoIHBlZXIgY29uZmlndXJhdGlvblxuICogZGlzcGF0Y2guY29uZmlndXJlKHBlZXJDb25maWcpO1xuICpcbiAqIC8vIFJlZ2lzdGVyIGFuIG9ic2VydmVyIGZvciBhIHNwZWNpZmljIHRhYmxlIGFuZCBldmVudFxuICogZGlzcGF0Y2gub2JzZXJ2ZSgndXNlcnMnLCAnY3JlYXRlJywgKGlkKSA9PiB7XG4gKiAgIGNvbnNvbGUubG9nKGBVc2VyIGNyZWF0ZWQ6ICR7aWR9YCk7XG4gKiB9KTtcbiAqXG4gKiAvLyBTdGFydCBsaXN0ZW5pbmcgZm9yIGV2ZW50c1xuICogYXdhaXQgZGlzcGF0Y2guc3RhcnQoKTtcbiAqIGBgYFxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBDbGllbnRcbiAqICAgcGFydGljaXBhbnQgRmFicmljRGlzcGF0Y2hcbiAqICAgcGFydGljaXBhbnQgR2F0ZXdheVxuICogICBwYXJ0aWNpcGFudCBOZXR3b3JrXG4gKiAgIHBhcnRpY2lwYW50IENoYWluY29kZVxuICpcbiAqICAgQ2xpZW50LT4+RmFicmljRGlzcGF0Y2g6IG5ldyBGYWJyaWNEaXNwYXRjaChjbGllbnQpXG4gKiAgIENsaWVudC0+PkZhYnJpY0Rpc3BhdGNoOiBjb25maWd1cmUocGVlckNvbmZpZylcbiAqICAgQ2xpZW50LT4+RmFicmljRGlzcGF0Y2g6IG9ic2VydmUodGFibGUsIGV2ZW50LCBjYWxsYmFjaylcbiAqICAgQ2xpZW50LT4+RmFicmljRGlzcGF0Y2g6IHN0YXJ0KClcbiAqICAgRmFicmljRGlzcGF0Y2gtPj5GYWJyaWNEaXNwYXRjaDogaW5pdGlhbGl6ZSgpXG4gKiAgIEZhYnJpY0Rpc3BhdGNoLT4+R2F0ZXdheTogZ2V0R2F0ZXdheShjb25maWcsIGNsaWVudClcbiAqICAgR2F0ZXdheS0+Pk5ldHdvcms6IGdldE5ldHdvcmsoY2hhbm5lbClcbiAqICAgTmV0d29yay0+Pk5ldHdvcms6IGdldENoYWluY29kZUV2ZW50cyhjaGFpbmNvZGVOYW1lKVxuICogICBGYWJyaWNEaXNwYXRjaC0+PkZhYnJpY0Rpc3BhdGNoOiBoYW5kbGVFdmVudHMoKVxuICogICBsb29wIEZvciBlYWNoIGV2ZW50XG4gKiAgICAgQ2hhaW5jb2RlLS0+PkZhYnJpY0Rpc3BhdGNoOiBDaGFpbmNvZGVFdmVudFxuICogICAgIEZhYnJpY0Rpc3BhdGNoLT4+RmFicmljRGlzcGF0Y2g6IHBhcnNlRXZlbnROYW1lKGV2ZW50TmFtZSlcbiAqICAgICBGYWJyaWNEaXNwYXRjaC0+PkZhYnJpY0Rpc3BhdGNoOiBwYXJzZVBheWxvYWQocGF5bG9hZClcbiAqICAgICBGYWJyaWNEaXNwYXRjaC0+PkZhYnJpY0Rpc3BhdGNoOiB1cGRhdGVPYnNlcnZlcnModGFibGUsIGV2ZW50LCBpZClcbiAqICAgICBGYWJyaWNEaXNwYXRjaC0tPj5DbGllbnQ6IGNhbGxiYWNrKGlkKVxuICogICBlbmRcbiAqL1xuZXhwb3J0IGNsYXNzIEZhYnJpY0NsaWVudERpc3BhdGNoIGV4dGVuZHMgRGlzcGF0Y2g8RmFicmljQ2xpZW50QWRhcHRlcj4ge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEV2ZW50IGxpc3RlbmluZyBzdGFjayBmb3IgY2hhaW5jb2RlIGV2ZW50c1xuICAgKi9cbiAgcHJpdmF0ZSBsaXN0ZW5pbmdTdGFjaz86IENsb3NlYWJsZUFzeW5jSXRlcmFibGU8Q2hhaW5jb2RlRXZlbnQ+O1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVGV4dCBkZWNvZGVyIGZvciBjb252ZXJ0aW5nIGV2ZW50IHBheWxvYWRzIGZyb20gYnl0ZXMgdG8gc3RyaW5nc1xuICAgKi9cbiAgcHJpdmF0ZSBkZWNvZGVyID0gbmV3IFRleHREZWNvZGVyKFwidXRmOFwiKTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgYSBuZXcgRmFicmljRGlzcGF0Y2ggaW5zdGFuY2VcbiAgICogQHN1bW1hcnkgSW5pdGlhbGl6ZXMgYSBkaXNwYXRjaGVyIGZvciBGYWJyaWMgY2hhaW5jb2RlIGV2ZW50c1xuICAgKiBAcGFyYW0ge0NsaWVudH0gY2xpZW50IC0gZ1JQQyBjbGllbnQgZm9yIGNvbm5lY3RpbmcgdG8gdGhlIEZhYnJpYyBuZXR3b3JrXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgY2xpZW50OiBDbGllbnQpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDbG9zZXMgdGhlIGV2ZW50IGxpc3RlbmluZyBjb25uZWN0aW9uXG4gICAqIEBzdW1tYXJ5IFN0b3BzIGxpc3RlbmluZyBmb3IgY2hhaW5jb2RlIGV2ZW50cyBhbmQgcmVsZWFzZXMgcmVzb3VyY2VzXG4gICAqIEByZXR1cm4ge1Byb21pc2U8dm9pZD59IFByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBjb25uZWN0aW9uIGlzIGNsb3NlZFxuICAgKi9cbiAgb3ZlcnJpZGUgYXN5bmMgY2xvc2UoKSB7XG4gICAgaWYgKHRoaXMubGlzdGVuaW5nU3RhY2spIHRoaXMubGlzdGVuaW5nU3RhY2suY2xvc2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUGFyc2VzIGV2ZW50IHBheWxvYWQgZnJvbSBiaW5hcnkgZm9ybWF0XG4gICAqIEBzdW1tYXJ5IENvbnZlcnRzIGEgVWludDhBcnJheSBjb250YWluaW5nIEpTT04gdG8gYW4gb2JqZWN0IHdpdGggYW4gaWQgcHJvcGVydHlcbiAgICogQHBhcmFtIHtVaW50OEFycmF5fSBqc29uQnl0ZXMgLSBUaGUgYmluYXJ5IHBheWxvYWQgZnJvbSB0aGUgY2hhaW5jb2RlIGV2ZW50XG4gICAqIEByZXR1cm4ge3sgaWQ6IHN0cmluZyB9fSBUaGUgcGFyc2VkIHBheWxvYWQgY29udGFpbmluZyB0aGUgcmVjb3JkIElEXG4gICAqL1xuICBwcml2YXRlIHBhcnNlUGF5bG9hZChqc29uQnl0ZXM6IFVpbnQ4QXJyYXkpOiB7IGlkOiBzdHJpbmcgfSB7XG4gICAgY29uc3QganNvbiA9IHRoaXMuZGVjb2Rlci5kZWNvZGUoanNvbkJ5dGVzKTtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShqc29uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gU3RhcnRzIG9ic2VydmluZyBhbiBhZGFwdGVyXG4gICAqIEBzdW1tYXJ5IENvbm5lY3RzIHRoaXMgZGlzcGF0Y2ggdG8gYW4gYWRhcHRlciB0byBtb25pdG9yIGl0cyBvcGVyYXRpb25zXG4gICAqIEBwYXJhbSB7QWRhcHRlcjxhbnksIGFueSwgYW55LCBhbnk+fSBvYnNlcnZlciAtIFRoZSBhZGFwdGVyIHRvIG9ic2VydmVcbiAgICogQHJldHVybiB7dm9pZH1cbiAgICovXG4gIG92ZXJyaWRlIG9ic2VydmUob2JzZXJ2ZXI6IEFkYXB0ZXI8YW55LCBhbnksIGFueT4pOiB2b2lkIHtcbiAgICBpZiAoIShvYnNlcnZlciBpbnN0YW5jZW9mIEZhYnJpY0NsaWVudEFkYXB0ZXIpKVxuICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkRXJyb3IoXG4gICAgICAgIFwiT25seSBGYWJyaWNDbGllbnRBZGFwdGVyIGNhbiBiZSBvYnNlcnZlZCBieSBkaXNwYXRjaFwiXG4gICAgICApO1xuICAgIHN1cGVyLm9ic2VydmUob2JzZXJ2ZXIgYXMgRmFicmljQ2xpZW50QWRhcHRlcik7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFVwZGF0ZXMgb2JzZXJ2ZXJzIGFib3V0IGEgZGF0YWJhc2UgZXZlbnRcbiAgICogQHN1bW1hcnkgTm90aWZpZXMgb2JzZXJ2ZXJzIGFib3V0IGEgY2hhbmdlIGluIHRoZSBkYXRhYmFzZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGFibGUgLSBUaGUgbmFtZSBvZiB0aGUgdGFibGUgd2hlcmUgdGhlIGNoYW5nZSBvY2N1cnJlZFxuICAgKiBAcGFyYW0ge09wZXJhdGlvbktleXN8QnVsa0NydWRPcGVyYXRpb25LZXlzfHN0cmluZ30gZXZlbnQgLSBUaGUgdHlwZSBvZiBvcGVyYXRpb24gdGhhdCBvY2N1cnJlZFxuICAgKiBAcGFyYW0ge2FueX0gcGF5bG9hZCAtIFRoZSBldmVudCBwYXlsb2FkXG4gICAqIEByZXR1cm4ge1Byb21pc2U8dm9pZD59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gYWxsIG9ic2VydmVycyBoYXZlIGJlZW4gbm90aWZpZWRcbiAgICovXG4gIG92ZXJyaWRlIGFzeW5jIHVwZGF0ZU9ic2VydmVycyhcbiAgICBtb2RlbDogQ29uc3RydWN0b3I8YW55PiB8IHN0cmluZyxcbiAgICBldmVudDogT3BlcmF0aW9uS2V5cyB8IEJ1bGtDcnVkT3BlcmF0aW9uS2V5cyB8IHN0cmluZyxcbiAgICBpZDogRXZlbnRJZHMsXG4gICAgLi4uYXJnczogQ29udGV4dHVhbEFyZ3M8Q29udGV4dDxGYWJyaWNGbGFncz4+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLnVwZGF0ZU9ic2VydmVycyk7XG4gICAgaWYgKCF0aGlzLmFkYXB0ZXIpIHtcbiAgICAgIGxvZy52ZXJib3NlKFxuICAgICAgICBgTm8gYWRhcHRlciBvYnNlcnZlZCBmb3IgZGlzcGF0Y2g7IHNraXBwaW5nIG9ic2VydmVyIHVwZGF0ZSBmb3IgJHt0eXBlb2YgbW9kZWwgPT09IFwic3RyaW5nXCIgPyBtb2RlbCA6IE1vZGVsLnRhYmxlTmFtZShtb2RlbCl9OiR7ZXZlbnR9YFxuICAgICAgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuYWRhcHRlci5yZWZyZXNoKG1vZGVsLCBldmVudCwgaWQsIC4uLmN0eEFyZ3MpO1xuICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBGYWlsZWQgdG8gcmVmcmVzaCBkaXNwYXRjaDogJHtlfWApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUHJvY2Vzc2VzIGluY29taW5nIGNoYWluY29kZSBldmVudHNcbiAgICogQHN1bW1hcnkgTGlzdGVucyBmb3IgZXZlbnRzIGZyb20gdGhlIGNoYWluY29kZSBhbmQgZGlzcGF0Y2hlcyB0aGVtIHRvIHJlZ2lzdGVyZWQgb2JzZXJ2ZXJzXG4gICAqIEByZXR1cm4ge1Byb21pc2U8dm9pZD59IFByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIGV2ZW50IGhhbmRsaW5nIHN0b3BzXG4gICAqIEBtZXJtYWlkXG4gICAqIHNlcXVlbmNlRGlhZ3JhbVxuICAgKiAgIHBhcnRpY2lwYW50IEZhYnJpY0Rpc3BhdGNoXG4gICAqICAgcGFydGljaXBhbnQgRXZlbnRTdGFja1xuICAgKiAgIHBhcnRpY2lwYW50IEV2ZW50UGFyc2VyXG4gICAqICAgcGFydGljaXBhbnQgT2JzZXJ2ZXJzXG4gICAqXG4gICAqICAgRmFicmljRGlzcGF0Y2gtPj5GYWJyaWNEaXNwYXRjaDogaGFuZGxlRXZlbnRzKClcbiAgICogICBGYWJyaWNEaXNwYXRjaC0+PkV2ZW50U3RhY2s6IGZvciBhd2FpdCAoY29uc3QgZXZ0IG9mIGxpc3RlbmluZ1N0YWNrKVxuICAgKiAgIEV2ZW50U3RhY2stLT4+RmFicmljRGlzcGF0Y2g6IENoYWluY29kZUV2ZW50XG4gICAqICAgRmFicmljRGlzcGF0Y2gtPj5FdmVudFBhcnNlcjogcGFyc2VFdmVudE5hbWUoZXZ0LmV2ZW50TmFtZSlcbiAgICogICBFdmVudFBhcnNlci0tPj5GYWJyaWNEaXNwYXRjaDogeyB0YWJsZSwgZXZlbnQsIG93bmVyIH1cbiAgICogICBGYWJyaWNEaXNwYXRjaC0+PkZhYnJpY0Rpc3BhdGNoOiBDaGVjayBpZiBldmVudCBpcyBmb3IgdGhpcyBNU1BcbiAgICogICBGYWJyaWNEaXNwYXRjaC0+PkZhYnJpY0Rpc3BhdGNoOiBwYXJzZVBheWxvYWQoZXZ0LnBheWxvYWQpXG4gICAqICAgRmFicmljRGlzcGF0Y2gtPj5PYnNlcnZlcnM6IHVwZGF0ZU9ic2VydmVycyh0YWJsZSwgZXZlbnQsIHBheWxvYWQuaWQpXG4gICAqICAgT2JzZXJ2ZXJzLS0+PkZhYnJpY0Rpc3BhdGNoOiBDYWxsYmFja3MgZXhlY3V0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVFdmVudHMoY3R4QXJnPzogQ29udGV4dDxGYWJyaWNGbGFncz4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMubGlzdGVuaW5nU3RhY2spXG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgYEV2ZW50IHN0YWNrIG5vdCBpbml0aWFsaXplZC4gRW5zdXJlIHRoYXQgXCJzdGFydExpc3RlbmluZ1wiIGlzIGNhbGxlZCBiZWZvcmUgYXR0ZW1wdGluZyB0aGlzIG9wZXJhdGlvbi5gXG4gICAgICApO1xuXG4gICAgaWYgKCF0aGlzLmFkYXB0ZXIgfHwgIXRoaXMuYWRhcHRlci5jb25maWcpXG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgTm8gYWRhcHRlciBmb3VuZC4gc2hvdWxkIGJlIGltcG9zc2libGVgKTtcblxuICAgIGNvbnN0IGN0eCA9XG4gICAgICBjdHhBcmcgfHxcbiAgICAgIChhd2FpdCB0aGlzLmFkYXB0ZXIuY29udGV4dChcbiAgICAgICAgT3BlcmF0aW9uS2V5cy5SRUFELFxuICAgICAgICB7XG4gICAgICAgICAgY29ycmVsYXRpb25JZDogdGhpcy5hZGFwdGVyLmNvbmZpZy5jaGFpbmNvZGVOYW1lLFxuICAgICAgICB9LFxuICAgICAgICAodGhpcy5tb2RlbHMgJiYgdGhpcy5tb2RlbHNbMF0pIHx8IChNb2RlbCBhcyB1bmtub3duIGFzIENvbnN0cnVjdG9yKVxuICAgICAgKSk7XG4gICAgY29uc3QgbG9nID0gdGhpcy5sb2cuZm9yKHRoaXMuaGFuZGxlRXZlbnRzKTtcblxuICAgIGxvZy5pbmZvKFxuICAgICAgYExpc3RlbmluZyBmb3IgaW5jb21pbmcgZXZlbnRzIG9uIGNoYWluY29kZSBcIiR7dGhpcy5hZGFwdGVyLmNvbmZpZy5jaGFpbmNvZGVOYW1lfVwiIG9uIGNoYW5uZWwgXCIke3RoaXMuYWRhcHRlci5jb25maWcuY2hhbm5lbH1cIi4uLmBcbiAgICApO1xuXG4gICAgdHJ5IHtcbiAgICAgIGZvciBhd2FpdCAoY29uc3QgZXZ0IG9mIHRoaXMubGlzdGVuaW5nU3RhY2spIHtcbiAgICAgICAgY29uc3QgeyB0YWJsZSwgZXZlbnQsIG93bmVyIH0gPSBwYXJzZUV2ZW50TmFtZShldnQuZXZlbnROYW1lKTtcbiAgICAgICAgaWYgKG93bmVyICYmIG93bmVyICE9PSB0aGlzLmFkYXB0ZXIuY29uZmlnPy5tc3BJZCkgY29udGludWU7XG4gICAgICAgIGNvbnN0IHBheWxvYWQ6IHsgaWQ6IHN0cmluZyB9ID0gdGhpcy5wYXJzZVBheWxvYWQoZXZ0LnBheWxvYWQpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IHRhcmdldE1vZGVsID0gdGFibGVcbiAgICAgICAgICAgID8gTW9kZWwuZ2V0KHRhYmxlKVxuICAgICAgICAgICAgOiBNb2RlbC5nZXQodGhpcy5tb2RlbHNbMF0ubmFtZSk7XG4gICAgICAgICAgY29uc3QgbW9kZWxSZWYgPSB0YXJnZXRNb2RlbCA/PyAodGFibGUgfHwgdGhpcy5tb2RlbHNbMF0/Lm5hbWUpO1xuICAgICAgICAgIGF3YWl0IHRoaXMudXBkYXRlT2JzZXJ2ZXJzKFxuICAgICAgICAgICAgbW9kZWxSZWYgYXMgQ29uc3RydWN0b3IgfCBzdHJpbmcsXG4gICAgICAgICAgICBldmVudCxcbiAgICAgICAgICAgIHBheWxvYWQuaWQgYXMgc3RyaW5nLFxuICAgICAgICAgICAgY3R4XG4gICAgICAgICAgKTtcbiAgICAgICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgICAgIGxvZy5lcnJvcihcbiAgICAgICAgICAgIGBGYWlsZWQgdXBkYXRlIG9ic2VydmFibGVzIGZvciB0YWJsZSAke3RhYmxlfSBldmVudCAke2V2ZW50fSBpZDogJHtwYXlsb2FkLmlkfTogJHtlfWBcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICBsb2cuZXJyb3IoXG4gICAgICAgIGBGYWlsZWQgdG8gcmVhZCBldmVudCBmb3IgY2hhaW5jb2RlIFwiJHt0aGlzLmFkYXB0ZXIuY29uZmlnLmNoYWluY29kZU5hbWV9XCIgb24gY2hhbm5lbCBcIiR7dGhpcy5hZGFwdGVyLmNvbmZpZy5jaGFubmVsfVwiOiAke2V9YFxuICAgICAgKTtcbiAgICAgIGF3YWl0IHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEluaXRpYWxpemVzIHRoZSBldmVudCBsaXN0ZW5lclxuICAgKiBAc3VtbWFyeSBTZXRzIHVwIHRoZSBjb25uZWN0aW9uIHRvIHRoZSBGYWJyaWMgbmV0d29yayBhbmQgc3RhcnRzIGxpc3RlbmluZyBmb3IgY2hhaW5jb2RlIGV2ZW50c1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPHZvaWQ+fSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiBpbml0aWFsaXphdGlvbiBpcyBjb21wbGV0ZVxuICAgKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGFzeW5jIGluaXRpYWxpemUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLmFkYXB0ZXIpXG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgTm8gYWRhcHRlciBvciBjb25maWcgb2JzZXJ2ZWQgZm9yIGRpc3BhdGNoYCk7XG4gICAgY29uc3QgZ2F0ZXdheSA9IGF3YWl0IEZhYnJpY0NsaWVudEFkYXB0ZXIuZ2V0R2F0ZXdheShcbiAgICAgIHRoaXMuYWRhcHRlci5jb25maWcgYXMgUGVlckNvbmZpZyxcbiAgICAgIHRoaXMuY2xpZW50XG4gICAgKTtcbiAgICBjb25zdCBuZXR3b3JrID0gZ2F0ZXdheS5nZXROZXR3b3JrKHRoaXMuYWRhcHRlci5jb25maWcuY2hhbm5lbCk7XG4gICAgaWYgKCF0aGlzLmFkYXB0ZXIpXG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgTm8gYWRhcHRlciBvYnNlcnZlZCBmb3IgZGlzcGF0Y2hgKTtcbiAgICB0aGlzLmxpc3RlbmluZ1N0YWNrID0gYXdhaXQgbmV0d29yay5nZXRDaGFpbmNvZGVFdmVudHMoXG4gICAgICB0aGlzLmFkYXB0ZXIuY29uZmlnLmNoYWluY29kZU5hbWVcbiAgICApO1xuICAgIHRoaXMuaGFuZGxlRXZlbnRzKCk7XG4gIH1cbn1cblxuaWYgKEZhYnJpY0NsaWVudEFkYXB0ZXIpXG4gIEZhYnJpY0NsaWVudEFkYXB0ZXJbXCJfYmFzZURpc3BhdGNoXCJdID0gRmFicmljQ2xpZW50RGlzcGF0Y2g7XG4iXX0=
|
|
@@ -15,4 +15,4 @@ class FabricClientPaginator extends core_1.Paginator {
|
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
exports.FabricClientPaginator = FabricClientPaginator;
|
|
18
|
-
//# sourceMappingURL=
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQ2xpZW50UGFnaW5hdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9GYWJyaWNDbGllbnRQYWdpbmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBS3dCO0FBTXhCLE1BQWEscUJBQXVDLFNBQVEsZ0JBSTNEO0lBQ0MsWUFDRSxPQUE0QixFQUM1QixLQUEwQyxFQUMxQyxJQUFZLEVBQ1osS0FBcUI7UUFFckIsS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCw2REFBNkQ7SUFDbkQsT0FBTyxDQUFDLFlBQXdCO1FBQ3hDLE1BQU0sSUFBSSx1QkFBZ0IsQ0FDeEIscUdBQXFHLENBQ3RHLENBQUM7SUFDSixDQUFDO0lBRVEsSUFBSSxDQUNYLE9BQWUsQ0FBQyxFQUNoQixHQUFHLElBQTZCO1FBRWhDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLDZDQUE2QztJQUNqRixDQUFDO0NBQ0Y7QUEzQkQsc0RBMkJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgTWF5YmVDb250ZXh0dWFsQXJnLFxuICBQYWdpbmF0b3IsXG4gIFByZXBhcmVkU3RhdGVtZW50LFxuICBVbnN1cHBvcnRlZEVycm9yLFxufSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IE1vZGVsIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgQ29uc3RydWN0b3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcbmltcG9ydCB7IEZhYnJpY0NsaWVudEFkYXB0ZXIgfSBmcm9tIFwiLi9GYWJyaWNDbGllbnRBZGFwdGVyXCI7XG5pbXBvcnQgeyBNYW5nb1F1ZXJ5IH0gZnJvbSBcIkBkZWNhZi10cy9mb3ItY291Y2hkYlwiO1xuXG5leHBvcnQgY2xhc3MgRmFicmljQ2xpZW50UGFnaW5hdG9yPE0gZXh0ZW5kcyBNb2RlbD4gZXh0ZW5kcyBQYWdpbmF0b3I8XG4gIE0sXG4gIE0sXG4gIE1hbmdvUXVlcnlcbj4ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBhZGFwdGVyOiBGYWJyaWNDbGllbnRBZGFwdGVyLFxuICAgIHF1ZXJ5OiBNYW5nb1F1ZXJ5IHwgUHJlcGFyZWRTdGF0ZW1lbnQ8YW55PixcbiAgICBzaXplOiBudW1iZXIsXG4gICAgY2xheno6IENvbnN0cnVjdG9yPE0+XG4gICkge1xuICAgIHN1cGVyKGFkYXB0ZXIsIHF1ZXJ5LCBzaXplLCBjbGF6eik7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIHByb3RlY3RlZCBwcmVwYXJlKHJhd1N0YXRlbWVudDogTWFuZ29RdWVyeSk6IE1hbmdvUXVlcnkge1xuICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZEVycm9yKFxuICAgICAgYFJhdyBxdWVyeSBhY2Nlc3MgbXVzdCBiZSBpbXBsZW1lbnRlZCBieSBhIHN1YmNsYXNzLiBvbmx5IHByZXBhcmVkIHN0YXRlbWVudHMgYXJlIG5hdGl2ZWx5IGF2YWlsYWJsZWBcbiAgICApO1xuICB9XG5cbiAgb3ZlcnJpZGUgcGFnZShcbiAgICBwYWdlOiBudW1iZXIgPSAxLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8TVtdPiB7XG4gICAgcmV0dXJuIHN1cGVyLnBhZ2UocGFnZSwgLi4uYXJncyk7IC8vIHRoaXMgd2lsbCBmYWlsIGZvciBub24tcHJlcGFyZWQgc3RhdGVtZW50c1xuICB9XG59XG4iXX0=
|
|
@@ -111,4 +111,4 @@ class FabricClientRepository extends core_1.Repository {
|
|
|
111
111
|
}
|
|
112
112
|
}
|
|
113
113
|
exports.FabricClientRepository = FabricClientRepository;
|
|
114
|
-
//# sourceMappingURL=FabricClientRepository.js.map
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQ2xpZW50UmVwb3NpdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGllbnQvRmFicmljQ2xpZW50UmVwb3NpdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5Q0FPd0I7QUFFeEIseUVBQXVEO0FBS3ZEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyQkc7QUFDSCxNQUFhLHNCQUdYLFNBQVEsaUJBQWdCO0lBU3hCLFlBQVksT0FBVyxFQUFFLEtBQXNCO1FBQzdDLEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFUTCxlQUFVLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQ3JFLGdCQUFnQixFQUFFLElBQUk7WUFDdEIsY0FBYyxFQUFFLElBQUk7WUFDcEIsa0JBQWtCLEVBQUUsS0FBSztZQUN6Qix5QkFBeUIsRUFBRSxJQUFJO1lBQy9CLDBCQUEwQixFQUFFLElBQUk7U0FDakMsQ0FBQyxDQUFDO0lBSUgsQ0FBQztJQUVRLEtBQUssQ0FBQyxVQUFVLENBQ3ZCLEdBQVksRUFDWixLQUFxQixFQUNyQixJQUFZLEVBQ1osR0FBRyxJQUFzQztRQUV6QyxNQUFNLFdBQVcsR0FBRyxNQUFNLGNBQU8sQ0FBQyxJQUFJLENBQ3BDLDRCQUFxQixDQUFDLE9BQU8sRUFDN0IsSUFBSSxDQUFDLEtBQUssRUFDVixJQUFJLEVBQ0osSUFBSSxDQUFDLE9BQU8sRUFDWixJQUFJLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FDdEIsQ0FBQztRQUNGLE1BQU0sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN4RSxHQUFHLENBQUMsT0FBTyxDQUNULGNBQWMsNEJBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsSUFBSSxFQUFFLENBQ25FLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUU7YUFDakIsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO2FBQ3JCLFFBQVEsQ0FBQyxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRVEsS0FBSyxDQUFDLE1BQU0sQ0FDbkIsR0FBWSxFQUNaLEtBQXFCLEVBQ3JCLEdBQUcsSUFBc0M7UUFFekMsTUFBTSxXQUFXLEdBQUcsTUFBTSxjQUFPLENBQUMsSUFBSSxDQUNwQyxNQUFNLEVBQ04sSUFBSSxDQUFDLEtBQUssRUFDVixJQUFJLEVBQ0osSUFBSSxDQUFDLE9BQU8sRUFDWixJQUFJLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FDdEIsQ0FBQztRQUNGLE1BQU0sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwRSxHQUFHLENBQUMsT0FBTyxDQUNULFdBQVcsNEJBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQWEsSUFBSSxLQUFLLEVBQUUsQ0FDdEUsQ0FBQztRQUNGLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUNoQixHQUFHLEVBQ0gsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEVBQ3BCLEdBQUcsT0FBTyxDQUNYLENBQVEsQ0FBQztJQUNaLENBQUM7SUFFUSxLQUFLLENBQUMsTUFBTSxDQUNuQixHQUFZLEVBQ1osS0FBVSxFQUNWLEdBQUcsSUFBc0M7UUFFekMsTUFBTSxXQUFXLEdBQUcsTUFBTSxjQUFPLENBQUMsSUFBSSxDQUNwQyw0QkFBcUIsQ0FBQyxPQUFPLEVBQzdCLElBQUksQ0FBQyxLQUFLLEVBQ1YsSUFBSSxFQUNKLElBQUksQ0FBQyxPQUFPLEVBQ1osSUFBSSxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQ3RCLENBQUM7UUFDRixNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEUsR0FBRyxDQUFDLE9BQU8sQ0FDVCxlQUFlLDRCQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFhLElBQUksS0FBSyxFQUFFLENBQzVFLENBQUM7UUFDRixPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFDaEIsR0FBRyxFQUNILEtBQUssRUFDTCxFQUFFLEVBQ0YsR0FBRyxPQUFPLENBQ1gsQ0FBUSxDQUFDO0lBQ1osQ0FBQztJQUVRLEtBQUssQ0FBQyxTQUFTLENBQ3RCLEdBQVksRUFDWixLQUFVLEVBQ1YsR0FBRyxJQUFzQztRQUV6QyxNQUFNLFdBQVcsR0FBRyxNQUFNLGNBQU8sQ0FBQyxJQUFJLENBQ3BDLDRCQUFxQixDQUFDLFdBQVcsRUFDakMsSUFBSSxDQUFDLEtBQUssRUFDVixJQUFJLEVBQ0osSUFBSSxDQUFDLE9BQU8sRUFDWixJQUFJLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FDdEIsQ0FBQztRQUNGLE1BQU0sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN2RSxHQUFHLENBQUMsT0FBTyxDQUNULGVBQWUsNEJBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQWEsSUFBSSxLQUFLLEVBQUUsQ0FDNUUsQ0FBQztRQUNGLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQzFCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUNuQixHQUFHLEVBQ0gsS0FBSyxFQUNMLEVBQUUsRUFDRixHQUFHLE9BQU8sQ0FDWCxDQUFRLENBQUM7SUFDWixDQUFDO0lBRVEsS0FBSyxDQUFDLFNBQVMsQ0FDdEIsSUFBWSxFQUNaLEdBQUcsSUFBc0M7UUFFekMsTUFBTSxXQUFXLEdBQUcsTUFBTSxjQUFPLENBQUMsSUFBSSxDQUNwQyxzQkFBZSxDQUFDLFNBQVMsRUFDekIsSUFBSSxDQUFDLEtBQUssRUFDVixJQUFJLEVBQ0osSUFBSSxDQUFDLE9BQU8sRUFDWixJQUFJLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FDdEIsQ0FBQztRQUNGLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzlELEdBQUcsQ0FBQyxPQUFPLENBQUMsZ0NBQWdDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDcEQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUNyQyxzQkFBZSxDQUFDLFNBQVMsRUFDekIsV0FBVyxDQUFDLElBQUksQ0FDakIsQ0FBQztJQUNKLENBQUM7SUFFUSxLQUFLLENBQUMsTUFBTSxDQUNuQixLQUFRLEVBQ1IsR0FBRyxJQUFzQztRQUV6QyxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0QsR0FBRyxDQUFDLEtBQUssQ0FDUCxnQkFBZ0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLGFBQWEsNEJBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQzFFLENBQUM7UUFDRix3Q0FBd0M7UUFDeEMsSUFBSSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUNoQyxJQUFJLENBQUMsS0FBSyxFQUNWLEVBQUUsRUFDRixNQUFNLEVBQ04sU0FBUyxFQUNULEdBQUcsT0FBTyxDQUNYLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFJLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVRLEtBQUssQ0FBQyxNQUFNLENBQ25CLEtBQVEsRUFDUixHQUFHLElBQXNDO1FBRXpDLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3RCx3Q0FBd0M7UUFDeEMsSUFBSSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2pFLEdBQUcsQ0FBQyxLQUFLLENBQ1AsWUFBWSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksYUFBYSw0QkFBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQ3BGLENBQUM7UUFDRixNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FDaEMsSUFBSSxDQUFDLEtBQUssRUFDVixFQUFFLEVBQ0YsTUFBTSxFQUNOLFNBQVMsRUFDVCxHQUFHLE9BQU8sQ0FDWCxDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBSSxNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFUSxLQUFLLENBQUMsU0FBUyxDQUN0QixNQUFXLEVBQ1gsR0FBRyxJQUFzQztRQUV6QyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07WUFBRSxPQUFPLE1BQU0sQ0FBQztRQUNsQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEUsR0FBRyxDQUFDLEtBQUssQ0FDUCxZQUFZLE1BQU0sQ0FBQyxNQUFNLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLGFBQWEsNEJBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQzNGLENBQUM7UUFFRixNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNqRSxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEMsSUFBSSxPQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVDLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNuRCxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FDcEMsSUFBSSxDQUFDLEtBQUssRUFDVixHQUF1QixFQUN2QixPQUFPLEVBQ1AsU0FBUyxFQUNULEdBQUcsT0FBTyxDQUNYLENBQUM7UUFDRixPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQ2pCLENBQUMsRUFDRCxJQUFJLENBQUMsS0FBSyxFQUNWLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFDTixHQUFHLENBQUMsR0FBRyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFDbkUsR0FBRyxDQUNKLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFUSxLQUFLLENBQUMsU0FBUyxDQUN0QixNQUFXLEVBQ1gsR0FBRyxJQUFzQztRQUV6QyxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEUsR0FBRyxDQUFDLEtBQUssQ0FDUCxZQUFZLE1BQU0sQ0FBQyxNQUFNLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLGFBQWEsNEJBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQzNGLENBQUM7UUFFRixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNoRSxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUMxQyxJQUFJLENBQUMsS0FBSyxFQUNWLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFDeEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUM1QixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQy9CLEdBQUcsT0FBTyxDQUNYLENBQUM7UUFDRixPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQ2pCLENBQUMsRUFDRCxJQUFJLENBQUMsS0FBSyxFQUNWLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQ2IsR0FBRyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQ2xFLEdBQUcsQ0FDSixDQUNGLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUF0T0Qsd0RBc09DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgT3JkZXJEaXJlY3Rpb24sXG4gIFBlcnNpc3RlbmNlS2V5cyxcbiAgUmVwb3NpdG9yeSxcbiAgQ29udGV4dCxcbiAgQ29udGV4dE9mLFxuICBQcmVwYXJlZFN0YXRlbWVudEtleXMsXG59IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHR5cGUgeyBNYXliZUNvbnRleHR1YWxBcmcgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IE1vZGVsIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgQ29uc3RydWN0b3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcbmltcG9ydCB7IHR5cGUgRmFicmljQ2xpZW50QWRhcHRlciB9IGZyb20gXCIuL0ZhYnJpY0NsaWVudEFkYXB0ZXJcIjtcbmltcG9ydCB7IFByaW1hcnlLZXlUeXBlIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFJlcG9zaXRvcnkgaW1wbGVtZW50YXRpb24gZm9yIEZhYnJpYyBjbGllbnQgb3BlcmF0aW9uc1xuICogQHN1bW1hcnkgRXh0ZW5kcyB0aGUgZ2VuZXJpYyBSZXBvc2l0b3J5IHRvIHByZXBhcmUgY29udGV4dCBhbmQgYXJndW1lbnRzIGZvciBDUlVEIG9wZXJhdGlvbnMgZXhlY3V0ZWQgdmlhIGEgRmFicmljIGNsaWVudCBBZGFwdGVyLCB3aXJpbmcgUmVwb3NpdG9yeUZsYWdzIGFuZCBGYWJyaWMtc3BlY2lmaWMgb3ZlcnJpZGVzLlxuICogQHRlbXBsYXRlIE0gZXh0ZW5kcyBNb2RlbCAtIFRoZSBtb2RlbCB0eXBlIGhhbmRsZWQgYnkgdGhpcyByZXBvc2l0b3J5XG4gKiBAcGFyYW0ge0FkYXB0ZXI8YW55LCBNYW5nb1F1ZXJ5LCBGYWJyaWNGbGFncywgQ29udGV4dDxGYWJyaWNGbGFncz4+fSBbYWRhcHRlcl0gLSBPcHRpb25hbCBhZGFwdGVyIGluc3RhbmNlIHVzZWQgdG8gZXhlY3V0ZSBvcGVyYXRpb25zXG4gKiBAcGFyYW0ge0NvbnN0cnVjdG9yPE0+fSBbY2xhenpdIC0gT3B0aW9uYWwgbW9kZWwgY29uc3RydWN0b3IgdXNlZCBieSB0aGUgcmVwb3NpdG9yeVxuICogQHJldHVybiB7dm9pZH1cbiAqIEBjbGFzcyBGYWJyaWNDbGllbnRSZXBvc2l0b3J5XG4gKiBAZXhhbXBsZVxuICogaW1wb3J0IHsgUmVwb3NpdG9yeSB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuICogaW1wb3J0IHsgRmFicmljQ2xpZW50UmVwb3NpdG9yeSB9IGZyb20gXCJAZGVjYWYtdHMvZm9yLWZhYnJpY1wiO1xuICpcbiAqIGNsYXNzIFVzZXIgZXh0ZW5kcyBNb2RlbCB7IGlkITogc3RyaW5nOyBuYW1lITogc3RyaW5nOyB9XG4gKiBjb25zdCByZXBvID0gbmV3IEZhYnJpY0NsaWVudFJlcG9zaXRvcnk8VXNlcj4oKTtcbiAqIGNvbnN0IGNyZWF0ZWQgPSBhd2FpdCByZXBvLmNyZWF0ZShuZXcgVXNlcih7IGlkOiBcIjFcIiwgbmFtZTogXCJBbGljZVwiIH0pKTtcbiAqIGNvbnN0IGxvYWRlZCA9IGF3YWl0IHJlcG8ucmVhZChcIjFcIik7XG4gKlxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBBcHBcbiAqICAgcGFydGljaXBhbnQgUmVwbyBhcyBGYWJyaWNDbGllbnRSZXBvc2l0b3J5XG4gKiAgIHBhcnRpY2lwYW50IEFkYXB0ZXJcbiAqICAgQXBwLT4+UmVwbzogY3JlYXRlKG1vZGVsKVxuICogICBSZXBvLT4+UmVwbzogY3JlYXRlUHJlZml4KG1vZGVsLCAuLi5hcmdzKVxuICogICBSZXBvLT4+QWRhcHRlcjogY3JlYXRlKHRhYmxlLCBpZCwgbW9kZWwsIGZsYWdzKVxuICogICBBZGFwdGVyLS0+PlJlcG86IHJlc3VsdFxuICogICBSZXBvLS0+PkFwcDogbW9kZWxcbiAqL1xuZXhwb3J0IGNsYXNzIEZhYnJpY0NsaWVudFJlcG9zaXRvcnk8XG4gIE0gZXh0ZW5kcyBNb2RlbCxcbiAgQSBleHRlbmRzIEZhYnJpY0NsaWVudEFkYXB0ZXIsXG4+IGV4dGVuZHMgUmVwb3NpdG9yeTxNLCBBPiB7XG4gIHByb3RlY3RlZCBvdmVycmlkZSBfb3ZlcnJpZGVzID0gT2JqZWN0LmFzc2lnbih7fSwgc3VwZXJbXCJfb3ZlcnJpZGVzXCJdLCB7XG4gICAgaWdub3JlVmFsaWRhdGlvbjogdHJ1ZSxcbiAgICBpZ25vcmVIYW5kbGVyczogdHJ1ZSxcbiAgICBhbGxvd1Jhd1N0YXRlbWVudHM6IGZhbHNlLFxuICAgIGZvcmNlUHJlcGFyZVNpbXBsZVF1ZXJpZXM6IHRydWUsXG4gICAgZm9yY2VQcmVwYXJlQ29tcGxleFF1ZXJpZXM6IHRydWUsXG4gIH0pO1xuXG4gIGNvbnN0cnVjdG9yKGFkYXB0ZXI/OiBBLCBjbGF6ej86IENvbnN0cnVjdG9yPE0+KSB7XG4gICAgc3VwZXIoYWRhcHRlciwgY2xhenopO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgcGFnaW5hdGVCeShcbiAgICBrZXk6IGtleW9mIE0sXG4gICAgb3JkZXI6IE9yZGVyRGlyZWN0aW9uLFxuICAgIHNpemU6IG51bWJlcixcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8Q29udGV4dE9mPEE+PlxuICApIHtcbiAgICBjb25zdCBjb250ZXh0QXJncyA9IGF3YWl0IENvbnRleHQuYXJncyhcbiAgICAgIFByZXBhcmVkU3RhdGVtZW50S2V5cy5QQUdFX0JZLFxuICAgICAgdGhpcy5jbGFzcyxcbiAgICAgIGFyZ3MsXG4gICAgICB0aGlzLmFkYXB0ZXIsXG4gICAgICB0aGlzLl9vdmVycmlkZXMgfHwge31cbiAgICApO1xuICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzIH0gPSB0aGlzLmxvZ0N0eChjb250ZXh0QXJncy5hcmdzLCB0aGlzLnBhZ2luYXRlQnkpO1xuICAgIGxvZy52ZXJib3NlKFxuICAgICAgYHBhZ2luYXRpbmcgJHtNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcyl9IHdpdGggcGFnZSBzaXplICR7c2l6ZX1gXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3QoKVxuICAgICAgLm9yZGVyQnkoW2tleSwgb3JkZXJdKVxuICAgICAgLnBhZ2luYXRlKHNpemUsIC4uLmN0eEFyZ3MpO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgbGlzdEJ5KFxuICAgIGtleToga2V5b2YgTSxcbiAgICBvcmRlcjogT3JkZXJEaXJlY3Rpb24sXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPENvbnRleHRPZjxBPj5cbiAgKSB7XG4gICAgY29uc3QgY29udGV4dEFyZ3MgPSBhd2FpdCBDb250ZXh0LmFyZ3MoXG4gICAgICBcImxpc3RcIixcbiAgICAgIHRoaXMuY2xhc3MsXG4gICAgICBhcmdzLFxuICAgICAgdGhpcy5hZGFwdGVyLFxuICAgICAgdGhpcy5fb3ZlcnJpZGVzIHx8IHt9XG4gICAgKTtcbiAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gdGhpcy5sb2dDdHgoY29udGV4dEFyZ3MuYXJncywgdGhpcy5saXN0QnkpO1xuICAgIGxvZy52ZXJib3NlKFxuICAgICAgYGxpc3RpbmcgJHtNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcyl9IGJ5ICR7a2V5IGFzIHN0cmluZ30gJHtvcmRlcn1gXG4gICAgKTtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuc3RhdGVtZW50KFxuICAgICAgdGhpcy5saXN0QnkubmFtZSxcbiAgICAgIGtleSxcbiAgICAgIHsgZGlyZWN0aW9uOiBvcmRlciB9LFxuICAgICAgLi4uY3R4QXJnc1xuICAgICkpIGFzIGFueTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGZpbmRCeShcbiAgICBrZXk6IGtleW9mIE0sXG4gICAgdmFsdWU6IGFueSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8Q29udGV4dE9mPEE+PlxuICApOiBQcm9taXNlPE1bXT4ge1xuICAgIGNvbnN0IGNvbnRleHRBcmdzID0gYXdhaXQgQ29udGV4dC5hcmdzKFxuICAgICAgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkZJTkRfQlksXG4gICAgICB0aGlzLmNsYXNzLFxuICAgICAgYXJncyxcbiAgICAgIHRoaXMuYWRhcHRlcixcbiAgICAgIHRoaXMuX292ZXJyaWRlcyB8fCB7fVxuICAgICk7XG4gICAgY29uc3QgeyBsb2csIGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGNvbnRleHRBcmdzLmFyZ3MsIHRoaXMuZmluZEJ5KTtcbiAgICBsb2cudmVyYm9zZShcbiAgICAgIGBmaW5kaW5nIGFsbCAke01vZGVsLnRhYmxlTmFtZSh0aGlzLmNsYXNzKX0gd2l0aCAke2tleSBhcyBzdHJpbmd9ICR7dmFsdWV9YFxuICAgICk7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLnN0YXRlbWVudChcbiAgICAgIHRoaXMuZmluZEJ5Lm5hbWUsXG4gICAgICBrZXksXG4gICAgICB2YWx1ZSxcbiAgICAgIHt9LFxuICAgICAgLi4uY3R4QXJnc1xuICAgICkpIGFzIGFueTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGZpbmRPbmVCeShcbiAgICBrZXk6IGtleW9mIE0sXG4gICAgdmFsdWU6IGFueSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8Q29udGV4dE9mPEE+PlxuICApOiBQcm9taXNlPE0+IHtcbiAgICBjb25zdCBjb250ZXh0QXJncyA9IGF3YWl0IENvbnRleHQuYXJncyhcbiAgICAgIFByZXBhcmVkU3RhdGVtZW50S2V5cy5GSU5EX09ORV9CWSxcbiAgICAgIHRoaXMuY2xhc3MsXG4gICAgICBhcmdzLFxuICAgICAgdGhpcy5hZGFwdGVyLFxuICAgICAgdGhpcy5fb3ZlcnJpZGVzIHx8IHt9XG4gICAgKTtcbiAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gdGhpcy5sb2dDdHgoY29udGV4dEFyZ3MuYXJncywgdGhpcy5maW5kT25lQnkpO1xuICAgIGxvZy52ZXJib3NlKFxuICAgICAgYGZpbmRpbmcgT25lICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpfSB3aXRoICR7a2V5IGFzIHN0cmluZ30gJHt2YWx1ZX1gXG4gICAgKTtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuc3RhdGVtZW50KFxuICAgICAgdGhpcy5maW5kT25lQnkubmFtZSxcbiAgICAgIGtleSxcbiAgICAgIHZhbHVlLFxuICAgICAge30sXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKSkgYXMgYW55O1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgc3RhdGVtZW50KFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8Q29udGV4dE9mPEE+PlxuICApOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IGNvbnRleHRBcmdzID0gYXdhaXQgQ29udGV4dC5hcmdzKFxuICAgICAgUGVyc2lzdGVuY2VLZXlzLlNUQVRFTUVOVCxcbiAgICAgIHRoaXMuY2xhc3MsXG4gICAgICBhcmdzLFxuICAgICAgdGhpcy5hZGFwdGVyLFxuICAgICAgdGhpcy5fb3ZlcnJpZGVzIHx8IHt9XG4gICAgKTtcbiAgICBjb25zdCB7IGxvZyB9ID0gdGhpcy5sb2dDdHgoY29udGV4dEFyZ3MuYXJncywgdGhpcy5zdGF0ZW1lbnQpO1xuICAgIGxvZy52ZXJib3NlKGBFeGVjdXRpbmcgcHJlcGFyZWQgc3RhdGVtZW50ICR7bmFtZX1gKTtcbiAgICByZXR1cm4gdGhpcy5hZGFwdGVyLmV2YWx1YXRlVHJhbnNhY3Rpb24oXG4gICAgICBQZXJzaXN0ZW5jZUtleXMuU1RBVEVNRU5ULFxuICAgICAgY29udGV4dEFyZ3MuYXJnc1xuICAgICk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBjcmVhdGUoXG4gICAgbW9kZWw6IE0sXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPENvbnRleHRPZjxBPj5cbiAgKTogUHJvbWlzZTxNPiB7XG4gICAgY29uc3QgeyBjdHgsIGxvZywgY3R4QXJncyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5jcmVhdGUpO1xuICAgIGxvZy5kZWJ1ZyhcbiAgICAgIGBDcmVhdGluZyBuZXcgJHt0aGlzLmNsYXNzLm5hbWV9IGluIHRhYmxlICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpfWBcbiAgICApO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItY29uc3RcbiAgICBsZXQgeyByZWNvcmQsIGlkLCB0cmFuc2llbnQgfSA9IHRoaXMuYWRhcHRlci5wcmVwYXJlKG1vZGVsLCBjdHgpO1xuICAgIHJlY29yZCA9IGF3YWl0IHRoaXMuYWRhcHRlci5jcmVhdGUoXG4gICAgICB0aGlzLmNsYXNzLFxuICAgICAgaWQsXG4gICAgICByZWNvcmQsXG4gICAgICB0cmFuc2llbnQsXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5hZGFwdGVyLnJldmVydDxNPihyZWNvcmQsIHRoaXMuY2xhc3MsIGlkLCB0cmFuc2llbnQsIGN0eCk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyB1cGRhdGUoXG4gICAgbW9kZWw6IE0sXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPENvbnRleHRPZjxBPj5cbiAgKTogUHJvbWlzZTxNPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzLCBsb2csIGN0eCB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy51cGRhdGUpO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItY29uc3RcbiAgICBsZXQgeyByZWNvcmQsIGlkLCB0cmFuc2llbnQgfSA9IHRoaXMuYWRhcHRlci5wcmVwYXJlKG1vZGVsLCBjdHgpO1xuICAgIGxvZy5kZWJ1ZyhcbiAgICAgIGB1cGRhdGluZyAke3RoaXMuY2xhc3MubmFtZX0gaW4gdGFibGUgJHtNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcyl9IHdpdGggaWQgJHtpZH1gXG4gICAgKTtcbiAgICByZWNvcmQgPSBhd2FpdCB0aGlzLmFkYXB0ZXIudXBkYXRlKFxuICAgICAgdGhpcy5jbGFzcyxcbiAgICAgIGlkLFxuICAgICAgcmVjb3JkLFxuICAgICAgdHJhbnNpZW50LFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuYWRhcHRlci5yZXZlcnQ8TT4ocmVjb3JkLCB0aGlzLmNsYXNzLCBpZCwgdHJhbnNpZW50LCBjdHgpO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgY3JlYXRlQWxsKFxuICAgIG1vZGVsczogTVtdLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxDb250ZXh0T2Y8QT4+XG4gICk6IFByb21pc2U8TVtdPiB7XG4gICAgaWYgKCFtb2RlbHMubGVuZ3RoKSByZXR1cm4gbW9kZWxzO1xuICAgIGNvbnN0IHsgY3R4LCBsb2csIGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMuY3JlYXRlQWxsKTtcbiAgICBsb2cuZGVidWcoXG4gICAgICBgQ3JlYXRpbmcgJHttb2RlbHMubGVuZ3RofSBuZXcgJHt0aGlzLmNsYXNzLm5hbWV9IGluIHRhYmxlICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpfWBcbiAgICApO1xuXG4gICAgY29uc3QgcHJlcGFyZWQgPSBtb2RlbHMubWFwKChtKSA9PiB0aGlzLmFkYXB0ZXIucHJlcGFyZShtLCBjdHgpKTtcbiAgICBjb25zdCBpZHMgPSBwcmVwYXJlZC5tYXAoKHApID0+IHAuaWQpO1xuICAgIGxldCByZWNvcmRzID0gcHJlcGFyZWQubWFwKChwKSA9PiBwLnJlY29yZCk7XG4gICAgY29uc3QgdHJhbnNpZW50ID0gcHJlcGFyZWQubWFwKChwKSA9PiBwLnRyYW5zaWVudCk7XG4gICAgcmVjb3JkcyA9IGF3YWl0IHRoaXMuYWRhcHRlci5jcmVhdGVBbGwoXG4gICAgICB0aGlzLmNsYXNzLFxuICAgICAgaWRzIGFzIFByaW1hcnlLZXlUeXBlW10sXG4gICAgICByZWNvcmRzLFxuICAgICAgdHJhbnNpZW50LFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gICAgcmV0dXJuIHJlY29yZHMubWFwKChyLCBpKSA9PlxuICAgICAgdGhpcy5hZGFwdGVyLnJldmVydChcbiAgICAgICAgcixcbiAgICAgICAgdGhpcy5jbGFzcyxcbiAgICAgICAgaWRzW2ldLFxuICAgICAgICBjdHguZ2V0KFwicmVidWlsZFdpdGhUcmFuc2llbnRcIikgPyBwcmVwYXJlZFtpXS50cmFuc2llbnQgOiB1bmRlZmluZWQsXG4gICAgICAgIGN0eFxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyB1cGRhdGVBbGwoXG4gICAgbW9kZWxzOiBNW10sXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPENvbnRleHRPZjxBPj5cbiAgKTogUHJvbWlzZTxNW10+IHtcbiAgICBjb25zdCB7IGN0eCwgbG9nLCBjdHhBcmdzIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLnVwZGF0ZUFsbCk7XG4gICAgbG9nLmRlYnVnKFxuICAgICAgYFVwZGF0aW5nICR7bW9kZWxzLmxlbmd0aH0gbmV3ICR7dGhpcy5jbGFzcy5uYW1lfSBpbiB0YWJsZSAke01vZGVsLnRhYmxlTmFtZSh0aGlzLmNsYXNzKX1gXG4gICAgKTtcblxuICAgIGNvbnN0IHJlY29yZHMgPSBtb2RlbHMubWFwKChtKSA9PiB0aGlzLmFkYXB0ZXIucHJlcGFyZShtLCBjdHgpKTtcbiAgICBjb25zdCB1cGRhdGVkID0gYXdhaXQgdGhpcy5hZGFwdGVyLnVwZGF0ZUFsbChcbiAgICAgIHRoaXMuY2xhc3MsXG4gICAgICByZWNvcmRzLm1hcCgocikgPT4gci5pZCksXG4gICAgICByZWNvcmRzLm1hcCgocikgPT4gci5yZWNvcmQpLFxuICAgICAgcmVjb3Jkcy5tYXAoKHIpID0+IHIudHJhbnNpZW50KSxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICAgIHJldHVybiB1cGRhdGVkLm1hcCgodSwgaSkgPT5cbiAgICAgIHRoaXMuYWRhcHRlci5yZXZlcnQoXG4gICAgICAgIHUsXG4gICAgICAgIHRoaXMuY2xhc3MsXG4gICAgICAgIHJlY29yZHNbaV0uaWQsXG4gICAgICAgIGN0eC5nZXQoXCJyZWJ1aWxkV2l0aFRyYW5zaWVudFwiKSA/IHJlY29yZHNbaV0udHJhbnNpZW50IDogdW5kZWZpbmVkLFxuICAgICAgICBjdHhcbiAgICAgIClcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -18,4 +18,4 @@ class FabricClientStatement extends core_1.Statement {
|
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
20
|
exports.FabricClientStatement = FabricClientStatement;
|
|
21
|
-
//# sourceMappingURL=
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQ2xpZW50U3RhdGVtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9GYWJyaWNDbGllbnRTdGF0ZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBS3dCO0FBS3hCLE1BQWEscUJBQTBDLFNBQVEsZ0JBSzlEO0lBQ0MsWUFBWSxPQUE0QixFQUFFLFNBQWlDO1FBQ3pFLEtBQUssQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVrQixLQUFLO1FBQ3RCLE1BQU0sSUFBSSx1QkFBZ0IsQ0FDeEIsMklBQTJJLENBQzVJLENBQUM7SUFDSixDQUFDO0lBRWtCLGNBQWM7SUFDL0IsNkRBQTZEO0lBQzdELFNBQXVCO0lBQ3ZCLDZEQUE2RDtJQUM3RCxHQUFHLElBQVc7UUFFZCxNQUFNLElBQUksdUJBQWdCLENBQ3hCLDJJQUEySSxDQUM1SSxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBMUJELHNEQTBCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFkYXB0ZXJGbGFncyxcbiAgQ29uZGl0aW9uLFxuICBTdGF0ZW1lbnQsXG4gIFVuc3VwcG9ydGVkRXJyb3IsXG59IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgTW9kZWwgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBGYWJyaWNDbGllbnRBZGFwdGVyIH0gZnJvbSBcIi4vRmFicmljQ2xpZW50QWRhcHRlclwiO1xuaW1wb3J0IHsgTWFuZ29RdWVyeSB9IGZyb20gXCJAZGVjYWYtdHMvZm9yLWNvdWNoZGJcIjtcblxuZXhwb3J0IGNsYXNzIEZhYnJpY0NsaWVudFN0YXRlbWVudDxNIGV4dGVuZHMgTW9kZWwsIFI+IGV4dGVuZHMgU3RhdGVtZW50PFxuICBNLFxuICBGYWJyaWNDbGllbnRBZGFwdGVyLFxuICBSLFxuICBNYW5nb1F1ZXJ5XG4+IHtcbiAgY29uc3RydWN0b3IoYWRhcHRlcjogRmFicmljQ2xpZW50QWRhcHRlciwgb3ZlcnJpZGVzPzogUGFydGlhbDxBZGFwdGVyRmxhZ3M+KSB7XG4gICAgc3VwZXIoYWRhcHRlciwgb3ZlcnJpZGVzKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBidWlsZCgpOiBNYW5nb1F1ZXJ5IHtcbiAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRFcnJvcihcbiAgICAgIGBUaGlzIG1ldGhvZCBpcyBvbmx5IGNhbGxlZCBpcyBwcmVwYXJlZCBzdGF0ZW1lbnRzIGFyZSBub3QgdXNlZC4gSWYgc28sIGEgZGVkaWNhdGVkIGltcGxlbWVudGF0aW9uIGZvciB0aGUgbmF0aXZlIHF1ZXJpZXMgdXNlZCBpcyByZXF1aXJlZGBcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHBhcnNlQ29uZGl0aW9uKFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICBjb25kaXRpb246IENvbmRpdGlvbjxNPixcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogTWFuZ29RdWVyeSB7XG4gICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkRXJyb3IoXG4gICAgICBgVGhpcyBtZXRob2QgaXMgb25seSBjYWxsZWQgaXMgcHJlcGFyZWQgc3RhdGVtZW50cyBhcmUgbm90IHVzZWQuIElzIHNvLCBhIGRlZGljYXRlZCBpbXBsZW1lbnRhdGlvbiBmb3IgdGhlIG5hdGl2ZSBxdWVyaWVzIHVzZWQgaXMgcmVxdWlyZWRgXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
@@ -340,4 +340,4 @@ class FabricERC20ClientRepository extends FabricClientRepository_1.FabricClientR
|
|
|
340
340
|
}
|
|
341
341
|
}
|
|
342
342
|
exports.FabricERC20ClientRepository = FabricERC20ClientRepository;
|
|
343
|
-
//# sourceMappingURL=FabricERC20ClientRepository.js.map
|
|
343
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljRVJDMjBDbGllbnRSZXBvc2l0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaWVudC9lcmMyMC9GYWJyaWNFUkMyMENsaWVudFJlcG9zaXRvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNEVBQW1FO0FBQ25FLCtEQUF1RTtBQUN2RSx5RUFBbUU7QUFFbkUsMEVBQWlFO0FBQ2pFLHlDQUErRTtBQUMvRSwyREFJaUM7QUFFakM7OztHQUdHO0FBQ0gsTUFBYSwyQkFFWCxTQUFRLCtDQUFzQzthQUMvQixlQUFVLEdBQUcsSUFBSSxtQ0FBZ0IsRUFBRSxBQUF6QixDQUEwQjthQUtwQyxZQUFPLEdBQUcsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLEFBQTFCLENBQTJCO0lBRWpEOzs7Ozs7Ozs7T0FTRztJQUNNLEtBQUssQ0FBQyxlQUFlLENBQzVCLEtBQThCLEVBQzlCLEtBQXFELEVBQ3JELEVBQVksRUFDWixHQUFHLElBQWtDO1FBRXJDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZTtZQUN2QixNQUFNLElBQUksNkJBQWEsQ0FDckIsb0VBQW9FLENBQ3JFLENBQUM7UUFDSixNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNqRSxHQUFHLENBQUMsT0FBTyxDQUNULFlBQVksSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsa0JBQWtCLElBQUksRUFBRSxDQUNqRSxDQUFDO1FBRUYsS0FBSyxHQUFHLENBQ04sT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyw0QkFBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUNuQyxDQUFDO1FBQ3BCLElBQUksUUFBdUMsQ0FBQztRQUU1QyxJQUFJLEVBQUUsS0FBSyxTQUFTLEVB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QyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSCxLQUFLLENBQUMsb0JBQW9CO1FBQ3hCLE1BQU0sd0JBQXdCLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUNyRSxzQkFBc0IsQ0FDdkIsQ0FBQztRQUVGLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0gsS0FBSyxDQUFDLGVBQWU7UUFDbkIsTUFBTSxlQUFlLEdBQ25CLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRTVELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN0QyxDQUFDOztBQTlYSCxrRUErWEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGYWJyaWNDbGllbnRSZXBvc2l0b3J5IH0gZnJvbSBcIi4uL0ZhYnJpY0NsaWVudFJlcG9zaXRvcnlcIjtcbmltcG9ydCB7IEVSQzIwVG9rZW4sIEVSQzIwV2FsbGV0IH0gZnJvbSBcIi4uLy4uL2NvbnRyYWN0cy9lcmMyMC9tb2RlbHNcIjtcbmltcG9ydCB7IE1vZGVsLCBTZXJpYWxpemVyIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgRmFicmljQ2xpZW50QWRhcHRlciB9IGZyb20gXCIuLi9GYWJyaWNDbGllbnRBZGFwdGVyXCI7XG5pbXBvcnQgeyBDbGllbnRTZXJpYWxpemVyIH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9DbGllbnRTZXJpYWxpemVyXCI7XG5pbXBvcnQgeyBDb250ZXh0T2YsIENvbnRleHR1YWxBcmdzLCBFdmVudElkcywgU2VxdWVuY2UgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7XG4gIEJ1bGtDcnVkT3BlcmF0aW9uS2V5cyxcbiAgSW50ZXJuYWxFcnJvcixcbiAgT3BlcmF0aW9uS2V5cyxcbn0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3RvciB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuLyoqXG4gKiBSZXBvc2l0b3J5IGZvciBpbnRlcmFjdGluZyB3aXRoIEVSQzIwIGNvbnRyYWN0cyBvbiBhIEh5cGVybGVkZ2VyIEZhYnJpYyBuZXR3b3JrLlxuICogRXh0ZW5kcyB0aGUgYmFzZSBGYWJyaWNDbGllbnRSZXBvc2l0b3J5IGNsYXNzIGFuZCB1dGlsaXplcyB0aGUgQ2xpZW50U2VyaWFsaXplciBmb3IgZGF0YSBzZXJpYWxpemF0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgRmFicmljRVJDMjBDbGllbnRSZXBvc2l0b3J5PFxuICBBIGV4dGVuZHMgRmFicmljQ2xpZW50QWRhcHRlcixcbj4gZXh0ZW5kcyBGYWJyaWNDbGllbnRSZXBvc2l0b3J5PEVSQzIwV2FsbGV0LCBBPiB7XG4gIHByaXZhdGUgc3RhdGljIHNlcmlhbGl6ZXIgPSBuZXcgQ2xpZW50U2VyaWFsaXplcigpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBzZXJpYWxpemVyOiBTZXJpYWxpemVyPGFueT4gPVxuICAgIEZhYnJpY0VSQzIwQ2xpZW50UmVwb3NpdG9yeS5zZXJpYWxpemVyO1xuXG4gIHByaXZhdGUgc3RhdGljIGRlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoXCJ1dGY4XCIpO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gTm90aWZpZXMgYWxsIG9ic2VydmVycyBvZiBhbiBldmVudC5cbiAgICogQHN1bW1hcnkgVXBkYXRlcyBhbGwgcmVnaXN0ZXJlZCBvYnNlcnZlcnMgd2l0aCBpbmZvcm1hdGlvbiBhYm91dCBhIGRhdGFiYXNlIGV2ZW50LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGFibGUgLSBUaGUgdGFibGUgbmFtZSB3aGVyZSB0aGUgZXZlbnQgb2NjdXJyZWQuXG4gICAqIEBwYXJhbSB7T3BlcmF0aW9uS2V5c3xCdWxrQ3J1ZE9wZXJhdGlvbktleXN8c3RyaW5nfSBldmVudCAtIFRoZSB0eXBlIG9mIGV2ZW50IHRoYXQgb2NjdXJyZWQuXG4gICAqIEBwYXJhbSB7RXZlbnRJZHN9IGlkIC0gVGhlIElEIG9yIElEcyBvZiB0aGUgYWZmZWN0ZWQgcmVjb3Jkcy5cbiAgICogQHBhcmFtIHsuLi5hbnlbXX0gYXJncyAtIEFkZGl0aW9uYWwgYXJndW1lbnRzLlxuICAgKiBAcmV0dXJuIHtQcm9taXNlPHZvaWQ+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIGFsbCBvYnNlcnZlcnMgaGF2ZSBiZWVuIG5vdGlmaWVkLlxuICAgKiBAdGhyb3dzIHtJbnRlcm5hbEVycm9yfSBJZiB0aGUgb2JzZXJ2ZXIgaGFuZGxlciBpcyBub3QgaW5pdGlhbGl6ZWQuXG4gICAqL1xuICBvdmVycmlkZSBhc3luYyB1cGRhdGVPYnNlcnZlcnM8TSBleHRlbmRzIE1vZGVsPihcbiAgICB0YWJsZTogQ29uc3RydWN0b3I8TT4gfCBzdHJpbmcsXG4gICAgZXZlbnQ6IE9wZXJhdGlvbktleXMgfCBCdWxrQ3J1ZE9wZXJhdGlvbktleXMgfCBzdHJpbmcsXG4gICAgaWQ6IEV2ZW50SWRzLFxuICAgIC4uLmFyZ3M6IENvbnRleHR1YWxBcmdzPENvbnRleHRPZjxBPj5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLm9ic2VydmVySGFuZGxlcilcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICBcIk9ic2VydmVySGFuZGxlciBub3QgaW5pdGlhbGl6ZWQuIERpZCB5b3UgcmVnaXN0ZXIgYW55IG9ic2VydmFibGVzP1wiXG4gICAgICApO1xuICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLnVwZGF0ZU9ic2VydmVycyk7XG4gICAgbG9nLnZlcmJvc2UoXG4gICAgICBgVXBkYXRpbmcgJHt0aGlzLm9ic2VydmVySGFuZGxlci5jb3VudCgpfSBvYnNlcnZlcnMgZm9yICR7dGhpc31gXG4gICAgKTtcblxuICAgIHRhYmxlID0gKFxuICAgICAgdHlwZW9mIHRhYmxlID09PSBcInN0cmluZ1wiID8gTW9kZWwuZ2V0KHRhYmxlKSA6IHRhYmxlXG4gICAgKSBhcyBDb25zdHJ1Y3RvcjxNPjtcbiAgICBsZXQgcGFyc2VkSWQ6IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuXG4gICAgaWYgKGlkID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHBhcnNlZElkID0gdW5kZWZpbmVkO1xuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShpZCkpIHtcbiAgICAgIHBhcnNlZElkID0gaWQubWFwKFxuICAgICAgICAoaSkgPT4gU2VxdWVuY2UucGFyc2VWYWx1ZShNb2RlbC5zZXF1ZW5jZUZvcih0YWJsZSkudHlwZSwgaSkgYXMgc3RyaW5nXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXJzZWRJZCA9IFNlcXVlbmNlLnBhcnNlVmFsdWUoXG4gICAgICAgIE1vZGVsLnNlcXVlbmNlRm9yKHRhYmxlKS50eXBlLFxuICAgICAgICBpZFxuICAgICAgKSBhcyBzdHJpbmc7XG4gICAgfVxuICAgIGF3YWl0IHRoaXMub2JzZXJ2ZXJIYW5kbGVyLnVwZGF0ZU9ic2VydmVycyhcbiAgICAgIHRhYmxlLFxuICAgICAgZXZlbnQsXG4gICAgICBwYXJzZWRJZCEsXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWNvZGVzIGEgVWludDhBcnJheSBpbnRvIGEgc3RyaW5nIHVzaW5nIHRoZSBUZXh0RGVjb2Rlci5cbiAgICpcbiAgICogQHBhcmFtIGRhdGEgLSBUaGUgVWludDhBcnJheSB0byBkZWNvZGUuXG4gICAqIEByZXR1cm5zIFRoZSBkZWNvZGVkIHN0cmluZy5cbiAgICovXG4gIGRlY29kZShkYXRhOiBVaW50OEFycmF5KTogc3RyaW5nIHtcbiAgICByZXR1cm4gRmFicmljRVJDMjBDbGllbnRSZXBvc2l0b3J5LmRlY29kZXIuZGVjb2RlKGRhdGEpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoYWRhcHRlcj86IEEpIHtcbiAgICBzdXBlcihhZGFwdGVyLCBFUkMyMFdhbGxldCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSBuYW1lIG9mIHRoZSBFUkMyMCB0b2tlbi5cbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFRoaXMgZnVuY3Rpb24gaW50ZXJhY3RzIHdpdGggdGhlIGJsb2NrY2hhaW4gbmV0d29yayB0byBmZXRjaCB0aGUgbmFtZSBvZiB0aGUgRVJDMjAgdG9rZW4uXG4gICAqIEl0IGNhbGxzIHRoZSBcIlRva2VuTmFtZVwiIHRyYW5zYWN0aW9uIG9uIHRoZSBzbWFydCBjb250cmFjdCBhbmQgZGVjb2RlcyB0aGUgcmV0dXJuZWQgZGF0YS5cbiAgICpcbiAgICogQHJldHVybnMge1Byb21pc2U8c3RyaW5nPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgbmFtZSBvZiB0aGUgRVJDMjAgdG9rZW4uXG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgdHJhbnNhY3Rpb24gZmFpbHMgb3IgdGhlIGRlY29kaW5nIHByb2Nlc3MgZmFpbHMuXG4gICAqL1xuICBhc3luYyB0b2tlbk5hbWUoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBuYW1lID0gYXdhaXQgdGhpcy5hZGFwdGVyLmV2YWx1YXRlVHJhbnNhY3Rpb24oXCJUb2tlbk5hbWVcIik7XG4gICAgcmV0dXJuIHRoaXMuZGVjb2RlKG5hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgc3ltYm9sIG9mIHRoZSBFUkMyMCB0b2tlbi5cbiAgICpcbiAgICogVGhpcyBmdW5jdGlvbiBpbnRlcmFjdHMgd2l0aCB0aGUgYmxvY2tjaGFpbiBuZXR3b3JrIHRvIGZldGNoIHRoZSBzeW1ib2wgb2YgdGhlIEVSQzIwIHRva2VuLlxuICAgKiBJdCBjYWxscyB0aGUgXCJTeW1ib2xcIiB0cmFuc2FjdGlvbiBvbiB0aGUgc21hcnQgY29udHJhY3QgYW5kIGRlY29kZXMgdGhlIHJldHVybmVkIGRhdGEuXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHN0cmluZz59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIHN5bWJvbCBvZiB0aGUgRVJDMjAgdG9rZW4uXG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgdHJhbnNhY3Rpb24gZmFpbHMgb3IgdGhlIGRlY29kaW5nIHByb2Nlc3MgZmFpbHMuXG4gICAqL1xuICBhc3luYyBzeW1ib2woKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBzeW1ib2wgPSBhd2FpdCB0aGlzLmFkYXB0ZXIuZXZhbHVhdGVUcmFuc2FjdGlvbihcIlN5bWJvbFwiKTtcbiAgICByZXR1cm4gdGhpcy5kZWNvZGUoc3ltYm9sKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgdGhlIG51bWJlciBvZiBkZWNpbWFsIHBsYWNlcyBmb3IgdGhlIEVSQzIwIHRva2VuLlxuICAgKlxuICAgKiBUaGlzIGZ1bmN0aW9uIGludGVyYWN0cyB3aXRoIHRoZSBibG9ja2NoYWluIG5ldHdvcmsgdG8gZmV0Y2ggdGhlIG51bWJlciBvZiBkZWNpbWFsIHBsYWNlcyBmb3IgdGhlIEVSQzIwIHRva2VuLlxuICAgKiBJdCBjYWxscyB0aGUgXCJEZWNpbWFsc1wiIHRyYW5zYWN0aW9uIG9uIHRoZSBzbWFydCBjb250cmFjdCBhbmQgZGVjb2RlcyB0aGUgcmV0dXJuZWQgZGF0YS5cbiAgICpcbiAgICogQHJldHVybnMge1Byb21pc2U8bnVtYmVyPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgbnVtYmVyIG9mIGRlY2ltYWwgcGxhY2VzIGZvciB0aGUgRVJDMjAgdG9rZW4uXG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgdHJhbnNhY3Rpb24gZmFpbHMgb3IgdGhlIGRlY29kaW5nIHByb2Nlc3MgZmFpbHMuXG4gICAqL1xuICBhc3luYyBkZWNpbWFscygpOiBQcm9taXNlPG51bWJlcj4ge1xuICAgIGNvbnN0IGRlY2ltYWxzID0gYXdhaXQgdGhpcy5hZGFwdGVyLmV2YWx1YXRlVHJhbnNhY3Rpb24oXCJEZWNpbWFsc1wiKTtcbiAgICByZXR1cm4gTnVtYmVyKHRoaXMuZGVjb2RlKGRlY2ltYWxzKSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSB0b3RhbCBzdXBwbHkgb2YgdGhlIEVSQzIwIHRva2VuLlxuICAgKlxuICAgKiBUaGlzIGZ1bmN0aW9uIGludGVyYWN0cyB3aXRoIHRoZSBibG9ja2NoYWluIG5ldHdvcmsgdG8gZmV0Y2ggdGhlIHRvdGFsIHN1cHBseSBvZiB0aGUgRVJDMjAgdG9rZW4uXG4gICAqIEl0IGNhbGxzIHRoZSBcIlRvdGFsU3VwcGx5XCIgdHJhbnNhY3Rpb24gb24gdGhlIHNtYXJ0IGNvbnRyYWN0IGFuZCBkZWNvZGVzIHRoZSByZXR1cm5lZCBkYXRhLlxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxudW1iZXI+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSB0b3RhbCBzdXBwbHkgb2YgdGhlIEVSQzIwIHRva2VuLlxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlIHRyYW5zYWN0aW9uIGZhaWxzIG9yIHRoZSBkZWNvZGluZyBwcm9jZXNzIGZhaWxzLlxuICAgKi9cbiAgYXN5bmMgdG90YWxTdXBwbHkoKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICBjb25zdCB0b3RhbCA9IGF3YWl0IHRoaXMuYWRhcHRlci5ldmFsdWF0ZVRyYW5zYWN0aW9uKFwiVG90YWxTdXBwbHlcIik7XG4gICAgcmV0dXJuIE51bWJlcih0aGlzLmRlY29kZSh0b3RhbCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgYmFsYW5jZSBvZiB0aGUgRVJDMjAgdG9rZW4gZm9yIGEgc3BlY2lmaWVkIG93bmVyLlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVGhpcyBmdW5jdGlvbiBpbnRlcmFjdHMgd2l0aCB0aGUgYmxvY2tjaGFpbiBuZXR3b3JrIHRvIGZldGNoIHRoZSBiYWxhbmNlIG9mIHRoZSBFUkMyMCB0b2tlbiBmb3IgYSBnaXZlbiBvd25lci5cbiAgICogSXQgY2FsbHMgdGhlIFwiQmFsYW5jZU9mXCIgdHJhbnNhY3Rpb24gb24gdGhlIHNtYXJ0IGNvbnRyYWN0IHdpdGggdGhlIHByb3ZpZGVkIG93bmVyJ3MgYWRkcmVzcyBhcyBhIHBhcmFtZXRlci5cbiAgICogVGhlIHJldHVybmVkIGRhdGEgaXMgdGhlbiBkZWNvZGVkIGFuZCBjb252ZXJ0ZWQgdG8gYSBudW1iZXIuXG4gICAqXG4gICAqIEBwYXJhbSBvd25lciAtIFRoZSBhZGRyZXNzIG9mIHRoZSBFUkMyMCB0b2tlbiBvd25lci5cbiAgICpcbiAgICogQHJldHVybnMge1Byb21pc2U8bnVtYmVyPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgYmFsYW5jZSBvZiB0aGUgRVJDMjAgdG9rZW4gZm9yIHRoZSBzcGVjaWZpZWQgb3duZXIuXG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgdHJhbnNhY3Rpb24gZmFpbHMgb3IgdGhlIGRlY29kaW5nIHByb2Nlc3MgZmFpbHMuXG4gICAqL1xuICBhc3luYyBiYWxhbmNlT2Yob3duZXI6IHN0cmluZyk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgY29uc3QgYmFsYW5jZSA9IGF3YWl0IHRoaXMuYWRhcHRlci5ldmFsdWF0ZVRyYW5zYWN0aW9uKFwiQmFsYW5jZU9mXCIsIFtcbiAgICAgIG93bmVyLFxuICAgIF0pO1xuICAgIHJldHVybiBOdW1iZXIodGhpcy5kZWNvZGUoYmFsYW5jZSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyYW5zZmVycyBhIHNwZWNpZmllZCBhbW91bnQgb2YgRVJDMjAgdG9rZW5zIHRvIGEgcmVjaXBpZW50LlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVGhpcyBmdW5jdGlvbiBpbnRlcmFjdHMgd2l0aCB0aGUgYmxvY2tjaGFpbiBuZXR3b3JrIHRvIHRyYW5zZmVyIGEgc3BlY2lmaWVkIGFtb3VudCBvZiBFUkMyMCB0b2tlbnMgdG8gYSByZWNpcGllbnQuXG4gICAqIEl0IGNhbGxzIHRoZSBcIlRyYW5zZmVyXCIgdHJhbnNhY3Rpb24gb24gdGhlIHNtYXJ0IGNvbnRyYWN0IHdpdGggdGhlIHJlY2lwaWVudCdzIGFkZHJlc3MgYW5kIHRoZSB0cmFuc2ZlciBhbW91bnQgYXMgcGFyYW1ldGVycy5cbiAgICogVGhlIHJldHVybmVkIGRhdGEgaXMgdGhlbiBkZWNvZGVkIGFuZCBjaGVja2VkIHRvIGRldGVybWluZSBpZiB0aGUgdHJhbnNmZXIgd2FzIHN1Y2Nlc3NmdWwuXG4gICAqXG4gICAqIEBwYXJhbSB0byAtIFRoZSBhZGRyZXNzIG9mIHRoZSByZWNpcGllbnQuXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBhbW91bnQgb2YgRVJDMjAgdG9rZW5zIHRvIHRyYW5zZmVyLlxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxib29sZWFuPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCBgdHJ1ZWAgaWYgdGhlIHRyYW5zZmVyIHdhcyBzdWNjZXNzZnVsLCBhbmQgYGZhbHNlYCBvdGhlcndpc2UuXG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgdHJhbnNhY3Rpb24gZmFpbHMgb3IgdGhlIGRlY29kaW5nIHByb2Nlc3MgZmFpbHMuXG4gICAqL1xuICBhc3luYyB0cmFuc2Zlcih0bzogc3RyaW5nLCB2YWx1ZTogbnVtYmVyKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgdHJhbnNmZXJyZWQgPSBhd2FpdCB0aGlzLmFkYXB0ZXIuc3VibWl0VHJhbnNhY3Rpb24oXCJUcmFuc2ZlclwiLCBbXG4gICAgICB0byxcbiAgICAgIHZhbHVlLnRvU3RyaW5nKCksXG4gICAgXSk7XG4gICAgcmV0dXJuIHRoaXMuZGVjb2RlKHRyYW5zZmVycmVkKSA9PT0gXCJ0cnVlXCIgPyB0cnVlIDogZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogVHJhbnNmZXJzIGEgc3BlY2lmaWVkIGFtb3VudCBvZiBFUkMyMCB0b2tlbnMgZnJvbSBvbmUgYWNjb3VudCB0byBhbm90aGVyLlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVGhpcyBmdW5jdGlvbiBpbnRlcmFjdHMgd2l0aCB0aGUgYmxvY2tjaGFpbiBuZXR3b3JrIHRvIHRyYW5zZmVyIGEgc3BlY2lmaWVkIGFtb3VudCBvZiBFUkMyMCB0b2tlbnMgZnJvbSBvbmUgYWNjb3VudCB0byBhbm90aGVyLlxuICAgKiBGb3IgdGhpcyB0cmFuc2ZlciB0byB3b3JrIHRoZSBzcGVuZGVyICggYWNjb3VudCB0aGF0IHdpbGwgdHJpZ2dlciB0aGlzIGZ1bmN0aW9uICkgbmVlZCB0byBoYXZlIHRoZSB2YWx1ZSBhcHByb3ZlZCBhcyBhbiBhbGxvd2FuY2UgYnkgdGhlIHNlbmRlci5cbiAgICogSXQgY2FsbHMgdGhlIFwiVHJhbnNmZXJGcm9tXCIgdHJhbnNhY3Rpb24gb24gdGhlIHNtYXJ0IGNvbnRyYWN0IHdpdGggdGhlIHNlbmRlcidzIGFkZHJlc3MsIHJlY2lwaWVudCdzIGFkZHJlc3MsIGFuZCB0aGUgdHJhbnNmZXIgYW1vdW50IGFzIHBhcmFtZXRlcnMuXG4gICAqIFRoZSByZXR1cm5lZCBkYXRhIGlzIHRoZW4gZGVjb2RlZCBhbmQgY2hlY2tlZCB0byBkZXRlcm1pbmUgaWYgdGhlIHRyYW5zZmVyIHdhcyBzdWNjZXNzZnVsLlxuICAgKlxuICAgKiBAcGFyYW0gZnJvbSAtIFRoZSBhZGRyZXNzIG9mIHRoZSBzZW5kZXIuXG4gICAqIEBwYXJhbSB0byAtIFRoZSBhZGRyZXNzIG9mIHRoZSByZWNpcGllbnQuXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBhbW91bnQgb2YgRVJDMjAgdG9rZW5zIHRvIHRyYW5zZmVyLlxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxib29sZWFuPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCBgdHJ1ZWAgaWYgdGhlIHRyYW5zZmVyIHdhcyBzdWNjZXNzZnVsLCBhbmQgYGZhbHNlYCBvdGhlcndpc2UuXG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgdHJhbnNhY3Rpb24gZmFpbHMgb3IgdGhlIGRlY29kaW5nIHByb2Nlc3MgZmFpbHMuXG4gICAqL1xuICBhc3luYyB0cmFuc2ZlckZyb20oXG4gICAgZnJvbTogc3RyaW5nLFxuICAgIHRvOiBzdHJpbmcsXG4gICAgdmFsdWU6IG51bWJlclxuICApOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCB0cmFuc2ZlcnJlZCA9IGF3YWl0IHRoaXMuYWRhcHRlci5zdWJtaXRUcmFuc2FjdGlvbihcIlRyYW5zZmVyRnJvbVwiLCBbXG4gICAgICBmcm9tLFxuICAgICAgdG8sXG4gICAgICB2YWx1ZS50b1N0cmluZygpLFxuICAgIF0pO1xuXG4gICAgcmV0dXJuIHRoaXMuZGVjb2RlKHRyYW5zZmVycmVkKSA9PT0gXCJ0cnVlXCIgPyB0cnVlIDogZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogQXBwcm92ZXMgYSBzcGVjaWZpZWQgYW1vdW50IG9mIEVSQzIwIHRva2VucyB0byBiZSBzcGVudCBieSBhIHNwZWNpZmllZCBzcGVuZGVyLlxuICAgKlxuICAgKiBUaGlzIGZ1bmN0aW9uIGludGVyYWN0cyB3aXRoIHRoZSBibG9ja2NoYWluIG5ldHdvcmsgdG8gYXBwcm92ZSBhIHNwZWNpZmllZCBhbW91bnQgb2YgRVJDMjAgdG9rZW5zIHRvIGJlIHNwZW50IGJ5IGEgc3BlY2lmaWVkIHNwZW5kZXIuXG4gICAqIEl0IGNhbGxzIHRoZSBcIkFwcHJvdmVcIiB0cmFuc2FjdGlvbiBvbiB0aGUgc21hcnQgY29udHJhY3Qgd2l0aCB0aGUgc3BlbmRlcidzIGFkZHJlc3MgYW5kIHRoZSBhcHByb3ZhbCBhbW91bnQgYXMgcGFyYW1ldGVycy5cbiAgICogVGhlIHJldHVybmVkIGRhdGEgaXMgdGhlbiBkZWNvZGVkIGFuZCBjaGVja2VkIHRvIGRldGVybWluZSBpZiB0aGUgYXBwcm92YWwgd2FzIHN1Y2Nlc3NmdWwuXG4gICAqXG4gICAqIEBwYXJhbSBzcGVuZGVyIC0gVGhlIGFkZHJlc3Mgb2YgdGhlIHNwZW5kZXIuXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBhbW91bnQgb2YgRVJDMjAgdG9rZW5zIHRvIGFwcHJvdmUgZm9yIHRoZSBzcGVuZGVyLlxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxib29sZWFuPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCBgdHJ1ZWAgaWYgdGhlIGFwcHJvdmFsIHdhcyBzdWNjZXNzZnVsLCBhbmQgYGZhbHNlYCBvdGhlcndpc2UuXG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgdHJhbnNhY3Rpb24gZmFpbHMgb3IgdGhlIGRlY29kaW5nIHByb2Nlc3MgZmFpbHMuXG4gICAqL1xuICBhc3luYyBhcHByb3ZlKHNwZW5kZXI6IHN0cmluZywgdmFsdWU6IG51bWJlcik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGFwcHJvdmVkID0gYXdhaXQgdGhpcy5hZGFwdGVyLnN1Ym1pdFRyYW5zYWN0aW9uKFwiQXBwcm92ZVwiLCBbXG4gICAgICBzcGVuZGVyLFxuICAgICAgdmFsdWUudG9TdHJpbmcoKSxcbiAgICBdKTtcbiAgICByZXR1cm4gdGhpcy5kZWNvZGUoYXBwcm92ZWQpID09PSBcInRydWVcIiA/IHRydWUgOiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgdGhlIGFsbG93YW5jZSBvZiBFUkMyMCB0b2tlbnMgdGhhdCB0aGUgc3BlY2lmaWVkIG93bmVyIGhhcyBhcHByb3ZlZCBmb3IgYSBzcGVuZGVyLlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVGhpcyBmdW5jdGlvbiBpbnRlcmFjdHMgd2l0aCB0aGUgYmxvY2tjaGFpbiBuZXR3b3JrIHRvIGZldGNoIHRoZSBhbGxvd2FuY2Ugb2YgRVJDMjAgdG9rZW5zIHRoYXQgdGhlIHNwZWNpZmllZCBvd25lciBoYXMgYXBwcm92ZWQgZm9yIGEgc3BlbmRlci5cbiAgICogSXQgY2FsbHMgdGhlIFwiQWxsb3dhbmNlXCIgdHJhbnNhY3Rpb24gb24gdGhlIHNtYXJ0IGNvbnRyYWN0IHdpdGggdGhlIG93bmVyJ3MgYWRkcmVzcyBhbmQgdGhlIHNwZW5kZXIncyBhZGRyZXNzIGFzIHBhcmFtZXRlcnMuXG4gICAqIFRoZSByZXR1cm5lZCBkYXRhIGlzIHRoZW4gZGVjb2RlZCBhbmQgY29udmVydGVkIHRvIGEgbnVtYmVyLlxuICAgKlxuICAgKiBAcGFyYW0gb3duZXIgLSBUaGUgYWRkcmVzcyBvZiB0aGUgRVJDMjAgdG9rZW4gb3duZXIuXG4gICAqIEBwYXJhbSBzcGVuZGVyIC0gVGhlIGFkZHJlc3Mgb2YgdGhlIHNwZW5kZXIuXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPG51bWJlcj59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIGFsbG93YW5jZSBvZiBFUkMyMCB0b2tlbnMgdGhhdCB0aGUgc3BlY2lmaWVkIG93bmVyIGhhcyBhcHByb3ZlZCBmb3IgdGhlIHNwZW5kZXIuXG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgdHJhbnNhY3Rpb24gZmFpbHMgb3IgdGhlIGRlY29kaW5nIHByb2Nlc3MgZmFpbHMuXG4gICAqL1xuICBhc3luYyBhbGxvd2FuY2Uob3duZXI6IHN0cmluZywgc3BlbmRlcjogc3RyaW5nKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICBjb25zdCBhbGxvd2FuY2UgPSBhd2FpdCB0aGlzLmFkYXB0ZXIuc3VibWl0VHJhbnNhY3Rpb24oXCJBbGxvd2FuY2VcIiwgW1xuICAgICAgb3duZXIsXG4gICAgICBzcGVuZGVyLFxuICAgIF0pO1xuICAgIHJldHVybiBOdW1iZXIodGhpcy5kZWNvZGUoYWxsb3dhbmNlKSk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgdGhlIEVSQzIwIGNvbnRyYWN0IHdpdGggdGhlIHByb3ZpZGVkIHRva2VuIGluZm9ybWF0aW9uLlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVGhpcyBmdW5jdGlvbiBpbnRlcmFjdHMgd2l0aCB0aGUgYmxvY2tjaGFpbiBuZXR3b3JrIHRvIGluaXRpYWxpemUgdGhlIEVSQzIwIGNvbnRyYWN0IHdpdGggdGhlIGdpdmVuIHRva2VuIGluZm9ybWF0aW9uLlxuICAgKiBJdCBjYWxscyB0aGUgXCJJbml0aWFsaXplXCIgdHJhbnNhY3Rpb24gb24gdGhlIHNtYXJ0IGNvbnRyYWN0IHdpdGggdGhlIHNlcmlhbGl6ZWQgdG9rZW4gZGF0YSBhcyBhIHBhcmFtZXRlci5cbiAgICogVGhlIHJldHVybmVkIGRhdGEgaXMgdGhlbiBkZWNvZGVkIGFuZCBjaGVja2VkIHRvIGRldGVybWluZSBpZiB0aGUgaW5pdGlhbGl6YXRpb24gd2FzIHN1Y2Nlc3NmdWwuXG4gICAqXG4gICAqIEBwYXJhbSB0b2tlbiAtIFRoZSBFUkMyMCB0b2tlbiBpbmZvcm1hdGlvbiB0byBpbml0aWFsaXplIHRoZSBjb250cmFjdCB3aXRoLlxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxib29sZWFuPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCBgdHJ1ZWAgaWYgdGhlIGluaXRpYWxpemF0aW9uIHdhcyBzdWNjZXNzZnVsLCBhbmQgYGZhbHNlYCBvdGhlcndpc2UuXG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgdHJhbnNhY3Rpb24gZmFpbHMgb3IgdGhlIGRlY29kaW5nIHByb2Nlc3MgZmFpbHMuXG4gICAqL1xuICBhc3luYyBpbml0aWFsaXplKHRva2VuOiBFUkMyMFRva2VuKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgaW5pdGlsaWF6ZWQgPSBhd2FpdCB0aGlzLmFkYXB0ZXIuc3VibWl0VHJhbnNhY3Rpb24oXCJJbml0aWFsaXplXCIsIFtcbiAgICAgIEZhYnJpY0VSQzIwQ2xpZW50UmVwb3NpdG9yeS5zZXJpYWxpemVyLnNlcmlhbGl6ZSh0b2tlbiksXG4gICAgXSk7XG5cbiAgICByZXR1cm4gdGhpcy5kZWNvZGUoaW5pdGlsaWF6ZWQpID09PSBcInRydWVcIiA/IHRydWUgOiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIEVSQzIwIGNvbnRyYWN0IGhhcyBiZWVuIGluaXRpYWxpemVkLlxuICAgKlxuICAgKiBUaGlzIGZ1bmN0aW9uIGludGVyYWN0cyB3aXRoIHRoZSBibG9ja2NoYWluIG5ldHdvcmsgdG8gdmVyaWZ5IGlmIHRoZSBFUkMyMCBjb250cmFjdCBoYXMgYmVlbiBpbml0aWFsaXplZC5cbiAgICogSXQgY2FsbHMgdGhlIFwiQ2hlY2tJbml0aWFsaXplZFwiIHRyYW5zYWN0aW9uIG9uIHRoZSBzbWFydCBjb250cmFjdCwgd2hpY2ggZG9lcyBub3QgcmVxdWlyZSBhbnkgcGFyYW1ldGVycy5cbiAgICpcbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGluaXRpYWxpemF0aW9uIGNoZWNrIGlzIGNvbXBsZXRlZC5cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IElmIHRoZSB0cmFuc2FjdGlvbiBmYWlscy5cbiAgICovXG4gIGFzeW5jIGNoZWNrSW5pdGlhbGl6ZWQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5hZGFwdGVyLmV2YWx1YXRlVHJhbnNhY3Rpb24oXCJDaGVja0luaXRpYWxpemVkXCIpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1pbnRzIGEgc3BlY2lmaWVkIGFtb3VudCBvZiBFUkMyMCB0b2tlbnMuXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGlzIGZ1bmN0aW9uIGludGVyYWN0cyB3aXRoIHRoZSBibG9ja2NoYWluIG5ldHdvcmsgdG8gbWludCBhIHNwZWNpZmllZCBhbW91bnQgb2YgRVJDMjAgdG9rZW5zLlxuICAgKiBJdCBjYWxscyB0aGUgXCJNaW50XCIgdHJhbnNhY3Rpb24gb24gdGhlIHNtYXJ0IGNvbnRyYWN0IHdpdGggdGhlIG1pbnRpbmcgYW1vdW50IGFzIGEgcGFyYW1ldGVyLlxuICAgKiBUaGUgZnVuY3Rpb24gZG9lcyBub3QgcmV0dXJuIGFueSB2YWx1ZSwgYnV0IGl0IHVwZGF0ZXMgdGhlIG1pbnRlcidzIG51bWJlciBvZiB0b2tlbnMuXG4gICAqXG4gICAqIEBwYXJhbSBhbW91bnQgLSBUaGUgYW1vdW50IG9mIEVSQzIwIHRva2VucyB0byBtaW50LlxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgbWludGluZyBwcm9jZXNzIGlzIGNvbXBsZXRlZC5cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IElmIHRoZSB0cmFuc2FjdGlvbiBmYWlscy5cbiAgICovXG4gIGFzeW5jIG1pbnQoYW1vdW50OiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmFkYXB0ZXIuc3VibWl0VHJhbnNhY3Rpb24oXCJNaW50XCIsIFthbW91bnQudG9TdHJpbmcoKV0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1cm5zIGEgc3BlY2lmaWVkIGFtb3VudCBvZiBFUkMyMCB0b2tlbnMgZnJvbSB0aGUgbWludGVyJ3MgYWNjb3VudC5cbiAgICpcbiAgICogVGhpcyBmdW5jdGlvbiBpbnRlcmFjdHMgd2l0aCB0aGUgYmxvY2tjaGFpbiBuZXR3b3JrIHRvIGJ1cm4gYSBzcGVjaWZpZWQgYW1vdW50IG9mIEVSQzIwIHRva2Vucy5cbiAgICogSXQgY2FsbHMgdGhlIFwiQnVyblwiIHRyYW5zYWN0aW9uIG9uIHRoZSBzbWFydCBjb250cmFjdCB3aXRoIHRoZSBidXJuaW5nIGFtb3VudCBhcyBhIHBhcmFtZXRlci5cbiAgICogVGhlIGZ1bmN0aW9uIGRvZXMgbm90IHJldHVybiBhbnkgdmFsdWUsIGJ1dCBpdCBkZWNyZWFzZXMgdGhlIG1pbnRlcidzIG51bWJlciBvZiB0b2tlbnMuXG4gICAqXG4gICAqIEBwYXJhbSBhbW91bnQgLSBUaGUgYW1vdW50IG9mIEVSQzIwIHRva2VucyB0byBidXJuLlxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgYnVybmluZyBwcm9jZXNzIGlzIGNvbXBsZXRlZC5cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IElmIHRoZSB0cmFuc2FjdGlvbiBmYWlscy5cbiAgICovXG4gIGFzeW5jIGJ1cm4oYW1vdW50OiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmFkYXB0ZXIuc3VibWl0VHJhbnNhY3Rpb24oXCJCdXJuXCIsIFthbW91bnQudG9TdHJpbmcoKV0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1cm5zIGEgc3BlY2lmaWVkIGFtb3VudCBvZiBFUkMyMCB0b2tlbnMgZnJvbSBhIHNwZWNpZmllZCBhY2NvdW50LlxuICAgKlxuICAgKiBUaGlzIGZ1bmN0aW9uIGludGVyYWN0cyB3aXRoIHRoZSBibG9ja2NoYWluIG5ldHdvcmsgdG8gYnVybiBhIHNwZWNpZmllZCBhbW91bnQgb2YgRVJDMjAgdG9rZW5zIGZyb20gYSBnaXZlbiBhY2NvdW50LlxuICAgKiBJdCBjYWxscyB0aGUgXCJCdXJuRnJvbVwiIHRyYW5zYWN0aW9uIG9uIHRoZSBzbWFydCBjb250cmFjdCB3aXRoIHRoZSBhY2NvdW50J3MgYWRkcmVzcyBhbmQgdGhlIGJ1cm5pbmcgYW1vdW50IGFzIHBhcmFtZXRlcnMuXG4gICAqIFRoZSBmdW5jdGlvbiBkb2VzIG5vdCByZXR1cm4gYW55IHZhbHVlLCBidXQgaXQgZGVjcmVhc2VzIHRoZSBzcGVjaWZpZWQgYWNjb3VudCdzIG51bWJlciBvZiB0b2tlbnMuXG4gICAqXG4gICAqIEBwYXJhbSBhY2NvdW50IC0gVGhlIGFkZHJlc3Mgb2YgdGhlIGFjY291bnQgZnJvbSB3aGljaCB0byBidXJuIHRoZSBFUkMyMCB0b2tlbnMuXG4gICAqIEBwYXJhbSBhbW91bnQgLSBUaGUgYW1vdW50IG9mIEVSQzIwIHRva2VucyB0byBidXJuLlxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgYnVybmluZyBwcm9jZXNzIGlzIGNvbXBsZXRlZC5cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IElmIHRoZSB0cmFuc2FjdGlvbiBmYWlscy5cbiAgICovXG4gIGFzeW5jIGJ1cm5Gcm9tKGFjY291bnQ6IHN0cmluZywgYW1vdW50OiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmFkYXB0ZXIuc3VibWl0VHJhbnNhY3Rpb24oXCJCdXJuRnJvbVwiLCBbXG4gICAgICBhY2NvdW50LFxuICAgICAgYW1vdW50LnRvU3RyaW5nKCksXG4gICAgXSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSBiYWxhbmNlIG9mIEVSQzIwIHRva2VucyBhc3NvY2lhdGVkIHdpdGggdGhlIGNsaWVudCdzIGFjY291bnQuXG4gICAqXG4gICAqIFRoaXMgZnVuY3Rpb24gaW50ZXJhY3RzIHdpdGggdGhlIGJsb2NrY2hhaW4gbmV0d29yayB0byBmZXRjaCB0aGUgYmFsYW5jZSBvZiBFUkMyMCB0b2tlbnMgYXNzb2NpYXRlZCB3aXRoIHRoZSBjbGllbnQncyBhY2NvdW50LlxuICAgKiBJdCBjYWxscyB0aGUgXCJDbGllbnRBY2NvdW50QmFsYW5jZVwiIHRyYW5zYWN0aW9uIG9uIHRoZSBzbWFydCBjb250cmFjdCwgd2hpY2ggZG9lcyBub3QgcmVxdWlyZSBhbnkgcGFyYW1ldGVycy5cbiAgICogVGhlIHJldHVybmVkIGRhdGEgaXMgdGhlbiBkZWNvZGVkIGFuZCBjb252ZXJ0ZWQgdG8gYSBudW1iZXIuXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPG51bWJlcj59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIGJhbGFuY2Ugb2YgRVJDMjAgdG9rZW5zIGFzc29jaWF0ZWQgd2l0aCB0aGUgY2xpZW50J3MgYWNjb3VudC5cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IElmIHRoZSB0cmFuc2FjdGlvbiBmYWlscyBvciB0aGUgZGVjb2RpbmcgcHJvY2VzcyBmYWlscy5cbiAgICovXG4gIGFzeW5jIGNsaWVudEFjY291bnRCYWxhbmNlKCk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgY29uc3Qgc2VyaWFsaXplZEFjY291bnRCYWxhbmNlID0gYXdhaXQgdGhpcy5hZGFwdGVyLmV2YWx1YXRlVHJhbnNhY3Rpb24oXG4gICAgICBcIkNsaWVudEFjY291bnRCYWxhbmNlXCJcbiAgICApO1xuXG4gICAgcmV0dXJuIE51bWJlcih0aGlzLmRlY29kZShzZXJpYWxpemVkQWNjb3VudEJhbGFuY2UpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgdGhlIGNsaWVudCdzIGFjY291bnQgSUQgZnJvbSB0aGUgYmxvY2tjaGFpbiBuZXR3b3JrLlxuICAgKlxuICAgKiBUaGlzIGZ1bmN0aW9uIGludGVyYWN0cyB3aXRoIHRoZSBibG9ja2NoYWluIG5ldHdvcmsgdG8gZmV0Y2ggdGhlIGNsaWVudCdzIGFjY291bnQgSUQuXG4gICAqIEl0IGNhbGxzIHRoZSBcIkNsaWVudEFjY291bnRJRFwiIHRyYW5zYWN0aW9uIG9uIHRoZSBzbWFydCBjb250cmFjdCwgd2hpY2ggZG9lcyBub3QgcmVxdWlyZSBhbnkgcGFyYW1ldGVycy5cbiAgICogVGhlIHJldHVybmVkIGRhdGEgaXMgdGhlbiBkZWNvZGVkIGFuZCByZXR1cm5lZCBhcyBhIHN0cmluZy5cbiAgICpcbiAgICogQHJldHVybnMge1Byb21pc2U8c3RyaW5nPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgY2xpZW50J3MgYWNjb3VudCBJRC5cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IElmIHRoZSB0cmFuc2FjdGlvbiBmYWlscyBvciB0aGUgZGVjb2RpbmcgcHJvY2VzcyBmYWlscy5cbiAgICovXG4gIGFzeW5jIGNsaWVudEFjY291bnRJRCgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IGNsaWVudEFjY291bnRJRCA9XG4gICAgICBhd2FpdCB0aGlzLmFkYXB0ZXIuZXZhbHVhdGVUcmFuc2FjdGlvbihcIkNsaWVudEFjY291bnRJRFwiKTtcblxuICAgIHJldHVybiB0aGlzLmRlY29kZShjbGllbnRBY2NvdW50SUQpO1xuICB9XG59XG4iXX0=
|
|
@@ -15,4 +15,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./FabricERC20ClientRepository.cjs"), exports);
|
|
18
|
-
//# sourceMappingURL=
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpZW50L2VyYzIwL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvRUFBOEMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9GYWJyaWNFUkMyMENsaWVudFJlcG9zaXRvcnlcIjtcbiJdfQ==
|
package/lib/client/fabric-fs.cjs
CHANGED
|
@@ -231,4 +231,4 @@ async function extractPrivateKey(pem) {
|
|
|
231
231
|
throw new db_decorators_1.InternalError(e);
|
|
232
232
|
}
|
|
233
233
|
}
|
|
234
|
-
//# sourceMappingURL=fabric-fs.js.map
|
|
234
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFicmljLWZzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9mYWJyaWMtZnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFpQkEsOENBWUM7QUFVRCw0QkFTQztBQWFELDhCQWVDO0FBV0Qsa0NBaUJDO0FBVUQsa0RBS0M7QUFVRCxnRUFPQztBQVVELDhCQXNCQztBQXVCRCw4Q0E2Q0M7QUE1T0QsMkNBQWtEO0FBQ2xELCtDQUEwRDtBQUMxRCxpREFBcUM7QUFDckMsZ0VBQXdFO0FBQ3hFLDJEQUF3RDtBQUV4RCxNQUFNLEdBQUcsR0FBRyxJQUFJLG9CQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7QUFFeEM7Ozs7Ozs7O0dBUUc7QUFDSSxLQUFLLFVBQVUsaUJBQWlCLENBQ3JDLGFBQWtDLEVBQ2xDLFVBQW1FO0lBRW5FLElBQUksYUFBYSxZQUFZLFVBQVU7UUFBRSxPQUFPLGFBQWEsQ0FBQztJQUM5RCxJQUNFLGFBQWEsQ0FBQyxLQUFLLENBQ2pCLHNFQUFzRSxDQUN2RTtRQUVELE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLE9BQU8sTUFBTSxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDekMsQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSSxLQUFLLFVBQVUsUUFBUSxDQUFDLGFBQThCO0lBQzNELElBQUksT0FBTyxhQUFhLEtBQUssUUFBUTtRQUFFLE9BQU8sYUFBYSxDQUFDO0lBRTVELE1BQU0sVUFBVSxHQUFHLEtBQUssRUFBRSxJQUFZLEVBQUUsRUFBRTtRQUN4QyxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxJQUFBLHVCQUFlLG9EQUFRLElBQUksSUFBRSxDQUFDO1FBQ3pELE9BQU8sTUFBTSxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUMsQ0FBQztJQUVGLE9BQU8sTUFBTSxVQUFVLENBQUMsYUFBYSxD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LENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0IsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBub3JtYWxpemVJbXBvcnQgfSBmcm9tIFwiQGRlY2FmLXRzL3V0aWxzXCI7XG5pbXBvcnQgeyBpc0Jyb3dzZXIsIE1pbmlMb2dnZXIgfSBmcm9tIFwiQGRlY2FmLXRzL2xvZ2dpbmdcIjtcbmltcG9ydCB7IFVzZXIgfSBmcm9tIFwiZmFicmljLWNvbW1vblwiO1xuaW1wb3J0IHsgSWRlbnRpdHksIFNpZ25lciwgc2lnbmVycyB9IGZyb20gXCJAaHlwZXJsZWRnZXIvZmFicmljLWdhdGV3YXlcIjtcbmltcG9ydCB7IEludGVybmFsRXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcblxuY29uc3QgbG9nID0gbmV3IE1pbmlMb2dnZXIoXCJmYWJyaWMtZnNcIik7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIExvYWRzIGNvbnRlbnQgZnJvbSBhIGZpbGUgb3IgcmV0dXJucyB0aGUgY29udGVudCBpZiBhbHJlYWR5IGxvYWRlZFxuICogQHN1bW1hcnkgRGV0ZXJtaW5lcyBpZiB0aGUgaW5wdXQgaXMgYWxyZWFkeSBjb250ZW50IG9yIGEgcGF0aCB0byBhIGZpbGUsIGFuZCBsb2FkcyB0aGUgZmlsZSBpZiBuZWVkZWRcbiAqIEBwYXJhbSB7c3RyaW5nIHwgVWludDhBcnJheX0gY29udGVudE9yUGF0aCAtIFRoZSBjb250ZW50IG9yIHBhdGggdG8gbG9hZFxuICogQHBhcmFtIHtGdW5jdGlvbn0gZmlsZVJlYWRlciAtIEZ1bmN0aW9uIHRvIHJlYWQgdGhlIGZpbGUgaWYgY29udGVudE9yUGF0aCBpcyBhIHBhdGhcbiAqIEByZXR1cm4ge1Byb21pc2U8c3RyaW5nIHwgVWludDhBcnJheSB8IEJ1ZmZlcj59IFRoZSBjb250ZW50XG4gKiBAZnVuY3Rpb24gY29udGVudE9mTG9hZEZpbGVcbiAqIEBtZW1iZXJPZiBtb2R1bGU6Zm9yLWZhYnJpYy5jbGllbnRcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNvbnRlbnRPZkxvYWRGaWxlKFxuICBjb250ZW50T3JQYXRoOiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICBmaWxlUmVhZGVyOiAocGF0aDogc3RyaW5nKSA9PiBQcm9taXNlPHN0cmluZyB8IFVpbnQ4QXJyYXkgfCBCdWZmZXI+XG4pIHtcbiAgaWYgKGNvbnRlbnRPclBhdGggaW5zdGFuY2VvZiBVaW50OEFycmF5KSByZXR1cm4gY29udGVudE9yUGF0aDtcbiAgaWYgKFxuICAgIGNvbnRlbnRPclBhdGgubWF0Y2goXG4gICAgICAvLS0tLS1CRUdJTiAoQ0VSVElGSUNBVEV8S0VZfFBSSVZBVEUgS0VZKS0tLS0tLis/LS0tLS1FTkQgXFwxLS0tLS0kL2dtc1xuICAgIClcbiAgKVxuICAgIHJldHVybiBjb250ZW50T3JQYXRoO1xuICByZXR1cm4gYXdhaXQgZmlsZVJlYWRlcihjb250ZW50T3JQYXRoKTtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gUmVhZHMgYSBmaWxlIGZyb20gdGhlIGZpbGUgc3lzdGVtXG4gKiBAc3VtbWFyeSBMb2FkcyBhIGZpbGUgdXNpbmcgdGhlIE5vZGUuanMgZmlsZSBzeXN0ZW0gbW9kdWxlXG4gKiBAcGFyYW0ge3N0cmluZyB8IEJ1ZmZlcn0gY29udGVudE9yUGF0aCAtIFRoZSBjb250ZW50IG9yIHBhdGggdG8gbG9hZFxuICogQHJldHVybiB7UHJvbWlzZTxCdWZmZXI+fSBUaGUgZmlsZSBjb250ZW50IGFzIGEgQnVmZmVyXG4gKiBAZnVuY3Rpb24gcmVhZEZpbGVcbiAqIEBtZW1iZXJPZiBtb2R1bGU6Zm9yLWZhYnJpYy5jbGllbnRcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlYWRGaWxlKGNvbnRlbnRPclBhdGg6IHN0cmluZyB8IEJ1ZmZlcikge1xuICBpZiAodHlwZW9mIGNvbnRlbnRPclBhdGggIT09IFwic3RyaW5nXCIpIHJldHVybiBjb250ZW50T3JQYXRoO1xuXG4gIGNvbnN0IGZpbGVSZWFkZXIgPSBhc3luYyAocGF0aDogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgeyBwcm9taXNlcyB9ID0gYXdhaXQgbm9ybWFsaXplSW1wb3J0KGltcG9ydChcImZzXCIpKTtcbiAgICByZXR1cm4gYXdhaXQgcHJvbWlzZXMucmVhZEZpbGUocGF0aCk7XG4gIH07XG5cbiAgcmV0dXJuIGF3YWl0IGZpbGVSZWFkZXIoY29udGVudE9yUGF0aCk7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgYSBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgdXNlclxuICogQHN1bW1hcnkgSW5pdGlhbGl6ZXMgYSB1c2VyIHdpdGggdGhlIGdpdmVuIGNyZWRlbnRpYWxzIGZvciBpbnRlcmFjdGluZyB3aXRoIGEgRmFicmljIENBXG4gKiBAcGFyYW0ge3N0cmluZ30gdXNlck5hbWUgLSBUaGUgdXNlciBuYW1lXG4gKiBAcGFyYW0ge3N0cmluZ30gcHJpdmF0ZUtleSAtIFRoZSBwcml2YXRlIGtleSBhcyBhIHN0cmluZ1xuICogQHBhcmFtIHtzdHJpbmd9IGNlcnRpZmljYXRlIC0gVGhlIGNlcnRpZmljYXRlIGFzIGEgc3RyaW5nXG4gKiBAcGFyYW0ge3N0cmluZ30gbXNwSWQgLSBUaGUgTWVtYmVyc2hpcCBTZXJ2aWNlIFByb3ZpZGVyIElEXG4gKiBAcmV0dXJuIHtQcm9taXNlPFVzZXI+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgY3JlYXRlZCB1c2VyXG4gKiBAZnVuY3Rpb24gZ2V0Q0FVc2VyXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmZvci1mYWJyaWMuY2xpZW50XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRDQVVzZXIoXG4gIHVzZXJOYW1lOiBzdHJpbmcsXG4gIHByaXZhdGVLZXk6IHN0cmluZyxcbiAgY2VydGlmaWNhdGU6IHN0cmluZyxcbiAgbXNwSWQ6IHN0cmluZ1xuKTogUHJvbWlzZTxVc2VyPiB7XG4gIGxvZy5kZWJ1ZyhcbiAgICBgQ3JlYXRpbmcgYSBDQSAke21zcElkfSB1c2VyICR7dXNlck5hbWV9IHdpdGggY2VydGlmaWNhdGUgJHtjZXJ0aWZpY2F0ZX1gXG4gICk7XG4gIGNvbnN0IHVzZXIgPSBuZXcgVXNlcih1c2VyTmFtZSk7XG4gIGNvbnN0IGNyeXB0b1N1aXRlID0gVXNlci5uZXdDcnlwdG9TdWl0ZSgpO1xuICB1c2VyLnNldENyeXB0b1N1aXRlKGNyeXB0b1N1aXRlKTtcbiAgY29uc3QgaW1wb3J0ZWRLZXkgPSBjcnlwdG9TdWl0ZS5jcmVhdGVLZXlGcm9tUmF3KHByaXZhdGVLZXkpO1xuICBhd2FpdCB1c2VyLnNldEVucm9sbG1lbnQoaW1wb3J0ZWRLZXksIGNlcnRpZmljYXRlLCBtc3BJZCk7XG4gIHJldHVybiB1c2VyO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBHZXRzIGFuIGlkZW50aXR5IGZyb20gYSBjZXJ0aWZpY2F0ZSBkaXJlY3RvcnlcbiAqIEBzdW1tYXJ5IExvYWRzIGEgY2VydGlmaWNhdGUgZnJvbSBhIGRpcmVjdG9yeSBhbmQgY3JlYXRlcyBhbiBJZGVudGl0eSBvYmplY3RcbiAqIEBwYXJhbSB7c3RyaW5nfSBtc3BJZCAtIFRoZSBNZW1iZXJzaGlwIFNlcnZpY2UgUHJvdmlkZXIgSURcbiAqIEBwYXJhbSB7c3RyaW5nfSBjZXJ0RGlyZWN0b3J5UGF0aCAtIFBhdGggdG8gdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBjZXJ0aWZpY2F0ZVxuICogQHJldHVybiB7UHJvbWlzZTxJZGVudGl0eT59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBpZGVudGl0eVxuICogQGZ1bmN0aW9uIGdldElkZW50aXR5XG4gKiBAbWVtYmVyT2YgbW9kdWxlOmZvci1mYWJyaWMuY2xpZW50XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRJZGVudGl0eShcbiAgbXNwSWQ6IHN0cmluZyxcbiAgY2VydERpcmVjdG9yeVBhdGg6IHN0cmluZ1xuKTogUHJvbWlzZTxJZGVudGl0eT4ge1xuICBjb25zdCBpZGVudGl0eUZpbGVSZWFkZXIgPSBhc3luYyAocGF0aDogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgeyBwcm9taXNlcyB9ID0gYXdhaXQgbm9ybWFsaXplSW1wb3J0KGltcG9ydChcImZzXCIpKTtcbiAgICBjb25zdCBjZXJ0UGF0aCA9IGF3YWl0IGdldEZpcnN0RGlyRmlsZU5hbWUocGF0aCk7XG4gICAgY29uc3QgY3JlZGVudGlhbHMgPSBhd2FpdCBwcm9taXNlcy5yZWFkRmlsZShjZXJ0UGF0aCk7XG4gICAgcmV0dXJuIGNyZWRlbnRpYWxzO1xuICB9O1xuXG4gIGNvbnN0IGNyZWRlbnRpYWxzOiBVaW50OEFycmF5ID0gKGF3YWl0IGNvbnRlbnRPZkxvYWRGaWxlKFxuICAgIGNlcnREaXJlY3RvcnlQYXRoLFxuICAgIGlkZW50aXR5RmlsZVJlYWRlclxuICApKSBhcyBVaW50OEFycmF5O1xuXG4gIHJldHVybiB7IG1zcElkLCBjcmVkZW50aWFscyB9O1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBHZXRzIHRoZSBmdWxsIHBhdGggb2YgdGhlIGZpcnN0IGZpbGUgaW4gYSBkaXJlY3RvcnlcbiAqIEBzdW1tYXJ5IFJlYWRzIGEgZGlyZWN0b3J5IGFuZCByZXR1cm5zIHRoZSBwYXRoIHRvIHRoZSBmaXJzdCBmaWxlIGZvdW5kXG4gKiBAcGFyYW0ge3N0cmluZ30gZGlyUGF0aCAtIFBhdGggdG8gdGhlIGRpcmVjdG9yeVxuICogQHJldHVybiB7UHJvbWlzZTxzdHJpbmc+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgZnVsbCBwYXRoIG9mIHRoZSBmaXJzdCBmaWxlXG4gKiBAZnVuY3Rpb24gZ2V0Rmlyc3REaXJGaWxlTmFtZVxuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItZmFicmljLmNsaWVudFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0Rmlyc3REaXJGaWxlTmFtZShkaXJQYXRoOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCB7IHByb21pc2VzIH0gPSBhd2FpdCBub3JtYWxpemVJbXBvcnQoaW1wb3J0KFwiZnNcIikpO1xuICBjb25zdCB7IGpvaW4gfSA9IGF3YWl0IG5vcm1hbGl6ZUltcG9ydChpbXBvcnQoXCJwYXRoXCIpKTtcbiAgY29uc3QgZmlsZXMgPSBhd2FpdCBwcm9taXNlcy5yZWFkZGlyKGRpclBhdGgpO1xuICByZXR1cm4gam9pbihkaXJQYXRoLCBmaWxlc1swXSk7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEdldHMgdGhlIGNvbnRlbnQgb2YgdGhlIGZpcnN0IGZpbGUgaW4gYSBkaXJlY3RvcnlcbiAqIEBzdW1tYXJ5IFJlYWRzIGEgZGlyZWN0b3J5LCBmaW5kcyB0aGUgZmlyc3QgZmlsZSwgYW5kIHJldHVybnMgaXRzIGNvbnRlbnQgYXMgYSBzdHJpbmdcbiAqIEBwYXJhbSB7c3RyaW5nfSBkaXJQYXRoIC0gUGF0aCB0byB0aGUgZGlyZWN0b3J5XG4gKiBAcmV0dXJuIHtQcm9taXNlPHN0cmluZz59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBjb250ZW50IG9mIHRoZSBmaXJzdCBmaWxlXG4gKiBAZnVuY3Rpb24gZ2V0Rmlyc3REaXJGaWxlTmFtZUNvbnRlbnRcbiAqIEBtZW1iZXJPZiBtb2R1bGU6Zm9yLWZhYnJpYy5jbGllbnRcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEZpcnN0RGlyRmlsZU5hbWVDb250ZW50KFxuICBkaXJQYXRoOiBzdHJpbmdcbik6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IHsgcHJvbWlzZXMgfSA9IGF3YWl0IG5vcm1hbGl6ZUltcG9ydChpbXBvcnQoXCJmc1wiKSk7XG4gIGNvbnN0IHsgam9pbiB9ID0gYXdhaXQgbm9ybWFsaXplSW1wb3J0KGltcG9ydChcInBhdGhcIikpO1xuICBjb25zdCBmaWxlcyA9IGF3YWl0IHByb21pc2VzLnJlYWRkaXIoZGlyUGF0aCk7XG4gIHJldHVybiAoYXdhaXQgcHJvbWlzZXMucmVhZEZpbGUoam9pbihkaXJQYXRoLCBmaWxlc1swXSkpKS50b1N0cmluZygpO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBHZXRzIGEgc2lnbmVyIGZyb20gYSBrZXkgZGlyZWN0b3J5XG4gKiBAc3VtbWFyeSBMb2FkcyBhIHByaXZhdGUga2V5IGZyb20gYSBkaXJlY3RvcnkgYW5kIGNyZWF0ZXMgYSBTaWduZXIgZm9yIEZhYnJpYyB0cmFuc2FjdGlvbnNcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXlEaXJlY3RvcnlQYXRoIC0gUGF0aCB0byB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhlIHByaXZhdGUga2V5XG4gKiBAcmV0dXJuIHtQcm9taXNlPFNpZ25lcj59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBzaWduZXJcbiAqIEBmdW5jdGlvbiBnZXRTaWduZXJcbiAqIEBtZW1iZXJPZiBtb2R1bGU6Zm9yLWZhYnJpYy5jbGllbnRcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFNpZ25lcihrZXlEaXJlY3RvcnlQYXRoOiBzdHJpbmcpOiBQcm9taXNlPFNpZ25lcj4ge1xuICBjb25zdCBzaWduZXJGaWxlUmVhZGVyID0gYXN5bmMgKHBhdGg6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IHsgcHJvbWlzZXMgfSA9IGF3YWl0IG5vcm1hbGl6ZUltcG9ydChpbXBvcnQoXCJmc1wiKSk7XG4gICAgY29uc3Qga2V5UGF0aCA9IGF3YWl0IGdldEZpcnN0RGlyRmlsZU5hbWUocGF0aCk7XG4gICAgcmV0dXJuIGF3YWl0IHByb21pc2VzLnJlYWRGaWxlKGtleVBhdGgpO1xuICB9O1xuXG4gIGNvbnN0IHByaXZhdGVLZXlQZW0gPSAoYXdhaXQgY29udGVudE9mTG9hZEZpbGUoXG4gICAga2V5RGlyZWN0b3J5UGF0aCxcbiAgICBzaWduZXJGaWxlUmVhZGVyXG4gICkpIGFzIEJ1ZmZlcjtcbiAgLy8gTm9kZSBiYXNlZCBpbXBsZW1lbnRhdGlvblxuICAvLyBwcml2YXRlS2V5ID0gY3JlYXRlUHJpdmF0ZUtleShwcml2YXRlS2V5UGVtKTtcbiAgLy8gLS1cblxuICAvLyB3ZWIgYmFzZWQgaW1wbGVtZW50YXRpb25cbiAgY29uc3QgcHJpdmF0ZUtleSA9IGF3YWl0IGV4dHJhY3RQcml2YXRlS2V5KHByaXZhdGVLZXlQZW0pO1xuICBjb25zdCBrZXlzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhwcml2YXRlS2V5KTtcbiAgY29uc3QgayA9IChwcml2YXRlS2V5IGFzIGFueSlba2V5c1swXV07XG4gIC8vIC0tXG5cbiAgcmV0dXJuIHNpZ25lcnMubmV3UHJpdmF0ZUtleVNpZ25lcihrIGFzIGFueSk7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEV4dHJhY3RzIGEgcHJpdmF0ZSBrZXkgZnJvbSBhIFBFTSBidWZmZXJcbiAqIEBzdW1tYXJ5IENvbnZlcnRzIGEgUEVNLWVuY29kZWQgcHJpdmF0ZSBrZXkgdG8gYSBDcnlwdG9LZXkgb2JqZWN0XG4gKiBAcGFyYW0ge0J1ZmZlcn0gcGVtIC0gVGhlIFBFTS1lbmNvZGVkIHByaXZhdGUga2V5XG4gKiBAcmV0dXJuIHtQcm9taXNlPENyeXB0b0tleT59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBDcnlwdG9LZXlcbiAqIEBmdW5jdGlvbiBleHRyYWN0UHJpdmF0ZUtleVxuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItZmFicmljLmNsaWVudFxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBDYWxsZXJcbiAqICAgcGFydGljaXBhbnQgRXh0cmFjdFByaXZhdGVLZXlcbiAqICAgcGFydGljaXBhbnQgU3VidGxlQ3J5cHRvXG4gKlxuICogICBDYWxsZXItPj5FeHRyYWN0UHJpdmF0ZUtleTogZXh0cmFjdFByaXZhdGVLZXkocGVtKVxuICogICBFeHRyYWN0UHJpdmF0ZUtleS0+PkV4dHJhY3RQcml2YXRlS2V5OiBHZXQgU3VidGxlQ3J5cHRvIGltcGxlbWVudGF0aW9uXG4gKiAgIEV4dHJhY3RQcml2YXRlS2V5LT4+RXh0cmFjdFByaXZhdGVLZXk6IFBhcnNlIFBFTSBmb3JtYXRcbiAqICAgRXh0cmFjdFByaXZhdGVLZXktPj5FeHRyYWN0UHJpdmF0ZUtleTogQ29udmVydCB0byBiaW5hcnkgREVSXG4gKiAgIEV4dHJhY3RQcml2YXRlS2V5LT4+U3VidGxlQ3J5cHRvOiBpbXBvcnRLZXkocGtjczgsIGJpbmFyeURlciwgb3B0aW9ucylcbiAqICAgU3VidGxlQ3J5cHRvLS0+PkV4dHJhY3RQcml2YXRlS2V5OiBDcnlwdG9LZXlcbiAqICAgRXh0cmFjdFByaXZhdGVLZXktLT4+Q2FsbGVyOiBDcnlwdG9LZXlcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGV4dHJhY3RQcml2YXRlS2V5KHBlbTogQnVmZmVyKSB7XG4gIGNvbnN0IGxpYk5hbWUgPSBcImNyeXB0b1wiO1xuICBsZXQgc3VidGxlO1xuICBpZiAoaXNCcm93c2VyKCkpIHtcbiAgICBzdWJ0bGUgPSAoZ2xvYmFsVGhpcyBhcyBhbnkpLmNyeXB0by5zdWJ0bGU7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgbGliID0gKGF3YWl0IG5vcm1hbGl6ZUltcG9ydChpbXBvcnQobGliTmFtZSkpKSBhcyBhbnk7XG4gICAgc3VidGxlID0gbGliLnN1YnRsZSB8fCBsaWIud2ViY3J5cHRvLnN1YnRsZTtcbiAgfVxuXG4gIGlmICghc3VidGxlKSB0aHJvdyBuZXcgRXJyb3IoXCJDb3VsZCBub3QgbG9hZCBTdWJ0bGVDcnlwdG8gbW9kdWxlXCIpO1xuXG4gIGZ1bmN0aW9uIHN0cjJhYihzdHI6IHN0cmluZykge1xuICAgIGNvbnN0IGJ1ZiA9IG5ldyBBcnJheUJ1ZmZlcihzdHIubGVuZ3RoKTtcbiAgICBjb25zdCBidWZWaWV3ID0gbmV3IFVpbnQ4QXJyYXkoYnVmKTtcbiAgICBmb3IgKGxldCBpID0gMCwgc3RyTGVuID0gc3RyLmxlbmd0aDsgaSA8IHN0ckxlbjsgaSsrKSB7XG4gICAgICBidWZWaWV3W2ldID0gc3RyLmNoYXJDb2RlQXQoaSk7XG4gICAgfVxuICAgIHJldHVybiBidWY7XG4gIH1cblxuICBjb25zdCBzdHIgPSBwZW1cbiAgICAudG9TdHJpbmcoXCJ1dGY4XCIpXG4gICAgLnJlcGxhY2UoXCItLS0tLUJFR0lOIFBSSVZBVEUgS0VZLS0tLS1cIiwgXCJcIilcbiAgICAucmVwbGFjZUFsbChcIlxcblwiLCBcIlwiKVxuICAgIC5yZXBsYWNlKFwiLS0tLS1FTkQgUFJJVkFURSBLRVktLS0tLVwiLCBcIlwiKTtcbiAgY29uc3QgZGVjb2RlZCA9IEJ1ZmZlci5mcm9tKHN0ciwgXCJiYXNlNjRcIikudG9TdHJpbmcoXCJiaW5hcnlcIik7XG4gIGNvbnN0IGJpbmFyeURlciA9IHN0cjJhYihkZWNvZGVkKTtcblxuICB0cnkge1xuICAgIGNvbnN0IGtleSA9IGF3YWl0IHN1YnRsZS5pbXBvcnRLZXkoXG4gICAgICBcInBrY3M4XCIsXG4gICAgICBiaW5hcnlEZXIsXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiRUNEU0FcIixcbiAgICAgICAgbmFtZWRDdXJ2ZTogXCJQLTI1NlwiLFxuICAgICAgfSxcbiAgICAgIHRydWUsXG4gICAgICBbXCJzaWduXCJdXG4gICAgKTtcblxuICAgIHJldHVybiBrZXk7XG4gIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGUpO1xuICB9XG59XG4iXX0=
|