Transaction executed successfully

Transaction Details

Inspect execution, participants, message data, gas usage, events and raw transaction data.

Transaction hash
A4FAF77A070111C0316FDBBCB5E10E72120CFB97AE57F779B119EFFEDFD51F94

Transaction overview

Status
Success
Execution completed
Block
#77246
Included in block
Message Type
m_addpkg
Primary message

Execution summary

TX INDEX
0
Position in block
GAS WANTED
26,903,735
Requested gas limit
GAS USED
22,419,809
Gas consumed
FEE
26904ugnot
Transaction fee

Participants

Sender
Package / Realm
Not available
Memo
None

Message

Message #1
m_addpkg
Caller
Arguments
g1q5tjjv3kkslzwf2na9y9wk7e5a8ugph8xfsk04

Execution log

msg:0,success:true,log:,events:[]

Events

No events emitted by this transaction.

Raw encoded transaction

CsKMAQoML3ZtLm1fYWRkcGtnErCMAQooZzFxNXRqanYza2tzbHp3ZjJuYTl5OXdrN2U1YTh1Z3BoOHhmc2swNBKCjAEKBHJiYWMSGmduby5sYW5kL3IvZ25vc3dhcC9yYmFjL3YxGuokCglSRUFETUUubWQS3CQjIFJCQUMKClJvbGUtYmFzZWQgYWNjZXNzIGNvbnRyb2wgbWFuYWdlbWVudCByZWFsbS4KCiMjIE92ZXJ2aWV3CgpSQkFDIHJlYWxtIG1hbmFnZXMgcm9sZSBhZGRyZXNzZXMgYW5kIHBlcm1pc3Npb25zIGZvciB0aGUgR25vU3dhcCBwcm90b2NvbCwgaW50ZWdyYXRpbmcgd2l0aCB0aGUgYWNjZXNzIHBhY2thZ2UuCgojIyBDb25maWd1cmF0aW9uCgotICoqQWRtaW4vR292ZXJuYW5jZSBDb250cm9sKio6IFJvbGUgbWFuYWdlbWVudCBieSBhZG1pbiBvciBnb3Zlcm5hbmNlCi0gKipEeW5hbWljIFJvbGVzKio6IEFkZC9yZW1vdmUgYXQgcnVudGltZQotICoqQWNjZXNzIEludGVncmF0aW9uKio6IFN5bmNzIHdpdGggYWNjZXNzIHBhY2thZ2UKLSAqKk93bmVyLU1hbmFnZWQgQWRtaW4gUm9sZSoqOiBgYWRtaW5gIHJvbGUgaXMgYm91bmQgdG8gUkJBQyBvd25lciBhbmQgY2Fubm90IGJlIHVwZGF0ZWQgdmlhIGBVcGRhdGVSb2xlQWRkcmVzc2AKCiMjIEtleSBGdW5jdGlvbnMKCiMjIyBgUmVnaXN0ZXJSb2xlKGN1ciByZWFsbSwgcm9sZU5hbWUgc3RyaW5nLCByb2xlQWRkcmVzcyBhZGRyZXNzKWAKClJlZ2lzdGVycyBuZXcgcm9sZSBpbiBzeXN0ZW0uIE9ubHkgY2FsbGFibGUgYnkgYWRtaW4gb3IgZ292ZXJuYW5jZS4KCiMjIyBgUmVtb3ZlUm9sZShjdXIgcmVhbG0sIHJvbGVOYW1lIHN0cmluZylgCgpSZW1vdmVzIGV4aXN0aW5nIHJvbGUuIE9ubHkgY2FsbGFibGUgYnkgYWRtaW4gb3IgZ292ZXJuYW5jZS4gU3lzdGVtIHJvbGVzIGNhbm5vdCBiZSByZW1vdmVkLgoKIyMjIGBVcGRhdGVSb2xlQWRkcmVzcyhjdXIgcmVhbG0sIHJvbGVOYW1lIHN0cmluZywgYWRkciBhZGRyZXNzKWAKClVwZGF0ZXMgYWRkcmVzcyBmb3Igcm9sZS4gT25seSBjYWxsYWJsZSBieSBhZG1pbiBvciBnb3Zlcm5hbmNlLgpUaGUgYGFkbWluYCByb2xlIGlzIG5vdCB1cGRhdGFibGUgdmlhIHRoaXMgZnVuY3Rpb24gYW5kIGlzIG1hbmFnZWQgdGhyb3VnaCBvd25lcnNoaXAgdHJhbnNmZXIuCgojIyMgYEdldFJvbGVBZGRyZXNzKHJvbGVOYW1lIHN0cmluZykgKGFkZHJlc3MsIGVycm9yKWAKClJldHVybnMgYWRkcmVzcyBmb3Igcm9sZS4KCiMjIyBgSXNPd25lcihhZGRyIGFkZHJlc3MpIGJvb2xgCgpSZXR1cm5zIHRydWUgaWYgYWRkciBpcyB0aGUgY3VycmVudCBvd25lci4KCiMjIyBgSXNQZW5kaW5nT3duZXIoYWRkciBhZGRyZXNzKSBib29sYAoKUmV0dXJucyB0cnVlIGlmIGFkZHIgaXMgdGhlIHBlbmRpbmcgb3duZXIuCgojIyMgYEdldE93bmVyKCkgYWRkcmVzc2AKClJldHVybnMgdGhlIGN1cnJlbnQgb3duZXIgYWRkcmVzcy4KCiMjIyBgR2V0UGVuZGluZ093bmVyKCkgYWRkcmVzc2AKClJldHVybnMgdGhlIHBlbmRpbmcgb3duZXIgYWRkcmVzcy4KCiMjIyBgVHJhbnNmZXJPd25lcnNoaXAoY3VyIHJlYWxtLCBuZXdPd25lciBhZGRyZXNzKWAKCkluaXRpYXRlcyB0d28tc3RlcCBvd25lcnNoaXAgdHJhbnNmZXIuIE9ubHkgY2FsbGFibGUgYnkgY3VycmVudCBvd25lci4KCiMjIyBgQWNjZXB0T3duZXJzaGlwKGN1ciByZWFsbSlgCgpBY2NlcHRzIHBlbmRpbmcgb3duZXJzaGlwIHRyYW5zZmVyLiBPbmx5IGNhbGxhYmxlIGJ5IHBlbmRpbmcgb3duZXIuCkFsc28gdXBkYXRlcyB0aGUgYGFkbWluYCByb2xlIGFkZHJlc3MgYW5kIHN5bmNzIGl0IHRvIHRoZSBhY2Nlc3MgcGFja2FnZS4KCiMjIEdub3dlYgoKYFJlbmRlcigiIilgIHNob3dzIHRoZSBvd25lciwgcGVuZGluZyBvd25lciAoYE5vbmVgIHdoZW4gYWJzZW50KSwgYW5kIHRoZSBmaXhlZApzeXN0ZW0tcm9sZSBhc3NpZ25tZW50cy4gVW5hc3NpZ25lZCByb2xlcyBhcmUgZXhwbGljaXQ7IGN1c3RvbSByb2xlcyBhcmUgbm90CmVudW1lcmF0ZWQuIFVuc3VwcG9ydGVkIHBhdGhzIHJldHVybiBgNDA0YC4KCiMjIFVzYWdlCgpgYGBnbwovLyBSZWdpc3RlciBuZXcgcm9sZSAocmVxdWlyZXMgYWRtaW4gb3IgZ292ZXJuYW5jZSkKUmVnaXN0ZXJSb2xlKGNyb3NzKGN1ciksICJuZXdfcm9sZSIsIHJvbGVBZGRyZXNzKQoKLy8gVXBkYXRlIHJvbGUgYWRkcmVzcwpVcGRhdGVSb2xlQWRkcmVzcyhjcm9zcyhjdXIpLCAic3Rha2VyIiwgbmV3QWRkcmVzcykKCi8vIEFkbWluIHJvbGUgaXMgdXBkYXRlZCB2aWEgb3duZXJzaGlwIHRyYW5zZmVyClRyYW5zZmVyT3duZXJzaGlwKGNyb3NzKGN1ciksIG5ld0FkbWluKQpBY2NlcHRPd25lcnNoaXAoY3Jvc3MoY3VyKSkKCi8vIEdldCByb2xlIGFkZHJlc3MKYWRkciwgZXJyIDo9IEdldFJvbGVBZGRyZXNzKCJyb3V0ZXIiKQoKLy8gVHJhbnNmZXIgb3duZXJzaGlwICh0d28tc3RlcCkKVHJhbnNmZXJPd25lcnNoaXAoY3Jvc3MoY3VyKSwgbmV3QWRtaW4pIC8vIFN0ZXAgMTogSW5pdGlhdGUKQWNjZXB0T3duZXJzaGlwKGNyb3NzKGN1cikpICAgICAgICAgICAgIC8vIFN0ZXAgMjogQWNjZXB0IChieSBuZXdBZG1pbikKYGBgCgojIyBDb250cmFjdCBVcGdyYWRlCgpSQkFDIHN1cHBvcnRzIGNvbnRyYWN0IHVwZ3JhZGVzIGJ5IGNoYW5naW5nIHJvbGUgYWRkcmVzc2VzLiBWZXJzaW9uZWQgaW1wbGVtZW50YXRpb25zIGxpdmUgdW5kZXIgY29tcG9uZW50LXNwZWNpZmljIHJlYWxtIHBhdGhzIChmb3IgZXhhbXBsZSwgYGduby5sYW5kL3IvZ25vc3dhcC9wb29sL3YxYCksIHdoaWxlIHRoZSBzdGFibGUgcmVhbG0gcmVzb2x2ZXMgY2FsbHMgdGhyb3VnaCB0aGUgY3VycmVudCByb2xlIGFkZHJlc3MuCgojIyMgVXBncmFkZSBQcm9jZXNzCgoxLiAqKkRlcGxveSBhIG5ldyBjb21wb25lbnQgdmVyc2lvbioqIHVuZGVyIGl0cyB2ZXJzaW9uZWQgcmVhbG0gcGF0aC4KMi4gKipVcGRhdGUgdGhlIHJlbGV2YW50IHJvbGUgYWRkcmVzcyoqIHRvIHBvaW50IHRvIHRoZSBuZXcgaW1wbGVtZW50YXRpb24uCjMuICoqVmVyaWZ5IGRpc3RyaWJ1dGlvbiBhbmQgY2FsbCBmbG93cyoqIHVzZSB0aGUgbmV3IHJvbGUgYWRkcmVzcy4KCiMjIyBWZXJzaW9uZWQgQ29tcG9uZW50cwoKVGhpcyBjaGVja291dCBjb250YWlucyB2ZXJzaW9uZWQgaW1wbGVtZW50YXRpb25zIGZvcjoKCi0gYHBvb2xgCi0gYHBvc2l0aW9uYAotIGByb3V0ZXJgCi0gYHN0YWtlcmAKLSBgZ292L2dvdmVybmFuY2VgCi0gYGdvdi9zdGFrZXJgCi0gYGxhdW5jaHBhZGAKLSBgcHJvdG9jb2xfZmVlYAoKVGhlIGBjb21tdW5pdHlfcG9vbGAgcm9sZSBpcyBhIGRpc3RyaWJ1dGlvbiBhbmQgdHJlYXN1cnkgZGVzdGluYXRpb24sIG5vdCBhIHZlcnNpb25lZCBjb21wb25lbnQuIFVwZGF0aW5nIHRoYXQgcm9sZSByZWRpcmVjdHMgZGlzdHJpYnV0aW9ucyB0byB0aGUgc2VsZWN0ZWQgYWRkcmVzcy4KCiMjIyBFeGFtcGxlOiBHTlMgRGlzdHJpYnV0aW9uIFVwZ3JhZGUKCmBgYGdvCmZ1bmMgY2hhbmdlRGlzdHJpYnV0aW9uVGFyZ2V0KGN1ciByZWFsbSkgewogICAgLy8gVXBkYXRlIHJvbGUgYWRkcmVzc2VzIHRocm91Z2ggdGhlIFJCQUMgcmVhbG0uCiAgICByYmFjLlVwZGF0ZVJvbGVBZGRyZXNzKGNyb3NzKGN1ciksICJzdGFrZXIiLCBuZXdTdGFrZXJBZGRyKQogICAgcmJhYy5VcGRhdGVSb2xlQWRkcmVzcyhjcm9zcyhjdXIpLCAiZ292X3N0YWtlciIsIG5ld0dvdlN0YWtlckFkZHIpCiAgICByYmFjLlVwZGF0ZVJvbGVBZGRyZXNzKGNyb3NzKGN1ciksICJkZXZvcHMiLCBuZXdEZXZPcHNBZGRyKQogICAgLy8gY29tbXVuaXR5X3Bvb2wgaXMgYSBkaXN0cmlidXRpb24gdGFyZ2V0LCBub3QgYSB2ZXJzaW9uZWQgaW1wbGVtZW50YXRpb24uCiAgICByYmFjLlVwZGF0ZVJvbGVBZGRyZXNzKGNyb3NzKGN1ciksICJjb21tdW5pdHlfcG9vbCIsIG5ld0NvbW11bml0eVBvb2xBZGRyKQp9CmBgYAoKIyMjIFRlc3QgRXhhbXBsZQoKVGhlIHVwZ3JhZGUgbWVjaGFuaXNtIGlzIGRlbW9uc3RyYXRlZCBpbiB0aGUgW3VwZ3JhZGUgc2NlbmFyaW8gdGVzdF0oLi4vLi4vLi4vc2NlbmFyaW8vdXBncmFkZS9jaGFuZ2VfZ25zX2Rpc3RyaWJ1dGlvbl90YXJnZXRfZmlsZXRlc3QuZ25vKS4KCmBgYGdvCi8vIFRoZSBzY2VuYXJpbyBpbml0aWFsaXplcyBkaXN0cmlidXRpb24gdGFyZ2V0cywgdXBkYXRlcyByb2xlIGFkZHJlc3NlcywKLy8gYW5kIHZlcmlmaWVzIHRoYXQgc3Vic2VxdWVudCBHTlMgZGlzdHJpYnV0aW9ucyB1c2UgdGhlIG5ldyBhZGRyZXNzZXMuCmZ1bmMgY2hhbmdlRGlzdHJpYnV0aW9uVGFyZ2V0KGN1ciByZWFsbSkgewogICAgcmJhYy5VcGRhdGVSb2xlQWRkcmVzcyhjcm9zcyhjdXIpLCAic3Rha2VyIiwgbmV3U3Rha2VyQWRkcikKICAgIHJiYWMuVXBkYXRlUm9sZUFkZHJlc3MoY3Jvc3MoY3VyKSwgImdvdl9zdGFrZXIiLCBuZXdHb3ZTdGFrZXJBZGRyKQogICAgcmJhYy5VcGRhdGVSb2xlQWRkcmVzcyhjcm9zcyhjdXIpLCAiZGV2b3BzIiwgbmV3RGV2T3BzQWRkcikKICAgIHJiYWMuVXBkYXRlUm9sZUFkZHJlc3MoY3Jvc3MoY3VyKSwgImNvbW11bml0eV9wb29sIiwgbmV3Q29tbXVuaXR5UG9vbEFkZHIpCn0KYGBgCgojIyBTZWN1cml0eQoKLSBBZG1pbiBvciBnb3Zlcm5hbmNlIGF1dGhvcml6YXRpb24gaXMgcmVxdWlyZWQgZm9yIHJvbGUgbWFuYWdlbWVudAotIE93bmVyc2hpcCB0cmFuc2ZlciBpcyByZXN0cmljdGVkIHRvIHRoZSBjdXJyZW50IG93bmVyIGFuZCBwZW5kaW5nIG93bmVyCi0gUm9sZSB1cGRhdGVzIGFyZSBzeW5jaHJvbml6ZWQgd2l0aCB0aGUgYWNjZXNzIHBhY2thZ2UKLSBSb2xlIHZhbGlkYXRpb24gaXMgcGVyZm9ybWVkIGJlZm9yZSB1cGRhdGVzChrYDgoKYXNzZXJ0LmdubxLJDnBhY2thZ2UgcmJhYwoKaW1wb3J0ICgKCSJzdHJpbmdzIgoKCXVmbXQgImduby5sYW5kL3AvbnQvdWZtdC92MCIKCglwcmJhYyAiZ25vLmxhbmQvcC9nbm9zd2FwL3JiYWMvdjEiCikKCi8vIGFzc2VydElzT3duZXIgcGFuaWNzIGlmIGFkZHJlc3MgaXMgbm90IHRoZSBjdXJyZW50IG93bmVyLgpmdW5jIGFzc2VydElzT3duZXIoYWRkciBhZGRyZXNzKSB7CglpZiBtYW5hZ2VyLk93bmVyKCkgIT0gYWRkciB7CgkJcGFuaWMobWFrZUVycm9yV2l0aERldGFpbHMoCgkJCWVyckNhbGxlcklzTm90T3duZXIsCgkJCXVmbXQuU3ByaW50ZigiY2FsbGVyOiAlcyIsIGFkZHIuU3RyaW5nKCkpLAoJCSkpCgl9Cn0KCi8vIGFzc2VydElzUGVuZGluZ093bmVyIHBhbmljcyBpZiBhZGRyZXNzIGlzIG5vdCB0aGUgcGVuZGluZyBvd25lci4KZnVuYyBhc3NlcnRJc1BlbmRpbmdPd25lcihhZGRyIGFkZHJlc3MpIHsKCWlmIG1hbmFnZXIuUGVuZGluZ093bmVyKCkgIT0gYWRkciB7CgkJcGFuaWMobWFrZUVycm9yV2l0aERldGFpbHMoCgkJCWVyckNhbGxlcklzTm90UGVuZGluZ093bmVyLAoJCQl1Zm10LlNwcmludGYoImNhbGxlcjogJXMiLCBhZGRyLlN0cmluZygpKSwKCQkpKQoJfQp9CgovLyBhc3NlcnRJc0FkbWluIHBhbmljcyBpZiBhZGRyZXNzIGlzIG5vdCBhdXRob3JpemVkIGZvciBhZG1pbiByb2xlLgpmdW5jIGFzc2VydElzQWRtaW4oYWRkciBhZGRyZXNzKSB7CglpZiAhbWFuYWdlci5Jc0F1dGhvcml6ZWQocHJiYWMuUk9MRV9BRE1JTi5TdHJpbmcoKSwgYWRkcikgewoJCXBhbmljKAoJCQltYWtlRXJyb3JXaXRoRGV0YWlscygKCQkJCWVyckNhbGxlcklzTm90QWRtaW4sCgkJCQl1Zm10LlNwcmludGYoImNhbGxlcjogJXMiLCBhZGRyLlN0cmluZygpKSwKCQkJKSwKCQkpCgl9Cn0KCi8vIGFzc2VydElzVmFsaWRSb2xlTmFtZSBwYW5pY3MgaWYgcm9sZU5hbWUgaXMgaW52YWxpZCAoZW1wdHkgb3Igd2hpdGVzcGFjZS1vbmx5KS4KZnVuYyBhc3NlcnRJc1ZhbGlkUm9sZU5hbWUocm9sZU5hbWUgc3RyaW5nKSB7CglpZiBzdHJpbmdzLlRyaW1TcGFjZShyb2xlTmFtZSkgPT0gIiIgewoJCXBhbmljKG1ha2VFcnJvcldpdGhEZXRhaWxzKAoJCQllcnJJbnZhbGlkUm9sZU5hbWUsCgkJCXVmbXQuU3ByaW50Zigicm9sZSBuYW1lOiAlcSIsIHJvbGVOYW1lKSwKCQkpKQoJfQp9CgpmdW5jIGFzc2VydElzVmFsaWRBZGRyZXNzKGFkZHIgYWRkcmVzcykgewoJaWYgIWFkZHIuSXNWYWxpZCgpIHsKCQlwYW5pYyhtYWtlRXJyb3JXaXRoRGV0YWlscygKCQkJZXJySW52YWxpZEFkZHJlc3MsCgkJCXVmbXQuU3ByaW50ZigiYWRkcmVzczogJXMiLCBhZGRyLlN0cmluZygpKSwKCQkpKQoJfQp9CgpmdW5jIGFzc2VydE5vdEFkbWluUm9sZShyb2xlTmFtZSBzdHJpbmcpIHsKCWlmIHN0cmluZ3MuVHJpbVNwYWNlKHJvbGVOYW1lKSA9PSBwcmJhYy5ST0xFX0FETUlOLlN0cmluZygpIHsKCQlwYW5pYyhtYWtlRXJyb3JXaXRoRGV0YWlscygKCQkJZXJyQWRtaW5Sb2xlVXBkYXRlRm9yYmlkZGVuLAoJCQl1Zm10LlNwcmludGYoInJvbGUgbmFtZTogJXMiLCByb2xlTmFtZSksCgkJKSkKCX0KfQoKZnVuYyBhc3NlcnRJc0FkbWluT3JHb3Zlcm5hbmNlKGFkZHIgYWRkcmVzcykgewoJaWYgbWFuYWdlci5Jc0F1dGhvcml6ZWQocHJiYWMuUk9MRV9BRE1JTi5TdHJpbmcoKSwgYWRkcikgfHwgbWFuYWdlci5Jc0F1dGhvcml6ZWQocHJiYWMuUk9MRV9HT1ZFUk5BTkNFLlN0cmluZygpLCBhZGRyKSB7CgkJcmV0dXJuCgl9CgoJcGFuaWMobWFrZUVycm9yV2l0aERldGFpbHMoCgkJZXJyQ2FsbGVySXNOb3RBZG1pbk9yR292ZXJuYW5jZSwKCQl1Zm10LlNwcmludGYoImNhbGxlcjogJXMiLCBhZGRyLlN0cmluZygpKSwKCSkpCn0KGsIKCgpjb25zdHMuZ25vErMKcGFja2FnZSByYmFjCgppbXBvcnQgImNoYWluIgoKLy8gVXNlci1jb250cm9sbGVkIGFkZHJlc3NlcyBmb3IgcHJvdG9jb2wgcm9sZXMuCmNvbnN0ICgKCS8vIEFETUlOIGlzIHRoZSBpbml0aWFsIGFkbWluIGFkZHJlc3MgZm9yIFJCQUMgbWFuYWdlbWVudC4KCUFETUlOIGFkZHJlc3MgPSAiZzFxdnR1d3l4Y3dlemZxdTNmcDU2cHI1a3JnZmpqeXVtZWVlY216ZyIKCgkvLyBERVZfT1BTIGlzIHRoZSBpbml0aWFsIERldk9wcyBhZGRyZXNzIGZvciBvcGVyYXRpb25hbCB0YXNrcy4KCURFVl9PUFMgYWRkcmVzcyA9ICJnMWtnODd3cjA2dG13N3V2bHlrNHlyajNyMnB6bXQyajgzZDQ3bnU3IgopCgovLyBEZXJpdmVkIHBhY2thZ2UgYWRkcmVzc2VzIOKAlCBjb21wdXRlZCBkZXRlcm1pbmlzdGljYWxseSBmcm9tIGRlcGxveW1lbnQgcGF0aHMKLy8gc28gdGhleSBzdGF5IGNvcnJlY3QgaWYgcGFja2FnZXMgYXJlIHJlbmFtZWQgb3IgcmUtZGVwbG95ZWQuCnZhciAoCglFTUlTU0lPTl9BRERSICAgICAgID0gY2hhaW4uUGFja2FnZUFkZHJlc3MoImduby5sYW5kL3IvZ25vc3dhcC9lbWlzc2lvbiIpCglQT09MX0FERFIgICAgICAgICAgID0gY2hhaW4uUGFja2FnZUFkZHJlc3MoImduby5sYW5kL3IvZ25vc3dhcC9wb29sIikKCVBPU0lUSU9OX0FERFIgICAgICAgPSBjaGFpbi5QYWNrYWdlQWRkcmVzcygiZ25vLmxhbmQvci9nbm9zd2FwL3Bvc2l0aW9uIikKCVJPVVRFUl9BRERSICAgICAgICAgPSBjaGFpbi5QYWNrYWdlQWRkcmVzcygiZ25vLmxhbmQvci9nbm9zd2FwL3JvdXRlciIpCglTVEFLRVJfQUREUiAgICAgICAgID0gY2hhaW4uUGFja2FnZUFkZHJlc3MoImduby5sYW5kL3IvZ25vc3dhcC9zdGFrZXIiKQoJUFJPVE9DT0xfRkVFX0FERFIgICA9IGNoYWluLlBhY2thZ2VBZGRyZXNzKCJnbm8ubGFuZC9yL2dub3N3YXAvcHJvdG9jb2xfZmVlIikKCUNPTU1VTklUWV9QT09MX0FERFIgPSBjaGFpbi5QYWNrYWdlQWRkcmVzcygiZ25vLmxhbmQvci9nbm9zd2FwL2NvbW11bml0eV9wb29sL3YxIikKCUdPVl9HT1ZFUk5BTkNFX0FERFIgPSBjaGFpbi5QYWNrYWdlQWRkcmVzcygiZ25vLmxhbmQvci9nbm9zd2FwL2dvdi9nb3Zlcm5hbmNlIikKCUdPVl9TVEFLRVJfQUREUiAgICAgPSBjaGFpbi5QYWNrYWdlQWRkcmVzcygiZ25vLmxhbmQvci9nbm9zd2FwL2dvdi9zdGFrZXIiKQoJR09WX1hHTlNfQUREUiAgICAgICA9IGNoYWluLlBhY2thZ2VBZGRyZXNzKCJnbm8ubGFuZC9yL2dub3N3YXAvZ292L3hnbnMiKQoJTEFVTkNIUEFEX0FERFIgICAgICA9IGNoYWluLlBhY2thZ2VBZGRyZXNzKCJnbm8ubGFuZC9yL2dub3N3YXAvbGF1bmNocGFkIikKKQoatQUKCmVycm9ycy5nbm8SpgVwYWNrYWdlIHJiYWMKCmltcG9ydCAoCgl1Zm10ICJnbm8ubGFuZC9wL250L3VmbXQvdjAiCikKCmNvbnN0ICgKCWVyckNhbGxlcklzTm90T3duZXIgICAgICAgICAgICAgPSAiY2FsbGVyIGlzIG5vdCBvd25lciIKCWVyckNhbGxlcklzTm90QWRtaW4gICAgICAgICAgICAgPSAiY2FsbGVyIGlzIG5vdCBhZG1pbiIKCWVyckNhbGxlcklzTm90QWRtaW5PckdvdmVybmFuY2UgPSAiY2FsbGVyIGlzIG5vdCBhZG1pbiBvciBnb3Zlcm5hbmNlIgoJZXJyQ2FsbGVySXNOb3RQZW5kaW5nT3duZXIgICAgICA9ICJjYWxsZXIgaXMgbm90IHBlbmRpbmcgb3duZXIiCgllcnJJbnZhbGlkQWRkcmVzcyAgICAgICAgICAgICAgID0gImludmFsaWQgYWRkcmVzcyIKCWVyckludmFsaWRSb2xlTmFtZSAgICAgICAgICAgICAgPSAiaW52YWxpZCByb2xlIG5hbWUiCgllcnJBZG1pblJvbGVVcGRhdGVGb3JiaWRkZW4gICAgID0gImFkbWluIHJvbGUgaXMgbWFuYWdlZCBieSBvd25lciIKKQoKLy8gbWFrZUVycm9yV2l0aERldGFpbHMgY29tYmluZXMgYW4gZXJyb3Igd2l0aCBhZGRpdGlvbmFsIGRldGFpbHMuCmZ1bmMgbWFrZUVycm9yV2l0aERldGFpbHMobWVzc2FnZSBzdHJpbmcsIGRldGFpbHMgc3RyaW5nKSBlcnJvciB7CglyZXR1cm4gdWZtdC5FcnJvcmYoIiVzIHx8ICVzIiwgbWVzc2FnZSwgZGV0YWlscykKfQoaQQoLZ25vbW9kLnRvbWwSMm1vZHVsZSA9ICJnbm8ubGFuZC9yL2dub3N3YXAvcmJhYy92MSIKZ25vID0gIjAuOSIKGsATCg1vd25lcnNoaXAuZ25vEq4TcGFja2FnZSByYmFjCgppbXBvcnQgKAoJdWZtdCAiZ25vLmxhbmQvcC9udC91Zm10L3YwIgoKCXByYmFjICJnbm8ubGFuZC9wL2dub3N3YXAvcmJhYy92MSIKCSJnbm8ubGFuZC9yL2dub3N3YXAvYWNjZXNzL3YxIgopCgovLyBJc093bmVyIHJlcG9ydHMgd2hldGhlciBhZGRyIGlzIHRoZSBjdXJyZW50IG93bmVyIGFkZHJlc3MuCi8vCi8vIFBhcmFtZXRlcnM6Ci8vICAgLSBhZGRyOiBhZGRyZXNzIHRvIGNvbXBhcmUgd2l0aCB0aGUgY29uZmlndXJlZCBvd25lcgovLwovLyBSZXR1cm5zOgovLyAgIC0gb3duZXI6IHRydWUgd2hlbiBhZGRyIGVxdWFscyB0aGUgY3VycmVudCBvd25lcjsgZmFsc2Ugb3RoZXJ3aXNlCmZ1bmMgSXNPd25lcihhZGRyIGFkZHJlc3MpIGJvb2wgewoJcmV0dXJuIG1hbmFnZXIuT3duZXIoKSA9PSBhZGRyCn0KCi8vIElzUGVuZGluZ093bmVyIHJlcG9ydHMgd2hldGhlciBhZGRyIGlzIHRoZSBhZGRyZXNzIGF3YWl0aW5nIG93bmVyc2hpcCBhY2NlcHRhbmNlLgovLwovLyBQYXJhbWV0ZXJzOgovLyAgIC0gYWRkcjogYWRkcmVzcyB0byBjb21wYXJlIHdpdGggdGhlIGNvbmZpZ3VyZWQgcGVuZGluZyBvd25lcgovLwovLyBSZXR1cm5zOgovLyAgIC0gcGVuZGluZzogdHJ1ZSB3aGVuIGFkZHIgZXF1YWxzIHRoZSBwZW5kaW5nIG93bmVyOyBmYWxzZSBvdGhlcndpc2UKZnVuYyBJc1BlbmRpbmdPd25lcihhZGRyIGFkZHJlc3MpIGJvb2wgewoJcmV0dXJuIG1hbmFnZXIuUGVuZGluZ093bmVyKCkgPT0gYWRkcgp9CgovLyBHZXRPd25lciByZXR1cm5zIHRoZSBjdXJyZW50bHkgY29uZmlndXJlZCBvd25lciBhZGRyZXNzLgovLwovLyBSZXR1cm5zOgovLyAgIC0gb3duZXI6IGN1cnJlbnQgb3duZXIgYWRkcmVzcwpmdW5jIEdldE93bmVyKCkgYWRkcmVzcyB7CglyZXR1cm4gbWFuYWdlci5Pd25lcigpCn0KCi8vIEdldFBlbmRpbmdPd25lciByZXR1cm5zIHRoZSBhZGRyZXNzIGF3YWl0aW5nIG93bmVyc2hpcCBhY2NlcHRhbmNlLgovLwovLyBSZXR1cm5zOgovLyAgIC0gcGVuZGluZ093bmVyOiBwZW5kaW5nIG93bmVyIGFkZHJlc3MsIG9yIHRoZSB6ZXJvIGFkZHJlc3Mgd2hlbiBubyB0cmFuc2ZlciBpcyBwZW5kaW5nCmZ1bmMgR2V0UGVuZGluZ093bmVyKCkgYWRkcmVzcyB7CglyZXR1cm4gbWFuYWdlci5QZW5kaW5nT3duZXIoKQp9CgovLyBBY2NlcHRPd25lcnNoaXAgY29tcGxldGVzIGEgcGVuZGluZyBvd25lcnNoaXAgdHJhbnNmZXIgYW5kIHN5bmNocm9uaXplcyB0aGUKLy8gYWRtaW4gcm9sZSB3aXRoIHRoZSBuZXcgb3duZXIuCi8vCi8vIFBhcmFtZXRlcnM6Ci8vICAgLSBjdXI6IGN1cnJlbnQgcmVhbG0gY29udGV4dDsgY2FsbGVycyB1c2UgY3Jvc3MoY3VyKSB3aGVuIGNyb3NzaW5nIGludG8gdGhpcyByZWFsbQovLwovLyBPbmx5IGNhbGxhYmxlIGJ5IHRoZSBwZW5kaW5nIG93bmVyLgpmdW5jIEFjY2VwdE93bmVyc2hpcChjdXIgcmVhbG0pIHsKCWNhbGxlciA6PSBjdXIuUHJldmlvdXMoKS5BZGRyZXNzKCkKCWFzc2VydElzUGVuZGluZ093bmVyKGNhbGxlcikKCgllcnIgOj0gbWFuYWdlci5BY2NlcHRPd25lcnNoaXBCeShjYWxsZXIpCglpZiBlcnIgIT0gbmlsIHsKCQlwYW5pYyhlcnIpCgl9CgoJbmV3T3duZXIgOj0gbWFuYWdlci5Pd25lcigpCgllcnIgPSBtYW5hZ2VyLlVwZGF0ZVJvbGVBZGRyZXNzKHByYmFjLlJPTEVfQURNSU4uU3RyaW5nKCksIG5ld093bmVyKQoJaWYgZXJyICE9IG5pbCB7CgkJcGFuaWMobWFrZUVycm9yV2l0aERldGFpbHMoCgkJCWVyci5FcnJvcigpLAoJCQl1Zm10LlNwcmludGYoCgkJCQkicm9sZSBuYW1lOiAlcywgYWRkcmVzczogJXMiLAoJCQkJcHJiYWMuUk9MRV9BRE1JTi5TdHJpbmcoKSwgbmV3T3duZXIuU3RyaW5nKCkpLAoJCSkpCgl9CglhY2Nlc3MuU2V0Um9sZUFkZHJlc3MoY3Jvc3MoY3VyKSwgcHJiYWMuUk9MRV9BRE1JTi5TdHJpbmcoKSwgbmV3T3duZXIpCn0KCi8vIFRyYW5zZmVyT3duZXJzaGlwIHN0YXJ0cyBhIHR3by1zdGVwIG93bmVyc2hpcCB0cmFuc2ZlciB0byBhZGRyLgovLwovLyBQYXJhbWV0ZXJzOgovLyAgIC0gY3VyOiBjdXJyZW50IHJlYWxtIGNvbnRleHQ7IGNhbGxlcnMgdXNlIGNyb3NzKGN1cikgd2hlbiBjcm9zc2luZyBpbnRvIHRoaXMgcmVhbG0KLy8gICAtIGFkZHI6IHZhbGlkIGFkZHJlc3MgdGhhdCB3aWxsIGJlY29tZSBwZW5kaW5nIG93bmVyIGFuZCBtYXkgbGF0ZXIgYWNjZXB0IG93bmVyc2hpcAovLwovLyBPbmx5IGNhbGxhYmxlIGJ5IHRoZSBjdXJyZW50IG93bmVyLgpmdW5jIFRyYW5zZmVyT3duZXJzaGlwKGN1ciByZWFsbSwgYWRkciBhZGRyZXNzKSB7CgljYWxsZXIgOj0gY3VyLlByZXZpb3VzKCkuQWRkcmVzcygpCglhc3NlcnRJc093bmVyKGNhbGxlcikKCWFzc2VydElzVmFsaWRBZGRyZXNzKGFkZHIpCgoJZXJyIDo9IG1hbmFnZXIuVHJhbnNmZXJPd25lcnNoaXBCeShhZGRyLCBjYWxsZXIpCglpZiBlcnIgIT0gbmlsIHsKCQlwYW5pYyhlcnIpCgl9Cn0KGqwhCghyYmFjLmdubxKfIXBhY2thZ2UgcmJhYwoKaW1wb3J0ICgKCSJjaGFpbiIKCgkiZ25vLmxhbmQvci9nbm9zd2FwL2FjY2Vzcy92MSIKCglwcmJhYyAiZ25vLmxhbmQvcC9nbm9zd2FwL3JiYWMvdjEiCgl1Zm10ICJnbm8ubGFuZC9wL250L3VmbXQvdjAiCikKCnZhciBtYW5hZ2VyICpwcmJhYy5SQkFDCgpmdW5jIGluaXQoY3VyIHJlYWxtKSB7Cglpbml0UmJhYyhjdXIpCn0KCi8vIGluaXRSYmFjIGluaXRpYWxpemVzIFJCQUMgbWFuYWdlciB3aXRoIGRlZmF1bHQgYWRtaW4gYW5kIHJvbGUgbWFwcGluZ3MuCmZ1bmMgaW5pdFJiYWMoY3VyIHJlYWxtKSB7CgltYW5hZ2VyID0gcHJiYWMuTmV3UkJBQ1dpdGhBZGRyZXNzKEFETUlOKQoKCS8vIFByZXBhcmUgaW5pdGlhbCByb2xlcyBmb3Igb25lLXRpbWUgaW5pdGlhbGl6YXRpb24KCWZvciByb2xlLCBhZGRyIDo9IHJhbmdlIF9kZWZhdWx0Um9sZUFkZHJlc3NlcyB7CgkJcm9sZU5hbWUgOj0gcm9sZS5TdHJpbmcoKQoJCWVyciA6PSBtYW5hZ2VyLlJlZ2lzdGVyUm9sZShyb2xlTmFtZSwgYWRkcikKCQlpZiBlcnIgIT0gbmlsIHsKCQkJcGFuaWMobWFrZUVycm9yV2l0aERldGFpbHMoCgkJCQllcnIuRXJyb3IoKSwKCQkJCXVmbXQuU3ByaW50Zigicm9sZSBuYW1lOiAlcywgYWRkcmVzczogJXMiLCByb2xlTmFtZSwgYWRkci5TdHJpbmcoKSksCgkJCSkpCgkJfQoKCQkvLyBVcGRhdGUgYWNjZXNzIHBhY2thZ2Ugd2l0aCB0aGUgcm9sZSBhZGRyZXNzCgkJYWNjZXNzLlNldFJvbGVBZGRyZXNzKGNyb3NzKGN1ciksIHJvbGVOYW1lLCBhZGRyKQoJfQp9CgovLyBSZWdpc3RlclJvbGUgcmVnaXN0ZXJzIGEgbmV3IHJvbGUgaW4gdGhlIFJCQUMgc3lzdGVtLgovLwovLyBQYXJhbWV0ZXJzOgovLyAgIC0gY3VyOiBDdXJyZW50IHJlYWxtIGNvbnRleHQ7IGNhbGxlcnMgdXNlIGNyb3NzKGN1cikgd2hlbiBjcm9zc2luZyBpbnRvIHRoaXMgcmVhbG0uCi8vICAgLSByb2xlTmFtZTogbm9uZW1wdHkgcm9sZSBuYW1lIHRvIHJlZ2lzdGVyIGluIHRoZSBSQkFDIG1hbmFnZXIuCi8vICAgLSByb2xlQWRkcmVzczogYWRkcmVzcyBhc3NpZ25lZCB0byB0aGUgbmV3IHJvbGUgYW5kIG1pcnJvcmVkIGluIGFjY2VzcyBjb250cm9sLgovLwovLyBPbmx5IGNhbGxhYmxlIGJ5IGFkbWluIG9yIGdvdmVybmFuY2UuCmZ1bmMgUmVnaXN0ZXJSb2xlKGN1ciByZWFsbSwgcm9sZU5hbWUgc3RyaW5nLCByb2xlQWRkcmVzcyBhZGRyZXNzKSB7CglwcmV2IDo9IGN1ci5QcmV2aW91cygpCgljYWxsZXIgOj0gcHJldi5BZGRyZXNzKCkKCWFzc2VydElzQWRtaW5PckdvdmVybmFuY2UoY2FsbGVyKQoJYXNzZXJ0SXNWYWxpZFJvbGVOYW1lKHJvbGVOYW1lKQoJYXNzZXJ0SXNWYWxpZEFkZHJlc3Mocm9sZUFkZHJlc3MpCgoJZXJyIDo9IG1hbmFnZXIuUmVnaXN0ZXJSb2xlKHJvbGVOYW1lLCByb2xlQWRkcmVzcykKCWlmIGVyciAhPSBuaWwgewoJCWlmIGVyci5FcnJvcigpID09ICJyb2xlIGFscmVhZHkgZXhpc3RzIiB7CgkJCXBhbmljKHVmbXQuU3ByaW50Zigicm9sZSAlcyBhbHJlYWR5IGV4aXN0cyIsIHJvbGVOYW1lKSkKCQl9CgkJcGFuaWMobWFrZUVycm9yV2l0aERldGFpbHMoCgkJCWVyckludmFsaWRSb2xlTmFtZSwKCQkJdWZtdC5TcHJpbnRmKCJyb2xlIG5hbWU6ICVzIiwgcm9sZU5hbWUpLAoJCSkpCgl9CgoJLy8gU2V0IHRoZSByb2xlIGluIGFjY2VzcyBjb250cm9sCglhY2Nlc3MuU2V0Um9sZUFkZHJlc3MoY3Jvc3MoY3VyKSwgcm9sZU5hbWUsIHJvbGVBZGRyZXNzKQoJY2hhaW4uRW1pdCgKCQkiUmVnaXN0ZXJSb2xlIiwKCQkicHJldkFkZHIiLCBjYWxsZXIuU3RyaW5nKCksCgkJInByZXZSZWFsbSIsIHByZXYuUGtnUGF0aCgpLAoJCSJyb2xlTmFtZSIsIHJvbGVOYW1lLAoJCSJyb2xlQWRkcmVzcyIsIHJvbGVBZGRyZXNzLlN0cmluZygpLAoJKQp9CgovLyBVcGRhdGVSb2xlQWRkcmVzcyB1cGRhdGVzIHRoZSBhZGRyZXNzIGFzc2lnbmVkIHRvIGEgcm9sZS4KLy8KLy8gUGFyYW1ldGVyczoKLy8gICAtIGN1cjogQ3VycmVudCByZWFsbSBjb250ZXh0OyBjYWxsZXJzIHVzZSBjcm9zcyhjdXIpIHdoZW4gY3Jvc3NpbmcgaW50byB0aGlzIHJlYWxtLgovLyAgIC0gcm9sZU5hbWU6IGV4aXN0aW5nIG5vbi1hZG1pbiByb2xlIG5hbWUgd2hvc2UgYWRkcmVzcyBpcyBjaGFuZ2VkLgovLyAgIC0gYWRkcjogdmFsaWQgcmVwbGFjZW1lbnQgYWRkcmVzcyBhc3NpZ25lZCB0byB0aGUgcm9sZSBhbmQgYWNjZXNzLWNvbnRyb2wgbWFwcGluZy4KLy8KLy8gT25seSBjYWxsYWJsZSBieSBhZG1pbiBvciBnb3Zlcm5hbmNlLgpmdW5jIFVwZGF0ZVJvbGVBZGRyZXNzKGN1ciByZWFsbSwgcm9sZU5hbWUgc3RyaW5nLCBhZGRyIGFkZHJlc3MpIHsKCXByZXYgOj0gY3VyLlByZXZpb3VzKCkKCWNhbGxlciA6PSBwcmV2LkFkZHJlc3MoKQoJYXNzZXJ0SXNBZG1pbk9yR292ZXJuYW5jZShjYWxsZXIpCgoJYXNzZXJ0SXNWYWxpZFJvbGVOYW1lKHJvbGVOYW1lKQoJYXNzZXJ0SXNWYWxpZEFkZHJlc3MoYWRkcikKCWFzc2VydE5vdEFkbWluUm9sZShyb2xlTmFtZSkKCgllcnIgOj0gbWFuYWdlci5VcGRhdGVSb2xlQWRkcmVzcyhyb2xlTmFtZSwgYWRkcikKCWlmIGVyciAhPSBuaWwgewoJCXBhbmljKG1ha2VFcnJvcldpdGhEZXRhaWxzKAoJCQllcnIuRXJyb3IoKSwKCQkJdWZtdC5TcHJpbnRmKCJyb2xlIG5hbWU6ICVzLCBhZGRyZXNzOiAlcyIsIHJvbGVOYW1lLCBhZGRyLlN0cmluZygpKSwKCQkpKQoJfQoKCS8vIFNldCB0aGUgcm9sZSBhZGRyZXNzIGluIGFjY2VzcyBjb250cm9sCglhY2Nlc3MuU2V0Um9sZUFkZHJlc3MoY3Jvc3MoY3VyKSwgcm9sZU5hbWUsIGFkZHIpCgoJY2hhaW4uRW1pdCgKCQkiVXBkYXRlUm9sZUFkZHJlc3MiLAoJCSJwcmV2QWRkciIsIGNhbGxlci5TdHJpbmcoKSwKCQkicHJldlJlYWxtIiwgcHJldi5Qa2dQYXRoKCksCgkJInJvbGVOYW1lIiwgcm9sZU5hbWUsCgkJInJvbGVBZGRyZXNzIiwgYWRkci5TdHJpbmcoKSwKCSkKfQoKLy8gUmVtb3ZlUm9sZSByZW1vdmVzIGEgcm9sZSBmcm9tIHRoZSBSQkFDIHN5c3RlbS4KLy8KLy8gUGFyYW1ldGVyczoKLy8gICAtIGN1cjogQ3VycmVudCByZWFsbSBjb250ZXh0OyBjYWxsZXJzIHVzZSBjcm9zcyhjdXIpIHdoZW4gY3Jvc3NpbmcgaW50byB0aGlzIHJlYWxtLgovLyAgIC0gcm9sZU5hbWU6IGV4aXN0aW5nIG5vbi1hZG1pbiByb2xlIG5hbWUgdG8gcmVtb3ZlIGZyb20gUkJBQyBhbmQgYWNjZXNzIGNvbnRyb2wuCi8vCi8vIE9ubHkgY2FsbGFibGUgYnkgYWRtaW4gb3IgZ292ZXJuYW5jZS4KZnVuYyBSZW1vdmVSb2xlKGN1ciByZWFsbSwgcm9sZU5hbWUgc3RyaW5nKSB7CglwcmV2IDo9IGN1ci5QcmV2aW91cygpCgljYWxsZXIgOj0gcHJldi5BZGRyZXNzKCkKCWFzc2VydElzQWRtaW5PckdvdmVybmFuY2UoY2FsbGVyKQoJYXNzZXJ0SXNWYWxpZFJvbGVOYW1lKHJvbGVOYW1lKQoJYXNzZXJ0Tm90QWRtaW5Sb2xlKHJvbGVOYW1lKQoKCWVyciA6PSBtYW5hZ2VyLlJlbW92ZVJvbGUocm9sZU5hbWUpCglpZiBlcnIgIT0gbmlsIHsKCQlwYW5pYyhtYWtlRXJyb3JXaXRoRGV0YWlscygKCQkJZXJyLkVycm9yKCksCgkJCXVmbXQuU3ByaW50Zigicm9sZSBuYW1lOiAlcyIsIHJvbGVOYW1lKSwKCQkpKQoJfQoKCS8vIFJlbW92ZSB0aGUgcm9sZSBmcm9tIGFjY2VzcyBjb250cm9sCglhY2Nlc3MuUmVtb3ZlUm9sZShjcm9zcyhjdXIpLCByb2xlTmFtZSkKCWNoYWluLkVtaXQoCgkJIlJlbW92ZVJvbGUiLAoJCSJwcmV2QWRkciIsIGNhbGxlci5TdHJpbmcoKSwKCQkicHJldlJlYWxtIiwgcHJldi5Qa2dQYXRoKCksCgkJInJvbGVOYW1lIiwgcm9sZU5hbWUsCgkJInJvbGVBZGRyZXNzIiwgIiIsCgkpCn0KCi8vIEdldFJvbGVBZGRyZXNzIHJldHVybnMgdGhlIGFkZHJlc3MgYXNzaWduZWQgdG8gcm9sZU5hbWUuCi8vCi8vIFBhcmFtZXRlcnM6Ci8vICAgLSByb2xlTmFtZTogZXhhY3Qgcm9sZSBuYW1lIHRvIGxvb2sgdXAgaW4gdGhlIFJCQUMgbWFuYWdlci4KLy8KLy8gUmV0dXJuczoKLy8gICAtIHJvbGVBZGRyZXNzOiBhZGRyZXNzIGFzc2lnbmVkIHRvIHJvbGVOYW1lLCBvciB0aGUgZW1wdHkgYWRkcmVzcyB3aGVuIGFic2VudC4KLy8gICAtIGVycm9yOiBuaWwgd2hlbiByb2xlTmFtZSBleGlzdHM7IG90aGVyd2lzZSB0aGUgbWFuYWdlcidzIHJvbGUtbm90LWZvdW5kIGVycm9yLgpmdW5jIEdldFJvbGVBZGRyZXNzKHJvbGVOYW1lIHN0cmluZykgKGFkZHJlc3MsIGVycm9yKSB7CglyZXR1cm4gbWFuYWdlci5HZXRSb2xlQWRkcmVzcyhyb2xlTmFtZSkKfQoa2AsKCnJlbmRlci5nbm8SyQtwYWNrYWdlIHJiYWMKCmltcG9ydCAoCglwcmJhYyAiZ25vLmxhbmQvcC9nbm9zd2FwL3JiYWMvdjEiCgkiZ25vLmxhbmQvcC9tb3VsL21kL3YwIgoJImduby5sYW5kL3AvbW91bC9tZHRhYmxlL3YwIgopCgovLyBSZW5kZXIgcmV0dXJucyBvd25lcnNoaXAgYW5kIGFzc2lnbm1lbnRzIGZvciB0aGUgcHJvdG9jb2wncyBmaXhlZCBzeXN0ZW0gcm9sZXMuCmZ1bmMgUmVuZGVyKHBhdGggc3RyaW5nKSBzdHJpbmcgewoJaWYgcGF0aCAhPSAiIiB7CgkJcmV0dXJuICI0MDRcbiIKCX0KCglyb2xlcyA6PSBbXXByYmFjLlN5c3RlbVJvbGV7CgkJcHJiYWMuUk9MRV9BRE1JTiwgcHJiYWMuUk9MRV9ERVZPUFMsIHByYmFjLlJPTEVfQ09NTVVOSVRZX1BPT0wsCgkJcHJiYWMuUk9MRV9HT1ZFUk5BTkNFLCBwcmJhYy5ST0xFX0dPVl9TVEFLRVIsIHByYmFjLlJPTEVfWEdOUywKCQlwcmJhYy5ST0xFX1BPT0wsIHByYmFjLlJPTEVfUE9TSVRJT04sIHByYmFjLlJPTEVfUk9VVEVSLAoJCXByYmFjLlJPTEVfU1RBS0VSLCBwcmJhYy5ST0xFX0VNSVNTSU9OLCBwcmJhYy5ST0xFX0xBVU5DSFBBRCwKCQlwcmJhYy5ST0xFX1BST1RPQ09MX0ZFRSwKCX0KCglvd25lcnNoaXBUYWJsZSA6PSBtZHRhYmxlLlRhYmxlewoJCUhlYWRlcnM6IFtdc3RyaW5neyJGaWVsZCIsICJBZGRyZXNzIn0sCgkJUm93czogW11bXXN0cmluZ3sKCQkJeyJPd25lciIsIHJlbmRlck93bmVyc2hpcEFkZHJlc3MoR2V0T3duZXIoKSl9LAoJCQl7IlBlbmRpbmcgb3duZXIiLCByZW5kZXJPd25lcnNoaXBBZGRyZXNzKEdldFBlbmRpbmdPd25lcigpKX0sCgkJfSwKCX0KCW91dCA6PSBtZC5IMSgiR25vc3dhcCBSQkFDIikgKwoJCSJcbiIgKwoJCW1kLkgyKCJPd25lcnNoaXAiKSArCgkJIlxuIiArCgkJb3duZXJzaGlwVGFibGUuU3RyaW5nKCkgKwoJCSJcbiIgKwoJCW1kLkgyKCJTeXN0ZW0gcm9sZXMiKQoKCXJvbGVUYWJsZSA6PSBtZHRhYmxlLlRhYmxlewoJCUhlYWRlcnM6IFtdc3RyaW5neyJSb2xlIiwgIkFkZHJlc3MifSwKCX0KCWZvciBfLCByb2xlIDo9IHJhbmdlIHJvbGVzIHsKCQlyb2xlVGFibGUuQXBwZW5kKFtdc3RyaW5ne3JvbGUuU3RyaW5nKCksIHJlbmRlclJvbGVBZGRyZXNzKHJvbGUpfSkKCX0KCXJldHVybiBvdXQgKyAiXG4iICsgcm9sZVRhYmxlLlN0cmluZygpCn0KCmZ1bmMgcmVuZGVyT3duZXJzaGlwQWRkcmVzcyhhZGRyIGFkZHJlc3MpIHN0cmluZyB7CglpZiBhZGRyID09IGFkZHJlc3MoIiIpIHsKCQlyZXR1cm4gIk5vbmUiCgl9CglyZXR1cm4gYWRkci5TdHJpbmcoKQp9CgpmdW5jIHJlbmRlclJvbGVBZGRyZXNzKHJvbGUgcHJiYWMuU3lzdGVtUm9sZSkgc3RyaW5nIHsKCWFkZHIsIGVyciA6PSBHZXRSb2xlQWRkcmVzcyhyb2xlLlN0cmluZygpKQoJaWYgZXJyICE9IG5pbCB8fCBhZGRyID09IGFkZHJlc3MoIiIpIHsKCQlyZXR1cm4gIlVuYXNzaWduZWQiCgl9CglyZXR1cm4gbWQuSW5saW5lQ29kZShhZGRyLlN0cmluZygpKQp9ChrkBgoIcm9sZS5nbm8S1wZwYWNrYWdlIHJiYWMKCmltcG9ydCBwcmJhYyAiZ25vLmxhbmQvcC9nbm9zd2FwL3JiYWMvdjEiCgovLyBNVVNUIEJFIElNTVVUQUJMRSwgRE8gTk9UIE1PRElGWS4KLy8gX2RlZmF1bHRSb2xlQWRkcmVzc2VzIG1hcHMgc3lzdGVtIHJvbGVzIHRvIHRoZWlyIGRlZmF1bHQgYWRkcmVzc2VzLgovLyBVc2VkIGR1cmluZyBSQkFDIGluaXRpYWxpemF0aW9uIHRvIHNldCB1cCB0aGUgcHJvdG9jb2wgcm9sZSBzdHJ1Y3R1cmUuCnZhciBfZGVmYXVsdFJvbGVBZGRyZXNzZXMgPSBtYXBbcHJiYWMuU3lzdGVtUm9sZV1hZGRyZXNzewoJcHJiYWMuUk9MRV9BRE1JTjogICAgICAgICAgQURNSU4sCglwcmJhYy5ST0xFX0RFVk9QUzogICAgICAgICBERVZfT1BTLAoJcHJiYWMuUk9MRV9DT01NVU5JVFlfUE9PTDogQ09NTVVOSVRZX1BPT0xfQUREUiwKCXByYmFjLlJPTEVfR09WRVJOQU5DRTogICAgIEdPVl9HT1ZFUk5BTkNFX0FERFIsCglwcmJhYy5ST0xFX0dPVl9TVEFLRVI6ICAgICBHT1ZfU1RBS0VSX0FERFIsCglwcmJhYy5ST0xFX1hHTlM6ICAgICAgICAgICBHT1ZfWEdOU19BRERSLAoJcHJiYWMuUk9MRV9QT09MOiAgICAgICAgICAgUE9PTF9BRERSLAoJcHJiYWMuUk9MRV9QT1NJVElPTjogICAgICAgUE9TSVRJT05fQUREUiwKCXByYmFjLlJPTEVfUk9VVEVSOiAgICAgICAgIFJPVVRFUl9BRERSLAoJcHJiYWMuUk9MRV9TVEFLRVI6ICAgICAgICAgU1RBS0VSX0FERFIsCglwcmJhYy5ST0xFX0VNSVNTSU9OOiAgICAgICBFTUlTU0lPTl9BRERSLAoJcHJiYWMuUk9MRV9MQVVOQ0hQQUQ6ICAgICAgTEFVTkNIUEFEX0FERFIsCglwcmJhYy5ST0xFX1BST1RPQ09MX0ZFRTogICBQUk9UT0NPTF9GRUVfQUREUiwKfQoiIgoTL2duby5NZW1QYWNrYWdlVHlwZRILCglNUFVzZXJBbGwSEQjuktQZEgoyNjkwNHVnbm90GqgBCjoKEy90bS5QdWJLZXlTZWNwMjU2azESIwohAwSc1QTD4tI6os8LnebKOB+i6fWXOKGBf9lRpSI1wrrhEkB6wkDFz5SQS4ck5MvmwDIFVvOtPAFpQYW8kIAYo0yOhXYCRWsnJmBg3kpQRoKom1tLZ/4kfzP+NHnVQo40i+HnGihnMXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcWx1dXhl

Raw transaction data

Raw JSON data