{ "name": "InnerTransactions", "structs": {}, "methods": [ { "name": "payment", "args": [], "returns": { "type": "uint64" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "fungible_asset_create", "args": [], "returns": { "type": "uint64" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "non_fungible_asset_create", "args": [], "returns": { "type": "uint64" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "desc": "Following the ARC3 standard, the total supply must be 1 for a non-fungible asset.\nIf you want to create fractional NFTs, `total` * `decimals` point must be 1. ex) total=100, decimals=2, 100 * 0.01 = 1", "events": [], "recommendations": {} }, { "name": "asset_opt_in", "args": [ { "type": "uint64", "name": "asset" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "asset_transfer", "args": [ { "type": "uint64", "name": "asset" }, { "type": "address", "name": "receiver" }, { "type": "uint64", "name": "amount" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "asset_freeze", "args": [ { "type": "address", "name": "acct_to_be_frozen" }, { "type": "uint64", "name": "asset" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "asset_revoke", "args": [ { "type": "uint64", "name": "asset" }, { "type": "address", "name": "account_to_be_revoked" }, { "type": "uint64", "name": "amount" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "asset_config", "args": [ { "type": "uint64", "name": "asset" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "asset_delete", "args": [ { "type": "uint64", "name": "asset" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "multi_inner_txns", "args": [ { "type": "uint64", "name": "app_id" } ], "returns": { "type": "(uint64,string)" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "deploy_app", "args": [], "returns": { "type": "uint64" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "desc": "This method uses the itxn.ApplicationCall to deploy the HelloWorld contract.", "events": [], "recommendations": {} }, { "name": "arc4_deploy_app", "args": [], "returns": { "type": "uint64" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "desc": "This method uses the arc4.arc4_create to deploy the HelloWorld contract.", "events": [], "recommendations": {} }, { "name": "noop_app_call", "args": [ { "type": "uint64", "name": "app_id" } ], "returns": { "type": "(string,string)" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} } ], "arcs": [ 22, 28 ], "networks": {}, "state": { "schema": { "global": { "ints": 0, "bytes": 0 }, "local": { "ints": 0, "bytes": 0 } }, "keys": { "global": {}, "local": {}, "box": {} }, "maps": { "global": {}, "local": {}, "box": {} } }, "bareActions": { "create": [ "NoOp" ], "call": [] }, "sourceInfo": { "approval": { "sourceInfo": [ { "pc": [ 116 ], "errorMessage": "OnCompletion must be NoOp" }, { "pc": [ 226 ], "errorMessage": "OnCompletion must be NoOp && can only call when creating" }, { "pc": [ 603, 700, 734 ], "errorMessage": "application log value is not the result of an ABI return" } ], "pcOffsetMethod": "none" }, "clear": { "sourceInfo": [], "pcOffsetMethod": "none" } }, "source": { "approval": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBhbGdvcHkuYXJjNC5BUkM0Q29udHJhY3QuYXBwcm92YWxfcHJvZ3JhbSgpIC0+IHVpbnQ2NDoKbWFpbjoKICAgIGludGNibG9jayAxIDAgNiAzCiAgICBieXRlY2Jsb2NrIDB4MTUxZjdjNzUgMHgwMmJlY2UxMSAweDAwMDU1NzZmNzI2YzY0IGJhc2U2NChDNEVCUXc9PSkgYmFzZTY0KEN6RWJRUUFZZ0FRQ3ZzNFJOaG9BamdFQUFRQXhHUlF4R0JCRVFnQUlNUmtVTVJnVUVFTTJHZ0ZYQWdDQUIwaGxiR3h2TENCTVVFa1ZGbGNHQWt4UWdBUVZIM3gxVEZDd2dRRkQpCiAgICAvLyBzbWFydF9jb250cmFjdHMvaW5uZXJfdHJhbnNhY3Rpb25zL2NvbnRyYWN0LnB5OjE5CiAgICAvLyBjbGFzcyBJbm5lclRyYW5zYWN0aW9ucyhBUkM0Q29udHJhY3QpOgogICAgdHhuIE51bUFwcEFyZ3MKICAgIGJ6IG1haW5fX19hbGdvcHlfZGVmYXVsdF9jcmVhdGVAMjAKICAgIHR4biBPbkNvbXBsZXRpb24KICAgICEKICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gbXVzdCBiZSBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgYXNzZXJ0CiAgICBwdXNoYnl0ZXNzIDB4MjM5NTAwMjcgMHhlYTc2ODlmMyAweGZlMjY0NzMwIDB4NDM1YjA4MDkgMHg2MjY3ZTZmYiAweGE5Nzk0MzI3IDB4NTIyNTE5ZjkgMHg4NWU4MGRiYSAweDU5NDk1N2MyIDB4NmY5MGVjNTMgMHgzNjMxNzQ1ZCAweDEwYTliMTAyIDB4YzdmY2U0ZDUgLy8gbWV0aG9kICJwYXltZW50KCl1aW50NjQiLCBtZXRob2QgImZ1bmdpYmxlX2Fzc2V0X2NyZWF0ZSgpdWludDY0IiwgbWV0aG9kICJub25fZnVuZ2libGVfYXNzZXRfY3JlYXRlKCl1aW50NjQiLCBtZXRob2QgImFzc2V0X29wdF9pbih1aW50NjQpdm9pZCIsIG1ldGhvZCAiYXNzZXRfdHJhbnNmZXIodWludDY0LGFkZHJlc3MsdWludDY0KXZvaWQiLCBtZXRob2QgImFzc2V0X2ZyZWV6ZShhZGRyZXNzLHVpbnQ2NCl2b2lkIiwgbWV0aG9kICJhc3NldF9yZXZva2UodWludDY0LGFkZHJlc3MsdWludDY0KXZvaWQiLCBtZXRob2QgImFzc2V0X2NvbmZpZyh1aW50NjQpdm9pZCIsIG1ldGhvZCAiYXNzZXRfZGVsZXRlKHVpbnQ2NCl2b2lkIiwgbWV0aG9kICJtdWx0aV9pbm5lcl90eG5zKHVpbnQ2NCkodWludDY0LHN0cmluZykiLCBtZXRob2QgImRlcGxveV9hcHAoKXVpbnQ2NCIsIG1ldGhvZCAiYXJjNF9kZXBsb3lfYXBwKCl1aW50NjQiLCBtZXRob2QgIm5vb3BfYXBwX2NhbGwodWludDY0KShzdHJpbmcsc3RyaW5nKSIKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIG1hdGNoIHBheW1lbnQgZnVuZ2libGVfYXNzZXRfY3JlYXRlIG5vbl9mdW5naWJsZV9hc3NldF9jcmVhdGUgYXNzZXRfb3B0X2luIGFzc2V0X3RyYW5zZmVyIGFzc2V0X2ZyZWV6ZSBhc3NldF9yZXZva2UgYXNzZXRfY29uZmlnIGFzc2V0X2RlbGV0ZSBtdWx0aV9pbm5lcl90eG5zIGRlcGxveV9hcHAgYXJjNF9kZXBsb3lfYXBwIG5vb3BfYXBwX2NhbGwKICAgIGVycgoKbWFpbl9fX2FsZ29weV9kZWZhdWx0X2NyZWF0ZUAyMDoKICAgIHR4biBPbkNvbXBsZXRpb24KICAgICEKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICAhCiAgICAmJgogICAgcmV0dXJuIC8vIG9uIGVycm9yOiBPbkNvbXBsZXRpb24gbXVzdCBiZSBOb09wICYmIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwoKCi8vIHNtYXJ0X2NvbnRyYWN0cy5pbm5lcl90cmFuc2FjdGlvbnMuY29udHJhY3QuSW5uZXJUcmFuc2FjdGlvbnMucGF5bWVudFtyb3V0aW5nXSgpIC0+IHZvaWQ6CnBheW1lbnQ6CiAgICAvLyBzbWFydF9jb250cmFjdHMvaW5uZXJfdHJhbnNhY3Rpb25zL2NvbnRyYWN0LnB5OjIzCiAgICAvLyByZXN1bHQgPSBpdHhuLlBheW1lbnQoYW1vdW50PTUwMDAsIHJlY2VpdmVyPVR4bi5zZW5kZXIsIGZlZT0wKS5zdWJtaXQoKQogICAgaXR4bl9iZWdpbgogICAgdHhuIFNlbmRlcgogICAgaXR4bl9maWVsZCBSZWNlaXZlcgogICAgcHVzaGludCA1MDAwIC8vIDUwMDAKICAgIGl0eG5fZmllbGQgQW1vdW50CiAgICBpbnRjXzAgLy8gcGF5CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzEgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIGl0eG5fc3VibWl0CiAgICBpdHhuIEFtb3VudAogICAgLy8gc21hcnRfY29udHJhY3RzL2lubmVyX3RyYW5zYWN0aW9ucy9jb250cmFjdC5weToyMC0yMQogICAgLy8gIyBleGFtcGxlOiBQQVlNRU5UCiAgICAvLyBAYWJpbWV0aG9kKCkKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMCAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMuaW5uZXJfdHJhbnNhY3Rpb25zLmNvbnRyYWN0LklubmVyVHJhbnNhY3Rpb25zLmZ1bmdpYmxlX2Fzc2V0X2NyZWF0ZVtyb3V0aW5nXSgpIC0+IHZvaWQ6CmZ1bmdpYmxlX2Fzc2V0X2NyZWF0ZToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9pbm5lcl90cmFuc2FjdGlvbnMvY29udHJhY3QucHk6MzgtNDMKICAgIC8vIGl0eG5fcmVzdWx0ID0gaXR4bi5Bc3NldENvbmZpZygKICAgIC8vICAgICB0b3RhbD0xMDBfMDAwXzAwMF8wMDAsCiAgICAvLyAgICAgZGVjaW1hbHM9MiwKICAgIC8vICAgICB1bml0X25hbWU9IlJQIiwKICAgIC8vICAgICBhc3NldF9uYW1lPSJSb3lhbHR5IFBvaW50cyIsCiAgICAvLyApLnN1Ym1pdCgpCiAgICBpdHhuX2JlZ2luCiAgICAvLyBzbWFydF9jb250cmFjdHMvaW5uZXJfdHJhbnNhY3Rpb25zL2NvbnRyYWN0LnB5OjQyCiAgICAvLyBhc3NldF9uYW1lPSJSb3lhbHR5IFBvaW50cyIsCiAgICBwdXNoYnl0ZXMgIlJveWFsdHkgUG9pbnRzIgogICAgaXR4bl9maWVsZCBDb25maWdBc3NldE5hbWUKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9pbm5lcl90cmFuc2FjdGlvbnMvY29udHJhY3QucHk6NDEKICAgIC8vIHVuaXRfbmFtZT0iUlAiLAogICAgcHVzaGJ5dGVzICJSUCIKICAgIGl0eG5fZmllbGQgQ29uZmlnQXNzZXRVbml0TmFtZQogICAgLy8gc21hcnRfY29udHJhY3RzL2lubmVyX3RyYW5zYWN0aW9ucy9jb250cmFjdC5weTo0MAogICAgLy8gZGVjaW1hbHM9MiwKICAgIHB1c2hpbnQgMiAvLyAyCiAgICBpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0RGVjaW1hbHMKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9pbm5lcl90cmFuc2FjdGlvbnMvY29udHJhY3QucHk6MzkKICAgIC8vIHRvdGFsPTEwMF8wMDBfMDAwXzAwMCwKICAgIHB1c2hpbnQgMTAwMDAwMDAwMDAwIC8vIDEwMDAwMDAwMDAwMAogICAgaXR4bl9maWVsZCBDb25maWdBc3NldFRvdGFsCiAgICAvLyBzbWFydF9jb250cmFjdHMvaW5uZXJfdHJhbnNhY3Rpb25zL2NvbnRyYWN0LnB5OjM4CiAgICAvLyBpdHhuX3Jlc3VsdCA9IGl0eG4uQXNzZXRDb25maWcoCiAgICBpbnRjXzMgLy8gYWNmZwogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18xIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCiAgICAvLyBzbWFydF9jb250cmFjdHMvaW5uZXJfdHJhbnNhY3Rpb25zL2NvbnRyYWN0LnB5OjM4LTQzCiAgICAvLyBpdHhuX3Jlc3VsdCA9IGl0eG4uQXNzZXRDb25maWcoCiAgICAvLyAgICAgdG90YWw9MTAwXzAwMF8wMDBfMDAwLAogICAgLy8gICAgIGRlY2ltYWxzPTIsCiAgICAvLyAgICAgdW5pdF9uYW1lPSJSUCIsCiAgICAvLyAgICAgYXNzZXRfbmFtZT0iUm95YWx0eSBQb2ludHMiLAogICAgLy8gKS5zdWJtaXQoKQogICAgaXR4bl9zdWJtaXQKICAgIGl0eG4gQ3JlYXRlZEFzc2V0SUQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9pbm5lcl90cmFuc2FjdGlvbnMvY29udHJhY3QucHk6MzUtMzYKICAgIC8vICMgZXhhbXBsZTogQVNTRVRfQ1JFQVRFCiAgICAvLyBAYWJpbWV0aG9kCiAgICBpdG9iCiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzAgLy8gMQogICAgcmV0dXJuCgoKLy8gc21hcnRfY29udHJhY3RzLmlubmVyX3RyYW5zYWN0aW9ucy5jb250cmFjdC5Jbm5lclRyYW5zYWN0aW9ucy5ub25fZnVuZ2libGVfYXNzZXRfY3JlYXRlW3JvdXRpbmddKCkgLT4gdm9pZDoKbm9uX2Z1bmdpYmxlX2Fzc2V0X2NyZWF0ZToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9pbm5lcl90cmFuc2FjdGlvbnMvY29udHJhY3QucHk6NTQtNjQKICAgIC8vIGl0eG5fcmVzdWx0ID0gaXR4bi5Bc3NldENvbmZpZygKICAgIC8vICAgICB0b3RhbD0xMDAsCiAgICAvLyAgICAgZGVjaW1hbHM9MiwKICAgIC8vICAgICB1bml0X25hbWU9Ik1MIiwKICAgIC8vICAgICBhc3NldF9uYW1lPSJNb25hIExpc2EiLAogICAgLy8gICAgIHVybD0iaHR0cHM6Ly9saW5rX3RvX2lwZnMvTW9uYV9MaXNhIiwKICAgIC8vICAgICBtYW5hZ2VyPUdsb2JhbC5jdXJyZW50X2FwcGxpY2F0aW9uX2FkZHJlc3MsCiAgICAvLyAgICAgcmVzZXJ2ZT1HbG9iYWwuY3VycmVudF9hcHBsaWNhdGlvbl9hZGRyZXNzLAogICAgLy8gICAgIGZyZWV6ZT1HbG9iYWwuY3VycmVudF9hcHBsaWNhdGlvbl9hZGRyZXNzLAogICAgLy8gICAgIGNsYXdiYWNrPUdsb2JhbC5jdXJyZW50X2FwcGxpY2F0aW9uX2FkZHJlc3MsCiAgICAvLyApLnN1Ym1pdCgpCiAgICBpdHhuX2JlZ2luCiAgICAvLyBzbWFydF9jb250cmFjdHMvaW5uZXJfdHJhbnNhY3Rpb25zL2NvbnRyYWN0LnB5OjYwCiAgICAvLyBtYW5hZ2VyPUdsb2JhbC5jdXJyZW50X2FwcGxpY2F0aW9uX2FkZHJlc3MsCiAgICBnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwogICAgLy8gc21hcnRfY29udHJhY3RzL2lubmVyX3RyYW5zYWN0aW9ucy9jb250cmFjdC5weTo2MS02MwogICAgLy8gcmVzZXJ2ZT1HbG9iYWwuY3VycmVudF9hcHBsaWNhdGlvbl9hZGRyZXNzLAogICAgLy8gZnJlZXplPUdsb2JhbC5jdXJyZW50X2FwcGxpY2F0aW9uX2FkZHJlc3MsCiAgICAvLyBjbGF3YmFjaz1HbG9iYWwuY3VycmVudF9hcHBsaWNhdGlvbl9hZGRyZXNzLAogICAgZHVwbiAzCiAgICBpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0Q2xhd2JhY2sKICAgIGl0eG5fZmllbGQgQ29uZmlnQXNzZXRGcmVlemUKICAgIGl0eG5fZmllbGQgQ29uZmlnQXNzZXRSZXNlcnZlCiAgICBpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0TWFuYWdlcgogICAgLy8gc21hcnRfY29udHJhY3RzL2lubmVyX3RyYW5zYWN0aW9ucy9jb250cmFjdC5weTo1OQogICAgLy8gdXJsPSJodHRwczovL2xpbmtfdG9faXBmcy9Nb25hX0xpc2EiLAogICAgcHVzaGJ5dGVzICJodHRwczovL2xpbmtfdG9faXBmcy9Nb25hX0xpc2EiCiAgICBpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0VVJMCiAgICAvLyBzbWFydF9jb250cmFjdHMvaW5uZXJfdHJhbnNhY3Rpb25zL2NvbnRyYWN0LnB5OjU4CiAgICAvLyBhc3NldF9uYW1lPSJNb25hIExpc2EiLAogICAgcHVzaGJ5dGVzICJNb25hIExpc2EiCiAgICBpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0TmFtZQogICAgLy8gc21hcnRfY29udHJhY3RzL2lubmVyX3RyYW5zYWN0aW9ucy9jb250cmFjdC5weTo1NwogICAgLy8gdW5pdF9uYW1lPSJNTCIsCiAgICBwdXNoYnl0ZXMgIk1MIgogICAgaXR4bl9maWVsZCBDb25maWdBc3NldFVuaXROYW1lCiAgICAvLyBzbWFydF9jb250cmFjdHMvaW5uZXJfdHJhbnNhY3Rpb25zL2NvbnRyYWN0LnB5OjU2CiAgICAvLyBkZWNpbWFscz0yLAogICAgcHVzaGludCAyIC8vIDIKICAgIGl0eG5fZmllbGQgQ29uZmlnQXNzZXREZWNpbWFscwogICAgLy8gc21hcnRfY29udHJhY3RzL2lubmVyX3RyYW5zYWN0aW9ucy9jb250cmFjdC5weTo1NQogICAgLy8gdG90YWw9MTAwLAogICAgcHVzaGludCAxMDAgLy8gMTAwCiAgICBpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0VG90YWwKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9pbm5lcl90cmFuc2FjdGlvbnMvY29udHJhY3QucHk6NTQKICAgIC8vIGl0eG5fcmVzdWx0ID0gaXR4bi5Bc3NldENvbmZpZygKICAgIGludGNfMyAvLyBhY2ZnCiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzEgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9pbm5lcl90cmFuc2FjdGlvbnMvY29udHJhY3QucHk6NTQtNjQKICAgIC8vIGl0eG5fcmVzdWx0ID0gaXR4bi5Bc3NldENvbmZpZygKICAgIC8vICAgICB0b3RhbD0xMDAsCiAgICAvLyAgICAgZGVjaW1hbHM9MiwKICAgIC8vICAgICB1bml0X25hbWU9Ik1MIiwKICAgIC8vICAgICBhc3NldF9uYW1lPSJNb25hIExpc2EiLAogICAgLy8gICAgIHVybD0iaHR0cHM6Ly9saW5rX3RvX2lwZnMvTW9uYV9MaXNhIiwKICAgIC8vICAgICBtYW5hZ2VyPUdsb2JhbC5jdXJyZW50X2FwcGxpY2F0aW9uX2FkZHJlc3MsCiAgICAvLyAgICAgcmVzZXJ2ZT1HbG9iYWwuY3VycmVudF9hcHBsaWNhdGlvbl9hZGRyZXNzLAogICAgLy8gICAgIGZyZWV6ZT1HbG9iYWwuY3VycmVudF9hcHBsaWNhdGlvbl9hZGRyZXNzLAogICAgLy8gICAgIGNsYXdiYWNrPUdsb2JhbC5jdXJyZW50X2FwcGxpY2F0aW9uX2FkZHJlc3MsCiAgICAvLyApLnN1Ym1pdCgpCiAgICBpdHhuX3N1Ym1pdAogICAgaXR4biBDcmVhdGVkQXNzZXRJRAogICAgLy8gc21hcnRfY29udHJhY3RzL2lubmVyX3RyYW5zYWN0aW9ucy9jb250cmFjdC5weTo0NwogICAgLy8gQGFiaW1ldGhvZAogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18wIC8vIDEKICAgIHJldHVybgoKCi8vIHNtYXJ0X2NvbnRyYWN0cy5pbm5lcl90cmFuc2FjdGlvbnMuY29udHJhY3QuSW5uZXJUcmFuc2FjdGlvbnMuYXNzZXRfb3B0X2luW3JvdXRpbmddKCkgLT4gdm9pZDoKYXNzZXRfb3B0X2luOgogICAgLy8gc21hcnRfY29udHJhY3RzL2lubmVyX3RyYW5zYWN0aW9ucy9jb250cmFjdC5weTo3MC03MQogICAgLy8gIyBleGFtcGxlOiBBU1NFVF9PUFRfSU4KICAgIC8vIEBhYmltZXRob2QKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGJ0b2kKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9pbm5lcl90cmFuc2FjdGlvbnMvY29udHJhY3QucHk6NzMtNzgKICAgIC8vIGl0eG4uQXNzZXRUcmFuc2ZlcigKICAgIC8vICAgICBhc3NldF9yZWNlaXZlcj1HbG9iYWwuY3VycmVudF9hcHBsaWNhdGlvbl9hZGRyZXNzLAogICAgLy8gICAgIHhmZXJfYXNzZXQ9YXNzZXQsCiAgICAvLyAgICAgYXNzZXRfYW1vdW50PTAsCiAgICAvLyAgICAgZmVlPTAsCiAgICAvLyApLnN1Ym1pdCgpCiAgICBpdHhuX2JlZ2luCiAgICAvLyBzbWFydF9jb250cmFjdHMvaW5uZXJfdHJhbnNhY3Rpb25zL2NvbnRyYWN0LnB5Ojc0CiAgICAvLyBhc3NldF9yZWNlaXZlcj1HbG9iYWwuY3VycmVudF9hcHBsaWNhdGlvbl9hZGRyZXNzLAogICAgZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9pbm5lcl90cmFuc2FjdGlvbnMvY29udHJhY3QucHk6NzYKICAgIC8vIGFzc2V0X2Ftb3VudD0wLAogICAgaW50Y18xIC8vIDAKICAgIGl0eG5fZmllbGQgQXNzZXRBbW91bnQKICAgIGl0eG5fZmllbGQgQXNzZXRSZWNlaXZlcgogICAgaXR4bl9maWVsZCBYZmVyQXNzZXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9pbm5lcl90cmFuc2FjdGlvbnMvY29udHJhY3QucHk6NzMKICAgIC8vIGl0eG4uQXNzZXRUcmFuc2ZlcigKICAgIHB1c2hpbnQgNCAvLyBheGZlcgogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgLy8gc21hcnRfY29udHJhY3RzL2lubmVyX3RyYW5zYWN0aW9ucy9jb250cmFjdC5weTo3NwogICAgLy8gZmVlPTAsCiAgICBpbnRjXzEgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9pbm5lcl90cmFuc2FjdGlvbnMvY29udHJhY3QucHk6NzMtNzgKICAgIC8vIGl0eG4uQXNzZXRUcmFuc2ZlcigKICAgIC8vICAgICBhc3NldF9yZWNlaXZlcj1HbG9iYWwuY3VycmVudF9hcHBsaWNhdGlvbl9hZGRyZXNzLAogICAgLy8gICAgIHhmZXJfYXNzZXQ9YXNzZXQsCiAgICAvLyAgICAgYXNzZXRfYW1vdW50PTAsCiAgICAvLyAgICAgZmVlPTAsCiAgICAvLyApLnN1Ym1pdCgpCiAgICBpdHhuX3N1Ym1pdAogICAgLy8gc21hcnRfY29udHJhY3RzL2lubmVyX3RyYW5zYWN0aW9ucy9jb250cmFjdC5weTo3MC03MQogICAgLy8gIyBleGFtcGxlOiBBU1NFVF9PUFRfSU4KICAgIC8vIEBhYmltZXRob2QKICAgIGludGNfMCAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMuaW5uZXJfdHJhbnNhY3Rpb25zLmNvbnRyYWN0LklubmVyVHJhbnNhY3Rpb25zLmFzc2V0X3RyYW5zZmVyW3JvdXRpbmddKCkgLT4gdm9pZDoKYXNzZXRfdHJhbnNmZXI6CiAgICAvLyBzbWFydF9jb250cmFjdHMvaW5uZXJfdHJhbnNhY3Rpb25zL2NvbnRyYWN0LnB5Ojg5LTkwCiAgICAvLyAjIGV4YW1wbGU6IEFTU0VUX1RSQU5TRkVSCiAgICAvLyBAYWJpbWV0aG9kCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAzCiAgICBidG9pCiAgICAvLyBzbWFydF9jb250cmFjdHMvaW5uZXJfdHJhbnNhY3Rpb25zL2NvbnRyYWN0LnB5OjkyLTk3CiAgICAvLyBpdHhuLkFzc2V0VHJhbnNmZXIoCiAgICAvLyAgICAgYXNzZXRfcmVjZWl2ZXI9cmVjZWl2ZXIsCiAgICAvLyAgICAgeGZlcl9hc3NldD1hc3NldCwKICAgIC8vICAgICBhc3NldF9hbW91bnQ9YW1vdW50LAogICAgLy8gICAgIGZlZT0wLAogICAgLy8gKS5zdWJtaXQoKQogICAgaXR4bl9iZWdpbgogICAgaXR4bl9maWVsZCBBc3NldEFtb3VudAogICAgaXR4bl9maWVsZCBBc3NldFJlY2VpdmVyCiAgICBpdHhuX2ZpZWxkIFhmZXJBc3NldAogICAgLy8gc21hcnRfY29udHJhY3RzL2lubmVyX3RyYW5zYWN0aW9ucy9jb250cmFjdC5weTo5MgogICAgLy8gaXR4bi5Bc3NldFRyYW5zZmVyKAogICAgcHVzaGludCA0IC8vIGF4ZmVyCiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICAvLyBzbWFydF9jb250cmFjdHMvaW5uZXJfdHJhbnNhY3Rpb25zL2NvbnRyYWN0LnB5Ojk2CiAgICAvLyBmZWU9MCwKICAgIGludGNfMSAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgLy8gc21hcnRfY29udHJhY3RzL2lubmVyX3RyYW5zYWN0aW9ucy9jb250cmFjdC5weTo5Mi05NwogICAgLy8gaXR4bi5Bc3NldFRyYW5zZmVyKAogICAgLy8gICAgIGFzc2V0X3JlY2VpdmVyPXJlY2VpdmVyLAogICAgLy8gICAgIHhmZXJfYXNzZXQ9YXNzZXQsCiAgICAvLyAgICAgYXNzZXRfYW1vdW50PWFtb3VudCwKICAgIC8vICAgICBmZWU9MCwKICAgIC8vICkuc3VibWl0KCkKICAgIGl0eG5fc3VibWl0CiAgICAvLyBzbWFydF9jb250cmFjdHMvaW5uZXJfdHJhbnNhY3Rpb25zL2NvbnRyYWN0LnB5Ojg5LTkwCiAgICAvLyAjIGV4YW1wbGU6IEFTU0VUX1RSQU5TRkVSCiAgICAvLyBAYWJpbWV0aG9kCiAgICBpbnRjXzAgLy8gMQogICAgcmV0dXJuCgoKLy8gc21hcnRfY29udHJhY3RzLmlubmVyX3RyYW5zYWN0aW9ucy5jb250cmFjdC5Jbm5lclRyYW5zYWN0aW9ucy5hc3NldF9mcmVlemVbcm91dGluZ10oKSAtPiB2b2lkOgphc3NldF9mcmVlemU6CiAgICAvLyBzbWFydF9jb250cmFjdHMvaW5uZXJfdHJhbnNhY3Rpb25zL2NvbnRyYWN0LnB5OjEwOC0xMDkKICAgIC8vICMgZXhhbXBsZTogQVNTRVRfRlJFRVpFCiAgICAvLyBAYWJpbWV0aG9kCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBidG9pCiAgICAvLyBzbWFydF9jb250cmFjdHMvaW5uZXJfdHJhbnNhY3Rpb25zL2NvbnRyYWN0LnB5OjExMS0xMTYKICAgIC8vIGl0eG4uQXNzZXRGcmVlemUoCiAgICAvLyAgICAgZnJlZXplX2FjY291bnQ9YWNjdF90b19iZV9mcm96ZW4sICAjIGFjY291bnQgdG8gYmUgZnJvemVuCiAgICAvLyAgICAgZnJlZXplX2Fzc2V0PWFzc2V0LAogICAgLy8gICAgIGZyb3plbj1UcnVlLAogICAgLy8gICAgIGZlZT0wLAogICAgLy8gKS5zdWJtaXQoKQogICAgaXR4bl9iZWdpbgogICAgLy8gc21hcnRfY29udHJhY3RzL2lubmVyX3RyYW5zYWN0aW9ucy9jb250cmFjdC5weToxMTQKICAgIC8vIGZyb3plbj1UcnVlLAogICAgaW50Y18wIC8vIDEKICAgIGl0eG5fZmllbGQgRnJlZXplQXNzZXRGcm96ZW4KICAgIGl0eG5fZmllbGQgRnJlZXplQXNzZXQKICAgIGl0eG5fZmllbGQgRnJlZXplQXNzZXRBY2NvdW50CiAgICAvLyBzbWFydF9jb250cmFjdHMvaW5uZXJfdHJhbnNhY3Rpb25zL2NvbnRyYWN0LnB5OjExMQogICAgLy8gaXR4bi5Bc3NldEZyZWV6ZSgKICAgIHB1c2hpbnQgNSAvLyBhZnJ6CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICAvLyBzbWFydF9jb250cmFjdHMvaW5uZXJfdHJhbnNhY3Rpb25zL2NvbnRyYWN0LnB5OjExNQogICAgLy8gZmVlPTAsCiAgICBpbnRjXzEgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9pbm5lcl90cmFuc2FjdGlvbnMvY29udHJhY3QucHk6MTExLTExNgogICAgLy8gaXR4bi5Bc3NldEZyZWV6ZSgKICAgIC8vICAgICBmcmVlemVfYWNjb3VudD1hY2N0X3RvX2JlX2Zyb3plbiwgICMgYWNjb3VudCB0byBiZSBmcm96ZW4KICAgIC8vICAgICBmcmVlemVfYXNzZXQ9YXNzZXQsCiAgICAvLyAgICAgZnJvemVuPVRydWUsCiAgICAvLyAgICAgZmVlPTAsCiAgICAvLyApLnN1Ym1pdCgpCiAgICBpdHhuX3N1Ym1pdAogICAgLy8gc21hcnRfY29udHJhY3RzL2lubmVyX3RyYW5zYWN0aW9ucy9jb250cmFjdC5weToxMDgtMTA5CiAgICAvLyAjIGV4YW1wbGU6IEFTU0VUX0ZSRUVaRQogICAgLy8gQGFiaW1ldGhvZAogICAgaW50Y18wIC8vIDEKICAgIHJldHVybgoKCi8vIHNtYXJ0X2NvbnRyYWN0cy5pbm5lcl90cmFuc2FjdGlvbnMuY29udHJhY3QuSW5uZXJUcmFuc2FjdGlvbnMuYXNzZXRfcmV2b2tlW3JvdXRpbmddKCkgLT4gdm9pZDoKYXNzZXRfcmV2b2tlOgogICAgLy8gc21hcnRfY29udHJhY3RzL2lubmVyX3RyYW5zYWN0aW9ucy9jb250cmFjdC5weToxMjQtMTI1CiAgICAvLyAjIGV4YW1wbGU6IEFTU0VUX1JFVk9LRQogICAgLy8gQGFiaW1ldGhvZAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgYnRvaQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwogICAgYnRvaQogICAgLy8gc21hcnRfY29udHJhY3RzL2lubmVyX3RyYW5zYWN0aW9ucy9jb250cmFjdC5weToxMjktMTM1CiAgICAvLyBpdHhuLkFzc2V0VHJhbnNmZXIoCiAgICAvLyAgICAgYXNzZXRfcmVjZWl2ZXI9R2xvYmFsLmN1cnJlbnRfYXBwbGljYXRpb25fYWRkcmVzcywKICAgIC8vICAgICB4ZmVyX2Fzc2V0PWFzc2V0LAogICAgLy8gICAgIGFzc2V0X3NlbmRlcj1hY2NvdW50X3RvX2JlX3Jldm9rZWQsICAjIEFzc2V0U2VuZGVyIGlzIG9ubHkgdXNlZCBpbiB0aGUgY2FzZSBvZiBjbGF3YmFjawogICAgLy8gICAgIGFzc2V0X2Ftb3VudD1hbW91bnQsCiAgICAvLyAgICAgZmVlPTAsCiAgICAvLyApLnN1Ym1pdCgpCiAgICBpdHhuX2JlZ2luCiAgICAvLyBzbWFydF9jb250cmFjdHMvaW5uZXJfdHJhbnNhY3Rpb25zL2NvbnRyYWN0LnB5OjEzMAogICAgLy8gYXNzZXRfcmVjZWl2ZXI9R2xvYmFsLmN1cnJlbnRfYXBwbGljYXRpb25fYWRkcmVzcywKICAgIGdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCiAgICBpdHhuX2ZpZWxkIEFzc2V0UmVjZWl2ZXIKICAgIGl0eG5fZmllbGQgQXNzZXRBbW91bnQKICAgIGl0eG5fZmllbGQgQXNzZXRTZW5kZXIKICAgIGl0eG5fZmllbGQgWGZlckFzc2V0CiAgICAvLyBzbWFydF9jb250cmFjdHMvaW5uZXJfdHJhbnNhY3Rpb25zL2NvbnRyYWN0LnB5OjEyOQogICAgLy8gaXR4bi5Bc3NldFRyYW5zZmVyKAogICAgcHVzaGludCA0IC8vIGF4ZmVyCiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICAvLyBzbWFydF9jb250cmFjdHMvaW5uZXJfdHJhbnNhY3Rpb25zL2NvbnRyYWN0LnB5OjEzNAogICAgLy8gZmVlPTAsCiAgICBpbnRjXzEgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9pbm5lcl90cmFuc2FjdGlvbnMvY29udHJhY3QucHk6MTI5LTEzNQogICAgLy8gaXR4bi5Bc3NldFRyYW5zZmVyKAogICAgLy8gICAgIGFzc2V0X3JlY2VpdmVyPUdsb2JhbC5jdXJyZW50X2FwcGxpY2F0aW9uX2FkZHJlc3MsCiAgICAvLyAgICAgeGZlcl9hc3NldD1hc3NldCwKICAgIC8vICAgICBhc3NldF9zZW5kZXI9YWNjb3VudF90b19iZV9yZXZva2VkLCAgIyBBc3NldFNlbmRlciBpcyBvbmx5IHVzZWQgaW4gdGhlIGNhc2Ugb2YgY2xhd2JhY2sKICAgIC8vICAgICBhc3NldF9hbW91bnQ9YW1vdW50LAogICAgLy8gICAgIGZlZT0wLAogICAgLy8gKS5zdWJtaXQoKQogICAgaXR4bl9zdWJtaXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9pbm5lcl90cmFuc2FjdGlvbnMvY29udHJhY3QucHk6MTI0LTEyNQogICAgLy8gIyBleGFtcGxlOiBBU1NFVF9SRVZPS0UKICAgIC8vIEBhYmltZXRob2QKICAgIGludGNfMCAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMuaW5uZXJfdHJhbnNhY3Rpb25zLmNvbnRyYWN0LklubmVyVHJhbnNhY3Rpb25zLmFzc2V0X2NvbmZpZ1tyb3V0aW5nXSgpIC0+IHZvaWQ6CmFzc2V0X2NvbmZpZzoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9pbm5lcl90cmFuc2FjdGlvbnMvY29udHJhY3QucHk6MTQ1LTE0NgogICAgLy8gIyBleGFtcGxlOiBBU1NFVF9DT05GSUcKICAgIC8vIEBhYmltZXRob2QKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGJ0b2kKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9pbm5lcl90cmFuc2FjdGlvbnMvY29udHJhY3QucHk6MTQ4LTE1NQogICAgLy8gaXR4bi5Bc3NldENvbmZpZygKICAgIC8vICAgICBjb25maWdfYXNzZXQ9YXNzZXQsCiAgICAvLyAgICAgbWFuYWdlcj1HbG9iYWwuY3VycmVudF9hcHBsaWNhdGlvbl9hZGRyZXNzLAogICAgLy8gICAgIHJlc2VydmU9R2xvYmFsLmN1cnJlbnRfYXBwbGljYXRpb25fYWRkcmVzcywKICAgIC8vICAgICBmcmVlemU9VHhuLnNlbmRlciwKICAgIC8vICAgICBjbGF3YmFjaz1UeG4uc2VuZGVyLAogICAgLy8gICAgIGZlZT0wLAogICAgLy8gKS5zdWJtaXQoKQogICAgaXR4bl9iZWdpbgogICAgLy8gc21hcnRfY29udHJhY3RzL2lubmVyX3RyYW5zYWN0aW9ucy9jb250cmFjdC5weToxNTAKICAgIC8vIG1hbmFnZXI9R2xvYmFsLmN1cnJlbnRfYXBwbGljYXRpb25fYWRkcmVzcywKICAgIGdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCiAgICAvLyBzbWFydF9jb250cmFjdHMvaW5uZXJfdHJhbnNhY3Rpb25zL2NvbnRyYWN0LnB5OjE1MQogICAgLy8gcmVzZXJ2ZT1HbG9iYWwuY3VycmVudF9hcHBsaWNhdGlvbl9hZGRyZXNzLAogICAgZHVwCiAgICAvLyBzbWFydF9jb250cmFjdHMvaW5uZXJfdHJhbnNhY3Rpb25zL2NvbnRyYWN0LnB5OjE1MgogICAgLy8gZnJlZXplPVR4bi5zZW5kZXIsCiAgICB0eG4gU2VuZGVyCiAgICAvLyBzbWFydF9jb250cmFjdHMvaW5uZXJfdHJhbnNhY3Rpb25zL2NvbnRyYWN0LnB5OjE1MwogICAgLy8gY2xhd2JhY2s9VHhuLnNlbmRlciwKICAgIGR1cAogICAgaXR4bl9maWVsZCBDb25maWdBc3NldENsYXdiYWNrCiAgICBpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0RnJlZXplCiAgICBpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0UmVzZXJ2ZQogICAgaXR4bl9maWVsZCBDb25maWdBc3NldE1hbmFnZXIKICAgIGl0eG5fZmllbGQgQ29uZmlnQXNzZXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9pbm5lcl90cmFuc2FjdGlvbnMvY29udHJhY3QucHk6MTQ4CiAgICAvLyBpdHhuLkFzc2V0Q29uZmlnKAogICAgaW50Y18zIC8vIGFjZmcKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9pbm5lcl90cmFuc2FjdGlvbnMvY29udHJhY3QucHk6MTU0CiAgICAvLyBmZWU9MCwKICAgIGludGNfMSAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgLy8gc21hcnRfY29udHJhY3RzL2lubmVyX3RyYW5zYWN0aW9ucy9jb250cmFjdC5weToxNDgtMTU1CiAgICAvLyBpdHhuLkFzc2V0Q29uZmlnKAogICAgLy8gICAgIGNvbmZpZ19hc3NldD1hc3NldCwKICAgIC8vICAgICBtYW5hZ2VyPUdsb2JhbC5jdXJyZW50X2FwcGxpY2F0aW9uX2FkZHJlc3MsCiAgICAvLyAgICAgcmVzZXJ2ZT1HbG9iYWwuY3VycmVudF9hcHBsaWNhdGlvbl9hZGRyZXNzLAogICAgLy8gICAgIGZyZWV6ZT1UeG4uc2VuZGVyLAogICAgLy8gICAgIGNsYXdiYWNrPVR4bi5zZW5kZXIsCiAgICAvLyAgICAgZmVlPTAsCiAgICAvLyApLnN1Ym1pdCgpCiAgICBpdHhuX3N1Ym1pdAogICAgLy8gc21hcnRfY29udHJhY3RzL2lubmVyX3RyYW5zYWN0aW9ucy9jb250cmFjdC5weToxNDUtMTQ2CiAgICAvLyAjIGV4YW1wbGU6IEFTU0VUX0NPTkZJRwogICAgLy8gQGFiaW1ldGhvZAogICAgaW50Y18wIC8vIDEKICAgIHJldHVybgoKCi8vIHNtYXJ0X2NvbnRyYWN0cy5pbm5lcl90cmFuc2FjdGlvbnMuY29udHJhY3QuSW5uZXJUcmFuc2FjdGlvbnMuYXNzZXRfZGVsZXRlW3JvdXRpbmddKCkgLT4gdm9pZDoKYXNzZXRfZGVsZXRlOgogICAgLy8gc21hcnRfY29udHJhY3RzL2lubmVyX3RyYW5zYWN0aW9ucy9jb250cmFjdC5weToxNjYtMTY3CiAgICAvLyAjIGV4YW1wbGU6IEFTU0VUX0RFTEVURQogICAgLy8gQGFiaW1ldGhvZAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgYnRvaQogICAgLy8gc21hcnRfY29udHJhY3RzL2lubmVyX3RyYW5zYWN0aW9ucy9jb250cmFjdC5weToxNjktMTcyCiAgICAvLyBpdHhuLkFzc2V0Q29uZmlnKAogICAgLy8gICAgIGNvbmZpZ19hc3NldD1hc3NldCwKICAgIC8vICAgICBmZWU9MCwKICAgIC8vICkuc3VibWl0KCkKICAgIGl0eG5fYmVnaW4KICAgIGl0eG5fZmllbGQgQ29uZmlnQXNzZXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9pbm5lcl90cmFuc2FjdGlvbnMvY29udHJhY3QucHk6MTY5CiAgICAvLyBpdHhuLkFzc2V0Q29uZmlnKAogICAgaW50Y18zIC8vIGFjZmcKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9pbm5lcl90cmFuc2FjdGlvbnMvY29udHJhY3QucHk6MTcxCiAgICAvLyBmZWU9MCwKICAgIGludGNfMSAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgLy8gc21hcnRfY29udHJhY3RzL2lubmVyX3RyYW5zYWN0aW9ucy9jb250cmFjdC5weToxNjktMTcyCiAgICAvLyBpdHhuLkFzc2V0Q29uZmlnKAogICAgLy8gICAgIGNvbmZpZ19hc3NldD1hc3NldCwKICAgIC8vICAgICBmZWU9MCwKICAgIC8vICkuc3VibWl0KCkKICAgIGl0eG5fc3VibWl0CiAgICAvLyBzbWFydF9jb250cmFjdHMvaW5uZXJfdHJhbnNhY3Rpb25zL2NvbnRyYWN0LnB5OjE2Ni0xNjcKICAgIC8vICMgZXhhbXBsZTogQVNTRVRfREVMRVRFCiAgICAvLyBAYWJpbWV0aG9kCiAgICBpbnRjXzAgLy8gMQogICAgcmV0dXJuCgoKLy8gc21hcnRfY29udHJhY3RzLmlubmVyX3RyYW5zYWN0aW9ucy5jb250cmFjdC5Jbm5lclRyYW5zYWN0aW9ucy5tdWx0aV9pbm5lcl90eG5zW3JvdXRpbmddKCkgLT4gdm9pZDoKbXVsdGlfaW5uZXJfdHhuczoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9pbm5lcl90cmFuc2FjdGlvbnMvY29udHJhY3QucHk6MTc2LTE3NwogICAgLy8gIyBleGFtcGxlOiBHUk9VUEVEX0lOTkVSX1RYTlMKICAgIC8vIEBhYmltZXRob2QKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGJ0b2kKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9pbm5lcl90cmFuc2FjdGlvbnMvY29udHJhY3QucHk6MTc5CiAgICAvLyBwYXltZW50X3BhcmFtcyA9IGl0eG4uUGF5bWVudChhbW91bnQ9NTAwMCwgcmVjZWl2ZXI9VHhuLnNlbmRlciwgZmVlPTApCiAgICB0eG4gU2VuZGVyCiAgICAvLyBzbWFydF9jb250cmFjdHMvaW5uZXJfdHJhbnNhY3Rpb25zL2NvbnRyYWN0LnB5OjE4NwogICAgLy8gcGF5X3R4biwgYXBwX2NhbGxfdHhuID0gaXR4bi5zdWJtaXRfdHhucyhwYXltZW50X3BhcmFtcywgYXBwX2NhbGxfcGFyYW1zKQogICAgaXR4bl9iZWdpbgogICAgaXR4bl9maWVsZCBSZWNlaXZlcgogICAgLy8gc21hcnRfY29udHJhY3RzL2lubmVyX3RyYW5zYWN0aW9ucy9jb250cmFjdC5weToxNzkKICAgIC8vIHBheW1lbnRfcGFyYW1zID0gaXR4bi5QYXltZW50KGFtb3VudD01MDAwLCByZWNlaXZlcj1UeG4uc2VuZGVyLCBmZWU9MCkKICAgIHB1c2hpbnQgNTAwMCAvLyA1MDAwCiAgICBpdHhuX2ZpZWxkIEFtb3VudAogICAgaW50Y18wIC8vIHBheQogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18xIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCiAgICAvLyBzbWFydF9jb250cmFjdHMvaW5uZXJfdHJhbnNhY3Rpb25zL2NvbnRyYWN0LnB5OjE4NwogICAgLy8gcGF5X3R4biwgYXBwX2NhbGxfdHhuID0gaXR4bi5zdWJtaXRfdHhucyhwYXltZW50X3BhcmFtcywgYXBwX2NhbGxfcGFyYW1zKQogICAgaXR4bl9uZXh0CiAgICAvLyBzbWFydF9jb250cmFjdHMvaW5uZXJfdHJhbnNhY3Rpb25zL2NvbnRyYWN0LnB5OjE4MwogICAgLy8gYXBwX2FyZ3M9KGFyYzQuYXJjNF9zaWduYXR1cmUoImhlbGxvKHN0cmluZylzdHJpbmciKSwgYXJjNC5TdHJpbmcoIldvcmxkIikpLAogICAgYnl0ZWNfMSAvLyBtZXRob2QgImhlbGxvKHN0cmluZylzdHJpbmciCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgYnl0ZWNfMiAvLyAweDAwMDU1NzZmNzI2YzY0CiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECiAgICAvLyBzbWFydF9jb250cmFjdHMvaW5uZXJfdHJhbnNhY3Rpb25zL2NvbnRyYWN0LnB5OjE4MQogICAgLy8gYXBwX2NhbGxfcGFyYW1zID0gaXR4bi5BcHBsaWNhdGlvbkNhbGwoCiAgICBpbnRjXzIgLy8gYXBwbAogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgLy8gc21hcnRfY29udHJhY3RzL2lubmVyX3RyYW5zYWN0aW9ucy9jb250cmFjdC5weToxODQKICAgIC8vIGZlZT0wLAogICAgaW50Y18xIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCiAgICAvLyBzbWFydF9jb250cmFjdHMvaW5uZXJfdHJhbnNhY3Rpb25zL2NvbnRyYWN0LnB5OjE4NwogICAgLy8gcGF5X3R4biwgYXBwX2NhbGxfdHhuID0gaXR4bi5zdWJtaXRfdHhucyhwYXltZW50X3BhcmFtcywgYXBwX2NhbGxfcGFyYW1zKQogICAgaXR4bl9zdWJtaXQKICAgIGdpdHhuIDAgQW1vdW50CiAgICBpdHhuIExhc3RMb2cKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9pbm5lcl90cmFuc2FjdGlvbnMvY29udHJhY3QucHk6MTg5CiAgICAvLyBoZWxsb193b3JsZF9yZXN1bHQgPSBhcmM0LlN0cmluZy5mcm9tX2xvZyhhcHBfY2FsbF90eG4ubGFzdF9sb2cpCiAgICBkdXAKICAgIGV4dHJhY3QgNCAwCiAgICBzd2FwCiAgICBleHRyYWN0IDAgNAogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICA9PQogICAgYXNzZXJ0IC8vIGFwcGxpY2F0aW9uIGxvZyB2YWx1ZSBpcyBub3QgdGhlIHJlc3VsdCBvZiBhbiBBQkkgcmV0dXJuCiAgICAvLyBzbWFydF9jb250cmFjdHMvaW5uZXJfdHJhbnNhY3Rpb25zL2NvbnRyYWN0LnB5OjE3Ni0xNzcKICAgIC8vICMgZXhhbXBsZTogR1JPVVBFRF9JTk5FUl9UWE5TCiAgICAvLyBAYWJpbWV0aG9kCiAgICBzd2FwCiAgICBpdG9iCiAgICBwdXNoYnl0ZXMgMHgwMDBhCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18wIC8vIDEKICAgIHJldHVybgoKCi8vIHNtYXJ0X2NvbnRyYWN0cy5pbm5lcl90cmFuc2FjdGlvbnMuY29udHJhY3QuSW5uZXJUcmFuc2FjdGlvbnMuZGVwbG95X2FwcFtyb3V0aW5nXSgpIC0+IHZvaWQ6CmRlcGxveV9hcHA6CiAgICAvLyBzbWFydF9jb250cmFjdHMvaW5uZXJfdHJhbnNhY3Rpb25zL2NvbnRyYWN0LnB5OjIwOS0yMTMKICAgIC8vIGFwcF90eG4gPSBpdHhuLkFwcGxpY2F0aW9uQ2FsbCgKICAgIC8vICAgICBhcHByb3ZhbF9wcm9ncmFtPWNvbXBpbGVkX2NvbnRyYWN0LmFwcHJvdmFsX3Byb2dyYW0sCiAgICAvLyAgICAgY2xlYXJfc3RhdGVfcHJvZ3JhbT1jb21waWxlZF9jb250cmFjdC5jbGVhcl9zdGF0ZV9wcm9ncmFtLAogICAgLy8gICAgIGZlZT0wLAogICAgLy8gKS5zdWJtaXQoKQogICAgaXR4bl9iZWdpbgogICAgLy8gc21hcnRfY29udHJhY3RzL2lubmVyX3RyYW5zYWN0aW9ucy9jb250cmFjdC5weToyMDcKICAgIC8vIGNvbXBpbGVkX2NvbnRyYWN0ID0gY29tcGlsZV9jb250cmFjdChIZWxsb1dvcmxkKQogICAgYnl0ZWNfMyAvLyBiYXNlNjQoQzRFQlF3PT0pCiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIGJ5dGVjIDQgLy8gYmFzZTY0KEN6RWJRUUFZZ0FRQ3ZzNFJOaG9BamdFQUFRQXhHUlF4R0JCRVFnQUlNUmtVTVJnVUVFTTJHZ0ZYQWdDQUIwaGxiR3h2TENCTVVFa1ZGbGNHQWt4UWdBUVZIM3gxVEZDd2dRRkQpCiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzCiAgICAvLyBzbWFydF9jb250cmFjdHMvaW5uZXJfdHJhbnNhY3Rpb25zL2NvbnRyYWN0LnB5OjIwOQogICAgLy8gYXBwX3R4biA9IGl0eG4uQXBwbGljYXRpb25DYWxsKAogICAgaW50Y18yIC8vIGFwcGwKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9pbm5lcl90cmFuc2FjdGlvbnMvY29udHJhY3QucHk6MjEyCiAgICAvLyBmZWU9MCwKICAgIGludGNfMSAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgLy8gc21hcnRfY29udHJhY3RzL2lubmVyX3RyYW5zYWN0aW9ucy9jb250cmFjdC5weToyMDktMjEzCiAgICAvLyBhcHBfdHhuID0gaXR4bi5BcHBsaWNhdGlvbkNhbGwoCiAgICAvLyAgICAgYXBwcm92YWxfcHJvZ3JhbT1jb21waWxlZF9jb250cmFjdC5hcHByb3ZhbF9wcm9ncmFtLAogICAgLy8gICAgIGNsZWFyX3N0YXRlX3Byb2dyYW09Y29tcGlsZWRfY29udHJhY3QuY2xlYXJfc3RhdGVfcHJvZ3JhbSwKICAgIC8vICAgICBmZWU9MCwKICAgIC8vICkuc3VibWl0KCkKICAgIGl0eG5fc3VibWl0CiAgICBpdHhuIENyZWF0ZWRBcHBsaWNhdGlvbklECiAgICAvLyBzbWFydF9jb250cmFjdHMvaW5uZXJfdHJhbnNhY3Rpb25zL2NvbnRyYWN0LnB5OjIwMgogICAgLy8gQGFiaW1ldGhvZAogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18wIC8vIDEKICAgIHJldHVybgoKCi8vIHNtYXJ0X2NvbnRyYWN0cy5pbm5lcl90cmFuc2FjdGlvbnMuY29udHJhY3QuSW5uZXJUcmFuc2FjdGlvbnMuYXJjNF9kZXBsb3lfYXBwW3JvdXRpbmddKCkgLT4gdm9pZDoKYXJjNF9kZXBsb3lfYXBwOgogICAgLy8gc21hcnRfY29udHJhY3RzL2lubmVyX3RyYW5zYWN0aW9ucy9jb250cmFjdC5weToyMjMKICAgIC8vIGFwcF90eG4gPSBhcmM0LmFyYzRfY3JlYXRlKEhlbGxvV29ybGQpCiAgICBpdHhuX2JlZ2luCiAgICBieXRlY18zIC8vIGJhc2U2NChDNEVCUXc9PSkKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgYnl0ZWMgNCAvLyBiYXNlNjQoQ3pFYlFRQVlnQVFDdnM0Uk5ob0FqZ0VBQVFBeEdSUXhHQkJFUWdBSU1Sa1VNUmdVRUVNMkdnRlhBZ0NBQjBobGJHeHZMQ0JNVUVrVkZsY0dBa3hRZ0FRVkgzeDFURkN3Z1FGRCkKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIGludGNfMiAvLyBhcHBsCiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzEgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIGl0eG5fc3VibWl0CiAgICBpdHhuIENyZWF0ZWRBcHBsaWNhdGlvbklECiAgICAvLyBzbWFydF9jb250cmFjdHMvaW5uZXJfdHJhbnNhY3Rpb25zL2NvbnRyYWN0LnB5OjIxOAogICAgLy8gQGFiaW1ldGhvZAogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18wIC8vIDEKICAgIHJldHVybgoKCi8vIHNtYXJ0X2NvbnRyYWN0cy5pbm5lcl90cmFuc2FjdGlvbnMuY29udHJhY3QuSW5uZXJUcmFuc2FjdGlvbnMubm9vcF9hcHBfY2FsbFtyb3V0aW5nXSgpIC0+IHZvaWQ6Cm5vb3BfYXBwX2NhbGw6CiAgICAvLyBzbWFydF9jb250cmFjdHMvaW5uZXJfdHJhbnNhY3Rpb25zL2NvbnRyYWN0LnB5OjIyOS0yMzAKICAgIC8vICMgZXhhbXBsZTogTk9PUF9BUFBfQ0FMTAogICAgLy8gQGFiaW1ldGhvZAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgYnRvaQogICAgLy8gc21hcnRfY29udHJhY3RzL2lubmVyX3RyYW5zYWN0aW9ucy9jb250cmFjdC5weToyMzItMjM2CiAgICAvLyAjIGludm9rZSBhbiBBQkkgbWV0aG9kCiAgICAvLyBjYWxsX3R4biA9IGl0eG4uQXBwbGljYXRpb25DYWxsKAogICAgLy8gICAgIGFwcF9pZD1hcHBfaWQsCiAgICAvLyAgICAgYXBwX2FyZ3M9KGFyYzQuYXJjNF9zaWduYXR1cmUoImhlbGxvKHN0cmluZylzdHJpbmciKSwgYXJjNC5TdHJpbmcoIldvcmxkIikpLAogICAgLy8gKS5zdWJtaXQoKQogICAgaXR4bl9iZWdpbgogICAgLy8gc21hcnRfY29udHJhY3RzL2lubmVyX3RyYW5zYWN0aW9ucy9jb250cmFjdC5weToyMzUKICAgIC8vIGFwcF9hcmdzPShhcmM0LmFyYzRfc2lnbmF0dXJlKCJoZWxsbyhzdHJpbmcpc3RyaW5nIiksIGFyYzQuU3RyaW5nKCJXb3JsZCIpKSwKICAgIGJ5dGVjXzEgLy8gbWV0aG9kICJoZWxsbyhzdHJpbmcpc3RyaW5nIgogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIGJ5dGVjXzIgLy8gMHgwMDA1NTc2ZjcyNmM2NAogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIGR1cAogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECiAgICAvLyBzbWFydF9jb250cmFjdHMvaW5uZXJfdHJhbnNhY3Rpb25zL2NvbnRyYWN0LnB5OjIzMi0yMzMKICAgIC8vICMgaW52b2tlIGFuIEFCSSBtZXRob2QKICAgIC8vIGNhbGxfdHhuID0gaXR4bi5BcHBsaWNhdGlvbkNhbGwoCiAgICBpbnRjXzIgLy8gYXBwbAogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18xIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCiAgICAvLyBzbWFydF9jb250cmFjdHMvaW5uZXJfdHJhbnNhY3Rpb25zL2NvbnRyYWN0LnB5OjIzMi0yMzYKICAgIC8vICMgaW52b2tlIGFuIEFCSSBtZXRob2QKICAgIC8vIGNhbGxfdHhuID0gaXR4bi5BcHBsaWNhdGlvbkNhbGwoCiAgICAvLyAgICAgYXBwX2lkPWFwcF9pZCwKICAgIC8vICAgICBhcHBfYXJncz0oYXJjNC5hcmM0X3NpZ25hdHVyZSgiaGVsbG8oc3RyaW5nKXN0cmluZyIpLCBhcmM0LlN0cmluZygiV29ybGQiKSksCiAgICAvLyApLnN1Ym1pdCgpCiAgICBpdHhuX3N1Ym1pdAogICAgaXR4biBMYXN0TG9nCiAgICAvLyBzbWFydF9jb250cmFjdHMvaW5uZXJfdHJhbnNhY3Rpb25zL2NvbnRyYWN0LnB5OjIzNy0yMzgKICAgIC8vICMgZXh0cmFjdCByZXN1bHQKICAgIC8vIGZpcnN0X2hlbGxvX3dvcmxkX3Jlc3VsdCA9IGFyYzQuU3RyaW5nLmZyb21fbG9nKGNhbGxfdHhuLmxhc3RfbG9nKQogICAgZHVwCiAgICBleHRyYWN0IDQgMAogICAgc3dhcAogICAgZXh0cmFjdCAwIDQKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgPT0KICAgIGFzc2VydCAvLyBhcHBsaWNhdGlvbiBsb2cgdmFsdWUgaXMgbm90IHRoZSByZXN1bHQgb2YgYW4gQUJJIHJldHVybgogICAgLy8gc21hcnRfY29udHJhY3RzL2lubmVyX3RyYW5zYWN0aW9ucy9jb250cmFjdC5weToyNDAtMjQ1CiAgICAvLyAjIE9SLCBjYWxsIGl0IGF1dG9tYXRpYyBBUkM0IGVuY29kaW5nLCB0eXBlIHZhbGlkYXRpb24gYW5kIHJlc3VsdCBoYW5kbGluZwogICAgLy8gc2Vjb25kX2hlbGxvX3dvcmxkX3Jlc3VsdCwgY2FsbF90eG4gPSBhcmM0LmFiaV9jYWxsKCAgIyBkZWNsYXJlIHJldHVybiB0eXBlCiAgICAvLyAgICAgSGVsbG9Xb3JsZC5oZWxsbywgICMgbWV0aG9kIHNpZ25hdHVyZSB0byBjYWxsCiAgICAvLyAgICAgImFnYWluIiwgICMgYWJpIG1ldGhvZCBhcmd1bWVudHMKICAgIC8vICAgICBhcHBfaWQ9YXBwX2lkLAogICAgLy8gKQogICAgaXR4bl9iZWdpbgogICAgc3dhcAogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECiAgICBieXRlY18xIC8vIG1ldGhvZCAiaGVsbG8oc3RyaW5nKXN0cmluZyIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICAvLyBzbWFydF9jb250cmFjdHMvaW5uZXJfdHJhbnNhY3Rpb25zL2NvbnRyYWN0LnB5OjI0MwogICAgLy8gImFnYWluIiwgICMgYWJpIG1ldGhvZCBhcmd1bWVudHMKICAgIHB1c2hieXRlcyAweDAwMDU2MTY3NjE2OTZlCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gc21hcnRfY29udHJhY3RzL2lubmVyX3RyYW5zYWN0aW9ucy9jb250cmFjdC5weToyNDAtMjQ1CiAgICAvLyAjIE9SLCBjYWxsIGl0IGF1dG9tYXRpYyBBUkM0IGVuY29kaW5nLCB0eXBlIHZhbGlkYXRpb24gYW5kIHJlc3VsdCBoYW5kbGluZwogICAgLy8gc2Vjb25kX2hlbGxvX3dvcmxkX3Jlc3VsdCwgY2FsbF90eG4gPSBhcmM0LmFiaV9jYWxsKCAgIyBkZWNsYXJlIHJldHVybiB0eXBlCiAgICAvLyAgICAgSGVsbG9Xb3JsZC5oZWxsbywgICMgbWV0aG9kIHNpZ25hdHVyZSB0byBjYWxsCiAgICAvLyAgICAgImFnYWluIiwgICMgYWJpIG1ldGhvZCBhcmd1bWVudHMKICAgIC8vICAgICBhcHBfaWQ9YXBwX2lkLAogICAgLy8gKQogICAgaW50Y18yIC8vIGFwcGwKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMSAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgaXR4bl9zdWJtaXQKICAgIGl0eG4gTGFzdExvZwogICAgZHVwCiAgICBleHRyYWN0IDAgNAogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICA9PQogICAgYXNzZXJ0IC8vIGFwcGxpY2F0aW9uIGxvZyB2YWx1ZSBpcyBub3QgdGhlIHJlc3VsdCBvZiBhbiBBQkkgcmV0dXJuCiAgICBleHRyYWN0IDYgMAogICAgLy8gc21hcnRfY29udHJhY3RzL2lubmVyX3RyYW5zYWN0aW9ucy9jb250cmFjdC5weToyMjktMjMwCiAgICAvLyAjIGV4YW1wbGU6IE5PT1BfQVBQX0NBTEwKICAgIC8vIEBhYmltZXRob2QKICAgIGRpZyAxCiAgICBsZW4KICAgIHB1c2hpbnQgNCAvLyA0CiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgdW5jb3ZlciAyCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBwdXNoYnl0ZXMgMHgwMDA0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHVuY292ZXIgMgogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMCAvLyAxCiAgICByZXR1cm4K", "clear": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBhbGdvcHkuYXJjNC5BUkM0Q29udHJhY3QuY2xlYXJfc3RhdGVfcHJvZ3JhbSgpIC0+IHVpbnQ2NDoKbWFpbjoKICAgIHB1c2hpbnQgMSAvLyAxCiAgICByZXR1cm4K" }, "byteCode": { "approval": "CyAEAQAGAyYFBBUffHUEAr7OEQcABVdvcmxkBAuBAUNLCzEbQQAYgAQCvs4RNhoAjgEAAQAxGRQxGBBEQgAIMRkUMRgUEEM2GgFXAgCAB0hlbGxvLCBMUEkVFlcGAkxQgAQVH3x1TFCwgQFDMRtBAGoxGRREMRhEgg0EI5UAJwTqdonzBP4mRzAEQ1sICQRiZ+b7BKl5QycEUiUZ+QSF6A26BFlJV8IEb5DsUwQ2MXRdBBCpsQIEx/zk1TYaAI4NAAkAIwBZALMAywDnAQABIAE+AU4BkQGpAcEAMRkUMRgUEEOxMQCyB4GIJ7IIIrIQI7IBs7QIFihMULAiQ7GADlJveWFsdHkgUG9pbnRzsiaAAlJQsiWBArIjgYDQ28P0ArIiJbIQI7IBs7Q8FihMULAiQ7EyCkcDsiyyK7IqsimAHmh0dHBzOi8vbGlua190b19pcGZzL01vbmFfTGlzYbIngAlNb25hIExpc2GyJoACTUyyJYECsiOBZLIiJbIQI7IBs7Q8FihMULAiQzYaARexMgojshKyFLIRgQSyECOyAbMiQzYaARc2GgI2GgMXsbISshSyEYEEshAjsgGzIkM2GgE2GgIXsSKyL7Itsi6BBbIQI7IBsyJDNhoBFzYaAjYaAxexMgqyFLISshOyEYEEshAjsgGzIkM2GgEXsTIKSTEASbIssiuyKrIpsiElshAjsgGzIkM2GgEXsbIhJbIQI7IBsyJDNhoBFzEAsbIHgYgnsggishAjsgG2KbIaKrIashgkshAjsgGztwAItD5JVwQATFcABCgSREwWgAIAClBMUChMULAiQ7ErskInBLJAJLIQI7IBs7Q9FihMULAiQ7ErskInBLJAJLIQI7IBs7Q9FihMULAiQzYaARexKbIaKrIaSbIYJLIQI7IBs7Q+SVcEAExXAAQoEkSxTLIYKbIagAcABWFnYWlushokshAjsgGztD5JVwAEKBJEVwYASwEVgQQISwEVFlcGAk8CUEwWVwYCgAIABExQTwJQTFAoTFCwIkM=", "clear": "C4EBQw==" }, "compilerInfo": { "compiler": "puya", "compilerVersion": { "major": 5, "minor": 0, "patch": 0 } }, "events": [], "templateVariables": {} }