{ "name": "ReputationContract", "structs": { "ReputationRecord": [ { "name": "wallet", "type": "address" }, { "name": "successful_jobs", "type": "uint64" }, { "name": "failed_jobs", "type": "uint64" }, { "name": "refunds", "type": "uint64" }, { "name": "disputes", "type": "uint64" }, { "name": "trust_score", "type": "uint64" }, { "name": "last_updated", "type": "uint64" } ] }, "methods": [ { "name": "initialize", "args": [ { "type": "address", "name": "admin" }, { "type": "uint64", "name": "escrow_app_id" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "desc": "Initialize the admin and authorized escrow application id.", "events": [], "recommendations": {} }, { "name": "record_success", "args": [ { "type": "address", "name": "wallet" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "desc": "Record a completed job for the specified wallet.", "events": [], "recommendations": {} }, { "name": "record_failure", "args": [ { "type": "address", "name": "wallet" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "desc": "Record a failed job for the specified wallet.", "events": [], "recommendations": {} }, { "name": "record_refund", "args": [ { "type": "address", "name": "wallet" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "desc": "Record a refund for the specified wallet.", "events": [], "recommendations": {} }, { "name": "record_dispute", "args": [ { "type": "address", "name": "wallet" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "desc": "Record a dispute for the specified wallet.", "events": [], "recommendations": {} }, { "name": "update_trust_score", "args": [ { "type": "address", "name": "wallet" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "desc": "Recalculate and persist the trust score for the specified wallet.", "events": [], "recommendations": {} }, { "name": "get_reputation", "args": [ { "type": "address", "name": "wallet" } ], "returns": { "type": "(address,uint64,uint64,uint64,uint64,uint64,uint64)", "struct": "ReputationRecord" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": true, "desc": "Return the reputation record for the specified wallet.", "events": [], "recommendations": {} } ], "arcs": [ 22, 28 ], "desc": "Maintains deterministic trust metrics for agents.", "networks": {}, "state": { "schema": { "global": { "ints": 1, "bytes": 1 }, "local": { "ints": 0, "bytes": 0 } }, "keys": { "global": { "admin": { "keyType": "AVMString", "valueType": "address", "key": "YWRtaW4=" }, "escrow_app_id": { "keyType": "AVMString", "valueType": "AVMUint64", "key": "ZXNjcm93X2FwcF9pZA==" } }, "local": {}, "box": {} }, "maps": { "global": {}, "local": {}, "box": { "reputations": { "keyType": "address", "valueType": "ReputationRecord", "prefix": "cmVwdXRhdGlvbnM=" } } } }, "bareActions": { "create": [ "NoOp" ], "call": [] }, "sourceInfo": { "approval": { "sourceInfo": [ { "pc": [ 155 ], "errorMessage": "already initialized" }, { "pc": [ 151 ], "errorMessage": "check self.admin exists" }, { "pc": [ 186, 222, 259, 296, 333 ], "errorMessage": "check self.reputations entry exists" }, { "pc": [ 137, 172, 208, 245, 282, 319, 347 ], "errorMessage": "invalid number of bytes for arc4.static_array" }, { "pc": [ 146 ], "errorMessage": "invalid number of bytes for arc4.uint64" }, { "pc": [ 177, 213, 250, 287, 324, 352 ], "errorMessage": "invalid wallet address" }, { "pc": [ 360 ], "errorMessage": "unknown wallet" } ], "pcOffsetMethod": "none" }, "clear": { "sourceInfo": [], "pcOffsetMethod": "none" } }, "source": { "approval": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBhbGdvcHkuYXJjNC5BUkM0Q29udHJhY3QuYXBwcm92YWxfcHJvZ3JhbSgpIC0+IHVpbnQ2NDoKbWFpbjoKICAgIGludGNibG9jayAxIDMyIDEwMCAwCiAgICBieXRlY2Jsb2NrICJyZXB1dGF0aW9ucyIgImFkbWluIiAiZXNjcm93X2FwcF9pZCIKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBibnogbWFpbl9hZnRlcl9pZl9lbHNlQDIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9yZXB1dGF0aW9uL2NvbnRyYWN0LnB5OjI0CiAgICAvLyBzZWxmLmFkbWluLnZhbHVlID0gQWRkcmVzcygpCiAgICBieXRlY18xIC8vICJhZG1pbiIKICAgIGdsb2JhbCBaZXJvQWRkcmVzcwogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9yZXB1dGF0aW9uL2NvbnRyYWN0LnB5OjI1CiAgICAvLyBzZWxmLmVzY3Jvd19hcHBfaWQudmFsdWUgPSBVSW50NjQoMCkKICAgIGJ5dGVjXzIgLy8gImVzY3Jvd19hcHBfaWQiCiAgICBpbnRjXzMgLy8gMAogICAgYXBwX2dsb2JhbF9wdXQKCm1haW5fYWZ0ZXJfaWZfZWxzZUAyOgogICAgLy8gc21hcnRfY29udHJhY3RzL3JlcHV0YXRpb24vY29udHJhY3QucHk6MTcKICAgIC8vIGNsYXNzIFJlcHV0YXRpb25Db250cmFjdChhcmM0LkFSQzRDb250cmFjdCk6CiAgICB0eG4gTnVtQXBwQXJncwogICAgYnogbWFpbl9fX2FsZ29weV9kZWZhdWx0X2NyZWF0ZUAxNgogICAgdHhuIE9uQ29tcGxldGlvbgogICAgIQogICAgYXNzZXJ0CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgYXNzZXJ0CiAgICBwdXNoYnl0ZXNzIDB4NmRkYzU1YmIgMHhkN2FmMjM5NiAweGRlNDBhM2ZlIDB4ZDExMWE1MzEgMHg4M2FjMWM4MCAweDgzNjA1MWY4IDB4N2FhYmNlYTQgLy8gbWV0aG9kICJpbml0aWFsaXplKGFkZHJlc3MsdWludDY0KXZvaWQiLCBtZXRob2QgInJlY29yZF9zdWNjZXNzKGFkZHJlc3Mpdm9pZCIsIG1ldGhvZCAicmVjb3JkX2ZhaWx1cmUoYWRkcmVzcyl2b2lkIiwgbWV0aG9kICJyZWNvcmRfcmVmdW5kKGFkZHJlc3Mpdm9pZCIsIG1ldGhvZCAicmVjb3JkX2Rpc3B1dGUoYWRkcmVzcyl2b2lkIiwgbWV0aG9kICJ1cGRhdGVfdHJ1c3Rfc2NvcmUoYWRkcmVzcyl2b2lkIiwgbWV0aG9kICJnZXRfcmVwdXRhdGlvbihhZGRyZXNzKShhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KSIKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIG1hdGNoIGluaXRpYWxpemUgcmVjb3JkX3N1Y2Nlc3MgcmVjb3JkX2ZhaWx1cmUgcmVjb3JkX3JlZnVuZCByZWNvcmRfZGlzcHV0ZSB1cGRhdGVfdHJ1c3Rfc2NvcmUgZ2V0X3JlcHV0YXRpb24KICAgIGVycgoKbWFpbl9fX2FsZ29weV9kZWZhdWx0X2NyZWF0ZUAxNjoKICAgIHR4biBPbkNvbXBsZXRpb24KICAgICEKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICAhCiAgICAmJgogICAgcmV0dXJuCgoKLy8gc21hcnRfY29udHJhY3RzLnJlcHV0YXRpb24uY29udHJhY3QuUmVwdXRhdGlvbkNvbnRyYWN0LmluaXRpYWxpemVbcm91dGluZ10oKSAtPiB2b2lkOgppbml0aWFsaXplOgogICAgLy8gc21hcnRfY29udHJhY3RzL3JlcHV0YXRpb24vY29udHJhY3QucHk6MjcKICAgIC8vIEBhYmltZXRob2QKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzEgLy8gMzIKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQuc3RhdGljX2FycmF5PGFyYzQudWludDgsIDMyPgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZHVwCiAgICBsZW4KICAgIHB1c2hpbnQgOAogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC51aW50NjQKICAgIGJ0b2kKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9yZXB1dGF0aW9uL2NvbnRyYWN0LnB5OjMwCiAgICAvLyBhc3NlcnQgc2VsZi5hZG1pbi52YWx1ZSA9PSBBZGRyZXNzKCksICJhbHJlYWR5IGluaXRpYWxpemVkIgogICAgaW50Y18zIC8vIDAKICAgIGJ5dGVjXzEgLy8gImFkbWluIgogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBzZWxmLmFkbWluIGV4aXN0cwogICAgZ2xvYmFsIFplcm9BZGRyZXNzCiAgICA9PQogICAgYXNzZXJ0IC8vIGFscmVhZHkgaW5pdGlhbGl6ZWQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9yZXB1dGF0aW9uL2NvbnRyYWN0LnB5OjMxCiAgICAvLyBzZWxmLmFkbWluLnZhbHVlID0gYWRtaW4KICAgIGJ5dGVjXzEgLy8gImFkbWluIgogICAgdW5jb3ZlciAyCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL3JlcHV0YXRpb24vY29udHJhY3QucHk6MzIKICAgIC8vIHNlbGYuZXNjcm93X2FwcF9pZC52YWx1ZSA9IGVzY3Jvd19hcHBfaWQKICAgIGJ5dGVjXzIgLy8gImVzY3Jvd19hcHBfaWQiCiAgICBzd2FwCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL3JlcHV0YXRpb24vY29udHJhY3QucHk6MjcKICAgIC8vIEBhYmltZXRob2QKICAgIGludGNfMCAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMucmVwdXRhdGlvbi5jb250cmFjdC5SZXB1dGF0aW9uQ29udHJhY3QucmVjb3JkX3N1Y2Nlc3Nbcm91dGluZ10oKSAtPiB2b2lkOgpyZWNvcmRfc3VjY2VzczoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9yZXB1dGF0aW9uL2NvbnRyYWN0LnB5OjM0CiAgICAvLyBAYWJpbWV0aG9kCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18xIC8vIDMyCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LnN0YXRpY19hcnJheTxhcmM0LnVpbnQ4LCAzMj4KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9yZXB1dGF0aW9uL2NvbnRyYWN0LnB5OjM3CiAgICAvLyBhc3NlcnQgd2FsbGV0ICE9IEFkZHJlc3MoKSwgImludmFsaWQgd2FsbGV0IGFkZHJlc3MiCiAgICBkdXAKICAgIGdsb2JhbCBaZXJvQWRkcmVzcwogICAgIT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIHdhbGxldCBhZGRyZXNzCiAgICAvLyBzbWFydF9jb250cmFjdHMvcmVwdXRhdGlvbi9jb250cmFjdC5weTozOAogICAgLy8gc2VsZi5fZW5zdXJlX3JlcHV0YXRpb24od2FsbGV0KQogICAgZHVwCiAgICBjYWxsc3ViIF9lbnN1cmVfcmVwdXRhdGlvbgogICAgLy8gc21hcnRfY29udHJhY3RzL3JlcHV0YXRpb24vY29udHJhY3QucHk6MzkKICAgIC8vIHJlY29yZCA9IHNlbGYucmVwdXRhdGlvbnNbd2FsbGV0XS5jb3B5KCkKICAgIGJ5dGVjXzAgLy8gInJlcHV0YXRpb25zIgogICAgc3dhcAogICAgY29uY2F0CiAgICBib3hfZ2V0CiAgICBhc3NlcnQgLy8gY2hlY2sgc2VsZi5yZXB1dGF0aW9ucyBlbnRyeSBleGlzdHMKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9yZXB1dGF0aW9uL2NvbnRyYWN0LnB5OjQwCiAgICAvLyByZWNvcmQuc3VjY2Vzc2Z1bF9qb2JzID0gQXJjNFVJbnQ2NChyZWNvcmQuc3VjY2Vzc2Z1bF9qb2JzLm5hdGl2ZSArIFVJbnQ2NCgxKSkKICAgIGR1cAogICAgaW50Y18xIC8vIDMyCiAgICBleHRyYWN0X3VpbnQ2NAogICAgaW50Y18wIC8vIDEKICAgICsKICAgIGl0b2IKICAgIHJlcGxhY2UyIDMyCiAgICAvLyBzbWFydF9jb250cmFjdHMvcmVwdXRhdGlvbi9jb250cmFjdC5weTo0MQogICAgLy8gc2VsZi5fcmVmcmVzaF9zY29yZShyZWNvcmQpCiAgICBjYWxsc3ViIF9yZWZyZXNoX3Njb3JlCiAgICBwb3AKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9yZXB1dGF0aW9uL2NvbnRyYWN0LnB5OjM0CiAgICAvLyBAYWJpbWV0aG9kCiAgICBpbnRjXzAgLy8gMQogICAgcmV0dXJuCgoKLy8gc21hcnRfY29udHJhY3RzLnJlcHV0YXRpb24uY29udHJhY3QuUmVwdXRhdGlvbkNvbnRyYWN0LnJlY29yZF9mYWlsdXJlW3JvdXRpbmddKCkgLT4gdm9pZDoKcmVjb3JkX2ZhaWx1cmU6CiAgICAvLyBzbWFydF9jb250cmFjdHMvcmVwdXRhdGlvbi9jb250cmFjdC5weTo0MwogICAgLy8gQGFiaW1ldGhvZAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBsZW4KICAgIGludGNfMSAvLyAzMgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC5zdGF0aWNfYXJyYXk8YXJjNC51aW50OCwgMzI+CiAgICAvLyBzbWFydF9jb250cmFjdHMvcmVwdXRhdGlvbi9jb250cmFjdC5weTo0NgogICAgLy8gYXNzZXJ0IHdhbGxldCAhPSBBZGRyZXNzKCksICJpbnZhbGlkIHdhbGxldCBhZGRyZXNzIgogICAgZHVwCiAgICBnbG9iYWwgWmVyb0FkZHJlc3MKICAgICE9CiAgICBhc3NlcnQgLy8gaW52YWxpZCB3YWxsZXQgYWRkcmVzcwogICAgLy8gc21hcnRfY29udHJhY3RzL3JlcHV0YXRpb24vY29udHJhY3QucHk6NDcKICAgIC8vIHNlbGYuX2Vuc3VyZV9yZXB1dGF0aW9uKHdhbGxldCkKICAgIGR1cAogICAgY2FsbHN1YiBfZW5zdXJlX3JlcHV0YXRpb24KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9yZXB1dGF0aW9uL2NvbnRyYWN0LnB5OjQ4CiAgICAvLyByZWNvcmQgPSBzZWxmLnJlcHV0YXRpb25zW3dhbGxldF0uY29weSgpCiAgICBieXRlY18wIC8vICJyZXB1dGF0aW9ucyIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYm94X2dldAogICAgYXNzZXJ0IC8vIGNoZWNrIHNlbGYucmVwdXRhdGlvbnMgZW50cnkgZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvcmVwdXRhdGlvbi9jb250cmFjdC5weTo0OQogICAgLy8gcmVjb3JkLmZhaWxlZF9qb2JzID0gQXJjNFVJbnQ2NChyZWNvcmQuZmFpbGVkX2pvYnMubmF0aXZlICsgVUludDY0KDEpKQogICAgZHVwCiAgICBwdXNoaW50IDQwCiAgICBleHRyYWN0X3VpbnQ2NAogICAgaW50Y18wIC8vIDEKICAgICsKICAgIGl0b2IKICAgIHJlcGxhY2UyIDQwCiAgICAvLyBzbWFydF9jb250cmFjdHMvcmVwdXRhdGlvbi9jb250cmFjdC5weTo1MAogICAgLy8gc2VsZi5fcmVmcmVzaF9zY29yZShyZWNvcmQpCiAgICBjYWxsc3ViIF9yZWZyZXNoX3Njb3JlCiAgICBwb3AKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9yZXB1dGF0aW9uL2NvbnRyYWN0LnB5OjQzCiAgICAvLyBAYWJpbWV0aG9kCiAgICBpbnRjXzAgLy8gMQogICAgcmV0dXJuCgoKLy8gc21hcnRfY29udHJhY3RzLnJlcHV0YXRpb24uY29udHJhY3QuUmVwdXRhdGlvbkNvbnRyYWN0LnJlY29yZF9yZWZ1bmRbcm91dGluZ10oKSAtPiB2b2lkOgpyZWNvcmRfcmVmdW5kOgogICAgLy8gc21hcnRfY29udHJhY3RzL3JlcHV0YXRpb24vY29udHJhY3QucHk6NTIKICAgIC8vIEBhYmltZXRob2QKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzEgLy8gMzIKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQuc3RhdGljX2FycmF5PGFyYzQudWludDgsIDMyPgogICAgLy8gc21hcnRfY29udHJhY3RzL3JlcHV0YXRpb24vY29udHJhY3QucHk6NTUKICAgIC8vIGFzc2VydCB3YWxsZXQgIT0gQWRkcmVzcygpLCAiaW52YWxpZCB3YWxsZXQgYWRkcmVzcyIKICAgIGR1cAogICAgZ2xvYmFsIFplcm9BZGRyZXNzCiAgICAhPQogICAgYXNzZXJ0IC8vIGludmFsaWQgd2FsbGV0IGFkZHJlc3MKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9yZXB1dGF0aW9uL2NvbnRyYWN0LnB5OjU2CiAgICAvLyBzZWxmLl9lbnN1cmVfcmVwdXRhdGlvbih3YWxsZXQpCiAgICBkdXAKICAgIGNhbGxzdWIgX2Vuc3VyZV9yZXB1dGF0aW9uCiAgICAvLyBzbWFydF9jb250cmFjdHMvcmVwdXRhdGlvbi9jb250cmFjdC5weTo1NwogICAgLy8gcmVjb3JkID0gc2VsZi5yZXB1dGF0aW9uc1t3YWxsZXRdLmNvcHkoKQogICAgYnl0ZWNfMCAvLyAicmVwdXRhdGlvbnMiCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGJveF9nZXQKICAgIGFzc2VydCAvLyBjaGVjayBzZWxmLnJlcHV0YXRpb25zIGVudHJ5IGV4aXN0cwogICAgLy8gc21hcnRfY29udHJhY3RzL3JlcHV0YXRpb24vY29udHJhY3QucHk6NTgKICAgIC8vIHJlY29yZC5yZWZ1bmRzID0gQXJjNFVJbnQ2NChyZWNvcmQucmVmdW5kcy5uYXRpdmUgKyBVSW50NjQoMSkpCiAgICBkdXAKICAgIHB1c2hpbnQgNDgKICAgIGV4dHJhY3RfdWludDY0CiAgICBpbnRjXzAgLy8gMQogICAgKwogICAgaXRvYgogICAgcmVwbGFjZTIgNDgKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9yZXB1dGF0aW9uL2NvbnRyYWN0LnB5OjU5CiAgICAvLyBzZWxmLl9yZWZyZXNoX3Njb3JlKHJlY29yZCkKICAgIGNhbGxzdWIgX3JlZnJlc2hfc2NvcmUKICAgIHBvcAogICAgLy8gc21hcnRfY29udHJhY3RzL3JlcHV0YXRpb24vY29udHJhY3QucHk6NTIKICAgIC8vIEBhYmltZXRob2QKICAgIGludGNfMCAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMucmVwdXRhdGlvbi5jb250cmFjdC5SZXB1dGF0aW9uQ29udHJhY3QucmVjb3JkX2Rpc3B1dGVbcm91dGluZ10oKSAtPiB2b2lkOgpyZWNvcmRfZGlzcHV0ZToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9yZXB1dGF0aW9uL2NvbnRyYWN0LnB5OjYxCiAgICAvLyBAYWJpbWV0aG9kCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18xIC8vIDMyCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LnN0YXRpY19hcnJheTxhcmM0LnVpbnQ4LCAzMj4KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9yZXB1dGF0aW9uL2NvbnRyYWN0LnB5OjY0CiAgICAvLyBhc3NlcnQgd2FsbGV0ICE9IEFkZHJlc3MoKSwgImludmFsaWQgd2FsbGV0IGFkZHJlc3MiCiAgICBkdXAKICAgIGdsb2JhbCBaZXJvQWRkcmVzcwogICAgIT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIHdhbGxldCBhZGRyZXNzCiAgICAvLyBzbWFydF9jb250cmFjdHMvcmVwdXRhdGlvbi9jb250cmFjdC5weTo2NQogICAgLy8gc2VsZi5fZW5zdXJlX3JlcHV0YXRpb24od2FsbGV0KQogICAgZHVwCiAgICBjYWxsc3ViIF9lbnN1cmVfcmVwdXRhdGlvbgogICAgLy8gc21hcnRfY29udHJhY3RzL3JlcHV0YXRpb24vY29udHJhY3QucHk6NjYKICAgIC8vIHJlY29yZCA9IHNlbGYucmVwdXRhdGlvbnNbd2FsbGV0XS5jb3B5KCkKICAgIGJ5dGVjXzAgLy8gInJlcHV0YXRpb25zIgogICAgc3dhcAogICAgY29uY2F0CiAgICBib3hfZ2V0CiAgICBhc3NlcnQgLy8gY2hlY2sgc2VsZi5yZXB1dGF0aW9ucyBlbnRyeSBleGlzdHMKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9yZXB1dGF0aW9uL2NvbnRyYWN0LnB5OjY3CiAgICAvLyByZWNvcmQuZGlzcHV0ZXMgPSBBcmM0VUludDY0KHJlY29yZC5kaXNwdXRlcy5uYXRpdmUgKyBVSW50NjQoMSkpCiAgICBkdXAKICAgIHB1c2hpbnQgNTYKICAgIGV4dHJhY3RfdWludDY0CiAgICBpbnRjXzAgLy8gMQogICAgKwogICAgaXRvYgogICAgcmVwbGFjZTIgNTYKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9yZXB1dGF0aW9uL2NvbnRyYWN0LnB5OjY4CiAgICAvLyBzZWxmLl9yZWZyZXNoX3Njb3JlKHJlY29yZCkKICAgIGNhbGxzdWIgX3JlZnJlc2hfc2NvcmUKICAgIHBvcAogICAgLy8gc21hcnRfY29udHJhY3RzL3JlcHV0YXRpb24vY29udHJhY3QucHk6NjEKICAgIC8vIEBhYmltZXRob2QKICAgIGludGNfMCAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMucmVwdXRhdGlvbi5jb250cmFjdC5SZXB1dGF0aW9uQ29udHJhY3QudXBkYXRlX3RydXN0X3Njb3JlW3JvdXRpbmddKCkgLT4gdm9pZDoKdXBkYXRlX3RydXN0X3Njb3JlOgogICAgLy8gc21hcnRfY29udHJhY3RzL3JlcHV0YXRpb24vY29udHJhY3QucHk6NzAKICAgIC8vIEBhYmltZXRob2QKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzEgLy8gMzIKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQuc3RhdGljX2FycmF5PGFyYzQudWludDgsIDMyPgogICAgLy8gc21hcnRfY29udHJhY3RzL3JlcHV0YXRpb24vY29udHJhY3QucHk6NzMKICAgIC8vIGFzc2VydCB3YWxsZXQgIT0gQWRkcmVzcygpLCAiaW52YWxpZCB3YWxsZXQgYWRkcmVzcyIKICAgIGR1cAogICAgZ2xvYmFsIFplcm9BZGRyZXNzCiAgICAhPQogICAgYXNzZXJ0IC8vIGludmFsaWQgd2FsbGV0IGFkZHJlc3MKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9yZXB1dGF0aW9uL2NvbnRyYWN0LnB5Ojc0CiAgICAvLyBzZWxmLl9lbnN1cmVfcmVwdXRhdGlvbih3YWxsZXQpCiAgICBkdXAKICAgIGNhbGxzdWIgX2Vuc3VyZV9yZXB1dGF0aW9uCiAgICAvLyBzbWFydF9jb250cmFjdHMvcmVwdXRhdGlvbi9jb250cmFjdC5weTo3NQogICAgLy8gcmVjb3JkID0gc2VsZi5yZXB1dGF0aW9uc1t3YWxsZXRdLmNvcHkoKQogICAgYnl0ZWNfMCAvLyAicmVwdXRhdGlvbnMiCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGJveF9nZXQKICAgIGFzc2VydCAvLyBjaGVjayBzZWxmLnJlcHV0YXRpb25zIGVudHJ5IGV4aXN0cwogICAgLy8gc21hcnRfY29udHJhY3RzL3JlcHV0YXRpb24vY29udHJhY3QucHk6NzYKICAgIC8vIHNlbGYuX3JlZnJlc2hfc2NvcmUocmVjb3JkKQogICAgY2FsbHN1YiBfcmVmcmVzaF9zY29yZQogICAgcG9wCiAgICAvLyBzbWFydF9jb250cmFjdHMvcmVwdXRhdGlvbi9jb250cmFjdC5weTo3MAogICAgLy8gQGFiaW1ldGhvZAogICAgaW50Y18wIC8vIDEKICAgIHJldHVybgoKCi8vIHNtYXJ0X2NvbnRyYWN0cy5yZXB1dGF0aW9uLmNvbnRyYWN0LlJlcHV0YXRpb25Db250cmFjdC5nZXRfcmVwdXRhdGlvbltyb3V0aW5nXSgpIC0+IHZvaWQ6CmdldF9yZXB1dGF0aW9uOgogICAgLy8gc21hcnRfY29udHJhY3RzL3JlcHV0YXRpb24vY29udHJhY3QucHk6NzgKICAgIC8vIEBhYmltZXRob2QocmVhZG9ubHk9VHJ1ZSkKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzEgLy8gMzIKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQuc3RhdGljX2FycmF5PGFyYzQudWludDgsIDMyPgogICAgLy8gc21hcnRfY29udHJhY3RzL3JlcHV0YXRpb24vY29udHJhY3QucHk6ODEKICAgIC8vIGFzc2VydCB3YWxsZXQgIT0gQWRkcmVzcygpLCAiaW52YWxpZCB3YWxsZXQgYWRkcmVzcyIKICAgIGR1cAogICAgZ2xvYmFsIFplcm9BZGRyZXNzCiAgICAhPQogICAgYXNzZXJ0IC8vIGludmFsaWQgd2FsbGV0IGFkZHJlc3MKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9yZXB1dGF0aW9uL2NvbnRyYWN0LnB5OjEyNAogICAgLy8gcmV0dXJuIHdhbGxldCBpbiBzZWxmLnJlcHV0YXRpb25zCiAgICBieXRlY18wIC8vICJyZXB1dGF0aW9ucyIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgZHVwCiAgICBib3hfbGVuCiAgICBidXJ5IDEKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9yZXB1dGF0aW9uL2NvbnRyYWN0LnB5OjgyCiAgICAvLyBhc3NlcnQgc2VsZi5faGFzX3JlcHV0YXRpb24od2FsbGV0KSwgInVua25vd24gd2FsbGV0IgogICAgYXNzZXJ0IC8vIHVua25vd24gd2FsbGV0CiAgICAvLyBzbWFydF9jb250cmFjdHMvcmVwdXRhdGlvbi9jb250cmFjdC5weTo4MwogICAgLy8gcmV0dXJuIHNlbGYucmVwdXRhdGlvbnNbd2FsbGV0XS5jb3B5KCkKICAgIGJveF9nZXQKICAgIHBvcAogICAgLy8gc21hcnRfY29udHJhY3RzL3JlcHV0YXRpb24vY29udHJhY3QucHk6NzgKICAgIC8vIEBhYmltZXRob2QocmVhZG9ubHk9VHJ1ZSkKICAgIHB1c2hieXRlcyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18wIC8vIDEKICAgIHJldHVybgoKCi8vIHNtYXJ0X2NvbnRyYWN0cy5yZXB1dGF0aW9uLmNvbnRyYWN0LlJlcHV0YXRpb25Db250cmFjdC5fZW5zdXJlX3JlcHV0YXRpb24od2FsbGV0OiBieXRlcykgLT4gdm9pZDoKX2Vuc3VyZV9yZXB1dGF0aW9uOgogICAgLy8gc21hcnRfY29udHJhY3RzL3JlcHV0YXRpb24vY29udHJhY3QucHk6ODUKICAgIC8vIGRlZiBfZW5zdXJlX3JlcHV0YXRpb24oc2VsZiwgd2FsbGV0OiBBZGRyZXNzKSAtPiBOb25lOgogICAgcHJvdG8gMSAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvcmVwdXRhdGlvbi9jb250cmFjdC5weToxMjQKICAgIC8vIHJldHVybiB3YWxsZXQgaW4gc2VsZi5yZXB1dGF0aW9ucwogICAgYnl0ZWNfMCAvLyAicmVwdXRhdGlvbnMiCiAgICBmcmFtZV9kaWcgLTEKICAgIGNvbmNhdAogICAgZHVwCiAgICBib3hfbGVuCiAgICBidXJ5IDEKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9yZXB1dGF0aW9uL2NvbnRyYWN0LnB5Ojg2CiAgICAvLyBpZiBub3Qgc2VsZi5faGFzX3JlcHV0YXRpb24od2FsbGV0KToKICAgIGJueiBfZW5zdXJlX3JlcHV0YXRpb25fYWZ0ZXJfaWZfZWxzZUAyCiAgICAvLyBzbWFydF9jb250cmFjdHMvcmVwdXRhdGlvbi9jb250cmFjdC5weTo4OQogICAgLy8gc3VjY2Vzc2Z1bF9qb2JzPUFyYzRVSW50NjQoVUludDY0KDApKSwKICAgIGludGNfMyAvLyAwCiAgICBpdG9iCiAgICAvLyBzbWFydF9jb250cmFjdHMvcmVwdXRhdGlvbi9jb250cmFjdC5weTo4Ny05NQogICAgLy8gc2VsZi5yZXB1dGF0aW9uc1t3YWxsZXRdID0gUmVwdXRhdGlvblJlY29yZCgKICAgIC8vICAgICB3YWxsZXQ9d2FsbGV0LAogICAgLy8gICAgIHN1Y2Nlc3NmdWxfam9icz1BcmM0VUludDY0KFVJbnQ2NCgwKSksCiAgICAvLyAgICAgZmFpbGVkX2pvYnM9QXJjNFVJbnQ2NChVSW50NjQoMCkpLAogICAgLy8gICAgIHJlZnVuZHM9QXJjNFVJbnQ2NChVSW50NjQoMCkpLAogICAgLy8gICAgIGRpc3B1dGVzPUFyYzRVSW50NjQoVUludDY0KDApKSwKICAgIC8vICAgICB0cnVzdF9zY29yZT1BcmM0VUludDY0KFVJbnQ2NCgwKSksCiAgICAvLyAgICAgbGFzdF91cGRhdGVkPUFyYzRVSW50NjQoVUludDY0KDApKSwKICAgIC8vICkKICAgIGZyYW1lX2RpZyAtMQogICAgZGlnIDEKICAgIGNvbmNhdAogICAgZGlnIDEKICAgIGNvbmNhdAogICAgZGlnIDEKICAgIGNvbmNhdAogICAgZGlnIDEKICAgIGNvbmNhdAogICAgZGlnIDEKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICBmcmFtZV9kaWcgMAogICAgc3dhcAogICAgYm94X3B1dAoKX2Vuc3VyZV9yZXB1dGF0aW9uX2FmdGVyX2lmX2Vsc2VAMjoKICAgIHJldHN1YgoKCi8vIHNtYXJ0X2NvbnRyYWN0cy5yZXB1dGF0aW9uLmNvbnRyYWN0LlJlcHV0YXRpb25Db250cmFjdC5fcmVmcmVzaF9zY29yZShyZWNvcmQ6IGJ5dGVzKSAtPiBieXRlczoKX3JlZnJlc2hfc2NvcmU6CiAgICAvLyBzbWFydF9jb250cmFjdHMvcmVwdXRhdGlvbi9jb250cmFjdC5weTo5NwogICAgLy8gZGVmIF9yZWZyZXNoX3Njb3JlKHNlbGYsIHJlY29yZDogUmVwdXRhdGlvblJlY29yZCkgLT4gTm9uZToKICAgIHByb3RvIDEgMQogICAgcHVzaGJ5dGVzICIiCiAgICBkdXBuIDIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9yZXB1dGF0aW9uL2NvbnRyYWN0LnB5Ojk4CiAgICAvLyB0b3RhbCA9IHJlY29yZC5zdWNjZXNzZnVsX2pvYnMubmF0aXZlICsgcmVjb3JkLmZhaWxlZF9qb2JzLm5hdGl2ZQogICAgZnJhbWVfZGlnIC0xCiAgICBpbnRjXzEgLy8gMzIKICAgIGV4dHJhY3RfdWludDY0CiAgICBkdXAKICAgIGZyYW1lX2RpZyAtMQogICAgcHVzaGludCA0MAogICAgZXh0cmFjdF91aW50NjQKICAgICsKICAgIGR1cAogICAgLy8gc21hcnRfY29udHJhY3RzL3JlcHV0YXRpb24vY29udHJhY3QucHk6OTkKICAgIC8vIHN1Y2Nlc3NfcmF0ZSA9IFVJbnQ2NCgwKQogICAgaW50Y18zIC8vIDAKICAgIHN3YXAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9yZXB1dGF0aW9uL2NvbnRyYWN0LnB5OjEwMAogICAgLy8gaWYgdG90YWwgPiBVSW50NjQoMCk6CiAgICBieiBfcmVmcmVzaF9zY29yZV9hZnRlcl9pZl9lbHNlQDIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9yZXB1dGF0aW9uL2NvbnRyYWN0LnB5OjEwMQogICAgLy8gc3VjY2Vzc19yYXRlID0gKHJlY29yZC5zdWNjZXNzZnVsX2pvYnMubmF0aXZlICogVUludDY0KDEwMCkpIC8vIHRvdGFsCiAgICBmcmFtZV9kaWcgMwogICAgaW50Y18yIC8vIDEwMAogICAgKgogICAgZnJhbWVfZGlnIDQKICAgIC8KICAgIGZyYW1lX2J1cnkgNQoKX3JlZnJlc2hfc2NvcmVfYWZ0ZXJfaWZfZWxzZUAyOgogICAgLy8gc21hcnRfY29udHJhY3RzL3JlcHV0YXRpb24vY29udHJhY3QucHk6MTAzCiAgICAvLyByZWZ1bmRfcmF0ZSA9IFVJbnQ2NCgwKQogICAgaW50Y18zIC8vIDAKICAgIGZyYW1lX2J1cnkgMQogICAgLy8gc21hcnRfY29udHJhY3RzL3JlcHV0YXRpb24vY29udHJhY3QucHk6MTA0CiAgICAvLyBpZiB0b3RhbCA+IFVJbnQ2NCgwKToKICAgIGZyYW1lX2RpZyA0CiAgICBieiBfcmVmcmVzaF9zY29yZV9hZnRlcl9pZl9lbHNlQDQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9yZXB1dGF0aW9uL2NvbnRyYWN0LnB5OjEwNQogICAgLy8gcmVmdW5kX3JhdGUgPSAocmVjb3JkLnJlZnVuZHMubmF0aXZlICogVUludDY0KDEwMCkpIC8vIHRvdGFsCiAgICBmcmFtZV9kaWcgLTEKICAgIHB1c2hpbnQgNDgKICAgIGV4dHJhY3RfdWludDY0CiAgICBpbnRjXzIgLy8gMTAwCiAgICAqCiAgICBmcmFtZV9kaWcgNAogICAgLwogICAgZnJhbWVfYnVyeSAxCgpfcmVmcmVzaF9zY29yZV9hZnRlcl9pZl9lbHNlQDQ6CiAgICAvLyBzbWFydF9jb250cmFjdHMvcmVwdXRhdGlvbi9jb250cmFjdC5weToxMDcKICAgIC8vIGRpc3B1dGVfcmF0ZSA9IFVJbnQ2NCgwKQogICAgaW50Y18zIC8vIDAKICAgIGZyYW1lX2J1cnkgMAogICAgLy8gc21hcnRfY29udHJhY3RzL3JlcHV0YXRpb24vY29udHJhY3QucHk6MTA4CiAgICAvLyBpZiB0b3RhbCA+IFVJbnQ2NCgwKToKICAgIGZyYW1lX2RpZyA0CiAgICBieiBfcmVmcmVzaF9zY29yZV9hZnRlcl9pZl9lbHNlQDYKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9yZXB1dGF0aW9uL2NvbnRyYWN0LnB5OjEwOQogICAgLy8gZGlzcHV0ZV9yYXRlID0gKHJlY29yZC5kaXNwdXRlcy5uYXRpdmUgKiBVSW50NjQoMTAwKSkgLy8gdG90YWwKICAgIGZyYW1lX2RpZyAtMQogICAgcHVzaGludCA1NgogICAgZXh0cmFjdF91aW50NjQKICAgIGludGNfMiAvLyAxMDAKICAgICoKICAgIGZyYW1lX2RpZyA0CiAgICAvCiAgICBmcmFtZV9idXJ5IDAKCl9yZWZyZXNoX3Njb3JlX2FmdGVyX2lmX2Vsc2VANjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9yZXB1dGF0aW9uL2NvbnRyYWN0LnB5OjExMQogICAgLy8gcmVsaWFiaWxpdHkgPSAoKHN1Y2Nlc3NfcmF0ZSAqIFVJbnQ2NCg0MCkpIC8vIFVJbnQ2NCgxMDApKQogICAgZnJhbWVfZGlnIDUKICAgIGR1cAogICAgcHVzaGludCA0MAogICAgKgogICAgaW50Y18yIC8vIDEwMAogICAgLwogICAgLy8gc21hcnRfY29udHJhY3RzL3JlcHV0YXRpb24vY29udHJhY3QucHk6MTEyCiAgICAvLyByZWxpYWJpbGl0eSArPSAoKHJlZnVuZF9yYXRlICogVUludDY0KDIwKSkgLy8gVUludDY0KDEwMCkpCiAgICBmcmFtZV9kaWcgMQogICAgcHVzaGludCAyMAogICAgKgogICAgaW50Y18yIC8vIDEwMAogICAgLwogICAgKwogICAgLy8gc21hcnRfY29udHJhY3RzL3JlcHV0YXRpb24vY29udHJhY3QucHk6MTEzCiAgICAvLyByZWxpYWJpbGl0eSArPSAoKGRpc3B1dGVfcmF0ZSAqIFVJbnQ2NCgyMCkpIC8vIFVJbnQ2NCgxMDApKQogICAgZnJhbWVfZGlnIDAKICAgIHB1c2hpbnQgMjAKICAgICoKICAgIGludGNfMiAvLyAxMDAKICAgIC8KICAgICsKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9yZXB1dGF0aW9uL2NvbnRyYWN0LnB5OjExNAogICAgLy8gcmVsaWFiaWxpdHkgKz0gKChzdWNjZXNzX3JhdGUgKiBVSW50NjQoMjApKSAvLyBVSW50NjQoMTAwKSkKICAgIHN3YXAKICAgIHB1c2hpbnQgMjAKICAgICoKICAgIGludGNfMiAvLyAxMDAKICAgIC8KICAgICsKICAgIGR1cAogICAgZnJhbWVfYnVyeSAyCiAgICAvLyBzbWFydF9jb250cmFjdHMvcmVwdXRhdGlvbi9jb250cmFjdC5weToxMTYKICAgIC8vIGlmIHJlbGlhYmlsaXR5ID4gVUludDY0KDEwMCk6CiAgICBpbnRjXzIgLy8gMTAwCiAgICA+CiAgICBieiBfcmVmcmVzaF9zY29yZV9hZnRlcl9pZl9lbHNlQDgKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9yZXB1dGF0aW9uL2NvbnRyYWN0LnB5OjExNwogICAgLy8gcmVsaWFiaWxpdHkgPSBVSW50NjQoMTAwKQogICAgaW50Y18yIC8vIDEwMAogICAgZnJhbWVfYnVyeSAyCgpfcmVmcmVzaF9zY29yZV9hZnRlcl9pZl9lbHNlQDg6CiAgICAvLyBzbWFydF9jb250cmFjdHMvcmVwdXRhdGlvbi9jb250cmFjdC5weToxMTkKICAgIC8vIHJlY29yZC50cnVzdF9zY29yZSA9IEFyYzRVSW50NjQocmVsaWFiaWxpdHkpCiAgICBmcmFtZV9kaWcgMgogICAgaXRvYgogICAgZnJhbWVfZGlnIC0xCiAgICBzd2FwCiAgICByZXBsYWNlMiA2NAogICAgZnJhbWVfYnVyeSAtMQogICAgLy8gc21hcnRfY29udHJhY3RzL3JlcHV0YXRpb24vY29udHJhY3QucHk6MTIwCiAgICAvLyByZWNvcmQubGFzdF91cGRhdGVkID0gQXJjNFVJbnQ2NChVSW50NjQoMCkpCiAgICBpbnRjXzMgLy8gMAogICAgaXRvYgogICAgZnJhbWVfZGlnIC0xCiAgICBzd2FwCiAgICByZXBsYWNlMiA3MgogICAgZHVwCiAgICBmcmFtZV9idXJ5IC0xCiAgICAvLyBzbWFydF9jb250cmFjdHMvcmVwdXRhdGlvbi9jb250cmFjdC5weToxMjEKICAgIC8vIHNlbGYucmVwdXRhdGlvbnNbcmVjb3JkLndhbGxldF0gPSByZWNvcmQuY29weSgpCiAgICBleHRyYWN0IDAgMzIKICAgIGJ5dGVjXzAgLy8gInJlcHV0YXRpb25zIgogICAgc3dhcAogICAgY29uY2F0CiAgICBmcmFtZV9kaWcgLTEKICAgIGJveF9wdXQKICAgIGZyYW1lX2RpZyAtMQogICAgZnJhbWVfYnVyeSAwCiAgICByZXRzdWIK", "clear": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBhbGdvcHkuYXJjNC5BUkM0Q29udHJhY3QuY2xlYXJfc3RhdGVfcHJvZ3JhbSgpIC0+IHVpbnQ2NDoKbWFpbjoKICAgIHB1c2hpbnQgMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CyAEASBkACYDC3JlcHV0YXRpb25zBWFkbWluDWVzY3Jvd19hcHBfaWQxGEAABykyA2cqJWcxG0EAQDEZFEQxGESCBwRt3FW7BNevI5YE3kCj/gTREaUxBIOsHIAEg2BR+AR6q86kNhoAjgcACQAsAFAAdQCaAL8A2wAxGRQxGBQQQzYaAUkVIxJENhoCSRWBCBJEFyUpZUQyAxJEKU8CZypMZyJDNhoBSRUjEkRJMgMTREmIAMAoTFC+REkjWyIIFlwgiADYSCJDNhoBSRUjEkRJMgMTREmIAJwoTFC+REmBKFsiCBZcKIgAs0giQzYaAUkVIxJESTIDE0RJiAB3KExQvkRJgTBbIggWXDCIAI5IIkM2GgFJFSMSREkyAxNESYgAUihMUL5ESYE4WyIIFlw4iABpSCJDNhoBSRUjEkRJMgMTREmIAC0oTFC+RIgATUgiQzYaAUkVIxJESTIDE0QoTFBJvUUBRL5IgAQVH3x1TFCwIkOKAQAoi/9QSb1FAUAAGSUWi/9LAVBLAVBLAVBLAVBLAVBMUIsATL+JigEBgABHAov/I1tJi/+BKFsISSVMQQAJiwMkC4sECowFJYwBiwRBAAyL/4EwWyQLiwQKjAEljACLBEEADIv/gThbJAuLBAqMAIsFSYEoCyQKiwGBFAskCgiLAIEUCyQKCEyBFAskCghJjAIkDUEAAySMAosCFov/TFxAjP8lFov/TFxISYz/VwAgKExQi/+/i/+MAIk=", "clear": "C4EBQw==" }, "compilerInfo": { "compiler": "puya", "compilerVersion": { "major": 5, "minor": 9, "patch": 0 } }, "events": [], "templateVariables": {} }