{ "name": "Intent", "structs": {}, "methods": [ { "name": "hello", "args": [ { "type": "string", "name": "name" } ], "returns": { "type": "string" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "version", "args": [], "returns": { "type": "string" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "validate_drop_threshold", "args": [ { "type": "uint64", "name": "drop_percent" } ], "returns": { "type": "uint64" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "desc": "Returns 1 when drop_percent is in [1, 100], else 0.", "events": [], "recommendations": {} }, { "name": "calculate_drop_percent", "args": [ { "type": "uint64", "name": "initial_price_micro_usd" }, { "type": "uint64", "name": "current_price_micro_usd" } ], "returns": { "type": "uint64" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "desc": "Returns percentage drop as an integer.", "events": [], "recommendations": {} }, { "name": "is_triggered", "args": [ { "type": "uint64", "name": "initial_price_micro_usd" }, { "type": "uint64", "name": "current_price_micro_usd" }, { "type": "uint64", "name": "target_drop_percent" } ], "returns": { "type": "uint64" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "desc": "Returns 1 if the price-drop condition is met, else 0.", "events": [], "recommendations": {} }, { "name": "intent_note", "args": [ { "type": "string", "name": "user" }, { "type": "string", "name": "recipient" }, { "type": "string", "name": "amount_micro_algo" }, { "type": "string", "name": "target_drop_percent" } ], "returns": { "type": "string" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "desc": "Returns a canonical note string that clients can attach to txns.\nFormat: PITCREW|user=|to=|amt=|drop=", "events": [], "recommendations": {} } ], "arcs": [ 22, 28 ], "desc": "\n Lightweight on-chain helper contract for the Pitcrew MVP.\n\n The MVP keeps intent storage and trigger orchestration in the backend,\n then asks the user to approve real transactions via wallet signing.\n This contract provides deterministic helper methods that can be called\n from clients without auto-executing funds.\n ", "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": [ 117, 270, 286, 302, 318 ], "errorMessage": "invalid array length header" }, { "pc": [ 124, 277, 293, 309, 325 ], "errorMessage": "invalid number of bytes for arc4.dynamic_array" }, { "pc": [ 160, 196, 205, 224, 233, 242 ], "errorMessage": "invalid number of bytes for arc4.uint64" } ], "pcOffsetMethod": "none" }, "clear": { "sourceInfo": [], "pcOffsetMethod": "none" } }, "source": { "approval": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBhbGdvcHkuYXJjNC5BUkM0Q29udHJhY3QuYXBwcm92YWxfcHJvZ3JhbSgpIC0+IHVpbnQ2NDoKbWFpbjoKICAgIGludGNibG9jayAwIDEgOCAyCiAgICBieXRlY2Jsb2NrIDB4MTUxZjdjNzUKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9pbnRlbnQvY29udHJhY3QucHk6NQogICAgLy8gY2xhc3MgSW50ZW50KEFSQzRDb250cmFjdCk6CiAgICB0eG4gTnVtQXBwQXJncwogICAgYnogbWFpbl9fX2FsZ29weV9kZWZhdWx0X2NyZWF0ZUAxMwogICAgdHhuIE9uQ29tcGxldGlvbgogICAgIQogICAgYXNzZXJ0CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgYXNzZXJ0CiAgICBwdXNoYnl0ZXNzIDB4MDJiZWNlMTEgMHhjODhjYmU4NSAweGZhZTM5MjZhIDB4NjU0ZWFmYmMgMHhhYmRhYWVhYSAweDRhZWJiY2MxIC8vIG1ldGhvZCAiaGVsbG8oc3RyaW5nKXN0cmluZyIsIG1ldGhvZCAidmVyc2lvbigpc3RyaW5nIiwgbWV0aG9kICJ2YWxpZGF0ZV9kcm9wX3RocmVzaG9sZCh1aW50NjQpdWludDY0IiwgbWV0aG9kICJjYWxjdWxhdGVfZHJvcF9wZXJjZW50KHVpbnQ2NCx1aW50NjQpdWludDY0IiwgbWV0aG9kICJpc190cmlnZ2VyZWQodWludDY0LHVpbnQ2NCx1aW50NjQpdWludDY0IiwgbWV0aG9kICJpbnRlbnRfbm90ZShzdHJpbmcsc3RyaW5nLHN0cmluZyxzdHJpbmcpc3RyaW5nIgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgbWF0Y2ggaGVsbG8gbWFpbl92ZXJzaW9uX3JvdXRlQDUgdmFsaWRhdGVfZHJvcF90aHJlc2hvbGQgY2FsY3VsYXRlX2Ryb3BfcGVyY2VudCBpc190cmlnZ2VyZWQgaW50ZW50X25vdGUKICAgIGVycgoKbWFpbl92ZXJzaW9uX3JvdXRlQDU6CiAgICAvLyBzbWFydF9jb250cmFjdHMvaW50ZW50L2NvbnRyYWN0LnB5OjE5CiAgICAvLyBAYWJpbWV0aG9kKCkKICAgIHB1c2hieXRlcyAweDE1MWY3Yzc1MDAxMTcwNjk3NDYzNzI2NTc3MmQ2OTZlNzQ2NTZlNzQyZDc2MzEKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIHJldHVybgoKbWFpbl9fX2FsZ29weV9kZWZhdWx0X2NyZWF0ZUAxMzoKICAgIHR4biBPbkNvbXBsZXRpb24KICAgICEKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICAhCiAgICAmJgogICAgcmV0dXJuCgoKLy8gc21hcnRfY29udHJhY3RzLmludGVudC5jb250cmFjdC5JbnRlbnQuaGVsbG9bcm91dGluZ10oKSAtPiB2b2lkOgpoZWxsbzoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9pbnRlbnQvY29udHJhY3QucHk6MTUKICAgIC8vIEBhYmltZXRob2QoKQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYgLy8gb24gZXJyb3I6IGludmFsaWQgYXJyYXkgbGVuZ3RoIGhlYWRlcgogICAgaW50Y18zIC8vIDIKICAgICsKICAgIGRpZyAxCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQuZHluYW1pY19hcnJheTxhcmM0LnVpbnQ4PgogICAgZXh0cmFjdCAyIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9pbnRlbnQvY29udHJhY3QucHk6MTcKICAgIC8vIHJldHVybiAiSGVsbG8sICIgKyBuYW1lCiAgICBwdXNoYnl0ZXMgIkhlbGxvLCAiCiAgICBzd2FwCiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9pbnRlbnQvY29udHJhY3QucHk6MTUKICAgIC8vIEBhYmltZXRob2QoKQogICAgZHVwCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMuaW50ZW50LmNvbnRyYWN0LkludGVudC52YWxpZGF0ZV9kcm9wX3RocmVzaG9sZFtyb3V0aW5nXSgpIC0+IHZvaWQ6CnZhbGlkYXRlX2Ryb3BfdGhyZXNob2xkOgogICAgLy8gc21hcnRfY29udHJhY3RzL2ludGVudC9jb250cmFjdC5weToyMwogICAgLy8gQGFiaW1ldGhvZCgpCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18yIC8vIDgKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQudWludDY0CiAgICBidG9pCiAgICBkdXAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9pbnRlbnQvY29udHJhY3QucHk6MjYKICAgIC8vIGlmIGRyb3BfcGVyY2VudCA9PSAwOgogICAgYm56IHZhbGlkYXRlX2Ryb3BfdGhyZXNob2xkX2FmdGVyX2lmX2Vsc2VAMwogICAgLy8gc21hcnRfY29udHJhY3RzL2ludGVudC9jb250cmFjdC5weToyNwogICAgLy8gcmV0dXJuIFVJbnQ2NCgwKQogICAgaW50Y18wIC8vIDAKCnZhbGlkYXRlX2Ryb3BfdGhyZXNob2xkX2FmdGVyX2lubGluZWRfc21hcnRfY29udHJhY3RzLmludGVudC5jb250cmFjdC5JbnRlbnQudmFsaWRhdGVfZHJvcF90aHJlc2hvbGRANjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9pbnRlbnQvY29udHJhY3QucHk6MjMKICAgIC8vIEBhYmltZXRob2QoKQogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIHJldHVybgoKdmFsaWRhdGVfZHJvcF90aHJlc2hvbGRfYWZ0ZXJfaWZfZWxzZUAzOgogICAgLy8gc21hcnRfY29udHJhY3RzL2ludGVudC9jb250cmFjdC5weToyOAogICAgLy8gaWYgZHJvcF9wZXJjZW50ID4gMTAwOgogICAgZHVwCiAgICBwdXNoaW50IDEwMAogICAgPgogICAgYnogdmFsaWRhdGVfZHJvcF90aHJlc2hvbGRfYWZ0ZXJfaWZfZWxzZUA1CiAgICAvLyBzbWFydF9jb250cmFjdHMvaW50ZW50L2NvbnRyYWN0LnB5OjI5CiAgICAvLyByZXR1cm4gVUludDY0KDApCiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2ludGVudC9jb250cmFjdC5weToyMwogICAgLy8gQGFiaW1ldGhvZCgpCiAgICBiIHZhbGlkYXRlX2Ryb3BfdGhyZXNob2xkX2FmdGVyX2lubGluZWRfc21hcnRfY29udHJhY3RzLmludGVudC5jb250cmFjdC5JbnRlbnQudmFsaWRhdGVfZHJvcF90aHJlc2hvbGRANgoKdmFsaWRhdGVfZHJvcF90aHJlc2hvbGRfYWZ0ZXJfaWZfZWxzZUA1OgogICAgLy8gc21hcnRfY29udHJhY3RzL2ludGVudC9jb250cmFjdC5weTozMAogICAgLy8gcmV0dXJuIFVJbnQ2NCgxKQogICAgaW50Y18xIC8vIDEKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9pbnRlbnQvY29udHJhY3QucHk6MjMKICAgIC8vIEBhYmltZXRob2QoKQogICAgYiB2YWxpZGF0ZV9kcm9wX3RocmVzaG9sZF9hZnRlcl9pbmxpbmVkX3NtYXJ0X2NvbnRyYWN0cy5pbnRlbnQuY29udHJhY3QuSW50ZW50LnZhbGlkYXRlX2Ryb3BfdGhyZXNob2xkQDYKCgovLyBzbWFydF9jb250cmFjdHMuaW50ZW50LmNvbnRyYWN0LkludGVudC5jYWxjdWxhdGVfZHJvcF9wZXJjZW50W3JvdXRpbmddKCkgLT4gdm9pZDoKY2FsY3VsYXRlX2Ryb3BfcGVyY2VudDoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9pbnRlbnQvY29udHJhY3QucHk6MzIKICAgIC8vIEBhYmltZXRob2QoKQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBsZW4KICAgIGludGNfMiAvLyA4CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LnVpbnQ2NAogICAgYnRvaQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZHVwCiAgICBsZW4KICAgIGludGNfMiAvLyA4CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LnVpbnQ2NAogICAgYnRvaQogICAgY2FsbHN1YiBzbWFydF9jb250cmFjdHMuaW50ZW50LmNvbnRyYWN0LkludGVudC5jYWxjdWxhdGVfZHJvcF9wZXJjZW50CiAgICBpdG9iCiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgcmV0dXJuCgoKLy8gc21hcnRfY29udHJhY3RzLmludGVudC5jb250cmFjdC5JbnRlbnQuaXNfdHJpZ2dlcmVkW3JvdXRpbmddKCkgLT4gdm9pZDoKaXNfdHJpZ2dlcmVkOgogICAgLy8gc21hcnRfY29udHJhY3RzL2ludGVudC9jb250cmFjdC5weTo1MgogICAgLy8gQGFiaW1ldGhvZCgpCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18yIC8vIDgKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQudWludDY0CiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18yIC8vIDgKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQudWludDY0CiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAzCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18yIC8vIDgKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQudWludDY0CiAgICBidG9pCiAgICAvLyBzbWFydF9jb250cmFjdHMvaW50ZW50L2NvbnRyYWN0LnB5OjYwLTYzCiAgICAvLyBjb21wdXRlZF9kcm9wID0gc2VsZi5jYWxjdWxhdGVfZHJvcF9wZXJjZW50KAogICAgLy8gICAgIGluaXRpYWxfcHJpY2VfbWljcm9fdXNkPWluaXRpYWxfcHJpY2VfbWljcm9fdXNkLAogICAgLy8gICAgIGN1cnJlbnRfcHJpY2VfbWljcm9fdXNkPWN1cnJlbnRfcHJpY2VfbWljcm9fdXNkLAogICAgLy8gKQogICAgY292ZXIgMgogICAgY2FsbHN1YiBzbWFydF9jb250cmFjdHMuaW50ZW50LmNvbnRyYWN0LkludGVudC5jYWxjdWxhdGVfZHJvcF9wZXJjZW50CiAgICAvLyBzbWFydF9jb250cmFjdHMvaW50ZW50L2NvbnRyYWN0LnB5OjY0CiAgICAvLyBpZiBjb21wdXRlZF9kcm9wID49IHRhcmdldF9kcm9wX3BlcmNlbnQ6CiAgICA8PQogICAgYnogaXNfdHJpZ2dlcmVkX2FmdGVyX2lmX2Vsc2VAMwogICAgLy8gc21hcnRfY29udHJhY3RzL2ludGVudC9jb250cmFjdC5weTo2NQogICAgLy8gcmV0dXJuIFVJbnQ2NCgxKQogICAgaW50Y18xIC8vIDEKCmlzX3RyaWdnZXJlZF9hZnRlcl9pbmxpbmVkX3NtYXJ0X2NvbnRyYWN0cy5pbnRlbnQuY29udHJhY3QuSW50ZW50LmlzX3RyaWdnZXJlZEA0OgogICAgLy8gc21hcnRfY29udHJhY3RzL2ludGVudC9jb250cmFjdC5weTo1MgogICAgLy8gQGFiaW1ldGhvZCgpCiAgICBpdG9iCiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgcmV0dXJuCgppc190cmlnZ2VyZWRfYWZ0ZXJfaWZfZWxzZUAzOgogICAgLy8gc21hcnRfY29udHJhY3RzL2ludGVudC9jb250cmFjdC5weTo2NgogICAgLy8gcmV0dXJuIFVJbnQ2NCgwKQogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9pbnRlbnQvY29udHJhY3QucHk6NTIKICAgIC8vIEBhYmltZXRob2QoKQogICAgYiBpc190cmlnZ2VyZWRfYWZ0ZXJfaW5saW5lZF9zbWFydF9jb250cmFjdHMuaW50ZW50LmNvbnRyYWN0LkludGVudC5pc190cmlnZ2VyZWRANAoKCi8vIHNtYXJ0X2NvbnRyYWN0cy5pbnRlbnQuY29udHJhY3QuSW50ZW50LmludGVudF9ub3RlW3JvdXRpbmddKCkgLT4gdm9pZDoKaW50ZW50X25vdGU6CiAgICAvLyBzbWFydF9jb250cmFjdHMvaW50ZW50L2NvbnRyYWN0LnB5OjY4CiAgICAvLyBAYWJpbWV0aG9kKCkKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2IC8vIG9uIGVycm9yOiBpbnZhbGlkIGFycmF5IGxlbmd0aCBoZWFkZXIKICAgIGludGNfMyAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LmR5bmFtaWNfYXJyYXk8YXJjNC51aW50OD4KICAgIGV4dHJhY3QgMiAwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNiAvLyBvbiBlcnJvcjogaW52YWxpZCBhcnJheSBsZW5ndGggaGVhZGVyCiAgICBpbnRjXzMgLy8gMgogICAgKwogICAgZGlnIDEKICAgIGxlbgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC5keW5hbWljX2FycmF5PGFyYzQudWludDg+CiAgICBleHRyYWN0IDIgMAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYgLy8gb24gZXJyb3I6IGludmFsaWQgYXJyYXkgbGVuZ3RoIGhlYWRlcgogICAgaW50Y18zIC8vIDIKICAgICsKICAgIGRpZyAxCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQuZHluYW1pY19hcnJheTxhcmM0LnVpbnQ4PgogICAgZXh0cmFjdCAyIDAKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDQKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2IC8vIG9uIGVycm9yOiBpbnZhbGlkIGFycmF5IGxlbmd0aCBoZWFkZXIKICAgIGludGNfMyAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LmR5bmFtaWNfYXJyYXk8YXJjNC51aW50OD4KICAgIGV4dHJhY3QgMiAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvaW50ZW50L2NvbnRyYWN0LnB5OjgzCiAgICAvLyAiUElUQ1JFV3x1c2VyPSIKICAgIHB1c2hieXRlcyAiUElUQ1JFV3x1c2VyPSIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9pbnRlbnQvY29udHJhY3QucHk6ODMtODQKICAgIC8vICJQSVRDUkVXfHVzZXI9IgogICAgLy8gKyB1c2VyCiAgICB1bmNvdmVyIDQKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL2ludGVudC9jb250cmFjdC5weTo4NQogICAgLy8gKyAifHRvPSIKICAgIHB1c2hieXRlcyAifHRvPSIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9pbnRlbnQvY29udHJhY3QucHk6ODMtODUKICAgIC8vICJQSVRDUkVXfHVzZXI9IgogICAgLy8gKyB1c2VyCiAgICAvLyArICJ8dG89IgogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvaW50ZW50L2NvbnRyYWN0LnB5OjgzLTg2CiAgICAvLyAiUElUQ1JFV3x1c2VyPSIKICAgIC8vICsgdXNlcgogICAgLy8gKyAifHRvPSIKICAgIC8vICsgcmVjaXBpZW50CiAgICB1bmNvdmVyIDMKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL2ludGVudC9jb250cmFjdC5weTo4NwogICAgLy8gKyAifGFtdD0iCiAgICBwdXNoYnl0ZXMgInxhbXQ9IgogICAgLy8gc21hcnRfY29udHJhY3RzL2ludGVudC9jb250cmFjdC5weTo4My04NwogICAgLy8gIlBJVENSRVd8dXNlcj0iCiAgICAvLyArIHVzZXIKICAgIC8vICsgInx0bz0iCiAgICAvLyArIHJlY2lwaWVudAogICAgLy8gKyAifGFtdD0iCiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9pbnRlbnQvY29udHJhY3QucHk6ODMtODgKICAgIC8vICJQSVRDUkVXfHVzZXI9IgogICAgLy8gKyB1c2VyCiAgICAvLyArICJ8dG89IgogICAgLy8gKyByZWNpcGllbnQKICAgIC8vICsgInxhbXQ9IgogICAgLy8gKyBhbW91bnRfbWljcm9fYWxnbwogICAgdW5jb3ZlciAyCiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9pbnRlbnQvY29udHJhY3QucHk6ODkKICAgIC8vICsgInxkcm9wPSIKICAgIHB1c2hieXRlcyAifGRyb3A9IgogICAgLy8gc21hcnRfY29udHJhY3RzL2ludGVudC9jb250cmFjdC5weTo4My04OQogICAgLy8gIlBJVENSRVd8dXNlcj0iCiAgICAvLyArIHVzZXIKICAgIC8vICsgInx0bz0iCiAgICAvLyArIHJlY2lwaWVudAogICAgLy8gKyAifGFtdD0iCiAgICAvLyArIGFtb3VudF9taWNyb19hbGdvCiAgICAvLyArICJ8ZHJvcD0iCiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9pbnRlbnQvY29udHJhY3QucHk6ODMtOTAKICAgIC8vICJQSVRDUkVXfHVzZXI9IgogICAgLy8gKyB1c2VyCiAgICAvLyArICJ8dG89IgogICAgLy8gKyByZWNpcGllbnQKICAgIC8vICsgInxhbXQ9IgogICAgLy8gKyBhbW91bnRfbWljcm9fYWxnbwogICAgLy8gKyAifGRyb3A9IgogICAgLy8gKyB0YXJnZXRfZHJvcF9wZXJjZW50CiAgICBzd2FwCiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9pbnRlbnQvY29udHJhY3QucHk6NjgKICAgIC8vIEBhYmltZXRob2QoKQogICAgZHVwCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMuaW50ZW50LmNvbnRyYWN0LkludGVudC5jYWxjdWxhdGVfZHJvcF9wZXJjZW50KGluaXRpYWxfcHJpY2VfbWljcm9fdXNkOiB1aW50NjQsIGN1cnJlbnRfcHJpY2VfbWljcm9fdXNkOiB1aW50NjQpIC0+IHVpbnQ2NDoKc21hcnRfY29udHJhY3RzLmludGVudC5jb250cmFjdC5JbnRlbnQuY2FsY3VsYXRlX2Ryb3BfcGVyY2VudDoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9pbnRlbnQvY29udHJhY3QucHk6MzItMzcKICAgIC8vIEBhYmltZXRob2QoKQogICAgLy8gZGVmIGNhbGN1bGF0ZV9kcm9wX3BlcmNlbnQoCiAgICAvLyAgICAgc2VsZiwKICAgIC8vICAgICBpbml0aWFsX3ByaWNlX21pY3JvX3VzZDogVUludDY0LAogICAgLy8gICAgIGN1cnJlbnRfcHJpY2VfbWljcm9fdXNkOiBVSW50NjQsCiAgICAvLyApIC0+IFVJbnQ2NDoKICAgIHByb3RvIDIgMQogICAgLy8gc21hcnRfY29udHJhY3RzL2ludGVudC9jb250cmFjdC5weTo0NAogICAgLy8gaWYgaW5pdGlhbF9wcmljZV9taWNyb191c2QgPT0gMDoKICAgIGZyYW1lX2RpZyAtMgogICAgYm56IHNtYXJ0X2NvbnRyYWN0cy5pbnRlbnQuY29udHJhY3QuSW50ZW50LmNhbGN1bGF0ZV9kcm9wX3BlcmNlbnRfYWZ0ZXJfaWZfZWxzZUAyCiAgICAvLyBzbWFydF9jb250cmFjdHMvaW50ZW50L2NvbnRyYWN0LnB5OjQ1CiAgICAvLyByZXR1cm4gVUludDY0KDApCiAgICBpbnRjXzAgLy8gMAogICAgcmV0c3ViCgpzbWFydF9jb250cmFjdHMuaW50ZW50LmNvbnRyYWN0LkludGVudC5jYWxjdWxhdGVfZHJvcF9wZXJjZW50X2FmdGVyX2lmX2Vsc2VAMjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9pbnRlbnQvY29udHJhY3QucHk6NDYKICAgIC8vIGlmIGN1cnJlbnRfcHJpY2VfbWljcm9fdXNkID49IGluaXRpYWxfcHJpY2VfbWljcm9fdXNkOgogICAgZnJhbWVfZGlnIC0xCiAgICBmcmFtZV9kaWcgLTIKICAgID49CiAgICBieiBzbWFydF9jb250cmFjdHMuaW50ZW50LmNvbnRyYWN0LkludGVudC5jYWxjdWxhdGVfZHJvcF9wZXJjZW50X2FmdGVyX2lmX2Vsc2VANAogICAgLy8gc21hcnRfY29udHJhY3RzL2ludGVudC9jb250cmFjdC5weTo0NwogICAgLy8gcmV0dXJuIFVJbnQ2NCgwKQogICAgaW50Y18wIC8vIDAKICAgIHJldHN1YgoKc21hcnRfY29udHJhY3RzLmludGVudC5jb250cmFjdC5JbnRlbnQuY2FsY3VsYXRlX2Ryb3BfcGVyY2VudF9hZnRlcl9pZl9lbHNlQDQ6CiAgICAvLyBzbWFydF9jb250cmFjdHMvaW50ZW50L2NvbnRyYWN0LnB5OjQ5CiAgICAvLyBkcm9wID0gaW5pdGlhbF9wcmljZV9taWNyb191c2QgLSBjdXJyZW50X3ByaWNlX21pY3JvX3VzZAogICAgZnJhbWVfZGlnIC0yCiAgICBmcmFtZV9kaWcgLTEKICAgIC0KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9pbnRlbnQvY29udHJhY3QucHk6NTAKICAgIC8vIHJldHVybiAoZHJvcCAqIDEwMCkgLy8gaW5pdGlhbF9wcmljZV9taWNyb191c2QKICAgIHB1c2hpbnQgMTAwCiAgICAqCiAgICBmcmFtZV9kaWcgLTIKICAgIC8KICAgIHJldHN1Ygo=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBhbGdvcHkuYXJjNC5BUkM0Q29udHJhY3QuY2xlYXJfc3RhdGVfcHJvZ3JhbSgpIC0+IHVpbnQ2NDoKbWFpbjoKICAgIHB1c2hpbnQgMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CyAEAAEIAiYBBBUffHUxG0EAVTEZFEQxGESCBgQCvs4RBMiMvoUE+uOSagRlTq+8BKvarqoESuu8wTYaAI4GACUAAQBOAHIAjgC+AIAXFR98dQARcGl0Y3Jldy1pbnRlbnQtdjGwI0MxGRQxGBQQQzYaAUkiWSUISwEVEkRXAgCAB0hlbGxvLCBMUEkVFlcGAkxQKExQsCNDNhoBSRUkEkQXSUAACCIWKExQsCNDSYFkDUEABCJC/+4jQv/qNhoBSRUkEkQXNhoCSRUkEkQXiAC3FihMULAjQzYaAUkVJBJEFzYaAkkVJBJEFzYaA0kVJBJEF04CiACQDkEACCMWKExQsCNDIkL/9TYaAUkiWSUISwEVEkRXAgA2GgJJIlklCEsBFRJEVwIANhoDSSJZJQhLARUSRFcCADYaBEkiWSUISwEVEkRXAgCADVBJVENSRVd8dXNlcj1PBFCABHx0bz1QTwNQgAV8YW10PVBPAlCABnxkcm9wPVBMUEkVFlcGAkxQKExQsCNDigIBi/5AAAIiiYv/i/4PQQACIomL/ov/CYFkC4v+Cok=", "clear": "C4EBQw==" }, "compilerInfo": { "compiler": "puya", "compilerVersion": { "major": 5, "minor": 7, "patch": 1 } }, "events": [], "templateVariables": {} }