@decaf-ts/for-fabric 0.0.2 → 0.0.3

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.
Files changed (232) hide show
  1. package/LICENSE.md +159 -17
  2. package/README.md +26 -285
  3. package/dist/for-fabric.cjs +2 -6223
  4. package/dist/for-fabric.cjs.map +1 -0
  5. package/dist/for-fabric.js +2 -0
  6. package/dist/for-fabric.js.map +1 -0
  7. package/lib/bin/build-contracts.cjs +47 -0
  8. package/lib/bin/build-contracts.d.ts +1 -0
  9. package/lib/bin/build-contracts.js.map +1 -0
  10. package/lib/client/FabricClientAdapter.cjs +7 -7
  11. package/lib/client/FabricClientAdapter.js.map +1 -0
  12. package/lib/client/FabricClientDispatch.cjs +1 -1
  13. package/lib/client/FabricClientDispatch.js.map +1 -0
  14. package/lib/client/FabricClientRepository.cjs +1 -1
  15. package/lib/client/FabricClientRepository.js.map +1 -0
  16. package/lib/client/erc20/erc20ClientRepository.cjs +1 -1
  17. package/lib/client/erc20/erc20ClientRepository.js.map +1 -0
  18. package/lib/client/fabric-fs.cjs +1 -1
  19. package/lib/client/fabric-fs.js.map +1 -0
  20. package/lib/client/index.cjs +1 -1
  21. package/lib/client/index.js.map +1 -0
  22. package/lib/client/logging.cjs +1 -1
  23. package/lib/client/logging.js.map +1 -0
  24. package/lib/client/services/LoggedService.cjs +1 -1
  25. package/lib/client/services/LoggedService.js.map +1 -0
  26. package/lib/client/services/constants.cjs +1 -1
  27. package/lib/client/services/constants.js.map +1 -0
  28. package/lib/client/services/enrollementService.cjs +1 -1
  29. package/lib/client/services/enrollementService.js.map +1 -0
  30. package/lib/client/services/index.cjs +1 -1
  31. package/lib/client/services/index.js.map +1 -0
  32. package/lib/contracts/ContractAdapter.cjs +2 -2
  33. package/lib/contracts/ContractAdapter.js.map +1 -0
  34. package/lib/contracts/ContractContext.cjs +1 -1
  35. package/lib/contracts/ContractContext.js.map +1 -0
  36. package/lib/contracts/ContractPrivateDataAdapter.cjs +1 -1
  37. package/lib/contracts/ContractPrivateDataAdapter.js.map +1 -0
  38. package/lib/contracts/FabricConstruction.cjs +1 -1
  39. package/lib/contracts/FabricConstruction.js.map +1 -0
  40. package/lib/contracts/FabricContractRepository.cjs +7 -5
  41. package/lib/contracts/FabricContractRepository.d.ts +2 -2
  42. package/lib/contracts/FabricContractRepository.js.map +1 -0
  43. package/lib/contracts/FabricContractRepositoryObservableHandler.cjs +1 -1
  44. package/lib/contracts/FabricContractRepositoryObservableHandler.js.map +1 -0
  45. package/lib/contracts/FabricContractSequence.cjs +4 -3
  46. package/lib/contracts/FabricContractSequence.d.ts +2 -1
  47. package/lib/contracts/FabricContractSequence.js.map +1 -0
  48. package/lib/contracts/FabricContractStatement.cjs +3 -2
  49. package/lib/contracts/FabricContractStatement.d.ts +2 -1
  50. package/lib/contracts/FabricContractStatement.js.map +1 -0
  51. package/lib/contracts/PrivateSequence.cjs +1 -1
  52. package/lib/contracts/PrivateSequence.js.map +1 -0
  53. package/lib/contracts/crud/crud-contract.cjs +1 -1
  54. package/lib/contracts/crud/crud-contract.js.map +1 -0
  55. package/lib/contracts/crud/index.cjs +1 -1
  56. package/lib/contracts/crud/index.js.map +1 -0
  57. package/lib/contracts/crud/serialized-crud-contract.cjs +1 -1
  58. package/lib/contracts/crud/serialized-crud-contract.js.map +1 -0
  59. package/lib/contracts/erc20/erc20contract.cjs +1 -1
  60. package/lib/contracts/erc20/erc20contract.js.map +1 -0
  61. package/lib/contracts/erc20/index.cjs +1 -1
  62. package/lib/contracts/erc20/index.js.map +1 -0
  63. package/lib/contracts/erc20/models.cjs +1 -1
  64. package/lib/contracts/erc20/models.js.map +1 -0
  65. package/lib/contracts/index.cjs +1 -1
  66. package/lib/contracts/index.js.map +1 -0
  67. package/lib/contracts/logging.cjs +1 -1
  68. package/lib/contracts/logging.js.map +1 -0
  69. package/lib/contracts/private-data.cjs +1 -1
  70. package/lib/contracts/private-data.js.map +1 -0
  71. package/lib/contracts/types.cjs +1 -1
  72. package/lib/contracts/types.js.map +1 -0
  73. package/lib/esm/bin/build-contracts.d.ts +1 -0
  74. package/lib/esm/bin/build-contracts.js +42 -0
  75. package/lib/esm/bin/build-contracts.js.map +1 -0
  76. package/lib/esm/client/FabricClientAdapter.js +7 -7
  77. package/lib/esm/client/FabricClientAdapter.js.map +1 -0
  78. package/lib/esm/client/FabricClientDispatch.js +1 -1
  79. package/lib/esm/client/FabricClientDispatch.js.map +1 -0
  80. package/lib/esm/client/FabricClientRepository.js +1 -1
  81. package/lib/esm/client/FabricClientRepository.js.map +1 -0
  82. package/lib/esm/client/erc20/erc20ClientRepository.js +1 -1
  83. package/lib/esm/client/erc20/erc20ClientRepository.js.map +1 -0
  84. package/lib/esm/client/fabric-fs.js +1 -1
  85. package/lib/esm/client/fabric-fs.js.map +1 -0
  86. package/lib/esm/client/index.js +1 -1
  87. package/lib/esm/client/index.js.map +1 -0
  88. package/lib/esm/client/logging.js +1 -1
  89. package/lib/esm/client/logging.js.map +1 -0
  90. package/lib/esm/client/services/LoggedService.js +1 -1
  91. package/lib/esm/client/services/LoggedService.js.map +1 -0
  92. package/lib/esm/client/services/constants.js +1 -1
  93. package/lib/esm/client/services/constants.js.map +1 -0
  94. package/lib/esm/client/services/enrollementService.js +1 -1
  95. package/lib/esm/client/services/enrollementService.js.map +1 -0
  96. package/lib/esm/client/services/index.js +1 -1
  97. package/lib/esm/client/services/index.js.map +1 -0
  98. package/lib/esm/contracts/ContractAdapter.js +2 -2
  99. package/lib/esm/contracts/ContractAdapter.js.map +1 -0
  100. package/lib/esm/contracts/ContractContext.js +1 -1
  101. package/lib/esm/contracts/ContractContext.js.map +1 -0
  102. package/lib/esm/contracts/ContractPrivateDataAdapter.js +1 -1
  103. package/lib/esm/contracts/ContractPrivateDataAdapter.js.map +1 -0
  104. package/lib/esm/contracts/FabricConstruction.js +1 -1
  105. package/lib/esm/contracts/FabricConstruction.js.map +1 -0
  106. package/lib/esm/contracts/FabricContractRepository.d.ts +2 -2
  107. package/lib/esm/contracts/FabricContractRepository.js +4 -2
  108. package/lib/esm/contracts/FabricContractRepository.js.map +1 -0
  109. package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js +1 -1
  110. package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js.map +1 -0
  111. package/lib/esm/contracts/FabricContractSequence.d.ts +2 -1
  112. package/lib/esm/contracts/FabricContractSequence.js +3 -2
  113. package/lib/esm/contracts/FabricContractSequence.js.map +1 -0
  114. package/lib/esm/contracts/FabricContractStatement.d.ts +2 -1
  115. package/lib/esm/contracts/FabricContractStatement.js +3 -2
  116. package/lib/esm/contracts/FabricContractStatement.js.map +1 -0
  117. package/lib/esm/contracts/PrivateSequence.js +1 -1
  118. package/lib/esm/contracts/PrivateSequence.js.map +1 -0
  119. package/lib/esm/contracts/crud/crud-contract.js +1 -1
  120. package/lib/esm/contracts/crud/crud-contract.js.map +1 -0
  121. package/lib/esm/contracts/crud/index.js +1 -1
  122. package/lib/esm/contracts/crud/index.js.map +1 -0
  123. package/lib/esm/contracts/crud/serialized-crud-contract.js +1 -1
  124. package/lib/esm/contracts/crud/serialized-crud-contract.js.map +1 -0
  125. package/lib/esm/contracts/erc20/erc20contract.js +1 -1
  126. package/lib/esm/contracts/erc20/erc20contract.js.map +1 -0
  127. package/lib/esm/contracts/erc20/index.js +1 -1
  128. package/lib/esm/contracts/erc20/index.js.map +1 -0
  129. package/lib/esm/contracts/erc20/models.js +1 -1
  130. package/lib/esm/contracts/erc20/models.js.map +1 -0
  131. package/lib/esm/contracts/index.js +1 -1
  132. package/lib/esm/contracts/index.js.map +1 -0
  133. package/lib/esm/contracts/logging.js +1 -1
  134. package/lib/esm/contracts/logging.js.map +1 -0
  135. package/lib/esm/contracts/private-data.js +2 -2
  136. package/lib/esm/contracts/private-data.js.map +1 -0
  137. package/lib/esm/contracts/types.js +1 -1
  138. package/lib/esm/contracts/types.js.map +1 -0
  139. package/lib/esm/index.d.ts +1 -0
  140. package/lib/esm/index.js +2 -1
  141. package/lib/esm/index.js.map +1 -0
  142. package/lib/esm/shared/ClientSerializer.js +1 -1
  143. package/lib/esm/shared/ClientSerializer.js.map +1 -0
  144. package/lib/esm/shared/DeterministicSerializer.js +1 -1
  145. package/lib/esm/shared/DeterministicSerializer.js.map +1 -0
  146. package/lib/esm/shared/SimpleDeterministicSerializer.js +1 -1
  147. package/lib/esm/shared/SimpleDeterministicSerializer.js.map +1 -0
  148. package/lib/esm/shared/constants.d.ts +0 -7
  149. package/lib/esm/shared/constants.js +1 -8
  150. package/lib/esm/shared/constants.js.map +1 -0
  151. package/lib/esm/shared/crypto.js +2 -2
  152. package/lib/esm/shared/crypto.js.map +1 -0
  153. package/lib/esm/shared/decorators.js +1 -1
  154. package/lib/esm/shared/decorators.js.map +1 -0
  155. package/lib/esm/shared/erc20/erc20-constants.js +1 -1
  156. package/lib/esm/shared/erc20/erc20-constants.js.map +1 -0
  157. package/lib/esm/shared/errors.js +1 -1
  158. package/lib/esm/shared/errors.js.map +1 -0
  159. package/lib/esm/shared/events.d.ts +2 -0
  160. package/lib/esm/shared/events.js +2 -2
  161. package/lib/esm/shared/events.js.map +1 -0
  162. package/lib/esm/shared/fabric-types.js +1 -1
  163. package/lib/esm/shared/fabric-types.js.map +1 -0
  164. package/lib/esm/shared/index.js +1 -1
  165. package/lib/esm/shared/index.js.map +1 -0
  166. package/lib/esm/shared/interfaces/Checkable.js +1 -1
  167. package/lib/esm/shared/interfaces/Checkable.js.map +1 -0
  168. package/lib/esm/shared/math.js +1 -1
  169. package/lib/esm/shared/math.js.map +1 -0
  170. package/lib/esm/shared/model/Identity.js +1 -1
  171. package/lib/esm/shared/model/Identity.js.map +1 -0
  172. package/lib/esm/shared/model/IdentityCredentials.js +1 -1
  173. package/lib/esm/shared/model/IdentityCredentials.js.map +1 -0
  174. package/lib/esm/shared/model/index.js +1 -1
  175. package/lib/esm/shared/model/index.js.map +1 -0
  176. package/lib/esm/shared/types.js +1 -1
  177. package/lib/esm/shared/types.js.map +1 -0
  178. package/lib/esm/shared/utils.js +1 -1
  179. package/lib/esm/shared/utils.js.map +1 -0
  180. package/lib/esm/version.d.ts +2 -0
  181. package/lib/esm/version.js +5 -0
  182. package/lib/esm/version.js.map +1 -0
  183. package/lib/index.cjs +2 -1
  184. package/lib/index.d.ts +1 -0
  185. package/lib/index.js.map +1 -0
  186. package/lib/shared/ClientSerializer.cjs +1 -1
  187. package/lib/shared/ClientSerializer.js.map +1 -0
  188. package/lib/shared/DeterministicSerializer.cjs +1 -1
  189. package/lib/shared/DeterministicSerializer.js.map +1 -0
  190. package/lib/shared/SimpleDeterministicSerializer.cjs +1 -1
  191. package/lib/shared/SimpleDeterministicSerializer.js.map +1 -0
  192. package/lib/shared/constants.cjs +2 -9
  193. package/lib/shared/constants.d.ts +0 -7
  194. package/lib/shared/constants.js.map +1 -0
  195. package/lib/shared/crypto.cjs +3 -3
  196. package/lib/shared/crypto.js.map +1 -0
  197. package/lib/shared/decorators.cjs +1 -1
  198. package/lib/shared/decorators.js.map +1 -0
  199. package/lib/shared/erc20/erc20-constants.cjs +1 -1
  200. package/lib/shared/erc20/erc20-constants.js.map +1 -0
  201. package/lib/shared/errors.cjs +1 -1
  202. package/lib/shared/errors.js.map +1 -0
  203. package/lib/shared/events.cjs +2 -2
  204. package/lib/shared/events.d.ts +2 -0
  205. package/lib/shared/events.js.map +1 -0
  206. package/lib/shared/fabric-types.cjs +1 -1
  207. package/lib/shared/fabric-types.js.map +1 -0
  208. package/lib/shared/index.cjs +1 -1
  209. package/lib/shared/index.js.map +1 -0
  210. package/lib/shared/interfaces/Checkable.cjs +1 -1
  211. package/lib/shared/interfaces/Checkable.js.map +1 -0
  212. package/lib/shared/math.cjs +1 -1
  213. package/lib/shared/math.js.map +1 -0
  214. package/lib/shared/model/Identity.cjs +1 -1
  215. package/lib/shared/model/Identity.js.map +1 -0
  216. package/lib/shared/model/IdentityCredentials.cjs +1 -1
  217. package/lib/shared/model/IdentityCredentials.js.map +1 -0
  218. package/lib/shared/model/index.cjs +1 -1
  219. package/lib/shared/model/index.js.map +1 -0
  220. package/lib/shared/types.cjs +1 -1
  221. package/lib/shared/types.js.map +1 -0
  222. package/lib/shared/utils.cjs +1 -1
  223. package/lib/shared/utils.js.map +1 -0
  224. package/lib/version.cjs +8 -0
  225. package/lib/version.d.ts +2 -0
  226. package/lib/version.js.map +1 -0
  227. package/package.json +43 -65
  228. package/dist/for-fabric.esm.cjs +0 -6180
  229. package/lib/esm/shared/model/utils.d.ts +0 -60
  230. package/lib/esm/shared/model/utils.js +0 -108
  231. package/lib/shared/model/utils.cjs +0 -114
  232. package/lib/shared/model/utils.d.ts +0 -60
