{ "name": "TestGlobalMapTuple", "structs": { "Object7C2C03A9": [ { "name": "a", "type": "string" }, { "name": "b", "type": "uint64" } ] }, "methods": [ { "name": "testMapOfTuples", "args": [ { "type": "string", "name": "a" }, { "type": "uint64", "name": "b" }, { "type": "bool", "name": "c" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "testMapOfObjects", "args": [ { "type": "string", "name": "a" }, { "type": "uint64", "name": "b" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "testTupleMap", "args": [ { "type": "string", "name": "a" }, { "type": "uint64", "name": "b" }, { "type": "bool", "name": "c" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "testObjectMap", "args": [ { "type": "string", "name": "a" }, { "type": "uint64", "name": "b" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} } ], "arcs": [ 22, 28 ], "networks": {}, "state": { "schema": { "global": { "ints": 5, "bytes": 5 }, "local": { "ints": 0, "bytes": 0 } }, "keys": { "global": {}, "local": {}, "box": {} }, "maps": { "global": { "mapOfTuples": { "keyType": "AVMString", "valueType": "(string,uint64,bool)", "prefix": "bWFwT2ZUdXBsZXM=" }, "mapOfObjects": { "keyType": "AVMString", "valueType": "Object7C2C03A9", "prefix": "bWFwT2ZPYmplY3Rz" }, "tupleMap": { "keyType": "(string,uint64,bool)", "valueType": "AVMUint64", "prefix": "dHVwbGVNYXA=" }, "objectMap": { "keyType": "Object7C2C03A9", "valueType": "AVMUint64", "prefix": "b2JqZWN0TWFw" } }, "local": {}, "box": {} } }, "bareActions": { "create": [ "NoOp" ], "call": [] }, "sourceInfo": { "approval": { "sourceInfo": [ { "pc": [ 405, 434, 450, 507, 537, 636, 719 ], "errorMessage": "check GlobalState exists" }, { "pc": [ 189, 240, 275, 326 ], "errorMessage": "invalid array length header" }, { "pc": [ 218, 304 ], "errorMessage": "invalid number of bytes for arc4.bool" }, { "pc": [ 198, 249, 284, 335 ], "errorMessage": "invalid number of bytes for arc4.dynamic_array" }, { "pc": [ 209, 260, 295, 346 ], "errorMessage": "invalid number of bytes for arc4.uint64" }, { "pc": [ 723 ], "errorMessage": "object value should match" }, { "pc": [ 528 ], "errorMessage": "object.a should match" }, { "pc": [ 545 ], "errorMessage": "object.b should match" }, { "pc": [ 640 ], "errorMessage": "tuple value should match" }, { "pc": [ 426 ], "errorMessage": "tuple[0] should match" }, { "pc": [ 442 ], "errorMessage": "tuple[1] should match" }, { "pc": [ 457 ], "errorMessage": "tuple[2] should match" } ], "pcOffsetMethod": "none" }, "clear": { "sourceInfo": [], "pcOffsetMethod": "none" } }, "source": { "approval": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxIDIgOAogICAgYnl0ZWNibG9jayAiazEiIDB4ICJtYXBPZlR1cGxlcyIgMHgwMCAibWFwT2ZPYmplY3RzIiAidHVwbGVNYXAiICJvYmplY3RNYXAiCiAgICBiIG1haW5fYmxvY2tAMAoKbWFpbl9ibG9ja0AwOgogICAgYiBtYWluX2Jsb2NrQDEKCm1haW5fYmxvY2tAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtbWFwLmFsZ28udHM6NDgtNDkKICAgIC8vIEBjb250cmFjdCh7IHN0YXRlVG90YWxzOiB7IGdsb2JhbEJ5dGVzOiA1LCBnbG9iYWxVaW50czogNSB9IH0pCiAgICAvLyBleHBvcnQgY2xhc3MgVGVzdEdsb2JhbE1hcFR1cGxlIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTEKICAgIGIgbWFpbl9hYmlfcm91dGluZ0AyCgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLW1hcC5hbGdvLnRzOjQ4LTQ5CiAgICAvLyBAY29udHJhY3QoeyBzdGF0ZVRvdGFsczogeyBnbG9iYWxCeXRlczogNSwgZ2xvYmFsVWludHM6IDUgfSB9KQogICAgLy8gZXhwb3J0IGNsYXNzIFRlc3RHbG9iYWxNYXBUdXBsZSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2NyZWF0ZV9Ob09wQDkKICAgIGIgbWFpbl9jYWxsX05vT3BAMwoKbWFpbl9jYWxsX05vT3BAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtbWFwLmFsZ28udHM6NDgtNDkKICAgIC8vIEBjb250cmFjdCh7IHN0YXRlVG90YWxzOiB7IGdsb2JhbEJ5dGVzOiA1LCBnbG9iYWxVaW50czogNSB9IH0pCiAgICAvLyBleHBvcnQgY2xhc3MgVGVzdEdsb2JhbE1hcFR1cGxlIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4ZTg1MTljMWEgLy8gbWV0aG9kICJ0ZXN0TWFwT2ZUdXBsZXMoc3RyaW5nLHVpbnQ2NCxib29sKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHhkNDVhZTA2YSAvLyBtZXRob2QgInRlc3RNYXBPZk9iamVjdHMoc3RyaW5nLHVpbnQ2NCl2b2lkIgogICAgcHVzaGJ5dGVzIDB4NWJlNDkzZmYgLy8gbWV0aG9kICJ0ZXN0VHVwbGVNYXAoc3RyaW5nLHVpbnQ2NCxib29sKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHg5ZjAwZDFiZSAvLyBtZXRob2QgInRlc3RPYmplY3RNYXAoc3RyaW5nLHVpbnQ2NCl2b2lkIgogICAgdW5jb3ZlciA0CiAgICBtYXRjaCBtYWluX3Rlc3RNYXBPZlR1cGxlc19yb3V0ZUA0IG1haW5fdGVzdE1hcE9mT2JqZWN0c19yb3V0ZUA1IG1haW5fdGVzdFR1cGxlTWFwX3JvdXRlQDYgbWFpbl90ZXN0T2JqZWN0TWFwX3JvdXRlQDcKICAgIGIgbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDgKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA4OgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTAKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMDoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDEyCgptYWluX2FmdGVyX2lmX2Vsc2VAMTI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLW1hcC5hbGdvLnRzOjQ4LTQ5CiAgICAvLyBAY29udHJhY3QoeyBzdGF0ZVRvdGFsczogeyBnbG9iYWxCeXRlczogNSwgZ2xvYmFsVWludHM6IDUgfSB9KQogICAgLy8gZXhwb3J0IGNsYXNzIFRlc3RHbG9iYWxNYXBUdXBsZSBleHRlbmRzIENvbnRyYWN0IHsKICAgIGVycgoKbWFpbl90ZXN0T2JqZWN0TWFwX3JvdXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLW1hcC5hbGdvLnRzOjc0CiAgICAvLyB0ZXN0T2JqZWN0TWFwKGE6IHN0cmluZywgYjogdWludDY0KSB7CiAgICBjYWxsc3ViIHRlc3RPYmplY3RNYXAKICAgIGIgbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDgKCm1haW5fdGVzdFR1cGxlTWFwX3JvdXRlQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLW1hcC5hbGdvLnRzOjY5CiAgICAvLyB0ZXN0VHVwbGVNYXAoYTogc3RyaW5nLCBiOiB1aW50NjQsIGM6IGJvb2xlYW4pIHsKICAgIGNhbGxzdWIgdGVzdFR1cGxlTWFwCiAgICBiIG1haW5fc3dpdGNoX2Nhc2VfbmV4dEA4CgptYWluX3Rlc3RNYXBPZk9iamVjdHNfcm91dGVANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtbWFwLmFsZ28udHM6NjMKICAgIC8vIHRlc3RNYXBPZk9iamVjdHMoYTogc3RyaW5nLCBiOiB1aW50NjQpIHsKICAgIGNhbGxzdWIgdGVzdE1hcE9mT2JqZWN0cwogICAgYiBtYWluX3N3aXRjaF9jYXNlX25leHRAOAoKbWFpbl90ZXN0TWFwT2ZUdXBsZXNfcm91dGVANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtbWFwLmFsZ28udHM6NTYKICAgIC8vIHRlc3RNYXBPZlR1cGxlcyhhOiBzdHJpbmcsIGI6IHVpbnQ2NCwgYzogYm9vbGVhbikgewogICAgY2FsbHN1YiB0ZXN0TWFwT2ZUdXBsZXMKICAgIGIgbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDgKCm1haW5fY3JlYXRlX05vT3BAOToKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDEwCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUAxMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtbWFwLmFsZ28udHM6NDgtNDkKICAgIC8vIEBjb250cmFjdCh7IHN0YXRlVG90YWxzOiB7IGdsb2JhbEJ5dGVzOiA1LCBnbG9iYWxVaW50czogNSB9IH0pCiAgICAvLyBleHBvcnQgY2xhc3MgVGVzdEdsb2JhbE1hcFR1cGxlIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICAmJgogICAgYXNzZXJ0CiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIHJldHVybgoKCi8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtbWFwLmFsZ28udHM6OlRlc3RHbG9iYWxNYXBUdXBsZS50ZXN0TWFwT2ZUdXBsZXNbcm91dGluZ10oKSAtPiB2b2lkOgp0ZXN0TWFwT2ZUdXBsZXM6CiAgICBiIHRlc3RNYXBPZlR1cGxlc19ibG9ja0AwCgp0ZXN0TWFwT2ZUdXBsZXNfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtbWFwLmFsZ28udHM6NTYKICAgIC8vIHRlc3RNYXBPZlR1cGxlcyhhOiBzdHJpbmcsIGI6IHVpbnQ2NCwgYzogYm9vbGVhbikgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYgLy8gb24gZXJyb3I6IGludmFsaWQgYXJyYXkgbGVuZ3RoIGhlYWRlcgogICAgaW50Y18xIC8vIDEKICAgICoKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LmR5bmFtaWNfYXJyYXk8YXJjNC51aW50OD4KICAgIGV4dHJhY3QgMiAwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18zIC8vIDgKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQudWludDY0CiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAzCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18xIC8vIDEKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQuYm9vbAogICAgaW50Y18wIC8vIDAKICAgIGdldGJpdAogICAgdW5jb3ZlciAyCiAgICB1bmNvdmVyIDIKICAgIHVuY292ZXIgMgogICAgY2FsbHN1YiB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLW1hcC5hbGdvLnRzOjpUZXN0R2xvYmFsTWFwVHVwbGUudGVzdE1hcE9mVHVwbGVzCiAgICBpbnRjXzEgLy8gMQogICAgcmV0dXJuCgoKLy8gdGVzdHMvYXBwcm92YWxzL2dsb2JhbC1tYXAuYWxnby50czo6VGVzdEdsb2JhbE1hcFR1cGxlLnRlc3RNYXBPZk9iamVjdHNbcm91dGluZ10oKSAtPiB2b2lkOgp0ZXN0TWFwT2ZPYmplY3RzOgogICAgYiB0ZXN0TWFwT2ZPYmplY3RzX2Jsb2NrQDAKCnRlc3RNYXBPZk9iamVjdHNfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtbWFwLmFsZ28udHM6NjMKICAgIC8vIHRlc3RNYXBPZk9iamVjdHMoYTogc3RyaW5nLCBiOiB1aW50NjQpIHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2IC8vIG9uIGVycm9yOiBpbnZhbGlkIGFycmF5IGxlbmd0aCBoZWFkZXIKICAgIGludGNfMSAvLyAxCiAgICAqCiAgICBpbnRjXzIgLy8gMgogICAgKwogICAgZGlnIDEKICAgIGxlbgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC5keW5hbWljX2FycmF5PGFyYzQudWludDg+CiAgICBleHRyYWN0IDIgMAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZHVwCiAgICBsZW4KICAgIGludGNfMyAvLyA4CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LnVpbnQ2NAogICAgYnRvaQogICAgY2FsbHN1YiB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLW1hcC5hbGdvLnRzOjpUZXN0R2xvYmFsTWFwVHVwbGUudGVzdE1hcE9mT2JqZWN0cwogICAgaW50Y18xIC8vIDEKICAgIHJldHVybgoKCi8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtbWFwLmFsZ28udHM6OlRlc3RHbG9iYWxNYXBUdXBsZS50ZXN0VHVwbGVNYXBbcm91dGluZ10oKSAtPiB2b2lkOgp0ZXN0VHVwbGVNYXA6CiAgICBiIHRlc3RUdXBsZU1hcF9ibG9ja0AwCgp0ZXN0VHVwbGVNYXBfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtbWFwLmFsZ28udHM6NjkKICAgIC8vIHRlc3RUdXBsZU1hcChhOiBzdHJpbmcsIGI6IHVpbnQ2NCwgYzogYm9vbGVhbikgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYgLy8gb24gZXJyb3I6IGludmFsaWQgYXJyYXkgbGVuZ3RoIGhlYWRlcgogICAgaW50Y18xIC8vIDEKICAgICoKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LmR5bmFtaWNfYXJyYXk8YXJjNC51aW50OD4KICAgIGV4dHJhY3QgMiAwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18zIC8vIDgKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQudWludDY0CiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAzCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18xIC8vIDEKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQuYm9vbAogICAgaW50Y18wIC8vIDAKICAgIGdldGJpdAogICAgdW5jb3ZlciAyCiAgICB1bmNvdmVyIDIKICAgIHVuY292ZXIgMgogICAgY2FsbHN1YiB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLW1hcC5hbGdvLnRzOjpUZXN0R2xvYmFsTWFwVHVwbGUudGVzdFR1cGxlTWFwCiAgICBpbnRjXzEgLy8gMQogICAgcmV0dXJuCgoKLy8gdGVzdHMvYXBwcm92YWxzL2dsb2JhbC1tYXAuYWxnby50czo6VGVzdEdsb2JhbE1hcFR1cGxlLnRlc3RPYmplY3RNYXBbcm91dGluZ10oKSAtPiB2b2lkOgp0ZXN0T2JqZWN0TWFwOgogICAgYiB0ZXN0T2JqZWN0TWFwX2Jsb2NrQDAKCnRlc3RPYmplY3RNYXBfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtbWFwLmFsZ28udHM6NzQKICAgIC8vIHRlc3RPYmplY3RNYXAoYTogc3RyaW5nLCBiOiB1aW50NjQpIHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2IC8vIG9uIGVycm9yOiBpbnZhbGlkIGFycmF5IGxlbmd0aCBoZWFkZXIKICAgIGludGNfMSAvLyAxCiAgICAqCiAgICBpbnRjXzIgLy8gMgogICAgKwogICAgZGlnIDEKICAgIGxlbgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC5keW5hbWljX2FycmF5PGFyYzQudWludDg+CiAgICBleHRyYWN0IDIgMAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZHVwCiAgICBsZW4KICAgIGludGNfMyAvLyA4CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LnVpbnQ2NAogICAgYnRvaQogICAgY2FsbHN1YiB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLW1hcC5hbGdvLnRzOjpUZXN0R2xvYmFsTWFwVHVwbGUudGVzdE9iamVjdE1hcAogICAgaW50Y18xIC8vIDEKICAgIHJldHVybgoKCi8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtbWFwLmFsZ28udHM6OlRlc3RHbG9iYWxNYXBUdXBsZS50ZXN0TWFwT2ZUdXBsZXMoYTogYnl0ZXMsIGI6IHVpbnQ2NCwgYzogdWludDY0KSAtPiB2b2lkOgp0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLW1hcC5hbGdvLnRzOjpUZXN0R2xvYmFsTWFwVHVwbGUudGVzdE1hcE9mVHVwbGVzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2dsb2JhbC1tYXAuYWxnby50czo1NgogICAgLy8gdGVzdE1hcE9mVHVwbGVzKGE6IHN0cmluZywgYjogdWludDY0LCBjOiBib29sZWFuKSB7CiAgICBwcm90byAzIDAKICAgIGIgdGVzdHMvYXBwcm92YWxzL2dsb2JhbC1tYXAuYWxnby50czo6VGVzdEdsb2JhbE1hcFR1cGxlLnRlc3RNYXBPZlR1cGxlc19ibG9ja0AwCgp0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLW1hcC5hbGdvLnRzOjpUZXN0R2xvYmFsTWFwVHVwbGUudGVzdE1hcE9mVHVwbGVzX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLW1hcC5hbGdvLnRzOjU3CiAgICAvLyB0aGlzLm1hcE9mVHVwbGVzKCdrMScpLnZhbHVlID0gW2EsIGIsIGNdCiAgICBmcmFtZV9kaWcgLTMKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGZyYW1lX2RpZyAtMwogICAgY29uY2F0CiAgICBwdXNoaW50IDExCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgYnl0ZWNfMSAvLyAweAogICAgdW5jb3ZlciAxCiAgICBjb25jYXQKICAgIGZyYW1lX2RpZyAtMgogICAgaXRvYgogICAgY29uY2F0CiAgICBieXRlY18zIC8vIDB4MDAKICAgIGludGNfMCAvLyAwCiAgICBmcmFtZV9kaWcgLTEKICAgIHNldGJpdAogICAgY29uY2F0CiAgICB1bmNvdmVyIDEKICAgIGNvbmNhdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2dsb2JhbC1tYXAuYWxnby50czo1MAogICAgLy8gbWFwT2ZUdXBsZXMgPSBHbG9iYWxNYXA8c3RyaW5nLCBbc3RyaW5nLCB1aW50NjQsIGJvb2xlYW5dPigpCiAgICBieXRlY18yIC8vICJtYXBPZlR1cGxlcyIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtbWFwLmFsZ28udHM6NTcKICAgIC8vIHRoaXMubWFwT2ZUdXBsZXMoJ2sxJykudmFsdWUgPSBbYSwgYiwgY10KICAgIGJ5dGVjXzAgLy8gImsxIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2dsb2JhbC1tYXAuYWxnby50czo1MAogICAgLy8gbWFwT2ZUdXBsZXMgPSBHbG9iYWxNYXA8c3RyaW5nLCBbc3RyaW5nLCB1aW50NjQsIGJvb2xlYW5dPigpCiAgICBjb25jYXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtbWFwLmFsZ28udHM6NTcKICAgIC8vIHRoaXMubWFwT2ZUdXBsZXMoJ2sxJykudmFsdWUgPSBbYSwgYiwgY10KICAgIHVuY292ZXIgMQogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtbWFwLmFsZ28udHM6NTAKICAgIC8vIG1hcE9mVHVwbGVzID0gR2xvYmFsTWFwPHN0cmluZywgW3N0cmluZywgdWludDY0LCBib29sZWFuXT4oKQogICAgYnl0ZWNfMiAvLyAibWFwT2ZUdXBsZXMiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLW1hcC5hbGdvLnRzOjU4CiAgICAvLyBhc3NlcnQodGhpcy5tYXBPZlR1cGxlcygnazEnKS52YWx1ZVswXSA9PT0gYSwgJ3R1cGxlWzBdIHNob3VsZCBtYXRjaCcpCiAgICBieXRlY18wIC8vICJrMSIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtbWFwLmFsZ28udHM6NTAKICAgIC8vIG1hcE9mVHVwbGVzID0gR2xvYmFsTWFwPHN0cmluZywgW3N0cmluZywgdWludDY0LCBib29sZWFuXT4oKQogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLW1hcC5hbGdvLnRzOjU4CiAgICAvLyBhc3NlcnQodGhpcy5tYXBPZlR1cGxlcygnazEnKS52YWx1ZVswXSA9PT0gYSwgJ3R1cGxlWzBdIHNob3VsZCBtYXRjaCcpCiAgICBpbnRjXzAgLy8gMAogICAgdW5jb3ZlciAxCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIEdsb2JhbFN0YXRlIGV4aXN0cwogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGNvdmVyIDEKICAgIGR1cAogICAgbGVuCiAgICBjb3ZlciAxCiAgICB1bmNvdmVyIDIKICAgIHVuY292ZXIgMgogICAgc3Vic3RyaW5nMwogICAgZXh0cmFjdCAyIDAKICAgIGZyYW1lX2RpZyAtMwogICAgPT0KICAgIGFzc2VydCAvLyB0dXBsZVswXSBzaG91bGQgbWF0Y2gKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtbWFwLmFsZ28udHM6NTAKICAgIC8vIG1hcE9mVHVwbGVzID0gR2xvYmFsTWFwPHN0cmluZywgW3N0cmluZywgdWludDY0LCBib29sZWFuXT4oKQogICAgYnl0ZWNfMiAvLyAibWFwT2ZUdXBsZXMiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLW1hcC5hbGdvLnRzOjU5CiAgICAvLyBhc3NlcnQodGhpcy5tYXBPZlR1cGxlcygnazEnKS52YWx1ZVsxXSA9PT0gYiwgJ3R1cGxlWzFdIHNob3VsZCBtYXRjaCcpCiAgICBieXRlY18wIC8vICJrMSIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtbWFwLmFsZ28udHM6NTAKICAgIC8vIG1hcE9mVHVwbGVzID0gR2xvYmFsTWFwPHN0cmluZywgW3N0cmluZywgdWludDY0LCBib29sZWFuXT4oKQogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLW1hcC5hbGdvLnRzOjU5CiAgICAvLyBhc3NlcnQodGhpcy5tYXBPZlR1cGxlcygnazEnKS52YWx1ZVsxXSA9PT0gYiwgJ3R1cGxlWzFdIHNob3VsZCBtYXRjaCcpCiAgICBpbnRjXzAgLy8gMAogICAgdW5jb3ZlciAxCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIEdsb2JhbFN0YXRlIGV4aXN0cwogICAgaW50Y18yIC8vIDIKICAgIGludGNfMyAvLyA4CiAgICBleHRyYWN0MwogICAgYnRvaQogICAgZnJhbWVfZGlnIC0yCiAgICA9PQogICAgYXNzZXJ0IC8vIHR1cGxlWzFdIHNob3VsZCBtYXRjaAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2dsb2JhbC1tYXAuYWxnby50czo1MAogICAgLy8gbWFwT2ZUdXBsZXMgPSBHbG9iYWxNYXA8c3RyaW5nLCBbc3RyaW5nLCB1aW50NjQsIGJvb2xlYW5dPigpCiAgICBieXRlY18yIC8vICJtYXBPZlR1cGxlcyIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtbWFwLmFsZ28udHM6NjAKICAgIC8vIGFzc2VydCh0aGlzLm1hcE9mVHVwbGVzKCdrMScpLnZhbHVlWzJdID09PSBjLCAndHVwbGVbMl0gc2hvdWxkIG1hdGNoJykKICAgIGJ5dGVjXzAgLy8gImsxIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2dsb2JhbC1tYXAuYWxnby50czo1MAogICAgLy8gbWFwT2ZUdXBsZXMgPSBHbG9iYWxNYXA8c3RyaW5nLCBbc3RyaW5nLCB1aW50NjQsIGJvb2xlYW5dPigpCiAgICBjb25jYXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtbWFwLmFsZ28udHM6NjAKICAgIC8vIGFzc2VydCh0aGlzLm1hcE9mVHVwbGVzKCdrMScpLnZhbHVlWzJdID09PSBjLCAndHVwbGVbMl0gc2hvdWxkIG1hdGNoJykKICAgIGludGNfMCAvLyAwCiAgICB1bmNvdmVyIDEKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICBwdXNoaW50IDgwCiAgICBnZXRiaXQKICAgIGZyYW1lX2RpZyAtMQogICAgPT0KICAgIGFzc2VydCAvLyB0dXBsZVsyXSBzaG91bGQgbWF0Y2gKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtbWFwLmFsZ28udHM6OlRlc3RHbG9iYWxNYXBUdXBsZS50ZXN0TWFwT2ZPYmplY3RzKGE6IGJ5dGVzLCBiOiB1aW50NjQpIC0+IHZvaWQ6CnRlc3RzL2FwcHJvdmFscy9nbG9iYWwtbWFwLmFsZ28udHM6OlRlc3RHbG9iYWxNYXBUdXBsZS50ZXN0TWFwT2ZPYmplY3RzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2dsb2JhbC1tYXAuYWxnby50czo2MwogICAgLy8gdGVzdE1hcE9mT2JqZWN0cyhhOiBzdHJpbmcsIGI6IHVpbnQ2NCkgewogICAgcHJvdG8gMiAwCiAgICBiIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtbWFwLmFsZ28udHM6OlRlc3RHbG9iYWxNYXBUdXBsZS50ZXN0TWFwT2ZPYmplY3RzX2Jsb2NrQDAKCnRlc3RzL2FwcHJvdmFscy9nbG9iYWwtbWFwLmFsZ28udHM6OlRlc3RHbG9iYWxNYXBUdXBsZS50ZXN0TWFwT2ZPYmplY3RzX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLW1hcC5hbGdvLnRzOjY0CiAgICAvLyB0aGlzLm1hcE9mT2JqZWN0cygnazEnKS52YWx1ZSA9IHsgYSwgYiB9CiAgICBmcmFtZV9kaWcgLTIKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGZyYW1lX2RpZyAtMgogICAgY29uY2F0CiAgICBwdXNoaW50IDEwCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgYnl0ZWNfMSAvLyAweAogICAgdW5jb3ZlciAxCiAgICBjb25jYXQKICAgIGZyYW1lX2RpZyAtMQogICAgaXRvYgogICAgY29uY2F0CiAgICB1bmNvdmVyIDEKICAgIGNvbmNhdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2dsb2JhbC1tYXAuYWxnby50czo1MQogICAgLy8gbWFwT2ZPYmplY3RzID0gR2xvYmFsTWFwPHN0cmluZywgeyBhOiBzdHJpbmc7IGI6IHVpbnQ2NCB9PigpCiAgICBieXRlYyA0IC8vICJtYXBPZk9iamVjdHMiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLW1hcC5hbGdvLnRzOjY0CiAgICAvLyB0aGlzLm1hcE9mT2JqZWN0cygnazEnKS52YWx1ZSA9IHsgYSwgYiB9CiAgICBieXRlY18wIC8vICJrMSIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtbWFwLmFsZ28udHM6NTEKICAgIC8vIG1hcE9mT2JqZWN0cyA9IEdsb2JhbE1hcDxzdHJpbmcsIHsgYTogc3RyaW5nOyBiOiB1aW50NjQgfT4oKQogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLW1hcC5hbGdvLnRzOjY0CiAgICAvLyB0aGlzLm1hcE9mT2JqZWN0cygnazEnKS52YWx1ZSA9IHsgYSwgYiB9CiAgICB1bmNvdmVyIDEKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLW1hcC5hbGdvLnRzOjUxCiAgICAvLyBtYXBPZk9iamVjdHMgPSBHbG9iYWxNYXA8c3RyaW5nLCB7IGE6IHN0cmluZzsgYjogdWludDY0IH0+KCkKICAgIGJ5dGVjIDQgLy8gIm1hcE9mT2JqZWN0cyIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtbWFwLmFsZ28udHM6NjUKICAgIC8vIGFzc2VydCh0aGlzLm1hcE9mT2JqZWN0cygnazEnKS52YWx1ZS5hID09PSBhLCAnb2JqZWN0LmEgc2hvdWxkIG1hdGNoJykKICAgIGJ5dGVjXzAgLy8gImsxIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2dsb2JhbC1tYXAuYWxnby50czo1MQogICAgLy8gbWFwT2ZPYmplY3RzID0gR2xvYmFsTWFwPHN0cmluZywgeyBhOiBzdHJpbmc7IGI6IHVpbnQ2NCB9PigpCiAgICBjb25jYXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtbWFwLmFsZ28udHM6NjUKICAgIC8vIGFzc2VydCh0aGlzLm1hcE9mT2JqZWN0cygnazEnKS52YWx1ZS5hID09PSBhLCAnb2JqZWN0LmEgc2hvdWxkIG1hdGNoJykKICAgIGludGNfMCAvLyAwCiAgICB1bmNvdmVyIDEKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAyCiAgICBzdWJzdHJpbmczCiAgICBleHRyYWN0IDIgMAogICAgZnJhbWVfZGlnIC0yCiAgICA9PQogICAgYXNzZXJ0IC8vIG9iamVjdC5hIHNob3VsZCBtYXRjaAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2dsb2JhbC1tYXAuYWxnby50czo1MQogICAgLy8gbWFwT2ZPYmplY3RzID0gR2xvYmFsTWFwPHN0cmluZywgeyBhOiBzdHJpbmc7IGI6IHVpbnQ2NCB9PigpCiAgICBieXRlYyA0IC8vICJtYXBPZk9iamVjdHMiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLW1hcC5hbGdvLnRzOjY2CiAgICAvLyBhc3NlcnQodGhpcy5tYXBPZk9iamVjdHMoJ2sxJykudmFsdWUuYiA9PT0gYiwgJ29iamVjdC5iIHNob3VsZCBtYXRjaCcpCiAgICBieXRlY18wIC8vICJrMSIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtbWFwLmFsZ28udHM6NTEKICAgIC8vIG1hcE9mT2JqZWN0cyA9IEdsb2JhbE1hcDxzdHJpbmcsIHsgYTogc3RyaW5nOyBiOiB1aW50NjQgfT4oKQogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLW1hcC5hbGdvLnRzOjY2CiAgICAvLyBhc3NlcnQodGhpcy5tYXBPZk9iamVjdHMoJ2sxJykudmFsdWUuYiA9PT0gYiwgJ29iamVjdC5iIHNob3VsZCBtYXRjaCcpCiAgICBpbnRjXzAgLy8gMAogICAgdW5jb3ZlciAxCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIEdsb2JhbFN0YXRlIGV4aXN0cwogICAgaW50Y18yIC8vIDIKICAgIGludGNfMyAvLyA4CiAgICBleHRyYWN0MwogICAgYnRvaQogICAgZnJhbWVfZGlnIC0xCiAgICA9PQogICAgYXNzZXJ0IC8vIG9iamVjdC5iIHNob3VsZCBtYXRjaAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2dsb2JhbC1tYXAuYWxnby50czo6VGVzdEdsb2JhbE1hcFR1cGxlLnRlc3RUdXBsZU1hcChhOiBieXRlcywgYjogdWludDY0LCBjOiB1aW50NjQpIC0+IHZvaWQ6CnRlc3RzL2FwcHJvdmFscy9nbG9iYWwtbWFwLmFsZ28udHM6OlRlc3RHbG9iYWxNYXBUdXBsZS50ZXN0VHVwbGVNYXA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLW1hcC5hbGdvLnRzOjY5CiAgICAvLyB0ZXN0VHVwbGVNYXAoYTogc3RyaW5nLCBiOiB1aW50NjQsIGM6IGJvb2xlYW4pIHsKICAgIHByb3RvIDMgMAogICAgYiB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLW1hcC5hbGdvLnRzOjpUZXN0R2xvYmFsTWFwVHVwbGUudGVzdFR1cGxlTWFwX2Jsb2NrQDAKCnRlc3RzL2FwcHJvdmFscy9nbG9iYWwtbWFwLmFsZ28udHM6OlRlc3RHbG9iYWxNYXBUdXBsZS50ZXN0VHVwbGVNYXBfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtbWFwLmFsZ28udHM6NzAKICAgIC8vIHRoaXMudHVwbGVNYXAoW2EsIGIsIGNdKS52YWx1ZSA9IDk5CiAgICBmcmFtZV9kaWcgLTMKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGZyYW1lX2RpZyAtMwogICAgY29uY2F0CiAgICBwdXNoaW50IDExCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgYnl0ZWNfMSAvLyAweAogICAgdW5jb3ZlciAxCiAgICBjb25jYXQKICAgIGZyYW1lX2RpZyAtMgogICAgaXRvYgogICAgY29uY2F0CiAgICBieXRlY18zIC8vIDB4MDAKICAgIGludGNfMCAvLyAwCiAgICBmcmFtZV9kaWcgLTEKICAgIHNldGJpdAogICAgY29uY2F0CiAgICB1bmNvdmVyIDEKICAgIGNvbmNhdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2dsb2JhbC1tYXAuYWxnby50czo1MwogICAgLy8gdHVwbGVNYXAgPSBHbG9iYWxNYXA8W3N0cmluZywgdWludDY0LCBib29sZWFuXSwgdWludDY0PigpCiAgICBieXRlYyA1IC8vICJ0dXBsZU1hcCIKICAgIHVuY292ZXIgMQogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLW1hcC5hbGdvLnRzOjcwCiAgICAvLyB0aGlzLnR1cGxlTWFwKFthLCBiLCBjXSkudmFsdWUgPSA5OQogICAgcHVzaGludCA5OQogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtbWFwLmFsZ28udHM6NzEKICAgIC8vIGFzc2VydCh0aGlzLnR1cGxlTWFwKFthLCBiLCBjXSkudmFsdWUgPT09IDk5LCAndHVwbGUgdmFsdWUgc2hvdWxkIG1hdGNoJykKICAgIGZyYW1lX2RpZyAtMwogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgZnJhbWVfZGlnIC0zCiAgICBjb25jYXQKICAgIHB1c2hpbnQgMTEKICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBieXRlY18xIC8vIDB4CiAgICB1bmNvdmVyIDEKICAgIGNvbmNhdAogICAgZnJhbWVfZGlnIC0yCiAgICBpdG9iCiAgICBjb25jYXQKICAgIGJ5dGVjXzMgLy8gMHgwMAogICAgaW50Y18wIC8vIDAKICAgIGZyYW1lX2RpZyAtMQogICAgc2V0Yml0CiAgICBjb25jYXQKICAgIHVuY292ZXIgMQogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLW1hcC5hbGdvLnRzOjUzCiAgICAvLyB0dXBsZU1hcCA9IEdsb2JhbE1hcDxbc3RyaW5nLCB1aW50NjQsIGJvb2xlYW5dLCB1aW50NjQ+KCkKICAgIGJ5dGVjIDUgLy8gInR1cGxlTWFwIgogICAgdW5jb3ZlciAxCiAgICBjb25jYXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtbWFwLmFsZ28udHM6NzEKICAgIC8vIGFzc2VydCh0aGlzLnR1cGxlTWFwKFthLCBiLCBjXSkudmFsdWUgPT09IDk5LCAndHVwbGUgdmFsdWUgc2hvdWxkIG1hdGNoJykKICAgIGludGNfMCAvLyAwCiAgICB1bmNvdmVyIDEKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICBwdXNoaW50IDk5CiAgICA9PQogICAgYXNzZXJ0IC8vIHR1cGxlIHZhbHVlIHNob3VsZCBtYXRjaAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2dsb2JhbC1tYXAuYWxnby50czo6VGVzdEdsb2JhbE1hcFR1cGxlLnRlc3RPYmplY3RNYXAoYTogYnl0ZXMsIGI6IHVpbnQ2NCkgLT4gdm9pZDoKdGVzdHMvYXBwcm92YWxzL2dsb2JhbC1tYXAuYWxnby50czo6VGVzdEdsb2JhbE1hcFR1cGxlLnRlc3RPYmplY3RNYXA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLW1hcC5hbGdvLnRzOjc0CiAgICAvLyB0ZXN0T2JqZWN0TWFwKGE6IHN0cmluZywgYjogdWludDY0KSB7CiAgICBwcm90byAyIDAKICAgIGIgdGVzdHMvYXBwcm92YWxzL2dsb2JhbC1tYXAuYWxnby50czo6VGVzdEdsb2JhbE1hcFR1cGxlLnRlc3RPYmplY3RNYXBfYmxvY2tAMAoKdGVzdHMvYXBwcm92YWxzL2dsb2JhbC1tYXAuYWxnby50czo6VGVzdEdsb2JhbE1hcFR1cGxlLnRlc3RPYmplY3RNYXBfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtbWFwLmFsZ28udHM6NzUKICAgIC8vIHRoaXMub2JqZWN0TWFwKHsgYSwgYiB9KS52YWx1ZSA9IDk5CiAgICBmcmFtZV9kaWcgLTIKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGZyYW1lX2RpZyAtMgogICAgY29uY2F0CiAgICBwdXNoaW50IDEwCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgYnl0ZWNfMSAvLyAweAogICAgdW5jb3ZlciAxCiAgICBjb25jYXQKICAgIGZyYW1lX2RpZyAtMQogICAgaXRvYgogICAgY29uY2F0CiAgICB1bmNvdmVyIDEKICAgIGNvbmNhdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2dsb2JhbC1tYXAuYWxnby50czo1NAogICAgLy8gb2JqZWN0TWFwID0gR2xvYmFsTWFwPHsgYTogc3RyaW5nOyBiOiB1aW50NjQgfSwgdWludDY0PigpCiAgICBieXRlYyA2IC8vICJvYmplY3RNYXAiCiAgICB1bmNvdmVyIDEKICAgIGNvbmNhdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2dsb2JhbC1tYXAuYWxnby50czo3NQogICAgLy8gdGhpcy5vYmplY3RNYXAoeyBhLCBiIH0pLnZhbHVlID0gOTkKICAgIHB1c2hpbnQgOTkKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLW1hcC5hbGdvLnRzOjc2CiAgICAvLyBhc3NlcnQodGhpcy5vYmplY3RNYXAoeyBhLCBiIH0pLnZhbHVlID09PSA5OSwgJ29iamVjdCB2YWx1ZSBzaG91bGQgbWF0Y2gnKQogICAgZnJhbWVfZGlnIC0yCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBmcmFtZV9kaWcgLTIKICAgIGNvbmNhdAogICAgcHVzaGludCAxMAogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGJ5dGVjXzEgLy8gMHgKICAgIHVuY292ZXIgMQogICAgY29uY2F0CiAgICBmcmFtZV9kaWcgLTEKICAgIGl0b2IKICAgIGNvbmNhdAogICAgdW5jb3ZlciAxCiAgICBjb25jYXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtbWFwLmFsZ28udHM6NTQKICAgIC8vIG9iamVjdE1hcCA9IEdsb2JhbE1hcDx7IGE6IHN0cmluZzsgYjogdWludDY0IH0sIHVpbnQ2ND4oKQogICAgYnl0ZWMgNiAvLyAib2JqZWN0TWFwIgogICAgdW5jb3ZlciAxCiAgICBjb25jYXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtbWFwLmFsZ28udHM6NzYKICAgIC8vIGFzc2VydCh0aGlzLm9iamVjdE1hcCh7IGEsIGIgfSkudmFsdWUgPT09IDk5LCAnb2JqZWN0IHZhbHVlIHNob3VsZCBtYXRjaCcpCiAgICBpbnRjXzAgLy8gMAogICAgdW5jb3ZlciAxCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIEdsb2JhbFN0YXRlIGV4aXN0cwogICAgcHVzaGludCA5OQogICAgPT0KICAgIGFzc2VydCAvLyBvYmplY3QgdmFsdWUgc2hvdWxkIG1hdGNoCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLW1hcC5hbGdvLnRzOjpUZXN0R2xvYmFsTWFwVHVwbGUuX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgogICAgYiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGVfYmxvY2tAMAoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlX2Jsb2NrQDA6CiAgICByZXRzdWIK", "clear": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBiIG1haW5fYmxvY2tAMAoKbWFpbl9ibG9ja0AwOgogICAgcHVzaGludCAxCiAgICByZXR1cm4K" }, "byteCode": { "approval": "CyAEAAECCCYHAmsxAAttYXBPZlR1cGxlcwEADG1hcE9mT2JqZWN0cwh0dXBsZU1hcAlvYmplY3RNYXBCAABCAAAxGyITQQBeQgAAMRkiEkQxGCITQQBMQgAANhoAgAToUZwagATUWuBqgARb5JP/gASfANG+TwSOBAAcABYAEAAKQgAAQgAAQgAAAIgAsEL/84gAd0L/7YgATkL/54gAFUL/4UL/4TEZIhIxGCISEESIAiIjQ0IAADYaAUkiWSMLJAhLARUSRFcCADYaAkkVJRJEFzYaA0kVIxJEIlNPAk8CTwKIAHsjQ0IAADYaAUkiWSMLJAhLARUSRFcCADYaAkkVJRJEF4gAwiNDQgAANhoBSSJZIwskCEsBFRJEVwIANhoCSRUlEkQXNhoDSRUjEkQiU08CTwJPAogA5yNDQgAANhoBSSJZIwskCEsBFRJEVwIANhoCSRUlEkQXiAEjI0OKAwBCAACL/RUWVwYCi/1QgQsWVwYCKU8BUIv+FlArIov/VFBPAVAqKFBPAWcqKFAiTwFlREkiWU4BSRVOAU8CTwJSVwIAi/0SRCooUCJPAWVEJCVYF4v+EkQqKFAiTwFlRIFQU4v/EkSJigIAQgAAi/4VFlcGAov+UIEKFlcGAilPAVCL/xZQTwFQJwQoUE8BZycEKFAiTwFlREkiWU4BSRVOAU8CTwJSVwIAi/4SRCcEKFAiTwFlRCQlWBeL/xJEiYoDAEIAAIv9FRZXBgKL/VCBCxZXBgIpTwFQi/4WUCsii/9UUE8BUCcFTwFQgWNni/0VFlcGAov9UIELFlcGAilPAVCL/hZQKyKL/1RQTwFQJwVPAVAiTwFlRIFjEkSJigIAQgAAi/4VFlcGAov+UIEKFlcGAilPAVCL/xZQTwFQJwZPAVCBY2eL/hUWVwYCi/5QgQoWVwYCKU8BUIv/FlBPAVAnBk8BUCJPAWVEgWMSRIlCAACJ", "clear": "C0IAAIEBQw==" }, "compilerInfo": { "compiler": "puya", "compilerVersion": { "major": 5, "minor": 10, "patch": 0 } }, "events": [], "templateVariables": {} }