@@ -0,0 +1 @@
1
+ {"version":3,"file":"for-fabric.js","sources":["../src/client/fabric-fs.ts","../src/client/FabricClientRepository.ts","../src/shared/constants.ts","../src/shared/ClientSerializer.ts","../src/shared/events.ts","../src/client/FabricClientDispatch.ts","../src/client/FabricClientAdapter.ts","../src/contracts/ContractContext.ts","../src/contracts/FabricContractRepositoryObservableHandler.ts","../src/shared/decorators.ts","../src/contracts/private-data.ts","../src/shared/errors.ts","../src/contracts/PrivateSequence.ts","../src/contracts/FabricContractSequence.ts","../src/contracts/FabricContractRepository.ts","../src/contracts/FabricContractStatement.ts","../src/shared/SimpleDeterministicSerializer.ts","../src/contracts/FabricConstruction.ts","../src/contracts/ContractAdapter.ts","../src/shared/DeterministicSerializer.ts","../src/contracts/ContractPrivateDataAdapter.ts","../src/contracts/crud/crud-contract.ts","../src/contracts/crud/serialized-crud-contract.ts","../src/shared/math.ts","../src/contracts/erc20/models.ts","../src/shared/erc20/erc20-constants.ts","../src/contracts/erc20/erc20contract.ts","../src/contracts/erc20/index.ts","../src/contracts/logging.ts","../src/shared/utils.ts","../src/shared/model/IdentityCredentials.ts","../src/shared/model/Identity.ts","../src/shared/crypto.ts","../src/client/services/enrollementService.ts","../src/client/services/LoggedService.ts","../src/version.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["log","Logging","for","async","contentOfLoadFile","contentOrPath","fileReader","Uint8Array","match","readFile","path","promises","normalizeImport","import","getCAUser","userName","privateKey","certificate","mspId","debug","user","User","cryptoSuite","newCryptoSuite","setCryptoSuite","importedKey","createKeyFromRaw","setEnrollment","getIdentity","certDirectoryPath","credentials","certPath","getFirstDirFileName","dirPath","join","readdir","getFirstDirFileNameContent","files","toString","getSigner","keyDirectoryPath","privateKeyPem","keyPath","extractPrivateKey","k","Object","getOwnPropertySymbols","signers","newPrivateKeySigner","pem","subtle","isBrowser","globalThis","crypto","lib","webcrypto","Error","str","replace","replaceAll","binaryDer","buf","ArrayBuffer","length","bufView","i","strLen","charCodeAt","str2ab","Buffer","from","importKey","name","namedCurve","e","InternalError","FabricClientRepository","Repository","constructor","adapter","clazz","super","createPrefix","model","args","contextArgs","Context","OperationKeys","CREATE","this","class","_overrides","createAllPrefix","models","readPrefix","key","READ","readAllPrefix","keys","updatePrefix","UPDATE","updateAllPrefix","deletePrefix","DELETE","read","deleteAllPrefix","readAll","FabricModelKeys","IdentityType","FabricFlavour","ClientSerializer","JSONSerializer","preSerialize","table","toSerialize","assign","metadata","getMetadata","SerializationError","ModelKeys","ANCHOR","deserialize","deserialization","JSON","parse","className","Model","build","serialize","stringify","generateFabricEventName","event","owner","params","push","parseEventName","parts","split","undefined","FabricClientDispatch","Dispatch","client","decoder","TextDecoder","close","listeningStack","parsePayload","jsonBytes","json","decode","observe","observer","FabricClientAdapter","UnsupportedError","Adapter","alias","initialize","then","verbose","updateObservers","payload","refresh","id","handleEvents","config","info","chaincodeName","channel","evt","eventName","error","network","getGateway","getNetwork","getChaincodeEvents","CouchDBAdapter","serializer","data","repository","createAll","tableName","ids","transient","result","submitTransaction","BulkCrudOperationKeys","CREATE_ALL","map","m","r","READ_ALL","updateAll","UPDATE_ALL","deleteAll","DELETE_ALL","prepare","pk","modelToTransient","PersistenceKeys","METADATA","silly","defineProperty","enumerable","writable","configurable","value","record","revert","obj","ob","reduce","accum","entries","forEach","val","flavour","index","create","evaluateTransaction","update","delete","raw","rawInput","process","input","transactionResult","parseError","Array","isArray","el","isModel","getClient","_client","Gateway","Contract","getContract","transaction","api","submit","transientData","endorsingOrganizations","gateway","contract","contractName","a","method","evaluate","proposalOptions","arguments","call","code","details","message","err","reason","channelName","getConnection","tlsCredentials","grpc","createSsl","tlsCert","peerEndpoint","Client","certCertOrDirectoryPath","identity","keyCertOrDirectoryPath","options","signer","evaluateOptions","deadline","Date","now","endorseOptions","submitOptions","commitStatusOptions","connect","__decorate","prototype","final","decoration","setCurrent","FabricContractContext","stub","get","timestamp","getDateTimestamp","_","logger","FabricContractRepositoryObservableHandler","ObserverHandler","supportedEvents","ctx","indexOf","setEvent","Owner","target","propertyKey","descriptor","originalMethod","acountId","clientIdentity","getID","select","selectWithContext","tokens","execute","NotFoundError","AuthorizationError","apply","ownedByOnCreate","context","getCreator","mspid","OwnedBy","getFabricModelKey","OWNEDBY","Decoration","define","decorator","attribute","required","readonly","onCreate","propMetadata","FABRIC","privateData","collection","PRIVATE","meta","Reflect","collections","Set","isPrivate","MISSING_PRIVATE_DATA_REGEX","getClassPrivateDataMetadata","isModelPrivate","modelToPrivate","hasPrivateData","decs","getAllPropertyDecoratorsRecursive","modelCollections","private","find","props","OverflowError","msg","BalanceError","AllowanceError","RegistrationError","MissingContextError","UnauthorizedPrivateDataAccess","BaseError","NotInitializedError","CustomizableSequence","BaseModel","seq","CouchDBKeys","SEQUENCE","FabricContractSequence","Sequence","repo","forModel","current","startWith","sequence","parseValue","type","increment","count","incrementBy","next","toIncrementBy","BigInt","range","FabricContractRepository","trackedEvents","logFor","c","prepared","p","records","transients","filter","u","docsOnly","pop","transformedArgs","CTX","selector","Ctx","Statement","opts","getSequenceOptions","Promise","all","enforceDBDecorators","ON","ignoredProps","errorMessages","resolve","hasErrors","ValidationError","String","ConflictError","FabricStatement","CouchDBStatement","results","pkDef","findPrimaryKey","fromSelector","pkAttr","selectSelector","processRecord","selectors","TABLE","query","fields","whereCondition","condition","parseCondition","Condition","and","eq","selectorKeys","values","CouchDBGroupOperator","AND","OR","s","orderBySelector","sort","rec","CouchDBOperator","BIGGER","limitSelector","limit","offsetSelector","skip","SimpleDeterministicSerializer","require","sortKeysRecursive","oneToOneOnCreate","propertyValue","innerRepo","repositoryFromTypeMetadata","cacheModelForPopulate","created","oneToOneOnUpdate","cascade","Cascade","CASCADE","updated","createOrUpdate","oneToOneOnDelete","deleted","oneToManyOnCreate","propertyValues","arrayType","every","item","uniqueValues","pkName","add","oneToManyOnDelete","isInstantiated","v","populate","nested","isArr","res","propName","propKeyValues","cacheKey","proKeyValue","getPopulateKey","fetchPopulateValues","createdByOnFabricCreateUpdate","pkFabricOnCreate","sequenceNameForModel","FabricContractAdapter","textDecoder","scope","putState","readState","mergeModels","deleteState","composedKey","createCompositeKey","getState","queryResult","getQueryResult","queryResultPaginated","getQueryResultWithPagination","extract","finalModel","buffer","flags","operation","resultIterator","iterator","isHistory","allResults","done","jsonRes","TxId","txId","Timestamp","Value","shift","mappedProp","column","isReserved","createdByKey","CREATED_BY","updatedByKey","UPDATED_BY","flavouredAs","onCreateUpdate","pkKey","DBKeys","ID","OrderDirection","ASC","DSC","NumericSequence","columnKey","COLUMN","extend","FabricProperty","tableKey","FabricObject","oneToOnekey","ONE_TO_ONE","joinColumnOpts","fk","joinTable","prop","RELATIONS","Number","onUpdate","onDelete","afterAny","oneToManyKey","ONE_TO_MANY","joinTableOpts","list","oneToManyOnUpdate","DeterministicSerializer","FabricContractPrivateDataAdapter","instance","transformModel","processModel","putPrivateData","getPrivateData","test","deletePrivateData","getPrivateDataQueryResult","reachedBookmark","lastKey","recordKey","recordValue","Key","Record","fetchedRecordsCount","bookmark","FabricCrudContract","initialized","getAdapter","pvt","getTransientData","merge","transientMap","getTransient","has","init","healthcheck","SerializedCrudContract","parsedKeys","modelList","parsedInput","b","sub","Transaction","Boolean","ERC20Token","ERC20Wallet","Allowance","ERC20Events","FabricERC20Contract","walletRepository","tokenRepository","allowanceRepository","TokenName","CheckInitialized","Symbol","symbol","Decimals","decimals","TotalSupply","wallets","getName","total","wallet","balance","BalanceOf","Transfer","to","_transfer","TransferFrom","spender","allowance","_getAllowance","currentAllowance","updatedAllowance","newAllowance","fromWallet","fromBalance","toWallet","newToWallet","token","toBalance","fromUpdatedBalance","toUpdatedBalance","updatedFromWallet","updatedToWallet","transferEvent","TRANSFER","Approve","approvalEvent","APPROVAL","allowanceCondition","where","Initialize","Mint","amount","minter","minterWallet","updatedBalance","updatedminter","newWallet","Burn","currentBalance","BurnFrom","account","accountWallet","updatedaccount","ClientAccountBalance","clientAccountID","clientWallet","ClientAccountID","__metadata","contracts","ContractLogger","MiniLogger","conf","level","stack","NumericLogLevels","LogLevel","createLog","setFactory","object","CoreUtils","stringFormat","getFileContent","filePath","window","Crypto","IdentityCredentials","arg","rootCertificate","Identity","X509","oneToOne","BASE_ALPHABET","CRYPTO","HFCAIdentityType","HFCAIdentityAttributes","x509","cryptoProvider","set","BaseEncoder","alphabet","baseMap","j","x","charAt","xc","base","leader","factor","Math","iFactor","encode","source","isView","byteOffset","byteLength","zeroes","pbegin","pend","size","b58","carry","it1","it2","repeat","decodeUnsafe","psz","b256","it3","it4","vch","CryptoUtils","b58encoder","BASE58","fabricIdFromCertificate","cert","X509Certificate","subject","issuer","decoded","stringToArrayBuffer","extractKey","usages","RegExp","toUpperCase","extractPublicKey","sign","buff","hash","padStart","verify","signature","publicKey","export","encrypt","getSubtleCrypto","decrypt","getMaster","textEncoder","TextEncoder","genGenesis","randomUUID","KEY_ALGORYTHM","iv","getDerivationKey","salt","saltBuffer","saltHashed","digest","HASH","iterations","ITERATIONS","derivation","deriveBits","KEYLENGTH","getKey","derivedKey","slice","ALGORYTHM","encryptPin","text","keyObject","textBuffer","decryptPin","encryptedText","decryptedText","LoggedService","_log","FabricEnrollmentService","caConfig","caName","caCert","caKey","url","CA","ca","tls","trustedRoots","root","cwd","FabricCAServices","Certificate","certificateService","newCertificateService","Affiliations","affiliationService","newAffiliationService","Identities","identityService","newIdentityService","getCertificates","request","doMap","response","certs","PEM","getIdentities","identitiesService","getAll","identities","exec","getAffiliations","enrollmentId","getOne","success","errors","register","isSuperUser","affiliation","userRole","attrs","maxEnrollments","registration","password","enrollmentID","enrollmentSecret","identityFromEnrollment","enrollment","clientId","toBytes","createdOn","updatedOn","enroll","registerAndEnroll","revoke","VERSION","PACKAGE_NAME","Metadata","registerLibrary"],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const path_1 = __importDefault(require("path"));
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const commander_1 = require("commander");
9
+ const child_process_1 = require("child_process");
10
+ const program = new commander_1.Command();
11
+ program
12
+ .command("compile-contract")
13
+ .description("Creates a global contract")
14
+ .option("--dev", "compiles contracts without minification", false)
15
+ .option("--debug", "enables inspector", false)
16
+ .option("--name <String>", "contract name", "contract")
17
+ .option("--output <String>", "output", undefined)
18
+ .action(async (options) => {
19
+ const dev = options.dev;
20
+ const debug = options.debug;
21
+ const pkg = JSON.parse(fs_1.default.readFileSync(path_1.default.join(__dirname, "../../package.json"), "utf-8"));
22
+ const scripts = {
23
+ start: debug
24
+ ? "node --inspect=0.0.0.0:9229 /usr/local/src/node_modules/.bin/fabric-chaincode-node start"
25
+ : "fabric-chaincode-node start",
26
+ "start:dev": 'fabric-chaincode-node start --peer.address "127.0.0.1:8541" --chaincode-id-name "chaincode1:0.0.1" --tls.enabled false',
27
+ "start:watch": 'nodemon --exec "npm run start:dev"',
28
+ build: 'echo "No need to build the chaincode"',
29
+ lint: "eslint . --fix --ext .js",
30
+ };
31
+ const contractPackage = pkg;
32
+ contractPackage.name = options.name;
33
+ contractPackage.description = "Global contract implementation";
34
+ contractPackage.scripts = scripts;
35
+ delete contractPackage.type;
36
+ delete contractPackage.types;
37
+ delete contractPackage.exports;
38
+ contractPackage.main = "index.js";
39
+ fs_1.default.writeFileSync(path_1.default.join(__dirname, "../../", options.output, "package.json"), JSON.stringify(contractPackage));
40
+ (0, child_process_1.execSync)(`cd ${path_1.default.join(__dirname, "../../", options.output)} && npm install`);
41
+ (0, child_process_1.execSync)(`cd ${path_1.default.join(__dirname, "../../", options.output)} && npm shrinkwrap`);
42
+ // execSync(
43
+ // `cd ${path.join(__dirname, "../../", options.output)} && rm -rf node_modules`
44
+ // );
45
+ });
46
+ program.parse(process.argv);
47
+ //# sourceMappingURL=build-contracts.js.map
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-contracts.js","sourceRoot":"","sources":["../../src/bin/build-contracts.ts"],"names":[],"mappings":";;;;;AAAA,gDAAwB;AACxB,4CAAoB;AACpB,yCAAoC;AACpC,iDAAyC;AACzC,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,OAAO,CAAC,kBAAkB,CAAC;KAC3B,WAAW,CAAC,2BAA2B,CAAC;KACxC,MAAM,CAAC,OAAO,EAAE,yCAAyC,EAAE,KAAK,CAAC;KACjE,MAAM,CAAC,SAAS,EAAE,mBAAmB,EAAE,KAAK,CAAC;KAC7C,MAAM,CAAC,iBAAiB,EAAE,eAAe,EAAE,UAAU,CAAC;KACtD,MAAM,CAAC,mBAAmB,EAAE,QAAQ,EAAE,SAAS,CAAC;KAChD,MAAM,CAAC,KAAK,EAAE,OAAY,EAAE,EAAE;IAC7B,MAAM,GAAG,GAAY,OAAO,CAAC,GAAG,CAAC;IACjC,MAAM,KAAK,GAAY,OAAO,CAAC,KAAK,CAAC;IAErC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CACpB,YAAE,CAAC,YAAY,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,EAAE,OAAO,CAAC,CACrE,CAAC;IAEF,MAAM,OAAO,GAAG;QACd,KAAK,EAAE,KAAK;YACV,CAAC,CAAC,0FAA0F;YAC5F,CAAC,CAAC,6BAA6B;QACjC,WAAW,EACT,wHAAwH;QAC1H,aAAa,EAAE,oCAAoC;QACnD,KAAK,EAAE,uCAAuC;QAC9C,IAAI,EAAE,0BAA0B;KACjC,CAAC;IAEF,MAAM,eAAe,GAAG,GAAG,CAAC;IAE5B,eAAe,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IACpC,eAAe,CAAC,WAAW,GAAG,gCAAgC,CAAC;IAC/D,eAAe,CAAC,OAAO,GAAG,OAAO,CAAC;IAElC,OAAO,eAAe,CAAC,IAAI,CAAC;IAC5B,OAAO,eAAe,CAAC,KAAK,CAAC;IAC7B,OAAO,eAAe,CAAC,OAAO,CAAC;IAC/B,eAAe,CAAC,IAAI,GAAG,UAAU,CAAC;IAElC,YAAE,CAAC,aAAa,CACd,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,EAC9D,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAChC,CAAC;IAEF,IAAA,wBAAQ,EACN,MAAM,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,iBAAiB,CACtE,CAAC;IACF,IAAA,wBAAQ,EACN,MAAM,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAC1E,CAAC;IACF,YAAY;IACZ,mFAAmF;IACnF,KAAK;AACP,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
@@ -712,7 +712,7 @@ class FabricClientAdapter extends for_couchdb_1.CouchDBAdapter {
712
712
  }
713
713
  exports.FabricClientAdapter = FabricClientAdapter;
714
714
  __decorate([
715
- (0, logging_1.debug)(true)
715
+ (0, logging_1.debug)()
716
716
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
717
717
  ,
718
718
  __metadata("design:type", Function),
@@ -720,35 +720,35 @@ __decorate([
720
720
  __metadata("design:returntype", Promise)
721
721
  ], FabricClientAdapter.prototype, "index", null);
722
722
  __decorate([
723
- (0, logging_1.debug)(true),
723
+ (0, logging_1.debug)(),
724
724
  (0, core_1.final)(),
725
725
  __metadata("design:type", Function),
726
726
  __metadata("design:paramtypes", [String, Object, Object, Object]),
727
727
  __metadata("design:returntype", Promise)
728
728
  ], FabricClientAdapter.prototype, "create", null);
729
729
  __decorate([
730
- (0, logging_1.debug)(true),
730
+ (0, logging_1.debug)(),
731
731
  (0, core_1.final)(),
732
732
  __metadata("design:type", Function),
733
733
  __metadata("design:paramtypes", [String, Object]),
734
734
  __metadata("design:returntype", Promise)
735
735
  ], FabricClientAdapter.prototype, "read", null);
736
736
  __decorate([
737
- (0, logging_1.debug)(true),
737
+ (0, logging_1.debug)(),
738
738
  (0, core_1.final)(),
739
739
  __metadata("design:type", Function),
740
740
  __metadata("design:paramtypes", [String, Object, Object, Object]),
741
741
  __metadata("design:returntype", Promise)
742
742
  ], FabricClientAdapter.prototype, "update", null);
743
743
  __decorate([
744
- (0, logging_1.debug)(true),
744
+ (0, logging_1.debug)(),
745
745
  (0, core_1.final)(),
746
746
  __metadata("design:type", Function),
747
747
  __metadata("design:paramtypes", [String, Object]),
748
748
  __metadata("design:returntype", Promise)
749
749
  ], FabricClientAdapter.prototype, "delete", null);
750
750
  __decorate([
751
- (0, logging_1.debug)(true)
751
+ (0, logging_1.debug)()
752
752
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
753
753
  ,
754
754
  __metadata("design:type", Function),
@@ -757,4 +757,4 @@ __decorate([
757
757
  ], FabricClientAdapter.prototype, "raw", null);
758
758
  FabricClientAdapter.decoration();
759
759
  core_1.Adapter.setCurrent(constants_1.FabricFlavour);
760
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQ2xpZW50QWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGllbnQvRmFicmljQ2xpZW50QWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx1REFBd0U7QUFDeEUsMkNBQXVDO0FBQ3ZDLG9EQUFzQztBQUV0Qyx5RUFJd0M7QUFDeEMsK0NBQTJEO0FBRTNELGdFQU9xQztBQUNyQywrQ0FBcUQ7QUFDckQsMkRBUWlDO0FBQ2pDLHlDQU13QjtBQUN4Qix5RUFBa0U7QUFDbEUseURBQW9EO0FBQ3BELHVFQUE4RDtBQUM5RCxxRUFBOEQ7QUFFOUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0RHO0FBQ0gsTUFBYSxtQkFBb0IsU0FBUSw0QkFLeEM7SUFDQzs7T0FFRzthQUNZLFlBQU8sR0FBRyxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsQUFBMUIsQ0FBMkI7YUFFbEMsZUFBVSxHQUFHLElBQUksbUNBQWdCLEVBQUUsQUFBekIsQ0FBMEI7SUFFbkQ7O09BRUc7YUFDWSxRQUFHLEdBQVcsaUJBQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQUFBM0MsQ0FBNEM7SUFFOUQ7Ozs7T0FJRztJQUNILElBQXVCLEdBQUc7UUFDeEIsT0FBTyxtQkFBbUIsQ0FBQyxHQUFHLENBQUM7SUFDakMsQ0FBQztJQUtEOzs7OztPQUtHO0lBQ0gsWUFBWSxNQUFrQixFQUFFLEtBQWM7UUFDNUMsS0FBSyxDQUFDLE1BQU0sRUFBRSx5QkFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBVm5CLGVBQVUsR0FDM0IsbUJBQW1CLENBQUMsVUFBVSxDQUFDO0lBVWpDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxJQUFnQjtRQUNyQixPQUFPLG1CQUFtQixDQUFDLE9BQU8s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LEdBQUU7Ozs7aURBZ0JQO0FBV0s7SUFGTCxJQUFBLGVBQUssRUFBQyxJQUFJLENBQUM7SUFDWCxJQUFBLFlBQUssR0FBRTs7OztpREFhUDtBQTZCSztJQUZMLElBQUEsZUFBSyxFQUFDLElBQUksQ0FBQztJQUNaLDZEQUE2RDs7Ozs7OENBeUM1RDtBQTJVSCxtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsQ0FBQztBQUNqQyxjQUFPLENBQUMsVUFBVSxDQUFDLHlCQUFhLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvdWNoREJBZGFwdGVyLCB0eXBlIE1hbmdvUXVlcnkgfSBmcm9tIFwiQGRlY2FmLXRzL2Zvci1jb3VjaGRiXCI7XG5pbXBvcnQgeyBDbGllbnQgfSBmcm9tIFwiQGdycGMvZ3JwYy1qc1wiO1xuaW1wb3J0ICogYXMgZ3JwYyBmcm9tIFwiQGdycGMvZ3JwYy1qc1wiO1xuXG5pbXBvcnQge1xuICB0eXBlIENvbnN0cnVjdG9yLFxuICBNb2RlbCxcbiAgdHlwZSBTZXJpYWxpemVyLFxufSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBkZWJ1ZywgTG9nZ2VyLCBMb2dnaW5nIH0gZnJvbSBcIkBkZWNhZi10cy9sb2dnaW5nXCI7XG5pbXBvcnQgeyBGYWJyaWNGbGFncywgUGVlckNvbmZpZyB9IGZyb20gXCIuLi9zaGFyZWQvdHlwZXNcIjtcbmltcG9ydCB7XG4gIGNvbm5lY3QsXG4gIENvbm5lY3RPcHRpb25zLFxuICBHYXRld2F5LFxuICBOZXR3b3JrLFxuICBQcm9wb3NhbE9wdGlvbnMsXG4gIENvbnRyYWN0IGFzIENvbnRyYWt0LFxufSBmcm9tIFwiQGh5cGVybGVkZ2VyL2ZhYnJpYy1nYXRld2F5XCI7XG5pbXBvcnQgeyBnZXRJZGVudGl0eSwgZ2V0U2lnbmVyIH0gZnJvbSBcIi4vZmFicmljLWZzXCI7XG5pbXBvcnQge1xuICBCYXNlRXJyb3IsXG4gIENvbnRleHQsXG4gIEludGVybmFsRXJyb3IsXG4gIE9wZXJhdGlvbktleXMsXG4gIFNlcmlhbGl6YXRpb25FcnJvcixcbiAgQnVsa0NydWRPcGVyYXRpb25LZXlzLFxuICBtb2RlbFRvVHJhbnNpZW50LFxufSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7XG4gIEFkYXB0ZXIsXG4gIERpc3BhdGNoLFxuICBmaW5hbCxcbiAgUGVyc2lzdGVuY2VLZXlzLFxuICBSZXBvc2l0b3J5LFxufSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IEZhYnJpY0NsaWVudFJlcG9zaXRvcnkgfSBmcm9tIFwiLi9GYWJyaWNDbGllbnRSZXBvc2l0b3J5XCI7XG5pbXBvcnQgeyBGYWJyaWNGbGF2b3VyIH0gZnJvbSBcIi4uL3NoYXJlZC9jb25zdGFudHNcIjtcbmltcG9ydCB7IENsaWVudFNlcmlhbGl6ZXIgfSBmcm9tIFwiLi4vc2hhcmVkL0NsaWVudFNlcmlhbGl6ZXJcIjtcbmltcG9ydCB7IEZhYnJpY0NsaWVudERpc3BhdGNoIH0gZnJvbSBcIi4vRmFicmljQ2xpZW50RGlzcGF0Y2hcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQWRhcHRlciBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBIeXBlcmxlZGdlciBGYWJyaWMgbmV0d29ya3NcbiAqIEBzdW1tYXJ5IFRoZSBGYWJyaWNBZGFwdGVyIGV4dGVuZHMgQ291Y2hEQkFkYXB0ZXIgdG8gcHJvdmlkZSBhIHNlYW1sZXNzIGludGVyZmFjZSBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBIeXBlcmxlZGdlciBGYWJyaWMgbmV0d29ya3MuXG4gKiBJdCBoYW5kbGVzIGNvbm5lY3Rpb24gbWFuYWdlbWVudCwgdHJhbnNhY3Rpb24gc3VibWlzc2lvbiwgYW5kIENSVUQgb3BlcmF0aW9ucyBhZ2FpbnN0IEZhYnJpYyBjaGFpbmNvZGUuXG4gKiBAdGVtcGxhdGUgUGVlckNvbmZpZyAtIENvbmZpZ3VyYXRpb24gdHlwZSBmb3IgY29ubmVjdGluZyB0byBhIEZhYnJpYyBwZWVyXG4gKiBAdGVtcGxhdGUgRmFicmljRmxhZ3MgLSBGbGFncyBzcGVjaWZpYyB0byBGYWJyaWMgb3BlcmF0aW9uc1xuICogQHRlbXBsYXRlIENvbnRleHQ8RmFicmljRmxhZ3M+IC0gQ29udGV4dCB0eXBlIGNvbnRhaW5pbmcgRmFicmljLXNwZWNpZmljIGZsYWdzXG4gKiBAcGFyYW0gY29uZmlnIC0gQ29uZmlndXJhdGlvbiBmb3IgY29ubmVjdGluZyB0byBhIEZhYnJpYyBwZWVyXG4gKiBAcGFyYW0gYWxpYXMgLSBPcHRpb25hbCBhbGlhcyBmb3IgdGhlIGFkYXB0ZXIgaW5zdGFuY2VcbiAqIEBjbGFzcyBGYWJyaWNDbGllbnRBZGFwdGVyXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogLy8gQ3JlYXRlIGEgbmV3IEZhYnJpY0FkYXB0ZXIgaW5zdGFuY2VcbiAqIGNvbnN0IGNvbmZpZzogUGVlckNvbmZpZyA9IHtcbiAqICAgbXNwSWQ6ICdPcmcxTVNQJyxcbiAqICAgcGVlckVuZHBvaW50OiAnbG9jYWxob3N0OjcwNTEnLFxuICogICBjaGFubmVsTmFtZTogJ215Y2hhbm5lbCcsXG4gKiAgIGNoYWluY29kZU5hbWU6ICdteWNjJyxcbiAqICAgY29udHJhY3ROYW1lOiAnbXljb250cmFjdCcsXG4gKiAgIHRsc0NlcnRQYXRoOiAnL3BhdGgvdG8vdGxzL2NlcnQnLFxuICogICBjZXJ0RGlyZWN0b3J5UGF0aDogJy9wYXRoL3RvL2NlcnQvZGlyJyxcbiAqICAga2V5RGlyZWN0b3J5UGF0aDogJy9wYXRoL3RvL2tleS9kaXInXG4gKiB9O1xuICpcbiAqIGNvbnN0IGFkYXB0ZXIgPSBuZXcgRmFicmljQWRhcHRlcihjb25maWcsICdvcmcxLWFkYXB0ZXInKTtcbiAqXG4gKiAvLyBVc2UgdGhlIGFkYXB0ZXIgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgRmFicmljIG5ldHdvcmtcbiAqIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGFkYXB0ZXIucmVhZCgndXNlcnMnLCAndXNlcjEnLCBteVNlcmlhbGl6ZXIpO1xuICogYGBgXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IENsaWVudFxuICogICBwYXJ0aWNpcGFudCBGYWJyaWNBZGFwdGVyXG4gKiAgIHBhcnRpY2lwYW50IEdhdGV3YXlcbiAqICAgcGFydGljaXBhbnQgTmV0d29ya1xuICogICBwYXJ0aWNpcGFudCBDb250cmFjdFxuICogICBwYXJ0aWNpcGFudCBDaGFpbmNvZGVcbiAqXG4gKiAgIENsaWVudC0+PkZhYnJpY0FkYXB0ZXI6IGNyZWF0ZSh0YWJsZU5hbWUsIGlkLCBtb2RlbCwgdHJhbnNpZW50LCBzZXJpYWxpemVyKVxuICogICBGYWJyaWNBZGFwdGVyLT4+RmFicmljQWRhcHRlcjogc3VibWl0VHJhbnNhY3Rpb24oT3BlcmF0aW9uS2V5cy5DUkVBVEUsIFtzZXJpYWxpemVkTW9kZWxdLCB0cmFuc2llbnQpXG4gKiAgIEZhYnJpY0FkYXB0ZXItPj5HYXRld2F5OiBjb25uZWN0KClcbiAqICAgR2F0ZXdheS0+Pk5ldHdvcms6IGdldE5ldHdvcmsoY2hhbm5lbE5hbWUpXG4gKiAgIE5ldHdvcmstPj5Db250cmFjdDogZ2V0Q29udHJhY3QoY2hhaW5jb2RlTmFtZSwgY29udHJhY3ROYW1lKVxuICogICBGYWJyaWNBZGFwdGVyLT4+Q29udHJhY3Q6IHN1Ym1pdChhcGksIHByb3Bvc2FsT3B0aW9ucylcbiAqICAgQ29udHJhY3QtPj5DaGFpbmNvZGU6IGludm9rZVxuICogICBDaGFpbmNvZGUtLT4+Q29udHJhY3Q6IHJlc3BvbnNlXG4gKiAgIENvbnRyYWN0LS0+PkZhYnJpY0FkYXB0ZXI6IHJlc3VsdFxuICogICBGYWJyaWNBZGFwdGVyLT4+RmFicmljQWRhcHRlcjogZGVjb2RlKHJlc3VsdClcbiAqICAgRmFicmljQWRhcHRlci0+PkZhYnJpY0FkYXB0ZXI6IHNlcmlhbGl6ZXIuZGVzZXJpYWxpemUoZGVjb2RlZFJlc3VsdClcbiAqICAgRmFicmljQWRhcHRlci0tPj5DbGllbnQ6IGRlc2VyaWFsaXplZFJlc3VsdFxuICovXG5leHBvcnQgY2xhc3MgRmFicmljQ2xpZW50QWRhcHRlciBleHRlbmRzIENvdWNoREJBZGFwdGVyPFxuICBQZWVyQ29uZmlnLFxuICBDbGllbnQsXG4gIEZhYnJpY0ZsYWdzLFxuICBDb250ZXh0PEZhYnJpY0ZsYWdzPlxuPiB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gU3RhdGljIHRleHQgZGVjb2RlciBmb3IgY29udmVydGluZyBVaW50OEFycmF5IHRvIHN0cmluZ1xuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgZGVjb2RlciA9IG5ldyBUZXh0RGVjb2RlcihcInV0ZjhcIik7XG5cbiAgcHJpdmF0ZSBzdGF0aWMgc2VyaWFsaXplciA9IG5ldyBDbGllbnRTZXJpYWxpemVyKCk7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBTdGF0aWMgbG9nZ2VyIGluc3RhbmNlIGZvciB0aGUgRmFicmljQWRhcHRlciBjbGFzc1xuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgbG9nOiBMb2dnZXIgPSBMb2dnaW5nLmZvcihGYWJyaWNDbGllbnRBZGFwdGVyKTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEdldHMgdGhlIGxvZ2dlciBpbnN0YW5jZSBmb3IgdGhpcyBhZGFwdGVyXG4gICAqIEBzdW1tYXJ5IFJldHVybnMgdGhlIHN0YXRpYyBsb2dnZXIgaW5zdGFuY2UgZm9yIHRoZSBGYWJyaWNBZGFwdGVyIGNsYXNzXG4gICAqIEByZXR1cm4ge0xvZ2dlcn0gVGhlIGxvZ2dlciBpbnN0YW5jZVxuICAgKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGdldCBsb2coKTogTG9nZ2VyIHtcbiAgICByZXR1cm4gRmFicmljQ2xpZW50QWRhcHRlci5sb2c7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VyaWFsaXplcjogU2VyaWFsaXplcjxhbnk+ID1cbiAgICBGYWJyaWNDbGllbnRBZGFwdGVyLnNlcmlhbGl6ZXI7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIGEgbmV3IEZhYnJpY0FkYXB0ZXIgaW5zdGFuY2VcbiAgICogQHN1bW1hcnkgSW5pdGlhbGl6ZXMgYSBuZXcgYWRhcHRlciBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBhIEh5cGVybGVkZ2VyIEZhYnJpYyBuZXR3b3JrXG4gICAqIEBwYXJhbSB7UGVlckNvbmZpZ30gY29uZmlnIC0gQ29uZmlndXJhdGlvbiBmb3IgY29ubmVjdGluZyB0byBhIEZhYnJpYyBwZWVyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbYWxpYXNdIC0gT3B0aW9uYWwgYWxpYXMgZm9yIHRoZSBhZGFwdGVyIGluc3RhbmNlXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihjb25maWc6IFBlZXJDb25maWcsIGFsaWFzPzogc3RyaW5nKSB7XG4gICAgc3VwZXIoY29uZmlnLCBGYWJyaWNGbGF2b3VyLCBhbGlhcyk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIERlY29kZXMgYSBVaW50OEFycmF5IHRvIGEgc3RyaW5nXG4gICAqIEBzdW1tYXJ5IENvbnZlcnRzIGJpbmFyeSBkYXRhIHJlY2VpdmVkIGZyb20gRmFicmljIHRvIGEgc3RyaW5nIHVzaW5nIFVURi04IGVuY29kaW5nXG4gICAqIEBwYXJhbSB7VWludDhBcnJheX0gZGF0YSAtIFRoZSBiaW5hcnkgZGF0YSB0byBkZWNvZGVcbiAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgZGVjb2RlZCBzdHJpbmdcbiAgICovXG4gIGRlY29kZShkYXRhOiBVaW50OEFycmF5KTogc3RyaW5nIHtcbiAgICByZXR1cm4gRmFicmljQ2xpZW50QWRhcHRlci5kZWNvZGVyLmRlY29kZShkYXRhKTtcbiAgfVxuXG4gIG92ZXJyaWRlIHJlcG9zaXRvcnk8TSBleHRlbmRzIE1vZGVsPHRydWUgfCBmYWxzZT4+KCk6IENvbnN0cnVjdG9yPFxuICAgIFJlcG9zaXRvcnk8XG4gICAgICBNLFxuICAgICAgTWFuZ29RdWVyeSxcbiAgICAgIEFkYXB0ZXI8XG4gICAgICAgIFBlZXJDb25maWcsXG4gICAgICAgIENsaWVudCxcbiAgICAgICAgTWFuZ29RdWVyeSxcbiAgICAgICAgRmFicmljRmxhZ3MsXG4gICAgICAgIENvbnRleHQ8RmFicmljRmxhZ3M+XG4gICAgICA+LFxuICAgICAgRmFicmljRmxhZ3MsXG4gICAgICBDb250ZXh0PEZhYnJpY0ZsYWdzPlxuICAgID5cbiAgPiB7XG4gICAgcmV0dXJuIEZhYnJpY0NsaWVudFJlcG9zaXRvcnk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgbXVsdGlwbGUgcmVjb3JkcyBpbiBhIHNpbmdsZSB0cmFuc2FjdGlvblxuICAgKiBAc3VtbWFyeSBTdWJtaXRzIGEgdHJhbnNhY3Rpb24gdG8gY3JlYXRlIG11bHRpcGxlIHJlY29yZHMgaW4gdGhlIEZhYnJpYyBsZWRnZXJcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRhYmxlTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSB0YWJsZS9jb2xsZWN0aW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nW10gfCBudW1iZXJbXX0gaWRzIC0gQXJyYXkgb2YgcmVjb3JkIGlkZW50aWZpZXJzXG4gICAqIEBwYXJhbSB7QXJyYXk8UmVjb3JkPHN0cmluZywgYW55Pj59IG1vZGVscyAtIEFycmF5IG9mIHJlY29yZCBkYXRhXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gdHJhbnNpZW50IC0gVHJhbnNpZW50IGRhdGEgZm9yIHRoZSB0cmFuc2FjdGlvblxuICAgKiBAcmV0dXJuIHtQcm9taXNlPEFycmF5PFJlY29yZDxzdHJpbmcsIGFueT4+Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGNyZWF0ZWQgcmVjb3Jkc1xuICAgKi9cbiAgb3ZlcnJpZGUgYXN5bmMgY3JlYXRlQWxsKFxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxuICAgIGlkczogc3RyaW5nW10gfCBudW1iZXJbXSxcbiAgICBtb2RlbHM6IFJlY29yZDxzdHJpbmcsIGFueT5bXSxcbiAgICB0cmFuc2llbnQ6IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+W10+IHtcbiAgICBjb25zdCBsb2cgPSB0aGlzLmxvZy5mb3IodGhpcy5jcmVhdGVBbGwpO1xuICAgIGlmIChpZHMubGVuZ3RoICE9PSBtb2RlbHMubGVuZ3RoKVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgIGBJZHMgYW5kIG1vZGVscyBtdXN0IGhhdmUgdGhlIHNhbWUgbGVuZ3RoOiAke2lkcy5sZW5ndGh9ICE9ICR7bW9kZWxzLmxlbmd0aH1gXG4gICAgICApO1xuICAgIGxvZy5pbmZvKGBhZGRpbmcgJHtpZHMubGVuZ3RofSBlbnRyaWVzIHRvICR7dGFibGVOYW1lfSB0YWJsZWApO1xuICAgIGxvZy52ZXJib3NlKGBwa3M6ICR7aWRzfWApO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuc3VibWl0VHJhbnNhY3Rpb24oXG4gICAgICBCdWxrQ3J1ZE9wZXJhdGlvbktleXMuQ1JFQVRFX0FMTCxcbiAgICAgIFtpZHMsIG1vZGVscy5tYXAoKG0pID0+IHRoaXMuc2VyaWFsaXplci5zZXJpYWxpemUobSwgdGFibGVOYW1lKSldLFxuICAgICAgdHJhbnNpZW50XG4gICAgKTtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIEpTT04ucGFyc2UodGhpcy5kZWNvZGUocmVzdWx0KSkubWFwKChyOiBhbnkpID0+IEpTT04ucGFyc2UocikpO1xuICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgIHRocm93IG5ldyBTZXJpYWxpemF0aW9uRXJyb3IoZSBhcyBFcnJvcik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBSZWFkcyBtdWx0aXBsZSByZWNvcmRzIGluIGEgc2luZ2xlIHRyYW5zYWN0aW9uXG4gICAqIEBzdW1tYXJ5IFN1Ym1pdHMgYSB0cmFuc2FjdGlvbiB0byByZWFkIG11bHRpcGxlIHJlY29yZHMgZnJvbSB0aGUgRmFicmljIGxlZGdlclxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGFibGVOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHRhYmxlL2NvbGxlY3Rpb25cbiAgICogQHBhcmFtIHtzdHJpbmdbXSB8IG51bWJlcltdfSBpZHMgLSBBcnJheSBvZiByZWNvcmQgaWRlbnRpZmllcnMgdG8gcmVhZFxuICAgKiBAcmV0dXJuIHtQcm9taXNlPEFycmF5PFJlY29yZDxzdHJpbmcsIGFueT4+Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIHJldHJpZXZlZCByZWNvcmRzXG4gICAqL1xuICBvdmVycmlkZSBhc3luYyByZWFkQWxsKFxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxuICAgIGlkczogc3RyaW5nW10gfCBudW1iZXJbXVxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT5bXT4ge1xuICAgIGNvbnN0IGxvZyA9IHRoaXMubG9nLmZvcih0aGlzLnJlYWRBbGwpO1xuICAgIGxvZy5pbmZvKGByZWFkaW5nICR7aWRzLmxlbmd0aH0gZW50cmllcyB0byAke3RhYmxlTmFtZX0gdGFibGVgKTtcbiAgICBsb2cudmVyYm9zZShgcGtzOiAke2lkc31gKTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnN1Ym1pdFRyYW5zYWN0aW9uKFxuICAgICAgQnVsa0NydWRPcGVyYXRpb25LZXlzLlJFQURfQUxMLFxuICAgICAgW2lkc11cbiAgICApO1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gSlNPTi5wYXJzZSh0aGlzLmRlY29kZShyZXN1bHQpKS5tYXAoKHI6IGFueSkgPT4gSlNPTi5wYXJzZShyKSk7XG4gICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgdGhyb3cgbmV3IFNlcmlhbGl6YXRpb25FcnJvcihlIGFzIEVycm9yKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFVwZGF0ZXMgbXVsdGlwbGUgcmVjb3JkcyBpbiBhIHNpbmdsZSB0cmFuc2FjdGlvblxuICAgKiBAc3VtbWFyeSBTdWJtaXRzIGEgdHJhbnNhY3Rpb24gdG8gdXBkYXRlIG11bHRpcGxlIHJlY29yZHMgaW4gdGhlIEZhYnJpYyBsZWRnZXJcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRhYmxlTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSB0YWJsZS9jb2xsZWN0aW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nW10gfCBudW1iZXJbXX0gaWRzIC0gQXJyYXkgb2YgcmVjb3JkIGlkZW50aWZpZXJzXG4gICAqIEBwYXJhbSB7QXJyYXk8UmVjb3JkPHN0cmluZywgYW55Pj59IG1vZGVscyAtIEFycmF5IG9mIHVwZGF0ZWQgcmVjb3JkIGRhdGFcbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSB0cmFuc2llbnQgLSBUcmFuc2llbnQgZGF0YSBmb3IgdGhlIHRyYW5zYWN0aW9uXG4gICAqIEByZXR1cm4ge1Byb21pc2U8QXJyYXk8UmVjb3JkPHN0cmluZywgYW55Pj4+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgdXBkYXRlZCByZWNvcmRzXG4gICAqL1xuICBvdmVycmlkZSBhc3luYyB1cGRhdGVBbGwoXG4gICAgdGFibGVOYW1lOiBzdHJpbmcsXG4gICAgaWRzOiBzdHJpbmdbXSB8IG51bWJlcltdLFxuICAgIG1vZGVsczogUmVjb3JkPHN0cmluZywgYW55PltdLFxuICAgIHRyYW5zaWVudDogUmVjb3JkPHN0cmluZywgYW55PlxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT5bXT4ge1xuICAgIGNvbnN0IGxvZyA9IHRoaXMubG9nLmZvcih0aGlzLnVwZGF0ZUFsbCk7XG4gICAgaWYgKGlkcy5sZW5ndGggIT09IG1vZGVscy5sZW5ndGgpXG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgYElkcyBhbmQgbW9kZWxzIG11c3QgaGF2ZSB0aGUgc2FtZSBsZW5ndGg6ICR7aWRzLmxlbmd0aH0gIT0gJHttb2RlbHMubGVuZ3RofWBcbiAgICAgICk7XG4gICAgbG9nLmluZm8oYHVwZGF0aW5nICR7aWRzLmxlbmd0aH0gZW50cmllcyB0byAke3RhYmxlTmFtZX0gdGFibGVgKTtcbiAgICBsb2cudmVyYm9zZShgcGtzOiAke2lkc31gKTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnN1Ym1pdFRyYW5zYWN0aW9uKFxuICAgICAgQnVsa0NydWRPcGVyYXRpb25LZXlzLlVQREFURV9BTEwsXG4gICAgICBbaWRzLCBtb2RlbHMubWFwKChtKSA9PiB0aGlzLnNlcmlhbGl6ZXIuc2VyaWFsaXplKG0sIHRhYmxlTmFtZSkpXSxcbiAgICAgIHRyYW5zaWVudFxuICAgICk7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBKU09OLnBhcnNlKHRoaXMuZGVjb2RlKHJlc3VsdCkpLm1hcCgocjogYW55KSA9PiBKU09OLnBhcnNlKHIpKTtcbiAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICB0aHJvdyBuZXcgU2VyaWFsaXphdGlvbkVycm9yKGUgYXMgRXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRGVsZXRlcyBtdWx0aXBsZSByZWNvcmRzIGluIGEgc2luZ2xlIHRyYW5zYWN0aW9uXG4gICAqIEBzdW1tYXJ5IFN1Ym1pdHMgYSB0cmFuc2FjdGlvbiB0byBkZWxldGUgbXVsdGlwbGUgcmVjb3JkcyBmcm9tIHRoZSBGYWJyaWMgbGVkZ2VyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0YWJsZU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgdGFibGUvY29sbGVjdGlvblxuICAgKiBAcGFyYW0ge0FycmF5PHN0cmluZyB8IG51bWJlciB8IGJpZ2ludD59IGlkcyAtIEFycmF5IG9mIHJlY29yZCBpZGVudGlmaWVycyB0byBkZWxldGVcbiAgICogQHBhcmFtIHtTZXJpYWxpemVyPGFueT59IHNlcmlhbGl6ZXIgLSBTZXJpYWxpemVyIGZvciB0aGUgbW9kZWwgZGF0YVxuICAgKiBAcmV0dXJuIHtQcm9taXNlPEFycmF5PFJlY29yZDxzdHJpbmcsIGFueT4+Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGRlbGV0ZWQgcmVjb3Jkc1xuICAgKi9cbiAgb3ZlcnJpZGUgYXN5bmMgZGVsZXRlQWxsKFxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxuICAgIGlkczogKHN0cmluZyB8IG51bWJlciB8IGJpZ2ludClbXVxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT5bXT4ge1xuICAgIGNvbnN0IGxvZyA9IHRoaXMubG9nLmZvcih0aGlzLmRlbGV0ZUFsbCk7XG4gICAgbG9nLmluZm8oYGRlbGV0aW5nICR7aWRzLmxlbmd0aH0gZW50cmllcyB0byAke3RhYmxlTmFtZX0gdGFibGVgKTtcbiAgICBsb2cudmVyYm9zZShgcGtzOiAke2lkc31gKTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnN1Ym1pdFRyYW5zYWN0aW9uKFxuICAgICAgQnVsa0NydWRPcGVyYXRpb25LZXlzLkRFTEVURV9BTEwsXG4gICAgICBbaWRzXVxuICAgICk7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBKU09OLnBhcnNlKHRoaXMuZGVjb2RlKHJlc3VsdCkpLm1hcCgocjogYW55KSA9PiBKU09OLnBhcnNlKHIpKTtcbiAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICB0aHJvdyBuZXcgU2VyaWFsaXphdGlvbkVycm9yKGUgYXMgRXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUHJlcGFyZXMgYSBtb2RlbCBmb3IgcGVyc2lzdGVuY2VcbiAgICogQHN1bW1hcnkgQ29udmVydHMgYSBtb2RlbCBpbnN0YW5jZSBpbnRvIGEgZm9ybWF0IHN1aXRhYmxlIGZvciBkYXRhYmFzZSBzdG9yYWdlLFxuICAgKiBoYW5kbGluZyBjb2x1bW4gbWFwcGluZyBhbmQgc2VwYXJhdGluZyB0cmFuc2llbnQgcHJvcGVydGllc1xuICAgKiBAdGVtcGxhdGUgTSAtIFRoZSBtb2RlbCB0eXBlXG4gICAqIEBwYXJhbSB7TX0gbW9kZWwgLSBUaGUgbW9kZWwgaW5zdGFuY2UgdG8gcHJlcGFyZVxuICAgKiBAcGFyYW0gcGsgLSBUaGUgcHJpbWFyeSBrZXkgcHJvcGVydHkgbmFtZVxuICAgKiBAcmV0dXJuIFRoZSBwcmVwYXJlZCBkYXRhXG4gICAqL1xuICBvdmVycmlkZSBwcmVwYXJlPE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgbW9kZWw6IE0sXG4gICAgcGs6IGtleW9mIE1cbiAgKToge1xuICAgIHJlY29yZDogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgICBpZDogc3RyaW5nO1xuICAgIHRyYW5zaWVudD86IFJlY29yZDxzdHJpbmcsIGFueT47XG4gIH0ge1xuICAgIGNvbnN0IGxvZyA9IHRoaXMubG9nLmZvcih0aGlzLnByZXBhcmUpO1xuICAgIGNvbnN0IHNwbGl0ID0gbW9kZWxUb1RyYW5zaWVudChtb2RlbCk7XG4gICAgaWYgKChtb2RlbCBhcyBhbnkpW1BlcnNpc3RlbmNlS2V5cy5NRVRBREFUQV0pIHtcbiAgICAgIGxvZy5zaWxseShcbiAgICAgICAgYFBhc3NpbmcgYWxvbmcgcGVyc2lzdGVuY2UgbWV0YWRhdGEgZm9yICR7KG1vZGVsIGFzIGFueSlbUGVyc2lzdGVuY2VLZXlzLk1FVEFEQVRBXX1gXG4gICAgICApO1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHNwbGl0Lm1vZGVsLCBQZXJzaXN0ZW5jZUtleXMuTUVUQURBVEEsIHtcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICB2YWx1ZTogKG1vZGVsIGFzIGFueSlbUGVyc2lzdGVuY2VLZXlzLk1FVEFEQVRBXSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICByZWNvcmQ6IHNwbGl0Lm1vZGVsLFxuICAgICAgaWQ6IG1vZGVsW3BrXSBhcyBzdHJpbmcsXG4gICAgICB0cmFuc2llbnQ6IHNwbGl0LnRyYW5zaWVudCxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDb252ZXJ0cyBkYXRhYmFzZSBkYXRhIGJhY2sgaW50byBhIG1vZGVsIGluc3RhbmNlXG4gICAqIEBzdW1tYXJ5IFJlY29uc3RydWN0cyBhIG1vZGVsIGluc3RhbmNlIGZyb20gZGF0YWJhc2UgZGF0YSwgaGFuZGxpbmcgY29sdW1uIG1hcHBpbmdcbiAgICogYW5kIHJlYXR0YWNoaW5nIHRyYW5zaWVudCBwcm9wZXJ0aWVzXG4gICAqIEB0ZW1wbGF0ZSBNIC0gVGhlIG1vZGVsIHR5cGVcbiAgICogQHBhcmFtIG9iaiAtIFRoZSBkYXRhYmFzZSByZWNvcmRcbiAgICogQHBhcmFtIHtzdHJpbmd8Q29uc3RydWN0b3I8TT59IGNsYXp6IC0gVGhlIG1vZGVsIGNsYXNzIG9yIG5hbWVcbiAgICogQHBhcmFtIHBrIC0gVGhlIHByaW1hcnkga2V5IHByb3BlcnR5IG5hbWVcbiAgICogQHBhcmFtIHtzdHJpbmd8bnVtYmVyfGJpZ2ludH0gaWQgLSBUaGUgcHJpbWFyeSBrZXkgdmFsdWVcbiAgICogQHBhcmFtIFt0cmFuc2llbnRdIC0gVHJhbnNpZW50IHByb3BlcnRpZXMgdG8gcmVhdHRhY2hcbiAgICogQHJldHVybiB7TX0gVGhlIHJlY29uc3RydWN0ZWQgbW9kZWwgaW5zdGFuY2VcbiAgICovXG4gIG92ZXJyaWRlIHJldmVydDxNIGV4dGVuZHMgTW9kZWw+KFxuICAgIG9iajogUmVjb3JkPHN0cmluZywgYW55PixcbiAgICBjbGF6ejogc3RyaW5nIHwgQ29uc3RydWN0b3I8TT4sXG4gICAgcGs6IGtleW9mIE0sXG4gICAgaWQ6IHN0cmluZyB8IG51bWJlciB8IGJpZ2ludCxcbiAgICB0cmFuc2llbnQ/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+XG4gICk6IE0ge1xuICAgIGNvbnN0IGxvZyA9IHRoaXMubG9nLmZvcih0aGlzLnJldmVydCk7XG4gICAgY29uc3Qgb2I6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgICBvYltwayBhcyBzdHJpbmddID0gaWQ7XG4gICAgY29uc3QgbSA9IChcbiAgICAgIHR5cGVvZiBjbGF6eiA9PT0gXCJzdHJpbmdcIiA/IE1vZGVsLmJ1aWxkKG9iLCBjbGF6eikgOiBuZXcgY2xhenoob2IpXG4gICAgKSBhcyBNO1xuICAgIGxvZy5zaWxseShgUmVidWlsZGluZyBtb2RlbCAke20uY29uc3RydWN0b3IubmFtZX0gaWQgJHtpZH1gKTtcbiAgICBjb25zdCBtZXRhZGF0YSA9IG9ialtQZXJzaXN0ZW5jZUtleXMuTUVUQURBVEFdO1xuICAgIGNvbnN0IHJlc3VsdCA9IE9iamVjdC5rZXlzKG0pLnJlZHVjZSgoYWNjdW06IE0sIGtleSkgPT4ge1xuICAgICAgKGFjY3VtIGFzIFJlY29yZDxzdHJpbmcsIGFueT4pW2tleV0gPSBvYmpba2V5XTtcbiAgICAgIHJldHVybiBhY2N1bTtcbiAgICB9LCBtKTtcblxuICAgIGlmICh0cmFuc2llbnQpIHtcbiAgICAgIGxvZy52ZXJib3NlKFxuICAgICAgICBgcmUtYWRkaW5nIHRyYW5zaWVudCBwcm9wZXJ0aWVzOiAke09iamVjdC5rZXlzKHRyYW5zaWVudCkuam9pbihcIiwgXCIpfWBcbiAgICAgICk7XG4gICAgICBPYmplY3QuZW50cmllcyh0cmFuc2llbnQpLmZvckVhY2goKFtrZXksIHZhbF0pID0+IHtcbiAgICAgICAgaWYgKGtleSBpbiByZXN1bHQgJiYgKHJlc3VsdCBhcyBhbnkpW2tleV0gIT09IHVuZGVmaW5lZClcbiAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgICAgIGBUcmFuc2llbnQgcHJvcGVydHkgJHtrZXl9IGFscmVhZHkgZXhpc3RzIG9uIG1vZGVsICR7bS5jb25zdHJ1Y3Rvci5uYW1lfS4gc2hvdWxkIGJlIGltcG9zc2libGVgXG4gICAgICAgICAgKTtcbiAgICAgICAgcmVzdWx0W2tleSBhcyBrZXlvZiBNXSA9IHZhbDtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChtZXRhZGF0YSkge1xuICAgICAgbG9nLnNpbGx5KFxuICAgICAgICBgUGFzc2luZyBhbG9uZyAke3RoaXMuZmxhdm91cn0gcGVyc2lzdGVuY2UgbWV0YWRhdGEgZm9yICR7bS5jb25zdHJ1Y3Rvci5uYW1lfSBpZCAke2lkfTogJHttZXRhZGF0YX1gXG4gICAgICApO1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHJlc3VsdCwgUGVyc2lzdGVuY2VLZXlzLk1FVEFEQVRBLCB7XG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICAgIHZhbHVlOiBtZXRhZGF0YSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgYW4gaW5kZXggZm9yIGEgbW9kZWxcbiAgICogQHN1bW1hcnkgVGhpcyBtZXRob2QgaXMgbm90IGltcGxlbWVudGVkIGZvciBGYWJyaWMgYW5kIHdpbGwgdGhyb3cgYW4gZXJyb3JcbiAgICogQHRlbXBsYXRlIE0gLSBUeXBlIGV4dGVuZGluZyBNb2RlbFxuICAgKiBAcGFyYW0ge0NvbnN0cnVjdG9yPE0+fSBtb2RlbHMgLSBUaGUgbW9kZWwgY29uc3RydWN0b3JcbiAgICogQHJldHVybiB7UHJvbWlzZTx2b2lkPn0gUHJvbWlzZSB0aGF0IHdpbGwgdGhyb3cgYW4gZXJyb3JcbiAgICovXG4gIEBkZWJ1Zyh0cnVlKVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIHByb3RlY3RlZCBpbmRleDxNPihtb2RlbHM6IENvbnN0cnVjdG9yPE0+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgYSBzaW5nbGUgcmVjb3JkXG4gICAqIEBzdW1tYXJ5IFN1Ym1pdHMgYSB0cmFuc2FjdGlvbiB0byBjcmVhdGUgYSByZWNvcmQgaW4gdGhlIEZhYnJpYyBsZWRnZXJcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRhYmxlTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSB0YWJsZS9jb2xsZWN0aW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVtYmVyfSBpZCAtIFRoZSByZWNvcmQgaWRlbnRpZmllclxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IG1vZGVsIC0gVGhlIHJlY29yZCBkYXRhXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gdHJhbnNpZW50IC0gVHJhbnNpZW50IGRhdGEgZm9yIHRoZSB0cmFuc2FjdGlvblxuICAgKiBAcmV0dXJuIHtQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgY3JlYXRlZCByZWNvcmRcbiAgICovXG4gIEBkZWJ1Zyh0cnVlKVxuICBAZmluYWwoKVxuICBvdmVycmlkZSBhc3luYyBjcmVhdGUoXG4gICAgdGFibGVOYW1lOiBzdHJpbmcsXG4gICAgaWQ6IHN0cmluZyB8IG51bWJlcixcbiAgICBtb2RlbDogUmVjb3JkPHN0cmluZywgYW55PixcbiAgICB0cmFuc2llbnQ6IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gICAgY29uc3QgbG9nID0gdGhpcy5sb2cuZm9yKHRoaXMuY3JlYXRlKTtcbiAgICBsb2cudmVyYm9zZShgYWRkaW5nIGVudHJ5IHRvICR7dGFibGVOYW1lfSB0YWJsZWApO1xuICAgIGxvZy5kZWJ1ZyhgcGs6ICR7aWR9YCk7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5zdWJtaXRUcmFuc2FjdGlvbihcbiAgICAgIE9wZXJhdGlvbktleXMuQ1JFQVRFLFxuICAgICAgW3RoaXMuc2VyaWFsaXplci5zZXJpYWxpemUobW9kZWwsIHRhYmxlTmFtZSldLFxuICAgICAgdHJhbnNpZW50XG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5zZXJpYWxpemVyLmRlc2VyaWFsaXplKHRoaXMuZGVjb2RlKHJlc3VsdCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBSZWFkcyBhIHNpbmdsZSByZWNvcmRcbiAgICogQHN1bW1hcnkgRXZhbHVhdGVzIGEgdHJhbnNhY3Rpb24gdG8gcmVhZCBhIHJlY29yZCBmcm9tIHRoZSBGYWJyaWMgbGVkZ2VyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0YWJsZU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgdGFibGUvY29sbGVjdGlvblxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bWJlcn0gaWQgLSBUaGUgcmVjb3JkIGlkZW50aWZpZXJcbiAgICogQHJldHVybiB7UHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIHJldHJpZXZlZCByZWNvcmRcbiAgICovXG4gIEBkZWJ1Zyh0cnVlKVxuICBAZmluYWwoKVxuICBhc3luYyByZWFkKFxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxuICAgIGlkOiBzdHJpbmcgfCBudW1iZXJcbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gICAgY29uc3QgbG9nID0gdGhpcy5sb2cuZm9yKHRoaXMucmVhZCk7XG4gICAgbG9nLnZlcmJvc2UoYHJlYWRpbmcgZW50cnkgZnJvbSAke3RhYmxlTmFtZX0gdGFibGVgKTtcbiAgICBsb2cuZGVidWcoYHBrOiAke2lkfWApO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZXZhbHVhdGVUcmFuc2FjdGlvbihPcGVyYXRpb25LZXlzLlJFQUQsIFtcbiAgICAgIGlkLnRvU3RyaW5nKCksXG4gICAgXSk7XG4gICAgcmV0dXJuIHRoaXMuc2VyaWFsaXplci5kZXNlcmlhbGl6ZSh0aGlzLmRlY29kZShyZXN1bHQpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVXBkYXRlcyBhIHNpbmdsZSByZWNvcmRcbiAgICogQHN1bW1hcnkgU3VibWl0cyBhIHRyYW5zYWN0aW9uIHRvIHVwZGF0ZSBhIHJlY29yZCBpbiB0aGUgRmFicmljIGxlZGdlclxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGFibGVOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHRhYmxlL2NvbGxlY3Rpb25cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudW1iZXJ9IGlkIC0gVGhlIHJlY29yZCBpZGVudGlmaWVyXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gbW9kZWwgLSBUaGUgdXBkYXRlZCByZWNvcmQgZGF0YVxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IHRyYW5zaWVudCAtIFRyYW5zaWVudCBkYXRhIGZvciB0aGUgdHJhbnNhY3Rpb25cbiAgICogQHJldHVybiB7UHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIHVwZGF0ZWQgcmVjb3JkXG4gICAqL1xuICBAZGVidWcodHJ1ZSlcbiAgQGZpbmFsKClcbiAgYXN5bmMgdXBkYXRlKFxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxuICAgIGlkOiBzdHJpbmcgfCBudW1iZXIsXG4gICAgbW9kZWw6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgdHJhbnNpZW50OiBSZWNvcmQ8c3RyaW5nLCBhbnk+XG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj4ge1xuICAgIGNvbnN0IGxvZyA9IHRoaXMubG9nLmZvcih0aGlzLnVwZGF0ZSk7XG4gICAgbG9nLnZlcmJvc2UoYHVwZGF0aW5nIGVudHJ5IHRvICR7dGFibGVOYW1lfSB0YWJsZWApO1xuICAgIGxvZy5kZWJ1ZyhgcGs6ICR7aWR9YCk7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5zdWJtaXRUcmFuc2FjdGlvbihcbiAgICAgIE9wZXJhdGlvbktleXMuVVBEQVRFLFxuICAgICAgW3RoaXMuc2VyaWFsaXplci5zZXJpYWxpemUobW9kZWwsIHRhYmxlTmFtZSldLFxuICAgICAgdHJhbnNpZW50XG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5zZXJpYWxpemVyLmRlc2VyaWFsaXplKHRoaXMuZGVjb2RlKHJlc3VsdCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBEZWxldGVzIGEgc2luZ2xlIHJlY29yZFxuICAgKiBAc3VtbWFyeSBTdWJtaXRzIGEgdHJhbnNhY3Rpb24gdG8gZGVsZXRlIGEgcmVjb3JkIGZyb20gdGhlIEZhYnJpYyBsZWRnZXJcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRhYmxlTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSB0YWJsZS9jb2xsZWN0aW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVtYmVyfSBpZCAtIFRoZSByZWNvcmQgaWRlbnRpZmllciB0byBkZWxldGVcbiAgICogQHJldHVybiB7UHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGRlbGV0ZWQgcmVjb3JkXG4gICAqL1xuICBAZGVidWcodHJ1ZSlcbiAgQGZpbmFsKClcbiAgYXN5bmMgZGVsZXRlKFxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxuICAgIGlkOiBzdHJpbmcgfCBudW1iZXJcbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gICAgY29uc3QgbG9nID0gdGhpcy5sb2cuZm9yKHRoaXMuZGVsZXRlKTtcbiAgICBsb2cudmVyYm9zZShgZGVsZXRpbmcgZW50cnkgZnJvbSAke3RhYmxlTmFtZX0gdGFibGVgKTtcbiAgICBsb2cuZGVidWcoYHBrOiAke2lkfWApO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuc3VibWl0VHJhbnNhY3Rpb24oT3BlcmF0aW9uS2V5cy5ERUxFVEUsIFtcbiAgICAgIHRhYmxlTmFtZSxcbiAgICAgIGlkLFxuICAgIF0pO1xuICAgIHJldHVybiB0aGlzLnNlcmlhbGl6ZXIuZGVzZXJpYWxpemUodGhpcy5kZWNvZGUocmVzdWx0KSk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEV4ZWN1dGVzIGEgcmF3IHF1ZXJ5IGFnYWluc3QgdGhlIEZhYnJpYyBsZWRnZXJcbiAgICogQHN1bW1hcnkgRXZhbHVhdGVzIGEgdHJhbnNhY3Rpb24gdG8gcGVyZm9ybSBhIHF1ZXJ5IHVzaW5nIE1hbmdvIFF1ZXJ5IHN5bnRheFxuICAgKiBAdGVtcGxhdGUgViAtIFRoZSByZXR1cm4gdHlwZVxuICAgKiBAcGFyYW0ge01hbmdvUXVlcnl9IHJhd0lucHV0IC0gVGhlIE1hbmdvIFF1ZXJ5IHRvIGV4ZWN1dGVcbiAgICogQHBhcmFtIHtib29sZWFufSBwcm9jZXNzIC0gV2hldGhlciB0byBwcm9jZXNzIHRoZSByZXN1bHRcbiAgICogQHJldHVybiB7UHJvbWlzZTxWPn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIHF1ZXJ5IHJlc3VsdFxuICAgKiBAbWVybWFpZFxuICAgKiBzZXF1ZW5jZURpYWdyYW1cbiAgICogICBwYXJ0aWNpcGFudCBDbGllbnRcbiAgICogICBwYXJ0aWNpcGFudCBGYWJyaWNBZGFwdGVyXG4gICAqICAgcGFydGljaXBhbnQgQ29udHJhY3RcbiAgICogICBwYXJ0aWNpcGFudCBDaGFpbmNvZGVcbiAgICpcbiAgICogICBDbGllbnQtPj5GYWJyaWNBZGFwdGVyOiByYXcocmF3SW5wdXQsIHByb2Nlc3MpXG4gICAqICAgRmFicmljQWRhcHRlci0+PkZhYnJpY0FkYXB0ZXI6IEpTT04uc3RyaW5naWZ5KHJhd0lucHV0KVxuICAgKiAgIEZhYnJpY0FkYXB0ZXItPj5GYWJyaWNBZGFwdGVyOiBldmFsdWF0ZVRyYW5zYWN0aW9uKFwicXVlcnlcIiwgW2lucHV0XSlcbiAgICogICBGYWJyaWNBZGFwdGVyLT4+Q29udHJhY3Q6IGV2YWx1YXRlKFwicXVlcnlcIiwgcHJvcG9zYWxPcHRpb25zKVxuICAgKiAgIENvbnRyYWN0LT4+Q2hhaW5jb2RlOiBpbnZva2VcbiAgICogICBDaGFpbmNvZGUtLT4+Q29udHJhY3Q6IHJlc3BvbnNlXG4gICAqICAgQ29udHJhY3QtLT4+RmFicmljQWRhcHRlcjogcmVzdWx0XG4gICAqICAgRmFicmljQWRhcHRlci0+PkZhYnJpY0FkYXB0ZXI6IEpTT04ucGFyc2UoZGVjb2RlKHJlc3VsdCkpXG4gICAqICAgRmFicmljQWRhcHRlci0+PkZhYnJpY0FkYXB0ZXI6IFByb2Nlc3MgcmVzdWx0IGJhc2VkIG9uIHR5cGVcbiAgICogICBGYWJyaWNBZGFwdGVyLS0+PkNsaWVudDogcHJvY2Vzc2VkIHJlc3VsdFxuICAgKi9cbiAgQGRlYnVnKHRydWUpXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgYXN5bmMgcmF3PFY+KHJhd0lucHV0OiBNYW5nb1F1ZXJ5LCBwcm9jZXNzOiBib29sZWFuKTogUHJvbWlzZTxWPiB7XG4gICAgY29uc3QgbG9nID0gdGhpcy5sb2cuZm9yKHRoaXMucmF3KTtcbiAgICBsb2cuaW5mbyhgUGVyZm9ybWluZyByYXcgIHF1ZXJ5IG9uIHRhYmxlYCk7XG4gICAgbG9nLmRlYnVnKGBwcm9jZXNzaW5nIHJhdyBpbnB1dCBmb3IgcXVlcnk6ICR7SlNPTi5zdHJpbmdpZnkocmF3SW5wdXQpfWApO1xuICAgIGxldCBpbnB1dDogc3RyaW5nO1xuICAgIHRyeSB7XG4gICAgICBpbnB1dCA9IEpTT04uc3RyaW5naWZ5KHJhd0lucHV0KTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IG5ldyBTZXJpYWxpemF0aW9uRXJyb3IoXG4gICAgICAgIGBGYWlsZWQgdG8gcHJvY2VzcyByYXcgaW5wdXQgZm9yIHF1ZXJ5OiAke2V9YFxuICAgICAgKTtcbiAgICB9XG4gICAgbGV0IHRyYW5zYWN0aW9uUmVzdWx0OiBhbnk7XG4gICAgdHJ5IHtcbiAgICAgIHRyYW5zYWN0aW9uUmVzdWx0ID0gYXdhaXQgdGhpcy5ldmFsdWF0ZVRyYW5zYWN0aW9uKFwicXVlcnlcIiwgW2lucHV0XSk7XG4gICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUgYXMgRXJyb3IpO1xuICAgIH1cbiAgICBsZXQgcmVzdWx0OiBhbnk7XG4gICAgdHJ5IHtcbiAgICAgIHJlc3VsdCA9IEpTT04ucGFyc2UodGhpcy5kZWNvZGUodHJhbnNhY3Rpb25SZXN1bHQpKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IG5ldyBTZXJpYWxpemF0aW9uRXJyb3IoYEZhaWxlZCB0byBwcm9jZXNzIHJlc3VsdDogJHtlfWApO1xuICAgIH1cblxuICAgIGNvbnN0IHBhcnNlUmVjb3JkID0gKHJlY29yZDogUmVjb3JkPGFueSwgYW55PikgPT4ge1xuICAgICAgaWYgKE1vZGVsLmlzTW9kZWwocmVjb3JkKSkgcmV0dXJuIE1vZGVsLmJ1aWxkKHJlY29yZCk7XG4gICAgICByZXR1cm4gcmVjb3JkO1xuICAgIH07XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShyZXN1bHQpKSB7XG4gICAgICBpZiAoIXJlc3VsdC5sZW5ndGgpIHJldHVybiByZXN1bHQgYXMgVjtcbiAgICAgIGNvbnN0IGVsID0gcmVzdWx0WzBdO1xuICAgICAgaWYgKE1vZGVsLmlzTW9kZWwoZWwpKVxuICAgICAgICAvLyBpZiB0aGUgZmlyc3Qgb25lIGlzIGEgbW9kZWwsIGFsbCBhcmUgbW9kZWxzXG4gICAgICAgIHJldHVybiByZXN1bHQubWFwKChlbCkgPT4gTW9kZWwuYnVpbGQoZWwpKSBhcyBWO1xuICAgICAgcmV0dXJuIHJlc3VsdCBhcyBWO1xuICAgIH1cblxuICAgIHJldHVybiBwYXJzZVJlY29yZChyZXN1bHQgYXMgYW55KSBhcyBWO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBHZXRzIG9yIGNyZWF0ZXMgYSBnUlBDIGNsaWVudCBmb3IgdGhlIEZhYnJpYyBwZWVyXG4gICAqIEBzdW1tYXJ5IFJldHVybnMgYSBjYWNoZWQgY2xpZW50IG9yIGNyZWF0ZXMgYSBuZXcgb25lIGlmIG5vbmUgZXhpc3RzXG4gICAqIEByZXR1cm4ge1Byb21pc2U8Q2xpZW50Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGdSUEMgY2xpZW50XG4gICAqL1xuICBvdmVycmlkZSBnZXRDbGllbnQoKTogQ2xpZW50IHtcbiAgICBpZiAoIXRoaXMuX2NsaWVudClcbiAgICAgIHRoaXMuX2NsaWVudCA9IEZhYnJpY0NsaWVudEFkYXB0ZXIuZ2V0Q2xpZW50KHRoaXMuY29uZmlnKTtcbiAgICByZXR1cm4gdGhpcy5fY2xpZW50O1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBHZXRzIGEgR2F0ZXdheSBpbnN0YW5jZSBmb3IgdGhlIEZhYnJpYyBuZXR3b3JrXG4gICAqIEBzdW1tYXJ5IENyZWF0ZXMgYSBuZXcgR2F0ZXdheSBpbnN0YW5jZSB1c2luZyB0aGUgY3VycmVudCBjbGllbnRcbiAgICogQHJldHVybiB7UHJvbWlzZTxHYXRld2F5Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIEdhdGV3YXkgaW5zdGFuY2VcbiAgICovXG4gIHByb3RlY3RlZCBhc3luYyBHYXRld2F5KCk6IFByb21pc2U8R2F0ZXdheT4ge1xuICAgIHJldHVybiBGYWJyaWNDbGllbnRBZGFwdGVyLmdldEdhdGV3YXkodGhpcy5jb25maWcsIHRoaXMuY2xpZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gR2V0cyBhIENvbnRyYWN0IGluc3RhbmNlIGZvciB0aGUgRmFicmljIGNoYWluY29kZVxuICAgKiBAc3VtbWFyeSBDcmVhdGVzIGEgbmV3IENvbnRyYWN0IGluc3RhbmNlIHVzaW5nIHRoZSBjdXJyZW50IEdhdGV3YXlcbiAgICogQHJldHVybiB7UHJvbWlzZTxDb250cmFrdD59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBDb250cmFjdCBpbnN0YW5jZVxuICAgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIENvbnRyYWN0KCk6IFByb21pc2U8Q29udHJha3Q+IHtcbiAgICByZXR1cm4gRmFicmljQ2xpZW50QWRhcHRlci5nZXRDb250cmFjdChhd2FpdCB0aGlzLkdhdGV3YXkoKSwgdGhpcy5jb25maWcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBFeGVjdXRlcyBhIHRyYW5zYWN0aW9uIG9uIHRoZSBGYWJyaWMgbmV0d29ya1xuICAgKiBAc3VtbWFyeSBTdWJtaXRzIG9yIGV2YWx1YXRlcyBhIHRyYW5zYWN0aW9uIG9uIHRoZSBGYWJyaWMgY2hhaW5jb2RlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcGkgLSBUaGUgY2hhaW5jb2RlIGZ1bmN0aW9uIHRvIGNhbGxcbiAgICogQHBhcmFtIHtib29sZWFufSBzdWJtaXQgLSBXaGV0aGVyIHRvIHN1Ym1pdCAodHJ1ZSkgb3IgZXZhbHVhdGUgKGZhbHNlKSB0aGUgdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIHthbnlbXX0gW2FyZ3NdIC0gQXJndW1lbnRzIHRvIHBhc3MgdG8gdGhlIGNoYWluY29kZSBmdW5jdGlvblxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIHN0cmluZz59IFt0cmFuc2llbnREYXRhXSAtIFRyYW5zaWVudCBkYXRhIGZvciB0aGUgdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIHtBcnJheTxzdHJpbmc+fSBbZW5kb3JzaW5nT3JnYW5pemF0aW9uc10gLSBPcmdhbml6YXRpb25zIHRoYXQgbXVzdCBlbmRvcnNlIHRoZSB0cmFuc2FjdGlvblxuICAgKiBAcmV0dXJuIHtQcm9taXNlPFVpbnQ4QXJyYXk+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgdHJhbnNhY3Rpb24gcmVzdWx0XG4gICAqIEBtZXJtYWlkXG4gICAqIHNlcXVlbmNlRGlhZ3JhbVxuICAgKiAgIHBhcnRpY2lwYW50IEZhYnJpY0FkYXB0ZXJcbiAgICogICBwYXJ0aWNpcGFudCBHYXRld2F5XG4gICAqICAgcGFydGljaXBhbnQgQ29udHJhY3RcbiAgICogICBwYXJ0aWNpcGFudCBDaGFpbmNvZGVcbiAgICpcbiAgICogICBGYWJyaWNBZGFwdGVyLT4+R2F0ZXdheTogY29ubmVjdCgpXG4gICAqICAgRmFicmljQWRhcHRlci0+PkNvbnRyYWN0OiBnZXRDb250cmFjdCgpXG4gICAqICAgYWx0IHN1Ym1pdCB0cmFuc2FjdGlvblxuICAgKiAgICAgRmFicmljQWRhcHRlci0+PkNvbnRyYWN0OiBzdWJtaXQoYXBpLCBwcm9wb3NhbE9wdGlvbnMpXG4gICAqICAgZWxzZSBldmFsdWF0ZSB0cmFuc2FjdGlvblxuICAgKiAgICAgRmFicmljQWRhcHRlci0+PkNvbnRyYWN0OiBldmFsdWF0ZShhcGksIHByb3Bvc2FsT3B0aW9ucylcbiAgICogICBlbmRcbiAgICogICBDb250cmFjdC0+PkNoYWluY29kZTogaW52b2tlXG4gICAqICAgQ2hhaW5jb2RlLS0+PkNvbnRyYWN0OiByZXNwb25zZVxuICAgKiAgIENvbnRyYWN0LS0+PkZhYnJpY0FkYXB0ZXI6IHJlc3VsdFxuICAgKiAgIEZhYnJpY0FkYXB0ZXItPj5HYXRld2F5OiBjbG9zZSgpXG4gICAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgdHJhbnNhY3Rpb24oXG4gICAgYXBpOiBzdHJpbmcsXG4gICAgc3VibWl0ID0gdHJ1ZSxcbiAgICBhcmdzPzogYW55W10sXG4gICAgdHJhbnNpZW50RGF0YT86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4gICAgZW5kb3JzaW5nT3JnYW5pemF0aW9ucz86IEFycmF5PHN0cmluZz5cbiAgKTogUHJvbWlzZTxVaW50OEFycmF5PiB7XG4gICAgY29uc3QgbG9nID0gdGhpcy5sb2cuZm9yKHRoaXMudHJhbnNhY3Rpb24pO1xuICAgIGNvbnN0IGdhdGV3YXkgPSBhd2FpdCB0aGlzLkdhdGV3YXkoKTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgY29udHJhY3QgPSBhd2FpdCB0aGlzLkNvbnRyYWN0KCk7XG4gICAgICBsb2cudmVyYm9zZShcbiAgICAgICAgYCR7c3VibWl0ID8gXCJTdWJtaXRcIiA6IFwiRXZhbHVhdGVcIn10aW5nIHRyYW5zYWN0aW9uICR7dGhpcy5jb25maWcuY29udHJhY3ROYW1lfS4ke2FwaX1gXG4gICAgICApO1xuICAgICAgbG9nLmRlYnVnKGBhcmdzOiAke2FyZ3M/Lm1hcCgoYSkgPT4gYS50b1N0cmluZygpKS5qb2luKFwiXFxuXCIpIHx8IFwibm9uZVwifWApO1xuICAgICAgY29uc3QgbWV0aG9kID0gc3VibWl0ID8gY29udHJhY3Quc3VibWl0IDogY29udHJhY3QuZXZhbHVhdGU7XG5cbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICAgIGVuZG9yc2luZ09yZ2FuaXphdGlvbnMgPSBlbmRvcnNpbmdPcmdhbml6YXRpb25zPy5sZW5ndGhcbiAgICAgICAgPyBlbmRvcnNpbmdPcmdhbml6YXRpb25zXG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgY29uc3QgcHJvcG9zYWxPcHRpb25zOiBQcm9wb3NhbE9wdGlvbnMgPSB7XG4gICAgICAgIGFyZ3VtZW50czogYXJncyB8fCBbXSxcbiAgICAgICAgdHJhbnNpZW50RGF0YTogdHJhbnNpZW50RGF0YSxcbiAgICAgICAgLy8gLi4uKGVuZG9yc2luZ09yZ2FuaXphdGlvbnMgJiYgeyBlbmRvcnNpbmdPcmdhbml6YXRpb25zIH0pIC8vIG1zcElkIGxpc3RcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBhd2FpdCBtZXRob2QuY2FsbChjb250cmFjdCwgYXBpLCBwcm9wb3NhbE9wdGlvbnMpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgaWYgKGUuY29kZSA9PT0gMTApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke2UuZGV0YWlsc1swXS5tZXNzYWdlfWApO1xuICAgICAgfVxuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmxvZy5kZWJ1ZyhgQ2xvc2luZyAke3RoaXMuY29uZmlnLm1zcElkfSBnYXRld2F5IGNvbm5lY3Rpb25gKTtcbiAgICAgIGdhdGV3YXkuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFBhcnNlcyBhbiBlcnJvciBpbnRvIGEgQmFzZUVycm9yXG4gICAqIEBzdW1tYXJ5IENvbnZlcnRzIGFueSBlcnJvciBpbnRvIGEgc3RhbmRhcmRpemVkIEJhc2VFcnJvclxuICAgKiBAcGFyYW0ge0Vycm9yIHwgc3RyaW5nfSBlcnIgLSBUaGUgZXJyb3IgdG8gcGFyc2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtyZWFzb25dIC0gT3B0aW9uYWwgcmVhc29uIGZvciB0aGUgZXJyb3JcbiAgICogQHJldHVybiB7QmFzZUVycm9yfSBUaGUgcGFyc2VkIGVycm9yXG4gICAqL1xuICBvdmVycmlkZSBwYXJzZUVycm9yKGVycjogRXJyb3IgfCBzdHJpbmcsIHJlYXNvbj86IHN0cmluZyk6IEJhc2VFcnJvciB7XG4gICAgcmV0dXJuIEZhYnJpY0NsaWVudEFkYXB0ZXIucGFyc2VFcnJvcihlcnIsIHJlYXNvbik7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFN1Ym1pdHMgYSB0cmFuc2FjdGlvbiB0byB0aGUgRmFicmljIG5ldHdvcmtcbiAgICogQHN1bW1hcnkgRXhlY3V0ZXMgYSB0cmFuc2FjdGlvbiB0aGF0IG1vZGlmaWVzIHRoZSBsZWRnZXIgc3RhdGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFwaSAtIFRoZSBjaGFpbmNvZGUgZnVuY3Rpb24gdG8gY2FsbFxuICAgKiBAcGFyYW0ge2FueVtdfSBbYXJnc10gLSBBcmd1bWVudHMgdG8gcGFzcyB0byB0aGUgY2hhaW5jb2RlIGZ1bmN0aW9uXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn0gW3RyYW5zaWVudERhdGFdIC0gVHJhbnNpZW50IGRhdGEgZm9yIHRoZSB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0ge0FycmF5PHN0cmluZz59IFtlbmRvcnNpbmdPcmdhbml6YXRpb25zXSAtIE9yZ2FuaXphdGlvbnMgdGhhdCBtdXN0IGVuZG9yc2UgdGhlIHRyYW5zYWN0aW9uXG4gICAqIEByZXR1cm4ge1Byb21pc2U8VWludDhBcnJheT59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSB0cmFuc2FjdGlvbiByZXN1bHRcbiAgICovXG4gIGFzeW5jIHN1Ym1pdFRyYW5zYWN0aW9uKFxuICAgIGFwaTogc3RyaW5nLFxuICAgIGFyZ3M/OiBhbnlbXSxcbiAgICB0cmFuc2llbnREYXRhPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPixcbiAgICBlbmRvcnNpbmdPcmdhbml6YXRpb25zPzogQXJyYXk8c3RyaW5nPlxuICApOiBQcm9taXNlPFVpbnQ4QXJyYXk+IHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbihcbiAgICAgIGFwaSxcbiAgICAgIHRydWUsXG4gICAgICBhcmdzLFxuICAgICAgdHJhbnNpZW50RGF0YSxcbiAgICAgIGVuZG9yc2luZ09yZ2FuaXphdGlvbnNcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBFdmFsdWF0ZXMgYSB0cmFuc2FjdGlvbiBvbiB0aGUgRmFicmljIG5ldHdvcmtcbiAgICogQHN1bW1hcnkgRXhlY3V0ZXMgYSB0cmFuc2FjdGlvbiB0aGF0IGRvZXMgbm90IG1vZGlmeSB0aGUgbGVkZ2VyIHN0YXRlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcGkgLSBUaGUgY2hhaW5jb2RlIGZ1bmN0aW9uIHRvIGNhbGxcbiAgICogQHBhcmFtIHthbnlbXX0gW2FyZ3NdIC0gQXJndW1lbnRzIHRvIHBhc3MgdG8gdGhlIGNoYWluY29kZSBmdW5jdGlvblxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIHN0cmluZz59IFt0cmFuc2llbnREYXRhXSAtIFRyYW5zaWVudCBkYXRhIGZvciB0aGUgdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIHtBcnJheTxzdHJpbmc+fSBbZW5kb3JzaW5nT3JnYW5pemF0aW9uc10gLSBPcmdhbml6YXRpb25zIHRoYXQgbXVzdCBlbmRvcnNlIHRoZSB0cmFuc2FjdGlvblxuICAgKiBAcmV0dXJuIHtQcm9taXNlPFVpbnQ4QXJyYXk+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgdHJhbnNhY3Rpb24gcmVzdWx0XG4gICAqL1xuICBhc3luYyBldmFsdWF0ZVRyYW5zYWN0aW9uKFxuICAgIGFwaTogc3RyaW5nLFxuICAgIGFyZ3M/OiBhbnlbXSxcbiAgICB0cmFuc2llbnREYXRhPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPixcbiAgICBlbmRvcnNpbmdPcmdhbml6YXRpb25zPzogQXJyYXk8c3RyaW5nPlxuICApOiBQcm9taXNlPFVpbnQ4QXJyYXk+IHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbihcbiAgICAgIGFwaSxcbiAgICAgIGZhbHNlLFxuICAgICAgYXJncyxcbiAgICAgIHRyYW5zaWVudERhdGEsXG4gICAgICBlbmRvcnNpbmdPcmdhbml6YXRpb25zXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ2xvc2VzIHRoZSBjb25uZWN0aW9uIHRvIHRoZSBGYWJyaWMgbmV0d29ya1xuICAgKiBAc3VtbWFyeSBDbG9zZXMgdGhlIGdSUEMgY2xpZW50IGlmIGl0IGV4aXN0c1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPHZvaWQ+fSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgY2xpZW50IGlzIGNsb3NlZFxuICAgKi9cbiAgYXN5bmMgY2xvc2UoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuY2xpZW50KSB7XG4gICAgICB0aGlzLmxvZy52ZXJib3NlKGBDbG9zaW5nICR7dGhpcy5jb25maWcubXNwSWR9IGdhdGV3YXkgY2xpZW50YCk7XG4gICAgICB0aGlzLmNsaWVudC5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gR2V0cyBhIENvbnRyYWN0IGluc3RhbmNlIGZyb20gYSBHYXRld2F5XG4gICAqIEBzdW1tYXJ5IFJldHJpZXZlcyBhIGNoYWluY29kZSBjb250cmFjdCBmcm9tIHRoZSBzcGVjaWZpZWQgbmV0d29ya1xuICAgKiBAcGFyYW0ge0dhdGV3YXl9IGdhdGV3YXkgLSBUaGUgR2F0ZXdheSBpbnN0YW5jZVxuICAgKiBAcGFyYW0ge1BlZXJDb25maWd9IGNvbmZpZyAtIFRoZSBwZWVyIGNvbmZpZ3VyYXRpb25cbiAgICogQHJldHVybiB7Q29udHJha3R9IFRoZSBDb250cmFjdCBpbnN0YW5jZVxuICAgKi9cbiAgc3RhdGljIGdldENvbnRyYWN0KGdhdGV3YXk6IEdhdGV3YXksIGNvbmZpZzogUGVlckNvbmZpZyk6IENvbnRyYWt0IHtcbiAgICBjb25zdCBsb2cgPSB0aGlzLmxvZy5mb3IodGhpcy5nZXRDb250cmFjdCk7XG4gICAgY29uc3QgbmV0d29yayA9IHRoaXMuZ2V0TmV0d29yayhnYXRld2F5LCBjb25maWcuY2hhbm5lbCk7XG4gICAgbGV0IGNvbnRyYWN0OiBDb250cmFrdDtcbiAgICB0cnkge1xuICAgICAgbG9nLmRlYnVnKFxuICAgICAgICBgUmV0cmlldmluZyBjaGFpbmNvZGUgJHtjb25maWcuY2hhaW5jb2RlTmFtZX0gY29udHJhY3QgJHtjb25maWcuY29udHJhY3ROYW1lfSBmcm9tIG5ldHdvcmsgJHtjb25maWcuY2hhbm5lbH1gXG4gICAgICApO1xuICAgICAgY29udHJhY3QgPSBuZXR3b3JrLmdldENvbnRyYWN0KGNvbmZpZy5jaGFpbmNvZGVOYW1lLCBjb25maWcuY29udHJhY3ROYW1lKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlKTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbnRyYWN0O1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBHZXRzIGEgTmV0d29yayBpbnN0YW5jZSBmcm9tIGEgR2F0ZXdheVxuICAgKiBAc3VtbWFyeSBDb25uZWN0cyB0byBhIHNwZWNpZmljIGNoYW5uZWwgb24gdGhlIEZhYnJpYyBuZXR3b3JrXG4gICAqIEBwYXJhbSB7R2F0ZXdheX0gZ2F0ZXdheSAtIFRoZSBHYXRld2F5IGluc3RhbmNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjaGFubmVsTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBjaGFubmVsIHRvIGNvbm5lY3QgdG9cbiAgICogQHJldHVybiB7TmV0d29ya30gVGhlIE5ldHdvcmsgaW5zdGFuY2VcbiAgICovXG4gIHN0YXRpYyBnZXROZXR3b3JrKGdhdGV3YXk6IEdhdGV3YXksIGNoYW5uZWxOYW1lOiBzdHJpbmcpOiBOZXR3b3JrIHtcbiAgICBjb25zdCBsb2cgPSB0aGlzLmxvZy5mb3IodGhpcy5nZXROZXR3b3JrKTtcbiAgICBsZXQgbmV0d29yazogTmV0d29yaztcbiAgICB0cnkge1xuICAgICAgbG9nLmRlYnVnKGBDb25uZWN0aW5nIHRvIGNoYW5uZWwgJHtjaGFubmVsTmFtZX1gKTtcbiAgICAgIG5ldHdvcmsgPSBnYXRld2F5LmdldE5ldHdvcmsoY2hhbm5lbE5hbWUpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUpO1xuICAgIH1cblxuICAgIHJldHVybiBuZXR3b3JrO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBHZXRzIGEgR2F0ZXdheSBpbnN0YW5jZSBmb3IgY29ubmVjdGluZyB0byB0aGUgRmFicmljIG5ldHdvcmtcbiAgICogQHN1bW1hcnkgQ3JlYXRlcyBhIEdhdGV3YXkgdXNpbmcgdGhlIHByb3ZpZGVkIGNvbmZpZ3VyYXRpb24gYW5kIGNsaWVudFxuICAgKiBAcGFyYW0ge1BlZXJDb25maWd9IGNvbmZpZyAtIFRoZSBwZWVyIGNvbmZpZ3VyYXRpb25cbiAgICogQHBhcmFtIHtDbGllbnR9IFtjbGllbnRdIC0gT3B0aW9uYWwgZ1JQQyBjbGllbnQsIHdpbGwgYmUgY3JlYXRlZCBpZiBub3QgcHJvdmlkZWRcbiAgICogQHJldHVybiB7UHJvbWlzZTxHYXRld2F5Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIEdhdGV3YXkgaW5zdGFuY2VcbiAgICovXG4gIHN0YXRpYyBhc3luYyBnZXRHYXRld2F5KGNvbmZpZzogUGVlckNvbmZpZywgY2xpZW50PzogQ2xpZW50KSB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmdldENvbm5lY3Rpb24oXG4gICAgICBjbGllbnQgfHwgKGF3YWl0IHRoaXMuZ2V0Q2xpZW50KGNvbmZpZykpLFxuICAgICAgY29uZmlnXG4gICAgKSkgYXMgR2F0ZXdheTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBhIGdSUEMgY2xpZW50IGZvciBjb25uZWN0aW5nIHRvIGEgRmFicmljIHBlZXJcbiAgICogQHN1bW1hcnkgSW5pdGlhbGl6ZXMgYSBjbGllbnQgd2l0aCBUTFMgY3JlZGVudGlhbHMgZm9yIHNlY3VyZSBjb21tdW5pY2F0aW9uXG4gICAqIEBwYXJhbSB7UGVlckNvbmZpZ30gY29uZmlnIC0gVGhlIHBlZXIgY29uZmlndXJhdGlvblxuICAgKiBAcmV0dXJuIHtDbGllbnR9IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBnUlBDIGNsaWVudFxuICAgKi9cbiAgc3RhdGljIGdldENsaWVudChjb25maWc6IFBlZXJDb25maWcpOiBDbGllbnQge1xuICAgIGNvbnN0IGxvZyA9IHRoaXMubG9nLmZvcih0aGlzLmdldENsaWVudCk7XG4gICAgbG9nLmRlYnVnKGBnZW5lcmF0aW5nIFRMUyBjcmVkZW50aWFscyBmb3IgbXNwICR7Y29uZmlnLm1zcElkfWApO1xuICAgIGNvbnN0IHRsc0NyZWRlbnRpYWxzID0gZ3JwYy5jcmVkZW50aWFscy5jcmVhdGVTc2woXG4gICAgICB0eXBlb2YgY29uZmlnLnRsc0NlcnQgPT09IFwic3RyaW5nXCJcbiAgICAgICAgPyBCdWZmZXIuZnJvbShjb25maWcudGxzQ2VydClcbiAgICAgICAgOiBjb25maWcudGxzQ2VydFxuICAgICk7XG4gICAgbG9nLmRlYnVnKGBnZW5lcmF0aW5nIEdhdGV3YXkgQ2xpZW50IGZvciB1cmwgJHtjb25maWcucGVlckVuZHBvaW50fWApO1xuICAgIHJldHVybiBuZXcgQ2xpZW50KGNvbmZpZy5wZWVyRW5kcG9pbnQsIHRsc0NyZWRlbnRpYWxzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRXN0YWJsaXNoZXMgYSBjb25uZWN0aW9uIHRvIHRoZSBGYWJyaWMgbmV0d29ya1xuICAgKiBAc3VtbWFyeSBDcmVhdGVzIGEgR2F0ZXdheSBjb25uZWN0aW9uIHdpdGggaWRlbnRpdHkgYW5kIHNpZ25lclxuICAgKiBAcGFyYW0ge0NsaWVudH0gY2xpZW50IC0gVGhlIGdSUEMgY2xpZW50XG4gICAqIEBwYXJhbSB7UGVlckNvbmZpZ30gY29uZmlnIC0gVGhlIHBlZXIgY29uZmlndXJhdGlvblxuICAgKiBAcmV0dXJuIHtQcm9taXNlPEdhdGV3YXk+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgY29ubmVjdGVkIEdhdGV3YXlcbiAgICogQG1lcm1haWRcbiAgICogc2VxdWVuY2VEaWFncmFtXG4gICAqICAgcGFydGljaXBhbnQgQ2FsbGVyXG4gICAqICAgcGFydGljaXBhbnQgRmFicmljQWRhcHRlclxuICAgKiAgIHBhcnRpY2lwYW50IElkZW50aXR5XG4gICAqICAgcGFydGljaXBhbnQgU2lnbmVyXG4gICAqICAgcGFydGljaXBhbnQgR2F0ZXdheVxuICAgKlxuICAgKiAgIENhbGxlci0+PkZhYnJpY0FkYXB0ZXI6IGdldENvbm5lY3Rpb24oY2xpZW50LCBjb25maWcpXG4gICAqICAgRmFicmljQWRhcHRlci0+PklkZW50aXR5OiBnZXRJZGVudGl0eShtc3BJZCwgY2VydERpcmVjdG9yeVBhdGgpXG4gICAqICAgSWRlbnRpdHktLT4+RmFicmljQWRhcHRlcjogaWRlbnRpdHlcbiAgICogICBGYWJyaWNBZGFwdGVyLT4+U2lnbmVyOiBnZXRTaWduZXIoa2V5RGlyZWN0b3J5UGF0aClcbiAgICogICBTaWduZXItLT4+RmFicmljQWRhcHRlcjogc2lnbmVyXG4gICAqICAgRmFicmljQWRhcHRlci0+PkZhYnJpY0FkYXB0ZXI6IENyZWF0ZSBDb25uZWN0T3B0aW9uc1xuICAgKiAgIEZhYnJpY0FkYXB0ZXItPj5HYXRld2F5OiBjb25uZWN0KG9wdGlvbnMpXG4gICAqICAgR2F0ZXdheS0tPj5GYWJyaWNBZGFwdGVyOiBnYXRld2F5XG4gICAqICAgRmFicmljQWRhcHRlci0tPj5DYWxsZXI6IGdhdGV3YXlcbiAgICovXG4gIHN0YXRpYyBhc3luYyBnZXRDb25uZWN0aW9uKGNsaWVudDogQ2xpZW50LCBjb25maWc6IFBlZXJDb25maWcpIHtcbiAgICBjb25zdCBsb2cgPSB0aGlzLmxvZy5mb3IodGhpcy5nZXRDb25uZWN0aW9uKTtcbiAgICBsb2cuZGVidWcoXG4gICAgICBgUmV0cmlldmluZyBQZWVyIElkZW50aXR5IGZvciAke2NvbmZpZy5tc3BJZH0gdW5kZXIgJHtjb25maWcuY2VydENlcnRPckRpcmVjdG9yeVBhdGh9YFxuICAgICk7XG4gICAgY29uc3QgaWRlbnRpdHkgPSBhd2FpdCBnZXRJZGVudGl0eShcbiAgICAgIGNvbmZpZy5tc3BJZCxcbiAgICAgIGNvbmZpZy5jZXJ0Q2VydE9yRGlyZWN0b3J5UGF0aFxuICAgICk7XG4gICAgbG9nLmRlYnVnKGBSZXRyaWV2aW5nIHNpZ25lciBrZXkgZnJvbSAke2NvbmZpZy5rZXlDZXJ0T3JEaXJlY3RvcnlQYXRofWApO1xuXG4gICAgY29uc3Qgc2lnbmVyID0gYXdhaXQgZ2V0U2lnbmVyKGNvbmZpZy5rZXlDZXJ0T3JEaXJlY3RvcnlQYXRoKTtcblxuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICBjbGllbnQsXG4gICAgICBpZGVudGl0eTogaWRlbnRpdHksXG4gICAgICBzaWduZXI6IHNpZ25lcixcbiAgICAgIC8vIERlZmF1bHQgdGltZW91dHMgZm9yIGRpZmZlcmVudCBnUlBDIGNhbGxzXG4gICAgICBldmFsdWF0ZU9wdGlvbnM6ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHsgZGVhZGxpbmU6IERhdGUubm93KCkgKyA1MDAwIH07IC8vIDUgc2Vjb25kc1xuICAgICAgfSxcbiAgICAgIGVuZG9yc2VPcHRpb25zOiAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7IGRlYWRsaW5lOiBEYXRlLm5vdygpICsgMTUwMDAgfTsgLy8gMTUgc2Vjb25kc1xuICAgICAgfSxcbiAgICAgIHN1Ym1pdE9wdGlvbnM6ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHsgZGVhZGxpbmU6IERhdGUubm93KCkgKyA1MDAwIH07IC8vIDUgc2Vjb25kc1xuICAgICAgfSxcbiAgICAgIGNvbW1pdFN0YXR1c09wdGlvbnM6ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHsgZGVhZGxpbmU6IERhdGUubm93KCkgKyA2MDAwMCB9OyAvLyAxIG1pbnV0ZVxuICAgICAgfSxcbiAgICB9IGFzIENvbm5lY3RPcHRpb25zO1xuXG4gICAgbG9nLmRlYnVnKGBDb25uZWN0aW5nIHRvICR7Y29uZmlnLm1zcElkfWApO1xuICAgIHJldHVybiBjb25uZWN0KG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIGEgbmV3IERpc3BhdGNoIGluc3RhbmNlIGZvciB0aGUgRmFicmljIGNsaWVudC5cbiAgICogQHN1bW1hcnkgVGhpcyBmdW5jdGlvbiBpcyByZXNwb25zaWJsZSBmb3IgY3JlYXRpbmcgYSBuZXcgRmFicmljQ2xpZW50RGlzcGF0Y2ggaW5zdGFuY2UgdGhhdCBjYW4gYmUgdXNlZCB0byBpbnRlcmFjdCB3aXRoIHRoZSBGYWJyaWMgbmV0d29yay5cbiAgICogQHJldHVybnMge0Rpc3BhdGNofSBBIG5ldyBEaXNwYXRjaCBpbnN0YW5jZSBjb25maWd1cmVkIGZvciB0aGUgRmFicmljIGNsaWVudC5cbiAgICogQHJlbWFya3MgVGhlIERpc3BhdGNoIGluc3RhbmNlIGlzIHVzZWQgdG8gZW5jYXBzdWxhdGUgdGhlIGxvZ2ljIGZvciBpbnRlcmFjdGluZyB3aXRoIHRoZSBGYWJyaWMgbmV0d29yaywgc3VjaCBhcyBzdWJtaXR0aW5nIHRyYW5zYWN0aW9ucyBvciBxdWVyeWluZyBkYXRhLlxuICAgKiBAZXhhbXBsZVxuICAgKiBjb25zdCBmYWJyaWNEaXNwYXRjaCA9IGZhYnJpY0NsaWVudEFkYXB0ZXIuRGlzcGF0Y2goKTtcbiAgICogZmFicmljRGlzcGF0Y2guc3VibWl0VHJhbnNhY3Rpb24oJ2NyZWF0ZVByb2R1Y3QnLCB7IG5hbWU6ICdQcm9kdWN0IEEnLCBwcmljZTogMTAwIH0pO1xuICAgKi9cbiAgb3ZlcnJpZGUgRGlzcGF0Y2goKTogRGlzcGF0Y2gge1xuICAgIHJldHVybiBuZXcgRmFicmljQ2xpZW50RGlzcGF0Y2godGhpcy5nZXRDbGllbnQoKSk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFBhcnNlcyBhbiBlcnJvciBpbnRvIGEgQmFzZUVycm9yXG4gICAqIEBzdW1tYXJ5IENvbnZlcnRzIGFueSBlcnJvciBpbnRvIGEgc3RhbmRhcmRpemVkIEJhc2VFcnJvciB1c2luZyB0aGUgcGFyZW50IGNsYXNzIGltcGxlbWVudGF0aW9uXG4gICAqIEBwYXJhbSB7RXJyb3IgfCBzdHJpbmd9IGVyciAtIFRoZSBlcnJvciB0byBwYXJzZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW3JlYXNvbl0gLSBPcHRpb25hbCByZWFzb24gZm9yIHRoZSBlcnJvclxuICAgKiBAcmV0dXJuIHtCYXNlRXJyb3J9IFRoZSBwYXJzZWQgZXJyb3JcbiAgICovXG4gIHByb3RlY3RlZCBzdGF0aWMgb3ZlcnJpZGUgcGFyc2VFcnJvcihcbiAgICBlcnI6IEVycm9yIHwgc3RyaW5nLFxuICAgIHJlYXNvbj86IHN0cmluZ1xuICApOiBCYXNlRXJyb3Ige1xuICAgIHJldHVybiBzdXBlci5wYXJzZUVycm9yKGVyciwgcmVhc29uKTtcbiAgfVxufVxuXG5GYWJyaWNDbGllbnRBZGFwdGVyLmRlY29yYXRpb24oKTtcbkFkYXB0ZXIuc2V0Q3VycmVudChGYWJyaWNGbGF2b3VyKTtcbiJdfQ==
760
+ //# sourceMappingURL=FabricClientAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FabricClientAdapter.js","sourceRoot":"","sources":["../../src/client/FabricClientAdapter.ts"],"names":[],"mappings":"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"}
@@ -183,4 +183,4 @@ class FabricClientDispatch extends core_1.Dispatch {
183
183
  }
184
184
  }
185
185
  exports.FabricClientDispatch = FabricClientDispatch;
186
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQ2xpZW50RGlzcGF0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpZW50L0ZhYnJpY0NsaWVudERpc3BhdGNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlDQUFxRTtBQUdyRSxtRUFBNEQ7QUFDNUQsMkRBQXdEO0FBS3hELG1EQUFrRDtBQUVsRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQ0c7QUFDSCxNQUFhLG9CQUFxQixTQUFRLGVBQVE7SUFXaEQ7Ozs7T0FJRztJQUNILFlBQXNCLE1BQWM7UUFDbEMsS0FBSyxFQUFFLENBQUM7UUFEWSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBVnBDOztXQUVHO1FBQ0ssWUFBTyxHQUFHLElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBUzFDLENBQUM7SUFFRDs7OztPQUlHO0lBQ00sS0FBSyxDQUFDLEtBQUs7UUFDbEIsSUFBSSxJQUFJLENBQUMsY0FBYztZQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdkQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ssWUFBWSxDQUFDLFNBQXFCO1FBQ3hDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzVDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDTSxPQUFPLENBQUMsUUFBNkI7UUFDNUMsSUFBSSxDQUFDLENBQUMsUUFBUSxZQUFZLHlDQUFtQixDQUFDO1lBQzVDLE1BQU0sSUFBSSx1QkFBZ0IsQ0FDeEIsc0RBQXNELENBQ3ZELENBQUM7UUFDSixJQUFJLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQztRQUN4QixJQUFJLENBQUMsTUFBTSxHQUFHLGNBQU8sQ0FBQyxNQUFNLENBQUMsSUFB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QU8sQ0FBQyxNQUFNLENBQUMsYUFBYSxpQkFBaUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxNQUFNLENBQUMsRUFBRSxDQUM5SCxDQUFDO1lBQ0YsTUFBTSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDckIsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ2dCLEtBQUssQ0FBQyxVQUFVO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztZQUNmLE1BQU0sSUFBSSw2QkFBYSxDQUFDLDRDQUE0QyxDQUFDLENBQUM7UUFDeEUsTUFBTSxPQUFPLEdBQUcsTUFBTSx5Q0FBbUIsQ0FBQyxVQUFVLENBQ2xELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBb0IsRUFDakMsSUFBSSxDQUFDLE1BQU0sQ0FDWixDQUFDO1FBQ0YsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87WUFDZixNQUFNLElBQUksNkJBQWEsQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBTSxPQUFPLENBQUMsa0JBQWtCLENBQ3BELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FDbEMsQ0FBQztRQUNGLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0NBQ0Y7QUEzS0Qsb0RBMktDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWRhcHRlciwgRGlzcGF0Y2gsIFVuc3VwcG9ydGVkRXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IFBlZXJDb25maWcgfSBmcm9tIFwiLi4vc2hhcmVkL3R5cGVzXCI7XG5pbXBvcnQgeyBDbGllbnQgfSBmcm9tIFwiQGdycGMvZ3JwYy1qc1wiO1xuaW1wb3J0IHsgRmFicmljQ2xpZW50QWRhcHRlciB9IGZyb20gXCIuL0ZhYnJpY0NsaWVudEFkYXB0ZXJcIjtcbmltcG9ydCB7IEludGVybmFsRXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7XG4gIENoYWluY29kZUV2ZW50LFxuICBDbG9zZWFibGVBc3luY0l0ZXJhYmxlLFxufSBmcm9tIFwiQGh5cGVybGVkZ2VyL2ZhYnJpYy1nYXRld2F5XCI7XG5pbXBvcnQgeyBwYXJzZUV2ZW50TmFtZSB9IGZyb20gXCIuLi9zaGFyZWQvZXZlbnRzXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEV2ZW50IGRpc3BhdGNoZXIgZm9yIEh5cGVybGVkZ2VyIEZhYnJpYyBjaGFpbmNvZGUgZXZlbnRzXG4gKiBAc3VtbWFyeSBMaXN0ZW5zIGZvciBhbmQgcHJvY2Vzc2VzIGV2ZW50cyBlbWl0dGVkIGJ5IEZhYnJpYyBjaGFpbmNvZGUsIGRpc3BhdGNoaW5nIHRoZW0gdG8gcmVnaXN0ZXJlZCBvYnNlcnZlcnNcbiAqIEB0ZW1wbGF0ZSBQZWVyQ29uZmlnIC0gQ29uZmlndXJhdGlvbiB0eXBlIGZvciBjb25uZWN0aW5nIHRvIGEgRmFicmljIHBlZXJcbiAqIEBwYXJhbSBjbGllbnQgLSBnUlBDIGNsaWVudCBmb3IgY29ubmVjdGluZyB0byB0aGUgRmFicmljIG5ldHdvcmtcbiAqIEBjbGFzcyBGYWJyaWNDbGllbnREaXNwYXRjaFxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIENyZWF0ZSBhIG5ldyBGYWJyaWNEaXNwYXRjaCBpbnN0YW5jZVxuICogY29uc3QgY2xpZW50ID0gYXdhaXQgRmFicmljQWRhcHRlci5nZXRDbGllbnQocGVlckNvbmZpZyk7XG4gKiBjb25zdCBkaXNwYXRjaCA9IG5ldyBGYWJyaWNEaXNwYXRjaChjbGllbnQpO1xuICpcbiAqIC8vIENvbmZpZ3VyZSB0aGUgZGlzcGF0Y2ggd2l0aCBwZWVyIGNvbmZpZ3VyYXRpb25cbiAqIGRpc3BhdGNoLmNvbmZpZ3VyZShwZWVyQ29uZmlnKTtcbiAqXG4gKiAvLyBSZWdpc3RlciBhbiBvYnNlcnZlciBmb3IgYSBzcGVjaWZpYyB0YWJsZSBhbmQgZXZlbnRcbiAqIGRpc3BhdGNoLm9ic2VydmUoJ3VzZXJzJywgJ2NyZWF0ZScsIChpZCkgPT4ge1xuICogICBjb25zb2xlLmxvZyhgVXNlciBjcmVhdGVkOiAke2lkfWApO1xuICogfSk7XG4gKlxuICogLy8gU3RhcnQgbGlzdGVuaW5nIGZvciBldmVudHNcbiAqIGF3YWl0IGRpc3BhdGNoLnN0YXJ0KCk7XG4gKiBgYGBcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgQ2xpZW50XG4gKiAgIHBhcnRpY2lwYW50IEZhYnJpY0Rpc3BhdGNoXG4gKiAgIHBhcnRpY2lwYW50IEdhdGV3YXlcbiAqICAgcGFydGljaXBhbnQgTmV0d29ya1xuICogICBwYXJ0aWNpcGFudCBDaGFpbmNvZGVcbiAqXG4gKiAgIENsaWVudC0+PkZhYnJpY0Rpc3BhdGNoOiBuZXcgRmFicmljRGlzcGF0Y2goY2xpZW50KVxuICogICBDbGllbnQtPj5GYWJyaWNEaXNwYXRjaDogY29uZmlndXJlKHBlZXJDb25maWcpXG4gKiAgIENsaWVudC0+PkZhYnJpY0Rpc3BhdGNoOiBvYnNlcnZlKHRhYmxlLCBldmVudCwgY2FsbGJhY2spXG4gKiAgIENsaWVudC0+PkZhYnJpY0Rpc3BhdGNoOiBzdGFydCgpXG4gKiAgIEZhYnJpY0Rpc3BhdGNoLT4+RmFicmljRGlzcGF0Y2g6IGluaXRpYWxpemUoKVxuICogICBGYWJyaWNEaXNwYXRjaC0+PkdhdGV3YXk6IGdldEdhdGV3YXkoY29uZmlnLCBjbGllbnQpXG4gKiAgIEdhdGV3YXktPj5OZXR3b3JrOiBnZXROZXR3b3JrKGNoYW5uZWwpXG4gKiAgIE5ldHdvcmstPj5OZXR3b3JrOiBnZXRDaGFpbmNvZGVFdmVudHMoY2hhaW5jb2RlTmFtZSlcbiAqICAgRmFicmljRGlzcGF0Y2gtPj5GYWJyaWNEaXNwYXRjaDogaGFuZGxlRXZlbnRzKClcbiAqICAgbG9vcCBGb3IgZWFjaCBldmVudFxuICogICAgIENoYWluY29kZS0tPj5GYWJyaWNEaXNwYXRjaDogQ2hhaW5jb2RlRXZlbnRcbiAqICAgICBGYWJyaWNEaXNwYXRjaC0+PkZhYnJpY0Rpc3BhdGNoOiBwYXJzZUV2ZW50TmFtZShldmVudE5hbWUpXG4gKiAgICAgRmFicmljRGlzcGF0Y2gtPj5GYWJyaWNEaXNwYXRjaDogcGFyc2VQYXlsb2FkKHBheWxvYWQpXG4gKiAgICAgRmFicmljRGlzcGF0Y2gtPj5GYWJyaWNEaXNwYXRjaDogdXBkYXRlT2JzZXJ2ZXJzKHRhYmxlLCBldmVudCwgaWQpXG4gKiAgICAgRmFicmljRGlzcGF0Y2gtLT4+Q2xpZW50OiBjYWxsYmFjayhpZClcbiAqICAgZW5kXG4gKi9cbmV4cG9ydCBjbGFzcyBGYWJyaWNDbGllbnREaXNwYXRjaCBleHRlbmRzIERpc3BhdGNoIHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBFdmVudCBsaXN0ZW5pbmcgc3RhY2sgZm9yIGNoYWluY29kZSBldmVudHNcbiAgICovXG4gIHByaXZhdGUgbGlzdGVuaW5nU3RhY2s/OiBDbG9zZWFibGVBc3luY0l0ZXJhYmxlPENoYWluY29kZUV2ZW50PjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRleHQgZGVjb2RlciBmb3IgY29udmVydGluZyBldmVudCBwYXlsb2FkcyBmcm9tIGJ5dGVzIHRvIHN0cmluZ3NcbiAgICovXG4gIHByaXZhdGUgZGVjb2RlciA9IG5ldyBUZXh0RGVjb2RlcihcInV0ZjhcIik7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIGEgbmV3IEZhYnJpY0Rpc3BhdGNoIGluc3RhbmNlXG4gICAqIEBzdW1tYXJ5IEluaXRpYWxpemVzIGEgZGlzcGF0Y2hlciBmb3IgRmFicmljIGNoYWluY29kZSBldmVudHNcbiAgICogQHBhcmFtIHtDbGllbnR9IGNsaWVudCAtIGdSUEMgY2xpZW50IGZvciBjb25uZWN0aW5nIHRvIHRoZSBGYWJyaWMgbmV0d29ya1xuICAgKi9cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGNsaWVudDogQ2xpZW50KSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ2xvc2VzIHRoZSBldmVudCBsaXN0ZW5pbmcgY29ubmVjdGlvblxuICAgKiBAc3VtbWFyeSBTdG9wcyBsaXN0ZW5pbmcgZm9yIGNoYWluY29kZSBldmVudHMgYW5kIHJlbGVhc2VzIHJlc291cmNlc1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPHZvaWQ+fSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgY29ubmVjdGlvbiBpcyBjbG9zZWRcbiAgICovXG4gIG92ZXJyaWRlIGFzeW5jIGNsb3NlKCkge1xuICAgIGlmICh0aGlzLmxpc3RlbmluZ1N0YWNrKSB0aGlzLmxpc3RlbmluZ1N0YWNrLmNsb3NlKCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFBhcnNlcyBldmVudCBwYXlsb2FkIGZyb20gYmluYXJ5IGZvcm1hdFxuICAgKiBAc3VtbWFyeSBDb252ZXJ0cyBhIFVpbnQ4QXJyYXkgY29udGFpbmluZyBKU09OIHRvIGFuIG9iamVjdCB3aXRoIGFuIGlkIHByb3BlcnR5XG4gICAqIEBwYXJhbSB7VWludDhBcnJheX0ganNvbkJ5dGVzIC0gVGhlIGJpbmFyeSBwYXlsb2FkIGZyb20gdGhlIGNoYWluY29kZSBldmVudFxuICAgKiBAcmV0dXJuIHt7IGlkOiBzdHJpbmcgfX0gVGhlIHBhcnNlZCBwYXlsb2FkIGNvbnRhaW5pbmcgdGhlIHJlY29yZCBJRFxuICAgKi9cbiAgcHJpdmF0ZSBwYXJzZVBheWxvYWQoanNvbkJ5dGVzOiBVaW50OEFycmF5KTogeyBpZDogc3RyaW5nIH0ge1xuICAgIGNvbnN0IGpzb24gPSB0aGlzLmRlY29kZXIuZGVjb2RlKGpzb25CeXRlcyk7XG4gICAgcmV0dXJuIEpTT04ucGFyc2UoanNvbik7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFN0YXJ0cyBvYnNlcnZpbmcgYW4gYWRhcHRlclxuICAgKiBAc3VtbWFyeSBDb25uZWN0cyB0aGlzIGRpc3BhdGNoIHRvIGFuIGFkYXB0ZXIgdG8gbW9uaXRvciBpdHMgb3BlcmF0aW9uc1xuICAgKiBAcGFyYW0ge0FkYXB0ZXI8YW55LCBhbnksIGFueSwgYW55Pn0gb2JzZXJ2ZXIgLSBUaGUgYWRhcHRlciB0byBvYnNlcnZlXG4gICAqIEByZXR1cm4ge3ZvaWR9XG4gICAqL1xuICBvdmVycmlkZSBvYnNlcnZlKG9ic2VydmVyOiBGYWJyaWNDbGllbnRBZGFwdGVyKTogdm9pZCB7XG4gICAgaWYgKCEob2JzZXJ2ZXIgaW5zdGFuY2VvZiBGYWJyaWNDbGllbnRBZGFwdGVyKSlcbiAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZEVycm9yKFxuICAgICAgICBcIk9ubHkgRmFicmljQ2xpZW50QWRhcHRlciBjYW4gYmUgb2JzZXJ2ZWQgYnkgZGlzcGF0Y2hcIlxuICAgICAgKTtcbiAgICB0aGlzLmFkYXB0ZXIgPSBvYnNlcnZlcjtcbiAgICB0aGlzLm1vZGVscyA9IEFkYXB0ZXIubW9kZWxzKHRoaXMuYWRhcHRlci5hbGlhcyk7XG4gICAgdGhpcy5pbml0aWFsaXplKCkudGhlbigoKSA9PlxuICAgICAgdGhpcy5sb2cudmVyYm9zZShcbiAgICAgICAgYERpc3BhdGNoIGluaXRpYWxpemVkIGZvciAke3RoaXMuYWRhcHRlciEuYWxpYXN9IGFkYXB0ZXJgXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVXBkYXRlcyBvYnNlcnZlcnMgYWJvdXQgYSBkYXRhYmFzZSBldmVudFxuICAgKiBAc3VtbWFyeSBOb3RpZmllcyBvYnNlcnZlcnMgYWJvdXQgYSBjaGFuZ2UgaW4gdGhlIGRhdGFiYXNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0YWJsZSAtIFRoZSBuYW1lIG9mIHRoZSB0YWJsZSB3aGVyZSB0aGUgY2hhbmdlIG9jY3VycmVkXG4gICAqIEBwYXJhbSB7T3BlcmF0aW9uS2V5c3xCdWxrQ3J1ZE9wZXJhdGlvbktleXN8c3RyaW5nfSBldmVudCAtIFRoZSB0eXBlIG9mIG9wZXJhdGlvbiB0aGF0IG9jY3VycmVkXG4gICAqIEBwYXJhbSB7YW55fSBwYXlsb2FkIC0gVGhlIGV2ZW50IHBheWxvYWRcbiAgICogQHJldHVybiB7UHJvbWlzZTx2b2lkPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiBhbGwgb2JzZXJ2ZXJzIGhhdmUgYmVlbiBub3RpZmllZFxuICAgKi9cbiAgb3ZlcnJpZGUgYXN5bmMgdXBkYXRlT2JzZXJ2ZXJzKFxuICAgIHRhYmxlOiBzdHJpbmcsXG4gICAgZXZlbnQ6IHN0cmluZyxcbiAgICBwYXlsb2FkOiBhbnlcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLmFkYXB0ZXIpIHtcbiAgICAgIHRoaXMubG9nLnZlcmJvc2UoXG4gICAgICAgIGBObyBhZGFwdGVyIG9ic2VydmVkIGZvciBkaXNwYXRjaDsgc2tpcHBpbmcgb2JzZXJ2ZXIgdXBkYXRlIGZvciAke3RhYmxlfToke2V2ZW50fWBcbiAgICAgICk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmFkYXB0ZXIucmVmcmVzaChcbiAgICAgICAgdGFibGUsXG4gICAgICAgIGV2ZW50LFxuICAgICAgICBwYXlsb2FkLmlkID8gcGF5bG9hZC5pZCA6IHVuZGVmaW5lZCxcbiAgICAgICAgcGF5bG9hZFxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgRmFpbGVkIHRvIHJlZnJlc2ggZGlzcGF0Y2g6ICR7ZX1gKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFByb2Nlc3NlcyBpbmNvbWluZyBjaGFpbmNvZGUgZXZlbnRzXG4gICAqIEBzdW1tYXJ5IExpc3RlbnMgZm9yIGV2ZW50cyBmcm9tIHRoZSBjaGFpbmNvZGUgYW5kIGRpc3BhdGNoZXMgdGhlbSB0byByZWdpc3RlcmVkIG9ic2VydmVyc1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPHZvaWQ+fSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiBldmVudCBoYW5kbGluZyBzdG9wc1xuICAgKiBAbWVybWFpZFxuICAgKiBzZXF1ZW5jZURpYWdyYW1cbiAgICogICBwYXJ0aWNpcGFudCBGYWJyaWNEaXNwYXRjaFxuICAgKiAgIHBhcnRpY2lwYW50IEV2ZW50U3RhY2tcbiAgICogICBwYXJ0aWNpcGFudCBFdmVudFBhcnNlclxuICAgKiAgIHBhcnRpY2lwYW50IE9ic2VydmVyc1xuICAgKlxuICAgKiAgIEZhYnJpY0Rpc3BhdGNoLT4+RmFicmljRGlzcGF0Y2g6IGhhbmRsZUV2ZW50cygpXG4gICAqICAgRmFicmljRGlzcGF0Y2gtPj5FdmVudFN0YWNrOiBmb3IgYXdhaXQgKGNvbnN0IGV2dCBvZiBsaXN0ZW5pbmdTdGFjaylcbiAgICogICBFdmVudFN0YWNrLS0+PkZhYnJpY0Rpc3BhdGNoOiBDaGFpbmNvZGVFdmVudFxuICAgKiAgIEZhYnJpY0Rpc3BhdGNoLT4+RXZlbnRQYXJzZXI6IHBhcnNlRXZlbnROYW1lKGV2dC5ldmVudE5hbWUpXG4gICAqICAgRXZlbnRQYXJzZXItLT4+RmFicmljRGlzcGF0Y2g6IHsgdGFibGUsIGV2ZW50LCBvd25lciB9XG4gICAqICAgRmFicmljRGlzcGF0Y2gtPj5GYWJyaWNEaXNwYXRjaDogQ2hlY2sgaWYgZXZlbnQgaXMgZm9yIHRoaXMgTVNQXG4gICAqICAgRmFicmljRGlzcGF0Y2gtPj5GYWJyaWNEaXNwYXRjaDogcGFyc2VQYXlsb2FkKGV2dC5wYXlsb2FkKVxuICAgKiAgIEZhYnJpY0Rpc3BhdGNoLT4+T2JzZXJ2ZXJzOiB1cGRhdGVPYnNlcnZlcnModGFibGUsIGV2ZW50LCBwYXlsb2FkLmlkKVxuICAgKiAgIE9ic2VydmVycy0tPj5GYWJyaWNEaXNwYXRjaDogQ2FsbGJhY2tzIGV4ZWN1dGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlRXZlbnRzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghdGhpcy5saXN0ZW5pbmdTdGFjaylcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICBgRXZlbnQgc3RhY2sgbm90IGluaXRpYWxpemVkLiBFbnN1cmUgdGhhdCBcInN0YXJ0TGlzdGVuaW5nXCIgaXMgY2FsbGVkIGJlZm9yZSBhdHRlbXB0aW5nIHRoaXMgb3BlcmF0aW9uLmBcbiAgICAgICk7XG5cbiAgICBpZiAoIXRoaXMuYWRhcHRlciB8fCAhdGhpcy5hZGFwdGVyLmNvbmZpZylcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBObyBhZGFwdGVyIGZvdW5kLiBzaG91bGQgYmUgaW1wb3NzaWJsZWApO1xuXG4gICAgY29uc3QgbG9nID0gdGhpcy5sb2cuZm9yKHRoaXMuaGFuZGxlRXZlbnRzKTtcbiAgICBsb2cuaW5mbyhcbiAgICAgIGBMaXN0ZW5pbmcgZm9yIGluY29taW5nIGV2ZW50cyBvbiBjaGFpbmNvZGUgXCIke3RoaXMuYWRhcHRlci5jb25maWcuY2hhaW5jb2RlTmFtZX1cIiBvbiBjaGFubmVsIFwiJHt0aGlzLmFkYXB0ZXIuY29uZmlnLmNoYW5uZWx9XCIuLi5gXG4gICAgKTtcblxuICAgIHRyeSB7XG4gICAgICBmb3IgYXdhaXQgKGNvbnN0IGV2dCBvZiB0aGlzLmxpc3RlbmluZ1N0YWNrKSB7XG4gICAgICAgIGNvbnN0IHsgdGFibGUsIGV2ZW50LCBvd25lciB9ID0gcGFyc2VFdmVudE5hbWUoZXZ0LmV2ZW50TmFtZSk7XG4gICAgICAgIGlmIChvd25lciAmJiBvd25lciAhPT0gdGhpcy5hZGFwdGVyLmNvbmZpZz8ubXNwSWQpIGNvbnRpbnVlO1xuICAgICAgICBjb25zdCBwYXlsb2FkOiB7IGlkOiBzdHJpbmcgfSA9IHRoaXMucGFyc2VQYXlsb2FkKGV2dC5wYXlsb2FkKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBhd2FpdCB0aGlzLnVwZGF0ZU9ic2VydmVycyhcbiAgICAgICAgICAgIHRhYmxlID8gdGFibGUgOiB0aGlzLm1vZGVsc1swXS5uYW1lLFxuICAgICAgICAgICAgZXZlbnQsXG4gICAgICAgICAgICBwYXlsb2FkXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgICAgIGxvZy5lcnJvcihcbiAgICAgICAgICAgIGBGYWlsZWQgdXBkYXRlIG9ic2VydmFibGVzIGZvciB0YWJsZSAke3RhYmxlfSBldmVudCAke2V2ZW50fSBpZDogJHtwYXlsb2FkLmlkfTogJHtlfWBcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICBsb2cuZXJyb3IoXG4gICAgICAgIGBGYWlsZWQgdG8gcmVhZCBldmVudCBmb3IgY2hhaW5jb2RlIFwiJHt0aGlzLmFkYXB0ZXIuY29uZmlnLmNoYWluY29kZU5hbWV9XCIgb24gY2hhbm5lbCBcIiR7dGhpcy5hZGFwdGVyLmNvbmZpZy5jaGFubmVsfVwiOiAke2V9YFxuICAgICAgKTtcbiAgICAgIGF3YWl0IHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEluaXRpYWxpemVzIHRoZSBldmVudCBsaXN0ZW5lclxuICAgKiBAc3VtbWFyeSBTZXRzIHVwIHRoZSBjb25uZWN0aW9uIHRvIHRoZSBGYWJyaWMgbmV0d29yayBhbmQgc3RhcnRzIGxpc3RlbmluZyBmb3IgY2hhaW5jb2RlIGV2ZW50c1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPHZvaWQ+fSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiBpbml0aWFsaXphdGlvbiBpcyBjb21wbGV0ZVxuICAgKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGFzeW5jIGluaXRpYWxpemUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLmFkYXB0ZXIpXG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgTm8gYWRhcHRlciBvciBjb25maWcgb2JzZXJ2ZWQgZm9yIGRpc3BhdGNoYCk7XG4gICAgY29uc3QgZ2F0ZXdheSA9IGF3YWl0IEZhYnJpY0NsaWVudEFkYXB0ZXIuZ2V0R2F0ZXdheShcbiAgICAgIHRoaXMuYWRhcHRlci5jb25maWcgYXMgUGVlckNvbmZpZyxcbiAgICAgIHRoaXMuY2xpZW50XG4gICAgKTtcbiAgICBjb25zdCBuZXR3b3JrID0gZ2F0ZXdheS5nZXROZXR3b3JrKHRoaXMuYWRhcHRlci5jb25maWcuY2hhbm5lbCk7XG4gICAgaWYgKCF0aGlzLmFkYXB0ZXIpXG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgTm8gYWRhcHRlciBvYnNlcnZlZCBmb3IgZGlzcGF0Y2hgKTtcbiAgICB0aGlzLmxpc3RlbmluZ1N0YWNrID0gYXdhaXQgbmV0d29yay5nZXRDaGFpbmNvZGVFdmVudHMoXG4gICAgICB0aGlzLmFkYXB0ZXIuY29uZmlnLmNoYWluY29kZU5hbWVcbiAgICApO1xuICAgIHRoaXMuaGFuZGxlRXZlbnRzKCk7XG4gIH1cbn1cbiJdfQ==
186
+ //# sourceMappingURL=FabricClientDispatch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FabricClientDispatch.js","sourceRoot":"","sources":["../../src/client/FabricClientDispatch.ts"],"names":[],"mappings":"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"}