diff --git a/examples/amm/tealscript_artifacts/ConstantProductAMM.approval.teal b/examples/amm/tealscript_artifacts/ConstantProductAMM.approval.teal index 0ed7fdb2a..4d33a4b53 100644 --- a/examples/amm/tealscript_artifacts/ConstantProductAMM.approval.teal +++ b/examples/amm/tealscript_artifacts/ConstantProductAMM.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // createApplication()void -abi_route_createApplication: +*abi_route_createApplication: // execute createApplication()void callsub createApplication int 1 @@ -209,14 +209,14 @@ tokensToMint: frame_dig 0 // aRatio: uint64 frame_dig 1 // bRatio: uint64 < - bz ternary1_false + bz *ternary1_false frame_dig 0 // aRatio: uint64 - b ternary1_end + b *ternary1_end -ternary1_false: +*ternary1_false: frame_dig 1 // bRatio: uint64 -ternary1_end: +*ternary1_end: frame_bury 2 // ratio: uint64 // examples/amm/amm.algo.ts:58 @@ -335,7 +335,7 @@ tokensToSwap: retsub // set_governor(account)void -abi_route_set_governor: +*abi_route_set_governor: // governor: account txna ApplicationArgs 1 btoi @@ -367,7 +367,7 @@ set_governor: retsub // bootstrap(pay,asset,asset)uint64 -abi_route_bootstrap: +*abi_route_bootstrap: // The ABI return prefix byte 0x151f7c75 @@ -479,7 +479,7 @@ bootstrap: retsub // mint(axfer,axfer,asset,asset,asset)void -abi_route_mint: +*abi_route_mint: // bAsset: asset txna ApplicationArgs 3 btoi @@ -624,7 +624,7 @@ mint: == assert - // if0_condition + // *if0_condition // examples/amm/amm.algo.ts:123 // this.app.address.assetBalance(aAsset) === aXfer.assetAmount && // this.app.address.assetBalance(bAsset) === bXfer.assetAmount @@ -636,7 +636,7 @@ mint: gtxns AssetAmount == dup - bz skip_and0 + bz *skip_and0 global CurrentApplicationAddress frame_dig -5 // bAsset: Asset asset_holding_get AssetBalance @@ -646,10 +646,10 @@ mint: == && -skip_and0: - bz if0_else +*skip_and0: + bz *if0_else - // if0_consequent + // *if0_consequent // examples/amm/amm.algo.ts:126 // this.tokensToMintIntial(aXfer.assetAmount, bXfer.assetAmount) frame_dig -2 // bXfer: AssetTransferTxn @@ -657,9 +657,9 @@ skip_and0: frame_dig -1 // aXfer: AssetTransferTxn gtxns AssetAmount callsub tokensToMintIntial - b if0_end + b *if0_end -if0_else: +*if0_else: // examples/amm/amm.algo.ts:128 // toMint = this.tokensToMint( // TOTAL_SUPPLY - this.app.address.assetBalance(poolAsset), @@ -709,11 +709,11 @@ if0_else: txn Sender callsub doAxfer -if0_end: +*if0_end: retsub // burn(axfer,asset,asset,asset)void -abi_route_burn: +*abi_route_burn: // bAsset: asset txna ApplicationArgs 3 btoi @@ -872,7 +872,7 @@ burn: retsub // swap(axfer,asset,asset)void -abi_route_swap: +*abi_route_swap: // bAsset: asset txna ApplicationArgs 2 btoi @@ -969,14 +969,14 @@ swap: gtxns XferAsset frame_dig -2 // aAsset: Asset == - bz ternary3_false + bz *ternary3_false frame_dig -2 // aAsset: Asset - b ternary3_end + b *ternary3_end -ternary3_false: +*ternary3_false: frame_dig -3 // bAsset: Asset -ternary3_end: +*ternary3_end: frame_bury 0 // outId: asset // examples/amm/amm.algo.ts:182 @@ -1028,18 +1028,18 @@ ternary3_end: app_global_put retsub -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "set_governor(account)void" method "bootstrap(pay,asset,asset)uint64" method "mint(axfer,axfer,asset,asset,asset)void" method "burn(axfer,asset,asset,asset)void" method "swap(axfer,asset,asset)void" txna ApplicationArgs 0 - match abi_route_set_governor abi_route_bootstrap abi_route_mint abi_route_burn abi_route_swap + match *abi_route_set_governor *abi_route_bootstrap *abi_route_mint *abi_route_burn *abi_route_swap err \ No newline at end of file diff --git a/examples/amm/tealscript_artifacts/ConstantProductAMM.arc32.json b/examples/amm/tealscript_artifacts/ConstantProductAMM.arc32.json index d0b0b1aec..49fb1bb0a 100644 --- a/examples/amm/tealscript_artifacts/ConstantProductAMM.arc32.json +++ b/examples/amm/tealscript_artifacts/ConstantProductAMM.arc32.json @@ -80,7 +80,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBjcmVhdGVBcHBsaWNhdGlvbigpdm9pZAphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CgkvLyBleGVjdXRlIGNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkCgljYWxsc3ViIGNyZWF0ZUFwcGxpY2F0aW9uCglpbnQgMQoJcmV0dXJuCgovLyBjcmVhdGVBcHBsaWNhdGlvbigpOiB2b2lkCmNyZWF0ZUFwcGxpY2F0aW9uOgoJcHJvdG8gMCAwCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjIwCgkvLyB0aGlzLmdvdmVybm9yLnZhbHVlID0gdGhpcy50eG4uc2VuZGVyCglieXRlIDB4NjcgLy8gImciCgl0eG4gU2VuZGVyCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBkb0NyZWF0ZVBvb2xUb2tlbihhQXNzZXQ6IEFzc2V0LCBiQXNzZXQ6IEFzc2V0KTogQXNzZXQKZG9DcmVhdGVQb29sVG9rZW46Cglwcm90byAyIDEKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MjYKCS8vIHJldHVybiBzZW5kQXNzZXRDcmVhdGlvbih7CgkvLyAgICAgICBjb25maWdBc3NldE5hbWU6ICdEUFQtJyArIGFBc3NldC51bml0TmFtZSArICctJyArIGJBc3NldC51bml0TmFtZSwKCS8vICAgICAgIGNvbmZpZ0Fzc2V0VW5pdE5hbWU6ICdkcHQnLAoJLy8gICAgICAgY29uZmlnQXNzZXRUb3RhbDogVE9UQUxfU1VQUExZLAoJLy8gICAgICAgY29uZmlnQXNzZXREZWNpbWFsczogMywKCS8vICAgICAgIGNvbmZpZ0Fzc2V0TWFuYWdlcjogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgIGNvbmZpZ0Fzc2V0UmVzZXJ2ZTogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICB9KTsKCWl0eG5fYmVnaW4KCWludCBhY2ZnCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjI3CgkvLyBjb25maWdBc3NldE5hbWU6ICdEUFQtJyArIGFBc3NldC51bml0TmFtZSArICctJyArIGJBc3NldC51bml0TmFtZQoJYnl0ZSAweDQ0NTA1NDJkIC8vICJEUFQtIgoJZnJhbWVfZGlnIC0xIC8vIGFBc3NldDogQXNzZXQKCWFzc2V0X3BhcmFtc19nZXQgQXNzZXRVbml0TmFtZQoJcG9wCgljb25jYXQKCWJ5dGUgMHgyZCAvLyAiLSIKCWNvbmNhdAoJZnJhbWVfZGlnIC0yIC8vIGJBc3NldDogQXNzZXQKCWFzc2V0X3BhcmFtc19nZXQgQXNzZXRVbml0TmFtZQoJcG9wCgljb25jYXQKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXROYW1lCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjI4CgkvLyBjb25maWdBc3NldFVuaXROYW1lOiAnZHB0JwoJYnl0ZSAweDY0NzA3NCAvLyAiZHB0IgoJaXR4bl9maWVsZCBDb25maWdBc3NldFVuaXROYW1lCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjI5CgkvLyBjb25maWdBc3NldFRvdGFsOiBUT1RBTF9TVVBQTFkKCWludCAxMDAwMDAwMDAwMAoJaXR4bl9maWVsZCBDb25maWdBc3NldFRvdGFsCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjMwCgkvLyBjb25maWdBc3NldERlY2ltYWxzOiAzCglpbnQgMwoJaXR4bl9maWVsZCBDb25maWdBc3NldERlY2ltYWxzCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjMxCgkvLyBjb25maWdBc3NldE1hbmFnZXI6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0TWFuYWdlcgoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czozMgoJLy8gY29uZmlnQXNzZXRSZXNlcnZlOiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBDb25maWdBc3NldFJlc2VydmUKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglpdHhuIENyZWF0ZWRBc3NldElECglyZXRzdWIKCi8vIGRvQXhmZXIocmVjZWl2ZXI6IEFjY291bnQsIGFzc2V0OiBBc3NldCwgYW1vdW50OiB1aW50NjQpOiB2b2lkCmRvQXhmZXI6Cglwcm90byAzIDAKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MzcKCS8vIHNlbmRBc3NldFRyYW5zZmVyKHsKCS8vICAgICAgIGFzc2V0UmVjZWl2ZXI6IHJlY2VpdmVyLAoJLy8gICAgICAgeGZlckFzc2V0OiBhc3NldCwKCS8vICAgICAgIGFzc2V0QW1vdW50OiBhbW91bnQsCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludCBheGZlcgoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czozOAoJLy8gYXNzZXRSZWNlaXZlcjogcmVjZWl2ZXIKCWZyYW1lX2RpZyAtMSAvLyByZWNlaXZlcjogQWNjb3VudAoJaXR4bl9maWVsZCBBc3NldFJlY2VpdmVyCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjM5CgkvLyB4ZmVyQXNzZXQ6IGFzc2V0CglmcmFtZV9kaWcgLTIgLy8gYXNzZXQ6IEFzc2V0CglpdHhuX2ZpZWxkIFhmZXJBc3NldAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo0MAoJLy8gYXNzZXRBbW91bnQ6IGFtb3VudAoJZnJhbWVfZGlnIC0zIC8vIGFtb3VudDogdWludDY0CglpdHhuX2ZpZWxkIEFzc2V0QW1vdW50CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyBkb09wdEluKGFzc2V0OiBBc3NldCk6IHZvaWQKZG9PcHRJbjoKCXByb3RvIDEgMAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo0NQoJLy8gdGhpcy5kb0F4ZmVyKHRoaXMuYXBwLmFkZHJlc3MsIGFzc2V0LCAwKQoJaW50IDAKCWZyYW1lX2RpZyAtMSAvLyBhc3NldDogQXNzZXQKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCgljYWxsc3ViIGRvQXhmZXIKCXJldHN1YgoKLy8gdG9rZW5zVG9NaW50SW50aWFsKGFBbW91bnQ6IHVpbnQ2NCwgYkFtb3VudDogdWludDY0KTogdWludDY0CnRva2Vuc1RvTWludEludGlhbDoKCXByb3RvIDIgMQoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo0OQoJLy8gcmV0dXJuIHNxcnQoYUFtb3VudCAqIGJBbW91bnQpOwoJZnJhbWVfZGlnIC0xIC8vIGFBbW91bnQ6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGJBbW91bnQ6IHVpbnQ2NAoJKgoJc3FydAoJcmV0c3ViCgovLyB0b2tlbnNUb01pbnQoaXNzdWVkOiB1aW50NjQsIGFTdXBwbHk6IHVpbnQ2NCwgYlN1cHBseTogdWludDY0LCBhQW1vdW50OiB1aW50NjQsIGJBbW91bnQ6IHVpbnQ2NCk6IHVpbnQ2NAp0b2tlbnNUb01pbnQ6Cglwcm90byA1IDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiAyCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjUzCgkvLyBhUmF0aW8gPSB3aWRlUmF0aW8oW2FBbW91bnQsIFNDQUxFXSwgW2FTdXBwbHldKQoJZnJhbWVfZGlnIC00IC8vIGFBbW91bnQ6IHVpbnQ2NAoJaW50IDEwMDAKCW11bHcKCWludCAwCglmcmFtZV9kaWcgLTIgLy8gYVN1cHBseTogdWludDY0CglkaXZtb2R3Cglwb3AKCXBvcAoJc3dhcAoJIQoJYXNzZXJ0CglmcmFtZV9idXJ5IDAgLy8gYVJhdGlvOiB1aW50NjQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6NTQKCS8vIGJSYXRpbyA9IHdpZGVSYXRpbyhbYkFtb3VudCwgU0NBTEVdLCBbYlN1cHBseV0pCglmcmFtZV9kaWcgLTUgLy8gYkFtb3VudDogdWludDY0CglpbnQgMTAwMAoJbXVsdwoJaW50IDAKCWZyYW1lX2RpZyAtMyAvLyBiU3VwcGx5OiB1aW50NjQKCWRpdm1vZHcKCXBvcAoJcG9wCglzd2FwCgkhCglhc3NlcnQKCWZyYW1lX2J1cnkgMSAvLyBiUmF0aW86IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo1NgoJLy8gcmF0aW8gPSBhUmF0aW8gPCBiUmF0aW8gPyBhUmF0aW8gOiBiUmF0aW8KCWZyYW1lX2RpZyAwIC8vIGFSYXRpbzogdWludDY0CglmcmFtZV9kaWcgMSAvLyBiUmF0aW86IHVpbnQ2NAoJPAoJYnogdGVybmFyeTFfZmFsc2UKCWZyYW1lX2RpZyAwIC8vIGFSYXRpbzogdWludDY0CgliIHRlcm5hcnkxX2VuZAoKdGVybmFyeTFfZmFsc2U6CglmcmFtZV9kaWcgMSAvLyBiUmF0aW86IHVpbnQ2NAoKdGVybmFyeTFfZW5kOgoJZnJhbWVfYnVyeSAyIC8vIHJhdGlvOiB1aW50NjQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6NTgKCS8vIHJldHVybiB3aWRlUmF0aW8oW3JhdGlvLCBpc3N1ZWRdLCBbU0NBTEVdKTsKCWZyYW1lX2RpZyAyIC8vIHJhdGlvOiB1aW50NjQKCWZyYW1lX2RpZyAtMSAvLyBpc3N1ZWQ6IHVpbnQ2NAoJbXVsdwoJaW50IDAKCWludCAxMDAwCglkaXZtb2R3Cglwb3AKCXBvcAoJc3dhcAoJIQoJYXNzZXJ0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMgoJcmV0c3ViCgovLyBjb21wdXRlUmF0aW8oKTogdWludDY0CmNvbXB1dGVSYXRpbzoKCXByb3RvIDAgMQoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo2MgoJLy8gcmV0dXJuIHdpZGVSYXRpbygKCS8vICAgICAgIFt0aGlzLmFwcC5hZGRyZXNzLmFzc2V0QmFsYW5jZSh0aGlzLmFzc2V0QS52YWx1ZSksIFNDQUxFXSwKCS8vICAgICAgIFt0aGlzLmFwcC5hZGRyZXNzLmFzc2V0QmFsYW5jZSh0aGlzLmFzc2V0Qi52YWx1ZSldCgkvLyAgICAgKTsKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglieXRlIDB4NjEgLy8gImEiCglhcHBfZ2xvYmFsX2dldAoJYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCglwb3AKCWludCAxMDAwCgltdWx3CglpbnQgMAoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWJ5dGUgMHg2MiAvLyAiYiIKCWFwcF9nbG9iYWxfZ2V0Cglhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKCXBvcAoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCWFzc2VydAoJcmV0c3ViCgovLyB0b2tlbnNUb0J1cm4oaXNzdWVkOiB1aW50NjQsIHN1cHBseTogdWludDY0LCBhbW91bnQ6IHVpbnQ2NCk6IHVpbnQ2NAp0b2tlbnNUb0J1cm46Cglwcm90byAzIDEKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6NjkKCS8vIHJldHVybiB3aWRlUmF0aW8oW3N1cHBseSwgYW1vdW50XSwgW2lzc3VlZF0pOwoJZnJhbWVfZGlnIC0yIC8vIHN1cHBseTogdWludDY0CglmcmFtZV9kaWcgLTMgLy8gYW1vdW50OiB1aW50NjQKCW11bHcKCWludCAwCglmcmFtZV9kaWcgLTEgLy8gaXNzdWVkOiB1aW50NjQKCWRpdm1vZHcKCXBvcAoJcG9wCglzd2FwCgkhCglhc3NlcnQKCXJldHN1YgoKLy8gdG9rZW5zVG9Td2FwKGluQW1vdW50OiB1aW50NjQsIGluU3VwcGx5OiB1aW50NjQsIG91dFN1cHBseTogdWludDY0KTogdWludDY0CnRva2Vuc1RvU3dhcDoKCXByb3RvIDMgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjczCgkvLyBmYWN0b3IgPSBTQ0FMRSAtIEZFRQoJaW50IDk5NQoJZnJhbWVfYnVyeSAwIC8vIGZhY3RvcjogdWludDY0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjc0CgkvLyByZXR1cm4gd2lkZVJhdGlvKFtpbkFtb3VudCwgZmFjdG9yLCBvdXRTdXBwbHldLCBbaW5TdXBwbHkgKiBTQ0FMRSArIGluQW1vdW50ICogZmFjdG9yXSk7CglmcmFtZV9kaWcgLTEgLy8gaW5BbW91bnQ6IHVpbnQ2NAoJZnJhbWVfZGlnIDAgLy8gZmFjdG9yOiB1aW50NjQKCW11bHcKCWZyYW1lX2RpZyAtMyAvLyBvdXRTdXBwbHk6IHVpbnQ2NAoJdW5jb3ZlciAyCglkaWcgMQoJKgoJY292ZXIgMgoJbXVsdwoJY292ZXIgMgoJKwoJc3dhcAoJaW50IDAKCWZyYW1lX2RpZyAtMiAvLyBpblN1cHBseTogdWludDY0CglpbnQgMTAwMAoJKgoJZnJhbWVfZGlnIC0xIC8vIGluQW1vdW50OiB1aW50NjQKCWZyYW1lX2RpZyAwIC8vIGZhY3RvcjogdWludDY0CgkqCgkrCglkaXZtb2R3Cglwb3AKCXBvcAoJc3dhcAoJIQoJYXNzZXJ0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIHNldF9nb3Zlcm5vcihhY2NvdW50KXZvaWQKYWJpX3JvdXRlX3NldF9nb3Zlcm5vcjoKCS8vIGdvdmVybm9yOiBhY2NvdW50Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgl0eG5hcyBBY2NvdW50cwoKCS8vIGV4ZWN1dGUgc2V0X2dvdmVybm9yKGFjY291bnQpdm9pZAoJY2FsbHN1YiBzZXRfZ292ZXJub3IKCWludCAxCglyZXR1cm4KCi8vIHNldF9nb3Zlcm5vcihnb3Zlcm5vcjogQWNjb3VudCk6IHZvaWQKc2V0X2dvdmVybm9yOgoJcHJvdG8gMSAwCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjc4CgkvLyB2ZXJpZnlBcHBDYWxsVHhuKHRoaXMudHhuLCB7IHNlbmRlcjogdGhpcy5nb3Zlcm5vci52YWx1ZSB9KQoJLy8gdmVyaWZ5IHNlbmRlcgoJdHhuIFNlbmRlcgoJYnl0ZSAweDY3IC8vICJnIgoJYXBwX2dsb2JhbF9nZXQKCT09Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6NzkKCS8vIHRoaXMuZ292ZXJub3IudmFsdWUgPSBnb3Zlcm5vcgoJYnl0ZSAweDY3IC8vICJnIgoJZnJhbWVfZGlnIC0xIC8vIGdvdmVybm9yOiBBY2NvdW50CglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBib290c3RyYXAocGF5LGFzc2V0LGFzc2V0KXVpbnQ2NAphYmlfcm91dGVfYm9vdHN0cmFwOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiQXNzZXQ6IGFzc2V0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgl0eG5hcyBBc3NldHMKCgkvLyBhQXNzZXQ6IGFzc2V0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgl0eG5hcyBBc3NldHMKCgkvLyBzZWVkOiBwYXkKCXR4biBHcm91cEluZGV4CglpbnQgMQoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJaW50IHBheQoJPT0KCWFzc2VydAoKCS8vIGV4ZWN1dGUgYm9vdHN0cmFwKHBheSxhc3NldCxhc3NldCl1aW50NjQKCWNhbGxzdWIgYm9vdHN0cmFwCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYm9vdHN0cmFwKHNlZWQ6IFBheVR4biwgYUFzc2V0OiBBc3NldCwgYkFzc2V0OiBBc3NldCk6IEFzc2V0CmJvb3RzdHJhcDoKCXByb3RvIDMgMQoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo4MwoJLy8gdmVyaWZ5QXBwQ2FsbFR4bih0aGlzLnR4biwgeyBzZW5kZXI6IHRoaXMuZ292ZXJub3IudmFsdWUgfSkKCS8vIHZlcmlmeSBzZW5kZXIKCXR4biBTZW5kZXIKCWJ5dGUgMHg2NyAvLyAiZyIKCWFwcF9nbG9iYWxfZ2V0Cgk9PQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjg1CgkvLyBhc3NlcnQoZ2xvYmFscy5ncm91cFNpemUgPT09IDIpCglnbG9iYWwgR3JvdXBTaXplCglpbnQgMgoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo4NwoJLy8gdmVyaWZ5UGF5VHhuKHNlZWQsIHsgcmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MsIGFtb3VudDogeyBncmVhdGVyVGhhbkVxdWFsVG86IDMwMF8wMDAgfSB9KQoJLy8gdmVyaWZ5IHJlY2VpdmVyCglmcmFtZV9kaWcgLTEgLy8gc2VlZDogUGF5VHhuCglndHhucyBSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYW1vdW50CglmcmFtZV9kaWcgLTEgLy8gc2VlZDogUGF5VHhuCglndHhucyBBbW91bnQKCWludCAzMDBfMDAwCgk+PQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjg4CgkvLyBhc3NlcnQoYUFzc2V0IDwgYkFzc2V0KQoJZnJhbWVfZGlnIC0yIC8vIGFBc3NldDogQXNzZXQKCWZyYW1lX2RpZyAtMyAvLyBiQXNzZXQ6IEFzc2V0Cgk8Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6OTAKCS8vIHRoaXMuYXNzZXRBLnZhbHVlID0gYUFzc2V0CglieXRlIDB4NjEgLy8gImEiCglmcmFtZV9kaWcgLTIgLy8gYUFzc2V0OiBBc3NldAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6OTEKCS8vIHRoaXMuYXNzZXRCLnZhbHVlID0gYkFzc2V0CglieXRlIDB4NjIgLy8gImIiCglmcmFtZV9kaWcgLTMgLy8gYkFzc2V0OiBBc3NldAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6OTIKCS8vIHRoaXMucG9vbFRva2VuLnZhbHVlID0gdGhpcy5kb0NyZWF0ZVBvb2xUb2tlbihhQXNzZXQsIGJBc3NldCkKCWJ5dGUgMHg3MCAvLyAicCIKCWZyYW1lX2RpZyAtMyAvLyBiQXNzZXQ6IEFzc2V0CglmcmFtZV9kaWcgLTIgLy8gYUFzc2V0OiBBc3NldAoJY2FsbHN1YiBkb0NyZWF0ZVBvb2xUb2tlbgoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6OTQKCS8vIHRoaXMuZG9PcHRJbihhQXNzZXQpCglmcmFtZV9kaWcgLTIgLy8gYUFzc2V0OiBBc3NldAoJY2FsbHN1YiBkb09wdEluCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjk1CgkvLyB0aGlzLmRvT3B0SW4oYkFzc2V0KQoJZnJhbWVfZGlnIC0zIC8vIGJBc3NldDogQXNzZXQKCWNhbGxzdWIgZG9PcHRJbgoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo5NwoJLy8gcmV0dXJuIHRoaXMucG9vbFRva2VuLnZhbHVlOwoJYnl0ZSAweDcwIC8vICJwIgoJYXBwX2dsb2JhbF9nZXQKCXJldHN1YgoKLy8gbWludChheGZlcixheGZlcixhc3NldCxhc3NldCxhc3NldCl2b2lkCmFiaV9yb3V0ZV9taW50OgoJLy8gYkFzc2V0OiBhc3NldAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJYnRvaQoJdHhuYXMgQXNzZXRzCgoJLy8gYUFzc2V0OiBhc3NldAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoJdHhuYXMgQXNzZXRzCgoJLy8gcG9vbEFzc2V0OiBhc3NldAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoJdHhuYXMgQXNzZXRzCgoJLy8gYlhmZXI6IGF4ZmVyCgl0eG4gR3JvdXBJbmRleAoJaW50IDEKCS0KCWR1cAoJZ3R4bnMgVHlwZUVudW0KCWludCBheGZlcgoJPT0KCWFzc2VydAoKCS8vIGFYZmVyOiBheGZlcgoJdHhuIEdyb3VwSW5kZXgKCWludCAyCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgYXhmZXIKCT09Cglhc3NlcnQKCgkvLyBleGVjdXRlIG1pbnQoYXhmZXIsYXhmZXIsYXNzZXQsYXNzZXQsYXNzZXQpdm9pZAoJY2FsbHN1YiBtaW50CglpbnQgMQoJcmV0dXJuCgovLyBtaW50KGFYZmVyOiBBc3NldFRyYW5zZmVyVHhuLCBiWGZlcjogQXNzZXRUcmFuc2ZlclR4biwgcG9vbEFzc2V0OiBBc3NldCwgYUFzc2V0OiBBc3NldCwgYkFzc2V0OiBBc3NldCk6IHZvaWQKbWludDoKCXByb3RvIDUgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gd2VsbCBmb3JtZWQgbWludAoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjEwMgoJLy8gYXNzZXJ0KGFBc3NldCA9PT0gdGhpcy5hc3NldEEudmFsdWUpCglmcmFtZV9kaWcgLTQgLy8gYUFzc2V0OiBBc3NldAoJYnl0ZSAweDYxIC8vICJhIgoJYXBwX2dsb2JhbF9nZXQKCT09Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTAzCgkvLyBhc3NlcnQoYkFzc2V0ID09PSB0aGlzLmFzc2V0Qi52YWx1ZSkKCWZyYW1lX2RpZyAtNSAvLyBiQXNzZXQ6IEFzc2V0CglieXRlIDB4NjIgLy8gImIiCglhcHBfZ2xvYmFsX2dldAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxMDQKCS8vIGFzc2VydChwb29sQXNzZXQgPT09IHRoaXMucG9vbFRva2VuLnZhbHVlKQoJZnJhbWVfZGlnIC0zIC8vIHBvb2xBc3NldDogQXNzZXQKCWJ5dGUgMHg3MCAvLyAicCIKCWFwcF9nbG9iYWxfZ2V0Cgk9PQoJYXNzZXJ0CgoJLy8gdmFsaWQgYXNzZXQgQSBheGZlcgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjEwNwoJLy8gdmVyaWZ5QXNzZXRUcmFuc2ZlclR4bihhWGZlciwgewoJLy8gICAgICAgc2VuZGVyOiB0aGlzLnR4bi5zZW5kZXIsCgkvLyAgICAgICBhc3NldEFtb3VudDogeyBncmVhdGVyVGhhbjogMCB9LAoJLy8gICAgICAgYXNzZXRSZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgIHhmZXJBc3NldDogYUFzc2V0LAoJLy8gICAgIH0pCgkvLyB2ZXJpZnkgc2VuZGVyCglmcmFtZV9kaWcgLTEgLy8gYVhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIFNlbmRlcgoJdHhuIFNlbmRlcgoJPT0KCWFzc2VydAoKCS8vIHZlcmlmeSBhc3NldEFtb3VudAoJZnJhbWVfZGlnIC0xIC8vIGFYZmVyOiBBc3NldFRyYW5zZmVyVHhuCglndHhucyBBc3NldEFtb3VudAoJaW50IDAKCT4KCWFzc2VydAoKCS8vIHZlcmlmeSBhc3NldFJlY2VpdmVyCglmcmFtZV9kaWcgLTEgLy8gYVhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIEFzc2V0UmVjZWl2ZXIKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCgk9PQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IHhmZXJBc3NldAoJZnJhbWVfZGlnIC0xIC8vIGFYZmVyOiBBc3NldFRyYW5zZmVyVHhuCglndHhucyBYZmVyQXNzZXQKCWZyYW1lX2RpZyAtNCAvLyBhQXNzZXQ6IEFzc2V0Cgk9PQoJYXNzZXJ0CgoJLy8gdmFsaWQgYXNzZXQgQiBheGZlcgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjExNQoJLy8gdmVyaWZ5QXNzZXRUcmFuc2ZlclR4bihiWGZlciwgewoJLy8gICAgICAgc2VuZGVyOiB0aGlzLnR4bi5zZW5kZXIsCgkvLyAgICAgICBhc3NldEFtb3VudDogeyBncmVhdGVyVGhhbjogMCB9LAoJLy8gICAgICAgYXNzZXRSZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgIHhmZXJBc3NldDogYkFzc2V0LAoJLy8gICAgIH0pCgkvLyB2ZXJpZnkgc2VuZGVyCglmcmFtZV9kaWcgLTIgLy8gYlhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIFNlbmRlcgoJdHhuIFNlbmRlcgoJPT0KCWFzc2VydAoKCS8vIHZlcmlmeSBhc3NldEFtb3VudAoJZnJhbWVfZGlnIC0yIC8vIGJYZmVyOiBBc3NldFRyYW5zZmVyVHhuCglndHhucyBBc3NldEFtb3VudAoJaW50IDAKCT4KCWFzc2VydAoKCS8vIHZlcmlmeSBhc3NldFJlY2VpdmVyCglmcmFtZV9kaWcgLTIgLy8gYlhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIEFzc2V0UmVjZWl2ZXIKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCgk9PQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IHhmZXJBc3NldAoJZnJhbWVfZGlnIC0yIC8vIGJYZmVyOiBBc3NldFRyYW5zZmVyVHhuCglndHhucyBYZmVyQXNzZXQKCWZyYW1lX2RpZyAtNSAvLyBiQXNzZXQ6IEFzc2V0Cgk9PQoJYXNzZXJ0CgoJLy8gaWYwX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjEyMwoJLy8gdGhpcy5hcHAuYWRkcmVzcy5hc3NldEJhbGFuY2UoYUFzc2V0KSA9PT0gYVhmZXIuYXNzZXRBbW91bnQgJiYKCS8vICAgICAgIHRoaXMuYXBwLmFkZHJlc3MuYXNzZXRCYWxhbmNlKGJBc3NldCkgPT09IGJYZmVyLmFzc2V0QW1vdW50CglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJZnJhbWVfZGlnIC00IC8vIGFBc3NldDogQXNzZXQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJcG9wCglmcmFtZV9kaWcgLTEgLy8gYVhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIEFzc2V0QW1vdW50Cgk9PQoJZHVwCglieiBza2lwX2FuZDAKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglmcmFtZV9kaWcgLTUgLy8gYkFzc2V0OiBBc3NldAoJYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCglwb3AKCWZyYW1lX2RpZyAtMiAvLyBiWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRBbW91bnQKCT09CgkmJgoKc2tpcF9hbmQwOgoJYnogaWYwX2Vsc2UKCgkvLyBpZjBfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjEyNgoJLy8gdGhpcy50b2tlbnNUb01pbnRJbnRpYWwoYVhmZXIuYXNzZXRBbW91bnQsIGJYZmVyLmFzc2V0QW1vdW50KQoJZnJhbWVfZGlnIC0yIC8vIGJYZmVyOiBBc3NldFRyYW5zZmVyVHhuCglndHhucyBBc3NldEFtb3VudAoJZnJhbWVfZGlnIC0xIC8vIGFYZmVyOiBBc3NldFRyYW5zZmVyVHhuCglndHhucyBBc3NldEFtb3VudAoJY2FsbHN1YiB0b2tlbnNUb01pbnRJbnRpYWwKCWIgaWYwX2VuZAoKaWYwX2Vsc2U6CgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTI4CgkvLyB0b01pbnQgPSB0aGlzLnRva2Vuc1RvTWludCgKCS8vICAgICAgICAgVE9UQUxfU1VQUExZIC0gdGhpcy5hcHAuYWRkcmVzcy5hc3NldEJhbGFuY2UocG9vbEFzc2V0KSwKCS8vICAgICAgICAgdGhpcy5hcHAuYWRkcmVzcy5hc3NldEJhbGFuY2UoYUFzc2V0KSAtIGFYZmVyLmFzc2V0QW1vdW50LAoJLy8gICAgICAgICB0aGlzLmFwcC5hZGRyZXNzLmFzc2V0QmFsYW5jZShiQXNzZXQpIC0gYlhmZXIuYXNzZXRBbW91bnQsCgkvLyAgICAgICAgIGFYZmVyLmFzc2V0QW1vdW50LAoJLy8gICAgICAgICBiWGZlci5hc3NldEFtb3VudAoJLy8gICAgICAgKQoJZnJhbWVfZGlnIC0yIC8vIGJYZmVyOiBBc3NldFRyYW5zZmVyVHhuCglndHhucyBBc3NldEFtb3VudAoJZnJhbWVfZGlnIC0xIC8vIGFYZmVyOiBBc3NldFRyYW5zZmVyVHhuCglndHhucyBBc3NldEFtb3VudAoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWZyYW1lX2RpZyAtNSAvLyBiQXNzZXQ6IEFzc2V0Cglhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKCXBvcAoJZnJhbWVfZGlnIC0yIC8vIGJYZmVyOiBBc3NldFRyYW5zZmVyVHhuCglndHhucyBBc3NldEFtb3VudAoJLQoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWZyYW1lX2RpZyAtNCAvLyBhQXNzZXQ6IEFzc2V0Cglhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKCXBvcAoJZnJhbWVfZGlnIC0xIC8vIGFYZmVyOiBBc3NldFRyYW5zZmVyVHhuCglndHhucyBBc3NldEFtb3VudAoJLQoJaW50IDEwMDAwMDAwMDAwCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJZnJhbWVfZGlnIC0zIC8vIHBvb2xBc3NldDogQXNzZXQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJcG9wCgktCgljYWxsc3ViIHRva2Vuc1RvTWludAoJZnJhbWVfYnVyeSAwIC8vIHRvTWludDogdWludDY0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjEzNgoJLy8gYXNzZXJ0KHRvTWludCA+IDApCglmcmFtZV9kaWcgMCAvLyB0b01pbnQ6IHVpbnQ2NAoJaW50IDAKCT4KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxMzgKCS8vIHRoaXMuZG9BeGZlcih0aGlzLnR4bi5zZW5kZXIsIHBvb2xBc3NldCwgdG9NaW50KQoJZnJhbWVfZGlnIDAgLy8gdG9NaW50OiB1aW50NjQKCWZyYW1lX2RpZyAtMyAvLyBwb29sQXNzZXQ6IEFzc2V0Cgl0eG4gU2VuZGVyCgljYWxsc3ViIGRvQXhmZXIKCmlmMF9lbmQ6CglyZXRzdWIKCi8vIGJ1cm4oYXhmZXIsYXNzZXQsYXNzZXQsYXNzZXQpdm9pZAphYmlfcm91dGVfYnVybjoKCS8vIGJBc3NldDogYXNzZXQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWJ0b2kKCXR4bmFzIEFzc2V0cwoKCS8vIGFBc3NldDogYXNzZXQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCXR4bmFzIEFzc2V0cwoKCS8vIHBvb2xBc3NldDogYXNzZXQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCXR4bmFzIEFzc2V0cwoKCS8vIHBvb2xYZmVyOiBheGZlcgoJdHhuIEdyb3VwSW5kZXgKCWludCAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgYXhmZXIKCT09Cglhc3NlcnQKCgkvLyBleGVjdXRlIGJ1cm4oYXhmZXIsYXNzZXQsYXNzZXQsYXNzZXQpdm9pZAoJY2FsbHN1YiBidXJuCglpbnQgMQoJcmV0dXJuCgovLyBidXJuKHBvb2xYZmVyOiBBc3NldFRyYW5zZmVyVHhuLCBwb29sQXNzZXQ6IEFzc2V0LCBhQXNzZXQ6IEFzc2V0LCBiQXNzZXQ6IEFzc2V0KTogdm9pZApidXJuOgoJcHJvdG8gNCAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gMgoKCS8vIHdlbGwgZm9ybWVkIGJ1cm4KCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxNDQKCS8vIGFzc2VydChwb29sQXNzZXQgPT09IHRoaXMucG9vbFRva2VuLnZhbHVlKQoJZnJhbWVfZGlnIC0yIC8vIHBvb2xBc3NldDogQXNzZXQKCWJ5dGUgMHg3MCAvLyAicCIKCWFwcF9nbG9iYWxfZ2V0Cgk9PQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjE0NQoJLy8gYXNzZXJ0KGFBc3NldCA9PT0gdGhpcy5hc3NldEEudmFsdWUpCglmcmFtZV9kaWcgLTMgLy8gYUFzc2V0OiBBc3NldAoJYnl0ZSAweDYxIC8vICJhIgoJYXBwX2dsb2JhbF9nZXQKCT09Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTQ2CgkvLyBhc3NlcnQoYkFzc2V0ID09PSB0aGlzLmFzc2V0Qi52YWx1ZSkKCWZyYW1lX2RpZyAtNCAvLyBiQXNzZXQ6IEFzc2V0CglieXRlIDB4NjIgLy8gImIiCglhcHBfZ2xvYmFsX2dldAoJPT0KCWFzc2VydAoKCS8vIHZhbGlkIHBvb2wgYXhmZXIKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxNDkKCS8vIHZlcmlmeUFzc2V0VHJhbnNmZXJUeG4ocG9vbFhmZXIsIHsKCS8vICAgICAgIHNlbmRlcjogdGhpcy50eG4uc2VuZGVyLAoJLy8gICAgICAgYXNzZXRBbW91bnQ6IHsgZ3JlYXRlclRoYW46IDAgfSwKCS8vICAgICAgIGFzc2V0UmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICB4ZmVyQXNzZXQ6IHBvb2xBc3NldCwKCS8vICAgICB9KQoJLy8gdmVyaWZ5IHNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xYZmVyOiBBc3NldFRyYW5zZmVyVHhuCglndHhucyBTZW5kZXIKCXR4biBTZW5kZXIKCT09Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYXNzZXRBbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBwb29sWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRBbW91bnQKCWludCAwCgk+Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYXNzZXRSZWNlaXZlcgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xYZmVyOiBBc3NldFRyYW5zZmVyVHhuCglndHhucyBBc3NldFJlY2VpdmVyCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJPT0KCWFzc2VydAoKCS8vIHZlcmlmeSB4ZmVyQXNzZXQKCWZyYW1lX2RpZyAtMSAvLyBwb29sWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgWGZlckFzc2V0CglmcmFtZV9kaWcgLTIgLy8gcG9vbEFzc2V0OiBBc3NldAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxNTYKCS8vIGlzc3VlZCA9IFRPVEFMX1NVUFBMWSAtICh0aGlzLmFwcC5hZGRyZXNzLmFzc2V0QmFsYW5jZShwb29sQXNzZXQpIC0gcG9vbFhmZXIuYXNzZXRBbW91bnQpCglpbnQgMTAwMDAwMDAwMDAKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglmcmFtZV9kaWcgLTIgLy8gcG9vbEFzc2V0OiBBc3NldAoJYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCglwb3AKCWZyYW1lX2RpZyAtMSAvLyBwb29sWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRBbW91bnQKCS0KCS0KCWZyYW1lX2J1cnkgMCAvLyBpc3N1ZWQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxNTgKCS8vIGFBbXQgPSB0aGlzLnRva2Vuc1RvQnVybihpc3N1ZWQsIHRoaXMuYXBwLmFkZHJlc3MuYXNzZXRCYWxhbmNlKGFBc3NldCksIHBvb2xYZmVyLmFzc2V0QW1vdW50KQoJZnJhbWVfZGlnIC0xIC8vIHBvb2xYZmVyOiBBc3NldFRyYW5zZmVyVHhuCglndHhucyBBc3NldEFtb3VudAoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWZyYW1lX2RpZyAtMyAvLyBhQXNzZXQ6IEFzc2V0Cglhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKCXBvcAoJZnJhbWVfZGlnIDAgLy8gaXNzdWVkOiB1aW50NjQKCWNhbGxzdWIgdG9rZW5zVG9CdXJuCglmcmFtZV9idXJ5IDEgLy8gYUFtdDogdWludDY0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjE2MAoJLy8gYkFtdCA9IHRoaXMudG9rZW5zVG9CdXJuKGlzc3VlZCwgdGhpcy5hcHAuYWRkcmVzcy5hc3NldEJhbGFuY2UoYkFzc2V0KSwgcG9vbFhmZXIuYXNzZXRBbW91bnQpCglmcmFtZV9kaWcgLTEgLy8gcG9vbFhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIEFzc2V0QW1vdW50CglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJZnJhbWVfZGlnIC00IC8vIGJBc3NldDogQXNzZXQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJcG9wCglmcmFtZV9kaWcgMCAvLyBpc3N1ZWQ6IHVpbnQ2NAoJY2FsbHN1YiB0b2tlbnNUb0J1cm4KCWZyYW1lX2J1cnkgMiAvLyBiQW10OiB1aW50NjQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTYyCgkvLyB0aGlzLmRvQXhmZXIodGhpcy50eG4uc2VuZGVyLCBhQXNzZXQsIGFBbXQpCglmcmFtZV9kaWcgMSAvLyBhQW10OiB1aW50NjQKCWZyYW1lX2RpZyAtMyAvLyBhQXNzZXQ6IEFzc2V0Cgl0eG4gU2VuZGVyCgljYWxsc3ViIGRvQXhmZXIKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTYzCgkvLyB0aGlzLmRvQXhmZXIodGhpcy50eG4uc2VuZGVyLCBiQXNzZXQsIGJBbXQpCglmcmFtZV9kaWcgMiAvLyBiQW10OiB1aW50NjQKCWZyYW1lX2RpZyAtNCAvLyBiQXNzZXQ6IEFzc2V0Cgl0eG4gU2VuZGVyCgljYWxsc3ViIGRvQXhmZXIKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTY1CgkvLyB0aGlzLnJhdGlvLnZhbHVlID0gdGhpcy5jb21wdXRlUmF0aW8oKQoJYnl0ZSAweDcyIC8vICJyIgoJY2FsbHN1YiBjb21wdXRlUmF0aW8KCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIHN3YXAoYXhmZXIsYXNzZXQsYXNzZXQpdm9pZAphYmlfcm91dGVfc3dhcDoKCS8vIGJBc3NldDogYXNzZXQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCXR4bmFzIEFzc2V0cwoKCS8vIGFBc3NldDogYXNzZXQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCXR4bmFzIEFzc2V0cwoKCS8vIHN3YXBYZmVyOiBheGZlcgoJdHhuIEdyb3VwSW5kZXgKCWludCAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgYXhmZXIKCT09Cglhc3NlcnQKCgkvLyBleGVjdXRlIHN3YXAoYXhmZXIsYXNzZXQsYXNzZXQpdm9pZAoJY2FsbHN1YiBzd2FwCglpbnQgMQoJcmV0dXJuCgovLyBzd2FwKHN3YXBYZmVyOiBBc3NldFRyYW5zZmVyVHhuLCBhQXNzZXQ6IEFzc2V0LCBiQXNzZXQ6IEFzc2V0KTogdm9pZApzd2FwOgoJcHJvdG8gMyAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gMgoKCS8vIHdlbGwgZm9ybWVkIHN3YXAKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxNzAKCS8vIGFzc2VydChhQXNzZXQgPT09IHRoaXMuYXNzZXRBLnZhbHVlKQoJZnJhbWVfZGlnIC0yIC8vIGFBc3NldDogQXNzZXQKCWJ5dGUgMHg2MSAvLyAiYSIKCWFwcF9nbG9iYWxfZ2V0Cgk9PQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjE3MQoJLy8gYXNzZXJ0KGJBc3NldCA9PT0gdGhpcy5hc3NldEIudmFsdWUpCglmcmFtZV9kaWcgLTMgLy8gYkFzc2V0OiBBc3NldAoJYnl0ZSAweDYyIC8vICJiIgoJYXBwX2dsb2JhbF9nZXQKCT09Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTczCgkvLyB2ZXJpZnlBc3NldFRyYW5zZmVyVHhuKHN3YXBYZmVyLCB7CgkvLyAgICAgICBhc3NldEFtb3VudDogeyBncmVhdGVyVGhhbjogMCB9LAoJLy8gICAgICAgYXNzZXRSZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgIHNlbmRlcjogdGhpcy50eG4uc2VuZGVyLAoJLy8gICAgICAgeGZlckFzc2V0OiB7IGluY2x1ZGVkSW46IFthQXNzZXQsIGJBc3NldF0gfSwKCS8vICAgICB9KQoJLy8gdmVyaWZ5IGFzc2V0QW1vdW50CglmcmFtZV9kaWcgLTEgLy8gc3dhcFhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIEFzc2V0QW1vdW50CglpbnQgMAoJPgoJYXNzZXJ0CgoJLy8gdmVyaWZ5IGFzc2V0UmVjZWl2ZXIKCWZyYW1lX2RpZyAtMSAvLyBzd2FwWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09Cglhc3NlcnQKCgkvLyB2ZXJpZnkgc2VuZGVyCglmcmFtZV9kaWcgLTEgLy8gc3dhcFhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIFNlbmRlcgoJdHhuIFNlbmRlcgoJPT0KCWFzc2VydAoKCS8vIHZlcmlmeSB4ZmVyQXNzZXQKCWZyYW1lX2RpZyAtMSAvLyBzd2FwWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgWGZlckFzc2V0CglmcmFtZV9kaWcgLTIgLy8gYUFzc2V0OiBBc3NldAoJPT0KCWZyYW1lX2RpZyAtMSAvLyBzd2FwWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgWGZlckFzc2V0CglmcmFtZV9kaWcgLTMgLy8gYkFzc2V0OiBBc3NldAoJPT0KCXx8Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTgwCgkvLyBvdXRJZCA9IHN3YXBYZmVyLnhmZXJBc3NldCA9PT0gYUFzc2V0ID8gYUFzc2V0IDogYkFzc2V0CglmcmFtZV9kaWcgLTEgLy8gc3dhcFhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIFhmZXJBc3NldAoJZnJhbWVfZGlnIC0yIC8vIGFBc3NldDogQXNzZXQKCT09CglieiB0ZXJuYXJ5M19mYWxzZQoJZnJhbWVfZGlnIC0yIC8vIGFBc3NldDogQXNzZXQKCWIgdGVybmFyeTNfZW5kCgp0ZXJuYXJ5M19mYWxzZToKCWZyYW1lX2RpZyAtMyAvLyBiQXNzZXQ6IEFzc2V0Cgp0ZXJuYXJ5M19lbmQ6CglmcmFtZV9idXJ5IDAgLy8gb3V0SWQ6IGFzc2V0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjE4MgoJLy8gaW5JZCA9IHN3YXBYZmVyLnhmZXJBc3NldAoJZnJhbWVfZGlnIC0xIC8vIHN3YXBYZmVyOiBBc3NldFRyYW5zZmVyVHhuCglndHhucyBYZmVyQXNzZXQKCWZyYW1lX2J1cnkgMSAvLyBpbklkOiBhc3NldAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxODQKCS8vIHRvU3dhcCA9IHRoaXMudG9rZW5zVG9Td2FwKAoJLy8gICAgICAgc3dhcFhmZXIuYXNzZXRBbW91bnQsCgkvLyAgICAgICB0aGlzLmFwcC5hZGRyZXNzLmFzc2V0QmFsYW5jZShpbklkKSAtIHN3YXBYZmVyLmFzc2V0QW1vdW50LAoJLy8gICAgICAgdGhpcy5hcHAuYWRkcmVzcy5hc3NldEJhbGFuY2Uob3V0SWQpCgkvLyAgICAgKQoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWZyYW1lX2RpZyAwIC8vIG91dElkOiBhc3NldAoJYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCglwb3AKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglmcmFtZV9kaWcgMSAvLyBpbklkOiBhc3NldAoJYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCglwb3AKCWZyYW1lX2RpZyAtMSAvLyBzd2FwWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRBbW91bnQKCS0KCWZyYW1lX2RpZyAtMSAvLyBzd2FwWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRBbW91bnQKCWNhbGxzdWIgdG9rZW5zVG9Td2FwCglmcmFtZV9idXJ5IDIgLy8gdG9Td2FwOiB1aW50NjQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTkwCgkvLyBhc3NlcnQodG9Td2FwID4gMCkKCWZyYW1lX2RpZyAyIC8vIHRvU3dhcDogdWludDY0CglpbnQgMAoJPgoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjE5MgoJLy8gdGhpcy5kb0F4ZmVyKHRoaXMudHhuLnNlbmRlciwgb3V0SWQsIHRvU3dhcCkKCWZyYW1lX2RpZyAyIC8vIHRvU3dhcDogdWludDY0CglmcmFtZV9kaWcgMCAvLyBvdXRJZDogYXNzZXQKCXR4biBTZW5kZXIKCWNhbGxzdWIgZG9BeGZlcgoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxOTQKCS8vIHRoaXMucmF0aW8udmFsdWUgPSB0aGlzLmNvbXB1dGVSYXRpbygpCglieXRlIDB4NzIgLy8gInIiCgljYWxsc3ViIGNvbXB1dGVSYXRpbwoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAic2V0X2dvdmVybm9yKGFjY291bnQpdm9pZCIKCW1ldGhvZCAiYm9vdHN0cmFwKHBheSxhc3NldCxhc3NldCl1aW50NjQiCgltZXRob2QgIm1pbnQoYXhmZXIsYXhmZXIsYXNzZXQsYXNzZXQsYXNzZXQpdm9pZCIKCW1ldGhvZCAiYnVybihheGZlcixhc3NldCxhc3NldCxhc3NldCl2b2lkIgoJbWV0aG9kICJzd2FwKGF4ZmVyLGFzc2V0LGFzc2V0KXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfc2V0X2dvdmVybm9yIGFiaV9yb3V0ZV9ib290c3RyYXAgYWJpX3JvdXRlX21pbnQgYWJpX3JvdXRlX2J1cm4gYWJpX3JvdXRlX3N3YXAKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBjcmVhdGVBcHBsaWNhdGlvbigpdm9pZAoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJLy8gZXhlY3V0ZSBjcmVhdGVBcHBsaWNhdGlvbigpdm9pZAoJY2FsbHN1YiBjcmVhdGVBcHBsaWNhdGlvbgoJaW50IDEKCXJldHVybgoKLy8gY3JlYXRlQXBwbGljYXRpb24oKTogdm9pZApjcmVhdGVBcHBsaWNhdGlvbjoKCXByb3RvIDAgMAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoyMAoJLy8gdGhpcy5nb3Zlcm5vci52YWx1ZSA9IHRoaXMudHhuLnNlbmRlcgoJYnl0ZSAweDY3IC8vICJnIgoJdHhuIFNlbmRlcgoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gZG9DcmVhdGVQb29sVG9rZW4oYUFzc2V0OiBBc3NldCwgYkFzc2V0OiBBc3NldCk6IEFzc2V0CmRvQ3JlYXRlUG9vbFRva2VuOgoJcHJvdG8gMiAxCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjI2CgkvLyByZXR1cm4gc2VuZEFzc2V0Q3JlYXRpb24oewoJLy8gICAgICAgY29uZmlnQXNzZXROYW1lOiAnRFBULScgKyBhQXNzZXQudW5pdE5hbWUgKyAnLScgKyBiQXNzZXQudW5pdE5hbWUsCgkvLyAgICAgICBjb25maWdBc3NldFVuaXROYW1lOiAnZHB0JywKCS8vICAgICAgIGNvbmZpZ0Fzc2V0VG90YWw6IFRPVEFMX1NVUFBMWSwKCS8vICAgICAgIGNvbmZpZ0Fzc2V0RGVjaW1hbHM6IDMsCgkvLyAgICAgICBjb25maWdBc3NldE1hbmFnZXI6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICBjb25maWdBc3NldFJlc2VydmU6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgfSk7CglpdHhuX2JlZ2luCglpbnQgYWNmZwoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoyNwoJLy8gY29uZmlnQXNzZXROYW1lOiAnRFBULScgKyBhQXNzZXQudW5pdE5hbWUgKyAnLScgKyBiQXNzZXQudW5pdE5hbWUKCWJ5dGUgMHg0NDUwNTQyZCAvLyAiRFBULSIKCWZyYW1lX2RpZyAtMSAvLyBhQXNzZXQ6IEFzc2V0Cglhc3NldF9wYXJhbXNfZ2V0IEFzc2V0VW5pdE5hbWUKCXBvcAoJY29uY2F0CglieXRlIDB4MmQgLy8gIi0iCgljb25jYXQKCWZyYW1lX2RpZyAtMiAvLyBiQXNzZXQ6IEFzc2V0Cglhc3NldF9wYXJhbXNfZ2V0IEFzc2V0VW5pdE5hbWUKCXBvcAoJY29uY2F0CglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0TmFtZQoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoyOAoJLy8gY29uZmlnQXNzZXRVbml0TmFtZTogJ2RwdCcKCWJ5dGUgMHg2NDcwNzQgLy8gImRwdCIKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRVbml0TmFtZQoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoyOQoJLy8gY29uZmlnQXNzZXRUb3RhbDogVE9UQUxfU1VQUExZCglpbnQgMTAwMDAwMDAwMDAKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRUb3RhbAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czozMAoJLy8gY29uZmlnQXNzZXREZWNpbWFsczogMwoJaW50IDMKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXREZWNpbWFscwoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czozMQoJLy8gY29uZmlnQXNzZXRNYW5hZ2VyOiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBDb25maWdBc3NldE1hbmFnZXIKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MzIKCS8vIGNvbmZpZ0Fzc2V0UmVzZXJ2ZTogdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRSZXNlcnZlCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJaXR4biBDcmVhdGVkQXNzZXRJRAoJcmV0c3ViCgovLyBkb0F4ZmVyKHJlY2VpdmVyOiBBY2NvdW50LCBhc3NldDogQXNzZXQsIGFtb3VudDogdWludDY0KTogdm9pZApkb0F4ZmVyOgoJcHJvdG8gMyAwCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjM3CgkvLyBzZW5kQXNzZXRUcmFuc2Zlcih7CgkvLyAgICAgICBhc3NldFJlY2VpdmVyOiByZWNlaXZlciwKCS8vICAgICAgIHhmZXJBc3NldDogYXNzZXQsCgkvLyAgICAgICBhc3NldEFtb3VudDogYW1vdW50LAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnQgYXhmZXIKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MzgKCS8vIGFzc2V0UmVjZWl2ZXI6IHJlY2VpdmVyCglmcmFtZV9kaWcgLTEgLy8gcmVjZWl2ZXI6IEFjY291bnQKCWl0eG5fZmllbGQgQXNzZXRSZWNlaXZlcgoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czozOQoJLy8geGZlckFzc2V0OiBhc3NldAoJZnJhbWVfZGlnIC0yIC8vIGFzc2V0OiBBc3NldAoJaXR4bl9maWVsZCBYZmVyQXNzZXQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6NDAKCS8vIGFzc2V0QW1vdW50OiBhbW91bnQKCWZyYW1lX2RpZyAtMyAvLyBhbW91bnQ6IHVpbnQ2NAoJaXR4bl9maWVsZCBBc3NldEFtb3VudAoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gZG9PcHRJbihhc3NldDogQXNzZXQpOiB2b2lkCmRvT3B0SW46Cglwcm90byAxIDAKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6NDUKCS8vIHRoaXMuZG9BeGZlcih0aGlzLmFwcC5hZGRyZXNzLCBhc3NldCwgMCkKCWludCAwCglmcmFtZV9kaWcgLTEgLy8gYXNzZXQ6IEFzc2V0CglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJY2FsbHN1YiBkb0F4ZmVyCglyZXRzdWIKCi8vIHRva2Vuc1RvTWludEludGlhbChhQW1vdW50OiB1aW50NjQsIGJBbW91bnQ6IHVpbnQ2NCk6IHVpbnQ2NAp0b2tlbnNUb01pbnRJbnRpYWw6Cglwcm90byAyIDEKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6NDkKCS8vIHJldHVybiBzcXJ0KGFBbW91bnQgKiBiQW1vdW50KTsKCWZyYW1lX2RpZyAtMSAvLyBhQW1vdW50OiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBiQW1vdW50OiB1aW50NjQKCSoKCXNxcnQKCXJldHN1YgoKLy8gdG9rZW5zVG9NaW50KGlzc3VlZDogdWludDY0LCBhU3VwcGx5OiB1aW50NjQsIGJTdXBwbHk6IHVpbnQ2NCwgYUFtb3VudDogdWludDY0LCBiQW1vdW50OiB1aW50NjQpOiB1aW50NjQKdG9rZW5zVG9NaW50OgoJcHJvdG8gNSAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gMgoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo1MwoJLy8gYVJhdGlvID0gd2lkZVJhdGlvKFthQW1vdW50LCBTQ0FMRV0sIFthU3VwcGx5XSkKCWZyYW1lX2RpZyAtNCAvLyBhQW1vdW50OiB1aW50NjQKCWludCAxMDAwCgltdWx3CglpbnQgMAoJZnJhbWVfZGlnIC0yIC8vIGFTdXBwbHk6IHVpbnQ2NAoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCWFzc2VydAoJZnJhbWVfYnVyeSAwIC8vIGFSYXRpbzogdWludDY0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjU0CgkvLyBiUmF0aW8gPSB3aWRlUmF0aW8oW2JBbW91bnQsIFNDQUxFXSwgW2JTdXBwbHldKQoJZnJhbWVfZGlnIC01IC8vIGJBbW91bnQ6IHVpbnQ2NAoJaW50IDEwMDAKCW11bHcKCWludCAwCglmcmFtZV9kaWcgLTMgLy8gYlN1cHBseTogdWludDY0CglkaXZtb2R3Cglwb3AKCXBvcAoJc3dhcAoJIQoJYXNzZXJ0CglmcmFtZV9idXJ5IDEgLy8gYlJhdGlvOiB1aW50NjQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6NTYKCS8vIHJhdGlvID0gYVJhdGlvIDwgYlJhdGlvID8gYVJhdGlvIDogYlJhdGlvCglmcmFtZV9kaWcgMCAvLyBhUmF0aW86IHVpbnQ2NAoJZnJhbWVfZGlnIDEgLy8gYlJhdGlvOiB1aW50NjQKCTwKCWJ6ICp0ZXJuYXJ5MV9mYWxzZQoJZnJhbWVfZGlnIDAgLy8gYVJhdGlvOiB1aW50NjQKCWIgKnRlcm5hcnkxX2VuZAoKKnRlcm5hcnkxX2ZhbHNlOgoJZnJhbWVfZGlnIDEgLy8gYlJhdGlvOiB1aW50NjQKCip0ZXJuYXJ5MV9lbmQ6CglmcmFtZV9idXJ5IDIgLy8gcmF0aW86IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo1OAoJLy8gcmV0dXJuIHdpZGVSYXRpbyhbcmF0aW8sIGlzc3VlZF0sIFtTQ0FMRV0pOwoJZnJhbWVfZGlnIDIgLy8gcmF0aW86IHVpbnQ2NAoJZnJhbWVfZGlnIC0xIC8vIGlzc3VlZDogdWludDY0CgltdWx3CglpbnQgMAoJaW50IDEwMDAKCWRpdm1vZHcKCXBvcAoJcG9wCglzd2FwCgkhCglhc3NlcnQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAyCglyZXRzdWIKCi8vIGNvbXB1dGVSYXRpbygpOiB1aW50NjQKY29tcHV0ZVJhdGlvOgoJcHJvdG8gMCAxCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjYyCgkvLyByZXR1cm4gd2lkZVJhdGlvKAoJLy8gICAgICAgW3RoaXMuYXBwLmFkZHJlc3MuYXNzZXRCYWxhbmNlKHRoaXMuYXNzZXRBLnZhbHVlKSwgU0NBTEVdLAoJLy8gICAgICAgW3RoaXMuYXBwLmFkZHJlc3MuYXNzZXRCYWxhbmNlKHRoaXMuYXNzZXRCLnZhbHVlKV0KCS8vICAgICApOwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWJ5dGUgMHg2MSAvLyAiYSIKCWFwcF9nbG9iYWxfZ2V0Cglhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKCXBvcAoJaW50IDEwMDAKCW11bHcKCWludCAwCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJYnl0ZSAweDYyIC8vICJiIgoJYXBwX2dsb2JhbF9nZXQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJcG9wCglkaXZtb2R3Cglwb3AKCXBvcAoJc3dhcAoJIQoJYXNzZXJ0CglyZXRzdWIKCi8vIHRva2Vuc1RvQnVybihpc3N1ZWQ6IHVpbnQ2NCwgc3VwcGx5OiB1aW50NjQsIGFtb3VudDogdWludDY0KTogdWludDY0CnRva2Vuc1RvQnVybjoKCXByb3RvIDMgMQoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo2OQoJLy8gcmV0dXJuIHdpZGVSYXRpbyhbc3VwcGx5LCBhbW91bnRdLCBbaXNzdWVkXSk7CglmcmFtZV9kaWcgLTIgLy8gc3VwcGx5OiB1aW50NjQKCWZyYW1lX2RpZyAtMyAvLyBhbW91bnQ6IHVpbnQ2NAoJbXVsdwoJaW50IDAKCWZyYW1lX2RpZyAtMSAvLyBpc3N1ZWQ6IHVpbnQ2NAoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCWFzc2VydAoJcmV0c3ViCgovLyB0b2tlbnNUb1N3YXAoaW5BbW91bnQ6IHVpbnQ2NCwgaW5TdXBwbHk6IHVpbnQ2NCwgb3V0U3VwcGx5OiB1aW50NjQpOiB1aW50NjQKdG9rZW5zVG9Td2FwOgoJcHJvdG8gMyAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6NzMKCS8vIGZhY3RvciA9IFNDQUxFIC0gRkVFCglpbnQgOTk1CglmcmFtZV9idXJ5IDAgLy8gZmFjdG9yOiB1aW50NjQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6NzQKCS8vIHJldHVybiB3aWRlUmF0aW8oW2luQW1vdW50LCBmYWN0b3IsIG91dFN1cHBseV0sIFtpblN1cHBseSAqIFNDQUxFICsgaW5BbW91bnQgKiBmYWN0b3JdKTsKCWZyYW1lX2RpZyAtMSAvLyBpbkFtb3VudDogdWludDY0CglmcmFtZV9kaWcgMCAvLyBmYWN0b3I6IHVpbnQ2NAoJbXVsdwoJZnJhbWVfZGlnIC0zIC8vIG91dFN1cHBseTogdWludDY0Cgl1bmNvdmVyIDIKCWRpZyAxCgkqCgljb3ZlciAyCgltdWx3Cgljb3ZlciAyCgkrCglzd2FwCglpbnQgMAoJZnJhbWVfZGlnIC0yIC8vIGluU3VwcGx5OiB1aW50NjQKCWludCAxMDAwCgkqCglmcmFtZV9kaWcgLTEgLy8gaW5BbW91bnQ6IHVpbnQ2NAoJZnJhbWVfZGlnIDAgLy8gZmFjdG9yOiB1aW50NjQKCSoKCSsKCWRpdm1vZHcKCXBvcAoJcG9wCglzd2FwCgkhCglhc3NlcnQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gc2V0X2dvdmVybm9yKGFjY291bnQpdm9pZAoqYWJpX3JvdXRlX3NldF9nb3Zlcm5vcjoKCS8vIGdvdmVybm9yOiBhY2NvdW50Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgl0eG5hcyBBY2NvdW50cwoKCS8vIGV4ZWN1dGUgc2V0X2dvdmVybm9yKGFjY291bnQpdm9pZAoJY2FsbHN1YiBzZXRfZ292ZXJub3IKCWludCAxCglyZXR1cm4KCi8vIHNldF9nb3Zlcm5vcihnb3Zlcm5vcjogQWNjb3VudCk6IHZvaWQKc2V0X2dvdmVybm9yOgoJcHJvdG8gMSAwCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjc4CgkvLyB2ZXJpZnlBcHBDYWxsVHhuKHRoaXMudHhuLCB7IHNlbmRlcjogdGhpcy5nb3Zlcm5vci52YWx1ZSB9KQoJLy8gdmVyaWZ5IHNlbmRlcgoJdHhuIFNlbmRlcgoJYnl0ZSAweDY3IC8vICJnIgoJYXBwX2dsb2JhbF9nZXQKCT09Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6NzkKCS8vIHRoaXMuZ292ZXJub3IudmFsdWUgPSBnb3Zlcm5vcgoJYnl0ZSAweDY3IC8vICJnIgoJZnJhbWVfZGlnIC0xIC8vIGdvdmVybm9yOiBBY2NvdW50CglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBib290c3RyYXAocGF5LGFzc2V0LGFzc2V0KXVpbnQ2NAoqYWJpX3JvdXRlX2Jvb3RzdHJhcDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYkFzc2V0OiBhc3NldAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoJdHhuYXMgQXNzZXRzCgoJLy8gYUFzc2V0OiBhc3NldAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoJdHhuYXMgQXNzZXRzCgoJLy8gc2VlZDogcGF5Cgl0eG4gR3JvdXBJbmRleAoJaW50IDEKCS0KCWR1cAoJZ3R4bnMgVHlwZUVudW0KCWludCBwYXkKCT09Cglhc3NlcnQKCgkvLyBleGVjdXRlIGJvb3RzdHJhcChwYXksYXNzZXQsYXNzZXQpdWludDY0CgljYWxsc3ViIGJvb3RzdHJhcAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJvb3RzdHJhcChzZWVkOiBQYXlUeG4sIGFBc3NldDogQXNzZXQsIGJBc3NldDogQXNzZXQpOiBBc3NldApib290c3RyYXA6Cglwcm90byAzIDEKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6ODMKCS8vIHZlcmlmeUFwcENhbGxUeG4odGhpcy50eG4sIHsgc2VuZGVyOiB0aGlzLmdvdmVybm9yLnZhbHVlIH0pCgkvLyB2ZXJpZnkgc2VuZGVyCgl0eG4gU2VuZGVyCglieXRlIDB4NjcgLy8gImciCglhcHBfZ2xvYmFsX2dldAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo4NQoJLy8gYXNzZXJ0KGdsb2JhbHMuZ3JvdXBTaXplID09PSAyKQoJZ2xvYmFsIEdyb3VwU2l6ZQoJaW50IDIKCT09Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6ODcKCS8vIHZlcmlmeVBheVR4bihzZWVkLCB7IHJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLCBhbW91bnQ6IHsgZ3JlYXRlclRoYW5FcXVhbFRvOiAzMDBfMDAwIH0gfSkKCS8vIHZlcmlmeSByZWNlaXZlcgoJZnJhbWVfZGlnIC0xIC8vIHNlZWQ6IFBheVR4bgoJZ3R4bnMgUmVjZWl2ZXIKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCgk9PQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IGFtb3VudAoJZnJhbWVfZGlnIC0xIC8vIHNlZWQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CglpbnQgMzAwXzAwMAoJPj0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo4OAoJLy8gYXNzZXJ0KGFBc3NldCA8IGJBc3NldCkKCWZyYW1lX2RpZyAtMiAvLyBhQXNzZXQ6IEFzc2V0CglmcmFtZV9kaWcgLTMgLy8gYkFzc2V0OiBBc3NldAoJPAoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjkwCgkvLyB0aGlzLmFzc2V0QS52YWx1ZSA9IGFBc3NldAoJYnl0ZSAweDYxIC8vICJhIgoJZnJhbWVfZGlnIC0yIC8vIGFBc3NldDogQXNzZXQKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjkxCgkvLyB0aGlzLmFzc2V0Qi52YWx1ZSA9IGJBc3NldAoJYnl0ZSAweDYyIC8vICJiIgoJZnJhbWVfZGlnIC0zIC8vIGJBc3NldDogQXNzZXQKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjkyCgkvLyB0aGlzLnBvb2xUb2tlbi52YWx1ZSA9IHRoaXMuZG9DcmVhdGVQb29sVG9rZW4oYUFzc2V0LCBiQXNzZXQpCglieXRlIDB4NzAgLy8gInAiCglmcmFtZV9kaWcgLTMgLy8gYkFzc2V0OiBBc3NldAoJZnJhbWVfZGlnIC0yIC8vIGFBc3NldDogQXNzZXQKCWNhbGxzdWIgZG9DcmVhdGVQb29sVG9rZW4KCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjk0CgkvLyB0aGlzLmRvT3B0SW4oYUFzc2V0KQoJZnJhbWVfZGlnIC0yIC8vIGFBc3NldDogQXNzZXQKCWNhbGxzdWIgZG9PcHRJbgoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo5NQoJLy8gdGhpcy5kb09wdEluKGJBc3NldCkKCWZyYW1lX2RpZyAtMyAvLyBiQXNzZXQ6IEFzc2V0CgljYWxsc3ViIGRvT3B0SW4KCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6OTcKCS8vIHJldHVybiB0aGlzLnBvb2xUb2tlbi52YWx1ZTsKCWJ5dGUgMHg3MCAvLyAicCIKCWFwcF9nbG9iYWxfZ2V0CglyZXRzdWIKCi8vIG1pbnQoYXhmZXIsYXhmZXIsYXNzZXQsYXNzZXQsYXNzZXQpdm9pZAoqYWJpX3JvdXRlX21pbnQ6CgkvLyBiQXNzZXQ6IGFzc2V0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglidG9pCgl0eG5hcyBBc3NldHMKCgkvLyBhQXNzZXQ6IGFzc2V0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgl0eG5hcyBBc3NldHMKCgkvLyBwb29sQXNzZXQ6IGFzc2V0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgl0eG5hcyBBc3NldHMKCgkvLyBiWGZlcjogYXhmZXIKCXR4biBHcm91cEluZGV4CglpbnQgMQoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJaW50IGF4ZmVyCgk9PQoJYXNzZXJ0CgoJLy8gYVhmZXI6IGF4ZmVyCgl0eG4gR3JvdXBJbmRleAoJaW50IDIKCS0KCWR1cAoJZ3R4bnMgVHlwZUVudW0KCWludCBheGZlcgoJPT0KCWFzc2VydAoKCS8vIGV4ZWN1dGUgbWludChheGZlcixheGZlcixhc3NldCxhc3NldCxhc3NldCl2b2lkCgljYWxsc3ViIG1pbnQKCWludCAxCglyZXR1cm4KCi8vIG1pbnQoYVhmZXI6IEFzc2V0VHJhbnNmZXJUeG4sIGJYZmVyOiBBc3NldFRyYW5zZmVyVHhuLCBwb29sQXNzZXQ6IEFzc2V0LCBhQXNzZXQ6IEFzc2V0LCBiQXNzZXQ6IEFzc2V0KTogdm9pZAptaW50OgoJcHJvdG8gNSAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB3ZWxsIGZvcm1lZCBtaW50CgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTAyCgkvLyBhc3NlcnQoYUFzc2V0ID09PSB0aGlzLmFzc2V0QS52YWx1ZSkKCWZyYW1lX2RpZyAtNCAvLyBhQXNzZXQ6IEFzc2V0CglieXRlIDB4NjEgLy8gImEiCglhcHBfZ2xvYmFsX2dldAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxMDMKCS8vIGFzc2VydChiQXNzZXQgPT09IHRoaXMuYXNzZXRCLnZhbHVlKQoJZnJhbWVfZGlnIC01IC8vIGJBc3NldDogQXNzZXQKCWJ5dGUgMHg2MiAvLyAiYiIKCWFwcF9nbG9iYWxfZ2V0Cgk9PQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjEwNAoJLy8gYXNzZXJ0KHBvb2xBc3NldCA9PT0gdGhpcy5wb29sVG9rZW4udmFsdWUpCglmcmFtZV9kaWcgLTMgLy8gcG9vbEFzc2V0OiBBc3NldAoJYnl0ZSAweDcwIC8vICJwIgoJYXBwX2dsb2JhbF9nZXQKCT09Cglhc3NlcnQKCgkvLyB2YWxpZCBhc3NldCBBIGF4ZmVyCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTA3CgkvLyB2ZXJpZnlBc3NldFRyYW5zZmVyVHhuKGFYZmVyLCB7CgkvLyAgICAgICBzZW5kZXI6IHRoaXMudHhuLnNlbmRlciwKCS8vICAgICAgIGFzc2V0QW1vdW50OiB7IGdyZWF0ZXJUaGFuOiAwIH0sCgkvLyAgICAgICBhc3NldFJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgeGZlckFzc2V0OiBhQXNzZXQsCgkvLyAgICAgfSkKCS8vIHZlcmlmeSBzZW5kZXIKCWZyYW1lX2RpZyAtMSAvLyBhWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgU2VuZGVyCgl0eG4gU2VuZGVyCgk9PQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IGFzc2V0QW1vdW50CglmcmFtZV9kaWcgLTEgLy8gYVhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIEFzc2V0QW1vdW50CglpbnQgMAoJPgoJYXNzZXJ0CgoJLy8gdmVyaWZ5IGFzc2V0UmVjZWl2ZXIKCWZyYW1lX2RpZyAtMSAvLyBhWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09Cglhc3NlcnQKCgkvLyB2ZXJpZnkgeGZlckFzc2V0CglmcmFtZV9kaWcgLTEgLy8gYVhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIFhmZXJBc3NldAoJZnJhbWVfZGlnIC00IC8vIGFBc3NldDogQXNzZXQKCT09Cglhc3NlcnQKCgkvLyB2YWxpZCBhc3NldCBCIGF4ZmVyCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTE1CgkvLyB2ZXJpZnlBc3NldFRyYW5zZmVyVHhuKGJYZmVyLCB7CgkvLyAgICAgICBzZW5kZXI6IHRoaXMudHhuLnNlbmRlciwKCS8vICAgICAgIGFzc2V0QW1vdW50OiB7IGdyZWF0ZXJUaGFuOiAwIH0sCgkvLyAgICAgICBhc3NldFJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgeGZlckFzc2V0OiBiQXNzZXQsCgkvLyAgICAgfSkKCS8vIHZlcmlmeSBzZW5kZXIKCWZyYW1lX2RpZyAtMiAvLyBiWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgU2VuZGVyCgl0eG4gU2VuZGVyCgk9PQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IGFzc2V0QW1vdW50CglmcmFtZV9kaWcgLTIgLy8gYlhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIEFzc2V0QW1vdW50CglpbnQgMAoJPgoJYXNzZXJ0CgoJLy8gdmVyaWZ5IGFzc2V0UmVjZWl2ZXIKCWZyYW1lX2RpZyAtMiAvLyBiWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09Cglhc3NlcnQKCgkvLyB2ZXJpZnkgeGZlckFzc2V0CglmcmFtZV9kaWcgLTIgLy8gYlhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIFhmZXJBc3NldAoJZnJhbWVfZGlnIC01IC8vIGJBc3NldDogQXNzZXQKCT09Cglhc3NlcnQKCgkvLyAqaWYwX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjEyMwoJLy8gdGhpcy5hcHAuYWRkcmVzcy5hc3NldEJhbGFuY2UoYUFzc2V0KSA9PT0gYVhmZXIuYXNzZXRBbW91bnQgJiYKCS8vICAgICAgIHRoaXMuYXBwLmFkZHJlc3MuYXNzZXRCYWxhbmNlKGJBc3NldCkgPT09IGJYZmVyLmFzc2V0QW1vdW50CglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJZnJhbWVfZGlnIC00IC8vIGFBc3NldDogQXNzZXQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJcG9wCglmcmFtZV9kaWcgLTEgLy8gYVhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIEFzc2V0QW1vdW50Cgk9PQoJZHVwCglieiAqc2tpcF9hbmQwCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJZnJhbWVfZGlnIC01IC8vIGJBc3NldDogQXNzZXQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJcG9wCglmcmFtZV9kaWcgLTIgLy8gYlhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIEFzc2V0QW1vdW50Cgk9PQoJJiYKCipza2lwX2FuZDA6CglieiAqaWYwX2Vsc2UKCgkvLyAqaWYwX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxMjYKCS8vIHRoaXMudG9rZW5zVG9NaW50SW50aWFsKGFYZmVyLmFzc2V0QW1vdW50LCBiWGZlci5hc3NldEFtb3VudCkKCWZyYW1lX2RpZyAtMiAvLyBiWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRBbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBhWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRBbW91bnQKCWNhbGxzdWIgdG9rZW5zVG9NaW50SW50aWFsCgliICppZjBfZW5kCgoqaWYwX2Vsc2U6CgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTI4CgkvLyB0b01pbnQgPSB0aGlzLnRva2Vuc1RvTWludCgKCS8vICAgICAgICAgVE9UQUxfU1VQUExZIC0gdGhpcy5hcHAuYWRkcmVzcy5hc3NldEJhbGFuY2UocG9vbEFzc2V0KSwKCS8vICAgICAgICAgdGhpcy5hcHAuYWRkcmVzcy5hc3NldEJhbGFuY2UoYUFzc2V0KSAtIGFYZmVyLmFzc2V0QW1vdW50LAoJLy8gICAgICAgICB0aGlzLmFwcC5hZGRyZXNzLmFzc2V0QmFsYW5jZShiQXNzZXQpIC0gYlhmZXIuYXNzZXRBbW91bnQsCgkvLyAgICAgICAgIGFYZmVyLmFzc2V0QW1vdW50LAoJLy8gICAgICAgICBiWGZlci5hc3NldEFtb3VudAoJLy8gICAgICAgKQoJZnJhbWVfZGlnIC0yIC8vIGJYZmVyOiBBc3NldFRyYW5zZmVyVHhuCglndHhucyBBc3NldEFtb3VudAoJZnJhbWVfZGlnIC0xIC8vIGFYZmVyOiBBc3NldFRyYW5zZmVyVHhuCglndHhucyBBc3NldEFtb3VudAoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWZyYW1lX2RpZyAtNSAvLyBiQXNzZXQ6IEFzc2V0Cglhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKCXBvcAoJZnJhbWVfZGlnIC0yIC8vIGJYZmVyOiBBc3NldFRyYW5zZmVyVHhuCglndHhucyBBc3NldEFtb3VudAoJLQoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWZyYW1lX2RpZyAtNCAvLyBhQXNzZXQ6IEFzc2V0Cglhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKCXBvcAoJZnJhbWVfZGlnIC0xIC8vIGFYZmVyOiBBc3NldFRyYW5zZmVyVHhuCglndHhucyBBc3NldEFtb3VudAoJLQoJaW50IDEwMDAwMDAwMDAwCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJZnJhbWVfZGlnIC0zIC8vIHBvb2xBc3NldDogQXNzZXQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJcG9wCgktCgljYWxsc3ViIHRva2Vuc1RvTWludAoJZnJhbWVfYnVyeSAwIC8vIHRvTWludDogdWludDY0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjEzNgoJLy8gYXNzZXJ0KHRvTWludCA+IDApCglmcmFtZV9kaWcgMCAvLyB0b01pbnQ6IHVpbnQ2NAoJaW50IDAKCT4KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxMzgKCS8vIHRoaXMuZG9BeGZlcih0aGlzLnR4bi5zZW5kZXIsIHBvb2xBc3NldCwgdG9NaW50KQoJZnJhbWVfZGlnIDAgLy8gdG9NaW50OiB1aW50NjQKCWZyYW1lX2RpZyAtMyAvLyBwb29sQXNzZXQ6IEFzc2V0Cgl0eG4gU2VuZGVyCgljYWxsc3ViIGRvQXhmZXIKCippZjBfZW5kOgoJcmV0c3ViCgovLyBidXJuKGF4ZmVyLGFzc2V0LGFzc2V0LGFzc2V0KXZvaWQKKmFiaV9yb3V0ZV9idXJuOgoJLy8gYkFzc2V0OiBhc3NldAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJYnRvaQoJdHhuYXMgQXNzZXRzCgoJLy8gYUFzc2V0OiBhc3NldAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoJdHhuYXMgQXNzZXRzCgoJLy8gcG9vbEFzc2V0OiBhc3NldAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoJdHhuYXMgQXNzZXRzCgoJLy8gcG9vbFhmZXI6IGF4ZmVyCgl0eG4gR3JvdXBJbmRleAoJaW50IDEKCS0KCWR1cAoJZ3R4bnMgVHlwZUVudW0KCWludCBheGZlcgoJPT0KCWFzc2VydAoKCS8vIGV4ZWN1dGUgYnVybihheGZlcixhc3NldCxhc3NldCxhc3NldCl2b2lkCgljYWxsc3ViIGJ1cm4KCWludCAxCglyZXR1cm4KCi8vIGJ1cm4ocG9vbFhmZXI6IEFzc2V0VHJhbnNmZXJUeG4sIHBvb2xBc3NldDogQXNzZXQsIGFBc3NldDogQXNzZXQsIGJBc3NldDogQXNzZXQpOiB2b2lkCmJ1cm46Cglwcm90byA0IDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiAyCgoJLy8gd2VsbCBmb3JtZWQgYnVybgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjE0NAoJLy8gYXNzZXJ0KHBvb2xBc3NldCA9PT0gdGhpcy5wb29sVG9rZW4udmFsdWUpCglmcmFtZV9kaWcgLTIgLy8gcG9vbEFzc2V0OiBBc3NldAoJYnl0ZSAweDcwIC8vICJwIgoJYXBwX2dsb2JhbF9nZXQKCT09Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTQ1CgkvLyBhc3NlcnQoYUFzc2V0ID09PSB0aGlzLmFzc2V0QS52YWx1ZSkKCWZyYW1lX2RpZyAtMyAvLyBhQXNzZXQ6IEFzc2V0CglieXRlIDB4NjEgLy8gImEiCglhcHBfZ2xvYmFsX2dldAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxNDYKCS8vIGFzc2VydChiQXNzZXQgPT09IHRoaXMuYXNzZXRCLnZhbHVlKQoJZnJhbWVfZGlnIC00IC8vIGJBc3NldDogQXNzZXQKCWJ5dGUgMHg2MiAvLyAiYiIKCWFwcF9nbG9iYWxfZ2V0Cgk9PQoJYXNzZXJ0CgoJLy8gdmFsaWQgcG9vbCBheGZlcgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjE0OQoJLy8gdmVyaWZ5QXNzZXRUcmFuc2ZlclR4bihwb29sWGZlciwgewoJLy8gICAgICAgc2VuZGVyOiB0aGlzLnR4bi5zZW5kZXIsCgkvLyAgICAgICBhc3NldEFtb3VudDogeyBncmVhdGVyVGhhbjogMCB9LAoJLy8gICAgICAgYXNzZXRSZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgIHhmZXJBc3NldDogcG9vbEFzc2V0LAoJLy8gICAgIH0pCgkvLyB2ZXJpZnkgc2VuZGVyCglmcmFtZV9kaWcgLTEgLy8gcG9vbFhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIFNlbmRlcgoJdHhuIFNlbmRlcgoJPT0KCWFzc2VydAoKCS8vIHZlcmlmeSBhc3NldEFtb3VudAoJZnJhbWVfZGlnIC0xIC8vIHBvb2xYZmVyOiBBc3NldFRyYW5zZmVyVHhuCglndHhucyBBc3NldEFtb3VudAoJaW50IDAKCT4KCWFzc2VydAoKCS8vIHZlcmlmeSBhc3NldFJlY2VpdmVyCglmcmFtZV9kaWcgLTEgLy8gcG9vbFhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIEFzc2V0UmVjZWl2ZXIKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCgk9PQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IHhmZXJBc3NldAoJZnJhbWVfZGlnIC0xIC8vIHBvb2xYZmVyOiBBc3NldFRyYW5zZmVyVHhuCglndHhucyBYZmVyQXNzZXQKCWZyYW1lX2RpZyAtMiAvLyBwb29sQXNzZXQ6IEFzc2V0Cgk9PQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjE1NgoJLy8gaXNzdWVkID0gVE9UQUxfU1VQUExZIC0gKHRoaXMuYXBwLmFkZHJlc3MuYXNzZXRCYWxhbmNlKHBvb2xBc3NldCkgLSBwb29sWGZlci5hc3NldEFtb3VudCkKCWludCAxMDAwMDAwMDAwMAoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWZyYW1lX2RpZyAtMiAvLyBwb29sQXNzZXQ6IEFzc2V0Cglhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKCXBvcAoJZnJhbWVfZGlnIC0xIC8vIHBvb2xYZmVyOiBBc3NldFRyYW5zZmVyVHhuCglndHhucyBBc3NldEFtb3VudAoJLQoJLQoJZnJhbWVfYnVyeSAwIC8vIGlzc3VlZDogdWludDY0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjE1OAoJLy8gYUFtdCA9IHRoaXMudG9rZW5zVG9CdXJuKGlzc3VlZCwgdGhpcy5hcHAuYWRkcmVzcy5hc3NldEJhbGFuY2UoYUFzc2V0KSwgcG9vbFhmZXIuYXNzZXRBbW91bnQpCglmcmFtZV9kaWcgLTEgLy8gcG9vbFhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIEFzc2V0QW1vdW50CglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJZnJhbWVfZGlnIC0zIC8vIGFBc3NldDogQXNzZXQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJcG9wCglmcmFtZV9kaWcgMCAvLyBpc3N1ZWQ6IHVpbnQ2NAoJY2FsbHN1YiB0b2tlbnNUb0J1cm4KCWZyYW1lX2J1cnkgMSAvLyBhQW10OiB1aW50NjQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTYwCgkvLyBiQW10ID0gdGhpcy50b2tlbnNUb0J1cm4oaXNzdWVkLCB0aGlzLmFwcC5hZGRyZXNzLmFzc2V0QmFsYW5jZShiQXNzZXQpLCBwb29sWGZlci5hc3NldEFtb3VudCkKCWZyYW1lX2RpZyAtMSAvLyBwb29sWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRBbW91bnQKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglmcmFtZV9kaWcgLTQgLy8gYkFzc2V0OiBBc3NldAoJYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCglwb3AKCWZyYW1lX2RpZyAwIC8vIGlzc3VlZDogdWludDY0CgljYWxsc3ViIHRva2Vuc1RvQnVybgoJZnJhbWVfYnVyeSAyIC8vIGJBbXQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxNjIKCS8vIHRoaXMuZG9BeGZlcih0aGlzLnR4bi5zZW5kZXIsIGFBc3NldCwgYUFtdCkKCWZyYW1lX2RpZyAxIC8vIGFBbXQ6IHVpbnQ2NAoJZnJhbWVfZGlnIC0zIC8vIGFBc3NldDogQXNzZXQKCXR4biBTZW5kZXIKCWNhbGxzdWIgZG9BeGZlcgoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxNjMKCS8vIHRoaXMuZG9BeGZlcih0aGlzLnR4bi5zZW5kZXIsIGJBc3NldCwgYkFtdCkKCWZyYW1lX2RpZyAyIC8vIGJBbXQ6IHVpbnQ2NAoJZnJhbWVfZGlnIC00IC8vIGJBc3NldDogQXNzZXQKCXR4biBTZW5kZXIKCWNhbGxzdWIgZG9BeGZlcgoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxNjUKCS8vIHRoaXMucmF0aW8udmFsdWUgPSB0aGlzLmNvbXB1dGVSYXRpbygpCglieXRlIDB4NzIgLy8gInIiCgljYWxsc3ViIGNvbXB1dGVSYXRpbwoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gc3dhcChheGZlcixhc3NldCxhc3NldCl2b2lkCiphYmlfcm91dGVfc3dhcDoKCS8vIGJBc3NldDogYXNzZXQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCXR4bmFzIEFzc2V0cwoKCS8vIGFBc3NldDogYXNzZXQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCXR4bmFzIEFzc2V0cwoKCS8vIHN3YXBYZmVyOiBheGZlcgoJdHhuIEdyb3VwSW5kZXgKCWludCAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgYXhmZXIKCT09Cglhc3NlcnQKCgkvLyBleGVjdXRlIHN3YXAoYXhmZXIsYXNzZXQsYXNzZXQpdm9pZAoJY2FsbHN1YiBzd2FwCglpbnQgMQoJcmV0dXJuCgovLyBzd2FwKHN3YXBYZmVyOiBBc3NldFRyYW5zZmVyVHhuLCBhQXNzZXQ6IEFzc2V0LCBiQXNzZXQ6IEFzc2V0KTogdm9pZApzd2FwOgoJcHJvdG8gMyAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gMgoKCS8vIHdlbGwgZm9ybWVkIHN3YXAKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxNzAKCS8vIGFzc2VydChhQXNzZXQgPT09IHRoaXMuYXNzZXRBLnZhbHVlKQoJZnJhbWVfZGlnIC0yIC8vIGFBc3NldDogQXNzZXQKCWJ5dGUgMHg2MSAvLyAiYSIKCWFwcF9nbG9iYWxfZ2V0Cgk9PQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjE3MQoJLy8gYXNzZXJ0KGJBc3NldCA9PT0gdGhpcy5hc3NldEIudmFsdWUpCglmcmFtZV9kaWcgLTMgLy8gYkFzc2V0OiBBc3NldAoJYnl0ZSAweDYyIC8vICJiIgoJYXBwX2dsb2JhbF9nZXQKCT09Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTczCgkvLyB2ZXJpZnlBc3NldFRyYW5zZmVyVHhuKHN3YXBYZmVyLCB7CgkvLyAgICAgICBhc3NldEFtb3VudDogeyBncmVhdGVyVGhhbjogMCB9LAoJLy8gICAgICAgYXNzZXRSZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgIHNlbmRlcjogdGhpcy50eG4uc2VuZGVyLAoJLy8gICAgICAgeGZlckFzc2V0OiB7IGluY2x1ZGVkSW46IFthQXNzZXQsIGJBc3NldF0gfSwKCS8vICAgICB9KQoJLy8gdmVyaWZ5IGFzc2V0QW1vdW50CglmcmFtZV9kaWcgLTEgLy8gc3dhcFhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIEFzc2V0QW1vdW50CglpbnQgMAoJPgoJYXNzZXJ0CgoJLy8gdmVyaWZ5IGFzc2V0UmVjZWl2ZXIKCWZyYW1lX2RpZyAtMSAvLyBzd2FwWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09Cglhc3NlcnQKCgkvLyB2ZXJpZnkgc2VuZGVyCglmcmFtZV9kaWcgLTEgLy8gc3dhcFhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIFNlbmRlcgoJdHhuIFNlbmRlcgoJPT0KCWFzc2VydAoKCS8vIHZlcmlmeSB4ZmVyQXNzZXQKCWZyYW1lX2RpZyAtMSAvLyBzd2FwWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgWGZlckFzc2V0CglmcmFtZV9kaWcgLTIgLy8gYUFzc2V0OiBBc3NldAoJPT0KCWZyYW1lX2RpZyAtMSAvLyBzd2FwWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgWGZlckFzc2V0CglmcmFtZV9kaWcgLTMgLy8gYkFzc2V0OiBBc3NldAoJPT0KCXx8Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTgwCgkvLyBvdXRJZCA9IHN3YXBYZmVyLnhmZXJBc3NldCA9PT0gYUFzc2V0ID8gYUFzc2V0IDogYkFzc2V0CglmcmFtZV9kaWcgLTEgLy8gc3dhcFhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIFhmZXJBc3NldAoJZnJhbWVfZGlnIC0yIC8vIGFBc3NldDogQXNzZXQKCT09CglieiAqdGVybmFyeTNfZmFsc2UKCWZyYW1lX2RpZyAtMiAvLyBhQXNzZXQ6IEFzc2V0CgliICp0ZXJuYXJ5M19lbmQKCip0ZXJuYXJ5M19mYWxzZToKCWZyYW1lX2RpZyAtMyAvLyBiQXNzZXQ6IEFzc2V0CgoqdGVybmFyeTNfZW5kOgoJZnJhbWVfYnVyeSAwIC8vIG91dElkOiBhc3NldAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxODIKCS8vIGluSWQgPSBzd2FwWGZlci54ZmVyQXNzZXQKCWZyYW1lX2RpZyAtMSAvLyBzd2FwWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgWGZlckFzc2V0CglmcmFtZV9idXJ5IDEgLy8gaW5JZDogYXNzZXQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTg0CgkvLyB0b1N3YXAgPSB0aGlzLnRva2Vuc1RvU3dhcCgKCS8vICAgICAgIHN3YXBYZmVyLmFzc2V0QW1vdW50LAoJLy8gICAgICAgdGhpcy5hcHAuYWRkcmVzcy5hc3NldEJhbGFuY2UoaW5JZCkgLSBzd2FwWGZlci5hc3NldEFtb3VudCwKCS8vICAgICAgIHRoaXMuYXBwLmFkZHJlc3MuYXNzZXRCYWxhbmNlKG91dElkKQoJLy8gICAgICkKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglmcmFtZV9kaWcgMCAvLyBvdXRJZDogYXNzZXQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJcG9wCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJZnJhbWVfZGlnIDEgLy8gaW5JZDogYXNzZXQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJcG9wCglmcmFtZV9kaWcgLTEgLy8gc3dhcFhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIEFzc2V0QW1vdW50CgktCglmcmFtZV9kaWcgLTEgLy8gc3dhcFhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIEFzc2V0QW1vdW50CgljYWxsc3ViIHRva2Vuc1RvU3dhcAoJZnJhbWVfYnVyeSAyIC8vIHRvU3dhcDogdWludDY0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjE5MAoJLy8gYXNzZXJ0KHRvU3dhcCA+IDApCglmcmFtZV9kaWcgMiAvLyB0b1N3YXA6IHVpbnQ2NAoJaW50IDAKCT4KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxOTIKCS8vIHRoaXMuZG9BeGZlcih0aGlzLnR4bi5zZW5kZXIsIG91dElkLCB0b1N3YXApCglmcmFtZV9kaWcgMiAvLyB0b1N3YXA6IHVpbnQ2NAoJZnJhbWVfZGlnIDAgLy8gb3V0SWQ6IGFzc2V0Cgl0eG4gU2VuZGVyCgljYWxsc3ViIGRvQXhmZXIKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTk0CgkvLyB0aGlzLnJhdGlvLnZhbHVlID0gdGhpcy5jb21wdXRlUmF0aW8oKQoJYnl0ZSAweDcyIC8vICJyIgoJY2FsbHN1YiBjb21wdXRlUmF0aW8KCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInNldF9nb3Zlcm5vcihhY2NvdW50KXZvaWQiCgltZXRob2QgImJvb3RzdHJhcChwYXksYXNzZXQsYXNzZXQpdWludDY0IgoJbWV0aG9kICJtaW50KGF4ZmVyLGF4ZmVyLGFzc2V0LGFzc2V0LGFzc2V0KXZvaWQiCgltZXRob2QgImJ1cm4oYXhmZXIsYXNzZXQsYXNzZXQsYXNzZXQpdm9pZCIKCW1ldGhvZCAic3dhcChheGZlcixhc3NldCxhc3NldCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zZXRfZ292ZXJub3IgKmFiaV9yb3V0ZV9ib290c3RyYXAgKmFiaV9yb3V0ZV9taW50ICphYmlfcm91dGVfYnVybiAqYWJpX3JvdXRlX3N3YXAKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/examples/arc72/artifacts/ARC72.approval.teal b/examples/arc72/artifacts/ARC72.approval.teal index aa559f06b..1e89386ce 100644 --- a/examples/arc72/artifacts/ARC72.approval.teal +++ b/examples/arc72/artifacts/ARC72.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // arc72_ownerOf(uint256)address -abi_route_arc72_ownerOf: +*abi_route_arc72_ownerOf: // The ABI return prefix byte 0x151f7c75 @@ -60,7 +60,7 @@ arc72_ownerOf: retsub // arc72_tokenURI(uint256)byte[256] -abi_route_arc72_tokenURI: +*abi_route_arc72_tokenURI: // The ABI return prefix byte 0x151f7c75 @@ -110,7 +110,7 @@ transferTo: retsub // arc72_transferFrom(address,address,uint256)void -abi_route_arc72_transferFrom: +*abi_route_arc72_transferFrom: // tokenId: uint256 txna ApplicationArgs 3 dup @@ -162,14 +162,14 @@ arc72_transferFrom: concat frame_bury 1 // key: Control - // if0_condition + // *if0_condition // examples/arc72/arc72.algo.ts:52 // this.txn.sender === _from || this.txn.sender === token.controller || this.controlBox(key).exists txn Sender frame_dig -1 // _from: Address == dup - bnz skip_or0 + bnz *skip_or0 txn Sender frame_dig -3 // tokenId: uint256 int 288 // headOffset @@ -178,34 +178,34 @@ arc72_transferFrom: == || -skip_or0: +*skip_or0: dup - bnz skip_or1 + bnz *skip_or1 frame_dig 1 // key: Control box_len swap pop || -skip_or1: - bz if0_else +*skip_or1: + bz *if0_else - // if0_consequent + // *if0_consequent // examples/arc72/arc72.algo.ts:53 // this.transferTo(to, tokenId) frame_dig -3 // tokenId: uint256 frame_dig -2 // to: Address callsub transferTo - b if0_end + b *if0_end -if0_else: +*if0_else: err // 'Transfer not authorized' -if0_end: +*if0_end: retsub // arc72_approve(address,uint256)void -abi_route_arc72_approve: +*abi_route_arc72_approve: // tokenId: uint256 txna ApplicationArgs 2 dup @@ -246,7 +246,7 @@ arc72_approve: retsub // arc72_setApprovalForAll(address,bool)void -abi_route_arc72_setApprovalForAll: +*abi_route_arc72_setApprovalForAll: // approved: bool txna ApplicationArgs 2 dup @@ -291,13 +291,13 @@ arc72_setApprovalForAll: concat frame_bury 0 // key: Control - // if1_condition + // *if1_condition // examples/arc72/arc72.algo.ts:79 // approved frame_dig -2 // approved: boolean - bz if1_elseif1_condition + bz *if1_elseif1_condition - // if1_consequent + // *if1_consequent // examples/arc72/arc72.algo.ts:79 // this.controlBox(key).value = '' frame_dig 0 // key: Control @@ -306,28 +306,28 @@ arc72_setApprovalForAll: pop byte 0x // "" box_put - b if1_end + b *if1_end -if1_elseif1_condition: +*if1_elseif1_condition: // examples/arc72/arc72.algo.ts:80 // this.controlBox(key).exists frame_dig 0 // key: Control box_len swap pop - bz if1_end + bz *if1_end - // if1_elseif1_consequent + // *if1_elseif1_consequent // examples/arc72/arc72.algo.ts:80 // this.controlBox(key).delete() frame_dig 0 // key: Control box_del -if1_end: +*if1_end: retsub // mint(address)void -abi_route_mint: +*abi_route_mint: // to: address txna ApplicationArgs 1 dup @@ -404,7 +404,7 @@ mint: retsub // arc72_totalSupply()uint256 -abi_route_arc72_totalSupply: +*abi_route_arc72_totalSupply: // The ABI return prefix byte 0x151f7c75 @@ -442,7 +442,7 @@ arc72_totalSupply: retsub // arc72_tokenByIndex(uint256)uint256 -abi_route_arc72_tokenByIndex: +*abi_route_arc72_tokenByIndex: // The ABI return prefix byte 0x151f7c75 @@ -486,17 +486,17 @@ arc72_tokenByIndex: frame_dig -1 // index: uint256 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "arc72_ownerOf(uint256)address" method "arc72_tokenURI(uint256)byte[256]" method "arc72_transferFrom(address,address,uint256)void" @@ -506,5 +506,5 @@ call_NoOp: method "arc72_totalSupply()uint256" method "arc72_tokenByIndex(uint256)uint256" txna ApplicationArgs 0 - match abi_route_arc72_ownerOf abi_route_arc72_tokenURI abi_route_arc72_transferFrom abi_route_arc72_approve abi_route_arc72_setApprovalForAll abi_route_mint abi_route_arc72_totalSupply abi_route_arc72_tokenByIndex + match *abi_route_arc72_ownerOf *abi_route_arc72_tokenURI *abi_route_arc72_transferFrom *abi_route_arc72_approve *abi_route_arc72_setApprovalForAll *abi_route_mint *abi_route_arc72_totalSupply *abi_route_arc72_tokenByIndex err \ No newline at end of file diff --git a/examples/arc72/artifacts/ARC72.arc32.json b/examples/arc72/artifacts/ARC72.arc32.json index 821923e3e..50f4b45f5 100644 --- a/examples/arc72/artifacts/ARC72.arc32.json +++ b/examples/arc72/artifacts/ARC72.arc32.json @@ -79,7 +79,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBhcmM3Ml9vd25lck9mKHVpbnQyNTYpYWRkcmVzcwphYmlfcm91dGVfYXJjNzJfb3duZXJPZjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gdG9rZW5JZDogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCWFzc2VydAoKCS8vIGV4ZWN1dGUgYXJjNzJfb3duZXJPZih1aW50MjU2KWFkZHJlc3MKCWNhbGxzdWIgYXJjNzJfb3duZXJPZgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFyYzcyX293bmVyT2YodG9rZW5JZDogdWludDI1Nik6IEFkZHJlc3MKLy8KLy8KLy8gUmV0dXJucyB0aGUgYWRkcmVzcyBvZiB0aGUgY3VycmVudCBvd25lciBvZiB0aGUgTkZUIHdpdGggdGhlIGdpdmVuIHRva2VuSWQKLy8KLy8gQHBhcmFtIHRva2VuSWQgVGhlIElEIG9mIHRoZSBORlQKLy8gQHJldHVybnMgVGhlIGN1cnJlbnQgb3duZXIgb2YgdGhlIE5GVAphcmM3Ml9vd25lck9mOgoJcHJvdG8gMSAxCgoJLy8gZXhhbXBsZXMvYXJjNzIvYXJjNzIuYWxnby50czoyNQoJLy8gcmV0dXJuIHRoaXMudG9rZW5Cb3godG9rZW5JZCkudmFsdWUub3duZXI7CglmcmFtZV9kaWcgLTEgLy8gdG9rZW5JZDogdWludDI1NgoJaW50IDAKCWludCAzMgoJYm94X2V4dHJhY3QKCXJldHN1YgoKLy8gYXJjNzJfdG9rZW5VUkkodWludDI1NilieXRlWzI1Nl0KYWJpX3JvdXRlX2FyYzcyX3Rva2VuVVJJOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyB0b2tlbklkOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBhcmM3Ml90b2tlblVSSSh1aW50MjU2KWJ5dGVbMjU2XQoJY2FsbHN1YiBhcmM3Ml90b2tlblVSSQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFyYzcyX3Rva2VuVVJJKHRva2VuSWQ6IHVpbnQyNTYpOiBCeXRlczI1NgovLwovLwovLyBSZXR1cm5zIGEgVVJJIHBvaW50aW5nIHRvIHRoZSBORlQgbWV0YWRhdGEKLy8KLy8gQHBhcmFtIHRva2VuSWQgVGhlIElEIG9mIHRoZSBORlQKLy8gQHJldHVybnMgVVJJIHRvIHRva2VuIG1ldGFkYXRhCmFyYzcyX3Rva2VuVVJJOgoJcHJvdG8gMSAxCgoJLy8gZXhhbXBsZXMvYXJjNzIvYXJjNzIuYWxnby50czozNwoJLy8gcmV0dXJuIHRoaXMudG9rZW5Cb3godG9rZW5JZCkudmFsdWUudXJpOwoJZnJhbWVfZGlnIC0xIC8vIHRva2VuSWQ6IHVpbnQyNTYKCWludCAzMiAvLyBoZWFkT2Zmc2V0CglpbnQgMjU2Cglib3hfZXh0cmFjdAoJcmV0c3ViCgovLyB0cmFuc2ZlclRvKHRvOiBBZGRyZXNzLCB0b2tlbklkOiB1aW50MjU2KTogdm9pZAp0cmFuc2ZlclRvOgoJcHJvdG8gMiAwCgoJLy8gZXhhbXBsZXMvYXJjNzIvYXJjNzIuYWxnby50czo0MQoJLy8gdGhpcy50b2tlbkJveCh0b2tlbklkKS52YWx1ZS5vd25lciA9IHRvCglmcmFtZV9kaWcgLTIgLy8gdG9rZW5JZDogdWludDI1NgoJaW50IDAKCWZyYW1lX2RpZyAtMSAvLyB0bzogQWRkcmVzcwoJYm94X3JlcGxhY2UKCXJldHN1YgoKLy8gYXJjNzJfdHJhbnNmZXJGcm9tKGFkZHJlc3MsYWRkcmVzcyx1aW50MjU2KXZvaWQKYWJpX3JvdXRlX2FyYzcyX3RyYW5zZmVyRnJvbToKCS8vIHRva2VuSWQ6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWR1cAoJbGVuCglpbnQgMzIKCT09Cglhc3NlcnQKCgkvLyB0bzogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAzMgoJPT0KCWFzc2VydAoKCS8vIF9mcm9tOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBhcmM3Ml90cmFuc2ZlckZyb20oYWRkcmVzcyxhZGRyZXNzLHVpbnQyNTYpdm9pZAoJY2FsbHN1YiBhcmM3Ml90cmFuc2ZlckZyb20KCWludCAxCglyZXR1cm4KCi8vIGFyYzcyX3RyYW5zZmVyRnJvbShfZnJvbTogQWRkcmVzcywgdG86IEFkZHJlc3MsIHRva2VuSWQ6IHVpbnQyNTYpOiB2b2lkCi8vCi8vIFRyYW5zZmVycyBvd25lcnNoaXAgb2YgYW4gTkZUCmFyYzcyX3RyYW5zZmVyRnJvbToKCXByb3RvIDMgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyBleGFtcGxlcy9hcmM3Mi9hcmM3Mi5hbGdvLnRzOjQ4CgkvLyB0b2tlbiA9IHRoaXMudG9rZW5Cb3godG9rZW5JZCkudmFsdWUKCWZyYW1lX2RpZyAtMyAvLyB0b2tlbklkOiB1aW50MjU2CglmcmFtZV9idXJ5IDAgLy8gc3RvcmFnZSBrZXkvL3Rva2VuCgoJLy8gZXhhbXBsZXMvYXJjNzIvYXJjNzIuYWxnby50czo1MAoJLy8ga2V5OiBDb250cm9sID0geyBvd25lcjogdGhpcy50eG4uc2VuZGVyLCBjb250cm9sbGVyOiBfZnJvbSB9Cgl0eG4gU2VuZGVyCglmcmFtZV9kaWcgLTEgLy8gX2Zyb206IEFkZHJlc3MKCWNvbmNhdAoJZnJhbWVfYnVyeSAxIC8vIGtleTogQ29udHJvbAoKCS8vIGlmMF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL2FyYzcyL2FyYzcyLmFsZ28udHM6NTIKCS8vIHRoaXMudHhuLnNlbmRlciA9PT0gX2Zyb20gfHwgdGhpcy50eG4uc2VuZGVyID09PSB0b2tlbi5jb250cm9sbGVyIHx8IHRoaXMuY29udHJvbEJveChrZXkpLmV4aXN0cwoJdHhuIFNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIF9mcm9tOiBBZGRyZXNzCgk9PQoJZHVwCglibnogc2tpcF9vcjAKCXR4biBTZW5kZXIKCWZyYW1lX2RpZyAtMyAvLyB0b2tlbklkOiB1aW50MjU2CglpbnQgMjg4IC8vIGhlYWRPZmZzZXQKCWludCAzMgoJYm94X2V4dHJhY3QKCT09Cgl8fAoKc2tpcF9vcjA6CglkdXAKCWJueiBza2lwX29yMQoJZnJhbWVfZGlnIDEgLy8ga2V5OiBDb250cm9sCglib3hfbGVuCglzd2FwCglwb3AKCXx8Cgpza2lwX29yMToKCWJ6IGlmMF9lbHNlCgoJLy8gaWYwX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL2FyYzcyL2FyYzcyLmFsZ28udHM6NTMKCS8vIHRoaXMudHJhbnNmZXJUbyh0bywgdG9rZW5JZCkKCWZyYW1lX2RpZyAtMyAvLyB0b2tlbklkOiB1aW50MjU2CglmcmFtZV9kaWcgLTIgLy8gdG86IEFkZHJlc3MKCWNhbGxzdWIgdHJhbnNmZXJUbwoJYiBpZjBfZW5kCgppZjBfZWxzZToKCWVyciAvLyAnVHJhbnNmZXIgbm90IGF1dGhvcml6ZWQnCgppZjBfZW5kOgoJcmV0c3ViCgovLyBhcmM3Ml9hcHByb3ZlKGFkZHJlc3MsdWludDI1Nil2b2lkCmFiaV9yb3V0ZV9hcmM3Ml9hcHByb3ZlOgoJLy8gdG9rZW5JZDogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAzMgoJPT0KCWFzc2VydAoKCS8vIGFwcHJvdmVkOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBhcmM3Ml9hcHByb3ZlKGFkZHJlc3MsdWludDI1Nil2b2lkCgljYWxsc3ViIGFyYzcyX2FwcHJvdmUKCWludCAxCglyZXR1cm4KCi8vIGFyYzcyX2FwcHJvdmUoYXBwcm92ZWQ6IEFkZHJlc3MsIHRva2VuSWQ6IHVpbnQyNTYpOiB2b2lkCi8vCi8vCi8vIEFwcHJvdmUgYSBjb250cm9sbGVyIGZvciBhIHNpbmdsZSBORlQKLy8KLy8gQHBhcmFtIGFwcHJvdmVkIEFwcHJvdmVkIGNvbnRyb2xsZXIgYWRkcmVzcwovLyBAcGFyYW0gdG9rZW5JZCBUaGUgSUQgb2YgdGhlIE5GVAphcmM3Ml9hcHByb3ZlOgoJcHJvdG8gMiAwCgoJLy8gZXhhbXBsZXMvYXJjNzIvYXJjNzIuYWxnby50czo2NQoJLy8gdGhpcy50b2tlbkJveCh0b2tlbklkKS52YWx1ZS5jb250cm9sbGVyID0gYXBwcm92ZWQKCWZyYW1lX2RpZyAtMiAvLyB0b2tlbklkOiB1aW50MjU2CglpbnQgMjg4IC8vIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAtMSAvLyBhcHByb3ZlZDogQWRkcmVzcwoJYm94X3JlcGxhY2UKCXJldHN1YgoKLy8gYXJjNzJfc2V0QXBwcm92YWxGb3JBbGwoYWRkcmVzcyxib29sKXZvaWQKYWJpX3JvdXRlX2FyYzcyX3NldEFwcHJvdmFsRm9yQWxsOgoJLy8gYXBwcm92ZWQ6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMQoJPT0KCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIG9wZXJhdG9yOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBhcmM3Ml9zZXRBcHByb3ZhbEZvckFsbChhZGRyZXNzLGJvb2wpdm9pZAoJY2FsbHN1YiBhcmM3Ml9zZXRBcHByb3ZhbEZvckFsbAoJaW50IDEKCXJldHVybgoKLy8gYXJjNzJfc2V0QXBwcm92YWxGb3JBbGwob3BlcmF0b3I6IEFkZHJlc3MsIGFwcHJvdmVkOiBib29sZWFuKTogdm9pZAovLwovLwovLyBBcHByb3ZlIGFuIG9wZXJhdG9yIGZvciBhbGwgTkZUcyBmb3IgYSB1c2VyCi8vCi8vIEBwYXJhbSBvcGVyYXRvciBBcHByb3ZlZCBvcGVyYXRvciBhZGRyZXNzCi8vIEBwYXJhbSBhcHByb3ZlZCB0cnVlIHRvIGdpdmUgYXBwcm92YWwsIGZhbHNlIHRvIHJldm9rZQovLyBAcmV0dXJucwphcmM3Ml9zZXRBcHByb3ZhbEZvckFsbDoKCXByb3RvIDIgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gZXhhbXBsZXMvYXJjNzIvYXJjNzIuYWxnby50czo3NwoJLy8ga2V5OiBDb250cm9sID0geyBvd25lcjogdGhpcy50eG4uc2VuZGVyLCBjb250cm9sbGVyOiBvcGVyYXRvciB9Cgl0eG4gU2VuZGVyCglmcmFtZV9kaWcgLTEgLy8gb3BlcmF0b3I6IEFkZHJlc3MKCWNvbmNhdAoJZnJhbWVfYnVyeSAwIC8vIGtleTogQ29udHJvbAoKCS8vIGlmMV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL2FyYzcyL2FyYzcyLmFsZ28udHM6NzkKCS8vIGFwcHJvdmVkCglmcmFtZV9kaWcgLTIgLy8gYXBwcm92ZWQ6IGJvb2xlYW4KCWJ6IGlmMV9lbHNlaWYxX2NvbmRpdGlvbgoKCS8vIGlmMV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9hcmM3Mi9hcmM3Mi5hbGdvLnRzOjc5CgkvLyB0aGlzLmNvbnRyb2xCb3goa2V5KS52YWx1ZSA9ICcnCglmcmFtZV9kaWcgMCAvLyBrZXk6IENvbnRyb2wKCWR1cAoJYm94X2RlbAoJcG9wCglieXRlIDB4IC8vICIiCglib3hfcHV0CgliIGlmMV9lbmQKCmlmMV9lbHNlaWYxX2NvbmRpdGlvbjoKCS8vIGV4YW1wbGVzL2FyYzcyL2FyYzcyLmFsZ28udHM6ODAKCS8vIHRoaXMuY29udHJvbEJveChrZXkpLmV4aXN0cwoJZnJhbWVfZGlnIDAgLy8ga2V5OiBDb250cm9sCglib3hfbGVuCglzd2FwCglwb3AKCWJ6IGlmMV9lbmQKCgkvLyBpZjFfZWxzZWlmMV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9hcmM3Mi9hcmM3Mi5hbGdvLnRzOjgwCgkvLyB0aGlzLmNvbnRyb2xCb3goa2V5KS5kZWxldGUoKQoJZnJhbWVfZGlnIDAgLy8ga2V5OiBDb250cm9sCglib3hfZGVsCgppZjFfZW5kOgoJcmV0c3ViCgovLyBtaW50KGFkZHJlc3Mpdm9pZAphYmlfcm91dGVfbWludDoKCS8vIHRvOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBtaW50KGFkZHJlc3Mpdm9pZAoJY2FsbHN1YiBtaW50CglpbnQgMQoJcmV0dXJuCgovLyBtaW50KHRvOiBBZGRyZXNzKTogdm9pZAptaW50OgoJcHJvdG8gMSAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIGV4YW1wbGVzL2FyYzcyL2FyYzcyLmFsZ28udHM6ODQKCS8vIGluZGV4ID0gdGhpcy5pbmRleC52YWx1ZQoJYnl0ZSAweDY5NmU2NDY1NzggLy8gImluZGV4IgoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2J1cnkgMCAvLyBpbmRleDogdWludDI1NgoKCS8vIGV4YW1wbGVzL2FyYzcyL2FyYzcyLmFsZ28udHM6ODYKCS8vIHRva2VuOiBUb2tlbiA9IHsKCS8vICAgICAgIG93bmVyOiB0bywKCS8vICAgICAgIHVyaTogJ2h0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vQVJDcycgYXMgQnl0ZXMyNTYsCgkvLyAgICAgICBjb250cm9sbGVyOiBBZGRyZXNzLnplcm9BZGRyZXNzLAoJLy8gICAgIH0KCWZyYW1lX2RpZyAtMSAvLyB0bzogQWRkcmVzcwoJYnl0ZSAweDY4NzQ3NDcwNzMzYTJmMmY2NzY5NzQ2ODc1NjIyZTYzNmY2ZDJmNjE2YzY3NmY3MjYxNmU2NDY2NmY3NTZlNjQ2MTc0Njk2ZjZlMmY0MTUyNDM3MzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIC8vICJodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL0FSQ3MiCgljb25jYXQKCWdsb2JhbCBaZXJvQWRkcmVzcwoJY29uY2F0CglmcmFtZV9idXJ5IDEgLy8gdG9rZW46IFRva2VuCgoJLy8gZXhhbXBsZXMvYXJjNzIvYXJjNzIuYWxnby50czo5MgoJLy8gdGhpcy50b2tlbkJveChpbmRleCkudmFsdWUgPSB0b2tlbgoJZnJhbWVfZGlnIDAgLy8gaW5kZXg6IHVpbnQyNTYKCWZyYW1lX2RpZyAxIC8vIHRva2VuOiBUb2tlbgoJYm94X3B1dAoKCS8vIGV4YW1wbGVzL2FyYzcyL2FyYzcyLmFsZ28udHM6OTMKCS8vIHRoaXMudHJhbnNmZXJUbyh0bywgaW5kZXgpCglmcmFtZV9kaWcgMCAvLyBpbmRleDogdWludDI1NgoJZnJhbWVfZGlnIC0xIC8vIHRvOiBBZGRyZXNzCgljYWxsc3ViIHRyYW5zZmVyVG8KCgkvLyBleGFtcGxlcy9hcmM3Mi9hcmM3Mi5hbGdvLnRzOjk0CgkvLyB0aGlzLmluZGV4LnZhbHVlID0gaW5kZXggKyAxCglieXRlIDB4Njk2ZTY0NjU3OCAvLyAiaW5kZXgiCglmcmFtZV9kaWcgMCAvLyBpbmRleDogdWludDI1NgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEKCWIrCglkdXAKCWJpdGxlbgoJaW50IDI1NgoJPD0KCWFzc2VydAoJYnl0ZSAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMzIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIGFyYzcyX3RvdGFsU3VwcGx5KCl1aW50MjU2CmFiaV9yb3V0ZV9hcmM3Ml90b3RhbFN1cHBseToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBhcmM3Ml90b3RhbFN1cHBseSgpdWludDI1NgoJY2FsbHN1YiBhcmM3Ml90b3RhbFN1cHBseQoJZHVwCgliaXRsZW4KCWludCAyNTYKCTw9Cglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50IDMyCgktCglzd2FwCglzdWJzdHJpbmczCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYXJjNzJfdG90YWxTdXBwbHkoKTogdWludDI1NgovLwovLyBSZXR1cm5zIHRoZSBudW1iZXIgb2YgTkZUcyBjdXJyZW50bHkgZGVmaW5lZCBieSB0aGlzIGNvbnRyYWN0CmFyYzcyX3RvdGFsU3VwcGx5OgoJcHJvdG8gMCAxCgoJLy8gZXhhbXBsZXMvYXJjNzIvYXJjNzIuYWxnby50czoxMDIKCS8vIHJldHVybiB0aGlzLmluZGV4LnZhbHVlOwoJYnl0ZSAweDY5NmU2NDY1NzggLy8gImluZGV4IgoJYXBwX2dsb2JhbF9nZXQKCXJldHN1YgoKLy8gYXJjNzJfdG9rZW5CeUluZGV4KHVpbnQyNTYpdWludDI1NgphYmlfcm91dGVfYXJjNzJfdG9rZW5CeUluZGV4OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBpbmRleDogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCWFzc2VydAoKCS8vIGV4ZWN1dGUgYXJjNzJfdG9rZW5CeUluZGV4KHVpbnQyNTYpdWludDI1NgoJY2FsbHN1YiBhcmM3Ml90b2tlbkJ5SW5kZXgKCWR1cAoJYml0bGVuCglpbnQgMjU2Cgk8PQoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAzMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFyYzcyX3Rva2VuQnlJbmRleChpbmRleDogdWludDI1Nik6IHVpbnQyNTYKLy8KLy8gUmV0dXJucyB0aGUgdG9rZW4gSUQgb2YgdGhlIHRva2VuIHdpdGggdGhlIGdpdmVuIGluZGV4IGFtb25nIGFsbCBORlRzIGRlZmluZWQgYnkgdGhlIGNvbnRyYWN0CmFyYzcyX3Rva2VuQnlJbmRleDoKCXByb3RvIDEgMQoKCS8vIGV4YW1wbGVzL2FyYzcyL2FyYzcyLmFsZ28udHM6MTEwCgkvLyByZXR1cm4gaW5kZXg7CglmcmFtZV9kaWcgLTEgLy8gaW5kZXg6IHVpbnQyNTYKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAiYXJjNzJfb3duZXJPZih1aW50MjU2KWFkZHJlc3MiCgltZXRob2QgImFyYzcyX3Rva2VuVVJJKHVpbnQyNTYpYnl0ZVsyNTZdIgoJbWV0aG9kICJhcmM3Ml90cmFuc2ZlckZyb20oYWRkcmVzcyxhZGRyZXNzLHVpbnQyNTYpdm9pZCIKCW1ldGhvZCAiYXJjNzJfYXBwcm92ZShhZGRyZXNzLHVpbnQyNTYpdm9pZCIKCW1ldGhvZCAiYXJjNzJfc2V0QXBwcm92YWxGb3JBbGwoYWRkcmVzcyxib29sKXZvaWQiCgltZXRob2QgIm1pbnQoYWRkcmVzcyl2b2lkIgoJbWV0aG9kICJhcmM3Ml90b3RhbFN1cHBseSgpdWludDI1NiIKCW1ldGhvZCAiYXJjNzJfdG9rZW5CeUluZGV4KHVpbnQyNTYpdWludDI1NiIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9hcmM3Ml9vd25lck9mIGFiaV9yb3V0ZV9hcmM3Ml90b2tlblVSSSBhYmlfcm91dGVfYXJjNzJfdHJhbnNmZXJGcm9tIGFiaV9yb3V0ZV9hcmM3Ml9hcHByb3ZlIGFiaV9yb3V0ZV9hcmM3Ml9zZXRBcHByb3ZhbEZvckFsbCBhYmlfcm91dGVfbWludCBhYmlfcm91dGVfYXJjNzJfdG90YWxTdXBwbHkgYWJpX3JvdXRlX2FyYzcyX3Rva2VuQnlJbmRleAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBhcmM3Ml9vd25lck9mKHVpbnQyNTYpYWRkcmVzcwoqYWJpX3JvdXRlX2FyYzcyX293bmVyT2Y6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIHRva2VuSWQ6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09Cglhc3NlcnQKCgkvLyBleGVjdXRlIGFyYzcyX293bmVyT2YodWludDI1NilhZGRyZXNzCgljYWxsc3ViIGFyYzcyX293bmVyT2YKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBhcmM3Ml9vd25lck9mKHRva2VuSWQ6IHVpbnQyNTYpOiBBZGRyZXNzCi8vCi8vCi8vIFJldHVybnMgdGhlIGFkZHJlc3Mgb2YgdGhlIGN1cnJlbnQgb3duZXIgb2YgdGhlIE5GVCB3aXRoIHRoZSBnaXZlbiB0b2tlbklkCi8vCi8vIEBwYXJhbSB0b2tlbklkIFRoZSBJRCBvZiB0aGUgTkZUCi8vIEByZXR1cm5zIFRoZSBjdXJyZW50IG93bmVyIG9mIHRoZSBORlQKYXJjNzJfb3duZXJPZjoKCXByb3RvIDEgMQoKCS8vIGV4YW1wbGVzL2FyYzcyL2FyYzcyLmFsZ28udHM6MjUKCS8vIHJldHVybiB0aGlzLnRva2VuQm94KHRva2VuSWQpLnZhbHVlLm93bmVyOwoJZnJhbWVfZGlnIC0xIC8vIHRva2VuSWQ6IHVpbnQyNTYKCWludCAwCglpbnQgMzIKCWJveF9leHRyYWN0CglyZXRzdWIKCi8vIGFyYzcyX3Rva2VuVVJJKHVpbnQyNTYpYnl0ZVsyNTZdCiphYmlfcm91dGVfYXJjNzJfdG9rZW5VUkk6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIHRva2VuSWQ6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09Cglhc3NlcnQKCgkvLyBleGVjdXRlIGFyYzcyX3Rva2VuVVJJKHVpbnQyNTYpYnl0ZVsyNTZdCgljYWxsc3ViIGFyYzcyX3Rva2VuVVJJCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYXJjNzJfdG9rZW5VUkkodG9rZW5JZDogdWludDI1Nik6IEJ5dGVzMjU2Ci8vCi8vCi8vIFJldHVybnMgYSBVUkkgcG9pbnRpbmcgdG8gdGhlIE5GVCBtZXRhZGF0YQovLwovLyBAcGFyYW0gdG9rZW5JZCBUaGUgSUQgb2YgdGhlIE5GVAovLyBAcmV0dXJucyBVUkkgdG8gdG9rZW4gbWV0YWRhdGEKYXJjNzJfdG9rZW5VUkk6Cglwcm90byAxIDEKCgkvLyBleGFtcGxlcy9hcmM3Mi9hcmM3Mi5hbGdvLnRzOjM3CgkvLyByZXR1cm4gdGhpcy50b2tlbkJveCh0b2tlbklkKS52YWx1ZS51cmk7CglmcmFtZV9kaWcgLTEgLy8gdG9rZW5JZDogdWludDI1NgoJaW50IDMyIC8vIGhlYWRPZmZzZXQKCWludCAyNTYKCWJveF9leHRyYWN0CglyZXRzdWIKCi8vIHRyYW5zZmVyVG8odG86IEFkZHJlc3MsIHRva2VuSWQ6IHVpbnQyNTYpOiB2b2lkCnRyYW5zZmVyVG86Cglwcm90byAyIDAKCgkvLyBleGFtcGxlcy9hcmM3Mi9hcmM3Mi5hbGdvLnRzOjQxCgkvLyB0aGlzLnRva2VuQm94KHRva2VuSWQpLnZhbHVlLm93bmVyID0gdG8KCWZyYW1lX2RpZyAtMiAvLyB0b2tlbklkOiB1aW50MjU2CglpbnQgMAoJZnJhbWVfZGlnIC0xIC8vIHRvOiBBZGRyZXNzCglib3hfcmVwbGFjZQoJcmV0c3ViCgovLyBhcmM3Ml90cmFuc2ZlckZyb20oYWRkcmVzcyxhZGRyZXNzLHVpbnQyNTYpdm9pZAoqYWJpX3JvdXRlX2FyYzcyX3RyYW5zZmVyRnJvbToKCS8vIHRva2VuSWQ6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWR1cAoJbGVuCglpbnQgMzIKCT09Cglhc3NlcnQKCgkvLyB0bzogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAzMgoJPT0KCWFzc2VydAoKCS8vIF9mcm9tOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBhcmM3Ml90cmFuc2ZlckZyb20oYWRkcmVzcyxhZGRyZXNzLHVpbnQyNTYpdm9pZAoJY2FsbHN1YiBhcmM3Ml90cmFuc2ZlckZyb20KCWludCAxCglyZXR1cm4KCi8vIGFyYzcyX3RyYW5zZmVyRnJvbShfZnJvbTogQWRkcmVzcywgdG86IEFkZHJlc3MsIHRva2VuSWQ6IHVpbnQyNTYpOiB2b2lkCi8vCi8vIFRyYW5zZmVycyBvd25lcnNoaXAgb2YgYW4gTkZUCmFyYzcyX3RyYW5zZmVyRnJvbToKCXByb3RvIDMgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyBleGFtcGxlcy9hcmM3Mi9hcmM3Mi5hbGdvLnRzOjQ4CgkvLyB0b2tlbiA9IHRoaXMudG9rZW5Cb3godG9rZW5JZCkudmFsdWUKCWZyYW1lX2RpZyAtMyAvLyB0b2tlbklkOiB1aW50MjU2CglmcmFtZV9idXJ5IDAgLy8gc3RvcmFnZSBrZXkvL3Rva2VuCgoJLy8gZXhhbXBsZXMvYXJjNzIvYXJjNzIuYWxnby50czo1MAoJLy8ga2V5OiBDb250cm9sID0geyBvd25lcjogdGhpcy50eG4uc2VuZGVyLCBjb250cm9sbGVyOiBfZnJvbSB9Cgl0eG4gU2VuZGVyCglmcmFtZV9kaWcgLTEgLy8gX2Zyb206IEFkZHJlc3MKCWNvbmNhdAoJZnJhbWVfYnVyeSAxIC8vIGtleTogQ29udHJvbAoKCS8vICppZjBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9hcmM3Mi9hcmM3Mi5hbGdvLnRzOjUyCgkvLyB0aGlzLnR4bi5zZW5kZXIgPT09IF9mcm9tIHx8IHRoaXMudHhuLnNlbmRlciA9PT0gdG9rZW4uY29udHJvbGxlciB8fCB0aGlzLmNvbnRyb2xCb3goa2V5KS5leGlzdHMKCXR4biBTZW5kZXIKCWZyYW1lX2RpZyAtMSAvLyBfZnJvbTogQWRkcmVzcwoJPT0KCWR1cAoJYm56ICpza2lwX29yMAoJdHhuIFNlbmRlcgoJZnJhbWVfZGlnIC0zIC8vIHRva2VuSWQ6IHVpbnQyNTYKCWludCAyODggLy8gaGVhZE9mZnNldAoJaW50IDMyCglib3hfZXh0cmFjdAoJPT0KCXx8Cgoqc2tpcF9vcjA6CglkdXAKCWJueiAqc2tpcF9vcjEKCWZyYW1lX2RpZyAxIC8vIGtleTogQ29udHJvbAoJYm94X2xlbgoJc3dhcAoJcG9wCgl8fAoKKnNraXBfb3IxOgoJYnogKmlmMF9lbHNlCgoJLy8gKmlmMF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9hcmM3Mi9hcmM3Mi5hbGdvLnRzOjUzCgkvLyB0aGlzLnRyYW5zZmVyVG8odG8sIHRva2VuSWQpCglmcmFtZV9kaWcgLTMgLy8gdG9rZW5JZDogdWludDI1NgoJZnJhbWVfZGlnIC0yIC8vIHRvOiBBZGRyZXNzCgljYWxsc3ViIHRyYW5zZmVyVG8KCWIgKmlmMF9lbmQKCippZjBfZWxzZToKCWVyciAvLyAnVHJhbnNmZXIgbm90IGF1dGhvcml6ZWQnCgoqaWYwX2VuZDoKCXJldHN1YgoKLy8gYXJjNzJfYXBwcm92ZShhZGRyZXNzLHVpbnQyNTYpdm9pZAoqYWJpX3JvdXRlX2FyYzcyX2FwcHJvdmU6CgkvLyB0b2tlbklkOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDMyCgk9PQoJYXNzZXJ0CgoJLy8gYXBwcm92ZWQ6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09Cglhc3NlcnQKCgkvLyBleGVjdXRlIGFyYzcyX2FwcHJvdmUoYWRkcmVzcyx1aW50MjU2KXZvaWQKCWNhbGxzdWIgYXJjNzJfYXBwcm92ZQoJaW50IDEKCXJldHVybgoKLy8gYXJjNzJfYXBwcm92ZShhcHByb3ZlZDogQWRkcmVzcywgdG9rZW5JZDogdWludDI1Nik6IHZvaWQKLy8KLy8KLy8gQXBwcm92ZSBhIGNvbnRyb2xsZXIgZm9yIGEgc2luZ2xlIE5GVAovLwovLyBAcGFyYW0gYXBwcm92ZWQgQXBwcm92ZWQgY29udHJvbGxlciBhZGRyZXNzCi8vIEBwYXJhbSB0b2tlbklkIFRoZSBJRCBvZiB0aGUgTkZUCmFyYzcyX2FwcHJvdmU6Cglwcm90byAyIDAKCgkvLyBleGFtcGxlcy9hcmM3Mi9hcmM3Mi5hbGdvLnRzOjY1CgkvLyB0aGlzLnRva2VuQm94KHRva2VuSWQpLnZhbHVlLmNvbnRyb2xsZXIgPSBhcHByb3ZlZAoJZnJhbWVfZGlnIC0yIC8vIHRva2VuSWQ6IHVpbnQyNTYKCWludCAyODggLy8gaGVhZE9mZnNldAoJZnJhbWVfZGlnIC0xIC8vIGFwcHJvdmVkOiBBZGRyZXNzCglib3hfcmVwbGFjZQoJcmV0c3ViCgovLyBhcmM3Ml9zZXRBcHByb3ZhbEZvckFsbChhZGRyZXNzLGJvb2wpdm9pZAoqYWJpX3JvdXRlX2FyYzcyX3NldEFwcHJvdmFsRm9yQWxsOgoJLy8gYXBwcm92ZWQ6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMQoJPT0KCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIG9wZXJhdG9yOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBhcmM3Ml9zZXRBcHByb3ZhbEZvckFsbChhZGRyZXNzLGJvb2wpdm9pZAoJY2FsbHN1YiBhcmM3Ml9zZXRBcHByb3ZhbEZvckFsbAoJaW50IDEKCXJldHVybgoKLy8gYXJjNzJfc2V0QXBwcm92YWxGb3JBbGwob3BlcmF0b3I6IEFkZHJlc3MsIGFwcHJvdmVkOiBib29sZWFuKTogdm9pZAovLwovLwovLyBBcHByb3ZlIGFuIG9wZXJhdG9yIGZvciBhbGwgTkZUcyBmb3IgYSB1c2VyCi8vCi8vIEBwYXJhbSBvcGVyYXRvciBBcHByb3ZlZCBvcGVyYXRvciBhZGRyZXNzCi8vIEBwYXJhbSBhcHByb3ZlZCB0cnVlIHRvIGdpdmUgYXBwcm92YWwsIGZhbHNlIHRvIHJldm9rZQovLyBAcmV0dXJucwphcmM3Ml9zZXRBcHByb3ZhbEZvckFsbDoKCXByb3RvIDIgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gZXhhbXBsZXMvYXJjNzIvYXJjNzIuYWxnby50czo3NwoJLy8ga2V5OiBDb250cm9sID0geyBvd25lcjogdGhpcy50eG4uc2VuZGVyLCBjb250cm9sbGVyOiBvcGVyYXRvciB9Cgl0eG4gU2VuZGVyCglmcmFtZV9kaWcgLTEgLy8gb3BlcmF0b3I6IEFkZHJlc3MKCWNvbmNhdAoJZnJhbWVfYnVyeSAwIC8vIGtleTogQ29udHJvbAoKCS8vICppZjFfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9hcmM3Mi9hcmM3Mi5hbGdvLnRzOjc5CgkvLyBhcHByb3ZlZAoJZnJhbWVfZGlnIC0yIC8vIGFwcHJvdmVkOiBib29sZWFuCglieiAqaWYxX2Vsc2VpZjFfY29uZGl0aW9uCgoJLy8gKmlmMV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9hcmM3Mi9hcmM3Mi5hbGdvLnRzOjc5CgkvLyB0aGlzLmNvbnRyb2xCb3goa2V5KS52YWx1ZSA9ICcnCglmcmFtZV9kaWcgMCAvLyBrZXk6IENvbnRyb2wKCWR1cAoJYm94X2RlbAoJcG9wCglieXRlIDB4IC8vICIiCglib3hfcHV0CgliICppZjFfZW5kCgoqaWYxX2Vsc2VpZjFfY29uZGl0aW9uOgoJLy8gZXhhbXBsZXMvYXJjNzIvYXJjNzIuYWxnby50czo4MAoJLy8gdGhpcy5jb250cm9sQm94KGtleSkuZXhpc3RzCglmcmFtZV9kaWcgMCAvLyBrZXk6IENvbnRyb2wKCWJveF9sZW4KCXN3YXAKCXBvcAoJYnogKmlmMV9lbmQKCgkvLyAqaWYxX2Vsc2VpZjFfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvYXJjNzIvYXJjNzIuYWxnby50czo4MAoJLy8gdGhpcy5jb250cm9sQm94KGtleSkuZGVsZXRlKCkKCWZyYW1lX2RpZyAwIC8vIGtleTogQ29udHJvbAoJYm94X2RlbAoKKmlmMV9lbmQ6CglyZXRzdWIKCi8vIG1pbnQoYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfbWludDoKCS8vIHRvOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBtaW50KGFkZHJlc3Mpdm9pZAoJY2FsbHN1YiBtaW50CglpbnQgMQoJcmV0dXJuCgovLyBtaW50KHRvOiBBZGRyZXNzKTogdm9pZAptaW50OgoJcHJvdG8gMSAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIGV4YW1wbGVzL2FyYzcyL2FyYzcyLmFsZ28udHM6ODQKCS8vIGluZGV4ID0gdGhpcy5pbmRleC52YWx1ZQoJYnl0ZSAweDY5NmU2NDY1NzggLy8gImluZGV4IgoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2J1cnkgMCAvLyBpbmRleDogdWludDI1NgoKCS8vIGV4YW1wbGVzL2FyYzcyL2FyYzcyLmFsZ28udHM6ODYKCS8vIHRva2VuOiBUb2tlbiA9IHsKCS8vICAgICAgIG93bmVyOiB0bywKCS8vICAgICAgIHVyaTogJ2h0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vQVJDcycgYXMgQnl0ZXMyNTYsCgkvLyAgICAgICBjb250cm9sbGVyOiBBZGRyZXNzLnplcm9BZGRyZXNzLAoJLy8gICAgIH0KCWZyYW1lX2RpZyAtMSAvLyB0bzogQWRkcmVzcwoJYnl0ZSAweDY4NzQ3NDcwNzMzYTJmMmY2NzY5NzQ2ODc1NjIyZTYzNmY2ZDJmNjE2YzY3NmY3MjYxNmU2NDY2NmY3NTZlNjQ2MTc0Njk2ZjZlMmY0MTUyNDM3MzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIC8vICJodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL0FSQ3MiCgljb25jYXQKCWdsb2JhbCBaZXJvQWRkcmVzcwoJY29uY2F0CglmcmFtZV9idXJ5IDEgLy8gdG9rZW46IFRva2VuCgoJLy8gZXhhbXBsZXMvYXJjNzIvYXJjNzIuYWxnby50czo5MgoJLy8gdGhpcy50b2tlbkJveChpbmRleCkudmFsdWUgPSB0b2tlbgoJZnJhbWVfZGlnIDAgLy8gaW5kZXg6IHVpbnQyNTYKCWZyYW1lX2RpZyAxIC8vIHRva2VuOiBUb2tlbgoJYm94X3B1dAoKCS8vIGV4YW1wbGVzL2FyYzcyL2FyYzcyLmFsZ28udHM6OTMKCS8vIHRoaXMudHJhbnNmZXJUbyh0bywgaW5kZXgpCglmcmFtZV9kaWcgMCAvLyBpbmRleDogdWludDI1NgoJZnJhbWVfZGlnIC0xIC8vIHRvOiBBZGRyZXNzCgljYWxsc3ViIHRyYW5zZmVyVG8KCgkvLyBleGFtcGxlcy9hcmM3Mi9hcmM3Mi5hbGdvLnRzOjk0CgkvLyB0aGlzLmluZGV4LnZhbHVlID0gaW5kZXggKyAxCglieXRlIDB4Njk2ZTY0NjU3OCAvLyAiaW5kZXgiCglmcmFtZV9kaWcgMCAvLyBpbmRleDogdWludDI1NgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEKCWIrCglkdXAKCWJpdGxlbgoJaW50IDI1NgoJPD0KCWFzc2VydAoJYnl0ZSAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMzIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIGFyYzcyX3RvdGFsU3VwcGx5KCl1aW50MjU2CiphYmlfcm91dGVfYXJjNzJfdG90YWxTdXBwbHk6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYXJjNzJfdG90YWxTdXBwbHkoKXVpbnQyNTYKCWNhbGxzdWIgYXJjNzJfdG90YWxTdXBwbHkKCWR1cAoJYml0bGVuCglpbnQgMjU2Cgk8PQoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAzMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFyYzcyX3RvdGFsU3VwcGx5KCk6IHVpbnQyNTYKLy8KLy8gUmV0dXJucyB0aGUgbnVtYmVyIG9mIE5GVHMgY3VycmVudGx5IGRlZmluZWQgYnkgdGhpcyBjb250cmFjdAphcmM3Ml90b3RhbFN1cHBseToKCXByb3RvIDAgMQoKCS8vIGV4YW1wbGVzL2FyYzcyL2FyYzcyLmFsZ28udHM6MTAyCgkvLyByZXR1cm4gdGhpcy5pbmRleC52YWx1ZTsKCWJ5dGUgMHg2OTZlNjQ2NTc4IC8vICJpbmRleCIKCWFwcF9nbG9iYWxfZ2V0CglyZXRzdWIKCi8vIGFyYzcyX3Rva2VuQnlJbmRleCh1aW50MjU2KXVpbnQyNTYKKmFiaV9yb3V0ZV9hcmM3Ml90b2tlbkJ5SW5kZXg6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGluZGV4OiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBhcmM3Ml90b2tlbkJ5SW5kZXgodWludDI1Nil1aW50MjU2CgljYWxsc3ViIGFyYzcyX3Rva2VuQnlJbmRleAoJZHVwCgliaXRsZW4KCWludCAyNTYKCTw9Cglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50IDMyCgktCglzd2FwCglzdWJzdHJpbmczCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYXJjNzJfdG9rZW5CeUluZGV4KGluZGV4OiB1aW50MjU2KTogdWludDI1NgovLwovLyBSZXR1cm5zIHRoZSB0b2tlbiBJRCBvZiB0aGUgdG9rZW4gd2l0aCB0aGUgZ2l2ZW4gaW5kZXggYW1vbmcgYWxsIE5GVHMgZGVmaW5lZCBieSB0aGUgY29udHJhY3QKYXJjNzJfdG9rZW5CeUluZGV4OgoJcHJvdG8gMSAxCgoJLy8gZXhhbXBsZXMvYXJjNzIvYXJjNzIuYWxnby50czoxMTAKCS8vIHJldHVybiBpbmRleDsKCWZyYW1lX2RpZyAtMSAvLyBpbmRleDogdWludDI1NgoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiYXJjNzJfb3duZXJPZih1aW50MjU2KWFkZHJlc3MiCgltZXRob2QgImFyYzcyX3Rva2VuVVJJKHVpbnQyNTYpYnl0ZVsyNTZdIgoJbWV0aG9kICJhcmM3Ml90cmFuc2ZlckZyb20oYWRkcmVzcyxhZGRyZXNzLHVpbnQyNTYpdm9pZCIKCW1ldGhvZCAiYXJjNzJfYXBwcm92ZShhZGRyZXNzLHVpbnQyNTYpdm9pZCIKCW1ldGhvZCAiYXJjNzJfc2V0QXBwcm92YWxGb3JBbGwoYWRkcmVzcyxib29sKXZvaWQiCgltZXRob2QgIm1pbnQoYWRkcmVzcyl2b2lkIgoJbWV0aG9kICJhcmM3Ml90b3RhbFN1cHBseSgpdWludDI1NiIKCW1ldGhvZCAiYXJjNzJfdG9rZW5CeUluZGV4KHVpbnQyNTYpdWludDI1NiIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYXJjNzJfb3duZXJPZiAqYWJpX3JvdXRlX2FyYzcyX3Rva2VuVVJJICphYmlfcm91dGVfYXJjNzJfdHJhbnNmZXJGcm9tICphYmlfcm91dGVfYXJjNzJfYXBwcm92ZSAqYWJpX3JvdXRlX2FyYzcyX3NldEFwcHJvdmFsRm9yQWxsICphYmlfcm91dGVfbWludCAqYWJpX3JvdXRlX2FyYzcyX3RvdGFsU3VwcGx5ICphYmlfcm91dGVfYXJjNzJfdG9rZW5CeUluZGV4CgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/examples/arc75/artifacts/ARC75.approval.teal b/examples/arc75/artifacts/ARC75.approval.teal index 81d247eb2..4ed8afb67 100644 --- a/examples/arc75/artifacts/ARC75.approval.teal +++ b/examples/arc75/artifacts/ARC75.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,16 +9,16 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // verifyMBRPayment(payment: PayTxn, preMBR: uint64): void @@ -85,7 +85,7 @@ sendMBRPayment: retsub // addAppToWhiteList(string,uint16,uint64,pay)void -abi_route_addAppToWhiteList: +*abi_route_addAppToWhiteList: // payment: pay txn GroupIndex int 1 @@ -146,11 +146,11 @@ addAppToWhiteList: byte 0x // initial tail byte 0x0024 // initial head offset txn Sender - callsub process_static_tuple_element + callsub *process_static_tuple_element frame_dig -2 // boxIndex: uint16 itob extract 6 2 - callsub process_static_tuple_element + callsub *process_static_tuple_element frame_dig -1 // arc: string dup len @@ -158,21 +158,21 @@ addAppToWhiteList: extract 6 2 swap concat - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element pop // pop head offset concat // concat head and tail frame_bury 1 // whitelist: Whitelist - // if0_condition + // *if0_condition // examples/arc75/arc75.algo.ts:36 // this.whitelist(whitelist).exists frame_dig 1 // whitelist: Whitelist box_len swap pop - bz if0_else + bz *if0_else - // if0_consequent + // *if0_consequent // examples/arc75/arc75.algo.ts:37 // this.whitelist(whitelist).value.push(appID) frame_dig 1 // whitelist: Whitelist @@ -196,9 +196,9 @@ addAppToWhiteList: swap concat box_put - b if0_end + b *if0_end -if0_else: +*if0_else: // examples/arc75/arc75.algo.ts:39 // newWhitelist: uint64[] = [appID] frame_dig -3 // appID: uint64 @@ -222,7 +222,7 @@ if0_else: concat box_put -if0_end: +*if0_end: // examples/arc75/arc75.algo.ts:43 // this.verifyMBRPayment(payment, preMBR) frame_dig 0 // preMBR: uint64 @@ -231,7 +231,7 @@ if0_end: retsub // setAppWhitelist(string,uint16,uint64[])void -abi_route_setAppWhitelist: +*abi_route_setAppWhitelist: // appIDs: uint64[] txna ApplicationArgs 3 extract 2 0 @@ -281,11 +281,11 @@ setAppWhitelist: byte 0x // initial tail byte 0x0024 // initial head offset txn Sender - callsub process_static_tuple_element + callsub *process_static_tuple_element frame_dig -2 // boxIndex: uint16 itob extract 6 2 - callsub process_static_tuple_element + callsub *process_static_tuple_element frame_dig -1 // arc: string dup len @@ -293,7 +293,7 @@ setAppWhitelist: extract 6 2 swap concat - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element pop // pop head offset concat // concat head and tail frame_bury 1 // whitelist: Whitelist @@ -320,7 +320,7 @@ setAppWhitelist: concat box_put - // if1_condition + // *if1_condition // examples/arc75/arc75.algo.ts:62 // preMBR > this.app.address.minBalance frame_dig 0 // preMBR: uint64 @@ -328,16 +328,16 @@ setAppWhitelist: acct_params_get AcctMinBalance pop > - bz if1_else + bz *if1_else - // if1_consequent + // *if1_consequent // examples/arc75/arc75.algo.ts:63 // this.sendMBRPayment(preMBR) frame_dig 0 // preMBR: uint64 callsub sendMBRPayment - b if1_end + b *if1_end -if1_else: +*if1_else: // examples/arc75/arc75.algo.ts:65 // this.verifyMBRPayment(this.txnGroup[this.txn.groupIndex - 1] as PayTxn, preMBR) frame_dig 0 // preMBR: uint64 @@ -351,11 +351,11 @@ if1_else: assert callsub verifyMBRPayment -if1_end: +*if1_end: retsub // deleteWhitelist(string,uint16)void -abi_route_deleteWhitelist: +*abi_route_deleteWhitelist: // boxIndex: uint16 txna ApplicationArgs 2 dup @@ -400,11 +400,11 @@ deleteWhitelist: byte 0x // initial tail byte 0x0024 // initial head offset txn Sender - callsub process_static_tuple_element + callsub *process_static_tuple_element frame_dig -2 // boxIndex: uint16 itob extract 6 2 - callsub process_static_tuple_element + callsub *process_static_tuple_element frame_dig -1 // arc: string dup len @@ -412,7 +412,7 @@ deleteWhitelist: extract 6 2 swap concat - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element pop // pop head offset concat // concat head and tail frame_bury 1 // whitelist: Whitelist @@ -429,7 +429,7 @@ deleteWhitelist: retsub // deleteAppFromWhitelist(string,uint16,uint64,uint64)void -abi_route_deleteAppFromWhitelist: +*abi_route_deleteAppFromWhitelist: // index: uint64 txna ApplicationArgs 4 btoi @@ -483,11 +483,11 @@ deleteAppFromWhitelist: byte 0x // initial tail byte 0x0024 // initial head offset txn Sender - callsub process_static_tuple_element + callsub *process_static_tuple_element frame_dig -2 // boxIndex: uint16 itob extract 6 2 - callsub process_static_tuple_element + callsub *process_static_tuple_element frame_dig -1 // arc: string dup len @@ -495,7 +495,7 @@ deleteAppFromWhitelist: extract 6 2 swap concat - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element pop // pop head offset concat // concat head and tail frame_bury 1 // whitelist: Whitelist @@ -577,26 +577,26 @@ deleteAppFromWhitelist: callsub sendMBRPayment retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "addAppToWhiteList(string,uint16,uint64,pay)void" method "setAppWhitelist(string,uint16,uint64[])void" method "deleteWhitelist(string,uint16)void" method "deleteAppFromWhitelist(string,uint16,uint64,uint64)void" txna ApplicationArgs 0 - match abi_route_addAppToWhiteList abi_route_setAppWhitelist abi_route_deleteWhitelist abi_route_deleteAppFromWhitelist + match *abi_route_addAppToWhiteList *abi_route_setAppWhitelist *abi_route_deleteWhitelist *abi_route_deleteAppFromWhitelist err -process_static_tuple_element: +*process_static_tuple_element: proto 4 3 frame_dig -4 // tuple head frame_dig -1 // element @@ -605,7 +605,7 @@ process_static_tuple_element: frame_dig -2 // head offset retsub -process_dynamic_tuple_element: +*process_dynamic_tuple_element: proto 4 3 frame_dig -4 // tuple head frame_dig -2 // head offset diff --git a/examples/arc75/artifacts/ARC75.arc32.json b/examples/arc75/artifacts/ARC75.arc32.json index 4c2db9312..dd63ddf3d 100644 --- a/examples/arc75/artifacts/ARC75.arc32.json +++ b/examples/arc75/artifacts/ARC75.arc32.json @@ -54,7 +54,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyB2ZXJpZnlNQlJQYXltZW50KHBheW1lbnQ6IFBheVR4biwgcHJlTUJSOiB1aW50NjQpOiB2b2lkCnZlcmlmeU1CUlBheW1lbnQ6Cglwcm90byAyIDAKCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjEwCgkvLyB2ZXJpZnlQYXlUeG4ocGF5bWVudCwgewoJLy8gICAgICAgcmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICBhbW91bnQ6IHRoaXMuYXBwLmFkZHJlc3MubWluQmFsYW5jZSAtIHByZU1CUiwKCS8vICAgICB9KQoJLy8gdmVyaWZ5IHJlY2VpdmVyCglmcmFtZV9kaWcgLTEgLy8gcGF5bWVudDogUGF5VHhuCglndHhucyBSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYW1vdW50CglmcmFtZV9kaWcgLTEgLy8gcGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKCXBvcAoJZnJhbWVfZGlnIC0yIC8vIHByZU1CUjogdWludDY0CgktCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIHNlbmRNQlJQYXltZW50KHByZU1CUjogdWludDY0KTogdm9pZApzZW5kTUJSUGF5bWVudDoKCXByb3RvIDEgMAoKCS8vIGV4YW1wbGVzL2FyYzc1L2FyYzc1LmFsZ28udHM6MTcKCS8vIHNlbmRQYXltZW50KHsKCS8vICAgICAgIHJlY2VpdmVyOiB0aGlzLnR4bi5zZW5kZXIsCgkvLyAgICAgICBhbW91bnQ6IHByZU1CUiAtIHRoaXMuYXBwLmFkZHJlc3MubWluQmFsYW5jZSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IHBheQoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL2FyYzc1L2FyYzc1LmFsZ28udHM6MTgKCS8vIHJlY2VpdmVyOiB0aGlzLnR4bi5zZW5kZXIKCXR4biBTZW5kZXIKCWl0eG5fZmllbGQgUmVjZWl2ZXIKCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjE5CgkvLyBhbW91bnQ6IHByZU1CUiAtIHRoaXMuYXBwLmFkZHJlc3MubWluQmFsYW5jZQoJZnJhbWVfZGlnIC0xIC8vIHByZU1CUjogdWludDY0CglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCglwb3AKCS0KCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyBhZGRBcHBUb1doaXRlTGlzdChzdHJpbmcsdWludDE2LHVpbnQ2NCxwYXkpdm9pZAphYmlfcm91dGVfYWRkQXBwVG9XaGl0ZUxpc3Q6CgkvLyBwYXltZW50OiBwYXkKCXR4biBHcm91cEluZGV4CglpbnQgMQoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJaW50IHBheQoJPT0KCWFzc2VydAoKCS8vIGFwcElEOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWJ0b2kKCgkvLyBib3hJbmRleDogdWludDE2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDIKCT09Cglhc3NlcnQKCWJ0b2kKCgkvLyBhcmM6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIGFkZEFwcFRvV2hpdGVMaXN0KHN0cmluZyx1aW50MTYsdWludDY0LHBheSl2b2lkCgljYWxsc3ViIGFkZEFwcFRvV2hpdGVMaXN0CglpbnQgMQoJcmV0dXJuCgovLyBhZGRBcHBUb1doaXRlTGlzdChhcmM6IHN0cmluZywgYm94SW5kZXg6IHVpbnQxNiwgYXBwSUQ6IHVpbnQ2NCwgcGF5bWVudDogUGF5VHhuKTogdm9pZAovLwovLyBBZGQgYXBwIHRvIHdoaXRlbGlzdCBib3gKLy8KLy8gQHBhcmFtIGFyYyAtIFRoZSBBUkMgdGhlIHdoaXRlbGlzdCBjb3JyZXNwb25kcyB0bwovLyBAcGFyYW0gYm94SW5kZXggLSBUaGUgaW5kZXggb2YgdGhlIHdoaXRlbGlzdCBib3ggdG8gYWRkIHRoZSBhcHAgdG8KLy8gQHBhcmFtIGFwcElEIC0gVGhlIGFwcCBJRCB0byBhZGQgdG8gdGhlIHdoaXRlbGlzdAovLyBAcGFyYW0gcGF5bWVudCAtIFRoZSBwYXltZW50IHRyYW5zYWN0aW9uIHRvIGNvdmVyIHRoZSBNQlIgY2hhbmdlCmFkZEFwcFRvV2hpdGVMaXN0OgoJcHJvdG8gNCAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gMgoKCS8vIGV4YW1wbGVzL2FyYzc1L2FyYzc1LmFsZ28udHM6MzMKCS8vIHByZU1CUiA9IHRoaXMuYXBwLmFkZHJlc3MubWluQmFsYW5jZQoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQoJcG9wCglmcmFtZV9idXJ5IDAgLy8gcHJlTUJSOiB1aW50NjQKCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjM0CgkvLyB3aGl0ZWxpc3Q6IFdoaXRlbGlzdCA9IHsgYWNjb3VudDogdGhpcy50eG4uc2VuZGVyLCBib3hJbmRleDogYm94SW5kZXgsIGFyYzogYXJjIH0KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJYnl0ZSAweDAwMjQgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJdHhuIFNlbmRlcgoJY2FsbHN1YiBwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglmcmFtZV9kaWcgLTIgLy8gYm94SW5kZXg6IHVpbnQxNgoJaXRvYgoJZXh0cmFjdCA2IDIKCWNhbGxzdWIgcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJZnJhbWVfZGlnIC0xIC8vIGFyYzogc3RyaW5nCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY2FsbHN1YiBwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglmcmFtZV9idXJ5IDEgLy8gd2hpdGVsaXN0OiBXaGl0ZWxpc3QKCgkvLyBpZjBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjM2CgkvLyB0aGlzLndoaXRlbGlzdCh3aGl0ZWxpc3QpLmV4aXN0cwoJZnJhbWVfZGlnIDEgLy8gd2hpdGVsaXN0OiBXaGl0ZWxpc3QKCWJveF9sZW4KCXN3YXAKCXBvcAoJYnogaWYwX2Vsc2UKCgkvLyBpZjBfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvYXJjNzUvYXJjNzUuYWxnby50czozNwoJLy8gdGhpcy53aGl0ZWxpc3Qod2hpdGVsaXN0KS52YWx1ZS5wdXNoKGFwcElEKQoJZnJhbWVfZGlnIDEgLy8gd2hpdGVsaXN0OiBXaGl0ZWxpc3QKCWludCAyCglpbnQgMAoJYm94X2V4dHJhY3QKCWZyYW1lX2RpZyAtMyAvLyBhcHBJRDogdWludDY0CglpdG9iCgljb25jYXQKCWZyYW1lX2RpZyAxIC8vIHdoaXRlbGlzdDogV2hpdGVsaXN0CglkdXAKCWJveF9kZWwKCXBvcAoJc3dhcAoJZHVwCglsZW4KCWludCA4CgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cglib3hfcHV0CgliIGlmMF9lbmQKCmlmMF9lbHNlOgoJLy8gZXhhbXBsZXMvYXJjNzUvYXJjNzUuYWxnby50czozOQoJLy8gbmV3V2hpdGVsaXN0OiB1aW50NjRbXSA9IFthcHBJRF0KCWZyYW1lX2RpZyAtMyAvLyBhcHBJRDogdWludDY0CglpdG9iCglmcmFtZV9idXJ5IDIgLy8gbmV3V2hpdGVsaXN0OiB1aW50NjRbXQoKCS8vIGV4YW1wbGVzL2FyYzc1L2FyYzc1LmFsZ28udHM6NDAKCS8vIHRoaXMud2hpdGVsaXN0KHdoaXRlbGlzdCkudmFsdWUgPSBuZXdXaGl0ZWxpc3QKCWZyYW1lX2RpZyAxIC8vIHdoaXRlbGlzdDogV2hpdGVsaXN0CglkdXAKCWJveF9kZWwKCXBvcAoJZnJhbWVfZGlnIDIgLy8gbmV3V2hpdGVsaXN0OiB1aW50NjRbXQoJZHVwCglsZW4KCWludCA4CgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cglib3hfcHV0CgppZjBfZW5kOgoJLy8gZXhhbXBsZXMvYXJjNzUvYXJjNzUuYWxnby50czo0MwoJLy8gdGhpcy52ZXJpZnlNQlJQYXltZW50KHBheW1lbnQsIHByZU1CUikKCWZyYW1lX2RpZyAwIC8vIHByZU1CUjogdWludDY0CglmcmFtZV9kaWcgLTQgLy8gcGF5bWVudDogUGF5VHhuCgljYWxsc3ViIHZlcmlmeU1CUlBheW1lbnQKCXJldHN1YgoKLy8gc2V0QXBwV2hpdGVsaXN0KHN0cmluZyx1aW50MTYsdWludDY0W10pdm9pZAphYmlfcm91dGVfc2V0QXBwV2hpdGVsaXN0OgoJLy8gYXBwSURzOiB1aW50NjRbXQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJZXh0cmFjdCAyIDAKCgkvLyBib3hJbmRleDogdWludDE2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDIKCT09Cglhc3NlcnQKCWJ0b2kKCgkvLyBhcmM6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIHNldEFwcFdoaXRlbGlzdChzdHJpbmcsdWludDE2LHVpbnQ2NFtdKXZvaWQKCWNhbGxzdWIgc2V0QXBwV2hpdGVsaXN0CglpbnQgMQoJcmV0dXJuCgovLyBzZXRBcHBXaGl0ZWxpc3QoYXJjOiBzdHJpbmcsIGJveEluZGV4OiB1aW50MTYsIGFwcElEczogdWludDY0W10pOiB2b2lkCi8vCi8vIFNldHMgYSBhcHAgd2hpdGVsaXN0IGZvciB0aGUgc2VuZGVyLiBTaG91bGQgb25seSBiZSB1c2VkIHdoZW4gYWRkaW5nL3JlbW92aW5nCi8vIG1vcmUgdGhhbiBvbmUgYXBwCi8vCi8vIEBwYXJhbSBib3hJbmRleCAtIFRoZSBpbmRleCBvZiB0aGUgd2hpdGVsaXN0IGJveCB0byBwdXQgdGhlIGFwcCBJRHMgaW4KLy8gQHBhcmFtIGFwcElEcyAtIEFycmF5IG9mIGFwcCBJRHMgdGhhdCBzaWduaWZ5IHRoZSB3aGl0ZWxpc3RlZCBhcHBzCnNldEFwcFdoaXRlbGlzdDoKCXByb3RvIDMgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjU1CgkvLyBwcmVNQlIgPSB0aGlzLmFwcC5hZGRyZXNzLm1pbkJhbGFuY2UKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKCXBvcAoJZnJhbWVfYnVyeSAwIC8vIHByZU1CUjogdWludDY0CgoJLy8gZXhhbXBsZXMvYXJjNzUvYXJjNzUuYWxnby50czo1NgoJLy8gd2hpdGVsaXN0OiBXaGl0ZWxpc3QgPSB7IGFjY291bnQ6IHRoaXMudHhuLnNlbmRlciwgYm94SW5kZXg6IGJveEluZGV4LCBhcmM6IGFyYyB9CglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDI0IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCXR4biBTZW5kZXIKCWNhbGxzdWIgcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJZnJhbWVfZGlnIC0yIC8vIGJveEluZGV4OiB1aW50MTYKCWl0b2IKCWV4dHJhY3QgNiAyCgljYWxsc3ViIHByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWZyYW1lX2RpZyAtMSAvLyBhcmM6IHN0cmluZwoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNhbGxzdWIgcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJZnJhbWVfYnVyeSAxIC8vIHdoaXRlbGlzdDogV2hpdGVsaXN0CgoJLy8gZXhhbXBsZXMvYXJjNzUvYXJjNzUuYWxnby50czo1OAoJLy8gdGhpcy53aGl0ZWxpc3Qod2hpdGVsaXN0KS5kZWxldGUoKQoJZnJhbWVfZGlnIDEgLy8gd2hpdGVsaXN0OiBXaGl0ZWxpc3QKCWJveF9kZWwKCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjYwCgkvLyB0aGlzLndoaXRlbGlzdCh3aGl0ZWxpc3QpLnZhbHVlID0gYXBwSURzCglmcmFtZV9kaWcgMSAvLyB3aGl0ZWxpc3Q6IFdoaXRlbGlzdAoJZHVwCglib3hfZGVsCglwb3AKCWZyYW1lX2RpZyAtMyAvLyBhcHBJRHM6IHVpbnQ2NFtdCglkdXAKCWxlbgoJaW50IDgKCS8KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWJveF9wdXQKCgkvLyBpZjFfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjYyCgkvLyBwcmVNQlIgPiB0aGlzLmFwcC5hZGRyZXNzLm1pbkJhbGFuY2UKCWZyYW1lX2RpZyAwIC8vIHByZU1CUjogdWludDY0CglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCglwb3AKCT4KCWJ6IGlmMV9lbHNlCgoJLy8gaWYxX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL2FyYzc1L2FyYzc1LmFsZ28udHM6NjMKCS8vIHRoaXMuc2VuZE1CUlBheW1lbnQocHJlTUJSKQoJZnJhbWVfZGlnIDAgLy8gcHJlTUJSOiB1aW50NjQKCWNhbGxzdWIgc2VuZE1CUlBheW1lbnQKCWIgaWYxX2VuZAoKaWYxX2Vsc2U6CgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjY1CgkvLyB0aGlzLnZlcmlmeU1CUlBheW1lbnQodGhpcy50eG5Hcm91cFt0aGlzLnR4bi5ncm91cEluZGV4IC0gMV0gYXMgUGF5VHhuLCBwcmVNQlIpCglmcmFtZV9kaWcgMCAvLyBwcmVNQlI6IHVpbnQ2NAoJdHhuIEdyb3VwSW5kZXgKCWludCAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgcGF5Cgk9PQoJYXNzZXJ0CgljYWxsc3ViIHZlcmlmeU1CUlBheW1lbnQKCmlmMV9lbmQ6CglyZXRzdWIKCi8vIGRlbGV0ZVdoaXRlbGlzdChzdHJpbmcsdWludDE2KXZvaWQKYWJpX3JvdXRlX2RlbGV0ZVdoaXRlbGlzdDoKCS8vIGJveEluZGV4OiB1aW50MTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMgoJPT0KCWFzc2VydAoJYnRvaQoKCS8vIGFyYzogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgZGVsZXRlV2hpdGVsaXN0KHN0cmluZyx1aW50MTYpdm9pZAoJY2FsbHN1YiBkZWxldGVXaGl0ZWxpc3QKCWludCAxCglyZXR1cm4KCi8vIGRlbGV0ZVdoaXRlbGlzdChhcmM6IHN0cmluZywgYm94SW5kZXg6IHVpbnQxNik6IHZvaWQKLy8KLy8gRGVsZXRlcyBhIGFwcCB3aGl0ZWxpc3QgZm9yIHRoZSBzZW5kZXIKLy8KLy8gQHBhcmFtIGFyYyAtIFRoZSBBUkMgdGhlIHdoaXRlbGlzdCBjb3JyZXNwb25kcyB0bwovLyBAcGFyYW0gYm94SW5kZXggLSBUaGUgaW5kZXggb2YgdGhlIHdoaXRlbGlzdCBib3ggdG8gZGVsZXRlCmRlbGV0ZVdoaXRlbGlzdDoKCXByb3RvIDIgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjc3CgkvLyBwcmVNQlIgPSB0aGlzLmFwcC5hZGRyZXNzLm1pbkJhbGFuY2UKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKCXBvcAoJZnJhbWVfYnVyeSAwIC8vIHByZU1CUjogdWludDY0CgoJLy8gZXhhbXBsZXMvYXJjNzUvYXJjNzUuYWxnby50czo3OAoJLy8gd2hpdGVsaXN0OiBXaGl0ZWxpc3QgPSB7IGFjY291bnQ6IHRoaXMudHhuLnNlbmRlciwgYm94SW5kZXg6IGJveEluZGV4LCBhcmM6IGFyYyB9CglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDI0IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCXR4biBTZW5kZXIKCWNhbGxzdWIgcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJZnJhbWVfZGlnIC0yIC8vIGJveEluZGV4OiB1aW50MTYKCWl0b2IKCWV4dHJhY3QgNiAyCgljYWxsc3ViIHByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWZyYW1lX2RpZyAtMSAvLyBhcmM6IHN0cmluZwoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNhbGxzdWIgcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJZnJhbWVfYnVyeSAxIC8vIHdoaXRlbGlzdDogV2hpdGVsaXN0CgoJLy8gZXhhbXBsZXMvYXJjNzUvYXJjNzUuYWxnby50czo4MAoJLy8gdGhpcy53aGl0ZWxpc3Qod2hpdGVsaXN0KS5kZWxldGUoKQoJZnJhbWVfZGlnIDEgLy8gd2hpdGVsaXN0OiBXaGl0ZWxpc3QKCWJveF9kZWwKCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjgyCgkvLyB0aGlzLnNlbmRNQlJQYXltZW50KHByZU1CUikKCWZyYW1lX2RpZyAwIC8vIHByZU1CUjogdWludDY0CgljYWxsc3ViIHNlbmRNQlJQYXltZW50CglyZXRzdWIKCi8vIGRlbGV0ZUFwcEZyb21XaGl0ZWxpc3Qoc3RyaW5nLHVpbnQxNix1aW50NjQsdWludDY0KXZvaWQKYWJpX3JvdXRlX2RlbGV0ZUFwcEZyb21XaGl0ZWxpc3Q6CgkvLyBpbmRleDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyA0CglidG9pCgoJLy8gYXBwSUQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJYnRvaQoKCS8vIGJveEluZGV4OiB1aW50MTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMgoJPT0KCWFzc2VydAoJYnRvaQoKCS8vIGFyYzogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgZGVsZXRlQXBwRnJvbVdoaXRlbGlzdChzdHJpbmcsdWludDE2LHVpbnQ2NCx1aW50NjQpdm9pZAoJY2FsbHN1YiBkZWxldGVBcHBGcm9tV2hpdGVsaXN0CglpbnQgMQoJcmV0dXJuCgovLyBkZWxldGVBcHBGcm9tV2hpdGVsaXN0KGFyYzogc3RyaW5nLCBib3hJbmRleDogdWludDE2LCBhcHBJRDogdWludDY0LCBpbmRleDogdWludDY0KTogdm9pZAovLwovLyBEZWxldGVzIGEgYXBwIGZyb20gYSB3aGl0ZWxpc3QgZm9yIHRoZSBzZW5kZXIKLy8KLy8gQHBhcmFtIGJveEluZGV4IC0gVGhlIGluZGV4IG9mIHRoZSB3aGl0ZWxpc3QgYm94IHRvIGRlbGV0ZSBmcm9tCi8vIEBwYXJhbSBhcHBJRCAtIFRoZSBhcHAgSUQgdG8gZGVsZXRlIGZyb20gdGhlIHdoaXRlbGlzdAovLyBAcGFyYW0gaW5kZXggLSBUaGUgaW5kZXggb2YgdGhlIGFwcCBpbiB0aGUgd2hpdGVsaXN0CmRlbGV0ZUFwcEZyb21XaGl0ZWxpc3Q6Cglwcm90byA0IDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiAyCgoJLy8gZXhhbXBsZXMvYXJjNzUvYXJjNzUuYWxnby50czo5NAoJLy8gcHJlTUJSID0gdGhpcy5hcHAuYWRkcmVzcy5taW5CYWxhbmNlCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCglwb3AKCWZyYW1lX2J1cnkgMCAvLyBwcmVNQlI6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL2FyYzc1L2FyYzc1LmFsZ28udHM6OTUKCS8vIHdoaXRlbGlzdDogV2hpdGVsaXN0ID0geyBhY2NvdW50OiB0aGlzLnR4bi5zZW5kZXIsIGJveEluZGV4OiBib3hJbmRleCwgYXJjOiBhcmMgfQoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglieXRlIDB4MDAyNCAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0Cgl0eG4gU2VuZGVyCgljYWxsc3ViIHByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWZyYW1lX2RpZyAtMiAvLyBib3hJbmRleDogdWludDE2CglpdG9iCglleHRyYWN0IDYgMgoJY2FsbHN1YiBwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglmcmFtZV9kaWcgLTEgLy8gYXJjOiBzdHJpbmcKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0CgljYWxsc3ViIHByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWZyYW1lX2J1cnkgMSAvLyB3aGl0ZWxpc3Q6IFdoaXRlbGlzdAoKCS8vIGV4YW1wbGVzL2FyYzc1L2FyYzc1LmFsZ28udHM6OTcKCS8vIHNwbGljZWQgPSB0aGlzLndoaXRlbGlzdCh3aGl0ZWxpc3QpLnZhbHVlLnNwbGljZShpbmRleCwgMSkKCWZyYW1lX2RpZyAxIC8vIHdoaXRlbGlzdDogV2hpdGVsaXN0CglpbnQgMgoJaW50IDAKCWJveF9leHRyYWN0CglpbnQgMQoJZnJhbWVfZGlnIC00IC8vIGluZGV4OiB1aW50NjQKCWludCA4CgkqCglzdG9yZSAyNDcgLy8gc3BsaWNlIHN0YXJ0CglpbnQgMTYKCXN0b3JlIDI0NiAvLyBzcGxpY2UgYnl0ZSBsZW5ndGgKCWZyYW1lX2RpZyAxIC8vIHdoaXRlbGlzdDogV2hpdGVsaXN0CglpbnQgMgoJaW50IDAKCWJveF9leHRyYWN0CglpbnQgMAoJbG9hZCAyNDcgLy8gc3BsaWNlIHN0YXJ0CglzdWJzdHJpbmczCglmcmFtZV9kaWcgMSAvLyB3aGl0ZWxpc3Q6IFdoaXRlbGlzdAoJaW50IDIKCWludCAwCglib3hfZXh0cmFjdAoJZHVwCglsZW4KCWxvYWQgMjQ3IC8vIHNwbGljZSBzdGFydAoJbG9hZCAyNDYgLy8gc3BsaWNlIGJ5dGUgbGVuZ3RoCgkrCglpbnQgOAoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0CglmcmFtZV9kaWcgMSAvLyB3aGl0ZWxpc3Q6IFdoaXRlbGlzdAoJaW50IDIKCWludCAwCglib3hfZXh0cmFjdAoJbG9hZCAyNDcgLy8gc3BsaWNlIHN0YXJ0Cglsb2FkIDI0NiAvLyBzcGxpY2UgYnl0ZSBsZW5ndGgKCWludCA4CgktCglleHRyYWN0MwoJc3dhcAoJZnJhbWVfZGlnIDEgLy8gd2hpdGVsaXN0OiBXaGl0ZWxpc3QKCWR1cAoJYm94X2RlbAoJcG9wCglzd2FwCglkdXAKCWxlbgoJaW50IDgKCS8KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWJveF9wdXQKCWZyYW1lX2J1cnkgMiAvLyBzcGxpY2VkOiB1aW50NjRbXQoKCS8vIGV4YW1wbGVzL2FyYzc1L2FyYzc1LmFsZ28udHM6OTkKCS8vIGFzc2VydChzcGxpY2VkWzBdID09PSBhcHBJRCkKCWZyYW1lX2RpZyAyIC8vIHNwbGljZWQ6IHVpbnQ2NFtdCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWZyYW1lX2RpZyAtMyAvLyBhcHBJRDogdWludDY0Cgk9PQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvYXJjNzUvYXJjNzUuYWxnby50czoxMDEKCS8vIHRoaXMuc2VuZE1CUlBheW1lbnQocHJlTUJSKQoJZnJhbWVfZGlnIDAgLy8gcHJlTUJSOiB1aW50NjQKCWNhbGxzdWIgc2VuZE1CUlBheW1lbnQKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAiYWRkQXBwVG9XaGl0ZUxpc3Qoc3RyaW5nLHVpbnQxNix1aW50NjQscGF5KXZvaWQiCgltZXRob2QgInNldEFwcFdoaXRlbGlzdChzdHJpbmcsdWludDE2LHVpbnQ2NFtdKXZvaWQiCgltZXRob2QgImRlbGV0ZVdoaXRlbGlzdChzdHJpbmcsdWludDE2KXZvaWQiCgltZXRob2QgImRlbGV0ZUFwcEZyb21XaGl0ZWxpc3Qoc3RyaW5nLHVpbnQxNix1aW50NjQsdWludDY0KXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfYWRkQXBwVG9XaGl0ZUxpc3QgYWJpX3JvdXRlX3NldEFwcFdoaXRlbGlzdCBhYmlfcm91dGVfZGVsZXRlV2hpdGVsaXN0IGFiaV9yb3V0ZV9kZWxldGVBcHBGcm9tV2hpdGVsaXN0CgllcnIKCnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJY29uY2F0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0Cgljb25jYXQKCWZyYW1lX2J1cnkgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWR1cAoJbGVuCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWJ0b2kKCSsKCWl0b2IKCWV4dHJhY3QgNiAyCglmcmFtZV9idXJ5IC0yIC8vIGhlYWQgb2Zmc2V0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJc3dhcAoJY29uY2F0CglmcmFtZV9idXJ5IC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyB2ZXJpZnlNQlJQYXltZW50KHBheW1lbnQ6IFBheVR4biwgcHJlTUJSOiB1aW50NjQpOiB2b2lkCnZlcmlmeU1CUlBheW1lbnQ6Cglwcm90byAyIDAKCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjEwCgkvLyB2ZXJpZnlQYXlUeG4ocGF5bWVudCwgewoJLy8gICAgICAgcmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICBhbW91bnQ6IHRoaXMuYXBwLmFkZHJlc3MubWluQmFsYW5jZSAtIHByZU1CUiwKCS8vICAgICB9KQoJLy8gdmVyaWZ5IHJlY2VpdmVyCglmcmFtZV9kaWcgLTEgLy8gcGF5bWVudDogUGF5VHhuCglndHhucyBSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYW1vdW50CglmcmFtZV9kaWcgLTEgLy8gcGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKCXBvcAoJZnJhbWVfZGlnIC0yIC8vIHByZU1CUjogdWludDY0CgktCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIHNlbmRNQlJQYXltZW50KHByZU1CUjogdWludDY0KTogdm9pZApzZW5kTUJSUGF5bWVudDoKCXByb3RvIDEgMAoKCS8vIGV4YW1wbGVzL2FyYzc1L2FyYzc1LmFsZ28udHM6MTcKCS8vIHNlbmRQYXltZW50KHsKCS8vICAgICAgIHJlY2VpdmVyOiB0aGlzLnR4bi5zZW5kZXIsCgkvLyAgICAgICBhbW91bnQ6IHByZU1CUiAtIHRoaXMuYXBwLmFkZHJlc3MubWluQmFsYW5jZSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IHBheQoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL2FyYzc1L2FyYzc1LmFsZ28udHM6MTgKCS8vIHJlY2VpdmVyOiB0aGlzLnR4bi5zZW5kZXIKCXR4biBTZW5kZXIKCWl0eG5fZmllbGQgUmVjZWl2ZXIKCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjE5CgkvLyBhbW91bnQ6IHByZU1CUiAtIHRoaXMuYXBwLmFkZHJlc3MubWluQmFsYW5jZQoJZnJhbWVfZGlnIC0xIC8vIHByZU1CUjogdWludDY0CglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCglwb3AKCS0KCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyBhZGRBcHBUb1doaXRlTGlzdChzdHJpbmcsdWludDE2LHVpbnQ2NCxwYXkpdm9pZAoqYWJpX3JvdXRlX2FkZEFwcFRvV2hpdGVMaXN0OgoJLy8gcGF5bWVudDogcGF5Cgl0eG4gR3JvdXBJbmRleAoJaW50IDEKCS0KCWR1cAoJZ3R4bnMgVHlwZUVudW0KCWludCBwYXkKCT09Cglhc3NlcnQKCgkvLyBhcHBJRDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglidG9pCgoJLy8gYm94SW5kZXg6IHVpbnQxNgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAyCgk9PQoJYXNzZXJ0CglidG9pCgoJLy8gYXJjOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSBhZGRBcHBUb1doaXRlTGlzdChzdHJpbmcsdWludDE2LHVpbnQ2NCxwYXkpdm9pZAoJY2FsbHN1YiBhZGRBcHBUb1doaXRlTGlzdAoJaW50IDEKCXJldHVybgoKLy8gYWRkQXBwVG9XaGl0ZUxpc3QoYXJjOiBzdHJpbmcsIGJveEluZGV4OiB1aW50MTYsIGFwcElEOiB1aW50NjQsIHBheW1lbnQ6IFBheVR4bik6IHZvaWQKLy8KLy8gQWRkIGFwcCB0byB3aGl0ZWxpc3QgYm94Ci8vCi8vIEBwYXJhbSBhcmMgLSBUaGUgQVJDIHRoZSB3aGl0ZWxpc3QgY29ycmVzcG9uZHMgdG8KLy8gQHBhcmFtIGJveEluZGV4IC0gVGhlIGluZGV4IG9mIHRoZSB3aGl0ZWxpc3QgYm94IHRvIGFkZCB0aGUgYXBwIHRvCi8vIEBwYXJhbSBhcHBJRCAtIFRoZSBhcHAgSUQgdG8gYWRkIHRvIHRoZSB3aGl0ZWxpc3QKLy8gQHBhcmFtIHBheW1lbnQgLSBUaGUgcGF5bWVudCB0cmFuc2FjdGlvbiB0byBjb3ZlciB0aGUgTUJSIGNoYW5nZQphZGRBcHBUb1doaXRlTGlzdDoKCXByb3RvIDQgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDIKCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjMzCgkvLyBwcmVNQlIgPSB0aGlzLmFwcC5hZGRyZXNzLm1pbkJhbGFuY2UKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKCXBvcAoJZnJhbWVfYnVyeSAwIC8vIHByZU1CUjogdWludDY0CgoJLy8gZXhhbXBsZXMvYXJjNzUvYXJjNzUuYWxnby50czozNAoJLy8gd2hpdGVsaXN0OiBXaGl0ZWxpc3QgPSB7IGFjY291bnQ6IHRoaXMudHhuLnNlbmRlciwgYm94SW5kZXg6IGJveEluZGV4LCBhcmM6IGFyYyB9CglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDI0IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCXR4biBTZW5kZXIKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWZyYW1lX2RpZyAtMiAvLyBib3hJbmRleDogdWludDE2CglpdG9iCglleHRyYWN0IDYgMgoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJZnJhbWVfZGlnIC0xIC8vIGFyYzogc3RyaW5nCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJZnJhbWVfYnVyeSAxIC8vIHdoaXRlbGlzdDogV2hpdGVsaXN0CgoJLy8gKmlmMF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL2FyYzc1L2FyYzc1LmFsZ28udHM6MzYKCS8vIHRoaXMud2hpdGVsaXN0KHdoaXRlbGlzdCkuZXhpc3RzCglmcmFtZV9kaWcgMSAvLyB3aGl0ZWxpc3Q6IFdoaXRlbGlzdAoJYm94X2xlbgoJc3dhcAoJcG9wCglieiAqaWYwX2Vsc2UKCgkvLyAqaWYwX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL2FyYzc1L2FyYzc1LmFsZ28udHM6MzcKCS8vIHRoaXMud2hpdGVsaXN0KHdoaXRlbGlzdCkudmFsdWUucHVzaChhcHBJRCkKCWZyYW1lX2RpZyAxIC8vIHdoaXRlbGlzdDogV2hpdGVsaXN0CglpbnQgMgoJaW50IDAKCWJveF9leHRyYWN0CglmcmFtZV9kaWcgLTMgLy8gYXBwSUQ6IHVpbnQ2NAoJaXRvYgoJY29uY2F0CglmcmFtZV9kaWcgMSAvLyB3aGl0ZWxpc3Q6IFdoaXRlbGlzdAoJZHVwCglib3hfZGVsCglwb3AKCXN3YXAKCWR1cAoJbGVuCglpbnQgOAoJLwoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJYm94X3B1dAoJYiAqaWYwX2VuZAoKKmlmMF9lbHNlOgoJLy8gZXhhbXBsZXMvYXJjNzUvYXJjNzUuYWxnby50czozOQoJLy8gbmV3V2hpdGVsaXN0OiB1aW50NjRbXSA9IFthcHBJRF0KCWZyYW1lX2RpZyAtMyAvLyBhcHBJRDogdWludDY0CglpdG9iCglmcmFtZV9idXJ5IDIgLy8gbmV3V2hpdGVsaXN0OiB1aW50NjRbXQoKCS8vIGV4YW1wbGVzL2FyYzc1L2FyYzc1LmFsZ28udHM6NDAKCS8vIHRoaXMud2hpdGVsaXN0KHdoaXRlbGlzdCkudmFsdWUgPSBuZXdXaGl0ZWxpc3QKCWZyYW1lX2RpZyAxIC8vIHdoaXRlbGlzdDogV2hpdGVsaXN0CglkdXAKCWJveF9kZWwKCXBvcAoJZnJhbWVfZGlnIDIgLy8gbmV3V2hpdGVsaXN0OiB1aW50NjRbXQoJZHVwCglsZW4KCWludCA4CgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cglib3hfcHV0CgoqaWYwX2VuZDoKCS8vIGV4YW1wbGVzL2FyYzc1L2FyYzc1LmFsZ28udHM6NDMKCS8vIHRoaXMudmVyaWZ5TUJSUGF5bWVudChwYXltZW50LCBwcmVNQlIpCglmcmFtZV9kaWcgMCAvLyBwcmVNQlI6IHVpbnQ2NAoJZnJhbWVfZGlnIC00IC8vIHBheW1lbnQ6IFBheVR4bgoJY2FsbHN1YiB2ZXJpZnlNQlJQYXltZW50CglyZXRzdWIKCi8vIHNldEFwcFdoaXRlbGlzdChzdHJpbmcsdWludDE2LHVpbnQ2NFtdKXZvaWQKKmFiaV9yb3V0ZV9zZXRBcHBXaGl0ZWxpc3Q6CgkvLyBhcHBJRHM6IHVpbnQ2NFtdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglleHRyYWN0IDIgMAoKCS8vIGJveEluZGV4OiB1aW50MTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMgoJPT0KCWFzc2VydAoJYnRvaQoKCS8vIGFyYzogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgc2V0QXBwV2hpdGVsaXN0KHN0cmluZyx1aW50MTYsdWludDY0W10pdm9pZAoJY2FsbHN1YiBzZXRBcHBXaGl0ZWxpc3QKCWludCAxCglyZXR1cm4KCi8vIHNldEFwcFdoaXRlbGlzdChhcmM6IHN0cmluZywgYm94SW5kZXg6IHVpbnQxNiwgYXBwSURzOiB1aW50NjRbXSk6IHZvaWQKLy8KLy8gU2V0cyBhIGFwcCB3aGl0ZWxpc3QgZm9yIHRoZSBzZW5kZXIuIFNob3VsZCBvbmx5IGJlIHVzZWQgd2hlbiBhZGRpbmcvcmVtb3ZpbmcKLy8gbW9yZSB0aGFuIG9uZSBhcHAKLy8KLy8gQHBhcmFtIGJveEluZGV4IC0gVGhlIGluZGV4IG9mIHRoZSB3aGl0ZWxpc3QgYm94IHRvIHB1dCB0aGUgYXBwIElEcyBpbgovLyBAcGFyYW0gYXBwSURzIC0gQXJyYXkgb2YgYXBwIElEcyB0aGF0IHNpZ25pZnkgdGhlIHdoaXRlbGlzdGVkIGFwcHMKc2V0QXBwV2hpdGVsaXN0OgoJcHJvdG8gMyAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIGV4YW1wbGVzL2FyYzc1L2FyYzc1LmFsZ28udHM6NTUKCS8vIHByZU1CUiA9IHRoaXMuYXBwLmFkZHJlc3MubWluQmFsYW5jZQoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQoJcG9wCglmcmFtZV9idXJ5IDAgLy8gcHJlTUJSOiB1aW50NjQKCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjU2CgkvLyB3aGl0ZWxpc3Q6IFdoaXRlbGlzdCA9IHsgYWNjb3VudDogdGhpcy50eG4uc2VuZGVyLCBib3hJbmRleDogYm94SW5kZXgsIGFyYzogYXJjIH0KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJYnl0ZSAweDAwMjQgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJdHhuIFNlbmRlcgoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJZnJhbWVfZGlnIC0yIC8vIGJveEluZGV4OiB1aW50MTYKCWl0b2IKCWV4dHJhY3QgNiAyCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglmcmFtZV9kaWcgLTEgLy8gYXJjOiBzdHJpbmcKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglmcmFtZV9idXJ5IDEgLy8gd2hpdGVsaXN0OiBXaGl0ZWxpc3QKCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjU4CgkvLyB0aGlzLndoaXRlbGlzdCh3aGl0ZWxpc3QpLmRlbGV0ZSgpCglmcmFtZV9kaWcgMSAvLyB3aGl0ZWxpc3Q6IFdoaXRlbGlzdAoJYm94X2RlbAoKCS8vIGV4YW1wbGVzL2FyYzc1L2FyYzc1LmFsZ28udHM6NjAKCS8vIHRoaXMud2hpdGVsaXN0KHdoaXRlbGlzdCkudmFsdWUgPSBhcHBJRHMKCWZyYW1lX2RpZyAxIC8vIHdoaXRlbGlzdDogV2hpdGVsaXN0CglkdXAKCWJveF9kZWwKCXBvcAoJZnJhbWVfZGlnIC0zIC8vIGFwcElEczogdWludDY0W10KCWR1cAoJbGVuCglpbnQgOAoJLwoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJYm94X3B1dAoKCS8vICppZjFfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjYyCgkvLyBwcmVNQlIgPiB0aGlzLmFwcC5hZGRyZXNzLm1pbkJhbGFuY2UKCWZyYW1lX2RpZyAwIC8vIHByZU1CUjogdWludDY0CglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCglwb3AKCT4KCWJ6ICppZjFfZWxzZQoKCS8vICppZjFfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvYXJjNzUvYXJjNzUuYWxnby50czo2MwoJLy8gdGhpcy5zZW5kTUJSUGF5bWVudChwcmVNQlIpCglmcmFtZV9kaWcgMCAvLyBwcmVNQlI6IHVpbnQ2NAoJY2FsbHN1YiBzZW5kTUJSUGF5bWVudAoJYiAqaWYxX2VuZAoKKmlmMV9lbHNlOgoJLy8gZXhhbXBsZXMvYXJjNzUvYXJjNzUuYWxnby50czo2NQoJLy8gdGhpcy52ZXJpZnlNQlJQYXltZW50KHRoaXMudHhuR3JvdXBbdGhpcy50eG4uZ3JvdXBJbmRleCAtIDFdIGFzIFBheVR4biwgcHJlTUJSKQoJZnJhbWVfZGlnIDAgLy8gcHJlTUJSOiB1aW50NjQKCXR4biBHcm91cEluZGV4CglpbnQgMQoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJaW50IHBheQoJPT0KCWFzc2VydAoJY2FsbHN1YiB2ZXJpZnlNQlJQYXltZW50CgoqaWYxX2VuZDoKCXJldHN1YgoKLy8gZGVsZXRlV2hpdGVsaXN0KHN0cmluZyx1aW50MTYpdm9pZAoqYWJpX3JvdXRlX2RlbGV0ZVdoaXRlbGlzdDoKCS8vIGJveEluZGV4OiB1aW50MTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMgoJPT0KCWFzc2VydAoJYnRvaQoKCS8vIGFyYzogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgZGVsZXRlV2hpdGVsaXN0KHN0cmluZyx1aW50MTYpdm9pZAoJY2FsbHN1YiBkZWxldGVXaGl0ZWxpc3QKCWludCAxCglyZXR1cm4KCi8vIGRlbGV0ZVdoaXRlbGlzdChhcmM6IHN0cmluZywgYm94SW5kZXg6IHVpbnQxNik6IHZvaWQKLy8KLy8gRGVsZXRlcyBhIGFwcCB3aGl0ZWxpc3QgZm9yIHRoZSBzZW5kZXIKLy8KLy8gQHBhcmFtIGFyYyAtIFRoZSBBUkMgdGhlIHdoaXRlbGlzdCBjb3JyZXNwb25kcyB0bwovLyBAcGFyYW0gYm94SW5kZXggLSBUaGUgaW5kZXggb2YgdGhlIHdoaXRlbGlzdCBib3ggdG8gZGVsZXRlCmRlbGV0ZVdoaXRlbGlzdDoKCXByb3RvIDIgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjc3CgkvLyBwcmVNQlIgPSB0aGlzLmFwcC5hZGRyZXNzLm1pbkJhbGFuY2UKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKCXBvcAoJZnJhbWVfYnVyeSAwIC8vIHByZU1CUjogdWludDY0CgoJLy8gZXhhbXBsZXMvYXJjNzUvYXJjNzUuYWxnby50czo3OAoJLy8gd2hpdGVsaXN0OiBXaGl0ZWxpc3QgPSB7IGFjY291bnQ6IHRoaXMudHhuLnNlbmRlciwgYm94SW5kZXg6IGJveEluZGV4LCBhcmM6IGFyYyB9CglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDI0IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCXR4biBTZW5kZXIKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWZyYW1lX2RpZyAtMiAvLyBib3hJbmRleDogdWludDE2CglpdG9iCglleHRyYWN0IDYgMgoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJZnJhbWVfZGlnIC0xIC8vIGFyYzogc3RyaW5nCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJZnJhbWVfYnVyeSAxIC8vIHdoaXRlbGlzdDogV2hpdGVsaXN0CgoJLy8gZXhhbXBsZXMvYXJjNzUvYXJjNzUuYWxnby50czo4MAoJLy8gdGhpcy53aGl0ZWxpc3Qod2hpdGVsaXN0KS5kZWxldGUoKQoJZnJhbWVfZGlnIDEgLy8gd2hpdGVsaXN0OiBXaGl0ZWxpc3QKCWJveF9kZWwKCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjgyCgkvLyB0aGlzLnNlbmRNQlJQYXltZW50KHByZU1CUikKCWZyYW1lX2RpZyAwIC8vIHByZU1CUjogdWludDY0CgljYWxsc3ViIHNlbmRNQlJQYXltZW50CglyZXRzdWIKCi8vIGRlbGV0ZUFwcEZyb21XaGl0ZWxpc3Qoc3RyaW5nLHVpbnQxNix1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9kZWxldGVBcHBGcm9tV2hpdGVsaXN0OgoJLy8gaW5kZXg6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNAoJYnRvaQoKCS8vIGFwcElEOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWJ0b2kKCgkvLyBib3hJbmRleDogdWludDE2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDIKCT09Cglhc3NlcnQKCWJ0b2kKCgkvLyBhcmM6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIGRlbGV0ZUFwcEZyb21XaGl0ZWxpc3Qoc3RyaW5nLHVpbnQxNix1aW50NjQsdWludDY0KXZvaWQKCWNhbGxzdWIgZGVsZXRlQXBwRnJvbVdoaXRlbGlzdAoJaW50IDEKCXJldHVybgoKLy8gZGVsZXRlQXBwRnJvbVdoaXRlbGlzdChhcmM6IHN0cmluZywgYm94SW5kZXg6IHVpbnQxNiwgYXBwSUQ6IHVpbnQ2NCwgaW5kZXg6IHVpbnQ2NCk6IHZvaWQKLy8KLy8gRGVsZXRlcyBhIGFwcCBmcm9tIGEgd2hpdGVsaXN0IGZvciB0aGUgc2VuZGVyCi8vCi8vIEBwYXJhbSBib3hJbmRleCAtIFRoZSBpbmRleCBvZiB0aGUgd2hpdGVsaXN0IGJveCB0byBkZWxldGUgZnJvbQovLyBAcGFyYW0gYXBwSUQgLSBUaGUgYXBwIElEIHRvIGRlbGV0ZSBmcm9tIHRoZSB3aGl0ZWxpc3QKLy8gQHBhcmFtIGluZGV4IC0gVGhlIGluZGV4IG9mIHRoZSBhcHAgaW4gdGhlIHdoaXRlbGlzdApkZWxldGVBcHBGcm9tV2hpdGVsaXN0OgoJcHJvdG8gNCAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gMgoKCS8vIGV4YW1wbGVzL2FyYzc1L2FyYzc1LmFsZ28udHM6OTQKCS8vIHByZU1CUiA9IHRoaXMuYXBwLmFkZHJlc3MubWluQmFsYW5jZQoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQoJcG9wCglmcmFtZV9idXJ5IDAgLy8gcHJlTUJSOiB1aW50NjQKCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjk1CgkvLyB3aGl0ZWxpc3Q6IFdoaXRlbGlzdCA9IHsgYWNjb3VudDogdGhpcy50eG4uc2VuZGVyLCBib3hJbmRleDogYm94SW5kZXgsIGFyYzogYXJjIH0KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJYnl0ZSAweDAwMjQgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJdHhuIFNlbmRlcgoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJZnJhbWVfZGlnIC0yIC8vIGJveEluZGV4OiB1aW50MTYKCWl0b2IKCWV4dHJhY3QgNiAyCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglmcmFtZV9kaWcgLTEgLy8gYXJjOiBzdHJpbmcKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglmcmFtZV9idXJ5IDEgLy8gd2hpdGVsaXN0OiBXaGl0ZWxpc3QKCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjk3CgkvLyBzcGxpY2VkID0gdGhpcy53aGl0ZWxpc3Qod2hpdGVsaXN0KS52YWx1ZS5zcGxpY2UoaW5kZXgsIDEpCglmcmFtZV9kaWcgMSAvLyB3aGl0ZWxpc3Q6IFdoaXRlbGlzdAoJaW50IDIKCWludCAwCglib3hfZXh0cmFjdAoJaW50IDEKCWZyYW1lX2RpZyAtNCAvLyBpbmRleDogdWludDY0CglpbnQgOAoJKgoJc3RvcmUgMjQ3IC8vIHNwbGljZSBzdGFydAoJaW50IDE2CglzdG9yZSAyNDYgLy8gc3BsaWNlIGJ5dGUgbGVuZ3RoCglmcmFtZV9kaWcgMSAvLyB3aGl0ZWxpc3Q6IFdoaXRlbGlzdAoJaW50IDIKCWludCAwCglib3hfZXh0cmFjdAoJaW50IDAKCWxvYWQgMjQ3IC8vIHNwbGljZSBzdGFydAoJc3Vic3RyaW5nMwoJZnJhbWVfZGlnIDEgLy8gd2hpdGVsaXN0OiBXaGl0ZWxpc3QKCWludCAyCglpbnQgMAoJYm94X2V4dHJhY3QKCWR1cAoJbGVuCglsb2FkIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCWxvYWQgMjQ2IC8vIHNwbGljZSBieXRlIGxlbmd0aAoJKwoJaW50IDgKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJZnJhbWVfZGlnIDEgLy8gd2hpdGVsaXN0OiBXaGl0ZWxpc3QKCWludCAyCglpbnQgMAoJYm94X2V4dHJhY3QKCWxvYWQgMjQ3IC8vIHNwbGljZSBzdGFydAoJbG9hZCAyNDYgLy8gc3BsaWNlIGJ5dGUgbGVuZ3RoCglpbnQgOAoJLQoJZXh0cmFjdDMKCXN3YXAKCWZyYW1lX2RpZyAxIC8vIHdoaXRlbGlzdDogV2hpdGVsaXN0CglkdXAKCWJveF9kZWwKCXBvcAoJc3dhcAoJZHVwCglsZW4KCWludCA4CgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cglib3hfcHV0CglmcmFtZV9idXJ5IDIgLy8gc3BsaWNlZDogdWludDY0W10KCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjk5CgkvLyBhc3NlcnQoc3BsaWNlZFswXSA9PT0gYXBwSUQpCglmcmFtZV9kaWcgMiAvLyBzcGxpY2VkOiB1aW50NjRbXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWV4dHJhY3QgMCA4CglidG9pCglmcmFtZV9kaWcgLTMgLy8gYXBwSUQ6IHVpbnQ2NAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FyYzc1L2FyYzc1LmFsZ28udHM6MTAxCgkvLyB0aGlzLnNlbmRNQlJQYXltZW50KHByZU1CUikKCWZyYW1lX2RpZyAwIC8vIHByZU1CUjogdWludDY0CgljYWxsc3ViIHNlbmRNQlJQYXltZW50CglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJhZGRBcHBUb1doaXRlTGlzdChzdHJpbmcsdWludDE2LHVpbnQ2NCxwYXkpdm9pZCIKCW1ldGhvZCAic2V0QXBwV2hpdGVsaXN0KHN0cmluZyx1aW50MTYsdWludDY0W10pdm9pZCIKCW1ldGhvZCAiZGVsZXRlV2hpdGVsaXN0KHN0cmluZyx1aW50MTYpdm9pZCIKCW1ldGhvZCAiZGVsZXRlQXBwRnJvbVdoaXRlbGlzdChzdHJpbmcsdWludDE2LHVpbnQ2NCx1aW50NjQpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYWRkQXBwVG9XaGl0ZUxpc3QgKmFiaV9yb3V0ZV9zZXRBcHBXaGl0ZWxpc3QgKmFiaV9yb3V0ZV9kZWxldGVXaGl0ZWxpc3QgKmFiaV9yb3V0ZV9kZWxldGVBcHBGcm9tV2hpdGVsaXN0CgllcnIKCipwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWNvbmNhdAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgoqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJZHVwCglsZW4KCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJYnRvaQoJKwoJaXRvYgoJZXh0cmFjdCA2IDIKCWZyYW1lX2J1cnkgLTIgLy8gaGVhZCBvZmZzZXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglzd2FwCgljb25jYXQKCWZyYW1lX2J1cnkgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1Yg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/examples/auction/tealscript_artifacts/Auction.approval.teal b/examples/auction/tealscript_artifacts/Auction.approval.teal index fa735ac7e..f0b6e2fa5 100644 --- a/examples/auction/tealscript_artifacts/Auction.approval.teal +++ b/examples/auction/tealscript_artifacts/Auction.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp call_OptIn NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED call_DeleteApplication create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *call_OptIn *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *call_DeleteApplication *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // createApplication()void -abi_route_createApplication: +*abi_route_createApplication: // execute createApplication()void callsub createApplication int 1 @@ -64,7 +64,7 @@ createApplication: retsub // optIntoAsset(asset)void -abi_route_optIntoAsset: +*abi_route_optIntoAsset: // asset: asset txna ApplicationArgs 1 btoi @@ -139,7 +139,7 @@ optIntoAsset: retsub // startAuction(uint64,uint64,axfer)void -abi_route_startAuction: +*abi_route_startAuction: // axfer: axfer txn GroupIndex int 1 @@ -249,7 +249,7 @@ pay: retsub // optInToApplication()void -abi_route_optInToApplication: +*abi_route_optInToApplication: // execute optInToApplication()void callsub optInToApplication int 1 @@ -261,7 +261,7 @@ optInToApplication: retsub // bid(pay)void -abi_route_bid: +*abi_route_bid: // payment: pay txn GroupIndex int 1 @@ -337,7 +337,7 @@ bid: retsub // claimBids()void -abi_route_claimBids: +*abi_route_claimBids: // execute claimBids()void callsub claimBids int 1 @@ -364,16 +364,16 @@ claimBids: frame_bury 1 // amount: uint64 // subtract previous bid if sender is previous bidder - // if0_condition + // *if0_condition // examples/auction/auction.algo.ts:93 // this.txn.sender === this.previousBidder.value txn Sender byte 0x70726576696f7573426964646572 // "previousBidder" app_global_get == - bz if0_end + bz *if0_end - // if0_consequent + // *if0_consequent // examples/auction/auction.algo.ts:93 // amount = amount - this.previousBid.value frame_dig 1 // amount: uint64 @@ -382,7 +382,7 @@ claimBids: - frame_bury 1 // amount: uint64 -if0_end: +*if0_end: // examples/auction/auction.algo.ts:95 // this.pay(this.txn.sender, amount) frame_dig 1 // amount: uint64 @@ -400,7 +400,7 @@ if0_end: retsub // claim_asset(asset)void -abi_route_claim_asset: +*abi_route_claim_asset: // asset: asset txna ApplicationArgs 1 btoi @@ -467,7 +467,7 @@ claim_asset: retsub // deleteApplication()void -abi_route_deleteApplication: +*abi_route_deleteApplication: // execute deleteApplication()void callsub deleteApplication int 1 @@ -510,30 +510,30 @@ deleteApplication: itxn_submit retsub -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "optIntoAsset(asset)void" method "startAuction(uint64,uint64,axfer)void" method "bid(pay)void" method "claimBids()void" method "claim_asset(asset)void" txna ApplicationArgs 0 - match abi_route_optIntoAsset abi_route_startAuction abi_route_bid abi_route_claimBids abi_route_claim_asset + match *abi_route_optIntoAsset *abi_route_startAuction *abi_route_bid *abi_route_claimBids *abi_route_claim_asset err -call_OptIn: +*call_OptIn: method "optInToApplication()void" txna ApplicationArgs 0 - match abi_route_optInToApplication + match *abi_route_optInToApplication err -call_DeleteApplication: +*call_DeleteApplication: method "deleteApplication()void" txna ApplicationArgs 0 - match abi_route_deleteApplication + match *abi_route_deleteApplication err \ No newline at end of file diff --git a/examples/auction/tealscript_artifacts/Auction.arc32.json b/examples/auction/tealscript_artifacts/Auction.arc32.json index 1d992b6de..f605515b2 100644 --- a/examples/auction/tealscript_artifacts/Auction.arc32.json +++ b/examples/auction/tealscript_artifacts/Auction.arc32.json @@ -95,7 +95,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIGNhbGxfT3B0SW4gTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9EZWxldGVBcHBsaWNhdGlvbiBjcmVhdGVfTm9PcCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVECgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIGNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCS8vIGV4ZWN1dGUgY3JlYXRlQXBwbGljYXRpb24oKXZvaWQKCWNhbGxzdWIgY3JlYXRlQXBwbGljYXRpb24KCWludCAxCglyZXR1cm4KCi8vIGNyZWF0ZUFwcGxpY2F0aW9uKCk6IHZvaWQKY3JlYXRlQXBwbGljYXRpb246Cglwcm90byAwIDAKCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czoxOAoJLy8gdGhpcy5hdWN0aW9uRW5kLnZhbHVlID0gMAoJYnl0ZSAweDYxNzU2Mzc0Njk2ZjZlNDU2ZTY0IC8vICJhdWN0aW9uRW5kIgoJaW50IDAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6MTkKCS8vIHRoaXMucHJldmlvdXNCaWQudmFsdWUgPSAwCglieXRlIDB4NzA3MjY1NzY2OTZmNzU3MzQyNjk2NCAvLyAicHJldmlvdXNCaWQiCglpbnQgMAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czoyMAoJLy8gdGhpcy5hc2FBbXQudmFsdWUgPSAwCglieXRlIDB4NjE3MzYxNDE2ZDc0IC8vICJhc2FBbXQiCglpbnQgMAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czoyMQoJLy8gdGhpcy5hc2EudmFsdWUgPSBBc3NldC56ZXJvSW5kZXgKCWJ5dGUgMHg2MTczNjEgLy8gImFzYSIKCWludCAwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjI0CgkvLyB0aGlzLnByZXZpb3VzQmlkZGVyLnZhbHVlID0gZ2xvYmFscy56ZXJvQWRkcmVzcwoJYnl0ZSAweDcwNzI2NTc2Njk2Zjc1NzM0MjY5NjQ2NDY1NzIgLy8gInByZXZpb3VzQmlkZGVyIgoJZ2xvYmFsIFplcm9BZGRyZXNzCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBvcHRJbnRvQXNzZXQoYXNzZXQpdm9pZAphYmlfcm91dGVfb3B0SW50b0Fzc2V0OgoJLy8gYXNzZXQ6IGFzc2V0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgl0eG5hcyBBc3NldHMKCgkvLyBleGVjdXRlIG9wdEludG9Bc3NldChhc3NldCl2b2lkCgljYWxsc3ViIG9wdEludG9Bc3NldAoJaW50IDEKCXJldHVybgoKLy8gb3B0SW50b0Fzc2V0KGFzc2V0OiBBc3NldCk6IHZvaWQKb3B0SW50b0Fzc2V0OgoJcHJvdG8gMSAwCgoJLy8gT25seSBhbGxvdyBhcHAgY3JlYXRvciB0byBvcHQgdGhlIGFwcCBhY2NvdW50IGludG8gYSBBU0EKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjI5CgkvLyB2ZXJpZnlBcHBDYWxsVHhuKHRoaXMudHhuLCB7IHNlbmRlcjogZ2xvYmFscy5jcmVhdG9yQWRkcmVzcyB9KQoJLy8gdmVyaWZ5IHNlbmRlcgoJdHhuIFNlbmRlcgoJZ2xvYmFsIENyZWF0b3JBZGRyZXNzCgk9PQoJYXNzZXJ0CgoJLy8gVmVyaWZ5IGEgQVNBIGhhc24ndCBhbHJlYWR5IGJlZW4gb3B0ZWQgaW50bwoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6MzIKCS8vIGFzc2VydCh0aGlzLmFzYS52YWx1ZSA9PT0gQXNzZXQuemVyb0luZGV4KQoJYnl0ZSAweDYxNzM2MSAvLyAiYXNhIgoJYXBwX2dsb2JhbF9nZXQKCWludCAwCgk9PQoJYXNzZXJ0CgoJLy8gU2F2ZSBBU0EgSUQgaW4gZ2xvYmFsIHN0YXRlCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czozNQoJLy8gdGhpcy5hc2EudmFsdWUgPSBhc3NldAoJYnl0ZSAweDYxNzM2MSAvLyAiYXNhIgoJZnJhbWVfZGlnIC0xIC8vIGFzc2V0OiBBc3NldAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBTdWJtaXQgb3B0LWluIHRyYW5zYWN0aW9uOiAwIGFzc2V0IHRyYW5zZmVyIHRvIHNlbGYKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjM4CgkvLyBzZW5kQXNzZXRUcmFuc2Zlcih7CgkvLyAgICAgICBhc3NldFJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgeGZlckFzc2V0OiBhc3NldCwKCS8vICAgICAgIGFzc2V0QW1vdW50OiAwLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnQgYXhmZXIKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czozOQoJLy8gYXNzZXRSZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWl0eG5fZmllbGQgQXNzZXRSZWNlaXZlcgoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjQwCgkvLyB4ZmVyQXNzZXQ6IGFzc2V0CglmcmFtZV9kaWcgLTEgLy8gYXNzZXQ6IEFzc2V0CglpdHhuX2ZpZWxkIFhmZXJBc3NldAoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjQxCgkvLyBhc3NldEFtb3VudDogMAoJaW50IDAKCWl0eG5fZmllbGQgQXNzZXRBbW91bnQKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglyZXRzdWIKCi8vIHN0YXJ0QXVjdGlvbih1aW50NjQsdWludDY0LGF4ZmVyKXZvaWQKYWJpX3JvdXRlX3N0YXJ0QXVjdGlvbjoKCS8vIGF4ZmVyOiBheGZlcgoJdHhuIEdyb3VwSW5kZXgKCWludCAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgYXhmZXIKCT09Cglhc3NlcnQKCgkvLyBsZW5ndGg6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIHN0YXJ0aW5nUHJpY2U6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgc3RhcnRBdWN0aW9uKHVpbnQ2NCx1aW50NjQsYXhmZXIpdm9pZAoJY2FsbHN1YiBzdGFydEF1Y3Rpb24KCWludCAxCglyZXR1cm4KCi8vIHN0YXJ0QXVjdGlvbihzdGFydGluZ1ByaWNlOiB1aW50NjQsIGxlbmd0aDogdWludDY0LCBheGZlcjogQXNzZXRUcmFuc2ZlclR4bik6IHZvaWQKc3RhcnRBdWN0aW9uOgoJcHJvdG8gMyAwCgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6NDYKCS8vIHZlcmlmeUFwcENhbGxUeG4odGhpcy50eG4sIHsgc2VuZGVyOiBnbG9iYWxzLmNyZWF0b3JBZGRyZXNzIH0pCgkvLyB2ZXJpZnkgc2VuZGVyCgl0eG4gU2VuZGVyCglnbG9iYWwgQ3JlYXRvckFkZHJlc3MKCT09Cglhc3NlcnQKCgkvLyBFbnN1cmUgdGhlIGF1Y3Rpb24gaGFzbid0IGFscmVhZHkgYmVlbiBzdGFydGVkCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czo0OQoJLy8gYXNzZXJ0KHRoaXMuYXVjdGlvbkVuZC52YWx1ZSA9PT0gMCkKCWJ5dGUgMHg2MTc1NjM3NDY5NmY2ZTQ1NmU2NCAvLyAiYXVjdGlvbkVuZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMAoJPT0KCWFzc2VydAoKCS8vIFZlcmlmeSBheGZlcgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6NTIKCS8vIHZlcmlmeUFzc2V0VHJhbnNmZXJUeG4oYXhmZXIsIHsgYXNzZXRSZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcyB9KQoJLy8gdmVyaWZ5IGFzc2V0UmVjZWl2ZXIKCWZyYW1lX2RpZyAtMyAvLyBheGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09Cglhc3NlcnQKCgkvLyBTZXQgZ2xvYmFsIHN0YXRlCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czo1NQoJLy8gdGhpcy5hc2FBbXQudmFsdWUgPSBheGZlci5hc3NldEFtb3VudAoJYnl0ZSAweDYxNzM2MTQxNmQ3NCAvLyAiYXNhQW10IgoJZnJhbWVfZGlnIC0zIC8vIGF4ZmVyOiBBc3NldFRyYW5zZmVyVHhuCglndHhucyBBc3NldEFtb3VudAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czo1NgoJLy8gdGhpcy5hdWN0aW9uRW5kLnZhbHVlID0gZ2xvYmFscy5sYXRlc3RUaW1lc3RhbXAgKyBsZW5ndGgKCWJ5dGUgMHg2MTc1NjM3NDY5NmY2ZTQ1NmU2NCAvLyAiYXVjdGlvbkVuZCIKCWdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKCWZyYW1lX2RpZyAtMiAvLyBsZW5ndGg6IHVpbnQ2NAoJKwoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czo1NwoJLy8gdGhpcy5wcmV2aW91c0JpZC52YWx1ZSA9IHN0YXJ0aW5nUHJpY2UKCWJ5dGUgMHg3MDcyNjU3NjY5NmY3NTczNDI2OTY0IC8vICJwcmV2aW91c0JpZCIKCWZyYW1lX2RpZyAtMSAvLyBzdGFydGluZ1ByaWNlOiB1aW50NjQKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIHBheShyZWNlaXZlcjogQWNjb3VudCwgYW1vdW50OiB1aW50NjQpOiB2b2lkCnBheToKCXByb3RvIDIgMAoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjYxCgkvLyBzZW5kUGF5bWVudCh7CgkvLyAgICAgICByZWNlaXZlcjogcmVjZWl2ZXIsCgkvLyAgICAgICBhbW91bnQ6IGFtb3VudCwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IHBheQoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjYyCgkvLyByZWNlaXZlcjogcmVjZWl2ZXIKCWZyYW1lX2RpZyAtMSAvLyByZWNlaXZlcjogQWNjb3VudAoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjYzCgkvLyBhbW91bnQ6IGFtb3VudAoJZnJhbWVfZGlnIC0yIC8vIGFtb3VudDogdWludDY0CglpdHhuX2ZpZWxkIEFtb3VudAoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gb3B0SW5Ub0FwcGxpY2F0aW9uKCl2b2lkCmFiaV9yb3V0ZV9vcHRJblRvQXBwbGljYXRpb246CgkvLyBleGVjdXRlIG9wdEluVG9BcHBsaWNhdGlvbigpdm9pZAoJY2FsbHN1YiBvcHRJblRvQXBwbGljYXRpb24KCWludCAxCglyZXR1cm4KCi8vIG9wdEluVG9BcHBsaWNhdGlvbigpOiB2b2lkCm9wdEluVG9BcHBsaWNhdGlvbjoKCXByb3RvIDAgMAoJcmV0c3ViCgovLyBiaWQocGF5KXZvaWQKYWJpX3JvdXRlX2JpZDoKCS8vIHBheW1lbnQ6IHBheQoJdHhuIEdyb3VwSW5kZXgKCWludCAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgcGF5Cgk9PQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBiaWQocGF5KXZvaWQKCWNhbGxzdWIgYmlkCglpbnQgMQoJcmV0dXJuCgovLyBiaWQocGF5bWVudDogUGF5VHhuKTogdm9pZApiaWQ6Cglwcm90byAxIDAKCgkvLyBFbnN1cmUgYXVjdGlvbiBoYXNuJ3QgZW5kZWQKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjcyCgkvLyBhc3NlcnQoZ2xvYmFscy5sYXRlc3RUaW1lc3RhbXAgPCB0aGlzLmF1Y3Rpb25FbmQudmFsdWUpCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCglieXRlIDB4NjE3NTYzNzQ2OTZmNmU0NTZlNjQgLy8gImF1Y3Rpb25FbmQiCglhcHBfZ2xvYmFsX2dldAoJPAoJYXNzZXJ0CgoJLy8gVmVyaWZ5IHBheW1lbnQgdHJhbnNhY3Rpb24KCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjc1CgkvLyB2ZXJpZnlQYXlUeG4ocGF5bWVudCwgewoJLy8gICAgICAgc2VuZGVyOiB0aGlzLnR4bi5zZW5kZXIsCgkvLyAgICAgICBhbW91bnQ6IHsgZ3JlYXRlclRoYW46IHRoaXMucHJldmlvdXNCaWQudmFsdWUgfSwKCS8vICAgICB9KQoJLy8gdmVyaWZ5IHNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIHBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgU2VuZGVyCgl0eG4gU2VuZGVyCgk9PQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IGFtb3VudAoJZnJhbWVfZGlnIC0xIC8vIHBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CglieXRlIDB4NzA3MjY1NzY2OTZmNzU3MzQyNjk2NCAvLyAicHJldmlvdXNCaWQiCglhcHBfZ2xvYmFsX2dldAoJPgoJYXNzZXJ0CgoJLy8gU2V0IGdsb2JhbCBzdGF0ZQoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6ODEKCS8vIHRoaXMucHJldmlvdXNCaWQudmFsdWUgPSBwYXltZW50LmFtb3VudAoJYnl0ZSAweDcwNzI2NTc2Njk2Zjc1NzM0MjY5NjQgLy8gInByZXZpb3VzQmlkIgoJZnJhbWVfZGlnIC0xIC8vIHBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjgyCgkvLyB0aGlzLnByZXZpb3VzQmlkZGVyLnZhbHVlID0gcGF5bWVudC5zZW5kZXIKCWJ5dGUgMHg3MDcyNjU3NjY5NmY3NTczNDI2OTY0NjQ2NTcyIC8vICJwcmV2aW91c0JpZGRlciIKCWZyYW1lX2RpZyAtMSAvLyBwYXltZW50OiBQYXlUeG4KCWd0eG5zIFNlbmRlcgoJYXBwX2dsb2JhbF9wdXQKCgkvLyBVcGRhdGUgY2xhaW1hYmxlIGFtb3VudAoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6ODUKCS8vIHRoaXMuY2xhaW1hYmxlQW1vdW50KHRoaXMudHhuLnNlbmRlcikudmFsdWUgPSBwYXltZW50LmFtb3VudAoJdHhuIFNlbmRlcgoJYnl0ZSAweDYzNmM2MTY5NmQ2MTYyNmM2NTQxNmQ2Zjc1NmU3NCAvLyAiY2xhaW1hYmxlQW1vdW50IgoJZnJhbWVfZGlnIC0xIC8vIHBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CglhcHBfbG9jYWxfcHV0CglyZXRzdWIKCi8vIGNsYWltQmlkcygpdm9pZAphYmlfcm91dGVfY2xhaW1CaWRzOgoJLy8gZXhlY3V0ZSBjbGFpbUJpZHMoKXZvaWQKCWNhbGxzdWIgY2xhaW1CaWRzCglpbnQgMQoJcmV0dXJuCgovLyBjbGFpbUJpZHMoKTogdm9pZApjbGFpbUJpZHM6Cglwcm90byAwIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6ODkKCS8vIG9yaWdpbmFsQW1vdW50ID0gdGhpcy5jbGFpbWFibGVBbW91bnQodGhpcy50eG4uc2VuZGVyKS52YWx1ZQoJdHhuIFNlbmRlcgoJYnl0ZSAweDYzNmM2MTY5NmQ2MTYyNmM2NTQxNmQ2Zjc1NmU3NCAvLyAiY2xhaW1hYmxlQW1vdW50IgoJYXBwX2xvY2FsX2dldAoJZnJhbWVfYnVyeSAwIC8vIG9yaWdpbmFsQW1vdW50OiB1aW50NjQKCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czo5MAoJLy8gYW1vdW50ID0gb3JpZ2luYWxBbW91bnQKCWZyYW1lX2RpZyAwIC8vIG9yaWdpbmFsQW1vdW50OiB1aW50NjQKCWZyYW1lX2J1cnkgMSAvLyBhbW91bnQ6IHVpbnQ2NAoKCS8vIHN1YnRyYWN0IHByZXZpb3VzIGJpZCBpZiBzZW5kZXIgaXMgcHJldmlvdXMgYmlkZGVyCgkvLyBpZjBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czo5MwoJLy8gdGhpcy50eG4uc2VuZGVyID09PSB0aGlzLnByZXZpb3VzQmlkZGVyLnZhbHVlCgl0eG4gU2VuZGVyCglieXRlIDB4NzA3MjY1NzY2OTZmNzU3MzQyNjk2NDY0NjU3MiAvLyAicHJldmlvdXNCaWRkZXIiCglhcHBfZ2xvYmFsX2dldAoJPT0KCWJ6IGlmMF9lbmQKCgkvLyBpZjBfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6OTMKCS8vIGFtb3VudCA9IGFtb3VudCAtIHRoaXMucHJldmlvdXNCaWQudmFsdWUKCWZyYW1lX2RpZyAxIC8vIGFtb3VudDogdWludDY0CglieXRlIDB4NzA3MjY1NzY2OTZmNzU3MzQyNjk2NCAvLyAicHJldmlvdXNCaWQiCglhcHBfZ2xvYmFsX2dldAoJLQoJZnJhbWVfYnVyeSAxIC8vIGFtb3VudDogdWludDY0CgppZjBfZW5kOgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6OTUKCS8vIHRoaXMucGF5KHRoaXMudHhuLnNlbmRlciwgYW1vdW50KQoJZnJhbWVfZGlnIDEgLy8gYW1vdW50OiB1aW50NjQKCXR4biBTZW5kZXIKCWNhbGxzdWIgcGF5CgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6OTYKCS8vIHRoaXMuY2xhaW1hYmxlQW1vdW50KHRoaXMudHhuLnNlbmRlcikudmFsdWUgPSBvcmlnaW5hbEFtb3VudCAtIGFtb3VudAoJdHhuIFNlbmRlcgoJYnl0ZSAweDYzNmM2MTY5NmQ2MTYyNmM2NTQxNmQ2Zjc1NmU3NCAvLyAiY2xhaW1hYmxlQW1vdW50IgoJZnJhbWVfZGlnIDAgLy8gb3JpZ2luYWxBbW91bnQ6IHVpbnQ2NAoJZnJhbWVfZGlnIDEgLy8gYW1vdW50OiB1aW50NjQKCS0KCWFwcF9sb2NhbF9wdXQKCXJldHN1YgoKLy8gY2xhaW1fYXNzZXQoYXNzZXQpdm9pZAphYmlfcm91dGVfY2xhaW1fYXNzZXQ6CgkvLyBhc3NldDogYXNzZXQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCXR4bmFzIEFzc2V0cwoKCS8vIGV4ZWN1dGUgY2xhaW1fYXNzZXQoYXNzZXQpdm9pZAoJY2FsbHN1YiBjbGFpbV9hc3NldAoJaW50IDEKCXJldHVybgoKLy8gY2xhaW1fYXNzZXQoYXNzZXQ6IEFzc2V0KTogdm9pZApjbGFpbV9hc3NldDoKCXByb3RvIDEgMAoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjEwMAoJLy8gYXNzZXJ0KGdsb2JhbHMubGF0ZXN0VGltZXN0YW1wID4gdGhpcy5hdWN0aW9uRW5kLnZhbHVlKQoJZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAoJYnl0ZSAweDYxNzU2Mzc0Njk2ZjZlNDU2ZTY0IC8vICJhdWN0aW9uRW5kIgoJYXBwX2dsb2JhbF9nZXQKCT4KCWFzc2VydAoKCS8vIFNlbmQgQVNBIHRvIHByZXZpb3VzIGJpZGRlcgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6MTAzCgkvLyBzZW5kQXNzZXRUcmFuc2Zlcih7CgkvLyAgICAgICBhc3NldFJlY2VpdmVyOiB0aGlzLnByZXZpb3VzQmlkZGVyLnZhbHVlLAoJLy8gICAgICAgeGZlckFzc2V0OiBhc3NldCwKCS8vICAgICAgIGFzc2V0QW1vdW50OiB0aGlzLmFzYUFtdC52YWx1ZSwKCS8vICAgICAgIGFzc2V0Q2xvc2VUbzogdGhpcy5wcmV2aW91c0JpZGRlci52YWx1ZSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGF4ZmVyCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6MTA0CgkvLyBhc3NldFJlY2VpdmVyOiB0aGlzLnByZXZpb3VzQmlkZGVyLnZhbHVlCglieXRlIDB4NzA3MjY1NzY2OTZmNzU3MzQyNjk2NDY0NjU3MiAvLyAicHJldmlvdXNCaWRkZXIiCglhcHBfZ2xvYmFsX2dldAoJaXR4bl9maWVsZCBBc3NldFJlY2VpdmVyCgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6MTA1CgkvLyB4ZmVyQXNzZXQ6IGFzc2V0CglmcmFtZV9kaWcgLTEgLy8gYXNzZXQ6IEFzc2V0CglpdHhuX2ZpZWxkIFhmZXJBc3NldAoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjEwNgoJLy8gYXNzZXRBbW91bnQ6IHRoaXMuYXNhQW10LnZhbHVlCglieXRlIDB4NjE3MzYxNDE2ZDc0IC8vICJhc2FBbXQiCglhcHBfZ2xvYmFsX2dldAoJaXR4bl9maWVsZCBBc3NldEFtb3VudAoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjEwNwoJLy8gYXNzZXRDbG9zZVRvOiB0aGlzLnByZXZpb3VzQmlkZGVyLnZhbHVlCglieXRlIDB4NzA3MjY1NzY2OTZmNzU3MzQyNjk2NDY0NjU3MiAvLyAicHJldmlvdXNCaWRkZXIiCglhcHBfZ2xvYmFsX2dldAoJaXR4bl9maWVsZCBBc3NldENsb3NlVG8KCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglyZXRzdWIKCi8vIGRlbGV0ZUFwcGxpY2F0aW9uKCl2b2lkCmFiaV9yb3V0ZV9kZWxldGVBcHBsaWNhdGlvbjoKCS8vIGV4ZWN1dGUgZGVsZXRlQXBwbGljYXRpb24oKXZvaWQKCWNhbGxzdWIgZGVsZXRlQXBwbGljYXRpb24KCWludCAxCglyZXR1cm4KCi8vIGRlbGV0ZUFwcGxpY2F0aW9uKCk6IHZvaWQKZGVsZXRlQXBwbGljYXRpb246Cglwcm90byAwIDAKCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czoxMTIKCS8vIHNlbmRQYXltZW50KHsKCS8vICAgICAgIHJlY2VpdmVyOiBnbG9iYWxzLmNyZWF0b3JBZGRyZXNzLAoJLy8gICAgICAgY2xvc2VSZW1haW5kZXJUbzogZ2xvYmFscy5jcmVhdG9yQWRkcmVzcywKCS8vICAgICAgIGFtb3VudDogMCwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IHBheQoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjExMwoJLy8gcmVjZWl2ZXI6IGdsb2JhbHMuY3JlYXRvckFkZHJlc3MKCWdsb2JhbCBDcmVhdG9yQWRkcmVzcwoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjExNAoJLy8gY2xvc2VSZW1haW5kZXJUbzogZ2xvYmFscy5jcmVhdG9yQWRkcmVzcwoJZ2xvYmFsIENyZWF0b3JBZGRyZXNzCglpdHhuX2ZpZWxkIENsb3NlUmVtYWluZGVyVG8KCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czoxMTUKCS8vIGFtb3VudDogMAoJaW50IDAKCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJvcHRJbnRvQXNzZXQoYXNzZXQpdm9pZCIKCW1ldGhvZCAic3RhcnRBdWN0aW9uKHVpbnQ2NCx1aW50NjQsYXhmZXIpdm9pZCIKCW1ldGhvZCAiYmlkKHBheSl2b2lkIgoJbWV0aG9kICJjbGFpbUJpZHMoKXZvaWQiCgltZXRob2QgImNsYWltX2Fzc2V0KGFzc2V0KXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfb3B0SW50b0Fzc2V0IGFiaV9yb3V0ZV9zdGFydEF1Y3Rpb24gYWJpX3JvdXRlX2JpZCBhYmlfcm91dGVfY2xhaW1CaWRzIGFiaV9yb3V0ZV9jbGFpbV9hc3NldAoJZXJyCgpjYWxsX09wdEluOgoJbWV0aG9kICJvcHRJblRvQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfb3B0SW5Ub0FwcGxpY2F0aW9uCgllcnIKCmNhbGxfRGVsZXRlQXBwbGljYXRpb246CgltZXRob2QgImRlbGV0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2RlbGV0ZUFwcGxpY2F0aW9uCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpjYWxsX09wdEluICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjYWxsX0RlbGV0ZUFwcGxpY2F0aW9uICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIGNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CgkvLyBleGVjdXRlIGNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkCgljYWxsc3ViIGNyZWF0ZUFwcGxpY2F0aW9uCglpbnQgMQoJcmV0dXJuCgovLyBjcmVhdGVBcHBsaWNhdGlvbigpOiB2b2lkCmNyZWF0ZUFwcGxpY2F0aW9uOgoJcHJvdG8gMCAwCgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6MTgKCS8vIHRoaXMuYXVjdGlvbkVuZC52YWx1ZSA9IDAKCWJ5dGUgMHg2MTc1NjM3NDY5NmY2ZTQ1NmU2NCAvLyAiYXVjdGlvbkVuZCIKCWludCAwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjE5CgkvLyB0aGlzLnByZXZpb3VzQmlkLnZhbHVlID0gMAoJYnl0ZSAweDcwNzI2NTc2Njk2Zjc1NzM0MjY5NjQgLy8gInByZXZpb3VzQmlkIgoJaW50IDAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6MjAKCS8vIHRoaXMuYXNhQW10LnZhbHVlID0gMAoJYnl0ZSAweDYxNzM2MTQxNmQ3NCAvLyAiYXNhQW10IgoJaW50IDAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6MjEKCS8vIHRoaXMuYXNhLnZhbHVlID0gQXNzZXQuemVyb0luZGV4CglieXRlIDB4NjE3MzYxIC8vICJhc2EiCglpbnQgMAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czoyNAoJLy8gdGhpcy5wcmV2aW91c0JpZGRlci52YWx1ZSA9IGdsb2JhbHMuemVyb0FkZHJlc3MKCWJ5dGUgMHg3MDcyNjU3NjY5NmY3NTczNDI2OTY0NjQ2NTcyIC8vICJwcmV2aW91c0JpZGRlciIKCWdsb2JhbCBaZXJvQWRkcmVzcwoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gb3B0SW50b0Fzc2V0KGFzc2V0KXZvaWQKKmFiaV9yb3V0ZV9vcHRJbnRvQXNzZXQ6CgkvLyBhc3NldDogYXNzZXQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCXR4bmFzIEFzc2V0cwoKCS8vIGV4ZWN1dGUgb3B0SW50b0Fzc2V0KGFzc2V0KXZvaWQKCWNhbGxzdWIgb3B0SW50b0Fzc2V0CglpbnQgMQoJcmV0dXJuCgovLyBvcHRJbnRvQXNzZXQoYXNzZXQ6IEFzc2V0KTogdm9pZApvcHRJbnRvQXNzZXQ6Cglwcm90byAxIDAKCgkvLyBPbmx5IGFsbG93IGFwcCBjcmVhdG9yIHRvIG9wdCB0aGUgYXBwIGFjY291bnQgaW50byBhIEFTQQoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6MjkKCS8vIHZlcmlmeUFwcENhbGxUeG4odGhpcy50eG4sIHsgc2VuZGVyOiBnbG9iYWxzLmNyZWF0b3JBZGRyZXNzIH0pCgkvLyB2ZXJpZnkgc2VuZGVyCgl0eG4gU2VuZGVyCglnbG9iYWwgQ3JlYXRvckFkZHJlc3MKCT09Cglhc3NlcnQKCgkvLyBWZXJpZnkgYSBBU0EgaGFzbid0IGFscmVhZHkgYmVlbiBvcHRlZCBpbnRvCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czozMgoJLy8gYXNzZXJ0KHRoaXMuYXNhLnZhbHVlID09PSBBc3NldC56ZXJvSW5kZXgpCglieXRlIDB4NjE3MzYxIC8vICJhc2EiCglhcHBfZ2xvYmFsX2dldAoJaW50IDAKCT09Cglhc3NlcnQKCgkvLyBTYXZlIEFTQSBJRCBpbiBnbG9iYWwgc3RhdGUKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjM1CgkvLyB0aGlzLmFzYS52YWx1ZSA9IGFzc2V0CglieXRlIDB4NjE3MzYxIC8vICJhc2EiCglmcmFtZV9kaWcgLTEgLy8gYXNzZXQ6IEFzc2V0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIFN1Ym1pdCBvcHQtaW4gdHJhbnNhY3Rpb246IDAgYXNzZXQgdHJhbnNmZXIgdG8gc2VsZgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6MzgKCS8vIHNlbmRBc3NldFRyYW5zZmVyKHsKCS8vICAgICAgIGFzc2V0UmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICB4ZmVyQXNzZXQ6IGFzc2V0LAoJLy8gICAgICAgYXNzZXRBbW91bnQ6IDAsCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludCBheGZlcgoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjM5CgkvLyBhc3NldFJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBBc3NldFJlY2VpdmVyCgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6NDAKCS8vIHhmZXJBc3NldDogYXNzZXQKCWZyYW1lX2RpZyAtMSAvLyBhc3NldDogQXNzZXQKCWl0eG5fZmllbGQgWGZlckFzc2V0CgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6NDEKCS8vIGFzc2V0QW1vdW50OiAwCglpbnQgMAoJaXR4bl9maWVsZCBBc3NldEFtb3VudAoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gc3RhcnRBdWN0aW9uKHVpbnQ2NCx1aW50NjQsYXhmZXIpdm9pZAoqYWJpX3JvdXRlX3N0YXJ0QXVjdGlvbjoKCS8vIGF4ZmVyOiBheGZlcgoJdHhuIEdyb3VwSW5kZXgKCWludCAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgYXhmZXIKCT09Cglhc3NlcnQKCgkvLyBsZW5ndGg6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIHN0YXJ0aW5nUHJpY2U6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgc3RhcnRBdWN0aW9uKHVpbnQ2NCx1aW50NjQsYXhmZXIpdm9pZAoJY2FsbHN1YiBzdGFydEF1Y3Rpb24KCWludCAxCglyZXR1cm4KCi8vIHN0YXJ0QXVjdGlvbihzdGFydGluZ1ByaWNlOiB1aW50NjQsIGxlbmd0aDogdWludDY0LCBheGZlcjogQXNzZXRUcmFuc2ZlclR4bik6IHZvaWQKc3RhcnRBdWN0aW9uOgoJcHJvdG8gMyAwCgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6NDYKCS8vIHZlcmlmeUFwcENhbGxUeG4odGhpcy50eG4sIHsgc2VuZGVyOiBnbG9iYWxzLmNyZWF0b3JBZGRyZXNzIH0pCgkvLyB2ZXJpZnkgc2VuZGVyCgl0eG4gU2VuZGVyCglnbG9iYWwgQ3JlYXRvckFkZHJlc3MKCT09Cglhc3NlcnQKCgkvLyBFbnN1cmUgdGhlIGF1Y3Rpb24gaGFzbid0IGFscmVhZHkgYmVlbiBzdGFydGVkCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czo0OQoJLy8gYXNzZXJ0KHRoaXMuYXVjdGlvbkVuZC52YWx1ZSA9PT0gMCkKCWJ5dGUgMHg2MTc1NjM3NDY5NmY2ZTQ1NmU2NCAvLyAiYXVjdGlvbkVuZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMAoJPT0KCWFzc2VydAoKCS8vIFZlcmlmeSBheGZlcgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6NTIKCS8vIHZlcmlmeUFzc2V0VHJhbnNmZXJUeG4oYXhmZXIsIHsgYXNzZXRSZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcyB9KQoJLy8gdmVyaWZ5IGFzc2V0UmVjZWl2ZXIKCWZyYW1lX2RpZyAtMyAvLyBheGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09Cglhc3NlcnQKCgkvLyBTZXQgZ2xvYmFsIHN0YXRlCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czo1NQoJLy8gdGhpcy5hc2FBbXQudmFsdWUgPSBheGZlci5hc3NldEFtb3VudAoJYnl0ZSAweDYxNzM2MTQxNmQ3NCAvLyAiYXNhQW10IgoJZnJhbWVfZGlnIC0zIC8vIGF4ZmVyOiBBc3NldFRyYW5zZmVyVHhuCglndHhucyBBc3NldEFtb3VudAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czo1NgoJLy8gdGhpcy5hdWN0aW9uRW5kLnZhbHVlID0gZ2xvYmFscy5sYXRlc3RUaW1lc3RhbXAgKyBsZW5ndGgKCWJ5dGUgMHg2MTc1NjM3NDY5NmY2ZTQ1NmU2NCAvLyAiYXVjdGlvbkVuZCIKCWdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKCWZyYW1lX2RpZyAtMiAvLyBsZW5ndGg6IHVpbnQ2NAoJKwoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czo1NwoJLy8gdGhpcy5wcmV2aW91c0JpZC52YWx1ZSA9IHN0YXJ0aW5nUHJpY2UKCWJ5dGUgMHg3MDcyNjU3NjY5NmY3NTczNDI2OTY0IC8vICJwcmV2aW91c0JpZCIKCWZyYW1lX2RpZyAtMSAvLyBzdGFydGluZ1ByaWNlOiB1aW50NjQKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIHBheShyZWNlaXZlcjogQWNjb3VudCwgYW1vdW50OiB1aW50NjQpOiB2b2lkCnBheToKCXByb3RvIDIgMAoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjYxCgkvLyBzZW5kUGF5bWVudCh7CgkvLyAgICAgICByZWNlaXZlcjogcmVjZWl2ZXIsCgkvLyAgICAgICBhbW91bnQ6IGFtb3VudCwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IHBheQoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjYyCgkvLyByZWNlaXZlcjogcmVjZWl2ZXIKCWZyYW1lX2RpZyAtMSAvLyByZWNlaXZlcjogQWNjb3VudAoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjYzCgkvLyBhbW91bnQ6IGFtb3VudAoJZnJhbWVfZGlnIC0yIC8vIGFtb3VudDogdWludDY0CglpdHhuX2ZpZWxkIEFtb3VudAoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gb3B0SW5Ub0FwcGxpY2F0aW9uKCl2b2lkCiphYmlfcm91dGVfb3B0SW5Ub0FwcGxpY2F0aW9uOgoJLy8gZXhlY3V0ZSBvcHRJblRvQXBwbGljYXRpb24oKXZvaWQKCWNhbGxzdWIgb3B0SW5Ub0FwcGxpY2F0aW9uCglpbnQgMQoJcmV0dXJuCgovLyBvcHRJblRvQXBwbGljYXRpb24oKTogdm9pZApvcHRJblRvQXBwbGljYXRpb246Cglwcm90byAwIDAKCXJldHN1YgoKLy8gYmlkKHBheSl2b2lkCiphYmlfcm91dGVfYmlkOgoJLy8gcGF5bWVudDogcGF5Cgl0eG4gR3JvdXBJbmRleAoJaW50IDEKCS0KCWR1cAoJZ3R4bnMgVHlwZUVudW0KCWludCBwYXkKCT09Cglhc3NlcnQKCgkvLyBleGVjdXRlIGJpZChwYXkpdm9pZAoJY2FsbHN1YiBiaWQKCWludCAxCglyZXR1cm4KCi8vIGJpZChwYXltZW50OiBQYXlUeG4pOiB2b2lkCmJpZDoKCXByb3RvIDEgMAoKCS8vIEVuc3VyZSBhdWN0aW9uIGhhc24ndCBlbmRlZAoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6NzIKCS8vIGFzc2VydChnbG9iYWxzLmxhdGVzdFRpbWVzdGFtcCA8IHRoaXMuYXVjdGlvbkVuZC52YWx1ZSkKCWdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKCWJ5dGUgMHg2MTc1NjM3NDY5NmY2ZTQ1NmU2NCAvLyAiYXVjdGlvbkVuZCIKCWFwcF9nbG9iYWxfZ2V0Cgk8Cglhc3NlcnQKCgkvLyBWZXJpZnkgcGF5bWVudCB0cmFuc2FjdGlvbgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6NzUKCS8vIHZlcmlmeVBheVR4bihwYXltZW50LCB7CgkvLyAgICAgICBzZW5kZXI6IHRoaXMudHhuLnNlbmRlciwKCS8vICAgICAgIGFtb3VudDogeyBncmVhdGVyVGhhbjogdGhpcy5wcmV2aW91c0JpZC52YWx1ZSB9LAoJLy8gICAgIH0pCgkvLyB2ZXJpZnkgc2VuZGVyCglmcmFtZV9kaWcgLTEgLy8gcGF5bWVudDogUGF5VHhuCglndHhucyBTZW5kZXIKCXR4biBTZW5kZXIKCT09Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYW1vdW50CglmcmFtZV9kaWcgLTEgLy8gcGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWJ5dGUgMHg3MDcyNjU3NjY5NmY3NTczNDI2OTY0IC8vICJwcmV2aW91c0JpZCIKCWFwcF9nbG9iYWxfZ2V0Cgk+Cglhc3NlcnQKCgkvLyBTZXQgZ2xvYmFsIHN0YXRlCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czo4MQoJLy8gdGhpcy5wcmV2aW91c0JpZC52YWx1ZSA9IHBheW1lbnQuYW1vdW50CglieXRlIDB4NzA3MjY1NzY2OTZmNzU3MzQyNjk2NCAvLyAicHJldmlvdXNCaWQiCglmcmFtZV9kaWcgLTEgLy8gcGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6ODIKCS8vIHRoaXMucHJldmlvdXNCaWRkZXIudmFsdWUgPSBwYXltZW50LnNlbmRlcgoJYnl0ZSAweDcwNzI2NTc2Njk2Zjc1NzM0MjY5NjQ2NDY1NzIgLy8gInByZXZpb3VzQmlkZGVyIgoJZnJhbWVfZGlnIC0xIC8vIHBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgU2VuZGVyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIFVwZGF0ZSBjbGFpbWFibGUgYW1vdW50CgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czo4NQoJLy8gdGhpcy5jbGFpbWFibGVBbW91bnQodGhpcy50eG4uc2VuZGVyKS52YWx1ZSA9IHBheW1lbnQuYW1vdW50Cgl0eG4gU2VuZGVyCglieXRlIDB4NjM2YzYxNjk2ZDYxNjI2YzY1NDE2ZDZmNzU2ZTc0IC8vICJjbGFpbWFibGVBbW91bnQiCglmcmFtZV9kaWcgLTEgLy8gcGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWFwcF9sb2NhbF9wdXQKCXJldHN1YgoKLy8gY2xhaW1CaWRzKCl2b2lkCiphYmlfcm91dGVfY2xhaW1CaWRzOgoJLy8gZXhlY3V0ZSBjbGFpbUJpZHMoKXZvaWQKCWNhbGxzdWIgY2xhaW1CaWRzCglpbnQgMQoJcmV0dXJuCgovLyBjbGFpbUJpZHMoKTogdm9pZApjbGFpbUJpZHM6Cglwcm90byAwIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6ODkKCS8vIG9yaWdpbmFsQW1vdW50ID0gdGhpcy5jbGFpbWFibGVBbW91bnQodGhpcy50eG4uc2VuZGVyKS52YWx1ZQoJdHhuIFNlbmRlcgoJYnl0ZSAweDYzNmM2MTY5NmQ2MTYyNmM2NTQxNmQ2Zjc1NmU3NCAvLyAiY2xhaW1hYmxlQW1vdW50IgoJYXBwX2xvY2FsX2dldAoJZnJhbWVfYnVyeSAwIC8vIG9yaWdpbmFsQW1vdW50OiB1aW50NjQKCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czo5MAoJLy8gYW1vdW50ID0gb3JpZ2luYWxBbW91bnQKCWZyYW1lX2RpZyAwIC8vIG9yaWdpbmFsQW1vdW50OiB1aW50NjQKCWZyYW1lX2J1cnkgMSAvLyBhbW91bnQ6IHVpbnQ2NAoKCS8vIHN1YnRyYWN0IHByZXZpb3VzIGJpZCBpZiBzZW5kZXIgaXMgcHJldmlvdXMgYmlkZGVyCgkvLyAqaWYwX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6OTMKCS8vIHRoaXMudHhuLnNlbmRlciA9PT0gdGhpcy5wcmV2aW91c0JpZGRlci52YWx1ZQoJdHhuIFNlbmRlcgoJYnl0ZSAweDcwNzI2NTc2Njk2Zjc1NzM0MjY5NjQ2NDY1NzIgLy8gInByZXZpb3VzQmlkZGVyIgoJYXBwX2dsb2JhbF9nZXQKCT09CglieiAqaWYwX2VuZAoKCS8vICppZjBfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6OTMKCS8vIGFtb3VudCA9IGFtb3VudCAtIHRoaXMucHJldmlvdXNCaWQudmFsdWUKCWZyYW1lX2RpZyAxIC8vIGFtb3VudDogdWludDY0CglieXRlIDB4NzA3MjY1NzY2OTZmNzU3MzQyNjk2NCAvLyAicHJldmlvdXNCaWQiCglhcHBfZ2xvYmFsX2dldAoJLQoJZnJhbWVfYnVyeSAxIC8vIGFtb3VudDogdWludDY0CgoqaWYwX2VuZDoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjk1CgkvLyB0aGlzLnBheSh0aGlzLnR4bi5zZW5kZXIsIGFtb3VudCkKCWZyYW1lX2RpZyAxIC8vIGFtb3VudDogdWludDY0Cgl0eG4gU2VuZGVyCgljYWxsc3ViIHBheQoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjk2CgkvLyB0aGlzLmNsYWltYWJsZUFtb3VudCh0aGlzLnR4bi5zZW5kZXIpLnZhbHVlID0gb3JpZ2luYWxBbW91bnQgLSBhbW91bnQKCXR4biBTZW5kZXIKCWJ5dGUgMHg2MzZjNjE2OTZkNjE2MjZjNjU0MTZkNmY3NTZlNzQgLy8gImNsYWltYWJsZUFtb3VudCIKCWZyYW1lX2RpZyAwIC8vIG9yaWdpbmFsQW1vdW50OiB1aW50NjQKCWZyYW1lX2RpZyAxIC8vIGFtb3VudDogdWludDY0CgktCglhcHBfbG9jYWxfcHV0CglyZXRzdWIKCi8vIGNsYWltX2Fzc2V0KGFzc2V0KXZvaWQKKmFiaV9yb3V0ZV9jbGFpbV9hc3NldDoKCS8vIGFzc2V0OiBhc3NldAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoJdHhuYXMgQXNzZXRzCgoJLy8gZXhlY3V0ZSBjbGFpbV9hc3NldChhc3NldCl2b2lkCgljYWxsc3ViIGNsYWltX2Fzc2V0CglpbnQgMQoJcmV0dXJuCgovLyBjbGFpbV9hc3NldChhc3NldDogQXNzZXQpOiB2b2lkCmNsYWltX2Fzc2V0OgoJcHJvdG8gMSAwCgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6MTAwCgkvLyBhc3NlcnQoZ2xvYmFscy5sYXRlc3RUaW1lc3RhbXAgPiB0aGlzLmF1Y3Rpb25FbmQudmFsdWUpCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCglieXRlIDB4NjE3NTYzNzQ2OTZmNmU0NTZlNjQgLy8gImF1Y3Rpb25FbmQiCglhcHBfZ2xvYmFsX2dldAoJPgoJYXNzZXJ0CgoJLy8gU2VuZCBBU0EgdG8gcHJldmlvdXMgYmlkZGVyCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czoxMDMKCS8vIHNlbmRBc3NldFRyYW5zZmVyKHsKCS8vICAgICAgIGFzc2V0UmVjZWl2ZXI6IHRoaXMucHJldmlvdXNCaWRkZXIudmFsdWUsCgkvLyAgICAgICB4ZmVyQXNzZXQ6IGFzc2V0LAoJLy8gICAgICAgYXNzZXRBbW91bnQ6IHRoaXMuYXNhQW10LnZhbHVlLAoJLy8gICAgICAgYXNzZXRDbG9zZVRvOiB0aGlzLnByZXZpb3VzQmlkZGVyLnZhbHVlLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnQgYXhmZXIKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czoxMDQKCS8vIGFzc2V0UmVjZWl2ZXI6IHRoaXMucHJldmlvdXNCaWRkZXIudmFsdWUKCWJ5dGUgMHg3MDcyNjU3NjY5NmY3NTczNDI2OTY0NjQ2NTcyIC8vICJwcmV2aW91c0JpZGRlciIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIEFzc2V0UmVjZWl2ZXIKCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czoxMDUKCS8vIHhmZXJBc3NldDogYXNzZXQKCWZyYW1lX2RpZyAtMSAvLyBhc3NldDogQXNzZXQKCWl0eG5fZmllbGQgWGZlckFzc2V0CgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6MTA2CgkvLyBhc3NldEFtb3VudDogdGhpcy5hc2FBbXQudmFsdWUKCWJ5dGUgMHg2MTczNjE0MTZkNzQgLy8gImFzYUFtdCIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIEFzc2V0QW1vdW50CgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6MTA3CgkvLyBhc3NldENsb3NlVG86IHRoaXMucHJldmlvdXNCaWRkZXIudmFsdWUKCWJ5dGUgMHg3MDcyNjU3NjY5NmY3NTczNDI2OTY0NjQ2NTcyIC8vICJwcmV2aW91c0JpZGRlciIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIEFzc2V0Q2xvc2VUbwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gZGVsZXRlQXBwbGljYXRpb24oKXZvaWQKKmFiaV9yb3V0ZV9kZWxldGVBcHBsaWNhdGlvbjoKCS8vIGV4ZWN1dGUgZGVsZXRlQXBwbGljYXRpb24oKXZvaWQKCWNhbGxzdWIgZGVsZXRlQXBwbGljYXRpb24KCWludCAxCglyZXR1cm4KCi8vIGRlbGV0ZUFwcGxpY2F0aW9uKCk6IHZvaWQKZGVsZXRlQXBwbGljYXRpb246Cglwcm90byAwIDAKCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czoxMTIKCS8vIHNlbmRQYXltZW50KHsKCS8vICAgICAgIHJlY2VpdmVyOiBnbG9iYWxzLmNyZWF0b3JBZGRyZXNzLAoJLy8gICAgICAgY2xvc2VSZW1haW5kZXJUbzogZ2xvYmFscy5jcmVhdG9yQWRkcmVzcywKCS8vICAgICAgIGFtb3VudDogMCwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IHBheQoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjExMwoJLy8gcmVjZWl2ZXI6IGdsb2JhbHMuY3JlYXRvckFkZHJlc3MKCWdsb2JhbCBDcmVhdG9yQWRkcmVzcwoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjExNAoJLy8gY2xvc2VSZW1haW5kZXJUbzogZ2xvYmFscy5jcmVhdG9yQWRkcmVzcwoJZ2xvYmFsIENyZWF0b3JBZGRyZXNzCglpdHhuX2ZpZWxkIENsb3NlUmVtYWluZGVyVG8KCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czoxMTUKCS8vIGFtb3VudDogMAoJaW50IDAKCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJvcHRJbnRvQXNzZXQoYXNzZXQpdm9pZCIKCW1ldGhvZCAic3RhcnRBdWN0aW9uKHVpbnQ2NCx1aW50NjQsYXhmZXIpdm9pZCIKCW1ldGhvZCAiYmlkKHBheSl2b2lkIgoJbWV0aG9kICJjbGFpbUJpZHMoKXZvaWQiCgltZXRob2QgImNsYWltX2Fzc2V0KGFzc2V0KXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX29wdEludG9Bc3NldCAqYWJpX3JvdXRlX3N0YXJ0QXVjdGlvbiAqYWJpX3JvdXRlX2JpZCAqYWJpX3JvdXRlX2NsYWltQmlkcyAqYWJpX3JvdXRlX2NsYWltX2Fzc2V0CgllcnIKCipjYWxsX09wdEluOgoJbWV0aG9kICJvcHRJblRvQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX29wdEluVG9BcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9EZWxldGVBcHBsaWNhdGlvbjoKCW1ldGhvZCAiZGVsZXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2RlbGV0ZUFwcGxpY2F0aW9uCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/examples/big_box/artifacts/BigBox.approval.teal b/examples/big_box/artifacts/BigBox.approval.teal index cd47e52d2..dd7cbcffd 100644 --- a/examples/big_box/artifacts/BigBox.approval.teal +++ b/examples/big_box/artifacts/BigBox.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // startUpload(string,uint64,uint64,pay)void -abi_route_startUpload: +*abi_route_startUpload: // mbrPayment: pay txn GroupIndex int 1 @@ -170,7 +170,7 @@ startUpload: retsub // upload(string,uint64,uint64,byte[])void -abi_route_upload: +*abi_route_upload: // data: byte[] txna ApplicationArgs 4 extract 2 0 @@ -233,7 +233,7 @@ upload: frame_dig -2 // boxIndex: uint64 <= dup - bz skip_and0 + bz *skip_and0 frame_dig -2 // boxIndex: uint64 frame_dig -1 // dataIdentifier: string int 8 // headOffset @@ -243,18 +243,18 @@ upload: <= && -skip_and0: +*skip_and0: assert - // if0_condition + // *if0_condition // examples/big_box/big_box.algo.ts:80 // offset === 0 frame_dig -3 // offset: uint64 int 0 == - bz if0_end + bz *if0_end - // if0_consequent + // *if0_consequent // examples/big_box/big_box.algo.ts:81 // this.dataBoxes(boxIndex).create(boxIndex === metadata.end ? metadata.endSize : MAX_BOX_SIZE) frame_dig -2 // boxIndex: uint64 @@ -266,22 +266,22 @@ skip_and0: box_extract btoi == - bz ternary0_false + bz *ternary0_false frame_dig -1 // dataIdentifier: string int 17 // headOffset int 8 box_extract btoi - b ternary0_end + b *ternary0_end -ternary0_false: +*ternary0_false: int 32768 -ternary0_end: +*ternary0_end: box_create pop -if0_end: +*if0_end: // examples/big_box/big_box.algo.ts:84 // this.dataBoxes(boxIndex).replace(offset, data) frame_dig -2 // boxIndex: uint64 @@ -292,7 +292,7 @@ if0_end: retsub // setStatus(string,uint8)void -abi_route_setStatus: +*abi_route_setStatus: // status: uint8 txna ApplicationArgs 2 dup @@ -339,21 +339,21 @@ setStatus: int 1 == dup - bnz skip_or0 + bnz *skip_or0 frame_dig -2 // status: uint<8> int 2 == || -skip_or0: +*skip_or0: dup - bnz skip_or1 + bnz *skip_or1 frame_dig -2 // status: uint<8> int 0 == || -skip_or1: +*skip_or1: assert // examples/big_box/big_box.algo.ts:98 @@ -374,20 +374,20 @@ skip_or1: box_replace retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "startUpload(string,uint64,uint64,pay)void" method "upload(string,uint64,uint64,byte[])void" method "setStatus(string,uint8)void" txna ApplicationArgs 0 - match abi_route_startUpload abi_route_upload abi_route_setStatus + match *abi_route_startUpload *abi_route_upload *abi_route_setStatus err \ No newline at end of file diff --git a/examples/big_box/artifacts/BigBox.arc32.json b/examples/big_box/artifacts/BigBox.arc32.json index 15dbb22d7..daa86a040 100644 --- a/examples/big_box/artifacts/BigBox.arc32.json +++ b/examples/big_box/artifacts/BigBox.arc32.json @@ -54,7 +54,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzdGFydFVwbG9hZChzdHJpbmcsdWludDY0LHVpbnQ2NCxwYXkpdm9pZAphYmlfcm91dGVfc3RhcnRVcGxvYWQ6CgkvLyBtYnJQYXltZW50OiBwYXkKCXR4biBHcm91cEluZGV4CglpbnQgMQoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJaW50IHBheQoJPT0KCWFzc2VydAoKCS8vIGVuZEJveFNpemU6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJYnRvaQoKCS8vIG51bUJveGVzOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBkYXRhSWRlbnRpZmllcjogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgc3RhcnRVcGxvYWQoc3RyaW5nLHVpbnQ2NCx1aW50NjQscGF5KXZvaWQKCWNhbGxzdWIgc3RhcnRVcGxvYWQKCWludCAxCglyZXR1cm4KCi8vIHN0YXJ0VXBsb2FkKGRhdGFJZGVudGlmaWVyOiBzdHJpbmcsIG51bUJveGVzOiB1aW50NjQsIGVuZEJveFNpemU6IHVpbnQ2NCwgbWJyUGF5bWVudDogUGF5VHhuKTogdm9pZAovLwovLwovLyBBbGxvY2F0ZSBib3hlcyB0byBiZWdpbiBkYXRhIHVwbG9hZCBwcm9jZXNzCi8vCi8vIEBwYXJhbSBkYXRhSWRlbnRpZmllciBUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBkYXRhCi8vIEBwYXJhbSBudW1Cb3hlcyBUaGUgbnVtYmVyIG9mIGJveGVzIHRoYXQgdGhlIGRhdGEgd2lsbCB0YWtlIHVwCi8vIEBwYXJhbSBlbmRCb3hTaXplIFRoZSBzaXplIG9mIHRoZSBsYXN0IGJveAovLyBAcGFyYW0gbWJyUGF5bWVudCBQYXltZW50IGZyb20gdGhlIHVwbG9hZGVyIHRvIGNvdmVyIHRoZSBib3ggTUJSCnN0YXJ0VXBsb2FkOgoJcHJvdG8gNCAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gMwoKCS8vIGV4YW1wbGVzL2JpZ19ib3gvYmlnX2JveC5hbGdvLnRzOjQxCgkvLyBzdGFydEJveCA9IHRoaXMuY3VycmVudEluZGV4LnZhbHVlCglieXRlIDB4NjM3NTcyNzI2NTZlNzQ0OTZlNjQ2NTc4IC8vICJjdXJyZW50SW5kZXgiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfYnVyeSAwIC8vIHN0YXJ0Qm94OiB1aW50NjQKCgkvLyBleGFtcGxlcy9iaWdfYm94L2JpZ19ib3guYWxnby50czo0MgoJLy8gZW5kQm94ID0gc3RhcnRCb3ggKyBudW1Cb3hlcyAtIDEKCWZyYW1lX2RpZyAwIC8vIHN0YXJ0Qm94OiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBudW1Cb3hlczogdWludDY0CgkrCglpbnQgMQoJLQoJZnJhbWVfYnVyeSAxIC8vIGVuZEJveDogdWludDY0CgoJLy8gZXhhbXBsZXMvYmlnX2JveC9iaWdfYm94LmFsZ28udHM6NDQKCS8vIG1ldGFkYXRhOiBNZXRhZGF0YSA9IHsKCS8vICAgICAgIHN0YXJ0OiBzdGFydEJveCwKCS8vICAgICAgIGVuZDogZW5kQm94LAoJLy8gICAgICAgc3RhdHVzOiBJTl9QUk9HUkVTUywKCS8vICAgICAgIGVuZFNpemU6IGVuZEJveFNpemUsCgkvLyAgICAgfQoJZnJhbWVfZGlnIDAgLy8gc3RhcnRCb3g6IHVpbnQ2NAoJaXRvYgoJZnJhbWVfZGlnIDEgLy8gZW5kQm94OiB1aW50NjQKCWl0b2IKCWNvbmNhdAoJYnl0ZSAweDAwCgljb25jYXQKCWZyYW1lX2RpZyAtMyAvLyBlbmRCb3hTaXplOiB1aW50NjQKCWl0b2IKCWNvbmNhdAoJZnJhbWVfYnVyeSAyIC8vIG1ldGFkYXRhOiBNZXRhZGF0YQoKCS8vIGV4YW1wbGVzL2JpZ19ib3gvYmlnX2JveC5hbGdvLnRzOjUxCgkvLyBhc3NlcnQoIXRoaXMubWV0YWRhdGEoZGF0YUlkZW50aWZpZXIpLmV4aXN0cykKCWZyYW1lX2RpZyAtMSAvLyBkYXRhSWRlbnRpZmllcjogc3RyaW5nCglib3hfbGVuCglzd2FwCglwb3AKCSEKCWFzc2VydAoKCS8vIGV4YW1wbGVzL2JpZ19ib3gvYmlnX2JveC5hbGdvLnRzOjUzCgkvLyB0aGlzLm1ldGFkYXRhKGRhdGFJZGVudGlmaWVyKS52YWx1ZSA9IG1ldGFkYXRhCglmcmFtZV9kaWcgLTEgLy8gZGF0YUlkZW50aWZpZXI6IHN0cmluZwoJZnJhbWVfZGlnIDIgLy8gbWV0YWRhdGE6IE1ldGFkYXRhCglib3hfcHV0CgoJLy8gZXhhbXBsZXMvYmlnX2JveC9iaWdfYm94LmFsZ28udHM6NTUKCS8vIHRoaXMuY3VycmVudEluZGV4LnZhbHVlID0gZW5kQm94ICsgMQoJYnl0ZSAweDYzNzU3MjcyNjU2ZTc0NDk2ZTY0NjU3OCAvLyAiY3VycmVudEluZGV4IgoJZnJhbWVfZGlnIDEgLy8gZW5kQm94OiB1aW50NjQKCWludCAxCgkrCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL2JpZ19ib3gvYmlnX2JveC5hbGdvLnRzOjU3CgkvLyB0b3RhbENvc3QgPQoJLy8gICAgICAgbnVtQm94ZXMgKiBDT1NUX1BFUl9CT1ggKyAvLyBjb3N0IG9mIGJveGVzCgkvLyAgICAgICAobnVtQm94ZXMgLSAxKSAqIE1BWF9CT1hfU0laRSAqIENPU1RfUEVSX0JZVEUgKyAvLyBjb3N0IG9mIGRhdGEKCS8vICAgICAgIG51bUJveGVzICogNjQgKiBDT1NUX1BFUl9CWVRFICsgLy8gY29zdCBvZiBrZXlzCgkvLyAgICAgICBlbmRCb3hTaXplICogQ09TVF9QRVJfQllURQoJZnJhbWVfZGlnIC0yIC8vIG51bUJveGVzOiB1aW50NjQKCWludCAyNTAwCgkqCglmcmFtZV9kaWcgLTIgLy8gbnVtQm94ZXM6IHVpbnQ2NAoJaW50IDEKCS0KCWludCAzMjc2OAoJKgoJaW50IDQwMAoJKgoJKwoJZnJhbWVfZGlnIC0yIC8vIG51bUJveGVzOiB1aW50NjQKCWludCA2NAoJKgoJaW50IDQwMAoJKgoJKwoJZnJhbWVfZGlnIC0zIC8vIGVuZEJveFNpemU6IHVpbnQ2NAoJaW50IDQwMAoJKgoJKwoJZnJhbWVfYnVyeSAzIC8vIHRvdGFsQ29zdDogdWludDY0CgoJLy8gZXhhbXBsZXMvYmlnX2JveC9iaWdfYm94LmFsZ28udHM6NjMKCS8vIHZlcmlmeVBheVR4bihtYnJQYXltZW50LCB7IHJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLCBhbW91bnQ6IHRvdGFsQ29zdCB9KQoJLy8gdmVyaWZ5IHJlY2VpdmVyCglmcmFtZV9kaWcgLTQgLy8gbWJyUGF5bWVudDogUGF5VHhuCglndHhucyBSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYW1vdW50CglmcmFtZV9kaWcgLTQgLy8gbWJyUGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWZyYW1lX2RpZyAzIC8vIHRvdGFsQ29zdDogdWludDY0Cgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIHVwbG9hZChzdHJpbmcsdWludDY0LHVpbnQ2NCxieXRlW10pdm9pZAphYmlfcm91dGVfdXBsb2FkOgoJLy8gZGF0YTogYnl0ZVtdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyA0CglleHRyYWN0IDIgMAoKCS8vIG9mZnNldDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglidG9pCgoJLy8gYm94SW5kZXg6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGRhdGFJZGVudGlmaWVyOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSB1cGxvYWQoc3RyaW5nLHVpbnQ2NCx1aW50NjQsYnl0ZVtdKXZvaWQKCWNhbGxzdWIgdXBsb2FkCglpbnQgMQoJcmV0dXJuCgovLyB1cGxvYWQoZGF0YUlkZW50aWZpZXI6IHN0cmluZywgYm94SW5kZXg6IHVpbnQ2NCwgb2Zmc2V0OiB1aW50NjQsIGRhdGE6IGJ5dGVzKTogdm9pZAovLwovLwovLyBVcGxvYWQgZGF0YSB0byBhIHNwZWNpZmljIG9mZnNldCBpbiBhIGJveAovLwovLyBAcGFyYW0gZGF0YUlkZW50aWZpZXIgVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgZGF0YQovLyBAcGFyYW0gYm94SW5kZXggVGhlIGluZGV4IG9mIHRoZSBib3ggdG8gdXBsb2FkIHRoZSBnaXZlbiBjaHVuayBvZiBkYXRhIHRvCi8vIEBwYXJhbSBvZmZzZXQgVGhlIG9mZnNldCB3aXRoaW4gdGhlIGJveCB0byBzdGFydCB3cml0aW5nIHRoZSBkYXRhCi8vIEBwYXJhbSBkYXRhIFRoZSBkYXRhIHRvIHdyaXRlCnVwbG9hZDoKCXByb3RvIDQgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gZXhhbXBsZXMvYmlnX2JveC9iaWdfYm94LmFsZ28udHM6NzYKCS8vIG1ldGFkYXRhID0gdGhpcy5tZXRhZGF0YShkYXRhSWRlbnRpZmllcikudmFsdWUKCWZyYW1lX2RpZyAtMSAvLyBkYXRhSWRlbnRpZmllcjogc3RyaW5nCglmcmFtZV9idXJ5IDAgLy8gc3RvcmFnZSBrZXkvL21ldGFkYXRhCgoJLy8gZXhhbXBsZXMvYmlnX2JveC9iaWdfYm94LmFsZ28udHM6NzcKCS8vIGFzc2VydChtZXRhZGF0YS5zdGF0dXMgPT09IElOX1BST0dSRVNTKQoJZnJhbWVfZGlnIC0xIC8vIGRhdGFJZGVudGlmaWVyOiBzdHJpbmcKCWludCAxNiAvLyBoZWFkT2Zmc2V0CglpbnQgMQoJYm94X2V4dHJhY3QKCWJ0b2kKCWludCAwCgk9PQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvYmlnX2JveC9iaWdfYm94LmFsZ28udHM6NzgKCS8vIGFzc2VydChtZXRhZGF0YS5zdGFydCA8PSBib3hJbmRleCAmJiBib3hJbmRleCA8PSBtZXRhZGF0YS5lbmQpCglmcmFtZV9kaWcgLTEgLy8gZGF0YUlkZW50aWZpZXI6IHN0cmluZwoJaW50IDAKCWludCA4Cglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfZGlnIC0yIC8vIGJveEluZGV4OiB1aW50NjQKCTw9CglkdXAKCWJ6IHNraXBfYW5kMAoJZnJhbWVfZGlnIC0yIC8vIGJveEluZGV4OiB1aW50NjQKCWZyYW1lX2RpZyAtMSAvLyBkYXRhSWRlbnRpZmllcjogc3RyaW5nCglpbnQgOCAvLyBoZWFkT2Zmc2V0CglpbnQgOAoJYm94X2V4dHJhY3QKCWJ0b2kKCTw9CgkmJgoKc2tpcF9hbmQwOgoJYXNzZXJ0CgoJLy8gaWYwX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvYmlnX2JveC9iaWdfYm94LmFsZ28udHM6ODAKCS8vIG9mZnNldCA9PT0gMAoJZnJhbWVfZGlnIC0zIC8vIG9mZnNldDogdWludDY0CglpbnQgMAoJPT0KCWJ6IGlmMF9lbmQKCgkvLyBpZjBfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvYmlnX2JveC9iaWdfYm94LmFsZ28udHM6ODEKCS8vIHRoaXMuZGF0YUJveGVzKGJveEluZGV4KS5jcmVhdGUoYm94SW5kZXggPT09IG1ldGFkYXRhLmVuZCA/IG1ldGFkYXRhLmVuZFNpemUgOiBNQVhfQk9YX1NJWkUpCglmcmFtZV9kaWcgLTIgLy8gYm94SW5kZXg6IHVpbnQ2NAoJaXRvYgoJZnJhbWVfZGlnIC0yIC8vIGJveEluZGV4OiB1aW50NjQKCWZyYW1lX2RpZyAtMSAvLyBkYXRhSWRlbnRpZmllcjogc3RyaW5nCglpbnQgOCAvLyBoZWFkT2Zmc2V0CglpbnQgOAoJYm94X2V4dHJhY3QKCWJ0b2kKCT09CglieiB0ZXJuYXJ5MF9mYWxzZQoJZnJhbWVfZGlnIC0xIC8vIGRhdGFJZGVudGlmaWVyOiBzdHJpbmcKCWludCAxNyAvLyBoZWFkT2Zmc2V0CglpbnQgOAoJYm94X2V4dHJhY3QKCWJ0b2kKCWIgdGVybmFyeTBfZW5kCgp0ZXJuYXJ5MF9mYWxzZToKCWludCAzMjc2OAoKdGVybmFyeTBfZW5kOgoJYm94X2NyZWF0ZQoJcG9wCgppZjBfZW5kOgoJLy8gZXhhbXBsZXMvYmlnX2JveC9iaWdfYm94LmFsZ28udHM6ODQKCS8vIHRoaXMuZGF0YUJveGVzKGJveEluZGV4KS5yZXBsYWNlKG9mZnNldCwgZGF0YSkKCWZyYW1lX2RpZyAtMiAvLyBib3hJbmRleDogdWludDY0CglpdG9iCglmcmFtZV9kaWcgLTMgLy8gb2Zmc2V0OiB1aW50NjQKCWZyYW1lX2RpZyAtNCAvLyBkYXRhOiBieXRlcwoJYm94X3JlcGxhY2UKCXJldHN1YgoKLy8gc2V0U3RhdHVzKHN0cmluZyx1aW50OCl2b2lkCmFiaV9yb3V0ZV9zZXRTdGF0dXM6CgkvLyBzdGF0dXM6IHVpbnQ4Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDEKCT09Cglhc3NlcnQKCWJ0b2kKCgkvLyBkYXRhSWRlbnRpZmllcjogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgc2V0U3RhdHVzKHN0cmluZyx1aW50OCl2b2lkCgljYWxsc3ViIHNldFN0YXR1cwoJaW50IDEKCXJldHVybgoKLy8gc2V0U3RhdHVzKGRhdGFJZGVudGlmaWVyOiBzdHJpbmcsIHN0YXR1czogdWludDw4Pik6IHZvaWQKLy8KLy8KLy8gU2V0IHRoZSBzdGF0dXMgb2YgdGhlIGRhdGEKLy8KLy8gQHBhcmFtIGRhdGFJZGVudGlmaWVyIFRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIGRhdGEKLy8gQHBhcmFtIHN0YXR1cyBUaGUgbmV3IHN0YXR1cyBmb3IgdGhlIGRhdGEKc2V0U3RhdHVzOgoJcHJvdG8gMiAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyBleGFtcGxlcy9iaWdfYm94L2JpZ19ib3guYWxnby50czo5NQoJLy8gY3VycmVudFN0YXR1cyA9IHRoaXMubWV0YWRhdGEoZGF0YUlkZW50aWZpZXIpLnZhbHVlLnN0YXR1cwoJZnJhbWVfZGlnIC0xIC8vIGRhdGFJZGVudGlmaWVyOiBzdHJpbmcKCWludCAxNiAvLyBoZWFkT2Zmc2V0CglpbnQgMQoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMCAvLyBjdXJyZW50U3RhdHVzOiB1aW50OAoKCS8vIGV4YW1wbGVzL2JpZ19ib3gvYmlnX2JveC5hbGdvLnRzOjk3CgkvLyBhc3NlcnQoc3RhdHVzID09PSBSRUFEWSB8fCBzdGF0dXMgPT09IElNTVVUQUJMRSB8fCBzdGF0dXMgPT09IElOX1BST0dSRVNTKQoJZnJhbWVfZGlnIC0yIC8vIHN0YXR1czogdWludDw4PgoJaW50IDEKCT09CglkdXAKCWJueiBza2lwX29yMAoJZnJhbWVfZGlnIC0yIC8vIHN0YXR1czogdWludDw4PgoJaW50IDIKCT09Cgl8fAoKc2tpcF9vcjA6CglkdXAKCWJueiBza2lwX29yMQoJZnJhbWVfZGlnIC0yIC8vIHN0YXR1czogdWludDw4PgoJaW50IDAKCT09Cgl8fAoKc2tpcF9vcjE6Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9iaWdfYm94L2JpZ19ib3guYWxnby50czo5OAoJLy8gYXNzZXJ0KGN1cnJlbnRTdGF0dXMgIT09IElNTVVUQUJMRSkKCWZyYW1lX2RpZyAwIC8vIGN1cnJlbnRTdGF0dXM6IHVpbnQ4CglpbnQgMgoJIT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2JpZ19ib3gvYmlnX2JveC5hbGdvLnRzOjEwMAoJLy8gdGhpcy5tZXRhZGF0YShkYXRhSWRlbnRpZmllcikudmFsdWUuc3RhdHVzID0gc3RhdHVzCglpbnQgMTYgLy8gaGVhZE9mZnNldAoJZnJhbWVfZGlnIC0yIC8vIHN0YXR1czogdWludDw4PgoJaXRvYgoJZXh0cmFjdCA3IDEKCWZyYW1lX2RpZyAtMSAvLyBkYXRhSWRlbnRpZmllcjogc3RyaW5nCgljb3ZlciAyCglib3hfcmVwbGFjZQoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJzdGFydFVwbG9hZChzdHJpbmcsdWludDY0LHVpbnQ2NCxwYXkpdm9pZCIKCW1ldGhvZCAidXBsb2FkKHN0cmluZyx1aW50NjQsdWludDY0LGJ5dGVbXSl2b2lkIgoJbWV0aG9kICJzZXRTdGF0dXMoc3RyaW5nLHVpbnQ4KXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfc3RhcnRVcGxvYWQgYWJpX3JvdXRlX3VwbG9hZCBhYmlfcm91dGVfc2V0U3RhdHVzCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzdGFydFVwbG9hZChzdHJpbmcsdWludDY0LHVpbnQ2NCxwYXkpdm9pZAoqYWJpX3JvdXRlX3N0YXJ0VXBsb2FkOgoJLy8gbWJyUGF5bWVudDogcGF5Cgl0eG4gR3JvdXBJbmRleAoJaW50IDEKCS0KCWR1cAoJZ3R4bnMgVHlwZUVudW0KCWludCBwYXkKCT09Cglhc3NlcnQKCgkvLyBlbmRCb3hTaXplOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWJ0b2kKCgkvLyBudW1Cb3hlczogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gZGF0YUlkZW50aWZpZXI6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIHN0YXJ0VXBsb2FkKHN0cmluZyx1aW50NjQsdWludDY0LHBheSl2b2lkCgljYWxsc3ViIHN0YXJ0VXBsb2FkCglpbnQgMQoJcmV0dXJuCgovLyBzdGFydFVwbG9hZChkYXRhSWRlbnRpZmllcjogc3RyaW5nLCBudW1Cb3hlczogdWludDY0LCBlbmRCb3hTaXplOiB1aW50NjQsIG1iclBheW1lbnQ6IFBheVR4bik6IHZvaWQKLy8KLy8KLy8gQWxsb2NhdGUgYm94ZXMgdG8gYmVnaW4gZGF0YSB1cGxvYWQgcHJvY2VzcwovLwovLyBAcGFyYW0gZGF0YUlkZW50aWZpZXIgVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgZGF0YQovLyBAcGFyYW0gbnVtQm94ZXMgVGhlIG51bWJlciBvZiBib3hlcyB0aGF0IHRoZSBkYXRhIHdpbGwgdGFrZSB1cAovLyBAcGFyYW0gZW5kQm94U2l6ZSBUaGUgc2l6ZSBvZiB0aGUgbGFzdCBib3gKLy8gQHBhcmFtIG1iclBheW1lbnQgUGF5bWVudCBmcm9tIHRoZSB1cGxvYWRlciB0byBjb3ZlciB0aGUgYm94IE1CUgpzdGFydFVwbG9hZDoKCXByb3RvIDQgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDMKCgkvLyBleGFtcGxlcy9iaWdfYm94L2JpZ19ib3guYWxnby50czo0MQoJLy8gc3RhcnRCb3ggPSB0aGlzLmN1cnJlbnRJbmRleC52YWx1ZQoJYnl0ZSAweDYzNzU3MjcyNjU2ZTc0NDk2ZTY0NjU3OCAvLyAiY3VycmVudEluZGV4IgoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2J1cnkgMCAvLyBzdGFydEJveDogdWludDY0CgoJLy8gZXhhbXBsZXMvYmlnX2JveC9iaWdfYm94LmFsZ28udHM6NDIKCS8vIGVuZEJveCA9IHN0YXJ0Qm94ICsgbnVtQm94ZXMgLSAxCglmcmFtZV9kaWcgMCAvLyBzdGFydEJveDogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gbnVtQm94ZXM6IHVpbnQ2NAoJKwoJaW50IDEKCS0KCWZyYW1lX2J1cnkgMSAvLyBlbmRCb3g6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL2JpZ19ib3gvYmlnX2JveC5hbGdvLnRzOjQ0CgkvLyBtZXRhZGF0YTogTWV0YWRhdGEgPSB7CgkvLyAgICAgICBzdGFydDogc3RhcnRCb3gsCgkvLyAgICAgICBlbmQ6IGVuZEJveCwKCS8vICAgICAgIHN0YXR1czogSU5fUFJPR1JFU1MsCgkvLyAgICAgICBlbmRTaXplOiBlbmRCb3hTaXplLAoJLy8gICAgIH0KCWZyYW1lX2RpZyAwIC8vIHN0YXJ0Qm94OiB1aW50NjQKCWl0b2IKCWZyYW1lX2RpZyAxIC8vIGVuZEJveDogdWludDY0CglpdG9iCgljb25jYXQKCWJ5dGUgMHgwMAoJY29uY2F0CglmcmFtZV9kaWcgLTMgLy8gZW5kQm94U2l6ZTogdWludDY0CglpdG9iCgljb25jYXQKCWZyYW1lX2J1cnkgMiAvLyBtZXRhZGF0YTogTWV0YWRhdGEKCgkvLyBleGFtcGxlcy9iaWdfYm94L2JpZ19ib3guYWxnby50czo1MQoJLy8gYXNzZXJ0KCF0aGlzLm1ldGFkYXRhKGRhdGFJZGVudGlmaWVyKS5leGlzdHMpCglmcmFtZV9kaWcgLTEgLy8gZGF0YUlkZW50aWZpZXI6IHN0cmluZwoJYm94X2xlbgoJc3dhcAoJcG9wCgkhCglhc3NlcnQKCgkvLyBleGFtcGxlcy9iaWdfYm94L2JpZ19ib3guYWxnby50czo1MwoJLy8gdGhpcy5tZXRhZGF0YShkYXRhSWRlbnRpZmllcikudmFsdWUgPSBtZXRhZGF0YQoJZnJhbWVfZGlnIC0xIC8vIGRhdGFJZGVudGlmaWVyOiBzdHJpbmcKCWZyYW1lX2RpZyAyIC8vIG1ldGFkYXRhOiBNZXRhZGF0YQoJYm94X3B1dAoKCS8vIGV4YW1wbGVzL2JpZ19ib3gvYmlnX2JveC5hbGdvLnRzOjU1CgkvLyB0aGlzLmN1cnJlbnRJbmRleC52YWx1ZSA9IGVuZEJveCArIDEKCWJ5dGUgMHg2Mzc1NzI3MjY1NmU3NDQ5NmU2NDY1NzggLy8gImN1cnJlbnRJbmRleCIKCWZyYW1lX2RpZyAxIC8vIGVuZEJveDogdWludDY0CglpbnQgMQoJKwoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9iaWdfYm94L2JpZ19ib3guYWxnby50czo1NwoJLy8gdG90YWxDb3N0ID0KCS8vICAgICAgIG51bUJveGVzICogQ09TVF9QRVJfQk9YICsgLy8gY29zdCBvZiBib3hlcwoJLy8gICAgICAgKG51bUJveGVzIC0gMSkgKiBNQVhfQk9YX1NJWkUgKiBDT1NUX1BFUl9CWVRFICsgLy8gY29zdCBvZiBkYXRhCgkvLyAgICAgICBudW1Cb3hlcyAqIDY0ICogQ09TVF9QRVJfQllURSArIC8vIGNvc3Qgb2Yga2V5cwoJLy8gICAgICAgZW5kQm94U2l6ZSAqIENPU1RfUEVSX0JZVEUKCWZyYW1lX2RpZyAtMiAvLyBudW1Cb3hlczogdWludDY0CglpbnQgMjUwMAoJKgoJZnJhbWVfZGlnIC0yIC8vIG51bUJveGVzOiB1aW50NjQKCWludCAxCgktCglpbnQgMzI3NjgKCSoKCWludCA0MDAKCSoKCSsKCWZyYW1lX2RpZyAtMiAvLyBudW1Cb3hlczogdWludDY0CglpbnQgNjQKCSoKCWludCA0MDAKCSoKCSsKCWZyYW1lX2RpZyAtMyAvLyBlbmRCb3hTaXplOiB1aW50NjQKCWludCA0MDAKCSoKCSsKCWZyYW1lX2J1cnkgMyAvLyB0b3RhbENvc3Q6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL2JpZ19ib3gvYmlnX2JveC5hbGdvLnRzOjYzCgkvLyB2ZXJpZnlQYXlUeG4obWJyUGF5bWVudCwgeyByZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywgYW1vdW50OiB0b3RhbENvc3QgfSkKCS8vIHZlcmlmeSByZWNlaXZlcgoJZnJhbWVfZGlnIC00IC8vIG1iclBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgUmVjZWl2ZXIKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCgk9PQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IGFtb3VudAoJZnJhbWVfZGlnIC00IC8vIG1iclBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CglmcmFtZV9kaWcgMyAvLyB0b3RhbENvc3Q6IHVpbnQ2NAoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyB1cGxvYWQoc3RyaW5nLHVpbnQ2NCx1aW50NjQsYnl0ZVtdKXZvaWQKKmFiaV9yb3V0ZV91cGxvYWQ6CgkvLyBkYXRhOiBieXRlW10KCXR4bmEgQXBwbGljYXRpb25BcmdzIDQKCWV4dHJhY3QgMiAwCgoJLy8gb2Zmc2V0OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWJ0b2kKCgkvLyBib3hJbmRleDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gZGF0YUlkZW50aWZpZXI6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIHVwbG9hZChzdHJpbmcsdWludDY0LHVpbnQ2NCxieXRlW10pdm9pZAoJY2FsbHN1YiB1cGxvYWQKCWludCAxCglyZXR1cm4KCi8vIHVwbG9hZChkYXRhSWRlbnRpZmllcjogc3RyaW5nLCBib3hJbmRleDogdWludDY0LCBvZmZzZXQ6IHVpbnQ2NCwgZGF0YTogYnl0ZXMpOiB2b2lkCi8vCi8vCi8vIFVwbG9hZCBkYXRhIHRvIGEgc3BlY2lmaWMgb2Zmc2V0IGluIGEgYm94Ci8vCi8vIEBwYXJhbSBkYXRhSWRlbnRpZmllciBUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBkYXRhCi8vIEBwYXJhbSBib3hJbmRleCBUaGUgaW5kZXggb2YgdGhlIGJveCB0byB1cGxvYWQgdGhlIGdpdmVuIGNodW5rIG9mIGRhdGEgdG8KLy8gQHBhcmFtIG9mZnNldCBUaGUgb2Zmc2V0IHdpdGhpbiB0aGUgYm94IHRvIHN0YXJ0IHdyaXRpbmcgdGhlIGRhdGEKLy8gQHBhcmFtIGRhdGEgVGhlIGRhdGEgdG8gd3JpdGUKdXBsb2FkOgoJcHJvdG8gNCAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyBleGFtcGxlcy9iaWdfYm94L2JpZ19ib3guYWxnby50czo3NgoJLy8gbWV0YWRhdGEgPSB0aGlzLm1ldGFkYXRhKGRhdGFJZGVudGlmaWVyKS52YWx1ZQoJZnJhbWVfZGlnIC0xIC8vIGRhdGFJZGVudGlmaWVyOiBzdHJpbmcKCWZyYW1lX2J1cnkgMCAvLyBzdG9yYWdlIGtleS8vbWV0YWRhdGEKCgkvLyBleGFtcGxlcy9iaWdfYm94L2JpZ19ib3guYWxnby50czo3NwoJLy8gYXNzZXJ0KG1ldGFkYXRhLnN0YXR1cyA9PT0gSU5fUFJPR1JFU1MpCglmcmFtZV9kaWcgLTEgLy8gZGF0YUlkZW50aWZpZXI6IHN0cmluZwoJaW50IDE2IC8vIGhlYWRPZmZzZXQKCWludCAxCglib3hfZXh0cmFjdAoJYnRvaQoJaW50IDAKCT09Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9iaWdfYm94L2JpZ19ib3guYWxnby50czo3OAoJLy8gYXNzZXJ0KG1ldGFkYXRhLnN0YXJ0IDw9IGJveEluZGV4ICYmIGJveEluZGV4IDw9IG1ldGFkYXRhLmVuZCkKCWZyYW1lX2RpZyAtMSAvLyBkYXRhSWRlbnRpZmllcjogc3RyaW5nCglpbnQgMAoJaW50IDgKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9kaWcgLTIgLy8gYm94SW5kZXg6IHVpbnQ2NAoJPD0KCWR1cAoJYnogKnNraXBfYW5kMAoJZnJhbWVfZGlnIC0yIC8vIGJveEluZGV4OiB1aW50NjQKCWZyYW1lX2RpZyAtMSAvLyBkYXRhSWRlbnRpZmllcjogc3RyaW5nCglpbnQgOCAvLyBoZWFkT2Zmc2V0CglpbnQgOAoJYm94X2V4dHJhY3QKCWJ0b2kKCTw9CgkmJgoKKnNraXBfYW5kMDoKCWFzc2VydAoKCS8vICppZjBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9iaWdfYm94L2JpZ19ib3guYWxnby50czo4MAoJLy8gb2Zmc2V0ID09PSAwCglmcmFtZV9kaWcgLTMgLy8gb2Zmc2V0OiB1aW50NjQKCWludCAwCgk9PQoJYnogKmlmMF9lbmQKCgkvLyAqaWYwX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL2JpZ19ib3gvYmlnX2JveC5hbGdvLnRzOjgxCgkvLyB0aGlzLmRhdGFCb3hlcyhib3hJbmRleCkuY3JlYXRlKGJveEluZGV4ID09PSBtZXRhZGF0YS5lbmQgPyBtZXRhZGF0YS5lbmRTaXplIDogTUFYX0JPWF9TSVpFKQoJZnJhbWVfZGlnIC0yIC8vIGJveEluZGV4OiB1aW50NjQKCWl0b2IKCWZyYW1lX2RpZyAtMiAvLyBib3hJbmRleDogdWludDY0CglmcmFtZV9kaWcgLTEgLy8gZGF0YUlkZW50aWZpZXI6IHN0cmluZwoJaW50IDggLy8gaGVhZE9mZnNldAoJaW50IDgKCWJveF9leHRyYWN0CglidG9pCgk9PQoJYnogKnRlcm5hcnkwX2ZhbHNlCglmcmFtZV9kaWcgLTEgLy8gZGF0YUlkZW50aWZpZXI6IHN0cmluZwoJaW50IDE3IC8vIGhlYWRPZmZzZXQKCWludCA4Cglib3hfZXh0cmFjdAoJYnRvaQoJYiAqdGVybmFyeTBfZW5kCgoqdGVybmFyeTBfZmFsc2U6CglpbnQgMzI3NjgKCip0ZXJuYXJ5MF9lbmQ6Cglib3hfY3JlYXRlCglwb3AKCippZjBfZW5kOgoJLy8gZXhhbXBsZXMvYmlnX2JveC9iaWdfYm94LmFsZ28udHM6ODQKCS8vIHRoaXMuZGF0YUJveGVzKGJveEluZGV4KS5yZXBsYWNlKG9mZnNldCwgZGF0YSkKCWZyYW1lX2RpZyAtMiAvLyBib3hJbmRleDogdWludDY0CglpdG9iCglmcmFtZV9kaWcgLTMgLy8gb2Zmc2V0OiB1aW50NjQKCWZyYW1lX2RpZyAtNCAvLyBkYXRhOiBieXRlcwoJYm94X3JlcGxhY2UKCXJldHN1YgoKLy8gc2V0U3RhdHVzKHN0cmluZyx1aW50OCl2b2lkCiphYmlfcm91dGVfc2V0U3RhdHVzOgoJLy8gc3RhdHVzOiB1aW50OAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAxCgk9PQoJYXNzZXJ0CglidG9pCgoJLy8gZGF0YUlkZW50aWZpZXI6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIHNldFN0YXR1cyhzdHJpbmcsdWludDgpdm9pZAoJY2FsbHN1YiBzZXRTdGF0dXMKCWludCAxCglyZXR1cm4KCi8vIHNldFN0YXR1cyhkYXRhSWRlbnRpZmllcjogc3RyaW5nLCBzdGF0dXM6IHVpbnQ8OD4pOiB2b2lkCi8vCi8vCi8vIFNldCB0aGUgc3RhdHVzIG9mIHRoZSBkYXRhCi8vCi8vIEBwYXJhbSBkYXRhSWRlbnRpZmllciBUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBkYXRhCi8vIEBwYXJhbSBzdGF0dXMgVGhlIG5ldyBzdGF0dXMgZm9yIHRoZSBkYXRhCnNldFN0YXR1czoKCXByb3RvIDIgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gZXhhbXBsZXMvYmlnX2JveC9iaWdfYm94LmFsZ28udHM6OTUKCS8vIGN1cnJlbnRTdGF0dXMgPSB0aGlzLm1ldGFkYXRhKGRhdGFJZGVudGlmaWVyKS52YWx1ZS5zdGF0dXMKCWZyYW1lX2RpZyAtMSAvLyBkYXRhSWRlbnRpZmllcjogc3RyaW5nCglpbnQgMTYgLy8gaGVhZE9mZnNldAoJaW50IDEKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDAgLy8gY3VycmVudFN0YXR1czogdWludDgKCgkvLyBleGFtcGxlcy9iaWdfYm94L2JpZ19ib3guYWxnby50czo5NwoJLy8gYXNzZXJ0KHN0YXR1cyA9PT0gUkVBRFkgfHwgc3RhdHVzID09PSBJTU1VVEFCTEUgfHwgc3RhdHVzID09PSBJTl9QUk9HUkVTUykKCWZyYW1lX2RpZyAtMiAvLyBzdGF0dXM6IHVpbnQ8OD4KCWludCAxCgk9PQoJZHVwCglibnogKnNraXBfb3IwCglmcmFtZV9kaWcgLTIgLy8gc3RhdHVzOiB1aW50PDg+CglpbnQgMgoJPT0KCXx8Cgoqc2tpcF9vcjA6CglkdXAKCWJueiAqc2tpcF9vcjEKCWZyYW1lX2RpZyAtMiAvLyBzdGF0dXM6IHVpbnQ8OD4KCWludCAwCgk9PQoJfHwKCipza2lwX29yMToKCWFzc2VydAoKCS8vIGV4YW1wbGVzL2JpZ19ib3gvYmlnX2JveC5hbGdvLnRzOjk4CgkvLyBhc3NlcnQoY3VycmVudFN0YXR1cyAhPT0gSU1NVVRBQkxFKQoJZnJhbWVfZGlnIDAgLy8gY3VycmVudFN0YXR1czogdWludDgKCWludCAyCgkhPQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvYmlnX2JveC9iaWdfYm94LmFsZ28udHM6MTAwCgkvLyB0aGlzLm1ldGFkYXRhKGRhdGFJZGVudGlmaWVyKS52YWx1ZS5zdGF0dXMgPSBzdGF0dXMKCWludCAxNiAvLyBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgLTIgLy8gc3RhdHVzOiB1aW50PDg+CglpdG9iCglleHRyYWN0IDcgMQoJZnJhbWVfZGlnIC0xIC8vIGRhdGFJZGVudGlmaWVyOiBzdHJpbmcKCWNvdmVyIDIKCWJveF9yZXBsYWNlCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJzdGFydFVwbG9hZChzdHJpbmcsdWludDY0LHVpbnQ2NCxwYXkpdm9pZCIKCW1ldGhvZCAidXBsb2FkKHN0cmluZyx1aW50NjQsdWludDY0LGJ5dGVbXSl2b2lkIgoJbWV0aG9kICJzZXRTdGF0dXMoc3RyaW5nLHVpbnQ4KXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3N0YXJ0VXBsb2FkICphYmlfcm91dGVfdXBsb2FkICphYmlfcm91dGVfc2V0U3RhdHVzCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/examples/calculator/artifacts/Calculator.approval.teal b/examples/calculator/artifacts/Calculator.approval.teal index 556fea266..b04c0af91 100644 --- a/examples/calculator/artifacts/Calculator.approval.teal +++ b/examples/calculator/artifacts/Calculator.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,16 +9,16 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // getSum(a: number, b: number): number @@ -53,22 +53,22 @@ getDifference: frame_dig -1 // a: number frame_dig -2 // b: number >= - bz ternary0_false + bz *ternary0_false frame_dig -1 // a: number frame_dig -2 // b: number - - b ternary0_end + b *ternary0_end -ternary0_false: +*ternary0_false: frame_dig -2 // b: number frame_dig -1 // a: number - -ternary0_end: +*ternary0_end: retsub // doMath(uint64,uint64,string)uint64 -abi_route_doMath: +*abi_route_doMath: // The ABI return prefix byte 0x151f7c75 @@ -107,44 +107,44 @@ doMath: // Push empty bytes after the frame pointer to reserve space for local variables byte 0x - // if0_condition + // *if0_condition // examples/calculator/calculator.algo.ts:39 // operation === 'sum' frame_dig -3 // operation: string byte 0x73756d // "sum" == - bz if0_elseif1_condition + bz *if0_elseif1_condition - // if0_consequent + // *if0_consequent // examples/calculator/calculator.algo.ts:40 // result = this.getSum(a, b) frame_dig -2 // b: number frame_dig -1 // a: number callsub getSum frame_bury 0 // result: number - b if0_end + b *if0_end -if0_elseif1_condition: +*if0_elseif1_condition: // examples/calculator/calculator.algo.ts:41 // operation === 'difference' frame_dig -3 // operation: string byte 0x646966666572656e6365 // "difference" == - bz if0_else + bz *if0_else - // if0_elseif1_consequent + // *if0_elseif1_consequent // examples/calculator/calculator.algo.ts:42 // result = this.getDifference(a, b) frame_dig -2 // b: number frame_dig -1 // a: number callsub getDifference frame_bury 0 // result: number - b if0_end + b *if0_end -if0_else: +*if0_else: err // 'Invalid operation' -if0_end: +*if0_end: // examples/calculator/calculator.algo.ts:45 // return result; frame_dig 0 // result: number @@ -153,18 +153,18 @@ if0_end: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "doMath(uint64,uint64,string)uint64" txna ApplicationArgs 0 - match abi_route_doMath + match *abi_route_doMath err \ No newline at end of file diff --git a/examples/calculator/artifacts/Calculator.arc32.json b/examples/calculator/artifacts/Calculator.arc32.json index 3ea641343..dbb8c20e3 100644 --- a/examples/calculator/artifacts/Calculator.arc32.json +++ b/examples/calculator/artifacts/Calculator.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBnZXRTdW0oYTogbnVtYmVyLCBiOiBudW1iZXIpOiBudW1iZXIKLy8KLy8gQ2FsY3VsYXRlcyB0aGUgc3VtIG9mIHR3byBudW1iZXJzCi8vCi8vIEBwYXJhbSBhCi8vIEBwYXJhbSBiCi8vIEByZXR1cm5zIFRoZSBzdW0gb2YgYSBhbmQgYgpnZXRTdW06Cglwcm90byAyIDEKCgkvLyBleGFtcGxlcy9jYWxjdWxhdG9yL2NhbGN1bGF0b3IuYWxnby50czoxMwoJLy8gcmV0dXJuIGEgKyBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IG51bWJlcgoJZnJhbWVfZGlnIC0yIC8vIGI6IG51bWJlcgoJKwoJcmV0c3ViCgovLyBnZXREaWZmZXJlbmNlKGE6IG51bWJlciwgYjogbnVtYmVyKTogbnVtYmVyCi8vCi8vIENhbGN1bGF0ZXMgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0d28gbnVtYmVycwovLwovLyBAcGFyYW0gYQovLyBAcGFyYW0gYgovLyBAcmV0dXJucyBUaGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGEgYW5kIGIuCmdldERpZmZlcmVuY2U6Cglwcm90byAyIDEKCgkvLyBleGFtcGxlcy9jYWxjdWxhdG9yL2NhbGN1bGF0b3IuYWxnby50czoyNAoJLy8gcmV0dXJuIGEgPj0gYiA/IGEgLSBiIDogYiAtIGE7CglmcmFtZV9kaWcgLTEgLy8gYTogbnVtYmVyCglmcmFtZV9kaWcgLTIgLy8gYjogbnVtYmVyCgk+PQoJYnogdGVybmFyeTBfZmFsc2UKCWZyYW1lX2RpZyAtMSAvLyBhOiBudW1iZXIKCWZyYW1lX2RpZyAtMiAvLyBiOiBudW1iZXIKCS0KCWIgdGVybmFyeTBfZW5kCgp0ZXJuYXJ5MF9mYWxzZToKCWZyYW1lX2RpZyAtMiAvLyBiOiBudW1iZXIKCWZyYW1lX2RpZyAtMSAvLyBhOiBudW1iZXIKCS0KCnRlcm5hcnkwX2VuZDoKCXJldHN1YgoKLy8gZG9NYXRoKHVpbnQ2NCx1aW50NjQsc3RyaW5nKXVpbnQ2NAphYmlfcm91dGVfZG9NYXRoOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBvcGVyYXRpb246IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJZXh0cmFjdCAyIDAKCgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGRvTWF0aCh1aW50NjQsdWludDY0LHN0cmluZyl1aW50NjQKCWNhbGxzdWIgZG9NYXRoCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZG9NYXRoKGE6IG51bWJlciwgYjogbnVtYmVyLCBvcGVyYXRpb246IHN0cmluZyk6IG51bWJlcgovLwovLyBBIG1ldGhvZCB0aGF0IHRha2VzIHR3byBudW1iZXJzIGFuZCBkb2VzIGVpdGhlciBhZGRpdGlvbiBvciBzdWJ0cmFjdGlvbgovLwovLyBAcGFyYW0gYSBUaGUgZmlyc3QgbnVtYmVyCi8vIEBwYXJhbSBiIFRoZSBzZWNvbmQgbnVtYmVyCi8vIEBwYXJhbSBvcGVyYXRpb24gVGhlIG9wZXJhdGlvbiB0byBwZXJmb3JtLiBDYW4gYmUgZWl0aGVyICdzdW0nIG9yICdkaWZmZXJlbmNlJwovLwovLyBAcmV0dXJucyBUaGUgcmVzdWx0IG9mIHRoZSBvcGVyYXRpb24KZG9NYXRoOgoJcHJvdG8gMyAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyBpZjBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9jYWxjdWxhdG9yL2NhbGN1bGF0b3IuYWxnby50czozOQoJLy8gb3BlcmF0aW9uID09PSAnc3VtJwoJZnJhbWVfZGlnIC0zIC8vIG9wZXJhdGlvbjogc3RyaW5nCglieXRlIDB4NzM3NTZkIC8vICJzdW0iCgk9PQoJYnogaWYwX2Vsc2VpZjFfY29uZGl0aW9uCgoJLy8gaWYwX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL2NhbGN1bGF0b3IvY2FsY3VsYXRvci5hbGdvLnRzOjQwCgkvLyByZXN1bHQgPSB0aGlzLmdldFN1bShhLCBiKQoJZnJhbWVfZGlnIC0yIC8vIGI6IG51bWJlcgoJZnJhbWVfZGlnIC0xIC8vIGE6IG51bWJlcgoJY2FsbHN1YiBnZXRTdW0KCWZyYW1lX2J1cnkgMCAvLyByZXN1bHQ6IG51bWJlcgoJYiBpZjBfZW5kCgppZjBfZWxzZWlmMV9jb25kaXRpb246CgkvLyBleGFtcGxlcy9jYWxjdWxhdG9yL2NhbGN1bGF0b3IuYWxnby50czo0MQoJLy8gb3BlcmF0aW9uID09PSAnZGlmZmVyZW5jZScKCWZyYW1lX2RpZyAtMyAvLyBvcGVyYXRpb246IHN0cmluZwoJYnl0ZSAweDY0Njk2NjY2NjU3MjY1NmU2MzY1IC8vICJkaWZmZXJlbmNlIgoJPT0KCWJ6IGlmMF9lbHNlCgoJLy8gaWYwX2Vsc2VpZjFfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvY2FsY3VsYXRvci9jYWxjdWxhdG9yLmFsZ28udHM6NDIKCS8vIHJlc3VsdCA9IHRoaXMuZ2V0RGlmZmVyZW5jZShhLCBiKQoJZnJhbWVfZGlnIC0yIC8vIGI6IG51bWJlcgoJZnJhbWVfZGlnIC0xIC8vIGE6IG51bWJlcgoJY2FsbHN1YiBnZXREaWZmZXJlbmNlCglmcmFtZV9idXJ5IDAgLy8gcmVzdWx0OiBudW1iZXIKCWIgaWYwX2VuZAoKaWYwX2Vsc2U6CgllcnIgLy8gJ0ludmFsaWQgb3BlcmF0aW9uJwoKaWYwX2VuZDoKCS8vIGV4YW1wbGVzL2NhbGN1bGF0b3IvY2FsY3VsYXRvci5hbGdvLnRzOjQ1CgkvLyByZXR1cm4gcmVzdWx0OwoJZnJhbWVfZGlnIDAgLy8gcmVzdWx0OiBudW1iZXIKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAiZG9NYXRoKHVpbnQ2NCx1aW50NjQsc3RyaW5nKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9kb01hdGgKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBnZXRTdW0oYTogbnVtYmVyLCBiOiBudW1iZXIpOiBudW1iZXIKLy8KLy8gQ2FsY3VsYXRlcyB0aGUgc3VtIG9mIHR3byBudW1iZXJzCi8vCi8vIEBwYXJhbSBhCi8vIEBwYXJhbSBiCi8vIEByZXR1cm5zIFRoZSBzdW0gb2YgYSBhbmQgYgpnZXRTdW06Cglwcm90byAyIDEKCgkvLyBleGFtcGxlcy9jYWxjdWxhdG9yL2NhbGN1bGF0b3IuYWxnby50czoxMwoJLy8gcmV0dXJuIGEgKyBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IG51bWJlcgoJZnJhbWVfZGlnIC0yIC8vIGI6IG51bWJlcgoJKwoJcmV0c3ViCgovLyBnZXREaWZmZXJlbmNlKGE6IG51bWJlciwgYjogbnVtYmVyKTogbnVtYmVyCi8vCi8vIENhbGN1bGF0ZXMgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0d28gbnVtYmVycwovLwovLyBAcGFyYW0gYQovLyBAcGFyYW0gYgovLyBAcmV0dXJucyBUaGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGEgYW5kIGIuCmdldERpZmZlcmVuY2U6Cglwcm90byAyIDEKCgkvLyBleGFtcGxlcy9jYWxjdWxhdG9yL2NhbGN1bGF0b3IuYWxnby50czoyNAoJLy8gcmV0dXJuIGEgPj0gYiA/IGEgLSBiIDogYiAtIGE7CglmcmFtZV9kaWcgLTEgLy8gYTogbnVtYmVyCglmcmFtZV9kaWcgLTIgLy8gYjogbnVtYmVyCgk+PQoJYnogKnRlcm5hcnkwX2ZhbHNlCglmcmFtZV9kaWcgLTEgLy8gYTogbnVtYmVyCglmcmFtZV9kaWcgLTIgLy8gYjogbnVtYmVyCgktCgliICp0ZXJuYXJ5MF9lbmQKCip0ZXJuYXJ5MF9mYWxzZToKCWZyYW1lX2RpZyAtMiAvLyBiOiBudW1iZXIKCWZyYW1lX2RpZyAtMSAvLyBhOiBudW1iZXIKCS0KCip0ZXJuYXJ5MF9lbmQ6CglyZXRzdWIKCi8vIGRvTWF0aCh1aW50NjQsdWludDY0LHN0cmluZyl1aW50NjQKKmFiaV9yb3V0ZV9kb01hdGg6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIG9wZXJhdGlvbjogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglleHRyYWN0IDIgMAoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZG9NYXRoKHVpbnQ2NCx1aW50NjQsc3RyaW5nKXVpbnQ2NAoJY2FsbHN1YiBkb01hdGgKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBkb01hdGgoYTogbnVtYmVyLCBiOiBudW1iZXIsIG9wZXJhdGlvbjogc3RyaW5nKTogbnVtYmVyCi8vCi8vIEEgbWV0aG9kIHRoYXQgdGFrZXMgdHdvIG51bWJlcnMgYW5kIGRvZXMgZWl0aGVyIGFkZGl0aW9uIG9yIHN1YnRyYWN0aW9uCi8vCi8vIEBwYXJhbSBhIFRoZSBmaXJzdCBudW1iZXIKLy8gQHBhcmFtIGIgVGhlIHNlY29uZCBudW1iZXIKLy8gQHBhcmFtIG9wZXJhdGlvbiBUaGUgb3BlcmF0aW9uIHRvIHBlcmZvcm0uIENhbiBiZSBlaXRoZXIgJ3N1bScgb3IgJ2RpZmZlcmVuY2UnCi8vCi8vIEByZXR1cm5zIFRoZSByZXN1bHQgb2YgdGhlIG9wZXJhdGlvbgpkb01hdGg6Cglwcm90byAzIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vICppZjBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9jYWxjdWxhdG9yL2NhbGN1bGF0b3IuYWxnby50czozOQoJLy8gb3BlcmF0aW9uID09PSAnc3VtJwoJZnJhbWVfZGlnIC0zIC8vIG9wZXJhdGlvbjogc3RyaW5nCglieXRlIDB4NzM3NTZkIC8vICJzdW0iCgk9PQoJYnogKmlmMF9lbHNlaWYxX2NvbmRpdGlvbgoKCS8vICppZjBfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvY2FsY3VsYXRvci9jYWxjdWxhdG9yLmFsZ28udHM6NDAKCS8vIHJlc3VsdCA9IHRoaXMuZ2V0U3VtKGEsIGIpCglmcmFtZV9kaWcgLTIgLy8gYjogbnVtYmVyCglmcmFtZV9kaWcgLTEgLy8gYTogbnVtYmVyCgljYWxsc3ViIGdldFN1bQoJZnJhbWVfYnVyeSAwIC8vIHJlc3VsdDogbnVtYmVyCgliICppZjBfZW5kCgoqaWYwX2Vsc2VpZjFfY29uZGl0aW9uOgoJLy8gZXhhbXBsZXMvY2FsY3VsYXRvci9jYWxjdWxhdG9yLmFsZ28udHM6NDEKCS8vIG9wZXJhdGlvbiA9PT0gJ2RpZmZlcmVuY2UnCglmcmFtZV9kaWcgLTMgLy8gb3BlcmF0aW9uOiBzdHJpbmcKCWJ5dGUgMHg2NDY5NjY2NjY1NzI2NTZlNjM2NSAvLyAiZGlmZmVyZW5jZSIKCT09CglieiAqaWYwX2Vsc2UKCgkvLyAqaWYwX2Vsc2VpZjFfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvY2FsY3VsYXRvci9jYWxjdWxhdG9yLmFsZ28udHM6NDIKCS8vIHJlc3VsdCA9IHRoaXMuZ2V0RGlmZmVyZW5jZShhLCBiKQoJZnJhbWVfZGlnIC0yIC8vIGI6IG51bWJlcgoJZnJhbWVfZGlnIC0xIC8vIGE6IG51bWJlcgoJY2FsbHN1YiBnZXREaWZmZXJlbmNlCglmcmFtZV9idXJ5IDAgLy8gcmVzdWx0OiBudW1iZXIKCWIgKmlmMF9lbmQKCippZjBfZWxzZToKCWVyciAvLyAnSW52YWxpZCBvcGVyYXRpb24nCgoqaWYwX2VuZDoKCS8vIGV4YW1wbGVzL2NhbGN1bGF0b3IvY2FsY3VsYXRvci5hbGdvLnRzOjQ1CgkvLyByZXR1cm4gcmVzdWx0OwoJZnJhbWVfZGlnIDAgLy8gcmVzdWx0OiBudW1iZXIKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImRvTWF0aCh1aW50NjQsdWludDY0LHN0cmluZyl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2RvTWF0aAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/examples/itxns/artifacts/FactoryCaller.approval.teal b/examples/itxns/artifacts/FactoryCaller.approval.teal index f193eb875..54e001379 100644 --- a/examples/itxns/artifacts/FactoryCaller.approval.teal +++ b/examples/itxns/artifacts/FactoryCaller.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // mintAndGetAsset()uint64 -abi_route_mintAndGetAsset: +*abi_route_mintAndGetAsset: // The ABI return prefix byte 0x151f7c75 @@ -217,18 +217,18 @@ mintAndGetAsset: popn 1 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "mintAndGetAsset()uint64" txna ApplicationArgs 0 - match abi_route_mintAndGetAsset + match *abi_route_mintAndGetAsset err \ No newline at end of file diff --git a/examples/itxns/artifacts/FactoryCaller.arc32.json b/examples/itxns/artifacts/FactoryCaller.arc32.json index d61b08697..a02ada0bb 100644 --- a/examples/itxns/artifacts/FactoryCaller.arc32.json +++ b/examples/itxns/artifacts/FactoryCaller.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBtaW50QW5kR2V0QXNzZXQoKXVpbnQ2NAphYmlfcm91dGVfbWludEFuZEdldEFzc2V0OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG1pbnRBbmRHZXRBc3NldCgpdWludDY0CgljYWxsc3ViIG1pbnRBbmRHZXRBc3NldAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIG1pbnRBbmRHZXRBc3NldCgpOiBBc3NldAptaW50QW5kR2V0QXNzZXQ6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gZXhhbXBsZXMvaXR4bnMvaXR4bnMuYWxnby50czoyNQoJLy8gc2VuZE1ldGhvZENhbGw8dHlwZW9mIE5GVEZhY3RvcnkucHJvdG90eXBlLmNyZWF0ZUFwcGxpY2F0aW9uPih7CgkvLyAgICAgICBjbGVhclN0YXRlUHJvZ3JhbTogTkZURmFjdG9yeS5jbGVhclByb2dyYW0oKSwKCS8vICAgICAgIGFwcHJvdmFsUHJvZ3JhbTogTkZURmFjdG9yeS5hcHByb3ZhbFByb2dyYW0oKSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6MjYKCS8vIGNsZWFyU3RhdGVQcm9ncmFtOiBORlRGYWN0b3J5LmNsZWFyUHJvZ3JhbSgpCglieXRlIGI2NCBDZz09CglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCgoJLy8gZXhhbXBsZXMvaXR4bnMvaXR4bnMuYWxnby50czoyNwoJLy8gYXBwcm92YWxQcm9ncmFtOiBORlRGYWN0b3J5LmFwcHJvdmFsUHJvZ3JhbSgpCglieXRlIGI2NCBDaUFDQVFBeEdCU0JCZ3N4R1FpTkRBQnVBQUFBQUFBQUFBQUFBQUJnQUFBQUFBQUFBQUFBQUFDQUJCVWZmSFUyR2dKWEFnQTJHZ0ZYQWdDSUFBVVdVTEFpUTRvQ0FiR0JBN0lRaS8reUpvditzaVVpc2lJanNnR3p0RHlKTmhvQ0Y4QWNOaG9CRjhBd2lBQUNJa09LQWdDeGdRU3lFSXYrc2hRaXNoS0wvN0lSSTdJQnM0a2lRNEFFdUVSN05qWWFBSTRCLy9FQWdBVFNBa3h6Z0FSSUlXWndOaG9BamdML2Z2K3lBQT09CglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBleGFtcGxlcy9pdHhucy9pdHhucy5hbGdvLnRzOjMwCgkvLyBmYWN0b3J5QXBwID0gdGhpcy5pdHhuLmNyZWF0ZWRBcHBsaWNhdGlvbklECglpdHhuIENyZWF0ZWRBcHBsaWNhdGlvbklECglmcmFtZV9idXJ5IDAgLy8gZmFjdG9yeUFwcDogYXBwbGljYXRpb24KCgkvLyBleGFtcGxlcy9pdHhucy9pdHhucy5hbGdvLnRzOjMyCgkvLyBzZW5kUGF5bWVudCh7CgkvLyAgICAgICBhbW91bnQ6IDIwMF8wMDAsCgkvLyAgICAgICByZWNlaXZlcjogZmFjdG9yeUFwcC5hZGRyZXNzLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnQgcGF5CglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvaXR4bnMvaXR4bnMuYWxnby50czozMwoJLy8gYW1vdW50OiAyMDBfMDAwCglpbnQgMjAwXzAwMAoJaXR4bl9maWVsZCBBbW91bnQKCgkvLyBleGFtcGxlcy9pdHhucy9pdHhucy5hbGdvLnRzOjM0CgkvLyByZWNlaXZlcjogZmFjdG9yeUFwcC5hZGRyZXNzCglmcmFtZV9kaWcgMCAvLyBmYWN0b3J5QXBwOiBhcHBsaWNhdGlvbgoJYXBwX3BhcmFtc19nZXQgQXBwQWRkcmVzcwoJcG9wCglpdHhuX2ZpZWxkIFJlY2VpdmVyCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6MzcKCS8vIGNyZWF0ZWRBc3NldCA9IHNlbmRNZXRob2RDYWxsPHR5cGVvZiBORlRGYWN0b3J5LnByb3RvdHlwZS5jcmVhdGVORlQ+KHsKCS8vICAgICAgIGFwcGxpY2F0aW9uSUQ6IGZhY3RvcnlBcHAsCgkvLyAgICAgICBtZXRob2RBcmdzOiBbJ015IE5GVCcsICdNTkZUJ10sCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludCBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgltZXRob2QgImNyZWF0ZU5GVChzdHJpbmcsc3RyaW5nKXVpbnQ2NCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gZXhhbXBsZXMvaXR4bnMvaXR4bnMuYWxnby50czozOAoJLy8gYXBwbGljYXRpb25JRDogZmFjdG9yeUFwcAoJZnJhbWVfZGlnIDAgLy8gZmFjdG9yeUFwcDogYXBwbGljYXRpb24KCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6MzkKCS8vIG1ldGhvZEFyZ3M6IFsnTXkgTkZUJywgJ01ORlQnXQoJYnl0ZSAweDAwMDY0ZDc5MjA0ZTQ2NTQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglieXRlIDB4MDAwNDRkNGU0NjU0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gTnVtTG9ncwoJaW50IDEKCS0KCWl0eG5hcyBMb2dzCglleHRyYWN0IDQgMAoJYnRvaQoJZnJhbWVfYnVyeSAxIC8vIGNyZWF0ZWRBc3NldDogYXNzZXQKCgkvLyBleGFtcGxlcy9pdHhucy9pdHhucy5hbGdvLnRzOjQyCgkvLyBzZW5kQXNzZXRUcmFuc2Zlcih7CgkvLyAgICAgICBhc3NldFJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgYXNzZXRBbW91bnQ6IDAsCgkvLyAgICAgICB4ZmVyQXNzZXQ6IGNyZWF0ZWRBc3NldCwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGF4ZmVyCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvaXR4bnMvaXR4bnMuYWxnby50czo0MwoJLy8gYXNzZXRSZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWl0eG5fZmllbGQgQXNzZXRSZWNlaXZlcgoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6NDQKCS8vIGFzc2V0QW1vdW50OiAwCglpbnQgMAoJaXR4bl9maWVsZCBBc3NldEFtb3VudAoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6NDUKCS8vIHhmZXJBc3NldDogY3JlYXRlZEFzc2V0CglmcmFtZV9kaWcgMSAvLyBjcmVhdGVkQXNzZXQ6IGFzc2V0CglpdHhuX2ZpZWxkIFhmZXJBc3NldAoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBleGFtcGxlcy9pdHhucy9pdHhucy5hbGdvLnRzOjQ4CgkvLyBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgTkZURmFjdG9yeS5wcm90b3R5cGUudHJhbnNmZXJORlQ+KHsKCS8vICAgICAgIGFwcGxpY2F0aW9uSUQ6IGZhY3RvcnlBcHAsCgkvLyAgICAgICBtZXRob2RBcmdzOiBbY3JlYXRlZEFzc2V0LCB0aGlzLmFwcC5hZGRyZXNzXSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCW1ldGhvZCAidHJhbnNmZXJORlQoYXNzZXQsYWNjb3VudCl2b2lkIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9pdHhucy9pdHhucy5hbGdvLnRzOjQ5CgkvLyBhcHBsaWNhdGlvbklEOiBmYWN0b3J5QXBwCglmcmFtZV9kaWcgMCAvLyBmYWN0b3J5QXBwOiBhcHBsaWNhdGlvbgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gZXhhbXBsZXMvaXR4bnMvaXR4bnMuYWxnby50czo1MAoJLy8gbWV0aG9kQXJnczogW2NyZWF0ZWRBc3NldCwgdGhpcy5hcHAuYWRkcmVzc10KCWZyYW1lX2RpZyAxIC8vIGNyZWF0ZWRBc3NldDogYXNzZXQKCWl0eG5fZmllbGQgQXNzZXRzCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIEFjY291bnRzCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMQoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CgoJLy8gZXhhbXBsZXMvaXR4bnMvaXR4bnMuYWxnby50czo1MwoJLy8gcmV0dXJuIGNyZWF0ZWRBc3NldDsKCWZyYW1lX2RpZyAxIC8vIGNyZWF0ZWRBc3NldDogYXNzZXQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgIm1pbnRBbmRHZXRBc3NldCgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX21pbnRBbmRHZXRBc3NldAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBtaW50QW5kR2V0QXNzZXQoKXVpbnQ2NAoqYWJpX3JvdXRlX21pbnRBbmRHZXRBc3NldDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBtaW50QW5kR2V0QXNzZXQoKXVpbnQ2NAoJY2FsbHN1YiBtaW50QW5kR2V0QXNzZXQKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBtaW50QW5kR2V0QXNzZXQoKTogQXNzZXQKbWludEFuZEdldEFzc2V0OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6MjUKCS8vIHNlbmRNZXRob2RDYWxsPHR5cGVvZiBORlRGYWN0b3J5LnByb3RvdHlwZS5jcmVhdGVBcHBsaWNhdGlvbj4oewoJLy8gICAgICAgY2xlYXJTdGF0ZVByb2dyYW06IE5GVEZhY3RvcnkuY2xlYXJQcm9ncmFtKCksCgkvLyAgICAgICBhcHByb3ZhbFByb2dyYW06IE5GVEZhY3RvcnkuYXBwcm92YWxQcm9ncmFtKCksCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludCBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9pdHhucy9pdHhucy5hbGdvLnRzOjI2CgkvLyBjbGVhclN0YXRlUHJvZ3JhbTogTkZURmFjdG9yeS5jbGVhclByb2dyYW0oKQoJYnl0ZSBiNjQgQ2c9PQoJaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6MjcKCS8vIGFwcHJvdmFsUHJvZ3JhbTogTkZURmFjdG9yeS5hcHByb3ZhbFByb2dyYW0oKQoJYnl0ZSBiNjQgQ2lBQ0FRQXhHQlNCQmdzeEdRaU5EQUJ1QUFBQUFBQUFBQUFBQUFCZ0FBQUFBQUFBQUFBQUFBQ0FCQlVmZkhVMkdnSlhBZ0EyR2dGWEFnQ0lBQVVXVUxBaVE0b0NBYkdCQTdJUWkvK3lKb3Yrc2lVaXNpSWpzZ0d6dER5Sk5ob0NGOEFjTmhvQkY4QXdpQUFDSWtPS0FnQ3hnUVN5RUl2K3NoUWlzaEtMLzdJUkk3SUJzNGtpUTRBRXVFUjdOallhQUk0Qi8vRUFnQVRTQWt4emdBUklJV1p3TmhvQWpnTC9mdit5QUE9PQoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CgoJLy8gZXhhbXBsZXMvaXR4bnMvaXR4bnMuYWxnby50czozMAoJLy8gZmFjdG9yeUFwcCA9IHRoaXMuaXR4bi5jcmVhdGVkQXBwbGljYXRpb25JRAoJaXR4biBDcmVhdGVkQXBwbGljYXRpb25JRAoJZnJhbWVfYnVyeSAwIC8vIGZhY3RvcnlBcHA6IGFwcGxpY2F0aW9uCgoJLy8gZXhhbXBsZXMvaXR4bnMvaXR4bnMuYWxnby50czozMgoJLy8gc2VuZFBheW1lbnQoewoJLy8gICAgICAgYW1vdW50OiAyMDBfMDAwLAoJLy8gICAgICAgcmVjZWl2ZXI6IGZhY3RvcnlBcHAuYWRkcmVzcywKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IHBheQoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6MzMKCS8vIGFtb3VudDogMjAwXzAwMAoJaW50IDIwMF8wMDAKCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gZXhhbXBsZXMvaXR4bnMvaXR4bnMuYWxnby50czozNAoJLy8gcmVjZWl2ZXI6IGZhY3RvcnlBcHAuYWRkcmVzcwoJZnJhbWVfZGlnIDAgLy8gZmFjdG9yeUFwcDogYXBwbGljYXRpb24KCWFwcF9wYXJhbXNfZ2V0IEFwcEFkZHJlc3MKCXBvcAoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBleGFtcGxlcy9pdHhucy9pdHhucy5hbGdvLnRzOjM3CgkvLyBjcmVhdGVkQXNzZXQgPSBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgTkZURmFjdG9yeS5wcm90b3R5cGUuY3JlYXRlTkZUPih7CgkvLyAgICAgICBhcHBsaWNhdGlvbklEOiBmYWN0b3J5QXBwLAoJLy8gICAgICAgbWV0aG9kQXJnczogWydNeSBORlQnLCAnTU5GVCddLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnQgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJbWV0aG9kICJjcmVhdGVORlQoc3RyaW5nLHN0cmluZyl1aW50NjQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6MzgKCS8vIGFwcGxpY2F0aW9uSUQ6IGZhY3RvcnlBcHAKCWZyYW1lX2RpZyAwIC8vIGZhY3RvcnlBcHA6IGFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9pdHhucy9pdHhucy5hbGdvLnRzOjM5CgkvLyBtZXRob2RBcmdzOiBbJ015IE5GVCcsICdNTkZUJ10KCWJ5dGUgMHgwMDA2NGQ3OTIwNGU0NjU0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJYnl0ZSAweDAwMDQ0ZDRlNDY1NAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglpdHhuIE51bUxvZ3MKCWludCAxCgktCglpdHhuYXMgTG9ncwoJZXh0cmFjdCA0IDAKCWJ0b2kKCWZyYW1lX2J1cnkgMSAvLyBjcmVhdGVkQXNzZXQ6IGFzc2V0CgoJLy8gZXhhbXBsZXMvaXR4bnMvaXR4bnMuYWxnby50czo0MgoJLy8gc2VuZEFzc2V0VHJhbnNmZXIoewoJLy8gICAgICAgYXNzZXRSZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgIGFzc2V0QW1vdW50OiAwLAoJLy8gICAgICAgeGZlckFzc2V0OiBjcmVhdGVkQXNzZXQsCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludCBheGZlcgoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6NDMKCS8vIGFzc2V0UmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIEFzc2V0UmVjZWl2ZXIKCgkvLyBleGFtcGxlcy9pdHhucy9pdHhucy5hbGdvLnRzOjQ0CgkvLyBhc3NldEFtb3VudDogMAoJaW50IDAKCWl0eG5fZmllbGQgQXNzZXRBbW91bnQKCgkvLyBleGFtcGxlcy9pdHhucy9pdHhucy5hbGdvLnRzOjQ1CgkvLyB4ZmVyQXNzZXQ6IGNyZWF0ZWRBc3NldAoJZnJhbWVfZGlnIDEgLy8gY3JlYXRlZEFzc2V0OiBhc3NldAoJaXR4bl9maWVsZCBYZmVyQXNzZXQKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CgoJLy8gZXhhbXBsZXMvaXR4bnMvaXR4bnMuYWxnby50czo0OAoJLy8gc2VuZE1ldGhvZENhbGw8dHlwZW9mIE5GVEZhY3RvcnkucHJvdG90eXBlLnRyYW5zZmVyTkZUPih7CgkvLyAgICAgICBhcHBsaWNhdGlvbklEOiBmYWN0b3J5QXBwLAoJLy8gICAgICAgbWV0aG9kQXJnczogW2NyZWF0ZWRBc3NldCwgdGhpcy5hcHAuYWRkcmVzc10sCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludCBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgltZXRob2QgInRyYW5zZmVyTkZUKGFzc2V0LGFjY291bnQpdm9pZCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gZXhhbXBsZXMvaXR4bnMvaXR4bnMuYWxnby50czo0OQoJLy8gYXBwbGljYXRpb25JRDogZmFjdG9yeUFwcAoJZnJhbWVfZGlnIDAgLy8gZmFjdG9yeUFwcDogYXBwbGljYXRpb24KCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6NTAKCS8vIG1ldGhvZEFyZ3M6IFtjcmVhdGVkQXNzZXQsIHRoaXMuYXBwLmFkZHJlc3NdCglmcmFtZV9kaWcgMSAvLyBjcmVhdGVkQXNzZXQ6IGFzc2V0CglpdHhuX2ZpZWxkIEFzc2V0cwoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBBY2NvdW50cwoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDEKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6NTMKCS8vIHJldHVybiBjcmVhdGVkQXNzZXQ7CglmcmFtZV9kaWcgMSAvLyBjcmVhdGVkQXNzZXQ6IGFzc2V0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMQoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAibWludEFuZEdldEFzc2V0KCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX21pbnRBbmRHZXRBc3NldAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/examples/itxns/artifacts/NFTFactory.approval.teal b/examples/itxns/artifacts/NFTFactory.approval.teal index 61a2d17cb..5491f4ff1 100644 --- a/examples/itxns/artifacts/NFTFactory.approval.teal +++ b/examples/itxns/artifacts/NFTFactory.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // createNFT(string,string)uint64 -abi_route_createNFT: +*abi_route_createNFT: // The ABI return prefix byte 0x151f7c75 @@ -81,7 +81,7 @@ createNFT: retsub // transferNFT(asset,account)void -abi_route_transferNFT: +*abi_route_transferNFT: // receiver: account txna ApplicationArgs 2 btoi @@ -134,19 +134,19 @@ transferNFT: itxn_submit retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "createNFT(string,string)uint64" method "transferNFT(asset,account)void" txna ApplicationArgs 0 - match abi_route_createNFT abi_route_transferNFT + match *abi_route_createNFT *abi_route_transferNFT err \ No newline at end of file diff --git a/examples/itxns/artifacts/NFTFactory.arc32.json b/examples/itxns/artifacts/NFTFactory.arc32.json index 451248224..2eb185a03 100644 --- a/examples/itxns/artifacts/NFTFactory.arc32.json +++ b/examples/itxns/artifacts/NFTFactory.arc32.json @@ -44,7 +44,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBjcmVhdGVORlQoc3RyaW5nLHN0cmluZyl1aW50NjQKYWJpX3JvdXRlX2NyZWF0ZU5GVDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gdW5pdE5hbWU6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZXh0cmFjdCAyIDAKCgkvLyBuYW1lOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSBjcmVhdGVORlQoc3RyaW5nLHN0cmluZyl1aW50NjQKCWNhbGxzdWIgY3JlYXRlTkZUCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gY3JlYXRlTkZUKG5hbWU6IHN0cmluZywgdW5pdE5hbWU6IHN0cmluZyk6IEFzc2V0CmNyZWF0ZU5GVDoKCXByb3RvIDIgMQoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6NgoJLy8gcmV0dXJuIHNlbmRBc3NldENyZWF0aW9uKHsKCS8vICAgICAgIGNvbmZpZ0Fzc2V0TmFtZTogbmFtZSwKCS8vICAgICAgIGNvbmZpZ0Fzc2V0VW5pdE5hbWU6IHVuaXROYW1lLAoJLy8gICAgICAgY29uZmlnQXNzZXRUb3RhbDogMSwKCS8vICAgICB9KTsKCWl0eG5fYmVnaW4KCWludCBhY2ZnCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvaXR4bnMvaXR4bnMuYWxnby50czo3CgkvLyBjb25maWdBc3NldE5hbWU6IG5hbWUKCWZyYW1lX2RpZyAtMSAvLyBuYW1lOiBzdHJpbmcKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXROYW1lCgoJLy8gZXhhbXBsZXMvaXR4bnMvaXR4bnMuYWxnby50czo4CgkvLyBjb25maWdBc3NldFVuaXROYW1lOiB1bml0TmFtZQoJZnJhbWVfZGlnIC0yIC8vIHVuaXROYW1lOiBzdHJpbmcKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRVbml0TmFtZQoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6OQoJLy8gY29uZmlnQXNzZXRUb3RhbDogMQoJaW50IDEKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRUb3RhbAoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gQ3JlYXRlZEFzc2V0SUQKCXJldHN1YgoKLy8gdHJhbnNmZXJORlQoYXNzZXQsYWNjb3VudCl2b2lkCmFiaV9yb3V0ZV90cmFuc2Zlck5GVDoKCS8vIHJlY2VpdmVyOiBhY2NvdW50Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgl0eG5hcyBBY2NvdW50cwoKCS8vIGFzc2V0OiBhc3NldAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoJdHhuYXMgQXNzZXRzCgoJLy8gZXhlY3V0ZSB0cmFuc2Zlck5GVChhc3NldCxhY2NvdW50KXZvaWQKCWNhbGxzdWIgdHJhbnNmZXJORlQKCWludCAxCglyZXR1cm4KCi8vIHRyYW5zZmVyTkZUKGFzc2V0OiBBc3NldCwgcmVjZWl2ZXI6IEFjY291bnQpOiB2b2lkCnRyYW5zZmVyTkZUOgoJcHJvdG8gMiAwCgoJLy8gZXhhbXBsZXMvaXR4bnMvaXR4bnMuYWxnby50czoxNAoJLy8gc2VuZEFzc2V0VHJhbnNmZXIoewoJLy8gICAgICAgYXNzZXRSZWNlaXZlcjogcmVjZWl2ZXIsCgkvLyAgICAgICBhc3NldEFtb3VudDogMSwKCS8vICAgICAgIHhmZXJBc3NldDogYXNzZXQsCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludCBheGZlcgoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6MTUKCS8vIGFzc2V0UmVjZWl2ZXI6IHJlY2VpdmVyCglmcmFtZV9kaWcgLTIgLy8gcmVjZWl2ZXI6IEFjY291bnQKCWl0eG5fZmllbGQgQXNzZXRSZWNlaXZlcgoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6MTYKCS8vIGFzc2V0QW1vdW50OiAxCglpbnQgMQoJaXR4bl9maWVsZCBBc3NldEFtb3VudAoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6MTcKCS8vIHhmZXJBc3NldDogYXNzZXQKCWZyYW1lX2RpZyAtMSAvLyBhc3NldDogQXNzZXQKCWl0eG5fZmllbGQgWGZlckFzc2V0CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJjcmVhdGVORlQoc3RyaW5nLHN0cmluZyl1aW50NjQiCgltZXRob2QgInRyYW5zZmVyTkZUKGFzc2V0LGFjY291bnQpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVORlQgYWJpX3JvdXRlX3RyYW5zZmVyTkZUCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBjcmVhdGVORlQoc3RyaW5nLHN0cmluZyl1aW50NjQKKmFiaV9yb3V0ZV9jcmVhdGVORlQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIHVuaXROYW1lOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWV4dHJhY3QgMiAwCgoJLy8gbmFtZTogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgY3JlYXRlTkZUKHN0cmluZyxzdHJpbmcpdWludDY0CgljYWxsc3ViIGNyZWF0ZU5GVAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGNyZWF0ZU5GVChuYW1lOiBzdHJpbmcsIHVuaXROYW1lOiBzdHJpbmcpOiBBc3NldApjcmVhdGVORlQ6Cglwcm90byAyIDEKCgkvLyBleGFtcGxlcy9pdHhucy9pdHhucy5hbGdvLnRzOjYKCS8vIHJldHVybiBzZW5kQXNzZXRDcmVhdGlvbih7CgkvLyAgICAgICBjb25maWdBc3NldE5hbWU6IG5hbWUsCgkvLyAgICAgICBjb25maWdBc3NldFVuaXROYW1lOiB1bml0TmFtZSwKCS8vICAgICAgIGNvbmZpZ0Fzc2V0VG90YWw6IDEsCgkvLyAgICAgfSk7CglpdHhuX2JlZ2luCglpbnQgYWNmZwoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6NwoJLy8gY29uZmlnQXNzZXROYW1lOiBuYW1lCglmcmFtZV9kaWcgLTEgLy8gbmFtZTogc3RyaW5nCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0TmFtZQoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6OAoJLy8gY29uZmlnQXNzZXRVbml0TmFtZTogdW5pdE5hbWUKCWZyYW1lX2RpZyAtMiAvLyB1bml0TmFtZTogc3RyaW5nCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0VW5pdE5hbWUKCgkvLyBleGFtcGxlcy9pdHhucy9pdHhucy5hbGdvLnRzOjkKCS8vIGNvbmZpZ0Fzc2V0VG90YWw6IDEKCWludCAxCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0VG90YWwKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglpdHhuIENyZWF0ZWRBc3NldElECglyZXRzdWIKCi8vIHRyYW5zZmVyTkZUKGFzc2V0LGFjY291bnQpdm9pZAoqYWJpX3JvdXRlX3RyYW5zZmVyTkZUOgoJLy8gcmVjZWl2ZXI6IGFjY291bnQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCXR4bmFzIEFjY291bnRzCgoJLy8gYXNzZXQ6IGFzc2V0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgl0eG5hcyBBc3NldHMKCgkvLyBleGVjdXRlIHRyYW5zZmVyTkZUKGFzc2V0LGFjY291bnQpdm9pZAoJY2FsbHN1YiB0cmFuc2Zlck5GVAoJaW50IDEKCXJldHVybgoKLy8gdHJhbnNmZXJORlQoYXNzZXQ6IEFzc2V0LCByZWNlaXZlcjogQWNjb3VudCk6IHZvaWQKdHJhbnNmZXJORlQ6Cglwcm90byAyIDAKCgkvLyBleGFtcGxlcy9pdHhucy9pdHhucy5hbGdvLnRzOjE0CgkvLyBzZW5kQXNzZXRUcmFuc2Zlcih7CgkvLyAgICAgICBhc3NldFJlY2VpdmVyOiByZWNlaXZlciwKCS8vICAgICAgIGFzc2V0QW1vdW50OiAxLAoJLy8gICAgICAgeGZlckFzc2V0OiBhc3NldCwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGF4ZmVyCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvaXR4bnMvaXR4bnMuYWxnby50czoxNQoJLy8gYXNzZXRSZWNlaXZlcjogcmVjZWl2ZXIKCWZyYW1lX2RpZyAtMiAvLyByZWNlaXZlcjogQWNjb3VudAoJaXR4bl9maWVsZCBBc3NldFJlY2VpdmVyCgoJLy8gZXhhbXBsZXMvaXR4bnMvaXR4bnMuYWxnby50czoxNgoJLy8gYXNzZXRBbW91bnQ6IDEKCWludCAxCglpdHhuX2ZpZWxkIEFzc2V0QW1vdW50CgoJLy8gZXhhbXBsZXMvaXR4bnMvaXR4bnMuYWxnby50czoxNwoJLy8geGZlckFzc2V0OiBhc3NldAoJZnJhbWVfZGlnIC0xIC8vIGFzc2V0OiBBc3NldAoJaXR4bl9maWVsZCBYZmVyQXNzZXQKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJjcmVhdGVORlQoc3RyaW5nLHN0cmluZyl1aW50NjQiCgltZXRob2QgInRyYW5zZmVyTkZUKGFzc2V0LGFjY291bnQpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlTkZUICphYmlfcm91dGVfdHJhbnNmZXJORlQKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/examples/lsig_with_app/artifacts/CreatorVerifier.approval.teal b/examples/lsig_with_app/artifacts/CreatorVerifier.approval.teal index eb16e00df..7b07ee017 100644 --- a/examples/lsig_with_app/artifacts/CreatorVerifier.approval.teal +++ b/examples/lsig_with_app/artifacts/CreatorVerifier.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // allowOptInsFrom(address)void -abi_route_allowOptInsFrom: +*abi_route_allowOptInsFrom: // creator: address txna ApplicationArgs 1 dup @@ -56,7 +56,7 @@ allowOptInsFrom: retsub // disableOptInsFrom(address)void -abi_route_disableOptInsFrom: +*abi_route_disableOptInsFrom: // creator: address txna ApplicationArgs 1 dup @@ -90,7 +90,7 @@ disableOptInsFrom: retsub // verifyCreator(axfer,asset)void -abi_route_verifyCreator: +*abi_route_verifyCreator: // _asaReference: asset txna ApplicationArgs 1 btoi @@ -131,20 +131,20 @@ verifyCreator: assert retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "allowOptInsFrom(address)void" method "disableOptInsFrom(address)void" method "verifyCreator(axfer,asset)void" txna ApplicationArgs 0 - match abi_route_allowOptInsFrom abi_route_disableOptInsFrom abi_route_verifyCreator + match *abi_route_allowOptInsFrom *abi_route_disableOptInsFrom *abi_route_verifyCreator err \ No newline at end of file diff --git a/examples/lsig_with_app/artifacts/CreatorVerifier.arc32.json b/examples/lsig_with_app/artifacts/CreatorVerifier.arc32.json index 66c946423..2d21f4312 100644 --- a/examples/lsig_with_app/artifacts/CreatorVerifier.arc32.json +++ b/examples/lsig_with_app/artifacts/CreatorVerifier.arc32.json @@ -49,7 +49,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBhbGxvd09wdEluc0Zyb20oYWRkcmVzcyl2b2lkCmFiaV9yb3V0ZV9hbGxvd09wdEluc0Zyb206CgkvLyBjcmVhdG9yOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBhbGxvd09wdEluc0Zyb20oYWRkcmVzcyl2b2lkCgljYWxsc3ViIGFsbG93T3B0SW5zRnJvbQoJaW50IDEKCXJldHVybgoKLy8gYWxsb3dPcHRJbnNGcm9tKGNyZWF0b3I6IEFkZHJlc3MpOiB2b2lkCi8vCi8vIEFsbG93IGFueW9uZSB0byB1c2UgdGhlIGxzaWcgdG8gb3B0IGluIHRoZSB0eG4gc2VuZGVyIGludG8gYW4gYXNzZXQgY3JlYXRlZCBieSB0aGUgY3JlYXRvcgphbGxvd09wdEluc0Zyb206Cglwcm90byAxIDAKCgkvLyBleGFtcGxlcy9sc2lnX3dpdGhfYXBwL2xzaWdfd2l0aF9hcHAuYWxnby50czo0MQoJLy8gdGhpcy5hbGxvd2VkQ3JlYXRvcnMoW3RoaXMudHhuLnNlbmRlciwgY3JlYXRvcl0pLnZhbHVlID0gdHJ1ZQoJdHhuIFNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIGNyZWF0b3I6IEFkZHJlc3MKCWNvbmNhdAoJaW50IDEKCWJ5dGUgMHgwMAoJaW50IDAKCXVuY292ZXIgMgoJc2V0Yml0Cglib3hfcHV0CglyZXRzdWIKCi8vIGRpc2FibGVPcHRJbnNGcm9tKGFkZHJlc3Mpdm9pZAphYmlfcm91dGVfZGlzYWJsZU9wdEluc0Zyb206CgkvLyBjcmVhdG9yOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBkaXNhYmxlT3B0SW5zRnJvbShhZGRyZXNzKXZvaWQKCWNhbGxzdWIgZGlzYWJsZU9wdEluc0Zyb20KCWludCAxCglyZXR1cm4KCi8vIGRpc2FibGVPcHRJbnNGcm9tKGNyZWF0b3I6IEFkZHJlc3MpOiB2b2lkCi8vCi8vIERpc2FibGUgb3B0LWlucyBmb3IgQVNBcyBmcm9tIHRoZSBnaXZlbiBjcmVhdG9yCmRpc2FibGVPcHRJbnNGcm9tOgoJcHJvdG8gMSAwCgoJLy8gZXhhbXBsZXMvbHNpZ193aXRoX2FwcC9sc2lnX3dpdGhfYXBwLmFsZ28udHM6NDYKCS8vIHRoaXMuYWxsb3dlZENyZWF0b3JzKFt0aGlzLnR4bi5zZW5kZXIsIGNyZWF0b3JdKS52YWx1ZSA9IGZhbHNlCgl0eG4gU2VuZGVyCglmcmFtZV9kaWcgLTEgLy8gY3JlYXRvcjogQWRkcmVzcwoJY29uY2F0CglpbnQgMAoJYnl0ZSAweDAwCglpbnQgMAoJdW5jb3ZlciAyCglzZXRiaXQKCWJveF9wdXQKCXJldHN1YgoKLy8gdmVyaWZ5Q3JlYXRvcihheGZlcixhc3NldCl2b2lkCmFiaV9yb3V0ZV92ZXJpZnlDcmVhdG9yOgoJLy8gX2FzYVJlZmVyZW5jZTogYXNzZXQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCXR4bmFzIEFzc2V0cwoKCS8vIG9wdEluOiBheGZlcgoJdHhuIEdyb3VwSW5kZXgKCWludCAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgYXhmZXIKCT09Cglhc3NlcnQKCgkvLyBleGVjdXRlIHZlcmlmeUNyZWF0b3IoYXhmZXIsYXNzZXQpdm9pZAoJY2FsbHN1YiB2ZXJpZnlDcmVhdG9yCglpbnQgMQoJcmV0dXJuCgovLyB2ZXJpZnlDcmVhdG9yKG9wdEluOiBBc3NldFRyYW5zZmVyVHhuLCBfYXNhUmVmZXJlbmNlOiBBc3NldCk6IHZvaWQKdmVyaWZ5Q3JlYXRvcjoKCXByb3RvIDIgMAoKCS8vIGV4YW1wbGVzL2xzaWdfd2l0aF9hcHAvbHNpZ193aXRoX2FwcC5hbGdvLnRzOjUyCgkvLyBhc3NlcnQodGhpcy5hbGxvd2VkQ3JlYXRvcnMoW29wdEluLnNlbmRlciwgb3B0SW4ueGZlckFzc2V0LmNyZWF0b3JdKS52YWx1ZSkKCWZyYW1lX2RpZyAtMSAvLyBvcHRJbjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgU2VuZGVyCglmcmFtZV9kaWcgLTEgLy8gb3B0SW46IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIFhmZXJBc3NldAoJYXNzZXRfcGFyYW1zX2dldCBBc3NldENyZWF0b3IKCXBvcAoJY29uY2F0Cglib3hfZ2V0Cglhc3NlcnQKCWludCAwCglnZXRiaXQKCWFzc2VydAoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJhbGxvd09wdEluc0Zyb20oYWRkcmVzcyl2b2lkIgoJbWV0aG9kICJkaXNhYmxlT3B0SW5zRnJvbShhZGRyZXNzKXZvaWQiCgltZXRob2QgInZlcmlmeUNyZWF0b3IoYXhmZXIsYXNzZXQpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9hbGxvd09wdEluc0Zyb20gYWJpX3JvdXRlX2Rpc2FibGVPcHRJbnNGcm9tIGFiaV9yb3V0ZV92ZXJpZnlDcmVhdG9yCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBhbGxvd09wdEluc0Zyb20oYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfYWxsb3dPcHRJbnNGcm9tOgoJLy8gY3JlYXRvcjogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCWFzc2VydAoKCS8vIGV4ZWN1dGUgYWxsb3dPcHRJbnNGcm9tKGFkZHJlc3Mpdm9pZAoJY2FsbHN1YiBhbGxvd09wdEluc0Zyb20KCWludCAxCglyZXR1cm4KCi8vIGFsbG93T3B0SW5zRnJvbShjcmVhdG9yOiBBZGRyZXNzKTogdm9pZAovLwovLyBBbGxvdyBhbnlvbmUgdG8gdXNlIHRoZSBsc2lnIHRvIG9wdCBpbiB0aGUgdHhuIHNlbmRlciBpbnRvIGFuIGFzc2V0IGNyZWF0ZWQgYnkgdGhlIGNyZWF0b3IKYWxsb3dPcHRJbnNGcm9tOgoJcHJvdG8gMSAwCgoJLy8gZXhhbXBsZXMvbHNpZ193aXRoX2FwcC9sc2lnX3dpdGhfYXBwLmFsZ28udHM6NDEKCS8vIHRoaXMuYWxsb3dlZENyZWF0b3JzKFt0aGlzLnR4bi5zZW5kZXIsIGNyZWF0b3JdKS52YWx1ZSA9IHRydWUKCXR4biBTZW5kZXIKCWZyYW1lX2RpZyAtMSAvLyBjcmVhdG9yOiBBZGRyZXNzCgljb25jYXQKCWludCAxCglieXRlIDB4MDAKCWludCAwCgl1bmNvdmVyIDIKCXNldGJpdAoJYm94X3B1dAoJcmV0c3ViCgovLyBkaXNhYmxlT3B0SW5zRnJvbShhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV9kaXNhYmxlT3B0SW5zRnJvbToKCS8vIGNyZWF0b3I6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09Cglhc3NlcnQKCgkvLyBleGVjdXRlIGRpc2FibGVPcHRJbnNGcm9tKGFkZHJlc3Mpdm9pZAoJY2FsbHN1YiBkaXNhYmxlT3B0SW5zRnJvbQoJaW50IDEKCXJldHVybgoKLy8gZGlzYWJsZU9wdEluc0Zyb20oY3JlYXRvcjogQWRkcmVzcyk6IHZvaWQKLy8KLy8gRGlzYWJsZSBvcHQtaW5zIGZvciBBU0FzIGZyb20gdGhlIGdpdmVuIGNyZWF0b3IKZGlzYWJsZU9wdEluc0Zyb206Cglwcm90byAxIDAKCgkvLyBleGFtcGxlcy9sc2lnX3dpdGhfYXBwL2xzaWdfd2l0aF9hcHAuYWxnby50czo0NgoJLy8gdGhpcy5hbGxvd2VkQ3JlYXRvcnMoW3RoaXMudHhuLnNlbmRlciwgY3JlYXRvcl0pLnZhbHVlID0gZmFsc2UKCXR4biBTZW5kZXIKCWZyYW1lX2RpZyAtMSAvLyBjcmVhdG9yOiBBZGRyZXNzCgljb25jYXQKCWludCAwCglieXRlIDB4MDAKCWludCAwCgl1bmNvdmVyIDIKCXNldGJpdAoJYm94X3B1dAoJcmV0c3ViCgovLyB2ZXJpZnlDcmVhdG9yKGF4ZmVyLGFzc2V0KXZvaWQKKmFiaV9yb3V0ZV92ZXJpZnlDcmVhdG9yOgoJLy8gX2FzYVJlZmVyZW5jZTogYXNzZXQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCXR4bmFzIEFzc2V0cwoKCS8vIG9wdEluOiBheGZlcgoJdHhuIEdyb3VwSW5kZXgKCWludCAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgYXhmZXIKCT09Cglhc3NlcnQKCgkvLyBleGVjdXRlIHZlcmlmeUNyZWF0b3IoYXhmZXIsYXNzZXQpdm9pZAoJY2FsbHN1YiB2ZXJpZnlDcmVhdG9yCglpbnQgMQoJcmV0dXJuCgovLyB2ZXJpZnlDcmVhdG9yKG9wdEluOiBBc3NldFRyYW5zZmVyVHhuLCBfYXNhUmVmZXJlbmNlOiBBc3NldCk6IHZvaWQKdmVyaWZ5Q3JlYXRvcjoKCXByb3RvIDIgMAoKCS8vIGV4YW1wbGVzL2xzaWdfd2l0aF9hcHAvbHNpZ193aXRoX2FwcC5hbGdvLnRzOjUyCgkvLyBhc3NlcnQodGhpcy5hbGxvd2VkQ3JlYXRvcnMoW29wdEluLnNlbmRlciwgb3B0SW4ueGZlckFzc2V0LmNyZWF0b3JdKS52YWx1ZSkKCWZyYW1lX2RpZyAtMSAvLyBvcHRJbjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgU2VuZGVyCglmcmFtZV9kaWcgLTEgLy8gb3B0SW46IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIFhmZXJBc3NldAoJYXNzZXRfcGFyYW1zX2dldCBBc3NldENyZWF0b3IKCXBvcAoJY29uY2F0Cglib3hfZ2V0Cglhc3NlcnQKCWludCAwCglnZXRiaXQKCWFzc2VydAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiYWxsb3dPcHRJbnNGcm9tKGFkZHJlc3Mpdm9pZCIKCW1ldGhvZCAiZGlzYWJsZU9wdEluc0Zyb20oYWRkcmVzcyl2b2lkIgoJbWV0aG9kICJ2ZXJpZnlDcmVhdG9yKGF4ZmVyLGFzc2V0KXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2FsbG93T3B0SW5zRnJvbSAqYWJpX3JvdXRlX2Rpc2FibGVPcHRJbnNGcm9tICphYmlfcm91dGVfdmVyaWZ5Q3JlYXRvcgoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/examples/lsig_with_app/artifacts/OptInLsig.lsig.teal b/examples/lsig_with_app/artifacts/OptInLsig.lsig.teal index 01385fd96..787ae6249 100644 --- a/examples/lsig_with_app/artifacts/OptInLsig.lsig.teal +++ b/examples/lsig_with_app/artifacts/OptInLsig.lsig.teal @@ -1,15 +1,15 @@ #pragma version 10 //#pragma mode logicsig -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // The address of this logic signature is TDG7PJHQN7LALSH5SXTPSI4GZEYMEU76HJERIUEMNHESGOVWR63HKPDUUQ -b route_logic +b *route_logic // logic()void -route_logic: +*route_logic: // execute logic()void callsub logic int 1 diff --git a/examples/merkle/artifacts/MerkleTree.approval.teal b/examples/merkle/artifacts/MerkleTree.approval.teal index 8f3cdb2c2..9c7c7a597 100644 --- a/examples/merkle/artifacts/MerkleTree.approval.teal +++ b/examples/merkle/artifacts/MerkleTree.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,16 +9,16 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED call_DeleteApplication create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *call_DeleteApplication *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // calcInitRoot(): bytes32 @@ -44,13 +44,13 @@ calcInitRoot: int 0 frame_bury 1 // i: uint64 -for_0: +*for_0: // examples/merkle/merkle.algo.ts:19 // i < TREE_DEPTH frame_dig 1 // i: uint64 int 3 < - bz for_0_end + bz *for_0_end // examples/merkle/merkle.algo.ts:20 // result = sha256(result + result) @@ -66,9 +66,9 @@ for_0: int 1 + frame_bury 1 // i: uint64 - b for_0 + b *for_0 -for_0_end: +*for_0_end: // examples/merkle/merkle.algo.ts:23 // return result; frame_dig 0 // result: byte[32] @@ -118,17 +118,17 @@ calcRoot: int 0 frame_bury 0 // i: uint64 -for_1: +*for_1: // examples/merkle/merkle.algo.ts:37 // i < TREE_DEPTH frame_dig 0 // i: uint64 int 3 < - bz for_1_end + bz *for_1_end frame_dig 0 // i: uint64 frame_bury 1 // accessor: accessor//0//elem - // if0_condition + // *if0_condition // examples/merkle/merkle.algo.ts:40 // this.isRightSibling(elem) frame_dig -2 // path: Path @@ -138,9 +138,9 @@ for_1: int 33 extract3 callsub isRightSibling - bz if0_else + bz *if0_else - // if0_consequent + // *if0_consequent // examples/merkle/merkle.algo.ts:41 // result = this.hashConcat(result, extract3(elem, 1, 32) as bytes32) frame_dig -2 // path: Path @@ -161,9 +161,9 @@ for_1: frame_dig -1 // leaf: bytes32 callsub hashConcat frame_bury -1 // result: bytes32 - b if0_end + b *if0_end -if0_else: +*if0_else: // examples/merkle/merkle.algo.ts:43 // result = this.hashConcat(extract3(elem, 1, 32) as bytes32, result) frame_dig -1 // leaf: bytes32 @@ -185,16 +185,16 @@ if0_else: callsub hashConcat frame_bury -1 // result: bytes32 -if0_end: +*if0_end: // examples/merkle/merkle.algo.ts:37 // i = i + 1 frame_dig 0 // i: uint64 int 1 + frame_bury 0 // i: uint64 - b for_1 + b *for_1 -for_1_end: +*for_1_end: // examples/merkle/merkle.algo.ts:47 // return result; frame_dig -1 // leaf: bytes32 @@ -207,7 +207,7 @@ for_1_end: retsub // deleteApplication()void -abi_route_deleteApplication: +*abi_route_deleteApplication: // execute deleteApplication()void callsub deleteApplication int 1 @@ -229,7 +229,7 @@ deleteApplication: retsub // createApplication()void -abi_route_createApplication: +*abi_route_createApplication: // execute createApplication()void callsub createApplication int 1 @@ -247,7 +247,7 @@ createApplication: retsub // verify(byte[],byte[33][3])void -abi_route_verify: +*abi_route_verify: // path: byte[33][3] txna ApplicationArgs 2 dup @@ -282,7 +282,7 @@ verify: retsub // appendLeaf(byte[],byte[33][3])void -abi_route_appendLeaf: +*abi_route_appendLeaf: // path: byte[33][3] txna ApplicationArgs 2 dup @@ -346,7 +346,7 @@ appendLeaf: retsub // updateLeaf(byte[],byte[],byte[33][3])void -abi_route_updateLeaf: +*abi_route_updateLeaf: // path: byte[33][3] txna ApplicationArgs 3 dup @@ -400,22 +400,22 @@ updateLeaf: app_global_put retsub -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "verify(byte[],byte[33][3])void" method "appendLeaf(byte[],byte[33][3])void" method "updateLeaf(byte[],byte[],byte[33][3])void" txna ApplicationArgs 0 - match abi_route_verify abi_route_appendLeaf abi_route_updateLeaf + match *abi_route_verify *abi_route_appendLeaf *abi_route_updateLeaf err -call_DeleteApplication: +*call_DeleteApplication: method "deleteApplication()void" txna ApplicationArgs 0 - match abi_route_deleteApplication + match *abi_route_deleteApplication err \ No newline at end of file diff --git a/examples/merkle/artifacts/MerkleTree.arc32.json b/examples/merkle/artifacts/MerkleTree.arc32.json index 1c8935d80..c1dfe34aa 100644 --- a/examples/merkle/artifacts/MerkleTree.arc32.json +++ b/examples/merkle/artifacts/MerkleTree.arc32.json @@ -63,7 +63,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBjYWxsX0RlbGV0ZUFwcGxpY2F0aW9uIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQKCk5PVF9JTVBMRU1FTlRFRDoKCWVycgoKLy8gY2FsY0luaXRSb290KCk6IGJ5dGVzMzIKY2FsY0luaXRSb290OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czoxNwoJLy8gcmVzdWx0ID0gaGV4KEVNUFRZX0hBU0gpIGFzIGJ5dGVzMzIKCWJ5dGUgMHhlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoJYnl0ZSAweAoJZHVwCgliPT0KCWFzc2VydAoJZXh0cmFjdCAwIDMyCglmcmFtZV9idXJ5IDAgLy8gcmVzdWx0OiBieXRlWzMyXQoKCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czoxOQoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCBUUkVFX0RFUFRIOyBpID0gaSArIDEpCglpbnQgMAoJZnJhbWVfYnVyeSAxIC8vIGk6IHVpbnQ2NAoKZm9yXzA6CgkvLyBleGFtcGxlcy9tZXJrbGUvbWVya2xlLmFsZ28udHM6MTkKCS8vIGkgPCBUUkVFX0RFUFRICglmcmFtZV9kaWcgMSAvLyBpOiB1aW50NjQKCWludCAzCgk8CglieiBmb3JfMF9lbmQKCgkvLyBleGFtcGxlcy9tZXJrbGUvbWVya2xlLmFsZ28udHM6MjAKCS8vIHJlc3VsdCA9IHNoYTI1NihyZXN1bHQgKyByZXN1bHQpCglmcmFtZV9kaWcgMCAvLyByZXN1bHQ6IGJ5dGVbMzJdCglmcmFtZV9kaWcgMCAvLyByZXN1bHQ6IGJ5dGVbMzJdCgljb25jYXQKCXNoYTI1NgoJZnJhbWVfYnVyeSAwIC8vIHJlc3VsdDogYnl0ZVszMl0KCgkvLyBleGFtcGxlcy9tZXJrbGUvbWVya2xlLmFsZ28udHM6MTkKCS8vIGkgPSBpICsgMQoJZnJhbWVfZGlnIDEgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAxIC8vIGk6IHVpbnQ2NAoJYiBmb3JfMAoKZm9yXzBfZW5kOgoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjIzCgkvLyByZXR1cm4gcmVzdWx0OwoJZnJhbWVfZGlnIDAgLy8gcmVzdWx0OiBieXRlWzMyXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKLy8gaGFzaENvbmNhdChsZWZ0OiBieXRlczMyLCByaWdodDogYnl0ZXMzMik6IGJ5dGVzMzIKaGFzaENvbmNhdDoKCXByb3RvIDIgMQoKCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czoyNwoJLy8gcmV0dXJuIHNoYTI1NihsZWZ0ICsgcmlnaHQpOwoJZnJhbWVfZGlnIC0xIC8vIGxlZnQ6IGJ5dGVzMzIKCWZyYW1lX2RpZyAtMiAvLyByaWdodDogYnl0ZXMzMgoJY29uY2F0CglzaGEyNTYKCXJldHN1YgoKLy8gaXNSaWdodFNpYmxpbmcoZWxlbTogQnJhbmNoKTogYm9vbGVhbgppc1JpZ2h0U2libGluZzoKCXByb3RvIDEgMQoKCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czozMQoJLy8gcmV0dXJuIGdldGJ5dGUoZWxlbSwgMCkgPT09IFJJR0hUX1NJQkxJTkdfUFJFRklYOwoJZnJhbWVfZGlnIC0xIC8vIGVsZW06IEJyYW5jaAoJaW50IDAKCWdldGJ5dGUKCWludCAxNzAKCT09CglyZXRzdWIKCi8vIGNhbGNSb290KGxlYWY6IGJ5dGVzMzIsIHBhdGg6IFBhdGgpOiBieXRlczMyCmNhbGNSb290OgoJcHJvdG8gMiAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czozNwoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCBUUkVFX0RFUFRIOyBpID0gaSArIDEpCglpbnQgMAoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKZm9yXzE6CgkvLyBleGFtcGxlcy9tZXJrbGUvbWVya2xlLmFsZ28udHM6MzcKCS8vIGkgPCBUUkVFX0RFUFRICglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludCAzCgk8CglieiBmb3JfMV9lbmQKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJZnJhbWVfYnVyeSAxIC8vIGFjY2Vzc29yOiBhY2Nlc3Nvci8vMC8vZWxlbQoKCS8vIGlmMF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czo0MAoJLy8gdGhpcy5pc1JpZ2h0U2libGluZyhlbGVtKQoJZnJhbWVfZGlnIC0yIC8vIHBhdGg6IFBhdGgKCWZyYW1lX2RpZyAxIC8vIHNhdmVkIGFjY2Vzc29yOiBhY2Nlc3Nvci8vMC8vZWxlbQoJaW50IDMzCgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludCAzMwoJZXh0cmFjdDMKCWNhbGxzdWIgaXNSaWdodFNpYmxpbmcKCWJ6IGlmMF9lbHNlCgoJLy8gaWYwX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czo0MQoJLy8gcmVzdWx0ID0gdGhpcy5oYXNoQ29uY2F0KHJlc3VsdCwgZXh0cmFjdDMoZWxlbSwgMSwgMzIpIGFzIGJ5dGVzMzIpCglmcmFtZV9kaWcgLTIgLy8gcGF0aDogUGF0aAoJZnJhbWVfZGlnIDEgLy8gc2F2ZWQgYWNjZXNzb3I6IGFjY2Vzc29yLy8wLy9lbGVtCglpbnQgMzMKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50IDMzCglleHRyYWN0MwoJZXh0cmFjdCAxIDMyCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoJY29uY2F0CglkdXAKCWV4dHJhY3QgMzIgMAoJYnl0ZSAweAoJYj09Cglhc3NlcnQKCWV4dHJhY3QgMCAzMgoJZnJhbWVfZGlnIC0xIC8vIGxlYWY6IGJ5dGVzMzIKCWNhbGxzdWIgaGFzaENvbmNhdAoJZnJhbWVfYnVyeSAtMSAvLyByZXN1bHQ6IGJ5dGVzMzIKCWIgaWYwX2VuZAoKaWYwX2Vsc2U6CgkvLyBleGFtcGxlcy9tZXJrbGUvbWVya2xlLmFsZ28udHM6NDMKCS8vIHJlc3VsdCA9IHRoaXMuaGFzaENvbmNhdChleHRyYWN0MyhlbGVtLCAxLCAzMikgYXMgYnl0ZXMzMiwgcmVzdWx0KQoJZnJhbWVfZGlnIC0xIC8vIGxlYWY6IGJ5dGVzMzIKCWZyYW1lX2RpZyAtMiAvLyBwYXRoOiBQYXRoCglmcmFtZV9kaWcgMSAvLyBzYXZlZCBhY2Nlc3NvcjogYWNjZXNzb3IvLzAvL2VsZW0KCWludCAzMwoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnQgMzMKCWV4dHJhY3QzCglleHRyYWN0IDEgMzIKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCgljb25jYXQKCWR1cAoJZXh0cmFjdCAzMiAwCglieXRlIDB4CgliPT0KCWFzc2VydAoJZXh0cmFjdCAwIDMyCgljYWxsc3ViIGhhc2hDb25jYXQKCWZyYW1lX2J1cnkgLTEgLy8gcmVzdWx0OiBieXRlczMyCgppZjBfZW5kOgoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjM3CgkvLyBpID0gaSArIDEKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCWIgZm9yXzEKCmZvcl8xX2VuZDoKCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czo0NwoJLy8gcmV0dXJuIHJlc3VsdDsKCWZyYW1lX2RpZyAtMSAvLyBsZWFmOiBieXRlczMyCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMQoJcmV0c3ViCgovLyBkZWxldGVBcHBsaWNhdGlvbigpdm9pZAphYmlfcm91dGVfZGVsZXRlQXBwbGljYXRpb246CgkvLyBleGVjdXRlIGRlbGV0ZUFwcGxpY2F0aW9uKCl2b2lkCgljYWxsc3ViIGRlbGV0ZUFwcGxpY2F0aW9uCglpbnQgMQoJcmV0dXJuCgovLyBkZWxldGVBcHBsaWNhdGlvbigpOiB2b2lkCmRlbGV0ZUFwcGxpY2F0aW9uOgoJcHJvdG8gMCAwCgoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjUxCgkvLyB2ZXJpZnlBcHBDYWxsVHhuKHRoaXMudHhuLCB7IHNlbmRlcjogdGhpcy5hcHAuY3JlYXRvciB9KQoJLy8gdmVyaWZ5IHNlbmRlcgoJdHhuIFNlbmRlcgoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJYXBwX3BhcmFtc19nZXQgQXBwQ3JlYXRvcgoJcG9wCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIGNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCS8vIGV4ZWN1dGUgY3JlYXRlQXBwbGljYXRpb24oKXZvaWQKCWNhbGxzdWIgY3JlYXRlQXBwbGljYXRpb24KCWludCAxCglyZXR1cm4KCi8vIGNyZWF0ZUFwcGxpY2F0aW9uKCk6IHZvaWQKY3JlYXRlQXBwbGljYXRpb246Cglwcm90byAwIDAKCgkvLyBleGFtcGxlcy9tZXJrbGUvbWVya2xlLmFsZ28udHM6NTUKCS8vIHRoaXMucm9vdC52YWx1ZSA9IHRoaXMuY2FsY0luaXRSb290KCkKCWJ5dGUgMHg3MjZmNmY3NCAvLyAicm9vdCIKCWNhbGxzdWIgY2FsY0luaXRSb290CglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyB2ZXJpZnkoYnl0ZVtdLGJ5dGVbMzNdWzNdKXZvaWQKYWJpX3JvdXRlX3ZlcmlmeToKCS8vIHBhdGg6IGJ5dGVbMzNdWzNdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDk5Cgk9PQoJYXNzZXJ0CgoJLy8gZGF0YTogYnl0ZVtdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgdmVyaWZ5KGJ5dGVbXSxieXRlWzMzXVszXSl2b2lkCgljYWxsc3ViIHZlcmlmeQoJaW50IDEKCXJldHVybgoKLy8gdmVyaWZ5KGRhdGE6IGJ5dGVzLCBwYXRoOiBQYXRoKTogdm9pZAp2ZXJpZnk6Cglwcm90byAyIDAKCgkvLyBleGFtcGxlcy9tZXJrbGUvbWVya2xlLmFsZ28udHM6NTkKCS8vIGFzc2VydCh0aGlzLnJvb3QudmFsdWUgPT09IHRoaXMuY2FsY1Jvb3Qoc2hhMjU2KGRhdGEpLCBwYXRoKSkKCWJ5dGUgMHg3MjZmNmY3NCAvLyAicm9vdCIKCWFwcF9nbG9iYWxfZ2V0CglmcmFtZV9kaWcgLTIgLy8gcGF0aDogUGF0aAoJZnJhbWVfZGlnIC0xIC8vIGRhdGE6IGJ5dGVzCglzaGEyNTYKCWNhbGxzdWIgY2FsY1Jvb3QKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gYXBwZW5kTGVhZihieXRlW10sYnl0ZVszM11bM10pdm9pZAphYmlfcm91dGVfYXBwZW5kTGVhZjoKCS8vIHBhdGg6IGJ5dGVbMzNdWzNdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDk5Cgk9PQoJYXNzZXJ0CgoJLy8gZGF0YTogYnl0ZVtdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgYXBwZW5kTGVhZihieXRlW10sYnl0ZVszM11bM10pdm9pZAoJY2FsbHN1YiBhcHBlbmRMZWFmCglpbnQgMQoJcmV0dXJuCgovLyBhcHBlbmRMZWFmKGRhdGE6IGJ5dGVzLCBwYXRoOiBQYXRoKTogdm9pZAphcHBlbmRMZWFmOgoJcHJvdG8gMiAwCgoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjYzCgkvLyBhc3NlcnQoZGF0YSAhPT0gJycpCglmcmFtZV9kaWcgLTEgLy8gZGF0YTogYnl0ZXMKCWJ5dGUgMHggLy8gIiIKCSE9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9tZXJrbGUvbWVya2xlLmFsZ28udHM6NjQKCS8vIGFzc2VydCh0aGlzLnJvb3QudmFsdWUgPT09IHRoaXMuY2FsY1Jvb3QoaGV4KEVNUFRZX0hBU0gpIGFzIGJ5dGVzMzIsIHBhdGgpKQoJYnl0ZSAweDcyNmY2Zjc0IC8vICJyb290IgoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAtMiAvLyBwYXRoOiBQYXRoCglieXRlIDB4ZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCWJ5dGUgMHgKCWR1cAoJYj09Cglhc3NlcnQKCWV4dHJhY3QgMCAzMgoJY2FsbHN1YiBjYWxjUm9vdAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czo2NgoJLy8gdGhpcy5yb290LnZhbHVlID0gdGhpcy5jYWxjUm9vdChzaGEyNTYoZGF0YSksIHBhdGgpCglieXRlIDB4NzI2ZjZmNzQgLy8gInJvb3QiCglmcmFtZV9kaWcgLTIgLy8gcGF0aDogUGF0aAoJZnJhbWVfZGlnIC0xIC8vIGRhdGE6IGJ5dGVzCglzaGEyNTYKCWNhbGxzdWIgY2FsY1Jvb3QKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjY4CgkvLyB0aGlzLnNpemUudmFsdWUgPSB0aGlzLnNpemUudmFsdWUgKyAxCglieXRlIDB4NzM2OTdhNjUgLy8gInNpemUiCglkdXAKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMQoJKwoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gdXBkYXRlTGVhZihieXRlW10sYnl0ZVtdLGJ5dGVbMzNdWzNdKXZvaWQKYWJpX3JvdXRlX3VwZGF0ZUxlYWY6CgkvLyBwYXRoOiBieXRlWzMzXVszXQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJZHVwCglsZW4KCWludCA5OQoJPT0KCWFzc2VydAoKCS8vIG5ld0RhdGE6IGJ5dGVbXQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZXh0cmFjdCAyIDAKCgkvLyBvbGREYXRhOiBieXRlW10KCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSB1cGRhdGVMZWFmKGJ5dGVbXSxieXRlW10sYnl0ZVszM11bM10pdm9pZAoJY2FsbHN1YiB1cGRhdGVMZWFmCglpbnQgMQoJcmV0dXJuCgovLyB1cGRhdGVMZWFmKG9sZERhdGE6IGJ5dGVzLCBuZXdEYXRhOiBieXRlcywgcGF0aDogUGF0aCk6IHZvaWQKdXBkYXRlTGVhZjoKCXByb3RvIDMgMAoKCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czo3MgoJLy8gYXNzZXJ0KG5ld0RhdGEgIT09ICcnKQoJZnJhbWVfZGlnIC0yIC8vIG5ld0RhdGE6IGJ5dGVzCglieXRlIDB4IC8vICIiCgkhPQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjczCgkvLyBhc3NlcnQodGhpcy5yb290LnZhbHVlID09PSB0aGlzLmNhbGNSb290KHNoYTI1NihvbGREYXRhKSwgcGF0aCkpCglieXRlIDB4NzI2ZjZmNzQgLy8gInJvb3QiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIC0zIC8vIHBhdGg6IFBhdGgKCWZyYW1lX2RpZyAtMSAvLyBvbGREYXRhOiBieXRlcwoJc2hhMjU2CgljYWxsc3ViIGNhbGNSb290Cgk9PQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjc1CgkvLyB0aGlzLnJvb3QudmFsdWUgPSB0aGlzLmNhbGNSb290KHNoYTI1NihuZXdEYXRhKSwgcGF0aCkKCWJ5dGUgMHg3MjZmNmY3NCAvLyAicm9vdCIKCWZyYW1lX2RpZyAtMyAvLyBwYXRoOiBQYXRoCglmcmFtZV9kaWcgLTIgLy8gbmV3RGF0YTogYnl0ZXMKCXNoYTI1NgoJY2FsbHN1YiBjYWxjUm9vdAoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAidmVyaWZ5KGJ5dGVbXSxieXRlWzMzXVszXSl2b2lkIgoJbWV0aG9kICJhcHBlbmRMZWFmKGJ5dGVbXSxieXRlWzMzXVszXSl2b2lkIgoJbWV0aG9kICJ1cGRhdGVMZWFmKGJ5dGVbXSxieXRlW10sYnl0ZVszM11bM10pdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV92ZXJpZnkgYWJpX3JvdXRlX2FwcGVuZExlYWYgYWJpX3JvdXRlX3VwZGF0ZUxlYWYKCWVycgoKY2FsbF9EZWxldGVBcHBsaWNhdGlvbjoKCW1ldGhvZCAiZGVsZXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfZGVsZXRlQXBwbGljYXRpb24KCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNhbGxfRGVsZXRlQXBwbGljYXRpb24gKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCWVycgoKLy8gY2FsY0luaXRSb290KCk6IGJ5dGVzMzIKY2FsY0luaXRSb290OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czoxNwoJLy8gcmVzdWx0ID0gaGV4KEVNUFRZX0hBU0gpIGFzIGJ5dGVzMzIKCWJ5dGUgMHhlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoJYnl0ZSAweAoJZHVwCgliPT0KCWFzc2VydAoJZXh0cmFjdCAwIDMyCglmcmFtZV9idXJ5IDAgLy8gcmVzdWx0OiBieXRlWzMyXQoKCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czoxOQoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCBUUkVFX0RFUFRIOyBpID0gaSArIDEpCglpbnQgMAoJZnJhbWVfYnVyeSAxIC8vIGk6IHVpbnQ2NAoKKmZvcl8wOgoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjE5CgkvLyBpIDwgVFJFRV9ERVBUSAoJZnJhbWVfZGlnIDEgLy8gaTogdWludDY0CglpbnQgMwoJPAoJYnogKmZvcl8wX2VuZAoKCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czoyMAoJLy8gcmVzdWx0ID0gc2hhMjU2KHJlc3VsdCArIHJlc3VsdCkKCWZyYW1lX2RpZyAwIC8vIHJlc3VsdDogYnl0ZVszMl0KCWZyYW1lX2RpZyAwIC8vIHJlc3VsdDogYnl0ZVszMl0KCWNvbmNhdAoJc2hhMjU2CglmcmFtZV9idXJ5IDAgLy8gcmVzdWx0OiBieXRlWzMyXQoKCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czoxOQoJLy8gaSA9IGkgKyAxCglmcmFtZV9kaWcgMSAvLyBpOiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDEgLy8gaTogdWludDY0CgliICpmb3JfMAoKKmZvcl8wX2VuZDoKCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czoyMwoJLy8gcmV0dXJuIHJlc3VsdDsKCWZyYW1lX2RpZyAwIC8vIHJlc3VsdDogYnl0ZVszMl0KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCi8vIGhhc2hDb25jYXQobGVmdDogYnl0ZXMzMiwgcmlnaHQ6IGJ5dGVzMzIpOiBieXRlczMyCmhhc2hDb25jYXQ6Cglwcm90byAyIDEKCgkvLyBleGFtcGxlcy9tZXJrbGUvbWVya2xlLmFsZ28udHM6MjcKCS8vIHJldHVybiBzaGEyNTYobGVmdCArIHJpZ2h0KTsKCWZyYW1lX2RpZyAtMSAvLyBsZWZ0OiBieXRlczMyCglmcmFtZV9kaWcgLTIgLy8gcmlnaHQ6IGJ5dGVzMzIKCWNvbmNhdAoJc2hhMjU2CglyZXRzdWIKCi8vIGlzUmlnaHRTaWJsaW5nKGVsZW06IEJyYW5jaCk6IGJvb2xlYW4KaXNSaWdodFNpYmxpbmc6Cglwcm90byAxIDEKCgkvLyBleGFtcGxlcy9tZXJrbGUvbWVya2xlLmFsZ28udHM6MzEKCS8vIHJldHVybiBnZXRieXRlKGVsZW0sIDApID09PSBSSUdIVF9TSUJMSU5HX1BSRUZJWDsKCWZyYW1lX2RpZyAtMSAvLyBlbGVtOiBCcmFuY2gKCWludCAwCglnZXRieXRlCglpbnQgMTcwCgk9PQoJcmV0c3ViCgovLyBjYWxjUm9vdChsZWFmOiBieXRlczMyLCBwYXRoOiBQYXRoKTogYnl0ZXMzMgpjYWxjUm9vdDoKCXByb3RvIDIgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyBleGFtcGxlcy9tZXJrbGUvbWVya2xlLmFsZ28udHM6MzcKCS8vIGZvciAobGV0IGkgPSAwOyBpIDwgVFJFRV9ERVBUSDsgaSA9IGkgKyAxKQoJaW50IDAKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCipmb3JfMToKCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czozNwoJLy8gaSA8IFRSRUVfREVQVEgKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDMKCTwKCWJ6ICpmb3JfMV9lbmQKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJZnJhbWVfYnVyeSAxIC8vIGFjY2Vzc29yOiBhY2Nlc3Nvci8vMC8vZWxlbQoKCS8vICppZjBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9tZXJrbGUvbWVya2xlLmFsZ28udHM6NDAKCS8vIHRoaXMuaXNSaWdodFNpYmxpbmcoZWxlbSkKCWZyYW1lX2RpZyAtMiAvLyBwYXRoOiBQYXRoCglmcmFtZV9kaWcgMSAvLyBzYXZlZCBhY2Nlc3NvcjogYWNjZXNzb3IvLzAvL2VsZW0KCWludCAzMwoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnQgMzMKCWV4dHJhY3QzCgljYWxsc3ViIGlzUmlnaHRTaWJsaW5nCglieiAqaWYwX2Vsc2UKCgkvLyAqaWYwX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czo0MQoJLy8gcmVzdWx0ID0gdGhpcy5oYXNoQ29uY2F0KHJlc3VsdCwgZXh0cmFjdDMoZWxlbSwgMSwgMzIpIGFzIGJ5dGVzMzIpCglmcmFtZV9kaWcgLTIgLy8gcGF0aDogUGF0aAoJZnJhbWVfZGlnIDEgLy8gc2F2ZWQgYWNjZXNzb3I6IGFjY2Vzc29yLy8wLy9lbGVtCglpbnQgMzMKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50IDMzCglleHRyYWN0MwoJZXh0cmFjdCAxIDMyCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoJY29uY2F0CglkdXAKCWV4dHJhY3QgMzIgMAoJYnl0ZSAweAoJYj09Cglhc3NlcnQKCWV4dHJhY3QgMCAzMgoJZnJhbWVfZGlnIC0xIC8vIGxlYWY6IGJ5dGVzMzIKCWNhbGxzdWIgaGFzaENvbmNhdAoJZnJhbWVfYnVyeSAtMSAvLyByZXN1bHQ6IGJ5dGVzMzIKCWIgKmlmMF9lbmQKCippZjBfZWxzZToKCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czo0MwoJLy8gcmVzdWx0ID0gdGhpcy5oYXNoQ29uY2F0KGV4dHJhY3QzKGVsZW0sIDEsIDMyKSBhcyBieXRlczMyLCByZXN1bHQpCglmcmFtZV9kaWcgLTEgLy8gbGVhZjogYnl0ZXMzMgoJZnJhbWVfZGlnIC0yIC8vIHBhdGg6IFBhdGgKCWZyYW1lX2RpZyAxIC8vIHNhdmVkIGFjY2Vzc29yOiBhY2Nlc3Nvci8vMC8vZWxlbQoJaW50IDMzCgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludCAzMwoJZXh0cmFjdDMKCWV4dHJhY3QgMSAzMgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCWNvbmNhdAoJZHVwCglleHRyYWN0IDMyIDAKCWJ5dGUgMHgKCWI9PQoJYXNzZXJ0CglleHRyYWN0IDAgMzIKCWNhbGxzdWIgaGFzaENvbmNhdAoJZnJhbWVfYnVyeSAtMSAvLyByZXN1bHQ6IGJ5dGVzMzIKCippZjBfZW5kOgoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjM3CgkvLyBpID0gaSArIDEKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCWIgKmZvcl8xCgoqZm9yXzFfZW5kOgoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjQ3CgkvLyByZXR1cm4gcmVzdWx0OwoJZnJhbWVfZGlnIC0xIC8vIGxlYWY6IGJ5dGVzMzIKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCi8vIGRlbGV0ZUFwcGxpY2F0aW9uKCl2b2lkCiphYmlfcm91dGVfZGVsZXRlQXBwbGljYXRpb246CgkvLyBleGVjdXRlIGRlbGV0ZUFwcGxpY2F0aW9uKCl2b2lkCgljYWxsc3ViIGRlbGV0ZUFwcGxpY2F0aW9uCglpbnQgMQoJcmV0dXJuCgovLyBkZWxldGVBcHBsaWNhdGlvbigpOiB2b2lkCmRlbGV0ZUFwcGxpY2F0aW9uOgoJcHJvdG8gMCAwCgoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjUxCgkvLyB2ZXJpZnlBcHBDYWxsVHhuKHRoaXMudHhuLCB7IHNlbmRlcjogdGhpcy5hcHAuY3JlYXRvciB9KQoJLy8gdmVyaWZ5IHNlbmRlcgoJdHhuIFNlbmRlcgoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJYXBwX3BhcmFtc19nZXQgQXBwQ3JlYXRvcgoJcG9wCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIGNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CgkvLyBleGVjdXRlIGNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkCgljYWxsc3ViIGNyZWF0ZUFwcGxpY2F0aW9uCglpbnQgMQoJcmV0dXJuCgovLyBjcmVhdGVBcHBsaWNhdGlvbigpOiB2b2lkCmNyZWF0ZUFwcGxpY2F0aW9uOgoJcHJvdG8gMCAwCgoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjU1CgkvLyB0aGlzLnJvb3QudmFsdWUgPSB0aGlzLmNhbGNJbml0Um9vdCgpCglieXRlIDB4NzI2ZjZmNzQgLy8gInJvb3QiCgljYWxsc3ViIGNhbGNJbml0Um9vdAoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gdmVyaWZ5KGJ5dGVbXSxieXRlWzMzXVszXSl2b2lkCiphYmlfcm91dGVfdmVyaWZ5OgoJLy8gcGF0aDogYnl0ZVszM11bM10KCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgOTkKCT09Cglhc3NlcnQKCgkvLyBkYXRhOiBieXRlW10KCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSB2ZXJpZnkoYnl0ZVtdLGJ5dGVbMzNdWzNdKXZvaWQKCWNhbGxzdWIgdmVyaWZ5CglpbnQgMQoJcmV0dXJuCgovLyB2ZXJpZnkoZGF0YTogYnl0ZXMsIHBhdGg6IFBhdGgpOiB2b2lkCnZlcmlmeToKCXByb3RvIDIgMAoKCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czo1OQoJLy8gYXNzZXJ0KHRoaXMucm9vdC52YWx1ZSA9PT0gdGhpcy5jYWxjUm9vdChzaGEyNTYoZGF0YSksIHBhdGgpKQoJYnl0ZSAweDcyNmY2Zjc0IC8vICJyb290IgoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAtMiAvLyBwYXRoOiBQYXRoCglmcmFtZV9kaWcgLTEgLy8gZGF0YTogYnl0ZXMKCXNoYTI1NgoJY2FsbHN1YiBjYWxjUm9vdAoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBhcHBlbmRMZWFmKGJ5dGVbXSxieXRlWzMzXVszXSl2b2lkCiphYmlfcm91dGVfYXBwZW5kTGVhZjoKCS8vIHBhdGg6IGJ5dGVbMzNdWzNdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDk5Cgk9PQoJYXNzZXJ0CgoJLy8gZGF0YTogYnl0ZVtdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgYXBwZW5kTGVhZihieXRlW10sYnl0ZVszM11bM10pdm9pZAoJY2FsbHN1YiBhcHBlbmRMZWFmCglpbnQgMQoJcmV0dXJuCgovLyBhcHBlbmRMZWFmKGRhdGE6IGJ5dGVzLCBwYXRoOiBQYXRoKTogdm9pZAphcHBlbmRMZWFmOgoJcHJvdG8gMiAwCgoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjYzCgkvLyBhc3NlcnQoZGF0YSAhPT0gJycpCglmcmFtZV9kaWcgLTEgLy8gZGF0YTogYnl0ZXMKCWJ5dGUgMHggLy8gIiIKCSE9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9tZXJrbGUvbWVya2xlLmFsZ28udHM6NjQKCS8vIGFzc2VydCh0aGlzLnJvb3QudmFsdWUgPT09IHRoaXMuY2FsY1Jvb3QoaGV4KEVNUFRZX0hBU0gpIGFzIGJ5dGVzMzIsIHBhdGgpKQoJYnl0ZSAweDcyNmY2Zjc0IC8vICJyb290IgoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAtMiAvLyBwYXRoOiBQYXRoCglieXRlIDB4ZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCWJ5dGUgMHgKCWR1cAoJYj09Cglhc3NlcnQKCWV4dHJhY3QgMCAzMgoJY2FsbHN1YiBjYWxjUm9vdAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czo2NgoJLy8gdGhpcy5yb290LnZhbHVlID0gdGhpcy5jYWxjUm9vdChzaGEyNTYoZGF0YSksIHBhdGgpCglieXRlIDB4NzI2ZjZmNzQgLy8gInJvb3QiCglmcmFtZV9kaWcgLTIgLy8gcGF0aDogUGF0aAoJZnJhbWVfZGlnIC0xIC8vIGRhdGE6IGJ5dGVzCglzaGEyNTYKCWNhbGxzdWIgY2FsY1Jvb3QKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjY4CgkvLyB0aGlzLnNpemUudmFsdWUgPSB0aGlzLnNpemUudmFsdWUgKyAxCglieXRlIDB4NzM2OTdhNjUgLy8gInNpemUiCglkdXAKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMQoJKwoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gdXBkYXRlTGVhZihieXRlW10sYnl0ZVtdLGJ5dGVbMzNdWzNdKXZvaWQKKmFiaV9yb3V0ZV91cGRhdGVMZWFmOgoJLy8gcGF0aDogYnl0ZVszM11bM10KCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWR1cAoJbGVuCglpbnQgOTkKCT09Cglhc3NlcnQKCgkvLyBuZXdEYXRhOiBieXRlW10KCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWV4dHJhY3QgMiAwCgoJLy8gb2xkRGF0YTogYnl0ZVtdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgdXBkYXRlTGVhZihieXRlW10sYnl0ZVtdLGJ5dGVbMzNdWzNdKXZvaWQKCWNhbGxzdWIgdXBkYXRlTGVhZgoJaW50IDEKCXJldHVybgoKLy8gdXBkYXRlTGVhZihvbGREYXRhOiBieXRlcywgbmV3RGF0YTogYnl0ZXMsIHBhdGg6IFBhdGgpOiB2b2lkCnVwZGF0ZUxlYWY6Cglwcm90byAzIDAKCgkvLyBleGFtcGxlcy9tZXJrbGUvbWVya2xlLmFsZ28udHM6NzIKCS8vIGFzc2VydChuZXdEYXRhICE9PSAnJykKCWZyYW1lX2RpZyAtMiAvLyBuZXdEYXRhOiBieXRlcwoJYnl0ZSAweCAvLyAiIgoJIT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czo3MwoJLy8gYXNzZXJ0KHRoaXMucm9vdC52YWx1ZSA9PT0gdGhpcy5jYWxjUm9vdChzaGEyNTYob2xkRGF0YSksIHBhdGgpKQoJYnl0ZSAweDcyNmY2Zjc0IC8vICJyb290IgoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAtMyAvLyBwYXRoOiBQYXRoCglmcmFtZV9kaWcgLTEgLy8gb2xkRGF0YTogYnl0ZXMKCXNoYTI1NgoJY2FsbHN1YiBjYWxjUm9vdAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czo3NQoJLy8gdGhpcy5yb290LnZhbHVlID0gdGhpcy5jYWxjUm9vdChzaGEyNTYobmV3RGF0YSksIHBhdGgpCglieXRlIDB4NzI2ZjZmNzQgLy8gInJvb3QiCglmcmFtZV9kaWcgLTMgLy8gcGF0aDogUGF0aAoJZnJhbWVfZGlnIC0yIC8vIG5ld0RhdGE6IGJ5dGVzCglzaGEyNTYKCWNhbGxzdWIgY2FsY1Jvb3QKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInZlcmlmeShieXRlW10sYnl0ZVszM11bM10pdm9pZCIKCW1ldGhvZCAiYXBwZW5kTGVhZihieXRlW10sYnl0ZVszM11bM10pdm9pZCIKCW1ldGhvZCAidXBkYXRlTGVhZihieXRlW10sYnl0ZVtdLGJ5dGVbMzNdWzNdKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3ZlcmlmeSAqYWJpX3JvdXRlX2FwcGVuZExlYWYgKmFiaV9yb3V0ZV91cGRhdGVMZWFmCgllcnIKCipjYWxsX0RlbGV0ZUFwcGxpY2F0aW9uOgoJbWV0aG9kICJkZWxldGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfZGVsZXRlQXBwbGljYXRpb24KCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/examples/non_abi/artifacts/NonABIExample.approval.teal b/examples/non_abi/artifacts/NonABIExample.approval.teal index ccf72dadb..8f6ec2b4a 100644 --- a/examples/non_abi/artifacts/NonABIExample.approval.teal +++ b/examples/non_abi/artifacts/NonABIExample.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // !!!! WARNING: This contract is *NOT* ARC4 compliant. It may contain ABI methods, but it also allows app calls where the first argument does NOT match an ABI selector @@ -9,16 +9,16 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // add(x: number, y: number): number @@ -33,7 +33,7 @@ add: retsub // abiAdd(uint64,uint64)uint64 -abi_route_abiAdd: +*abi_route_abiAdd: // The ABI return prefix byte 0x151f7c75 @@ -93,20 +93,20 @@ nonAbiAdd: log retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "abiAdd(uint64,uint64)uint64" txna ApplicationArgs 0 - match abi_route_abiAdd + match *abi_route_abiAdd // !!!! WARNING: non-ABI routing callsub nonAbiAdd \ No newline at end of file diff --git a/examples/non_abi/artifacts/NonABIExample.arc32.json b/examples/non_abi/artifacts/NonABIExample.arc32.json index e882b47b9..a1ad74236 100644 --- a/examples/non_abi/artifacts/NonABIExample.arc32.json +++ b/examples/non_abi/artifacts/NonABIExample.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyAhISEhIFdBUk5JTkc6IFRoaXMgY29udHJhY3QgaXMgKk5PVCogQVJDNCBjb21wbGlhbnQuIEl0IG1heSBjb250YWluIEFCSSBtZXRob2RzLCBidXQgaXQgYWxzbyBhbGxvd3MgYXBwIGNhbGxzIHdoZXJlIHRoZSBmaXJzdCBhcmd1bWVudCBkb2VzIE5PVCBtYXRjaCBhbiBBQkkgc2VsZWN0b3IKCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBhZGQoeDogbnVtYmVyLCB5OiBudW1iZXIpOiBudW1iZXIKYWRkOgoJcHJvdG8gMiAxCgoJLy8gZXhhbXBsZXMvbm9uX2FiaS9ub25fYWJpLmFsZ28udHM6NgoJLy8gcmV0dXJuIHggKyB5OwoJZnJhbWVfZGlnIC0xIC8vIHg6IG51bWJlcgoJZnJhbWVfZGlnIC0yIC8vIHk6IG51bWJlcgoJKwoJcmV0c3ViCgovLyBhYmlBZGQodWludDY0LHVpbnQ2NCl1aW50NjQKYWJpX3JvdXRlX2FiaUFkZDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8geTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8geDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBhYmlBZGQodWludDY0LHVpbnQ2NCl1aW50NjQKCWNhbGxzdWIgYWJpQWRkCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYWJpQWRkKHg6IG51bWJlciwgeTogbnVtYmVyKTogbnVtYmVyCmFiaUFkZDoKCXByb3RvIDIgMQoKCS8vIGV4YW1wbGVzL25vbl9hYmkvbm9uX2FiaS5hbGdvLnRzOjEwCgkvLyByZXR1cm4gdGhpcy5hZGQoeCwgeSk7CglmcmFtZV9kaWcgLTIgLy8geTogbnVtYmVyCglmcmFtZV9kaWcgLTEgLy8geDogbnVtYmVyCgljYWxsc3ViIGFkZAoJcmV0c3ViCgovLyBub25BYmlBZGQoKTogdm9pZApub25BYmlBZGQ6Cglwcm90byAwIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gZXhhbXBsZXMvbm9uX2FiaS9ub25fYWJpLmFsZ28udHM6MTUKCS8vIHggPSBidG9pKHRoaXMudHhuLmFwcGxpY2F0aW9uQXJncyFbMF0pCgl0eG4gQXBwbGljYXRpb25BcmdzIDAKCWJ0b2kKCWZyYW1lX2J1cnkgMCAvLyB4OiB1aW50NjQKCgkvLyBleGFtcGxlcy9ub25fYWJpL25vbl9hYmkuYWxnby50czoxNgoJLy8geSA9IGJ0b2kodGhpcy50eG4uYXBwbGljYXRpb25BcmdzIVsxXSkKCXR4biBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoJZnJhbWVfYnVyeSAxIC8vIHk6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL25vbl9hYmkvbm9uX2FiaS5hbGdvLnRzOjE3CgkvLyBsb2coaXRvYih0aGlzLmFkZCh4LCB5KSkpCglmcmFtZV9kaWcgMSAvLyB5OiB1aW50NjQKCWZyYW1lX2RpZyAwIC8vIHg6IHVpbnQ2NAoJY2FsbHN1YiBhZGQKCWl0b2IKCWxvZwoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJhYmlBZGQodWludDY0LHVpbnQ2NCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfYWJpQWRkCgoJLy8gISEhISBXQVJOSU5HOiBub24tQUJJIHJvdXRpbmcKCWNhbGxzdWIgbm9uQWJpQWRk", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyAhISEhIFdBUk5JTkc6IFRoaXMgY29udHJhY3QgaXMgKk5PVCogQVJDNCBjb21wbGlhbnQuIEl0IG1heSBjb250YWluIEFCSSBtZXRob2RzLCBidXQgaXQgYWxzbyBhbGxvd3MgYXBwIGNhbGxzIHdoZXJlIHRoZSBmaXJzdCBhcmd1bWVudCBkb2VzIE5PVCBtYXRjaCBhbiBBQkkgc2VsZWN0b3IKCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBhZGQoeDogbnVtYmVyLCB5OiBudW1iZXIpOiBudW1iZXIKYWRkOgoJcHJvdG8gMiAxCgoJLy8gZXhhbXBsZXMvbm9uX2FiaS9ub25fYWJpLmFsZ28udHM6NgoJLy8gcmV0dXJuIHggKyB5OwoJZnJhbWVfZGlnIC0xIC8vIHg6IG51bWJlcgoJZnJhbWVfZGlnIC0yIC8vIHk6IG51bWJlcgoJKwoJcmV0c3ViCgovLyBhYmlBZGQodWludDY0LHVpbnQ2NCl1aW50NjQKKmFiaV9yb3V0ZV9hYmlBZGQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIHk6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIHg6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgYWJpQWRkKHVpbnQ2NCx1aW50NjQpdWludDY0CgljYWxsc3ViIGFiaUFkZAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFiaUFkZCh4OiBudW1iZXIsIHk6IG51bWJlcik6IG51bWJlcgphYmlBZGQ6Cglwcm90byAyIDEKCgkvLyBleGFtcGxlcy9ub25fYWJpL25vbl9hYmkuYWxnby50czoxMAoJLy8gcmV0dXJuIHRoaXMuYWRkKHgsIHkpOwoJZnJhbWVfZGlnIC0yIC8vIHk6IG51bWJlcgoJZnJhbWVfZGlnIC0xIC8vIHg6IG51bWJlcgoJY2FsbHN1YiBhZGQKCXJldHN1YgoKLy8gbm9uQWJpQWRkKCk6IHZvaWQKbm9uQWJpQWRkOgoJcHJvdG8gMCAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIGV4YW1wbGVzL25vbl9hYmkvbm9uX2FiaS5hbGdvLnRzOjE1CgkvLyB4ID0gYnRvaSh0aGlzLnR4bi5hcHBsaWNhdGlvbkFyZ3MhWzBdKQoJdHhuIEFwcGxpY2F0aW9uQXJncyAwCglidG9pCglmcmFtZV9idXJ5IDAgLy8geDogdWludDY0CgoJLy8gZXhhbXBsZXMvbm9uX2FiaS9ub25fYWJpLmFsZ28udHM6MTYKCS8vIHkgPSBidG9pKHRoaXMudHhuLmFwcGxpY2F0aW9uQXJncyFbMV0pCgl0eG4gQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCWZyYW1lX2J1cnkgMSAvLyB5OiB1aW50NjQKCgkvLyBleGFtcGxlcy9ub25fYWJpL25vbl9hYmkuYWxnby50czoxNwoJLy8gbG9nKGl0b2IodGhpcy5hZGQoeCwgeSkpKQoJZnJhbWVfZGlnIDEgLy8geTogdWludDY0CglmcmFtZV9kaWcgMCAvLyB4OiB1aW50NjQKCWNhbGxzdWIgYWRkCglpdG9iCglsb2cKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImFiaUFkZCh1aW50NjQsdWludDY0KXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYWJpQWRkCgoJLy8gISEhISBXQVJOSU5HOiBub24tQUJJIHJvdXRpbmcKCWNhbGxzdWIgbm9uQWJpQWRk", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/examples/optin-lsig/artifacts/LsigExample.lsig.teal b/examples/optin-lsig/artifacts/LsigExample.lsig.teal index e17ab850f..fa751d2ee 100644 --- a/examples/optin-lsig/artifacts/LsigExample.lsig.teal +++ b/examples/optin-lsig/artifacts/LsigExample.lsig.teal @@ -1,15 +1,15 @@ #pragma version 10 //#pragma mode logicsig -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // The address of this logic signature is R3AXSKEZHFTAMBE7AVWQDHXIPPOUJ3WJBOSR7CQIZCIN6FQLYLKGYNKLDA -b route_logic +b *route_logic // logic()void -route_logic: +*route_logic: // execute logic()void callsub logic int 1 diff --git a/examples/simple/artifacts/Simple.approval.teal b/examples/simple/artifacts/Simple.approval.teal index 39ebaef19..d92b9d2dc 100644 --- a/examples/simple/artifacts/Simple.approval.teal +++ b/examples/simple/artifacts/Simple.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,16 +9,16 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // incrementCounter(i: uint64): void @@ -36,7 +36,7 @@ incrementCounter: retsub // incr(uint64)void -abi_route_incr: +*abi_route_incr: // i: uint64 txna ApplicationArgs 1 btoi @@ -57,7 +57,7 @@ incr: retsub // decr(uint64)void -abi_route_decr: +*abi_route_decr: // i: uint64 txna ApplicationArgs 1 btoi @@ -82,7 +82,7 @@ decr: retsub // add(uint256,uint256)uint256 -abi_route_add: +*abi_route_add: // The ABI return prefix byte 0x151f7c75 @@ -135,7 +135,7 @@ add: retsub // sub(uint256,uint256)uint256 -abi_route_sub: +*abi_route_sub: // The ABI return prefix byte 0x151f7c75 @@ -187,21 +187,21 @@ sub: b- retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "incr(uint64)void" method "decr(uint64)void" method "add(uint256,uint256)uint256" method "sub(uint256,uint256)uint256" txna ApplicationArgs 0 - match abi_route_incr abi_route_decr abi_route_add abi_route_sub + match *abi_route_incr *abi_route_decr *abi_route_add *abi_route_sub err \ No newline at end of file diff --git a/examples/simple/artifacts/Simple.arc32.json b/examples/simple/artifacts/Simple.arc32.json index 8d3d86fab..e7a679634 100644 --- a/examples/simple/artifacts/Simple.arc32.json +++ b/examples/simple/artifacts/Simple.arc32.json @@ -59,7 +59,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBpbmNyZW1lbnRDb3VudGVyKGk6IHVpbnQ2NCk6IHZvaWQKaW5jcmVtZW50Q291bnRlcjoKCXByb3RvIDEgMAoKCS8vIGV4YW1wbGVzL3NpbXBsZS9zaW1wbGUuYWxnby50czo3CgkvLyB0aGlzLmNvdW50ZXIudmFsdWUgPSB0aGlzLmNvdW50ZXIudmFsdWUgKyBpCglieXRlIDB4NjM2Zjc1NmU3NDY1NzIgLy8gImNvdW50ZXIiCglkdXAKCWFwcF9nbG9iYWxfZ2V0CglmcmFtZV9kaWcgLTEgLy8gaTogdWludDY0CgkrCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBpbmNyKHVpbnQ2NCl2b2lkCmFiaV9yb3V0ZV9pbmNyOgoJLy8gaTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBpbmNyKHVpbnQ2NCl2b2lkCgljYWxsc3ViIGluY3IKCWludCAxCglyZXR1cm4KCi8vIGluY3IoaTogdWludDY0KTogdm9pZAppbmNyOgoJcHJvdG8gMSAwCgoJLy8gZXhhbXBsZXMvc2ltcGxlL3NpbXBsZS5hbGdvLnRzOjExCgkvLyB0aGlzLmluY3JlbWVudENvdW50ZXIoaSkKCWZyYW1lX2RpZyAtMSAvLyBpOiB1aW50NjQKCWNhbGxzdWIgaW5jcmVtZW50Q291bnRlcgoJcmV0c3ViCgovLyBkZWNyKHVpbnQ2NCl2b2lkCmFiaV9yb3V0ZV9kZWNyOgoJLy8gaTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBkZWNyKHVpbnQ2NCl2b2lkCgljYWxsc3ViIGRlY3IKCWludCAxCglyZXR1cm4KCi8vIGRlY3IoaTogdWludDY0KTogdm9pZApkZWNyOgoJcHJvdG8gMSAwCgoJLy8gZXhhbXBsZXMvc2ltcGxlL3NpbXBsZS5hbGdvLnRzOjE1CgkvLyB0aGlzLmNvdW50ZXIudmFsdWUgPSB0aGlzLmNvdW50ZXIudmFsdWUgLSBpCglieXRlIDB4NjM2Zjc1NmU3NDY1NzIgLy8gImNvdW50ZXIiCglkdXAKCWFwcF9nbG9iYWxfZ2V0CglmcmFtZV9kaWcgLTEgLy8gaTogdWludDY0CgktCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBhZGQodWludDI1Nix1aW50MjU2KXVpbnQyNTYKYWJpX3JvdXRlX2FkZDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAzMgoJPT0KCWFzc2VydAoKCS8vIGE6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09Cglhc3NlcnQKCgkvLyBleGVjdXRlIGFkZCh1aW50MjU2LHVpbnQyNTYpdWludDI1NgoJY2FsbHN1YiBhZGQKCWR1cAoJYml0bGVuCglpbnQgMjU2Cgk8PQoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAzMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFkZChhOiB1aW50MjU2LCBiOiB1aW50MjU2KTogdWludDI1NgphZGQ6Cglwcm90byAyIDEKCgkvLyBleGFtcGxlcy9zaW1wbGUvc2ltcGxlLmFsZ28udHM6MTkKCS8vIHJldHVybiBhICsgYjsKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50MjU2CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDI1NgoJYisKCXJldHN1YgoKLy8gc3ViKHVpbnQyNTYsdWludDI1Nil1aW50MjU2CmFiaV9yb3V0ZV9zdWI6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMzIKCT09Cglhc3NlcnQKCgkvLyBhOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBzdWIodWludDI1Nix1aW50MjU2KXVpbnQyNTYKCWNhbGxzdWIgc3ViCglkdXAKCWJpdGxlbgoJaW50IDI1NgoJPD0KCWFzc2VydAoJYnl0ZSAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMzIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzdWIoYTogdWludDI1NiwgYjogdWludDI1Nik6IHVpbnQyNTYKc3ViOgoJcHJvdG8gMiAxCgoJLy8gZXhhbXBsZXMvc2ltcGxlL3NpbXBsZS5hbGdvLnRzOjIzCgkvLyByZXR1cm4gYSAtIGI7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDI1NgoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQyNTYKCWItCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgImluY3IodWludDY0KXZvaWQiCgltZXRob2QgImRlY3IodWludDY0KXZvaWQiCgltZXRob2QgImFkZCh1aW50MjU2LHVpbnQyNTYpdWludDI1NiIKCW1ldGhvZCAic3ViKHVpbnQyNTYsdWludDI1Nil1aW50MjU2IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2luY3IgYWJpX3JvdXRlX2RlY3IgYWJpX3JvdXRlX2FkZCBhYmlfcm91dGVfc3ViCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBpbmNyZW1lbnRDb3VudGVyKGk6IHVpbnQ2NCk6IHZvaWQKaW5jcmVtZW50Q291bnRlcjoKCXByb3RvIDEgMAoKCS8vIGV4YW1wbGVzL3NpbXBsZS9zaW1wbGUuYWxnby50czo3CgkvLyB0aGlzLmNvdW50ZXIudmFsdWUgPSB0aGlzLmNvdW50ZXIudmFsdWUgKyBpCglieXRlIDB4NjM2Zjc1NmU3NDY1NzIgLy8gImNvdW50ZXIiCglkdXAKCWFwcF9nbG9iYWxfZ2V0CglmcmFtZV9kaWcgLTEgLy8gaTogdWludDY0CgkrCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBpbmNyKHVpbnQ2NCl2b2lkCiphYmlfcm91dGVfaW5jcjoKCS8vIGk6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgaW5jcih1aW50NjQpdm9pZAoJY2FsbHN1YiBpbmNyCglpbnQgMQoJcmV0dXJuCgovLyBpbmNyKGk6IHVpbnQ2NCk6IHZvaWQKaW5jcjoKCXByb3RvIDEgMAoKCS8vIGV4YW1wbGVzL3NpbXBsZS9zaW1wbGUuYWxnby50czoxMQoJLy8gdGhpcy5pbmNyZW1lbnRDb3VudGVyKGkpCglmcmFtZV9kaWcgLTEgLy8gaTogdWludDY0CgljYWxsc3ViIGluY3JlbWVudENvdW50ZXIKCXJldHN1YgoKLy8gZGVjcih1aW50NjQpdm9pZAoqYWJpX3JvdXRlX2RlY3I6CgkvLyBpOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGRlY3IodWludDY0KXZvaWQKCWNhbGxzdWIgZGVjcgoJaW50IDEKCXJldHVybgoKLy8gZGVjcihpOiB1aW50NjQpOiB2b2lkCmRlY3I6Cglwcm90byAxIDAKCgkvLyBleGFtcGxlcy9zaW1wbGUvc2ltcGxlLmFsZ28udHM6MTUKCS8vIHRoaXMuY291bnRlci52YWx1ZSA9IHRoaXMuY291bnRlci52YWx1ZSAtIGkKCWJ5dGUgMHg2MzZmNzU2ZTc0NjU3MiAvLyAiY291bnRlciIKCWR1cAoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAtMSAvLyBpOiB1aW50NjQKCS0KCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIGFkZCh1aW50MjU2LHVpbnQyNTYpdWludDI1NgoqYWJpX3JvdXRlX2FkZDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAzMgoJPT0KCWFzc2VydAoKCS8vIGE6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09Cglhc3NlcnQKCgkvLyBleGVjdXRlIGFkZCh1aW50MjU2LHVpbnQyNTYpdWludDI1NgoJY2FsbHN1YiBhZGQKCWR1cAoJYml0bGVuCglpbnQgMjU2Cgk8PQoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAzMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFkZChhOiB1aW50MjU2LCBiOiB1aW50MjU2KTogdWludDI1NgphZGQ6Cglwcm90byAyIDEKCgkvLyBleGFtcGxlcy9zaW1wbGUvc2ltcGxlLmFsZ28udHM6MTkKCS8vIHJldHVybiBhICsgYjsKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50MjU2CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDI1NgoJYisKCXJldHN1YgoKLy8gc3ViKHVpbnQyNTYsdWludDI1Nil1aW50MjU2CiphYmlfcm91dGVfc3ViOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDMyCgk9PQoJYXNzZXJ0CgoJLy8gYTogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCWFzc2VydAoKCS8vIGV4ZWN1dGUgc3ViKHVpbnQyNTYsdWludDI1Nil1aW50MjU2CgljYWxsc3ViIHN1YgoJZHVwCgliaXRsZW4KCWludCAyNTYKCTw9Cglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50IDMyCgktCglzd2FwCglzdWJzdHJpbmczCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gc3ViKGE6IHVpbnQyNTYsIGI6IHVpbnQyNTYpOiB1aW50MjU2CnN1YjoKCXByb3RvIDIgMQoKCS8vIGV4YW1wbGVzL3NpbXBsZS9zaW1wbGUuYWxnby50czoyMwoJLy8gcmV0dXJuIGEgLSBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQyNTYKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50MjU2CgliLQoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiaW5jcih1aW50NjQpdm9pZCIKCW1ldGhvZCAiZGVjcih1aW50NjQpdm9pZCIKCW1ldGhvZCAiYWRkKHVpbnQyNTYsdWludDI1Nil1aW50MjU2IgoJbWV0aG9kICJzdWIodWludDI1Nix1aW50MjU2KXVpbnQyNTYiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2luY3IgKmFiaV9yb3V0ZV9kZWNyICphYmlfcm91dGVfYWRkICphYmlfcm91dGVfc3ViCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBleGFtcGxlcy9zaW1wbGUvc2ltcGxlLmFsZ28udHM6MjcKLy8gdGhpcy5pbmNyZW1lbnRDb3VudGVyKDEpCmludCAxCmNhbGxzdWIgaW5jcmVtZW50Q291bnRlcgppbnQgMQpyZXR1cm4KCi8vIGluY3JlbWVudENvdW50ZXIoaTogdWludDY0KTogdm9pZAppbmNyZW1lbnRDb3VudGVyOgoJcHJvdG8gMSAwCgoJLy8gZXhhbXBsZXMvc2ltcGxlL3NpbXBsZS5hbGdvLnRzOjcKCS8vIHRoaXMuY291bnRlci52YWx1ZSA9IHRoaXMuY291bnRlci52YWx1ZSArIGkKCWJ5dGUgMHg2MzZmNzU2ZTc0NjU3MiAvLyAiY291bnRlciIKCWR1cAoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAtMSAvLyBpOiB1aW50NjQKCSsKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWI=" }, "contract": { diff --git a/examples/tuple_in_box/tealscript_artifacts/ContactsApp.approval.teal b/examples/tuple_in_box/tealscript_artifacts/ContactsApp.approval.teal index b3bd4ba96..25be8c83f 100644 --- a/examples/tuple_in_box/tealscript_artifacts/ContactsApp.approval.teal +++ b/examples/tuple_in_box/tealscript_artifacts/ContactsApp.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // setMyContact(string,string)void -abi_route_setMyContact: +*abi_route_setMyContact: // company: string txna ApplicationArgs 2 extract 2 0 @@ -55,7 +55,7 @@ setMyContact: extract 6 2 swap concat - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element frame_dig -2 // company: string dup len @@ -63,7 +63,7 @@ setMyContact: extract 6 2 swap concat - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element pop // pop head offset concat // concat head and tail frame_bury 0 // contact: Contact @@ -85,7 +85,7 @@ setMyContact: retsub // addContact(string,string,address)void -abi_route_addContact: +*abi_route_addContact: // address: address txna ApplicationArgs 3 dup @@ -126,7 +126,7 @@ addContact: extract 6 2 swap concat - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element frame_dig -2 // company: string dup len @@ -134,7 +134,7 @@ addContact: extract 6 2 swap concat - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element pop // pop head offset concat // concat head and tail frame_bury 0 // contact: Contact @@ -150,7 +150,7 @@ addContact: retsub // updateContactField(string,string,address)void -abi_route_updateContactField: +*abi_route_updateContactField: // address: address txna ApplicationArgs 3 dup @@ -176,15 +176,15 @@ abi_route_updateContactField: updateContactField: proto 3 0 - // if0_condition + // *if0_condition // examples/tuple_in_box/app.algo.ts:24 // field === 'name' frame_dig -1 // field: string byte 0x6e616d65 // "name" == - bz if0_elseif1_condition + bz *if0_elseif1_condition - // if0_consequent + // *if0_consequent // examples/tuple_in_box/app.algo.ts:25 // this.contacts(address).value.name = value frame_dig -3 // address: Address @@ -232,12 +232,12 @@ updateContactField: concat concat store 255 // full array - callsub get_length_difference + callsub *get_length_difference load 250 // length difference load 251 // element head offset int 2 + // head ofset - callsub update_dynamic_head + callsub *update_dynamic_head load 255 // full array frame_dig -3 // address: Address dup @@ -245,17 +245,17 @@ updateContactField: pop swap box_put - b if0_end + b *if0_end -if0_elseif1_condition: +*if0_elseif1_condition: // examples/tuple_in_box/app.algo.ts:26 // field === 'company' frame_dig -1 // field: string byte 0x636f6d70616e79 // "company" == - bz if0_else + bz *if0_else - // if0_elseif1_consequent + // *if0_elseif1_consequent // examples/tuple_in_box/app.algo.ts:27 // this.contacts(address).value.company = value frame_dig -3 // address: Address @@ -303,7 +303,7 @@ if0_elseif1_condition: concat concat store 255 // full array - callsub get_length_difference + callsub *get_length_difference load 255 // full array frame_dig -3 // address: Address dup @@ -311,16 +311,16 @@ if0_elseif1_condition: pop swap box_put - b if0_end + b *if0_end -if0_else: +*if0_else: err // 'Invalid field' -if0_end: +*if0_end: retsub // verifyContactName(string,address)void -abi_route_verifyContactName: +*abi_route_verifyContactName: // address: address txna ApplicationArgs 2 dup @@ -368,26 +368,26 @@ verifyContactName: assert retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "setMyContact(string,string)void" method "addContact(string,string,address)void" method "updateContactField(string,string,address)void" method "verifyContactName(string,address)void" txna ApplicationArgs 0 - match abi_route_setMyContact abi_route_addContact abi_route_updateContactField abi_route_verifyContactName + match *abi_route_setMyContact *abi_route_addContact *abi_route_updateContactField *abi_route_verifyContactName err -process_dynamic_tuple_element: +*process_dynamic_tuple_element: proto 4 3 frame_dig -4 // tuple head frame_dig -2 // head offset @@ -411,22 +411,22 @@ process_dynamic_tuple_element: frame_dig -2 // head offset retsub -update_dynamic_head: +*update_dynamic_head: proto 2 0 frame_dig -2 // length difference load 255 // full array frame_dig -1 // dynamic array offset extract_uint16 // extract dynamic array offset load 249 // subtract head difference - bz subtract_head_difference + bz *subtract_head_difference + // add difference to offset - b end_calc_new_head + b *end_calc_new_head -subtract_head_difference: +*subtract_head_difference: swap - // subtract difference from offet -end_calc_new_head: +*end_calc_new_head: itob // convert to bytes extract 6 2 // convert to uint16 load 255 // full array @@ -437,27 +437,27 @@ end_calc_new_head: store 255 // full array retsub -get_length_difference: +*get_length_difference: load 252 // new element len // length of new element load 253 // element length < - bnz swapped_difference + bnz *swapped_difference load 252 // new element len // length of new element load 253 // element length int 1 store 249 // subtract head difference - b get_difference + b *get_difference -swapped_difference: +*swapped_difference: load 253 // element length load 252 // new element len // length of new element int 0 store 249 // subtract head difference -get_difference: +*get_difference: - // get length difference store 250 // length difference retsub \ No newline at end of file diff --git a/examples/tuple_in_box/tealscript_artifacts/ContactsApp.arc32.json b/examples/tuple_in_box/tealscript_artifacts/ContactsApp.arc32.json index be7a0c07f..87dcc4bb2 100644 --- a/examples/tuple_in_box/tealscript_artifacts/ContactsApp.arc32.json +++ b/examples/tuple_in_box/tealscript_artifacts/ContactsApp.arc32.json @@ -59,7 +59,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzZXRNeUNvbnRhY3Qoc3RyaW5nLHN0cmluZyl2b2lkCmFiaV9yb3V0ZV9zZXRNeUNvbnRhY3Q6CgkvLyBjb21wYW55OiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWV4dHJhY3QgMiAwCgoJLy8gbmFtZTogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgc2V0TXlDb250YWN0KHN0cmluZyxzdHJpbmcpdm9pZAoJY2FsbHN1YiBzZXRNeUNvbnRhY3QKCWludCAxCglyZXR1cm4KCi8vIHNldE15Q29udGFjdChuYW1lOiBzdHJpbmcsIGNvbXBhbnk6IHN0cmluZyk6IHZvaWQKc2V0TXlDb250YWN0OgoJcHJvdG8gMiAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyBleGFtcGxlcy90dXBsZV9pbl9ib3gvYXBwLmFsZ28udHM6MTIKCS8vIGNvbnRhY3Q6IENvbnRhY3QgPSB7IG5hbWU6IG5hbWUsIGNvbXBhbnk6IGNvbXBhbnkgfQoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglieXRlIDB4MDAwNCAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0CglmcmFtZV9kaWcgLTEgLy8gbmFtZTogc3RyaW5nCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY2FsbHN1YiBwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJZnJhbWVfZGlnIC0yIC8vIGNvbXBhbnk6IHN0cmluZwoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNhbGxzdWIgcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJZnJhbWVfYnVyeSAwIC8vIGNvbnRhY3Q6IENvbnRhY3QKCgkvLyBleGFtcGxlcy90dXBsZV9pbl9ib3gvYXBwLmFsZ28udHM6MTQKCS8vIHRoaXMubXlDb250YWN0LnZhbHVlID0gY29udGFjdAoJYnl0ZSAweDZkNzk0MzZmNmU3NDYxNjM3NCAvLyAibXlDb250YWN0IgoJZnJhbWVfZGlnIDAgLy8gY29udGFjdDogQ29udGFjdAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy90dXBsZV9pbl9ib3gvYXBwLmFsZ28udHM6MTUKCS8vIHRoaXMuY29udGFjdHModGhpcy50eG4uc2VuZGVyKS52YWx1ZSA9IGNvbnRhY3QKCXR4biBTZW5kZXIKCWR1cAoJYm94X2RlbAoJcG9wCglmcmFtZV9kaWcgMCAvLyBjb250YWN0OiBDb250YWN0Cglib3hfcHV0CglyZXRzdWIKCi8vIGFkZENvbnRhY3Qoc3RyaW5nLHN0cmluZyxhZGRyZXNzKXZvaWQKYWJpX3JvdXRlX2FkZENvbnRhY3Q6CgkvLyBhZGRyZXNzOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglkdXAKCWxlbgoJaW50IDMyCgk9PQoJYXNzZXJ0CgoJLy8gY29tcGFueTogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglleHRyYWN0IDIgMAoKCS8vIG5hbWU6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIGFkZENvbnRhY3Qoc3RyaW5nLHN0cmluZyxhZGRyZXNzKXZvaWQKCWNhbGxzdWIgYWRkQ29udGFjdAoJaW50IDEKCXJldHVybgoKLy8gYWRkQ29udGFjdChuYW1lOiBzdHJpbmcsIGNvbXBhbnk6IHN0cmluZywgYWRkcmVzczogQWRkcmVzcyk6IHZvaWQKYWRkQ29udGFjdDoKCXByb3RvIDMgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gZXhhbXBsZXMvdHVwbGVfaW5fYm94L2FwcC5hbGdvLnRzOjE5CgkvLyBjb250YWN0OiBDb250YWN0ID0geyBuYW1lOiBuYW1lLCBjb21wYW55OiBjb21wYW55IH0KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJYnl0ZSAweDAwMDQgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0xIC8vIG5hbWU6IHN0cmluZwoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNhbGxzdWIgcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCWZyYW1lX2RpZyAtMiAvLyBjb21wYW55OiBzdHJpbmcKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0CgljYWxsc3ViIHByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWZyYW1lX2J1cnkgMCAvLyBjb250YWN0OiBDb250YWN0CgoJLy8gZXhhbXBsZXMvdHVwbGVfaW5fYm94L2FwcC5hbGdvLnRzOjIwCgkvLyB0aGlzLmNvbnRhY3RzKGFkZHJlc3MpLnZhbHVlID0gY29udGFjdAoJZnJhbWVfZGlnIC0zIC8vIGFkZHJlc3M6IEFkZHJlc3MKCWR1cAoJYm94X2RlbAoJcG9wCglmcmFtZV9kaWcgMCAvLyBjb250YWN0OiBDb250YWN0Cglib3hfcHV0CglyZXRzdWIKCi8vIHVwZGF0ZUNvbnRhY3RGaWVsZChzdHJpbmcsc3RyaW5nLGFkZHJlc3Mpdm9pZAphYmlfcm91dGVfdXBkYXRlQ29udGFjdEZpZWxkOgoJLy8gYWRkcmVzczogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJZHVwCglsZW4KCWludCAzMgoJPT0KCWFzc2VydAoKCS8vIHZhbHVlOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWV4dHJhY3QgMiAwCgoJLy8gZmllbGQ6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIHVwZGF0ZUNvbnRhY3RGaWVsZChzdHJpbmcsc3RyaW5nLGFkZHJlc3Mpdm9pZAoJY2FsbHN1YiB1cGRhdGVDb250YWN0RmllbGQKCWludCAxCglyZXR1cm4KCi8vIHVwZGF0ZUNvbnRhY3RGaWVsZChmaWVsZDogc3RyaW5nLCB2YWx1ZTogc3RyaW5nLCBhZGRyZXNzOiBBZGRyZXNzKTogdm9pZAp1cGRhdGVDb250YWN0RmllbGQ6Cglwcm90byAzIDAKCgkvLyBpZjBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy90dXBsZV9pbl9ib3gvYXBwLmFsZ28udHM6MjQKCS8vIGZpZWxkID09PSAnbmFtZScKCWZyYW1lX2RpZyAtMSAvLyBmaWVsZDogc3RyaW5nCglieXRlIDB4NmU2MTZkNjUgLy8gIm5hbWUiCgk9PQoJYnogaWYwX2Vsc2VpZjFfY29uZGl0aW9uCgoJLy8gaWYwX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3R1cGxlX2luX2JveC9hcHAuYWxnby50czoyNQoJLy8gdGhpcy5jb250YWN0cyhhZGRyZXNzKS52YWx1ZS5uYW1lID0gdmFsdWUKCWZyYW1lX2RpZyAtMyAvLyBhZGRyZXNzOiBBZGRyZXNzCglib3hfZ2V0Cglhc3NlcnQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMAoJZHVwCglzdG9yZSAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwCglzdG9yZSAyNTQgLy8gZWxlbWVudCBzdGFydAoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMSAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJc3RvcmUgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMAoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJc3Vic3RyaW5nMwoJZnJhbWVfZGlnIC0yIC8vIHZhbHVlOiBzdHJpbmcKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0CglkdXAKCXN0b3JlIDI1MiAvLyBuZXcgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCSsgLy8gZ2V0IGVuZCBvZiBFbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglsZW4KCXN1YnN0cmluZzMKCWNvbmNhdAoJY29uY2F0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJY2FsbHN1YiBnZXRfbGVuZ3RoX2RpZmZlcmVuY2UKCWxvYWQgMjUwIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglsb2FkIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0CglpbnQgMgoJKyAvLyBoZWFkIG9mc2V0CgljYWxsc3ViIHVwZGF0ZV9keW5hbWljX2hlYWQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2RpZyAtMyAvLyBhZGRyZXNzOiBBZGRyZXNzCglkdXAKCWJveF9kZWwKCXBvcAoJc3dhcAoJYm94X3B1dAoJYiBpZjBfZW5kCgppZjBfZWxzZWlmMV9jb25kaXRpb246CgkvLyBleGFtcGxlcy90dXBsZV9pbl9ib3gvYXBwLmFsZ28udHM6MjYKCS8vIGZpZWxkID09PSAnY29tcGFueScKCWZyYW1lX2RpZyAtMSAvLyBmaWVsZDogc3RyaW5nCglieXRlIDB4NjM2ZjZkNzA2MTZlNzkgLy8gImNvbXBhbnkiCgk9PQoJYnogaWYwX2Vsc2UKCgkvLyBpZjBfZWxzZWlmMV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy90dXBsZV9pbl9ib3gvYXBwLmFsZ28udHM6MjcKCS8vIHRoaXMuY29udGFjdHMoYWRkcmVzcykudmFsdWUuY29tcGFueSA9IHZhbHVlCglmcmFtZV9kaWcgLTMgLy8gYWRkcmVzczogQWRkcmVzcwoJYm94X2dldAoJYXNzZXJ0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDIKCWR1cAoJc3RvcmUgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXVuY292ZXIgMgoJZXh0cmFjdF91aW50MTYKCWR1cAoJc3RvcmUgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50IDEgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCXN0b3JlIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDAKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCXN1YnN0cmluZzMKCWZyYW1lX2RpZyAtMiAvLyB2YWx1ZTogc3RyaW5nCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJZHVwCglzdG9yZSAyNTIgLy8gbmV3IGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgkrIC8vIGdldCBlbmQgb2YgRWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbGVuCglzdWJzdHJpbmczCgljb25jYXQKCWNvbmNhdAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWNhbGxzdWIgZ2V0X2xlbmd0aF9kaWZmZXJlbmNlCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglmcmFtZV9kaWcgLTMgLy8gYWRkcmVzczogQWRkcmVzcwoJZHVwCglib3hfZGVsCglwb3AKCXN3YXAKCWJveF9wdXQKCWIgaWYwX2VuZAoKaWYwX2Vsc2U6CgllcnIgLy8gJ0ludmFsaWQgZmllbGQnCgppZjBfZW5kOgoJcmV0c3ViCgovLyB2ZXJpZnlDb250YWN0TmFtZShzdHJpbmcsYWRkcmVzcyl2b2lkCmFiaV9yb3V0ZV92ZXJpZnlDb250YWN0TmFtZToKCS8vIGFkZHJlc3M6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMzIKCT09Cglhc3NlcnQKCgkvLyBuYW1lOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSB2ZXJpZnlDb250YWN0TmFtZShzdHJpbmcsYWRkcmVzcyl2b2lkCgljYWxsc3ViIHZlcmlmeUNvbnRhY3ROYW1lCglpbnQgMQoJcmV0dXJuCgovLyB2ZXJpZnlDb250YWN0TmFtZShuYW1lOiBzdHJpbmcsIGFkZHJlc3M6IEFkZHJlc3MpOiB2b2lkCnZlcmlmeUNvbnRhY3ROYW1lOgoJcHJvdG8gMiAwCgoJLy8gZXhhbXBsZXMvdHVwbGVfaW5fYm94L2FwcC5hbGdvLnRzOjMyCgkvLyBhc3NlcnQodGhpcy5jb250YWN0cyhhZGRyZXNzKS52YWx1ZS5uYW1lID09PSBuYW1lKQoJZnJhbWVfZGlnIC0yIC8vIGFkZHJlc3M6IEFkZHJlc3MKCWJveF9nZXQKCWFzc2VydAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAwCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCAxIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglleHRyYWN0MwoJZXh0cmFjdCAyIDAKCWZyYW1lX2RpZyAtMSAvLyBuYW1lOiBzdHJpbmcKCT09Cglhc3NlcnQKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAic2V0TXlDb250YWN0KHN0cmluZyxzdHJpbmcpdm9pZCIKCW1ldGhvZCAiYWRkQ29udGFjdChzdHJpbmcsc3RyaW5nLGFkZHJlc3Mpdm9pZCIKCW1ldGhvZCAidXBkYXRlQ29udGFjdEZpZWxkKHN0cmluZyxzdHJpbmcsYWRkcmVzcyl2b2lkIgoJbWV0aG9kICJ2ZXJpZnlDb250YWN0TmFtZShzdHJpbmcsYWRkcmVzcyl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX3NldE15Q29udGFjdCBhYmlfcm91dGVfYWRkQ29udGFjdCBhYmlfcm91dGVfdXBkYXRlQ29udGFjdEZpZWxkIGFiaV9yb3V0ZV92ZXJpZnlDb250YWN0TmFtZQoJZXJyCgpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgp1cGRhdGVfZHluYW1pY19oZWFkOgoJcHJvdG8gMiAwCglmcmFtZV9kaWcgLTIgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2RpZyAtMSAvLyBkeW5hbWljIGFycmF5IG9mZnNldAoJZXh0cmFjdF91aW50MTYgLy8gZXh0cmFjdCBkeW5hbWljIGFycmF5IG9mZnNldAoJbG9hZCAyNDkgLy8gc3VidHJhY3QgaGVhZCBkaWZmZXJlbmNlCglieiBzdWJ0cmFjdF9oZWFkX2RpZmZlcmVuY2UKCSsgLy8gYWRkIGRpZmZlcmVuY2UgdG8gb2Zmc2V0CgliIGVuZF9jYWxjX25ld19oZWFkCgpzdWJ0cmFjdF9oZWFkX2RpZmZlcmVuY2U6Cglzd2FwCgktIC8vIHN1YnRyYWN0IGRpZmZlcmVuY2UgZnJvbSBvZmZldAoKZW5kX2NhbGNfbmV3X2hlYWQ6CglpdG9iIC8vIGNvbnZlcnQgdG8gYnl0ZXMKCWV4dHJhY3QgNiAyIC8vIGNvbnZlcnQgdG8gdWludDE2Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglmcmFtZV9kaWcgLTEgLy8gb2Zmc2V0Cglzd2FwCglyZXBsYWNlMyAvLyB1cGRhdGUgb2Zmc2V0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJcmV0c3ViCgpnZXRfbGVuZ3RoX2RpZmZlcmVuY2U6Cglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCTwKCWJueiBzd2FwcGVkX2RpZmZlcmVuY2UKCWxvYWQgMjUyIC8vIG5ldyBlbGVtZW50CglsZW4gLy8gbGVuZ3RoIG9mIG5ldyBlbGVtZW50Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJaW50IDEKCXN0b3JlIDI0OSAvLyBzdWJ0cmFjdCBoZWFkIGRpZmZlcmVuY2UKCWIgZ2V0X2RpZmZlcmVuY2UKCnN3YXBwZWRfZGlmZmVyZW5jZToKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJaW50IDAKCXN0b3JlIDI0OSAvLyBzdWJ0cmFjdCBoZWFkIGRpZmZlcmVuY2UKCmdldF9kaWZmZXJlbmNlOgoJLSAvLyBnZXQgbGVuZ3RoIGRpZmZlcmVuY2UKCXN0b3JlIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJcmV0c3Vi", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzZXRNeUNvbnRhY3Qoc3RyaW5nLHN0cmluZyl2b2lkCiphYmlfcm91dGVfc2V0TXlDb250YWN0OgoJLy8gY29tcGFueTogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglleHRyYWN0IDIgMAoKCS8vIG5hbWU6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIHNldE15Q29udGFjdChzdHJpbmcsc3RyaW5nKXZvaWQKCWNhbGxzdWIgc2V0TXlDb250YWN0CglpbnQgMQoJcmV0dXJuCgovLyBzZXRNeUNvbnRhY3QobmFtZTogc3RyaW5nLCBjb21wYW55OiBzdHJpbmcpOiB2b2lkCnNldE15Q29udGFjdDoKCXByb3RvIDIgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gZXhhbXBsZXMvdHVwbGVfaW5fYm94L2FwcC5hbGdvLnRzOjEyCgkvLyBjb250YWN0OiBDb250YWN0ID0geyBuYW1lOiBuYW1lLCBjb21wYW55OiBjb21wYW55IH0KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJYnl0ZSAweDAwMDQgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0xIC8vIG5hbWU6IHN0cmluZwoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglmcmFtZV9kaWcgLTIgLy8gY29tcGFueTogc3RyaW5nCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJZnJhbWVfYnVyeSAwIC8vIGNvbnRhY3Q6IENvbnRhY3QKCgkvLyBleGFtcGxlcy90dXBsZV9pbl9ib3gvYXBwLmFsZ28udHM6MTQKCS8vIHRoaXMubXlDb250YWN0LnZhbHVlID0gY29udGFjdAoJYnl0ZSAweDZkNzk0MzZmNmU3NDYxNjM3NCAvLyAibXlDb250YWN0IgoJZnJhbWVfZGlnIDAgLy8gY29udGFjdDogQ29udGFjdAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy90dXBsZV9pbl9ib3gvYXBwLmFsZ28udHM6MTUKCS8vIHRoaXMuY29udGFjdHModGhpcy50eG4uc2VuZGVyKS52YWx1ZSA9IGNvbnRhY3QKCXR4biBTZW5kZXIKCWR1cAoJYm94X2RlbAoJcG9wCglmcmFtZV9kaWcgMCAvLyBjb250YWN0OiBDb250YWN0Cglib3hfcHV0CglyZXRzdWIKCi8vIGFkZENvbnRhY3Qoc3RyaW5nLHN0cmluZyxhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV9hZGRDb250YWN0OgoJLy8gYWRkcmVzczogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJZHVwCglsZW4KCWludCAzMgoJPT0KCWFzc2VydAoKCS8vIGNvbXBhbnk6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZXh0cmFjdCAyIDAKCgkvLyBuYW1lOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSBhZGRDb250YWN0KHN0cmluZyxzdHJpbmcsYWRkcmVzcyl2b2lkCgljYWxsc3ViIGFkZENvbnRhY3QKCWludCAxCglyZXR1cm4KCi8vIGFkZENvbnRhY3QobmFtZTogc3RyaW5nLCBjb21wYW55OiBzdHJpbmcsIGFkZHJlc3M6IEFkZHJlc3MpOiB2b2lkCmFkZENvbnRhY3Q6Cglwcm90byAzIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIGV4YW1wbGVzL3R1cGxlX2luX2JveC9hcHAuYWxnby50czoxOQoJLy8gY29udGFjdDogQ29udGFjdCA9IHsgbmFtZTogbmFtZSwgY29tcGFueTogY29tcGFueSB9CglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDA0IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCWZyYW1lX2RpZyAtMSAvLyBuYW1lOiBzdHJpbmcKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJZnJhbWVfZGlnIC0yIC8vIGNvbXBhbnk6IHN0cmluZwoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWZyYW1lX2J1cnkgMCAvLyBjb250YWN0OiBDb250YWN0CgoJLy8gZXhhbXBsZXMvdHVwbGVfaW5fYm94L2FwcC5hbGdvLnRzOjIwCgkvLyB0aGlzLmNvbnRhY3RzKGFkZHJlc3MpLnZhbHVlID0gY29udGFjdAoJZnJhbWVfZGlnIC0zIC8vIGFkZHJlc3M6IEFkZHJlc3MKCWR1cAoJYm94X2RlbAoJcG9wCglmcmFtZV9kaWcgMCAvLyBjb250YWN0OiBDb250YWN0Cglib3hfcHV0CglyZXRzdWIKCi8vIHVwZGF0ZUNvbnRhY3RGaWVsZChzdHJpbmcsc3RyaW5nLGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX3VwZGF0ZUNvbnRhY3RGaWVsZDoKCS8vIGFkZHJlc3M6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWR1cAoJbGVuCglpbnQgMzIKCT09Cglhc3NlcnQKCgkvLyB2YWx1ZTogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglleHRyYWN0IDIgMAoKCS8vIGZpZWxkOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSB1cGRhdGVDb250YWN0RmllbGQoc3RyaW5nLHN0cmluZyxhZGRyZXNzKXZvaWQKCWNhbGxzdWIgdXBkYXRlQ29udGFjdEZpZWxkCglpbnQgMQoJcmV0dXJuCgovLyB1cGRhdGVDb250YWN0RmllbGQoZmllbGQ6IHN0cmluZywgdmFsdWU6IHN0cmluZywgYWRkcmVzczogQWRkcmVzcyk6IHZvaWQKdXBkYXRlQ29udGFjdEZpZWxkOgoJcHJvdG8gMyAwCgoJLy8gKmlmMF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3R1cGxlX2luX2JveC9hcHAuYWxnby50czoyNAoJLy8gZmllbGQgPT09ICduYW1lJwoJZnJhbWVfZGlnIC0xIC8vIGZpZWxkOiBzdHJpbmcKCWJ5dGUgMHg2ZTYxNmQ2NSAvLyAibmFtZSIKCT09CglieiAqaWYwX2Vsc2VpZjFfY29uZGl0aW9uCgoJLy8gKmlmMF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy90dXBsZV9pbl9ib3gvYXBwLmFsZ28udHM6MjUKCS8vIHRoaXMuY29udGFjdHMoYWRkcmVzcykudmFsdWUubmFtZSA9IHZhbHVlCglmcmFtZV9kaWcgLTMgLy8gYWRkcmVzczogQWRkcmVzcwoJYm94X2dldAoJYXNzZXJ0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDAKCWR1cAoJc3RvcmUgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXVuY292ZXIgMgoJZXh0cmFjdF91aW50MTYKCWR1cAoJc3RvcmUgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50IDEgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCXN0b3JlIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDAKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCXN1YnN0cmluZzMKCWZyYW1lX2RpZyAtMiAvLyB2YWx1ZTogc3RyaW5nCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJZHVwCglzdG9yZSAyNTIgLy8gbmV3IGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgkrIC8vIGdldCBlbmQgb2YgRWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbGVuCglzdWJzdHJpbmczCgljb25jYXQKCWNvbmNhdAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWNhbGxzdWIgKmdldF9sZW5ndGhfZGlmZmVyZW5jZQoJbG9hZCAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWludCAyCgkrIC8vIGhlYWQgb2ZzZXQKCWNhbGxzdWIgKnVwZGF0ZV9keW5hbWljX2hlYWQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2RpZyAtMyAvLyBhZGRyZXNzOiBBZGRyZXNzCglkdXAKCWJveF9kZWwKCXBvcAoJc3dhcAoJYm94X3B1dAoJYiAqaWYwX2VuZAoKKmlmMF9lbHNlaWYxX2NvbmRpdGlvbjoKCS8vIGV4YW1wbGVzL3R1cGxlX2luX2JveC9hcHAuYWxnby50czoyNgoJLy8gZmllbGQgPT09ICdjb21wYW55JwoJZnJhbWVfZGlnIC0xIC8vIGZpZWxkOiBzdHJpbmcKCWJ5dGUgMHg2MzZmNmQ3MDYxNmU3OSAvLyAiY29tcGFueSIKCT09CglieiAqaWYwX2Vsc2UKCgkvLyAqaWYwX2Vsc2VpZjFfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvdHVwbGVfaW5fYm94L2FwcC5hbGdvLnRzOjI3CgkvLyB0aGlzLmNvbnRhY3RzKGFkZHJlc3MpLnZhbHVlLmNvbXBhbnkgPSB2YWx1ZQoJZnJhbWVfZGlnIC0zIC8vIGFkZHJlc3M6IEFkZHJlc3MKCWJveF9nZXQKCWFzc2VydAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAyCglkdXAKCXN0b3JlIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAKCXN0b3JlIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCAxIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglzdG9yZSAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAwCglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglzdWJzdHJpbmczCglmcmFtZV9kaWcgLTIgLy8gdmFsdWU6IHN0cmluZwoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWR1cAoJc3RvcmUgMjUyIC8vIG5ldyBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJKyAvLyBnZXQgZW5kIG9mIEVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxlbgoJc3Vic3RyaW5nMwoJY29uY2F0Cgljb25jYXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CgljYWxsc3ViICpnZXRfbGVuZ3RoX2RpZmZlcmVuY2UKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2RpZyAtMyAvLyBhZGRyZXNzOiBBZGRyZXNzCglkdXAKCWJveF9kZWwKCXBvcAoJc3dhcAoJYm94X3B1dAoJYiAqaWYwX2VuZAoKKmlmMF9lbHNlOgoJZXJyIC8vICdJbnZhbGlkIGZpZWxkJwoKKmlmMF9lbmQ6CglyZXRzdWIKCi8vIHZlcmlmeUNvbnRhY3ROYW1lKHN0cmluZyxhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV92ZXJpZnlDb250YWN0TmFtZToKCS8vIGFkZHJlc3M6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMzIKCT09Cglhc3NlcnQKCgkvLyBuYW1lOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSB2ZXJpZnlDb250YWN0TmFtZShzdHJpbmcsYWRkcmVzcyl2b2lkCgljYWxsc3ViIHZlcmlmeUNvbnRhY3ROYW1lCglpbnQgMQoJcmV0dXJuCgovLyB2ZXJpZnlDb250YWN0TmFtZShuYW1lOiBzdHJpbmcsIGFkZHJlc3M6IEFkZHJlc3MpOiB2b2lkCnZlcmlmeUNvbnRhY3ROYW1lOgoJcHJvdG8gMiAwCgoJLy8gZXhhbXBsZXMvdHVwbGVfaW5fYm94L2FwcC5hbGdvLnRzOjMyCgkvLyBhc3NlcnQodGhpcy5jb250YWN0cyhhZGRyZXNzKS52YWx1ZS5uYW1lID09PSBuYW1lKQoJZnJhbWVfZGlnIC0yIC8vIGFkZHJlc3M6IEFkZHJlc3MKCWJveF9nZXQKCWFzc2VydAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAwCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCAxIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglleHRyYWN0MwoJZXh0cmFjdCAyIDAKCWZyYW1lX2RpZyAtMSAvLyBuYW1lOiBzdHJpbmcKCT09Cglhc3NlcnQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInNldE15Q29udGFjdChzdHJpbmcsc3RyaW5nKXZvaWQiCgltZXRob2QgImFkZENvbnRhY3Qoc3RyaW5nLHN0cmluZyxhZGRyZXNzKXZvaWQiCgltZXRob2QgInVwZGF0ZUNvbnRhY3RGaWVsZChzdHJpbmcsc3RyaW5nLGFkZHJlc3Mpdm9pZCIKCW1ldGhvZCAidmVyaWZ5Q29udGFjdE5hbWUoc3RyaW5nLGFkZHJlc3Mpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc2V0TXlDb250YWN0ICphYmlfcm91dGVfYWRkQ29udGFjdCAqYWJpX3JvdXRlX3VwZGF0ZUNvbnRhY3RGaWVsZCAqYWJpX3JvdXRlX3ZlcmlmeUNvbnRhY3ROYW1lCgllcnIKCipwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgoqdXBkYXRlX2R5bmFtaWNfaGVhZDoKCXByb3RvIDIgMAoJZnJhbWVfZGlnIC0yIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglmcmFtZV9kaWcgLTEgLy8gZHluYW1pYyBhcnJheSBvZmZzZXQKCWV4dHJhY3RfdWludDE2IC8vIGV4dHJhY3QgZHluYW1pYyBhcnJheSBvZmZzZXQKCWxvYWQgMjQ5IC8vIHN1YnRyYWN0IGhlYWQgZGlmZmVyZW5jZQoJYnogKnN1YnRyYWN0X2hlYWRfZGlmZmVyZW5jZQoJKyAvLyBhZGQgZGlmZmVyZW5jZSB0byBvZmZzZXQKCWIgKmVuZF9jYWxjX25ld19oZWFkCgoqc3VidHJhY3RfaGVhZF9kaWZmZXJlbmNlOgoJc3dhcAoJLSAvLyBzdWJ0cmFjdCBkaWZmZXJlbmNlIGZyb20gb2ZmZXQKCiplbmRfY2FsY19uZXdfaGVhZDoKCWl0b2IgLy8gY29udmVydCB0byBieXRlcwoJZXh0cmFjdCA2IDIgLy8gY29udmVydCB0byB1aW50MTYKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWZyYW1lX2RpZyAtMSAvLyBvZmZzZXQKCXN3YXAKCXJlcGxhY2UzIC8vIHVwZGF0ZSBvZmZzZXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglyZXRzdWIKCipnZXRfbGVuZ3RoX2RpZmZlcmVuY2U6Cglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCTwKCWJueiAqc3dhcHBlZF9kaWZmZXJlbmNlCglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWludCAxCglzdG9yZSAyNDkgLy8gc3VidHJhY3QgaGVhZCBkaWZmZXJlbmNlCgliICpnZXRfZGlmZmVyZW5jZQoKKnN3YXBwZWRfZGlmZmVyZW5jZToKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJaW50IDAKCXN0b3JlIDI0OSAvLyBzdWJ0cmFjdCBoZWFkIGRpZmZlcmVuY2UKCipnZXRfZGlmZmVyZW5jZToKCS0gLy8gZ2V0IGxlbmd0aCBkaWZmZXJlbmNlCglzdG9yZSAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCXJldHN1Yg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/package.json b/package.json index fb066f41d..3c404c011 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@algorandfoundation/tealscript", - "version": "0.83.0", + "version": "0.83.1", "description": "Enables Algorand smart contract development with native TypeScript syntax, tooling, and IDE support", "homepage": "https://github.com/algorandfoundation/TEALScript", "bugs": { diff --git a/src/lib/compiler.ts b/src/lib/compiler.ts index dd7444873..7283e1aa0 100644 --- a/src/lib/compiler.ts +++ b/src/lib/compiler.ts @@ -1979,7 +1979,7 @@ export default class Compiler { ); this.frameIndex += 1; } - const label = `forEach_${this.forEachCount}`; + const label = `*forEach_${this.forEachCount}`; this.pushLines(node, `${label}:`); this.forEachCount += 1; @@ -2085,7 +2085,7 @@ export default class Compiler { this.pushVoid(node, 'btoi'); } - this.pushVoid(node, 'callsub itoa'); + this.pushVoid(node, 'callsub *itoa'); this.lastType = StackType.bytes; }, }, @@ -2530,10 +2530,10 @@ export default class Compiler { if (this.currentProgram === 'approval') { const createLabels = - 'create_NoOp create_OptIn NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_DeleteApplication '; + '*create_NoOp *create_OptIn *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_DeleteApplication '; const callLabels = - 'call_NoOp call_OptIn call_CloseOut NOT_IMPLEMENTED call_UpdateApplication call_DeleteApplication'; + '*call_NoOp *call_OptIn *call_CloseOut *NOT_IMPLEMENTED *call_UpdateApplication *call_DeleteApplication'; this.pushLines( node, @@ -2543,7 +2543,7 @@ export default class Compiler { '// This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed', '// Here, action refers to the OnComplete in combination with whether the app is being created or called', '// Every possible action for this contract is represented in the switch statement', - '// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err"', + '// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err"', 'txn ApplicationID', '!', 'int 6', @@ -2551,13 +2551,13 @@ export default class Compiler { 'txn OnCompletion', '+', `switch ${callLabels} ${createLabels}`, - 'NOT_IMPLEMENTED:', + '*NOT_IMPLEMENTED:', 'err' ); this.teal.clear.push({ node, teal: '#pragma version PROGAM_VERSION' }); } else if (this.currentProgram === 'lsig') { - this.pushLines(node, '// The address of this logic signature is', '', 'b route_logic'); + this.pushLines(node, '// The address of this logic signature is', '', 'b *route_logic'); } } @@ -2697,7 +2697,7 @@ export default class Compiler { this.abi.methods.push(m); - this.pushLines(this.classNode, `abi_route_${name}:`, 'int 1', 'return'); + this.pushLines(this.classNode, `*abi_route_${name}:`, 'int 1', 'return'); } if (this.currentProgram !== 'lsig') this.routeAbiMethods(); @@ -2837,16 +2837,16 @@ export default class Compiler { if (methods.length === 0 && this.bareCallConfig[onComplete] === undefined) { this.teal[this.currentProgram][switchIndex].teal = this.teal[this.currentProgram][switchIndex].teal.replace( - `${a}_${onComplete}`, - 'NOT_IMPLEMENTED' + `*${a}_${onComplete}`, + '*NOT_IMPLEMENTED' ); return; } - this.pushVoid(this.classNode, `${a}_${onComplete}:`); + this.pushVoid(this.classNode, `*${a}_${onComplete}:`); if (a.toUpperCase() === this.bareCallConfig[onComplete]?.action) { - this.pushLines(this.classNode, 'txn NumAppArgs', `bz abi_route_${this.bareCallConfig[onComplete]!.method}`); + this.pushLines(this.classNode, 'txn NumAppArgs', `bz *abi_route_${this.bareCallConfig[onComplete]!.method}`); } if (methods.length === 0) { @@ -2861,7 +2861,7 @@ export default class Compiler { this.pushLines( this.classNode, 'txna ApplicationArgs 0', - `match ${methods.map((m) => `abi_route_${m.name}`).join(' ')}` + `match ${methods.map((m) => `*abi_route_${m.name}`).join(' ')}` ); const nonAbi = this.subroutines.find((s) => s.nonAbi[a as 'call' | 'create'].includes(onComplete)); @@ -2874,7 +2874,7 @@ export default class Compiler { }); }); - if (this.teal[this.currentProgram][switchIndex].teal.endsWith('NOT_IMPLEMENTED')) { + if (this.teal[this.currentProgram][switchIndex].teal.endsWith('*NOT_IMPLEMENTED')) { const removeLastDuplicates = (array: string[]) => { let lastIndex = array.length - 1; const element = array[lastIndex]; @@ -2948,7 +2948,7 @@ export default class Compiler { } private processWhileStatement(node: ts.WhileStatement) { - const thisLoop = `while_${this.whileCount}`; + const thisLoop = `*while_${this.whileCount}`; this.whileCount += 1; const prevLoop = this.currentLoop; @@ -2974,7 +2974,7 @@ export default class Compiler { this.processNode(node.getInitializerOrThrow()); const preLoop = this.currentLoop; - const thisLoop = `for_${this.forCount}`; + const thisLoop = `*for_${this.forCount}`; this.forCount += 1; this.currentLoop = thisLoop; @@ -3106,15 +3106,16 @@ export default class Compiler { private processConditionalExpression(node: ts.ConditionalExpression) { const tc = this.ternaryCount; + const thisTernary = `*ternary${tc}`; this.ternaryCount += 1; this.processConditional(node.getCondition()); - this.pushVoid(node, `bz ternary${tc}_false`); + this.pushVoid(node, `bz ${thisTernary}_false`); this.processNode(node.getWhenTrue()); - this.pushVoid(node, `b ternary${tc}_end`); - this.pushVoid(node, `ternary${tc}_false:`); + this.pushVoid(node, `b ${thisTernary}_end`); + this.pushVoid(node, `${thisTernary}_false:`); this.processNode(node.getWhenFalse()); - this.pushVoid(node, `ternary${tc}_end:`); + this.pushVoid(node, `${thisTernary}_end:`); } private pushLines(node: ts.Node, ...lines: string[]) { @@ -3196,7 +3197,7 @@ export default class Compiler { if (consecutiveBools.length > 0) { this.processBools(consecutiveBools); - if (!isStatic) this.pushVoid(e, 'callsub process_static_tuple_element'); + if (!isStatic) this.pushVoid(e, 'callsub *process_static_tuple_element'); else if (i !== 0) this.pushVoid(e, 'concat'); consecutiveBools = []; @@ -3213,14 +3214,14 @@ export default class Compiler { this.checkEncoding(e, this.lastType); typeComparison(this.lastType, types[i]); - if (this.isDynamicType(types[i])) this.pushVoid(e, 'callsub process_dynamic_tuple_element'); - else if (!isStatic) this.pushVoid(e, 'callsub process_static_tuple_element'); + if (this.isDynamicType(types[i])) this.pushVoid(e, 'callsub *process_dynamic_tuple_element'); + else if (!isStatic) this.pushVoid(e, 'callsub *process_static_tuple_element'); else if (i !== 0) this.pushVoid(e, 'concat'); }); if (consecutiveBools.length > 0) { this.processBools(consecutiveBools); - if (!isStatic) this.pushVoid(parentNode, 'callsub process_static_tuple_element'); + if (!isStatic) this.pushVoid(parentNode, 'callsub *process_static_tuple_element'); if (consecutiveBools.length !== elements.length) this.pushVoid(parentNode, 'concat'); } @@ -3614,8 +3615,8 @@ export default class Compiler { } private compilerSubroutines: { [name: string]: () => string[] } = { - itoa: () => [ - 'intToAscii:', + '*itoa': () => [ + '*intToAscii:', 'proto 1 1', 'byte 0x30313233343536373839 // "0123456789"', 'frame_dig -1 // i: uint64', @@ -3623,45 +3624,45 @@ export default class Compiler { 'extract3', 'retsub', '', - 'itoa:', + '*itoa:', 'proto 1 1', 'frame_dig -1 // i: uint64', 'int 0', '==', - 'bz itoa_if_end', + 'bz *itoa_if_end', 'byte 0x151f7c75000130', 'log', 'retsub', - 'itoa_if_end:', + '*itoa_if_end:', 'frame_dig -1 // i: uint64', 'int 10', '/', 'int 0', '>', - 'bz itoa_ternary_false', + 'bz *itoa_ternary_false', 'frame_dig -1 // i: uint64', 'int 10', '/', - 'callsub itoa', - 'b itoa_ternary_end', - 'itoa_ternary_false:', + 'callsub *itoa', + 'b *itoa_ternary_end', + '*itoa_ternary_false:', 'byte 0x // ""', - 'itoa_ternary_end:', + '*itoa_ternary_end:', 'frame_dig -1 // i: uint64', 'int 10', '%', - 'callsub intToAscii', + 'callsub *intToAscii', 'concat', 'retsub', ], - process_static_tuple_element: () => { + '*process_static_tuple_element': () => { const tupleHead = '-4 // tuple head'; const tupleTail = '-3 // tuple tail'; const headOffset = '-2 // head offset'; const element = '-1 // element'; return [ - 'process_static_tuple_element:', + '*process_static_tuple_element:', 'proto 4 3', `frame_dig ${tupleHead}`, `frame_dig ${element}`, @@ -3672,15 +3673,14 @@ export default class Compiler { 'retsub', ]; }, - - process_dynamic_tuple_element: () => { + '*process_dynamic_tuple_element': () => { const tupleHead = '-4 // tuple head'; const tupleTail = '-3 // tuple tail'; const headOffset = '-2 // head offset'; const element = '-1 // element'; return [ - 'process_dynamic_tuple_element:', + '*process_dynamic_tuple_element:', 'proto 4 3', `frame_dig ${tupleHead}`, `frame_dig ${headOffset}`, @@ -3706,11 +3706,10 @@ export default class Compiler { 'retsub', ]; }, - // -2: length difference // -1: offset - update_dynamic_head: () => [ - 'update_dynamic_head:', + '*update_dynamic_head': () => [ + '*update_dynamic_head:', 'proto 2 0', 'frame_dig -2 // length difference', `load ${compilerScratch.fullArray}`, @@ -3718,15 +3717,15 @@ export default class Compiler { 'extract_uint16 // extract dynamic array offset', `load ${compilerScratch.subtractHeadDifference}`, - 'bz subtract_head_difference', + 'bz *subtract_head_difference', '+ // add difference to offset', - 'b end_calc_new_head', + 'b *end_calc_new_head', - 'subtract_head_difference:', + '*subtract_head_difference:', 'swap', '- // subtract difference from offet', - 'end_calc_new_head:', + '*end_calc_new_head:', 'itob // convert to bytes', 'extract 6 2 // convert to uint16', @@ -3738,31 +3737,30 @@ export default class Compiler { `store ${compilerScratch.fullArray}`, 'retsub', ], - - get_length_difference: () => [ - 'get_length_difference:', + '*get_length_difference': () => [ + '*get_length_difference:', // Get new element length `load ${compilerScratch.newElement}`, 'len // length of new element', `load ${compilerScratch.elementLength}`, '<', - 'bnz swapped_difference', + 'bnz *swapped_difference', `load ${compilerScratch.newElement}`, 'len // length of new element', `load ${compilerScratch.elementLength}`, 'int 1', `store ${compilerScratch.subtractHeadDifference}`, - 'b get_difference', + 'b *get_difference', - 'swapped_difference:', + '*swapped_difference:', `load ${compilerScratch.elementLength}`, `load ${compilerScratch.newElement}`, 'len // length of new element', 'int 0', `store ${compilerScratch.subtractHeadDifference}`, - 'get_difference:', + '*get_difference:', '- // get length difference', `store ${compilerScratch.lengthDifference}`, 'retsub', @@ -4063,7 +4061,7 @@ export default class Compiler { this.pushLines(node, 'concat', 'concat', `store ${compilerScratch.fullArray}`); // Get length difference - this.pushLines(node, 'callsub get_length_difference'); + this.pushLines(node, 'callsub *get_length_difference'); const elementIndex = element.parent!.findIndex((e) => e.id === element.id); @@ -4078,7 +4076,7 @@ export default class Compiler { `load ${compilerScratch.elementHeadOffset}`, `int ${diff}`, '+ // head ofset', - 'callsub update_dynamic_head' + 'callsub *update_dynamic_head' ); }); @@ -4086,7 +4084,20 @@ export default class Compiler { } else if (typeInfoToABIString(element.type) === 'bool') { this.pushLines(node, 'int 8', '* // get bit offset'); - if (node.isKind(ts.SyntaxKind.ElementAccessExpression)) { + let consecutiveBools = 0; + const elementIndex = element.parent!.findIndex((e) => e.id === element.id); + const boolParentType = element.parent!.type; + + if (boolParentType.kind === 'tuple' || boolParentType.kind === 'object') { + for (let i = elementIndex - 1; i >= 0; i--) { + const { type } = element.parent![i]; + if (type.kind === 'base' && type.type === 'bool') { + consecutiveBools += 1; + } else break; + } + + this.pushLines(node, `int ${consecutiveBools}`); + } else if (node.isKind(ts.SyntaxKind.ElementAccessExpression)) { const argExpr = node.getArgumentExpression(); if (argExpr === undefined) throw Error(); @@ -4117,7 +4128,20 @@ export default class Compiler { if (typeInfoToABIString(element.type) === 'bool') { this.pushLines(node, 'int 8', '*'); - if (node.isKind(ts.SyntaxKind.ElementAccessExpression)) { + let consecutiveBools = 0; + const elementIndex = element.parent!.findIndex((e) => e.id === element.id); + const boolParentType = element.parent!.type; + + if (boolParentType.kind === 'tuple' || boolParentType.kind === 'object') { + for (let i = elementIndex - 1; i >= 0; i--) { + const { type } = element.parent![i]; + if (type.kind === 'base' && type.type === 'bool') { + consecutiveBools += 1; + } else break; + } + + this.pushLines(node, `int ${consecutiveBools}`); + } else if (node.isKind(ts.SyntaxKind.ElementAccessExpression)) { const argExpr = node.getArgumentExpression(); if (argExpr === undefined) throw Error(); @@ -4657,13 +4681,13 @@ export default class Compiler { let label: string; if (node.getOperatorToken().getText() === '&&') { - label = `skip_and${this.andCount}`; + label = `*skip_and${this.andCount}`; this.andCount += 1; this.pushVoid(node.getOperatorToken(), 'dup'); this.pushVoid(node.getOperatorToken(), `bz ${label}`); } else if (node.getOperatorToken().getText() === '||') { - label = `skip_or${this.orCount}`; + label = `*skip_or${this.orCount}`; this.orCount += 1; this.pushVoid(node.getOperatorToken(), 'dup'); @@ -5112,13 +5136,13 @@ export default class Compiler { let labelPrefix: string; if (elseIfCount === 0) this.ifCount += 1; - const { ifCount } = this; + const thisIf = `*if${this.ifCount}`; if (elseIfCount === 0) { - labelPrefix = `if${ifCount}`; + labelPrefix = thisIf; this.pushVoid(node, `// ${labelPrefix}_condition`); } else { - labelPrefix = `if${ifCount}_elseif${elseIfCount}`; + labelPrefix = `${thisIf}_elseif${elseIfCount}`; this.pushVoid(node, `${labelPrefix}_condition:`); } @@ -5127,26 +5151,26 @@ export default class Compiler { const elseStatement = node.getElseStatement(); if (elseStatement === undefined) { - this.pushVoid(node, `bz if${ifCount}_end`); + this.pushVoid(node, `bz ${thisIf}_end`); this.pushVoid(node, `// ${labelPrefix}_consequent`); this.processNode(node.getThenStatement()); } else if (elseStatement?.isKind(ts.SyntaxKind.IfStatement)) { - this.pushVoid(node, `bz if${ifCount}_elseif${elseIfCount + 1}_condition`); + this.pushVoid(node, `bz ${thisIf}_elseif${elseIfCount + 1}_condition`); this.pushVoid(node, `// ${labelPrefix}_consequent`); this.processNode(node.getThenStatement()); - this.pushVoid(node, `b if${ifCount}_end`); + this.pushVoid(node, `b ${thisIf}_end`); this.processIfStatement(elseStatement, elseIfCount + 1); } else { - this.pushVoid(node, `bz if${ifCount}_else`); + this.pushVoid(node, `bz ${thisIf}_else`); this.pushVoid(node, `// ${labelPrefix}_consequent`); this.processNode(node.getThenStatement()); - this.pushVoid(node, `b if${ifCount}_end`); - this.pushVoid(node, `if${ifCount}_else:`); + this.pushVoid(node, `b ${thisIf}_end`); + this.pushVoid(node, `${thisIf}_else:`); this.processNode(elseStatement); } if (elseIfCount === 0) { - this.pushVoid(node, `if${ifCount}_end:`); + this.pushVoid(node, `${thisIf}_end:`); } } @@ -6309,9 +6333,9 @@ export default class Compiler { this.pushVoid(fn, `// ${this.getSignature(fn)}`); if (this.currentProgram !== 'lsig') { - this.pushLines(fn, `abi_route_${this.currentSubroutine.name}:`); + this.pushLines(fn, `*abi_route_${this.currentSubroutine.name}:`); } else { - this.pushLines(fn, `route_${this.currentSubroutine.name}:`); + this.pushLines(fn, `*route_${this.currentSubroutine.name}:`); } const returnType = this.currentSubroutine.returns.type; diff --git a/src/version.ts b/src/version.ts index ec2f41746..a2f9e163c 100644 --- a/src/version.ts +++ b/src/version.ts @@ -1 +1 @@ -export const VERSION = '0.83.0'; +export const VERSION = '0.83.1'; diff --git a/tests/binary.test.ts b/tests/binary.test.ts index d37f882ef..03c93ef9a 100644 --- a/tests/binary.test.ts +++ b/tests/binary.test.ts @@ -16,10 +16,10 @@ describe('Binary Expressions', function () { '// assert(a && b)', 'frame_dig -1 // a: uint64', 'dup', - 'bz skip_and0', + 'bz *skip_and0', 'frame_dig -2 // b: uint64', '&&', - 'skip_and0:', + '*skip_and0:', 'assert', ]); }); @@ -30,10 +30,10 @@ describe('Binary Expressions', function () { '// assert(a || b)', 'frame_dig -1 // a: uint64', 'dup', - 'bnz skip_or0', + 'bnz *skip_or0', 'frame_dig -2 // b: uint64', '||', - 'skip_or0:', + '*skip_or0:', 'assert', ]); }); @@ -44,15 +44,15 @@ describe('Binary Expressions', function () { '// assert(a || (b && c))', 'frame_dig -1 // a: uint64', 'dup', - 'bnz skip_or1', + 'bnz *skip_or1', 'frame_dig -2 // b: uint64', 'dup', - 'bz skip_and1', + 'bz *skip_and1', 'frame_dig -3 // c: uint64', '&&', - 'skip_and1:', + '*skip_and1:', '||', - 'skip_or1:', + '*skip_or1:', 'assert', ]); }); diff --git a/tests/contracts/abi.algo.ts b/tests/contracts/abi.algo.ts index 884491cad..431fe6841 100644 --- a/tests/contracts/abi.algo.ts +++ b/tests/contracts/abi.algo.ts @@ -1446,3 +1446,14 @@ class ABITestNestedArrayLengthInObjectVariable extends Contract { return b.length; } } + +class ABITestBoolInNestedTuple extends Contract { + boolInNestedTuple(): boolean { + const a: [[uint64, uint64, uint64], boolean, boolean] = [[0, 0, 0], true, false]; + + a[1] = false; + a[2] = true; + + return a[2]; + } +} diff --git a/tests/contracts/artifacts/A.approval.teal b/tests/contracts/artifacts/A.approval.teal index ce6c7c875..bfd052759 100644 --- a/tests/contracts/artifacts/A.approval.teal +++ b/tests/contracts/artifacts/A.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // a()void -abi_route_a: +*abi_route_a: // execute a()void callsub a int 1 @@ -39,18 +39,18 @@ a: app_global_put retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "a()void" txna ApplicationArgs 0 - match abi_route_a + match *abi_route_a err \ No newline at end of file diff --git a/tests/contracts/artifacts/A.arc32.json b/tests/contracts/artifacts/A.arc32.json index 25e2abcc5..559b9855b 100644 --- a/tests/contracts/artifacts/A.arc32.json +++ b/tests/contracts/artifacts/A.arc32.json @@ -44,7 +44,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBhKCl2b2lkCmFiaV9yb3V0ZV9hOgoJLy8gZXhlY3V0ZSBhKCl2b2lkCgljYWxsc3ViIGEKCWludCAxCglyZXR1cm4KCi8vIGEoKTogdm9pZAphOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6MTYKCS8vIHRoaXMuYUtleS52YWx1ZSA9IDEzMzcKCWJ5dGUgMHg2MSAvLyAiYSIKCWludCAxMzM3CglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJhKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2EKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBhKCl2b2lkCiphYmlfcm91dGVfYToKCS8vIGV4ZWN1dGUgYSgpdm9pZAoJY2FsbHN1YiBhCglpbnQgMQoJcmV0dXJuCgovLyBhKCk6IHZvaWQKYToKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjE2CgkvLyB0aGlzLmFLZXkudmFsdWUgPSAxMzM3CglieXRlIDB4NjEgLy8gImEiCglpbnQgMTMzNwoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImEoKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2EKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestAccesStringInTuple.approval.teal b/tests/contracts/artifacts/ABITestAccesStringInTuple.approval.teal index dd2f808a6..1d946fcfb 100644 --- a/tests/contracts/artifacts/ABITestAccesStringInTuple.approval.teal +++ b/tests/contracts/artifacts/ABITestAccesStringInTuple.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // accesStringInTuple()string -abi_route_accesStringInTuple: +*abi_route_accesStringInTuple: // The ABI return prefix byte 0x151f7c75 @@ -52,13 +52,13 @@ accesStringInTuple: byte 0x // initial tail byte 0x0008 // initial head offset byte 0x0001 - callsub process_static_tuple_element + callsub *process_static_tuple_element byte 0x000102 - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element byte 0x000c48656c6c6f20576f726c6421 - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element byte 0x000103 - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element pop // pop head offset concat // concat head and tail frame_bury 0 // a: [uint16, uint<8>[], string, uint<8>[]] @@ -110,23 +110,23 @@ accesStringInTuple: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "accesStringInTuple()string" txna ApplicationArgs 0 - match abi_route_accesStringInTuple + match *abi_route_accesStringInTuple err -process_static_tuple_element: +*process_static_tuple_element: proto 4 3 frame_dig -4 // tuple head frame_dig -1 // element @@ -135,7 +135,7 @@ process_static_tuple_element: frame_dig -2 // head offset retsub -process_dynamic_tuple_element: +*process_dynamic_tuple_element: proto 4 3 frame_dig -4 // tuple head frame_dig -2 // head offset diff --git a/tests/contracts/artifacts/ABITestAccesStringInTuple.arc32.json b/tests/contracts/artifacts/ABITestAccesStringInTuple.arc32.json index f5b17c71c..1ce23fd29 100644 --- a/tests/contracts/artifacts/ABITestAccesStringInTuple.arc32.json +++ b/tests/contracts/artifacts/ABITestAccesStringInTuple.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBhY2Nlc1N0cmluZ0luVHVwbGUoKXN0cmluZwphYmlfcm91dGVfYWNjZXNTdHJpbmdJblR1cGxlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGFjY2VzU3RyaW5nSW5UdXBsZSgpc3RyaW5nCgljYWxsc3ViIGFjY2VzU3RyaW5nSW5UdXBsZQoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBhY2Nlc1N0cmluZ0luVHVwbGUoKTogc3RyaW5nCmFjY2VzU3RyaW5nSW5UdXBsZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjU1MAoJLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCBzdHJpbmcsIHVpbnQ8OD5bXV0gPSBbMSwgWzJdLCAnSGVsbG8gV29ybGQhJywgWzNdXQoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglieXRlIDB4MDAwOCAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0CglieXRlIDB4MDAwMQoJY2FsbHN1YiBwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMTAyCgljYWxsc3ViIHByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwYzQ4NjU2YzZjNmYyMDU3NmY3MjZjNjQyMQoJY2FsbHN1YiBwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDEwMwoJY2FsbHN1YiBwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCBzdHJpbmcsIHVpbnQ8OD5bXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTUyCgkvLyBhc3NlcnQoYVsyXSA9PT0gJ0hlbGxvIFdvcmxkIScpCglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDE2LCB1aW50PDg+W10sIHN0cmluZywgdWludDw4PltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCA0Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCAxIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglleHRyYWN0MwoJZXh0cmFjdCAyIDAKCWJ5dGUgMHg0ODY1NmM2YzZmMjA1NzZmNzI2YzY0MjEgLy8gIkhlbGxvIFdvcmxkISIKCT09Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTU0CgkvLyByZXR1cm4gYVsyXTsKCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXSwgc3RyaW5nLCB1aW50PDg+W11dCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXVuY292ZXIgMgoJZXh0cmFjdF91aW50MTYKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50IDEgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCWV4dHJhY3QzCglleHRyYWN0IDIgMAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJhY2Nlc1N0cmluZ0luVHVwbGUoKXN0cmluZyIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9hY2Nlc1N0cmluZ0luVHVwbGUKCWVycgoKcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50Cgljb25jYXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJZHVwCglsZW4KCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJYnRvaQoJKwoJaXRvYgoJZXh0cmFjdCA2IDIKCWZyYW1lX2J1cnkgLTIgLy8gaGVhZCBvZmZzZXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglzd2FwCgljb25jYXQKCWZyYW1lX2J1cnkgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1Yg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBhY2Nlc1N0cmluZ0luVHVwbGUoKXN0cmluZwoqYWJpX3JvdXRlX2FjY2VzU3RyaW5nSW5UdXBsZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBhY2Nlc1N0cmluZ0luVHVwbGUoKXN0cmluZwoJY2FsbHN1YiBhY2Nlc1N0cmluZ0luVHVwbGUKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYWNjZXNTdHJpbmdJblR1cGxlKCk6IHN0cmluZwphY2Nlc1N0cmluZ0luVHVwbGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1NTAKCS8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXSwgc3RyaW5nLCB1aW50PDg+W11dID0gWzEsIFsyXSwgJ0hlbGxvIFdvcmxkIScsIFszXV0KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJYnl0ZSAweDAwMDggLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJYnl0ZSAweDAwMDEKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDAxMDIKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwYzQ4NjU2YzZjNmYyMDU3NmY3MjZjNjQyMQoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDAxMDMKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDE2LCB1aW50PDg+W10sIHN0cmluZywgdWludDw4PltdXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1NTIKCS8vIGFzc2VydChhWzJdID09PSAnSGVsbG8gV29ybGQhJykKCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXSwgc3RyaW5nLCB1aW50PDg+W11dCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXVuY292ZXIgMgoJZXh0cmFjdF91aW50MTYKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50IDEgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCWV4dHJhY3QzCglleHRyYWN0IDIgMAoJYnl0ZSAweDQ4NjU2YzZjNmYyMDU3NmY3MjZjNjQyMSAvLyAiSGVsbG8gV29ybGQhIgoJPT0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1NTQKCS8vIHJldHVybiBhWzJdOwoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCBzdHJpbmcsIHVpbnQ8OD5bXV0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgNAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMSAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJZXh0cmFjdDMKCWV4dHJhY3QgMiAwCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJhY2Nlc1N0cmluZ0luVHVwbGUoKXN0cmluZyIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYWNjZXNTdHJpbmdJblR1cGxlCgllcnIKCipwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWNvbmNhdAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgoqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJZHVwCglsZW4KCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJYnRvaQoJKwoJaXRvYgoJZXh0cmFjdCA2IDIKCWZyYW1lX2J1cnkgLTIgLy8gaGVhZCBvZmZzZXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglzd2FwCgljb25jYXQKCWZyYW1lX2J1cnkgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1Yg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestAccessDynamicArrayElementInTuple.approval.teal b/tests/contracts/artifacts/ABITestAccessDynamicArrayElementInTuple.approval.teal index cc9741a5a..0d35a92b0 100644 --- a/tests/contracts/artifacts/ABITestAccessDynamicArrayElementInTuple.approval.teal +++ b/tests/contracts/artifacts/ABITestAccessDynamicArrayElementInTuple.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // accessDynamicArrayElementInTuple()uint8 -abi_route_accessDynamicArrayElementInTuple: +*abi_route_accessDynamicArrayElementInTuple: // The ABI return prefix byte 0x151f7c75 @@ -53,9 +53,9 @@ accessDynamicArrayElementInTuple: byte 0x // initial tail byte 0x0004 // initial head offset byte 0x000b - callsub process_static_tuple_element + callsub *process_static_tuple_element byte 0x000316212c - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element pop // pop head offset concat // concat head and tail frame_bury 0 // a: [uint16, uint<8>[]] @@ -81,23 +81,23 @@ accessDynamicArrayElementInTuple: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "accessDynamicArrayElementInTuple()uint8" txna ApplicationArgs 0 - match abi_route_accessDynamicArrayElementInTuple + match *abi_route_accessDynamicArrayElementInTuple err -process_static_tuple_element: +*process_static_tuple_element: proto 4 3 frame_dig -4 // tuple head frame_dig -1 // element @@ -106,7 +106,7 @@ process_static_tuple_element: frame_dig -2 // head offset retsub -process_dynamic_tuple_element: +*process_dynamic_tuple_element: proto 4 3 frame_dig -4 // tuple head frame_dig -2 // head offset diff --git a/tests/contracts/artifacts/ABITestAccessDynamicArrayElementInTuple.arc32.json b/tests/contracts/artifacts/ABITestAccessDynamicArrayElementInTuple.arc32.json index 6459fa691..4dcbf50e0 100644 --- a/tests/contracts/artifacts/ABITestAccessDynamicArrayElementInTuple.arc32.json +++ b/tests/contracts/artifacts/ABITestAccessDynamicArrayElementInTuple.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBhY2Nlc3NEeW5hbWljQXJyYXlFbGVtZW50SW5UdXBsZSgpdWludDgKYWJpX3JvdXRlX2FjY2Vzc0R5bmFtaWNBcnJheUVsZW1lbnRJblR1cGxlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGFjY2Vzc0R5bmFtaWNBcnJheUVsZW1lbnRJblR1cGxlKCl1aW50OAoJY2FsbHN1YiBhY2Nlc3NEeW5hbWljQXJyYXlFbGVtZW50SW5UdXBsZQoJaXRvYgoJZHVwCgliaXRsZW4KCWludCA4Cgk8PQoJYXNzZXJ0CglleHRyYWN0IDcgMQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFjY2Vzc0R5bmFtaWNBcnJheUVsZW1lbnRJblR1cGxlKCk6IHVpbnQ8OD4KYWNjZXNzRHluYW1pY0FycmF5RWxlbWVudEluVHVwbGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo2NzQKCS8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXV0gPSBbMTEsIFsyMiwgMzMsIDQ0XV0KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJYnl0ZSAweDAwMDQgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJYnl0ZSAweDAwMGIKCWNhbGxzdWIgcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDMxNjIxMmMKCWNhbGxzdWIgcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6Njc2CgkvLyByZXR1cm4gYVsxXVsxXTsKCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXV0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMgoJZXh0cmFjdF91aW50MTYKCWludCAxIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJaW50IDEKCWV4dHJhY3QzCglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgImFjY2Vzc0R5bmFtaWNBcnJheUVsZW1lbnRJblR1cGxlKCl1aW50OCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9hY2Nlc3NEeW5hbWljQXJyYXlFbGVtZW50SW5UdXBsZQoJZXJyCgpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWNvbmNhdAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3Vi", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBhY2Nlc3NEeW5hbWljQXJyYXlFbGVtZW50SW5UdXBsZSgpdWludDgKKmFiaV9yb3V0ZV9hY2Nlc3NEeW5hbWljQXJyYXlFbGVtZW50SW5UdXBsZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBhY2Nlc3NEeW5hbWljQXJyYXlFbGVtZW50SW5UdXBsZSgpdWludDgKCWNhbGxzdWIgYWNjZXNzRHluYW1pY0FycmF5RWxlbWVudEluVHVwbGUKCWl0b2IKCWR1cAoJYml0bGVuCglpbnQgOAoJPD0KCWFzc2VydAoJZXh0cmFjdCA3IDEKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBhY2Nlc3NEeW5hbWljQXJyYXlFbGVtZW50SW5UdXBsZSgpOiB1aW50PDg+CmFjY2Vzc0R5bmFtaWNBcnJheUVsZW1lbnRJblR1cGxlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6Njc0CgkvLyBhOiBbdWludDE2LCB1aW50PDg+W11dID0gWzExLCBbMjIsIDMzLCA0NF1dCglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDA0IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCWJ5dGUgMHgwMDBiCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMzE2MjEyYwoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6Njc2CgkvLyByZXR1cm4gYVsxXVsxXTsKCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXV0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMgoJZXh0cmFjdF91aW50MTYKCWludCAxIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJaW50IDEKCWV4dHJhY3QzCglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJhY2Nlc3NEeW5hbWljQXJyYXlFbGVtZW50SW5UdXBsZSgpdWludDgiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2FjY2Vzc0R5bmFtaWNBcnJheUVsZW1lbnRJblR1cGxlCgllcnIKCipwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWNvbmNhdAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgoqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJZHVwCglsZW4KCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJYnRvaQoJKwoJaXRvYgoJZXh0cmFjdCA2IDIKCWZyYW1lX2J1cnkgLTIgLy8gaGVhZCBvZmZzZXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglzd2FwCgljb25jYXQKCWZyYW1lX2J1cnkgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1Yg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestAccessDynamicArrayInMiddleOfTuple.approval.teal b/tests/contracts/artifacts/ABITestAccessDynamicArrayInMiddleOfTuple.approval.teal index e798023d3..a1ba74713 100644 --- a/tests/contracts/artifacts/ABITestAccessDynamicArrayInMiddleOfTuple.approval.teal +++ b/tests/contracts/artifacts/ABITestAccessDynamicArrayInMiddleOfTuple.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // accessDynamicArrayInMiddleOfTuple()uint8[] -abi_route_accessDynamicArrayInMiddleOfTuple: +*abi_route_accessDynamicArrayInMiddleOfTuple: // The ABI return prefix byte 0x151f7c75 @@ -52,11 +52,11 @@ accessDynamicArrayInMiddleOfTuple: byte 0x // initial tail byte 0x0006 // initial head offset byte 0x0001 - callsub process_static_tuple_element + callsub *process_static_tuple_element byte 0x000102 - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element byte 0x0003 - callsub process_static_tuple_element + callsub *process_static_tuple_element pop // pop head offset concat // concat head and tail frame_bury 0 // a: [uint16, uint<8>[], uint16] @@ -85,23 +85,23 @@ accessDynamicArrayInMiddleOfTuple: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "accessDynamicArrayInMiddleOfTuple()uint8[]" txna ApplicationArgs 0 - match abi_route_accessDynamicArrayInMiddleOfTuple + match *abi_route_accessDynamicArrayInMiddleOfTuple err -process_static_tuple_element: +*process_static_tuple_element: proto 4 3 frame_dig -4 // tuple head frame_dig -1 // element @@ -110,7 +110,7 @@ process_static_tuple_element: frame_dig -2 // head offset retsub -process_dynamic_tuple_element: +*process_dynamic_tuple_element: proto 4 3 frame_dig -4 // tuple head frame_dig -2 // head offset diff --git a/tests/contracts/artifacts/ABITestAccessDynamicArrayInMiddleOfTuple.arc32.json b/tests/contracts/artifacts/ABITestAccessDynamicArrayInMiddleOfTuple.arc32.json index 1b038931a..0aa77cefb 100644 --- a/tests/contracts/artifacts/ABITestAccessDynamicArrayInMiddleOfTuple.arc32.json +++ b/tests/contracts/artifacts/ABITestAccessDynamicArrayInMiddleOfTuple.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBhY2Nlc3NEeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGUoKXVpbnQ4W10KYWJpX3JvdXRlX2FjY2Vzc0R5bmFtaWNBcnJheUluTWlkZGxlT2ZUdXBsZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBhY2Nlc3NEeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGUoKXVpbnQ4W10KCWNhbGxzdWIgYWNjZXNzRHluYW1pY0FycmF5SW5NaWRkbGVPZlR1cGxlCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFjY2Vzc0R5bmFtaWNBcnJheUluTWlkZGxlT2ZUdXBsZSgpOiB1aW50PDg+W10KYWNjZXNzRHluYW1pY0FycmF5SW5NaWRkbGVPZlR1cGxlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NjY2CgkvLyBhOiBbdWludDE2LCB1aW50PDg+W10sIHVpbnQxNl0gPSBbMSwgWzJdLCAzXQoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglieXRlIDB4MDAwNiAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0CglieXRlIDB4MDAwMQoJY2FsbHN1YiBwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMTAyCgljYWxsc3ViIHByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMwoJY2FsbHN1YiBwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDE2LCB1aW50PDg+W10sIHVpbnQxNl0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NjY4CgkvLyByZXR1cm4gYVsxXTsKCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2XQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAyCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCAxIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglleHRyYWN0MwoJZXh0cmFjdCAyIDAKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAiYWNjZXNzRHluYW1pY0FycmF5SW5NaWRkbGVPZlR1cGxlKCl1aW50OFtdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2FjY2Vzc0R5bmFtaWNBcnJheUluTWlkZGxlT2ZUdXBsZQoJZXJyCgpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWNvbmNhdAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3Vi", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBhY2Nlc3NEeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGUoKXVpbnQ4W10KKmFiaV9yb3V0ZV9hY2Nlc3NEeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYWNjZXNzRHluYW1pY0FycmF5SW5NaWRkbGVPZlR1cGxlKCl1aW50OFtdCgljYWxsc3ViIGFjY2Vzc0R5bmFtaWNBcnJheUluTWlkZGxlT2ZUdXBsZQoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBhY2Nlc3NEeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGUoKTogdWludDw4PltdCmFjY2Vzc0R5bmFtaWNBcnJheUluTWlkZGxlT2ZUdXBsZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjY2NgoJLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCB1aW50MTZdID0gWzEsIFsyXSwgM10KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJYnl0ZSAweDAwMDYgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJYnl0ZSAweDAwMDEKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDAxMDIKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMwoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCB1aW50MTZdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjY2OAoJLy8gcmV0dXJuIGFbMV07CglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDE2LCB1aW50PDg+W10sIHVpbnQxNl0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMgoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMSAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJZXh0cmFjdDMKCWV4dHJhY3QgMiAwCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJhY2Nlc3NEeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGUoKXVpbnQ4W10iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2FjY2Vzc0R5bmFtaWNBcnJheUluTWlkZGxlT2ZUdXBsZQoJZXJyCgoqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50Cgljb25jYXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0Cgljb25jYXQKCWZyYW1lX2J1cnkgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWR1cAoJbGVuCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWJ0b2kKCSsKCWl0b2IKCWV4dHJhY3QgNiAyCglmcmFtZV9idXJ5IC0yIC8vIGhlYWQgb2Zmc2V0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJc3dhcAoJY29uY2F0CglmcmFtZV9idXJ5IC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestAccessDynamicStringArray.approval.teal b/tests/contracts/artifacts/ABITestAccessDynamicStringArray.approval.teal index ff357f05f..2b366d8dc 100644 --- a/tests/contracts/artifacts/ABITestAccessDynamicStringArray.approval.teal +++ b/tests/contracts/artifacts/ABITestAccessDynamicStringArray.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // accessDynamicStringArray()string -abi_route_accessDynamicStringArray: +*abi_route_accessDynamicStringArray: // The ABI return prefix byte 0x151f7c75 @@ -52,11 +52,11 @@ accessDynamicStringArray: byte 0x // initial tail byte 0x0006 // initial head offset byte 0x000548656c6c6f - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element byte 0x0005576f726c64 - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element byte 0x000121 - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element pop // pop head offset concat // concat head and tail byte 0x0003 @@ -90,23 +90,23 @@ accessDynamicStringArray: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "accessDynamicStringArray()string" txna ApplicationArgs 0 - match abi_route_accessDynamicStringArray + match *abi_route_accessDynamicStringArray err -process_dynamic_tuple_element: +*process_dynamic_tuple_element: proto 4 3 frame_dig -4 // tuple head frame_dig -2 // head offset diff --git a/tests/contracts/artifacts/ABITestAccessDynamicStringArray.arc32.json b/tests/contracts/artifacts/ABITestAccessDynamicStringArray.arc32.json index ecb146981..42801a1e2 100644 --- a/tests/contracts/artifacts/ABITestAccessDynamicStringArray.arc32.json +++ b/tests/contracts/artifacts/ABITestAccessDynamicStringArray.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBhY2Nlc3NEeW5hbWljU3RyaW5nQXJyYXkoKXN0cmluZwphYmlfcm91dGVfYWNjZXNzRHluYW1pY1N0cmluZ0FycmF5OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGFjY2Vzc0R5bmFtaWNTdHJpbmdBcnJheSgpc3RyaW5nCgljYWxsc3ViIGFjY2Vzc0R5bmFtaWNTdHJpbmdBcnJheQoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBhY2Nlc3NEeW5hbWljU3RyaW5nQXJyYXkoKTogc3RyaW5nCmFjY2Vzc0R5bmFtaWNTdHJpbmdBcnJheToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjcxMAoJLy8gYTogc3RyaW5nW10gPSBbJ0hlbGxvJywgJ1dvcmxkJywgJyEnXQoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglieXRlIDB4MDAwNiAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0CglieXRlIDB4MDAwNTQ4NjU2YzZjNmYKCWNhbGxzdWIgcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDA1NTc2ZjcyNmM2NAoJY2FsbHN1YiBwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDEyMQoJY2FsbHN1YiBwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglieXRlIDB4MDAwMwoJc3dhcAoJY29uY2F0CglmcmFtZV9idXJ5IDAgLy8gYTogc3RyaW5nW10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NzEyCgkvLyByZXR1cm4gYVsxXTsKCWZyYW1lX2RpZyAwIC8vIGE6IHN0cmluZ1tdCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXVuY292ZXIgMgoJZXh0cmFjdF91aW50MTYKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMSAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJZXh0cmFjdDMKCWV4dHJhY3QgMiAwCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgImFjY2Vzc0R5bmFtaWNTdHJpbmdBcnJheSgpc3RyaW5nIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2FjY2Vzc0R5bmFtaWNTdHJpbmdBcnJheQoJZXJyCgpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3Vi", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBhY2Nlc3NEeW5hbWljU3RyaW5nQXJyYXkoKXN0cmluZwoqYWJpX3JvdXRlX2FjY2Vzc0R5bmFtaWNTdHJpbmdBcnJheToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBhY2Nlc3NEeW5hbWljU3RyaW5nQXJyYXkoKXN0cmluZwoJY2FsbHN1YiBhY2Nlc3NEeW5hbWljU3RyaW5nQXJyYXkKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYWNjZXNzRHluYW1pY1N0cmluZ0FycmF5KCk6IHN0cmluZwphY2Nlc3NEeW5hbWljU3RyaW5nQXJyYXk6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo3MTAKCS8vIGE6IHN0cmluZ1tdID0gWydIZWxsbycsICdXb3JsZCcsICchJ10KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJYnl0ZSAweDAwMDYgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJYnl0ZSAweDAwMDU0ODY1NmM2YzZmCgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDU1NzZmNzI2YzY0CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDEyMQoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJYnl0ZSAweDAwMDMKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAwIC8vIGE6IHN0cmluZ1tdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjcxMgoJLy8gcmV0dXJuIGFbMV07CglmcmFtZV9kaWcgMCAvLyBhOiBzdHJpbmdbXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCA0Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50IDEgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCWV4dHJhY3QzCglleHRyYWN0IDIgMAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiYWNjZXNzRHluYW1pY1N0cmluZ0FycmF5KClzdHJpbmciCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2FjY2Vzc0R5bmFtaWNTdHJpbmdBcnJheQoJZXJyCgoqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJZHVwCglsZW4KCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJYnRvaQoJKwoJaXRvYgoJZXh0cmFjdCA2IDIKCWZyYW1lX2J1cnkgLTIgLy8gaGVhZCBvZmZzZXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglzd2FwCgljb25jYXQKCWZyYW1lX2J1cnkgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1Yg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestAngularCasting.approval.teal b/tests/contracts/artifacts/ABITestAngularCasting.approval.teal index 1cf6a19dd..9a35efb1b 100644 --- a/tests/contracts/artifacts/ABITestAngularCasting.approval.teal +++ b/tests/contracts/artifacts/ABITestAngularCasting.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // angularCasting()uint256 -abi_route_angularCasting: +*abi_route_angularCasting: // The ABI return prefix byte 0x151f7c75 @@ -67,18 +67,18 @@ angularCasting: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "angularCasting()uint256" txna ApplicationArgs 0 - match abi_route_angularCasting + match *abi_route_angularCasting err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestAngularCasting.arc32.json b/tests/contracts/artifacts/ABITestAngularCasting.arc32.json index ef28398ad..1fed61005 100644 --- a/tests/contracts/artifacts/ABITestAngularCasting.arc32.json +++ b/tests/contracts/artifacts/ABITestAngularCasting.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBhbmd1bGFyQ2FzdGluZygpdWludDI1NgphYmlfcm91dGVfYW5ndWxhckNhc3Rpbmc6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYW5ndWxhckNhc3RpbmcoKXVpbnQyNTYKCWNhbGxzdWIgYW5ndWxhckNhc3RpbmcKCWR1cAoJYml0bGVuCglpbnQgMjU2Cgk8PQoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAzMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFuZ3VsYXJDYXN0aW5nKCk6IHVpbnQyNTYKYW5ndWxhckNhc3Rpbmc6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDQyCgkvLyB4ID0gPHVpbnQyNTY+MTMzNwoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MzkKCWZyYW1lX2J1cnkgMCAvLyB4OiB1aW50MjU2CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwNDQKCS8vIHJldHVybiB4OwoJZnJhbWVfZGlnIDAgLy8geDogdWludDI1NgoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJhbmd1bGFyQ2FzdGluZygpdWludDI1NiIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9hbmd1bGFyQ2FzdGluZwoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBhbmd1bGFyQ2FzdGluZygpdWludDI1NgoqYWJpX3JvdXRlX2FuZ3VsYXJDYXN0aW5nOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGFuZ3VsYXJDYXN0aW5nKCl1aW50MjU2CgljYWxsc3ViIGFuZ3VsYXJDYXN0aW5nCglkdXAKCWJpdGxlbgoJaW50IDI1NgoJPD0KCWFzc2VydAoJYnl0ZSAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMzIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBhbmd1bGFyQ2FzdGluZygpOiB1aW50MjU2CmFuZ3VsYXJDYXN0aW5nOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTA0MgoJLy8geCA9IDx1aW50MjU2PjEzMzcKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTM5CglmcmFtZV9idXJ5IDAgLy8geDogdWludDI1NgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDQ0CgkvLyByZXR1cm4geDsKCWZyYW1lX2RpZyAwIC8vIHg6IHVpbnQyNTYKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImFuZ3VsYXJDYXN0aW5nKCl1aW50MjU2IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9hbmd1bGFyQ2FzdGluZwoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestArrayInMethodCall.approval.teal b/tests/contracts/artifacts/ABITestArrayInMethodCall.approval.teal index aa3a4c82d..830f5d757 100644 --- a/tests/contracts/artifacts/ABITestArrayInMethodCall.approval.teal +++ b/tests/contracts/artifacts/ABITestArrayInMethodCall.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // arrayInMethodCall()void -abi_route_arrayInMethodCall: +*abi_route_arrayInMethodCall: // execute arrayInMethodCall()void callsub arrayInMethodCall int 1 @@ -72,18 +72,18 @@ arrayInMethodCall: itxn_submit retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "arrayInMethodCall()void" txna ApplicationArgs 0 - match abi_route_arrayInMethodCall + match *abi_route_arrayInMethodCall err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestArrayInMethodCall.arc32.json b/tests/contracts/artifacts/ABITestArrayInMethodCall.arc32.json index 4c4a9e28d..741a0d747 100644 --- a/tests/contracts/artifacts/ABITestArrayInMethodCall.arc32.json +++ b/tests/contracts/artifacts/ABITestArrayInMethodCall.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBhcnJheUluTWV0aG9kQ2FsbCgpdm9pZAphYmlfcm91dGVfYXJyYXlJbk1ldGhvZENhbGw6CgkvLyBleGVjdXRlIGFycmF5SW5NZXRob2RDYWxsKCl2b2lkCgljYWxsc3ViIGFycmF5SW5NZXRob2RDYWxsCglpbnQgMQoJcmV0dXJuCgovLyBhcnJheUluTWV0aG9kQ2FsbCgpOiB2b2lkCmFycmF5SW5NZXRob2RDYWxsOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0MDIKCS8vIHNlbmRNZXRob2RDYWxsPFtbdWludDY0LCB1aW50NjRdLCBBZGRyZXNzLCB1aW50NjQsIGJvb2xlYW5dLCB2b2lkPih7CgkvLyAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBsaWNhdGlvbi5mcm9tSUQoMCksCgkvLyAgICAgICBuYW1lOiAnZm9vJywKCS8vICAgICAgIG1ldGhvZEFyZ3M6IFtbMSwgMl0sIHRoaXMudHhuLnNlbmRlciwgMywgZmFsc2VdLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnQgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJbWV0aG9kICJmb28oKHVpbnQ2NCx1aW50NjQpLGFkZHJlc3MsdWludDY0LGJvb2wpdm9pZCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0MDMKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcGxpY2F0aW9uLmZyb21JRCgwKQoJaW50IDAKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDA1CgkvLyBtZXRob2RBcmdzOiBbWzEsIDJdLCB0aGlzLnR4bi5zZW5kZXIsIDMsIGZhbHNlXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAyCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJdHhuIFNlbmRlcgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAzCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJaW50IDAKCWJ5dGUgMHgwMAoJaW50IDAKCXVuY292ZXIgMgoJc2V0Yml0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAiYXJyYXlJbk1ldGhvZENhbGwoKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfYXJyYXlJbk1ldGhvZENhbGwKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBhcnJheUluTWV0aG9kQ2FsbCgpdm9pZAoqYWJpX3JvdXRlX2FycmF5SW5NZXRob2RDYWxsOgoJLy8gZXhlY3V0ZSBhcnJheUluTWV0aG9kQ2FsbCgpdm9pZAoJY2FsbHN1YiBhcnJheUluTWV0aG9kQ2FsbAoJaW50IDEKCXJldHVybgoKLy8gYXJyYXlJbk1ldGhvZENhbGwoKTogdm9pZAphcnJheUluTWV0aG9kQ2FsbDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDAyCgkvLyBzZW5kTWV0aG9kQ2FsbDxbW3VpbnQ2NCwgdWludDY0XSwgQWRkcmVzcywgdWludDY0LCBib29sZWFuXSwgdm9pZD4oewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogQXBwbGljYXRpb24uZnJvbUlEKDApLAoJLy8gICAgICAgbmFtZTogJ2ZvbycsCgkvLyAgICAgICBtZXRob2RBcmdzOiBbWzEsIDJdLCB0aGlzLnR4bi5zZW5kZXIsIDMsIGZhbHNlXSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCW1ldGhvZCAiZm9vKCh1aW50NjQsdWludDY0KSxhZGRyZXNzLHVpbnQ2NCxib29sKXZvaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDAzCgkvLyBhcHBsaWNhdGlvbklEOiBBcHBsaWNhdGlvbi5mcm9tSUQoMCkKCWludCAwCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTQwNQoJLy8gbWV0aG9kQXJnczogW1sxLCAyXSwgdGhpcy50eG4uc2VuZGVyLCAzLCBmYWxzZV0KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAxMDAwMDAwMDAwMDAwMDAwMgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCXR4biBTZW5kZXIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMwoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWludCAwCglieXRlIDB4MDAKCWludCAwCgl1bmNvdmVyIDIKCXNldGJpdAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJhcnJheUluTWV0aG9kQ2FsbCgpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYXJyYXlJbk1ldGhvZENhbGwKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestArrayInObjectInState.approval.teal b/tests/contracts/artifacts/ABITestArrayInObjectInState.approval.teal index b3d01720f..5e87a00d1 100644 --- a/tests/contracts/artifacts/ABITestArrayInObjectInState.approval.teal +++ b/tests/contracts/artifacts/ABITestArrayInObjectInState.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // arrayInObjectInState()uint64 -abi_route_arrayInObjectInState: +*abi_route_arrayInObjectInState: // The ABI return prefix byte 0x151f7c75 @@ -62,18 +62,18 @@ arrayInObjectInState: btoi retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "arrayInObjectInState()uint64" txna ApplicationArgs 0 - match abi_route_arrayInObjectInState + match *abi_route_arrayInObjectInState err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestArrayInObjectInState.arc32.json b/tests/contracts/artifacts/ABITestArrayInObjectInState.arc32.json index ff57caa1d..5f6717364 100644 --- a/tests/contracts/artifacts/ABITestArrayInObjectInState.arc32.json +++ b/tests/contracts/artifacts/ABITestArrayInObjectInState.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBhcnJheUluT2JqZWN0SW5TdGF0ZSgpdWludDY0CmFiaV9yb3V0ZV9hcnJheUluT2JqZWN0SW5TdGF0ZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBhcnJheUluT2JqZWN0SW5TdGF0ZSgpdWludDY0CgljYWxsc3ViIGFycmF5SW5PYmplY3RJblN0YXRlCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYXJyYXlJbk9iamVjdEluU3RhdGUoKTogdWludDY0CmFycmF5SW5PYmplY3RJblN0YXRlOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwODcKCS8vIHRoaXMuZ01hcCh0aGlzLnR4bi5zZW5kZXIpLnZhbHVlID0geyBiYXI6IFsxLCAyXSB9Cgl0eG4gU2VuZGVyCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwODgKCS8vIHRoaXMuZ01hcCh0aGlzLnR4bi5zZW5kZXIpLnZhbHVlLmJhclsxXSA9IDMKCXR4biBTZW5kZXIKCWFwcF9nbG9iYWxfZ2V0CglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMwoJcmVwbGFjZTIgOAoJdHhuIFNlbmRlcgoJc3dhcAoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTA4OQoJLy8gcmV0dXJuIHRoaXMuZ01hcCh0aGlzLnR4bi5zZW5kZXIpLnZhbHVlLmJhclsxXTsKCXR4biBTZW5kZXIKCWFwcF9nbG9iYWxfZ2V0CglleHRyYWN0IDggOAoJYnRvaQoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJhcnJheUluT2JqZWN0SW5TdGF0ZSgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2FycmF5SW5PYmplY3RJblN0YXRlCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBhcnJheUluT2JqZWN0SW5TdGF0ZSgpdWludDY0CiphYmlfcm91dGVfYXJyYXlJbk9iamVjdEluU3RhdGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYXJyYXlJbk9iamVjdEluU3RhdGUoKXVpbnQ2NAoJY2FsbHN1YiBhcnJheUluT2JqZWN0SW5TdGF0ZQoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFycmF5SW5PYmplY3RJblN0YXRlKCk6IHVpbnQ2NAphcnJheUluT2JqZWN0SW5TdGF0ZToKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDg3CgkvLyB0aGlzLmdNYXAodGhpcy50eG4uc2VuZGVyKS52YWx1ZSA9IHsgYmFyOiBbMSwgMl0gfQoJdHhuIFNlbmRlcgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDg4CgkvLyB0aGlzLmdNYXAodGhpcy50eG4uc2VuZGVyKS52YWx1ZS5iYXJbMV0gPSAzCgl0eG4gU2VuZGVyCglhcHBfZ2xvYmFsX2dldAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDMKCXJlcGxhY2UyIDgKCXR4biBTZW5kZXIKCXN3YXAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwODkKCS8vIHJldHVybiB0aGlzLmdNYXAodGhpcy50eG4uc2VuZGVyKS52YWx1ZS5iYXJbMV07Cgl0eG4gU2VuZGVyCglhcHBfZ2xvYmFsX2dldAoJZXh0cmFjdCA4IDgKCWJ0b2kKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImFycmF5SW5PYmplY3RJblN0YXRlKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2FycmF5SW5PYmplY3RJblN0YXRlCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestArrayInTuple.approval.teal b/tests/contracts/artifacts/ABITestArrayInTuple.approval.teal index 6caed3b07..637907ec8 100644 --- a/tests/contracts/artifacts/ABITestArrayInTuple.approval.teal +++ b/tests/contracts/artifacts/ABITestArrayInTuple.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // arrayInTuple()uint64 -abi_route_arrayInTuple: +*abi_route_arrayInTuple: // The ABI return prefix byte 0x151f7c75 @@ -56,18 +56,18 @@ arrayInTuple: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "arrayInTuple()uint64" txna ApplicationArgs 0 - match abi_route_arrayInTuple + match *abi_route_arrayInTuple err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestArrayInTuple.arc32.json b/tests/contracts/artifacts/ABITestArrayInTuple.arc32.json index 0613c2310..b6112dacf 100644 --- a/tests/contracts/artifacts/ABITestArrayInTuple.arc32.json +++ b/tests/contracts/artifacts/ABITestArrayInTuple.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBhcnJheUluVHVwbGUoKXVpbnQ2NAphYmlfcm91dGVfYXJyYXlJblR1cGxlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGFycmF5SW5UdXBsZSgpdWludDY0CgljYWxsc3ViIGFycmF5SW5UdXBsZQoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFycmF5SW5UdXBsZSgpOiB1aW50NjQKYXJyYXlJblR1cGxlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MjY1CgkvLyBhOiBbdWludDY0LCB1aW50MTYsIFN0YXRpY0FycmF5PHVpbnQ2NCwgMj4sIHVpbnQxNl0gPSBbMTEsIDIyLCBbMzMsIDQ0XSwgNTVdCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwYjAwMTYwMDAwMDAwMDAwMDAwMDIxMDAwMDAwMDAwMDAwMDAyYzAwMzcKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDY0LCB1aW50MTYsIFN0YXRpY0FycmF5PHVpbnQ2NCwgMj4sIHVpbnQxNl0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MjY3CgkvLyByZXR1cm4gYVsyXVsxXTsKCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50NjQsIHVpbnQxNiwgU3RhdGljQXJyYXk8dWludDY0LCAyPiwgdWludDE2XQoJZXh0cmFjdCAxOCA4CglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgImFycmF5SW5UdXBsZSgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2FycmF5SW5UdXBsZQoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBhcnJheUluVHVwbGUoKXVpbnQ2NAoqYWJpX3JvdXRlX2FycmF5SW5UdXBsZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBhcnJheUluVHVwbGUoKXVpbnQ2NAoJY2FsbHN1YiBhcnJheUluVHVwbGUKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBhcnJheUluVHVwbGUoKTogdWludDY0CmFycmF5SW5UdXBsZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjI2NQoJLy8gYTogW3VpbnQ2NCwgdWludDE2LCBTdGF0aWNBcnJheTx1aW50NjQsIDI+LCB1aW50MTZdID0gWzExLCAyMiwgWzMzLCA0NF0sIDU1XQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMGIwMDE2MDAwMDAwMDAwMDAwMDAyMTAwMDAwMDAwMDAwMDAwMmMwMDM3CglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQ2NCwgdWludDE2LCBTdGF0aWNBcnJheTx1aW50NjQsIDI+LCB1aW50MTZdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjI2NwoJLy8gcmV0dXJuIGFbMl1bMV07CglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDY0LCB1aW50MTYsIFN0YXRpY0FycmF5PHVpbnQ2NCwgMj4sIHVpbnQxNl0KCWV4dHJhY3QgMTggOAoJYnRvaQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiYXJyYXlJblR1cGxlKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2FycmF5SW5UdXBsZQoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestArrayLength.approval.teal b/tests/contracts/artifacts/ABITestArrayLength.approval.teal index 4927ea78d..ebf9c04eb 100644 --- a/tests/contracts/artifacts/ABITestArrayLength.approval.teal +++ b/tests/contracts/artifacts/ABITestArrayLength.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // arrayLength()uint64 -abi_route_arrayLength: +*abi_route_arrayLength: // The ABI return prefix byte 0x151f7c75 @@ -57,18 +57,18 @@ arrayLength: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "arrayLength()uint64" txna ApplicationArgs 0 - match abi_route_arrayLength + match *abi_route_arrayLength err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestArrayLength.arc32.json b/tests/contracts/artifacts/ABITestArrayLength.arc32.json index dbe91c3f9..aecd69020 100644 --- a/tests/contracts/artifacts/ABITestArrayLength.arc32.json +++ b/tests/contracts/artifacts/ABITestArrayLength.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBhcnJheUxlbmd0aCgpdWludDY0CmFiaV9yb3V0ZV9hcnJheUxlbmd0aDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBhcnJheUxlbmd0aCgpdWludDY0CgljYWxsc3ViIGFycmF5TGVuZ3RoCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYXJyYXlMZW5ndGgoKTogdWludDY0CmFycmF5TGVuZ3RoOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NzQ0CgkvLyBhOiB1aW50PDg+W10gPSBbMTEsIDIyLCAzMywgNDQsIDU1XQoJYnl0ZSAweDBiMTYyMTJjMzcKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50PDg+W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NzQ2CgkvLyByZXR1cm4gYS5sZW5ndGg7CglmcmFtZV9kaWcgMCAvLyBhOiB1aW50PDg+W10KCWxlbgoJaW50IDEKCS8KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAiYXJyYXlMZW5ndGgoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9hcnJheUxlbmd0aAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBhcnJheUxlbmd0aCgpdWludDY0CiphYmlfcm91dGVfYXJyYXlMZW5ndGg6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYXJyYXlMZW5ndGgoKXVpbnQ2NAoJY2FsbHN1YiBhcnJheUxlbmd0aAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFycmF5TGVuZ3RoKCk6IHVpbnQ2NAphcnJheUxlbmd0aDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjc0NAoJLy8gYTogdWludDw4PltdID0gWzExLCAyMiwgMzMsIDQ0LCA1NV0KCWJ5dGUgMHgwYjE2MjEyYzM3CglmcmFtZV9idXJ5IDAgLy8gYTogdWludDw4PltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjc0NgoJLy8gcmV0dXJuIGEubGVuZ3RoOwoJZnJhbWVfZGlnIDAgLy8gYTogdWludDw4PltdCglsZW4KCWludCAxCgkvCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJhcnJheUxlbmd0aCgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9hcnJheUxlbmd0aAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestArrayPop.approval.teal b/tests/contracts/artifacts/ABITestArrayPop.approval.teal index 36726e3d5..6800c7269 100644 --- a/tests/contracts/artifacts/ABITestArrayPop.approval.teal +++ b/tests/contracts/artifacts/ABITestArrayPop.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // arrayPop()uint16[] -abi_route_arrayPop: +*abi_route_arrayPop: // The ABI return prefix byte 0x151f7c75 @@ -73,18 +73,18 @@ arrayPop: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "arrayPop()uint16[]" txna ApplicationArgs 0 - match abi_route_arrayPop + match *abi_route_arrayPop err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestArrayPop.arc32.json b/tests/contracts/artifacts/ABITestArrayPop.arc32.json index 6c49eab2b..f1343236c 100644 --- a/tests/contracts/artifacts/ABITestArrayPop.arc32.json +++ b/tests/contracts/artifacts/ABITestArrayPop.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBhcnJheVBvcCgpdWludDE2W10KYWJpX3JvdXRlX2FycmF5UG9wOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGFycmF5UG9wKCl1aW50MTZbXQoJY2FsbHN1YiBhcnJheVBvcAoJZHVwCglsZW4KCWludCAyCgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYXJyYXlQb3AoKTogdWludDE2W10KYXJyYXlQb3A6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0MzkKCS8vIGE6IHVpbnQxNltdID0gWzEsIDIsIDNdCglieXRlIDB4MDAwMTAwMDIwMDAzCglmcmFtZV9idXJ5IDAgLy8gYTogdWludDE2W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDQxCgkvLyBhLnBvcCgpCglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoJZHVwCglsZW4KCWludCAyCgktCglpbnQgMAoJc3dhcAoJZXh0cmFjdDMKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50MTZbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0NDMKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogdWludDE2W10KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAiYXJyYXlQb3AoKXVpbnQxNltdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2FycmF5UG9wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBhcnJheVBvcCgpdWludDE2W10KKmFiaV9yb3V0ZV9hcnJheVBvcDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBhcnJheVBvcCgpdWludDE2W10KCWNhbGxzdWIgYXJyYXlQb3AKCWR1cAoJbGVuCglpbnQgMgoJLwoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFycmF5UG9wKCk6IHVpbnQxNltdCmFycmF5UG9wOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDM5CgkvLyBhOiB1aW50MTZbXSA9IFsxLCAyLCAzXQoJYnl0ZSAweDAwMDEwMDAyMDAwMwoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQxNltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ0MQoJLy8gYS5wb3AoKQoJZnJhbWVfZGlnIDAgLy8gYTogdWludDE2W10KCWR1cAoJbGVuCglpbnQgMgoJLQoJaW50IDAKCXN3YXAKCWV4dHJhY3QzCglmcmFtZV9idXJ5IDAgLy8gYTogdWludDE2W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDQzCgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJhcnJheVBvcCgpdWludDE2W10iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2FycmF5UG9wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestArrayPopValue.approval.teal b/tests/contracts/artifacts/ABITestArrayPopValue.approval.teal index f37cadb05..d38159216 100644 --- a/tests/contracts/artifacts/ABITestArrayPopValue.approval.teal +++ b/tests/contracts/artifacts/ABITestArrayPopValue.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // arrayPopValue()uint16 -abi_route_arrayPopValue: +*abi_route_arrayPopValue: // The ABI return prefix byte 0x151f7c75 @@ -85,18 +85,18 @@ arrayPopValue: popn 1 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "arrayPopValue()uint16" txna ApplicationArgs 0 - match abi_route_arrayPopValue + match *abi_route_arrayPopValue err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestArrayPopValue.arc32.json b/tests/contracts/artifacts/ABITestArrayPopValue.arc32.json index bdd7cd3a7..b3b8e7673 100644 --- a/tests/contracts/artifacts/ABITestArrayPopValue.arc32.json +++ b/tests/contracts/artifacts/ABITestArrayPopValue.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBhcnJheVBvcFZhbHVlKCl1aW50MTYKYWJpX3JvdXRlX2FycmF5UG9wVmFsdWU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYXJyYXlQb3BWYWx1ZSgpdWludDE2CgljYWxsc3ViIGFycmF5UG9wVmFsdWUKCWl0b2IKCWR1cAoJYml0bGVuCglpbnQgMTYKCTw9Cglhc3NlcnQKCWV4dHJhY3QgNiAyCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYXJyYXlQb3BWYWx1ZSgpOiB1aW50MTYKYXJyYXlQb3BWYWx1ZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDQ5CgkvLyBhOiB1aW50MTZbXSA9IFsxLCAyLCAzXQoJYnl0ZSAweDAwMDEwMDAyMDAwMwoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQxNltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ1MQoJLy8gdiA9IGEucG9wKCkhCglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoJZHVwCglsZW4KCWludCAyCgktCglpbnQgMAoJc3dhcAoJZXh0cmFjdDMKCWR1cAoJbGVuCglpbnQgMgoJZnJhbWVfZGlnIDAgLy8gYTogdWludDE2W10KCWNvdmVyIDIKCWV4dHJhY3QzCglzd2FwCglmcmFtZV9idXJ5IDAgLy8gYTogdWludDE2W10KCWJ0b2kKCWZyYW1lX2J1cnkgMSAvLyB2OiB1aW50MTYKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDUzCgkvLyByZXR1cm4gdjsKCWZyYW1lX2RpZyAxIC8vIHY6IHVpbnQxNgoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAiYXJyYXlQb3BWYWx1ZSgpdWludDE2IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2FycmF5UG9wVmFsdWUKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBhcnJheVBvcFZhbHVlKCl1aW50MTYKKmFiaV9yb3V0ZV9hcnJheVBvcFZhbHVlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGFycmF5UG9wVmFsdWUoKXVpbnQxNgoJY2FsbHN1YiBhcnJheVBvcFZhbHVlCglpdG9iCglkdXAKCWJpdGxlbgoJaW50IDE2Cgk8PQoJYXNzZXJ0CglleHRyYWN0IDYgMgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFycmF5UG9wVmFsdWUoKTogdWludDE2CmFycmF5UG9wVmFsdWU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ0OQoJLy8gYTogdWludDE2W10gPSBbMSwgMiwgM10KCWJ5dGUgMHgwMDAxMDAwMjAwMDMKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50MTZbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0NTEKCS8vIHYgPSBhLnBvcCgpIQoJZnJhbWVfZGlnIDAgLy8gYTogdWludDE2W10KCWR1cAoJbGVuCglpbnQgMgoJLQoJaW50IDAKCXN3YXAKCWV4dHJhY3QzCglkdXAKCWxlbgoJaW50IDIKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCgljb3ZlciAyCglleHRyYWN0MwoJc3dhcAoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQxNltdCglidG9pCglmcmFtZV9idXJ5IDEgLy8gdjogdWludDE2CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ1MwoJLy8gcmV0dXJuIHY7CglmcmFtZV9kaWcgMSAvLyB2OiB1aW50MTYKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJhcnJheVBvcFZhbHVlKCl1aW50MTYiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2FycmF5UG9wVmFsdWUKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestArrayPush.approval.teal b/tests/contracts/artifacts/ABITestArrayPush.approval.teal index b87a7779c..e09e4fb74 100644 --- a/tests/contracts/artifacts/ABITestArrayPush.approval.teal +++ b/tests/contracts/artifacts/ABITestArrayPush.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // arrayPush()uint16[] -abi_route_arrayPush: +*abi_route_arrayPush: // The ABI return prefix byte 0x151f7c75 @@ -68,18 +68,18 @@ arrayPush: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "arrayPush()uint16[]" txna ApplicationArgs 0 - match abi_route_arrayPush + match *abi_route_arrayPush err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestArrayPush.arc32.json b/tests/contracts/artifacts/ABITestArrayPush.arc32.json index 76007f309..88f38ee7f 100644 --- a/tests/contracts/artifacts/ABITestArrayPush.arc32.json +++ b/tests/contracts/artifacts/ABITestArrayPush.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBhcnJheVB1c2goKXVpbnQxNltdCmFiaV9yb3V0ZV9hcnJheVB1c2g6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYXJyYXlQdXNoKCl1aW50MTZbXQoJY2FsbHN1YiBhcnJheVB1c2gKCWR1cAoJbGVuCglpbnQgMgoJLwoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFycmF5UHVzaCgpOiB1aW50MTZbXQphcnJheVB1c2g6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0MjkKCS8vIGE6IHVpbnQxNltdID0gWzEsIDJdCglieXRlIDB4MDAwMTAwMDIKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50MTZbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0MzEKCS8vIGEucHVzaCgzIGFzIHVpbnQxNikKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCglieXRlIDB4MDAwMwoJY29uY2F0CglmcmFtZV9idXJ5IDAgLy8gYTogdWludDE2W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDMzCgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgImFycmF5UHVzaCgpdWludDE2W10iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfYXJyYXlQdXNoCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBhcnJheVB1c2goKXVpbnQxNltdCiphYmlfcm91dGVfYXJyYXlQdXNoOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGFycmF5UHVzaCgpdWludDE2W10KCWNhbGxzdWIgYXJyYXlQdXNoCglkdXAKCWxlbgoJaW50IDIKCS8KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBhcnJheVB1c2goKTogdWludDE2W10KYXJyYXlQdXNoOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDI5CgkvLyBhOiB1aW50MTZbXSA9IFsxLCAyXQoJYnl0ZSAweDAwMDEwMDAyCglmcmFtZV9idXJ5IDAgLy8gYTogdWludDE2W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDMxCgkvLyBhLnB1c2goMyBhcyB1aW50MTYpCglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoJYnl0ZSAweDAwMDMKCWNvbmNhdAoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQxNltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQzMwoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiYXJyYXlQdXNoKCl1aW50MTZbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYXJyYXlQdXNoCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestArrayRef.approval.teal b/tests/contracts/artifacts/ABITestArrayRef.approval.teal index 9d2d46a6b..a7fd49349 100644 --- a/tests/contracts/artifacts/ABITestArrayRef.approval.teal +++ b/tests/contracts/artifacts/ABITestArrayRef.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // arrayRef()uint8[] -abi_route_arrayRef: +*abi_route_arrayRef: // The ABI return prefix byte 0x151f7c75 @@ -68,18 +68,18 @@ arrayRef: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "arrayRef()uint8[]" txna ApplicationArgs 0 - match abi_route_arrayRef + match *abi_route_arrayRef err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestArrayRef.arc32.json b/tests/contracts/artifacts/ABITestArrayRef.arc32.json index bb33dbed8..c8421dff4 100644 --- a/tests/contracts/artifacts/ABITestArrayRef.arc32.json +++ b/tests/contracts/artifacts/ABITestArrayRef.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBhcnJheVJlZigpdWludDhbXQphYmlfcm91dGVfYXJyYXlSZWY6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYXJyYXlSZWYoKXVpbnQ4W10KCWNhbGxzdWIgYXJyYXlSZWYKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYXJyYXlSZWYoKTogdWludDw4PltdCmFycmF5UmVmOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NzU5CgkvLyBhOiB1aW50PDg+W10gPSBbMSwgMiwgM10KCWJ5dGUgMHgwMTAyMDMKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50PDg+W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NzYyCgkvLyBiWzFdID0gNCBhcyB1aW50PDg+CglmcmFtZV9kaWcgMCAvLyBhOiB1aW50PDg+W10KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglieXRlIDB4MDQKCXJlcGxhY2UyIDEKCWZyYW1lX2J1cnkgMCAvLyBiOiB1aW50PDg+W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NzY0CgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQ8OD5bXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJhcnJheVJlZigpdWludDhbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9hcnJheVJlZgoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBhcnJheVJlZigpdWludDhbXQoqYWJpX3JvdXRlX2FycmF5UmVmOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGFycmF5UmVmKCl1aW50OFtdCgljYWxsc3ViIGFycmF5UmVmCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFycmF5UmVmKCk6IHVpbnQ8OD5bXQphcnJheVJlZjoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjc1OQoJLy8gYTogdWludDw4PltdID0gWzEsIDIsIDNdCglieXRlIDB4MDEwMjAzCglmcmFtZV9idXJ5IDAgLy8gYTogdWludDw4PltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjc2MgoJLy8gYlsxXSA9IDQgYXMgdWludDw4PgoJZnJhbWVfZGlnIDAgLy8gYTogdWludDw4PltdCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJYnl0ZSAweDA0CglyZXBsYWNlMiAxCglmcmFtZV9idXJ5IDAgLy8gYjogdWludDw4PltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjc2NAoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiB1aW50PDg+W10KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImFycmF5UmVmKCl1aW50OFtdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9hcnJheVJlZgoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestArraySplice.approval.teal b/tests/contracts/artifacts/ABITestArraySplice.approval.teal index 10720f428..38614fc60 100644 --- a/tests/contracts/artifacts/ABITestArraySplice.approval.teal +++ b/tests/contracts/artifacts/ABITestArraySplice.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // arraySplice()uint64[] -abi_route_arraySplice: +*abi_route_arraySplice: // The ABI return prefix byte 0x151f7c75 @@ -86,18 +86,18 @@ arraySplice: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "arraySplice()uint64[]" txna ApplicationArgs 0 - match abi_route_arraySplice + match *abi_route_arraySplice err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestArraySplice.arc32.json b/tests/contracts/artifacts/ABITestArraySplice.arc32.json index 50fe92131..bb61a7496 100644 --- a/tests/contracts/artifacts/ABITestArraySplice.arc32.json +++ b/tests/contracts/artifacts/ABITestArraySplice.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBhcnJheVNwbGljZSgpdWludDY0W10KYWJpX3JvdXRlX2FycmF5U3BsaWNlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGFycmF5U3BsaWNlKCl1aW50NjRbXQoJY2FsbHN1YiBhcnJheVNwbGljZQoJZHVwCglsZW4KCWludCA4CgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYXJyYXlTcGxpY2UoKTogdWludDY0W10KYXJyYXlTcGxpY2U6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0NTkKCS8vIGE6IHVpbnQ2NFtdID0gWzEsIDIsIDNdCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAzCglmcmFtZV9idXJ5IDAgLy8gYTogdWludDY0W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDYxCgkvLyBhLnNwbGljZSgxLCAxKQoJZnJhbWVfZGlnIDAgLy8gYTogdWludDY0W10KCWludCAxCglpbnQgOAoJc3RvcmUgMjQ3IC8vIHNwbGljZSBzdGFydAoJaW50IDE2CglzdG9yZSAyNDYgLy8gc3BsaWNlIGJ5dGUgbGVuZ3RoCglmcmFtZV9kaWcgMCAvLyBhOiB1aW50NjRbXQoJaW50IDAKCWxvYWQgMjQ3IC8vIHNwbGljZSBzdGFydAoJc3Vic3RyaW5nMwoJZnJhbWVfZGlnIDAgLy8gYTogdWludDY0W10KCWR1cAoJbGVuCglsb2FkIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCWxvYWQgMjQ2IC8vIHNwbGljZSBieXRlIGxlbmd0aAoJKwoJaW50IDgKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQ2NFtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ2MwoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiB1aW50NjRbXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJhcnJheVNwbGljZSgpdWludDY0W10iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfYXJyYXlTcGxpY2UKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBhcnJheVNwbGljZSgpdWludDY0W10KKmFiaV9yb3V0ZV9hcnJheVNwbGljZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBhcnJheVNwbGljZSgpdWludDY0W10KCWNhbGxzdWIgYXJyYXlTcGxpY2UKCWR1cAoJbGVuCglpbnQgOAoJLwoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFycmF5U3BsaWNlKCk6IHVpbnQ2NFtdCmFycmF5U3BsaWNlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDU5CgkvLyBhOiB1aW50NjRbXSA9IFsxLCAyLCAzXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMwoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQ2NFtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ2MQoJLy8gYS5zcGxpY2UoMSwgMSkKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQ2NFtdCglpbnQgMQoJaW50IDgKCXN0b3JlIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCWludCAxNgoJc3RvcmUgMjQ2IC8vIHNwbGljZSBieXRlIGxlbmd0aAoJZnJhbWVfZGlnIDAgLy8gYTogdWludDY0W10KCWludCAwCglsb2FkIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCXN1YnN0cmluZzMKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQ2NFtdCglkdXAKCWxlbgoJbG9hZCAyNDcgLy8gc3BsaWNlIHN0YXJ0Cglsb2FkIDI0NiAvLyBzcGxpY2UgYnl0ZSBsZW5ndGgKCSsKCWludCA4CgktCglzd2FwCglzdWJzdHJpbmczCgljb25jYXQKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50NjRbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0NjMKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogdWludDY0W10KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImFycmF5U3BsaWNlKCl1aW50NjRbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYXJyYXlTcGxpY2UKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestArraySpliceValue.approval.teal b/tests/contracts/artifacts/ABITestArraySpliceValue.approval.teal index 85befae92..d101c045a 100644 --- a/tests/contracts/artifacts/ABITestArraySpliceValue.approval.teal +++ b/tests/contracts/artifacts/ABITestArraySpliceValue.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // arraySpliceValue()uint16[] -abi_route_arraySpliceValue: +*abi_route_arraySpliceValue: // The ABI return prefix byte 0x151f7c75 @@ -108,18 +108,18 @@ arraySpliceValue: popn 3 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "arraySpliceValue()uint16[]" txna ApplicationArgs 0 - match abi_route_arraySpliceValue + match *abi_route_arraySpliceValue err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestArraySpliceValue.arc32.json b/tests/contracts/artifacts/ABITestArraySpliceValue.arc32.json index 601fb6efc..0503b4462 100644 --- a/tests/contracts/artifacts/ABITestArraySpliceValue.arc32.json +++ b/tests/contracts/artifacts/ABITestArraySpliceValue.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBhcnJheVNwbGljZVZhbHVlKCl1aW50MTZbXQphYmlfcm91dGVfYXJyYXlTcGxpY2VWYWx1ZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBhcnJheVNwbGljZVZhbHVlKCl1aW50MTZbXQoJY2FsbHN1YiBhcnJheVNwbGljZVZhbHVlCglkdXAKCWxlbgoJaW50IDIKCS8KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBhcnJheVNwbGljZVZhbHVlKCk6IHVpbnQxNltdCmFycmF5U3BsaWNlVmFsdWU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiAzCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ2OQoJLy8gYTogdWludDE2W10gPSBbMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTBdCglieXRlIDB4MDAwMTAwMDIwMDAzMDAwNDAwMDUwMDA2MDAwNzAwMDgwMDA5MDAwYQoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQxNltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ3MQoJLy8gaSA9IGJ0b2koaXRvYigxKSkKCWludCAxCglmcmFtZV9idXJ5IDEgLy8gaTogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ3MgoJLy8gbCA9IGJ0b2koaXRvYig3KSkKCWludCA3CglmcmFtZV9idXJ5IDIgLy8gbDogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ3MwoJLy8gdiA9IGEuc3BsaWNlKGksIGwpCglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoJaW50IDcgLy8gbDogdWludDY0CglpbnQgMgoJc3RvcmUgMjQ3IC8vIHNwbGljZSBzdGFydAoJaW50IDE2CglzdG9yZSAyNDYgLy8gc3BsaWNlIGJ5dGUgbGVuZ3RoCglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoJaW50IDAKCWxvYWQgMjQ3IC8vIHNwbGljZSBzdGFydAoJc3Vic3RyaW5nMwoJZnJhbWVfZGlnIDAgLy8gYTogdWludDE2W10KCWR1cAoJbGVuCglsb2FkIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCWxvYWQgMjQ2IC8vIHNwbGljZSBieXRlIGxlbmd0aAoJKwoJaW50IDIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJZnJhbWVfZGlnIDAgLy8gYTogdWludDE2W10KCWxvYWQgMjQ3IC8vIHNwbGljZSBzdGFydAoJbG9hZCAyNDYgLy8gc3BsaWNlIGJ5dGUgbGVuZ3RoCglpbnQgMgoJLQoJZXh0cmFjdDMKCXN3YXAKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50MTZbXQoJZnJhbWVfYnVyeSAzIC8vIHY6IHVpbnQxNltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ3NQoJLy8gcmV0dXJuIHY7CglmcmFtZV9kaWcgMyAvLyB2OiB1aW50MTZbXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDMKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAiYXJyYXlTcGxpY2VWYWx1ZSgpdWludDE2W10iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfYXJyYXlTcGxpY2VWYWx1ZQoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBhcnJheVNwbGljZVZhbHVlKCl1aW50MTZbXQoqYWJpX3JvdXRlX2FycmF5U3BsaWNlVmFsdWU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYXJyYXlTcGxpY2VWYWx1ZSgpdWludDE2W10KCWNhbGxzdWIgYXJyYXlTcGxpY2VWYWx1ZQoJZHVwCglsZW4KCWludCAyCgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYXJyYXlTcGxpY2VWYWx1ZSgpOiB1aW50MTZbXQphcnJheVNwbGljZVZhbHVlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gMwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0NjkKCS8vIGE6IHVpbnQxNltdID0gWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwXQoJYnl0ZSAweDAwMDEwMDAyMDAwMzAwMDQwMDA1MDAwNjAwMDcwMDA4MDAwOTAwMGEKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50MTZbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0NzEKCS8vIGkgPSBidG9pKGl0b2IoMSkpCglpbnQgMQoJZnJhbWVfYnVyeSAxIC8vIGk6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0NzIKCS8vIGwgPSBidG9pKGl0b2IoNykpCglpbnQgNwoJZnJhbWVfYnVyeSAyIC8vIGw6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0NzMKCS8vIHYgPSBhLnNwbGljZShpLCBsKQoJZnJhbWVfZGlnIDAgLy8gYTogdWludDE2W10KCWludCA3IC8vIGw6IHVpbnQ2NAoJaW50IDIKCXN0b3JlIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCWludCAxNgoJc3RvcmUgMjQ2IC8vIHNwbGljZSBieXRlIGxlbmd0aAoJZnJhbWVfZGlnIDAgLy8gYTogdWludDE2W10KCWludCAwCglsb2FkIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCXN1YnN0cmluZzMKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCglkdXAKCWxlbgoJbG9hZCAyNDcgLy8gc3BsaWNlIHN0YXJ0Cglsb2FkIDI0NiAvLyBzcGxpY2UgYnl0ZSBsZW5ndGgKCSsKCWludCAyCgktCglzd2FwCglzdWJzdHJpbmczCgljb25jYXQKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCglsb2FkIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCWxvYWQgMjQ2IC8vIHNwbGljZSBieXRlIGxlbmd0aAoJaW50IDIKCS0KCWV4dHJhY3QzCglzd2FwCglmcmFtZV9idXJ5IDAgLy8gYTogdWludDE2W10KCWZyYW1lX2J1cnkgMyAvLyB2OiB1aW50MTZbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0NzUKCS8vIHJldHVybiB2OwoJZnJhbWVfZGlnIDMgLy8gdjogdWludDE2W10KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAzCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJhcnJheVNwbGljZVZhbHVlKCl1aW50MTZbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYXJyYXlTcGxpY2VWYWx1ZQoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestBiggerByteCasting.approval.teal b/tests/contracts/artifacts/ABITestBiggerByteCasting.approval.teal index b02d8eea6..c308ab2ea 100644 --- a/tests/contracts/artifacts/ABITestBiggerByteCasting.approval.teal +++ b/tests/contracts/artifacts/ABITestBiggerByteCasting.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // biggerByteCasting(byte[2])byte[4] -abi_route_biggerByteCasting: +*abi_route_biggerByteCasting: // The ABI return prefix byte 0x151f7c75 @@ -52,18 +52,18 @@ biggerByteCasting: concat retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "biggerByteCasting(byte[2])byte[4]" txna ApplicationArgs 0 - match abi_route_biggerByteCasting + match *abi_route_biggerByteCasting err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestBiggerByteCasting.arc32.json b/tests/contracts/artifacts/ABITestBiggerByteCasting.arc32.json index d4b580d49..ae5097958 100644 --- a/tests/contracts/artifacts/ABITestBiggerByteCasting.arc32.json +++ b/tests/contracts/artifacts/ABITestBiggerByteCasting.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBiaWdnZXJCeXRlQ2FzdGluZyhieXRlWzJdKWJ5dGVbNF0KYWJpX3JvdXRlX2JpZ2dlckJ5dGVDYXN0aW5nOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBhOiBieXRlWzJdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDIKCT09Cglhc3NlcnQKCgkvLyBleGVjdXRlIGJpZ2dlckJ5dGVDYXN0aW5nKGJ5dGVbMl0pYnl0ZVs0XQoJY2FsbHN1YiBiaWdnZXJCeXRlQ2FzdGluZwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJpZ2dlckJ5dGVDYXN0aW5nKGE6IGJ5dGVzPDI+KTogYnl0ZXM8ND4KYmlnZ2VyQnl0ZUNhc3Rpbmc6Cglwcm90byAxIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTIxNgoJLy8gcmV0dXJuIDxieXRlczw0Pj5hOwoJZnJhbWVfZGlnIC0xIC8vIGE6IGJ5dGVzPDI+CglieXRlIDB4MDAwMAoJY29uY2F0CglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgImJpZ2dlckJ5dGVDYXN0aW5nKGJ5dGVbMl0pYnl0ZVs0XSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9iaWdnZXJCeXRlQ2FzdGluZwoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBiaWdnZXJCeXRlQ2FzdGluZyhieXRlWzJdKWJ5dGVbNF0KKmFiaV9yb3V0ZV9iaWdnZXJCeXRlQ2FzdGluZzoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYTogYnl0ZVsyXQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAyCgk9PQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBiaWdnZXJCeXRlQ2FzdGluZyhieXRlWzJdKWJ5dGVbNF0KCWNhbGxzdWIgYmlnZ2VyQnl0ZUNhc3RpbmcKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBiaWdnZXJCeXRlQ2FzdGluZyhhOiBieXRlczwyPik6IGJ5dGVzPDQ+CmJpZ2dlckJ5dGVDYXN0aW5nOgoJcHJvdG8gMSAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyMTYKCS8vIHJldHVybiA8Ynl0ZXM8ND4+YTsKCWZyYW1lX2RpZyAtMSAvLyBhOiBieXRlczwyPgoJYnl0ZSAweDAwMDAKCWNvbmNhdAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiYmlnZ2VyQnl0ZUNhc3RpbmcoYnl0ZVsyXSlieXRlWzRdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9iaWdnZXJCeXRlQ2FzdGluZwoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestBoolInNestedTuple.approval.teal b/tests/contracts/artifacts/ABITestBoolInNestedTuple.approval.teal new file mode 100644 index 000000000..a0b27e755 --- /dev/null +++ b/tests/contracts/artifacts/ABITestBoolInNestedTuple.approval.teal @@ -0,0 +1,106 @@ +#pragma version 10 + +// This TEAL was generated by TEALScript v0.83.1 +// https://github.com/algorandfoundation/TEALScript + +// This contract is compliant with and/or implements the following ARCs: [ ARC4 ] + +// The following ten lines of TEAL handle initial program flow +// This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed +// Here, action refers to the OnComplete in combination with whether the app is being created or called +// Every possible action for this contract is represented in the switch statement +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" +txn ApplicationID +! +int 6 +* +txn OnCompletion ++ +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED + +*NOT_IMPLEMENTED: + err + +// boolInNestedTuple()bool +*abi_route_boolInNestedTuple: + // The ABI return prefix + byte 0x151f7c75 + + // execute boolInNestedTuple()bool + callsub boolInNestedTuple + byte 0x00 + int 0 + uncover 2 + setbit + concat + log + int 1 + return + +// boolInNestedTuple(): boolean +boolInNestedTuple: + proto 0 1 + + // Push empty bytes after the frame pointer to reserve space for local variables + byte 0x + + // tests/contracts/abi.algo.ts:1452 + // a: [[uint64, uint64, uint64], boolean, boolean] = [[0, 0, 0], true, false] + byte 0x000000000000000000000000000000000000000000000000 + byte 0x00 + int 0 + int 1 + setbit + int 1 + int 0 + setbit + concat + frame_bury 0 // a: [[uint64, uint64, uint64], boolean, boolean] + + // tests/contracts/abi.algo.ts:1454 + // a[1] = false + frame_dig 0 // a: [[uint64, uint64, uint64], boolean, boolean] + store 255 // full array + load 255 // full array + int 192 + int 0 + setbit + frame_bury 0 // a: [[uint64, uint64, uint64], boolean, boolean] + + // tests/contracts/abi.algo.ts:1455 + // a[2] = true + frame_dig 0 // a: [[uint64, uint64, uint64], boolean, boolean] + store 255 // full array + load 255 // full array + int 193 + int 1 + setbit + frame_bury 0 // a: [[uint64, uint64, uint64], boolean, boolean] + + // tests/contracts/abi.algo.ts:1457 + // return a[2]; + frame_dig 0 // a: [[uint64, uint64, uint64], boolean, boolean] + store 255 // full array + load 255 // full array + int 193 + getbit + + // set the subroutine return value + frame_bury 0 + retsub + +*abi_route_createApplication: + int 1 + return + +*create_NoOp: + method "createApplication()void" + txna ApplicationArgs 0 + match *abi_route_createApplication + err + +*call_NoOp: + method "boolInNestedTuple()bool" + txna ApplicationArgs 0 + match *abi_route_boolInNestedTuple + err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestBoolInNestedTuple.arc32.json b/tests/contracts/artifacts/ABITestBoolInNestedTuple.arc32.json new file mode 100644 index 000000000..55a7c07ad --- /dev/null +++ b/tests/contracts/artifacts/ABITestBoolInNestedTuple.arc32.json @@ -0,0 +1,65 @@ +{ + "hints": { + "boolInNestedTuple()bool": { + "call_config": { + "no_op": "CALL" + } + }, + "createApplication()void": { + "call_config": { + "no_op": "CREATE" + } + } + }, + "bare_call_config": { + "no_op": "NEVER", + "opt_in": "NEVER", + "close_out": "NEVER", + "update_application": "NEVER", + "delete_application": "NEVER" + }, + "schema": { + "local": { + "declared": {}, + "reserved": {} + }, + "global": { + "declared": {}, + "reserved": {} + } + }, + "state": { + "global": { + "num_byte_slices": 0, + "num_uints": 0 + }, + "local": { + "num_byte_slices": 0, + "num_uints": 0 + } + }, + "source": { + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBib29sSW5OZXN0ZWRUdXBsZSgpYm9vbAoqYWJpX3JvdXRlX2Jvb2xJbk5lc3RlZFR1cGxlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGJvb2xJbk5lc3RlZFR1cGxlKClib29sCgljYWxsc3ViIGJvb2xJbk5lc3RlZFR1cGxlCglieXRlIDB4MDAKCWludCAwCgl1bmNvdmVyIDIKCXNldGJpdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJvb2xJbk5lc3RlZFR1cGxlKCk6IGJvb2xlYW4KYm9vbEluTmVzdGVkVHVwbGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDUyCgkvLyBhOiBbW3VpbnQ2NCwgdWludDY0LCB1aW50NjRdLCBib29sZWFuLCBib29sZWFuXSA9IFtbMCwgMCwgMF0sIHRydWUsIGZhbHNlXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoJYnl0ZSAweDAwCglpbnQgMAoJaW50IDEKCXNldGJpdAoJaW50IDEKCWludCAwCglzZXRiaXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAwIC8vIGE6IFtbdWludDY0LCB1aW50NjQsIHVpbnQ2NF0sIGJvb2xlYW4sIGJvb2xlYW5dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0NTQKCS8vIGFbMV0gPSBmYWxzZQoJZnJhbWVfZGlnIDAgLy8gYTogW1t1aW50NjQsIHVpbnQ2NCwgdWludDY0XSwgYm9vbGVhbiwgYm9vbGVhbl0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMTkyCglpbnQgMAoJc2V0Yml0CglmcmFtZV9idXJ5IDAgLy8gYTogW1t1aW50NjQsIHVpbnQ2NCwgdWludDY0XSwgYm9vbGVhbiwgYm9vbGVhbl0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTQ1NQoJLy8gYVsyXSA9IHRydWUKCWZyYW1lX2RpZyAwIC8vIGE6IFtbdWludDY0LCB1aW50NjQsIHVpbnQ2NF0sIGJvb2xlYW4sIGJvb2xlYW5dCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDE5MwoJaW50IDEKCXNldGJpdAoJZnJhbWVfYnVyeSAwIC8vIGE6IFtbdWludDY0LCB1aW50NjQsIHVpbnQ2NF0sIGJvb2xlYW4sIGJvb2xlYW5dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0NTcKCS8vIHJldHVybiBhWzJdOwoJZnJhbWVfZGlnIDAgLy8gYTogW1t1aW50NjQsIHVpbnQ2NCwgdWludDY0XSwgYm9vbGVhbiwgYm9vbGVhbl0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMTkzCglnZXRiaXQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImJvb2xJbk5lc3RlZFR1cGxlKClib29sIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9ib29sSW5OZXN0ZWRUdXBsZQoJZXJy", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" + }, + "contract": { + "name": "ABITestBoolInNestedTuple", + "desc": "", + "methods": [ + { + "name": "boolInNestedTuple", + "args": [], + "returns": { + "type": "bool" + } + }, + { + "name": "createApplication", + "args": [], + "returns": { + "type": "void" + } + } + ] + } +} \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestBoolInNestedTuple.arc4.json b/tests/contracts/artifacts/ABITestBoolInNestedTuple.arc4.json new file mode 100644 index 000000000..1e8ca0c8c --- /dev/null +++ b/tests/contracts/artifacts/ABITestBoolInNestedTuple.arc4.json @@ -0,0 +1,20 @@ +{ + "name": "ABITestBoolInNestedTuple", + "desc": "", + "methods": [ + { + "name": "boolInNestedTuple", + "args": [], + "returns": { + "type": "bool" + } + }, + { + "name": "createApplication", + "args": [], + "returns": { + "type": "void" + } + } + ] +} \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestBoolInNestedTuple.clear.teal b/tests/contracts/artifacts/ABITestBoolInNestedTuple.clear.teal new file mode 100644 index 000000000..e9f1d65b3 --- /dev/null +++ b/tests/contracts/artifacts/ABITestBoolInNestedTuple.clear.teal @@ -0,0 +1 @@ +#pragma version 10 \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestBoolInObj.approval.teal b/tests/contracts/artifacts/ABITestBoolInObj.approval.teal index 3b8ceba55..7fa540d8e 100644 --- a/tests/contracts/artifacts/ABITestBoolInObj.approval.teal +++ b/tests/contracts/artifacts/ABITestBoolInObj.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // boolInObj()void -abi_route_boolInObj: +*abi_route_boolInObj: // execute boolInObj()void callsub boolInObj int 1 @@ -87,18 +87,18 @@ boolInObj: assert retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "boolInObj()void" txna ApplicationArgs 0 - match abi_route_boolInObj + match *abi_route_boolInObj err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestBoolInObj.arc32.json b/tests/contracts/artifacts/ABITestBoolInObj.arc32.json index bf24cb662..3e7c967ea 100644 --- a/tests/contracts/artifacts/ABITestBoolInObj.arc32.json +++ b/tests/contracts/artifacts/ABITestBoolInObj.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBib29sSW5PYmooKXZvaWQKYWJpX3JvdXRlX2Jvb2xJbk9iajoKCS8vIGV4ZWN1dGUgYm9vbEluT2JqKCl2b2lkCgljYWxsc3ViIGJvb2xJbk9iagoJaW50IDEKCXJldHVybgoKLy8gYm9vbEluT2JqKCk6IHZvaWQKYm9vbEluT2JqOgoJcHJvdG8gMCAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTIzNAoJLy8geDogeyBmb286IGJvb2xlYW47IGJhcjogYm9vbGVhbjsgYmF6OiBib29sZWFuIH0gPSB7IGZvbzogdHJ1ZSwgYmFyOiB0cnVlLCBiYXo6IHRydWUgfQoJYnl0ZSAweDAwCglpbnQgMAoJaW50IDEKCXNldGJpdAoJaW50IDEKCWR1cAoJc2V0Yml0CglpbnQgMgoJaW50IDEKCXNldGJpdAoJZnJhbWVfYnVyeSAwIC8vIHg6IHsgZm9vOiBib29sZWFuOyBiYXI6IGJvb2xlYW47IGJhejogYm9vbGVhbiB9CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyMzUKCS8vIHguYmFyID0gZmFsc2UKCWZyYW1lX2RpZyAwIC8vIHg6IHsgZm9vOiBib29sZWFuOyBiYXI6IGJvb2xlYW47IGJhejogYm9vbGVhbiB9CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDEKCWludCAwCglzZXRiaXQKCWZyYW1lX2J1cnkgMCAvLyB4OiB7IGZvbzogYm9vbGVhbjsgYmFyOiBib29sZWFuOyBiYXo6IGJvb2xlYW4gfQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjM2CgkvLyBhc3NlcnRzKHguZm9vID09PSB0cnVlLCB4LmJhciA9PT0gZmFsc2UsIHguYmF6ID09PSB0cnVlKQoJZnJhbWVfZGlnIDAgLy8geDogeyBmb286IGJvb2xlYW47IGJhcjogYm9vbGVhbjsgYmF6OiBib29sZWFuIH0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMAoJZ2V0Yml0CglpbnQgMQoJPT0KCWFzc2VydAoJZnJhbWVfZGlnIDAgLy8geDogeyBmb286IGJvb2xlYW47IGJhcjogYm9vbGVhbjsgYmF6OiBib29sZWFuIH0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMQoJZ2V0Yml0CglpbnQgMAoJPT0KCWFzc2VydAoJZnJhbWVfZGlnIDAgLy8geDogeyBmb286IGJvb2xlYW47IGJhcjogYm9vbGVhbjsgYmF6OiBib29sZWFuIH0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMgoJZ2V0Yml0CglpbnQgMQoJPT0KCWFzc2VydAoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJib29sSW5PYmooKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfYm9vbEluT2JqCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBib29sSW5PYmooKXZvaWQKKmFiaV9yb3V0ZV9ib29sSW5PYmo6CgkvLyBleGVjdXRlIGJvb2xJbk9iaigpdm9pZAoJY2FsbHN1YiBib29sSW5PYmoKCWludCAxCglyZXR1cm4KCi8vIGJvb2xJbk9iaigpOiB2b2lkCmJvb2xJbk9iajoKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyMzQKCS8vIHg6IHsgZm9vOiBib29sZWFuOyBiYXI6IGJvb2xlYW47IGJhejogYm9vbGVhbiB9ID0geyBmb286IHRydWUsIGJhcjogdHJ1ZSwgYmF6OiB0cnVlIH0KCWJ5dGUgMHgwMAoJaW50IDAKCWludCAxCglzZXRiaXQKCWludCAxCglkdXAKCXNldGJpdAoJaW50IDIKCWludCAxCglzZXRiaXQKCWZyYW1lX2J1cnkgMCAvLyB4OiB7IGZvbzogYm9vbGVhbjsgYmFyOiBib29sZWFuOyBiYXo6IGJvb2xlYW4gfQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjM1CgkvLyB4LmJhciA9IGZhbHNlCglmcmFtZV9kaWcgMCAvLyB4OiB7IGZvbzogYm9vbGVhbjsgYmFyOiBib29sZWFuOyBiYXo6IGJvb2xlYW4gfQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAxCglpbnQgMAoJc2V0Yml0CglmcmFtZV9idXJ5IDAgLy8geDogeyBmb286IGJvb2xlYW47IGJhcjogYm9vbGVhbjsgYmF6OiBib29sZWFuIH0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTIzNgoJLy8gYXNzZXJ0cyh4LmZvbyA9PT0gdHJ1ZSwgeC5iYXIgPT09IGZhbHNlLCB4LmJheiA9PT0gdHJ1ZSkKCWZyYW1lX2RpZyAwIC8vIHg6IHsgZm9vOiBib29sZWFuOyBiYXI6IGJvb2xlYW47IGJhejogYm9vbGVhbiB9CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDAKCWdldGJpdAoJaW50IDEKCT09Cglhc3NlcnQKCWZyYW1lX2RpZyAwIC8vIHg6IHsgZm9vOiBib29sZWFuOyBiYXI6IGJvb2xlYW47IGJhejogYm9vbGVhbiB9CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDEKCWdldGJpdAoJaW50IDAKCT09Cglhc3NlcnQKCWZyYW1lX2RpZyAwIC8vIHg6IHsgZm9vOiBib29sZWFuOyBiYXI6IGJvb2xlYW47IGJhejogYm9vbGVhbiB9CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDIKCWdldGJpdAoJaW50IDEKCT09Cglhc3NlcnQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImJvb2xJbk9iaigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYm9vbEluT2JqCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestBoolTuple.approval.teal b/tests/contracts/artifacts/ABITestBoolTuple.approval.teal index 930ebb07a..c92fee0d3 100644 --- a/tests/contracts/artifacts/ABITestBoolTuple.approval.teal +++ b/tests/contracts/artifacts/ABITestBoolTuple.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // boolTuple()(bool,bool,bool,bool,bool,bool,bool,bool,bool) -abi_route_boolTuple: +*abi_route_boolTuple: // The ABI return prefix byte 0x151f7c75 @@ -90,18 +90,18 @@ boolTuple: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "boolTuple()(bool,bool,bool,bool,bool,bool,bool,bool,bool)" txna ApplicationArgs 0 - match abi_route_boolTuple + match *abi_route_boolTuple err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestBoolTuple.arc32.json b/tests/contracts/artifacts/ABITestBoolTuple.arc32.json index 0e8a47f3a..6fe355460 100644 --- a/tests/contracts/artifacts/ABITestBoolTuple.arc32.json +++ b/tests/contracts/artifacts/ABITestBoolTuple.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBib29sVHVwbGUoKShib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCkKYWJpX3JvdXRlX2Jvb2xUdXBsZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBib29sVHVwbGUoKShib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCkKCWNhbGxzdWIgYm9vbFR1cGxlCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYm9vbFR1cGxlKCk6IFtib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuXQpib29sVHVwbGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4ODgKCS8vIGE6IFtib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuXSA9IFsKCS8vICAgICAgIHRydWUsCgkvLyAgICAgICBmYWxzZSwKCS8vICAgICAgIHRydWUsCgkvLyAgICAgICB0cnVlLAoJLy8gICAgICAgZmFsc2UsCgkvLyAgICAgICBmYWxzZSwKCS8vICAgICAgIHRydWUsCgkvLyAgICAgICBmYWxzZSwKCS8vICAgICAgIGZhbHNlLAoJLy8gICAgIF0KCWJ5dGUgMHgwMDAwCglpbnQgMAoJaW50IDEKCXNldGJpdAoJaW50IDEKCWludCAwCglzZXRiaXQKCWludCAyCglpbnQgMQoJc2V0Yml0CglpbnQgMwoJaW50IDEKCXNldGJpdAoJaW50IDQKCWludCAwCglzZXRiaXQKCWludCA1CglpbnQgMAoJc2V0Yml0CglpbnQgNgoJaW50IDEKCXNldGJpdAoJaW50IDcKCWludCAwCglzZXRiaXQKCWludCA4CglpbnQgMAoJc2V0Yml0CglmcmFtZV9idXJ5IDAgLy8gYTogW2Jvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW5dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjkwMAoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiBbYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbl0KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAiYm9vbFR1cGxlKCkoYm9vbCxib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCxib29sLGJvb2wpIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2Jvb2xUdXBsZQoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBib29sVHVwbGUoKShib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCkKKmFiaV9yb3V0ZV9ib29sVHVwbGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYm9vbFR1cGxlKCkoYm9vbCxib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCxib29sLGJvb2wpCgljYWxsc3ViIGJvb2xUdXBsZQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJvb2xUdXBsZSgpOiBbYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbl0KYm9vbFR1cGxlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6ODg4CgkvLyBhOiBbYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbl0gPSBbCgkvLyAgICAgICB0cnVlLAoJLy8gICAgICAgZmFsc2UsCgkvLyAgICAgICB0cnVlLAoJLy8gICAgICAgdHJ1ZSwKCS8vICAgICAgIGZhbHNlLAoJLy8gICAgICAgZmFsc2UsCgkvLyAgICAgICB0cnVlLAoJLy8gICAgICAgZmFsc2UsCgkvLyAgICAgICBmYWxzZSwKCS8vICAgICBdCglieXRlIDB4MDAwMAoJaW50IDAKCWludCAxCglzZXRiaXQKCWludCAxCglpbnQgMAoJc2V0Yml0CglpbnQgMgoJaW50IDEKCXNldGJpdAoJaW50IDMKCWludCAxCglzZXRiaXQKCWludCA0CglpbnQgMAoJc2V0Yml0CglpbnQgNQoJaW50IDAKCXNldGJpdAoJaW50IDYKCWludCAxCglzZXRiaXQKCWludCA3CglpbnQgMAoJc2V0Yml0CglpbnQgOAoJaW50IDAKCXNldGJpdAoJZnJhbWVfYnVyeSAwIC8vIGE6IFtib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5MDAKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogW2Jvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW5dCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJib29sVHVwbGUoKShib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2Jvb2xUdXBsZQoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestBoolTupleAccess.approval.teal b/tests/contracts/artifacts/ABITestBoolTupleAccess.approval.teal index 909e19b80..1178551cc 100644 --- a/tests/contracts/artifacts/ABITestBoolTupleAccess.approval.teal +++ b/tests/contracts/artifacts/ABITestBoolTupleAccess.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // boolTupleAccess()bool -abi_route_boolTupleAccess: +*abi_route_boolTupleAccess: // The ABI return prefix byte 0x151f7c75 @@ -98,18 +98,18 @@ boolTupleAccess: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "boolTupleAccess()bool" txna ApplicationArgs 0 - match abi_route_boolTupleAccess + match *abi_route_boolTupleAccess err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestBoolTupleAccess.arc32.json b/tests/contracts/artifacts/ABITestBoolTupleAccess.arc32.json index 29f1481f3..a0f62661e 100644 --- a/tests/contracts/artifacts/ABITestBoolTupleAccess.arc32.json +++ b/tests/contracts/artifacts/ABITestBoolTupleAccess.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBib29sVHVwbGVBY2Nlc3MoKWJvb2wKYWJpX3JvdXRlX2Jvb2xUdXBsZUFjY2VzczoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBib29sVHVwbGVBY2Nlc3MoKWJvb2wKCWNhbGxzdWIgYm9vbFR1cGxlQWNjZXNzCglieXRlIDB4MDAKCWludCAwCgl1bmNvdmVyIDIKCXNldGJpdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJvb2xUdXBsZUFjY2VzcygpOiBib29sZWFuCmJvb2xUdXBsZUFjY2VzczoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjkxNAoJLy8gYTogW2Jvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW5dID0gWwoJLy8gICAgICAgZmFsc2UsCgkvLyAgICAgICBmYWxzZSwKCS8vICAgICAgIGZhbHNlLAoJLy8gICAgICAgZmFsc2UsCgkvLyAgICAgICBmYWxzZSwKCS8vICAgICAgIGZhbHNlLAoJLy8gICAgICAgZmFsc2UsCgkvLyAgICAgICBmYWxzZSwKCS8vICAgICAgIHRydWUsCgkvLyAgICAgXQoJYnl0ZSAweDAwMDAKCWludCAwCglkdXAKCXNldGJpdAoJaW50IDEKCWludCAwCglzZXRiaXQKCWludCAyCglpbnQgMAoJc2V0Yml0CglpbnQgMwoJaW50IDAKCXNldGJpdAoJaW50IDQKCWludCAwCglzZXRiaXQKCWludCA1CglpbnQgMAoJc2V0Yml0CglpbnQgNgoJaW50IDAKCXNldGJpdAoJaW50IDcKCWludCAwCglzZXRiaXQKCWludCA4CglpbnQgMQoJc2V0Yml0CglmcmFtZV9idXJ5IDAgLy8gYTogW2Jvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW5dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjkyNgoJLy8gcmV0dXJuIGFbOF07CglmcmFtZV9kaWcgMCAvLyBhOiBbYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbl0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgOAoJZ2V0Yml0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgImJvb2xUdXBsZUFjY2VzcygpYm9vbCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9ib29sVHVwbGVBY2Nlc3MKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBib29sVHVwbGVBY2Nlc3MoKWJvb2wKKmFiaV9yb3V0ZV9ib29sVHVwbGVBY2Nlc3M6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYm9vbFR1cGxlQWNjZXNzKClib29sCgljYWxsc3ViIGJvb2xUdXBsZUFjY2VzcwoJYnl0ZSAweDAwCglpbnQgMAoJdW5jb3ZlciAyCglzZXRiaXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBib29sVHVwbGVBY2Nlc3MoKTogYm9vbGVhbgpib29sVHVwbGVBY2Nlc3M6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5MTQKCS8vIGE6IFtib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuXSA9IFsKCS8vICAgICAgIGZhbHNlLAoJLy8gICAgICAgZmFsc2UsCgkvLyAgICAgICBmYWxzZSwKCS8vICAgICAgIGZhbHNlLAoJLy8gICAgICAgZmFsc2UsCgkvLyAgICAgICBmYWxzZSwKCS8vICAgICAgIGZhbHNlLAoJLy8gICAgICAgZmFsc2UsCgkvLyAgICAgICB0cnVlLAoJLy8gICAgIF0KCWJ5dGUgMHgwMDAwCglpbnQgMAoJZHVwCglzZXRiaXQKCWludCAxCglpbnQgMAoJc2V0Yml0CglpbnQgMgoJaW50IDAKCXNldGJpdAoJaW50IDMKCWludCAwCglzZXRiaXQKCWludCA0CglpbnQgMAoJc2V0Yml0CglpbnQgNQoJaW50IDAKCXNldGJpdAoJaW50IDYKCWludCAwCglzZXRiaXQKCWludCA3CglpbnQgMAoJc2V0Yml0CglpbnQgOAoJaW50IDEKCXNldGJpdAoJZnJhbWVfYnVyeSAwIC8vIGE6IFtib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5MjYKCS8vIHJldHVybiBhWzhdOwoJZnJhbWVfZGlnIDAgLy8gYTogW2Jvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW5dCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDgKCWdldGJpdAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiYm9vbFR1cGxlQWNjZXNzKClib29sIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9ib29sVHVwbGVBY2Nlc3MKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestBoolTupleUpdate.approval.teal b/tests/contracts/artifacts/ABITestBoolTupleUpdate.approval.teal index e21d7a4eb..927d278c7 100644 --- a/tests/contracts/artifacts/ABITestBoolTupleUpdate.approval.teal +++ b/tests/contracts/artifacts/ABITestBoolTupleUpdate.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // boolTupleUpdate()(bool,bool,bool,bool,bool,bool,bool,bool,bool) -abi_route_boolTupleUpdate: +*abi_route_boolTupleUpdate: // The ABI return prefix byte 0x151f7c75 @@ -100,18 +100,18 @@ boolTupleUpdate: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "boolTupleUpdate()(bool,bool,bool,bool,bool,bool,bool,bool,bool)" txna ApplicationArgs 0 - match abi_route_boolTupleUpdate + match *abi_route_boolTupleUpdate err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestBoolTupleUpdate.arc32.json b/tests/contracts/artifacts/ABITestBoolTupleUpdate.arc32.json index 1cba51e95..db0f6c470 100644 --- a/tests/contracts/artifacts/ABITestBoolTupleUpdate.arc32.json +++ b/tests/contracts/artifacts/ABITestBoolTupleUpdate.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBib29sVHVwbGVVcGRhdGUoKShib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCkKYWJpX3JvdXRlX2Jvb2xUdXBsZVVwZGF0ZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBib29sVHVwbGVVcGRhdGUoKShib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCkKCWNhbGxzdWIgYm9vbFR1cGxlVXBkYXRlCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYm9vbFR1cGxlVXBkYXRlKCk6IFtib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuXQpib29sVHVwbGVVcGRhdGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5NzYKCS8vIGE6IFtib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuXSA9IFsKCS8vICAgICAgIHRydWUsCgkvLyAgICAgICBmYWxzZSwKCS8vICAgICAgIHRydWUsCgkvLyAgICAgICB0cnVlLAoJLy8gICAgICAgZmFsc2UsCgkvLyAgICAgICBmYWxzZSwKCS8vICAgICAgIHRydWUsCgkvLyAgICAgICBmYWxzZSwKCS8vICAgICAgIGZhbHNlLAoJLy8gICAgIF0KCWJ5dGUgMHgwMDAwCglpbnQgMAoJaW50IDEKCXNldGJpdAoJaW50IDEKCWludCAwCglzZXRiaXQKCWludCAyCglpbnQgMQoJc2V0Yml0CglpbnQgMwoJaW50IDEKCXNldGJpdAoJaW50IDQKCWludCAwCglzZXRiaXQKCWludCA1CglpbnQgMAoJc2V0Yml0CglpbnQgNgoJaW50IDEKCXNldGJpdAoJaW50IDcKCWludCAwCglzZXRiaXQKCWludCA4CglpbnQgMAoJc2V0Yml0CglmcmFtZV9idXJ5IDAgLy8gYTogW2Jvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW5dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjk4OAoJLy8gYVs4XSA9IHRydWUKCWZyYW1lX2RpZyAwIC8vIGE6IFtib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCA4CglpbnQgMQoJc2V0Yml0CglmcmFtZV9idXJ5IDAgLy8gYTogW2Jvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW5dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjk4OQoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiBbYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbl0KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAiYm9vbFR1cGxlVXBkYXRlKCkoYm9vbCxib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCxib29sLGJvb2wpIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2Jvb2xUdXBsZVVwZGF0ZQoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBib29sVHVwbGVVcGRhdGUoKShib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCkKKmFiaV9yb3V0ZV9ib29sVHVwbGVVcGRhdGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYm9vbFR1cGxlVXBkYXRlKCkoYm9vbCxib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCxib29sLGJvb2wpCgljYWxsc3ViIGJvb2xUdXBsZVVwZGF0ZQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJvb2xUdXBsZVVwZGF0ZSgpOiBbYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbl0KYm9vbFR1cGxlVXBkYXRlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6OTc2CgkvLyBhOiBbYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbl0gPSBbCgkvLyAgICAgICB0cnVlLAoJLy8gICAgICAgZmFsc2UsCgkvLyAgICAgICB0cnVlLAoJLy8gICAgICAgdHJ1ZSwKCS8vICAgICAgIGZhbHNlLAoJLy8gICAgICAgZmFsc2UsCgkvLyAgICAgICB0cnVlLAoJLy8gICAgICAgZmFsc2UsCgkvLyAgICAgICBmYWxzZSwKCS8vICAgICBdCglieXRlIDB4MDAwMAoJaW50IDAKCWludCAxCglzZXRiaXQKCWludCAxCglpbnQgMAoJc2V0Yml0CglpbnQgMgoJaW50IDEKCXNldGJpdAoJaW50IDMKCWludCAxCglzZXRiaXQKCWludCA0CglpbnQgMAoJc2V0Yml0CglpbnQgNQoJaW50IDAKCXNldGJpdAoJaW50IDYKCWludCAxCglzZXRiaXQKCWludCA3CglpbnQgMAoJc2V0Yml0CglpbnQgOAoJaW50IDAKCXNldGJpdAoJZnJhbWVfYnVyeSAwIC8vIGE6IFtib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5ODgKCS8vIGFbOF0gPSB0cnVlCglmcmFtZV9kaWcgMCAvLyBhOiBbYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbl0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgOAoJaW50IDEKCXNldGJpdAoJZnJhbWVfYnVyeSAwIC8vIGE6IFtib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5ODkKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogW2Jvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW5dCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJib29sVHVwbGVVcGRhdGUoKShib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2Jvb2xUdXBsZVVwZGF0ZQoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestBooleanArgAndReturn.approval.teal b/tests/contracts/artifacts/ABITestBooleanArgAndReturn.approval.teal index e52e7cb11..58719763f 100644 --- a/tests/contracts/artifacts/ABITestBooleanArgAndReturn.approval.teal +++ b/tests/contracts/artifacts/ABITestBooleanArgAndReturn.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // booleanArgAndReturn(bool)bool -abi_route_booleanArgAndReturn: +*abi_route_booleanArgAndReturn: // The ABI return prefix byte 0x151f7c75 @@ -56,18 +56,18 @@ booleanArgAndReturn: frame_dig -1 // a: boolean retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "booleanArgAndReturn(bool)bool" txna ApplicationArgs 0 - match abi_route_booleanArgAndReturn + match *abi_route_booleanArgAndReturn err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestBooleanArgAndReturn.arc32.json b/tests/contracts/artifacts/ABITestBooleanArgAndReturn.arc32.json index 5c10596f8..c1101ff7c 100644 --- a/tests/contracts/artifacts/ABITestBooleanArgAndReturn.arc32.json +++ b/tests/contracts/artifacts/ABITestBooleanArgAndReturn.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBib29sZWFuQXJnQW5kUmV0dXJuKGJvb2wpYm9vbAphYmlfcm91dGVfYm9vbGVhbkFyZ0FuZFJldHVybjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYTogYm9vbAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAxCgk9PQoJYXNzZXJ0CglpbnQgMAoJZ2V0Yml0CgoJLy8gZXhlY3V0ZSBib29sZWFuQXJnQW5kUmV0dXJuKGJvb2wpYm9vbAoJY2FsbHN1YiBib29sZWFuQXJnQW5kUmV0dXJuCglieXRlIDB4MDAKCWludCAwCgl1bmNvdmVyIDIKCXNldGJpdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJvb2xlYW5BcmdBbmRSZXR1cm4oYTogYm9vbGVhbik6IGJvb2xlYW4KYm9vbGVhbkFyZ0FuZFJldHVybjoKCXByb3RvIDEgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4ODIKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIC0xIC8vIGE6IGJvb2xlYW4KCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAiYm9vbGVhbkFyZ0FuZFJldHVybihib29sKWJvb2wiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfYm9vbGVhbkFyZ0FuZFJldHVybgoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBib29sZWFuQXJnQW5kUmV0dXJuKGJvb2wpYm9vbAoqYWJpX3JvdXRlX2Jvb2xlYW5BcmdBbmRSZXR1cm46CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGE6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMQoJPT0KCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGV4ZWN1dGUgYm9vbGVhbkFyZ0FuZFJldHVybihib29sKWJvb2wKCWNhbGxzdWIgYm9vbGVhbkFyZ0FuZFJldHVybgoJYnl0ZSAweDAwCglpbnQgMAoJdW5jb3ZlciAyCglzZXRiaXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBib29sZWFuQXJnQW5kUmV0dXJuKGE6IGJvb2xlYW4pOiBib29sZWFuCmJvb2xlYW5BcmdBbmRSZXR1cm46Cglwcm90byAxIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6ODgyCgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAtMSAvLyBhOiBib29sZWFuCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJib29sZWFuQXJnQW5kUmV0dXJuKGJvb2wpYm9vbCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYm9vbGVhbkFyZ0FuZFJldHVybgoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestBooleanLastInObj.approval.teal b/tests/contracts/artifacts/ABITestBooleanLastInObj.approval.teal index e2c0e3f32..eea9dd601 100644 --- a/tests/contracts/artifacts/ABITestBooleanLastInObj.approval.teal +++ b/tests/contracts/artifacts/ABITestBooleanLastInObj.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // booleanLastInObj()(uint64,bool) -abi_route_booleanLastInObj: +*abi_route_booleanLastInObj: // The ABI return prefix byte 0x151f7c75 @@ -50,18 +50,18 @@ booleanLastInObj: concat retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "booleanLastInObj()(uint64,bool)" txna ApplicationArgs 0 - match abi_route_booleanLastInObj + match *abi_route_booleanLastInObj err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestBooleanLastInObj.arc32.json b/tests/contracts/artifacts/ABITestBooleanLastInObj.arc32.json index 059cb57d4..226afaf0e 100644 --- a/tests/contracts/artifacts/ABITestBooleanLastInObj.arc32.json +++ b/tests/contracts/artifacts/ABITestBooleanLastInObj.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBib29sZWFuTGFzdEluT2JqKCkodWludDY0LGJvb2wpCmFiaV9yb3V0ZV9ib29sZWFuTGFzdEluT2JqOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGJvb2xlYW5MYXN0SW5PYmooKSh1aW50NjQsYm9vbCkKCWNhbGxzdWIgYm9vbGVhbkxhc3RJbk9iagoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJvb2xlYW5MYXN0SW5PYmooKTogeyBuOiB1aW50NjQ7IGI6IGJvb2xlYW4gfQpib29sZWFuTGFzdEluT2JqOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyNzQKCS8vIHJldHVybiB7CgkvLyAgICAgICBuOiAxLAoJLy8gICAgICAgYjogZmFsc2UsCgkvLyAgICAgfTsKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAxCglieXRlIDB4MDAKCWludCAwCglkdXAKCXNldGJpdAoJY29uY2F0CglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgImJvb2xlYW5MYXN0SW5PYmooKSh1aW50NjQsYm9vbCkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfYm9vbGVhbkxhc3RJbk9iagoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBib29sZWFuTGFzdEluT2JqKCkodWludDY0LGJvb2wpCiphYmlfcm91dGVfYm9vbGVhbkxhc3RJbk9iajoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBib29sZWFuTGFzdEluT2JqKCkodWludDY0LGJvb2wpCgljYWxsc3ViIGJvb2xlYW5MYXN0SW5PYmoKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBib29sZWFuTGFzdEluT2JqKCk6IHsgbjogdWludDY0OyBiOiBib29sZWFuIH0KYm9vbGVhbkxhc3RJbk9iajoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjc0CgkvLyByZXR1cm4gewoJLy8gICAgICAgbjogMSwKCS8vICAgICAgIGI6IGZhbHNlLAoJLy8gICAgIH07CglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMQoJYnl0ZSAweDAwCglpbnQgMAoJZHVwCglzZXRiaXQKCWNvbmNhdAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiYm9vbGVhbkxhc3RJbk9iaigpKHVpbnQ2NCxib29sKSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYm9vbGVhbkxhc3RJbk9iagoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestBytesCasting.approval.teal b/tests/contracts/artifacts/ABITestBytesCasting.approval.teal index 5ebe7bdc8..6508b4ae5 100644 --- a/tests/contracts/artifacts/ABITestBytesCasting.approval.teal +++ b/tests/contracts/artifacts/ABITestBytesCasting.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // bytesCasting(byte[])byte[2] -abi_route_bytesCasting: +*abi_route_bytesCasting: // The ABI return prefix byte 0x151f7c75 @@ -54,18 +54,18 @@ bytesCasting: extract 0 2 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "bytesCasting(byte[])byte[2]" txna ApplicationArgs 0 - match abi_route_bytesCasting + match *abi_route_bytesCasting err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestBytesCasting.arc32.json b/tests/contracts/artifacts/ABITestBytesCasting.arc32.json index 92b02720a..39fb6dfd8 100644 --- a/tests/contracts/artifacts/ABITestBytesCasting.arc32.json +++ b/tests/contracts/artifacts/ABITestBytesCasting.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBieXRlc0Nhc3RpbmcoYnl0ZVtdKWJ5dGVbMl0KYWJpX3JvdXRlX2J5dGVzQ2FzdGluZzoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYTogYnl0ZVtdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgYnl0ZXNDYXN0aW5nKGJ5dGVbXSlieXRlWzJdCgljYWxsc3ViIGJ5dGVzQ2FzdGluZwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJ5dGVzQ2FzdGluZyhhOiBieXRlcyk6IGJ5dGVzPDI+CmJ5dGVzQ2FzdGluZzoKCXByb3RvIDEgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjEwCgkvLyByZXR1cm4gPGJ5dGVzPDI+PmE7CglmcmFtZV9kaWcgLTEgLy8gYTogYnl0ZXMKCWJ5dGUgMHgwMDAwCgljb25jYXQKCWR1cAoJZXh0cmFjdCAyIDAKCWJ5dGUgMHgKCWI9PQoJYXNzZXJ0CglleHRyYWN0IDAgMgoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJieXRlc0Nhc3RpbmcoYnl0ZVtdKWJ5dGVbMl0iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfYnl0ZXNDYXN0aW5nCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBieXRlc0Nhc3RpbmcoYnl0ZVtdKWJ5dGVbMl0KKmFiaV9yb3V0ZV9ieXRlc0Nhc3Rpbmc6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGE6IGJ5dGVbXQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIGJ5dGVzQ2FzdGluZyhieXRlW10pYnl0ZVsyXQoJY2FsbHN1YiBieXRlc0Nhc3RpbmcKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBieXRlc0Nhc3RpbmcoYTogYnl0ZXMpOiBieXRlczwyPgpieXRlc0Nhc3Rpbmc6Cglwcm90byAxIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTIxMAoJLy8gcmV0dXJuIDxieXRlczwyPj5hOwoJZnJhbWVfZGlnIC0xIC8vIGE6IGJ5dGVzCglieXRlIDB4MDAwMAoJY29uY2F0CglkdXAKCWV4dHJhY3QgMiAwCglieXRlIDB4CgliPT0KCWFzc2VydAoJZXh0cmFjdCAwIDIKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImJ5dGVzQ2FzdGluZyhieXRlW10pYnl0ZVsyXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYnl0ZXNDYXN0aW5nCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestBytesReturn.approval.teal b/tests/contracts/artifacts/ABITestBytesReturn.approval.teal index 1544a109b..a3cef2f4e 100644 --- a/tests/contracts/artifacts/ABITestBytesReturn.approval.teal +++ b/tests/contracts/artifacts/ABITestBytesReturn.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // bytesReturn()byte[] -abi_route_bytesReturn: +*abi_route_bytesReturn: // The ABI return prefix byte 0x151f7c75 @@ -48,18 +48,18 @@ bytesReturn: byte 0x666f6f // "foo" retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "bytesReturn()byte[]" txna ApplicationArgs 0 - match abi_route_bytesReturn + match *abi_route_bytesReturn err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestBytesReturn.arc32.json b/tests/contracts/artifacts/ABITestBytesReturn.arc32.json index b4df445c2..c863e37fd 100644 --- a/tests/contracts/artifacts/ABITestBytesReturn.arc32.json +++ b/tests/contracts/artifacts/ABITestBytesReturn.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBieXRlc1JldHVybigpYnl0ZVtdCmFiaV9yb3V0ZV9ieXRlc1JldHVybjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBieXRlc1JldHVybigpYnl0ZVtdCgljYWxsc3ViIGJ5dGVzUmV0dXJuCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJ5dGVzUmV0dXJuKCk6IGJ5dGVzCmJ5dGVzUmV0dXJuOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjExMzUKCS8vIHJldHVybiAnZm9vJzsKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAiYnl0ZXNSZXR1cm4oKWJ5dGVbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9ieXRlc1JldHVybgoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBieXRlc1JldHVybigpYnl0ZVtdCiphYmlfcm91dGVfYnl0ZXNSZXR1cm46CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYnl0ZXNSZXR1cm4oKWJ5dGVbXQoJY2FsbHN1YiBieXRlc1JldHVybgoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBieXRlc1JldHVybigpOiBieXRlcwpieXRlc1JldHVybjoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTM1CgkvLyByZXR1cm4gJ2Zvbyc7CglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJieXRlc1JldHVybigpYnl0ZVtdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9ieXRlc1JldHVybgoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestCastBytesFunction.approval.teal b/tests/contracts/artifacts/ABITestCastBytesFunction.approval.teal index 55dd6e767..d9f13bddc 100644 --- a/tests/contracts/artifacts/ABITestCastBytesFunction.approval.teal +++ b/tests/contracts/artifacts/ABITestCastBytesFunction.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // castBytesFunction()uint8[3] -abi_route_castBytesFunction: +*abi_route_castBytesFunction: // The ABI return prefix byte 0x151f7c75 @@ -42,18 +42,18 @@ castBytesFunction: byte 0x010203 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "castBytesFunction()uint8[3]" txna ApplicationArgs 0 - match abi_route_castBytesFunction + match *abi_route_castBytesFunction err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestCastBytesFunction.arc32.json b/tests/contracts/artifacts/ABITestCastBytesFunction.arc32.json index a9334e2ac..91599c7ba 100644 --- a/tests/contracts/artifacts/ABITestCastBytesFunction.arc32.json +++ b/tests/contracts/artifacts/ABITestCastBytesFunction.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBjYXN0Qnl0ZXNGdW5jdGlvbigpdWludDhbM10KYWJpX3JvdXRlX2Nhc3RCeXRlc0Z1bmN0aW9uOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGNhc3RCeXRlc0Z1bmN0aW9uKCl1aW50OFszXQoJY2FsbHN1YiBjYXN0Qnl0ZXNGdW5jdGlvbgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGNhc3RCeXRlc0Z1bmN0aW9uKCk6IFN0YXRpY0FycmF5PHVpbnQ8OD4sIDM+CmNhc3RCeXRlc0Z1bmN0aW9uOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwNTYKCS8vIHJldHVybiBjYXN0Qnl0ZXM8U3RhdGljQXJyYXk8dWludDw4PiwgMz4+KGhleCgnMHgwMTAyMDMnKSk7CglieXRlIDB4MDEwMjAzCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgImNhc3RCeXRlc0Z1bmN0aW9uKCl1aW50OFszXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jYXN0Qnl0ZXNGdW5jdGlvbgoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBjYXN0Qnl0ZXNGdW5jdGlvbigpdWludDhbM10KKmFiaV9yb3V0ZV9jYXN0Qnl0ZXNGdW5jdGlvbjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBjYXN0Qnl0ZXNGdW5jdGlvbigpdWludDhbM10KCWNhbGxzdWIgY2FzdEJ5dGVzRnVuY3Rpb24KCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBjYXN0Qnl0ZXNGdW5jdGlvbigpOiBTdGF0aWNBcnJheTx1aW50PDg+LCAzPgpjYXN0Qnl0ZXNGdW5jdGlvbjoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDU2CgkvLyByZXR1cm4gY2FzdEJ5dGVzPFN0YXRpY0FycmF5PHVpbnQ8OD4sIDM+PihoZXgoJzB4MDEwMjAzJykpOwoJYnl0ZSAweDAxMDIwMwoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiY2FzdEJ5dGVzRnVuY3Rpb24oKXVpbnQ4WzNdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jYXN0Qnl0ZXNGdW5jdGlvbgoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestChainedPropertyAfterTuple.approval.teal b/tests/contracts/artifacts/ABITestChainedPropertyAfterTuple.approval.teal index efb31832f..b6959ce9a 100644 --- a/tests/contracts/artifacts/ABITestChainedPropertyAfterTuple.approval.teal +++ b/tests/contracts/artifacts/ABITestChainedPropertyAfterTuple.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // chainedPropertyAfterTuple(asset)void -abi_route_chainedPropertyAfterTuple: +*abi_route_chainedPropertyAfterTuple: // asa: asset txna ApplicationArgs 1 btoi @@ -57,18 +57,18 @@ chainedPropertyAfterTuple: assert retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "chainedPropertyAfterTuple(asset)void" txna ApplicationArgs 0 - match abi_route_chainedPropertyAfterTuple + match *abi_route_chainedPropertyAfterTuple err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestChainedPropertyAfterTuple.arc32.json b/tests/contracts/artifacts/ABITestChainedPropertyAfterTuple.arc32.json index 0727920c9..33fde4157 100644 --- a/tests/contracts/artifacts/ABITestChainedPropertyAfterTuple.arc32.json +++ b/tests/contracts/artifacts/ABITestChainedPropertyAfterTuple.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBjaGFpbmVkUHJvcGVydHlBZnRlclR1cGxlKGFzc2V0KXZvaWQKYWJpX3JvdXRlX2NoYWluZWRQcm9wZXJ0eUFmdGVyVHVwbGU6CgkvLyBhc2E6IGFzc2V0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgl0eG5hcyBBc3NldHMKCgkvLyBleGVjdXRlIGNoYWluZWRQcm9wZXJ0eUFmdGVyVHVwbGUoYXNzZXQpdm9pZAoJY2FsbHN1YiBjaGFpbmVkUHJvcGVydHlBZnRlclR1cGxlCglpbnQgMQoJcmV0dXJuCgovLyBjaGFpbmVkUHJvcGVydHlBZnRlclR1cGxlKGFzYTogQXNzZXQpOiB2b2lkCmNoYWluZWRQcm9wZXJ0eUFmdGVyVHVwbGU6Cglwcm90byAxIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTgyCgkvLyBvOiBUNyA9IHsgZm9vOiB0aGlzLmFwcC5hZGRyZXNzIH0KCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglmcmFtZV9idXJ5IDAgLy8gbzogVDcKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTE4NAoJLy8gYXNzZXJ0KCFvLmZvby5pc09wdGVkSW5Ub0Fzc2V0KGFzYSkpCglmcmFtZV9kaWcgMCAvLyBvOiBUNwoJZXh0cmFjdCAwIDMyCglmcmFtZV9kaWcgLTEgLy8gYXNhOiBBc3NldAoJYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCglzd2FwCglwb3AKCSEKCWFzc2VydAoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJjaGFpbmVkUHJvcGVydHlBZnRlclR1cGxlKGFzc2V0KXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY2hhaW5lZFByb3BlcnR5QWZ0ZXJUdXBsZQoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBjaGFpbmVkUHJvcGVydHlBZnRlclR1cGxlKGFzc2V0KXZvaWQKKmFiaV9yb3V0ZV9jaGFpbmVkUHJvcGVydHlBZnRlclR1cGxlOgoJLy8gYXNhOiBhc3NldAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoJdHhuYXMgQXNzZXRzCgoJLy8gZXhlY3V0ZSBjaGFpbmVkUHJvcGVydHlBZnRlclR1cGxlKGFzc2V0KXZvaWQKCWNhbGxzdWIgY2hhaW5lZFByb3BlcnR5QWZ0ZXJUdXBsZQoJaW50IDEKCXJldHVybgoKLy8gY2hhaW5lZFByb3BlcnR5QWZ0ZXJUdXBsZShhc2E6IEFzc2V0KTogdm9pZApjaGFpbmVkUHJvcGVydHlBZnRlclR1cGxlOgoJcHJvdG8gMSAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTE4MgoJLy8gbzogVDcgPSB7IGZvbzogdGhpcy5hcHAuYWRkcmVzcyB9CglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJZnJhbWVfYnVyeSAwIC8vIG86IFQ3CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjExODQKCS8vIGFzc2VydCghby5mb28uaXNPcHRlZEluVG9Bc3NldChhc2EpKQoJZnJhbWVfZGlnIDAgLy8gbzogVDcKCWV4dHJhY3QgMCAzMgoJZnJhbWVfZGlnIC0xIC8vIGFzYTogQXNzZXQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJc3dhcAoJcG9wCgkhCglhc3NlcnQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImNoYWluZWRQcm9wZXJ0eUFmdGVyVHVwbGUoYXNzZXQpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY2hhaW5lZFByb3BlcnR5QWZ0ZXJUdXBsZQoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestCustomTypes.approval.teal b/tests/contracts/artifacts/ABITestCustomTypes.approval.teal index b0b18d70d..614211961 100644 --- a/tests/contracts/artifacts/ABITestCustomTypes.approval.teal +++ b/tests/contracts/artifacts/ABITestCustomTypes.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // customTypes()string -abi_route_customTypes: +*abi_route_customTypes: // The ABI return prefix byte 0x151f7c75 @@ -55,9 +55,9 @@ customTypes: byte 0x // initial tail byte 0x0004 // initial head offset byte 0x0001 - callsub process_static_tuple_element + callsub *process_static_tuple_element byte 0x000348693f - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element pop // pop head offset concat // concat head and tail frame_bury 0 // aa: CustomType @@ -101,7 +101,7 @@ customTypes: concat concat store 255 // full array - callsub get_length_difference + callsub *get_length_difference load 255 // full array frame_bury 0 // aa: CustomType @@ -129,23 +129,23 @@ customTypes: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "customTypes()string" txna ApplicationArgs 0 - match abi_route_customTypes + match *abi_route_customTypes err -process_static_tuple_element: +*process_static_tuple_element: proto 4 3 frame_dig -4 // tuple head frame_dig -1 // element @@ -154,7 +154,7 @@ process_static_tuple_element: frame_dig -2 // head offset retsub -process_dynamic_tuple_element: +*process_dynamic_tuple_element: proto 4 3 frame_dig -4 // tuple head frame_dig -2 // head offset @@ -178,27 +178,27 @@ process_dynamic_tuple_element: frame_dig -2 // head offset retsub -get_length_difference: +*get_length_difference: load 252 // new element len // length of new element load 253 // element length < - bnz swapped_difference + bnz *swapped_difference load 252 // new element len // length of new element load 253 // element length int 1 store 249 // subtract head difference - b get_difference + b *get_difference -swapped_difference: +*swapped_difference: load 253 // element length load 252 // new element len // length of new element int 0 store 249 // subtract head difference -get_difference: +*get_difference: - // get length difference store 250 // length difference retsub \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestCustomTypes.arc32.json b/tests/contracts/artifacts/ABITestCustomTypes.arc32.json index 5e7f3d561..0256df977 100644 --- a/tests/contracts/artifacts/ABITestCustomTypes.arc32.json +++ b/tests/contracts/artifacts/ABITestCustomTypes.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBjdXN0b21UeXBlcygpc3RyaW5nCmFiaV9yb3V0ZV9jdXN0b21UeXBlczoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBjdXN0b21UeXBlcygpc3RyaW5nCgljYWxsc3ViIGN1c3RvbVR5cGVzCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGN1c3RvbVR5cGVzKCk6IHN0cmluZwpjdXN0b21UeXBlczoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjYzMgoJLy8gYWE6IEN1c3RvbVR5cGUgPSB7CgkvLyAgICAgICBmb286IDEsCgkvLyAgICAgICBiYXI6ICdIaT8nLAoJLy8gICAgIH0KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJYnl0ZSAweDAwMDQgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJYnl0ZSAweDAwMDEKCWNhbGxzdWIgcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDM0ODY5M2YKCWNhbGxzdWIgcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJZnJhbWVfYnVyeSAwIC8vIGFhOiBDdXN0b21UeXBlCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjYzNwoJLy8gYWEuYmFyID0gJ0hlbGxvIFdvcmxkIScKCWZyYW1lX2RpZyAwIC8vIGFhOiBDdXN0b21UeXBlCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDIKCWR1cAoJc3RvcmUgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXVuY292ZXIgMgoJZXh0cmFjdF91aW50MTYKCWR1cAoJc3RvcmUgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50IDEgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCXN0b3JlIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDAKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCXN1YnN0cmluZzMKCWJ5dGUgMHgwMDBjNDg2NTZjNmM2ZjIwNTc2ZjcyNmM2NDIxCglkdXAKCXN0b3JlIDI1MiAvLyBuZXcgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCSsgLy8gZ2V0IGVuZCBvZiBFbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglsZW4KCXN1YnN0cmluZzMKCWNvbmNhdAoJY29uY2F0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJY2FsbHN1YiBnZXRfbGVuZ3RoX2RpZmZlcmVuY2UKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2J1cnkgMCAvLyBhYTogQ3VzdG9tVHlwZQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo2MzkKCS8vIHJldHVybiBhYS5iYXI7CglmcmFtZV9kaWcgMCAvLyBhYTogQ3VzdG9tVHlwZQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAyCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCAxIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglleHRyYWN0MwoJZXh0cmFjdCAyIDAKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAiY3VzdG9tVHlwZXMoKXN0cmluZyIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jdXN0b21UeXBlcwoJZXJyCgpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWNvbmNhdAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgpnZXRfbGVuZ3RoX2RpZmZlcmVuY2U6Cglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCTwKCWJueiBzd2FwcGVkX2RpZmZlcmVuY2UKCWxvYWQgMjUyIC8vIG5ldyBlbGVtZW50CglsZW4gLy8gbGVuZ3RoIG9mIG5ldyBlbGVtZW50Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJaW50IDEKCXN0b3JlIDI0OSAvLyBzdWJ0cmFjdCBoZWFkIGRpZmZlcmVuY2UKCWIgZ2V0X2RpZmZlcmVuY2UKCnN3YXBwZWRfZGlmZmVyZW5jZToKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJaW50IDAKCXN0b3JlIDI0OSAvLyBzdWJ0cmFjdCBoZWFkIGRpZmZlcmVuY2UKCmdldF9kaWZmZXJlbmNlOgoJLSAvLyBnZXQgbGVuZ3RoIGRpZmZlcmVuY2UKCXN0b3JlIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJcmV0c3Vi", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBjdXN0b21UeXBlcygpc3RyaW5nCiphYmlfcm91dGVfY3VzdG9tVHlwZXM6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgY3VzdG9tVHlwZXMoKXN0cmluZwoJY2FsbHN1YiBjdXN0b21UeXBlcwoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBjdXN0b21UeXBlcygpOiBzdHJpbmcKY3VzdG9tVHlwZXM6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo2MzIKCS8vIGFhOiBDdXN0b21UeXBlID0gewoJLy8gICAgICAgZm9vOiAxLAoJLy8gICAgICAgYmFyOiAnSGk/JywKCS8vICAgICB9CglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDA0IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCWJ5dGUgMHgwMDAxCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMzQ4NjkzZgoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJZnJhbWVfYnVyeSAwIC8vIGFhOiBDdXN0b21UeXBlCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjYzNwoJLy8gYWEuYmFyID0gJ0hlbGxvIFdvcmxkIScKCWZyYW1lX2RpZyAwIC8vIGFhOiBDdXN0b21UeXBlCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDIKCWR1cAoJc3RvcmUgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXVuY292ZXIgMgoJZXh0cmFjdF91aW50MTYKCWR1cAoJc3RvcmUgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50IDEgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCXN0b3JlIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDAKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCXN1YnN0cmluZzMKCWJ5dGUgMHgwMDBjNDg2NTZjNmM2ZjIwNTc2ZjcyNmM2NDIxCglkdXAKCXN0b3JlIDI1MiAvLyBuZXcgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCSsgLy8gZ2V0IGVuZCBvZiBFbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglsZW4KCXN1YnN0cmluZzMKCWNvbmNhdAoJY29uY2F0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJY2FsbHN1YiAqZ2V0X2xlbmd0aF9kaWZmZXJlbmNlCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglmcmFtZV9idXJ5IDAgLy8gYWE6IEN1c3RvbVR5cGUKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NjM5CgkvLyByZXR1cm4gYWEuYmFyOwoJZnJhbWVfZGlnIDAgLy8gYWE6IEN1c3RvbVR5cGUKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMgoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMSAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJZXh0cmFjdDMKCWV4dHJhY3QgMiAwCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJjdXN0b21UeXBlcygpc3RyaW5nIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jdXN0b21UeXBlcwoJZXJyCgoqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50Cgljb25jYXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0Cgljb25jYXQKCWZyYW1lX2J1cnkgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWR1cAoJbGVuCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWJ0b2kKCSsKCWl0b2IKCWV4dHJhY3QgNiAyCglmcmFtZV9idXJ5IC0yIC8vIGhlYWQgb2Zmc2V0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJc3dhcAoJY29uY2F0CglmcmFtZV9idXJ5IC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCipnZXRfbGVuZ3RoX2RpZmZlcmVuY2U6Cglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCTwKCWJueiAqc3dhcHBlZF9kaWZmZXJlbmNlCglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWludCAxCglzdG9yZSAyNDkgLy8gc3VidHJhY3QgaGVhZCBkaWZmZXJlbmNlCgliICpnZXRfZGlmZmVyZW5jZQoKKnN3YXBwZWRfZGlmZmVyZW5jZToKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJaW50IDAKCXN0b3JlIDI0OSAvLyBzdWJ0cmFjdCBoZWFkIGRpZmZlcmVuY2UKCipnZXRfZGlmZmVyZW5jZToKCS0gLy8gZ2V0IGxlbmd0aCBkaWZmZXJlbmNlCglzdG9yZSAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCXJldHN1Yg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestDisgusting.approval.teal b/tests/contracts/artifacts/ABITestDisgusting.approval.teal index 2a4bd455c..df66cb6ee 100644 --- a/tests/contracts/artifacts/ABITestDisgusting.approval.teal +++ b/tests/contracts/artifacts/ABITestDisgusting.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // disgusting()uint64 -abi_route_disgusting: +*abi_route_disgusting: // The ABI return prefix byte 0x151f7c75 @@ -85,18 +85,18 @@ disgusting: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "disgusting()uint64" txna ApplicationArgs 0 - match abi_route_disgusting + match *abi_route_disgusting err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestDisgusting.arc32.json b/tests/contracts/artifacts/ABITestDisgusting.arc32.json index a96654102..47c166b42 100644 --- a/tests/contracts/artifacts/ABITestDisgusting.arc32.json +++ b/tests/contracts/artifacts/ABITestDisgusting.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBkaXNndXN0aW5nKCl1aW50NjQKYWJpX3JvdXRlX2Rpc2d1c3Rpbmc6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgZGlzZ3VzdGluZygpdWludDY0CgljYWxsc3ViIGRpc2d1c3RpbmcKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBkaXNndXN0aW5nKCk6IHVpbnQ2NApkaXNndXN0aW5nOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MzA0CgkvLyBhOiBTdGF0aWNBcnJheTwKCS8vICAgICAgIFtTdGF0aWNBcnJheTx1aW50MTYsIDI+LCB1aW50NjQsIFt1aW50MTYsIHVpbnQ2NF0sIFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ2NCwgMj4sIDI+XSwKCS8vICAgICAgIDIKCS8vICAgICA+ID0gWwoJLy8gICAgICAgWwoJLy8gICAgICAgICBbMTEsIDIyXSwKCS8vICAgICAgICAgMzMsCgkvLyAgICAgICAgIFs0NCwgNTVdLAoJLy8gICAgICAgICBbCgkvLyAgICAgICAgICAgWzY2LCA3N10sCgkvLyAgICAgICAgICAgWzg4LCA5OV0sCgkvLyAgICAgICAgIF0sCgkvLyAgICAgICBdLAoJLy8gICAgICAgWwoJLy8gICAgICAgICBbMTExLCAyMjJdLAoJLy8gICAgICAgICAzMzMsCgkvLyAgICAgICAgIFs0NDQsIDU1NV0sCgkvLyAgICAgICAgIFsKCS8vICAgICAgICAgICBbNjY2LCA3NzddLAoJLy8gICAgICAgICAgIFs4ODgsIDk5OV0sCgkvLyAgICAgICAgIF0sCgkvLyAgICAgICBdLAoJLy8gICAgIF0KCWJ5dGUgMHgwMDBiMDAxNjAwMDAwMDAwMDAwMDAwMjEwMDJjMDAwMDAwMDAwMDAwMDAzNzAwMDAwMDAwMDAwMDAwNDIwMDAwMDAwMDAwMDAwMDRkMDAwMDAwMDAwMDAwMDA1ODAwMDAwMDAwMDAwMDAwNjMwMDZmMDBkZTAwMDAwMDAwMDAwMDAxNGQwMWJjMDAwMDAwMDAwMDAwMDIyYjAwMDAwMDAwMDAwMDAyOWEwMDAwMDAwMDAwMDAwMzA5MDAwMDAwMDAwMDAwMDM3ODAwMDAwMDAwMDAwMDAzZTcKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTwgICAgICAgW1N0YXRpY0FycmF5PHVpbnQxNiwgMj4sIHVpbnQ2NCwgW3VpbnQxNiwgdWludDY0XSwgU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAyPiwgMj5dLCAgICAgICAyICAgICA+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjMyOAoJLy8gYVsxXVszXVsxXSA9IFs4ODg4LCA5OTk5XQoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8ICAgICAgIFtTdGF0aWNBcnJheTx1aW50MTYsIDI+LCB1aW50NjQsIFt1aW50MTYsIHVpbnQ2NF0sIFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ2NCwgMj4sIDI+XSwgICAgICAgMiAgICAgPgoJYnl0ZSAweDAwMDAwMDAwMDAwMDIyYjgwMDAwMDAwMDAwMDAyNzBmCglyZXBsYWNlMiA5MgoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PCAgICAgICBbU3RhdGljQXJyYXk8dWludDE2LCAyPiwgdWludDY0LCBbdWludDE2LCB1aW50NjRdLCBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50NjQsIDI+LCAyPl0sICAgICAgIDIgICAgID4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MzI5CgkvLyByZXR1cm4gYVsxXVszXVsxXVswXTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PCAgICAgICBbU3RhdGljQXJyYXk8dWludDE2LCAyPiwgdWludDY0LCBbdWludDE2LCB1aW50NjRdLCBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50NjQsIDI+LCAyPl0sICAgICAgIDIgICAgID4KCWV4dHJhY3QgOTIgOAoJYnRvaQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJkaXNndXN0aW5nKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfZGlzZ3VzdGluZwoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBkaXNndXN0aW5nKCl1aW50NjQKKmFiaV9yb3V0ZV9kaXNndXN0aW5nOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGRpc2d1c3RpbmcoKXVpbnQ2NAoJY2FsbHN1YiBkaXNndXN0aW5nCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZGlzZ3VzdGluZygpOiB1aW50NjQKZGlzZ3VzdGluZzoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjMwNAoJLy8gYTogU3RhdGljQXJyYXk8CgkvLyAgICAgICBbU3RhdGljQXJyYXk8dWludDE2LCAyPiwgdWludDY0LCBbdWludDE2LCB1aW50NjRdLCBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50NjQsIDI+LCAyPl0sCgkvLyAgICAgICAyCgkvLyAgICAgPiA9IFsKCS8vICAgICAgIFsKCS8vICAgICAgICAgWzExLCAyMl0sCgkvLyAgICAgICAgIDMzLAoJLy8gICAgICAgICBbNDQsIDU1XSwKCS8vICAgICAgICAgWwoJLy8gICAgICAgICAgIFs2NiwgNzddLAoJLy8gICAgICAgICAgIFs4OCwgOTldLAoJLy8gICAgICAgICBdLAoJLy8gICAgICAgXSwKCS8vICAgICAgIFsKCS8vICAgICAgICAgWzExMSwgMjIyXSwKCS8vICAgICAgICAgMzMzLAoJLy8gICAgICAgICBbNDQ0LCA1NTVdLAoJLy8gICAgICAgICBbCgkvLyAgICAgICAgICAgWzY2NiwgNzc3XSwKCS8vICAgICAgICAgICBbODg4LCA5OTldLAoJLy8gICAgICAgICBdLAoJLy8gICAgICAgXSwKCS8vICAgICBdCglieXRlIDB4MDAwYjAwMTYwMDAwMDAwMDAwMDAwMDIxMDAyYzAwMDAwMDAwMDAwMDAwMzcwMDAwMDAwMDAwMDAwMDQyMDAwMDAwMDAwMDAwMDA0ZDAwMDAwMDAwMDAwMDAwNTgwMDAwMDAwMDAwMDAwMDYzMDA2ZjAwZGUwMDAwMDAwMDAwMDAwMTRkMDFiYzAwMDAwMDAwMDAwMDAyMmIwMDAwMDAwMDAwMDAwMjlhMDAwMDAwMDAwMDAwMDMwOTAwMDAwMDAwMDAwMDAzNzgwMDAwMDAwMDAwMDAwM2U3CglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8ICAgICAgIFtTdGF0aWNBcnJheTx1aW50MTYsIDI+LCB1aW50NjQsIFt1aW50MTYsIHVpbnQ2NF0sIFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ2NCwgMj4sIDI+XSwgICAgICAgMiAgICAgPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czozMjgKCS8vIGFbMV1bM11bMV0gPSBbODg4OCwgOTk5OV0KCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PCAgICAgICBbU3RhdGljQXJyYXk8dWludDE2LCAyPiwgdWludDY0LCBbdWludDE2LCB1aW50NjRdLCBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50NjQsIDI+LCAyPl0sICAgICAgIDIgICAgID4KCWJ5dGUgMHgwMDAwMDAwMDAwMDAyMmI4MDAwMDAwMDAwMDAwMjcwZgoJcmVwbGFjZTIgOTIKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTwgICAgICAgW1N0YXRpY0FycmF5PHVpbnQxNiwgMj4sIHVpbnQ2NCwgW3VpbnQxNiwgdWludDY0XSwgU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAyPiwgMj5dLCAgICAgICAyICAgICA+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjMyOQoJLy8gcmV0dXJuIGFbMV1bM11bMV1bMF07CglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTwgICAgICAgW1N0YXRpY0FycmF5PHVpbnQxNiwgMj4sIHVpbnQ2NCwgW3VpbnQxNiwgdWludDY0XSwgU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAyPiwgMj5dLCAgICAgICAyICAgICA+CglleHRyYWN0IDkyIDgKCWJ0b2kKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImRpc2d1c3RpbmcoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfZGlzZ3VzdGluZwoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestDynamicAccessOfDynamicElementInStaticArray.approval.teal b/tests/contracts/artifacts/ABITestDynamicAccessOfDynamicElementInStaticArray.approval.teal index 71023ed43..0cea70e38 100644 --- a/tests/contracts/artifacts/ABITestDynamicAccessOfDynamicElementInStaticArray.approval.teal +++ b/tests/contracts/artifacts/ABITestDynamicAccessOfDynamicElementInStaticArray.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // dynamicAccessOfDynamicElementInStaticArray(string[3])string -abi_route_dynamicAccessOfDynamicElementInStaticArray: +*abi_route_dynamicAccessOfDynamicElementInStaticArray: // The ABI return prefix byte 0x151f7c75 @@ -82,18 +82,18 @@ dynamicAccessOfDynamicElementInStaticArray: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "dynamicAccessOfDynamicElementInStaticArray(string[3])string" txna ApplicationArgs 0 - match abi_route_dynamicAccessOfDynamicElementInStaticArray + match *abi_route_dynamicAccessOfDynamicElementInStaticArray err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestDynamicAccessOfDynamicElementInStaticArray.arc32.json b/tests/contracts/artifacts/ABITestDynamicAccessOfDynamicElementInStaticArray.arc32.json index 4cb7fb5d4..7d829ff50 100644 --- a/tests/contracts/artifacts/ABITestDynamicAccessOfDynamicElementInStaticArray.arc32.json +++ b/tests/contracts/artifacts/ABITestDynamicAccessOfDynamicElementInStaticArray.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBkeW5hbWljQWNjZXNzT2ZEeW5hbWljRWxlbWVudEluU3RhdGljQXJyYXkoc3RyaW5nWzNdKXN0cmluZwphYmlfcm91dGVfZHluYW1pY0FjY2Vzc09mRHluYW1pY0VsZW1lbnRJblN0YXRpY0FycmF5OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBhOiBzdHJpbmdbM10KCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCgkvLyBleGVjdXRlIGR5bmFtaWNBY2Nlc3NPZkR5bmFtaWNFbGVtZW50SW5TdGF0aWNBcnJheShzdHJpbmdbM10pc3RyaW5nCgljYWxsc3ViIGR5bmFtaWNBY2Nlc3NPZkR5bmFtaWNFbGVtZW50SW5TdGF0aWNBcnJheQoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBkeW5hbWljQWNjZXNzT2ZEeW5hbWljRWxlbWVudEluU3RhdGljQXJyYXkoYTogU3RhdGljQXJyYXk8c3RyaW5nLCAzPik6IHN0cmluZwpkeW5hbWljQWNjZXNzT2ZEeW5hbWljRWxlbWVudEluU3RhdGljQXJyYXk6Cglwcm90byAxIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo2NTEKCS8vIGkgPSBidG9pKGl0b2IoMSkpCglpbnQgMQoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo2NTIKCS8vIHJldHVybiBhW2ldOwoJZnJhbWVfZGlnIC0xIC8vIGE6IFN0YXRpY0FycmF5PHN0cmluZywgMz4KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMCAvLyBpbml0aWFsIG9mZnNldAoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgMgoJKiAvLyBhY2MgKiAyCgkrCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCAxIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglleHRyYWN0MwoJZXh0cmFjdCAyIDAKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAiZHluYW1pY0FjY2Vzc09mRHluYW1pY0VsZW1lbnRJblN0YXRpY0FycmF5KHN0cmluZ1szXSlzdHJpbmciCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfZHluYW1pY0FjY2Vzc09mRHluYW1pY0VsZW1lbnRJblN0YXRpY0FycmF5CgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBkeW5hbWljQWNjZXNzT2ZEeW5hbWljRWxlbWVudEluU3RhdGljQXJyYXkoc3RyaW5nWzNdKXN0cmluZwoqYWJpX3JvdXRlX2R5bmFtaWNBY2Nlc3NPZkR5bmFtaWNFbGVtZW50SW5TdGF0aWNBcnJheToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYTogc3RyaW5nWzNdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCgoJLy8gZXhlY3V0ZSBkeW5hbWljQWNjZXNzT2ZEeW5hbWljRWxlbWVudEluU3RhdGljQXJyYXkoc3RyaW5nWzNdKXN0cmluZwoJY2FsbHN1YiBkeW5hbWljQWNjZXNzT2ZEeW5hbWljRWxlbWVudEluU3RhdGljQXJyYXkKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZHluYW1pY0FjY2Vzc09mRHluYW1pY0VsZW1lbnRJblN0YXRpY0FycmF5KGE6IFN0YXRpY0FycmF5PHN0cmluZywgMz4pOiBzdHJpbmcKZHluYW1pY0FjY2Vzc09mRHluYW1pY0VsZW1lbnRJblN0YXRpY0FycmF5OgoJcHJvdG8gMSAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NjUxCgkvLyBpID0gYnRvaShpdG9iKDEpKQoJaW50IDEKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NjUyCgkvLyByZXR1cm4gYVtpXTsKCWZyYW1lX2RpZyAtMSAvLyBhOiBTdGF0aWNBcnJheTxzdHJpbmcsIDM+CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDAgLy8gaW5pdGlhbCBvZmZzZXQKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDIKCSogLy8gYWNjICogMgoJKwoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMSAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJZXh0cmFjdDMKCWV4dHJhY3QgMiAwCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJkeW5hbWljQWNjZXNzT2ZEeW5hbWljRWxlbWVudEluU3RhdGljQXJyYXkoc3RyaW5nWzNdKXN0cmluZyIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfZHluYW1pY0FjY2Vzc09mRHluYW1pY0VsZW1lbnRJblN0YXRpY0FycmF5CgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestDynamicArray.approval.teal b/tests/contracts/artifacts/ABITestDynamicArray.approval.teal index 8ff3a082e..57ab5f1ba 100644 --- a/tests/contracts/artifacts/ABITestDynamicArray.approval.teal +++ b/tests/contracts/artifacts/ABITestDynamicArray.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // dynamicArray()uint64 -abi_route_dynamicArray: +*abi_route_dynamicArray: // The ABI return prefix byte 0x151f7c75 @@ -58,18 +58,18 @@ dynamicArray: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "dynamicArray()uint64" txna ApplicationArgs 0 - match abi_route_dynamicArray + match *abi_route_dynamicArray err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestDynamicArray.arc32.json b/tests/contracts/artifacts/ABITestDynamicArray.arc32.json index 1fcd5dfe1..191cc45f3 100644 --- a/tests/contracts/artifacts/ABITestDynamicArray.arc32.json +++ b/tests/contracts/artifacts/ABITestDynamicArray.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBkeW5hbWljQXJyYXkoKXVpbnQ2NAphYmlfcm91dGVfZHluYW1pY0FycmF5OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGR5bmFtaWNBcnJheSgpdWludDY0CgljYWxsc3ViIGR5bmFtaWNBcnJheQoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGR5bmFtaWNBcnJheSgpOiB1aW50NjQKZHluYW1pY0FycmF5OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MzQ4CgkvLyBhOiB1aW50NjRbXSA9IFsxMSwgMjIsIDMzXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAwMDAwMDAwMDAwMDAyMQoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQ2NFtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM1MAoJLy8gcmV0dXJuIGFbMV07CglmcmFtZV9kaWcgMCAvLyBhOiB1aW50NjRbXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWV4dHJhY3QgOCA4CglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgImR5bmFtaWNBcnJheSgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2R5bmFtaWNBcnJheQoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBkeW5hbWljQXJyYXkoKXVpbnQ2NAoqYWJpX3JvdXRlX2R5bmFtaWNBcnJheToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBkeW5hbWljQXJyYXkoKXVpbnQ2NAoJY2FsbHN1YiBkeW5hbWljQXJyYXkKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBkeW5hbWljQXJyYXkoKTogdWludDY0CmR5bmFtaWNBcnJheToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM0OAoJLy8gYTogdWludDY0W10gPSBbMTEsIDIyLCAzM10KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDBiMDAwMDAwMDAwMDAwMDAxNjAwMDAwMDAwMDAwMDAwMjEKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50NjRbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czozNTAKCS8vIHJldHVybiBhWzFdOwoJZnJhbWVfZGlnIDAgLy8gYTogdWludDY0W10KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglleHRyYWN0IDggOAoJYnRvaQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiZHluYW1pY0FycmF5KCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2R5bmFtaWNBcnJheQoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestDynamicArrayArg.approval.teal b/tests/contracts/artifacts/ABITestDynamicArrayArg.approval.teal index 7ff2bfc65..00b8dc3bb 100644 --- a/tests/contracts/artifacts/ABITestDynamicArrayArg.approval.teal +++ b/tests/contracts/artifacts/ABITestDynamicArrayArg.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // dynamicArrayArg(uint64[])uint64 -abi_route_dynamicArrayArg: +*abi_route_dynamicArrayArg: // The ABI return prefix byte 0x151f7c75 @@ -51,18 +51,18 @@ dynamicArrayArg: btoi retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "dynamicArrayArg(uint64[])uint64" txna ApplicationArgs 0 - match abi_route_dynamicArrayArg + match *abi_route_dynamicArrayArg err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestDynamicArrayArg.arc32.json b/tests/contracts/artifacts/ABITestDynamicArrayArg.arc32.json index 12a2f0e47..878a95d1c 100644 --- a/tests/contracts/artifacts/ABITestDynamicArrayArg.arc32.json +++ b/tests/contracts/artifacts/ABITestDynamicArrayArg.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBkeW5hbWljQXJyYXlBcmcodWludDY0W10pdWludDY0CmFiaV9yb3V0ZV9keW5hbWljQXJyYXlBcmc6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGE6IHVpbnQ2NFtdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgZHluYW1pY0FycmF5QXJnKHVpbnQ2NFtdKXVpbnQ2NAoJY2FsbHN1YiBkeW5hbWljQXJyYXlBcmcKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBkeW5hbWljQXJyYXlBcmcoYTogdWludDY0W10pOiB1aW50NjQKZHluYW1pY0FycmF5QXJnOgoJcHJvdG8gMSAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM2MwoJLy8gcmV0dXJuIGFbMV07CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0W10KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglleHRyYWN0IDggOAoJYnRvaQoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJkeW5hbWljQXJyYXlBcmcodWludDY0W10pdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2R5bmFtaWNBcnJheUFyZwoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBkeW5hbWljQXJyYXlBcmcodWludDY0W10pdWludDY0CiphYmlfcm91dGVfZHluYW1pY0FycmF5QXJnOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBhOiB1aW50NjRbXQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIGR5bmFtaWNBcnJheUFyZyh1aW50NjRbXSl1aW50NjQKCWNhbGxzdWIgZHluYW1pY0FycmF5QXJnCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZHluYW1pY0FycmF5QXJnKGE6IHVpbnQ2NFtdKTogdWludDY0CmR5bmFtaWNBcnJheUFyZzoKCXByb3RvIDEgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czozNjMKCS8vIHJldHVybiBhWzFdOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NFtdCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZXh0cmFjdCA4IDgKCWJ0b2kKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImR5bmFtaWNBcnJheUFyZyh1aW50NjRbXSl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2R5bmFtaWNBcnJheUFyZwoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestDynamicArrayElements.approval.teal b/tests/contracts/artifacts/ABITestDynamicArrayElements.approval.teal index 8a64eb22b..7b21765ef 100644 --- a/tests/contracts/artifacts/ABITestDynamicArrayElements.approval.teal +++ b/tests/contracts/artifacts/ABITestDynamicArrayElements.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // dynamicArrayElements()uint16[] -abi_route_dynamicArrayElements: +*abi_route_dynamicArrayElements: // The ABI return prefix byte 0x151f7c75 @@ -92,18 +92,18 @@ dynamicArrayElements: popn 1 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "dynamicArrayElements()uint16[]" txna ApplicationArgs 0 - match abi_route_dynamicArrayElements + match *abi_route_dynamicArrayElements err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestDynamicArrayElements.arc32.json b/tests/contracts/artifacts/ABITestDynamicArrayElements.arc32.json index 34f8a3ab1..6672c3beb 100644 --- a/tests/contracts/artifacts/ABITestDynamicArrayElements.arc32.json +++ b/tests/contracts/artifacts/ABITestDynamicArrayElements.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBkeW5hbWljQXJyYXlFbGVtZW50cygpdWludDE2W10KYWJpX3JvdXRlX2R5bmFtaWNBcnJheUVsZW1lbnRzOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGR5bmFtaWNBcnJheUVsZW1lbnRzKCl1aW50MTZbXQoJY2FsbHN1YiBkeW5hbWljQXJyYXlFbGVtZW50cwoJZHVwCglsZW4KCWludCAyCgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZHluYW1pY0FycmF5RWxlbWVudHMoKTogdWludDE2W10KZHluYW1pY0FycmF5RWxlbWVudHM6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ4MQoJLy8gYTogdWludDE2W10gPSBbMSwgMiwgM10KCWJ5dGUgMHgwMDAxMDAwMjAwMDMKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50MTZbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0ODIKCS8vIG5ld0E6IHVpbnQxNltdID0gW2FbMF0sIGFbMV0sIGFbMl1dCglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWV4dHJhY3QgMCAyCglidG9pCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfZGlnIDAgLy8gYTogdWludDE2W10KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglleHRyYWN0IDIgMgoJYnRvaQoJaXRvYgoJZXh0cmFjdCA2IDIKCWNvbmNhdAoJZnJhbWVfZGlnIDAgLy8gYTogdWludDE2W10KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglleHRyYWN0IDQgMgoJYnRvaQoJaXRvYgoJZXh0cmFjdCA2IDIKCWNvbmNhdAoJZnJhbWVfYnVyeSAxIC8vIG5ld0E6IHVpbnQxNltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ4NAoJLy8gcmV0dXJuIG5ld0E7CglmcmFtZV9kaWcgMSAvLyBuZXdBOiB1aW50MTZbXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAiZHluYW1pY0FycmF5RWxlbWVudHMoKXVpbnQxNltdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2R5bmFtaWNBcnJheUVsZW1lbnRzCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBkeW5hbWljQXJyYXlFbGVtZW50cygpdWludDE2W10KKmFiaV9yb3V0ZV9keW5hbWljQXJyYXlFbGVtZW50czoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBkeW5hbWljQXJyYXlFbGVtZW50cygpdWludDE2W10KCWNhbGxzdWIgZHluYW1pY0FycmF5RWxlbWVudHMKCWR1cAoJbGVuCglpbnQgMgoJLwoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGR5bmFtaWNBcnJheUVsZW1lbnRzKCk6IHVpbnQxNltdCmR5bmFtaWNBcnJheUVsZW1lbnRzOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0ODEKCS8vIGE6IHVpbnQxNltdID0gWzEsIDIsIDNdCglieXRlIDB4MDAwMTAwMDIwMDAzCglmcmFtZV9idXJ5IDAgLy8gYTogdWludDE2W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDgyCgkvLyBuZXdBOiB1aW50MTZbXSA9IFthWzBdLCBhWzFdLCBhWzJdXQoJZnJhbWVfZGlnIDAgLy8gYTogdWludDE2W10KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglleHRyYWN0IDAgMgoJYnRvaQoJaXRvYgoJZXh0cmFjdCA2IDIKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZXh0cmFjdCAyIDIKCWJ0b2kKCWl0b2IKCWV4dHJhY3QgNiAyCgljb25jYXQKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZXh0cmFjdCA0IDIKCWJ0b2kKCWl0b2IKCWV4dHJhY3QgNiAyCgljb25jYXQKCWZyYW1lX2J1cnkgMSAvLyBuZXdBOiB1aW50MTZbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0ODQKCS8vIHJldHVybiBuZXdBOwoJZnJhbWVfZGlnIDEgLy8gbmV3QTogdWludDE2W10KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJkeW5hbWljQXJyYXlFbGVtZW50cygpdWludDE2W10iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2R5bmFtaWNBcnJheUVsZW1lbnRzCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestDynamicArrayInMiddleOfTuple.approval.teal b/tests/contracts/artifacts/ABITestDynamicArrayInMiddleOfTuple.approval.teal index 227d87465..bd54a0192 100644 --- a/tests/contracts/artifacts/ABITestDynamicArrayInMiddleOfTuple.approval.teal +++ b/tests/contracts/artifacts/ABITestDynamicArrayInMiddleOfTuple.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // dynamicArrayInMiddleOfTuple()(uint16,uint8[],uint16) -abi_route_dynamicArrayInMiddleOfTuple: +*abi_route_dynamicArrayInMiddleOfTuple: // The ABI return prefix byte 0x151f7c75 @@ -46,11 +46,11 @@ dynamicArrayInMiddleOfTuple: byte 0x // initial tail byte 0x0006 // initial head offset byte 0x0001 - callsub process_static_tuple_element + callsub *process_static_tuple_element byte 0x000102 - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element byte 0x0003 - callsub process_static_tuple_element + callsub *process_static_tuple_element pop // pop head offset concat // concat head and tail frame_bury 0 // a: [uint16, uint<8>[], uint16] @@ -63,23 +63,23 @@ dynamicArrayInMiddleOfTuple: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "dynamicArrayInMiddleOfTuple()(uint16,uint8[],uint16)" txna ApplicationArgs 0 - match abi_route_dynamicArrayInMiddleOfTuple + match *abi_route_dynamicArrayInMiddleOfTuple err -process_static_tuple_element: +*process_static_tuple_element: proto 4 3 frame_dig -4 // tuple head frame_dig -1 // element @@ -88,7 +88,7 @@ process_static_tuple_element: frame_dig -2 // head offset retsub -process_dynamic_tuple_element: +*process_dynamic_tuple_element: proto 4 3 frame_dig -4 // tuple head frame_dig -2 // head offset diff --git a/tests/contracts/artifacts/ABITestDynamicArrayInMiddleOfTuple.arc32.json b/tests/contracts/artifacts/ABITestDynamicArrayInMiddleOfTuple.arc32.json index 40e009983..71c0f9c10 100644 --- a/tests/contracts/artifacts/ABITestDynamicArrayInMiddleOfTuple.arc32.json +++ b/tests/contracts/artifacts/ABITestDynamicArrayInMiddleOfTuple.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBkeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGUoKSh1aW50MTYsdWludDhbXSx1aW50MTYpCmFiaV9yb3V0ZV9keW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgZHluYW1pY0FycmF5SW5NaWRkbGVPZlR1cGxlKCkodWludDE2LHVpbnQ4W10sdWludDE2KQoJY2FsbHN1YiBkeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGUKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBkeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGUoKTogW3VpbnQxNiwgdWludDw4PltdLCB1aW50MTZdCmR5bmFtaWNBcnJheUluTWlkZGxlT2ZUdXBsZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjY1OAoJLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCB1aW50MTZdID0gWzEsIFsyXSwgM10KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJYnl0ZSAweDAwMDYgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJYnl0ZSAweDAwMDEKCWNhbGxzdWIgcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDEwMgoJY2FsbHN1YiBwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDMKCWNhbGxzdWIgcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCB1aW50MTZdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjY2MAoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDE2LCB1aW50PDg+W10sIHVpbnQxNl0KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAiZHluYW1pY0FycmF5SW5NaWRkbGVPZlR1cGxlKCkodWludDE2LHVpbnQ4W10sdWludDE2KSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9keW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGUKCWVycgoKcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50Cgljb25jYXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJZHVwCglsZW4KCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJYnRvaQoJKwoJaXRvYgoJZXh0cmFjdCA2IDIKCWZyYW1lX2J1cnkgLTIgLy8gaGVhZCBvZmZzZXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglzd2FwCgljb25jYXQKCWZyYW1lX2J1cnkgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1Yg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBkeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGUoKSh1aW50MTYsdWludDhbXSx1aW50MTYpCiphYmlfcm91dGVfZHluYW1pY0FycmF5SW5NaWRkbGVPZlR1cGxlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGR5bmFtaWNBcnJheUluTWlkZGxlT2ZUdXBsZSgpKHVpbnQxNix1aW50OFtdLHVpbnQxNikKCWNhbGxzdWIgZHluYW1pY0FycmF5SW5NaWRkbGVPZlR1cGxlCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZHluYW1pY0FycmF5SW5NaWRkbGVPZlR1cGxlKCk6IFt1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2XQpkeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo2NTgKCS8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2XSA9IFsxLCBbMl0sIDNdCglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDA2IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCWJ5dGUgMHgwMDAxCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMTAyCgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDMKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2XQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo2NjAKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCB1aW50MTZdCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJkeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGUoKSh1aW50MTYsdWludDhbXSx1aW50MTYpIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9keW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGUKCWVycgoKKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJY29uY2F0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCipwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3Vi", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestDynamicBoolArray.approval.teal b/tests/contracts/artifacts/ABITestDynamicBoolArray.approval.teal index ad1c5ce95..46754e989 100644 --- a/tests/contracts/artifacts/ABITestDynamicBoolArray.approval.teal +++ b/tests/contracts/artifacts/ABITestDynamicBoolArray.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // dynamicBoolArray()bool[] -abi_route_dynamicBoolArray: +*abi_route_dynamicBoolArray: // The ABI return prefix byte 0x151f7c75 @@ -82,18 +82,18 @@ dynamicBoolArray: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "dynamicBoolArray()bool[]" txna ApplicationArgs 0 - match abi_route_dynamicBoolArray + match *abi_route_dynamicBoolArray err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestDynamicBoolArray.arc32.json b/tests/contracts/artifacts/ABITestDynamicBoolArray.arc32.json index 0c1527221..b1ed97287 100644 --- a/tests/contracts/artifacts/ABITestDynamicBoolArray.arc32.json +++ b/tests/contracts/artifacts/ABITestDynamicBoolArray.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBkeW5hbWljQm9vbEFycmF5KClib29sW10KYWJpX3JvdXRlX2R5bmFtaWNCb29sQXJyYXk6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgZHluYW1pY0Jvb2xBcnJheSgpYm9vbFtdCgljYWxsc3ViIGR5bmFtaWNCb29sQXJyYXkKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBkeW5hbWljQm9vbEFycmF5KCk6IGJvb2xlYW5bXQpkeW5hbWljQm9vbEFycmF5OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6OTQwCgkvLyBhOiBib29sZWFuW10gPSBbdHJ1ZSwgZmFsc2UsIHRydWUsIHRydWUsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlXQoJYnl0ZSAweDAwMDkKCWJ5dGUgMHgwMDAwCglpbnQgMAoJaW50IDEKCXNldGJpdAoJaW50IDEKCWludCAwCglzZXRiaXQKCWludCAyCglpbnQgMQoJc2V0Yml0CglpbnQgMwoJaW50IDEKCXNldGJpdAoJaW50IDQKCWludCAwCglzZXRiaXQKCWludCA1CglpbnQgMAoJc2V0Yml0CglpbnQgNgoJaW50IDEKCXNldGJpdAoJaW50IDcKCWludCAwCglzZXRiaXQKCWludCA4CglpbnQgMAoJc2V0Yml0Cgljb25jYXQKCWZyYW1lX2J1cnkgMCAvLyBhOiBib29sZWFuW10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6OTQyCgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IGJvb2xlYW5bXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJkeW5hbWljQm9vbEFycmF5KClib29sW10iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfZHluYW1pY0Jvb2xBcnJheQoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBkeW5hbWljQm9vbEFycmF5KClib29sW10KKmFiaV9yb3V0ZV9keW5hbWljQm9vbEFycmF5OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGR5bmFtaWNCb29sQXJyYXkoKWJvb2xbXQoJY2FsbHN1YiBkeW5hbWljQm9vbEFycmF5Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZHluYW1pY0Jvb2xBcnJheSgpOiBib29sZWFuW10KZHluYW1pY0Jvb2xBcnJheToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjk0MAoJLy8gYTogYm9vbGVhbltdID0gW3RydWUsIGZhbHNlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlLCBmYWxzZV0KCWJ5dGUgMHgwMDA5CglieXRlIDB4MDAwMAoJaW50IDAKCWludCAxCglzZXRiaXQKCWludCAxCglpbnQgMAoJc2V0Yml0CglpbnQgMgoJaW50IDEKCXNldGJpdAoJaW50IDMKCWludCAxCglzZXRiaXQKCWludCA0CglpbnQgMAoJc2V0Yml0CglpbnQgNQoJaW50IDAKCXNldGJpdAoJaW50IDYKCWludCAxCglzZXRiaXQKCWludCA3CglpbnQgMAoJc2V0Yml0CglpbnQgOAoJaW50IDAKCXNldGJpdAoJY29uY2F0CglmcmFtZV9idXJ5IDAgLy8gYTogYm9vbGVhbltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjk0MgoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiBib29sZWFuW10KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImR5bmFtaWNCb29sQXJyYXkoKWJvb2xbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfZHluYW1pY0Jvb2xBcnJheQoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestDynamicBoolArrayAccess.approval.teal b/tests/contracts/artifacts/ABITestDynamicBoolArrayAccess.approval.teal index 8b84808c8..4407d4c46 100644 --- a/tests/contracts/artifacts/ABITestDynamicBoolArrayAccess.approval.teal +++ b/tests/contracts/artifacts/ABITestDynamicBoolArrayAccess.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // dynamicBoolArrayAccess()bool -abi_route_dynamicBoolArrayAccess: +*abi_route_dynamicBoolArrayAccess: // The ABI return prefix byte 0x151f7c75 @@ -90,18 +90,18 @@ dynamicBoolArrayAccess: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "dynamicBoolArrayAccess()bool" txna ApplicationArgs 0 - match abi_route_dynamicBoolArrayAccess + match *abi_route_dynamicBoolArrayAccess err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestDynamicBoolArrayAccess.arc32.json b/tests/contracts/artifacts/ABITestDynamicBoolArrayAccess.arc32.json index 92093bea6..f6ee90cb0 100644 --- a/tests/contracts/artifacts/ABITestDynamicBoolArrayAccess.arc32.json +++ b/tests/contracts/artifacts/ABITestDynamicBoolArrayAccess.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBkeW5hbWljQm9vbEFycmF5QWNjZXNzKClib29sCmFiaV9yb3V0ZV9keW5hbWljQm9vbEFycmF5QWNjZXNzOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGR5bmFtaWNCb29sQXJyYXlBY2Nlc3MoKWJvb2wKCWNhbGxzdWIgZHluYW1pY0Jvb2xBcnJheUFjY2VzcwoJYnl0ZSAweDAwCglpbnQgMAoJdW5jb3ZlciAyCglzZXRiaXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBkeW5hbWljQm9vbEFycmF5QWNjZXNzKCk6IGJvb2xlYW4KZHluYW1pY0Jvb2xBcnJheUFjY2VzczoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjk0OAoJLy8gYTogYm9vbGVhbltdID0gW3RydWUsIGZhbHNlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlLCBmYWxzZV0KCWJ5dGUgMHgwMDA5CglieXRlIDB4MDAwMAoJaW50IDAKCWludCAxCglzZXRiaXQKCWludCAxCglpbnQgMAoJc2V0Yml0CglpbnQgMgoJaW50IDEKCXNldGJpdAoJaW50IDMKCWludCAxCglzZXRiaXQKCWludCA0CglpbnQgMAoJc2V0Yml0CglpbnQgNQoJaW50IDAKCXNldGJpdAoJaW50IDYKCWludCAxCglzZXRiaXQKCWludCA3CglpbnQgMAoJc2V0Yml0CglpbnQgOAoJaW50IDAKCXNldGJpdAoJY29uY2F0CglmcmFtZV9idXJ5IDAgLy8gYTogYm9vbGVhbltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjk1MAoJLy8gcmV0dXJuIGFbOF07CglmcmFtZV9kaWcgMCAvLyBhOiBib29sZWFuW10KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgOAoJZ2V0Yml0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgImR5bmFtaWNCb29sQXJyYXlBY2Nlc3MoKWJvb2wiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfZHluYW1pY0Jvb2xBcnJheUFjY2VzcwoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBkeW5hbWljQm9vbEFycmF5QWNjZXNzKClib29sCiphYmlfcm91dGVfZHluYW1pY0Jvb2xBcnJheUFjY2VzczoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBkeW5hbWljQm9vbEFycmF5QWNjZXNzKClib29sCgljYWxsc3ViIGR5bmFtaWNCb29sQXJyYXlBY2Nlc3MKCWJ5dGUgMHgwMAoJaW50IDAKCXVuY292ZXIgMgoJc2V0Yml0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZHluYW1pY0Jvb2xBcnJheUFjY2VzcygpOiBib29sZWFuCmR5bmFtaWNCb29sQXJyYXlBY2Nlc3M6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5NDgKCS8vIGE6IGJvb2xlYW5bXSA9IFt0cnVlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCB0cnVlLCBmYWxzZSwgZmFsc2VdCglieXRlIDB4MDAwOQoJYnl0ZSAweDAwMDAKCWludCAwCglpbnQgMQoJc2V0Yml0CglpbnQgMQoJaW50IDAKCXNldGJpdAoJaW50IDIKCWludCAxCglzZXRiaXQKCWludCAzCglpbnQgMQoJc2V0Yml0CglpbnQgNAoJaW50IDAKCXNldGJpdAoJaW50IDUKCWludCAwCglzZXRiaXQKCWludCA2CglpbnQgMQoJc2V0Yml0CglpbnQgNwoJaW50IDAKCXNldGJpdAoJaW50IDgKCWludCAwCglzZXRiaXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAwIC8vIGE6IGJvb2xlYW5bXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5NTAKCS8vIHJldHVybiBhWzhdOwoJZnJhbWVfZGlnIDAgLy8gYTogYm9vbGVhbltdCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDgKCWdldGJpdAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiZHluYW1pY0Jvb2xBcnJheUFjY2VzcygpYm9vbCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfZHluYW1pY0Jvb2xBcnJheUFjY2VzcwoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestDynamicBoolArrayUpdate.approval.teal b/tests/contracts/artifacts/ABITestDynamicBoolArrayUpdate.approval.teal index 29e7c19df..e3036845f 100644 --- a/tests/contracts/artifacts/ABITestDynamicBoolArrayUpdate.approval.teal +++ b/tests/contracts/artifacts/ABITestDynamicBoolArrayUpdate.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // dynamicBoolArrayUpdate()bool[] -abi_route_dynamicBoolArrayUpdate: +*abi_route_dynamicBoolArrayUpdate: // The ABI return prefix byte 0x151f7c75 @@ -92,18 +92,18 @@ dynamicBoolArrayUpdate: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "dynamicBoolArrayUpdate()bool[]" txna ApplicationArgs 0 - match abi_route_dynamicBoolArrayUpdate + match *abi_route_dynamicBoolArrayUpdate err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestDynamicBoolArrayUpdate.arc32.json b/tests/contracts/artifacts/ABITestDynamicBoolArrayUpdate.arc32.json index 47f0b3ef1..3357877ec 100644 --- a/tests/contracts/artifacts/ABITestDynamicBoolArrayUpdate.arc32.json +++ b/tests/contracts/artifacts/ABITestDynamicBoolArrayUpdate.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBkeW5hbWljQm9vbEFycmF5VXBkYXRlKClib29sW10KYWJpX3JvdXRlX2R5bmFtaWNCb29sQXJyYXlVcGRhdGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgZHluYW1pY0Jvb2xBcnJheVVwZGF0ZSgpYm9vbFtdCgljYWxsc3ViIGR5bmFtaWNCb29sQXJyYXlVcGRhdGUKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBkeW5hbWljQm9vbEFycmF5VXBkYXRlKCk6IGJvb2xlYW5bXQpkeW5hbWljQm9vbEFycmF5VXBkYXRlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6OTY2CgkvLyBhOiBib29sZWFuW10gPSBbdHJ1ZSwgZmFsc2UsIHRydWUsIHRydWUsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlXQoJYnl0ZSAweDAwMDkKCWJ5dGUgMHgwMDAwCglpbnQgMAoJaW50IDEKCXNldGJpdAoJaW50IDEKCWludCAwCglzZXRiaXQKCWludCAyCglpbnQgMQoJc2V0Yml0CglpbnQgMwoJaW50IDEKCXNldGJpdAoJaW50IDQKCWludCAwCglzZXRiaXQKCWludCA1CglpbnQgMAoJc2V0Yml0CglpbnQgNgoJaW50IDEKCXNldGJpdAoJaW50IDcKCWludCAwCglzZXRiaXQKCWludCA4CglpbnQgMAoJc2V0Yml0Cgljb25jYXQKCWZyYW1lX2J1cnkgMCAvLyBhOiBib29sZWFuW10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6OTY4CgkvLyBhWzhdID0gdHJ1ZQoJZnJhbWVfZGlnIDAgLy8gYTogYm9vbGVhbltdCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDI0CglpbnQgMQoJc2V0Yml0CglmcmFtZV9idXJ5IDAgLy8gYTogYm9vbGVhbltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjk3MAoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiBib29sZWFuW10KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAiZHluYW1pY0Jvb2xBcnJheVVwZGF0ZSgpYm9vbFtdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2R5bmFtaWNCb29sQXJyYXlVcGRhdGUKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBkeW5hbWljQm9vbEFycmF5VXBkYXRlKClib29sW10KKmFiaV9yb3V0ZV9keW5hbWljQm9vbEFycmF5VXBkYXRlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGR5bmFtaWNCb29sQXJyYXlVcGRhdGUoKWJvb2xbXQoJY2FsbHN1YiBkeW5hbWljQm9vbEFycmF5VXBkYXRlCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZHluYW1pY0Jvb2xBcnJheVVwZGF0ZSgpOiBib29sZWFuW10KZHluYW1pY0Jvb2xBcnJheVVwZGF0ZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjk2NgoJLy8gYTogYm9vbGVhbltdID0gW3RydWUsIGZhbHNlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlLCBmYWxzZV0KCWJ5dGUgMHgwMDA5CglieXRlIDB4MDAwMAoJaW50IDAKCWludCAxCglzZXRiaXQKCWludCAxCglpbnQgMAoJc2V0Yml0CglpbnQgMgoJaW50IDEKCXNldGJpdAoJaW50IDMKCWludCAxCglzZXRiaXQKCWludCA0CglpbnQgMAoJc2V0Yml0CglpbnQgNQoJaW50IDAKCXNldGJpdAoJaW50IDYKCWludCAxCglzZXRiaXQKCWludCA3CglpbnQgMAoJc2V0Yml0CglpbnQgOAoJaW50IDAKCXNldGJpdAoJY29uY2F0CglmcmFtZV9idXJ5IDAgLy8gYTogYm9vbGVhbltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjk2OAoJLy8gYVs4XSA9IHRydWUKCWZyYW1lX2RpZyAwIC8vIGE6IGJvb2xlYW5bXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAyNAoJaW50IDEKCXNldGJpdAoJZnJhbWVfYnVyeSAwIC8vIGE6IGJvb2xlYW5bXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5NzAKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogYm9vbGVhbltdCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJkeW5hbWljQm9vbEFycmF5VXBkYXRlKClib29sW10iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2R5bmFtaWNCb29sQXJyYXlVcGRhdGUKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestDynamicTupleArray.approval.teal b/tests/contracts/artifacts/ABITestDynamicTupleArray.approval.teal index 2fcfef469..db2914052 100644 --- a/tests/contracts/artifacts/ABITestDynamicTupleArray.approval.teal +++ b/tests/contracts/artifacts/ABITestDynamicTupleArray.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // dynamicTupleArray()uint64 -abi_route_dynamicTupleArray: +*abi_route_dynamicTupleArray: // The ABI return prefix byte 0x151f7c75 @@ -61,18 +61,18 @@ dynamicTupleArray: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "dynamicTupleArray()uint64" txna ApplicationArgs 0 - match abi_route_dynamicTupleArray + match *abi_route_dynamicTupleArray err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestDynamicTupleArray.arc32.json b/tests/contracts/artifacts/ABITestDynamicTupleArray.arc32.json index a22293f31..27d75e350 100644 --- a/tests/contracts/artifacts/ABITestDynamicTupleArray.arc32.json +++ b/tests/contracts/artifacts/ABITestDynamicTupleArray.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBkeW5hbWljVHVwbGVBcnJheSgpdWludDY0CmFiaV9yb3V0ZV9keW5hbWljVHVwbGVBcnJheToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBkeW5hbWljVHVwbGVBcnJheSgpdWludDY0CgljYWxsc3ViIGR5bmFtaWNUdXBsZUFycmF5CglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZHluYW1pY1R1cGxlQXJyYXkoKTogdWludDY0CmR5bmFtaWNUdXBsZUFycmF5OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6Mzc5CgkvLyBhOiBbdWludDE2LCB1aW50NjRdW10gPSBbCgkvLyAgICAgICBbMTEsIDIyXSwKCS8vICAgICAgIFszMywgNDRdLAoJLy8gICAgIF0KCWJ5dGUgMHgwMDBiMDAwMDAwMDAwMDAwMDAxNjAwMjEwMDAwMDAwMDAwMDAwMDJjCglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQxNiwgdWludDY0XVtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM4NAoJLy8gcmV0dXJuIGFbMV1bMV07CglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDE2LCB1aW50NjRdW10KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglleHRyYWN0IDEyIDgKCWJ0b2kKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAiZHluYW1pY1R1cGxlQXJyYXkoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9keW5hbWljVHVwbGVBcnJheQoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBkeW5hbWljVHVwbGVBcnJheSgpdWludDY0CiphYmlfcm91dGVfZHluYW1pY1R1cGxlQXJyYXk6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgZHluYW1pY1R1cGxlQXJyYXkoKXVpbnQ2NAoJY2FsbHN1YiBkeW5hbWljVHVwbGVBcnJheQoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGR5bmFtaWNUdXBsZUFycmF5KCk6IHVpbnQ2NApkeW5hbWljVHVwbGVBcnJheToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM3OQoJLy8gYTogW3VpbnQxNiwgdWludDY0XVtdID0gWwoJLy8gICAgICAgWzExLCAyMl0sCgkvLyAgICAgICBbMzMsIDQ0XSwKCS8vICAgICBdCglieXRlIDB4MDAwYjAwMDAwMDAwMDAwMDAwMTYwMDIxMDAwMDAwMDAwMDAwMDAyYwoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50MTYsIHVpbnQ2NF1bXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czozODQKCS8vIHJldHVybiBhWzFdWzFdOwoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQxNiwgdWludDY0XVtdCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZXh0cmFjdCAxMiA4CglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJkeW5hbWljVHVwbGVBcnJheSgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9keW5hbWljVHVwbGVBcnJheQoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestEmptyDynamicArray.approval.teal b/tests/contracts/artifacts/ABITestEmptyDynamicArray.approval.teal index 936204d66..607f54848 100644 --- a/tests/contracts/artifacts/ABITestEmptyDynamicArray.approval.teal +++ b/tests/contracts/artifacts/ABITestEmptyDynamicArray.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // emptyDynamicArray()uint64[] -abi_route_emptyDynamicArray: +*abi_route_emptyDynamicArray: // The ABI return prefix byte 0x151f7c75 @@ -50,18 +50,18 @@ emptyDynamicArray: byte 0x retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "emptyDynamicArray()uint64[]" txna ApplicationArgs 0 - match abi_route_emptyDynamicArray + match *abi_route_emptyDynamicArray err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestEmptyDynamicArray.arc32.json b/tests/contracts/artifacts/ABITestEmptyDynamicArray.arc32.json index ef8b7ef5d..06e7ccf2c 100644 --- a/tests/contracts/artifacts/ABITestEmptyDynamicArray.arc32.json +++ b/tests/contracts/artifacts/ABITestEmptyDynamicArray.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBlbXB0eUR5bmFtaWNBcnJheSgpdWludDY0W10KYWJpX3JvdXRlX2VtcHR5RHluYW1pY0FycmF5OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGVtcHR5RHluYW1pY0FycmF5KCl1aW50NjRbXQoJY2FsbHN1YiBlbXB0eUR5bmFtaWNBcnJheQoJZHVwCglsZW4KCWludCA4CgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZW1wdHlEeW5hbWljQXJyYXkoKTogdWludDY0W10KZW1wdHlEeW5hbWljQXJyYXk6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6ODc3CgkvLyByZXR1cm4gW107CglieXRlIDB4CglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgImVtcHR5RHluYW1pY0FycmF5KCl1aW50NjRbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9lbXB0eUR5bmFtaWNBcnJheQoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBlbXB0eUR5bmFtaWNBcnJheSgpdWludDY0W10KKmFiaV9yb3V0ZV9lbXB0eUR5bmFtaWNBcnJheToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBlbXB0eUR5bmFtaWNBcnJheSgpdWludDY0W10KCWNhbGxzdWIgZW1wdHlEeW5hbWljQXJyYXkKCWR1cAoJbGVuCglpbnQgOAoJLwoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGVtcHR5RHluYW1pY0FycmF5KCk6IHVpbnQ2NFtdCmVtcHR5RHluYW1pY0FycmF5OgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjg3NwoJLy8gcmV0dXJuIFtdOwoJYnl0ZSAweAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiZW1wdHlEeW5hbWljQXJyYXkoKXVpbnQ2NFtdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9lbXB0eUR5bmFtaWNBcnJheQoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestEmptyStaticArray.approval.teal b/tests/contracts/artifacts/ABITestEmptyStaticArray.approval.teal index 6a9e35efa..dcab5f472 100644 --- a/tests/contracts/artifacts/ABITestEmptyStaticArray.approval.teal +++ b/tests/contracts/artifacts/ABITestEmptyStaticArray.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // emptyStaticArray()uint16[3] -abi_route_emptyStaticArray: +*abi_route_emptyStaticArray: // The ABI return prefix byte 0x151f7c75 @@ -53,18 +53,18 @@ emptyStaticArray: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "emptyStaticArray()uint16[3]" txna ApplicationArgs 0 - match abi_route_emptyStaticArray + match *abi_route_emptyStaticArray err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestEmptyStaticArray.arc32.json b/tests/contracts/artifacts/ABITestEmptyStaticArray.arc32.json index e1f9fb7ad..0f3d7f728 100644 --- a/tests/contracts/artifacts/ABITestEmptyStaticArray.arc32.json +++ b/tests/contracts/artifacts/ABITestEmptyStaticArray.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBlbXB0eVN0YXRpY0FycmF5KCl1aW50MTZbM10KYWJpX3JvdXRlX2VtcHR5U3RhdGljQXJyYXk6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgZW1wdHlTdGF0aWNBcnJheSgpdWludDE2WzNdCgljYWxsc3ViIGVtcHR5U3RhdGljQXJyYXkKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBlbXB0eVN0YXRpY0FycmF5KCk6IFN0YXRpY0FycmF5PHVpbnQxNiwgMz4KZW1wdHlTdGF0aWNBcnJheToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjg1MQoJLy8gYTogU3RhdGljQXJyYXk8dWludDE2LCAzPiA9IFtdCglieXRlIDB4MDAwMDAwMDAwMDAwCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8dWludDE2LCAzPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4NTMKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDE2LCAzPgoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJlbXB0eVN0YXRpY0FycmF5KCl1aW50MTZbM10iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfZW1wdHlTdGF0aWNBcnJheQoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBlbXB0eVN0YXRpY0FycmF5KCl1aW50MTZbM10KKmFiaV9yb3V0ZV9lbXB0eVN0YXRpY0FycmF5OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGVtcHR5U3RhdGljQXJyYXkoKXVpbnQxNlszXQoJY2FsbHN1YiBlbXB0eVN0YXRpY0FycmF5Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZW1wdHlTdGF0aWNBcnJheSgpOiBTdGF0aWNBcnJheTx1aW50MTYsIDM+CmVtcHR5U3RhdGljQXJyYXk6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4NTEKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQxNiwgMz4gPSBbXQoJYnl0ZSAweDAwMDAwMDAwMDAwMAoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQxNiwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6ODUzCgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQxNiwgMz4KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImVtcHR5U3RhdGljQXJyYXkoKXVpbnQxNlszXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfZW1wdHlTdGF0aWNBcnJheQoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestExtractUint.approval.teal b/tests/contracts/artifacts/ABITestExtractUint.approval.teal index d6f21e8b5..8873b8b08 100644 --- a/tests/contracts/artifacts/ABITestExtractUint.approval.teal +++ b/tests/contracts/artifacts/ABITestExtractUint.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // extractUint(uint64)uint8 -abi_route_extractUint: +*abi_route_extractUint: // The ABI return prefix byte 0x151f7c75 @@ -64,18 +64,18 @@ extractUint: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "extractUint(uint64)uint8" txna ApplicationArgs 0 - match abi_route_extractUint + match *abi_route_extractUint err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestExtractUint.arc32.json b/tests/contracts/artifacts/ABITestExtractUint.arc32.json index 378ba1872..695c50560 100644 --- a/tests/contracts/artifacts/ABITestExtractUint.arc32.json +++ b/tests/contracts/artifacts/ABITestExtractUint.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBleHRyYWN0VWludCh1aW50NjQpdWludDgKYWJpX3JvdXRlX2V4dHJhY3RVaW50OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBhcmc6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZXh0cmFjdFVpbnQodWludDY0KXVpbnQ4CgljYWxsc3ViIGV4dHJhY3RVaW50CglpdG9iCglkdXAKCWJpdGxlbgoJaW50IDgKCTw9Cglhc3NlcnQKCWV4dHJhY3QgNyAxCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZXh0cmFjdFVpbnQoYXJnOiBudW1iZXIpOiB1aW50PDg+CmV4dHJhY3RVaW50OgoJcHJvdG8gMSAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTEyOAoJLy8geCA9IDx1aW50PDg+PmFyZwoJZnJhbWVfZGlnIC0xIC8vIGFyZzogbnVtYmVyCglmcmFtZV9idXJ5IDAgLy8geDogdW5zYWZlIHVpbnQ4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjExMjkKCS8vIHJldHVybiB4OwoJZnJhbWVfZGlnIDAgLy8geDogdW5zYWZlIHVpbnQ4CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgImV4dHJhY3RVaW50KHVpbnQ2NCl1aW50OCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9leHRyYWN0VWludAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBleHRyYWN0VWludCh1aW50NjQpdWludDgKKmFiaV9yb3V0ZV9leHRyYWN0VWludDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYXJnOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGV4dHJhY3RVaW50KHVpbnQ2NCl1aW50OAoJY2FsbHN1YiBleHRyYWN0VWludAoJaXRvYgoJZHVwCgliaXRsZW4KCWludCA4Cgk8PQoJYXNzZXJ0CglleHRyYWN0IDcgMQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGV4dHJhY3RVaW50KGFyZzogbnVtYmVyKTogdWludDw4PgpleHRyYWN0VWludDoKCXByb3RvIDEgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjExMjgKCS8vIHggPSA8dWludDw4Pj5hcmcKCWZyYW1lX2RpZyAtMSAvLyBhcmc6IG51bWJlcgoJZnJhbWVfYnVyeSAwIC8vIHg6IHVuc2FmZSB1aW50OAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTI5CgkvLyByZXR1cm4geDsKCWZyYW1lX2RpZyAwIC8vIHg6IHVuc2FmZSB1aW50OAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiZXh0cmFjdFVpbnQodWludDY0KXVpbnQ4IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9leHRyYWN0VWludAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestForEachReturn.approval.teal b/tests/contracts/artifacts/ABITestForEachReturn.approval.teal index 6cbf2d315..f60682799 100644 --- a/tests/contracts/artifacts/ABITestForEachReturn.approval.teal +++ b/tests/contracts/artifacts/ABITestForEachReturn.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // forEachReturn()uint64 -abi_route_forEachReturn: +*abi_route_forEachReturn: // The ABI return prefix byte 0x151f7c75 @@ -63,21 +63,21 @@ forEachReturn: int 0 frame_bury 4 // the offset we are extracting the next element from -forEach_0: - // if0_condition +*forEach_0: + // *if0_condition // tests/contracts/abi.algo.ts:1385 // sum > 2 frame_dig 1 // sum: uint64 int 2 > - bz if0_end + bz *if0_end - // if0_consequent + // *if0_consequent // tests/contracts/abi.algo.ts:1385 // return; - b forEach_0_end + b *forEach_0_end -if0_end: +*if0_end: // tests/contracts/abi.algo.ts:1386 // sum += v frame_dig 1 // sum: uint64 @@ -92,7 +92,7 @@ if0_end: dup int 24 // offset of last element < - bz forEach_0_end + bz *forEach_0_end frame_bury 4 // the offset we are extracting the next element from frame_dig 2 // copy of the array we are iterating over frame_dig 4 // the offset we are extracting the next element from @@ -100,9 +100,9 @@ if0_end: extract btoi frame_bury 3 // v: uint64 - b forEach_0 + b *forEach_0 -forEach_0_end: +*forEach_0_end: // tests/contracts/abi.algo.ts:1388 // return sum; frame_dig 1 // sum: uint64 @@ -114,18 +114,18 @@ forEach_0_end: popn 4 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "forEachReturn()uint64" txna ApplicationArgs 0 - match abi_route_forEachReturn + match *abi_route_forEachReturn err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestForEachReturn.arc32.json b/tests/contracts/artifacts/ABITestForEachReturn.arc32.json index ee4d2c04f..bde4c0676 100644 --- a/tests/contracts/artifacts/ABITestForEachReturn.arc32.json +++ b/tests/contracts/artifacts/ABITestForEachReturn.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBmb3JFYWNoUmV0dXJuKCl1aW50NjQKYWJpX3JvdXRlX2ZvckVhY2hSZXR1cm46CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgZm9yRWFjaFJldHVybigpdWludDY0CgljYWxsc3ViIGZvckVhY2hSZXR1cm4KCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBmb3JFYWNoUmV0dXJuKCk6IHVpbnQ2NApmb3JFYWNoUmV0dXJuOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gNAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzgxCgkvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+ID0gWzEsIDIsIDNdCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAzCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzgyCgkvLyBzdW0gPSAwCglpbnQgMAoJZnJhbWVfYnVyeSAxIC8vIHN1bTogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzODQKCS8vIGEuZm9yRWFjaAoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoJZHVwCglmcmFtZV9idXJ5IDIgLy8gY29weSBvZiB0aGUgYXJyYXkgd2UgYXJlIGl0ZXJhdGluZyBvdmVyCglleHRyYWN0IDAgOAoJYnRvaQoJZnJhbWVfYnVyeSAzIC8vIHY6IHVpbnQ2NAoJaW50IDAKCWZyYW1lX2J1cnkgNCAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoKZm9yRWFjaF8wOgoJLy8gaWYwX2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzODUKCS8vIHN1bSA+IDIKCWZyYW1lX2RpZyAxIC8vIHN1bTogdWludDY0CglpbnQgMgoJPgoJYnogaWYwX2VuZAoKCS8vIGlmMF9jb25zZXF1ZW50CgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTM4NQoJLy8gcmV0dXJuOwoJYiBmb3JFYWNoXzBfZW5kCgppZjBfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzODYKCS8vIHN1bSArPSB2CglmcmFtZV9kaWcgMSAvLyBzdW06IHVpbnQ2NAoJZnJhbWVfZGlnIDMgLy8gdjogdWludDY0CgkrCglmcmFtZV9idXJ5IDEgLy8gc3VtOiB1aW50NjQKCgkvLyBpbmNyZW1lbnQgb2Zmc2V0IGFuZCBsb29wIGlmIG5vdCBvdXQgb2YgYm91bmRzCglmcmFtZV9kaWcgNCAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJaW50IDgKCSsKCWR1cAoJaW50IDI0IC8vIG9mZnNldCBvZiBsYXN0IGVsZW1lbnQKCTwKCWJ6IGZvckVhY2hfMF9lbmQKCWZyYW1lX2J1cnkgNCAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJZnJhbWVfZGlnIDIgLy8gY29weSBvZiB0aGUgYXJyYXkgd2UgYXJlIGl0ZXJhdGluZyBvdmVyCglmcmFtZV9kaWcgNCAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJaW50IDgKCWV4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMyAvLyB2OiB1aW50NjQKCWIgZm9yRWFjaF8wCgpmb3JFYWNoXzBfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzODgKCS8vIHJldHVybiBzdW07CglmcmFtZV9kaWcgMSAvLyBzdW06IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDQKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAiZm9yRWFjaFJldHVybigpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2ZvckVhY2hSZXR1cm4KCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBmb3JFYWNoUmV0dXJuKCl1aW50NjQKKmFiaV9yb3V0ZV9mb3JFYWNoUmV0dXJuOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGZvckVhY2hSZXR1cm4oKXVpbnQ2NAoJY2FsbHN1YiBmb3JFYWNoUmV0dXJuCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZm9yRWFjaFJldHVybigpOiB1aW50NjQKZm9yRWFjaFJldHVybjoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTM4MQoJLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPiA9IFsxLCAyLCAzXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMwoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTM4MgoJLy8gc3VtID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMSAvLyBzdW06IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzg0CgkvLyBhLmZvckVhY2gKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWR1cAoJZnJhbWVfYnVyeSAyIC8vIGNvcHkgb2YgdGhlIGFycmF5IHdlIGFyZSBpdGVyYXRpbmcgb3ZlcgoJZXh0cmFjdCAwIDgKCWJ0b2kKCWZyYW1lX2J1cnkgMyAvLyB2OiB1aW50NjQKCWludCAwCglmcmFtZV9idXJ5IDQgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCipmb3JFYWNoXzA6CgkvLyAqaWYwX2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzODUKCS8vIHN1bSA+IDIKCWZyYW1lX2RpZyAxIC8vIHN1bTogdWludDY0CglpbnQgMgoJPgoJYnogKmlmMF9lbmQKCgkvLyAqaWYwX2NvbnNlcXVlbnQKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzg1CgkvLyByZXR1cm47CgliICpmb3JFYWNoXzBfZW5kCgoqaWYwX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzg2CgkvLyBzdW0gKz0gdgoJZnJhbWVfZGlnIDEgLy8gc3VtOiB1aW50NjQKCWZyYW1lX2RpZyAzIC8vIHY6IHVpbnQ2NAoJKwoJZnJhbWVfYnVyeSAxIC8vIHN1bTogdWludDY0CgoJLy8gaW5jcmVtZW50IG9mZnNldCBhbmQgbG9vcCBpZiBub3Qgb3V0IG9mIGJvdW5kcwoJZnJhbWVfZGlnIDQgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCWludCA4CgkrCglkdXAKCWludCAyNCAvLyBvZmZzZXQgb2YgbGFzdCBlbGVtZW50Cgk8CglieiAqZm9yRWFjaF8wX2VuZAoJZnJhbWVfYnVyeSA0IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglmcmFtZV9kaWcgMiAvLyBjb3B5IG9mIHRoZSBhcnJheSB3ZSBhcmUgaXRlcmF0aW5nIG92ZXIKCWZyYW1lX2RpZyA0IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglpbnQgOAoJZXh0cmFjdAoJYnRvaQoJZnJhbWVfYnVyeSAzIC8vIHY6IHVpbnQ2NAoJYiAqZm9yRWFjaF8wCgoqZm9yRWFjaF8wX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzg4CgkvLyByZXR1cm4gc3VtOwoJZnJhbWVfZGlnIDEgLy8gc3VtOiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiA0CglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJmb3JFYWNoUmV0dXJuKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2ZvckVhY2hSZXR1cm4KCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestGlobalMethodInChain.approval.teal b/tests/contracts/artifacts/ABITestGlobalMethodInChain.approval.teal index 4a6d6936a..74e3c9c28 100644 --- a/tests/contracts/artifacts/ABITestGlobalMethodInChain.approval.teal +++ b/tests/contracts/artifacts/ABITestGlobalMethodInChain.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // globalMethodInChain()uint8 -abi_route_globalMethodInChain: +*abi_route_globalMethodInChain: // The ABI return prefix byte 0x151f7c75 @@ -49,18 +49,18 @@ globalMethodInChain: int 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "globalMethodInChain()uint8" txna ApplicationArgs 0 - match abi_route_globalMethodInChain + match *abi_route_globalMethodInChain err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestGlobalMethodInChain.arc32.json b/tests/contracts/artifacts/ABITestGlobalMethodInChain.arc32.json index 496e487cd..073930112 100644 --- a/tests/contracts/artifacts/ABITestGlobalMethodInChain.arc32.json +++ b/tests/contracts/artifacts/ABITestGlobalMethodInChain.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBnbG9iYWxNZXRob2RJbkNoYWluKCl1aW50OAphYmlfcm91dGVfZ2xvYmFsTWV0aG9kSW5DaGFpbjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBnbG9iYWxNZXRob2RJbkNoYWluKCl1aW50OAoJY2FsbHN1YiBnbG9iYWxNZXRob2RJbkNoYWluCglpdG9iCglkdXAKCWJpdGxlbgoJaW50IDgKCTw9Cglhc3NlcnQKCWV4dHJhY3QgNyAxCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZ2xvYmFsTWV0aG9kSW5DaGFpbigpOiB1aW50PDg+Cmdsb2JhbE1ldGhvZEluQ2hhaW46Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTA3MAoJLy8gcmV0dXJuIGNhc3RCeXRlczxUMT4oaGV4KCcweDAwJykpLmJhcjsKCWludCAwCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgImdsb2JhbE1ldGhvZEluQ2hhaW4oKXVpbnQ4IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2dsb2JhbE1ldGhvZEluQ2hhaW4KCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBnbG9iYWxNZXRob2RJbkNoYWluKCl1aW50OAoqYWJpX3JvdXRlX2dsb2JhbE1ldGhvZEluQ2hhaW46CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgZ2xvYmFsTWV0aG9kSW5DaGFpbigpdWludDgKCWNhbGxzdWIgZ2xvYmFsTWV0aG9kSW5DaGFpbgoJaXRvYgoJZHVwCgliaXRsZW4KCWludCA4Cgk8PQoJYXNzZXJ0CglleHRyYWN0IDcgMQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGdsb2JhbE1ldGhvZEluQ2hhaW4oKTogdWludDw4PgpnbG9iYWxNZXRob2RJbkNoYWluOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwNzAKCS8vIHJldHVybiBjYXN0Qnl0ZXM8VDE+KGhleCgnMHgwMCcpKS5iYXI7CglpbnQgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiZ2xvYmFsTWV0aG9kSW5DaGFpbigpdWludDgiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2dsb2JhbE1ldGhvZEluQ2hhaW4KCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestLargeNestedStaticForEachInBox.approval.teal b/tests/contracts/artifacts/ABITestLargeNestedStaticForEachInBox.approval.teal index bcf36287d..b2e7d889e 100644 --- a/tests/contracts/artifacts/ABITestLargeNestedStaticForEachInBox.approval.teal +++ b/tests/contracts/artifacts/ABITestLargeNestedStaticForEachInBox.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // largeNestedStaticForEachInBox()uint64 -abi_route_largeNestedStaticForEachInBox: +*abi_route_largeNestedStaticForEachInBox: // The ABI return prefix byte 0x151f7c75 @@ -86,7 +86,7 @@ largeNestedStaticForEachInBox: box_extract frame_bury 4 // v: uint512 -forEach_0: +*forEach_0: // tests/contracts/abi.algo.ts:1372 // sum += 1 frame_dig 0 // sum: uint64 @@ -101,16 +101,16 @@ forEach_0: dup frame_dig 3 // offset of last element < - bz forEach_0_end + bz *forEach_0_end frame_bury 2 // the offset we are extracting the next element from byte 0x624b6579 // "bKey" // key for the box that contains the array we are iterating over frame_dig 2 // the offset we are extracting the next element from int 64 box_extract frame_bury 4 // v: uint512 - b forEach_0 + b *forEach_0 -forEach_0_end: +*forEach_0_end: // tests/contracts/abi.algo.ts:1375 // return sum; frame_dig 0 // sum: uint64 @@ -122,18 +122,18 @@ forEach_0_end: popn 4 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "largeNestedStaticForEachInBox()uint64" txna ApplicationArgs 0 - match abi_route_largeNestedStaticForEachInBox + match *abi_route_largeNestedStaticForEachInBox err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestLargeNestedStaticForEachInBox.arc32.json b/tests/contracts/artifacts/ABITestLargeNestedStaticForEachInBox.arc32.json index 607aab4c2..56538580a 100644 --- a/tests/contracts/artifacts/ABITestLargeNestedStaticForEachInBox.arc32.json +++ b/tests/contracts/artifacts/ABITestLargeNestedStaticForEachInBox.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBsYXJnZU5lc3RlZFN0YXRpY0ZvckVhY2hJbkJveCgpdWludDY0CmFiaV9yb3V0ZV9sYXJnZU5lc3RlZFN0YXRpY0ZvckVhY2hJbkJveDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBsYXJnZU5lc3RlZFN0YXRpY0ZvckVhY2hJbkJveCgpdWludDY0CgljYWxsc3ViIGxhcmdlTmVzdGVkU3RhdGljRm9yRWFjaEluQm94CglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gbGFyZ2VOZXN0ZWRTdGF0aWNGb3JFYWNoSW5Cb3goKTogdWludDY0CmxhcmdlTmVzdGVkU3RhdGljRm9yRWFjaEluQm94OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gNAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzY3CgkvLyBpbmNyZWFzZU9wY29kZUJ1ZGdldCgpCglpdHhuX2JlZ2luCglpbnQgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50IDAKCWl0eG5fZmllbGQgRmVlCglieXRlIGI2NCBDb0VCIC8vICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCWludCBEZWxldGVBcHBsaWNhdGlvbgoJaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KCWl0eG5fc3VibWl0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzNjgKCS8vIHRoaXMuYktleS5jcmVhdGUoKQoJYnl0ZSAweDYyNGI2NTc5IC8vICJiS2V5IgoJaW50IDQxOTIKCWJveF9jcmVhdGUKCXBvcAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzY5CgkvLyBzdW0gPSAwCglpbnQgMAoJZnJhbWVfYnVyeSAwIC8vIHN1bTogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzNzEKCS8vIHRoaXMuYktleS52YWx1ZVsxXS5mb3JFYWNoCglpbnQgMzIgLy8gaGVhZE9mZnNldAoJaW50IDQxNjAKCWJ5dGUgMHg2MjRiNjU3OSAvLyAiYktleSIKCWZyYW1lX2J1cnkgMSAvLyBrZXkgZm9yIHRoZSBib3ggdGhhdCBjb250YWlucyB0aGUgYXJyYXkgd2UgYXJlIGl0ZXJhdGluZyBvdmVyCglzd2FwCglkdXAKCWZyYW1lX2J1cnkgMiAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJKwoJZnJhbWVfYnVyeSAzIC8vIHRoZSBvZmZzZXQgb2YgdGhlIGxhc3QgZWxlbWVudAoJYnl0ZSAweDYyNGI2NTc5IC8vICJiS2V5IiAvLyBrZXkgZm9yIHRoZSBib3ggdGhhdCBjb250YWlucyB0aGUgYXJyYXkgd2UgYXJlIGl0ZXJhdGluZyBvdmVyCglmcmFtZV9kaWcgMiAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJaW50IDY0Cglib3hfZXh0cmFjdAoJZnJhbWVfYnVyeSA0IC8vIHY6IHVpbnQ1MTIKCmZvckVhY2hfMDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzcyCgkvLyBzdW0gKz0gMQoJZnJhbWVfZGlnIDAgLy8gc3VtOiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDAgLy8gc3VtOiB1aW50NjQKCgkvLyBpbmNyZW1lbnQgb2Zmc2V0IGFuZCBsb29wIGlmIG5vdCBvdXQgb2YgYm91bmRzCglmcmFtZV9kaWcgMiAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJaW50IDY0CgkrCglkdXAKCWZyYW1lX2RpZyAzIC8vIG9mZnNldCBvZiBsYXN0IGVsZW1lbnQKCTwKCWJ6IGZvckVhY2hfMF9lbmQKCWZyYW1lX2J1cnkgMiAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJYnl0ZSAweDYyNGI2NTc5IC8vICJiS2V5IiAvLyBrZXkgZm9yIHRoZSBib3ggdGhhdCBjb250YWlucyB0aGUgYXJyYXkgd2UgYXJlIGl0ZXJhdGluZyBvdmVyCglmcmFtZV9kaWcgMiAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJaW50IDY0Cglib3hfZXh0cmFjdAoJZnJhbWVfYnVyeSA0IC8vIHY6IHVpbnQ1MTIKCWIgZm9yRWFjaF8wCgpmb3JFYWNoXzBfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzNzUKCS8vIHJldHVybiBzdW07CglmcmFtZV9kaWcgMCAvLyBzdW06IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDQKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAibGFyZ2VOZXN0ZWRTdGF0aWNGb3JFYWNoSW5Cb3goKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9sYXJnZU5lc3RlZFN0YXRpY0ZvckVhY2hJbkJveAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBsYXJnZU5lc3RlZFN0YXRpY0ZvckVhY2hJbkJveCgpdWludDY0CiphYmlfcm91dGVfbGFyZ2VOZXN0ZWRTdGF0aWNGb3JFYWNoSW5Cb3g6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbGFyZ2VOZXN0ZWRTdGF0aWNGb3JFYWNoSW5Cb3goKXVpbnQ2NAoJY2FsbHN1YiBsYXJnZU5lc3RlZFN0YXRpY0ZvckVhY2hJbkJveAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGxhcmdlTmVzdGVkU3RhdGljRm9yRWFjaEluQm94KCk6IHVpbnQ2NApsYXJnZU5lc3RlZFN0YXRpY0ZvckVhY2hJbkJveDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTM2NwoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWludCAwCglpdHhuX2ZpZWxkIEZlZQoJYnl0ZSBiNjQgQ29FQiAvLyAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglpbnQgRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzY4CgkvLyB0aGlzLmJLZXkuY3JlYXRlKCkKCWJ5dGUgMHg2MjRiNjU3OSAvLyAiYktleSIKCWludCA0MTkyCglib3hfY3JlYXRlCglwb3AKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTM2OQoJLy8gc3VtID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMCAvLyBzdW06IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzcxCgkvLyB0aGlzLmJLZXkudmFsdWVbMV0uZm9yRWFjaAoJaW50IDMyIC8vIGhlYWRPZmZzZXQKCWludCA0MTYwCglieXRlIDB4NjI0YjY1NzkgLy8gImJLZXkiCglmcmFtZV9idXJ5IDEgLy8ga2V5IGZvciB0aGUgYm94IHRoYXQgY29udGFpbnMgdGhlIGFycmF5IHdlIGFyZSBpdGVyYXRpbmcgb3ZlcgoJc3dhcAoJZHVwCglmcmFtZV9idXJ5IDIgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCSsKCWZyYW1lX2J1cnkgMyAvLyB0aGUgb2Zmc2V0IG9mIHRoZSBsYXN0IGVsZW1lbnQKCWJ5dGUgMHg2MjRiNjU3OSAvLyAiYktleSIgLy8ga2V5IGZvciB0aGUgYm94IHRoYXQgY29udGFpbnMgdGhlIGFycmF5IHdlIGFyZSBpdGVyYXRpbmcgb3ZlcgoJZnJhbWVfZGlnIDIgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCWludCA2NAoJYm94X2V4dHJhY3QKCWZyYW1lX2J1cnkgNCAvLyB2OiB1aW50NTEyCgoqZm9yRWFjaF8wOgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzNzIKCS8vIHN1bSArPSAxCglmcmFtZV9kaWcgMCAvLyBzdW06IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMCAvLyBzdW06IHVpbnQ2NAoKCS8vIGluY3JlbWVudCBvZmZzZXQgYW5kIGxvb3AgaWYgbm90IG91dCBvZiBib3VuZHMKCWZyYW1lX2RpZyAyIC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglpbnQgNjQKCSsKCWR1cAoJZnJhbWVfZGlnIDMgLy8gb2Zmc2V0IG9mIGxhc3QgZWxlbWVudAoJPAoJYnogKmZvckVhY2hfMF9lbmQKCWZyYW1lX2J1cnkgMiAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJYnl0ZSAweDYyNGI2NTc5IC8vICJiS2V5IiAvLyBrZXkgZm9yIHRoZSBib3ggdGhhdCBjb250YWlucyB0aGUgYXJyYXkgd2UgYXJlIGl0ZXJhdGluZyBvdmVyCglmcmFtZV9kaWcgMiAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJaW50IDY0Cglib3hfZXh0cmFjdAoJZnJhbWVfYnVyeSA0IC8vIHY6IHVpbnQ1MTIKCWIgKmZvckVhY2hfMAoKKmZvckVhY2hfMF9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTM3NQoJLy8gcmV0dXJuIHN1bTsKCWZyYW1lX2RpZyAwIC8vIHN1bTogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gNAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAibGFyZ2VOZXN0ZWRTdGF0aWNGb3JFYWNoSW5Cb3goKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfbGFyZ2VOZXN0ZWRTdGF0aWNGb3JFYWNoSW5Cb3gKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestMaxUfixed.approval.teal b/tests/contracts/artifacts/ABITestMaxUfixed.approval.teal index d66eec5fc..d30b3bac4 100644 --- a/tests/contracts/artifacts/ABITestMaxUfixed.approval.teal +++ b/tests/contracts/artifacts/ABITestMaxUfixed.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // maxUfixed()ufixed64x2 -abi_route_maxUfixed: +*abi_route_maxUfixed: // The ABI return prefix byte 0x151f7c75 @@ -55,18 +55,18 @@ maxUfixed: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "maxUfixed()ufixed64x2" txna ApplicationArgs 0 - match abi_route_maxUfixed + match *abi_route_maxUfixed err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestMaxUfixed.arc32.json b/tests/contracts/artifacts/ABITestMaxUfixed.arc32.json index 9601a518b..38439a512 100644 --- a/tests/contracts/artifacts/ABITestMaxUfixed.arc32.json +++ b/tests/contracts/artifacts/ABITestMaxUfixed.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBtYXhVZml4ZWQoKXVmaXhlZDY0eDIKYWJpX3JvdXRlX21heFVmaXhlZDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBtYXhVZml4ZWQoKXVmaXhlZDY0eDIKCWNhbGxzdWIgbWF4VWZpeGVkCglpdG9iCglleHRyYWN0IDAgOAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIG1heFVmaXhlZCgpOiB1Zml4ZWQ8NjQsIDI+Cm1heFVmaXhlZDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjExNTEKCS8vIHU2NG1heDogdWZpeGVkPDY0LCAyPiA9IDE4NDQ2NzQ0MDczNzA5NTUxNi4xNQoJaW50IDE4NDQ2NzQ0MDczNzA5NTUxNjE1CglmcmFtZV9idXJ5IDAgLy8gdTY0bWF4OiB1Zml4ZWQ8NjQsIDI+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjExNTMKCS8vIHJldHVybiB1NjRtYXg7CglmcmFtZV9kaWcgMCAvLyB1NjRtYXg6IHVmaXhlZDw2NCwgMj4KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAibWF4VWZpeGVkKCl1Zml4ZWQ2NHgyIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX21heFVmaXhlZAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBtYXhVZml4ZWQoKXVmaXhlZDY0eDIKKmFiaV9yb3V0ZV9tYXhVZml4ZWQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbWF4VWZpeGVkKCl1Zml4ZWQ2NHgyCgljYWxsc3ViIG1heFVmaXhlZAoJaXRvYgoJZXh0cmFjdCAwIDgKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBtYXhVZml4ZWQoKTogdWZpeGVkPDY0LCAyPgptYXhVZml4ZWQ6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTUxCgkvLyB1NjRtYXg6IHVmaXhlZDw2NCwgMj4gPSAxODQ0Njc0NDA3MzcwOTU1MTYuMTUKCWludCAxODQ0Njc0NDA3MzcwOTU1MTYxNQoJZnJhbWVfYnVyeSAwIC8vIHU2NG1heDogdWZpeGVkPDY0LCAyPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTUzCgkvLyByZXR1cm4gdTY0bWF4OwoJZnJhbWVfZGlnIDAgLy8gdTY0bWF4OiB1Zml4ZWQ8NjQsIDI+CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJtYXhVZml4ZWQoKXVmaXhlZDY0eDIiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX21heFVmaXhlZAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestMixedStaticArrayElements.approval.teal b/tests/contracts/artifacts/ABITestMixedStaticArrayElements.approval.teal index a0168403e..614b47911 100644 --- a/tests/contracts/artifacts/ABITestMixedStaticArrayElements.approval.teal +++ b/tests/contracts/artifacts/ABITestMixedStaticArrayElements.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // mixedStaticArrayElements()uint64 -abi_route_mixedStaticArrayElements: +*abi_route_mixedStaticArrayElements: // The ABI return prefix byte 0x151f7c75 @@ -96,18 +96,18 @@ mixedStaticArrayElements: popn 3 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "mixedStaticArrayElements()uint64" txna ApplicationArgs 0 - match abi_route_mixedStaticArrayElements + match *abi_route_mixedStaticArrayElements err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestMixedStaticArrayElements.arc32.json b/tests/contracts/artifacts/ABITestMixedStaticArrayElements.arc32.json index 2d720da40..96b296734 100644 --- a/tests/contracts/artifacts/ABITestMixedStaticArrayElements.arc32.json +++ b/tests/contracts/artifacts/ABITestMixedStaticArrayElements.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBtaXhlZFN0YXRpY0FycmF5RWxlbWVudHMoKXVpbnQ2NAphYmlfcm91dGVfbWl4ZWRTdGF0aWNBcnJheUVsZW1lbnRzOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG1peGVkU3RhdGljQXJyYXlFbGVtZW50cygpdWludDY0CgljYWxsc3ViIG1peGVkU3RhdGljQXJyYXlFbGVtZW50cwoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIG1peGVkU3RhdGljQXJyYXlFbGVtZW50cygpOiB1aW50NjQKbWl4ZWRTdGF0aWNBcnJheUVsZW1lbnRzOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gMwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0NAoJLy8gbjEgPSBidG9pKGl0b2IoMykpCglpbnQgMwoJZnJhbWVfYnVyeSAwIC8vIG4xOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDUKCS8vIG4yID0gYnRvaShpdG9iKDQpKQoJaW50IDQKCWZyYW1lX2J1cnkgMSAvLyBuMjogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ2CgkvLyBuMyA9IGJ0b2koaXRvYig1KSkKCWludCA1CglmcmFtZV9idXJ5IDIgLy8gbjM6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0NwoJLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCA5PiA9IFswLCAxLCAyLCBuMSwgbjIsIG4zLCA2LCA3LCA4XQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMDAwMDAwMDAwMDAwMDAwMgoJZnJhbWVfZGlnIDAgLy8gbjE6IHVpbnQ2NAoJaXRvYgoJY29uY2F0CglieXRlIDB4MDAwMDAwMDAwMDAwMDAwNAoJY29uY2F0CglieXRlIDB4MDAwMDAwMDAwMDAwMDAwNQoJY29uY2F0CglieXRlIDB4MDAwMDAwMDAwMDAwMDAwNgoJY29uY2F0CglieXRlIDB4MDAwMDAwMDAwMDAwMDAwNwoJY29uY2F0CglieXRlIDB4MDAwMDAwMDAwMDAwMDAwOAoJY29uY2F0CglmcmFtZV9idXJ5IDMgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCA5PgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0OQoJLy8gcmV0dXJuIGFbMV0gKyBhWzRdICsgYVs3XTsKCWZyYW1lX2RpZyAzIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgOT4KCWV4dHJhY3QgOCA4CglidG9pCglmcmFtZV9kaWcgMyAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDk+CglleHRyYWN0IDMyIDgKCWJ0b2kKCSsKCWZyYW1lX2RpZyAzIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgOT4KCWV4dHJhY3QgNTYgOAoJYnRvaQoJKwoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDMKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAibWl4ZWRTdGF0aWNBcnJheUVsZW1lbnRzKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfbWl4ZWRTdGF0aWNBcnJheUVsZW1lbnRzCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBtaXhlZFN0YXRpY0FycmF5RWxlbWVudHMoKXVpbnQ2NAoqYWJpX3JvdXRlX21peGVkU3RhdGljQXJyYXlFbGVtZW50czoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBtaXhlZFN0YXRpY0FycmF5RWxlbWVudHMoKXVpbnQ2NAoJY2FsbHN1YiBtaXhlZFN0YXRpY0FycmF5RWxlbWVudHMKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBtaXhlZFN0YXRpY0FycmF5RWxlbWVudHMoKTogdWludDY0Cm1peGVkU3RhdGljQXJyYXlFbGVtZW50czoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDMKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDQKCS8vIG4xID0gYnRvaShpdG9iKDMpKQoJaW50IDMKCWZyYW1lX2J1cnkgMCAvLyBuMTogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ1CgkvLyBuMiA9IGJ0b2koaXRvYig0KSkKCWludCA0CglmcmFtZV9idXJ5IDEgLy8gbjI6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0NgoJLy8gbjMgPSBidG9pKGl0b2IoNSkpCglpbnQgNQoJZnJhbWVfYnVyeSAyIC8vIG4zOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDcKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgOT4gPSBbMCwgMSwgMiwgbjEsIG4yLCBuMywgNiwgNywgOF0KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDIKCWZyYW1lX2RpZyAwIC8vIG4xOiB1aW50NjQKCWl0b2IKCWNvbmNhdAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDQKCWNvbmNhdAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDUKCWNvbmNhdAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDYKCWNvbmNhdAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDcKCWNvbmNhdAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDgKCWNvbmNhdAoJZnJhbWVfYnVyeSAzIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgOT4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDkKCS8vIHJldHVybiBhWzFdICsgYVs0XSArIGFbN107CglmcmFtZV9kaWcgMyAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDk+CglleHRyYWN0IDggOAoJYnRvaQoJZnJhbWVfZGlnIDMgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCA5PgoJZXh0cmFjdCAzMiA4CglidG9pCgkrCglmcmFtZV9kaWcgMyAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDk+CglleHRyYWN0IDU2IDgKCWJ0b2kKCSsKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAzCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJtaXhlZFN0YXRpY0FycmF5RWxlbWVudHMoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfbWl4ZWRTdGF0aWNBcnJheUVsZW1lbnRzCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestMultiBytesTuple.approval.teal b/tests/contracts/artifacts/ABITestMultiBytesTuple.approval.teal index 56abe6526..68e8a10ba 100644 --- a/tests/contracts/artifacts/ABITestMultiBytesTuple.approval.teal +++ b/tests/contracts/artifacts/ABITestMultiBytesTuple.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // multiBytesTuple()(byte[],byte[]) -abi_route_multiBytesTuple: +*abi_route_multiBytesTuple: // The ABI return prefix byte 0x151f7c75 @@ -43,30 +43,30 @@ multiBytesTuple: byte 0x // initial tail byte 0x0004 // initial head offset byte 0x000101 - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element byte 0x000102 - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element pop // pop head offset concat // concat head and tail retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "multiBytesTuple()(byte[],byte[])" txna ApplicationArgs 0 - match abi_route_multiBytesTuple + match *abi_route_multiBytesTuple err -process_dynamic_tuple_element: +*process_dynamic_tuple_element: proto 4 3 frame_dig -4 // tuple head frame_dig -2 // head offset diff --git a/tests/contracts/artifacts/ABITestMultiBytesTuple.arc32.json b/tests/contracts/artifacts/ABITestMultiBytesTuple.arc32.json index 7a41a4c0f..72c81a169 100644 --- a/tests/contracts/artifacts/ABITestMultiBytesTuple.arc32.json +++ b/tests/contracts/artifacts/ABITestMultiBytesTuple.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBtdWx0aUJ5dGVzVHVwbGUoKShieXRlW10sYnl0ZVtdKQphYmlfcm91dGVfbXVsdGlCeXRlc1R1cGxlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG11bHRpQnl0ZXNUdXBsZSgpKGJ5dGVbXSxieXRlW10pCgljYWxsc3ViIG11bHRpQnl0ZXNUdXBsZQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIG11bHRpQnl0ZXNUdXBsZSgpOiBbYnl0ZXMsIGJ5dGVzXQptdWx0aUJ5dGVzVHVwbGU6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTIyOAoJLy8gcmV0dXJuIFtoZXgoJzB4MDEnKSwgaGV4KCcweDAyJyldOwoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglieXRlIDB4MDAwNCAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0CglieXRlIDB4MDAwMTAxCgljYWxsc3ViIHByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMTAyCgljYWxsc3ViIHByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAibXVsdGlCeXRlc1R1cGxlKCkoYnl0ZVtdLGJ5dGVbXSkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfbXVsdGlCeXRlc1R1cGxlCgllcnIKCnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0Cgljb25jYXQKCWZyYW1lX2J1cnkgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWR1cAoJbGVuCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWJ0b2kKCSsKCWl0b2IKCWV4dHJhY3QgNiAyCglmcmFtZV9idXJ5IC0yIC8vIGhlYWQgb2Zmc2V0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJc3dhcAoJY29uY2F0CglmcmFtZV9idXJ5IC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBtdWx0aUJ5dGVzVHVwbGUoKShieXRlW10sYnl0ZVtdKQoqYWJpX3JvdXRlX211bHRpQnl0ZXNUdXBsZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBtdWx0aUJ5dGVzVHVwbGUoKShieXRlW10sYnl0ZVtdKQoJY2FsbHN1YiBtdWx0aUJ5dGVzVHVwbGUKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBtdWx0aUJ5dGVzVHVwbGUoKTogW2J5dGVzLCBieXRlc10KbXVsdGlCeXRlc1R1cGxlOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyMjgKCS8vIHJldHVybiBbaGV4KCcweDAxJyksIGhleCgnMHgwMicpXTsKCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJYnl0ZSAweDAwMDQgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJYnl0ZSAweDAwMDEwMQoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDAxMDIKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgIm11bHRpQnl0ZXNUdXBsZSgpKGJ5dGVbXSxieXRlW10pIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9tdWx0aUJ5dGVzVHVwbGUKCWVycgoKKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0Cgljb25jYXQKCWZyYW1lX2J1cnkgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWR1cAoJbGVuCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWJ0b2kKCSsKCWl0b2IKCWV4dHJhY3QgNiAyCglmcmFtZV9idXJ5IC0yIC8vIGhlYWQgb2Zmc2V0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJc3dhcAoJY29uY2F0CglmcmFtZV9idXJ5IC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestMultiNestedArrayRef.approval.teal b/tests/contracts/artifacts/ABITestMultiNestedArrayRef.approval.teal index 52258f9b6..a1884a74e 100644 --- a/tests/contracts/artifacts/ABITestMultiNestedArrayRef.approval.teal +++ b/tests/contracts/artifacts/ABITestMultiNestedArrayRef.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // multiNestedArrayRef()uint8[2][2][2] -abi_route_multiNestedArrayRef: +*abi_route_multiNestedArrayRef: // The ABI return prefix byte 0x151f7c75 @@ -73,18 +73,18 @@ multiNestedArrayRef: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "multiNestedArrayRef()uint8[2][2][2]" txna ApplicationArgs 0 - match abi_route_multiNestedArrayRef + match *abi_route_multiNestedArrayRef err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestMultiNestedArrayRef.arc32.json b/tests/contracts/artifacts/ABITestMultiNestedArrayRef.arc32.json index ffd6fe489..ac2264630 100644 --- a/tests/contracts/artifacts/ABITestMultiNestedArrayRef.arc32.json +++ b/tests/contracts/artifacts/ABITestMultiNestedArrayRef.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBtdWx0aU5lc3RlZEFycmF5UmVmKCl1aW50OFsyXVsyXVsyXQphYmlfcm91dGVfbXVsdGlOZXN0ZWRBcnJheVJlZjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBtdWx0aU5lc3RlZEFycmF5UmVmKCl1aW50OFsyXVsyXVsyXQoJY2FsbHN1YiBtdWx0aU5lc3RlZEFycmF5UmVmCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gbXVsdGlOZXN0ZWRBcnJheVJlZigpOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50PDg+LCAyPiwgMj4sIDI+Cm11bHRpTmVzdGVkQXJyYXlSZWY6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4MDIKCS8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ8OD4sIDI+LCAyPiwgMj4gPSBbCgkvLyAgICAgICBbCgkvLyAgICAgICAgIFsxLCAyXSwKCS8vICAgICAgICAgWzMsIDRdLAoJLy8gICAgICAgXSwKCS8vICAgICAgIFsKCS8vICAgICAgICAgWzUsIDZdLAoJLy8gICAgICAgICBbNywgOF0sCgkvLyAgICAgICBdLAoJLy8gICAgIF0KCWJ5dGUgMHgwMTAyMDMwNDA1MDYwNzA4CglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDw4PiwgMj4sIDI+LCAyPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4MTMKCS8vIGIgPSBhWzFdCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6ODE0CgkvLyBjID0gYlsxXQoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjgxNgoJLy8gY1sxXSA9IDkgYXMgdWludDw4PgoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDw4PiwgMj4sIDI+LCAyPgoJYnl0ZSAweDA5CglyZXBsYWNlMiA3CglmcmFtZV9idXJ5IDAgLy8gYzogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDw4PiwgMj4sIDI+LCAyPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4MTgKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDw4PiwgMj4sIDI+LCAyPgoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJtdWx0aU5lc3RlZEFycmF5UmVmKCl1aW50OFsyXVsyXVsyXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9tdWx0aU5lc3RlZEFycmF5UmVmCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBtdWx0aU5lc3RlZEFycmF5UmVmKCl1aW50OFsyXVsyXVsyXQoqYWJpX3JvdXRlX211bHRpTmVzdGVkQXJyYXlSZWY6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbXVsdGlOZXN0ZWRBcnJheVJlZigpdWludDhbMl1bMl1bMl0KCWNhbGxzdWIgbXVsdGlOZXN0ZWRBcnJheVJlZgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIG11bHRpTmVzdGVkQXJyYXlSZWYoKTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDw4PiwgMj4sIDI+LCAyPgptdWx0aU5lc3RlZEFycmF5UmVmOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6ODAyCgkvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50PDg+LCAyPiwgMj4sIDI+ID0gWwoJLy8gICAgICAgWwoJLy8gICAgICAgICBbMSwgMl0sCgkvLyAgICAgICAgIFszLCA0XSwKCS8vICAgICAgIF0sCgkvLyAgICAgICBbCgkvLyAgICAgICAgIFs1LCA2XSwKCS8vICAgICAgICAgWzcsIDhdLAoJLy8gICAgICAgXSwKCS8vICAgICBdCglieXRlIDB4MDEwMjAzMDQwNTA2MDcwOAoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ8OD4sIDI+LCAyPiwgMj4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6ODEzCgkvLyBiID0gYVsxXQoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjgxNAoJLy8gYyA9IGJbMV0KCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4MTYKCS8vIGNbMV0gPSA5IGFzIHVpbnQ8OD4KCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ8OD4sIDI+LCAyPiwgMj4KCWJ5dGUgMHgwOQoJcmVwbGFjZTIgNwoJZnJhbWVfYnVyeSAwIC8vIGM6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ8OD4sIDI+LCAyPiwgMj4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6ODE4CgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ8OD4sIDI+LCAyPiwgMj4KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgIm11bHRpTmVzdGVkQXJyYXlSZWYoKXVpbnQ4WzJdWzJdWzJdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9tdWx0aU5lc3RlZEFycmF5UmVmCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestNamedTuple.approval.teal b/tests/contracts/artifacts/ABITestNamedTuple.approval.teal index cdcfa861e..f921d9227 100644 --- a/tests/contracts/artifacts/ABITestNamedTuple.approval.teal +++ b/tests/contracts/artifacts/ABITestNamedTuple.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // namedTuple()string -abi_route_namedTuple: +*abi_route_namedTuple: // The ABI return prefix byte 0x151f7c75 @@ -58,9 +58,9 @@ namedTuple: byte 0x // initial tail byte 0x0004 // initial head offset byte 0x0001 - callsub process_static_tuple_element + callsub *process_static_tuple_element byte 0x000c48656c6c6f20576f726c6421 - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element pop // pop head offset concat // concat head and tail frame_bury 0 // a: { foo: uint16; bar: string; } @@ -89,23 +89,23 @@ namedTuple: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "namedTuple()string" txna ApplicationArgs 0 - match abi_route_namedTuple + match *abi_route_namedTuple err -process_static_tuple_element: +*process_static_tuple_element: proto 4 3 frame_dig -4 // tuple head frame_dig -1 // element @@ -114,7 +114,7 @@ process_static_tuple_element: frame_dig -2 // head offset retsub -process_dynamic_tuple_element: +*process_dynamic_tuple_element: proto 4 3 frame_dig -4 // tuple head frame_dig -2 // head offset diff --git a/tests/contracts/artifacts/ABITestNamedTuple.arc32.json b/tests/contracts/artifacts/ABITestNamedTuple.arc32.json index 1c00101f5..048d1089e 100644 --- a/tests/contracts/artifacts/ABITestNamedTuple.arc32.json +++ b/tests/contracts/artifacts/ABITestNamedTuple.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBuYW1lZFR1cGxlKClzdHJpbmcKYWJpX3JvdXRlX25hbWVkVHVwbGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbmFtZWRUdXBsZSgpc3RyaW5nCgljYWxsc3ViIG5hbWVkVHVwbGUKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gbmFtZWRUdXBsZSgpOiBzdHJpbmcKbmFtZWRUdXBsZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjYwMgoJLy8gYTogewoJLy8gICAgICAgZm9vOiB1aW50MTY7CgkvLyAgICAgICBiYXI6IHN0cmluZzsKCS8vICAgICB9ID0gewoJLy8gICAgICAgZm9vOiAxLAoJLy8gICAgICAgYmFyOiAnSGVsbG8gV29ybGQhJywKCS8vICAgICB9CglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDA0IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCWJ5dGUgMHgwMDAxCgljYWxsc3ViIHByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDBjNDg2NTZjNmM2ZjIwNTc2ZjcyNmM2NDIxCgljYWxsc3ViIHByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWZyYW1lX2J1cnkgMCAvLyBhOiB7ICAgICAgIGZvbzogdWludDE2OyAgICAgICBiYXI6IHN0cmluZzsgICAgIH0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NjEwCgkvLyByZXR1cm4gYS5iYXI7CglmcmFtZV9kaWcgMCAvLyBhOiB7ICAgICAgIGZvbzogdWludDE2OyAgICAgICBiYXI6IHN0cmluZzsgICAgIH0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMgoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMSAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJZXh0cmFjdDMKCWV4dHJhY3QgMiAwCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgIm5hbWVkVHVwbGUoKXN0cmluZyIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9uYW1lZFR1cGxlCgllcnIKCnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJY29uY2F0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0Cgljb25jYXQKCWZyYW1lX2J1cnkgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWR1cAoJbGVuCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWJ0b2kKCSsKCWl0b2IKCWV4dHJhY3QgNiAyCglmcmFtZV9idXJ5IC0yIC8vIGhlYWQgb2Zmc2V0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJc3dhcAoJY29uY2F0CglmcmFtZV9idXJ5IC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBuYW1lZFR1cGxlKClzdHJpbmcKKmFiaV9yb3V0ZV9uYW1lZFR1cGxlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG5hbWVkVHVwbGUoKXN0cmluZwoJY2FsbHN1YiBuYW1lZFR1cGxlCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIG5hbWVkVHVwbGUoKTogc3RyaW5nCm5hbWVkVHVwbGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo2MDIKCS8vIGE6IHsKCS8vICAgICAgIGZvbzogdWludDE2OwoJLy8gICAgICAgYmFyOiBzdHJpbmc7CgkvLyAgICAgfSA9IHsKCS8vICAgICAgIGZvbzogMSwKCS8vICAgICAgIGJhcjogJ0hlbGxvIFdvcmxkIScsCgkvLyAgICAgfQoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglieXRlIDB4MDAwNCAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0CglieXRlIDB4MDAwMQoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMGM0ODY1NmM2YzZmMjA1NzZmNzI2YzY0MjEKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWZyYW1lX2J1cnkgMCAvLyBhOiB7ICAgICAgIGZvbzogdWludDE2OyAgICAgICBiYXI6IHN0cmluZzsgICAgIH0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NjEwCgkvLyByZXR1cm4gYS5iYXI7CglmcmFtZV9kaWcgMCAvLyBhOiB7ICAgICAgIGZvbzogdWludDE2OyAgICAgICBiYXI6IHN0cmluZzsgICAgIH0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMgoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMSAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJZXh0cmFjdDMKCWV4dHJhY3QgMiAwCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJuYW1lZFR1cGxlKClzdHJpbmciCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX25hbWVkVHVwbGUKCWVycgoKKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJY29uY2F0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCipwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3Vi", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestNestedArrayLengthInObject.approval.teal b/tests/contracts/artifacts/ABITestNestedArrayLengthInObject.approval.teal index 0e19459d6..2a70ce4d2 100644 --- a/tests/contracts/artifacts/ABITestNestedArrayLengthInObject.approval.teal +++ b/tests/contracts/artifacts/ABITestNestedArrayLengthInObject.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // nestedArrayLengthInObject()uint64 -abi_route_nestedArrayLengthInObject: +*abi_route_nestedArrayLengthInObject: // The ABI return prefix byte 0x151f7c75 @@ -55,18 +55,18 @@ nestedArrayLengthInObject: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "nestedArrayLengthInObject()uint64" txna ApplicationArgs 0 - match abi_route_nestedArrayLengthInObject + match *abi_route_nestedArrayLengthInObject err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestNestedArrayLengthInObject.arc32.json b/tests/contracts/artifacts/ABITestNestedArrayLengthInObject.arc32.json index f223e2362..e0c2bb1d9 100644 --- a/tests/contracts/artifacts/ABITestNestedArrayLengthInObject.arc32.json +++ b/tests/contracts/artifacts/ABITestNestedArrayLengthInObject.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBuZXN0ZWRBcnJheUxlbmd0aEluT2JqZWN0KCl1aW50NjQKYWJpX3JvdXRlX25lc3RlZEFycmF5TGVuZ3RoSW5PYmplY3Q6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbmVzdGVkQXJyYXlMZW5ndGhJbk9iamVjdCgpdWludDY0CgljYWxsc3ViIG5lc3RlZEFycmF5TGVuZ3RoSW5PYmplY3QKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBuZXN0ZWRBcnJheUxlbmd0aEluT2JqZWN0KCk6IHVpbnQ2NApuZXN0ZWRBcnJheUxlbmd0aEluT2JqZWN0OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTQzNQoJLy8gYTogeyBmb286IFN0YXRpY0FycmF5PHVpbnQ4LCA1PiB9ID0geyBmb286IFsxMSwgMjIsIDMzLCA0NCwgNTVdIH0KCWJ5dGUgMHgwYjE2MjEyYzM3CglmcmFtZV9idXJ5IDAgLy8gYTogeyBmb286IFN0YXRpY0FycmF5PHVpbnQ4LCA1PiB9CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0MzcKCS8vIHJldHVybiBhLmZvby5sZW5ndGg7CglmcmFtZV9kaWcgMCAvLyBhOiB7IGZvbzogU3RhdGljQXJyYXk8dWludDgsIDU+IH0KCWludCA1CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgIm5lc3RlZEFycmF5TGVuZ3RoSW5PYmplY3QoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9uZXN0ZWRBcnJheUxlbmd0aEluT2JqZWN0CgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBuZXN0ZWRBcnJheUxlbmd0aEluT2JqZWN0KCl1aW50NjQKKmFiaV9yb3V0ZV9uZXN0ZWRBcnJheUxlbmd0aEluT2JqZWN0OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG5lc3RlZEFycmF5TGVuZ3RoSW5PYmplY3QoKXVpbnQ2NAoJY2FsbHN1YiBuZXN0ZWRBcnJheUxlbmd0aEluT2JqZWN0CglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gbmVzdGVkQXJyYXlMZW5ndGhJbk9iamVjdCgpOiB1aW50NjQKbmVzdGVkQXJyYXlMZW5ndGhJbk9iamVjdDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0MzUKCS8vIGE6IHsgZm9vOiBTdGF0aWNBcnJheTx1aW50OCwgNT4gfSA9IHsgZm9vOiBbMTEsIDIyLCAzMywgNDQsIDU1XSB9CglieXRlIDB4MGIxNjIxMmMzNwoJZnJhbWVfYnVyeSAwIC8vIGE6IHsgZm9vOiBTdGF0aWNBcnJheTx1aW50OCwgNT4gfQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDM3CgkvLyByZXR1cm4gYS5mb28ubGVuZ3RoOwoJZnJhbWVfZGlnIDAgLy8gYTogeyBmb286IFN0YXRpY0FycmF5PHVpbnQ4LCA1PiB9CglpbnQgNQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAibmVzdGVkQXJyYXlMZW5ndGhJbk9iamVjdCgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9uZXN0ZWRBcnJheUxlbmd0aEluT2JqZWN0CgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestNestedArrayLengthInObjectVariable.approval.teal b/tests/contracts/artifacts/ABITestNestedArrayLengthInObjectVariable.approval.teal index cba61c10a..6c2002cd3 100644 --- a/tests/contracts/artifacts/ABITestNestedArrayLengthInObjectVariable.approval.teal +++ b/tests/contracts/artifacts/ABITestNestedArrayLengthInObjectVariable.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // nestedArrayLengthInObjectVariable()uint64 -abi_route_nestedArrayLengthInObjectVariable: +*abi_route_nestedArrayLengthInObjectVariable: // The ABI return prefix byte 0x151f7c75 @@ -54,18 +54,18 @@ nestedArrayLengthInObjectVariable: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "nestedArrayLengthInObjectVariable()uint64" txna ApplicationArgs 0 - match abi_route_nestedArrayLengthInObjectVariable + match *abi_route_nestedArrayLengthInObjectVariable err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestNestedArrayLengthInObjectVariable.arc32.json b/tests/contracts/artifacts/ABITestNestedArrayLengthInObjectVariable.arc32.json index 4ea3b1da7..ba714bc8c 100644 --- a/tests/contracts/artifacts/ABITestNestedArrayLengthInObjectVariable.arc32.json +++ b/tests/contracts/artifacts/ABITestNestedArrayLengthInObjectVariable.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBuZXN0ZWRBcnJheUxlbmd0aEluT2JqZWN0VmFyaWFibGUoKXVpbnQ2NAphYmlfcm91dGVfbmVzdGVkQXJyYXlMZW5ndGhJbk9iamVjdFZhcmlhYmxlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG5lc3RlZEFycmF5TGVuZ3RoSW5PYmplY3RWYXJpYWJsZSgpdWludDY0CgljYWxsc3ViIG5lc3RlZEFycmF5TGVuZ3RoSW5PYmplY3RWYXJpYWJsZQoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIG5lc3RlZEFycmF5TGVuZ3RoSW5PYmplY3RWYXJpYWJsZSgpOiB1aW50NjQKbmVzdGVkQXJyYXlMZW5ndGhJbk9iamVjdFZhcmlhYmxlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTQ0MwoJLy8gYTogeyBmb286IFN0YXRpY0FycmF5PHVpbnQ4LCA1PiB9ID0geyBmb286IFsxMSwgMjIsIDMzLCA0NCwgNTVdIH0KCWJ5dGUgMHgwYjE2MjEyYzM3CglmcmFtZV9idXJ5IDAgLy8gYTogeyBmb286IFN0YXRpY0FycmF5PHVpbnQ4LCA1PiB9CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0NDYKCS8vIHJldHVybiBiLmxlbmd0aDsKCWludCA1CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgIm5lc3RlZEFycmF5TGVuZ3RoSW5PYmplY3RWYXJpYWJsZSgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX25lc3RlZEFycmF5TGVuZ3RoSW5PYmplY3RWYXJpYWJsZQoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBuZXN0ZWRBcnJheUxlbmd0aEluT2JqZWN0VmFyaWFibGUoKXVpbnQ2NAoqYWJpX3JvdXRlX25lc3RlZEFycmF5TGVuZ3RoSW5PYmplY3RWYXJpYWJsZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBuZXN0ZWRBcnJheUxlbmd0aEluT2JqZWN0VmFyaWFibGUoKXVpbnQ2NAoJY2FsbHN1YiBuZXN0ZWRBcnJheUxlbmd0aEluT2JqZWN0VmFyaWFibGUKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBuZXN0ZWRBcnJheUxlbmd0aEluT2JqZWN0VmFyaWFibGUoKTogdWludDY0Cm5lc3RlZEFycmF5TGVuZ3RoSW5PYmplY3RWYXJpYWJsZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0NDMKCS8vIGE6IHsgZm9vOiBTdGF0aWNBcnJheTx1aW50OCwgNT4gfSA9IHsgZm9vOiBbMTEsIDIyLCAzMywgNDQsIDU1XSB9CglieXRlIDB4MGIxNjIxMmMzNwoJZnJhbWVfYnVyeSAwIC8vIGE6IHsgZm9vOiBTdGF0aWNBcnJheTx1aW50OCwgNT4gfQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDQ2CgkvLyByZXR1cm4gYi5sZW5ndGg7CglpbnQgNQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAibmVzdGVkQXJyYXlMZW5ndGhJbk9iamVjdFZhcmlhYmxlKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX25lc3RlZEFycmF5TGVuZ3RoSW5PYmplY3RWYXJpYWJsZQoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestNestedArrayRef.approval.teal b/tests/contracts/artifacts/ABITestNestedArrayRef.approval.teal index d62f45ece..664bbf456 100644 --- a/tests/contracts/artifacts/ABITestNestedArrayRef.approval.teal +++ b/tests/contracts/artifacts/ABITestNestedArrayRef.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // nestedArrayRef()uint8[2][2] -abi_route_nestedArrayRef: +*abi_route_nestedArrayRef: // The ABI return prefix byte 0x151f7c75 @@ -65,18 +65,18 @@ nestedArrayRef: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "nestedArrayRef()uint8[2][2]" txna ApplicationArgs 0 - match abi_route_nestedArrayRef + match *abi_route_nestedArrayRef err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestNestedArrayRef.arc32.json b/tests/contracts/artifacts/ABITestNestedArrayRef.arc32.json index e19137963..8db93c7ec 100644 --- a/tests/contracts/artifacts/ABITestNestedArrayRef.arc32.json +++ b/tests/contracts/artifacts/ABITestNestedArrayRef.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBuZXN0ZWRBcnJheVJlZigpdWludDhbMl1bMl0KYWJpX3JvdXRlX25lc3RlZEFycmF5UmVmOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG5lc3RlZEFycmF5UmVmKCl1aW50OFsyXVsyXQoJY2FsbHN1YiBuZXN0ZWRBcnJheVJlZgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIG5lc3RlZEFycmF5UmVmKCk6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ8OD4sIDI+LCAyPgpuZXN0ZWRBcnJheVJlZjoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjc3MAoJLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDw4PiwgMj4sIDI+ID0gWwoJLy8gICAgICAgWzEsIDJdLAoJLy8gICAgICAgWzMsIDRdLAoJLy8gICAgIF0KCWJ5dGUgMHgwMTAyMDMwNAoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ8OD4sIDI+LCAyPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo3NzQKCS8vIGIgPSBhWzFdCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6Nzc2CgkvLyBiWzFdID0gNSBhcyB1aW50PDg+CglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50PDg+LCAyPiwgMj4KCWJ5dGUgMHgwNQoJcmVwbGFjZTIgMwoJZnJhbWVfYnVyeSAwIC8vIGI6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ8OD4sIDI+LCAyPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo3NzgKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDw4PiwgMj4sIDI+CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgIm5lc3RlZEFycmF5UmVmKCl1aW50OFsyXVsyXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9uZXN0ZWRBcnJheVJlZgoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBuZXN0ZWRBcnJheVJlZigpdWludDhbMl1bMl0KKmFiaV9yb3V0ZV9uZXN0ZWRBcnJheVJlZjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBuZXN0ZWRBcnJheVJlZigpdWludDhbMl1bMl0KCWNhbGxzdWIgbmVzdGVkQXJyYXlSZWYKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBuZXN0ZWRBcnJheVJlZigpOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50PDg+LCAyPiwgMj4KbmVzdGVkQXJyYXlSZWY6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo3NzAKCS8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ8OD4sIDI+LCAyPiA9IFsKCS8vICAgICAgIFsxLCAyXSwKCS8vICAgICAgIFszLCA0XSwKCS8vICAgICBdCglieXRlIDB4MDEwMjAzMDQKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50PDg+LCAyPiwgMj4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6Nzc0CgkvLyBiID0gYVsxXQoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjc3NgoJLy8gYlsxXSA9IDUgYXMgdWludDw4PgoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDw4PiwgMj4sIDI+CglieXRlIDB4MDUKCXJlcGxhY2UyIDMKCWZyYW1lX2J1cnkgMCAvLyBiOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50PDg+LCAyPiwgMj4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6Nzc4CgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ8OD4sIDI+LCAyPgoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAibmVzdGVkQXJyYXlSZWYoKXVpbnQ4WzJdWzJdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9uZXN0ZWRBcnJheVJlZgoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestNestedObject.approval.teal b/tests/contracts/artifacts/ABITestNestedObject.approval.teal index 2c4c16a21..7c290eaeb 100644 --- a/tests/contracts/artifacts/ABITestNestedObject.approval.teal +++ b/tests/contracts/artifacts/ABITestNestedObject.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // nestedObject()uint64 -abi_route_nestedObject: +*abi_route_nestedObject: // The ABI return prefix byte 0x151f7c75 @@ -63,18 +63,18 @@ nestedObject: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "nestedObject()uint64" txna ApplicationArgs 0 - match abi_route_nestedObject + match *abi_route_nestedObject err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestNestedObject.arc32.json b/tests/contracts/artifacts/ABITestNestedObject.arc32.json index 05e1a5427..100831416 100644 --- a/tests/contracts/artifacts/ABITestNestedObject.arc32.json +++ b/tests/contracts/artifacts/ABITestNestedObject.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBuZXN0ZWRPYmplY3QoKXVpbnQ2NAphYmlfcm91dGVfbmVzdGVkT2JqZWN0OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG5lc3RlZE9iamVjdCgpdWludDY0CgljYWxsc3ViIG5lc3RlZE9iamVjdAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIG5lc3RlZE9iamVjdCgpOiB1aW50NjQKbmVzdGVkT2JqZWN0OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTA5NQoJLy8gYTogeyBiOiB7IGM6IHsgZDogdWludDY0IH0gfSB9ID0geyBiOiB7IGM6IHsgZDogMSB9IH0gfQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDEKCWZyYW1lX2J1cnkgMCAvLyBhOiB7IGI6IHsgYzogeyBkOiB1aW50NjQgfSB9IH0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTA5NgoJLy8gYS5iLmMuZCA9IDIKCWZyYW1lX2RpZyAwIC8vIGE6IHsgYjogeyBjOiB7IGQ6IHVpbnQ2NCB9IH0gfQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDIKCXJlcGxhY2UyIDAKCWZyYW1lX2J1cnkgMCAvLyBhOiB7IGI6IHsgYzogeyBkOiB1aW50NjQgfSB9IH0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTA5NwoJLy8gcmV0dXJuIGEuYi5jLmQ7CglmcmFtZV9kaWcgMCAvLyBhOiB7IGI6IHsgYzogeyBkOiB1aW50NjQgfSB9IH0KCWV4dHJhY3QgMCA4CglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgIm5lc3RlZE9iamVjdCgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX25lc3RlZE9iamVjdAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBuZXN0ZWRPYmplY3QoKXVpbnQ2NAoqYWJpX3JvdXRlX25lc3RlZE9iamVjdDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBuZXN0ZWRPYmplY3QoKXVpbnQ2NAoJY2FsbHN1YiBuZXN0ZWRPYmplY3QKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBuZXN0ZWRPYmplY3QoKTogdWludDY0Cm5lc3RlZE9iamVjdDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwOTUKCS8vIGE6IHsgYjogeyBjOiB7IGQ6IHVpbnQ2NCB9IH0gfSA9IHsgYjogeyBjOiB7IGQ6IDEgfSB9IH0KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAxCglmcmFtZV9idXJ5IDAgLy8gYTogeyBiOiB7IGM6IHsgZDogdWludDY0IH0gfSB9CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwOTYKCS8vIGEuYi5jLmQgPSAyCglmcmFtZV9kaWcgMCAvLyBhOiB7IGI6IHsgYzogeyBkOiB1aW50NjQgfSB9IH0KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAyCglyZXBsYWNlMiAwCglmcmFtZV9idXJ5IDAgLy8gYTogeyBiOiB7IGM6IHsgZDogdWludDY0IH0gfSB9CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwOTcKCS8vIHJldHVybiBhLmIuYy5kOwoJZnJhbWVfZGlnIDAgLy8gYTogeyBiOiB7IGM6IHsgZDogdWludDY0IH0gfSB9CglleHRyYWN0IDAgOAoJYnRvaQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAibmVzdGVkT2JqZWN0KCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX25lc3RlZE9iamVjdAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestNestedObjectType.approval.teal b/tests/contracts/artifacts/ABITestNestedObjectType.approval.teal index a34ac0606..f619e00c3 100644 --- a/tests/contracts/artifacts/ABITestNestedObjectType.approval.teal +++ b/tests/contracts/artifacts/ABITestNestedObjectType.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // nestedObjectType()uint64 -abi_route_nestedObjectType: +*abi_route_nestedObjectType: // The ABI return prefix byte 0x151f7c75 @@ -63,18 +63,18 @@ nestedObjectType: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "nestedObjectType()uint64" txna ApplicationArgs 0 - match abi_route_nestedObjectType + match *abi_route_nestedObjectType err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestNestedObjectType.arc32.json b/tests/contracts/artifacts/ABITestNestedObjectType.arc32.json index bda9db40a..d782cc9bb 100644 --- a/tests/contracts/artifacts/ABITestNestedObjectType.arc32.json +++ b/tests/contracts/artifacts/ABITestNestedObjectType.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBuZXN0ZWRPYmplY3RUeXBlKCl1aW50NjQKYWJpX3JvdXRlX25lc3RlZE9iamVjdFR5cGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbmVzdGVkT2JqZWN0VHlwZSgpdWludDY0CgljYWxsc3ViIG5lc3RlZE9iamVjdFR5cGUKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBuZXN0ZWRPYmplY3RUeXBlKCk6IHVpbnQ2NApuZXN0ZWRPYmplY3RUeXBlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTEwNQoJLy8gYTogVDQgPSB7IGI6IHsgYzogeyBkOiAxIH0gfSB9CglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMQoJZnJhbWVfYnVyeSAwIC8vIGE6IFQ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjExMDYKCS8vIGEuYi5jLmQgPSAyCglmcmFtZV9kaWcgMCAvLyBhOiBUNAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDIKCXJlcGxhY2UyIDAKCWZyYW1lX2J1cnkgMCAvLyBhOiBUNAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTA3CgkvLyByZXR1cm4gYS5iLmMuZDsKCWZyYW1lX2RpZyAwIC8vIGE6IFQ0CglleHRyYWN0IDAgOAoJYnRvaQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJuZXN0ZWRPYmplY3RUeXBlKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfbmVzdGVkT2JqZWN0VHlwZQoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBuZXN0ZWRPYmplY3RUeXBlKCl1aW50NjQKKmFiaV9yb3V0ZV9uZXN0ZWRPYmplY3RUeXBlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG5lc3RlZE9iamVjdFR5cGUoKXVpbnQ2NAoJY2FsbHN1YiBuZXN0ZWRPYmplY3RUeXBlCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gbmVzdGVkT2JqZWN0VHlwZSgpOiB1aW50NjQKbmVzdGVkT2JqZWN0VHlwZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjExMDUKCS8vIGE6IFQ0ID0geyBiOiB7IGM6IHsgZDogMSB9IH0gfQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDEKCWZyYW1lX2J1cnkgMCAvLyBhOiBUNAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTA2CgkvLyBhLmIuYy5kID0gMgoJZnJhbWVfZGlnIDAgLy8gYTogVDQKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAyCglyZXBsYWNlMiAwCglmcmFtZV9idXJ5IDAgLy8gYTogVDQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTEwNwoJLy8gcmV0dXJuIGEuYi5jLmQ7CglmcmFtZV9kaWcgMCAvLyBhOiBUNAoJZXh0cmFjdCAwIDgKCWJ0b2kKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgIm5lc3RlZE9iamVjdFR5cGUoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfbmVzdGVkT2JqZWN0VHlwZQoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestNestedStaticArray.approval.teal b/tests/contracts/artifacts/ABITestNestedStaticArray.approval.teal index 6e31450d9..06f9a842f 100644 --- a/tests/contracts/artifacts/ABITestNestedStaticArray.approval.teal +++ b/tests/contracts/artifacts/ABITestNestedStaticArray.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // nestedStaticArray()uint64 -abi_route_nestedStaticArray: +*abi_route_nestedStaticArray: // The ABI return prefix byte 0x151f7c75 @@ -60,18 +60,18 @@ nestedStaticArray: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "nestedStaticArray()uint64" txna ApplicationArgs 0 - match abi_route_nestedStaticArray + match *abi_route_nestedStaticArray err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestNestedStaticArray.arc32.json b/tests/contracts/artifacts/ABITestNestedStaticArray.arc32.json index 9ad7ad520..0966c751c 100644 --- a/tests/contracts/artifacts/ABITestNestedStaticArray.arc32.json +++ b/tests/contracts/artifacts/ABITestNestedStaticArray.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBuZXN0ZWRTdGF0aWNBcnJheSgpdWludDY0CmFiaV9yb3V0ZV9uZXN0ZWRTdGF0aWNBcnJheToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBuZXN0ZWRTdGF0aWNBcnJheSgpdWludDY0CgljYWxsc3ViIG5lc3RlZFN0YXRpY0FycmF5CglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gbmVzdGVkU3RhdGljQXJyYXkoKTogdWludDY0Cm5lc3RlZFN0YXRpY0FycmF5OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTk4CgkvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50NjQsIDM+LCAzPiA9IFsKCS8vICAgICAgIFsxMSwgMjIsIDMzXSwKCS8vICAgICAgIFs0NCwgNTUsIDY2XSwKCS8vICAgICAgIFs3NywgODgsIDk5XSwKCS8vICAgICBdCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwYjAwMDAwMDAwMDAwMDAwMTYwMDAwMDAwMDAwMDAwMDIxMDAwMDAwMDAwMDAwMDAyYzAwMDAwMDAwMDAwMDAwMzcwMDAwMDAwMDAwMDAwMDQyMDAwMDAwMDAwMDAwMDA0ZDAwMDAwMDAwMDAwMDAwNTgwMDAwMDAwMDAwMDAwMDYzCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAzPiwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MjA0CgkvLyByZXR1cm4gYVsxXVsxXTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4sIDM+CglleHRyYWN0IDMyIDgKCWJ0b2kKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAibmVzdGVkU3RhdGljQXJyYXkoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9uZXN0ZWRTdGF0aWNBcnJheQoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBuZXN0ZWRTdGF0aWNBcnJheSgpdWludDY0CiphYmlfcm91dGVfbmVzdGVkU3RhdGljQXJyYXk6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbmVzdGVkU3RhdGljQXJyYXkoKXVpbnQ2NAoJY2FsbHN1YiBuZXN0ZWRTdGF0aWNBcnJheQoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIG5lc3RlZFN0YXRpY0FycmF5KCk6IHVpbnQ2NApuZXN0ZWRTdGF0aWNBcnJheToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE5OAoJLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAzPiwgMz4gPSBbCgkvLyAgICAgICBbMTEsIDIyLCAzM10sCgkvLyAgICAgICBbNDQsIDU1LCA2Nl0sCgkvLyAgICAgICBbNzcsIDg4LCA5OV0sCgkvLyAgICAgXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAwMDAwMDAwMDAwMDAyMTAwMDAwMDAwMDAwMDAwMmMwMDAwMDAwMDAwMDAwMDM3MDAwMDAwMDAwMDAwMDA0MjAwMDAwMDAwMDAwMDAwNGQwMDAwMDAwMDAwMDAwMDU4MDAwMDAwMDAwMDAwMDA2MwoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4sIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjIwNAoJLy8gcmV0dXJuIGFbMV1bMV07CglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50NjQsIDM+LCAzPgoJZXh0cmFjdCAzMiA4CglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJuZXN0ZWRTdGF0aWNBcnJheSgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9uZXN0ZWRTdGF0aWNBcnJheQoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestNestedStaticArrayLength.approval.teal b/tests/contracts/artifacts/ABITestNestedStaticArrayLength.approval.teal index 2fc222b72..3a7a0b590 100644 --- a/tests/contracts/artifacts/ABITestNestedStaticArrayLength.approval.teal +++ b/tests/contracts/artifacts/ABITestNestedStaticArrayLength.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // nestedStaticArrayLength()uint64 -abi_route_nestedStaticArrayLength: +*abi_route_nestedStaticArrayLength: // The ABI return prefix byte 0x151f7c75 @@ -59,18 +59,18 @@ nestedStaticArrayLength: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "nestedStaticArrayLength()uint64" txna ApplicationArgs 0 - match abi_route_nestedStaticArrayLength + match *abi_route_nestedStaticArrayLength err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestNestedStaticArrayLength.arc32.json b/tests/contracts/artifacts/ABITestNestedStaticArrayLength.arc32.json index 711f9ede8..402b1f4c2 100644 --- a/tests/contracts/artifacts/ABITestNestedStaticArrayLength.arc32.json +++ b/tests/contracts/artifacts/ABITestNestedStaticArrayLength.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBuZXN0ZWRTdGF0aWNBcnJheUxlbmd0aCgpdWludDY0CmFiaV9yb3V0ZV9uZXN0ZWRTdGF0aWNBcnJheUxlbmd0aDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBuZXN0ZWRTdGF0aWNBcnJheUxlbmd0aCgpdWludDY0CgljYWxsc3ViIG5lc3RlZFN0YXRpY0FycmF5TGVuZ3RoCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gbmVzdGVkU3RhdGljQXJyYXlMZW5ndGgoKTogdWludDY0Cm5lc3RlZFN0YXRpY0FycmF5TGVuZ3RoOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTQyMwoJLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDgsIDU+LCAzPiA9IFsKCS8vICAgICAgIFsxMSwgMjIsIDMzLCA0NCwgNTVdLAoJLy8gICAgICAgWzY2LCA3NywgODgsIDk5LCAxMDBdLAoJLy8gICAgICAgWzEwMSwgMTAyLCAxMDMsIDEwNCwgMTA1XSwKCS8vICAgICBdCglieXRlIDB4MGIxNjIxMmMzNzQyNGQ1ODYzNjQ2NTY2Njc2ODY5CglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDgsIDU+LCAzPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDI5CgkvLyByZXR1cm4gYVswXS5sZW5ndGg7CglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50OCwgNT4sIDM+CglpbnQgNQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJuZXN0ZWRTdGF0aWNBcnJheUxlbmd0aCgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX25lc3RlZFN0YXRpY0FycmF5TGVuZ3RoCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBuZXN0ZWRTdGF0aWNBcnJheUxlbmd0aCgpdWludDY0CiphYmlfcm91dGVfbmVzdGVkU3RhdGljQXJyYXlMZW5ndGg6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbmVzdGVkU3RhdGljQXJyYXlMZW5ndGgoKXVpbnQ2NAoJY2FsbHN1YiBuZXN0ZWRTdGF0aWNBcnJheUxlbmd0aAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIG5lc3RlZFN0YXRpY0FycmF5TGVuZ3RoKCk6IHVpbnQ2NApuZXN0ZWRTdGF0aWNBcnJheUxlbmd0aDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0MjMKCS8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ4LCA1PiwgMz4gPSBbCgkvLyAgICAgICBbMTEsIDIyLCAzMywgNDQsIDU1XSwKCS8vICAgICAgIFs2NiwgNzcsIDg4LCA5OSwgMTAwXSwKCS8vICAgICAgIFsxMDEsIDEwMiwgMTAzLCAxMDQsIDEwNV0sCgkvLyAgICAgXQoJYnl0ZSAweDBiMTYyMTJjMzc0MjRkNTg2MzY0NjU2NjY3Njg2OQoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ4LCA1PiwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTQyOQoJLy8gcmV0dXJuIGFbMF0ubGVuZ3RoOwoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDgsIDU+LCAzPgoJaW50IDUKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgIm5lc3RlZFN0YXRpY0FycmF5TGVuZ3RoKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX25lc3RlZFN0YXRpY0FycmF5TGVuZ3RoCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestNestedStaticForEach.approval.teal b/tests/contracts/artifacts/ABITestNestedStaticForEach.approval.teal index 218b50318..bb05d54b6 100644 --- a/tests/contracts/artifacts/ABITestNestedStaticForEach.approval.teal +++ b/tests/contracts/artifacts/ABITestNestedStaticForEach.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // nestedStaticForEach()uint64 -abi_route_nestedStaticForEach: +*abi_route_nestedStaticForEach: // The ABI return prefix byte 0x151f7c75 @@ -68,7 +68,7 @@ nestedStaticForEach: int 0 frame_bury 4 // the offset we are extracting the next element from -forEach_0: +*forEach_0: // tests/contracts/abi.algo.ts:1337 // sum += v frame_dig 1 // sum: uint64 @@ -83,7 +83,7 @@ forEach_0: dup int 24 // offset of last element < - bz forEach_0_end + bz *forEach_0_end frame_bury 4 // the offset we are extracting the next element from frame_dig 2 // copy of the array we are iterating over frame_dig 4 // the offset we are extracting the next element from @@ -91,9 +91,9 @@ forEach_0: extract btoi frame_bury 3 // v: uint64 - b forEach_0 + b *forEach_0 -forEach_0_end: +*forEach_0_end: // tests/contracts/abi.algo.ts:1340 // return sum; frame_dig 1 // sum: uint64 @@ -105,18 +105,18 @@ forEach_0_end: popn 4 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "nestedStaticForEach()uint64" txna ApplicationArgs 0 - match abi_route_nestedStaticForEach + match *abi_route_nestedStaticForEach err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestNestedStaticForEach.arc32.json b/tests/contracts/artifacts/ABITestNestedStaticForEach.arc32.json index 55621577e..682ae2b19 100644 --- a/tests/contracts/artifacts/ABITestNestedStaticForEach.arc32.json +++ b/tests/contracts/artifacts/ABITestNestedStaticForEach.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBuZXN0ZWRTdGF0aWNGb3JFYWNoKCl1aW50NjQKYWJpX3JvdXRlX25lc3RlZFN0YXRpY0ZvckVhY2g6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbmVzdGVkU3RhdGljRm9yRWFjaCgpdWludDY0CgljYWxsc3ViIG5lc3RlZFN0YXRpY0ZvckVhY2gKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBuZXN0ZWRTdGF0aWNGb3JFYWNoKCk6IHVpbnQ2NApuZXN0ZWRTdGF0aWNGb3JFYWNoOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gNAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzI5CgkvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50NjQsIDM+LCAzPiA9IFsKCS8vICAgICAgIFsxLCAyLCAzXSwKCS8vICAgICAgIFs0LCA1LCA2XSwKCS8vICAgICAgIFs3LCA4LCA5XSwKCS8vICAgICBdCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAzMDAwMDAwMDAwMDAwMDAwNDAwMDAwMDAwMDAwMDAwMDUwMDAwMDAwMDAwMDAwMDA2MDAwMDAwMDAwMDAwMDAwNzAwMDAwMDAwMDAwMDAwMDgwMDAwMDAwMDAwMDAwMDA5CglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAzPiwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTMzNAoJLy8gc3VtID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMSAvLyBzdW06IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzM2CgkvLyBhWzFdLmZvckVhY2gKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4sIDM+CglleHRyYWN0IDI0IDI0CglkdXAKCWZyYW1lX2J1cnkgMiAvLyBjb3B5IG9mIHRoZSBhcnJheSB3ZSBhcmUgaXRlcmF0aW5nIG92ZXIKCWV4dHJhY3QgMCA4CglidG9pCglmcmFtZV9idXJ5IDMgLy8gdjogdWludDY0CglpbnQgMAoJZnJhbWVfYnVyeSA0IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCgpmb3JFYWNoXzA6CgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTMzNwoJLy8gc3VtICs9IHYKCWZyYW1lX2RpZyAxIC8vIHN1bTogdWludDY0CglmcmFtZV9kaWcgMyAvLyB2OiB1aW50NjQKCSsKCWZyYW1lX2J1cnkgMSAvLyBzdW06IHVpbnQ2NAoKCS8vIGluY3JlbWVudCBvZmZzZXQgYW5kIGxvb3AgaWYgbm90IG91dCBvZiBib3VuZHMKCWZyYW1lX2RpZyA0IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglpbnQgOAoJKwoJZHVwCglpbnQgMjQgLy8gb2Zmc2V0IG9mIGxhc3QgZWxlbWVudAoJPAoJYnogZm9yRWFjaF8wX2VuZAoJZnJhbWVfYnVyeSA0IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglmcmFtZV9kaWcgMiAvLyBjb3B5IG9mIHRoZSBhcnJheSB3ZSBhcmUgaXRlcmF0aW5nIG92ZXIKCWZyYW1lX2RpZyA0IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglpbnQgOAoJZXh0cmFjdAoJYnRvaQoJZnJhbWVfYnVyeSAzIC8vIHY6IHVpbnQ2NAoJYiBmb3JFYWNoXzAKCmZvckVhY2hfMF9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTM0MAoJLy8gcmV0dXJuIHN1bTsKCWZyYW1lX2RpZyAxIC8vIHN1bTogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gNAoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJuZXN0ZWRTdGF0aWNGb3JFYWNoKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfbmVzdGVkU3RhdGljRm9yRWFjaAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBuZXN0ZWRTdGF0aWNGb3JFYWNoKCl1aW50NjQKKmFiaV9yb3V0ZV9uZXN0ZWRTdGF0aWNGb3JFYWNoOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG5lc3RlZFN0YXRpY0ZvckVhY2goKXVpbnQ2NAoJY2FsbHN1YiBuZXN0ZWRTdGF0aWNGb3JFYWNoCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gbmVzdGVkU3RhdGljRm9yRWFjaCgpOiB1aW50NjQKbmVzdGVkU3RhdGljRm9yRWFjaDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTMyOQoJLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAzPiwgMz4gPSBbCgkvLyAgICAgICBbMSwgMiwgM10sCgkvLyAgICAgICBbNCwgNSwgNl0sCgkvLyAgICAgICBbNywgOCwgOV0sCgkvLyAgICAgXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMzAwMDAwMDAwMDAwMDAwMDQwMDAwMDAwMDAwMDAwMDA1MDAwMDAwMDAwMDAwMDAwNjAwMDAwMDAwMDAwMDAwMDcwMDAwMDAwMDAwMDAwMDA4MDAwMDAwMDAwMDAwMDAwOQoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4sIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzMzQKCS8vIHN1bSA9IDAKCWludCAwCglmcmFtZV9idXJ5IDEgLy8gc3VtOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTMzNgoJLy8gYVsxXS5mb3JFYWNoCglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50NjQsIDM+LCAzPgoJZXh0cmFjdCAyNCAyNAoJZHVwCglmcmFtZV9idXJ5IDIgLy8gY29weSBvZiB0aGUgYXJyYXkgd2UgYXJlIGl0ZXJhdGluZyBvdmVyCglleHRyYWN0IDAgOAoJYnRvaQoJZnJhbWVfYnVyeSAzIC8vIHY6IHVpbnQ2NAoJaW50IDAKCWZyYW1lX2J1cnkgNCAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoKKmZvckVhY2hfMDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzM3CgkvLyBzdW0gKz0gdgoJZnJhbWVfZGlnIDEgLy8gc3VtOiB1aW50NjQKCWZyYW1lX2RpZyAzIC8vIHY6IHVpbnQ2NAoJKwoJZnJhbWVfYnVyeSAxIC8vIHN1bTogdWludDY0CgoJLy8gaW5jcmVtZW50IG9mZnNldCBhbmQgbG9vcCBpZiBub3Qgb3V0IG9mIGJvdW5kcwoJZnJhbWVfZGlnIDQgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCWludCA4CgkrCglkdXAKCWludCAyNCAvLyBvZmZzZXQgb2YgbGFzdCBlbGVtZW50Cgk8CglieiAqZm9yRWFjaF8wX2VuZAoJZnJhbWVfYnVyeSA0IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglmcmFtZV9kaWcgMiAvLyBjb3B5IG9mIHRoZSBhcnJheSB3ZSBhcmUgaXRlcmF0aW5nIG92ZXIKCWZyYW1lX2RpZyA0IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglpbnQgOAoJZXh0cmFjdAoJYnRvaQoJZnJhbWVfYnVyeSAzIC8vIHY6IHVpbnQ2NAoJYiAqZm9yRWFjaF8wCgoqZm9yRWFjaF8wX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzQwCgkvLyByZXR1cm4gc3VtOwoJZnJhbWVfZGlnIDEgLy8gc3VtOiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiA0CglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJuZXN0ZWRTdGF0aWNGb3JFYWNoKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX25lc3RlZFN0YXRpY0ZvckVhY2gKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestNestedStaticForEachInBox.approval.teal b/tests/contracts/artifacts/ABITestNestedStaticForEachInBox.approval.teal index 72084e6ed..3df0d536d 100644 --- a/tests/contracts/artifacts/ABITestNestedStaticForEachInBox.approval.teal +++ b/tests/contracts/artifacts/ABITestNestedStaticForEachInBox.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // nestedStaticForEachInBox()uint64 -abi_route_nestedStaticForEachInBox: +*abi_route_nestedStaticForEachInBox: // The ABI return prefix byte 0x151f7c75 @@ -71,7 +71,7 @@ nestedStaticForEachInBox: int 0 frame_bury 3 // the offset we are extracting the next element from -forEach_0: +*forEach_0: // tests/contracts/abi.algo.ts:1356 // sum += v frame_dig 0 // sum: uint64 @@ -86,7 +86,7 @@ forEach_0: dup int 24 // offset of last element < - bz forEach_0_end + bz *forEach_0_end frame_bury 3 // the offset we are extracting the next element from frame_dig 1 // copy of the array we are iterating over frame_dig 3 // the offset we are extracting the next element from @@ -94,9 +94,9 @@ forEach_0: extract btoi frame_bury 2 // v: uint64 - b forEach_0 + b *forEach_0 -forEach_0_end: +*forEach_0_end: // tests/contracts/abi.algo.ts:1359 // return sum; frame_dig 0 // sum: uint64 @@ -108,18 +108,18 @@ forEach_0_end: popn 3 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "nestedStaticForEachInBox()uint64" txna ApplicationArgs 0 - match abi_route_nestedStaticForEachInBox + match *abi_route_nestedStaticForEachInBox err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestNestedStaticForEachInBox.arc32.json b/tests/contracts/artifacts/ABITestNestedStaticForEachInBox.arc32.json index 7a2e3078b..fd0ce7f0e 100644 --- a/tests/contracts/artifacts/ABITestNestedStaticForEachInBox.arc32.json +++ b/tests/contracts/artifacts/ABITestNestedStaticForEachInBox.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBuZXN0ZWRTdGF0aWNGb3JFYWNoSW5Cb3goKXVpbnQ2NAphYmlfcm91dGVfbmVzdGVkU3RhdGljRm9yRWFjaEluQm94OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG5lc3RlZFN0YXRpY0ZvckVhY2hJbkJveCgpdWludDY0CgljYWxsc3ViIG5lc3RlZFN0YXRpY0ZvckVhY2hJbkJveAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIG5lc3RlZFN0YXRpY0ZvckVhY2hJbkJveCgpOiB1aW50NjQKbmVzdGVkU3RhdGljRm9yRWFjaEluQm94OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gMwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzQ4CgkvLyB0aGlzLmJLZXkudmFsdWUgPSBbCgkvLyAgICAgICBbMSwgMiwgM10sCgkvLyAgICAgICBbNCwgNSwgNl0sCgkvLyAgICAgICBbNywgOCwgOV0sCgkvLyAgICAgXQoJYnl0ZSAweDYyNGI2NTc5IC8vICJiS2V5IgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMzAwMDAwMDAwMDAwMDAwMDQwMDAwMDAwMDAwMDAwMDA1MDAwMDAwMDAwMDAwMDAwNjAwMDAwMDAwMDAwMDAwMDcwMDAwMDAwMDAwMDAwMDA4MDAwMDAwMDAwMDAwMDAwOQoJYm94X3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzUzCgkvLyBzdW0gPSAwCglpbnQgMAoJZnJhbWVfYnVyeSAwIC8vIHN1bTogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzNTUKCS8vIHRoaXMuYktleS52YWx1ZVsxXS5mb3JFYWNoCglieXRlIDB4NjI0YjY1NzkgLy8gImJLZXkiCglpbnQgMjQKCWR1cAoJYm94X2V4dHJhY3QKCWR1cAoJZnJhbWVfYnVyeSAxIC8vIGNvcHkgb2YgdGhlIGFycmF5IHdlIGFyZSBpdGVyYXRpbmcgb3ZlcgoJZXh0cmFjdCAwIDgKCWJ0b2kKCWZyYW1lX2J1cnkgMiAvLyB2OiB1aW50NjQKCWludCAwCglmcmFtZV9idXJ5IDMgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCmZvckVhY2hfMDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzU2CgkvLyBzdW0gKz0gdgoJZnJhbWVfZGlnIDAgLy8gc3VtOiB1aW50NjQKCWZyYW1lX2RpZyAyIC8vIHY6IHVpbnQ2NAoJKwoJZnJhbWVfYnVyeSAwIC8vIHN1bTogdWludDY0CgoJLy8gaW5jcmVtZW50IG9mZnNldCBhbmQgbG9vcCBpZiBub3Qgb3V0IG9mIGJvdW5kcwoJZnJhbWVfZGlnIDMgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCWludCA4CgkrCglkdXAKCWludCAyNCAvLyBvZmZzZXQgb2YgbGFzdCBlbGVtZW50Cgk8CglieiBmb3JFYWNoXzBfZW5kCglmcmFtZV9idXJ5IDMgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCWZyYW1lX2RpZyAxIC8vIGNvcHkgb2YgdGhlIGFycmF5IHdlIGFyZSBpdGVyYXRpbmcgb3ZlcgoJZnJhbWVfZGlnIDMgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCWludCA4CglleHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDIgLy8gdjogdWludDY0CgliIGZvckVhY2hfMAoKZm9yRWFjaF8wX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzU5CgkvLyByZXR1cm4gc3VtOwoJZnJhbWVfZGlnIDAgLy8gc3VtOiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAzCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgIm5lc3RlZFN0YXRpY0ZvckVhY2hJbkJveCgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX25lc3RlZFN0YXRpY0ZvckVhY2hJbkJveAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBuZXN0ZWRTdGF0aWNGb3JFYWNoSW5Cb3goKXVpbnQ2NAoqYWJpX3JvdXRlX25lc3RlZFN0YXRpY0ZvckVhY2hJbkJveDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBuZXN0ZWRTdGF0aWNGb3JFYWNoSW5Cb3goKXVpbnQ2NAoJY2FsbHN1YiBuZXN0ZWRTdGF0aWNGb3JFYWNoSW5Cb3gKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBuZXN0ZWRTdGF0aWNGb3JFYWNoSW5Cb3goKTogdWludDY0Cm5lc3RlZFN0YXRpY0ZvckVhY2hJbkJveDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDMKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTM0OAoJLy8gdGhpcy5iS2V5LnZhbHVlID0gWwoJLy8gICAgICAgWzEsIDIsIDNdLAoJLy8gICAgICAgWzQsIDUsIDZdLAoJLy8gICAgICAgWzcsIDgsIDldLAoJLy8gICAgIF0KCWJ5dGUgMHg2MjRiNjU3OSAvLyAiYktleSIKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAxMDAwMDAwMDAwMDAwMDAwMjAwMDAwMDAwMDAwMDAwMDMwMDAwMDAwMDAwMDAwMDA0MDAwMDAwMDAwMDAwMDAwNTAwMDAwMDAwMDAwMDAwMDYwMDAwMDAwMDAwMDAwMDA3MDAwMDAwMDAwMDAwMDAwODAwMDAwMDAwMDAwMDAwMDkKCWJveF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTM1MwoJLy8gc3VtID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMCAvLyBzdW06IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzU1CgkvLyB0aGlzLmJLZXkudmFsdWVbMV0uZm9yRWFjaAoJYnl0ZSAweDYyNGI2NTc5IC8vICJiS2V5IgoJaW50IDI0CglkdXAKCWJveF9leHRyYWN0CglkdXAKCWZyYW1lX2J1cnkgMSAvLyBjb3B5IG9mIHRoZSBhcnJheSB3ZSBhcmUgaXRlcmF0aW5nIG92ZXIKCWV4dHJhY3QgMCA4CglidG9pCglmcmFtZV9idXJ5IDIgLy8gdjogdWludDY0CglpbnQgMAoJZnJhbWVfYnVyeSAzIC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCgoqZm9yRWFjaF8wOgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzNTYKCS8vIHN1bSArPSB2CglmcmFtZV9kaWcgMCAvLyBzdW06IHVpbnQ2NAoJZnJhbWVfZGlnIDIgLy8gdjogdWludDY0CgkrCglmcmFtZV9idXJ5IDAgLy8gc3VtOiB1aW50NjQKCgkvLyBpbmNyZW1lbnQgb2Zmc2V0IGFuZCBsb29wIGlmIG5vdCBvdXQgb2YgYm91bmRzCglmcmFtZV9kaWcgMyAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJaW50IDgKCSsKCWR1cAoJaW50IDI0IC8vIG9mZnNldCBvZiBsYXN0IGVsZW1lbnQKCTwKCWJ6ICpmb3JFYWNoXzBfZW5kCglmcmFtZV9idXJ5IDMgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCWZyYW1lX2RpZyAxIC8vIGNvcHkgb2YgdGhlIGFycmF5IHdlIGFyZSBpdGVyYXRpbmcgb3ZlcgoJZnJhbWVfZGlnIDMgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCWludCA4CglleHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDIgLy8gdjogdWludDY0CgliICpmb3JFYWNoXzAKCipmb3JFYWNoXzBfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzNTkKCS8vIHJldHVybiBzdW07CglmcmFtZV9kaWcgMCAvLyBzdW06IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDMKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgIm5lc3RlZFN0YXRpY0ZvckVhY2hJbkJveCgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9uZXN0ZWRTdGF0aWNGb3JFYWNoSW5Cb3gKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestNestedStructInBoxMap.approval.teal b/tests/contracts/artifacts/ABITestNestedStructInBoxMap.approval.teal index 2aa09ffa8..f409e77f2 100644 --- a/tests/contracts/artifacts/ABITestNestedStructInBoxMap.approval.teal +++ b/tests/contracts/artifacts/ABITestNestedStructInBoxMap.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // nestedStructInBoxMap()((uint8)) -abi_route_nestedStructInBoxMap: +*abi_route_nestedStructInBoxMap: // The ABI return prefix byte 0x151f7c75 @@ -64,18 +64,18 @@ nestedStructInBoxMap: assert retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "nestedStructInBoxMap()((uint8))" txna ApplicationArgs 0 - match abi_route_nestedStructInBoxMap + match *abi_route_nestedStructInBoxMap err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestNestedStructInBoxMap.arc32.json b/tests/contracts/artifacts/ABITestNestedStructInBoxMap.arc32.json index d0e7ddd39..840c19f72 100644 --- a/tests/contracts/artifacts/ABITestNestedStructInBoxMap.arc32.json +++ b/tests/contracts/artifacts/ABITestNestedStructInBoxMap.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBuZXN0ZWRTdHJ1Y3RJbkJveE1hcCgpKCh1aW50OCkpCmFiaV9yb3V0ZV9uZXN0ZWRTdHJ1Y3RJbkJveE1hcDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBuZXN0ZWRTdHJ1Y3RJbkJveE1hcCgpKCh1aW50OCkpCgljYWxsc3ViIG5lc3RlZFN0cnVjdEluQm94TWFwCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gbmVzdGVkU3RydWN0SW5Cb3hNYXAoKTogVDgKbmVzdGVkU3RydWN0SW5Cb3hNYXA6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTI4OQoJLy8gdGhpcy5iTWFwKCdiTWFwJykudmFsdWUgPSB7IGZvbzogeyBiYXI6IDEgfSB9CglieXRlIDB4NjI0ZDYxNzAgLy8gImJNYXAiCglieXRlIDB4MDEKCWJveF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTI5MAoJLy8gdGhpcy5iTWFwKCdiTWFwJykudmFsdWUuZm9vLmJhciA9IDMKCWJ5dGUgMHg2MjRkNjE3MCAvLyAiYk1hcCIKCWludCAwCglieXRlIDB4MDMKCWJveF9yZXBsYWNlCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyOTEKCS8vIHRoaXMuYk1hcCgnYk1hcCcpLnZhbHVlLmZvby5iYXIgPSA8dWludDg+MgoJYnl0ZSAweDYyNGQ2MTcwIC8vICJiTWFwIgoJaW50IDAKCWJ5dGUgMHgwMgoJYm94X3JlcGxhY2UKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTI5MgoJLy8gcmV0dXJuIHRoaXMuYk1hcCgnYk1hcCcpLnZhbHVlOwoJYnl0ZSAweDYyNGQ2MTcwIC8vICJiTWFwIgoJYm94X2dldAoJYXNzZXJ0CglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgIm5lc3RlZFN0cnVjdEluQm94TWFwKCkoKHVpbnQ4KSkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfbmVzdGVkU3RydWN0SW5Cb3hNYXAKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBuZXN0ZWRTdHJ1Y3RJbkJveE1hcCgpKCh1aW50OCkpCiphYmlfcm91dGVfbmVzdGVkU3RydWN0SW5Cb3hNYXA6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbmVzdGVkU3RydWN0SW5Cb3hNYXAoKSgodWludDgpKQoJY2FsbHN1YiBuZXN0ZWRTdHJ1Y3RJbkJveE1hcAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIG5lc3RlZFN0cnVjdEluQm94TWFwKCk6IFQ4Cm5lc3RlZFN0cnVjdEluQm94TWFwOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyODkKCS8vIHRoaXMuYk1hcCgnYk1hcCcpLnZhbHVlID0geyBmb286IHsgYmFyOiAxIH0gfQoJYnl0ZSAweDYyNGQ2MTcwIC8vICJiTWFwIgoJYnl0ZSAweDAxCglib3hfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyOTAKCS8vIHRoaXMuYk1hcCgnYk1hcCcpLnZhbHVlLmZvby5iYXIgPSAzCglieXRlIDB4NjI0ZDYxNzAgLy8gImJNYXAiCglpbnQgMAoJYnl0ZSAweDAzCglib3hfcmVwbGFjZQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjkxCgkvLyB0aGlzLmJNYXAoJ2JNYXAnKS52YWx1ZS5mb28uYmFyID0gPHVpbnQ4PjIKCWJ5dGUgMHg2MjRkNjE3MCAvLyAiYk1hcCIKCWludCAwCglieXRlIDB4MDIKCWJveF9yZXBsYWNlCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyOTIKCS8vIHJldHVybiB0aGlzLmJNYXAoJ2JNYXAnKS52YWx1ZTsKCWJ5dGUgMHg2MjRkNjE3MCAvLyAiYk1hcCIKCWJveF9nZXQKCWFzc2VydAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAibmVzdGVkU3RydWN0SW5Cb3hNYXAoKSgodWludDgpKSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfbmVzdGVkU3RydWN0SW5Cb3hNYXAKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestNestedTuple.approval.teal b/tests/contracts/artifacts/ABITestNestedTuple.approval.teal index dc24538b6..0e9bb2c92 100644 --- a/tests/contracts/artifacts/ABITestNestedTuple.approval.teal +++ b/tests/contracts/artifacts/ABITestNestedTuple.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // nestedTuple()(uint16,(uint8,string),(uint16,string)) -abi_route_nestedTuple: +*abi_route_nestedTuple: // The ABI return prefix byte 0x151f7c75 @@ -46,27 +46,27 @@ nestedTuple: byte 0x // initial tail byte 0x0006 // initial head offset byte 0x000b - callsub process_static_tuple_element + callsub *process_static_tuple_element byte 0x // initial head byte 0x // initial tail byte 0x0003 // initial head offset byte 0x16 - callsub process_static_tuple_element + callsub *process_static_tuple_element byte 0x0003666f6f - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element pop // pop head offset concat // concat head and tail - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element byte 0x // initial head byte 0x // initial tail byte 0x0004 // initial head offset byte 0x0021 - callsub process_static_tuple_element + callsub *process_static_tuple_element byte 0x0003626172 - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element pop // pop head offset concat // concat head and tail - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element pop // pop head offset concat // concat head and tail frame_bury 0 // a: [uint16, [uint<8>, string], [uint16, string]] @@ -79,23 +79,23 @@ nestedTuple: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "nestedTuple()(uint16,(uint8,string),(uint16,string))" txna ApplicationArgs 0 - match abi_route_nestedTuple + match *abi_route_nestedTuple err -process_static_tuple_element: +*process_static_tuple_element: proto 4 3 frame_dig -4 // tuple head frame_dig -1 // element @@ -104,7 +104,7 @@ process_static_tuple_element: frame_dig -2 // head offset retsub -process_dynamic_tuple_element: +*process_dynamic_tuple_element: proto 4 3 frame_dig -4 // tuple head frame_dig -2 // head offset diff --git a/tests/contracts/artifacts/ABITestNestedTuple.arc32.json b/tests/contracts/artifacts/ABITestNestedTuple.arc32.json index 7694b8d13..feb58c5f6 100644 --- a/tests/contracts/artifacts/ABITestNestedTuple.arc32.json +++ b/tests/contracts/artifacts/ABITestNestedTuple.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBuZXN0ZWRUdXBsZSgpKHVpbnQxNiwodWludDgsc3RyaW5nKSwodWludDE2LHN0cmluZykpCmFiaV9yb3V0ZV9uZXN0ZWRUdXBsZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBuZXN0ZWRUdXBsZSgpKHVpbnQxNiwodWludDgsc3RyaW5nKSwodWludDE2LHN0cmluZykpCgljYWxsc3ViIG5lc3RlZFR1cGxlCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gbmVzdGVkVHVwbGUoKTogW3VpbnQxNiwgW3VpbnQ8OD4sIHN0cmluZ10sIFt1aW50MTYsIHN0cmluZ11dCm5lc3RlZFR1cGxlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NjkyCgkvLyBhOiBbdWludDE2LCBbdWludDw4Piwgc3RyaW5nXSwgW3VpbnQxNiwgc3RyaW5nXV0gPSBbMTEsIFsyMiwgJ2ZvbyddLCBbMzMsICdiYXInXV0KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJYnl0ZSAweDAwMDYgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJYnl0ZSAweDAwMGIKCWNhbGxzdWIgcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglieXRlIDB4MDAwMyAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0CglieXRlIDB4MTYKCWNhbGxzdWIgcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDM2NjZmNmYKCWNhbGxzdWIgcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJY2FsbHN1YiBwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglieXRlIDB4MDAwNCAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0CglieXRlIDB4MDAyMQoJY2FsbHN1YiBwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMzYyNjE3MgoJY2FsbHN1YiBwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCgljYWxsc3ViIHByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDE2LCBbdWludDw4Piwgc3RyaW5nXSwgW3VpbnQxNiwgc3RyaW5nXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6Njk0CgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTYsIFt1aW50PDg+LCBzdHJpbmddLCBbdWludDE2LCBzdHJpbmddXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJuZXN0ZWRUdXBsZSgpKHVpbnQxNiwodWludDgsc3RyaW5nKSwodWludDE2LHN0cmluZykpIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX25lc3RlZFR1cGxlCgllcnIKCnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJY29uY2F0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0Cgljb25jYXQKCWZyYW1lX2J1cnkgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWR1cAoJbGVuCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWJ0b2kKCSsKCWl0b2IKCWV4dHJhY3QgNiAyCglmcmFtZV9idXJ5IC0yIC8vIGhlYWQgb2Zmc2V0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJc3dhcAoJY29uY2F0CglmcmFtZV9idXJ5IC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBuZXN0ZWRUdXBsZSgpKHVpbnQxNiwodWludDgsc3RyaW5nKSwodWludDE2LHN0cmluZykpCiphYmlfcm91dGVfbmVzdGVkVHVwbGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbmVzdGVkVHVwbGUoKSh1aW50MTYsKHVpbnQ4LHN0cmluZyksKHVpbnQxNixzdHJpbmcpKQoJY2FsbHN1YiBuZXN0ZWRUdXBsZQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIG5lc3RlZFR1cGxlKCk6IFt1aW50MTYsIFt1aW50PDg+LCBzdHJpbmddLCBbdWludDE2LCBzdHJpbmddXQpuZXN0ZWRUdXBsZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjY5MgoJLy8gYTogW3VpbnQxNiwgW3VpbnQ8OD4sIHN0cmluZ10sIFt1aW50MTYsIHN0cmluZ11dID0gWzExLCBbMjIsICdmb28nXSwgWzMzLCAnYmFyJ11dCglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDA2IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCWJ5dGUgMHgwMDBiCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDAzIC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCWJ5dGUgMHgxNgoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDM2NjZmNmYKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDA0IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCWJ5dGUgMHgwMDIxCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMzYyNjE3MgoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50MTYsIFt1aW50PDg+LCBzdHJpbmddLCBbdWludDE2LCBzdHJpbmddXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo2OTQKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQxNiwgW3VpbnQ8OD4sIHN0cmluZ10sIFt1aW50MTYsIHN0cmluZ11dCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJuZXN0ZWRUdXBsZSgpKHVpbnQxNiwodWludDgsc3RyaW5nKSwodWludDE2LHN0cmluZykpIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9uZXN0ZWRUdXBsZQoJZXJyCgoqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50Cgljb25jYXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0Cgljb25jYXQKCWZyYW1lX2J1cnkgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWR1cAoJbGVuCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWJ0b2kKCSsKCWl0b2IKCWV4dHJhY3QgNiAyCglmcmFtZV9idXJ5IC0yIC8vIGhlYWQgb2Zmc2V0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJc3dhcAoJY29uY2F0CglmcmFtZV9idXJ5IC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestNestedTypesInSignature.approval.teal b/tests/contracts/artifacts/ABITestNestedTypesInSignature.approval.teal index 345cc0f23..4e102dc48 100644 --- a/tests/contracts/artifacts/ABITestNestedTypesInSignature.approval.teal +++ b/tests/contracts/artifacts/ABITestNestedTypesInSignature.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // nestedTypesInSignature()((uint64,uint64),uint64) -abi_route_nestedTypesInSignature: +*abi_route_nestedTypesInSignature: // The ABI return prefix byte 0x151f7c75 @@ -42,18 +42,18 @@ nestedTypesInSignature: byte 0x000000000000000000000000000000000000000000000000 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "nestedTypesInSignature()((uint64,uint64),uint64)" txna ApplicationArgs 0 - match abi_route_nestedTypesInSignature + match *abi_route_nestedTypesInSignature err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestNestedTypesInSignature.arc32.json b/tests/contracts/artifacts/ABITestNestedTypesInSignature.arc32.json index ed7072dfe..764c6a940 100644 --- a/tests/contracts/artifacts/ABITestNestedTypesInSignature.arc32.json +++ b/tests/contracts/artifacts/ABITestNestedTypesInSignature.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBuZXN0ZWRUeXBlc0luU2lnbmF0dXJlKCkoKHVpbnQ2NCx1aW50NjQpLHVpbnQ2NCkKYWJpX3JvdXRlX25lc3RlZFR5cGVzSW5TaWduYXR1cmU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbmVzdGVkVHlwZXNJblNpZ25hdHVyZSgpKCh1aW50NjQsdWludDY0KSx1aW50NjQpCgljYWxsc3ViIG5lc3RlZFR5cGVzSW5TaWduYXR1cmUKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBuZXN0ZWRUeXBlc0luU2lnbmF0dXJlKCk6IFtUNSwgbnVtYmVyXQpuZXN0ZWRUeXBlc0luU2lnbmF0dXJlOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjExNDUKCS8vIHJldHVybiBbYnplcm88VDU+KCksIDBdOwoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJuZXN0ZWRUeXBlc0luU2lnbmF0dXJlKCkoKHVpbnQ2NCx1aW50NjQpLHVpbnQ2NCkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfbmVzdGVkVHlwZXNJblNpZ25hdHVyZQoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBuZXN0ZWRUeXBlc0luU2lnbmF0dXJlKCkoKHVpbnQ2NCx1aW50NjQpLHVpbnQ2NCkKKmFiaV9yb3V0ZV9uZXN0ZWRUeXBlc0luU2lnbmF0dXJlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG5lc3RlZFR5cGVzSW5TaWduYXR1cmUoKSgodWludDY0LHVpbnQ2NCksdWludDY0KQoJY2FsbHN1YiBuZXN0ZWRUeXBlc0luU2lnbmF0dXJlCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gbmVzdGVkVHlwZXNJblNpZ25hdHVyZSgpOiBbVDUsIG51bWJlcl0KbmVzdGVkVHlwZXNJblNpZ25hdHVyZToKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTQ1CgkvLyByZXR1cm4gW2J6ZXJvPFQ1PigpLCAwXTsKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgIm5lc3RlZFR5cGVzSW5TaWduYXR1cmUoKSgodWludDY0LHVpbnQ2NCksdWludDY0KSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfbmVzdGVkVHlwZXNJblNpZ25hdHVyZQoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestNonE2E.approval.teal b/tests/contracts/artifacts/ABITestNonE2E.approval.teal index dc2e64603..1bce8ce0f 100644 --- a/tests/contracts/artifacts/ABITestNonE2E.approval.teal +++ b/tests/contracts/artifacts/ABITestNonE2E.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // typeWithComments()(string,uint64,uint64) -abi_route_typeWithComments: +*abi_route_typeWithComments: // The ABI return prefix byte 0x151f7c75 @@ -47,32 +47,32 @@ typeWithComments: byte 0x // initial tail byte 0x0012 // initial head offset byte 0x000c48656c6c6f20576f726c6421 - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element byte 0x0000000000000001 - callsub process_static_tuple_element + callsub *process_static_tuple_element byte 0x0000000000000002 - callsub process_static_tuple_element + callsub *process_static_tuple_element pop // pop head offset concat // concat head and tail retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "typeWithComments()(string,uint64,uint64)" txna ApplicationArgs 0 - match abi_route_typeWithComments + match *abi_route_typeWithComments err -process_static_tuple_element: +*process_static_tuple_element: proto 4 3 frame_dig -4 // tuple head frame_dig -1 // element @@ -81,7 +81,7 @@ process_static_tuple_element: frame_dig -2 // head offset retsub -process_dynamic_tuple_element: +*process_dynamic_tuple_element: proto 4 3 frame_dig -4 // tuple head frame_dig -2 // head offset diff --git a/tests/contracts/artifacts/ABITestNonE2E.arc32.json b/tests/contracts/artifacts/ABITestNonE2E.arc32.json index b7a031254..996412b61 100644 --- a/tests/contracts/artifacts/ABITestNonE2E.arc32.json +++ b/tests/contracts/artifacts/ABITestNonE2E.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyB0eXBlV2l0aENvbW1lbnRzKCkoc3RyaW5nLHVpbnQ2NCx1aW50NjQpCmFiaV9yb3V0ZV90eXBlV2l0aENvbW1lbnRzOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHR5cGVXaXRoQ29tbWVudHMoKShzdHJpbmcsdWludDY0LHVpbnQ2NCkKCWNhbGxzdWIgdHlwZVdpdGhDb21tZW50cwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHR5cGVXaXRoQ29tbWVudHMoKTogVDYKdHlwZVdpdGhDb21tZW50czoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTY5CgkvLyByZXR1cm4gewoJLy8gICAgICAgZm9vOiAnSGVsbG8gV29ybGQhJywKCS8vICAgICAgIGJhcjogMSwKCS8vICAgICAgIGJhejogMiwKCS8vICAgICB9OwoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglieXRlIDB4MDAxMiAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0CglieXRlIDB4MDAwYzQ4NjU2YzZjNmYyMDU3NmY3MjZjNjQyMQoJY2FsbHN1YiBwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDEKCWNhbGxzdWIgcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDIKCWNhbGxzdWIgcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgInR5cGVXaXRoQ29tbWVudHMoKShzdHJpbmcsdWludDY0LHVpbnQ2NCkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfdHlwZVdpdGhDb21tZW50cwoJZXJyCgpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWNvbmNhdAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3Vi", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyB0eXBlV2l0aENvbW1lbnRzKCkoc3RyaW5nLHVpbnQ2NCx1aW50NjQpCiphYmlfcm91dGVfdHlwZVdpdGhDb21tZW50czoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSB0eXBlV2l0aENvbW1lbnRzKCkoc3RyaW5nLHVpbnQ2NCx1aW50NjQpCgljYWxsc3ViIHR5cGVXaXRoQ29tbWVudHMKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB0eXBlV2l0aENvbW1lbnRzKCk6IFQ2CnR5cGVXaXRoQ29tbWVudHM6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTE2OQoJLy8gcmV0dXJuIHsKCS8vICAgICAgIGZvbzogJ0hlbGxvIFdvcmxkIScsCgkvLyAgICAgICBiYXI6IDEsCgkvLyAgICAgICBiYXo6IDIsCgkvLyAgICAgfTsKCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJYnl0ZSAweDAwMTIgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJYnl0ZSAweDAwMGM0ODY1NmM2YzZmMjA1NzZmNzI2YzY0MjEKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMQoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDIKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAidHlwZVdpdGhDb21tZW50cygpKHN0cmluZyx1aW50NjQsdWludDY0KSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdHlwZVdpdGhDb21tZW50cwoJZXJyCgoqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50Cgljb25jYXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0Cgljb25jYXQKCWZyYW1lX2J1cnkgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWR1cAoJbGVuCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWJ0b2kKCSsKCWl0b2IKCWV4dHJhY3QgNiAyCglmcmFtZV9idXJ5IC0yIC8vIGhlYWQgb2Zmc2V0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJc3dhcAoJY29uY2F0CglmcmFtZV9idXJ5IC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestNonLiteralDynamicElementInTuple.approval.teal b/tests/contracts/artifacts/ABITestNonLiteralDynamicElementInTuple.approval.teal index 2359fc1b7..c92a066f1 100644 --- a/tests/contracts/artifacts/ABITestNonLiteralDynamicElementInTuple.approval.teal +++ b/tests/contracts/artifacts/ABITestNonLiteralDynamicElementInTuple.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // nonLiteralDynamicElementInTuple()(uint8,uint16,uint8[],uint16[],uint8[]) -abi_route_nonLiteralDynamicElementInTuple: +*abi_route_nonLiteralDynamicElementInTuple: // The ABI return prefix byte 0x151f7c75 @@ -52,11 +52,11 @@ nonLiteralDynamicElementInTuple: byte 0x // initial tail byte 0x0009 // initial head offset byte 0x01 - callsub process_static_tuple_element + callsub *process_static_tuple_element byte 0x0002 - callsub process_static_tuple_element + callsub *process_static_tuple_element byte 0x00020304 - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element frame_dig 0 // e: uint16[] dup len @@ -66,9 +66,9 @@ nonLiteralDynamicElementInTuple: extract 6 2 swap concat - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element byte 0x00020708 - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element pop // pop head offset concat // concat head and tail frame_bury 1 // a: [uint<8>, uint16, uint<8>[], uint16[], uint<8>[]] @@ -84,23 +84,23 @@ nonLiteralDynamicElementInTuple: popn 1 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "nonLiteralDynamicElementInTuple()(uint8,uint16,uint8[],uint16[],uint8[])" txna ApplicationArgs 0 - match abi_route_nonLiteralDynamicElementInTuple + match *abi_route_nonLiteralDynamicElementInTuple err -process_static_tuple_element: +*process_static_tuple_element: proto 4 3 frame_dig -4 // tuple head frame_dig -1 // element @@ -109,7 +109,7 @@ process_static_tuple_element: frame_dig -2 // head offset retsub -process_dynamic_tuple_element: +*process_dynamic_tuple_element: proto 4 3 frame_dig -4 // tuple head frame_dig -2 // head offset diff --git a/tests/contracts/artifacts/ABITestNonLiteralDynamicElementInTuple.arc32.json b/tests/contracts/artifacts/ABITestNonLiteralDynamicElementInTuple.arc32.json index eac42f22c..e68a79c72 100644 --- a/tests/contracts/artifacts/ABITestNonLiteralDynamicElementInTuple.arc32.json +++ b/tests/contracts/artifacts/ABITestNonLiteralDynamicElementInTuple.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBub25MaXRlcmFsRHluYW1pY0VsZW1lbnRJblR1cGxlKCkodWludDgsdWludDE2LHVpbnQ4W10sdWludDE2W10sdWludDhbXSkKYWJpX3JvdXRlX25vbkxpdGVyYWxEeW5hbWljRWxlbWVudEluVHVwbGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbm9uTGl0ZXJhbER5bmFtaWNFbGVtZW50SW5UdXBsZSgpKHVpbnQ4LHVpbnQxNix1aW50OFtdLHVpbnQxNltdLHVpbnQ4W10pCgljYWxsc3ViIG5vbkxpdGVyYWxEeW5hbWljRWxlbWVudEluVHVwbGUKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBub25MaXRlcmFsRHluYW1pY0VsZW1lbnRJblR1cGxlKCk6IFt1aW50PDg+LCB1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2W10sIHVpbnQ8OD5bXV0Kbm9uTGl0ZXJhbER5bmFtaWNFbGVtZW50SW5UdXBsZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDIwCgkvLyBlOiB1aW50MTZbXSA9IFs1LCA2XQoJYnl0ZSAweDAwMDUwMDA2CglmcmFtZV9idXJ5IDAgLy8gZTogdWludDE2W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDIxCgkvLyBhOiBbdWludDw4PiwgdWludDE2LCB1aW50PDg+W10sIHVpbnQxNltdLCB1aW50PDg+W11dID0gWzEsIDIsIFszLCA0XSwgZSwgWzcsIDhdXQoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglieXRlIDB4MDAwOSAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0CglieXRlIDB4MDEKCWNhbGxzdWIgcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDIKCWNhbGxzdWIgcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDIwMzA0CgljYWxsc3ViIHByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglmcmFtZV9kaWcgMCAvLyBlOiB1aW50MTZbXQoJZHVwCglsZW4KCWludCAyCgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0CgljYWxsc3ViIHByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMjA3MDgKCWNhbGxzdWIgcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJZnJhbWVfYnVyeSAxIC8vIGE6IFt1aW50PDg+LCB1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2W10sIHVpbnQ8OD5bXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDIzCgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAxIC8vIGE6IFt1aW50PDg+LCB1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2W10sIHVpbnQ8OD5bXV0KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgIm5vbkxpdGVyYWxEeW5hbWljRWxlbWVudEluVHVwbGUoKSh1aW50OCx1aW50MTYsdWludDhbXSx1aW50MTZbXSx1aW50OFtdKSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9ub25MaXRlcmFsRHluYW1pY0VsZW1lbnRJblR1cGxlCgllcnIKCnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJY29uY2F0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0Cgljb25jYXQKCWZyYW1lX2J1cnkgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWR1cAoJbGVuCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWJ0b2kKCSsKCWl0b2IKCWV4dHJhY3QgNiAyCglmcmFtZV9idXJ5IC0yIC8vIGhlYWQgb2Zmc2V0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJc3dhcAoJY29uY2F0CglmcmFtZV9idXJ5IC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBub25MaXRlcmFsRHluYW1pY0VsZW1lbnRJblR1cGxlKCkodWludDgsdWludDE2LHVpbnQ4W10sdWludDE2W10sdWludDhbXSkKKmFiaV9yb3V0ZV9ub25MaXRlcmFsRHluYW1pY0VsZW1lbnRJblR1cGxlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG5vbkxpdGVyYWxEeW5hbWljRWxlbWVudEluVHVwbGUoKSh1aW50OCx1aW50MTYsdWludDhbXSx1aW50MTZbXSx1aW50OFtdKQoJY2FsbHN1YiBub25MaXRlcmFsRHluYW1pY0VsZW1lbnRJblR1cGxlCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gbm9uTGl0ZXJhbER5bmFtaWNFbGVtZW50SW5UdXBsZSgpOiBbdWludDw4PiwgdWludDE2LCB1aW50PDg+W10sIHVpbnQxNltdLCB1aW50PDg+W11dCm5vbkxpdGVyYWxEeW5hbWljRWxlbWVudEluVHVwbGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQyMAoJLy8gZTogdWludDE2W10gPSBbNSwgNl0KCWJ5dGUgMHgwMDA1MDAwNgoJZnJhbWVfYnVyeSAwIC8vIGU6IHVpbnQxNltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQyMQoJLy8gYTogW3VpbnQ8OD4sIHVpbnQxNiwgdWludDw4PltdLCB1aW50MTZbXSwgdWludDw4PltdXSA9IFsxLCAyLCBbMywgNF0sIGUsIFs3LCA4XV0KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJYnl0ZSAweDAwMDkgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJYnl0ZSAweDAxCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMgoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDIwMzA0CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJZnJhbWVfZGlnIDAgLy8gZTogdWludDE2W10KCWR1cAoJbGVuCglpbnQgMgoJLwoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDAyMDcwOAoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJZnJhbWVfYnVyeSAxIC8vIGE6IFt1aW50PDg+LCB1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2W10sIHVpbnQ8OD5bXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDIzCgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAxIC8vIGE6IFt1aW50PDg+LCB1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2W10sIHVpbnQ8OD5bXV0KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJub25MaXRlcmFsRHluYW1pY0VsZW1lbnRJblR1cGxlKCkodWludDgsdWludDE2LHVpbnQ4W10sdWludDE2W10sdWludDhbXSkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX25vbkxpdGVyYWxEeW5hbWljRWxlbWVudEluVHVwbGUKCWVycgoKKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJY29uY2F0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCipwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3Vi", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestNonLiteralNestedArrayRef.approval.teal b/tests/contracts/artifacts/ABITestNonLiteralNestedArrayRef.approval.teal index a882bd474..48571aa5b 100644 --- a/tests/contracts/artifacts/ABITestNonLiteralNestedArrayRef.approval.teal +++ b/tests/contracts/artifacts/ABITestNonLiteralNestedArrayRef.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // nonLiteralNestedArrayRef()uint8[2][2] -abi_route_nonLiteralNestedArrayRef: +*abi_route_nonLiteralNestedArrayRef: // The ABI return prefix byte 0x151f7c75 @@ -84,18 +84,18 @@ nonLiteralNestedArrayRef: popn 2 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "nonLiteralNestedArrayRef()uint8[2][2]" txna ApplicationArgs 0 - match abi_route_nonLiteralNestedArrayRef + match *abi_route_nonLiteralNestedArrayRef err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestNonLiteralNestedArrayRef.arc32.json b/tests/contracts/artifacts/ABITestNonLiteralNestedArrayRef.arc32.json index 0a81a2c03..fc9b5cc26 100644 --- a/tests/contracts/artifacts/ABITestNonLiteralNestedArrayRef.arc32.json +++ b/tests/contracts/artifacts/ABITestNonLiteralNestedArrayRef.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBub25MaXRlcmFsTmVzdGVkQXJyYXlSZWYoKXVpbnQ4WzJdWzJdCmFiaV9yb3V0ZV9ub25MaXRlcmFsTmVzdGVkQXJyYXlSZWY6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbm9uTGl0ZXJhbE5lc3RlZEFycmF5UmVmKCl1aW50OFsyXVsyXQoJY2FsbHN1YiBub25MaXRlcmFsTmVzdGVkQXJyYXlSZWYKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBub25MaXRlcmFsTmVzdGVkQXJyYXlSZWYoKTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDw4PiwgMj4sIDI+Cm5vbkxpdGVyYWxOZXN0ZWRBcnJheVJlZjoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDIKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6Nzg0CgkvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50PDg+LCAyPiwgMj4gPSBbCgkvLyAgICAgICBbMSwgMl0sCgkvLyAgICAgICBbMywgNF0sCgkvLyAgICAgXQoJYnl0ZSAweDAxMDIwMzA0CglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDw4PiwgMj4sIDI+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjc4OQoJLy8gaSA9IDEKCWludCAxCglmcmFtZV9idXJ5IDEgLy8gaTogdWludDY0CglmcmFtZV9kaWcgMSAvLyBpOiB1aW50NjQKCWZyYW1lX2J1cnkgMiAvLyBhY2Nlc3NvcjogYWNjZXNzb3IvLzAvL2IKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NzkyCgkvLyBpID0gMTMzNwoJaW50IDEzMzcKCWZyYW1lX2J1cnkgMSAvLyBpOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6Nzk0CgkvLyBiWzFdID0gNSBhcyB1aW50PDg+CglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50PDg+LCAyPiwgMj4KCWZyYW1lX2RpZyAyIC8vIHNhdmVkIGFjY2Vzc29yOiBhY2Nlc3Nvci8vMC8vYgoJaW50IDIKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50IDEKCSsKCWJ5dGUgMHgwNQoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgMCAvLyBiOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50PDg+LCAyPiwgMj4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6Nzk2CgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ8OD4sIDI+LCAyPgoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDIKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAibm9uTGl0ZXJhbE5lc3RlZEFycmF5UmVmKCl1aW50OFsyXVsyXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9ub25MaXRlcmFsTmVzdGVkQXJyYXlSZWYKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBub25MaXRlcmFsTmVzdGVkQXJyYXlSZWYoKXVpbnQ4WzJdWzJdCiphYmlfcm91dGVfbm9uTGl0ZXJhbE5lc3RlZEFycmF5UmVmOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG5vbkxpdGVyYWxOZXN0ZWRBcnJheVJlZigpdWludDhbMl1bMl0KCWNhbGxzdWIgbm9uTGl0ZXJhbE5lc3RlZEFycmF5UmVmCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gbm9uTGl0ZXJhbE5lc3RlZEFycmF5UmVmKCk6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ8OD4sIDI+LCAyPgpub25MaXRlcmFsTmVzdGVkQXJyYXlSZWY6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiAyCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjc4NAoJLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDw4PiwgMj4sIDI+ID0gWwoJLy8gICAgICAgWzEsIDJdLAoJLy8gICAgICAgWzMsIDRdLAoJLy8gICAgIF0KCWJ5dGUgMHgwMTAyMDMwNAoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ8OD4sIDI+LCAyPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo3ODkKCS8vIGkgPSAxCglpbnQgMQoJZnJhbWVfYnVyeSAxIC8vIGk6IHVpbnQ2NAoJZnJhbWVfZGlnIDEgLy8gaTogdWludDY0CglmcmFtZV9idXJ5IDIgLy8gYWNjZXNzb3I6IGFjY2Vzc29yLy8wLy9iCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjc5MgoJLy8gaSA9IDEzMzcKCWludCAxMzM3CglmcmFtZV9idXJ5IDEgLy8gaTogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjc5NAoJLy8gYlsxXSA9IDUgYXMgdWludDw4PgoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDw4PiwgMj4sIDI+CglmcmFtZV9kaWcgMiAvLyBzYXZlZCBhY2Nlc3NvcjogYWNjZXNzb3IvLzAvL2IKCWludCAyCgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludCAxCgkrCglieXRlIDB4MDUKCXJlcGxhY2UzCglmcmFtZV9idXJ5IDAgLy8gYjogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDw4PiwgMj4sIDI+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjc5NgoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50PDg+LCAyPiwgMj4KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAyCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJub25MaXRlcmFsTmVzdGVkQXJyYXlSZWYoKXVpbnQ4WzJdWzJdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9ub25MaXRlcmFsTmVzdGVkQXJyYXlSZWYKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestNonLiteralStaticArrayAccess.approval.teal b/tests/contracts/artifacts/ABITestNonLiteralStaticArrayAccess.approval.teal index 59b68a8a1..cc4f3d9a8 100644 --- a/tests/contracts/artifacts/ABITestNonLiteralStaticArrayAccess.approval.teal +++ b/tests/contracts/artifacts/ABITestNonLiteralStaticArrayAccess.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // nonLiteralStaticArrayAccess()uint64 -abi_route_nonLiteralStaticArrayAccess: +*abi_route_nonLiteralStaticArrayAccess: // The ABI return prefix byte 0x151f7c75 @@ -65,18 +65,18 @@ nonLiteralStaticArrayAccess: popn 1 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "nonLiteralStaticArrayAccess()uint64" txna ApplicationArgs 0 - match abi_route_nonLiteralStaticArrayAccess + match *abi_route_nonLiteralStaticArrayAccess err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestNonLiteralStaticArrayAccess.arc32.json b/tests/contracts/artifacts/ABITestNonLiteralStaticArrayAccess.arc32.json index b5f781b77..1ab70a640 100644 --- a/tests/contracts/artifacts/ABITestNonLiteralStaticArrayAccess.arc32.json +++ b/tests/contracts/artifacts/ABITestNonLiteralStaticArrayAccess.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBub25MaXRlcmFsU3RhdGljQXJyYXlBY2Nlc3MoKXVpbnQ2NAphYmlfcm91dGVfbm9uTGl0ZXJhbFN0YXRpY0FycmF5QWNjZXNzOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG5vbkxpdGVyYWxTdGF0aWNBcnJheUFjY2VzcygpdWludDY0CgljYWxsc3ViIG5vbkxpdGVyYWxTdGF0aWNBcnJheUFjY2VzcwoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIG5vbkxpdGVyYWxTdGF0aWNBcnJheUFjY2VzcygpOiB1aW50NjQKbm9uTGl0ZXJhbFN0YXRpY0FycmF5QWNjZXNzOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1NQoJLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPiA9IFsxMSwgMjIsIDMzXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAwMDAwMDAwMDAwMDAyMQoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTYKCS8vIG4gPSBidG9pKGl0b2IoMikpCglpbnQgMgoJZnJhbWVfYnVyeSAxIC8vIG46IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1OAoJLy8gcmV0dXJuIGFbbl07CglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CglleHRyYWN0IDE2IDgKCWJ0b2kKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgIm5vbkxpdGVyYWxTdGF0aWNBcnJheUFjY2VzcygpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX25vbkxpdGVyYWxTdGF0aWNBcnJheUFjY2VzcwoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBub25MaXRlcmFsU3RhdGljQXJyYXlBY2Nlc3MoKXVpbnQ2NAoqYWJpX3JvdXRlX25vbkxpdGVyYWxTdGF0aWNBcnJheUFjY2VzczoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBub25MaXRlcmFsU3RhdGljQXJyYXlBY2Nlc3MoKXVpbnQ2NAoJY2FsbHN1YiBub25MaXRlcmFsU3RhdGljQXJyYXlBY2Nlc3MKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBub25MaXRlcmFsU3RhdGljQXJyYXlBY2Nlc3MoKTogdWludDY0Cm5vbkxpdGVyYWxTdGF0aWNBcnJheUFjY2VzczoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTUKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbMTEsIDIyLCAzM10KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDBiMDAwMDAwMDAwMDAwMDAxNjAwMDAwMDAwMDAwMDAwMjEKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjU2CgkvLyBuID0gYnRvaShpdG9iKDIpKQoJaW50IDIKCWZyYW1lX2J1cnkgMSAvLyBuOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTgKCS8vIHJldHVybiBhW25dOwoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoJZXh0cmFjdCAxNiA4CglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMQoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAibm9uTGl0ZXJhbFN0YXRpY0FycmF5QWNjZXNzKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX25vbkxpdGVyYWxTdGF0aWNBcnJheUFjY2VzcwoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestNonLiteralStaticArrayElements.approval.teal b/tests/contracts/artifacts/ABITestNonLiteralStaticArrayElements.approval.teal index e8420fef4..542b5446e 100644 --- a/tests/contracts/artifacts/ABITestNonLiteralStaticArrayElements.approval.teal +++ b/tests/contracts/artifacts/ABITestNonLiteralStaticArrayElements.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // nonLiteralStaticArrayElements()uint64 -abi_route_nonLiteralStaticArrayElements: +*abi_route_nonLiteralStaticArrayElements: // The ABI return prefix byte 0x151f7c75 @@ -80,18 +80,18 @@ nonLiteralStaticArrayElements: popn 3 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "nonLiteralStaticArrayElements()uint64" txna ApplicationArgs 0 - match abi_route_nonLiteralStaticArrayElements + match *abi_route_nonLiteralStaticArrayElements err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestNonLiteralStaticArrayElements.arc32.json b/tests/contracts/artifacts/ABITestNonLiteralStaticArrayElements.arc32.json index 678803792..3403fe199 100644 --- a/tests/contracts/artifacts/ABITestNonLiteralStaticArrayElements.arc32.json +++ b/tests/contracts/artifacts/ABITestNonLiteralStaticArrayElements.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBub25MaXRlcmFsU3RhdGljQXJyYXlFbGVtZW50cygpdWludDY0CmFiaV9yb3V0ZV9ub25MaXRlcmFsU3RhdGljQXJyYXlFbGVtZW50czoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBub25MaXRlcmFsU3RhdGljQXJyYXlFbGVtZW50cygpdWludDY0CgljYWxsc3ViIG5vbkxpdGVyYWxTdGF0aWNBcnJheUVsZW1lbnRzCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gbm9uTGl0ZXJhbFN0YXRpY0FycmF5RWxlbWVudHMoKTogdWludDY0Cm5vbkxpdGVyYWxTdGF0aWNBcnJheUVsZW1lbnRzOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gMwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czozMwoJLy8gbjEgPSBidG9pKGl0b2IoMTEpKQoJaW50IDExCglmcmFtZV9idXJ5IDAgLy8gbjE6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czozNAoJLy8gbjIgPSBidG9pKGl0b2IoMjIpKQoJaW50IDIyCglmcmFtZV9idXJ5IDEgLy8gbjI6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czozNQoJLy8gbjMgPSBidG9pKGl0b2IoMzMpKQoJaW50IDMzCglmcmFtZV9idXJ5IDIgLy8gbjM6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czozNgoJLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPiA9IFtuMSwgbjIsIG4zXQoJZnJhbWVfZGlnIDAgLy8gbjE6IHVpbnQ2NAoJaXRvYgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMTYKCWNvbmNhdAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMjEKCWNvbmNhdAoJZnJhbWVfYnVyeSAzIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MzgKCS8vIHJldHVybiBhWzFdOwoJZnJhbWVfZGlnIDMgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoJZXh0cmFjdCA4IDgKCWJ0b2kKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAzCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgIm5vbkxpdGVyYWxTdGF0aWNBcnJheUVsZW1lbnRzKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfbm9uTGl0ZXJhbFN0YXRpY0FycmF5RWxlbWVudHMKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBub25MaXRlcmFsU3RhdGljQXJyYXlFbGVtZW50cygpdWludDY0CiphYmlfcm91dGVfbm9uTGl0ZXJhbFN0YXRpY0FycmF5RWxlbWVudHM6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbm9uTGl0ZXJhbFN0YXRpY0FycmF5RWxlbWVudHMoKXVpbnQ2NAoJY2FsbHN1YiBub25MaXRlcmFsU3RhdGljQXJyYXlFbGVtZW50cwoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIG5vbkxpdGVyYWxTdGF0aWNBcnJheUVsZW1lbnRzKCk6IHVpbnQ2NApub25MaXRlcmFsU3RhdGljQXJyYXlFbGVtZW50czoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDMKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MzMKCS8vIG4xID0gYnRvaShpdG9iKDExKSkKCWludCAxMQoJZnJhbWVfYnVyeSAwIC8vIG4xOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MzQKCS8vIG4yID0gYnRvaShpdG9iKDIyKSkKCWludCAyMgoJZnJhbWVfYnVyeSAxIC8vIG4yOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MzUKCS8vIG4zID0gYnRvaShpdG9iKDMzKSkKCWludCAzMwoJZnJhbWVfYnVyeSAyIC8vIG4zOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MzYKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbbjEsIG4yLCBuM10KCWZyYW1lX2RpZyAwIC8vIG4xOiB1aW50NjQKCWl0b2IKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDE2Cgljb25jYXQKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDIxCgljb25jYXQKCWZyYW1lX2J1cnkgMyAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM4CgkvLyByZXR1cm4gYVsxXTsKCWZyYW1lX2RpZyAzIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWV4dHJhY3QgOCA4CglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMwoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAibm9uTGl0ZXJhbFN0YXRpY0FycmF5RWxlbWVudHMoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfbm9uTGl0ZXJhbFN0YXRpY0FycmF5RWxlbWVudHMKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestObjectArrayRef.approval.teal b/tests/contracts/artifacts/ABITestObjectArrayRef.approval.teal index a2b197e24..4f76cbe79 100644 --- a/tests/contracts/artifacts/ABITestObjectArrayRef.approval.teal +++ b/tests/contracts/artifacts/ABITestObjectArrayRef.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // objectArrayRef()(uint8[2][2]) -abi_route_objectArrayRef: +*abi_route_objectArrayRef: // The ABI return prefix byte 0x151f7c75 @@ -67,18 +67,18 @@ objectArrayRef: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "objectArrayRef()(uint8[2][2])" txna ApplicationArgs 0 - match abi_route_objectArrayRef + match *abi_route_objectArrayRef err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestObjectArrayRef.arc32.json b/tests/contracts/artifacts/ABITestObjectArrayRef.arc32.json index f34bcef5d..28c1f4488 100644 --- a/tests/contracts/artifacts/ABITestObjectArrayRef.arc32.json +++ b/tests/contracts/artifacts/ABITestObjectArrayRef.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBvYmplY3RBcnJheVJlZigpKHVpbnQ4WzJdWzJdKQphYmlfcm91dGVfb2JqZWN0QXJyYXlSZWY6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgb2JqZWN0QXJyYXlSZWYoKSh1aW50OFsyXVsyXSkKCWNhbGxzdWIgb2JqZWN0QXJyYXlSZWYKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBvYmplY3RBcnJheVJlZigpOiBPYmplY3RSZWZUeXBlCm9iamVjdEFycmF5UmVmOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6ODI2CgkvLyBhOiBPYmplY3RSZWZUeXBlID0gewoJLy8gICAgICAgZm9vOiBbCgkvLyAgICAgICAgIFsxLCAyXSwKCS8vICAgICAgICAgWzMsIDRdLAoJLy8gICAgICAgXSwKCS8vICAgICB9CglieXRlIDB4MDEwMjAzMDQKCWZyYW1lX2J1cnkgMCAvLyBhOiBPYmplY3RSZWZUeXBlCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjgzMwoJLy8gYyA9IGJbMV0KCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4MzUKCS8vIGNbMV0gPSA1IGFzIHVpbnQ8OD4KCWZyYW1lX2RpZyAwIC8vIGE6IE9iamVjdFJlZlR5cGUKCWJ5dGUgMHgwNQoJcmVwbGFjZTIgMwoJZnJhbWVfYnVyeSAwIC8vIGM6IE9iamVjdFJlZlR5cGUKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6ODM3CgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IE9iamVjdFJlZlR5cGUKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAib2JqZWN0QXJyYXlSZWYoKSh1aW50OFsyXVsyXSkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfb2JqZWN0QXJyYXlSZWYKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBvYmplY3RBcnJheVJlZigpKHVpbnQ4WzJdWzJdKQoqYWJpX3JvdXRlX29iamVjdEFycmF5UmVmOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG9iamVjdEFycmF5UmVmKCkodWludDhbMl1bMl0pCgljYWxsc3ViIG9iamVjdEFycmF5UmVmCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gb2JqZWN0QXJyYXlSZWYoKTogT2JqZWN0UmVmVHlwZQpvYmplY3RBcnJheVJlZjoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjgyNgoJLy8gYTogT2JqZWN0UmVmVHlwZSA9IHsKCS8vICAgICAgIGZvbzogWwoJLy8gICAgICAgICBbMSwgMl0sCgkvLyAgICAgICAgIFszLCA0XSwKCS8vICAgICAgIF0sCgkvLyAgICAgfQoJYnl0ZSAweDAxMDIwMzA0CglmcmFtZV9idXJ5IDAgLy8gYTogT2JqZWN0UmVmVHlwZQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4MzMKCS8vIGMgPSBiWzFdCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6ODM1CgkvLyBjWzFdID0gNSBhcyB1aW50PDg+CglmcmFtZV9kaWcgMCAvLyBhOiBPYmplY3RSZWZUeXBlCglieXRlIDB4MDUKCXJlcGxhY2UyIDMKCWZyYW1lX2J1cnkgMCAvLyBjOiBPYmplY3RSZWZUeXBlCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjgzNwoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiBPYmplY3RSZWZUeXBlCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJvYmplY3RBcnJheVJlZigpKHVpbnQ4WzJdWzJdKSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfb2JqZWN0QXJyYXlSZWYKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestObjectInArgs.approval.teal b/tests/contracts/artifacts/ABITestObjectInArgs.approval.teal index ff6e7e9e3..3de6fb2af 100644 --- a/tests/contracts/artifacts/ABITestObjectInArgs.approval.teal +++ b/tests/contracts/artifacts/ABITestObjectInArgs.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,16 +9,16 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // privateMethod(a: Address, obj: ObjectInArgsType): uint64 @@ -37,7 +37,7 @@ privateMethod: retsub // objectInArgs()uint64 -abi_route_objectInArgs: +*abi_route_objectInArgs: // The ABI return prefix byte 0x151f7c75 @@ -60,18 +60,18 @@ objectInArgs: callsub privateMethod retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "objectInArgs()uint64" txna ApplicationArgs 0 - match abi_route_objectInArgs + match *abi_route_objectInArgs err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestObjectInArgs.arc32.json b/tests/contracts/artifacts/ABITestObjectInArgs.arc32.json index a6b17ea33..7b09e50f2 100644 --- a/tests/contracts/artifacts/ABITestObjectInArgs.arc32.json +++ b/tests/contracts/artifacts/ABITestObjectInArgs.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBwcml2YXRlTWV0aG9kKGE6IEFkZHJlc3MsIG9iajogT2JqZWN0SW5BcmdzVHlwZSk6IHVpbnQ2NApwcml2YXRlTWV0aG9kOgoJcHJvdG8gMiAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0MTMKCS8vIHJldHVybiBvYmouYmFyICsgb2JqLmZvbzsKCWZyYW1lX2RpZyAtMiAvLyBvYmo6IE9iamVjdEluQXJnc1R5cGUKCWV4dHJhY3QgOCA4CglidG9pCglmcmFtZV9kaWcgLTIgLy8gb2JqOiBPYmplY3RJbkFyZ3NUeXBlCglleHRyYWN0IDAgOAoJYnRvaQoJKwoJcmV0c3ViCgovLyBvYmplY3RJbkFyZ3MoKXVpbnQ2NAphYmlfcm91dGVfb2JqZWN0SW5BcmdzOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG9iamVjdEluQXJncygpdWludDY0CgljYWxsc3ViIG9iamVjdEluQXJncwoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIG9iamVjdEluQXJncygpOiB1aW50NjQKb2JqZWN0SW5BcmdzOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0MTcKCS8vIHJldHVybiB0aGlzLnByaXZhdGVNZXRob2QodGhpcy50eG4uc2VuZGVyLCB7IGZvbzogMSwgYmFyOiAyIH0pOwoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAyCgl0eG4gU2VuZGVyCgljYWxsc3ViIHByaXZhdGVNZXRob2QKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAib2JqZWN0SW5BcmdzKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfb2JqZWN0SW5BcmdzCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBwcml2YXRlTWV0aG9kKGE6IEFkZHJlc3MsIG9iajogT2JqZWN0SW5BcmdzVHlwZSk6IHVpbnQ2NApwcml2YXRlTWV0aG9kOgoJcHJvdG8gMiAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0MTMKCS8vIHJldHVybiBvYmouYmFyICsgb2JqLmZvbzsKCWZyYW1lX2RpZyAtMiAvLyBvYmo6IE9iamVjdEluQXJnc1R5cGUKCWV4dHJhY3QgOCA4CglidG9pCglmcmFtZV9kaWcgLTIgLy8gb2JqOiBPYmplY3RJbkFyZ3NUeXBlCglleHRyYWN0IDAgOAoJYnRvaQoJKwoJcmV0c3ViCgovLyBvYmplY3RJbkFyZ3MoKXVpbnQ2NAoqYWJpX3JvdXRlX29iamVjdEluQXJnczoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBvYmplY3RJbkFyZ3MoKXVpbnQ2NAoJY2FsbHN1YiBvYmplY3RJbkFyZ3MKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBvYmplY3RJbkFyZ3MoKTogdWludDY0Cm9iamVjdEluQXJnczoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDE3CgkvLyByZXR1cm4gdGhpcy5wcml2YXRlTWV0aG9kKHRoaXMudHhuLnNlbmRlciwgeyBmb286IDEsIGJhcjogMiB9KTsKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAxMDAwMDAwMDAwMDAwMDAwMgoJdHhuIFNlbmRlcgoJY2FsbHN1YiBwcml2YXRlTWV0aG9kCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJvYmplY3RJbkFyZ3MoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfb2JqZWN0SW5BcmdzCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestObjectRef.approval.teal b/tests/contracts/artifacts/ABITestObjectRef.approval.teal index 0cc9fd1be..8e4c8ec35 100644 --- a/tests/contracts/artifacts/ABITestObjectRef.approval.teal +++ b/tests/contracts/artifacts/ABITestObjectRef.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // objectRef()(uint64) -abi_route_objectRef: +*abi_route_objectRef: // The ABI return prefix byte 0x151f7c75 @@ -60,18 +60,18 @@ objectRef: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "objectRef()(uint64)" txna ApplicationArgs 0 - match abi_route_objectRef + match *abi_route_objectRef err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestObjectRef.arc32.json b/tests/contracts/artifacts/ABITestObjectRef.arc32.json index ebcdcfa88..e559498f4 100644 --- a/tests/contracts/artifacts/ABITestObjectRef.arc32.json +++ b/tests/contracts/artifacts/ABITestObjectRef.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBvYmplY3RSZWYoKSh1aW50NjQpCmFiaV9yb3V0ZV9vYmplY3RSZWY6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgb2JqZWN0UmVmKCkodWludDY0KQoJY2FsbHN1YiBvYmplY3RSZWYKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBvYmplY3RSZWYoKTogeyBmb286IHVpbnQ2NCB9Cm9iamVjdFJlZjoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjk5NQoJLy8gbzogeyBmb286IHVpbnQ2NCB9ID0geyBmb286IDEgfQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDEKCWZyYW1lX2J1cnkgMCAvLyBvOiB7IGZvbzogdWludDY0IH0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6OTk5CgkvLyByLmZvbyA9IDIKCWZyYW1lX2RpZyAwIC8vIG86IHsgZm9vOiB1aW50NjQgfQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDIKCXJlcGxhY2UyIDAKCWZyYW1lX2J1cnkgMCAvLyByOiB7IGZvbzogdWludDY0IH0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTAwMQoJLy8gcmV0dXJuIG87CglmcmFtZV9kaWcgMCAvLyBvOiB7IGZvbzogdWludDY0IH0KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAib2JqZWN0UmVmKCkodWludDY0KSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9vYmplY3RSZWYKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBvYmplY3RSZWYoKSh1aW50NjQpCiphYmlfcm91dGVfb2JqZWN0UmVmOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG9iamVjdFJlZigpKHVpbnQ2NCkKCWNhbGxzdWIgb2JqZWN0UmVmCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gb2JqZWN0UmVmKCk6IHsgZm9vOiB1aW50NjQgfQpvYmplY3RSZWY6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5OTUKCS8vIG86IHsgZm9vOiB1aW50NjQgfSA9IHsgZm9vOiAxIH0KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAxCglmcmFtZV9idXJ5IDAgLy8gbzogeyBmb286IHVpbnQ2NCB9CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjk5OQoJLy8gci5mb28gPSAyCglmcmFtZV9kaWcgMCAvLyBvOiB7IGZvbzogdWludDY0IH0KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAyCglyZXBsYWNlMiAwCglmcmFtZV9idXJ5IDAgLy8gcjogeyBmb286IHVpbnQ2NCB9CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwMDEKCS8vIHJldHVybiBvOwoJZnJhbWVfZGlnIDAgLy8gbzogeyBmb286IHVpbnQ2NCB9CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJvYmplY3RSZWYoKSh1aW50NjQpIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9vYmplY3RSZWYKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestOpcodeParamFromObject.approval.teal b/tests/contracts/artifacts/ABITestOpcodeParamFromObject.approval.teal index 6d2c6f57b..0c733584e 100644 --- a/tests/contracts/artifacts/ABITestOpcodeParamFromObject.approval.teal +++ b/tests/contracts/artifacts/ABITestOpcodeParamFromObject.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // opcodeParamFromObject()address -abi_route_opcodeParamFromObject: +*abi_route_opcodeParamFromObject: // The ABI return prefix byte 0x151f7c75 @@ -54,18 +54,18 @@ opcodeParamFromObject: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "opcodeParamFromObject()address" txna ApplicationArgs 0 - match abi_route_opcodeParamFromObject + match *abi_route_opcodeParamFromObject err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestOpcodeParamFromObject.arc32.json b/tests/contracts/artifacts/ABITestOpcodeParamFromObject.arc32.json index 246eae3a1..c201158b4 100644 --- a/tests/contracts/artifacts/ABITestOpcodeParamFromObject.arc32.json +++ b/tests/contracts/artifacts/ABITestOpcodeParamFromObject.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBvcGNvZGVQYXJhbUZyb21PYmplY3QoKWFkZHJlc3MKYWJpX3JvdXRlX29wY29kZVBhcmFtRnJvbU9iamVjdDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBvcGNvZGVQYXJhbUZyb21PYmplY3QoKWFkZHJlc3MKCWNhbGxzdWIgb3Bjb2RlUGFyYW1Gcm9tT2JqZWN0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gb3Bjb2RlUGFyYW1Gcm9tT2JqZWN0KCk6IEFkZHJlc3MKb3Bjb2RlUGFyYW1Gcm9tT2JqZWN0OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTA3NgoJLy8gYTogeyBteUFwcDogQXBwbGljYXRpb24gfSA9IHsgbXlBcHA6IHRoaXMuYXBwIH0KCXR4bmEgQXBwbGljYXRpb25zIDAKCWl0b2IKCWZyYW1lX2J1cnkgMCAvLyBhOiB7IG15QXBwOiBBcHBsaWNhdGlvbiB9CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwNzgKCS8vIHJldHVybiB0aGlzLmFwcC5hZGRyZXNzOwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAib3Bjb2RlUGFyYW1Gcm9tT2JqZWN0KClhZGRyZXNzIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX29wY29kZVBhcmFtRnJvbU9iamVjdAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBvcGNvZGVQYXJhbUZyb21PYmplY3QoKWFkZHJlc3MKKmFiaV9yb3V0ZV9vcGNvZGVQYXJhbUZyb21PYmplY3Q6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgb3Bjb2RlUGFyYW1Gcm9tT2JqZWN0KClhZGRyZXNzCgljYWxsc3ViIG9wY29kZVBhcmFtRnJvbU9iamVjdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIG9wY29kZVBhcmFtRnJvbU9iamVjdCgpOiBBZGRyZXNzCm9wY29kZVBhcmFtRnJvbU9iamVjdDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwNzYKCS8vIGE6IHsgbXlBcHA6IEFwcGxpY2F0aW9uIH0gPSB7IG15QXBwOiB0aGlzLmFwcCB9Cgl0eG5hIEFwcGxpY2F0aW9ucyAwCglpdG9iCglmcmFtZV9idXJ5IDAgLy8gYTogeyBteUFwcDogQXBwbGljYXRpb24gfQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDc4CgkvLyByZXR1cm4gdGhpcy5hcHAuYWRkcmVzczsKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJvcGNvZGVQYXJhbUZyb21PYmplY3QoKWFkZHJlc3MiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX29wY29kZVBhcmFtRnJvbU9iamVjdAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestPartialStaticArray.approval.teal b/tests/contracts/artifacts/ABITestPartialStaticArray.approval.teal index 0f00a7c0a..089dcd34a 100644 --- a/tests/contracts/artifacts/ABITestPartialStaticArray.approval.teal +++ b/tests/contracts/artifacts/ABITestPartialStaticArray.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // partialStaticArray()uint16[3] -abi_route_partialStaticArray: +*abi_route_partialStaticArray: // The ABI return prefix byte 0x151f7c75 @@ -53,18 +53,18 @@ partialStaticArray: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "partialStaticArray()uint16[3]" txna ApplicationArgs 0 - match abi_route_partialStaticArray + match *abi_route_partialStaticArray err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestPartialStaticArray.arc32.json b/tests/contracts/artifacts/ABITestPartialStaticArray.arc32.json index 02c977792..13dcd4d57 100644 --- a/tests/contracts/artifacts/ABITestPartialStaticArray.arc32.json +++ b/tests/contracts/artifacts/ABITestPartialStaticArray.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBwYXJ0aWFsU3RhdGljQXJyYXkoKXVpbnQxNlszXQphYmlfcm91dGVfcGFydGlhbFN0YXRpY0FycmF5OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHBhcnRpYWxTdGF0aWNBcnJheSgpdWludDE2WzNdCgljYWxsc3ViIHBhcnRpYWxTdGF0aWNBcnJheQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHBhcnRpYWxTdGF0aWNBcnJheSgpOiBTdGF0aWNBcnJheTx1aW50MTYsIDM+CnBhcnRpYWxTdGF0aWNBcnJheToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjg1OQoJLy8gYTogU3RhdGljQXJyYXk8dWludDE2LCAzPiA9IFsxXQoJYnl0ZSAweDAwMDEwMDAwMDAwMAoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQxNiwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6ODYxCgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQxNiwgMz4KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAicGFydGlhbFN0YXRpY0FycmF5KCl1aW50MTZbM10iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfcGFydGlhbFN0YXRpY0FycmF5CgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBwYXJ0aWFsU3RhdGljQXJyYXkoKXVpbnQxNlszXQoqYWJpX3JvdXRlX3BhcnRpYWxTdGF0aWNBcnJheToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBwYXJ0aWFsU3RhdGljQXJyYXkoKXVpbnQxNlszXQoJY2FsbHN1YiBwYXJ0aWFsU3RhdGljQXJyYXkKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBwYXJ0aWFsU3RhdGljQXJyYXkoKTogU3RhdGljQXJyYXk8dWludDE2LCAzPgpwYXJ0aWFsU3RhdGljQXJyYXk6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4NTkKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQxNiwgMz4gPSBbMV0KCWJ5dGUgMHgwMDAxMDAwMDAwMDAKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50MTYsIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjg2MQoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50MTYsIDM+CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJwYXJ0aWFsU3RhdGljQXJyYXkoKXVpbnQxNlszXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfcGFydGlhbFN0YXRpY0FycmF5CgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestPlusEqualsArrayValue.approval.teal b/tests/contracts/artifacts/ABITestPlusEqualsArrayValue.approval.teal index 50bd66b13..0d4ea1a1d 100644 --- a/tests/contracts/artifacts/ABITestPlusEqualsArrayValue.approval.teal +++ b/tests/contracts/artifacts/ABITestPlusEqualsArrayValue.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // plusEqualsArrayValue()uint64[2] -abi_route_plusEqualsArrayValue: +*abi_route_plusEqualsArrayValue: // The ABI return prefix byte 0x151f7c75 @@ -66,18 +66,18 @@ plusEqualsArrayValue: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "plusEqualsArrayValue()uint64[2]" txna ApplicationArgs 0 - match abi_route_plusEqualsArrayValue + match *abi_route_plusEqualsArrayValue err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestPlusEqualsArrayValue.arc32.json b/tests/contracts/artifacts/ABITestPlusEqualsArrayValue.arc32.json index 0c4e0a334..9988cbb17 100644 --- a/tests/contracts/artifacts/ABITestPlusEqualsArrayValue.arc32.json +++ b/tests/contracts/artifacts/ABITestPlusEqualsArrayValue.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBwbHVzRXF1YWxzQXJyYXlWYWx1ZSgpdWludDY0WzJdCmFiaV9yb3V0ZV9wbHVzRXF1YWxzQXJyYXlWYWx1ZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBwbHVzRXF1YWxzQXJyYXlWYWx1ZSgpdWludDY0WzJdCgljYWxsc3ViIHBsdXNFcXVhbHNBcnJheVZhbHVlCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gcGx1c0VxdWFsc0FycmF5VmFsdWUoKTogU3RhdGljQXJyYXk8dWludDY0LCAyPgpwbHVzRXF1YWxzQXJyYXlWYWx1ZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyNDIKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMj4gPSBbMSwgMl0KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAxMDAwMDAwMDAwMDAwMDAwMgoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMj4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTI0MwoJLy8gYVsxXSArPSAxCglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDI+CglpbnQgOAoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAyPgoJZXh0cmFjdCA4IDgKCWJ0b2kKCWludCAxCgkrCglpdG9iCglyZXBsYWNlMwoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMj4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTI0NAoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDI+CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgInBsdXNFcXVhbHNBcnJheVZhbHVlKCl1aW50NjRbMl0iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfcGx1c0VxdWFsc0FycmF5VmFsdWUKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBwbHVzRXF1YWxzQXJyYXlWYWx1ZSgpdWludDY0WzJdCiphYmlfcm91dGVfcGx1c0VxdWFsc0FycmF5VmFsdWU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgcGx1c0VxdWFsc0FycmF5VmFsdWUoKXVpbnQ2NFsyXQoJY2FsbHN1YiBwbHVzRXF1YWxzQXJyYXlWYWx1ZQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHBsdXNFcXVhbHNBcnJheVZhbHVlKCk6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMj4KcGx1c0VxdWFsc0FycmF5VmFsdWU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjQyCgkvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDI+ID0gWzEsIDJdCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDIKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDI+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyNDMKCS8vIGFbMV0gKz0gMQoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAyPgoJaW50IDgKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMj4KCWV4dHJhY3QgOCA4CglidG9pCglpbnQgMQoJKwoJaXRvYgoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDI+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyNDQKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAyPgoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAicGx1c0VxdWFsc0FycmF5VmFsdWUoKXVpbnQ2NFsyXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfcGx1c0VxdWFsc0FycmF5VmFsdWUKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestPlusEqualsObjValue.approval.teal b/tests/contracts/artifacts/ABITestPlusEqualsObjValue.approval.teal index 1641c3b3a..39cea4160 100644 --- a/tests/contracts/artifacts/ABITestPlusEqualsObjValue.approval.teal +++ b/tests/contracts/artifacts/ABITestPlusEqualsObjValue.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // plusEqualsObjValue()(uint64,uint64) -abi_route_plusEqualsObjValue: +*abi_route_plusEqualsObjValue: // The ABI return prefix byte 0x151f7c75 @@ -66,18 +66,18 @@ plusEqualsObjValue: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "plusEqualsObjValue()(uint64,uint64)" txna ApplicationArgs 0 - match abi_route_plusEqualsObjValue + match *abi_route_plusEqualsObjValue err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestPlusEqualsObjValue.arc32.json b/tests/contracts/artifacts/ABITestPlusEqualsObjValue.arc32.json index 7b103e6cf..6389808a3 100644 --- a/tests/contracts/artifacts/ABITestPlusEqualsObjValue.arc32.json +++ b/tests/contracts/artifacts/ABITestPlusEqualsObjValue.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBwbHVzRXF1YWxzT2JqVmFsdWUoKSh1aW50NjQsdWludDY0KQphYmlfcm91dGVfcGx1c0VxdWFsc09ialZhbHVlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHBsdXNFcXVhbHNPYmpWYWx1ZSgpKHVpbnQ2NCx1aW50NjQpCgljYWxsc3ViIHBsdXNFcXVhbHNPYmpWYWx1ZQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHBsdXNFcXVhbHNPYmpWYWx1ZSgpOiB7IGZvbzogdWludDY0OyBiYXI6IHVpbnQ2NCB9CnBsdXNFcXVhbHNPYmpWYWx1ZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyNTAKCS8vIGE6IHsgZm9vOiB1aW50NjQ7IGJhcjogdWludDY0IH0gPSB7IGZvbzogMywgYmFyOiA0IH0KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAzMDAwMDAwMDAwMDAwMDAwNAoJZnJhbWVfYnVyeSAwIC8vIGE6IHsgZm9vOiB1aW50NjQ7IGJhcjogdWludDY0IH0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTI1MQoJLy8gYS5iYXIgKz0gMQoJZnJhbWVfZGlnIDAgLy8gYTogeyBmb286IHVpbnQ2NDsgYmFyOiB1aW50NjQgfQoJaW50IDggLy8gaGVhZE9mZnNldAoJZnJhbWVfZGlnIDAgLy8gYTogeyBmb286IHVpbnQ2NDsgYmFyOiB1aW50NjQgfQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWludCAxCgkrCglpdG9iCglyZXBsYWNlMwoJZnJhbWVfYnVyeSAwIC8vIGE6IHsgZm9vOiB1aW50NjQ7IGJhcjogdWludDY0IH0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTI1MgoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiB7IGZvbzogdWludDY0OyBiYXI6IHVpbnQ2NCB9CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgInBsdXNFcXVhbHNPYmpWYWx1ZSgpKHVpbnQ2NCx1aW50NjQpIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX3BsdXNFcXVhbHNPYmpWYWx1ZQoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBwbHVzRXF1YWxzT2JqVmFsdWUoKSh1aW50NjQsdWludDY0KQoqYWJpX3JvdXRlX3BsdXNFcXVhbHNPYmpWYWx1ZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBwbHVzRXF1YWxzT2JqVmFsdWUoKSh1aW50NjQsdWludDY0KQoJY2FsbHN1YiBwbHVzRXF1YWxzT2JqVmFsdWUKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBwbHVzRXF1YWxzT2JqVmFsdWUoKTogeyBmb286IHVpbnQ2NDsgYmFyOiB1aW50NjQgfQpwbHVzRXF1YWxzT2JqVmFsdWU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjUwCgkvLyBhOiB7IGZvbzogdWludDY0OyBiYXI6IHVpbnQ2NCB9ID0geyBmb286IDMsIGJhcjogNCB9CglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMzAwMDAwMDAwMDAwMDAwMDQKCWZyYW1lX2J1cnkgMCAvLyBhOiB7IGZvbzogdWludDY0OyBiYXI6IHVpbnQ2NCB9CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyNTEKCS8vIGEuYmFyICs9IDEKCWZyYW1lX2RpZyAwIC8vIGE6IHsgZm9vOiB1aW50NjQ7IGJhcjogdWludDY0IH0KCWludCA4IC8vIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAwIC8vIGE6IHsgZm9vOiB1aW50NjQ7IGJhcjogdWludDY0IH0KCWV4dHJhY3QgOCA4CglidG9pCglpbnQgMQoJKwoJaXRvYgoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgMCAvLyBhOiB7IGZvbzogdWludDY0OyBiYXI6IHVpbnQ2NCB9CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyNTIKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogeyBmb286IHVpbnQ2NDsgYmFyOiB1aW50NjQgfQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAicGx1c0VxdWFsc09ialZhbHVlKCkodWludDY0LHVpbnQ2NCkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3BsdXNFcXVhbHNPYmpWYWx1ZQoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestPlusEqualsObjValueInBox.approval.teal b/tests/contracts/artifacts/ABITestPlusEqualsObjValueInBox.approval.teal index 6f007a919..b9c465818 100644 --- a/tests/contracts/artifacts/ABITestPlusEqualsObjValueInBox.approval.teal +++ b/tests/contracts/artifacts/ABITestPlusEqualsObjValueInBox.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // plusEqualsObjValueInBox()(uint64,uint64) -abi_route_plusEqualsObjValueInBox: +*abi_route_plusEqualsObjValueInBox: // The ABI return prefix byte 0x151f7c75 @@ -65,18 +65,18 @@ plusEqualsObjValueInBox: assert retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "plusEqualsObjValueInBox()(uint64,uint64)" txna ApplicationArgs 0 - match abi_route_plusEqualsObjValueInBox + match *abi_route_plusEqualsObjValueInBox err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestPlusEqualsObjValueInBox.arc32.json b/tests/contracts/artifacts/ABITestPlusEqualsObjValueInBox.arc32.json index 4824cecf1..d3f0ee28f 100644 --- a/tests/contracts/artifacts/ABITestPlusEqualsObjValueInBox.arc32.json +++ b/tests/contracts/artifacts/ABITestPlusEqualsObjValueInBox.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBwbHVzRXF1YWxzT2JqVmFsdWVJbkJveCgpKHVpbnQ2NCx1aW50NjQpCmFiaV9yb3V0ZV9wbHVzRXF1YWxzT2JqVmFsdWVJbkJveDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBwbHVzRXF1YWxzT2JqVmFsdWVJbkJveCgpKHVpbnQ2NCx1aW50NjQpCgljYWxsc3ViIHBsdXNFcXVhbHNPYmpWYWx1ZUluQm94Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gcGx1c0VxdWFsc09ialZhbHVlSW5Cb3goKTogeyBmb286IHVpbnQ2NDsgYmFyOiB1aW50NjQgfQpwbHVzRXF1YWxzT2JqVmFsdWVJbkJveDoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjYwCgkvLyB0aGlzLmJNYXAoJ2JNYXAnKS52YWx1ZSA9IHsgZm9vOiAzLCBiYXI6IDQgfQoJYnl0ZSAweDYyNGQ2MTcwIC8vICJiTWFwIgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDMwMDAwMDAwMDAwMDAwMDA0Cglib3hfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyNjEKCS8vIHRoaXMuYk1hcCgnYk1hcCcpLnZhbHVlLmJhciArPSAxCglpbnQgOCAvLyBoZWFkT2Zmc2V0CglieXRlIDB4NjI0ZDYxNzAgLy8gImJNYXAiCglpbnQgOCAvLyBoZWFkT2Zmc2V0CglpbnQgOAoJYm94X2V4dHJhY3QKCWJ0b2kKCWludCAxCgkrCglpdG9iCglieXRlIDB4NjI0ZDYxNzAgLy8gImJNYXAiCgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjYyCgkvLyByZXR1cm4gdGhpcy5iTWFwKCdiTWFwJykudmFsdWU7CglieXRlIDB4NjI0ZDYxNzAgLy8gImJNYXAiCglib3hfZ2V0Cglhc3NlcnQKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAicGx1c0VxdWFsc09ialZhbHVlSW5Cb3goKSh1aW50NjQsdWludDY0KSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9wbHVzRXF1YWxzT2JqVmFsdWVJbkJveAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBwbHVzRXF1YWxzT2JqVmFsdWVJbkJveCgpKHVpbnQ2NCx1aW50NjQpCiphYmlfcm91dGVfcGx1c0VxdWFsc09ialZhbHVlSW5Cb3g6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgcGx1c0VxdWFsc09ialZhbHVlSW5Cb3goKSh1aW50NjQsdWludDY0KQoJY2FsbHN1YiBwbHVzRXF1YWxzT2JqVmFsdWVJbkJveAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHBsdXNFcXVhbHNPYmpWYWx1ZUluQm94KCk6IHsgZm9vOiB1aW50NjQ7IGJhcjogdWludDY0IH0KcGx1c0VxdWFsc09ialZhbHVlSW5Cb3g6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTI2MAoJLy8gdGhpcy5iTWFwKCdiTWFwJykudmFsdWUgPSB7IGZvbzogMywgYmFyOiA0IH0KCWJ5dGUgMHg2MjRkNjE3MCAvLyAiYk1hcCIKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAzMDAwMDAwMDAwMDAwMDAwNAoJYm94X3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjYxCgkvLyB0aGlzLmJNYXAoJ2JNYXAnKS52YWx1ZS5iYXIgKz0gMQoJaW50IDggLy8gaGVhZE9mZnNldAoJYnl0ZSAweDYyNGQ2MTcwIC8vICJiTWFwIgoJaW50IDggLy8gaGVhZE9mZnNldAoJaW50IDgKCWJveF9leHRyYWN0CglidG9pCglpbnQgMQoJKwoJaXRvYgoJYnl0ZSAweDYyNGQ2MTcwIC8vICJiTWFwIgoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTI2MgoJLy8gcmV0dXJuIHRoaXMuYk1hcCgnYk1hcCcpLnZhbHVlOwoJYnl0ZSAweDYyNGQ2MTcwIC8vICJiTWFwIgoJYm94X2dldAoJYXNzZXJ0CglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJwbHVzRXF1YWxzT2JqVmFsdWVJbkJveCgpKHVpbnQ2NCx1aW50NjQpIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9wbHVzRXF1YWxzT2JqVmFsdWVJbkJveAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestRawBytesFunction.approval.teal b/tests/contracts/artifacts/ABITestRawBytesFunction.approval.teal index a87e6db4d..f920838fb 100644 --- a/tests/contracts/artifacts/ABITestRawBytesFunction.approval.teal +++ b/tests/contracts/artifacts/ABITestRawBytesFunction.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // rawBytesFunction()string -abi_route_rawBytesFunction: +*abi_route_rawBytesFunction: // The ABI return prefix byte 0x151f7c75 @@ -59,18 +59,18 @@ rawBytesFunction: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "rawBytesFunction()string" txna ApplicationArgs 0 - match abi_route_rawBytesFunction + match *abi_route_rawBytesFunction err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestRawBytesFunction.arc32.json b/tests/contracts/artifacts/ABITestRawBytesFunction.arc32.json index 4d976056f..50b97a6ce 100644 --- a/tests/contracts/artifacts/ABITestRawBytesFunction.arc32.json +++ b/tests/contracts/artifacts/ABITestRawBytesFunction.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyByYXdCeXRlc0Z1bmN0aW9uKClzdHJpbmcKYWJpX3JvdXRlX3Jhd0J5dGVzRnVuY3Rpb246CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgcmF3Qnl0ZXNGdW5jdGlvbigpc3RyaW5nCgljYWxsc3ViIHJhd0J5dGVzRnVuY3Rpb24KCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gcmF3Qnl0ZXNGdW5jdGlvbigpOiBzdHJpbmcKcmF3Qnl0ZXNGdW5jdGlvbjoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwNjIKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ8OD4sIDM+ID0gWzEsIDIsIDNdCglieXRlIDB4MDEwMjAzCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8dWludDw4PiwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTA2MwoJLy8gcmV0dXJuIHJhd0J5dGVzKGEpOwoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDw4PiwgMz4KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAicmF3Qnl0ZXNGdW5jdGlvbigpc3RyaW5nIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX3Jhd0J5dGVzRnVuY3Rpb24KCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyByYXdCeXRlc0Z1bmN0aW9uKClzdHJpbmcKKmFiaV9yb3V0ZV9yYXdCeXRlc0Z1bmN0aW9uOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHJhd0J5dGVzRnVuY3Rpb24oKXN0cmluZwoJY2FsbHN1YiByYXdCeXRlc0Z1bmN0aW9uCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHJhd0J5dGVzRnVuY3Rpb24oKTogc3RyaW5nCnJhd0J5dGVzRnVuY3Rpb246Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDYyCgkvLyBhOiBTdGF0aWNBcnJheTx1aW50PDg+LCAzPiA9IFsxLCAyLCAzXQoJYnl0ZSAweDAxMDIwMwoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ8OD4sIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwNjMKCS8vIHJldHVybiByYXdCeXRlcyhhKTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ8OD4sIDM+CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJyYXdCeXRlc0Z1bmN0aW9uKClzdHJpbmciCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3Jhd0J5dGVzRnVuY3Rpb24KCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestReturnDynamicArray.approval.teal b/tests/contracts/artifacts/ABITestReturnDynamicArray.approval.teal index 92375ae8a..5e894eec0 100644 --- a/tests/contracts/artifacts/ABITestReturnDynamicArray.approval.teal +++ b/tests/contracts/artifacts/ABITestReturnDynamicArray.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // returnDynamicArray()uint64[] -abi_route_returnDynamicArray: +*abi_route_returnDynamicArray: // The ABI return prefix byte 0x151f7c75 @@ -61,18 +61,18 @@ returnDynamicArray: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "returnDynamicArray()uint64[]" txna ApplicationArgs 0 - match abi_route_returnDynamicArray + match *abi_route_returnDynamicArray err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestReturnDynamicArray.arc32.json b/tests/contracts/artifacts/ABITestReturnDynamicArray.arc32.json index 41e127505..cf84be810 100644 --- a/tests/contracts/artifacts/ABITestReturnDynamicArray.arc32.json +++ b/tests/contracts/artifacts/ABITestReturnDynamicArray.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyByZXR1cm5EeW5hbWljQXJyYXkoKXVpbnQ2NFtdCmFiaV9yb3V0ZV9yZXR1cm5EeW5hbWljQXJyYXk6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgcmV0dXJuRHluYW1pY0FycmF5KCl1aW50NjRbXQoJY2FsbHN1YiByZXR1cm5EeW5hbWljQXJyYXkKCWR1cAoJbGVuCglpbnQgOAoJLwoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHJldHVybkR5bmFtaWNBcnJheSgpOiB1aW50NjRbXQpyZXR1cm5EeW5hbWljQXJyYXk6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czozNTYKCS8vIGE6IHVpbnQ2NFtdID0gWzExLCAyMiwgMzNdCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwYjAwMDAwMDAwMDAwMDAwMTYwMDAwMDAwMDAwMDAwMDIxCglmcmFtZV9idXJ5IDAgLy8gYTogdWludDY0W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MzU3CgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQ2NFtdCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgInJldHVybkR5bmFtaWNBcnJheSgpdWludDY0W10iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfcmV0dXJuRHluYW1pY0FycmF5CgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyByZXR1cm5EeW5hbWljQXJyYXkoKXVpbnQ2NFtdCiphYmlfcm91dGVfcmV0dXJuRHluYW1pY0FycmF5OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHJldHVybkR5bmFtaWNBcnJheSgpdWludDY0W10KCWNhbGxzdWIgcmV0dXJuRHluYW1pY0FycmF5CglkdXAKCWxlbgoJaW50IDgKCS8KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyByZXR1cm5EeW5hbWljQXJyYXkoKTogdWludDY0W10KcmV0dXJuRHluYW1pY0FycmF5OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MzU2CgkvLyBhOiB1aW50NjRbXSA9IFsxMSwgMjIsIDMzXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAwMDAwMDAwMDAwMDAyMQoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQ2NFtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM1NwoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiB1aW50NjRbXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAicmV0dXJuRHluYW1pY0FycmF5KCl1aW50NjRbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfcmV0dXJuRHluYW1pY0FycmF5CgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestReturnDynamicArrayFromTuple.approval.teal b/tests/contracts/artifacts/ABITestReturnDynamicArrayFromTuple.approval.teal index 2dc8ab8d7..ed861ee46 100644 --- a/tests/contracts/artifacts/ABITestReturnDynamicArrayFromTuple.approval.teal +++ b/tests/contracts/artifacts/ABITestReturnDynamicArrayFromTuple.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // returnDynamicArrayFromTuple()uint8[] -abi_route_returnDynamicArrayFromTuple: +*abi_route_returnDynamicArrayFromTuple: // The ABI return prefix byte 0x151f7c75 @@ -52,15 +52,15 @@ returnDynamicArrayFromTuple: byte 0x // initial tail byte 0x0009 // initial head offset byte 0x01 - callsub process_static_tuple_element + callsub *process_static_tuple_element byte 0x0002 - callsub process_static_tuple_element + callsub *process_static_tuple_element byte 0x00020304 - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element byte 0x000200050006 - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element byte 0x00020708 - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element pop // pop head offset concat // concat head and tail frame_bury 0 // a: [uint<8>, uint16, uint<8>[], uint16[], uint<8>[]] @@ -89,23 +89,23 @@ returnDynamicArrayFromTuple: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "returnDynamicArrayFromTuple()uint8[]" txna ApplicationArgs 0 - match abi_route_returnDynamicArrayFromTuple + match *abi_route_returnDynamicArrayFromTuple err -process_static_tuple_element: +*process_static_tuple_element: proto 4 3 frame_dig -4 // tuple head frame_dig -1 // element @@ -114,7 +114,7 @@ process_static_tuple_element: frame_dig -2 // head offset retsub -process_dynamic_tuple_element: +*process_dynamic_tuple_element: proto 4 3 frame_dig -4 // tuple head frame_dig -2 // head offset diff --git a/tests/contracts/artifacts/ABITestReturnDynamicArrayFromTuple.arc32.json b/tests/contracts/artifacts/ABITestReturnDynamicArrayFromTuple.arc32.json index 0f750d2ba..45b72ff5e 100644 --- a/tests/contracts/artifacts/ABITestReturnDynamicArrayFromTuple.arc32.json +++ b/tests/contracts/artifacts/ABITestReturnDynamicArrayFromTuple.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyByZXR1cm5EeW5hbWljQXJyYXlGcm9tVHVwbGUoKXVpbnQ4W10KYWJpX3JvdXRlX3JldHVybkR5bmFtaWNBcnJheUZyb21UdXBsZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSByZXR1cm5EeW5hbWljQXJyYXlGcm9tVHVwbGUoKXVpbnQ4W10KCWNhbGxzdWIgcmV0dXJuRHluYW1pY0FycmF5RnJvbVR1cGxlCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHJldHVybkR5bmFtaWNBcnJheUZyb21UdXBsZSgpOiB1aW50PDg+W10KcmV0dXJuRHluYW1pY0FycmF5RnJvbVR1cGxlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6Mzk4CgkvLyBhOiBbdWludDw4PiwgdWludDE2LCB1aW50PDg+W10sIHVpbnQxNltdLCB1aW50PDg+W11dID0gWzEsIDIsIFszLCA0XSwgWzUsIDZdLCBbNywgOF1dCglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDA5IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCWJ5dGUgMHgwMQoJY2FsbHN1YiBwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMgoJY2FsbHN1YiBwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMjAzMDQKCWNhbGxzdWIgcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDAyMDAwNTAwMDYKCWNhbGxzdWIgcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDAyMDcwOAoJY2FsbHN1YiBwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNiwgdWludDw4PltdLCB1aW50MTZbXSwgdWludDw4PltdXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0MDAKCS8vIHJldHVybiBhWzRdOwoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNiwgdWludDw4PltdLCB1aW50MTZbXSwgdWludDw4PltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCA3Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCAxIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglleHRyYWN0MwoJZXh0cmFjdCAyIDAKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAicmV0dXJuRHluYW1pY0FycmF5RnJvbVR1cGxlKCl1aW50OFtdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX3JldHVybkR5bmFtaWNBcnJheUZyb21UdXBsZQoJZXJyCgpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWNvbmNhdAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3Vi", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyByZXR1cm5EeW5hbWljQXJyYXlGcm9tVHVwbGUoKXVpbnQ4W10KKmFiaV9yb3V0ZV9yZXR1cm5EeW5hbWljQXJyYXlGcm9tVHVwbGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgcmV0dXJuRHluYW1pY0FycmF5RnJvbVR1cGxlKCl1aW50OFtdCgljYWxsc3ViIHJldHVybkR5bmFtaWNBcnJheUZyb21UdXBsZQoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyByZXR1cm5EeW5hbWljQXJyYXlGcm9tVHVwbGUoKTogdWludDw4PltdCnJldHVybkR5bmFtaWNBcnJheUZyb21UdXBsZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM5OAoJLy8gYTogW3VpbnQ8OD4sIHVpbnQxNiwgdWludDw4PltdLCB1aW50MTZbXSwgdWludDw4PltdXSA9IFsxLCAyLCBbMywgNF0sIFs1LCA2XSwgWzcsIDhdXQoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglieXRlIDB4MDAwOSAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0CglieXRlIDB4MDEKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDAyCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMjAzMDQKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMjAwMDUwMDA2CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDIwNzA4CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNiwgdWludDw4PltdLCB1aW50MTZbXSwgdWludDw4PltdXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0MDAKCS8vIHJldHVybiBhWzRdOwoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNiwgdWludDw4PltdLCB1aW50MTZbXSwgdWludDw4PltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCA3Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCAxIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglleHRyYWN0MwoJZXh0cmFjdCAyIDAKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInJldHVybkR5bmFtaWNBcnJheUZyb21UdXBsZSgpdWludDhbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfcmV0dXJuRHluYW1pY0FycmF5RnJvbVR1cGxlCgllcnIKCipwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWNvbmNhdAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgoqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJZHVwCglsZW4KCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJYnRvaQoJKwoJaXRvYgoJZXh0cmFjdCA2IDIKCWZyYW1lX2J1cnkgLTIgLy8gaGVhZCBvZmZzZXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglzd2FwCgljb25jYXQKCWZyYW1lX2J1cnkgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1Yg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestReturnStaticArray.approval.teal b/tests/contracts/artifacts/ABITestReturnStaticArray.approval.teal index f2fb59161..8dc5f245d 100644 --- a/tests/contracts/artifacts/ABITestReturnStaticArray.approval.teal +++ b/tests/contracts/artifacts/ABITestReturnStaticArray.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // returnStaticArray()uint64[3] -abi_route_returnStaticArray: +*abi_route_returnStaticArray: // The ABI return prefix byte 0x151f7c75 @@ -53,18 +53,18 @@ returnStaticArray: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "returnStaticArray()uint64[3]" txna ApplicationArgs 0 - match abi_route_returnStaticArray + match *abi_route_returnStaticArray err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestReturnStaticArray.arc32.json b/tests/contracts/artifacts/ABITestReturnStaticArray.arc32.json index 6db78dc12..6d020f8bd 100644 --- a/tests/contracts/artifacts/ABITestReturnStaticArray.arc32.json +++ b/tests/contracts/artifacts/ABITestReturnStaticArray.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyByZXR1cm5TdGF0aWNBcnJheSgpdWludDY0WzNdCmFiaV9yb3V0ZV9yZXR1cm5TdGF0aWNBcnJheToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSByZXR1cm5TdGF0aWNBcnJheSgpdWludDY0WzNdCgljYWxsc3ViIHJldHVyblN0YXRpY0FycmF5Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gcmV0dXJuU3RhdGljQXJyYXkoKTogU3RhdGljQXJyYXk8dWludDY0LCAzPgpyZXR1cm5TdGF0aWNBcnJheToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE5CgkvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+ID0gWzExLCAyMiwgMzNdCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwYjAwMDAwMDAwMDAwMDAwMTYwMDAwMDAwMDAwMDAwMDIxCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoyMQoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgInJldHVyblN0YXRpY0FycmF5KCl1aW50NjRbM10iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfcmV0dXJuU3RhdGljQXJyYXkKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyByZXR1cm5TdGF0aWNBcnJheSgpdWludDY0WzNdCiphYmlfcm91dGVfcmV0dXJuU3RhdGljQXJyYXk6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgcmV0dXJuU3RhdGljQXJyYXkoKXVpbnQ2NFszXQoJY2FsbHN1YiByZXR1cm5TdGF0aWNBcnJheQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHJldHVyblN0YXRpY0FycmF5KCk6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KcmV0dXJuU3RhdGljQXJyYXk6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxOQoJLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPiA9IFsxMSwgMjIsIDMzXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAwMDAwMDAwMDAwMDAyMQoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MjEKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAicmV0dXJuU3RhdGljQXJyYXkoKXVpbnQ2NFszXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfcmV0dXJuU3RhdGljQXJyYXkKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestReturnTuple.approval.teal b/tests/contracts/artifacts/ABITestReturnTuple.approval.teal index c8dd4db53..bd703cc39 100644 --- a/tests/contracts/artifacts/ABITestReturnTuple.approval.teal +++ b/tests/contracts/artifacts/ABITestReturnTuple.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // returnTuple()(uint64,uint16,uint64) -abi_route_returnTuple: +*abi_route_returnTuple: // The ABI return prefix byte 0x151f7c75 @@ -53,18 +53,18 @@ returnTuple: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "returnTuple()(uint64,uint16,uint64)" txna ApplicationArgs 0 - match abi_route_returnTuple + match *abi_route_returnTuple err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestReturnTuple.arc32.json b/tests/contracts/artifacts/ABITestReturnTuple.arc32.json index 20f0dc0ea..abd5c84cc 100644 --- a/tests/contracts/artifacts/ABITestReturnTuple.arc32.json +++ b/tests/contracts/artifacts/ABITestReturnTuple.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyByZXR1cm5UdXBsZSgpKHVpbnQ2NCx1aW50MTYsdWludDY0KQphYmlfcm91dGVfcmV0dXJuVHVwbGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgcmV0dXJuVHVwbGUoKSh1aW50NjQsdWludDE2LHVpbnQ2NCkKCWNhbGxzdWIgcmV0dXJuVHVwbGUKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyByZXR1cm5UdXBsZSgpOiBbdWludDY0LCB1aW50MTYsIHVpbnQ2NF0KcmV0dXJuVHVwbGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czozMzUKCS8vIGE6IFt1aW50NjQsIHVpbnQxNiwgdWludDY0XSA9IFsxMSwgMjIsIDMzXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMGIwMDE2MDAwMDAwMDAwMDAwMDAyMQoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50NjQsIHVpbnQxNiwgdWludDY0XQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czozMzYKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQ2NCwgdWludDE2LCB1aW50NjRdCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgInJldHVyblR1cGxlKCkodWludDY0LHVpbnQxNix1aW50NjQpIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX3JldHVyblR1cGxlCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyByZXR1cm5UdXBsZSgpKHVpbnQ2NCx1aW50MTYsdWludDY0KQoqYWJpX3JvdXRlX3JldHVyblR1cGxlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHJldHVyblR1cGxlKCkodWludDY0LHVpbnQxNix1aW50NjQpCgljYWxsc3ViIHJldHVyblR1cGxlCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gcmV0dXJuVHVwbGUoKTogW3VpbnQ2NCwgdWludDE2LCB1aW50NjRdCnJldHVyblR1cGxlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MzM1CgkvLyBhOiBbdWludDY0LCB1aW50MTYsIHVpbnQ2NF0gPSBbMTEsIDIyLCAzM10KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDBiMDAxNjAwMDAwMDAwMDAwMDAwMjEKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDY0LCB1aW50MTYsIHVpbnQ2NF0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MzM2CgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50NjQsIHVpbnQxNiwgdWludDY0XQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAicmV0dXJuVHVwbGUoKSh1aW50NjQsdWludDE2LHVpbnQ2NCkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3JldHVyblR1cGxlCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestReturnTupleWithDyamicArray.approval.teal b/tests/contracts/artifacts/ABITestReturnTupleWithDyamicArray.approval.teal index ce8260bc8..683d3d22c 100644 --- a/tests/contracts/artifacts/ABITestReturnTupleWithDyamicArray.approval.teal +++ b/tests/contracts/artifacts/ABITestReturnTupleWithDyamicArray.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // returnTupleWithDyamicArray()(uint64,uint16,uint64[],uint16[]) -abi_route_returnTupleWithDyamicArray: +*abi_route_returnTupleWithDyamicArray: // The ABI return prefix byte 0x151f7c75 @@ -46,13 +46,13 @@ returnTupleWithDyamicArray: byte 0x // initial tail byte 0x000e // initial head offset byte 0x0000000000000001 - callsub process_static_tuple_element + callsub *process_static_tuple_element byte 0x0002 - callsub process_static_tuple_element + callsub *process_static_tuple_element byte 0x000200000000000000030000000000000004 - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element byte 0x000200050006 - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element pop // pop head offset concat // concat head and tail frame_bury 0 // a: [uint64, uint16, uint64[], uint16[]] @@ -65,23 +65,23 @@ returnTupleWithDyamicArray: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "returnTupleWithDyamicArray()(uint64,uint16,uint64[],uint16[])" txna ApplicationArgs 0 - match abi_route_returnTupleWithDyamicArray + match *abi_route_returnTupleWithDyamicArray err -process_static_tuple_element: +*process_static_tuple_element: proto 4 3 frame_dig -4 // tuple head frame_dig -1 // element @@ -90,7 +90,7 @@ process_static_tuple_element: frame_dig -2 // head offset retsub -process_dynamic_tuple_element: +*process_dynamic_tuple_element: proto 4 3 frame_dig -4 // tuple head frame_dig -2 // head offset diff --git a/tests/contracts/artifacts/ABITestReturnTupleWithDyamicArray.arc32.json b/tests/contracts/artifacts/ABITestReturnTupleWithDyamicArray.arc32.json index 12d7b400f..f4d72353c 100644 --- a/tests/contracts/artifacts/ABITestReturnTupleWithDyamicArray.arc32.json +++ b/tests/contracts/artifacts/ABITestReturnTupleWithDyamicArray.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyByZXR1cm5UdXBsZVdpdGhEeWFtaWNBcnJheSgpKHVpbnQ2NCx1aW50MTYsdWludDY0W10sdWludDE2W10pCmFiaV9yb3V0ZV9yZXR1cm5UdXBsZVdpdGhEeWFtaWNBcnJheToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSByZXR1cm5UdXBsZVdpdGhEeWFtaWNBcnJheSgpKHVpbnQ2NCx1aW50MTYsdWludDY0W10sdWludDE2W10pCgljYWxsc3ViIHJldHVyblR1cGxlV2l0aER5YW1pY0FycmF5Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gcmV0dXJuVHVwbGVXaXRoRHlhbWljQXJyYXkoKTogW3VpbnQ2NCwgdWludDE2LCB1aW50NjRbXSwgdWludDE2W11dCnJldHVyblR1cGxlV2l0aER5YW1pY0FycmF5OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MzkwCgkvLyBhOiBbdWludDY0LCB1aW50MTYsIHVpbnQ2NFtdLCB1aW50MTZbXV0gPSBbMSwgMiwgWzMsIDRdLCBbNSwgNl1dCglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDBlIC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAxCgljYWxsc3ViIHByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDAyCgljYWxsc3ViIHByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDAyMDAwMDAwMDAwMDAwMDAwMzAwMDAwMDAwMDAwMDAwMDQKCWNhbGxzdWIgcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDAyMDAwNTAwMDYKCWNhbGxzdWIgcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50NjQsIHVpbnQxNiwgdWludDY0W10sIHVpbnQxNltdXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czozOTIKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQ2NCwgdWludDE2LCB1aW50NjRbXSwgdWludDE2W11dCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgInJldHVyblR1cGxlV2l0aER5YW1pY0FycmF5KCkodWludDY0LHVpbnQxNix1aW50NjRbXSx1aW50MTZbXSkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfcmV0dXJuVHVwbGVXaXRoRHlhbWljQXJyYXkKCWVycgoKcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50Cgljb25jYXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJZHVwCglsZW4KCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJYnRvaQoJKwoJaXRvYgoJZXh0cmFjdCA2IDIKCWZyYW1lX2J1cnkgLTIgLy8gaGVhZCBvZmZzZXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglzd2FwCgljb25jYXQKCWZyYW1lX2J1cnkgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1Yg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyByZXR1cm5UdXBsZVdpdGhEeWFtaWNBcnJheSgpKHVpbnQ2NCx1aW50MTYsdWludDY0W10sdWludDE2W10pCiphYmlfcm91dGVfcmV0dXJuVHVwbGVXaXRoRHlhbWljQXJyYXk6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgcmV0dXJuVHVwbGVXaXRoRHlhbWljQXJyYXkoKSh1aW50NjQsdWludDE2LHVpbnQ2NFtdLHVpbnQxNltdKQoJY2FsbHN1YiByZXR1cm5UdXBsZVdpdGhEeWFtaWNBcnJheQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHJldHVyblR1cGxlV2l0aER5YW1pY0FycmF5KCk6IFt1aW50NjQsIHVpbnQxNiwgdWludDY0W10sIHVpbnQxNltdXQpyZXR1cm5UdXBsZVdpdGhEeWFtaWNBcnJheToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM5MAoJLy8gYTogW3VpbnQ2NCwgdWludDE2LCB1aW50NjRbXSwgdWludDE2W11dID0gWzEsIDIsIFszLCA0XSwgWzUsIDZdXQoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglieXRlIDB4MDAwZSAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0CglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMQoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDIKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDAyMDAwMDAwMDAwMDAwMDAwMzAwMDAwMDAwMDAwMDAwMDQKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMjAwMDUwMDA2CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQ2NCwgdWludDE2LCB1aW50NjRbXSwgdWludDE2W11dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM5MgoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDY0LCB1aW50MTYsIHVpbnQ2NFtdLCB1aW50MTZbXV0KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInJldHVyblR1cGxlV2l0aER5YW1pY0FycmF5KCkodWludDY0LHVpbnQxNix1aW50NjRbXSx1aW50MTZbXSkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3JldHVyblR1cGxlV2l0aER5YW1pY0FycmF5CgllcnIKCipwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWNvbmNhdAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgoqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJZHVwCglsZW4KCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJYnRvaQoJKwoJaXRvYgoJZXh0cmFjdCA2IDIKCWZyYW1lX2J1cnkgLTIgLy8gaGVhZCBvZmZzZXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglzd2FwCgljb25jYXQKCWZyYW1lX2J1cnkgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1Yg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestSetStaticArrayElement.approval.teal b/tests/contracts/artifacts/ABITestSetStaticArrayElement.approval.teal index d84cd9bcd..b02b3c788 100644 --- a/tests/contracts/artifacts/ABITestSetStaticArrayElement.approval.teal +++ b/tests/contracts/artifacts/ABITestSetStaticArrayElement.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // setStaticArrayElement()uint64 -abi_route_setStaticArrayElement: +*abi_route_setStaticArrayElement: // The ABI return prefix byte 0x151f7c75 @@ -63,18 +63,18 @@ setStaticArrayElement: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "setStaticArrayElement()uint64" txna ApplicationArgs 0 - match abi_route_setStaticArrayElement + match *abi_route_setStaticArrayElement err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestSetStaticArrayElement.arc32.json b/tests/contracts/artifacts/ABITestSetStaticArrayElement.arc32.json index 34fd7d981..a8ad64db3 100644 --- a/tests/contracts/artifacts/ABITestSetStaticArrayElement.arc32.json +++ b/tests/contracts/artifacts/ABITestSetStaticArrayElement.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzZXRTdGF0aWNBcnJheUVsZW1lbnQoKXVpbnQ2NAphYmlfcm91dGVfc2V0U3RhdGljQXJyYXlFbGVtZW50OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHNldFN0YXRpY0FycmF5RWxlbWVudCgpdWludDY0CgljYWxsc3ViIHNldFN0YXRpY0FycmF5RWxlbWVudAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHNldFN0YXRpY0FycmF5RWxlbWVudCgpOiB1aW50NjQKc2V0U3RhdGljQXJyYXlFbGVtZW50OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NjQKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbMTEsIDIyLCAzM10KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDBiMDAwMDAwMDAwMDAwMDAxNjAwMDAwMDAwMDAwMDAwMjEKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjY2CgkvLyBhWzFdID0gMjIyCglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CglieXRlIDB4MDAwMDAwMDAwMDAwMDBkZQoJcmVwbGFjZTIgOAoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NjgKCS8vIHJldHVybiBhWzFdOwoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoJZXh0cmFjdCA4IDgKCWJ0b2kKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAic2V0U3RhdGljQXJyYXlFbGVtZW50KCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfc2V0U3RhdGljQXJyYXlFbGVtZW50CgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzZXRTdGF0aWNBcnJheUVsZW1lbnQoKXVpbnQ2NAoqYWJpX3JvdXRlX3NldFN0YXRpY0FycmF5RWxlbWVudDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBzZXRTdGF0aWNBcnJheUVsZW1lbnQoKXVpbnQ2NAoJY2FsbHN1YiBzZXRTdGF0aWNBcnJheUVsZW1lbnQKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzZXRTdGF0aWNBcnJheUVsZW1lbnQoKTogdWludDY0CnNldFN0YXRpY0FycmF5RWxlbWVudDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjY0CgkvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+ID0gWzExLCAyMiwgMzNdCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwYjAwMDAwMDAwMDAwMDAwMTYwMDAwMDAwMDAwMDAwMDIxCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo2NgoJLy8gYVsxXSA9IDIyMgoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwZGUKCXJlcGxhY2UyIDgKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjY4CgkvLyByZXR1cm4gYVsxXTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWV4dHJhY3QgOCA4CglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJzZXRTdGF0aWNBcnJheUVsZW1lbnQoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc2V0U3RhdGljQXJyYXlFbGVtZW50CgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestShortTypeNotation.approval.teal b/tests/contracts/artifacts/ABITestShortTypeNotation.approval.teal index 691b2ca1c..5dba4f718 100644 --- a/tests/contracts/artifacts/ABITestShortTypeNotation.approval.teal +++ b/tests/contracts/artifacts/ABITestShortTypeNotation.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // shortTypeNotation()uint16 -abi_route_shortTypeNotation: +*abi_route_shortTypeNotation: // The ABI return prefix byte 0x151f7c75 @@ -66,18 +66,18 @@ shortTypeNotation: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "shortTypeNotation()uint16" txna ApplicationArgs 0 - match abi_route_shortTypeNotation + match *abi_route_shortTypeNotation err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestShortTypeNotation.arc32.json b/tests/contracts/artifacts/ABITestShortTypeNotation.arc32.json index 7a2700d18..91799a1fa 100644 --- a/tests/contracts/artifacts/ABITestShortTypeNotation.arc32.json +++ b/tests/contracts/artifacts/ABITestShortTypeNotation.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzaG9ydFR5cGVOb3RhdGlvbigpdWludDE2CmFiaV9yb3V0ZV9zaG9ydFR5cGVOb3RhdGlvbjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBzaG9ydFR5cGVOb3RhdGlvbigpdWludDE2CgljYWxsc3ViIHNob3J0VHlwZU5vdGF0aW9uCglpdG9iCglkdXAKCWJpdGxlbgoJaW50IDE2Cgk8PQoJYXNzZXJ0CglleHRyYWN0IDYgMgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHNob3J0VHlwZU5vdGF0aW9uKCk6IHVpbnQxNgpzaG9ydFR5cGVOb3RhdGlvbjoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjI5MgoJLy8gYTogW1N0YXRpY0FycmF5PHVpbnQxNiwgMj4sIFN0YXRpY0FycmF5PHVpbnQ2NCwgMj4sIFN0YXRpY0FycmF5PHVpbnQxNiwgMj5dID0gWwoJLy8gICAgICAgWzExLCAyMl0sCgkvLyAgICAgICBbMzMsIDQ0XSwKCS8vICAgICAgIFs1NSwgNjZdLAoJLy8gICAgIF0KCWJ5dGUgMHgwMDBiMDAxNjAwMDAwMDAwMDAwMDAwMjEwMDAwMDAwMDAwMDAwMDJjMDAzNzAwNDIKCWZyYW1lX2J1cnkgMCAvLyBhOiBbU3RhdGljQXJyYXk8dWludDE2LCAyPiwgU3RhdGljQXJyYXk8dWludDY0LCAyPiwgU3RhdGljQXJyYXk8dWludDE2LCAyPl0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6Mjk4CgkvLyByZXR1cm4gYVsyXVsxXTsKCWZyYW1lX2RpZyAwIC8vIGE6IFtTdGF0aWNBcnJheTx1aW50MTYsIDI+LCBTdGF0aWNBcnJheTx1aW50NjQsIDI+LCBTdGF0aWNBcnJheTx1aW50MTYsIDI+XQoJZXh0cmFjdCAyMiAyCglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgInNob3J0VHlwZU5vdGF0aW9uKCl1aW50MTYiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfc2hvcnRUeXBlTm90YXRpb24KCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzaG9ydFR5cGVOb3RhdGlvbigpdWludDE2CiphYmlfcm91dGVfc2hvcnRUeXBlTm90YXRpb246CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc2hvcnRUeXBlTm90YXRpb24oKXVpbnQxNgoJY2FsbHN1YiBzaG9ydFR5cGVOb3RhdGlvbgoJaXRvYgoJZHVwCgliaXRsZW4KCWludCAxNgoJPD0KCWFzc2VydAoJZXh0cmFjdCA2IDIKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzaG9ydFR5cGVOb3RhdGlvbigpOiB1aW50MTYKc2hvcnRUeXBlTm90YXRpb246Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoyOTIKCS8vIGE6IFtTdGF0aWNBcnJheTx1aW50MTYsIDI+LCBTdGF0aWNBcnJheTx1aW50NjQsIDI+LCBTdGF0aWNBcnJheTx1aW50MTYsIDI+XSA9IFsKCS8vICAgICAgIFsxMSwgMjJdLAoJLy8gICAgICAgWzMzLCA0NF0sCgkvLyAgICAgICBbNTUsIDY2XSwKCS8vICAgICBdCglieXRlIDB4MDAwYjAwMTYwMDAwMDAwMDAwMDAwMDIxMDAwMDAwMDAwMDAwMDAyYzAwMzcwMDQyCglmcmFtZV9idXJ5IDAgLy8gYTogW1N0YXRpY0FycmF5PHVpbnQxNiwgMj4sIFN0YXRpY0FycmF5PHVpbnQ2NCwgMj4sIFN0YXRpY0FycmF5PHVpbnQxNiwgMj5dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjI5OAoJLy8gcmV0dXJuIGFbMl1bMV07CglmcmFtZV9kaWcgMCAvLyBhOiBbU3RhdGljQXJyYXk8dWludDE2LCAyPiwgU3RhdGljQXJyYXk8dWludDY0LCAyPiwgU3RhdGljQXJyYXk8dWludDE2LCAyPl0KCWV4dHJhY3QgMjIgMgoJYnRvaQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAic2hvcnRUeXBlTm90YXRpb24oKXVpbnQxNiIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc2hvcnRUeXBlTm90YXRpb24KCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestShortenDynamicElementInTuple.approval.teal b/tests/contracts/artifacts/ABITestShortenDynamicElementInTuple.approval.teal index 408ef48c5..6e023ea15 100644 --- a/tests/contracts/artifacts/ABITestShortenDynamicElementInTuple.approval.teal +++ b/tests/contracts/artifacts/ABITestShortenDynamicElementInTuple.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // shortenDynamicElementInTuple()(uint16[],uint16[],uint16[]) -abi_route_shortenDynamicElementInTuple: +*abi_route_shortenDynamicElementInTuple: // The ABI return prefix byte 0x151f7c75 @@ -50,11 +50,11 @@ shortenDynamicElementInTuple: byte 0x // initial tail byte 0x0006 // initial head offset byte 0x000200010002 - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element byte 0x000200020003 - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element byte 0x000200030004 - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element pop // pop head offset concat // concat head and tail frame_bury 0 // a: [uint16[], uint16[], uint16[]] @@ -98,17 +98,17 @@ shortenDynamicElementInTuple: concat concat store 255 // full array - callsub get_length_difference + callsub *get_length_difference load 250 // length difference load 251 // element head offset int 2 + // head ofset - callsub update_dynamic_head + callsub *update_dynamic_head load 250 // length difference load 251 // element head offset int 4 + // head ofset - callsub update_dynamic_head + callsub *update_dynamic_head load 255 // full array frame_bury 0 // a: [uint16[], uint16[], uint16[]] @@ -151,12 +151,12 @@ shortenDynamicElementInTuple: concat concat store 255 // full array - callsub get_length_difference + callsub *get_length_difference load 250 // length difference load 251 // element head offset int 2 + // head ofset - callsub update_dynamic_head + callsub *update_dynamic_head load 255 // full array frame_bury 0 // a: [uint16[], uint16[], uint16[]] @@ -199,7 +199,7 @@ shortenDynamicElementInTuple: concat concat store 255 // full array - callsub get_length_difference + callsub *get_length_difference load 255 // full array frame_bury 0 // a: [uint16[], uint16[], uint16[]] @@ -211,23 +211,23 @@ shortenDynamicElementInTuple: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "shortenDynamicElementInTuple()(uint16[],uint16[],uint16[])" txna ApplicationArgs 0 - match abi_route_shortenDynamicElementInTuple + match *abi_route_shortenDynamicElementInTuple err -process_dynamic_tuple_element: +*process_dynamic_tuple_element: proto 4 3 frame_dig -4 // tuple head frame_dig -2 // head offset @@ -251,22 +251,22 @@ process_dynamic_tuple_element: frame_dig -2 // head offset retsub -update_dynamic_head: +*update_dynamic_head: proto 2 0 frame_dig -2 // length difference load 255 // full array frame_dig -1 // dynamic array offset extract_uint16 // extract dynamic array offset load 249 // subtract head difference - bz subtract_head_difference + bz *subtract_head_difference + // add difference to offset - b end_calc_new_head + b *end_calc_new_head -subtract_head_difference: +*subtract_head_difference: swap - // subtract difference from offet -end_calc_new_head: +*end_calc_new_head: itob // convert to bytes extract 6 2 // convert to uint16 load 255 // full array @@ -277,27 +277,27 @@ end_calc_new_head: store 255 // full array retsub -get_length_difference: +*get_length_difference: load 252 // new element len // length of new element load 253 // element length < - bnz swapped_difference + bnz *swapped_difference load 252 // new element len // length of new element load 253 // element length int 1 store 249 // subtract head difference - b get_difference + b *get_difference -swapped_difference: +*swapped_difference: load 253 // element length load 252 // new element len // length of new element int 0 store 249 // subtract head difference -get_difference: +*get_difference: - // get length difference store 250 // length difference retsub \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestShortenDynamicElementInTuple.arc32.json b/tests/contracts/artifacts/ABITestShortenDynamicElementInTuple.arc32.json index 1f630f5b2..0745d2384 100644 --- a/tests/contracts/artifacts/ABITestShortenDynamicElementInTuple.arc32.json +++ b/tests/contracts/artifacts/ABITestShortenDynamicElementInTuple.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzaG9ydGVuRHluYW1pY0VsZW1lbnRJblR1cGxlKCkodWludDE2W10sdWludDE2W10sdWludDE2W10pCmFiaV9yb3V0ZV9zaG9ydGVuRHluYW1pY0VsZW1lbnRJblR1cGxlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHNob3J0ZW5EeW5hbWljRWxlbWVudEluVHVwbGUoKSh1aW50MTZbXSx1aW50MTZbXSx1aW50MTZbXSkKCWNhbGxzdWIgc2hvcnRlbkR5bmFtaWNFbGVtZW50SW5UdXBsZQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHNob3J0ZW5EeW5hbWljRWxlbWVudEluVHVwbGUoKTogW3VpbnQxNltdLCB1aW50MTZbXSwgdWludDE2W11dCnNob3J0ZW5EeW5hbWljRWxlbWVudEluVHVwbGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1ODYKCS8vIGE6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXSA9IFsKCS8vICAgICAgIFsxLCAyXSwKCS8vICAgICAgIFsyLCAzXSwKCS8vICAgICAgIFszLCA0XSwKCS8vICAgICBdCglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDA2IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCWJ5dGUgMHgwMDAyMDAwMTAwMDIKCWNhbGxzdWIgcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDAyMDAwMjAwMDMKCWNhbGxzdWIgcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDAyMDAwMzAwMDQKCWNhbGxzdWIgcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1OTIKCS8vIGFbMF0gPSBbNV0KCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAwCglkdXAKCXN0b3JlIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAKCXN0b3JlIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCAyIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglzdG9yZSAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAwCglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglzdWJzdHJpbmczCglieXRlIDB4MDAwMTAwMDUKCWR1cAoJc3RvcmUgMjUyIC8vIG5ldyBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJKyAvLyBnZXQgZW5kIG9mIEVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxlbgoJc3Vic3RyaW5nMwoJY29uY2F0Cgljb25jYXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CgljYWxsc3ViIGdldF9sZW5ndGhfZGlmZmVyZW5jZQoJbG9hZCAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWludCAyCgkrIC8vIGhlYWQgb2ZzZXQKCWNhbGxzdWIgdXBkYXRlX2R5bmFtaWNfaGVhZAoJbG9hZCAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWludCA0CgkrIC8vIGhlYWQgb2ZzZXQKCWNhbGxzdWIgdXBkYXRlX2R5bmFtaWNfaGVhZAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1OTMKCS8vIGFbMV0gPSBbNl0KCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAyCglkdXAKCXN0b3JlIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAKCXN0b3JlIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCAyIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglzdG9yZSAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAwCglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglzdWJzdHJpbmczCglieXRlIDB4MDAwMTAwMDYKCWR1cAoJc3RvcmUgMjUyIC8vIG5ldyBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJKyAvLyBnZXQgZW5kIG9mIEVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxlbgoJc3Vic3RyaW5nMwoJY29uY2F0Cgljb25jYXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CgljYWxsc3ViIGdldF9sZW5ndGhfZGlmZmVyZW5jZQoJbG9hZCAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWludCAyCgkrIC8vIGhlYWQgb2ZzZXQKCWNhbGxzdWIgdXBkYXRlX2R5bmFtaWNfaGVhZAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1OTQKCS8vIGFbMl0gPSBbN10KCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCA0CglkdXAKCXN0b3JlIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAKCXN0b3JlIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCAyIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglzdG9yZSAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAwCglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglzdWJzdHJpbmczCglieXRlIDB4MDAwMTAwMDcKCWR1cAoJc3RvcmUgMjUyIC8vIG5ldyBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJKyAvLyBnZXQgZW5kIG9mIEVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxlbgoJc3Vic3RyaW5nMwoJY29uY2F0Cgljb25jYXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CgljYWxsc3ViIGdldF9sZW5ndGhfZGlmZmVyZW5jZQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1OTYKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQxNltdLCB1aW50MTZbXSwgdWludDE2W11dCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgInNob3J0ZW5EeW5hbWljRWxlbWVudEluVHVwbGUoKSh1aW50MTZbXSx1aW50MTZbXSx1aW50MTZbXSkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfc2hvcnRlbkR5bmFtaWNFbGVtZW50SW5UdXBsZQoJZXJyCgpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgp1cGRhdGVfZHluYW1pY19oZWFkOgoJcHJvdG8gMiAwCglmcmFtZV9kaWcgLTIgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2RpZyAtMSAvLyBkeW5hbWljIGFycmF5IG9mZnNldAoJZXh0cmFjdF91aW50MTYgLy8gZXh0cmFjdCBkeW5hbWljIGFycmF5IG9mZnNldAoJbG9hZCAyNDkgLy8gc3VidHJhY3QgaGVhZCBkaWZmZXJlbmNlCglieiBzdWJ0cmFjdF9oZWFkX2RpZmZlcmVuY2UKCSsgLy8gYWRkIGRpZmZlcmVuY2UgdG8gb2Zmc2V0CgliIGVuZF9jYWxjX25ld19oZWFkCgpzdWJ0cmFjdF9oZWFkX2RpZmZlcmVuY2U6Cglzd2FwCgktIC8vIHN1YnRyYWN0IGRpZmZlcmVuY2UgZnJvbSBvZmZldAoKZW5kX2NhbGNfbmV3X2hlYWQ6CglpdG9iIC8vIGNvbnZlcnQgdG8gYnl0ZXMKCWV4dHJhY3QgNiAyIC8vIGNvbnZlcnQgdG8gdWludDE2Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglmcmFtZV9kaWcgLTEgLy8gb2Zmc2V0Cglzd2FwCglyZXBsYWNlMyAvLyB1cGRhdGUgb2Zmc2V0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJcmV0c3ViCgpnZXRfbGVuZ3RoX2RpZmZlcmVuY2U6Cglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCTwKCWJueiBzd2FwcGVkX2RpZmZlcmVuY2UKCWxvYWQgMjUyIC8vIG5ldyBlbGVtZW50CglsZW4gLy8gbGVuZ3RoIG9mIG5ldyBlbGVtZW50Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJaW50IDEKCXN0b3JlIDI0OSAvLyBzdWJ0cmFjdCBoZWFkIGRpZmZlcmVuY2UKCWIgZ2V0X2RpZmZlcmVuY2UKCnN3YXBwZWRfZGlmZmVyZW5jZToKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJaW50IDAKCXN0b3JlIDI0OSAvLyBzdWJ0cmFjdCBoZWFkIGRpZmZlcmVuY2UKCmdldF9kaWZmZXJlbmNlOgoJLSAvLyBnZXQgbGVuZ3RoIGRpZmZlcmVuY2UKCXN0b3JlIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJcmV0c3Vi", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzaG9ydGVuRHluYW1pY0VsZW1lbnRJblR1cGxlKCkodWludDE2W10sdWludDE2W10sdWludDE2W10pCiphYmlfcm91dGVfc2hvcnRlbkR5bmFtaWNFbGVtZW50SW5UdXBsZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBzaG9ydGVuRHluYW1pY0VsZW1lbnRJblR1cGxlKCkodWludDE2W10sdWludDE2W10sdWludDE2W10pCgljYWxsc3ViIHNob3J0ZW5EeW5hbWljRWxlbWVudEluVHVwbGUKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzaG9ydGVuRHluYW1pY0VsZW1lbnRJblR1cGxlKCk6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQpzaG9ydGVuRHluYW1pY0VsZW1lbnRJblR1cGxlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTg2CgkvLyBhOiBbdWludDE2W10sIHVpbnQxNltdLCB1aW50MTZbXV0gPSBbCgkvLyAgICAgICBbMSwgMl0sCgkvLyAgICAgICBbMiwgM10sCgkvLyAgICAgICBbMywgNF0sCgkvLyAgICAgXQoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglieXRlIDB4MDAwNiAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0CglieXRlIDB4MDAwMjAwMDEwMDAyCgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDIwMDAyMDAwMwoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDAyMDAwMzAwMDQKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDE2W10sIHVpbnQxNltdLCB1aW50MTZbXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTkyCgkvLyBhWzBdID0gWzVdCglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDE2W10sIHVpbnQxNltdLCB1aW50MTZbXV0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMAoJZHVwCglzdG9yZSAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwCglzdG9yZSAyNTQgLy8gZWxlbWVudCBzdGFydAoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMiAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJc3RvcmUgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMAoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJc3Vic3RyaW5nMwoJYnl0ZSAweDAwMDEwMDA1CglkdXAKCXN0b3JlIDI1MiAvLyBuZXcgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCSsgLy8gZ2V0IGVuZCBvZiBFbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglsZW4KCXN1YnN0cmluZzMKCWNvbmNhdAoJY29uY2F0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJY2FsbHN1YiAqZ2V0X2xlbmd0aF9kaWZmZXJlbmNlCglsb2FkIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJbG9hZCAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJaW50IDIKCSsgLy8gaGVhZCBvZnNldAoJY2FsbHN1YiAqdXBkYXRlX2R5bmFtaWNfaGVhZAoJbG9hZCAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWludCA0CgkrIC8vIGhlYWQgb2ZzZXQKCWNhbGxzdWIgKnVwZGF0ZV9keW5hbWljX2hlYWQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDE2W10sIHVpbnQxNltdLCB1aW50MTZbXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTkzCgkvLyBhWzFdID0gWzZdCglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDE2W10sIHVpbnQxNltdLCB1aW50MTZbXV0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMgoJZHVwCglzdG9yZSAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwCglzdG9yZSAyNTQgLy8gZWxlbWVudCBzdGFydAoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMiAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJc3RvcmUgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMAoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJc3Vic3RyaW5nMwoJYnl0ZSAweDAwMDEwMDA2CglkdXAKCXN0b3JlIDI1MiAvLyBuZXcgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCSsgLy8gZ2V0IGVuZCBvZiBFbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglsZW4KCXN1YnN0cmluZzMKCWNvbmNhdAoJY29uY2F0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJY2FsbHN1YiAqZ2V0X2xlbmd0aF9kaWZmZXJlbmNlCglsb2FkIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJbG9hZCAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJaW50IDIKCSsgLy8gaGVhZCBvZnNldAoJY2FsbHN1YiAqdXBkYXRlX2R5bmFtaWNfaGVhZAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1OTQKCS8vIGFbMl0gPSBbN10KCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCA0CglkdXAKCXN0b3JlIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAKCXN0b3JlIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCAyIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglzdG9yZSAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAwCglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglzdWJzdHJpbmczCglieXRlIDB4MDAwMTAwMDcKCWR1cAoJc3RvcmUgMjUyIC8vIG5ldyBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJKyAvLyBnZXQgZW5kIG9mIEVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxlbgoJc3Vic3RyaW5nMwoJY29uY2F0Cgljb25jYXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CgljYWxsc3ViICpnZXRfbGVuZ3RoX2RpZmZlcmVuY2UKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDE2W10sIHVpbnQxNltdLCB1aW50MTZbXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTk2CgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAic2hvcnRlbkR5bmFtaWNFbGVtZW50SW5UdXBsZSgpKHVpbnQxNltdLHVpbnQxNltdLHVpbnQxNltdKSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc2hvcnRlbkR5bmFtaWNFbGVtZW50SW5UdXBsZQoJZXJyCgoqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJZHVwCglsZW4KCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJYnRvaQoJKwoJaXRvYgoJZXh0cmFjdCA2IDIKCWZyYW1lX2J1cnkgLTIgLy8gaGVhZCBvZmZzZXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglzd2FwCgljb25jYXQKCWZyYW1lX2J1cnkgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKKnVwZGF0ZV9keW5hbWljX2hlYWQ6Cglwcm90byAyIDAKCWZyYW1lX2RpZyAtMiAvLyBsZW5ndGggZGlmZmVyZW5jZQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZnJhbWVfZGlnIC0xIC8vIGR5bmFtaWMgYXJyYXkgb2Zmc2V0CglleHRyYWN0X3VpbnQxNiAvLyBleHRyYWN0IGR5bmFtaWMgYXJyYXkgb2Zmc2V0Cglsb2FkIDI0OSAvLyBzdWJ0cmFjdCBoZWFkIGRpZmZlcmVuY2UKCWJ6ICpzdWJ0cmFjdF9oZWFkX2RpZmZlcmVuY2UKCSsgLy8gYWRkIGRpZmZlcmVuY2UgdG8gb2Zmc2V0CgliICplbmRfY2FsY19uZXdfaGVhZAoKKnN1YnRyYWN0X2hlYWRfZGlmZmVyZW5jZToKCXN3YXAKCS0gLy8gc3VidHJhY3QgZGlmZmVyZW5jZSBmcm9tIG9mZmV0CgoqZW5kX2NhbGNfbmV3X2hlYWQ6CglpdG9iIC8vIGNvbnZlcnQgdG8gYnl0ZXMKCWV4dHJhY3QgNiAyIC8vIGNvbnZlcnQgdG8gdWludDE2Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglmcmFtZV9kaWcgLTEgLy8gb2Zmc2V0Cglzd2FwCglyZXBsYWNlMyAvLyB1cGRhdGUgb2Zmc2V0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJcmV0c3ViCgoqZ2V0X2xlbmd0aF9kaWZmZXJlbmNlOgoJbG9hZCAyNTIgLy8gbmV3IGVsZW1lbnQKCWxlbiAvLyBsZW5ndGggb2YgbmV3IGVsZW1lbnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgk8CglibnogKnN3YXBwZWRfZGlmZmVyZW5jZQoJbG9hZCAyNTIgLy8gbmV3IGVsZW1lbnQKCWxlbiAvLyBsZW5ndGggb2YgbmV3IGVsZW1lbnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglpbnQgMQoJc3RvcmUgMjQ5IC8vIHN1YnRyYWN0IGhlYWQgZGlmZmVyZW5jZQoJYiAqZ2V0X2RpZmZlcmVuY2UKCipzd2FwcGVkX2RpZmZlcmVuY2U6Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTIgLy8gbmV3IGVsZW1lbnQKCWxlbiAvLyBsZW5ndGggb2YgbmV3IGVsZW1lbnQKCWludCAwCglzdG9yZSAyNDkgLy8gc3VidHJhY3QgaGVhZCBkaWZmZXJlbmNlCgoqZ2V0X2RpZmZlcmVuY2U6CgktIC8vIGdldCBsZW5ndGggZGlmZmVyZW5jZQoJc3RvcmUgMjUwIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglyZXRzdWI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestSimpleTuple.approval.teal b/tests/contracts/artifacts/ABITestSimpleTuple.approval.teal index e3cedb9d8..c931a17c1 100644 --- a/tests/contracts/artifacts/ABITestSimpleTuple.approval.teal +++ b/tests/contracts/artifacts/ABITestSimpleTuple.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // simpleTuple()uint16 -abi_route_simpleTuple: +*abi_route_simpleTuple: // The ABI return prefix byte 0x151f7c75 @@ -62,18 +62,18 @@ simpleTuple: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "simpleTuple()uint16" txna ApplicationArgs 0 - match abi_route_simpleTuple + match *abi_route_simpleTuple err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestSimpleTuple.arc32.json b/tests/contracts/artifacts/ABITestSimpleTuple.arc32.json index 863a12613..4cef397e2 100644 --- a/tests/contracts/artifacts/ABITestSimpleTuple.arc32.json +++ b/tests/contracts/artifacts/ABITestSimpleTuple.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzaW1wbGVUdXBsZSgpdWludDE2CmFiaV9yb3V0ZV9zaW1wbGVUdXBsZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBzaW1wbGVUdXBsZSgpdWludDE2CgljYWxsc3ViIHNpbXBsZVR1cGxlCglpdG9iCglkdXAKCWJpdGxlbgoJaW50IDE2Cgk8PQoJYXNzZXJ0CglleHRyYWN0IDYgMgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHNpbXBsZVR1cGxlKCk6IHVpbnQxNgpzaW1wbGVUdXBsZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjI1NwoJLy8gYTogW3VpbnQ2NCwgdWludDE2LCB1aW50NjQsIHVpbnQxNl0gPSBbMTEsIDIyLCAzMywgNDRdCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwYjAwMTYwMDAwMDAwMDAwMDAwMDIxMDAyYwoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50NjQsIHVpbnQxNiwgdWludDY0LCB1aW50MTZdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjI1OQoJLy8gcmV0dXJuIGFbM107CglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDY0LCB1aW50MTYsIHVpbnQ2NCwgdWludDE2XQoJZXh0cmFjdCAxOCAyCglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgInNpbXBsZVR1cGxlKCl1aW50MTYiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfc2ltcGxlVHVwbGUKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzaW1wbGVUdXBsZSgpdWludDE2CiphYmlfcm91dGVfc2ltcGxlVHVwbGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc2ltcGxlVHVwbGUoKXVpbnQxNgoJY2FsbHN1YiBzaW1wbGVUdXBsZQoJaXRvYgoJZHVwCgliaXRsZW4KCWludCAxNgoJPD0KCWFzc2VydAoJZXh0cmFjdCA2IDIKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzaW1wbGVUdXBsZSgpOiB1aW50MTYKc2ltcGxlVHVwbGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoyNTcKCS8vIGE6IFt1aW50NjQsIHVpbnQxNiwgdWludDY0LCB1aW50MTZdID0gWzExLCAyMiwgMzMsIDQ0XQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMGIwMDE2MDAwMDAwMDAwMDAwMDAyMTAwMmMKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDY0LCB1aW50MTYsIHVpbnQ2NCwgdWludDE2XQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoyNTkKCS8vIHJldHVybiBhWzNdOwoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQ2NCwgdWludDE2LCB1aW50NjQsIHVpbnQxNl0KCWV4dHJhY3QgMTggMgoJYnRvaQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAic2ltcGxlVHVwbGUoKXVpbnQxNiIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc2ltcGxlVHVwbGUKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestSmallerByteCasting.approval.teal b/tests/contracts/artifacts/ABITestSmallerByteCasting.approval.teal index 7435d9b61..5db3e7aa4 100644 --- a/tests/contracts/artifacts/ABITestSmallerByteCasting.approval.teal +++ b/tests/contracts/artifacts/ABITestSmallerByteCasting.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // smallerByteCasting(byte[4])byte[2] -abi_route_smallerByteCasting: +*abi_route_smallerByteCasting: // The ABI return prefix byte 0x151f7c75 @@ -51,18 +51,18 @@ smallerByteCasting: extract 0 2 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "smallerByteCasting(byte[4])byte[2]" txna ApplicationArgs 0 - match abi_route_smallerByteCasting + match *abi_route_smallerByteCasting err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestSmallerByteCasting.arc32.json b/tests/contracts/artifacts/ABITestSmallerByteCasting.arc32.json index 0759f1166..b87dc55c1 100644 --- a/tests/contracts/artifacts/ABITestSmallerByteCasting.arc32.json +++ b/tests/contracts/artifacts/ABITestSmallerByteCasting.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzbWFsbGVyQnl0ZUNhc3RpbmcoYnl0ZVs0XSlieXRlWzJdCmFiaV9yb3V0ZV9zbWFsbGVyQnl0ZUNhc3Rpbmc6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGE6IGJ5dGVbNF0KCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgNAoJPT0KCWFzc2VydAoKCS8vIGV4ZWN1dGUgc21hbGxlckJ5dGVDYXN0aW5nKGJ5dGVbNF0pYnl0ZVsyXQoJY2FsbHN1YiBzbWFsbGVyQnl0ZUNhc3RpbmcKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzbWFsbGVyQnl0ZUNhc3RpbmcoYTogYnl0ZXM8ND4pOiBieXRlczwyPgpzbWFsbGVyQnl0ZUNhc3Rpbmc6Cglwcm90byAxIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTIyMgoJLy8gcmV0dXJuIDxieXRlczwyPj5hOwoJZnJhbWVfZGlnIC0xIC8vIGE6IGJ5dGVzPDQ+CglleHRyYWN0IDAgMgoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJzbWFsbGVyQnl0ZUNhc3RpbmcoYnl0ZVs0XSlieXRlWzJdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX3NtYWxsZXJCeXRlQ2FzdGluZwoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzbWFsbGVyQnl0ZUNhc3RpbmcoYnl0ZVs0XSlieXRlWzJdCiphYmlfcm91dGVfc21hbGxlckJ5dGVDYXN0aW5nOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBhOiBieXRlWzRdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDQKCT09Cglhc3NlcnQKCgkvLyBleGVjdXRlIHNtYWxsZXJCeXRlQ2FzdGluZyhieXRlWzRdKWJ5dGVbMl0KCWNhbGxzdWIgc21hbGxlckJ5dGVDYXN0aW5nCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gc21hbGxlckJ5dGVDYXN0aW5nKGE6IGJ5dGVzPDQ+KTogYnl0ZXM8Mj4Kc21hbGxlckJ5dGVDYXN0aW5nOgoJcHJvdG8gMSAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyMjIKCS8vIHJldHVybiA8Ynl0ZXM8Mj4+YTsKCWZyYW1lX2RpZyAtMSAvLyBhOiBieXRlczw0PgoJZXh0cmFjdCAwIDIKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInNtYWxsZXJCeXRlQ2FzdGluZyhieXRlWzRdKWJ5dGVbMl0iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3NtYWxsZXJCeXRlQ2FzdGluZwoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestSpliceFirstElement.approval.teal b/tests/contracts/artifacts/ABITestSpliceFirstElement.approval.teal index 2b44f0b32..e42ec407b 100644 --- a/tests/contracts/artifacts/ABITestSpliceFirstElement.approval.teal +++ b/tests/contracts/artifacts/ABITestSpliceFirstElement.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // spliceFirstElement()uint16[] -abi_route_spliceFirstElement: +*abi_route_spliceFirstElement: // The ABI return prefix byte 0x151f7c75 @@ -86,18 +86,18 @@ spliceFirstElement: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "spliceFirstElement()uint16[]" txna ApplicationArgs 0 - match abi_route_spliceFirstElement + match *abi_route_spliceFirstElement err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestSpliceFirstElement.arc32.json b/tests/contracts/artifacts/ABITestSpliceFirstElement.arc32.json index 75b083b10..496a3a621 100644 --- a/tests/contracts/artifacts/ABITestSpliceFirstElement.arc32.json +++ b/tests/contracts/artifacts/ABITestSpliceFirstElement.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzcGxpY2VGaXJzdEVsZW1lbnQoKXVpbnQxNltdCmFiaV9yb3V0ZV9zcGxpY2VGaXJzdEVsZW1lbnQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc3BsaWNlRmlyc3RFbGVtZW50KCl1aW50MTZbXQoJY2FsbHN1YiBzcGxpY2VGaXJzdEVsZW1lbnQKCWR1cAoJbGVuCglpbnQgMgoJLwoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHNwbGljZUZpcnN0RWxlbWVudCgpOiB1aW50MTZbXQpzcGxpY2VGaXJzdEVsZW1lbnQ6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1MTAKCS8vIGE6IHVpbnQxNltdID0gWzEsIDIsIDNdCglieXRlIDB4MDAwMTAwMDIwMDAzCglmcmFtZV9idXJ5IDAgLy8gYTogdWludDE2W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTEyCgkvLyBhLnNwbGljZSgwLCAxKQoJZnJhbWVfZGlnIDAgLy8gYTogdWludDE2W10KCWludCAxCglpbnQgMAoJc3RvcmUgMjQ3IC8vIHNwbGljZSBzdGFydAoJaW50IDQKCXN0b3JlIDI0NiAvLyBzcGxpY2UgYnl0ZSBsZW5ndGgKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCglpbnQgMAoJbG9hZCAyNDcgLy8gc3BsaWNlIHN0YXJ0CglzdWJzdHJpbmczCglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoJZHVwCglsZW4KCWxvYWQgMjQ3IC8vIHNwbGljZSBzdGFydAoJbG9hZCAyNDYgLy8gc3BsaWNlIGJ5dGUgbGVuZ3RoCgkrCglpbnQgMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0CglmcmFtZV9idXJ5IDAgLy8gYTogdWludDE2W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTE0CgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgInNwbGljZUZpcnN0RWxlbWVudCgpdWludDE2W10iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfc3BsaWNlRmlyc3RFbGVtZW50CgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzcGxpY2VGaXJzdEVsZW1lbnQoKXVpbnQxNltdCiphYmlfcm91dGVfc3BsaWNlRmlyc3RFbGVtZW50OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHNwbGljZUZpcnN0RWxlbWVudCgpdWludDE2W10KCWNhbGxzdWIgc3BsaWNlRmlyc3RFbGVtZW50CglkdXAKCWxlbgoJaW50IDIKCS8KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzcGxpY2VGaXJzdEVsZW1lbnQoKTogdWludDE2W10Kc3BsaWNlRmlyc3RFbGVtZW50OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTEwCgkvLyBhOiB1aW50MTZbXSA9IFsxLCAyLCAzXQoJYnl0ZSAweDAwMDEwMDAyMDAwMwoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQxNltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjUxMgoJLy8gYS5zcGxpY2UoMCwgMSkKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCglpbnQgMQoJaW50IDAKCXN0b3JlIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCWludCA0CglzdG9yZSAyNDYgLy8gc3BsaWNlIGJ5dGUgbGVuZ3RoCglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoJaW50IDAKCWxvYWQgMjQ3IC8vIHNwbGljZSBzdGFydAoJc3Vic3RyaW5nMwoJZnJhbWVfZGlnIDAgLy8gYTogdWludDE2W10KCWR1cAoJbGVuCglsb2FkIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCWxvYWQgMjQ2IC8vIHNwbGljZSBieXRlIGxlbmd0aAoJKwoJaW50IDIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQxNltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjUxNAoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAic3BsaWNlRmlyc3RFbGVtZW50KCl1aW50MTZbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3BsaWNlRmlyc3RFbGVtZW50CgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestSpliceFirstElementValue.approval.teal b/tests/contracts/artifacts/ABITestSpliceFirstElementValue.approval.teal index 6a523c5a0..0bcb05435 100644 --- a/tests/contracts/artifacts/ABITestSpliceFirstElementValue.approval.teal +++ b/tests/contracts/artifacts/ABITestSpliceFirstElementValue.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // spliceFirstElementValue()uint16[] -abi_route_spliceFirstElementValue: +*abi_route_spliceFirstElementValue: // The ABI return prefix byte 0x151f7c75 @@ -98,18 +98,18 @@ spliceFirstElementValue: popn 1 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "spliceFirstElementValue()uint16[]" txna ApplicationArgs 0 - match abi_route_spliceFirstElementValue + match *abi_route_spliceFirstElementValue err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestSpliceFirstElementValue.arc32.json b/tests/contracts/artifacts/ABITestSpliceFirstElementValue.arc32.json index 957e602d5..227376043 100644 --- a/tests/contracts/artifacts/ABITestSpliceFirstElementValue.arc32.json +++ b/tests/contracts/artifacts/ABITestSpliceFirstElementValue.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzcGxpY2VGaXJzdEVsZW1lbnRWYWx1ZSgpdWludDE2W10KYWJpX3JvdXRlX3NwbGljZUZpcnN0RWxlbWVudFZhbHVlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHNwbGljZUZpcnN0RWxlbWVudFZhbHVlKCl1aW50MTZbXQoJY2FsbHN1YiBzcGxpY2VGaXJzdEVsZW1lbnRWYWx1ZQoJZHVwCglsZW4KCWludCAyCgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gc3BsaWNlRmlyc3RFbGVtZW50VmFsdWUoKTogdWludDE2W10Kc3BsaWNlRmlyc3RFbGVtZW50VmFsdWU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjUyMAoJLy8gYTogdWludDE2W10gPSBbMSwgMiwgM10KCWJ5dGUgMHgwMDAxMDAwMjAwMDMKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50MTZbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1MjIKCS8vIHYgPSBhLnNwbGljZSgwLCAxKQoJZnJhbWVfZGlnIDAgLy8gYTogdWludDE2W10KCWludCAxCglpbnQgMAoJc3RvcmUgMjQ3IC8vIHNwbGljZSBzdGFydAoJaW50IDQKCXN0b3JlIDI0NiAvLyBzcGxpY2UgYnl0ZSBsZW5ndGgKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCglpbnQgMAoJbG9hZCAyNDcgLy8gc3BsaWNlIHN0YXJ0CglzdWJzdHJpbmczCglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoJZHVwCglsZW4KCWxvYWQgMjQ3IC8vIHNwbGljZSBzdGFydAoJbG9hZCAyNDYgLy8gc3BsaWNlIGJ5dGUgbGVuZ3RoCgkrCglpbnQgMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0CglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoJbG9hZCAyNDcgLy8gc3BsaWNlIHN0YXJ0Cglsb2FkIDI0NiAvLyBzcGxpY2UgYnl0ZSBsZW5ndGgKCWludCAyCgktCglleHRyYWN0MwoJc3dhcAoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQxNltdCglmcmFtZV9idXJ5IDEgLy8gdjogdWludDE2W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTI0CgkvLyByZXR1cm4gdjsKCWZyYW1lX2RpZyAxIC8vIHY6IHVpbnQxNltdCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMQoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJzcGxpY2VGaXJzdEVsZW1lbnRWYWx1ZSgpdWludDE2W10iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfc3BsaWNlRmlyc3RFbGVtZW50VmFsdWUKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzcGxpY2VGaXJzdEVsZW1lbnRWYWx1ZSgpdWludDE2W10KKmFiaV9yb3V0ZV9zcGxpY2VGaXJzdEVsZW1lbnRWYWx1ZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBzcGxpY2VGaXJzdEVsZW1lbnRWYWx1ZSgpdWludDE2W10KCWNhbGxzdWIgc3BsaWNlRmlyc3RFbGVtZW50VmFsdWUKCWR1cAoJbGVuCglpbnQgMgoJLwoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHNwbGljZUZpcnN0RWxlbWVudFZhbHVlKCk6IHVpbnQxNltdCnNwbGljZUZpcnN0RWxlbWVudFZhbHVlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1MjAKCS8vIGE6IHVpbnQxNltdID0gWzEsIDIsIDNdCglieXRlIDB4MDAwMTAwMDIwMDAzCglmcmFtZV9idXJ5IDAgLy8gYTogdWludDE2W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTIyCgkvLyB2ID0gYS5zcGxpY2UoMCwgMSkKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCglpbnQgMQoJaW50IDAKCXN0b3JlIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCWludCA0CglzdG9yZSAyNDYgLy8gc3BsaWNlIGJ5dGUgbGVuZ3RoCglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoJaW50IDAKCWxvYWQgMjQ3IC8vIHNwbGljZSBzdGFydAoJc3Vic3RyaW5nMwoJZnJhbWVfZGlnIDAgLy8gYTogdWludDE2W10KCWR1cAoJbGVuCglsb2FkIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCWxvYWQgMjQ2IC8vIHNwbGljZSBieXRlIGxlbmd0aAoJKwoJaW50IDIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJZnJhbWVfZGlnIDAgLy8gYTogdWludDE2W10KCWxvYWQgMjQ3IC8vIHNwbGljZSBzdGFydAoJbG9hZCAyNDYgLy8gc3BsaWNlIGJ5dGUgbGVuZ3RoCglpbnQgMgoJLQoJZXh0cmFjdDMKCXN3YXAKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50MTZbXQoJZnJhbWVfYnVyeSAxIC8vIHY6IHVpbnQxNltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjUyNAoJLy8gcmV0dXJuIHY7CglmcmFtZV9kaWcgMSAvLyB2OiB1aW50MTZbXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInNwbGljZUZpcnN0RWxlbWVudFZhbHVlKCl1aW50MTZbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3BsaWNlRmlyc3RFbGVtZW50VmFsdWUKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestSpliceLastElement.approval.teal b/tests/contracts/artifacts/ABITestSpliceLastElement.approval.teal index 4b1ed5acc..05cc6a21b 100644 --- a/tests/contracts/artifacts/ABITestSpliceLastElement.approval.teal +++ b/tests/contracts/artifacts/ABITestSpliceLastElement.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // spliceLastElement()uint16[] -abi_route_spliceLastElement: +*abi_route_spliceLastElement: // The ABI return prefix byte 0x151f7c75 @@ -86,18 +86,18 @@ spliceLastElement: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "spliceLastElement()uint16[]" txna ApplicationArgs 0 - match abi_route_spliceLastElement + match *abi_route_spliceLastElement err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestSpliceLastElement.arc32.json b/tests/contracts/artifacts/ABITestSpliceLastElement.arc32.json index 71bc6bfc0..6e8ef2eca 100644 --- a/tests/contracts/artifacts/ABITestSpliceLastElement.arc32.json +++ b/tests/contracts/artifacts/ABITestSpliceLastElement.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzcGxpY2VMYXN0RWxlbWVudCgpdWludDE2W10KYWJpX3JvdXRlX3NwbGljZUxhc3RFbGVtZW50OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHNwbGljZUxhc3RFbGVtZW50KCl1aW50MTZbXQoJY2FsbHN1YiBzcGxpY2VMYXN0RWxlbWVudAoJZHVwCglsZW4KCWludCAyCgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gc3BsaWNlTGFzdEVsZW1lbnQoKTogdWludDE2W10Kc3BsaWNlTGFzdEVsZW1lbnQ6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0OTAKCS8vIGE6IHVpbnQxNltdID0gWzEsIDIsIDNdCglieXRlIDB4MDAwMTAwMDIwMDAzCglmcmFtZV9idXJ5IDAgLy8gYTogdWludDE2W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDkyCgkvLyBhLnNwbGljZSgyLCAxKQoJZnJhbWVfZGlnIDAgLy8gYTogdWludDE2W10KCWludCAxCglpbnQgNAoJc3RvcmUgMjQ3IC8vIHNwbGljZSBzdGFydAoJaW50IDQKCXN0b3JlIDI0NiAvLyBzcGxpY2UgYnl0ZSBsZW5ndGgKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCglpbnQgMAoJbG9hZCAyNDcgLy8gc3BsaWNlIHN0YXJ0CglzdWJzdHJpbmczCglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoJZHVwCglsZW4KCWxvYWQgMjQ3IC8vIHNwbGljZSBzdGFydAoJbG9hZCAyNDYgLy8gc3BsaWNlIGJ5dGUgbGVuZ3RoCgkrCglpbnQgMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0CglmcmFtZV9idXJ5IDAgLy8gYTogdWludDE2W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDk0CgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgInNwbGljZUxhc3RFbGVtZW50KCl1aW50MTZbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9zcGxpY2VMYXN0RWxlbWVudAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzcGxpY2VMYXN0RWxlbWVudCgpdWludDE2W10KKmFiaV9yb3V0ZV9zcGxpY2VMYXN0RWxlbWVudDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBzcGxpY2VMYXN0RWxlbWVudCgpdWludDE2W10KCWNhbGxzdWIgc3BsaWNlTGFzdEVsZW1lbnQKCWR1cAoJbGVuCglpbnQgMgoJLwoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHNwbGljZUxhc3RFbGVtZW50KCk6IHVpbnQxNltdCnNwbGljZUxhc3RFbGVtZW50OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDkwCgkvLyBhOiB1aW50MTZbXSA9IFsxLCAyLCAzXQoJYnl0ZSAweDAwMDEwMDAyMDAwMwoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQxNltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ5MgoJLy8gYS5zcGxpY2UoMiwgMSkKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCglpbnQgMQoJaW50IDQKCXN0b3JlIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCWludCA0CglzdG9yZSAyNDYgLy8gc3BsaWNlIGJ5dGUgbGVuZ3RoCglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoJaW50IDAKCWxvYWQgMjQ3IC8vIHNwbGljZSBzdGFydAoJc3Vic3RyaW5nMwoJZnJhbWVfZGlnIDAgLy8gYTogdWludDE2W10KCWR1cAoJbGVuCglsb2FkIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCWxvYWQgMjQ2IC8vIHNwbGljZSBieXRlIGxlbmd0aAoJKwoJaW50IDIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQxNltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ5NAoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAic3BsaWNlTGFzdEVsZW1lbnQoKXVpbnQxNltdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zcGxpY2VMYXN0RWxlbWVudAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestSpliceLastElementValue.approval.teal b/tests/contracts/artifacts/ABITestSpliceLastElementValue.approval.teal index e84ff1f71..c08ccbd5a 100644 --- a/tests/contracts/artifacts/ABITestSpliceLastElementValue.approval.teal +++ b/tests/contracts/artifacts/ABITestSpliceLastElementValue.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // spliceLastElementValue()uint16[] -abi_route_spliceLastElementValue: +*abi_route_spliceLastElementValue: // The ABI return prefix byte 0x151f7c75 @@ -98,18 +98,18 @@ spliceLastElementValue: popn 1 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "spliceLastElementValue()uint16[]" txna ApplicationArgs 0 - match abi_route_spliceLastElementValue + match *abi_route_spliceLastElementValue err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestSpliceLastElementValue.arc32.json b/tests/contracts/artifacts/ABITestSpliceLastElementValue.arc32.json index 4e4bbd4fd..003525470 100644 --- a/tests/contracts/artifacts/ABITestSpliceLastElementValue.arc32.json +++ b/tests/contracts/artifacts/ABITestSpliceLastElementValue.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzcGxpY2VMYXN0RWxlbWVudFZhbHVlKCl1aW50MTZbXQphYmlfcm91dGVfc3BsaWNlTGFzdEVsZW1lbnRWYWx1ZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBzcGxpY2VMYXN0RWxlbWVudFZhbHVlKCl1aW50MTZbXQoJY2FsbHN1YiBzcGxpY2VMYXN0RWxlbWVudFZhbHVlCglkdXAKCWxlbgoJaW50IDIKCS8KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzcGxpY2VMYXN0RWxlbWVudFZhbHVlKCk6IHVpbnQxNltdCnNwbGljZUxhc3RFbGVtZW50VmFsdWU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjUwMAoJLy8gYTogdWludDE2W10gPSBbMSwgMiwgM10KCWJ5dGUgMHgwMDAxMDAwMjAwMDMKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50MTZbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1MDIKCS8vIHYgPSBhLnNwbGljZSgyLCAxKQoJZnJhbWVfZGlnIDAgLy8gYTogdWludDE2W10KCWludCAxCglpbnQgNAoJc3RvcmUgMjQ3IC8vIHNwbGljZSBzdGFydAoJaW50IDQKCXN0b3JlIDI0NiAvLyBzcGxpY2UgYnl0ZSBsZW5ndGgKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCglpbnQgMAoJbG9hZCAyNDcgLy8gc3BsaWNlIHN0YXJ0CglzdWJzdHJpbmczCglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoJZHVwCglsZW4KCWxvYWQgMjQ3IC8vIHNwbGljZSBzdGFydAoJbG9hZCAyNDYgLy8gc3BsaWNlIGJ5dGUgbGVuZ3RoCgkrCglpbnQgMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0CglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoJbG9hZCAyNDcgLy8gc3BsaWNlIHN0YXJ0Cglsb2FkIDI0NiAvLyBzcGxpY2UgYnl0ZSBsZW5ndGgKCWludCAyCgktCglleHRyYWN0MwoJc3dhcAoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQxNltdCglmcmFtZV9idXJ5IDEgLy8gdjogdWludDE2W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTA0CgkvLyByZXR1cm4gdjsKCWZyYW1lX2RpZyAxIC8vIHY6IHVpbnQxNltdCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMQoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJzcGxpY2VMYXN0RWxlbWVudFZhbHVlKCl1aW50MTZbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9zcGxpY2VMYXN0RWxlbWVudFZhbHVlCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzcGxpY2VMYXN0RWxlbWVudFZhbHVlKCl1aW50MTZbXQoqYWJpX3JvdXRlX3NwbGljZUxhc3RFbGVtZW50VmFsdWU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc3BsaWNlTGFzdEVsZW1lbnRWYWx1ZSgpdWludDE2W10KCWNhbGxzdWIgc3BsaWNlTGFzdEVsZW1lbnRWYWx1ZQoJZHVwCglsZW4KCWludCAyCgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gc3BsaWNlTGFzdEVsZW1lbnRWYWx1ZSgpOiB1aW50MTZbXQpzcGxpY2VMYXN0RWxlbWVudFZhbHVlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1MDAKCS8vIGE6IHVpbnQxNltdID0gWzEsIDIsIDNdCglieXRlIDB4MDAwMTAwMDIwMDAzCglmcmFtZV9idXJ5IDAgLy8gYTogdWludDE2W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTAyCgkvLyB2ID0gYS5zcGxpY2UoMiwgMSkKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCglpbnQgMQoJaW50IDQKCXN0b3JlIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCWludCA0CglzdG9yZSAyNDYgLy8gc3BsaWNlIGJ5dGUgbGVuZ3RoCglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoJaW50IDAKCWxvYWQgMjQ3IC8vIHNwbGljZSBzdGFydAoJc3Vic3RyaW5nMwoJZnJhbWVfZGlnIDAgLy8gYTogdWludDE2W10KCWR1cAoJbGVuCglsb2FkIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCWxvYWQgMjQ2IC8vIHNwbGljZSBieXRlIGxlbmd0aAoJKwoJaW50IDIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJZnJhbWVfZGlnIDAgLy8gYTogdWludDE2W10KCWxvYWQgMjQ3IC8vIHNwbGljZSBzdGFydAoJbG9hZCAyNDYgLy8gc3BsaWNlIGJ5dGUgbGVuZ3RoCglpbnQgMgoJLQoJZXh0cmFjdDMKCXN3YXAKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50MTZbXQoJZnJhbWVfYnVyeSAxIC8vIHY6IHVpbnQxNltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjUwNAoJLy8gcmV0dXJuIHY7CglmcmFtZV9kaWcgMSAvLyB2OiB1aW50MTZbXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInNwbGljZUxhc3RFbGVtZW50VmFsdWUoKXVpbnQxNltdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zcGxpY2VMYXN0RWxlbWVudFZhbHVlCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestStaticArray.approval.teal b/tests/contracts/artifacts/ABITestStaticArray.approval.teal index 9d495e8fe..75277e37a 100644 --- a/tests/contracts/artifacts/ABITestStaticArray.approval.teal +++ b/tests/contracts/artifacts/ABITestStaticArray.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // staticArray()uint64 -abi_route_staticArray: +*abi_route_staticArray: // The ABI return prefix byte 0x151f7c75 @@ -56,18 +56,18 @@ staticArray: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "staticArray()uint64" txna ApplicationArgs 0 - match abi_route_staticArray + match *abi_route_staticArray err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestStaticArray.arc32.json b/tests/contracts/artifacts/ABITestStaticArray.arc32.json index 13fc7ec4c..677010230 100644 --- a/tests/contracts/artifacts/ABITestStaticArray.arc32.json +++ b/tests/contracts/artifacts/ABITestStaticArray.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzdGF0aWNBcnJheSgpdWludDY0CmFiaV9yb3V0ZV9zdGF0aWNBcnJheToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBzdGF0aWNBcnJheSgpdWludDY0CgljYWxsc3ViIHN0YXRpY0FycmF5CglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gc3RhdGljQXJyYXkoKTogdWludDY0CnN0YXRpY0FycmF5OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTEKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbMTEsIDIyLCAzM10KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDBiMDAwMDAwMDAwMDAwMDAxNjAwMDAwMDAwMDAwMDAwMjEKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzCgkvLyByZXR1cm4gYVsxXTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWV4dHJhY3QgOCA4CglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgInN0YXRpY0FycmF5KCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfc3RhdGljQXJyYXkKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzdGF0aWNBcnJheSgpdWludDY0CiphYmlfcm91dGVfc3RhdGljQXJyYXk6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc3RhdGljQXJyYXkoKXVpbnQ2NAoJY2FsbHN1YiBzdGF0aWNBcnJheQoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHN0YXRpY0FycmF5KCk6IHVpbnQ2NApzdGF0aWNBcnJheToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjExCgkvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+ID0gWzExLCAyMiwgMzNdCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwYjAwMDAwMDAwMDAwMDAwMTYwMDAwMDAwMDAwMDAwMDIxCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMwoJLy8gcmV0dXJuIGFbMV07CglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CglleHRyYWN0IDggOAoJYnRvaQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAic3RhdGljQXJyYXkoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3RhdGljQXJyYXkKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestStaticArrayArg.approval.teal b/tests/contracts/artifacts/ABITestStaticArrayArg.approval.teal index 9d6ca1617..68e635031 100644 --- a/tests/contracts/artifacts/ABITestStaticArrayArg.approval.teal +++ b/tests/contracts/artifacts/ABITestStaticArrayArg.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // staticArrayArg(uint64[3])uint64 -abi_route_staticArrayArg: +*abi_route_staticArrayArg: // The ABI return prefix byte 0x151f7c75 @@ -53,18 +53,18 @@ staticArrayArg: btoi retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "staticArrayArg(uint64[3])uint64" txna ApplicationArgs 0 - match abi_route_staticArrayArg + match *abi_route_staticArrayArg err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestStaticArrayArg.arc32.json b/tests/contracts/artifacts/ABITestStaticArrayArg.arc32.json index 0dd82e2c6..f1d5547eb 100644 --- a/tests/contracts/artifacts/ABITestStaticArrayArg.arc32.json +++ b/tests/contracts/artifacts/ABITestStaticArrayArg.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzdGF0aWNBcnJheUFyZyh1aW50NjRbM10pdWludDY0CmFiaV9yb3V0ZV9zdGF0aWNBcnJheUFyZzoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYTogdWludDY0WzNdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDI0Cgk9PQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBzdGF0aWNBcnJheUFyZyh1aW50NjRbM10pdWludDY0CgljYWxsc3ViIHN0YXRpY0FycmF5QXJnCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gc3RhdGljQXJyYXlBcmcoYTogU3RhdGljQXJyYXk8dWludDY0LCAzPik6IHVpbnQ2NApzdGF0aWNBcnJheUFyZzoKCXByb3RvIDEgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoyNwoJLy8gcmV0dXJuIGFbMV07CglmcmFtZV9kaWcgLTEgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoJZXh0cmFjdCA4IDgKCWJ0b2kKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAic3RhdGljQXJyYXlBcmcodWludDY0WzNdKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9zdGF0aWNBcnJheUFyZwoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzdGF0aWNBcnJheUFyZyh1aW50NjRbM10pdWludDY0CiphYmlfcm91dGVfc3RhdGljQXJyYXlBcmc6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGE6IHVpbnQ2NFszXQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAyNAoJPT0KCWFzc2VydAoKCS8vIGV4ZWN1dGUgc3RhdGljQXJyYXlBcmcodWludDY0WzNdKXVpbnQ2NAoJY2FsbHN1YiBzdGF0aWNBcnJheUFyZwoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHN0YXRpY0FycmF5QXJnKGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4pOiB1aW50NjQKc3RhdGljQXJyYXlBcmc6Cglwcm90byAxIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MjcKCS8vIHJldHVybiBhWzFdOwoJZnJhbWVfZGlnIC0xIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWV4dHJhY3QgOCA4CglidG9pCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJzdGF0aWNBcnJheUFyZyh1aW50NjRbM10pdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zdGF0aWNBcnJheUFyZwoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestStaticArrayInStorageMap.approval.teal b/tests/contracts/artifacts/ABITestStaticArrayInStorageMap.approval.teal index b3d10c8ea..44ff3c3bb 100644 --- a/tests/contracts/artifacts/ABITestStaticArrayInStorageMap.approval.teal +++ b/tests/contracts/artifacts/ABITestStaticArrayInStorageMap.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch NOT_IMPLEMENTED call_OptIn NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *NOT_IMPLEMENTED *call_OptIn *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // staticArrayInStorageMap()uint64[3] -abi_route_staticArrayInStorageMap: +*abi_route_staticArrayInStorageMap: // The ABI return prefix byte 0x151f7c75 @@ -103,18 +103,18 @@ staticArrayInStorageMap: popn 1 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_OptIn: +*call_OptIn: method "staticArrayInStorageMap()uint64[3]" txna ApplicationArgs 0 - match abi_route_staticArrayInStorageMap + match *abi_route_staticArrayInStorageMap err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestStaticArrayInStorageMap.arc32.json b/tests/contracts/artifacts/ABITestStaticArrayInStorageMap.arc32.json index c4ca618d8..432024cf6 100644 --- a/tests/contracts/artifacts/ABITestStaticArrayInStorageMap.arc32.json +++ b/tests/contracts/artifacts/ABITestStaticArrayInStorageMap.arc32.json @@ -49,7 +49,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggTk9UX0lNUExFTUVOVEVEIGNhbGxfT3B0SW4gTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQKCk5PVF9JTVBMRU1FTlRFRDoKCWVycgoKLy8gc3RhdGljQXJyYXlJblN0b3JhZ2VNYXAoKXVpbnQ2NFszXQphYmlfcm91dGVfc3RhdGljQXJyYXlJblN0b3JhZ2VNYXA6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc3RhdGljQXJyYXlJblN0b3JhZ2VNYXAoKXVpbnQ2NFszXQoJY2FsbHN1YiBzdGF0aWNBcnJheUluU3RvcmFnZU1hcAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHN0YXRpY0FycmF5SW5TdG9yYWdlTWFwKCk6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4Kc3RhdGljQXJyYXlJblN0b3JhZ2VNYXA6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0NQoJLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPiA9IFsxMSwgMjIsIDMzXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAwMDAwMDAwMDAwMDAyMQoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTQ3CgkvLyB0aGlzLmdNYXAoJ2dNYXAnKS52YWx1ZSA9IGEKCWJ5dGUgMHg2NzRkNjE3MCAvLyAiZ01hcCIKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0OAoJLy8gdGhpcy5sTWFwKHRoaXMudHhuLnNlbmRlciwgJ2xNYXAnKS52YWx1ZSA9IGEKCXR4biBTZW5kZXIKCWJ5dGUgMHg2YzRkNjE3MCAvLyAibE1hcCIKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWFwcF9sb2NhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTQ5CgkvLyB0aGlzLmJNYXAoJ2JNYXAnKS52YWx1ZSA9IGEKCWJ5dGUgMHg2MjRkNjE3MCAvLyAiYk1hcCIKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWJveF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTUxCgkvLyByZXQ6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbCgkvLyAgICAgICB0aGlzLmdNYXAoJ2dNYXAnKS52YWx1ZVsxXSwKCS8vICAgICAgIHRoaXMubE1hcCh0aGlzLnR4bi5zZW5kZXIsICdsTWFwJykudmFsdWVbMV0sCgkvLyAgICAgICB0aGlzLmJNYXAoJ2JNYXAnKS52YWx1ZVsxXSwKCS8vICAgICBdCglieXRlIDB4Njc0ZDYxNzAgLy8gImdNYXAiCglhcHBfZ2xvYmFsX2dldAoJZXh0cmFjdCA4IDgKCWJ0b2kKCWl0b2IKCXR4biBTZW5kZXIKCWJ5dGUgMHg2YzRkNjE3MCAvLyAibE1hcCIKCWFwcF9sb2NhbF9nZXQKCWV4dHJhY3QgOCA4CglidG9pCglpdG9iCgljb25jYXQKCWJ5dGUgMHg2MjRkNjE3MCAvLyAiYk1hcCIKCWludCA4CglkdXAKCWJveF9leHRyYWN0CglidG9pCglpdG9iCgljb25jYXQKCWZyYW1lX2J1cnkgMSAvLyByZXQ6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTU3CgkvLyByZXR1cm4gcmV0OwoJZnJhbWVfZGlnIDEgLy8gcmV0OiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMQoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9PcHRJbjoKCW1ldGhvZCAic3RhdGljQXJyYXlJblN0b3JhZ2VNYXAoKXVpbnQ2NFszXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9zdGF0aWNBcnJheUluU3RvcmFnZU1hcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqTk9UX0lNUExFTUVOVEVEICpjYWxsX09wdEluICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCWVycgoKLy8gc3RhdGljQXJyYXlJblN0b3JhZ2VNYXAoKXVpbnQ2NFszXQoqYWJpX3JvdXRlX3N0YXRpY0FycmF5SW5TdG9yYWdlTWFwOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHN0YXRpY0FycmF5SW5TdG9yYWdlTWFwKCl1aW50NjRbM10KCWNhbGxzdWIgc3RhdGljQXJyYXlJblN0b3JhZ2VNYXAKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzdGF0aWNBcnJheUluU3RvcmFnZU1hcCgpOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CnN0YXRpY0FycmF5SW5TdG9yYWdlTWFwOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDUKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbMTEsIDIyLCAzM10KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDBiMDAwMDAwMDAwMDAwMDAxNjAwMDAwMDAwMDAwMDAwMjEKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0NwoJLy8gdGhpcy5nTWFwKCdnTWFwJykudmFsdWUgPSBhCglieXRlIDB4Njc0ZDYxNzAgLy8gImdNYXAiCglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDgKCS8vIHRoaXMubE1hcCh0aGlzLnR4bi5zZW5kZXIsICdsTWFwJykudmFsdWUgPSBhCgl0eG4gU2VuZGVyCglieXRlIDB4NmM0ZDYxNzAgLy8gImxNYXAiCglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CglhcHBfbG9jYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0OQoJLy8gdGhpcy5iTWFwKCdiTWFwJykudmFsdWUgPSBhCglieXRlIDB4NjI0ZDYxNzAgLy8gImJNYXAiCglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+Cglib3hfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE1MQoJLy8gcmV0OiBTdGF0aWNBcnJheTx1aW50NjQsIDM+ID0gWwoJLy8gICAgICAgdGhpcy5nTWFwKCdnTWFwJykudmFsdWVbMV0sCgkvLyAgICAgICB0aGlzLmxNYXAodGhpcy50eG4uc2VuZGVyLCAnbE1hcCcpLnZhbHVlWzFdLAoJLy8gICAgICAgdGhpcy5iTWFwKCdiTWFwJykudmFsdWVbMV0sCgkvLyAgICAgXQoJYnl0ZSAweDY3NGQ2MTcwIC8vICJnTWFwIgoJYXBwX2dsb2JhbF9nZXQKCWV4dHJhY3QgOCA4CglidG9pCglpdG9iCgl0eG4gU2VuZGVyCglieXRlIDB4NmM0ZDYxNzAgLy8gImxNYXAiCglhcHBfbG9jYWxfZ2V0CglleHRyYWN0IDggOAoJYnRvaQoJaXRvYgoJY29uY2F0CglieXRlIDB4NjI0ZDYxNzAgLy8gImJNYXAiCglpbnQgOAoJZHVwCglib3hfZXh0cmFjdAoJYnRvaQoJaXRvYgoJY29uY2F0CglmcmFtZV9idXJ5IDEgLy8gcmV0OiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE1NwoJLy8gcmV0dXJuIHJldDsKCWZyYW1lX2RpZyAxIC8vIHJldDogU3RhdGljQXJyYXk8dWludDY0LCAzPgoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCipjYWxsX09wdEluOgoJbWV0aG9kICJzdGF0aWNBcnJheUluU3RvcmFnZU1hcCgpdWludDY0WzNdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zdGF0aWNBcnJheUluU3RvcmFnZU1hcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestStaticArrayInStorageRef.approval.teal b/tests/contracts/artifacts/ABITestStaticArrayInStorageRef.approval.teal index 2ec765a6e..b3857c59e 100644 --- a/tests/contracts/artifacts/ABITestStaticArrayInStorageRef.approval.teal +++ b/tests/contracts/artifacts/ABITestStaticArrayInStorageRef.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch NOT_IMPLEMENTED call_OptIn NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *NOT_IMPLEMENTED *call_OptIn *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // staticArrayInStorageRef()uint64[3] -abi_route_staticArrayInStorageRef: +*abi_route_staticArrayInStorageRef: // The ABI return prefix byte 0x151f7c75 @@ -99,18 +99,18 @@ staticArrayInStorageRef: popn 1 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_OptIn: +*call_OptIn: method "staticArrayInStorageRef()uint64[3]" txna ApplicationArgs 0 - match abi_route_staticArrayInStorageRef + match *abi_route_staticArrayInStorageRef err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestStaticArrayInStorageRef.arc32.json b/tests/contracts/artifacts/ABITestStaticArrayInStorageRef.arc32.json index 5f338e19a..ad1ee1c5f 100644 --- a/tests/contracts/artifacts/ABITestStaticArrayInStorageRef.arc32.json +++ b/tests/contracts/artifacts/ABITestStaticArrayInStorageRef.arc32.json @@ -49,7 +49,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggTk9UX0lNUExFTUVOVEVEIGNhbGxfT3B0SW4gTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQKCk5PVF9JTVBMRU1FTlRFRDoKCWVycgoKLy8gc3RhdGljQXJyYXlJblN0b3JhZ2VSZWYoKXVpbnQ2NFszXQphYmlfcm91dGVfc3RhdGljQXJyYXlJblN0b3JhZ2VSZWY6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc3RhdGljQXJyYXlJblN0b3JhZ2VSZWYoKXVpbnQ2NFszXQoJY2FsbHN1YiBzdGF0aWNBcnJheUluU3RvcmFnZVJlZgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHN0YXRpY0FycmF5SW5TdG9yYWdlUmVmKCk6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4Kc3RhdGljQXJyYXlJblN0b3JhZ2VSZWY6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjg3CgkvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+ID0gWzExLCAyMiwgMzNdCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwYjAwMDAwMDAwMDAwMDAwMTYwMDAwMDAwMDAwMDAwMDIxCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4OQoJLy8gdGhpcy5nUmVmLnZhbHVlID0gYQoJYnl0ZSAweDY3NTI2NTY2IC8vICJnUmVmIgoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6OTAKCS8vIHRoaXMubFJlZih0aGlzLnR4bi5zZW5kZXIpLnZhbHVlID0gYQoJdHhuIFNlbmRlcgoJYnl0ZSAweDZjNTI2NTY2IC8vICJsUmVmIgoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoJYXBwX2xvY2FsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5MQoJLy8gdGhpcy5iUmVmLnZhbHVlID0gYQoJYnl0ZSAweDYyNTI2NTY2IC8vICJiUmVmIgoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoJYm94X3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5MwoJLy8gcmV0OiBTdGF0aWNBcnJheTx1aW50NjQsIDM+ID0gW3RoaXMuZ1JlZi52YWx1ZVsxXSwgdGhpcy5sUmVmKHRoaXMudHhuLnNlbmRlcikudmFsdWVbMV0sIHRoaXMuYlJlZi52YWx1ZVsxXV0KCWJ5dGUgMHg2NzUyNjU2NiAvLyAiZ1JlZiIKCWFwcF9nbG9iYWxfZ2V0CglleHRyYWN0IDggOAoJYnRvaQoJaXRvYgoJdHhuIFNlbmRlcgoJYnl0ZSAweDZjNTI2NTY2IC8vICJsUmVmIgoJYXBwX2xvY2FsX2dldAoJZXh0cmFjdCA4IDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJYnl0ZSAweDYyNTI2NTY2IC8vICJiUmVmIgoJaW50IDgKCWR1cAoJYm94X2V4dHJhY3QKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJZnJhbWVfYnVyeSAxIC8vIHJldDogU3RhdGljQXJyYXk8dWludDY0LCAzPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5NQoJLy8gcmV0dXJuIHJldDsKCWZyYW1lX2RpZyAxIC8vIHJldDogU3RhdGljQXJyYXk8dWludDY0LCAzPgoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfT3B0SW46CgltZXRob2QgInN0YXRpY0FycmF5SW5TdG9yYWdlUmVmKCl1aW50NjRbM10iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfc3RhdGljQXJyYXlJblN0b3JhZ2VSZWYKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqTk9UX0lNUExFTUVOVEVEICpjYWxsX09wdEluICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCWVycgoKLy8gc3RhdGljQXJyYXlJblN0b3JhZ2VSZWYoKXVpbnQ2NFszXQoqYWJpX3JvdXRlX3N0YXRpY0FycmF5SW5TdG9yYWdlUmVmOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHN0YXRpY0FycmF5SW5TdG9yYWdlUmVmKCl1aW50NjRbM10KCWNhbGxzdWIgc3RhdGljQXJyYXlJblN0b3JhZ2VSZWYKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzdGF0aWNBcnJheUluU3RvcmFnZVJlZigpOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CnN0YXRpY0FycmF5SW5TdG9yYWdlUmVmOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4NwoJLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPiA9IFsxMSwgMjIsIDMzXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAwMDAwMDAwMDAwMDAyMQoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6ODkKCS8vIHRoaXMuZ1JlZi52YWx1ZSA9IGEKCWJ5dGUgMHg2NzUyNjU2NiAvLyAiZ1JlZiIKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjkwCgkvLyB0aGlzLmxSZWYodGhpcy50eG4uc2VuZGVyKS52YWx1ZSA9IGEKCXR4biBTZW5kZXIKCWJ5dGUgMHg2YzUyNjU2NiAvLyAibFJlZiIKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWFwcF9sb2NhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6OTEKCS8vIHRoaXMuYlJlZi52YWx1ZSA9IGEKCWJ5dGUgMHg2MjUyNjU2NiAvLyAiYlJlZiIKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWJveF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6OTMKCS8vIHJldDogU3RhdGljQXJyYXk8dWludDY0LCAzPiA9IFt0aGlzLmdSZWYudmFsdWVbMV0sIHRoaXMubFJlZih0aGlzLnR4bi5zZW5kZXIpLnZhbHVlWzFdLCB0aGlzLmJSZWYudmFsdWVbMV1dCglieXRlIDB4Njc1MjY1NjYgLy8gImdSZWYiCglhcHBfZ2xvYmFsX2dldAoJZXh0cmFjdCA4IDgKCWJ0b2kKCWl0b2IKCXR4biBTZW5kZXIKCWJ5dGUgMHg2YzUyNjU2NiAvLyAibFJlZiIKCWFwcF9sb2NhbF9nZXQKCWV4dHJhY3QgOCA4CglidG9pCglpdG9iCgljb25jYXQKCWJ5dGUgMHg2MjUyNjU2NiAvLyAiYlJlZiIKCWludCA4CglkdXAKCWJveF9leHRyYWN0CglidG9pCglpdG9iCgljb25jYXQKCWZyYW1lX2J1cnkgMSAvLyByZXQ6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6OTUKCS8vIHJldHVybiByZXQ7CglmcmFtZV9kaWcgMSAvLyByZXQ6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9PcHRJbjoKCW1ldGhvZCAic3RhdGljQXJyYXlJblN0b3JhZ2VSZWYoKXVpbnQ2NFszXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3RhdGljQXJyYXlJblN0b3JhZ2VSZWYKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestStaticArrayLength.approval.teal b/tests/contracts/artifacts/ABITestStaticArrayLength.approval.teal index 6f10b720f..fa9840e4e 100644 --- a/tests/contracts/artifacts/ABITestStaticArrayLength.approval.teal +++ b/tests/contracts/artifacts/ABITestStaticArrayLength.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // staticArrayLength()uint64 -abi_route_staticArrayLength: +*abi_route_staticArrayLength: // The ABI return prefix byte 0x151f7c75 @@ -54,18 +54,18 @@ staticArrayLength: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "staticArrayLength()uint64" txna ApplicationArgs 0 - match abi_route_staticArrayLength + match *abi_route_staticArrayLength err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestStaticArrayLength.arc32.json b/tests/contracts/artifacts/ABITestStaticArrayLength.arc32.json index 8db2270a0..d1eaf6e06 100644 --- a/tests/contracts/artifacts/ABITestStaticArrayLength.arc32.json +++ b/tests/contracts/artifacts/ABITestStaticArrayLength.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzdGF0aWNBcnJheUxlbmd0aCgpdWludDY0CmFiaV9yb3V0ZV9zdGF0aWNBcnJheUxlbmd0aDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBzdGF0aWNBcnJheUxlbmd0aCgpdWludDY0CgljYWxsc3ViIHN0YXRpY0FycmF5TGVuZ3RoCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gc3RhdGljQXJyYXlMZW5ndGgoKTogdWludDY0CnN0YXRpY0FycmF5TGVuZ3RoOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTM5NAoJLy8gYTogU3RhdGljQXJyYXk8dWludDgsIDU+ID0gWzExLCAyMiwgMzMsIDQ0LCA1NV0KCWJ5dGUgMHgwYjE2MjEyYzM3CglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8dWludDgsIDU+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzOTYKCS8vIHJldHVybiBhLmxlbmd0aDsKCWludCA1CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgInN0YXRpY0FycmF5TGVuZ3RoKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfc3RhdGljQXJyYXlMZW5ndGgKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzdGF0aWNBcnJheUxlbmd0aCgpdWludDY0CiphYmlfcm91dGVfc3RhdGljQXJyYXlMZW5ndGg6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc3RhdGljQXJyYXlMZW5ndGgoKXVpbnQ2NAoJY2FsbHN1YiBzdGF0aWNBcnJheUxlbmd0aAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHN0YXRpY0FycmF5TGVuZ3RoKCk6IHVpbnQ2NApzdGF0aWNBcnJheUxlbmd0aDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzOTQKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ4LCA1PiA9IFsxMSwgMjIsIDMzLCA0NCwgNTVdCglieXRlIDB4MGIxNjIxMmMzNwoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ4LCA1PgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzk2CgkvLyByZXR1cm4gYS5sZW5ndGg7CglpbnQgNQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAic3RhdGljQXJyYXlMZW5ndGgoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3RhdGljQXJyYXlMZW5ndGgKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestStaticBoolArray.approval.teal b/tests/contracts/artifacts/ABITestStaticBoolArray.approval.teal index 3151dc567..e658b7777 100644 --- a/tests/contracts/artifacts/ABITestStaticBoolArray.approval.teal +++ b/tests/contracts/artifacts/ABITestStaticBoolArray.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // staticBoolArray()bool[9] -abi_route_staticBoolArray: +*abi_route_staticBoolArray: // The ABI return prefix byte 0x151f7c75 @@ -80,18 +80,18 @@ staticBoolArray: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "staticBoolArray()bool[9]" txna ApplicationArgs 0 - match abi_route_staticBoolArray + match *abi_route_staticBoolArray err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestStaticBoolArray.arc32.json b/tests/contracts/artifacts/ABITestStaticBoolArray.arc32.json index 5e7277e2c..6031a709a 100644 --- a/tests/contracts/artifacts/ABITestStaticBoolArray.arc32.json +++ b/tests/contracts/artifacts/ABITestStaticBoolArray.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzdGF0aWNCb29sQXJyYXkoKWJvb2xbOV0KYWJpX3JvdXRlX3N0YXRpY0Jvb2xBcnJheToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBzdGF0aWNCb29sQXJyYXkoKWJvb2xbOV0KCWNhbGxzdWIgc3RhdGljQm9vbEFycmF5Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gc3RhdGljQm9vbEFycmF5KCk6IFN0YXRpY0FycmF5PGJvb2xlYW4sIDk+CnN0YXRpY0Jvb2xBcnJheToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjkwNgoJLy8gYTogU3RhdGljQXJyYXk8Ym9vbGVhbiwgOT4gPSBbdHJ1ZSwgZmFsc2UsIHRydWUsIHRydWUsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlXQoJYnl0ZSAweDAwMDAKCWludCAwCglpbnQgMQoJc2V0Yml0CglpbnQgMQoJaW50IDAKCXNldGJpdAoJaW50IDIKCWludCAxCglzZXRiaXQKCWludCAzCglpbnQgMQoJc2V0Yml0CglpbnQgNAoJaW50IDAKCXNldGJpdAoJaW50IDUKCWludCAwCglzZXRiaXQKCWludCA2CglpbnQgMQoJc2V0Yml0CglpbnQgNwoJaW50IDAKCXNldGJpdAoJaW50IDgKCWludCAwCglzZXRiaXQKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTxib29sZWFuLCA5PgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5MDgKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8Ym9vbGVhbiwgOT4KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAic3RhdGljQm9vbEFycmF5KClib29sWzldIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX3N0YXRpY0Jvb2xBcnJheQoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzdGF0aWNCb29sQXJyYXkoKWJvb2xbOV0KKmFiaV9yb3V0ZV9zdGF0aWNCb29sQXJyYXk6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc3RhdGljQm9vbEFycmF5KClib29sWzldCgljYWxsc3ViIHN0YXRpY0Jvb2xBcnJheQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHN0YXRpY0Jvb2xBcnJheSgpOiBTdGF0aWNBcnJheTxib29sZWFuLCA5PgpzdGF0aWNCb29sQXJyYXk6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5MDYKCS8vIGE6IFN0YXRpY0FycmF5PGJvb2xlYW4sIDk+ID0gW3RydWUsIGZhbHNlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlLCBmYWxzZV0KCWJ5dGUgMHgwMDAwCglpbnQgMAoJaW50IDEKCXNldGJpdAoJaW50IDEKCWludCAwCglzZXRiaXQKCWludCAyCglpbnQgMQoJc2V0Yml0CglpbnQgMwoJaW50IDEKCXNldGJpdAoJaW50IDQKCWludCAwCglzZXRiaXQKCWludCA1CglpbnQgMAoJc2V0Yml0CglpbnQgNgoJaW50IDEKCXNldGJpdAoJaW50IDcKCWludCAwCglzZXRiaXQKCWludCA4CglpbnQgMAoJc2V0Yml0CglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8Ym9vbGVhbiwgOT4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6OTA4CgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PGJvb2xlYW4sIDk+CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJzdGF0aWNCb29sQXJyYXkoKWJvb2xbOV0iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3N0YXRpY0Jvb2xBcnJheQoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestStaticBoolArrayAccess.approval.teal b/tests/contracts/artifacts/ABITestStaticBoolArrayAccess.approval.teal index ed0bcf6e2..f0b061d01 100644 --- a/tests/contracts/artifacts/ABITestStaticBoolArrayAccess.approval.teal +++ b/tests/contracts/artifacts/ABITestStaticBoolArrayAccess.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // staticBoolArrayAccess()bool -abi_route_staticBoolArrayAccess: +*abi_route_staticBoolArrayAccess: // The ABI return prefix byte 0x151f7c75 @@ -88,18 +88,18 @@ staticBoolArrayAccess: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "staticBoolArrayAccess()bool" txna ApplicationArgs 0 - match abi_route_staticBoolArrayAccess + match *abi_route_staticBoolArrayAccess err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestStaticBoolArrayAccess.arc32.json b/tests/contracts/artifacts/ABITestStaticBoolArrayAccess.arc32.json index 0419491a4..3e92da9ae 100644 --- a/tests/contracts/artifacts/ABITestStaticBoolArrayAccess.arc32.json +++ b/tests/contracts/artifacts/ABITestStaticBoolArrayAccess.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzdGF0aWNCb29sQXJyYXlBY2Nlc3MoKWJvb2wKYWJpX3JvdXRlX3N0YXRpY0Jvb2xBcnJheUFjY2VzczoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBzdGF0aWNCb29sQXJyYXlBY2Nlc3MoKWJvb2wKCWNhbGxzdWIgc3RhdGljQm9vbEFycmF5QWNjZXNzCglieXRlIDB4MDAKCWludCAwCgl1bmNvdmVyIDIKCXNldGJpdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHN0YXRpY0Jvb2xBcnJheUFjY2VzcygpOiBib29sZWFuCnN0YXRpY0Jvb2xBcnJheUFjY2VzczoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjkzMgoJLy8gYTogU3RhdGljQXJyYXk8Ym9vbGVhbiwgOT4gPSBbdHJ1ZSwgZmFsc2UsIHRydWUsIHRydWUsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlXQoJYnl0ZSAweDAwMDAKCWludCAwCglpbnQgMQoJc2V0Yml0CglpbnQgMQoJaW50IDAKCXNldGJpdAoJaW50IDIKCWludCAxCglzZXRiaXQKCWludCAzCglpbnQgMQoJc2V0Yml0CglpbnQgNAoJaW50IDAKCXNldGJpdAoJaW50IDUKCWludCAwCglzZXRiaXQKCWludCA2CglpbnQgMQoJc2V0Yml0CglpbnQgNwoJaW50IDAKCXNldGJpdAoJaW50IDgKCWludCAwCglzZXRiaXQKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTxib29sZWFuLCA5PgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5MzQKCS8vIHJldHVybiBhWzhdOwoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8Ym9vbGVhbiwgOT4KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgOAoJZ2V0Yml0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgInN0YXRpY0Jvb2xBcnJheUFjY2VzcygpYm9vbCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9zdGF0aWNCb29sQXJyYXlBY2Nlc3MKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzdGF0aWNCb29sQXJyYXlBY2Nlc3MoKWJvb2wKKmFiaV9yb3V0ZV9zdGF0aWNCb29sQXJyYXlBY2Nlc3M6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc3RhdGljQm9vbEFycmF5QWNjZXNzKClib29sCgljYWxsc3ViIHN0YXRpY0Jvb2xBcnJheUFjY2VzcwoJYnl0ZSAweDAwCglpbnQgMAoJdW5jb3ZlciAyCglzZXRiaXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzdGF0aWNCb29sQXJyYXlBY2Nlc3MoKTogYm9vbGVhbgpzdGF0aWNCb29sQXJyYXlBY2Nlc3M6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5MzIKCS8vIGE6IFN0YXRpY0FycmF5PGJvb2xlYW4sIDk+ID0gW3RydWUsIGZhbHNlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlLCBmYWxzZV0KCWJ5dGUgMHgwMDAwCglpbnQgMAoJaW50IDEKCXNldGJpdAoJaW50IDEKCWludCAwCglzZXRiaXQKCWludCAyCglpbnQgMQoJc2V0Yml0CglpbnQgMwoJaW50IDEKCXNldGJpdAoJaW50IDQKCWludCAwCglzZXRiaXQKCWludCA1CglpbnQgMAoJc2V0Yml0CglpbnQgNgoJaW50IDEKCXNldGJpdAoJaW50IDcKCWludCAwCglzZXRiaXQKCWludCA4CglpbnQgMAoJc2V0Yml0CglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8Ym9vbGVhbiwgOT4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6OTM0CgkvLyByZXR1cm4gYVs4XTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PGJvb2xlYW4sIDk+CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDgKCWdldGJpdAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAic3RhdGljQm9vbEFycmF5QWNjZXNzKClib29sIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zdGF0aWNCb29sQXJyYXlBY2Nlc3MKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestStaticBoolArrayUpdate.approval.teal b/tests/contracts/artifacts/ABITestStaticBoolArrayUpdate.approval.teal index ab6bc1c8b..3159e425a 100644 --- a/tests/contracts/artifacts/ABITestStaticBoolArrayUpdate.approval.teal +++ b/tests/contracts/artifacts/ABITestStaticBoolArrayUpdate.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // staticBoolArrayUpdate()bool[9] -abi_route_staticBoolArrayUpdate: +*abi_route_staticBoolArrayUpdate: // The ABI return prefix byte 0x151f7c75 @@ -90,18 +90,18 @@ staticBoolArrayUpdate: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "staticBoolArrayUpdate()bool[9]" txna ApplicationArgs 0 - match abi_route_staticBoolArrayUpdate + match *abi_route_staticBoolArrayUpdate err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestStaticBoolArrayUpdate.arc32.json b/tests/contracts/artifacts/ABITestStaticBoolArrayUpdate.arc32.json index 8522972bf..35c57e095 100644 --- a/tests/contracts/artifacts/ABITestStaticBoolArrayUpdate.arc32.json +++ b/tests/contracts/artifacts/ABITestStaticBoolArrayUpdate.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzdGF0aWNCb29sQXJyYXlVcGRhdGUoKWJvb2xbOV0KYWJpX3JvdXRlX3N0YXRpY0Jvb2xBcnJheVVwZGF0ZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBzdGF0aWNCb29sQXJyYXlVcGRhdGUoKWJvb2xbOV0KCWNhbGxzdWIgc3RhdGljQm9vbEFycmF5VXBkYXRlCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gc3RhdGljQm9vbEFycmF5VXBkYXRlKCk6IFN0YXRpY0FycmF5PGJvb2xlYW4sIDk+CnN0YXRpY0Jvb2xBcnJheVVwZGF0ZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjk1NgoJLy8gYTogU3RhdGljQXJyYXk8Ym9vbGVhbiwgOT4gPSBbdHJ1ZSwgZmFsc2UsIHRydWUsIHRydWUsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlXQoJYnl0ZSAweDAwMDAKCWludCAwCglpbnQgMQoJc2V0Yml0CglpbnQgMQoJaW50IDAKCXNldGJpdAoJaW50IDIKCWludCAxCglzZXRiaXQKCWludCAzCglpbnQgMQoJc2V0Yml0CglpbnQgNAoJaW50IDAKCXNldGJpdAoJaW50IDUKCWludCAwCglzZXRiaXQKCWludCA2CglpbnQgMQoJc2V0Yml0CglpbnQgNwoJaW50IDAKCXNldGJpdAoJaW50IDgKCWludCAwCglzZXRiaXQKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTxib29sZWFuLCA5PgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5NTgKCS8vIGFbOF0gPSB0cnVlCglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTxib29sZWFuLCA5PgoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCA4CglpbnQgMQoJc2V0Yml0CglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8Ym9vbGVhbiwgOT4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6OTYwCgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PGJvb2xlYW4sIDk+CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgInN0YXRpY0Jvb2xBcnJheVVwZGF0ZSgpYm9vbFs5XSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9zdGF0aWNCb29sQXJyYXlVcGRhdGUKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzdGF0aWNCb29sQXJyYXlVcGRhdGUoKWJvb2xbOV0KKmFiaV9yb3V0ZV9zdGF0aWNCb29sQXJyYXlVcGRhdGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc3RhdGljQm9vbEFycmF5VXBkYXRlKClib29sWzldCgljYWxsc3ViIHN0YXRpY0Jvb2xBcnJheVVwZGF0ZQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHN0YXRpY0Jvb2xBcnJheVVwZGF0ZSgpOiBTdGF0aWNBcnJheTxib29sZWFuLCA5PgpzdGF0aWNCb29sQXJyYXlVcGRhdGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5NTYKCS8vIGE6IFN0YXRpY0FycmF5PGJvb2xlYW4sIDk+ID0gW3RydWUsIGZhbHNlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlLCBmYWxzZV0KCWJ5dGUgMHgwMDAwCglpbnQgMAoJaW50IDEKCXNldGJpdAoJaW50IDEKCWludCAwCglzZXRiaXQKCWludCAyCglpbnQgMQoJc2V0Yml0CglpbnQgMwoJaW50IDEKCXNldGJpdAoJaW50IDQKCWludCAwCglzZXRiaXQKCWludCA1CglpbnQgMAoJc2V0Yml0CglpbnQgNgoJaW50IDEKCXNldGJpdAoJaW50IDcKCWludCAwCglzZXRiaXQKCWludCA4CglpbnQgMAoJc2V0Yml0CglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8Ym9vbGVhbiwgOT4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6OTU4CgkvLyBhWzhdID0gdHJ1ZQoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8Ym9vbGVhbiwgOT4KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgOAoJaW50IDEKCXNldGJpdAoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PGJvb2xlYW4sIDk+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjk2MAoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTxib29sZWFuLCA5PgoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAic3RhdGljQm9vbEFycmF5VXBkYXRlKClib29sWzldIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zdGF0aWNCb29sQXJyYXlVcGRhdGUKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestStaticByteCasting.approval.teal b/tests/contracts/artifacts/ABITestStaticByteCasting.approval.teal index 42b33b5f5..205f8f191 100644 --- a/tests/contracts/artifacts/ABITestStaticByteCasting.approval.teal +++ b/tests/contracts/artifacts/ABITestStaticByteCasting.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // staticByteCasting()byte[5] -abi_route_staticByteCasting: +*abi_route_staticByteCasting: // The ABI return prefix byte 0x151f7c75 @@ -42,18 +42,18 @@ staticByteCasting: byte 0x6162630000 // "abc" retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "staticByteCasting()byte[5]" txna ApplicationArgs 0 - match abi_route_staticByteCasting + match *abi_route_staticByteCasting err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestStaticByteCasting.arc32.json b/tests/contracts/artifacts/ABITestStaticByteCasting.arc32.json index 43dbaf32b..7eca2b33c 100644 --- a/tests/contracts/artifacts/ABITestStaticByteCasting.arc32.json +++ b/tests/contracts/artifacts/ABITestStaticByteCasting.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzdGF0aWNCeXRlQ2FzdGluZygpYnl0ZVs1XQphYmlfcm91dGVfc3RhdGljQnl0ZUNhc3Rpbmc6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc3RhdGljQnl0ZUNhc3RpbmcoKWJ5dGVbNV0KCWNhbGxzdWIgc3RhdGljQnl0ZUNhc3RpbmcKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzdGF0aWNCeXRlQ2FzdGluZygpOiBieXRlczw1PgpzdGF0aWNCeXRlQ2FzdGluZzoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDUwCgkvLyByZXR1cm4gJ2FiYycgYXMgYnl0ZXM8NT47CglieXRlIDB4NjE2MjYzMDAwMCAvLyAiYWJjIgoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJzdGF0aWNCeXRlQ2FzdGluZygpYnl0ZVs1XSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9zdGF0aWNCeXRlQ2FzdGluZwoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzdGF0aWNCeXRlQ2FzdGluZygpYnl0ZVs1XQoqYWJpX3JvdXRlX3N0YXRpY0J5dGVDYXN0aW5nOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHN0YXRpY0J5dGVDYXN0aW5nKClieXRlWzVdCgljYWxsc3ViIHN0YXRpY0J5dGVDYXN0aW5nCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gc3RhdGljQnl0ZUNhc3RpbmcoKTogYnl0ZXM8NT4Kc3RhdGljQnl0ZUNhc3Rpbmc6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTA1MAoJLy8gcmV0dXJuICdhYmMnIGFzIGJ5dGVzPDU+OwoJYnl0ZSAweDYxNjI2MzAwMDAgLy8gImFiYyIKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInN0YXRpY0J5dGVDYXN0aW5nKClieXRlWzVdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zdGF0aWNCeXRlQ2FzdGluZwoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestStaticForEach.approval.teal b/tests/contracts/artifacts/ABITestStaticForEach.approval.teal index 421c8941e..8c75bfe4b 100644 --- a/tests/contracts/artifacts/ABITestStaticForEach.approval.teal +++ b/tests/contracts/artifacts/ABITestStaticForEach.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // staticForEach()uint64 -abi_route_staticForEach: +*abi_route_staticForEach: // The ABI return prefix byte 0x151f7c75 @@ -63,7 +63,7 @@ staticForEach: int 0 frame_bury 4 // the offset we are extracting the next element from -forEach_0: +*forEach_0: // tests/contracts/abi.algo.ts:1321 // sum += v frame_dig 1 // sum: uint64 @@ -78,7 +78,7 @@ forEach_0: dup int 24 // offset of last element < - bz forEach_0_end + bz *forEach_0_end frame_bury 4 // the offset we are extracting the next element from frame_dig 2 // copy of the array we are iterating over frame_dig 4 // the offset we are extracting the next element from @@ -86,9 +86,9 @@ forEach_0: extract btoi frame_bury 3 // v: uint64 - b forEach_0 + b *forEach_0 -forEach_0_end: +*forEach_0_end: // tests/contracts/abi.algo.ts:1323 // return sum; frame_dig 1 // sum: uint64 @@ -100,18 +100,18 @@ forEach_0_end: popn 4 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "staticForEach()uint64" txna ApplicationArgs 0 - match abi_route_staticForEach + match *abi_route_staticForEach err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestStaticForEach.arc32.json b/tests/contracts/artifacts/ABITestStaticForEach.arc32.json index bef02e8bb..107df494a 100644 --- a/tests/contracts/artifacts/ABITestStaticForEach.arc32.json +++ b/tests/contracts/artifacts/ABITestStaticForEach.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzdGF0aWNGb3JFYWNoKCl1aW50NjQKYWJpX3JvdXRlX3N0YXRpY0ZvckVhY2g6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc3RhdGljRm9yRWFjaCgpdWludDY0CgljYWxsc3ViIHN0YXRpY0ZvckVhY2gKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzdGF0aWNGb3JFYWNoKCk6IHVpbnQ2NApzdGF0aWNGb3JFYWNoOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gNAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzE3CgkvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+ID0gWzEsIDIsIDNdCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAzCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzE4CgkvLyBzdW0gPSAwCglpbnQgMAoJZnJhbWVfYnVyeSAxIC8vIHN1bTogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzMjAKCS8vIGEuZm9yRWFjaAoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoJZHVwCglmcmFtZV9idXJ5IDIgLy8gY29weSBvZiB0aGUgYXJyYXkgd2UgYXJlIGl0ZXJhdGluZyBvdmVyCglleHRyYWN0IDAgOAoJYnRvaQoJZnJhbWVfYnVyeSAzIC8vIHY6IHVpbnQ2NAoJaW50IDAKCWZyYW1lX2J1cnkgNCAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoKZm9yRWFjaF8wOgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzMjEKCS8vIHN1bSArPSB2CglmcmFtZV9kaWcgMSAvLyBzdW06IHVpbnQ2NAoJZnJhbWVfZGlnIDMgLy8gdjogdWludDY0CgkrCglmcmFtZV9idXJ5IDEgLy8gc3VtOiB1aW50NjQKCgkvLyBpbmNyZW1lbnQgb2Zmc2V0IGFuZCBsb29wIGlmIG5vdCBvdXQgb2YgYm91bmRzCglmcmFtZV9kaWcgNCAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJaW50IDgKCSsKCWR1cAoJaW50IDI0IC8vIG9mZnNldCBvZiBsYXN0IGVsZW1lbnQKCTwKCWJ6IGZvckVhY2hfMF9lbmQKCWZyYW1lX2J1cnkgNCAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJZnJhbWVfZGlnIDIgLy8gY29weSBvZiB0aGUgYXJyYXkgd2UgYXJlIGl0ZXJhdGluZyBvdmVyCglmcmFtZV9kaWcgNCAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJaW50IDgKCWV4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMyAvLyB2OiB1aW50NjQKCWIgZm9yRWFjaF8wCgpmb3JFYWNoXzBfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzMjMKCS8vIHJldHVybiBzdW07CglmcmFtZV9kaWcgMSAvLyBzdW06IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDQKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAic3RhdGljRm9yRWFjaCgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX3N0YXRpY0ZvckVhY2gKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzdGF0aWNGb3JFYWNoKCl1aW50NjQKKmFiaV9yb3V0ZV9zdGF0aWNGb3JFYWNoOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHN0YXRpY0ZvckVhY2goKXVpbnQ2NAoJY2FsbHN1YiBzdGF0aWNGb3JFYWNoCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gc3RhdGljRm9yRWFjaCgpOiB1aW50NjQKc3RhdGljRm9yRWFjaDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTMxNwoJLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPiA9IFsxLCAyLCAzXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMwoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTMxOAoJLy8gc3VtID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMSAvLyBzdW06IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzIwCgkvLyBhLmZvckVhY2gKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWR1cAoJZnJhbWVfYnVyeSAyIC8vIGNvcHkgb2YgdGhlIGFycmF5IHdlIGFyZSBpdGVyYXRpbmcgb3ZlcgoJZXh0cmFjdCAwIDgKCWJ0b2kKCWZyYW1lX2J1cnkgMyAvLyB2OiB1aW50NjQKCWludCAwCglmcmFtZV9idXJ5IDQgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCipmb3JFYWNoXzA6CgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTMyMQoJLy8gc3VtICs9IHYKCWZyYW1lX2RpZyAxIC8vIHN1bTogdWludDY0CglmcmFtZV9kaWcgMyAvLyB2OiB1aW50NjQKCSsKCWZyYW1lX2J1cnkgMSAvLyBzdW06IHVpbnQ2NAoKCS8vIGluY3JlbWVudCBvZmZzZXQgYW5kIGxvb3AgaWYgbm90IG91dCBvZiBib3VuZHMKCWZyYW1lX2RpZyA0IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglpbnQgOAoJKwoJZHVwCglpbnQgMjQgLy8gb2Zmc2V0IG9mIGxhc3QgZWxlbWVudAoJPAoJYnogKmZvckVhY2hfMF9lbmQKCWZyYW1lX2J1cnkgNCAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJZnJhbWVfZGlnIDIgLy8gY29weSBvZiB0aGUgYXJyYXkgd2UgYXJlIGl0ZXJhdGluZyBvdmVyCglmcmFtZV9kaWcgNCAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJaW50IDgKCWV4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMyAvLyB2OiB1aW50NjQKCWIgKmZvckVhY2hfMAoKKmZvckVhY2hfMF9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTMyMwoJLy8gcmV0dXJuIHN1bTsKCWZyYW1lX2RpZyAxIC8vIHN1bTogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gNAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAic3RhdGljRm9yRWFjaCgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zdGF0aWNGb3JFYWNoCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestStaticStringArrayArg.approval.teal b/tests/contracts/artifacts/ABITestStaticStringArrayArg.approval.teal index 6407be2dc..c03a36745 100644 --- a/tests/contracts/artifacts/ABITestStaticStringArrayArg.approval.teal +++ b/tests/contracts/artifacts/ABITestStaticStringArrayArg.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // staticStringArrayArg(string[3])string -abi_route_staticStringArrayArg: +*abi_route_staticStringArrayArg: // The ABI return prefix byte 0x151f7c75 @@ -67,18 +67,18 @@ staticStringArrayArg: extract 2 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "staticStringArrayArg(string[3])string" txna ApplicationArgs 0 - match abi_route_staticStringArrayArg + match *abi_route_staticStringArrayArg err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestStaticStringArrayArg.arc32.json b/tests/contracts/artifacts/ABITestStaticStringArrayArg.arc32.json index 8e1632c93..543c79bd0 100644 --- a/tests/contracts/artifacts/ABITestStaticStringArrayArg.arc32.json +++ b/tests/contracts/artifacts/ABITestStaticStringArrayArg.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzdGF0aWNTdHJpbmdBcnJheUFyZyhzdHJpbmdbM10pc3RyaW5nCmFiaV9yb3V0ZV9zdGF0aWNTdHJpbmdBcnJheUFyZzoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYTogc3RyaW5nWzNdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCgoJLy8gZXhlY3V0ZSBzdGF0aWNTdHJpbmdBcnJheUFyZyhzdHJpbmdbM10pc3RyaW5nCgljYWxsc3ViIHN0YXRpY1N0cmluZ0FycmF5QXJnCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHN0YXRpY1N0cmluZ0FycmF5QXJnKGE6IFN0YXRpY0FycmF5PHN0cmluZywgMz4pOiBzdHJpbmcKc3RhdGljU3RyaW5nQXJyYXlBcmc6Cglwcm90byAxIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NjQ1CgkvLyByZXR1cm4gYVsxXTsKCWZyYW1lX2RpZyAtMSAvLyBhOiBTdGF0aWNBcnJheTxzdHJpbmcsIDM+CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDIKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXVuY292ZXIgMgoJZXh0cmFjdF91aW50MTYKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50IDEgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCWV4dHJhY3QzCglleHRyYWN0IDIgMAoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJzdGF0aWNTdHJpbmdBcnJheUFyZyhzdHJpbmdbM10pc3RyaW5nIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX3N0YXRpY1N0cmluZ0FycmF5QXJnCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzdGF0aWNTdHJpbmdBcnJheUFyZyhzdHJpbmdbM10pc3RyaW5nCiphYmlfcm91dGVfc3RhdGljU3RyaW5nQXJyYXlBcmc6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGE6IHN0cmluZ1szXQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoKCS8vIGV4ZWN1dGUgc3RhdGljU3RyaW5nQXJyYXlBcmcoc3RyaW5nWzNdKXN0cmluZwoJY2FsbHN1YiBzdGF0aWNTdHJpbmdBcnJheUFyZwoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzdGF0aWNTdHJpbmdBcnJheUFyZyhhOiBTdGF0aWNBcnJheTxzdHJpbmcsIDM+KTogc3RyaW5nCnN0YXRpY1N0cmluZ0FycmF5QXJnOgoJcHJvdG8gMSAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjY0NQoJLy8gcmV0dXJuIGFbMV07CglmcmFtZV9kaWcgLTEgLy8gYTogU3RhdGljQXJyYXk8c3RyaW5nLCAzPgoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAyCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCAxIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglleHRyYWN0MwoJZXh0cmFjdCAyIDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInN0YXRpY1N0cmluZ0FycmF5QXJnKHN0cmluZ1szXSlzdHJpbmciCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3N0YXRpY1N0cmluZ0FycmF5QXJnCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestStorageRefAccount.approval.teal b/tests/contracts/artifacts/ABITestStorageRefAccount.approval.teal index e05cf3f5f..e6179b48e 100644 --- a/tests/contracts/artifacts/ABITestStorageRefAccount.approval.teal +++ b/tests/contracts/artifacts/ABITestStorageRefAccount.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch NOT_IMPLEMENTED call_OptIn NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *NOT_IMPLEMENTED *call_OptIn *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // storageRefAccount()uint64 -abi_route_storageRefAccount: +*abi_route_storageRefAccount: // The ABI return prefix byte 0x151f7c75 @@ -105,18 +105,18 @@ storageRefAccount: popn 1 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_OptIn: +*call_OptIn: method "storageRefAccount()uint64" txna ApplicationArgs 0 - match abi_route_storageRefAccount + match *abi_route_storageRefAccount err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestStorageRefAccount.arc32.json b/tests/contracts/artifacts/ABITestStorageRefAccount.arc32.json index f226c4d72..f25a83501 100644 --- a/tests/contracts/artifacts/ABITestStorageRefAccount.arc32.json +++ b/tests/contracts/artifacts/ABITestStorageRefAccount.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggTk9UX0lNUExFTUVOVEVEIGNhbGxfT3B0SW4gTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQKCk5PVF9JTVBMRU1FTlRFRDoKCWVycgoKLy8gc3RvcmFnZVJlZkFjY291bnQoKXVpbnQ2NAphYmlfcm91dGVfc3RvcmFnZVJlZkFjY291bnQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc3RvcmFnZVJlZkFjY291bnQoKXVpbnQ2NAoJY2FsbHN1YiBzdG9yYWdlUmVmQWNjb3VudAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHN0b3JhZ2VSZWZBY2NvdW50KCk6IHVpbnQ2NApzdG9yYWdlUmVmQWNjb3VudDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTAyOAoJLy8gYWRkciA9IHRoaXMudHhuLnNlbmRlcgoJdHhuIFNlbmRlcgoJZnJhbWVfYnVyeSAwIC8vIGFkZHI6IGFkZHJlc3MKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTAyOQoJLy8gdGhpcy5sTWFwKGFkZHIsIDApLnZhbHVlID0gWzEsIDIsIDNdCglmcmFtZV9kaWcgMCAvLyBhZGRyOiBhZGRyZXNzCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMAoJYnl0ZSAweDAwMDMwMDAwMDAwMDAwMDAwMDAxMDAwMDAwMDAwMDAwMDAwMjAwMDAwMDAwMDAwMDAwMDMKCWFwcF9sb2NhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTAzMAoJLy8gciA9IHRoaXMubE1hcChhZGRyLCAwKS52YWx1ZQoJZnJhbWVfZGlnIDAgLy8gYWRkcjogYWRkcmVzcwoJZnJhbWVfYnVyeSAxIC8vIHN0b3JhZ2UgYWNjb3VudC8vcgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDMyCgkvLyBhZGRyID0gZ2xvYmFscy56ZXJvQWRkcmVzcwoJZ2xvYmFsIFplcm9BZGRyZXNzCglmcmFtZV9idXJ5IDAgLy8gYWRkcjogYWRkcmVzcwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDM0CgkvLyByWzFdID0gNAoJZnJhbWVfZGlnIDEgLy8gc3RvcmFnZSBhY2NvdW50Ly9yCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMAoJYXBwX2xvY2FsX2dldAoJZXh0cmFjdCAyIDAKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglieXRlIDB4MDAwMDAwMDAwMDAwMDAwNAoJcmVwbGFjZTIgOAoJZnJhbWVfZGlnIDEgLy8gc3RvcmFnZSBhY2NvdW50Ly9yCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMAoJdW5jb3ZlciAyCglkdXAKCWxlbgoJaW50IDgKCS8KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWFwcF9sb2NhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTAzNgoJLy8gcmV0dXJuIHRoaXMubE1hcCh0aGlzLnR4bi5zZW5kZXIsIDApLnZhbHVlWzFdOwoJdHhuIFNlbmRlcgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAKCWFwcF9sb2NhbF9nZXQKCWV4dHJhY3QgMiAwCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZXh0cmFjdCA4IDgKCWJ0b2kKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX09wdEluOgoJbWV0aG9kICJzdG9yYWdlUmVmQWNjb3VudCgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX3N0b3JhZ2VSZWZBY2NvdW50CgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqTk9UX0lNUExFTUVOVEVEICpjYWxsX09wdEluICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCWVycgoKLy8gc3RvcmFnZVJlZkFjY291bnQoKXVpbnQ2NAoqYWJpX3JvdXRlX3N0b3JhZ2VSZWZBY2NvdW50OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHN0b3JhZ2VSZWZBY2NvdW50KCl1aW50NjQKCWNhbGxzdWIgc3RvcmFnZVJlZkFjY291bnQKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzdG9yYWdlUmVmQWNjb3VudCgpOiB1aW50NjQKc3RvcmFnZVJlZkFjY291bnQ6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwMjgKCS8vIGFkZHIgPSB0aGlzLnR4bi5zZW5kZXIKCXR4biBTZW5kZXIKCWZyYW1lX2J1cnkgMCAvLyBhZGRyOiBhZGRyZXNzCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwMjkKCS8vIHRoaXMubE1hcChhZGRyLCAwKS52YWx1ZSA9IFsxLCAyLCAzXQoJZnJhbWVfZGlnIDAgLy8gYWRkcjogYWRkcmVzcwoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAKCWJ5dGUgMHgwMDAzMDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAzCglhcHBfbG9jYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwMzAKCS8vIHIgPSB0aGlzLmxNYXAoYWRkciwgMCkudmFsdWUKCWZyYW1lX2RpZyAwIC8vIGFkZHI6IGFkZHJlc3MKCWZyYW1lX2J1cnkgMSAvLyBzdG9yYWdlIGFjY291bnQvL3IKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTAzMgoJLy8gYWRkciA9IGdsb2JhbHMuemVyb0FkZHJlc3MKCWdsb2JhbCBaZXJvQWRkcmVzcwoJZnJhbWVfYnVyeSAwIC8vIGFkZHI6IGFkZHJlc3MKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTAzNAoJLy8gclsxXSA9IDQKCWZyYW1lX2RpZyAxIC8vIHN0b3JhZ2UgYWNjb3VudC8vcgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAKCWFwcF9sb2NhbF9nZXQKCWV4dHJhY3QgMiAwCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDQKCXJlcGxhY2UyIDgKCWZyYW1lX2RpZyAxIC8vIHN0b3JhZ2UgYWNjb3VudC8vcgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAKCXVuY292ZXIgMgoJZHVwCglsZW4KCWludCA4CgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0CglhcHBfbG9jYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwMzYKCS8vIHJldHVybiB0aGlzLmxNYXAodGhpcy50eG4uc2VuZGVyLCAwKS52YWx1ZVsxXTsKCXR4biBTZW5kZXIKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwCglhcHBfbG9jYWxfZ2V0CglleHRyYWN0IDIgMAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWV4dHJhY3QgOCA4CglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMQoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfT3B0SW46CgltZXRob2QgInN0b3JhZ2VSZWZBY2NvdW50KCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3N0b3JhZ2VSZWZBY2NvdW50CgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestStorageRefKey.approval.teal b/tests/contracts/artifacts/ABITestStorageRefKey.approval.teal index ab91320cf..20abd7a66 100644 --- a/tests/contracts/artifacts/ABITestStorageRefKey.approval.teal +++ b/tests/contracts/artifacts/ABITestStorageRefKey.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // storageRefKey()uint64 -abi_route_storageRefKey: +*abi_route_storageRefKey: // The ABI return prefix byte 0x151f7c75 @@ -102,18 +102,18 @@ storageRefKey: popn 1 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "storageRefKey()uint64" txna ApplicationArgs 0 - match abi_route_storageRefKey + match *abi_route_storageRefKey err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestStorageRefKey.arc32.json b/tests/contracts/artifacts/ABITestStorageRefKey.arc32.json index 243440f65..886847a0d 100644 --- a/tests/contracts/artifacts/ABITestStorageRefKey.arc32.json +++ b/tests/contracts/artifacts/ABITestStorageRefKey.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzdG9yYWdlUmVmS2V5KCl1aW50NjQKYWJpX3JvdXRlX3N0b3JhZ2VSZWZLZXk6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc3RvcmFnZVJlZktleSgpdWludDY0CgljYWxsc3ViIHN0b3JhZ2VSZWZLZXkKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzdG9yYWdlUmVmS2V5KCk6IHVpbnQ2NApzdG9yYWdlUmVmS2V5OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDA5CgkvLyB0aGlzLmdNYXAoMCkudmFsdWUgPSBbMSwgMiwgM10KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwCglieXRlIDB4MDAwMzAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMwoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTAxMQoJLy8gaSA9IDAKCWludCAwCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwMTMKCS8vIHIgPSB0aGlzLmdNYXAoaSkudmFsdWUKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaXRvYgoJZnJhbWVfYnVyeSAxIC8vIHN0b3JhZ2Uga2V5Ly9yCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwMTUKCS8vIGkgPSAxCglpbnQgMQoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDE3CgkvLyByWzFdID0gNAoJZnJhbWVfZGlnIDEgLy8gc3RvcmFnZSBrZXkvL3IKCWFwcF9nbG9iYWxfZ2V0CglleHRyYWN0IDIgMAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDA0CglyZXBsYWNlMiA4CglmcmFtZV9kaWcgMSAvLyBzdG9yYWdlIGtleS8vcgoJc3dhcAoJZHVwCglsZW4KCWludCA4CgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDE5CgkvLyByZXR1cm4gdGhpcy5nTWFwKDApLnZhbHVlWzFdOwoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAKCWFwcF9nbG9iYWxfZ2V0CglleHRyYWN0IDIgMAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWV4dHJhY3QgOCA4CglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMQoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJzdG9yYWdlUmVmS2V5KCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfc3RvcmFnZVJlZktleQoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzdG9yYWdlUmVmS2V5KCl1aW50NjQKKmFiaV9yb3V0ZV9zdG9yYWdlUmVmS2V5OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHN0b3JhZ2VSZWZLZXkoKXVpbnQ2NAoJY2FsbHN1YiBzdG9yYWdlUmVmS2V5CglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gc3RvcmFnZVJlZktleSgpOiB1aW50NjQKc3RvcmFnZVJlZktleToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTAwOQoJLy8gdGhpcy5nTWFwKDApLnZhbHVlID0gWzEsIDIsIDNdCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMAoJYnl0ZSAweDAwMDMwMDAwMDAwMDAwMDAwMDAxMDAwMDAwMDAwMDAwMDAwMjAwMDAwMDAwMDAwMDAwMDMKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwMTEKCS8vIGkgPSAwCglpbnQgMAoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDEzCgkvLyByID0gdGhpcy5nTWFwKGkpLnZhbHVlCglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWl0b2IKCWZyYW1lX2J1cnkgMSAvLyBzdG9yYWdlIGtleS8vcgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDE1CgkvLyBpID0gMQoJaW50IDEKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTAxNwoJLy8gclsxXSA9IDQKCWZyYW1lX2RpZyAxIC8vIHN0b3JhZ2Uga2V5Ly9yCglhcHBfZ2xvYmFsX2dldAoJZXh0cmFjdCAyIDAKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglieXRlIDB4MDAwMDAwMDAwMDAwMDAwNAoJcmVwbGFjZTIgOAoJZnJhbWVfZGlnIDEgLy8gc3RvcmFnZSBrZXkvL3IKCXN3YXAKCWR1cAoJbGVuCglpbnQgOAoJLwoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTAxOQoJLy8gcmV0dXJuIHRoaXMuZ01hcCgwKS52YWx1ZVsxXTsKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwCglhcHBfZ2xvYmFsX2dldAoJZXh0cmFjdCAyIDAKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglleHRyYWN0IDggOAoJYnRvaQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInN0b3JhZ2VSZWZLZXkoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3RvcmFnZVJlZktleQoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestStorageTypeHint.approval.teal b/tests/contracts/artifacts/ABITestStorageTypeHint.approval.teal index 59dc0a292..74388f133 100644 --- a/tests/contracts/artifacts/ABITestStorageTypeHint.approval.teal +++ b/tests/contracts/artifacts/ABITestStorageTypeHint.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // partialStaticArray()uint16[3] -abi_route_partialStaticArray: +*abi_route_partialStaticArray: // The ABI return prefix byte 0x151f7c75 @@ -49,18 +49,18 @@ partialStaticArray: app_global_get retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "partialStaticArray()uint16[3]" txna ApplicationArgs 0 - match abi_route_partialStaticArray + match *abi_route_partialStaticArray err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestStorageTypeHint.arc32.json b/tests/contracts/artifacts/ABITestStorageTypeHint.arc32.json index 378f83026..fd9e64d0e 100644 --- a/tests/contracts/artifacts/ABITestStorageTypeHint.arc32.json +++ b/tests/contracts/artifacts/ABITestStorageTypeHint.arc32.json @@ -44,7 +44,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBwYXJ0aWFsU3RhdGljQXJyYXkoKXVpbnQxNlszXQphYmlfcm91dGVfcGFydGlhbFN0YXRpY0FycmF5OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHBhcnRpYWxTdGF0aWNBcnJheSgpdWludDE2WzNdCgljYWxsc3ViIHBhcnRpYWxTdGF0aWNBcnJheQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHBhcnRpYWxTdGF0aWNBcnJheSgpOiBTdGF0aWNBcnJheTx1aW50MTYsIDM+CnBhcnRpYWxTdGF0aWNBcnJheToKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4NjkKCS8vIHRoaXMuZ0tleS52YWx1ZSA9IFsxLCAyLCAzXQoJYnl0ZSAweDY3NGI2NTc5IC8vICJnS2V5IgoJYnl0ZSAweDAwMDEwMDAyMDAwMwoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6ODcxCgkvLyByZXR1cm4gdGhpcy5nS2V5LnZhbHVlOwoJYnl0ZSAweDY3NGI2NTc5IC8vICJnS2V5IgoJYXBwX2dsb2JhbF9nZXQKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAicGFydGlhbFN0YXRpY0FycmF5KCl1aW50MTZbM10iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfcGFydGlhbFN0YXRpY0FycmF5CgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBwYXJ0aWFsU3RhdGljQXJyYXkoKXVpbnQxNlszXQoqYWJpX3JvdXRlX3BhcnRpYWxTdGF0aWNBcnJheToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBwYXJ0aWFsU3RhdGljQXJyYXkoKXVpbnQxNlszXQoJY2FsbHN1YiBwYXJ0aWFsU3RhdGljQXJyYXkKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBwYXJ0aWFsU3RhdGljQXJyYXkoKTogU3RhdGljQXJyYXk8dWludDE2LCAzPgpwYXJ0aWFsU3RhdGljQXJyYXk6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6ODY5CgkvLyB0aGlzLmdLZXkudmFsdWUgPSBbMSwgMiwgM10KCWJ5dGUgMHg2NzRiNjU3OSAvLyAiZ0tleSIKCWJ5dGUgMHgwMDAxMDAwMjAwMDMKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjg3MQoJLy8gcmV0dXJuIHRoaXMuZ0tleS52YWx1ZTsKCWJ5dGUgMHg2NzRiNjU3OSAvLyAiZ0tleSIKCWFwcF9nbG9iYWxfZ2V0CglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJwYXJ0aWFsU3RhdGljQXJyYXkoKXVpbnQxNlszXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfcGFydGlhbFN0YXRpY0FycmF5CgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestStringAccessor.approval.teal b/tests/contracts/artifacts/ABITestStringAccessor.approval.teal index 0b1f7d2f3..402f7e1f6 100644 --- a/tests/contracts/artifacts/ABITestStringAccessor.approval.teal +++ b/tests/contracts/artifacts/ABITestStringAccessor.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // stringAccessor()string -abi_route_stringAccessor: +*abi_route_stringAccessor: // The ABI return prefix byte 0x151f7c75 @@ -60,18 +60,18 @@ stringAccessor: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "stringAccessor()string" txna ApplicationArgs 0 - match abi_route_stringAccessor + match *abi_route_stringAccessor err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestStringAccessor.arc32.json b/tests/contracts/artifacts/ABITestStringAccessor.arc32.json index 47f15dddc..c4b791764 100644 --- a/tests/contracts/artifacts/ABITestStringAccessor.arc32.json +++ b/tests/contracts/artifacts/ABITestStringAccessor.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzdHJpbmdBY2Nlc3Nvcigpc3RyaW5nCmFiaV9yb3V0ZV9zdHJpbmdBY2Nlc3NvcjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBzdHJpbmdBY2Nlc3Nvcigpc3RyaW5nCgljYWxsc3ViIHN0cmluZ0FjY2Vzc29yCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHN0cmluZ0FjY2Vzc29yKCk6IHN0cmluZwpzdHJpbmdBY2Nlc3NvcjoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjg0MwoJLy8gcyA9IGNvbmNhdCgnSGVsbG8gJywgJ1dvcmxkJykKCWJ5dGUgMHg0ODY1NmM2YzZmMjA1NzZmNzI2YzY0CglmcmFtZV9idXJ5IDAgLy8gczogYnl0ZVtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjg0NQoJLy8gcmV0dXJuIHNbMV07CglmcmFtZV9kaWcgMCAvLyBzOiBieXRlW10KCWV4dHJhY3QgMSAxCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgInN0cmluZ0FjY2Vzc29yKClzdHJpbmciCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfc3RyaW5nQWNjZXNzb3IKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzdHJpbmdBY2Nlc3Nvcigpc3RyaW5nCiphYmlfcm91dGVfc3RyaW5nQWNjZXNzb3I6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc3RyaW5nQWNjZXNzb3IoKXN0cmluZwoJY2FsbHN1YiBzdHJpbmdBY2Nlc3NvcgoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzdHJpbmdBY2Nlc3NvcigpOiBzdHJpbmcKc3RyaW5nQWNjZXNzb3I6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4NDMKCS8vIHMgPSBjb25jYXQoJ0hlbGxvICcsICdXb3JsZCcpCglieXRlIDB4NDg2NTZjNmM2ZjIwNTc2ZjcyNmM2NAoJZnJhbWVfYnVyeSAwIC8vIHM6IGJ5dGVbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4NDUKCS8vIHJldHVybiBzWzFdOwoJZnJhbWVfZGlnIDAgLy8gczogYnl0ZVtdCglleHRyYWN0IDEgMQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAic3RyaW5nQWNjZXNzb3IoKXN0cmluZyIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3RyaW5nQWNjZXNzb3IKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestStringArg.approval.teal b/tests/contracts/artifacts/ABITestStringArg.approval.teal index 8dc0cd355..669da1f3b 100644 --- a/tests/contracts/artifacts/ABITestStringArg.approval.teal +++ b/tests/contracts/artifacts/ABITestStringArg.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // stringArg(string)void -abi_route_stringArg: +*abi_route_stringArg: // s: string txna ApplicationArgs 1 extract 2 0 @@ -44,18 +44,18 @@ stringArg: assert retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "stringArg(string)void" txna ApplicationArgs 0 - match abi_route_stringArg + match *abi_route_stringArg err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestStringArg.arc32.json b/tests/contracts/artifacts/ABITestStringArg.arc32.json index a4c50ec59..9fb05019d 100644 --- a/tests/contracts/artifacts/ABITestStringArg.arc32.json +++ b/tests/contracts/artifacts/ABITestStringArg.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzdHJpbmdBcmcoc3RyaW5nKXZvaWQKYWJpX3JvdXRlX3N0cmluZ0FyZzoKCS8vIHM6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIHN0cmluZ0FyZyhzdHJpbmcpdm9pZAoJY2FsbHN1YiBzdHJpbmdBcmcKCWludCAxCglyZXR1cm4KCi8vIHN0cmluZ0FyZyhzOiBzdHJpbmcpOiB2b2lkCnN0cmluZ0FyZzoKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1MzYKCS8vIGFzc2VydChzID09PSAnSGVsbG8gV29ybGQhJykKCWZyYW1lX2RpZyAtMSAvLyBzOiBzdHJpbmcKCWJ5dGUgMHg0ODY1NmM2YzZmMjA1NzZmNzI2YzY0MjEgLy8gIkhlbGxvIFdvcmxkISIKCT09Cglhc3NlcnQKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAic3RyaW5nQXJnKHN0cmluZyl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX3N0cmluZ0FyZwoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzdHJpbmdBcmcoc3RyaW5nKXZvaWQKKmFiaV9yb3V0ZV9zdHJpbmdBcmc6CgkvLyBzOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSBzdHJpbmdBcmcoc3RyaW5nKXZvaWQKCWNhbGxzdWIgc3RyaW5nQXJnCglpbnQgMQoJcmV0dXJuCgovLyBzdHJpbmdBcmcoczogc3RyaW5nKTogdm9pZApzdHJpbmdBcmc6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTM2CgkvLyBhc3NlcnQocyA9PT0gJ0hlbGxvIFdvcmxkIScpCglmcmFtZV9kaWcgLTEgLy8gczogc3RyaW5nCglieXRlIDB4NDg2NTZjNmM2ZjIwNTc2ZjcyNmM2NDIxIC8vICJIZWxsbyBXb3JsZCEiCgk9PQoJYXNzZXJ0CglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJzdHJpbmdBcmcoc3RyaW5nKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3N0cmluZ0FyZwoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestStringArray.approval.teal b/tests/contracts/artifacts/ABITestStringArray.approval.teal index 7a5fb2fd5..dfb887be0 100644 --- a/tests/contracts/artifacts/ABITestStringArray.approval.teal +++ b/tests/contracts/artifacts/ABITestStringArray.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // stringArray(string[])void -abi_route_stringArray: +*abi_route_stringArray: // a: string[] txna ApplicationArgs 1 @@ -42,18 +42,18 @@ stringArray: app_global_put retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "stringArray(string[])void" txna ApplicationArgs 0 - match abi_route_stringArray + match *abi_route_stringArray err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestStringArray.arc32.json b/tests/contracts/artifacts/ABITestStringArray.arc32.json index e3fab9340..c1f0a9371 100644 --- a/tests/contracts/artifacts/ABITestStringArray.arc32.json +++ b/tests/contracts/artifacts/ABITestStringArray.arc32.json @@ -44,7 +44,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzdHJpbmdBcnJheShzdHJpbmdbXSl2b2lkCmFiaV9yb3V0ZV9zdHJpbmdBcnJheToKCS8vIGE6IHN0cmluZ1tdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCgoJLy8gZXhlY3V0ZSBzdHJpbmdBcnJheShzdHJpbmdbXSl2b2lkCgljYWxsc3ViIHN0cmluZ0FycmF5CglpbnQgMQoJcmV0dXJuCgovLyBzdHJpbmdBcnJheShhOiBzdHJpbmdbXSk6IHZvaWQKc3RyaW5nQXJyYXk6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTE5MgoJLy8gdGhpcy5nS2V5LnZhbHVlID0gYQoJYnl0ZSAweDY3NGI2NTc5IC8vICJnS2V5IgoJZnJhbWVfZGlnIC0xIC8vIGE6IHN0cmluZ1tdCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJzdHJpbmdBcnJheShzdHJpbmdbXSl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX3N0cmluZ0FycmF5CgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzdHJpbmdBcnJheShzdHJpbmdbXSl2b2lkCiphYmlfcm91dGVfc3RyaW5nQXJyYXk6CgkvLyBhOiBzdHJpbmdbXQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoKCS8vIGV4ZWN1dGUgc3RyaW5nQXJyYXkoc3RyaW5nW10pdm9pZAoJY2FsbHN1YiBzdHJpbmdBcnJheQoJaW50IDEKCXJldHVybgoKLy8gc3RyaW5nQXJyYXkoYTogc3RyaW5nW10pOiB2b2lkCnN0cmluZ0FycmF5OgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjExOTIKCS8vIHRoaXMuZ0tleS52YWx1ZSA9IGEKCWJ5dGUgMHg2NzRiNjU3OSAvLyAiZ0tleSIKCWZyYW1lX2RpZyAtMSAvLyBhOiBzdHJpbmdbXQoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInN0cmluZ0FycmF5KHN0cmluZ1tdKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3N0cmluZ0FycmF5CgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestStringInTuple.approval.teal b/tests/contracts/artifacts/ABITestStringInTuple.approval.teal index 2e0704233..8bc2b2e7b 100644 --- a/tests/contracts/artifacts/ABITestStringInTuple.approval.teal +++ b/tests/contracts/artifacts/ABITestStringInTuple.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // stringInTuple()(uint16,uint8[],string,uint8[]) -abi_route_stringInTuple: +*abi_route_stringInTuple: // The ABI return prefix byte 0x151f7c75 @@ -46,13 +46,13 @@ stringInTuple: byte 0x // initial tail byte 0x0008 // initial head offset byte 0x0001 - callsub process_static_tuple_element + callsub *process_static_tuple_element byte 0x000102 - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element byte 0x000c48656c6c6f20576f726c6421 - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element byte 0x000103 - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element pop // pop head offset concat // concat head and tail frame_bury 0 // a: [uint16, uint<8>[], string, uint<8>[]] @@ -65,23 +65,23 @@ stringInTuple: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "stringInTuple()(uint16,uint8[],string,uint8[])" txna ApplicationArgs 0 - match abi_route_stringInTuple + match *abi_route_stringInTuple err -process_static_tuple_element: +*process_static_tuple_element: proto 4 3 frame_dig -4 // tuple head frame_dig -1 // element @@ -90,7 +90,7 @@ process_static_tuple_element: frame_dig -2 // head offset retsub -process_dynamic_tuple_element: +*process_dynamic_tuple_element: proto 4 3 frame_dig -4 // tuple head frame_dig -2 // head offset diff --git a/tests/contracts/artifacts/ABITestStringInTuple.arc32.json b/tests/contracts/artifacts/ABITestStringInTuple.arc32.json index 568594ef4..1898a7259 100644 --- a/tests/contracts/artifacts/ABITestStringInTuple.arc32.json +++ b/tests/contracts/artifacts/ABITestStringInTuple.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzdHJpbmdJblR1cGxlKCkodWludDE2LHVpbnQ4W10sc3RyaW5nLHVpbnQ4W10pCmFiaV9yb3V0ZV9zdHJpbmdJblR1cGxlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHN0cmluZ0luVHVwbGUoKSh1aW50MTYsdWludDhbXSxzdHJpbmcsdWludDhbXSkKCWNhbGxzdWIgc3RyaW5nSW5UdXBsZQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHN0cmluZ0luVHVwbGUoKTogW3VpbnQxNiwgdWludDw4PltdLCBzdHJpbmcsIHVpbnQ8OD5bXV0Kc3RyaW5nSW5UdXBsZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjU0MgoJLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCBzdHJpbmcsIHVpbnQ8OD5bXV0gPSBbMSwgWzJdLCAnSGVsbG8gV29ybGQhJywgWzNdXQoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglieXRlIDB4MDAwOCAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0CglieXRlIDB4MDAwMQoJY2FsbHN1YiBwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMTAyCgljYWxsc3ViIHByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwYzQ4NjU2YzZjNmYyMDU3NmY3MjZjNjQyMQoJY2FsbHN1YiBwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDEwMwoJY2FsbHN1YiBwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCBzdHJpbmcsIHVpbnQ8OD5bXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTQ0CgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXSwgc3RyaW5nLCB1aW50PDg+W11dCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgInN0cmluZ0luVHVwbGUoKSh1aW50MTYsdWludDhbXSxzdHJpbmcsdWludDhbXSkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfc3RyaW5nSW5UdXBsZQoJZXJyCgpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWNvbmNhdAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3Vi", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzdHJpbmdJblR1cGxlKCkodWludDE2LHVpbnQ4W10sc3RyaW5nLHVpbnQ4W10pCiphYmlfcm91dGVfc3RyaW5nSW5UdXBsZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBzdHJpbmdJblR1cGxlKCkodWludDE2LHVpbnQ4W10sc3RyaW5nLHVpbnQ4W10pCgljYWxsc3ViIHN0cmluZ0luVHVwbGUKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzdHJpbmdJblR1cGxlKCk6IFt1aW50MTYsIHVpbnQ8OD5bXSwgc3RyaW5nLCB1aW50PDg+W11dCnN0cmluZ0luVHVwbGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1NDIKCS8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXSwgc3RyaW5nLCB1aW50PDg+W11dID0gWzEsIFsyXSwgJ0hlbGxvIFdvcmxkIScsIFszXV0KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJYnl0ZSAweDAwMDggLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJYnl0ZSAweDAwMDEKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDAxMDIKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwYzQ4NjU2YzZjNmYyMDU3NmY3MjZjNjQyMQoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDAxMDMKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDE2LCB1aW50PDg+W10sIHN0cmluZywgdWludDw4PltdXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1NDQKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCBzdHJpbmcsIHVpbnQ8OD5bXV0KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInN0cmluZ0luVHVwbGUoKSh1aW50MTYsdWludDhbXSxzdHJpbmcsdWludDhbXSkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3N0cmluZ0luVHVwbGUKCWVycgoKKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJY29uY2F0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCipwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3Vi", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestStringLength.approval.teal b/tests/contracts/artifacts/ABITestStringLength.approval.teal index 95b5766ca..b1afbf4a3 100644 --- a/tests/contracts/artifacts/ABITestStringLength.approval.teal +++ b/tests/contracts/artifacts/ABITestStringLength.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // stringLength()uint64 -abi_route_stringLength: +*abi_route_stringLength: // The ABI return prefix byte 0x151f7c75 @@ -55,18 +55,18 @@ stringLength: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "stringLength()uint64" txna ApplicationArgs 0 - match abi_route_stringLength + match *abi_route_stringLength err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestStringLength.arc32.json b/tests/contracts/artifacts/ABITestStringLength.arc32.json index eeaea0d3a..359fa2c09 100644 --- a/tests/contracts/artifacts/ABITestStringLength.arc32.json +++ b/tests/contracts/artifacts/ABITestStringLength.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzdHJpbmdMZW5ndGgoKXVpbnQ2NAphYmlfcm91dGVfc3RyaW5nTGVuZ3RoOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHN0cmluZ0xlbmd0aCgpdWludDY0CgljYWxsc3ViIHN0cmluZ0xlbmd0aAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHN0cmluZ0xlbmd0aCgpOiB1aW50NjQKc3RyaW5nTGVuZ3RoOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NzUyCgkvLyBzID0gY29uY2F0KCdmb28gJywgJ2JhcicpCglieXRlIDB4NjY2ZjZmMjA2MjYxNzIKCWZyYW1lX2J1cnkgMCAvLyBzOiBieXRlW10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NzU0CgkvLyByZXR1cm4gcy5sZW5ndGg7CglmcmFtZV9kaWcgMCAvLyBzOiBieXRlW10KCWxlbgoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJzdHJpbmdMZW5ndGgoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9zdHJpbmdMZW5ndGgKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzdHJpbmdMZW5ndGgoKXVpbnQ2NAoqYWJpX3JvdXRlX3N0cmluZ0xlbmd0aDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBzdHJpbmdMZW5ndGgoKXVpbnQ2NAoJY2FsbHN1YiBzdHJpbmdMZW5ndGgKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzdHJpbmdMZW5ndGgoKTogdWludDY0CnN0cmluZ0xlbmd0aDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjc1MgoJLy8gcyA9IGNvbmNhdCgnZm9vICcsICdiYXInKQoJYnl0ZSAweDY2NmY2ZjIwNjI2MTcyCglmcmFtZV9idXJ5IDAgLy8gczogYnl0ZVtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjc1NAoJLy8gcmV0dXJuIHMubGVuZ3RoOwoJZnJhbWVfZGlnIDAgLy8gczogYnl0ZVtdCglsZW4KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInN0cmluZ0xlbmd0aCgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zdHJpbmdMZW5ndGgKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestStringReturn.approval.teal b/tests/contracts/artifacts/ABITestStringReturn.approval.teal index 68d73906f..58297f892 100644 --- a/tests/contracts/artifacts/ABITestStringReturn.approval.teal +++ b/tests/contracts/artifacts/ABITestStringReturn.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // stringReturn()string -abi_route_stringReturn: +*abi_route_stringReturn: // The ABI return prefix byte 0x151f7c75 @@ -48,18 +48,18 @@ stringReturn: byte 0x48656c6c6f20576f726c6421 // "Hello World!" retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "stringReturn()string" txna ApplicationArgs 0 - match abi_route_stringReturn + match *abi_route_stringReturn err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestStringReturn.arc32.json b/tests/contracts/artifacts/ABITestStringReturn.arc32.json index 1f533b035..a2240efc4 100644 --- a/tests/contracts/artifacts/ABITestStringReturn.arc32.json +++ b/tests/contracts/artifacts/ABITestStringReturn.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzdHJpbmdSZXR1cm4oKXN0cmluZwphYmlfcm91dGVfc3RyaW5nUmV0dXJuOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHN0cmluZ1JldHVybigpc3RyaW5nCgljYWxsc3ViIHN0cmluZ1JldHVybgoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzdHJpbmdSZXR1cm4oKTogc3RyaW5nCnN0cmluZ1JldHVybjoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1MzAKCS8vIHJldHVybiAnSGVsbG8gV29ybGQhJzsKCWJ5dGUgMHg0ODY1NmM2YzZmMjA1NzZmNzI2YzY0MjEgLy8gIkhlbGxvIFdvcmxkISIKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAic3RyaW5nUmV0dXJuKClzdHJpbmciCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfc3RyaW5nUmV0dXJuCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzdHJpbmdSZXR1cm4oKXN0cmluZwoqYWJpX3JvdXRlX3N0cmluZ1JldHVybjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBzdHJpbmdSZXR1cm4oKXN0cmluZwoJY2FsbHN1YiBzdHJpbmdSZXR1cm4KCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gc3RyaW5nUmV0dXJuKCk6IHN0cmluZwpzdHJpbmdSZXR1cm46Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTMwCgkvLyByZXR1cm4gJ0hlbGxvIFdvcmxkISc7CglieXRlIDB4NDg2NTZjNmM2ZjIwNTc2ZjcyNmM2NDIxIC8vICJIZWxsbyBXb3JsZCEiCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJzdHJpbmdSZXR1cm4oKXN0cmluZyIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3RyaW5nUmV0dXJuCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestThreeDimensionalUint16Array.approval.teal b/tests/contracts/artifacts/ABITestThreeDimensionalUint16Array.approval.teal index 53cf65015..8807a6634 100644 --- a/tests/contracts/artifacts/ABITestThreeDimensionalUint16Array.approval.teal +++ b/tests/contracts/artifacts/ABITestThreeDimensionalUint16Array.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // threeDimensionalUint16Array()uint16 -abi_route_threeDimensionalUint16Array: +*abi_route_threeDimensionalUint16Array: // The ABI return prefix byte 0x151f7c75 @@ -78,18 +78,18 @@ threeDimensionalUint16Array: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "threeDimensionalUint16Array()uint16" txna ApplicationArgs 0 - match abi_route_threeDimensionalUint16Array + match *abi_route_threeDimensionalUint16Array err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestThreeDimensionalUint16Array.arc32.json b/tests/contracts/artifacts/ABITestThreeDimensionalUint16Array.arc32.json index 39a4ff6ff..ede5ce3f8 100644 --- a/tests/contracts/artifacts/ABITestThreeDimensionalUint16Array.arc32.json +++ b/tests/contracts/artifacts/ABITestThreeDimensionalUint16Array.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyB0aHJlZURpbWVuc2lvbmFsVWludDE2QXJyYXkoKXVpbnQxNgphYmlfcm91dGVfdGhyZWVEaW1lbnNpb25hbFVpbnQxNkFycmF5OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHRocmVlRGltZW5zaW9uYWxVaW50MTZBcnJheSgpdWludDE2CgljYWxsc3ViIHRocmVlRGltZW5zaW9uYWxVaW50MTZBcnJheQoJaXRvYgoJZHVwCgliaXRsZW4KCWludCAxNgoJPD0KCWFzc2VydAoJZXh0cmFjdCA2IDIKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB0aHJlZURpbWVuc2lvbmFsVWludDE2QXJyYXkoKTogdWludDE2CnRocmVlRGltZW5zaW9uYWxVaW50MTZBcnJheToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjIzOAoJLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDE2LCAyPiwgMj4sIDI+ID0gWwoJLy8gICAgICAgWwoJLy8gICAgICAgICBbMTEsIDIyXSwKCS8vICAgICAgICAgWzMzLCA0NF0sCgkvLyAgICAgICBdLAoJLy8gICAgICAgWwoJLy8gICAgICAgICBbNTUsIDY2XSwKCS8vICAgICAgICAgWzc3LCA4OF0sCgkvLyAgICAgICBdLAoJLy8gICAgIF0KCWJ5dGUgMHgwMDBiMDAxNjAwMjEwMDJjMDAzNzAwNDIwMDRkMDA1OAoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQxNiwgMj4sIDI+LCAyPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoyNDkKCS8vIGFbMV1bMV0gPSBbNzc3LCA4ODhdCglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50MTYsIDI+LCAyPiwgMj4KCWJ5dGUgMHgwMzA5MDM3OAoJcmVwbGFjZTIgMTIKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50MTYsIDI+LCAyPiwgMj4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MjUxCgkvLyByZXR1cm4gYVsxXVsxXVsxXTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQxNiwgMj4sIDI+LCAyPgoJZXh0cmFjdCAxNCAyCglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgInRocmVlRGltZW5zaW9uYWxVaW50MTZBcnJheSgpdWludDE2IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX3RocmVlRGltZW5zaW9uYWxVaW50MTZBcnJheQoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyB0aHJlZURpbWVuc2lvbmFsVWludDE2QXJyYXkoKXVpbnQxNgoqYWJpX3JvdXRlX3RocmVlRGltZW5zaW9uYWxVaW50MTZBcnJheToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSB0aHJlZURpbWVuc2lvbmFsVWludDE2QXJyYXkoKXVpbnQxNgoJY2FsbHN1YiB0aHJlZURpbWVuc2lvbmFsVWludDE2QXJyYXkKCWl0b2IKCWR1cAoJYml0bGVuCglpbnQgMTYKCTw9Cglhc3NlcnQKCWV4dHJhY3QgNiAyCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdGhyZWVEaW1lbnNpb25hbFVpbnQxNkFycmF5KCk6IHVpbnQxNgp0aHJlZURpbWVuc2lvbmFsVWludDE2QXJyYXk6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoyMzgKCS8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQxNiwgMj4sIDI+LCAyPiA9IFsKCS8vICAgICAgIFsKCS8vICAgICAgICAgWzExLCAyMl0sCgkvLyAgICAgICAgIFszMywgNDRdLAoJLy8gICAgICAgXSwKCS8vICAgICAgIFsKCS8vICAgICAgICAgWzU1LCA2Nl0sCgkvLyAgICAgICAgIFs3NywgODhdLAoJLy8gICAgICAgXSwKCS8vICAgICBdCglieXRlIDB4MDAwYjAwMTYwMDIxMDAyYzAwMzcwMDQyMDA0ZDAwNTgKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50MTYsIDI+LCAyPiwgMj4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MjQ5CgkvLyBhWzFdWzFdID0gWzc3NywgODg4XQoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDE2LCAyPiwgMj4sIDI+CglieXRlIDB4MDMwOTAzNzgKCXJlcGxhY2UyIDEyCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDE2LCAyPiwgMj4sIDI+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjI1MQoJLy8gcmV0dXJuIGFbMV1bMV1bMV07CglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50MTYsIDI+LCAyPiwgMj4KCWV4dHJhY3QgMTQgMgoJYnRvaQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAidGhyZWVEaW1lbnNpb25hbFVpbnQxNkFycmF5KCl1aW50MTYiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3RocmVlRGltZW5zaW9uYWxVaW50MTZBcnJheQoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestTupleArg.approval.teal b/tests/contracts/artifacts/ABITestTupleArg.approval.teal index 67a69d684..28fdf8668 100644 --- a/tests/contracts/artifacts/ABITestTupleArg.approval.teal +++ b/tests/contracts/artifacts/ABITestTupleArg.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // tupleArg((uint64,uint16,uint64))uint16 -abi_route_tupleArg: +*abi_route_tupleArg: // The ABI return prefix byte 0x151f7c75 @@ -59,18 +59,18 @@ tupleArg: btoi retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "tupleArg((uint64,uint16,uint64))uint16" txna ApplicationArgs 0 - match abi_route_tupleArg + match *abi_route_tupleArg err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestTupleArg.arc32.json b/tests/contracts/artifacts/ABITestTupleArg.arc32.json index 0bbc4eaea..19b1577af 100644 --- a/tests/contracts/artifacts/ABITestTupleArg.arc32.json +++ b/tests/contracts/artifacts/ABITestTupleArg.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyB0dXBsZUFyZygodWludDY0LHVpbnQxNix1aW50NjQpKXVpbnQxNgphYmlfcm91dGVfdHVwbGVBcmc6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGE6ICh1aW50NjQsdWludDE2LHVpbnQ2NCkKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMTgKCT09Cglhc3NlcnQKCgkvLyBleGVjdXRlIHR1cGxlQXJnKCh1aW50NjQsdWludDE2LHVpbnQ2NCkpdWludDE2CgljYWxsc3ViIHR1cGxlQXJnCglpdG9iCglkdXAKCWJpdGxlbgoJaW50IDE2Cgk8PQoJYXNzZXJ0CglleHRyYWN0IDYgMgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHR1cGxlQXJnKGE6IFt1aW50NjQsIHVpbnQxNiwgdWludDY0XSk6IHVpbnQxNgp0dXBsZUFyZzoKCXByb3RvIDEgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czozNDIKCS8vIHJldHVybiBhWzFdOwoJZnJhbWVfZGlnIC0xIC8vIGE6IFt1aW50NjQsIHVpbnQxNiwgdWludDY0XQoJZXh0cmFjdCA4IDIKCWJ0b2kKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAidHVwbGVBcmcoKHVpbnQ2NCx1aW50MTYsdWludDY0KSl1aW50MTYiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfdHVwbGVBcmcKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyB0dXBsZUFyZygodWludDY0LHVpbnQxNix1aW50NjQpKXVpbnQxNgoqYWJpX3JvdXRlX3R1cGxlQXJnOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBhOiAodWludDY0LHVpbnQxNix1aW50NjQpCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDE4Cgk9PQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSB0dXBsZUFyZygodWludDY0LHVpbnQxNix1aW50NjQpKXVpbnQxNgoJY2FsbHN1YiB0dXBsZUFyZwoJaXRvYgoJZHVwCgliaXRsZW4KCWludCAxNgoJPD0KCWFzc2VydAoJZXh0cmFjdCA2IDIKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB0dXBsZUFyZyhhOiBbdWludDY0LCB1aW50MTYsIHVpbnQ2NF0pOiB1aW50MTYKdHVwbGVBcmc6Cglwcm90byAxIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MzQyCgkvLyByZXR1cm4gYVsxXTsKCWZyYW1lX2RpZyAtMSAvLyBhOiBbdWludDY0LCB1aW50MTYsIHVpbnQ2NF0KCWV4dHJhY3QgOCAyCglidG9pCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJ0dXBsZUFyZygodWludDY0LHVpbnQxNix1aW50NjQpKXVpbnQxNiIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdHVwbGVBcmcKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestTupleInArray.approval.teal b/tests/contracts/artifacts/ABITestTupleInArray.approval.teal index b7dfdaf1d..4d6fcd279 100644 --- a/tests/contracts/artifacts/ABITestTupleInArray.approval.teal +++ b/tests/contracts/artifacts/ABITestTupleInArray.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // tupleInArray()uint16 -abi_route_tupleInArray: +*abi_route_tupleInArray: // The ABI return prefix byte 0x151f7c75 @@ -65,18 +65,18 @@ tupleInArray: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "tupleInArray()uint16" txna ApplicationArgs 0 - match abi_route_tupleInArray + match *abi_route_tupleInArray err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestTupleInArray.arc32.json b/tests/contracts/artifacts/ABITestTupleInArray.arc32.json index e2abf805a..5955f2961 100644 --- a/tests/contracts/artifacts/ABITestTupleInArray.arc32.json +++ b/tests/contracts/artifacts/ABITestTupleInArray.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyB0dXBsZUluQXJyYXkoKXVpbnQxNgphYmlfcm91dGVfdHVwbGVJbkFycmF5OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHR1cGxlSW5BcnJheSgpdWludDE2CgljYWxsc3ViIHR1cGxlSW5BcnJheQoJaXRvYgoJZHVwCgliaXRsZW4KCWludCAxNgoJPD0KCWFzc2VydAoJZXh0cmFjdCA2IDIKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB0dXBsZUluQXJyYXkoKTogdWludDE2CnR1cGxlSW5BcnJheToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjI3MwoJLy8gYTogU3RhdGljQXJyYXk8W3VpbnQ2NCwgdWludDE2XSwgMj4gPSBbCgkvLyAgICAgICBbMTEsIDIyXSwKCS8vICAgICAgIFszMywgNDRdLAoJLy8gICAgIF0KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDBiMDAxNjAwMDAwMDAwMDAwMDAwMjEwMDJjCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8W3VpbnQ2NCwgdWludDE2XSwgMj4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6Mjc4CgkvLyByZXR1cm4gYVsxXVsxXTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PFt1aW50NjQsIHVpbnQxNl0sIDI+CglleHRyYWN0IDE4IDIKCWJ0b2kKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAidHVwbGVJbkFycmF5KCl1aW50MTYiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfdHVwbGVJbkFycmF5CgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyB0dXBsZUluQXJyYXkoKXVpbnQxNgoqYWJpX3JvdXRlX3R1cGxlSW5BcnJheToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSB0dXBsZUluQXJyYXkoKXVpbnQxNgoJY2FsbHN1YiB0dXBsZUluQXJyYXkKCWl0b2IKCWR1cAoJYml0bGVuCglpbnQgMTYKCTw9Cglhc3NlcnQKCWV4dHJhY3QgNiAyCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdHVwbGVJbkFycmF5KCk6IHVpbnQxNgp0dXBsZUluQXJyYXk6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoyNzMKCS8vIGE6IFN0YXRpY0FycmF5PFt1aW50NjQsIHVpbnQxNl0sIDI+ID0gWwoJLy8gICAgICAgWzExLCAyMl0sCgkvLyAgICAgICBbMzMsIDQ0XSwKCS8vICAgICBdCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwYjAwMTYwMDAwMDAwMDAwMDAwMDIxMDAyYwoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PFt1aW50NjQsIHVpbnQxNl0sIDI+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjI3OAoJLy8gcmV0dXJuIGFbMV1bMV07CglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTxbdWludDY0LCB1aW50MTZdLCAyPgoJZXh0cmFjdCAxOCAyCglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJ0dXBsZUluQXJyYXkoKXVpbnQxNiIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdHVwbGVJbkFycmF5CgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestTupleInTuple.approval.teal b/tests/contracts/artifacts/ABITestTupleInTuple.approval.teal index 0e2343d9d..015ad6e86 100644 --- a/tests/contracts/artifacts/ABITestTupleInTuple.approval.teal +++ b/tests/contracts/artifacts/ABITestTupleInTuple.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // tupleInTuple()uint64 -abi_route_tupleInTuple: +*abi_route_tupleInTuple: // The ABI return prefix byte 0x151f7c75 @@ -56,18 +56,18 @@ tupleInTuple: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "tupleInTuple()uint64" txna ApplicationArgs 0 - match abi_route_tupleInTuple + match *abi_route_tupleInTuple err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestTupleInTuple.arc32.json b/tests/contracts/artifacts/ABITestTupleInTuple.arc32.json index 407ecacbd..cf38db144 100644 --- a/tests/contracts/artifacts/ABITestTupleInTuple.arc32.json +++ b/tests/contracts/artifacts/ABITestTupleInTuple.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyB0dXBsZUluVHVwbGUoKXVpbnQ2NAphYmlfcm91dGVfdHVwbGVJblR1cGxlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHR1cGxlSW5UdXBsZSgpdWludDY0CgljYWxsc3ViIHR1cGxlSW5UdXBsZQoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHR1cGxlSW5UdXBsZSgpOiB1aW50NjQKdHVwbGVJblR1cGxlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6Mjg0CgkvLyBhOiBbdWludDE2LCB1aW50MTYsIFt1aW50NjQsIHVpbnQxNl0sIFt1aW50MTYsIHVpbnQ2NF1dID0gWzExLCAyMiwgWzMzLCA0NF0sIFs1NSwgNjZdXQoJYnl0ZSAweDAwMGIwMDE2MDAwMDAwMDAwMDAwMDAyMTAwMmMwMDM3MDAwMDAwMDAwMDAwMDA0MgoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50MTYsIHVpbnQxNiwgW3VpbnQ2NCwgdWludDE2XSwgW3VpbnQxNiwgdWludDY0XV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6Mjg2CgkvLyByZXR1cm4gYVszXVsxXTsKCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTYsIHVpbnQxNiwgW3VpbnQ2NCwgdWludDE2XSwgW3VpbnQxNiwgdWludDY0XV0KCWV4dHJhY3QgMTYgOAoJYnRvaQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJ0dXBsZUluVHVwbGUoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV90dXBsZUluVHVwbGUKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyB0dXBsZUluVHVwbGUoKXVpbnQ2NAoqYWJpX3JvdXRlX3R1cGxlSW5UdXBsZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSB0dXBsZUluVHVwbGUoKXVpbnQ2NAoJY2FsbHN1YiB0dXBsZUluVHVwbGUKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB0dXBsZUluVHVwbGUoKTogdWludDY0CnR1cGxlSW5UdXBsZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjI4NAoJLy8gYTogW3VpbnQxNiwgdWludDE2LCBbdWludDY0LCB1aW50MTZdLCBbdWludDE2LCB1aW50NjRdXSA9IFsxMSwgMjIsIFszMywgNDRdLCBbNTUsIDY2XV0KCWJ5dGUgMHgwMDBiMDAxNjAwMDAwMDAwMDAwMDAwMjEwMDJjMDAzNzAwMDAwMDAwMDAwMDAwNDIKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDE2LCB1aW50MTYsIFt1aW50NjQsIHVpbnQxNl0sIFt1aW50MTYsIHVpbnQ2NF1dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjI4NgoJLy8gcmV0dXJuIGFbM11bMV07CglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDE2LCB1aW50MTYsIFt1aW50NjQsIHVpbnQxNl0sIFt1aW50MTYsIHVpbnQ2NF1dCglleHRyYWN0IDE2IDgKCWJ0b2kKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInR1cGxlSW5UdXBsZSgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV90dXBsZUluVHVwbGUKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestTxnTypes.approval.teal b/tests/contracts/artifacts/ABITestTxnTypes.approval.teal index 98b96512e..5451bdcb0 100644 --- a/tests/contracts/artifacts/ABITestTxnTypes.approval.teal +++ b/tests/contracts/artifacts/ABITestTxnTypes.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // txnTypes(txn,appl,acfg,afrz,axfer,keyreg,pay)void -abi_route_txnTypes: +*abi_route_txnTypes: // p: pay txn GroupIndex int 1 @@ -134,18 +134,18 @@ txnTypes: assert retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "txnTypes(txn,appl,acfg,afrz,axfer,keyreg,pay)void" txna ApplicationArgs 0 - match abi_route_txnTypes + match *abi_route_txnTypes err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestTxnTypes.arc32.json b/tests/contracts/artifacts/ABITestTxnTypes.arc32.json index bebceace8..771039858 100644 --- a/tests/contracts/artifacts/ABITestTxnTypes.arc32.json +++ b/tests/contracts/artifacts/ABITestTxnTypes.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyB0eG5UeXBlcyh0eG4sYXBwbCxhY2ZnLGFmcnosYXhmZXIsa2V5cmVnLHBheSl2b2lkCmFiaV9yb3V0ZV90eG5UeXBlczoKCS8vIHA6IHBheQoJdHhuIEdyb3VwSW5kZXgKCWludCAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgcGF5Cgk9PQoJYXNzZXJ0CgoJLy8ga3I6IGtleXJlZwoJdHhuIEdyb3VwSW5kZXgKCWludCAyCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQga2V5cmVnCgk9PQoJYXNzZXJ0CgoJLy8gYXQ6IGF4ZmVyCgl0eG4gR3JvdXBJbmRleAoJaW50IDMKCS0KCWR1cAoJZ3R4bnMgVHlwZUVudW0KCWludCBheGZlcgoJPT0KCWFzc2VydAoKCS8vIGFmOiBhZnJ6Cgl0eG4gR3JvdXBJbmRleAoJaW50IDQKCS0KCWR1cAoJZ3R4bnMgVHlwZUVudW0KCWludCBhZnJ6Cgk9PQoJYXNzZXJ0CgoJLy8gYWM6IGFjZmcKCXR4biBHcm91cEluZGV4CglpbnQgNQoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJaW50IGFjZmcKCT09Cglhc3NlcnQKCgkvLyBhOiBhcHBsCgl0eG4gR3JvdXBJbmRleAoJaW50IDYKCS0KCWR1cAoJZ3R4bnMgVHlwZUVudW0KCWludCBhcHBsCgk9PQoJYXNzZXJ0CgoJLy8gdDogdHhuCgl0eG4gR3JvdXBJbmRleAoJaW50IDcKCS0KCgkvLyBleGVjdXRlIHR4blR5cGVzKHR4bixhcHBsLGFjZmcsYWZyeixheGZlcixrZXlyZWcscGF5KXZvaWQKCWNhbGxzdWIgdHhuVHlwZXMKCWludCAxCglyZXR1cm4KCi8vIHR4blR5cGVzKHQ6IFR4biwgYTogQXBwQ2FsbFR4biwgYWM6IEFzc2V0Q29uZmlnVHhuLCBhZjogQXNzZXRGcmVlemVUeG4sIGF0OiBBc3NldFRyYW5zZmVyVHhuLCBrcjogS2V5UmVnVHhuLCBwOiBQYXlUeG4pOiB2b2lkCnR4blR5cGVzOgoJcHJvdG8gNyAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjcyNgoJLy8gYXNzZXJ0KHQuc2VuZGVyID09PSBhLnNlbmRlcikKCWZyYW1lX2RpZyAtMSAvLyB0OiBUeG4KCWd0eG5zIFNlbmRlcgoJZnJhbWVfZGlnIC0yIC8vIGE6IEFwcENhbGxUeG4KCWd0eG5zIFNlbmRlcgoJPT0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo3MjcKCS8vIGFzc2VydChhYy5zZW5kZXIgPT09IGFmLnNlbmRlcikKCWZyYW1lX2RpZyAtMyAvLyBhYzogQXNzZXRDb25maWdUeG4KCWd0eG5zIFNlbmRlcgoJZnJhbWVfZGlnIC00IC8vIGFmOiBBc3NldEZyZWV6ZVR4bgoJZ3R4bnMgU2VuZGVyCgk9PQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjcyOAoJLy8gYXNzZXJ0KGF0LnNlbmRlciA9PT0ga3Iuc2VuZGVyKQoJZnJhbWVfZGlnIC01IC8vIGF0OiBBc3NldFRyYW5zZmVyVHhuCglndHhucyBTZW5kZXIKCWZyYW1lX2RpZyAtNiAvLyBrcjogS2V5UmVnVHhuCglndHhucyBTZW5kZXIKCT09Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NzI5CgkvLyBhc3NlcnQocC5zZW5kZXIgPT09IHQuc2VuZGVyKQoJZnJhbWVfZGlnIC03IC8vIHA6IFBheVR4bgoJZ3R4bnMgU2VuZGVyCglmcmFtZV9kaWcgLTEgLy8gdDogVHhuCglndHhucyBTZW5kZXIKCT09Cglhc3NlcnQKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAidHhuVHlwZXModHhuLGFwcGwsYWNmZyxhZnJ6LGF4ZmVyLGtleXJlZyxwYXkpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV90eG5UeXBlcwoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyB0eG5UeXBlcyh0eG4sYXBwbCxhY2ZnLGFmcnosYXhmZXIsa2V5cmVnLHBheSl2b2lkCiphYmlfcm91dGVfdHhuVHlwZXM6CgkvLyBwOiBwYXkKCXR4biBHcm91cEluZGV4CglpbnQgMQoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJaW50IHBheQoJPT0KCWFzc2VydAoKCS8vIGtyOiBrZXlyZWcKCXR4biBHcm91cEluZGV4CglpbnQgMgoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJaW50IGtleXJlZwoJPT0KCWFzc2VydAoKCS8vIGF0OiBheGZlcgoJdHhuIEdyb3VwSW5kZXgKCWludCAzCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgYXhmZXIKCT09Cglhc3NlcnQKCgkvLyBhZjogYWZyegoJdHhuIEdyb3VwSW5kZXgKCWludCA0CgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgYWZyegoJPT0KCWFzc2VydAoKCS8vIGFjOiBhY2ZnCgl0eG4gR3JvdXBJbmRleAoJaW50IDUKCS0KCWR1cAoJZ3R4bnMgVHlwZUVudW0KCWludCBhY2ZnCgk9PQoJYXNzZXJ0CgoJLy8gYTogYXBwbAoJdHhuIEdyb3VwSW5kZXgKCWludCA2CgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgYXBwbAoJPT0KCWFzc2VydAoKCS8vIHQ6IHR4bgoJdHhuIEdyb3VwSW5kZXgKCWludCA3CgktCgoJLy8gZXhlY3V0ZSB0eG5UeXBlcyh0eG4sYXBwbCxhY2ZnLGFmcnosYXhmZXIsa2V5cmVnLHBheSl2b2lkCgljYWxsc3ViIHR4blR5cGVzCglpbnQgMQoJcmV0dXJuCgovLyB0eG5UeXBlcyh0OiBUeG4sIGE6IEFwcENhbGxUeG4sIGFjOiBBc3NldENvbmZpZ1R4biwgYWY6IEFzc2V0RnJlZXplVHhuLCBhdDogQXNzZXRUcmFuc2ZlclR4biwga3I6IEtleVJlZ1R4biwgcDogUGF5VHhuKTogdm9pZAp0eG5UeXBlczoKCXByb3RvIDcgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo3MjYKCS8vIGFzc2VydCh0LnNlbmRlciA9PT0gYS5zZW5kZXIpCglmcmFtZV9kaWcgLTEgLy8gdDogVHhuCglndHhucyBTZW5kZXIKCWZyYW1lX2RpZyAtMiAvLyBhOiBBcHBDYWxsVHhuCglndHhucyBTZW5kZXIKCT09Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NzI3CgkvLyBhc3NlcnQoYWMuc2VuZGVyID09PSBhZi5zZW5kZXIpCglmcmFtZV9kaWcgLTMgLy8gYWM6IEFzc2V0Q29uZmlnVHhuCglndHhucyBTZW5kZXIKCWZyYW1lX2RpZyAtNCAvLyBhZjogQXNzZXRGcmVlemVUeG4KCWd0eG5zIFNlbmRlcgoJPT0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo3MjgKCS8vIGFzc2VydChhdC5zZW5kZXIgPT09IGtyLnNlbmRlcikKCWZyYW1lX2RpZyAtNSAvLyBhdDogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgU2VuZGVyCglmcmFtZV9kaWcgLTYgLy8ga3I6IEtleVJlZ1R4bgoJZ3R4bnMgU2VuZGVyCgk9PQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjcyOQoJLy8gYXNzZXJ0KHAuc2VuZGVyID09PSB0LnNlbmRlcikKCWZyYW1lX2RpZyAtNyAvLyBwOiBQYXlUeG4KCWd0eG5zIFNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIHQ6IFR4bgoJZ3R4bnMgU2VuZGVyCgk9PQoJYXNzZXJ0CglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJ0eG5UeXBlcyh0eG4sYXBwbCxhY2ZnLGFmcnosYXhmZXIsa2V5cmVnLHBheSl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV90eG5UeXBlcwoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestTypedConst.approval.teal b/tests/contracts/artifacts/ABITestTypedConst.approval.teal index 62b33105e..37bb26272 100644 --- a/tests/contracts/artifacts/ABITestTypedConst.approval.teal +++ b/tests/contracts/artifacts/ABITestTypedConst.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // maxPools()void -abi_route_maxPools: +*abi_route_maxPools: // execute maxPools()void callsub maxPools int 1 @@ -48,18 +48,18 @@ maxPools: assert retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "maxPools()void" txna ApplicationArgs 0 - match abi_route_maxPools + match *abi_route_maxPools err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestTypedConst.arc32.json b/tests/contracts/artifacts/ABITestTypedConst.arc32.json index 2b2d49274..f8204db2b 100644 --- a/tests/contracts/artifacts/ABITestTypedConst.arc32.json +++ b/tests/contracts/artifacts/ABITestTypedConst.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBtYXhQb29scygpdm9pZAphYmlfcm91dGVfbWF4UG9vbHM6CgkvLyBleGVjdXRlIG1heFBvb2xzKCl2b2lkCgljYWxsc3ViIG1heFBvb2xzCglpbnQgMQoJcmV0dXJuCgovLyBtYXhQb29scygpOiB2b2lkCm1heFBvb2xzOgoJcHJvdG8gMCAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTMwMAoJLy8gdWludDE2VmFyOiB1aW50MTYgPSAyNTYKCWludCAyNTYKCWZyYW1lX2J1cnkgMCAvLyB1aW50MTZWYXI6IHVpbnQxNgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzAxCgkvLyBhc3NlcnQodWludDE2VmFyID09PSBVSU5UMTZfQ09OU1QpCglpbnQgMjU2IC8vIHVpbnQxNlZhcjogdWludDE2CglpbnQgMjU2Cgk9PQoJYXNzZXJ0CglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgIm1heFBvb2xzKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX21heFBvb2xzCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBtYXhQb29scygpdm9pZAoqYWJpX3JvdXRlX21heFBvb2xzOgoJLy8gZXhlY3V0ZSBtYXhQb29scygpdm9pZAoJY2FsbHN1YiBtYXhQb29scwoJaW50IDEKCXJldHVybgoKLy8gbWF4UG9vbHMoKTogdm9pZAptYXhQb29sczoKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzMDAKCS8vIHVpbnQxNlZhcjogdWludDE2ID0gMjU2CglpbnQgMjU2CglmcmFtZV9idXJ5IDAgLy8gdWludDE2VmFyOiB1aW50MTYKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTMwMQoJLy8gYXNzZXJ0KHVpbnQxNlZhciA9PT0gVUlOVDE2X0NPTlNUKQoJaW50IDI1NiAvLyB1aW50MTZWYXI6IHVpbnQxNgoJaW50IDI1NgoJPT0KCWFzc2VydAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAibWF4UG9vbHMoKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX21heFBvb2xzCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestTypedVarFromStorage.approval.teal b/tests/contracts/artifacts/ABITestTypedVarFromStorage.approval.teal index 4caecd9a5..abac37bb0 100644 --- a/tests/contracts/artifacts/ABITestTypedVarFromStorage.approval.teal +++ b/tests/contracts/artifacts/ABITestTypedVarFromStorage.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // typedVarFromStorage(uint32)byte[32] -abi_route_typedVarFromStorage: +*abi_route_typedVarFromStorage: // The ABI return prefix byte 0x151f7c75 @@ -66,18 +66,18 @@ typedVarFromStorage: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "typedVarFromStorage(uint32)byte[32]" txna ApplicationArgs 0 - match abi_route_typedVarFromStorage + match *abi_route_typedVarFromStorage err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestTypedVarFromStorage.arc32.json b/tests/contracts/artifacts/ABITestTypedVarFromStorage.arc32.json index 8e10cf0cc..ccb2de8bc 100644 --- a/tests/contracts/artifacts/ABITestTypedVarFromStorage.arc32.json +++ b/tests/contracts/artifacts/ABITestTypedVarFromStorage.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyB0eXBlZFZhckZyb21TdG9yYWdlKHVpbnQzMilieXRlWzMyXQphYmlfcm91dGVfdHlwZWRWYXJGcm9tU3RvcmFnZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8ga2V5OiB1aW50MzIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgNAoJPT0KCWFzc2VydAoJYnRvaQoKCS8vIGV4ZWN1dGUgdHlwZWRWYXJGcm9tU3RvcmFnZSh1aW50MzIpYnl0ZVszMl0KCWNhbGxzdWIgdHlwZWRWYXJGcm9tU3RvcmFnZQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHR5cGVkVmFyRnJvbVN0b3JhZ2Uoa2V5OiB1aW50PDMyPik6IGJ5dGVzMzIKdHlwZWRWYXJGcm9tU3RvcmFnZToKCXByb3RvIDEgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzMDkKCS8vIHZhbHVlOiBieXRlczMyID0gdGhpcy5ib3hNYXBUZXN0KGtleSkudmFsdWUKCWZyYW1lX2RpZyAtMSAvLyBrZXk6IHVpbnQ8MzI+CglpdG9iCglleHRyYWN0IDQgNAoJZnJhbWVfYnVyeSAwIC8vIHN0b3JhZ2Uga2V5Ly92YWx1ZQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzExCgkvLyByZXR1cm4gdmFsdWU7CglmcmFtZV9kaWcgMCAvLyBzdG9yYWdlIGtleS8vdmFsdWUKCWJveF9nZXQKCWFzc2VydAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJ0eXBlZFZhckZyb21TdG9yYWdlKHVpbnQzMilieXRlWzMyXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV90eXBlZFZhckZyb21TdG9yYWdlCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyB0eXBlZFZhckZyb21TdG9yYWdlKHVpbnQzMilieXRlWzMyXQoqYWJpX3JvdXRlX3R5cGVkVmFyRnJvbVN0b3JhZ2U6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGtleTogdWludDMyCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDQKCT09Cglhc3NlcnQKCWJ0b2kKCgkvLyBleGVjdXRlIHR5cGVkVmFyRnJvbVN0b3JhZ2UodWludDMyKWJ5dGVbMzJdCgljYWxsc3ViIHR5cGVkVmFyRnJvbVN0b3JhZ2UKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB0eXBlZFZhckZyb21TdG9yYWdlKGtleTogdWludDwzMj4pOiBieXRlczMyCnR5cGVkVmFyRnJvbVN0b3JhZ2U6Cglwcm90byAxIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzA5CgkvLyB2YWx1ZTogYnl0ZXMzMiA9IHRoaXMuYm94TWFwVGVzdChrZXkpLnZhbHVlCglmcmFtZV9kaWcgLTEgLy8ga2V5OiB1aW50PDMyPgoJaXRvYgoJZXh0cmFjdCA0IDQKCWZyYW1lX2J1cnkgMCAvLyBzdG9yYWdlIGtleS8vdmFsdWUKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTMxMQoJLy8gcmV0dXJuIHZhbHVlOwoJZnJhbWVfZGlnIDAgLy8gc3RvcmFnZSBrZXkvL3ZhbHVlCglib3hfZ2V0Cglhc3NlcnQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInR5cGVkVmFyRnJvbVN0b3JhZ2UodWludDMyKWJ5dGVbMzJdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV90eXBlZFZhckZyb21TdG9yYWdlCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestUfixed.approval.teal b/tests/contracts/artifacts/ABITestUfixed.approval.teal index f5577a039..2e5164d63 100644 --- a/tests/contracts/artifacts/ABITestUfixed.approval.teal +++ b/tests/contracts/artifacts/ABITestUfixed.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // ufixed()ufixed64x2 -abi_route_ufixed: +*abi_route_ufixed: // The ABI return prefix byte 0x151f7c75 @@ -68,18 +68,18 @@ ufixed: popn 1 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "ufixed()ufixed64x2" txna ApplicationArgs 0 - match abi_route_ufixed + match *abi_route_ufixed err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestUfixed.arc32.json b/tests/contracts/artifacts/ABITestUfixed.arc32.json index 0954980c1..681e61b26 100644 --- a/tests/contracts/artifacts/ABITestUfixed.arc32.json +++ b/tests/contracts/artifacts/ABITestUfixed.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyB1Zml4ZWQoKXVmaXhlZDY0eDIKYWJpX3JvdXRlX3VmaXhlZDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSB1Zml4ZWQoKXVmaXhlZDY0eDIKCWNhbGxzdWIgdWZpeGVkCglpdG9iCglleHRyYWN0IDAgOAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHVmaXhlZCgpOiB1Zml4ZWQ8NjQsIDI+CnVmaXhlZDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NzM1CgkvLyBhID0gMS4yMyBhcyB1Zml4ZWQ8NjQsIDI+CglpbnQgMTIzCglmcmFtZV9idXJ5IDAgLy8gYTogdWZpeGVkNjR4MgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo3MzYKCS8vIGIgPSA0LjU2IGFzIHVmaXhlZDw2NCwgMj4KCWludCA0NTYKCWZyYW1lX2J1cnkgMSAvLyBiOiB1Zml4ZWQ2NHgyCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjczOAoJLy8gcmV0dXJuIGEgKyBiOwoJZnJhbWVfZGlnIDAgLy8gYTogdWZpeGVkNjR4MgoJaW50IDQ1NiAvLyBiOiB1Zml4ZWQ2NHgyCgkrCglpbnQgMTAwCgkvCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMQoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJ1Zml4ZWQoKXVmaXhlZDY0eDIiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfdWZpeGVkCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyB1Zml4ZWQoKXVmaXhlZDY0eDIKKmFiaV9yb3V0ZV91Zml4ZWQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgdWZpeGVkKCl1Zml4ZWQ2NHgyCgljYWxsc3ViIHVmaXhlZAoJaXRvYgoJZXh0cmFjdCAwIDgKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1Zml4ZWQoKTogdWZpeGVkPDY0LCAyPgp1Zml4ZWQ6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjczNQoJLy8gYSA9IDEuMjMgYXMgdWZpeGVkPDY0LCAyPgoJaW50IDEyMwoJZnJhbWVfYnVyeSAwIC8vIGE6IHVmaXhlZDY0eDIKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NzM2CgkvLyBiID0gNC41NiBhcyB1Zml4ZWQ8NjQsIDI+CglpbnQgNDU2CglmcmFtZV9idXJ5IDEgLy8gYjogdWZpeGVkNjR4MgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo3MzgKCS8vIHJldHVybiBhICsgYjsKCWZyYW1lX2RpZyAwIC8vIGE6IHVmaXhlZDY0eDIKCWludCA0NTYgLy8gYjogdWZpeGVkNjR4MgoJKwoJaW50IDEwMAoJLwoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInVmaXhlZCgpdWZpeGVkNjR4MiIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdWZpeGVkCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestUint64Casting.approval.teal b/tests/contracts/artifacts/ABITestUint64Casting.approval.teal index a8ba81db1..cbbafc402 100644 --- a/tests/contracts/artifacts/ABITestUint64Casting.approval.teal +++ b/tests/contracts/artifacts/ABITestUint64Casting.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // uint64Casting(uint256)uint64 -abi_route_uint64Casting: +*abi_route_uint64Casting: // The ABI return prefix byte 0x151f7c75 @@ -58,18 +58,18 @@ uint64Casting: btoi retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "uint64Casting(uint256)uint64" txna ApplicationArgs 0 - match abi_route_uint64Casting + match *abi_route_uint64Casting err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestUint64Casting.arc32.json b/tests/contracts/artifacts/ABITestUint64Casting.arc32.json index edc681a28..b44261d3e 100644 --- a/tests/contracts/artifacts/ABITestUint64Casting.arc32.json +++ b/tests/contracts/artifacts/ABITestUint64Casting.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyB1aW50NjRDYXN0aW5nKHVpbnQyNTYpdWludDY0CmFiaV9yb3V0ZV91aW50NjRDYXN0aW5nOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBhOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSB1aW50NjRDYXN0aW5nKHVpbnQyNTYpdWludDY0CgljYWxsc3ViIHVpbnQ2NENhc3RpbmcKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1aW50NjRDYXN0aW5nKGE6IHVpbnQyNTYpOiB1aW50NjQKdWludDY0Q2FzdGluZzoKCXByb3RvIDEgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjA0CgkvLyByZXR1cm4gYSBhcyB1aW50NjQ7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDI1NgoJZHVwCgliaXRsZW4KCWludCA2NAoJPD0KCWFzc2VydAoJZXh0cmFjdCAyNCA4CglidG9pCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgInVpbnQ2NENhc3RpbmcodWludDI1Nil1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfdWludDY0Q2FzdGluZwoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyB1aW50NjRDYXN0aW5nKHVpbnQyNTYpdWludDY0CiphYmlfcm91dGVfdWludDY0Q2FzdGluZzoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYTogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCWFzc2VydAoKCS8vIGV4ZWN1dGUgdWludDY0Q2FzdGluZyh1aW50MjU2KXVpbnQ2NAoJY2FsbHN1YiB1aW50NjRDYXN0aW5nCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdWludDY0Q2FzdGluZyhhOiB1aW50MjU2KTogdWludDY0CnVpbnQ2NENhc3Rpbmc6Cglwcm90byAxIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTIwNAoJLy8gcmV0dXJuIGEgYXMgdWludDY0OwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQyNTYKCWR1cAoJYml0bGVuCglpbnQgNjQKCTw9Cglhc3NlcnQKCWV4dHJhY3QgMjQgOAoJYnRvaQoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAidWludDY0Q2FzdGluZyh1aW50MjU2KXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdWludDY0Q2FzdGluZwoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestUintCasting.approval.teal b/tests/contracts/artifacts/ABITestUintCasting.approval.teal index 4cf3b8f35..a2e55964c 100644 --- a/tests/contracts/artifacts/ABITestUintCasting.approval.teal +++ b/tests/contracts/artifacts/ABITestUintCasting.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // uintCasting(uint8)uint256 -abi_route_uintCasting: +*abi_route_uintCasting: // The ABI return prefix byte 0x151f7c75 @@ -66,18 +66,18 @@ uintCasting: itob retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "uintCasting(uint8)uint256" txna ApplicationArgs 0 - match abi_route_uintCasting + match *abi_route_uintCasting err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestUintCasting.arc32.json b/tests/contracts/artifacts/ABITestUintCasting.arc32.json index 7bf9c649e..556a8fce1 100644 --- a/tests/contracts/artifacts/ABITestUintCasting.arc32.json +++ b/tests/contracts/artifacts/ABITestUintCasting.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyB1aW50Q2FzdGluZyh1aW50OCl1aW50MjU2CmFiaV9yb3V0ZV91aW50Q2FzdGluZzoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYTogdWludDgKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMQoJPT0KCWFzc2VydAoJYnRvaQoKCS8vIGV4ZWN1dGUgdWludENhc3RpbmcodWludDgpdWludDI1NgoJY2FsbHN1YiB1aW50Q2FzdGluZwoJZHVwCgliaXRsZW4KCWludCAyNTYKCTw9Cglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50IDMyCgktCglzd2FwCglzdWJzdHJpbmczCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdWludENhc3RpbmcoYTogdWludDw4Pik6IHVpbnQyNTYKdWludENhc3Rpbmc6Cglwcm90byAxIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTE5OAoJLy8gcmV0dXJuIDx1aW50MjU2PmE7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDw4PgoJaXRvYgoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJ1aW50Q2FzdGluZyh1aW50OCl1aW50MjU2IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX3VpbnRDYXN0aW5nCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyB1aW50Q2FzdGluZyh1aW50OCl1aW50MjU2CiphYmlfcm91dGVfdWludENhc3Rpbmc6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGE6IHVpbnQ4Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDEKCT09Cglhc3NlcnQKCWJ0b2kKCgkvLyBleGVjdXRlIHVpbnRDYXN0aW5nKHVpbnQ4KXVpbnQyNTYKCWNhbGxzdWIgdWludENhc3RpbmcKCWR1cAoJYml0bGVuCglpbnQgMjU2Cgk8PQoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAzMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHVpbnRDYXN0aW5nKGE6IHVpbnQ8OD4pOiB1aW50MjU2CnVpbnRDYXN0aW5nOgoJcHJvdG8gMSAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjExOTgKCS8vIHJldHVybiA8dWludDI1Nj5hOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ8OD4KCWl0b2IKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInVpbnRDYXN0aW5nKHVpbnQ4KXVpbnQyNTYiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3VpbnRDYXN0aW5nCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestUintNComparison.approval.teal b/tests/contracts/artifacts/ABITestUintNComparison.approval.teal index 4f61fc55d..0b919c341 100644 --- a/tests/contracts/artifacts/ABITestUintNComparison.approval.teal +++ b/tests/contracts/artifacts/ABITestUintNComparison.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // uintNComparison(uint256,uint256)bool -abi_route_uintNComparison: +*abi_route_uintNComparison: // The ABI return prefix byte 0x151f7c75 @@ -64,18 +64,18 @@ uintNComparison: b>= retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "uintNComparison(uint256,uint256)bool" txna ApplicationArgs 0 - match abi_route_uintNComparison + match *abi_route_uintNComparison err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestUintNComparison.arc32.json b/tests/contracts/artifacts/ABITestUintNComparison.arc32.json index 4b74cebe6..1ce6ae4f2 100644 --- a/tests/contracts/artifacts/ABITestUintNComparison.arc32.json +++ b/tests/contracts/artifacts/ABITestUintNComparison.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyB1aW50TkNvbXBhcmlzb24odWludDI1Nix1aW50MjU2KWJvb2wKYWJpX3JvdXRlX3VpbnROQ29tcGFyaXNvbjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8geTogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAzMgoJPT0KCWFzc2VydAoKCS8vIHg6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09Cglhc3NlcnQKCgkvLyBleGVjdXRlIHVpbnROQ29tcGFyaXNvbih1aW50MjU2LHVpbnQyNTYpYm9vbAoJY2FsbHN1YiB1aW50TkNvbXBhcmlzb24KCWJ5dGUgMHgwMAoJaW50IDAKCXVuY292ZXIgMgoJc2V0Yml0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdWludE5Db21wYXJpc29uKHg6IHVpbnQyNTYsIHk6IHVpbnQyNTYpOiBib29sZWFuCnVpbnROQ29tcGFyaXNvbjoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjY4CgkvLyByZXR1cm4geCA+PSB5OwoJZnJhbWVfZGlnIC0xIC8vIHg6IHVpbnQyNTYKCWZyYW1lX2RpZyAtMiAvLyB5OiB1aW50MjU2CgliPj0KCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAidWludE5Db21wYXJpc29uKHVpbnQyNTYsdWludDI1Nilib29sIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX3VpbnROQ29tcGFyaXNvbgoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyB1aW50TkNvbXBhcmlzb24odWludDI1Nix1aW50MjU2KWJvb2wKKmFiaV9yb3V0ZV91aW50TkNvbXBhcmlzb246CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIHk6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMzIKCT09Cglhc3NlcnQKCgkvLyB4OiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSB1aW50TkNvbXBhcmlzb24odWludDI1Nix1aW50MjU2KWJvb2wKCWNhbGxzdWIgdWludE5Db21wYXJpc29uCglieXRlIDB4MDAKCWludCAwCgl1bmNvdmVyIDIKCXNldGJpdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHVpbnROQ29tcGFyaXNvbih4OiB1aW50MjU2LCB5OiB1aW50MjU2KTogYm9vbGVhbgp1aW50TkNvbXBhcmlzb246Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTI2OAoJLy8gcmV0dXJuIHggPj0geTsKCWZyYW1lX2RpZyAtMSAvLyB4OiB1aW50MjU2CglmcmFtZV9kaWcgLTIgLy8geTogdWludDI1NgoJYj49CglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJ1aW50TkNvbXBhcmlzb24odWludDI1Nix1aW50MjU2KWJvb2wiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3VpbnROQ29tcGFyaXNvbgoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestUpdateArrayRefInBoxStorage.approval.teal b/tests/contracts/artifacts/ABITestUpdateArrayRefInBoxStorage.approval.teal index 97b715ecc..ad97468a7 100644 --- a/tests/contracts/artifacts/ABITestUpdateArrayRefInBoxStorage.approval.teal +++ b/tests/contracts/artifacts/ABITestUpdateArrayRefInBoxStorage.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch NOT_IMPLEMENTED call_OptIn NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *NOT_IMPLEMENTED *call_OptIn *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // updateArrayRefInBoxStorage()(uint8,uint64) -abi_route_updateArrayRefInBoxStorage: +*abi_route_updateArrayRefInBoxStorage: // The ABI return prefix byte 0x151f7c75 @@ -68,18 +68,18 @@ updateArrayRefInBoxStorage: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_OptIn: +*call_OptIn: method "updateArrayRefInBoxStorage()(uint8,uint64)" txna ApplicationArgs 0 - match abi_route_updateArrayRefInBoxStorage + match *abi_route_updateArrayRefInBoxStorage err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestUpdateArrayRefInBoxStorage.arc32.json b/tests/contracts/artifacts/ABITestUpdateArrayRefInBoxStorage.arc32.json index 0bc599fb4..cf3028d54 100644 --- a/tests/contracts/artifacts/ABITestUpdateArrayRefInBoxStorage.arc32.json +++ b/tests/contracts/artifacts/ABITestUpdateArrayRefInBoxStorage.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggTk9UX0lNUExFTUVOVEVEIGNhbGxfT3B0SW4gTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQKCk5PVF9JTVBMRU1FTlRFRDoKCWVycgoKLy8gdXBkYXRlQXJyYXlSZWZJbkJveFN0b3JhZ2UoKSh1aW50OCx1aW50NjQpCmFiaV9yb3V0ZV91cGRhdGVBcnJheVJlZkluQm94U3RvcmFnZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSB1cGRhdGVBcnJheVJlZkluQm94U3RvcmFnZSgpKHVpbnQ4LHVpbnQ2NCkKCWNhbGxzdWIgdXBkYXRlQXJyYXlSZWZJbkJveFN0b3JhZ2UKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1cGRhdGVBcnJheVJlZkluQm94U3RvcmFnZSgpOiBbdWludDw4PiwgdWludDY0XQp1cGRhdGVBcnJheVJlZkluQm94U3RvcmFnZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjExMTYKCS8vIHRoaXMuYk1hcCh0aGlzLnR4bi5zZW5kZXIpLnZhbHVlID0gWzEsIDJdCgl0eG4gU2VuZGVyCglieXRlIDB4MDEwMDAwMDAwMDAwMDAwMDAyCglib3hfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjExMTgKCS8vIHYgPSB0aGlzLmJNYXAodGhpcy50eG4uc2VuZGVyKS52YWx1ZQoJdHhuIFNlbmRlcgoJZnJhbWVfYnVyeSAwIC8vIHN0b3JhZ2Uga2V5Ly92CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjExMjAKCS8vIHZbMF0gPSAzCglmcmFtZV9kaWcgMCAvLyBzdG9yYWdlIGtleS8vdgoJaW50IDAKCWJ5dGUgMHgwMwoJYm94X3JlcGxhY2UKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTEyMgoJLy8gcmV0dXJuIHY7CglmcmFtZV9kaWcgMCAvLyBzdG9yYWdlIGtleS8vdgoJYm94X2dldAoJYXNzZXJ0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX09wdEluOgoJbWV0aG9kICJ1cGRhdGVBcnJheVJlZkluQm94U3RvcmFnZSgpKHVpbnQ4LHVpbnQ2NCkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfdXBkYXRlQXJyYXlSZWZJbkJveFN0b3JhZ2UKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqTk9UX0lNUExFTUVOVEVEICpjYWxsX09wdEluICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCWVycgoKLy8gdXBkYXRlQXJyYXlSZWZJbkJveFN0b3JhZ2UoKSh1aW50OCx1aW50NjQpCiphYmlfcm91dGVfdXBkYXRlQXJyYXlSZWZJbkJveFN0b3JhZ2U6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgdXBkYXRlQXJyYXlSZWZJbkJveFN0b3JhZ2UoKSh1aW50OCx1aW50NjQpCgljYWxsc3ViIHVwZGF0ZUFycmF5UmVmSW5Cb3hTdG9yYWdlCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdXBkYXRlQXJyYXlSZWZJbkJveFN0b3JhZ2UoKTogW3VpbnQ8OD4sIHVpbnQ2NF0KdXBkYXRlQXJyYXlSZWZJbkJveFN0b3JhZ2U6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTE2CgkvLyB0aGlzLmJNYXAodGhpcy50eG4uc2VuZGVyKS52YWx1ZSA9IFsxLCAyXQoJdHhuIFNlbmRlcgoJYnl0ZSAweDAxMDAwMDAwMDAwMDAwMDAwMgoJYm94X3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTE4CgkvLyB2ID0gdGhpcy5iTWFwKHRoaXMudHhuLnNlbmRlcikudmFsdWUKCXR4biBTZW5kZXIKCWZyYW1lX2J1cnkgMCAvLyBzdG9yYWdlIGtleS8vdgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTIwCgkvLyB2WzBdID0gMwoJZnJhbWVfZGlnIDAgLy8gc3RvcmFnZSBrZXkvL3YKCWludCAwCglieXRlIDB4MDMKCWJveF9yZXBsYWNlCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjExMjIKCS8vIHJldHVybiB2OwoJZnJhbWVfZGlnIDAgLy8gc3RvcmFnZSBrZXkvL3YKCWJveF9nZXQKCWFzc2VydAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfT3B0SW46CgltZXRob2QgInVwZGF0ZUFycmF5UmVmSW5Cb3hTdG9yYWdlKCkodWludDgsdWludDY0KSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdXBkYXRlQXJyYXlSZWZJbkJveFN0b3JhZ2UKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestUpdateDynamicArrayElement.approval.teal b/tests/contracts/artifacts/ABITestUpdateDynamicArrayElement.approval.teal index f66c365d0..f4853973f 100644 --- a/tests/contracts/artifacts/ABITestUpdateDynamicArrayElement.approval.teal +++ b/tests/contracts/artifacts/ABITestUpdateDynamicArrayElement.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // updateDynamicArrayElement()uint64 -abi_route_updateDynamicArrayElement: +*abi_route_updateDynamicArrayElement: // The ABI return prefix byte 0x151f7c75 @@ -67,18 +67,18 @@ updateDynamicArrayElement: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "updateDynamicArrayElement()uint64" txna ApplicationArgs 0 - match abi_route_updateDynamicArrayElement + match *abi_route_updateDynamicArrayElement err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestUpdateDynamicArrayElement.arc32.json b/tests/contracts/artifacts/ABITestUpdateDynamicArrayElement.arc32.json index 5c36c6dcb..8b888321f 100644 --- a/tests/contracts/artifacts/ABITestUpdateDynamicArrayElement.arc32.json +++ b/tests/contracts/artifacts/ABITestUpdateDynamicArrayElement.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyB1cGRhdGVEeW5hbWljQXJyYXlFbGVtZW50KCl1aW50NjQKYWJpX3JvdXRlX3VwZGF0ZUR5bmFtaWNBcnJheUVsZW1lbnQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgdXBkYXRlRHluYW1pY0FycmF5RWxlbWVudCgpdWludDY0CgljYWxsc3ViIHVwZGF0ZUR5bmFtaWNBcnJheUVsZW1lbnQKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1cGRhdGVEeW5hbWljQXJyYXlFbGVtZW50KCk6IHVpbnQ2NAp1cGRhdGVEeW5hbWljQXJyYXlFbGVtZW50OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MzY5CgkvLyBhOiB1aW50NjRbXSA9IFsxMSwgMjIsIDMzXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAwMDAwMDAwMDAwMDAyMQoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQ2NFtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM3MQoJLy8gYVsxXSA9IDIyMgoJZnJhbWVfZGlnIDAgLy8gYTogdWludDY0W10KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglieXRlIDB4MDAwMDAwMDAwMDAwMDBkZQoJcmVwbGFjZTIgOAoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQ2NFtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM3MwoJLy8gcmV0dXJuIGFbMV07CglmcmFtZV9kaWcgMCAvLyBhOiB1aW50NjRbXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWV4dHJhY3QgOCA4CglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgInVwZGF0ZUR5bmFtaWNBcnJheUVsZW1lbnQoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV91cGRhdGVEeW5hbWljQXJyYXlFbGVtZW50CgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyB1cGRhdGVEeW5hbWljQXJyYXlFbGVtZW50KCl1aW50NjQKKmFiaV9yb3V0ZV91cGRhdGVEeW5hbWljQXJyYXlFbGVtZW50OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHVwZGF0ZUR5bmFtaWNBcnJheUVsZW1lbnQoKXVpbnQ2NAoJY2FsbHN1YiB1cGRhdGVEeW5hbWljQXJyYXlFbGVtZW50CglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdXBkYXRlRHluYW1pY0FycmF5RWxlbWVudCgpOiB1aW50NjQKdXBkYXRlRHluYW1pY0FycmF5RWxlbWVudDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM2OQoJLy8gYTogdWludDY0W10gPSBbMTEsIDIyLCAzM10KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDBiMDAwMDAwMDAwMDAwMDAxNjAwMDAwMDAwMDAwMDAwMjEKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50NjRbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czozNzEKCS8vIGFbMV0gPSAyMjIKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQ2NFtdCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwZGUKCXJlcGxhY2UyIDgKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50NjRbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czozNzMKCS8vIHJldHVybiBhWzFdOwoJZnJhbWVfZGlnIDAgLy8gYTogdWludDY0W10KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglleHRyYWN0IDggOAoJYnRvaQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAidXBkYXRlRHluYW1pY0FycmF5RWxlbWVudCgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV91cGRhdGVEeW5hbWljQXJyYXlFbGVtZW50CgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestUpdateDynamicArrayInMiddleOfTuple.approval.teal b/tests/contracts/artifacts/ABITestUpdateDynamicArrayInMiddleOfTuple.approval.teal index c4b0290a3..6b67c51dd 100644 --- a/tests/contracts/artifacts/ABITestUpdateDynamicArrayInMiddleOfTuple.approval.teal +++ b/tests/contracts/artifacts/ABITestUpdateDynamicArrayInMiddleOfTuple.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // updateDynamicArrayInMiddleOfTuple()(uint16,uint8[],uint16) -abi_route_updateDynamicArrayInMiddleOfTuple: +*abi_route_updateDynamicArrayInMiddleOfTuple: // The ABI return prefix byte 0x151f7c75 @@ -46,11 +46,11 @@ updateDynamicArrayInMiddleOfTuple: byte 0x // initial tail byte 0x0006 // initial head offset byte 0x0001 - callsub process_static_tuple_element + callsub *process_static_tuple_element byte 0x000102 - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element byte 0x0003 - callsub process_static_tuple_element + callsub *process_static_tuple_element pop // pop head offset concat // concat head and tail frame_bury 0 // a: [uint16, uint<8>[], uint16] @@ -94,7 +94,7 @@ updateDynamicArrayInMiddleOfTuple: concat concat store 255 // full array - callsub get_length_difference + callsub *get_length_difference load 255 // full array frame_bury 0 // a: [uint16, uint<8>[], uint16] @@ -106,23 +106,23 @@ updateDynamicArrayInMiddleOfTuple: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "updateDynamicArrayInMiddleOfTuple()(uint16,uint8[],uint16)" txna ApplicationArgs 0 - match abi_route_updateDynamicArrayInMiddleOfTuple + match *abi_route_updateDynamicArrayInMiddleOfTuple err -process_static_tuple_element: +*process_static_tuple_element: proto 4 3 frame_dig -4 // tuple head frame_dig -1 // element @@ -131,7 +131,7 @@ process_static_tuple_element: frame_dig -2 // head offset retsub -process_dynamic_tuple_element: +*process_dynamic_tuple_element: proto 4 3 frame_dig -4 // tuple head frame_dig -2 // head offset @@ -155,27 +155,27 @@ process_dynamic_tuple_element: frame_dig -2 // head offset retsub -get_length_difference: +*get_length_difference: load 252 // new element len // length of new element load 253 // element length < - bnz swapped_difference + bnz *swapped_difference load 252 // new element len // length of new element load 253 // element length int 1 store 249 // subtract head difference - b get_difference + b *get_difference -swapped_difference: +*swapped_difference: load 253 // element length load 252 // new element len // length of new element int 0 store 249 // subtract head difference -get_difference: +*get_difference: - // get length difference store 250 // length difference retsub \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestUpdateDynamicArrayInMiddleOfTuple.arc32.json b/tests/contracts/artifacts/ABITestUpdateDynamicArrayInMiddleOfTuple.arc32.json index 043695b5f..8117637ea 100644 --- a/tests/contracts/artifacts/ABITestUpdateDynamicArrayInMiddleOfTuple.arc32.json +++ b/tests/contracts/artifacts/ABITestUpdateDynamicArrayInMiddleOfTuple.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyB1cGRhdGVEeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGUoKSh1aW50MTYsdWludDhbXSx1aW50MTYpCmFiaV9yb3V0ZV91cGRhdGVEeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgdXBkYXRlRHluYW1pY0FycmF5SW5NaWRkbGVPZlR1cGxlKCkodWludDE2LHVpbnQ4W10sdWludDE2KQoJY2FsbHN1YiB1cGRhdGVEeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGUKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1cGRhdGVEeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGUoKTogW3VpbnQxNiwgdWludDw4PltdLCB1aW50MTZdCnVwZGF0ZUR5bmFtaWNBcnJheUluTWlkZGxlT2ZUdXBsZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjY4MgoJLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCB1aW50MTZdID0gWzEsIFsyXSwgM10KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJYnl0ZSAweDAwMDYgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJYnl0ZSAweDAwMDEKCWNhbGxzdWIgcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDEwMgoJY2FsbHN1YiBwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDMKCWNhbGxzdWIgcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCB1aW50MTZdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjY4NAoJLy8gYVsxXSA9IFs0LCA1XQoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCB1aW50MTZdCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDIKCWR1cAoJc3RvcmUgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXVuY292ZXIgMgoJZXh0cmFjdF91aW50MTYKCWR1cAoJc3RvcmUgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50IDEgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCXN0b3JlIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDAKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCXN1YnN0cmluZzMKCWJ5dGUgMHgwMDAyMDQwNQoJZHVwCglzdG9yZSAyNTIgLy8gbmV3IGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgkrIC8vIGdldCBlbmQgb2YgRWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbGVuCglzdWJzdHJpbmczCgljb25jYXQKCWNvbmNhdAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWNhbGxzdWIgZ2V0X2xlbmd0aF9kaWZmZXJlbmNlCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCB1aW50MTZdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjY4NgoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDE2LCB1aW50PDg+W10sIHVpbnQxNl0KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAidXBkYXRlRHluYW1pY0FycmF5SW5NaWRkbGVPZlR1cGxlKCkodWludDE2LHVpbnQ4W10sdWludDE2KSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV91cGRhdGVEeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGUKCWVycgoKcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50Cgljb25jYXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJZHVwCglsZW4KCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJYnRvaQoJKwoJaXRvYgoJZXh0cmFjdCA2IDIKCWZyYW1lX2J1cnkgLTIgLy8gaGVhZCBvZmZzZXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglzd2FwCgljb25jYXQKCWZyYW1lX2J1cnkgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKZ2V0X2xlbmd0aF9kaWZmZXJlbmNlOgoJbG9hZCAyNTIgLy8gbmV3IGVsZW1lbnQKCWxlbiAvLyBsZW5ndGggb2YgbmV3IGVsZW1lbnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgk8Cglibnogc3dhcHBlZF9kaWZmZXJlbmNlCglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWludCAxCglzdG9yZSAyNDkgLy8gc3VidHJhY3QgaGVhZCBkaWZmZXJlbmNlCgliIGdldF9kaWZmZXJlbmNlCgpzd2FwcGVkX2RpZmZlcmVuY2U6Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTIgLy8gbmV3IGVsZW1lbnQKCWxlbiAvLyBsZW5ndGggb2YgbmV3IGVsZW1lbnQKCWludCAwCglzdG9yZSAyNDkgLy8gc3VidHJhY3QgaGVhZCBkaWZmZXJlbmNlCgpnZXRfZGlmZmVyZW5jZToKCS0gLy8gZ2V0IGxlbmd0aCBkaWZmZXJlbmNlCglzdG9yZSAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCXJldHN1Yg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyB1cGRhdGVEeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGUoKSh1aW50MTYsdWludDhbXSx1aW50MTYpCiphYmlfcm91dGVfdXBkYXRlRHluYW1pY0FycmF5SW5NaWRkbGVPZlR1cGxlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHVwZGF0ZUR5bmFtaWNBcnJheUluTWlkZGxlT2ZUdXBsZSgpKHVpbnQxNix1aW50OFtdLHVpbnQxNikKCWNhbGxzdWIgdXBkYXRlRHluYW1pY0FycmF5SW5NaWRkbGVPZlR1cGxlCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdXBkYXRlRHluYW1pY0FycmF5SW5NaWRkbGVPZlR1cGxlKCk6IFt1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2XQp1cGRhdGVEeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo2ODIKCS8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2XSA9IFsxLCBbMl0sIDNdCglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDA2IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCWJ5dGUgMHgwMDAxCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMTAyCgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDMKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2XQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo2ODQKCS8vIGFbMV0gPSBbNCwgNV0KCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2XQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAyCglkdXAKCXN0b3JlIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAKCXN0b3JlIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCAxIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglzdG9yZSAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAwCglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglzdWJzdHJpbmczCglieXRlIDB4MDAwMjA0MDUKCWR1cAoJc3RvcmUgMjUyIC8vIG5ldyBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJKyAvLyBnZXQgZW5kIG9mIEVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxlbgoJc3Vic3RyaW5nMwoJY29uY2F0Cgljb25jYXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CgljYWxsc3ViICpnZXRfbGVuZ3RoX2RpZmZlcmVuY2UKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDE2LCB1aW50PDg+W10sIHVpbnQxNl0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6Njg2CgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2XQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAidXBkYXRlRHluYW1pY0FycmF5SW5NaWRkbGVPZlR1cGxlKCkodWludDE2LHVpbnQ4W10sdWludDE2KSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdXBkYXRlRHluYW1pY0FycmF5SW5NaWRkbGVPZlR1cGxlCgllcnIKCipwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWNvbmNhdAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgoqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJZHVwCglsZW4KCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJYnRvaQoJKwoJaXRvYgoJZXh0cmFjdCA2IDIKCWZyYW1lX2J1cnkgLTIgLy8gaGVhZCBvZmZzZXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglzd2FwCgljb25jYXQKCWZyYW1lX2J1cnkgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKKmdldF9sZW5ndGhfZGlmZmVyZW5jZToKCWxvYWQgMjUyIC8vIG5ldyBlbGVtZW50CglsZW4gLy8gbGVuZ3RoIG9mIG5ldyBlbGVtZW50Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJPAoJYm56ICpzd2FwcGVkX2RpZmZlcmVuY2UKCWxvYWQgMjUyIC8vIG5ldyBlbGVtZW50CglsZW4gLy8gbGVuZ3RoIG9mIG5ldyBlbGVtZW50Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJaW50IDEKCXN0b3JlIDI0OSAvLyBzdWJ0cmFjdCBoZWFkIGRpZmZlcmVuY2UKCWIgKmdldF9kaWZmZXJlbmNlCgoqc3dhcHBlZF9kaWZmZXJlbmNlOgoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjUyIC8vIG5ldyBlbGVtZW50CglsZW4gLy8gbGVuZ3RoIG9mIG5ldyBlbGVtZW50CglpbnQgMAoJc3RvcmUgMjQ5IC8vIHN1YnRyYWN0IGhlYWQgZGlmZmVyZW5jZQoKKmdldF9kaWZmZXJlbmNlOgoJLSAvLyBnZXQgbGVuZ3RoIGRpZmZlcmVuY2UKCXN0b3JlIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJcmV0c3Vi", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestUpdateDynamicArrayInTuple.approval.teal b/tests/contracts/artifacts/ABITestUpdateDynamicArrayInTuple.approval.teal index 1a7ebad09..6d38d72d7 100644 --- a/tests/contracts/artifacts/ABITestUpdateDynamicArrayInTuple.approval.teal +++ b/tests/contracts/artifacts/ABITestUpdateDynamicArrayInTuple.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // updateDynamicArrayInTuple()(uint8,uint16[],uint8[],uint16[],uint8[]) -abi_route_updateDynamicArrayInTuple: +*abi_route_updateDynamicArrayInTuple: // The ABI return prefix byte 0x151f7c75 @@ -46,15 +46,15 @@ updateDynamicArrayInTuple: byte 0x // initial tail byte 0x0009 // initial head offset byte 0x09 - callsub process_static_tuple_element + callsub *process_static_tuple_element byte 0x00010008 - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element byte 0x000107 - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element byte 0x00010006 - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element byte 0x000105 - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element pop // pop head offset concat // concat head and tail frame_bury 0 // a: [uint<8>, uint16[], uint<8>[], uint16[], uint<8>[]] @@ -107,22 +107,22 @@ updateDynamicArrayInTuple: concat concat store 255 // full array - callsub get_length_difference + callsub *get_length_difference load 250 // length difference load 251 // element head offset int 2 + // head ofset - callsub update_dynamic_head + callsub *update_dynamic_head load 250 // length difference load 251 // element head offset int 4 + // head ofset - callsub update_dynamic_head + callsub *update_dynamic_head load 250 // length difference load 251 // element head offset int 6 + // head ofset - callsub update_dynamic_head + callsub *update_dynamic_head load 255 // full array frame_bury 0 // a: [uint<8>, uint16[], uint<8>[], uint16[], uint<8>[]] @@ -165,17 +165,17 @@ updateDynamicArrayInTuple: concat concat store 255 // full array - callsub get_length_difference + callsub *get_length_difference load 250 // length difference load 251 // element head offset int 2 + // head ofset - callsub update_dynamic_head + callsub *update_dynamic_head load 250 // length difference load 251 // element head offset int 4 + // head ofset - callsub update_dynamic_head + callsub *update_dynamic_head load 255 // full array frame_bury 0 // a: [uint<8>, uint16[], uint<8>[], uint16[], uint<8>[]] @@ -218,12 +218,12 @@ updateDynamicArrayInTuple: concat concat store 255 // full array - callsub get_length_difference + callsub *get_length_difference load 250 // length difference load 251 // element head offset int 2 + // head ofset - callsub update_dynamic_head + callsub *update_dynamic_head load 255 // full array frame_bury 0 // a: [uint<8>, uint16[], uint<8>[], uint16[], uint<8>[]] @@ -266,7 +266,7 @@ updateDynamicArrayInTuple: concat concat store 255 // full array - callsub get_length_difference + callsub *get_length_difference load 255 // full array frame_bury 0 // a: [uint<8>, uint16[], uint<8>[], uint16[], uint<8>[]] @@ -278,23 +278,23 @@ updateDynamicArrayInTuple: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "updateDynamicArrayInTuple()(uint8,uint16[],uint8[],uint16[],uint8[])" txna ApplicationArgs 0 - match abi_route_updateDynamicArrayInTuple + match *abi_route_updateDynamicArrayInTuple err -process_static_tuple_element: +*process_static_tuple_element: proto 4 3 frame_dig -4 // tuple head frame_dig -1 // element @@ -303,7 +303,7 @@ process_static_tuple_element: frame_dig -2 // head offset retsub -process_dynamic_tuple_element: +*process_dynamic_tuple_element: proto 4 3 frame_dig -4 // tuple head frame_dig -2 // head offset @@ -327,22 +327,22 @@ process_dynamic_tuple_element: frame_dig -2 // head offset retsub -update_dynamic_head: +*update_dynamic_head: proto 2 0 frame_dig -2 // length difference load 255 // full array frame_dig -1 // dynamic array offset extract_uint16 // extract dynamic array offset load 249 // subtract head difference - bz subtract_head_difference + bz *subtract_head_difference + // add difference to offset - b end_calc_new_head + b *end_calc_new_head -subtract_head_difference: +*subtract_head_difference: swap - // subtract difference from offet -end_calc_new_head: +*end_calc_new_head: itob // convert to bytes extract 6 2 // convert to uint16 load 255 // full array @@ -353,27 +353,27 @@ end_calc_new_head: store 255 // full array retsub -get_length_difference: +*get_length_difference: load 252 // new element len // length of new element load 253 // element length < - bnz swapped_difference + bnz *swapped_difference load 252 // new element len // length of new element load 253 // element length int 1 store 249 // subtract head difference - b get_difference + b *get_difference -swapped_difference: +*swapped_difference: load 253 // element length load 252 // new element len // length of new element int 0 store 249 // subtract head difference -get_difference: +*get_difference: - // get length difference store 250 // length difference retsub \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestUpdateDynamicArrayInTuple.arc32.json b/tests/contracts/artifacts/ABITestUpdateDynamicArrayInTuple.arc32.json index 36a982cb4..e1d563601 100644 --- a/tests/contracts/artifacts/ABITestUpdateDynamicArrayInTuple.arc32.json +++ b/tests/contracts/artifacts/ABITestUpdateDynamicArrayInTuple.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyB1cGRhdGVEeW5hbWljQXJyYXlJblR1cGxlKCkodWludDgsdWludDE2W10sdWludDhbXSx1aW50MTZbXSx1aW50OFtdKQphYmlfcm91dGVfdXBkYXRlRHluYW1pY0FycmF5SW5UdXBsZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSB1cGRhdGVEeW5hbWljQXJyYXlJblR1cGxlKCkodWludDgsdWludDE2W10sdWludDhbXSx1aW50MTZbXSx1aW50OFtdKQoJY2FsbHN1YiB1cGRhdGVEeW5hbWljQXJyYXlJblR1cGxlCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdXBkYXRlRHluYW1pY0FycmF5SW5UdXBsZSgpOiBbdWludDw4PiwgdWludDE2W10sIHVpbnQ8OD5bXSwgdWludDE2W10sIHVpbnQ8OD5bXV0KdXBkYXRlRHluYW1pY0FycmF5SW5UdXBsZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQwNgoJLy8gYTogW3VpbnQ8OD4sIHVpbnQxNltdLCB1aW50PDg+W10sIHVpbnQxNltdLCB1aW50PDg+W11dID0gWzksIFs4XSwgWzddLCBbNl0sIFs1XV0KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJYnl0ZSAweDAwMDkgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJYnl0ZSAweDA5CgljYWxsc3ViIHByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDAxMDAwOAoJY2FsbHN1YiBwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDEwNwoJY2FsbHN1YiBwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDEwMDA2CgljYWxsc3ViIHByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMTA1CgljYWxsc3ViIHByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHVpbnQ8OD5bXSwgdWludDE2W10sIHVpbnQ8OD5bXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDA4CgkvLyBhWzBdID0gOTkgYXMgdWludDw4PgoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNltdLCB1aW50PDg+W10sIHVpbnQxNltdLCB1aW50PDg+W11dCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJYnl0ZSAweDYzCglyZXBsYWNlMiAwCglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNltdLCB1aW50PDg+W10sIHVpbnQxNltdLCB1aW50PDg+W11dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQwOQoJLy8gYVsxXSA9IFsxMCwgMTFdCglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHVpbnQ8OD5bXSwgdWludDE2W10sIHVpbnQ8OD5bXV0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMQoJZHVwCglzdG9yZSAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwCglzdG9yZSAyNTQgLy8gZWxlbWVudCBzdGFydAoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMiAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJc3RvcmUgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMAoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJc3Vic3RyaW5nMwoJYnl0ZSAweDAwMDIwMDBhMDAwYgoJZHVwCglzdG9yZSAyNTIgLy8gbmV3IGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgkrIC8vIGdldCBlbmQgb2YgRWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbGVuCglzdWJzdHJpbmczCgljb25jYXQKCWNvbmNhdAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWNhbGxzdWIgZ2V0X2xlbmd0aF9kaWZmZXJlbmNlCglsb2FkIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJbG9hZCAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJaW50IDIKCSsgLy8gaGVhZCBvZnNldAoJY2FsbHN1YiB1cGRhdGVfZHluYW1pY19oZWFkCglsb2FkIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJbG9hZCAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJaW50IDQKCSsgLy8gaGVhZCBvZnNldAoJY2FsbHN1YiB1cGRhdGVfZHluYW1pY19oZWFkCglsb2FkIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJbG9hZCAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJaW50IDYKCSsgLy8gaGVhZCBvZnNldAoJY2FsbHN1YiB1cGRhdGVfZHluYW1pY19oZWFkCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNltdLCB1aW50PDg+W10sIHVpbnQxNltdLCB1aW50PDg+W11dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQxMAoJLy8gYVsyXSA9IFsxMiwgMTNdCglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHVpbnQ8OD5bXSwgdWludDE2W10sIHVpbnQ8OD5bXV0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMwoJZHVwCglzdG9yZSAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwCglzdG9yZSAyNTQgLy8gZWxlbWVudCBzdGFydAoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMSAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJc3RvcmUgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMAoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJc3Vic3RyaW5nMwoJYnl0ZSAweDAwMDIwYzBkCglkdXAKCXN0b3JlIDI1MiAvLyBuZXcgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCSsgLy8gZ2V0IGVuZCBvZiBFbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglsZW4KCXN1YnN0cmluZzMKCWNvbmNhdAoJY29uY2F0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJY2FsbHN1YiBnZXRfbGVuZ3RoX2RpZmZlcmVuY2UKCWxvYWQgMjUwIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglsb2FkIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0CglpbnQgMgoJKyAvLyBoZWFkIG9mc2V0CgljYWxsc3ViIHVwZGF0ZV9keW5hbWljX2hlYWQKCWxvYWQgMjUwIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglsb2FkIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0CglpbnQgNAoJKyAvLyBoZWFkIG9mc2V0CgljYWxsc3ViIHVwZGF0ZV9keW5hbWljX2hlYWQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHVpbnQ8OD5bXSwgdWludDE2W10sIHVpbnQ8OD5bXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDExCgkvLyBhWzNdID0gWzE0LCAxNV0KCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50PDg+LCB1aW50MTZbXSwgdWludDw4PltdLCB1aW50MTZbXSwgdWludDw4PltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCA1CglkdXAKCXN0b3JlIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAKCXN0b3JlIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCAyIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglzdG9yZSAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAwCglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglzdWJzdHJpbmczCglieXRlIDB4MDAwMjAwMGUwMDBmCglkdXAKCXN0b3JlIDI1MiAvLyBuZXcgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCSsgLy8gZ2V0IGVuZCBvZiBFbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglsZW4KCXN1YnN0cmluZzMKCWNvbmNhdAoJY29uY2F0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJY2FsbHN1YiBnZXRfbGVuZ3RoX2RpZmZlcmVuY2UKCWxvYWQgMjUwIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglsb2FkIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0CglpbnQgMgoJKyAvLyBoZWFkIG9mc2V0CgljYWxsc3ViIHVwZGF0ZV9keW5hbWljX2hlYWQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHVpbnQ8OD5bXSwgdWludDE2W10sIHVpbnQ8OD5bXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDEyCgkvLyBhWzRdID0gWzE2LCAxN10KCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50PDg+LCB1aW50MTZbXSwgdWludDw4PltdLCB1aW50MTZbXSwgdWludDw4PltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCA3CglkdXAKCXN0b3JlIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAKCXN0b3JlIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCAxIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglzdG9yZSAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAwCglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglzdWJzdHJpbmczCglieXRlIDB4MDAwMjEwMTEKCWR1cAoJc3RvcmUgMjUyIC8vIG5ldyBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJKyAvLyBnZXQgZW5kIG9mIEVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxlbgoJc3Vic3RyaW5nMwoJY29uY2F0Cgljb25jYXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CgljYWxsc3ViIGdldF9sZW5ndGhfZGlmZmVyZW5jZQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50PDg+LCB1aW50MTZbXSwgdWludDw4PltdLCB1aW50MTZbXSwgdWludDw4PltdXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0MTQKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNltdLCB1aW50PDg+W10sIHVpbnQxNltdLCB1aW50PDg+W11dCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgInVwZGF0ZUR5bmFtaWNBcnJheUluVHVwbGUoKSh1aW50OCx1aW50MTZbXSx1aW50OFtdLHVpbnQxNltdLHVpbnQ4W10pIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX3VwZGF0ZUR5bmFtaWNBcnJheUluVHVwbGUKCWVycgoKcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50Cgljb25jYXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJZHVwCglsZW4KCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJYnRvaQoJKwoJaXRvYgoJZXh0cmFjdCA2IDIKCWZyYW1lX2J1cnkgLTIgLy8gaGVhZCBvZmZzZXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglzd2FwCgljb25jYXQKCWZyYW1lX2J1cnkgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKdXBkYXRlX2R5bmFtaWNfaGVhZDoKCXByb3RvIDIgMAoJZnJhbWVfZGlnIC0yIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglmcmFtZV9kaWcgLTEgLy8gZHluYW1pYyBhcnJheSBvZmZzZXQKCWV4dHJhY3RfdWludDE2IC8vIGV4dHJhY3QgZHluYW1pYyBhcnJheSBvZmZzZXQKCWxvYWQgMjQ5IC8vIHN1YnRyYWN0IGhlYWQgZGlmZmVyZW5jZQoJYnogc3VidHJhY3RfaGVhZF9kaWZmZXJlbmNlCgkrIC8vIGFkZCBkaWZmZXJlbmNlIHRvIG9mZnNldAoJYiBlbmRfY2FsY19uZXdfaGVhZAoKc3VidHJhY3RfaGVhZF9kaWZmZXJlbmNlOgoJc3dhcAoJLSAvLyBzdWJ0cmFjdCBkaWZmZXJlbmNlIGZyb20gb2ZmZXQKCmVuZF9jYWxjX25ld19oZWFkOgoJaXRvYiAvLyBjb252ZXJ0IHRvIGJ5dGVzCglleHRyYWN0IDYgMiAvLyBjb252ZXJ0IHRvIHVpbnQxNgoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZnJhbWVfZGlnIC0xIC8vIG9mZnNldAoJc3dhcAoJcmVwbGFjZTMgLy8gdXBkYXRlIG9mZnNldAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCXJldHN1YgoKZ2V0X2xlbmd0aF9kaWZmZXJlbmNlOgoJbG9hZCAyNTIgLy8gbmV3IGVsZW1lbnQKCWxlbiAvLyBsZW5ndGggb2YgbmV3IGVsZW1lbnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgk8Cglibnogc3dhcHBlZF9kaWZmZXJlbmNlCglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWludCAxCglzdG9yZSAyNDkgLy8gc3VidHJhY3QgaGVhZCBkaWZmZXJlbmNlCgliIGdldF9kaWZmZXJlbmNlCgpzd2FwcGVkX2RpZmZlcmVuY2U6Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTIgLy8gbmV3IGVsZW1lbnQKCWxlbiAvLyBsZW5ndGggb2YgbmV3IGVsZW1lbnQKCWludCAwCglzdG9yZSAyNDkgLy8gc3VidHJhY3QgaGVhZCBkaWZmZXJlbmNlCgpnZXRfZGlmZmVyZW5jZToKCS0gLy8gZ2V0IGxlbmd0aCBkaWZmZXJlbmNlCglzdG9yZSAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCXJldHN1Yg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyB1cGRhdGVEeW5hbWljQXJyYXlJblR1cGxlKCkodWludDgsdWludDE2W10sdWludDhbXSx1aW50MTZbXSx1aW50OFtdKQoqYWJpX3JvdXRlX3VwZGF0ZUR5bmFtaWNBcnJheUluVHVwbGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgdXBkYXRlRHluYW1pY0FycmF5SW5UdXBsZSgpKHVpbnQ4LHVpbnQxNltdLHVpbnQ4W10sdWludDE2W10sdWludDhbXSkKCWNhbGxzdWIgdXBkYXRlRHluYW1pY0FycmF5SW5UdXBsZQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHVwZGF0ZUR5bmFtaWNBcnJheUluVHVwbGUoKTogW3VpbnQ8OD4sIHVpbnQxNltdLCB1aW50PDg+W10sIHVpbnQxNltdLCB1aW50PDg+W11dCnVwZGF0ZUR5bmFtaWNBcnJheUluVHVwbGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0MDYKCS8vIGE6IFt1aW50PDg+LCB1aW50MTZbXSwgdWludDw4PltdLCB1aW50MTZbXSwgdWludDw4PltdXSA9IFs5LCBbOF0sIFs3XSwgWzZdLCBbNV1dCglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDA5IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCWJ5dGUgMHgwOQoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDEwMDA4CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDEwNwoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDAxMDAwNgoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDAxMDUKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHVpbnQ8OD5bXSwgdWludDE2W10sIHVpbnQ8OD5bXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDA4CgkvLyBhWzBdID0gOTkgYXMgdWludDw4PgoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNltdLCB1aW50PDg+W10sIHVpbnQxNltdLCB1aW50PDg+W11dCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJYnl0ZSAweDYzCglyZXBsYWNlMiAwCglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNltdLCB1aW50PDg+W10sIHVpbnQxNltdLCB1aW50PDg+W11dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQwOQoJLy8gYVsxXSA9IFsxMCwgMTFdCglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHVpbnQ8OD5bXSwgdWludDE2W10sIHVpbnQ8OD5bXV0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMQoJZHVwCglzdG9yZSAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwCglzdG9yZSAyNTQgLy8gZWxlbWVudCBzdGFydAoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMiAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJc3RvcmUgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMAoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJc3Vic3RyaW5nMwoJYnl0ZSAweDAwMDIwMDBhMDAwYgoJZHVwCglzdG9yZSAyNTIgLy8gbmV3IGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgkrIC8vIGdldCBlbmQgb2YgRWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbGVuCglzdWJzdHJpbmczCgljb25jYXQKCWNvbmNhdAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWNhbGxzdWIgKmdldF9sZW5ndGhfZGlmZmVyZW5jZQoJbG9hZCAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWludCAyCgkrIC8vIGhlYWQgb2ZzZXQKCWNhbGxzdWIgKnVwZGF0ZV9keW5hbWljX2hlYWQKCWxvYWQgMjUwIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglsb2FkIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0CglpbnQgNAoJKyAvLyBoZWFkIG9mc2V0CgljYWxsc3ViICp1cGRhdGVfZHluYW1pY19oZWFkCglsb2FkIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJbG9hZCAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJaW50IDYKCSsgLy8gaGVhZCBvZnNldAoJY2FsbHN1YiAqdXBkYXRlX2R5bmFtaWNfaGVhZAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50PDg+LCB1aW50MTZbXSwgdWludDw4PltdLCB1aW50MTZbXSwgdWludDw4PltdXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0MTAKCS8vIGFbMl0gPSBbMTIsIDEzXQoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNltdLCB1aW50PDg+W10sIHVpbnQxNltdLCB1aW50PDg+W11dCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDMKCWR1cAoJc3RvcmUgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXVuY292ZXIgMgoJZXh0cmFjdF91aW50MTYKCWR1cAoJc3RvcmUgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50IDEgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCXN0b3JlIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDAKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCXN1YnN0cmluZzMKCWJ5dGUgMHgwMDAyMGMwZAoJZHVwCglzdG9yZSAyNTIgLy8gbmV3IGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgkrIC8vIGdldCBlbmQgb2YgRWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbGVuCglzdWJzdHJpbmczCgljb25jYXQKCWNvbmNhdAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWNhbGxzdWIgKmdldF9sZW5ndGhfZGlmZmVyZW5jZQoJbG9hZCAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWludCAyCgkrIC8vIGhlYWQgb2ZzZXQKCWNhbGxzdWIgKnVwZGF0ZV9keW5hbWljX2hlYWQKCWxvYWQgMjUwIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglsb2FkIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0CglpbnQgNAoJKyAvLyBoZWFkIG9mc2V0CgljYWxsc3ViICp1cGRhdGVfZHluYW1pY19oZWFkCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNltdLCB1aW50PDg+W10sIHVpbnQxNltdLCB1aW50PDg+W11dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQxMQoJLy8gYVszXSA9IFsxNCwgMTVdCglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHVpbnQ8OD5bXSwgdWludDE2W10sIHVpbnQ8OD5bXV0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgNQoJZHVwCglzdG9yZSAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwCglzdG9yZSAyNTQgLy8gZWxlbWVudCBzdGFydAoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMiAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJc3RvcmUgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMAoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJc3Vic3RyaW5nMwoJYnl0ZSAweDAwMDIwMDBlMDAwZgoJZHVwCglzdG9yZSAyNTIgLy8gbmV3IGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgkrIC8vIGdldCBlbmQgb2YgRWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbGVuCglzdWJzdHJpbmczCgljb25jYXQKCWNvbmNhdAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWNhbGxzdWIgKmdldF9sZW5ndGhfZGlmZmVyZW5jZQoJbG9hZCAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWludCAyCgkrIC8vIGhlYWQgb2ZzZXQKCWNhbGxzdWIgKnVwZGF0ZV9keW5hbWljX2hlYWQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHVpbnQ8OD5bXSwgdWludDE2W10sIHVpbnQ8OD5bXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDEyCgkvLyBhWzRdID0gWzE2LCAxN10KCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50PDg+LCB1aW50MTZbXSwgdWludDw4PltdLCB1aW50MTZbXSwgdWludDw4PltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCA3CglkdXAKCXN0b3JlIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAKCXN0b3JlIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCAxIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglzdG9yZSAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAwCglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglzdWJzdHJpbmczCglieXRlIDB4MDAwMjEwMTEKCWR1cAoJc3RvcmUgMjUyIC8vIG5ldyBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJKyAvLyBnZXQgZW5kIG9mIEVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxlbgoJc3Vic3RyaW5nMwoJY29uY2F0Cgljb25jYXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CgljYWxsc3ViICpnZXRfbGVuZ3RoX2RpZmZlcmVuY2UKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHVpbnQ8OD5bXSwgdWludDE2W10sIHVpbnQ8OD5bXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDE0CgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50PDg+LCB1aW50MTZbXSwgdWludDw4PltdLCB1aW50MTZbXSwgdWludDw4PltdXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAidXBkYXRlRHluYW1pY0FycmF5SW5UdXBsZSgpKHVpbnQ4LHVpbnQxNltdLHVpbnQ4W10sdWludDE2W10sdWludDhbXSkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3VwZGF0ZUR5bmFtaWNBcnJheUluVHVwbGUKCWVycgoKKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJY29uY2F0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCipwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgoqdXBkYXRlX2R5bmFtaWNfaGVhZDoKCXByb3RvIDIgMAoJZnJhbWVfZGlnIC0yIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglmcmFtZV9kaWcgLTEgLy8gZHluYW1pYyBhcnJheSBvZmZzZXQKCWV4dHJhY3RfdWludDE2IC8vIGV4dHJhY3QgZHluYW1pYyBhcnJheSBvZmZzZXQKCWxvYWQgMjQ5IC8vIHN1YnRyYWN0IGhlYWQgZGlmZmVyZW5jZQoJYnogKnN1YnRyYWN0X2hlYWRfZGlmZmVyZW5jZQoJKyAvLyBhZGQgZGlmZmVyZW5jZSB0byBvZmZzZXQKCWIgKmVuZF9jYWxjX25ld19oZWFkCgoqc3VidHJhY3RfaGVhZF9kaWZmZXJlbmNlOgoJc3dhcAoJLSAvLyBzdWJ0cmFjdCBkaWZmZXJlbmNlIGZyb20gb2ZmZXQKCiplbmRfY2FsY19uZXdfaGVhZDoKCWl0b2IgLy8gY29udmVydCB0byBieXRlcwoJZXh0cmFjdCA2IDIgLy8gY29udmVydCB0byB1aW50MTYKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWZyYW1lX2RpZyAtMSAvLyBvZmZzZXQKCXN3YXAKCXJlcGxhY2UzIC8vIHVwZGF0ZSBvZmZzZXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglyZXRzdWIKCipnZXRfbGVuZ3RoX2RpZmZlcmVuY2U6Cglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCTwKCWJueiAqc3dhcHBlZF9kaWZmZXJlbmNlCglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWludCAxCglzdG9yZSAyNDkgLy8gc3VidHJhY3QgaGVhZCBkaWZmZXJlbmNlCgliICpnZXRfZGlmZmVyZW5jZQoKKnN3YXBwZWRfZGlmZmVyZW5jZToKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJaW50IDAKCXN0b3JlIDI0OSAvLyBzdWJ0cmFjdCBoZWFkIGRpZmZlcmVuY2UKCipnZXRfZGlmZmVyZW5jZToKCS0gLy8gZ2V0IGxlbmd0aCBkaWZmZXJlbmNlCglzdG9yZSAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCXJldHN1Yg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestUpdateDynamicElementInTupleWithSameLength.approval.teal b/tests/contracts/artifacts/ABITestUpdateDynamicElementInTupleWithSameLength.approval.teal index b11b06e1e..cbb2a091b 100644 --- a/tests/contracts/artifacts/ABITestUpdateDynamicElementInTupleWithSameLength.approval.teal +++ b/tests/contracts/artifacts/ABITestUpdateDynamicElementInTupleWithSameLength.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // updateDynamicElementInTupleWithSameLength()(uint16,uint8[],uint16,uint8[],uint16) -abi_route_updateDynamicElementInTupleWithSameLength: +*abi_route_updateDynamicElementInTupleWithSameLength: // The ABI return prefix byte 0x151f7c75 @@ -46,15 +46,15 @@ updateDynamicElementInTupleWithSameLength: byte 0x // initial tail byte 0x000a // initial head offset byte 0x0001 - callsub process_static_tuple_element + callsub *process_static_tuple_element byte 0x0003020304 - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element byte 0x0005 - callsub process_static_tuple_element + callsub *process_static_tuple_element byte 0x0003060708 - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element byte 0x0009 - callsub process_static_tuple_element + callsub *process_static_tuple_element pop // pop head offset concat // concat head and tail frame_bury 0 // a: [uint16, uint<8>[], uint16, uint<8>[], uint16] @@ -98,12 +98,12 @@ updateDynamicElementInTupleWithSameLength: concat concat store 255 // full array - callsub get_length_difference + callsub *get_length_difference load 250 // length difference load 251 // element head offset int 4 + // head ofset - callsub update_dynamic_head + callsub *update_dynamic_head load 255 // full array frame_bury 0 // a: [uint16, uint<8>[], uint16, uint<8>[], uint16] @@ -115,23 +115,23 @@ updateDynamicElementInTupleWithSameLength: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "updateDynamicElementInTupleWithSameLength()(uint16,uint8[],uint16,uint8[],uint16)" txna ApplicationArgs 0 - match abi_route_updateDynamicElementInTupleWithSameLength + match *abi_route_updateDynamicElementInTupleWithSameLength err -process_static_tuple_element: +*process_static_tuple_element: proto 4 3 frame_dig -4 // tuple head frame_dig -1 // element @@ -140,7 +140,7 @@ process_static_tuple_element: frame_dig -2 // head offset retsub -process_dynamic_tuple_element: +*process_dynamic_tuple_element: proto 4 3 frame_dig -4 // tuple head frame_dig -2 // head offset @@ -164,22 +164,22 @@ process_dynamic_tuple_element: frame_dig -2 // head offset retsub -update_dynamic_head: +*update_dynamic_head: proto 2 0 frame_dig -2 // length difference load 255 // full array frame_dig -1 // dynamic array offset extract_uint16 // extract dynamic array offset load 249 // subtract head difference - bz subtract_head_difference + bz *subtract_head_difference + // add difference to offset - b end_calc_new_head + b *end_calc_new_head -subtract_head_difference: +*subtract_head_difference: swap - // subtract difference from offet -end_calc_new_head: +*end_calc_new_head: itob // convert to bytes extract 6 2 // convert to uint16 load 255 // full array @@ -190,27 +190,27 @@ end_calc_new_head: store 255 // full array retsub -get_length_difference: +*get_length_difference: load 252 // new element len // length of new element load 253 // element length < - bnz swapped_difference + bnz *swapped_difference load 252 // new element len // length of new element load 253 // element length int 1 store 249 // subtract head difference - b get_difference + b *get_difference -swapped_difference: +*swapped_difference: load 253 // element length load 252 // new element len // length of new element int 0 store 249 // subtract head difference -get_difference: +*get_difference: - // get length difference store 250 // length difference retsub \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestUpdateDynamicElementInTupleWithSameLength.arc32.json b/tests/contracts/artifacts/ABITestUpdateDynamicElementInTupleWithSameLength.arc32.json index 4ba345e61..1cc1a63e2 100644 --- a/tests/contracts/artifacts/ABITestUpdateDynamicElementInTupleWithSameLength.arc32.json +++ b/tests/contracts/artifacts/ABITestUpdateDynamicElementInTupleWithSameLength.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyB1cGRhdGVEeW5hbWljRWxlbWVudEluVHVwbGVXaXRoU2FtZUxlbmd0aCgpKHVpbnQxNix1aW50OFtdLHVpbnQxNix1aW50OFtdLHVpbnQxNikKYWJpX3JvdXRlX3VwZGF0ZUR5bmFtaWNFbGVtZW50SW5UdXBsZVdpdGhTYW1lTGVuZ3RoOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHVwZGF0ZUR5bmFtaWNFbGVtZW50SW5UdXBsZVdpdGhTYW1lTGVuZ3RoKCkodWludDE2LHVpbnQ4W10sdWludDE2LHVpbnQ4W10sdWludDE2KQoJY2FsbHN1YiB1cGRhdGVEeW5hbWljRWxlbWVudEluVHVwbGVXaXRoU2FtZUxlbmd0aAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHVwZGF0ZUR5bmFtaWNFbGVtZW50SW5UdXBsZVdpdGhTYW1lTGVuZ3RoKCk6IFt1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2LCB1aW50PDg+W10sIHVpbnQxNl0KdXBkYXRlRHluYW1pY0VsZW1lbnRJblR1cGxlV2l0aFNhbWVMZW5ndGg6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo3MDAKCS8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2LCB1aW50PDg+W10sIHVpbnQxNl0gPSBbMSwgWzIsIDMsIDRdLCA1LCBbNiwgNywgOF0sIDldCglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDBhIC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCWJ5dGUgMHgwMDAxCgljYWxsc3ViIHByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDAzMDIwMzA0CgljYWxsc3ViIHByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwNQoJY2FsbHN1YiBwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMzA2MDcwOAoJY2FsbHN1YiBwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDkKCWNhbGxzdWIgcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCB1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2XQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo3MDIKCS8vIGFbMV0gPSBbMTAsIDExLCAxMl0KCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2LCB1aW50PDg+W10sIHVpbnQxNl0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMgoJZHVwCglzdG9yZSAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwCglzdG9yZSAyNTQgLy8gZWxlbWVudCBzdGFydAoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMSAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJc3RvcmUgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMAoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJc3Vic3RyaW5nMwoJYnl0ZSAweDAwMDMwYTBiMGMKCWR1cAoJc3RvcmUgMjUyIC8vIG5ldyBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJKyAvLyBnZXQgZW5kIG9mIEVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxlbgoJc3Vic3RyaW5nMwoJY29uY2F0Cgljb25jYXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CgljYWxsc3ViIGdldF9sZW5ndGhfZGlmZmVyZW5jZQoJbG9hZCAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWludCA0CgkrIC8vIGhlYWQgb2ZzZXQKCWNhbGxzdWIgdXBkYXRlX2R5bmFtaWNfaGVhZAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2LCB1aW50PDg+W10sIHVpbnQxNl0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NzA0CgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2LCB1aW50PDg+W10sIHVpbnQxNl0KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAidXBkYXRlRHluYW1pY0VsZW1lbnRJblR1cGxlV2l0aFNhbWVMZW5ndGgoKSh1aW50MTYsdWludDhbXSx1aW50MTYsdWludDhbXSx1aW50MTYpIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX3VwZGF0ZUR5bmFtaWNFbGVtZW50SW5UdXBsZVdpdGhTYW1lTGVuZ3RoCgllcnIKCnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJY29uY2F0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0Cgljb25jYXQKCWZyYW1lX2J1cnkgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWR1cAoJbGVuCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWJ0b2kKCSsKCWl0b2IKCWV4dHJhY3QgNiAyCglmcmFtZV9idXJ5IC0yIC8vIGhlYWQgb2Zmc2V0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJc3dhcAoJY29uY2F0CglmcmFtZV9idXJ5IC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCnVwZGF0ZV9keW5hbWljX2hlYWQ6Cglwcm90byAyIDAKCWZyYW1lX2RpZyAtMiAvLyBsZW5ndGggZGlmZmVyZW5jZQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZnJhbWVfZGlnIC0xIC8vIGR5bmFtaWMgYXJyYXkgb2Zmc2V0CglleHRyYWN0X3VpbnQxNiAvLyBleHRyYWN0IGR5bmFtaWMgYXJyYXkgb2Zmc2V0Cglsb2FkIDI0OSAvLyBzdWJ0cmFjdCBoZWFkIGRpZmZlcmVuY2UKCWJ6IHN1YnRyYWN0X2hlYWRfZGlmZmVyZW5jZQoJKyAvLyBhZGQgZGlmZmVyZW5jZSB0byBvZmZzZXQKCWIgZW5kX2NhbGNfbmV3X2hlYWQKCnN1YnRyYWN0X2hlYWRfZGlmZmVyZW5jZToKCXN3YXAKCS0gLy8gc3VidHJhY3QgZGlmZmVyZW5jZSBmcm9tIG9mZmV0CgplbmRfY2FsY19uZXdfaGVhZDoKCWl0b2IgLy8gY29udmVydCB0byBieXRlcwoJZXh0cmFjdCA2IDIgLy8gY29udmVydCB0byB1aW50MTYKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWZyYW1lX2RpZyAtMSAvLyBvZmZzZXQKCXN3YXAKCXJlcGxhY2UzIC8vIHVwZGF0ZSBvZmZzZXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglyZXRzdWIKCmdldF9sZW5ndGhfZGlmZmVyZW5jZToKCWxvYWQgMjUyIC8vIG5ldyBlbGVtZW50CglsZW4gLy8gbGVuZ3RoIG9mIG5ldyBlbGVtZW50Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJPAoJYm56IHN3YXBwZWRfZGlmZmVyZW5jZQoJbG9hZCAyNTIgLy8gbmV3IGVsZW1lbnQKCWxlbiAvLyBsZW5ndGggb2YgbmV3IGVsZW1lbnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglpbnQgMQoJc3RvcmUgMjQ5IC8vIHN1YnRyYWN0IGhlYWQgZGlmZmVyZW5jZQoJYiBnZXRfZGlmZmVyZW5jZQoKc3dhcHBlZF9kaWZmZXJlbmNlOgoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjUyIC8vIG5ldyBlbGVtZW50CglsZW4gLy8gbGVuZ3RoIG9mIG5ldyBlbGVtZW50CglpbnQgMAoJc3RvcmUgMjQ5IC8vIHN1YnRyYWN0IGhlYWQgZGlmZmVyZW5jZQoKZ2V0X2RpZmZlcmVuY2U6CgktIC8vIGdldCBsZW5ndGggZGlmZmVyZW5jZQoJc3RvcmUgMjUwIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglyZXRzdWI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyB1cGRhdGVEeW5hbWljRWxlbWVudEluVHVwbGVXaXRoU2FtZUxlbmd0aCgpKHVpbnQxNix1aW50OFtdLHVpbnQxNix1aW50OFtdLHVpbnQxNikKKmFiaV9yb3V0ZV91cGRhdGVEeW5hbWljRWxlbWVudEluVHVwbGVXaXRoU2FtZUxlbmd0aDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSB1cGRhdGVEeW5hbWljRWxlbWVudEluVHVwbGVXaXRoU2FtZUxlbmd0aCgpKHVpbnQxNix1aW50OFtdLHVpbnQxNix1aW50OFtdLHVpbnQxNikKCWNhbGxzdWIgdXBkYXRlRHluYW1pY0VsZW1lbnRJblR1cGxlV2l0aFNhbWVMZW5ndGgKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1cGRhdGVEeW5hbWljRWxlbWVudEluVHVwbGVXaXRoU2FtZUxlbmd0aCgpOiBbdWludDE2LCB1aW50PDg+W10sIHVpbnQxNiwgdWludDw4PltdLCB1aW50MTZdCnVwZGF0ZUR5bmFtaWNFbGVtZW50SW5UdXBsZVdpdGhTYW1lTGVuZ3RoOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NzAwCgkvLyBhOiBbdWludDE2LCB1aW50PDg+W10sIHVpbnQxNiwgdWludDw4PltdLCB1aW50MTZdID0gWzEsIFsyLCAzLCA0XSwgNSwgWzYsIDcsIDhdLCA5XQoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglieXRlIDB4MDAwYSAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0CglieXRlIDB4MDAwMQoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDMwMjAzMDQKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwNQoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDMwNjA3MDgKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwOQoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCB1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2XQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo3MDIKCS8vIGFbMV0gPSBbMTAsIDExLCAxMl0KCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2LCB1aW50PDg+W10sIHVpbnQxNl0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMgoJZHVwCglzdG9yZSAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwCglzdG9yZSAyNTQgLy8gZWxlbWVudCBzdGFydAoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMSAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJc3RvcmUgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMAoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJc3Vic3RyaW5nMwoJYnl0ZSAweDAwMDMwYTBiMGMKCWR1cAoJc3RvcmUgMjUyIC8vIG5ldyBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJKyAvLyBnZXQgZW5kIG9mIEVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxlbgoJc3Vic3RyaW5nMwoJY29uY2F0Cgljb25jYXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CgljYWxsc3ViICpnZXRfbGVuZ3RoX2RpZmZlcmVuY2UKCWxvYWQgMjUwIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglsb2FkIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0CglpbnQgNAoJKyAvLyBoZWFkIG9mc2V0CgljYWxsc3ViICp1cGRhdGVfZHluYW1pY19oZWFkCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCB1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2XQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo3MDQKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCB1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2XQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAidXBkYXRlRHluYW1pY0VsZW1lbnRJblR1cGxlV2l0aFNhbWVMZW5ndGgoKSh1aW50MTYsdWludDhbXSx1aW50MTYsdWludDhbXSx1aW50MTYpIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV91cGRhdGVEeW5hbWljRWxlbWVudEluVHVwbGVXaXRoU2FtZUxlbmd0aAoJZXJyCgoqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50Cgljb25jYXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0Cgljb25jYXQKCWZyYW1lX2J1cnkgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWR1cAoJbGVuCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWJ0b2kKCSsKCWl0b2IKCWV4dHJhY3QgNiAyCglmcmFtZV9idXJ5IC0yIC8vIGhlYWQgb2Zmc2V0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJc3dhcAoJY29uY2F0CglmcmFtZV9idXJ5IC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCip1cGRhdGVfZHluYW1pY19oZWFkOgoJcHJvdG8gMiAwCglmcmFtZV9kaWcgLTIgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2RpZyAtMSAvLyBkeW5hbWljIGFycmF5IG9mZnNldAoJZXh0cmFjdF91aW50MTYgLy8gZXh0cmFjdCBkeW5hbWljIGFycmF5IG9mZnNldAoJbG9hZCAyNDkgLy8gc3VidHJhY3QgaGVhZCBkaWZmZXJlbmNlCglieiAqc3VidHJhY3RfaGVhZF9kaWZmZXJlbmNlCgkrIC8vIGFkZCBkaWZmZXJlbmNlIHRvIG9mZnNldAoJYiAqZW5kX2NhbGNfbmV3X2hlYWQKCipzdWJ0cmFjdF9oZWFkX2RpZmZlcmVuY2U6Cglzd2FwCgktIC8vIHN1YnRyYWN0IGRpZmZlcmVuY2UgZnJvbSBvZmZldAoKKmVuZF9jYWxjX25ld19oZWFkOgoJaXRvYiAvLyBjb252ZXJ0IHRvIGJ5dGVzCglleHRyYWN0IDYgMiAvLyBjb252ZXJ0IHRvIHVpbnQxNgoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZnJhbWVfZGlnIC0xIC8vIG9mZnNldAoJc3dhcAoJcmVwbGFjZTMgLy8gdXBkYXRlIG9mZnNldAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCXJldHN1YgoKKmdldF9sZW5ndGhfZGlmZmVyZW5jZToKCWxvYWQgMjUyIC8vIG5ldyBlbGVtZW50CglsZW4gLy8gbGVuZ3RoIG9mIG5ldyBlbGVtZW50Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJPAoJYm56ICpzd2FwcGVkX2RpZmZlcmVuY2UKCWxvYWQgMjUyIC8vIG5ldyBlbGVtZW50CglsZW4gLy8gbGVuZ3RoIG9mIG5ldyBlbGVtZW50Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJaW50IDEKCXN0b3JlIDI0OSAvLyBzdWJ0cmFjdCBoZWFkIGRpZmZlcmVuY2UKCWIgKmdldF9kaWZmZXJlbmNlCgoqc3dhcHBlZF9kaWZmZXJlbmNlOgoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjUyIC8vIG5ldyBlbGVtZW50CglsZW4gLy8gbGVuZ3RoIG9mIG5ldyBlbGVtZW50CglpbnQgMAoJc3RvcmUgMjQ5IC8vIHN1YnRyYWN0IGhlYWQgZGlmZmVyZW5jZQoKKmdldF9kaWZmZXJlbmNlOgoJLSAvLyBnZXQgbGVuZ3RoIGRpZmZlcmVuY2UKCXN0b3JlIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJcmV0c3Vi", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestUpdateNamedTuple.approval.teal b/tests/contracts/artifacts/ABITestUpdateNamedTuple.approval.teal index f2fb8771d..f0548bade 100644 --- a/tests/contracts/artifacts/ABITestUpdateNamedTuple.approval.teal +++ b/tests/contracts/artifacts/ABITestUpdateNamedTuple.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // updateNamedTuple()string -abi_route_updateNamedTuple: +*abi_route_updateNamedTuple: // The ABI return prefix byte 0x151f7c75 @@ -58,9 +58,9 @@ updateNamedTuple: byte 0x // initial tail byte 0x0004 // initial head offset byte 0x0001 - callsub process_static_tuple_element + callsub *process_static_tuple_element byte 0x000348693f - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element pop // pop head offset concat // concat head and tail frame_bury 0 // a: { foo: uint16; bar: string; } @@ -104,7 +104,7 @@ updateNamedTuple: concat concat store 255 // full array - callsub get_length_difference + callsub *get_length_difference load 255 // full array frame_bury 0 // a: { foo: uint16; bar: string; } @@ -132,23 +132,23 @@ updateNamedTuple: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "updateNamedTuple()string" txna ApplicationArgs 0 - match abi_route_updateNamedTuple + match *abi_route_updateNamedTuple err -process_static_tuple_element: +*process_static_tuple_element: proto 4 3 frame_dig -4 // tuple head frame_dig -1 // element @@ -157,7 +157,7 @@ process_static_tuple_element: frame_dig -2 // head offset retsub -process_dynamic_tuple_element: +*process_dynamic_tuple_element: proto 4 3 frame_dig -4 // tuple head frame_dig -2 // head offset @@ -181,27 +181,27 @@ process_dynamic_tuple_element: frame_dig -2 // head offset retsub -get_length_difference: +*get_length_difference: load 252 // new element len // length of new element load 253 // element length < - bnz swapped_difference + bnz *swapped_difference load 252 // new element len // length of new element load 253 // element length int 1 store 249 // subtract head difference - b get_difference + b *get_difference -swapped_difference: +*swapped_difference: load 253 // element length load 252 // new element len // length of new element int 0 store 249 // subtract head difference -get_difference: +*get_difference: - // get length difference store 250 // length difference retsub \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestUpdateNamedTuple.arc32.json b/tests/contracts/artifacts/ABITestUpdateNamedTuple.arc32.json index bb7c39f09..187dde557 100644 --- a/tests/contracts/artifacts/ABITestUpdateNamedTuple.arc32.json +++ b/tests/contracts/artifacts/ABITestUpdateNamedTuple.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyB1cGRhdGVOYW1lZFR1cGxlKClzdHJpbmcKYWJpX3JvdXRlX3VwZGF0ZU5hbWVkVHVwbGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgdXBkYXRlTmFtZWRUdXBsZSgpc3RyaW5nCgljYWxsc3ViIHVwZGF0ZU5hbWVkVHVwbGUKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdXBkYXRlTmFtZWRUdXBsZSgpOiBzdHJpbmcKdXBkYXRlTmFtZWRUdXBsZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjYxNgoJLy8gYTogewoJLy8gICAgICAgZm9vOiB1aW50MTY7CgkvLyAgICAgICBiYXI6IHN0cmluZzsKCS8vICAgICB9ID0gewoJLy8gICAgICAgZm9vOiAxLAoJLy8gICAgICAgYmFyOiAnSGk/JywKCS8vICAgICB9CglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDA0IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCWJ5dGUgMHgwMDAxCgljYWxsc3ViIHByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDAzNDg2OTNmCgljYWxsc3ViIHByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWZyYW1lX2J1cnkgMCAvLyBhOiB7ICAgICAgIGZvbzogdWludDE2OyAgICAgICBiYXI6IHN0cmluZzsgICAgIH0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NjI0CgkvLyBhLmJhciA9ICdIZWxsbyBXb3JsZCEnCglmcmFtZV9kaWcgMCAvLyBhOiB7ICAgICAgIGZvbzogdWludDE2OyAgICAgICBiYXI6IHN0cmluZzsgICAgIH0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMgoJZHVwCglzdG9yZSAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwCglzdG9yZSAyNTQgLy8gZWxlbWVudCBzdGFydAoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMSAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJc3RvcmUgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMAoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJc3Vic3RyaW5nMwoJYnl0ZSAweDAwMGM0ODY1NmM2YzZmMjA1NzZmNzI2YzY0MjEKCWR1cAoJc3RvcmUgMjUyIC8vIG5ldyBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJKyAvLyBnZXQgZW5kIG9mIEVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxlbgoJc3Vic3RyaW5nMwoJY29uY2F0Cgljb25jYXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CgljYWxsc3ViIGdldF9sZW5ndGhfZGlmZmVyZW5jZQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZnJhbWVfYnVyeSAwIC8vIGE6IHsgICAgICAgZm9vOiB1aW50MTY7ICAgICAgIGJhcjogc3RyaW5nOyAgICAgfQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo2MjYKCS8vIHJldHVybiBhLmJhcjsKCWZyYW1lX2RpZyAwIC8vIGE6IHsgICAgICAgZm9vOiB1aW50MTY7ICAgICAgIGJhcjogc3RyaW5nOyAgICAgfQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAyCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCAxIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglleHRyYWN0MwoJZXh0cmFjdCAyIDAKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAidXBkYXRlTmFtZWRUdXBsZSgpc3RyaW5nIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX3VwZGF0ZU5hbWVkVHVwbGUKCWVycgoKcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50Cgljb25jYXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJZHVwCglsZW4KCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJYnRvaQoJKwoJaXRvYgoJZXh0cmFjdCA2IDIKCWZyYW1lX2J1cnkgLTIgLy8gaGVhZCBvZmZzZXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglzd2FwCgljb25jYXQKCWZyYW1lX2J1cnkgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKZ2V0X2xlbmd0aF9kaWZmZXJlbmNlOgoJbG9hZCAyNTIgLy8gbmV3IGVsZW1lbnQKCWxlbiAvLyBsZW5ndGggb2YgbmV3IGVsZW1lbnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgk8Cglibnogc3dhcHBlZF9kaWZmZXJlbmNlCglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWludCAxCglzdG9yZSAyNDkgLy8gc3VidHJhY3QgaGVhZCBkaWZmZXJlbmNlCgliIGdldF9kaWZmZXJlbmNlCgpzd2FwcGVkX2RpZmZlcmVuY2U6Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTIgLy8gbmV3IGVsZW1lbnQKCWxlbiAvLyBsZW5ndGggb2YgbmV3IGVsZW1lbnQKCWludCAwCglzdG9yZSAyNDkgLy8gc3VidHJhY3QgaGVhZCBkaWZmZXJlbmNlCgpnZXRfZGlmZmVyZW5jZToKCS0gLy8gZ2V0IGxlbmd0aCBkaWZmZXJlbmNlCglzdG9yZSAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCXJldHN1Yg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyB1cGRhdGVOYW1lZFR1cGxlKClzdHJpbmcKKmFiaV9yb3V0ZV91cGRhdGVOYW1lZFR1cGxlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHVwZGF0ZU5hbWVkVHVwbGUoKXN0cmluZwoJY2FsbHN1YiB1cGRhdGVOYW1lZFR1cGxlCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHVwZGF0ZU5hbWVkVHVwbGUoKTogc3RyaW5nCnVwZGF0ZU5hbWVkVHVwbGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo2MTYKCS8vIGE6IHsKCS8vICAgICAgIGZvbzogdWludDE2OwoJLy8gICAgICAgYmFyOiBzdHJpbmc7CgkvLyAgICAgfSA9IHsKCS8vICAgICAgIGZvbzogMSwKCS8vICAgICAgIGJhcjogJ0hpPycsCgkvLyAgICAgfQoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglieXRlIDB4MDAwNCAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0CglieXRlIDB4MDAwMQoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDM0ODY5M2YKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWZyYW1lX2J1cnkgMCAvLyBhOiB7ICAgICAgIGZvbzogdWludDE2OyAgICAgICBiYXI6IHN0cmluZzsgICAgIH0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NjI0CgkvLyBhLmJhciA9ICdIZWxsbyBXb3JsZCEnCglmcmFtZV9kaWcgMCAvLyBhOiB7ICAgICAgIGZvbzogdWludDE2OyAgICAgICBiYXI6IHN0cmluZzsgICAgIH0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMgoJZHVwCglzdG9yZSAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwCglzdG9yZSAyNTQgLy8gZWxlbWVudCBzdGFydAoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMSAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJc3RvcmUgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMAoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJc3Vic3RyaW5nMwoJYnl0ZSAweDAwMGM0ODY1NmM2YzZmMjA1NzZmNzI2YzY0MjEKCWR1cAoJc3RvcmUgMjUyIC8vIG5ldyBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJKyAvLyBnZXQgZW5kIG9mIEVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxlbgoJc3Vic3RyaW5nMwoJY29uY2F0Cgljb25jYXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CgljYWxsc3ViICpnZXRfbGVuZ3RoX2RpZmZlcmVuY2UKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2J1cnkgMCAvLyBhOiB7ICAgICAgIGZvbzogdWludDE2OyAgICAgICBiYXI6IHN0cmluZzsgICAgIH0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NjI2CgkvLyByZXR1cm4gYS5iYXI7CglmcmFtZV9kaWcgMCAvLyBhOiB7ICAgICAgIGZvbzogdWludDE2OyAgICAgICBiYXI6IHN0cmluZzsgICAgIH0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMgoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMSAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJZXh0cmFjdDMKCWV4dHJhY3QgMiAwCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJ1cGRhdGVOYW1lZFR1cGxlKClzdHJpbmciCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3VwZGF0ZU5hbWVkVHVwbGUKCWVycgoKKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJY29uY2F0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCipwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgoqZ2V0X2xlbmd0aF9kaWZmZXJlbmNlOgoJbG9hZCAyNTIgLy8gbmV3IGVsZW1lbnQKCWxlbiAvLyBsZW5ndGggb2YgbmV3IGVsZW1lbnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgk8CglibnogKnN3YXBwZWRfZGlmZmVyZW5jZQoJbG9hZCAyNTIgLy8gbmV3IGVsZW1lbnQKCWxlbiAvLyBsZW5ndGggb2YgbmV3IGVsZW1lbnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglpbnQgMQoJc3RvcmUgMjQ5IC8vIHN1YnRyYWN0IGhlYWQgZGlmZmVyZW5jZQoJYiAqZ2V0X2RpZmZlcmVuY2UKCipzd2FwcGVkX2RpZmZlcmVuY2U6Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTIgLy8gbmV3IGVsZW1lbnQKCWxlbiAvLyBsZW5ndGggb2YgbmV3IGVsZW1lbnQKCWludCAwCglzdG9yZSAyNDkgLy8gc3VidHJhY3QgaGVhZCBkaWZmZXJlbmNlCgoqZ2V0X2RpZmZlcmVuY2U6CgktIC8vIGdldCBsZW5ndGggZGlmZmVyZW5jZQoJc3RvcmUgMjUwIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglyZXRzdWI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestUpdateNestedStaticArray.approval.teal b/tests/contracts/artifacts/ABITestUpdateNestedStaticArray.approval.teal index 3ee7439a4..7df3b6886 100644 --- a/tests/contracts/artifacts/ABITestUpdateNestedStaticArray.approval.teal +++ b/tests/contracts/artifacts/ABITestUpdateNestedStaticArray.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // updateNestedStaticArray()uint64 -abi_route_updateNestedStaticArray: +*abi_route_updateNestedStaticArray: // The ABI return prefix byte 0x151f7c75 @@ -67,18 +67,18 @@ updateNestedStaticArray: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "updateNestedStaticArray()uint64" txna ApplicationArgs 0 - match abi_route_updateNestedStaticArray + match *abi_route_updateNestedStaticArray err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestUpdateNestedStaticArray.arc32.json b/tests/contracts/artifacts/ABITestUpdateNestedStaticArray.arc32.json index 354b8651f..9021cbbfb 100644 --- a/tests/contracts/artifacts/ABITestUpdateNestedStaticArray.arc32.json +++ b/tests/contracts/artifacts/ABITestUpdateNestedStaticArray.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyB1cGRhdGVOZXN0ZWRTdGF0aWNBcnJheSgpdWludDY0CmFiaV9yb3V0ZV91cGRhdGVOZXN0ZWRTdGF0aWNBcnJheToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSB1cGRhdGVOZXN0ZWRTdGF0aWNBcnJheSgpdWludDY0CgljYWxsc3ViIHVwZGF0ZU5lc3RlZFN0YXRpY0FycmF5CglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdXBkYXRlTmVzdGVkU3RhdGljQXJyYXkoKTogdWludDY0CnVwZGF0ZU5lc3RlZFN0YXRpY0FycmF5OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MjI0CgkvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50NjQsIDM+LCAzPiA9IFsKCS8vICAgICAgIFsxMSwgMjIsIDMzXSwKCS8vICAgICAgIFs0NCwgNTUsIDY2XSwKCS8vICAgICAgIFs3NywgODgsIDk5XSwKCS8vICAgICBdCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwYjAwMDAwMDAwMDAwMDAwMTYwMDAwMDAwMDAwMDAwMDIxMDAwMDAwMDAwMDAwMDAyYzAwMDAwMDAwMDAwMDAwMzcwMDAwMDAwMDAwMDAwMDQyMDAwMDAwMDAwMDAwMDA0ZDAwMDAwMDAwMDAwMDAwNTgwMDAwMDAwMDAwMDAwMDYzCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAzPiwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MjMwCgkvLyBhWzFdID0gWzQ0NCwgNTU1LCA2NjZdCglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50NjQsIDM+LCAzPgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAxYmMwMDAwMDAwMDAwMDAwMjJiMDAwMDAwMDAwMDAwMDI5YQoJcmVwbGFjZTIgMjQKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50NjQsIDM+LCAzPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoyMzIKCS8vIHJldHVybiBhWzFdWzFdOwoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAzPiwgMz4KCWV4dHJhY3QgMzIgOAoJYnRvaQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJ1cGRhdGVOZXN0ZWRTdGF0aWNBcnJheSgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX3VwZGF0ZU5lc3RlZFN0YXRpY0FycmF5CgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyB1cGRhdGVOZXN0ZWRTdGF0aWNBcnJheSgpdWludDY0CiphYmlfcm91dGVfdXBkYXRlTmVzdGVkU3RhdGljQXJyYXk6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgdXBkYXRlTmVzdGVkU3RhdGljQXJyYXkoKXVpbnQ2NAoJY2FsbHN1YiB1cGRhdGVOZXN0ZWRTdGF0aWNBcnJheQoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHVwZGF0ZU5lc3RlZFN0YXRpY0FycmF5KCk6IHVpbnQ2NAp1cGRhdGVOZXN0ZWRTdGF0aWNBcnJheToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjIyNAoJLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAzPiwgMz4gPSBbCgkvLyAgICAgICBbMTEsIDIyLCAzM10sCgkvLyAgICAgICBbNDQsIDU1LCA2Nl0sCgkvLyAgICAgICBbNzcsIDg4LCA5OV0sCgkvLyAgICAgXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAwMDAwMDAwMDAwMDAyMTAwMDAwMDAwMDAwMDAwMmMwMDAwMDAwMDAwMDAwMDM3MDAwMDAwMDAwMDAwMDA0MjAwMDAwMDAwMDAwMDAwNGQwMDAwMDAwMDAwMDAwMDU4MDAwMDAwMDAwMDAwMDA2MwoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4sIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjIzMAoJLy8gYVsxXSA9IFs0NDQsIDU1NSwgNjY2XQoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAzPiwgMz4KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMWJjMDAwMDAwMDAwMDAwMDIyYjAwMDAwMDAwMDAwMDAyOWEKCXJlcGxhY2UyIDI0CglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAzPiwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MjMyCgkvLyByZXR1cm4gYVsxXVsxXTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4sIDM+CglleHRyYWN0IDMyIDgKCWJ0b2kKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInVwZGF0ZU5lc3RlZFN0YXRpY0FycmF5KCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3VwZGF0ZU5lc3RlZFN0YXRpY0FycmF5CgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestUpdateNestedStaticArrayElement.approval.teal b/tests/contracts/artifacts/ABITestUpdateNestedStaticArrayElement.approval.teal index f8e2d0ebf..19d72ce4a 100644 --- a/tests/contracts/artifacts/ABITestUpdateNestedStaticArrayElement.approval.teal +++ b/tests/contracts/artifacts/ABITestUpdateNestedStaticArrayElement.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // updateNestedStaticArrayElement()uint64 -abi_route_updateNestedStaticArrayElement: +*abi_route_updateNestedStaticArrayElement: // The ABI return prefix byte 0x151f7c75 @@ -67,18 +67,18 @@ updateNestedStaticArrayElement: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "updateNestedStaticArrayElement()uint64" txna ApplicationArgs 0 - match abi_route_updateNestedStaticArrayElement + match *abi_route_updateNestedStaticArrayElement err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestUpdateNestedStaticArrayElement.arc32.json b/tests/contracts/artifacts/ABITestUpdateNestedStaticArrayElement.arc32.json index 97743a7d9..38f7539b1 100644 --- a/tests/contracts/artifacts/ABITestUpdateNestedStaticArrayElement.arc32.json +++ b/tests/contracts/artifacts/ABITestUpdateNestedStaticArrayElement.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyB1cGRhdGVOZXN0ZWRTdGF0aWNBcnJheUVsZW1lbnQoKXVpbnQ2NAphYmlfcm91dGVfdXBkYXRlTmVzdGVkU3RhdGljQXJyYXlFbGVtZW50OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHVwZGF0ZU5lc3RlZFN0YXRpY0FycmF5RWxlbWVudCgpdWludDY0CgljYWxsc3ViIHVwZGF0ZU5lc3RlZFN0YXRpY0FycmF5RWxlbWVudAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHVwZGF0ZU5lc3RlZFN0YXRpY0FycmF5RWxlbWVudCgpOiB1aW50NjQKdXBkYXRlTmVzdGVkU3RhdGljQXJyYXlFbGVtZW50OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MjEwCgkvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50NjQsIDM+LCAzPiA9IFsKCS8vICAgICAgIFsxMSwgMjIsIDMzXSwKCS8vICAgICAgIFs0NCwgNTUsIDY2XSwKCS8vICAgICAgIFs3NywgODgsIDk5XSwKCS8vICAgICBdCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwYjAwMDAwMDAwMDAwMDAwMTYwMDAwMDAwMDAwMDAwMDIxMDAwMDAwMDAwMDAwMDAyYzAwMDAwMDAwMDAwMDAwMzcwMDAwMDAwMDAwMDAwMDQyMDAwMDAwMDAwMDAwMDA0ZDAwMDAwMDAwMDAwMDAwNTgwMDAwMDAwMDAwMDAwMDYzCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAzPiwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MjE2CgkvLyBhWzFdWzFdID0gNTU1CglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50NjQsIDM+LCAzPgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAyMmIKCXJlcGxhY2UyIDMyCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAzPiwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MjE4CgkvLyByZXR1cm4gYVsxXVsxXTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4sIDM+CglleHRyYWN0IDMyIDgKCWJ0b2kKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAidXBkYXRlTmVzdGVkU3RhdGljQXJyYXlFbGVtZW50KCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfdXBkYXRlTmVzdGVkU3RhdGljQXJyYXlFbGVtZW50CgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyB1cGRhdGVOZXN0ZWRTdGF0aWNBcnJheUVsZW1lbnQoKXVpbnQ2NAoqYWJpX3JvdXRlX3VwZGF0ZU5lc3RlZFN0YXRpY0FycmF5RWxlbWVudDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSB1cGRhdGVOZXN0ZWRTdGF0aWNBcnJheUVsZW1lbnQoKXVpbnQ2NAoJY2FsbHN1YiB1cGRhdGVOZXN0ZWRTdGF0aWNBcnJheUVsZW1lbnQKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1cGRhdGVOZXN0ZWRTdGF0aWNBcnJheUVsZW1lbnQoKTogdWludDY0CnVwZGF0ZU5lc3RlZFN0YXRpY0FycmF5RWxlbWVudDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjIxMAoJLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAzPiwgMz4gPSBbCgkvLyAgICAgICBbMTEsIDIyLCAzM10sCgkvLyAgICAgICBbNDQsIDU1LCA2Nl0sCgkvLyAgICAgICBbNzcsIDg4LCA5OV0sCgkvLyAgICAgXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAwMDAwMDAwMDAwMDAyMTAwMDAwMDAwMDAwMDAwMmMwMDAwMDAwMDAwMDAwMDM3MDAwMDAwMDAwMDAwMDA0MjAwMDAwMDAwMDAwMDAwNGQwMDAwMDAwMDAwMDAwMDU4MDAwMDAwMDAwMDAwMDA2MwoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4sIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjIxNgoJLy8gYVsxXVsxXSA9IDU1NQoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAzPiwgMz4KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMjJiCglyZXBsYWNlMiAzMgoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4sIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjIxOAoJLy8gcmV0dXJuIGFbMV1bMV07CglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50NjQsIDM+LCAzPgoJZXh0cmFjdCAzMiA4CglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJ1cGRhdGVOZXN0ZWRTdGF0aWNBcnJheUVsZW1lbnQoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdXBkYXRlTmVzdGVkU3RhdGljQXJyYXlFbGVtZW50CgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageMap.approval.teal b/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageMap.approval.teal index f8715bd34..c6a2db816 100644 --- a/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageMap.approval.teal +++ b/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageMap.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch NOT_IMPLEMENTED call_OptIn NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *NOT_IMPLEMENTED *call_OptIn *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // updateStaticArrayInStorageMap()uint64[3] -abi_route_updateStaticArrayInStorageMap: +*abi_route_updateStaticArrayInStorageMap: // The ABI return prefix byte 0x151f7c75 @@ -132,18 +132,18 @@ updateStaticArrayInStorageMap: popn 1 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_OptIn: +*call_OptIn: method "updateStaticArrayInStorageMap()uint64[3]" txna ApplicationArgs 0 - match abi_route_updateStaticArrayInStorageMap + match *abi_route_updateStaticArrayInStorageMap err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageMap.arc32.json b/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageMap.arc32.json index 041dd224b..d40f7e4a3 100644 --- a/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageMap.arc32.json +++ b/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageMap.arc32.json @@ -49,7 +49,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggTk9UX0lNUExFTUVOVEVEIGNhbGxfT3B0SW4gTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQKCk5PVF9JTVBMRU1FTlRFRDoKCWVycgoKLy8gdXBkYXRlU3RhdGljQXJyYXlJblN0b3JhZ2VNYXAoKXVpbnQ2NFszXQphYmlfcm91dGVfdXBkYXRlU3RhdGljQXJyYXlJblN0b3JhZ2VNYXA6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgdXBkYXRlU3RhdGljQXJyYXlJblN0b3JhZ2VNYXAoKXVpbnQ2NFszXQoJY2FsbHN1YiB1cGRhdGVTdGF0aWNBcnJheUluU3RvcmFnZU1hcAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHVwZGF0ZVN0YXRpY0FycmF5SW5TdG9yYWdlTWFwKCk6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KdXBkYXRlU3RhdGljQXJyYXlJblN0b3JhZ2VNYXA6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE3NgoJLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPiA9IFsxMSwgMjIsIDMzXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAwMDAwMDAwMDAwMDAyMQoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTc4CgkvLyB0aGlzLmdNYXAoJ2dNYXAnKS52YWx1ZSA9IGEKCWJ5dGUgMHg2NzRkNjE3MCAvLyAiZ01hcCIKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE3OQoJLy8gdGhpcy5sTWFwKHRoaXMudHhuLnNlbmRlciwgJ2xNYXAnKS52YWx1ZSA9IGEKCXR4biBTZW5kZXIKCWJ5dGUgMHg2YzRkNjE3MCAvLyAibE1hcCIKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWFwcF9sb2NhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTgwCgkvLyB0aGlzLmJNYXAoJ2JNYXAnKS52YWx1ZSA9IGEKCWJ5dGUgMHg2MjRkNjE3MCAvLyAiYk1hcCIKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWJveF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTgyCgkvLyB0aGlzLmdNYXAoJ2dNYXAnKS52YWx1ZVsxXSA9IDExMTEKCWJ5dGUgMHg2NzRkNjE3MCAvLyAiZ01hcCIKCWFwcF9nbG9iYWxfZ2V0CglieXRlIDB4MDAwMDAwMDAwMDAwMDQ1NwoJcmVwbGFjZTIgOAoJYnl0ZSAweDY3NGQ2MTcwIC8vICJnTWFwIgoJc3dhcAoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTgzCgkvLyB0aGlzLmxNYXAodGhpcy50eG4uc2VuZGVyLCAnbE1hcCcpLnZhbHVlWzFdID0gMjIyMgoJdHhuIFNlbmRlcgoJYnl0ZSAweDZjNGQ2MTcwIC8vICJsTWFwIgoJYXBwX2xvY2FsX2dldAoJYnl0ZSAweDAwMDAwMDAwMDAwMDA4YWUKCXJlcGxhY2UyIDgKCXR4biBTZW5kZXIKCWJ5dGUgMHg2YzRkNjE3MCAvLyAibE1hcCIKCXVuY292ZXIgMgoJYXBwX2xvY2FsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxODQKCS8vIHRoaXMuYk1hcCgnYk1hcCcpLnZhbHVlWzFdID0gMzMzMwoJYnl0ZSAweDYyNGQ2MTcwIC8vICJiTWFwIgoJaW50IDgKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwZDA1Cglib3hfcmVwbGFjZQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxODYKCS8vIHJldDogU3RhdGljQXJyYXk8dWludDY0LCAzPiA9IFsKCS8vICAgICAgIHRoaXMuZ01hcCgnZ01hcCcpLnZhbHVlWzFdLAoJLy8gICAgICAgdGhpcy5sTWFwKHRoaXMudHhuLnNlbmRlciwgJ2xNYXAnKS52YWx1ZVsxXSwKCS8vICAgICAgIHRoaXMuYk1hcCgnYk1hcCcpLnZhbHVlWzFdLAoJLy8gICAgIF0KCWJ5dGUgMHg2NzRkNjE3MCAvLyAiZ01hcCIKCWFwcF9nbG9iYWxfZ2V0CglleHRyYWN0IDggOAoJYnRvaQoJaXRvYgoJdHhuIFNlbmRlcgoJYnl0ZSAweDZjNGQ2MTcwIC8vICJsTWFwIgoJYXBwX2xvY2FsX2dldAoJZXh0cmFjdCA4IDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJYnl0ZSAweDYyNGQ2MTcwIC8vICJiTWFwIgoJaW50IDgKCWR1cAoJYm94X2V4dHJhY3QKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJZnJhbWVfYnVyeSAxIC8vIHJldDogU3RhdGljQXJyYXk8dWludDY0LCAzPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxOTIKCS8vIHJldHVybiByZXQ7CglmcmFtZV9kaWcgMSAvLyByZXQ6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX09wdEluOgoJbWV0aG9kICJ1cGRhdGVTdGF0aWNBcnJheUluU3RvcmFnZU1hcCgpdWludDY0WzNdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX3VwZGF0ZVN0YXRpY0FycmF5SW5TdG9yYWdlTWFwCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqTk9UX0lNUExFTUVOVEVEICpjYWxsX09wdEluICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCWVycgoKLy8gdXBkYXRlU3RhdGljQXJyYXlJblN0b3JhZ2VNYXAoKXVpbnQ2NFszXQoqYWJpX3JvdXRlX3VwZGF0ZVN0YXRpY0FycmF5SW5TdG9yYWdlTWFwOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHVwZGF0ZVN0YXRpY0FycmF5SW5TdG9yYWdlTWFwKCl1aW50NjRbM10KCWNhbGxzdWIgdXBkYXRlU3RhdGljQXJyYXlJblN0b3JhZ2VNYXAKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1cGRhdGVTdGF0aWNBcnJheUluU3RvcmFnZU1hcCgpOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CnVwZGF0ZVN0YXRpY0FycmF5SW5TdG9yYWdlTWFwOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNzYKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbMTEsIDIyLCAzM10KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDBiMDAwMDAwMDAwMDAwMDAxNjAwMDAwMDAwMDAwMDAwMjEKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE3OAoJLy8gdGhpcy5nTWFwKCdnTWFwJykudmFsdWUgPSBhCglieXRlIDB4Njc0ZDYxNzAgLy8gImdNYXAiCglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNzkKCS8vIHRoaXMubE1hcCh0aGlzLnR4bi5zZW5kZXIsICdsTWFwJykudmFsdWUgPSBhCgl0eG4gU2VuZGVyCglieXRlIDB4NmM0ZDYxNzAgLy8gImxNYXAiCglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CglhcHBfbG9jYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE4MAoJLy8gdGhpcy5iTWFwKCdiTWFwJykudmFsdWUgPSBhCglieXRlIDB4NjI0ZDYxNzAgLy8gImJNYXAiCglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+Cglib3hfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE4MgoJLy8gdGhpcy5nTWFwKCdnTWFwJykudmFsdWVbMV0gPSAxMTExCglieXRlIDB4Njc0ZDYxNzAgLy8gImdNYXAiCglhcHBfZ2xvYmFsX2dldAoJYnl0ZSAweDAwMDAwMDAwMDAwMDA0NTcKCXJlcGxhY2UyIDgKCWJ5dGUgMHg2NzRkNjE3MCAvLyAiZ01hcCIKCXN3YXAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE4MwoJLy8gdGhpcy5sTWFwKHRoaXMudHhuLnNlbmRlciwgJ2xNYXAnKS52YWx1ZVsxXSA9IDIyMjIKCXR4biBTZW5kZXIKCWJ5dGUgMHg2YzRkNjE3MCAvLyAibE1hcCIKCWFwcF9sb2NhbF9nZXQKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwOGFlCglyZXBsYWNlMiA4Cgl0eG4gU2VuZGVyCglieXRlIDB4NmM0ZDYxNzAgLy8gImxNYXAiCgl1bmNvdmVyIDIKCWFwcF9sb2NhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTg0CgkvLyB0aGlzLmJNYXAoJ2JNYXAnKS52YWx1ZVsxXSA9IDMzMzMKCWJ5dGUgMHg2MjRkNjE3MCAvLyAiYk1hcCIKCWludCA4CglieXRlIDB4MDAwMDAwMDAwMDAwMGQwNQoJYm94X3JlcGxhY2UKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTg2CgkvLyByZXQ6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbCgkvLyAgICAgICB0aGlzLmdNYXAoJ2dNYXAnKS52YWx1ZVsxXSwKCS8vICAgICAgIHRoaXMubE1hcCh0aGlzLnR4bi5zZW5kZXIsICdsTWFwJykudmFsdWVbMV0sCgkvLyAgICAgICB0aGlzLmJNYXAoJ2JNYXAnKS52YWx1ZVsxXSwKCS8vICAgICBdCglieXRlIDB4Njc0ZDYxNzAgLy8gImdNYXAiCglhcHBfZ2xvYmFsX2dldAoJZXh0cmFjdCA4IDgKCWJ0b2kKCWl0b2IKCXR4biBTZW5kZXIKCWJ5dGUgMHg2YzRkNjE3MCAvLyAibE1hcCIKCWFwcF9sb2NhbF9nZXQKCWV4dHJhY3QgOCA4CglidG9pCglpdG9iCgljb25jYXQKCWJ5dGUgMHg2MjRkNjE3MCAvLyAiYk1hcCIKCWludCA4CglkdXAKCWJveF9leHRyYWN0CglidG9pCglpdG9iCgljb25jYXQKCWZyYW1lX2J1cnkgMSAvLyByZXQ6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTkyCgkvLyByZXR1cm4gcmV0OwoJZnJhbWVfZGlnIDEgLy8gcmV0OiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMQoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfT3B0SW46CgltZXRob2QgInVwZGF0ZVN0YXRpY0FycmF5SW5TdG9yYWdlTWFwKCl1aW50NjRbM10iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3VwZGF0ZVN0YXRpY0FycmF5SW5TdG9yYWdlTWFwCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageRef.approval.teal b/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageRef.approval.teal index dfb1b36b5..92cf2228e 100644 --- a/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageRef.approval.teal +++ b/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageRef.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch NOT_IMPLEMENTED call_OptIn NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *NOT_IMPLEMENTED *call_OptIn *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // updateStaticArrayInStorageRef()uint64[3] -abi_route_updateStaticArrayInStorageRef: +*abi_route_updateStaticArrayInStorageRef: // The ABI return prefix byte 0x151f7c75 @@ -128,18 +128,18 @@ updateStaticArrayInStorageRef: popn 1 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_OptIn: +*call_OptIn: method "updateStaticArrayInStorageRef()uint64[3]" txna ApplicationArgs 0 - match abi_route_updateStaticArrayInStorageRef + match *abi_route_updateStaticArrayInStorageRef err \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageRef.arc32.json b/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageRef.arc32.json index e61495d04..cf66a5c43 100644 --- a/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageRef.arc32.json +++ b/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageRef.arc32.json @@ -49,7 +49,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggTk9UX0lNUExFTUVOVEVEIGNhbGxfT3B0SW4gTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQKCk5PVF9JTVBMRU1FTlRFRDoKCWVycgoKLy8gdXBkYXRlU3RhdGljQXJyYXlJblN0b3JhZ2VSZWYoKXVpbnQ2NFszXQphYmlfcm91dGVfdXBkYXRlU3RhdGljQXJyYXlJblN0b3JhZ2VSZWY6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgdXBkYXRlU3RhdGljQXJyYXlJblN0b3JhZ2VSZWYoKXVpbnQ2NFszXQoJY2FsbHN1YiB1cGRhdGVTdGF0aWNBcnJheUluU3RvcmFnZVJlZgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHVwZGF0ZVN0YXRpY0FycmF5SW5TdG9yYWdlUmVmKCk6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KdXBkYXRlU3RhdGljQXJyYXlJblN0b3JhZ2VSZWY6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjExNAoJLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPiA9IFsxMSwgMjIsIDMzXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAwMDAwMDAwMDAwMDAyMQoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTE2CgkvLyB0aGlzLmdSZWYudmFsdWUgPSBhCglieXRlIDB4Njc1MjY1NjYgLy8gImdSZWYiCglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTcKCS8vIHRoaXMubFJlZih0aGlzLnR4bi5zZW5kZXIpLnZhbHVlID0gYQoJdHhuIFNlbmRlcgoJYnl0ZSAweDZjNTI2NTY2IC8vICJsUmVmIgoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoJYXBwX2xvY2FsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTgKCS8vIHRoaXMuYlJlZi52YWx1ZSA9IGEKCWJ5dGUgMHg2MjUyNjU2NiAvLyAiYlJlZiIKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWJveF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTIwCgkvLyB0aGlzLmdSZWYudmFsdWVbMV0gPSAxMTEKCWJ5dGUgMHg2NzUyNjU2NiAvLyAiZ1JlZiIKCWFwcF9nbG9iYWxfZ2V0CglieXRlIDB4MDAwMDAwMDAwMDAwMDA2ZgoJcmVwbGFjZTIgOAoJYnl0ZSAweDY3NTI2NTY2IC8vICJnUmVmIgoJc3dhcAoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTIxCgkvLyB0aGlzLmxSZWYodGhpcy50eG4uc2VuZGVyKS52YWx1ZVsxXSA9IDIyMgoJdHhuIFNlbmRlcgoJYnl0ZSAweDZjNTI2NTY2IC8vICJsUmVmIgoJYXBwX2xvY2FsX2dldAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwZGUKCXJlcGxhY2UyIDgKCXR4biBTZW5kZXIKCWJ5dGUgMHg2YzUyNjU2NiAvLyAibFJlZiIKCXVuY292ZXIgMgoJYXBwX2xvY2FsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjIKCS8vIHRoaXMuYlJlZi52YWx1ZVsxXSA9IDMzMwoJYnl0ZSAweDYyNTI2NTY2IC8vICJiUmVmIgoJaW50IDgKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMTRkCglib3hfcmVwbGFjZQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjQKCS8vIHJldDogU3RhdGljQXJyYXk8dWludDY0LCAzPiA9IFt0aGlzLmdSZWYudmFsdWVbMV0sIHRoaXMubFJlZih0aGlzLnR4bi5zZW5kZXIpLnZhbHVlWzFdLCB0aGlzLmJSZWYudmFsdWVbMV1dCglieXRlIDB4Njc1MjY1NjYgLy8gImdSZWYiCglhcHBfZ2xvYmFsX2dldAoJZXh0cmFjdCA4IDgKCWJ0b2kKCWl0b2IKCXR4biBTZW5kZXIKCWJ5dGUgMHg2YzUyNjU2NiAvLyAibFJlZiIKCWFwcF9sb2NhbF9nZXQKCWV4dHJhY3QgOCA4CglidG9pCglpdG9iCgljb25jYXQKCWJ5dGUgMHg2MjUyNjU2NiAvLyAiYlJlZiIKCWludCA4CglkdXAKCWJveF9leHRyYWN0CglidG9pCglpdG9iCgljb25jYXQKCWZyYW1lX2J1cnkgMSAvLyByZXQ6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTI2CgkvLyByZXR1cm4gcmV0OwoJZnJhbWVfZGlnIDEgLy8gcmV0OiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMQoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9PcHRJbjoKCW1ldGhvZCAidXBkYXRlU3RhdGljQXJyYXlJblN0b3JhZ2VSZWYoKXVpbnQ2NFszXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV91cGRhdGVTdGF0aWNBcnJheUluU3RvcmFnZVJlZgoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqTk9UX0lNUExFTUVOVEVEICpjYWxsX09wdEluICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCWVycgoKLy8gdXBkYXRlU3RhdGljQXJyYXlJblN0b3JhZ2VSZWYoKXVpbnQ2NFszXQoqYWJpX3JvdXRlX3VwZGF0ZVN0YXRpY0FycmF5SW5TdG9yYWdlUmVmOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHVwZGF0ZVN0YXRpY0FycmF5SW5TdG9yYWdlUmVmKCl1aW50NjRbM10KCWNhbGxzdWIgdXBkYXRlU3RhdGljQXJyYXlJblN0b3JhZ2VSZWYKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1cGRhdGVTdGF0aWNBcnJheUluU3RvcmFnZVJlZigpOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CnVwZGF0ZVN0YXRpY0FycmF5SW5TdG9yYWdlUmVmOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTQKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbMTEsIDIyLCAzM10KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDBiMDAwMDAwMDAwMDAwMDAxNjAwMDAwMDAwMDAwMDAwMjEKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjExNgoJLy8gdGhpcy5nUmVmLnZhbHVlID0gYQoJYnl0ZSAweDY3NTI2NTY2IC8vICJnUmVmIgoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTE3CgkvLyB0aGlzLmxSZWYodGhpcy50eG4uc2VuZGVyKS52YWx1ZSA9IGEKCXR4biBTZW5kZXIKCWJ5dGUgMHg2YzUyNjU2NiAvLyAibFJlZiIKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWFwcF9sb2NhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTE4CgkvLyB0aGlzLmJSZWYudmFsdWUgPSBhCglieXRlIDB4NjI1MjY1NjYgLy8gImJSZWYiCglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+Cglib3hfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyMAoJLy8gdGhpcy5nUmVmLnZhbHVlWzFdID0gMTExCglieXRlIDB4Njc1MjY1NjYgLy8gImdSZWYiCglhcHBfZ2xvYmFsX2dldAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwNmYKCXJlcGxhY2UyIDgKCWJ5dGUgMHg2NzUyNjU2NiAvLyAiZ1JlZiIKCXN3YXAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyMQoJLy8gdGhpcy5sUmVmKHRoaXMudHhuLnNlbmRlcikudmFsdWVbMV0gPSAyMjIKCXR4biBTZW5kZXIKCWJ5dGUgMHg2YzUyNjU2NiAvLyAibFJlZiIKCWFwcF9sb2NhbF9nZXQKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMGRlCglyZXBsYWNlMiA4Cgl0eG4gU2VuZGVyCglieXRlIDB4NmM1MjY1NjYgLy8gImxSZWYiCgl1bmNvdmVyIDIKCWFwcF9sb2NhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTIyCgkvLyB0aGlzLmJSZWYudmFsdWVbMV0gPSAzMzMKCWJ5dGUgMHg2MjUyNjU2NiAvLyAiYlJlZiIKCWludCA4CglieXRlIDB4MDAwMDAwMDAwMDAwMDE0ZAoJYm94X3JlcGxhY2UKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTI0CgkvLyByZXQ6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbdGhpcy5nUmVmLnZhbHVlWzFdLCB0aGlzLmxSZWYodGhpcy50eG4uc2VuZGVyKS52YWx1ZVsxXSwgdGhpcy5iUmVmLnZhbHVlWzFdXQoJYnl0ZSAweDY3NTI2NTY2IC8vICJnUmVmIgoJYXBwX2dsb2JhbF9nZXQKCWV4dHJhY3QgOCA4CglidG9pCglpdG9iCgl0eG4gU2VuZGVyCglieXRlIDB4NmM1MjY1NjYgLy8gImxSZWYiCglhcHBfbG9jYWxfZ2V0CglleHRyYWN0IDggOAoJYnRvaQoJaXRvYgoJY29uY2F0CglieXRlIDB4NjI1MjY1NjYgLy8gImJSZWYiCglpbnQgOAoJZHVwCglib3hfZXh0cmFjdAoJYnRvaQoJaXRvYgoJY29uY2F0CglmcmFtZV9idXJ5IDEgLy8gcmV0OiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyNgoJLy8gcmV0dXJuIHJldDsKCWZyYW1lX2RpZyAxIC8vIHJldDogU3RhdGljQXJyYXk8dWludDY0LCAzPgoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCipjYWxsX09wdEluOgoJbWV0aG9kICJ1cGRhdGVTdGF0aWNBcnJheUluU3RvcmFnZVJlZigpdWludDY0WzNdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV91cGRhdGVTdGF0aWNBcnJheUluU3RvcmFnZVJlZgoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestUpdateStringInTuple.approval.teal b/tests/contracts/artifacts/ABITestUpdateStringInTuple.approval.teal index ee726c6e6..0321e7122 100644 --- a/tests/contracts/artifacts/ABITestUpdateStringInTuple.approval.teal +++ b/tests/contracts/artifacts/ABITestUpdateStringInTuple.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // updateStringInTuple()(uint8,uint16[],string,uint16[],uint8[]) -abi_route_updateStringInTuple: +*abi_route_updateStringInTuple: // The ABI return prefix byte 0x151f7c75 @@ -46,15 +46,15 @@ updateStringInTuple: byte 0x // initial tail byte 0x0009 // initial head offset byte 0x09 - callsub process_static_tuple_element + callsub *process_static_tuple_element byte 0x00010008 - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element byte 0x000348693f - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element byte 0x00010006 - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element byte 0x000105 - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element pop // pop head offset concat // concat head and tail frame_bury 0 // a: [uint<8>, uint16[], string, uint16[], uint<8>[]] @@ -107,22 +107,22 @@ updateStringInTuple: concat concat store 255 // full array - callsub get_length_difference + callsub *get_length_difference load 250 // length difference load 251 // element head offset int 2 + // head ofset - callsub update_dynamic_head + callsub *update_dynamic_head load 250 // length difference load 251 // element head offset int 4 + // head ofset - callsub update_dynamic_head + callsub *update_dynamic_head load 250 // length difference load 251 // element head offset int 6 + // head ofset - callsub update_dynamic_head + callsub *update_dynamic_head load 255 // full array frame_bury 0 // a: [uint<8>, uint16[], string, uint16[], uint<8>[]] @@ -165,17 +165,17 @@ updateStringInTuple: concat concat store 255 // full array - callsub get_length_difference + callsub *get_length_difference load 250 // length difference load 251 // element head offset int 2 + // head ofset - callsub update_dynamic_head + callsub *update_dynamic_head load 250 // length difference load 251 // element head offset int 4 + // head ofset - callsub update_dynamic_head + callsub *update_dynamic_head load 255 // full array frame_bury 0 // a: [uint<8>, uint16[], string, uint16[], uint<8>[]] @@ -218,12 +218,12 @@ updateStringInTuple: concat concat store 255 // full array - callsub get_length_difference + callsub *get_length_difference load 250 // length difference load 251 // element head offset int 2 + // head ofset - callsub update_dynamic_head + callsub *update_dynamic_head load 255 // full array frame_bury 0 // a: [uint<8>, uint16[], string, uint16[], uint<8>[]] @@ -266,7 +266,7 @@ updateStringInTuple: concat concat store 255 // full array - callsub get_length_difference + callsub *get_length_difference load 255 // full array frame_bury 0 // a: [uint<8>, uint16[], string, uint16[], uint<8>[]] @@ -278,23 +278,23 @@ updateStringInTuple: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "updateStringInTuple()(uint8,uint16[],string,uint16[],uint8[])" txna ApplicationArgs 0 - match abi_route_updateStringInTuple + match *abi_route_updateStringInTuple err -process_static_tuple_element: +*process_static_tuple_element: proto 4 3 frame_dig -4 // tuple head frame_dig -1 // element @@ -303,7 +303,7 @@ process_static_tuple_element: frame_dig -2 // head offset retsub -process_dynamic_tuple_element: +*process_dynamic_tuple_element: proto 4 3 frame_dig -4 // tuple head frame_dig -2 // head offset @@ -327,22 +327,22 @@ process_dynamic_tuple_element: frame_dig -2 // head offset retsub -update_dynamic_head: +*update_dynamic_head: proto 2 0 frame_dig -2 // length difference load 255 // full array frame_dig -1 // dynamic array offset extract_uint16 // extract dynamic array offset load 249 // subtract head difference - bz subtract_head_difference + bz *subtract_head_difference + // add difference to offset - b end_calc_new_head + b *end_calc_new_head -subtract_head_difference: +*subtract_head_difference: swap - // subtract difference from offet -end_calc_new_head: +*end_calc_new_head: itob // convert to bytes extract 6 2 // convert to uint16 load 255 // full array @@ -353,27 +353,27 @@ end_calc_new_head: store 255 // full array retsub -get_length_difference: +*get_length_difference: load 252 // new element len // length of new element load 253 // element length < - bnz swapped_difference + bnz *swapped_difference load 252 // new element len // length of new element load 253 // element length int 1 store 249 // subtract head difference - b get_difference + b *get_difference -swapped_difference: +*swapped_difference: load 253 // element length load 252 // new element len // length of new element int 0 store 249 // subtract head difference -get_difference: +*get_difference: - // get length difference store 250 // length difference retsub \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestUpdateStringInTuple.arc32.json b/tests/contracts/artifacts/ABITestUpdateStringInTuple.arc32.json index 9e43c43ad..5b0e6f270 100644 --- a/tests/contracts/artifacts/ABITestUpdateStringInTuple.arc32.json +++ b/tests/contracts/artifacts/ABITestUpdateStringInTuple.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyB1cGRhdGVTdHJpbmdJblR1cGxlKCkodWludDgsdWludDE2W10sc3RyaW5nLHVpbnQxNltdLHVpbnQ4W10pCmFiaV9yb3V0ZV91cGRhdGVTdHJpbmdJblR1cGxlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHVwZGF0ZVN0cmluZ0luVHVwbGUoKSh1aW50OCx1aW50MTZbXSxzdHJpbmcsdWludDE2W10sdWludDhbXSkKCWNhbGxzdWIgdXBkYXRlU3RyaW5nSW5UdXBsZQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHVwZGF0ZVN0cmluZ0luVHVwbGUoKTogW3VpbnQ8OD4sIHVpbnQxNltdLCBzdHJpbmcsIHVpbnQxNltdLCB1aW50PDg+W11dCnVwZGF0ZVN0cmluZ0luVHVwbGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1NjAKCS8vIGE6IFt1aW50PDg+LCB1aW50MTZbXSwgc3RyaW5nLCB1aW50MTZbXSwgdWludDw4PltdXSA9IFs5LCBbOF0sICdIaT8nLCBbNl0sIFs1XV0KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJYnl0ZSAweDAwMDkgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJYnl0ZSAweDA5CgljYWxsc3ViIHByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDAxMDAwOAoJY2FsbHN1YiBwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDM0ODY5M2YKCWNhbGxzdWIgcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDAxMDAwNgoJY2FsbHN1YiBwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDEwNQoJY2FsbHN1YiBwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNltdLCBzdHJpbmcsIHVpbnQxNltdLCB1aW50PDg+W11dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjU2MgoJLy8gYVswXSA9IDk5IGFzIHVpbnQ8OD4KCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50PDg+LCB1aW50MTZbXSwgc3RyaW5nLCB1aW50MTZbXSwgdWludDw4PltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWJ5dGUgMHg2MwoJcmVwbGFjZTIgMAoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50PDg+LCB1aW50MTZbXSwgc3RyaW5nLCB1aW50MTZbXSwgdWludDw4PltdXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1NjMKCS8vIGFbMV0gPSBbMTAsIDExXQoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNltdLCBzdHJpbmcsIHVpbnQxNltdLCB1aW50PDg+W11dCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDEKCWR1cAoJc3RvcmUgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXVuY292ZXIgMgoJZXh0cmFjdF91aW50MTYKCWR1cAoJc3RvcmUgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50IDIgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCXN0b3JlIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDAKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCXN1YnN0cmluZzMKCWJ5dGUgMHgwMDAyMDAwYTAwMGIKCWR1cAoJc3RvcmUgMjUyIC8vIG5ldyBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJKyAvLyBnZXQgZW5kIG9mIEVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxlbgoJc3Vic3RyaW5nMwoJY29uY2F0Cgljb25jYXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CgljYWxsc3ViIGdldF9sZW5ndGhfZGlmZmVyZW5jZQoJbG9hZCAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWludCAyCgkrIC8vIGhlYWQgb2ZzZXQKCWNhbGxzdWIgdXBkYXRlX2R5bmFtaWNfaGVhZAoJbG9hZCAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWludCA0CgkrIC8vIGhlYWQgb2ZzZXQKCWNhbGxzdWIgdXBkYXRlX2R5bmFtaWNfaGVhZAoJbG9hZCAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWludCA2CgkrIC8vIGhlYWQgb2ZzZXQKCWNhbGxzdWIgdXBkYXRlX2R5bmFtaWNfaGVhZAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50PDg+LCB1aW50MTZbXSwgc3RyaW5nLCB1aW50MTZbXSwgdWludDw4PltdXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1NjQKCS8vIGFbMl0gPSAnSGVsbG8gV29ybGQhJwoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNltdLCBzdHJpbmcsIHVpbnQxNltdLCB1aW50PDg+W11dCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDMKCWR1cAoJc3RvcmUgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXVuY292ZXIgMgoJZXh0cmFjdF91aW50MTYKCWR1cAoJc3RvcmUgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50IDEgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCXN0b3JlIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDAKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCXN1YnN0cmluZzMKCWJ5dGUgMHgwMDBjNDg2NTZjNmM2ZjIwNTc2ZjcyNmM2NDIxCglkdXAKCXN0b3JlIDI1MiAvLyBuZXcgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCSsgLy8gZ2V0IGVuZCBvZiBFbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglsZW4KCXN1YnN0cmluZzMKCWNvbmNhdAoJY29uY2F0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJY2FsbHN1YiBnZXRfbGVuZ3RoX2RpZmZlcmVuY2UKCWxvYWQgMjUwIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglsb2FkIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0CglpbnQgMgoJKyAvLyBoZWFkIG9mc2V0CgljYWxsc3ViIHVwZGF0ZV9keW5hbWljX2hlYWQKCWxvYWQgMjUwIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglsb2FkIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0CglpbnQgNAoJKyAvLyBoZWFkIG9mc2V0CgljYWxsc3ViIHVwZGF0ZV9keW5hbWljX2hlYWQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHN0cmluZywgdWludDE2W10sIHVpbnQ8OD5bXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTY1CgkvLyBhWzNdID0gWzE0LCAxNV0KCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50PDg+LCB1aW50MTZbXSwgc3RyaW5nLCB1aW50MTZbXSwgdWludDw4PltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCA1CglkdXAKCXN0b3JlIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAKCXN0b3JlIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCAyIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglzdG9yZSAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAwCglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglzdWJzdHJpbmczCglieXRlIDB4MDAwMjAwMGUwMDBmCglkdXAKCXN0b3JlIDI1MiAvLyBuZXcgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCSsgLy8gZ2V0IGVuZCBvZiBFbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglsZW4KCXN1YnN0cmluZzMKCWNvbmNhdAoJY29uY2F0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJY2FsbHN1YiBnZXRfbGVuZ3RoX2RpZmZlcmVuY2UKCWxvYWQgMjUwIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglsb2FkIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0CglpbnQgMgoJKyAvLyBoZWFkIG9mc2V0CgljYWxsc3ViIHVwZGF0ZV9keW5hbWljX2hlYWQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHN0cmluZywgdWludDE2W10sIHVpbnQ8OD5bXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTY2CgkvLyBhWzRdID0gWzE2LCAxN10KCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50PDg+LCB1aW50MTZbXSwgc3RyaW5nLCB1aW50MTZbXSwgdWludDw4PltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCA3CglkdXAKCXN0b3JlIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAKCXN0b3JlIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCAxIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglzdG9yZSAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAwCglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglzdWJzdHJpbmczCglieXRlIDB4MDAwMjEwMTEKCWR1cAoJc3RvcmUgMjUyIC8vIG5ldyBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJKyAvLyBnZXQgZW5kIG9mIEVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxlbgoJc3Vic3RyaW5nMwoJY29uY2F0Cgljb25jYXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CgljYWxsc3ViIGdldF9sZW5ndGhfZGlmZmVyZW5jZQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50PDg+LCB1aW50MTZbXSwgc3RyaW5nLCB1aW50MTZbXSwgdWludDw4PltdXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1NjgKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNltdLCBzdHJpbmcsIHVpbnQxNltdLCB1aW50PDg+W11dCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgInVwZGF0ZVN0cmluZ0luVHVwbGUoKSh1aW50OCx1aW50MTZbXSxzdHJpbmcsdWludDE2W10sdWludDhbXSkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfdXBkYXRlU3RyaW5nSW5UdXBsZQoJZXJyCgpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWNvbmNhdAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgp1cGRhdGVfZHluYW1pY19oZWFkOgoJcHJvdG8gMiAwCglmcmFtZV9kaWcgLTIgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2RpZyAtMSAvLyBkeW5hbWljIGFycmF5IG9mZnNldAoJZXh0cmFjdF91aW50MTYgLy8gZXh0cmFjdCBkeW5hbWljIGFycmF5IG9mZnNldAoJbG9hZCAyNDkgLy8gc3VidHJhY3QgaGVhZCBkaWZmZXJlbmNlCglieiBzdWJ0cmFjdF9oZWFkX2RpZmZlcmVuY2UKCSsgLy8gYWRkIGRpZmZlcmVuY2UgdG8gb2Zmc2V0CgliIGVuZF9jYWxjX25ld19oZWFkCgpzdWJ0cmFjdF9oZWFkX2RpZmZlcmVuY2U6Cglzd2FwCgktIC8vIHN1YnRyYWN0IGRpZmZlcmVuY2UgZnJvbSBvZmZldAoKZW5kX2NhbGNfbmV3X2hlYWQ6CglpdG9iIC8vIGNvbnZlcnQgdG8gYnl0ZXMKCWV4dHJhY3QgNiAyIC8vIGNvbnZlcnQgdG8gdWludDE2Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglmcmFtZV9kaWcgLTEgLy8gb2Zmc2V0Cglzd2FwCglyZXBsYWNlMyAvLyB1cGRhdGUgb2Zmc2V0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJcmV0c3ViCgpnZXRfbGVuZ3RoX2RpZmZlcmVuY2U6Cglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCTwKCWJueiBzd2FwcGVkX2RpZmZlcmVuY2UKCWxvYWQgMjUyIC8vIG5ldyBlbGVtZW50CglsZW4gLy8gbGVuZ3RoIG9mIG5ldyBlbGVtZW50Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJaW50IDEKCXN0b3JlIDI0OSAvLyBzdWJ0cmFjdCBoZWFkIGRpZmZlcmVuY2UKCWIgZ2V0X2RpZmZlcmVuY2UKCnN3YXBwZWRfZGlmZmVyZW5jZToKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJaW50IDAKCXN0b3JlIDI0OSAvLyBzdWJ0cmFjdCBoZWFkIGRpZmZlcmVuY2UKCmdldF9kaWZmZXJlbmNlOgoJLSAvLyBnZXQgbGVuZ3RoIGRpZmZlcmVuY2UKCXN0b3JlIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJcmV0c3Vi", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyB1cGRhdGVTdHJpbmdJblR1cGxlKCkodWludDgsdWludDE2W10sc3RyaW5nLHVpbnQxNltdLHVpbnQ4W10pCiphYmlfcm91dGVfdXBkYXRlU3RyaW5nSW5UdXBsZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSB1cGRhdGVTdHJpbmdJblR1cGxlKCkodWludDgsdWludDE2W10sc3RyaW5nLHVpbnQxNltdLHVpbnQ4W10pCgljYWxsc3ViIHVwZGF0ZVN0cmluZ0luVHVwbGUKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1cGRhdGVTdHJpbmdJblR1cGxlKCk6IFt1aW50PDg+LCB1aW50MTZbXSwgc3RyaW5nLCB1aW50MTZbXSwgdWludDw4PltdXQp1cGRhdGVTdHJpbmdJblR1cGxlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTYwCgkvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHN0cmluZywgdWludDE2W10sIHVpbnQ8OD5bXV0gPSBbOSwgWzhdLCAnSGk/JywgWzZdLCBbNV1dCglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDA5IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCWJ5dGUgMHgwOQoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDEwMDA4CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDM0ODY5M2YKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMTAwMDYKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMTA1CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNltdLCBzdHJpbmcsIHVpbnQxNltdLCB1aW50PDg+W11dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjU2MgoJLy8gYVswXSA9IDk5IGFzIHVpbnQ8OD4KCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50PDg+LCB1aW50MTZbXSwgc3RyaW5nLCB1aW50MTZbXSwgdWludDw4PltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWJ5dGUgMHg2MwoJcmVwbGFjZTIgMAoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50PDg+LCB1aW50MTZbXSwgc3RyaW5nLCB1aW50MTZbXSwgdWludDw4PltdXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1NjMKCS8vIGFbMV0gPSBbMTAsIDExXQoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNltdLCBzdHJpbmcsIHVpbnQxNltdLCB1aW50PDg+W11dCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDEKCWR1cAoJc3RvcmUgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXVuY292ZXIgMgoJZXh0cmFjdF91aW50MTYKCWR1cAoJc3RvcmUgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50IDIgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCXN0b3JlIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDAKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCXN1YnN0cmluZzMKCWJ5dGUgMHgwMDAyMDAwYTAwMGIKCWR1cAoJc3RvcmUgMjUyIC8vIG5ldyBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJKyAvLyBnZXQgZW5kIG9mIEVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxlbgoJc3Vic3RyaW5nMwoJY29uY2F0Cgljb25jYXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CgljYWxsc3ViICpnZXRfbGVuZ3RoX2RpZmZlcmVuY2UKCWxvYWQgMjUwIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglsb2FkIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0CglpbnQgMgoJKyAvLyBoZWFkIG9mc2V0CgljYWxsc3ViICp1cGRhdGVfZHluYW1pY19oZWFkCglsb2FkIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJbG9hZCAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJaW50IDQKCSsgLy8gaGVhZCBvZnNldAoJY2FsbHN1YiAqdXBkYXRlX2R5bmFtaWNfaGVhZAoJbG9hZCAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWludCA2CgkrIC8vIGhlYWQgb2ZzZXQKCWNhbGxzdWIgKnVwZGF0ZV9keW5hbWljX2hlYWQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHN0cmluZywgdWludDE2W10sIHVpbnQ8OD5bXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTY0CgkvLyBhWzJdID0gJ0hlbGxvIFdvcmxkIScKCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50PDg+LCB1aW50MTZbXSwgc3RyaW5nLCB1aW50MTZbXSwgdWludDw4PltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAzCglkdXAKCXN0b3JlIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAKCXN0b3JlIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCAxIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglzdG9yZSAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAwCglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglzdWJzdHJpbmczCglieXRlIDB4MDAwYzQ4NjU2YzZjNmYyMDU3NmY3MjZjNjQyMQoJZHVwCglzdG9yZSAyNTIgLy8gbmV3IGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgkrIC8vIGdldCBlbmQgb2YgRWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbGVuCglzdWJzdHJpbmczCgljb25jYXQKCWNvbmNhdAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWNhbGxzdWIgKmdldF9sZW5ndGhfZGlmZmVyZW5jZQoJbG9hZCAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWludCAyCgkrIC8vIGhlYWQgb2ZzZXQKCWNhbGxzdWIgKnVwZGF0ZV9keW5hbWljX2hlYWQKCWxvYWQgMjUwIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglsb2FkIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0CglpbnQgNAoJKyAvLyBoZWFkIG9mc2V0CgljYWxsc3ViICp1cGRhdGVfZHluYW1pY19oZWFkCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNltdLCBzdHJpbmcsIHVpbnQxNltdLCB1aW50PDg+W11dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjU2NQoJLy8gYVszXSA9IFsxNCwgMTVdCglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHN0cmluZywgdWludDE2W10sIHVpbnQ8OD5bXV0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgNQoJZHVwCglzdG9yZSAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwCglzdG9yZSAyNTQgLy8gZWxlbWVudCBzdGFydAoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMiAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJc3RvcmUgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMAoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJc3Vic3RyaW5nMwoJYnl0ZSAweDAwMDIwMDBlMDAwZgoJZHVwCglzdG9yZSAyNTIgLy8gbmV3IGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgkrIC8vIGdldCBlbmQgb2YgRWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbGVuCglzdWJzdHJpbmczCgljb25jYXQKCWNvbmNhdAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWNhbGxzdWIgKmdldF9sZW5ndGhfZGlmZmVyZW5jZQoJbG9hZCAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWludCAyCgkrIC8vIGhlYWQgb2ZzZXQKCWNhbGxzdWIgKnVwZGF0ZV9keW5hbWljX2hlYWQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHN0cmluZywgdWludDE2W10sIHVpbnQ8OD5bXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTY2CgkvLyBhWzRdID0gWzE2LCAxN10KCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50PDg+LCB1aW50MTZbXSwgc3RyaW5nLCB1aW50MTZbXSwgdWludDw4PltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCA3CglkdXAKCXN0b3JlIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAKCXN0b3JlIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCAxIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglzdG9yZSAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAwCglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglzdWJzdHJpbmczCglieXRlIDB4MDAwMjEwMTEKCWR1cAoJc3RvcmUgMjUyIC8vIG5ldyBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJKyAvLyBnZXQgZW5kIG9mIEVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxlbgoJc3Vic3RyaW5nMwoJY29uY2F0Cgljb25jYXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CgljYWxsc3ViICpnZXRfbGVuZ3RoX2RpZmZlcmVuY2UKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHN0cmluZywgdWludDE2W10sIHVpbnQ8OD5bXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTY4CgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50PDg+LCB1aW50MTZbXSwgc3RyaW5nLCB1aW50MTZbXSwgdWludDw4PltdXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAidXBkYXRlU3RyaW5nSW5UdXBsZSgpKHVpbnQ4LHVpbnQxNltdLHN0cmluZyx1aW50MTZbXSx1aW50OFtdKSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdXBkYXRlU3RyaW5nSW5UdXBsZQoJZXJyCgoqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50Cgljb25jYXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0Cgljb25jYXQKCWZyYW1lX2J1cnkgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWR1cAoJbGVuCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWJ0b2kKCSsKCWl0b2IKCWV4dHJhY3QgNiAyCglmcmFtZV9idXJ5IC0yIC8vIGhlYWQgb2Zmc2V0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJc3dhcAoJY29uY2F0CglmcmFtZV9idXJ5IC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCip1cGRhdGVfZHluYW1pY19oZWFkOgoJcHJvdG8gMiAwCglmcmFtZV9kaWcgLTIgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2RpZyAtMSAvLyBkeW5hbWljIGFycmF5IG9mZnNldAoJZXh0cmFjdF91aW50MTYgLy8gZXh0cmFjdCBkeW5hbWljIGFycmF5IG9mZnNldAoJbG9hZCAyNDkgLy8gc3VidHJhY3QgaGVhZCBkaWZmZXJlbmNlCglieiAqc3VidHJhY3RfaGVhZF9kaWZmZXJlbmNlCgkrIC8vIGFkZCBkaWZmZXJlbmNlIHRvIG9mZnNldAoJYiAqZW5kX2NhbGNfbmV3X2hlYWQKCipzdWJ0cmFjdF9oZWFkX2RpZmZlcmVuY2U6Cglzd2FwCgktIC8vIHN1YnRyYWN0IGRpZmZlcmVuY2UgZnJvbSBvZmZldAoKKmVuZF9jYWxjX25ld19oZWFkOgoJaXRvYiAvLyBjb252ZXJ0IHRvIGJ5dGVzCglleHRyYWN0IDYgMiAvLyBjb252ZXJ0IHRvIHVpbnQxNgoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZnJhbWVfZGlnIC0xIC8vIG9mZnNldAoJc3dhcAoJcmVwbGFjZTMgLy8gdXBkYXRlIG9mZnNldAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCXJldHN1YgoKKmdldF9sZW5ndGhfZGlmZmVyZW5jZToKCWxvYWQgMjUyIC8vIG5ldyBlbGVtZW50CglsZW4gLy8gbGVuZ3RoIG9mIG5ldyBlbGVtZW50Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJPAoJYm56ICpzd2FwcGVkX2RpZmZlcmVuY2UKCWxvYWQgMjUyIC8vIG5ldyBlbGVtZW50CglsZW4gLy8gbGVuZ3RoIG9mIG5ldyBlbGVtZW50Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJaW50IDEKCXN0b3JlIDI0OSAvLyBzdWJ0cmFjdCBoZWFkIGRpZmZlcmVuY2UKCWIgKmdldF9kaWZmZXJlbmNlCgoqc3dhcHBlZF9kaWZmZXJlbmNlOgoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjUyIC8vIG5ldyBlbGVtZW50CglsZW4gLy8gbGVuZ3RoIG9mIG5ldyBlbGVtZW50CglpbnQgMAoJc3RvcmUgMjQ5IC8vIHN1YnRyYWN0IGhlYWQgZGlmZmVyZW5jZQoKKmdldF9kaWZmZXJlbmNlOgoJLSAvLyBnZXQgbGVuZ3RoIGRpZmZlcmVuY2UKCXN0b3JlIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJcmV0c3Vi", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestUpdateTupleWithOnlyDynamicTypes.approval.teal b/tests/contracts/artifacts/ABITestUpdateTupleWithOnlyDynamicTypes.approval.teal index f8dbe7a9c..f29945de2 100644 --- a/tests/contracts/artifacts/ABITestUpdateTupleWithOnlyDynamicTypes.approval.teal +++ b/tests/contracts/artifacts/ABITestUpdateTupleWithOnlyDynamicTypes.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // updateTupleWithOnlyDynamicTypes()(uint16[],uint16[],uint16[]) -abi_route_updateTupleWithOnlyDynamicTypes: +*abi_route_updateTupleWithOnlyDynamicTypes: // The ABI return prefix byte 0x151f7c75 @@ -46,11 +46,11 @@ updateTupleWithOnlyDynamicTypes: byte 0x // initial tail byte 0x0006 // initial head offset byte 0x00010001 - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element byte 0x00010002 - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element byte 0x00010003 - callsub process_dynamic_tuple_element + callsub *process_dynamic_tuple_element pop // pop head offset concat // concat head and tail frame_bury 0 // a: [uint16[], uint16[], uint16[]] @@ -94,17 +94,17 @@ updateTupleWithOnlyDynamicTypes: concat concat store 255 // full array - callsub get_length_difference + callsub *get_length_difference load 250 // length difference load 251 // element head offset int 2 + // head ofset - callsub update_dynamic_head + callsub *update_dynamic_head load 250 // length difference load 251 // element head offset int 4 + // head ofset - callsub update_dynamic_head + callsub *update_dynamic_head load 255 // full array frame_bury 0 // a: [uint16[], uint16[], uint16[]] @@ -147,12 +147,12 @@ updateTupleWithOnlyDynamicTypes: concat concat store 255 // full array - callsub get_length_difference + callsub *get_length_difference load 250 // length difference load 251 // element head offset int 2 + // head ofset - callsub update_dynamic_head + callsub *update_dynamic_head load 255 // full array frame_bury 0 // a: [uint16[], uint16[], uint16[]] @@ -195,7 +195,7 @@ updateTupleWithOnlyDynamicTypes: concat concat store 255 // full array - callsub get_length_difference + callsub *get_length_difference load 255 // full array frame_bury 0 // a: [uint16[], uint16[], uint16[]] @@ -207,23 +207,23 @@ updateTupleWithOnlyDynamicTypes: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "updateTupleWithOnlyDynamicTypes()(uint16[],uint16[],uint16[])" txna ApplicationArgs 0 - match abi_route_updateTupleWithOnlyDynamicTypes + match *abi_route_updateTupleWithOnlyDynamicTypes err -process_dynamic_tuple_element: +*process_dynamic_tuple_element: proto 4 3 frame_dig -4 // tuple head frame_dig -2 // head offset @@ -247,22 +247,22 @@ process_dynamic_tuple_element: frame_dig -2 // head offset retsub -update_dynamic_head: +*update_dynamic_head: proto 2 0 frame_dig -2 // length difference load 255 // full array frame_dig -1 // dynamic array offset extract_uint16 // extract dynamic array offset load 249 // subtract head difference - bz subtract_head_difference + bz *subtract_head_difference + // add difference to offset - b end_calc_new_head + b *end_calc_new_head -subtract_head_difference: +*subtract_head_difference: swap - // subtract difference from offet -end_calc_new_head: +*end_calc_new_head: itob // convert to bytes extract 6 2 // convert to uint16 load 255 // full array @@ -273,27 +273,27 @@ end_calc_new_head: store 255 // full array retsub -get_length_difference: +*get_length_difference: load 252 // new element len // length of new element load 253 // element length < - bnz swapped_difference + bnz *swapped_difference load 252 // new element len // length of new element load 253 // element length int 1 store 249 // subtract head difference - b get_difference + b *get_difference -swapped_difference: +*swapped_difference: load 253 // element length load 252 // new element len // length of new element int 0 store 249 // subtract head difference -get_difference: +*get_difference: - // get length difference store 250 // length difference retsub \ No newline at end of file diff --git a/tests/contracts/artifacts/ABITestUpdateTupleWithOnlyDynamicTypes.arc32.json b/tests/contracts/artifacts/ABITestUpdateTupleWithOnlyDynamicTypes.arc32.json index eb5c29db4..367cfed1c 100644 --- a/tests/contracts/artifacts/ABITestUpdateTupleWithOnlyDynamicTypes.arc32.json +++ b/tests/contracts/artifacts/ABITestUpdateTupleWithOnlyDynamicTypes.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyB1cGRhdGVUdXBsZVdpdGhPbmx5RHluYW1pY1R5cGVzKCkodWludDE2W10sdWludDE2W10sdWludDE2W10pCmFiaV9yb3V0ZV91cGRhdGVUdXBsZVdpdGhPbmx5RHluYW1pY1R5cGVzOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHVwZGF0ZVR1cGxlV2l0aE9ubHlEeW5hbWljVHlwZXMoKSh1aW50MTZbXSx1aW50MTZbXSx1aW50MTZbXSkKCWNhbGxzdWIgdXBkYXRlVHVwbGVXaXRoT25seUR5bmFtaWNUeXBlcwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHVwZGF0ZVR1cGxlV2l0aE9ubHlEeW5hbWljVHlwZXMoKTogW3VpbnQxNltdLCB1aW50MTZbXSwgdWludDE2W11dCnVwZGF0ZVR1cGxlV2l0aE9ubHlEeW5hbWljVHlwZXM6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1NzQKCS8vIGE6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXSA9IFtbMV0sIFsyXSwgWzNdXQoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglieXRlIDB4MDAwNiAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0CglieXRlIDB4MDAwMTAwMDEKCWNhbGxzdWIgcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDAxMDAwMgoJY2FsbHN1YiBwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDEwMDAzCgljYWxsc3ViIHByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDE2W10sIHVpbnQxNltdLCB1aW50MTZbXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTc2CgkvLyBhWzBdID0gWzQsIDVdCglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDE2W10sIHVpbnQxNltdLCB1aW50MTZbXV0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMAoJZHVwCglzdG9yZSAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwCglzdG9yZSAyNTQgLy8gZWxlbWVudCBzdGFydAoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMiAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJc3RvcmUgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMAoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJc3Vic3RyaW5nMwoJYnl0ZSAweDAwMDIwMDA0MDAwNQoJZHVwCglzdG9yZSAyNTIgLy8gbmV3IGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgkrIC8vIGdldCBlbmQgb2YgRWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbGVuCglzdWJzdHJpbmczCgljb25jYXQKCWNvbmNhdAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWNhbGxzdWIgZ2V0X2xlbmd0aF9kaWZmZXJlbmNlCglsb2FkIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJbG9hZCAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJaW50IDIKCSsgLy8gaGVhZCBvZnNldAoJY2FsbHN1YiB1cGRhdGVfZHluYW1pY19oZWFkCglsb2FkIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJbG9hZCAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJaW50IDQKCSsgLy8gaGVhZCBvZnNldAoJY2FsbHN1YiB1cGRhdGVfZHluYW1pY19oZWFkCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQxNltdLCB1aW50MTZbXSwgdWludDE2W11dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjU3NwoJLy8gYVsxXSA9IFs2LCA3XQoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQxNltdLCB1aW50MTZbXSwgdWludDE2W11dCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDIKCWR1cAoJc3RvcmUgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXVuY292ZXIgMgoJZXh0cmFjdF91aW50MTYKCWR1cAoJc3RvcmUgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50IDIgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCXN0b3JlIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDAKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCXN1YnN0cmluZzMKCWJ5dGUgMHgwMDAyMDAwNjAwMDcKCWR1cAoJc3RvcmUgMjUyIC8vIG5ldyBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJKyAvLyBnZXQgZW5kIG9mIEVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxlbgoJc3Vic3RyaW5nMwoJY29uY2F0Cgljb25jYXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CgljYWxsc3ViIGdldF9sZW5ndGhfZGlmZmVyZW5jZQoJbG9hZCAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWludCAyCgkrIC8vIGhlYWQgb2ZzZXQKCWNhbGxzdWIgdXBkYXRlX2R5bmFtaWNfaGVhZAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1NzgKCS8vIGFbMl0gPSBbOCwgOV0KCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCA0CglkdXAKCXN0b3JlIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAKCXN0b3JlIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCAyIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglzdG9yZSAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAwCglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglzdWJzdHJpbmczCglieXRlIDB4MDAwMjAwMDgwMDA5CglkdXAKCXN0b3JlIDI1MiAvLyBuZXcgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCSsgLy8gZ2V0IGVuZCBvZiBFbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglsZW4KCXN1YnN0cmluZzMKCWNvbmNhdAoJY29uY2F0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJY2FsbHN1YiBnZXRfbGVuZ3RoX2RpZmZlcmVuY2UKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDE2W10sIHVpbnQxNltdLCB1aW50MTZbXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTgwCgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJ1cGRhdGVUdXBsZVdpdGhPbmx5RHluYW1pY1R5cGVzKCkodWludDE2W10sdWludDE2W10sdWludDE2W10pIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX3VwZGF0ZVR1cGxlV2l0aE9ubHlEeW5hbWljVHlwZXMKCWVycgoKcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJZHVwCglsZW4KCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJYnRvaQoJKwoJaXRvYgoJZXh0cmFjdCA2IDIKCWZyYW1lX2J1cnkgLTIgLy8gaGVhZCBvZmZzZXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglzd2FwCgljb25jYXQKCWZyYW1lX2J1cnkgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKdXBkYXRlX2R5bmFtaWNfaGVhZDoKCXByb3RvIDIgMAoJZnJhbWVfZGlnIC0yIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglmcmFtZV9kaWcgLTEgLy8gZHluYW1pYyBhcnJheSBvZmZzZXQKCWV4dHJhY3RfdWludDE2IC8vIGV4dHJhY3QgZHluYW1pYyBhcnJheSBvZmZzZXQKCWxvYWQgMjQ5IC8vIHN1YnRyYWN0IGhlYWQgZGlmZmVyZW5jZQoJYnogc3VidHJhY3RfaGVhZF9kaWZmZXJlbmNlCgkrIC8vIGFkZCBkaWZmZXJlbmNlIHRvIG9mZnNldAoJYiBlbmRfY2FsY19uZXdfaGVhZAoKc3VidHJhY3RfaGVhZF9kaWZmZXJlbmNlOgoJc3dhcAoJLSAvLyBzdWJ0cmFjdCBkaWZmZXJlbmNlIGZyb20gb2ZmZXQKCmVuZF9jYWxjX25ld19oZWFkOgoJaXRvYiAvLyBjb252ZXJ0IHRvIGJ5dGVzCglleHRyYWN0IDYgMiAvLyBjb252ZXJ0IHRvIHVpbnQxNgoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZnJhbWVfZGlnIC0xIC8vIG9mZnNldAoJc3dhcAoJcmVwbGFjZTMgLy8gdXBkYXRlIG9mZnNldAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCXJldHN1YgoKZ2V0X2xlbmd0aF9kaWZmZXJlbmNlOgoJbG9hZCAyNTIgLy8gbmV3IGVsZW1lbnQKCWxlbiAvLyBsZW5ndGggb2YgbmV3IGVsZW1lbnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgk8Cglibnogc3dhcHBlZF9kaWZmZXJlbmNlCglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWludCAxCglzdG9yZSAyNDkgLy8gc3VidHJhY3QgaGVhZCBkaWZmZXJlbmNlCgliIGdldF9kaWZmZXJlbmNlCgpzd2FwcGVkX2RpZmZlcmVuY2U6Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTIgLy8gbmV3IGVsZW1lbnQKCWxlbiAvLyBsZW5ndGggb2YgbmV3IGVsZW1lbnQKCWludCAwCglzdG9yZSAyNDkgLy8gc3VidHJhY3QgaGVhZCBkaWZmZXJlbmNlCgpnZXRfZGlmZmVyZW5jZToKCS0gLy8gZ2V0IGxlbmd0aCBkaWZmZXJlbmNlCglzdG9yZSAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCXJldHN1Yg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyB1cGRhdGVUdXBsZVdpdGhPbmx5RHluYW1pY1R5cGVzKCkodWludDE2W10sdWludDE2W10sdWludDE2W10pCiphYmlfcm91dGVfdXBkYXRlVHVwbGVXaXRoT25seUR5bmFtaWNUeXBlczoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSB1cGRhdGVUdXBsZVdpdGhPbmx5RHluYW1pY1R5cGVzKCkodWludDE2W10sdWludDE2W10sdWludDE2W10pCgljYWxsc3ViIHVwZGF0ZVR1cGxlV2l0aE9ubHlEeW5hbWljVHlwZXMKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1cGRhdGVUdXBsZVdpdGhPbmx5RHluYW1pY1R5cGVzKCk6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQp1cGRhdGVUdXBsZVdpdGhPbmx5RHluYW1pY1R5cGVzOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTc0CgkvLyBhOiBbdWludDE2W10sIHVpbnQxNltdLCB1aW50MTZbXV0gPSBbWzFdLCBbMl0sIFszXV0KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJYnl0ZSAweDAwMDYgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJYnl0ZSAweDAwMDEwMDAxCgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDEwMDAyCgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDEwMDAzCgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQxNltdLCB1aW50MTZbXSwgdWludDE2W11dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjU3NgoJLy8gYVswXSA9IFs0LCA1XQoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQxNltdLCB1aW50MTZbXSwgdWludDE2W11dCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDAKCWR1cAoJc3RvcmUgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXVuY292ZXIgMgoJZXh0cmFjdF91aW50MTYKCWR1cAoJc3RvcmUgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50IDIgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCXN0b3JlIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDAKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCXN1YnN0cmluZzMKCWJ5dGUgMHgwMDAyMDAwNDAwMDUKCWR1cAoJc3RvcmUgMjUyIC8vIG5ldyBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJKyAvLyBnZXQgZW5kIG9mIEVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxlbgoJc3Vic3RyaW5nMwoJY29uY2F0Cgljb25jYXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CgljYWxsc3ViICpnZXRfbGVuZ3RoX2RpZmZlcmVuY2UKCWxvYWQgMjUwIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglsb2FkIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0CglpbnQgMgoJKyAvLyBoZWFkIG9mc2V0CgljYWxsc3ViICp1cGRhdGVfZHluYW1pY19oZWFkCglsb2FkIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJbG9hZCAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJaW50IDQKCSsgLy8gaGVhZCBvZnNldAoJY2FsbHN1YiAqdXBkYXRlX2R5bmFtaWNfaGVhZAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1NzcKCS8vIGFbMV0gPSBbNiwgN10KCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAyCglkdXAKCXN0b3JlIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAKCXN0b3JlIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCAyIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglzdG9yZSAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAwCglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglzdWJzdHJpbmczCglieXRlIDB4MDAwMjAwMDYwMDA3CglkdXAKCXN0b3JlIDI1MiAvLyBuZXcgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCSsgLy8gZ2V0IGVuZCBvZiBFbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglsZW4KCXN1YnN0cmluZzMKCWNvbmNhdAoJY29uY2F0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJY2FsbHN1YiAqZ2V0X2xlbmd0aF9kaWZmZXJlbmNlCglsb2FkIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJbG9hZCAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJaW50IDIKCSsgLy8gaGVhZCBvZnNldAoJY2FsbHN1YiAqdXBkYXRlX2R5bmFtaWNfaGVhZAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1NzgKCS8vIGFbMl0gPSBbOCwgOV0KCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCA0CglkdXAKCXN0b3JlIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAKCXN0b3JlIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCAyIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglzdG9yZSAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAwCglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglzdWJzdHJpbmczCglieXRlIDB4MDAwMjAwMDgwMDA5CglkdXAKCXN0b3JlIDI1MiAvLyBuZXcgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCSsgLy8gZ2V0IGVuZCBvZiBFbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglsZW4KCXN1YnN0cmluZzMKCWNvbmNhdAoJY29uY2F0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJY2FsbHN1YiAqZ2V0X2xlbmd0aF9kaWZmZXJlbmNlCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQxNltdLCB1aW50MTZbXSwgdWludDE2W11dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjU4MAoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDE2W10sIHVpbnQxNltdLCB1aW50MTZbXV0KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInVwZGF0ZVR1cGxlV2l0aE9ubHlEeW5hbWljVHlwZXMoKSh1aW50MTZbXSx1aW50MTZbXSx1aW50MTZbXSkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3VwZGF0ZVR1cGxlV2l0aE9ubHlEeW5hbWljVHlwZXMKCWVycgoKKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0Cgljb25jYXQKCWZyYW1lX2J1cnkgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWR1cAoJbGVuCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWJ0b2kKCSsKCWl0b2IKCWV4dHJhY3QgNiAyCglmcmFtZV9idXJ5IC0yIC8vIGhlYWQgb2Zmc2V0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJc3dhcAoJY29uY2F0CglmcmFtZV9idXJ5IC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCip1cGRhdGVfZHluYW1pY19oZWFkOgoJcHJvdG8gMiAwCglmcmFtZV9kaWcgLTIgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2RpZyAtMSAvLyBkeW5hbWljIGFycmF5IG9mZnNldAoJZXh0cmFjdF91aW50MTYgLy8gZXh0cmFjdCBkeW5hbWljIGFycmF5IG9mZnNldAoJbG9hZCAyNDkgLy8gc3VidHJhY3QgaGVhZCBkaWZmZXJlbmNlCglieiAqc3VidHJhY3RfaGVhZF9kaWZmZXJlbmNlCgkrIC8vIGFkZCBkaWZmZXJlbmNlIHRvIG9mZnNldAoJYiAqZW5kX2NhbGNfbmV3X2hlYWQKCipzdWJ0cmFjdF9oZWFkX2RpZmZlcmVuY2U6Cglzd2FwCgktIC8vIHN1YnRyYWN0IGRpZmZlcmVuY2UgZnJvbSBvZmZldAoKKmVuZF9jYWxjX25ld19oZWFkOgoJaXRvYiAvLyBjb252ZXJ0IHRvIGJ5dGVzCglleHRyYWN0IDYgMiAvLyBjb252ZXJ0IHRvIHVpbnQxNgoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZnJhbWVfZGlnIC0xIC8vIG9mZnNldAoJc3dhcAoJcmVwbGFjZTMgLy8gdXBkYXRlIG9mZnNldAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCXJldHN1YgoKKmdldF9sZW5ndGhfZGlmZmVyZW5jZToKCWxvYWQgMjUyIC8vIG5ldyBlbGVtZW50CglsZW4gLy8gbGVuZ3RoIG9mIG5ldyBlbGVtZW50Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJPAoJYm56ICpzd2FwcGVkX2RpZmZlcmVuY2UKCWxvYWQgMjUyIC8vIG5ldyBlbGVtZW50CglsZW4gLy8gbGVuZ3RoIG9mIG5ldyBlbGVtZW50Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJaW50IDEKCXN0b3JlIDI0OSAvLyBzdWJ0cmFjdCBoZWFkIGRpZmZlcmVuY2UKCWIgKmdldF9kaWZmZXJlbmNlCgoqc3dhcHBlZF9kaWZmZXJlbmNlOgoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjUyIC8vIG5ldyBlbGVtZW50CglsZW4gLy8gbGVuZ3RoIG9mIG5ldyBlbGVtZW50CglpbnQgMAoJc3RvcmUgMjQ5IC8vIHN1YnRyYWN0IGhlYWQgZGlmZmVyZW5jZQoKKmdldF9kaWZmZXJlbmNlOgoJLSAvLyBnZXQgbGVuZ3RoIGRpZmZlcmVuY2UKCXN0b3JlIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJcmV0c3Vi", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/AD.approval.teal b/tests/contracts/artifacts/AD.approval.teal index 5e625c507..84cf38aef 100644 --- a/tests/contracts/artifacts/AD.approval.teal +++ b/tests/contracts/artifacts/AD.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // a()void -abi_route_a: +*abi_route_a: // execute a()void callsub a int 1 @@ -40,7 +40,7 @@ a: retsub // d()void -abi_route_d: +*abi_route_d: // execute d()void callsub d int 1 @@ -58,7 +58,7 @@ d: retsub // ad()void -abi_route_ad: +*abi_route_ad: // execute ad()void callsub ad int 1 @@ -85,20 +85,20 @@ ad: assert retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "a()void" method "d()void" method "ad()void" txna ApplicationArgs 0 - match abi_route_a abi_route_d abi_route_ad + match *abi_route_a *abi_route_d *abi_route_ad err \ No newline at end of file diff --git a/tests/contracts/artifacts/AD.arc32.json b/tests/contracts/artifacts/AD.arc32.json index 88b2f6286..590121faf 100644 --- a/tests/contracts/artifacts/AD.arc32.json +++ b/tests/contracts/artifacts/AD.arc32.json @@ -58,7 +58,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBhKCl2b2lkCmFiaV9yb3V0ZV9hOgoJLy8gZXhlY3V0ZSBhKCl2b2lkCgljYWxsc3ViIGEKCWludCAxCglyZXR1cm4KCi8vIGEoKTogdm9pZAphOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6MTYKCS8vIHRoaXMuYUtleS52YWx1ZSA9IDEzMzcKCWJ5dGUgMHg2MSAvLyAiYSIKCWludCAxMzM3CglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBkKCl2b2lkCmFiaV9yb3V0ZV9kOgoJLy8gZXhlY3V0ZSBkKCl2b2lkCgljYWxsc3ViIGQKCWludCAxCglyZXR1cm4KCi8vIGQoKTogdm9pZApkOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6NDAKCS8vIHRoaXMuZEtleS52YWx1ZSA9IDQyCglieXRlIDB4NjQgLy8gImQiCglpbnQgNDIKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIGFkKCl2b2lkCmFiaV9yb3V0ZV9hZDoKCS8vIGV4ZWN1dGUgYWQoKXZvaWQKCWNhbGxzdWIgYWQKCWludCAxCglyZXR1cm4KCi8vIGFkKCk6IHZvaWQKYWQ6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo0NgoJLy8gYXNzZXJ0KHRoaXMuYUtleS52YWx1ZSA9PT0gMTMzNykKCWJ5dGUgMHg2MSAvLyAiYSIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMTMzNwoJPT0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjQ3CgkvLyBhc3NlcnQodGhpcy5kS2V5LnZhbHVlID09PSA0MikKCWJ5dGUgMHg2NCAvLyAiZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgNDIKCT09Cglhc3NlcnQKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAiYSgpdm9pZCIKCW1ldGhvZCAiZCgpdm9pZCIKCW1ldGhvZCAiYWQoKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfYSBhYmlfcm91dGVfZCBhYmlfcm91dGVfYWQKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBhKCl2b2lkCiphYmlfcm91dGVfYToKCS8vIGV4ZWN1dGUgYSgpdm9pZAoJY2FsbHN1YiBhCglpbnQgMQoJcmV0dXJuCgovLyBhKCk6IHZvaWQKYToKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjE2CgkvLyB0aGlzLmFLZXkudmFsdWUgPSAxMzM3CglieXRlIDB4NjEgLy8gImEiCglpbnQgMTMzNwoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gZCgpdm9pZAoqYWJpX3JvdXRlX2Q6CgkvLyBleGVjdXRlIGQoKXZvaWQKCWNhbGxzdWIgZAoJaW50IDEKCXJldHVybgoKLy8gZCgpOiB2b2lkCmQ6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo0MAoJLy8gdGhpcy5kS2V5LnZhbHVlID0gNDIKCWJ5dGUgMHg2NCAvLyAiZCIKCWludCA0MgoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gYWQoKXZvaWQKKmFiaV9yb3V0ZV9hZDoKCS8vIGV4ZWN1dGUgYWQoKXZvaWQKCWNhbGxzdWIgYWQKCWludCAxCglyZXR1cm4KCi8vIGFkKCk6IHZvaWQKYWQ6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo0NgoJLy8gYXNzZXJ0KHRoaXMuYUtleS52YWx1ZSA9PT0gMTMzNykKCWJ5dGUgMHg2MSAvLyAiYSIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMTMzNwoJPT0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjQ3CgkvLyBhc3NlcnQodGhpcy5kS2V5LnZhbHVlID09PSA0MikKCWJ5dGUgMHg2NCAvLyAiZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgNDIKCT09Cglhc3NlcnQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImEoKXZvaWQiCgltZXRob2QgImQoKXZvaWQiCgltZXRob2QgImFkKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9hICphYmlfcm91dGVfZCAqYWJpX3JvdXRlX2FkCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/AccountTest.approval.teal b/tests/contracts/artifacts/AccountTest.approval.teal index 5762e140e..0685a911f 100644 --- a/tests/contracts/artifacts/AccountTest.approval.teal +++ b/tests/contracts/artifacts/AccountTest.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // hasAsset(account)void -abi_route_hasAsset: +*abi_route_hasAsset: // a: account txna ApplicationArgs 1 btoi @@ -48,7 +48,7 @@ hasAsset: retsub // assetBalance(account)void -abi_route_assetBalance: +*abi_route_assetBalance: // a: account txna ApplicationArgs 1 btoi @@ -73,7 +73,7 @@ assetBalance: retsub // assetFrozen(account)void -abi_route_assetFrozen: +*abi_route_assetFrozen: // a: account txna ApplicationArgs 1 btoi @@ -98,7 +98,7 @@ assetFrozen: retsub // hasBalance(account)void -abi_route_hasBalance: +*abi_route_hasBalance: // a: account txna ApplicationArgs 1 btoi @@ -123,7 +123,7 @@ hasBalance: retsub // balance(account)void -abi_route_balance: +*abi_route_balance: // a: account txna ApplicationArgs 1 btoi @@ -147,7 +147,7 @@ balance: retsub // minBalance(account)void -abi_route_minBalance: +*abi_route_minBalance: // a: account txna ApplicationArgs 1 btoi @@ -171,7 +171,7 @@ minBalance: retsub // authAddr(account)void -abi_route_authAddr: +*abi_route_authAddr: // a: account txna ApplicationArgs 1 btoi @@ -195,7 +195,7 @@ authAddr: retsub // totalNumUint(account)void -abi_route_totalNumUint: +*abi_route_totalNumUint: // a: account txna ApplicationArgs 1 btoi @@ -219,7 +219,7 @@ totalNumUint: retsub // totalNumByteSlice(account)void -abi_route_totalNumByteSlice: +*abi_route_totalNumByteSlice: // a: account txna ApplicationArgs 1 btoi @@ -243,7 +243,7 @@ totalNumByteSlice: retsub // totalExtraAppPages(account)void -abi_route_totalExtraAppPages: +*abi_route_totalExtraAppPages: // a: account txna ApplicationArgs 1 btoi @@ -267,7 +267,7 @@ totalExtraAppPages: retsub // totalAppsCreated(account)void -abi_route_totalAppsCreated: +*abi_route_totalAppsCreated: // a: account txna ApplicationArgs 1 btoi @@ -291,7 +291,7 @@ totalAppsCreated: retsub // totalAppsOptedIn(account)void -abi_route_totalAppsOptedIn: +*abi_route_totalAppsOptedIn: // a: account txna ApplicationArgs 1 btoi @@ -315,7 +315,7 @@ totalAppsOptedIn: retsub // totalAssetsCreated(account)void -abi_route_totalAssetsCreated: +*abi_route_totalAssetsCreated: // a: account txna ApplicationArgs 1 btoi @@ -339,7 +339,7 @@ totalAssetsCreated: retsub // totalAssets(account)void -abi_route_totalAssets: +*abi_route_totalAssets: // a: account txna ApplicationArgs 1 btoi @@ -363,7 +363,7 @@ totalAssets: retsub // totalBoxes(account)void -abi_route_totalBoxes: +*abi_route_totalBoxes: // a: account txna ApplicationArgs 1 btoi @@ -387,7 +387,7 @@ totalBoxes: retsub // totalBoxBytes(account)void -abi_route_totalBoxBytes: +*abi_route_totalBoxBytes: // a: account txna ApplicationArgs 1 btoi @@ -410,17 +410,17 @@ totalBoxBytes: assert retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "hasAsset(account)void" method "assetBalance(account)void" method "assetFrozen(account)void" @@ -438,5 +438,5 @@ call_NoOp: method "totalBoxes(account)void" method "totalBoxBytes(account)void" txna ApplicationArgs 0 - match abi_route_hasAsset abi_route_assetBalance abi_route_assetFrozen abi_route_hasBalance abi_route_balance abi_route_minBalance abi_route_authAddr abi_route_totalNumUint abi_route_totalNumByteSlice abi_route_totalExtraAppPages abi_route_totalAppsCreated abi_route_totalAppsOptedIn abi_route_totalAssetsCreated abi_route_totalAssets abi_route_totalBoxes abi_route_totalBoxBytes + match *abi_route_hasAsset *abi_route_assetBalance *abi_route_assetFrozen *abi_route_hasBalance *abi_route_balance *abi_route_minBalance *abi_route_authAddr *abi_route_totalNumUint *abi_route_totalNumByteSlice *abi_route_totalExtraAppPages *abi_route_totalAppsCreated *abi_route_totalAppsOptedIn *abi_route_totalAssetsCreated *abi_route_totalAssets *abi_route_totalBoxes *abi_route_totalBoxBytes err \ No newline at end of file diff --git a/tests/contracts/artifacts/AccountTest.arc32.json b/tests/contracts/artifacts/AccountTest.arc32.json index 01fe1ee4c..3ce18f46e 100644 --- a/tests/contracts/artifacts/AccountTest.arc32.json +++ b/tests/contracts/artifacts/AccountTest.arc32.json @@ -114,7 +114,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBoYXNBc3NldChhY2NvdW50KXZvaWQKYWJpX3JvdXRlX2hhc0Fzc2V0OgoJLy8gYTogYWNjb3VudAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoJdHhuYXMgQWNjb3VudHMKCgkvLyBleGVjdXRlIGhhc0Fzc2V0KGFjY291bnQpdm9pZAoJY2FsbHN1YiBoYXNBc3NldAoJaW50IDEKCXJldHVybgoKLy8gaGFzQXNzZXQoYTogQWNjb3VudCk6IHZvaWQKaGFzQXNzZXQ6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWNjb3VudC5hbGdvLnRzOjYKCS8vIGFzc2VydChhLmlzT3B0ZWRJblRvQXNzZXQoQXNzZXQuZnJvbUlEKDEyMykpKQoJZnJhbWVfZGlnIC0xIC8vIGE6IEFjY291bnQKCWludCAxMjMKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJc3dhcAoJcG9wCglhc3NlcnQKCXJldHN1YgoKLy8gYXNzZXRCYWxhbmNlKGFjY291bnQpdm9pZAphYmlfcm91dGVfYXNzZXRCYWxhbmNlOgoJLy8gYTogYWNjb3VudAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoJdHhuYXMgQWNjb3VudHMKCgkvLyBleGVjdXRlIGFzc2V0QmFsYW5jZShhY2NvdW50KXZvaWQKCWNhbGxzdWIgYXNzZXRCYWxhbmNlCglpbnQgMQoJcmV0dXJuCgovLyBhc3NldEJhbGFuY2UoYTogQWNjb3VudCk6IHZvaWQKYXNzZXRCYWxhbmNlOgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FjY291bnQuYWxnby50czoxMAoJLy8gYXNzZXJ0KGEuYXNzZXRCYWxhbmNlKEFzc2V0LmZyb21JRCgxMjMpKSkKCWZyYW1lX2RpZyAtMSAvLyBhOiBBY2NvdW50CglpbnQgMTIzCglhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKCXBvcAoJYXNzZXJ0CglyZXRzdWIKCi8vIGFzc2V0RnJvemVuKGFjY291bnQpdm9pZAphYmlfcm91dGVfYXNzZXRGcm96ZW46CgkvLyBhOiBhY2NvdW50Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgl0eG5hcyBBY2NvdW50cwoKCS8vIGV4ZWN1dGUgYXNzZXRGcm96ZW4oYWNjb3VudCl2b2lkCgljYWxsc3ViIGFzc2V0RnJvemVuCglpbnQgMQoJcmV0dXJuCgovLyBhc3NldEZyb3plbihhOiBBY2NvdW50KTogdm9pZAphc3NldEZyb3plbjoKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hY2NvdW50LmFsZ28udHM6MTQKCS8vIGFzc2VydChhLmFzc2V0RnJvemVuKEFzc2V0LmZyb21JRCgxMjMpKSkKCWZyYW1lX2RpZyAtMSAvLyBhOiBBY2NvdW50CglpbnQgMTIzCglhc3NldF9ob2xkaW5nX2dldCBBc3NldEZyb3plbgoJcG9wCglhc3NlcnQKCXJldHN1YgoKLy8gaGFzQmFsYW5jZShhY2NvdW50KXZvaWQKYWJpX3JvdXRlX2hhc0JhbGFuY2U6CgkvLyBhOiBhY2NvdW50Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgl0eG5hcyBBY2NvdW50cwoKCS8vIGV4ZWN1dGUgaGFzQmFsYW5jZShhY2NvdW50KXZvaWQKCWNhbGxzdWIgaGFzQmFsYW5jZQoJaW50IDEKCXJldHVybgoKLy8gaGFzQmFsYW5jZShhOiBBY2NvdW50KTogdm9pZApoYXNCYWxhbmNlOgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FjY291bnQuYWxnby50czoxOAoJLy8gYXNzZXJ0KGEuaXNJbkxlZGdlcikKCWZyYW1lX2RpZyAtMSAvLyBhOiBBY2NvdW50CglhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKCXN3YXAKCXBvcAoJYXNzZXJ0CglyZXRzdWIKCi8vIGJhbGFuY2UoYWNjb3VudCl2b2lkCmFiaV9yb3V0ZV9iYWxhbmNlOgoJLy8gYTogYWNjb3VudAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoJdHhuYXMgQWNjb3VudHMKCgkvLyBleGVjdXRlIGJhbGFuY2UoYWNjb3VudCl2b2lkCgljYWxsc3ViIGJhbGFuY2UKCWludCAxCglyZXR1cm4KCi8vIGJhbGFuY2UoYTogQWNjb3VudCk6IHZvaWQKYmFsYW5jZToKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hY2NvdW50LmFsZ28udHM6MjIKCS8vIGFzc2VydChhLmJhbGFuY2UpCglmcmFtZV9kaWcgLTEgLy8gYTogQWNjb3VudAoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyBtaW5CYWxhbmNlKGFjY291bnQpdm9pZAphYmlfcm91dGVfbWluQmFsYW5jZToKCS8vIGE6IGFjY291bnQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCXR4bmFzIEFjY291bnRzCgoJLy8gZXhlY3V0ZSBtaW5CYWxhbmNlKGFjY291bnQpdm9pZAoJY2FsbHN1YiBtaW5CYWxhbmNlCglpbnQgMQoJcmV0dXJuCgovLyBtaW5CYWxhbmNlKGE6IEFjY291bnQpOiB2b2lkCm1pbkJhbGFuY2U6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWNjb3VudC5hbGdvLnRzOjI2CgkvLyBhc3NlcnQoYS5taW5CYWxhbmNlKQoJZnJhbWVfZGlnIC0xIC8vIGE6IEFjY291bnQKCWFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQoJcG9wCglhc3NlcnQKCXJldHN1YgoKLy8gYXV0aEFkZHIoYWNjb3VudCl2b2lkCmFiaV9yb3V0ZV9hdXRoQWRkcjoKCS8vIGE6IGFjY291bnQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCXR4bmFzIEFjY291bnRzCgoJLy8gZXhlY3V0ZSBhdXRoQWRkcihhY2NvdW50KXZvaWQKCWNhbGxzdWIgYXV0aEFkZHIKCWludCAxCglyZXR1cm4KCi8vIGF1dGhBZGRyKGE6IEFjY291bnQpOiB2b2lkCmF1dGhBZGRyOgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FjY291bnQuYWxnby50czozMAoJLy8gbG9nKGEuYXV0aEFkZHIpCglmcmFtZV9kaWcgLTEgLy8gYTogQWNjb3VudAoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RBdXRoQWRkcgoJcG9wCglsb2cKCXJldHN1YgoKLy8gdG90YWxOdW1VaW50KGFjY291bnQpdm9pZAphYmlfcm91dGVfdG90YWxOdW1VaW50OgoJLy8gYTogYWNjb3VudAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoJdHhuYXMgQWNjb3VudHMKCgkvLyBleGVjdXRlIHRvdGFsTnVtVWludChhY2NvdW50KXZvaWQKCWNhbGxzdWIgdG90YWxOdW1VaW50CglpbnQgMQoJcmV0dXJuCgovLyB0b3RhbE51bVVpbnQoYTogQWNjb3VudCk6IHZvaWQKdG90YWxOdW1VaW50OgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FjY291bnQuYWxnby50czozNAoJLy8gYXNzZXJ0KGEudG90YWxOdW1VaW50KQoJZnJhbWVfZGlnIC0xIC8vIGE6IEFjY291bnQKCWFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1VaW50Cglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyB0b3RhbE51bUJ5dGVTbGljZShhY2NvdW50KXZvaWQKYWJpX3JvdXRlX3RvdGFsTnVtQnl0ZVNsaWNlOgoJLy8gYTogYWNjb3VudAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoJdHhuYXMgQWNjb3VudHMKCgkvLyBleGVjdXRlIHRvdGFsTnVtQnl0ZVNsaWNlKGFjY291bnQpdm9pZAoJY2FsbHN1YiB0b3RhbE51bUJ5dGVTbGljZQoJaW50IDEKCXJldHVybgoKLy8gdG90YWxOdW1CeXRlU2xpY2UoYTogQWNjb3VudCk6IHZvaWQKdG90YWxOdW1CeXRlU2xpY2U6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWNjb3VudC5hbGdvLnRzOjM4CgkvLyBhc3NlcnQoYS50b3RhbE51bUJ5dGVTbGljZSkKCWZyYW1lX2RpZyAtMSAvLyBhOiBBY2NvdW50CglhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtQnl0ZVNsaWNlCglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyB0b3RhbEV4dHJhQXBwUGFnZXMoYWNjb3VudCl2b2lkCmFiaV9yb3V0ZV90b3RhbEV4dHJhQXBwUGFnZXM6CgkvLyBhOiBhY2NvdW50Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgl0eG5hcyBBY2NvdW50cwoKCS8vIGV4ZWN1dGUgdG90YWxFeHRyYUFwcFBhZ2VzKGFjY291bnQpdm9pZAoJY2FsbHN1YiB0b3RhbEV4dHJhQXBwUGFnZXMKCWludCAxCglyZXR1cm4KCi8vIHRvdGFsRXh0cmFBcHBQYWdlcyhhOiBBY2NvdW50KTogdm9pZAp0b3RhbEV4dHJhQXBwUGFnZXM6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWNjb3VudC5hbGdvLnRzOjQyCgkvLyBhc3NlcnQoYS50b3RhbEV4dHJhQXBwUGFnZXMpCglmcmFtZV9kaWcgLTEgLy8gYTogQWNjb3VudAoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKCXBvcAoJYXNzZXJ0CglyZXRzdWIKCi8vIHRvdGFsQXBwc0NyZWF0ZWQoYWNjb3VudCl2b2lkCmFiaV9yb3V0ZV90b3RhbEFwcHNDcmVhdGVkOgoJLy8gYTogYWNjb3VudAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoJdHhuYXMgQWNjb3VudHMKCgkvLyBleGVjdXRlIHRvdGFsQXBwc0NyZWF0ZWQoYWNjb3VudCl2b2lkCgljYWxsc3ViIHRvdGFsQXBwc0NyZWF0ZWQKCWludCAxCglyZXR1cm4KCi8vIHRvdGFsQXBwc0NyZWF0ZWQoYTogQWNjb3VudCk6IHZvaWQKdG90YWxBcHBzQ3JlYXRlZDoKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hY2NvdW50LmFsZ28udHM6NDYKCS8vIGFzc2VydChhLnRvdGFsQXBwc0NyZWF0ZWQpCglmcmFtZV9kaWcgLTEgLy8gYTogQWNjb3VudAoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyB0b3RhbEFwcHNPcHRlZEluKGFjY291bnQpdm9pZAphYmlfcm91dGVfdG90YWxBcHBzT3B0ZWRJbjoKCS8vIGE6IGFjY291bnQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCXR4bmFzIEFjY291bnRzCgoJLy8gZXhlY3V0ZSB0b3RhbEFwcHNPcHRlZEluKGFjY291bnQpdm9pZAoJY2FsbHN1YiB0b3RhbEFwcHNPcHRlZEluCglpbnQgMQoJcmV0dXJuCgovLyB0b3RhbEFwcHNPcHRlZEluKGE6IEFjY291bnQpOiB2b2lkCnRvdGFsQXBwc09wdGVkSW46Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWNjb3VudC5hbGdvLnRzOjUwCgkvLyBhc3NlcnQoYS50b3RhbEFwcHNPcHRlZEluKQoJZnJhbWVfZGlnIC0xIC8vIGE6IEFjY291bnQKCWFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzT3B0ZWRJbgoJcG9wCglhc3NlcnQKCXJldHN1YgoKLy8gdG90YWxBc3NldHNDcmVhdGVkKGFjY291bnQpdm9pZAphYmlfcm91dGVfdG90YWxBc3NldHNDcmVhdGVkOgoJLy8gYTogYWNjb3VudAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoJdHhuYXMgQWNjb3VudHMKCgkvLyBleGVjdXRlIHRvdGFsQXNzZXRzQ3JlYXRlZChhY2NvdW50KXZvaWQKCWNhbGxzdWIgdG90YWxBc3NldHNDcmVhdGVkCglpbnQgMQoJcmV0dXJuCgovLyB0b3RhbEFzc2V0c0NyZWF0ZWQoYTogQWNjb3VudCk6IHZvaWQKdG90YWxBc3NldHNDcmVhdGVkOgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FjY291bnQuYWxnby50czo1NAoJLy8gYXNzZXJ0KGEudG90YWxBc3NldHNDcmVhdGVkKQoJZnJhbWVfZGlnIC0xIC8vIGE6IEFjY291bnQKCWFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyB0b3RhbEFzc2V0cyhhY2NvdW50KXZvaWQKYWJpX3JvdXRlX3RvdGFsQXNzZXRzOgoJLy8gYTogYWNjb3VudAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoJdHhuYXMgQWNjb3VudHMKCgkvLyBleGVjdXRlIHRvdGFsQXNzZXRzKGFjY291bnQpdm9pZAoJY2FsbHN1YiB0b3RhbEFzc2V0cwoJaW50IDEKCXJldHVybgoKLy8gdG90YWxBc3NldHMoYTogQWNjb3VudCk6IHZvaWQKdG90YWxBc3NldHM6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWNjb3VudC5hbGdvLnRzOjU4CgkvLyBhc3NlcnQoYS50b3RhbEFzc2V0cykKCWZyYW1lX2RpZyAtMSAvLyBhOiBBY2NvdW50CglhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyB0b3RhbEJveGVzKGFjY291bnQpdm9pZAphYmlfcm91dGVfdG90YWxCb3hlczoKCS8vIGE6IGFjY291bnQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCXR4bmFzIEFjY291bnRzCgoJLy8gZXhlY3V0ZSB0b3RhbEJveGVzKGFjY291bnQpdm9pZAoJY2FsbHN1YiB0b3RhbEJveGVzCglpbnQgMQoJcmV0dXJuCgovLyB0b3RhbEJveGVzKGE6IEFjY291bnQpOiB2b2lkCnRvdGFsQm94ZXM6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWNjb3VudC5hbGdvLnRzOjYyCgkvLyBhc3NlcnQoYS50b3RhbEJveGVzKQoJZnJhbWVfZGlnIC0xIC8vIGE6IEFjY291bnQKCWFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hlcwoJcG9wCglhc3NlcnQKCXJldHN1YgoKLy8gdG90YWxCb3hCeXRlcyhhY2NvdW50KXZvaWQKYWJpX3JvdXRlX3RvdGFsQm94Qnl0ZXM6CgkvLyBhOiBhY2NvdW50Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgl0eG5hcyBBY2NvdW50cwoKCS8vIGV4ZWN1dGUgdG90YWxCb3hCeXRlcyhhY2NvdW50KXZvaWQKCWNhbGxzdWIgdG90YWxCb3hCeXRlcwoJaW50IDEKCXJldHVybgoKLy8gdG90YWxCb3hCeXRlcyhhOiBBY2NvdW50KTogdm9pZAp0b3RhbEJveEJ5dGVzOgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FjY291bnQuYWxnby50czo2NgoJLy8gYXNzZXJ0KGEudG90YWxCb3hCeXRlcykKCWZyYW1lX2RpZyAtMSAvLyBhOiBBY2NvdW50CglhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94Qnl0ZXMKCXBvcAoJYXNzZXJ0CglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgImhhc0Fzc2V0KGFjY291bnQpdm9pZCIKCW1ldGhvZCAiYXNzZXRCYWxhbmNlKGFjY291bnQpdm9pZCIKCW1ldGhvZCAiYXNzZXRGcm96ZW4oYWNjb3VudCl2b2lkIgoJbWV0aG9kICJoYXNCYWxhbmNlKGFjY291bnQpdm9pZCIKCW1ldGhvZCAiYmFsYW5jZShhY2NvdW50KXZvaWQiCgltZXRob2QgIm1pbkJhbGFuY2UoYWNjb3VudCl2b2lkIgoJbWV0aG9kICJhdXRoQWRkcihhY2NvdW50KXZvaWQiCgltZXRob2QgInRvdGFsTnVtVWludChhY2NvdW50KXZvaWQiCgltZXRob2QgInRvdGFsTnVtQnl0ZVNsaWNlKGFjY291bnQpdm9pZCIKCW1ldGhvZCAidG90YWxFeHRyYUFwcFBhZ2VzKGFjY291bnQpdm9pZCIKCW1ldGhvZCAidG90YWxBcHBzQ3JlYXRlZChhY2NvdW50KXZvaWQiCgltZXRob2QgInRvdGFsQXBwc09wdGVkSW4oYWNjb3VudCl2b2lkIgoJbWV0aG9kICJ0b3RhbEFzc2V0c0NyZWF0ZWQoYWNjb3VudCl2b2lkIgoJbWV0aG9kICJ0b3RhbEFzc2V0cyhhY2NvdW50KXZvaWQiCgltZXRob2QgInRvdGFsQm94ZXMoYWNjb3VudCl2b2lkIgoJbWV0aG9kICJ0b3RhbEJveEJ5dGVzKGFjY291bnQpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9oYXNBc3NldCBhYmlfcm91dGVfYXNzZXRCYWxhbmNlIGFiaV9yb3V0ZV9hc3NldEZyb3plbiBhYmlfcm91dGVfaGFzQmFsYW5jZSBhYmlfcm91dGVfYmFsYW5jZSBhYmlfcm91dGVfbWluQmFsYW5jZSBhYmlfcm91dGVfYXV0aEFkZHIgYWJpX3JvdXRlX3RvdGFsTnVtVWludCBhYmlfcm91dGVfdG90YWxOdW1CeXRlU2xpY2UgYWJpX3JvdXRlX3RvdGFsRXh0cmFBcHBQYWdlcyBhYmlfcm91dGVfdG90YWxBcHBzQ3JlYXRlZCBhYmlfcm91dGVfdG90YWxBcHBzT3B0ZWRJbiBhYmlfcm91dGVfdG90YWxBc3NldHNDcmVhdGVkIGFiaV9yb3V0ZV90b3RhbEFzc2V0cyBhYmlfcm91dGVfdG90YWxCb3hlcyBhYmlfcm91dGVfdG90YWxCb3hCeXRlcwoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBoYXNBc3NldChhY2NvdW50KXZvaWQKKmFiaV9yb3V0ZV9oYXNBc3NldDoKCS8vIGE6IGFjY291bnQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCXR4bmFzIEFjY291bnRzCgoJLy8gZXhlY3V0ZSBoYXNBc3NldChhY2NvdW50KXZvaWQKCWNhbGxzdWIgaGFzQXNzZXQKCWludCAxCglyZXR1cm4KCi8vIGhhc0Fzc2V0KGE6IEFjY291bnQpOiB2b2lkCmhhc0Fzc2V0OgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FjY291bnQuYWxnby50czo2CgkvLyBhc3NlcnQoYS5pc09wdGVkSW5Ub0Fzc2V0KEFzc2V0LmZyb21JRCgxMjMpKSkKCWZyYW1lX2RpZyAtMSAvLyBhOiBBY2NvdW50CglpbnQgMTIzCglhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKCXN3YXAKCXBvcAoJYXNzZXJ0CglyZXRzdWIKCi8vIGFzc2V0QmFsYW5jZShhY2NvdW50KXZvaWQKKmFiaV9yb3V0ZV9hc3NldEJhbGFuY2U6CgkvLyBhOiBhY2NvdW50Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgl0eG5hcyBBY2NvdW50cwoKCS8vIGV4ZWN1dGUgYXNzZXRCYWxhbmNlKGFjY291bnQpdm9pZAoJY2FsbHN1YiBhc3NldEJhbGFuY2UKCWludCAxCglyZXR1cm4KCi8vIGFzc2V0QmFsYW5jZShhOiBBY2NvdW50KTogdm9pZAphc3NldEJhbGFuY2U6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWNjb3VudC5hbGdvLnRzOjEwCgkvLyBhc3NlcnQoYS5hc3NldEJhbGFuY2UoQXNzZXQuZnJvbUlEKDEyMykpKQoJZnJhbWVfZGlnIC0xIC8vIGE6IEFjY291bnQKCWludCAxMjMKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJcG9wCglhc3NlcnQKCXJldHN1YgoKLy8gYXNzZXRGcm96ZW4oYWNjb3VudCl2b2lkCiphYmlfcm91dGVfYXNzZXRGcm96ZW46CgkvLyBhOiBhY2NvdW50Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgl0eG5hcyBBY2NvdW50cwoKCS8vIGV4ZWN1dGUgYXNzZXRGcm96ZW4oYWNjb3VudCl2b2lkCgljYWxsc3ViIGFzc2V0RnJvemVuCglpbnQgMQoJcmV0dXJuCgovLyBhc3NldEZyb3plbihhOiBBY2NvdW50KTogdm9pZAphc3NldEZyb3plbjoKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hY2NvdW50LmFsZ28udHM6MTQKCS8vIGFzc2VydChhLmFzc2V0RnJvemVuKEFzc2V0LmZyb21JRCgxMjMpKSkKCWZyYW1lX2RpZyAtMSAvLyBhOiBBY2NvdW50CglpbnQgMTIzCglhc3NldF9ob2xkaW5nX2dldCBBc3NldEZyb3plbgoJcG9wCglhc3NlcnQKCXJldHN1YgoKLy8gaGFzQmFsYW5jZShhY2NvdW50KXZvaWQKKmFiaV9yb3V0ZV9oYXNCYWxhbmNlOgoJLy8gYTogYWNjb3VudAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoJdHhuYXMgQWNjb3VudHMKCgkvLyBleGVjdXRlIGhhc0JhbGFuY2UoYWNjb3VudCl2b2lkCgljYWxsc3ViIGhhc0JhbGFuY2UKCWludCAxCglyZXR1cm4KCi8vIGhhc0JhbGFuY2UoYTogQWNjb3VudCk6IHZvaWQKaGFzQmFsYW5jZToKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hY2NvdW50LmFsZ28udHM6MTgKCS8vIGFzc2VydChhLmlzSW5MZWRnZXIpCglmcmFtZV9kaWcgLTEgLy8gYTogQWNjb3VudAoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCglzd2FwCglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyBiYWxhbmNlKGFjY291bnQpdm9pZAoqYWJpX3JvdXRlX2JhbGFuY2U6CgkvLyBhOiBhY2NvdW50Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgl0eG5hcyBBY2NvdW50cwoKCS8vIGV4ZWN1dGUgYmFsYW5jZShhY2NvdW50KXZvaWQKCWNhbGxzdWIgYmFsYW5jZQoJaW50IDEKCXJldHVybgoKLy8gYmFsYW5jZShhOiBBY2NvdW50KTogdm9pZApiYWxhbmNlOgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FjY291bnQuYWxnby50czoyMgoJLy8gYXNzZXJ0KGEuYmFsYW5jZSkKCWZyYW1lX2RpZyAtMSAvLyBhOiBBY2NvdW50CglhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKCXBvcAoJYXNzZXJ0CglyZXRzdWIKCi8vIG1pbkJhbGFuY2UoYWNjb3VudCl2b2lkCiphYmlfcm91dGVfbWluQmFsYW5jZToKCS8vIGE6IGFjY291bnQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCXR4bmFzIEFjY291bnRzCgoJLy8gZXhlY3V0ZSBtaW5CYWxhbmNlKGFjY291bnQpdm9pZAoJY2FsbHN1YiBtaW5CYWxhbmNlCglpbnQgMQoJcmV0dXJuCgovLyBtaW5CYWxhbmNlKGE6IEFjY291bnQpOiB2b2lkCm1pbkJhbGFuY2U6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWNjb3VudC5hbGdvLnRzOjI2CgkvLyBhc3NlcnQoYS5taW5CYWxhbmNlKQoJZnJhbWVfZGlnIC0xIC8vIGE6IEFjY291bnQKCWFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQoJcG9wCglhc3NlcnQKCXJldHN1YgoKLy8gYXV0aEFkZHIoYWNjb3VudCl2b2lkCiphYmlfcm91dGVfYXV0aEFkZHI6CgkvLyBhOiBhY2NvdW50Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgl0eG5hcyBBY2NvdW50cwoKCS8vIGV4ZWN1dGUgYXV0aEFkZHIoYWNjb3VudCl2b2lkCgljYWxsc3ViIGF1dGhBZGRyCglpbnQgMQoJcmV0dXJuCgovLyBhdXRoQWRkcihhOiBBY2NvdW50KTogdm9pZAphdXRoQWRkcjoKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hY2NvdW50LmFsZ28udHM6MzAKCS8vIGxvZyhhLmF1dGhBZGRyKQoJZnJhbWVfZGlnIC0xIC8vIGE6IEFjY291bnQKCWFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKCXBvcAoJbG9nCglyZXRzdWIKCi8vIHRvdGFsTnVtVWludChhY2NvdW50KXZvaWQKKmFiaV9yb3V0ZV90b3RhbE51bVVpbnQ6CgkvLyBhOiBhY2NvdW50Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgl0eG5hcyBBY2NvdW50cwoKCS8vIGV4ZWN1dGUgdG90YWxOdW1VaW50KGFjY291bnQpdm9pZAoJY2FsbHN1YiB0b3RhbE51bVVpbnQKCWludCAxCglyZXR1cm4KCi8vIHRvdGFsTnVtVWludChhOiBBY2NvdW50KTogdm9pZAp0b3RhbE51bVVpbnQ6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWNjb3VudC5hbGdvLnRzOjM0CgkvLyBhc3NlcnQoYS50b3RhbE51bVVpbnQpCglmcmFtZV9kaWcgLTEgLy8gYTogQWNjb3VudAoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKCXBvcAoJYXNzZXJ0CglyZXRzdWIKCi8vIHRvdGFsTnVtQnl0ZVNsaWNlKGFjY291bnQpdm9pZAoqYWJpX3JvdXRlX3RvdGFsTnVtQnl0ZVNsaWNlOgoJLy8gYTogYWNjb3VudAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoJdHhuYXMgQWNjb3VudHMKCgkvLyBleGVjdXRlIHRvdGFsTnVtQnl0ZVNsaWNlKGFjY291bnQpdm9pZAoJY2FsbHN1YiB0b3RhbE51bUJ5dGVTbGljZQoJaW50IDEKCXJldHVybgoKLy8gdG90YWxOdW1CeXRlU2xpY2UoYTogQWNjb3VudCk6IHZvaWQKdG90YWxOdW1CeXRlU2xpY2U6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWNjb3VudC5hbGdvLnRzOjM4CgkvLyBhc3NlcnQoYS50b3RhbE51bUJ5dGVTbGljZSkKCWZyYW1lX2RpZyAtMSAvLyBhOiBBY2NvdW50CglhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtQnl0ZVNsaWNlCglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyB0b3RhbEV4dHJhQXBwUGFnZXMoYWNjb3VudCl2b2lkCiphYmlfcm91dGVfdG90YWxFeHRyYUFwcFBhZ2VzOgoJLy8gYTogYWNjb3VudAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoJdHhuYXMgQWNjb3VudHMKCgkvLyBleGVjdXRlIHRvdGFsRXh0cmFBcHBQYWdlcyhhY2NvdW50KXZvaWQKCWNhbGxzdWIgdG90YWxFeHRyYUFwcFBhZ2VzCglpbnQgMQoJcmV0dXJuCgovLyB0b3RhbEV4dHJhQXBwUGFnZXMoYTogQWNjb3VudCk6IHZvaWQKdG90YWxFeHRyYUFwcFBhZ2VzOgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FjY291bnQuYWxnby50czo0MgoJLy8gYXNzZXJ0KGEudG90YWxFeHRyYUFwcFBhZ2VzKQoJZnJhbWVfZGlnIC0xIC8vIGE6IEFjY291bnQKCWFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxFeHRyYUFwcFBhZ2VzCglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyB0b3RhbEFwcHNDcmVhdGVkKGFjY291bnQpdm9pZAoqYWJpX3JvdXRlX3RvdGFsQXBwc0NyZWF0ZWQ6CgkvLyBhOiBhY2NvdW50Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgl0eG5hcyBBY2NvdW50cwoKCS8vIGV4ZWN1dGUgdG90YWxBcHBzQ3JlYXRlZChhY2NvdW50KXZvaWQKCWNhbGxzdWIgdG90YWxBcHBzQ3JlYXRlZAoJaW50IDEKCXJldHVybgoKLy8gdG90YWxBcHBzQ3JlYXRlZChhOiBBY2NvdW50KTogdm9pZAp0b3RhbEFwcHNDcmVhdGVkOgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FjY291bnQuYWxnby50czo0NgoJLy8gYXNzZXJ0KGEudG90YWxBcHBzQ3JlYXRlZCkKCWZyYW1lX2RpZyAtMSAvLyBhOiBBY2NvdW50CglhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc0NyZWF0ZWQKCXBvcAoJYXNzZXJ0CglyZXRzdWIKCi8vIHRvdGFsQXBwc09wdGVkSW4oYWNjb3VudCl2b2lkCiphYmlfcm91dGVfdG90YWxBcHBzT3B0ZWRJbjoKCS8vIGE6IGFjY291bnQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCXR4bmFzIEFjY291bnRzCgoJLy8gZXhlY3V0ZSB0b3RhbEFwcHNPcHRlZEluKGFjY291bnQpdm9pZAoJY2FsbHN1YiB0b3RhbEFwcHNPcHRlZEluCglpbnQgMQoJcmV0dXJuCgovLyB0b3RhbEFwcHNPcHRlZEluKGE6IEFjY291bnQpOiB2b2lkCnRvdGFsQXBwc09wdGVkSW46Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWNjb3VudC5hbGdvLnRzOjUwCgkvLyBhc3NlcnQoYS50b3RhbEFwcHNPcHRlZEluKQoJZnJhbWVfZGlnIC0xIC8vIGE6IEFjY291bnQKCWFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzT3B0ZWRJbgoJcG9wCglhc3NlcnQKCXJldHN1YgoKLy8gdG90YWxBc3NldHNDcmVhdGVkKGFjY291bnQpdm9pZAoqYWJpX3JvdXRlX3RvdGFsQXNzZXRzQ3JlYXRlZDoKCS8vIGE6IGFjY291bnQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCXR4bmFzIEFjY291bnRzCgoJLy8gZXhlY3V0ZSB0b3RhbEFzc2V0c0NyZWF0ZWQoYWNjb3VudCl2b2lkCgljYWxsc3ViIHRvdGFsQXNzZXRzQ3JlYXRlZAoJaW50IDEKCXJldHVybgoKLy8gdG90YWxBc3NldHNDcmVhdGVkKGE6IEFjY291bnQpOiB2b2lkCnRvdGFsQXNzZXRzQ3JlYXRlZDoKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hY2NvdW50LmFsZ28udHM6NTQKCS8vIGFzc2VydChhLnRvdGFsQXNzZXRzQ3JlYXRlZCkKCWZyYW1lX2RpZyAtMSAvLyBhOiBBY2NvdW50CglhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzQ3JlYXRlZAoJcG9wCglhc3NlcnQKCXJldHN1YgoKLy8gdG90YWxBc3NldHMoYWNjb3VudCl2b2lkCiphYmlfcm91dGVfdG90YWxBc3NldHM6CgkvLyBhOiBhY2NvdW50Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgl0eG5hcyBBY2NvdW50cwoKCS8vIGV4ZWN1dGUgdG90YWxBc3NldHMoYWNjb3VudCl2b2lkCgljYWxsc3ViIHRvdGFsQXNzZXRzCglpbnQgMQoJcmV0dXJuCgovLyB0b3RhbEFzc2V0cyhhOiBBY2NvdW50KTogdm9pZAp0b3RhbEFzc2V0czoKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hY2NvdW50LmFsZ28udHM6NTgKCS8vIGFzc2VydChhLnRvdGFsQXNzZXRzKQoJZnJhbWVfZGlnIC0xIC8vIGE6IEFjY291bnQKCWFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHMKCXBvcAoJYXNzZXJ0CglyZXRzdWIKCi8vIHRvdGFsQm94ZXMoYWNjb3VudCl2b2lkCiphYmlfcm91dGVfdG90YWxCb3hlczoKCS8vIGE6IGFjY291bnQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCXR4bmFzIEFjY291bnRzCgoJLy8gZXhlY3V0ZSB0b3RhbEJveGVzKGFjY291bnQpdm9pZAoJY2FsbHN1YiB0b3RhbEJveGVzCglpbnQgMQoJcmV0dXJuCgovLyB0b3RhbEJveGVzKGE6IEFjY291bnQpOiB2b2lkCnRvdGFsQm94ZXM6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWNjb3VudC5hbGdvLnRzOjYyCgkvLyBhc3NlcnQoYS50b3RhbEJveGVzKQoJZnJhbWVfZGlnIC0xIC8vIGE6IEFjY291bnQKCWFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hlcwoJcG9wCglhc3NlcnQKCXJldHN1YgoKLy8gdG90YWxCb3hCeXRlcyhhY2NvdW50KXZvaWQKKmFiaV9yb3V0ZV90b3RhbEJveEJ5dGVzOgoJLy8gYTogYWNjb3VudAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoJdHhuYXMgQWNjb3VudHMKCgkvLyBleGVjdXRlIHRvdGFsQm94Qnl0ZXMoYWNjb3VudCl2b2lkCgljYWxsc3ViIHRvdGFsQm94Qnl0ZXMKCWludCAxCglyZXR1cm4KCi8vIHRvdGFsQm94Qnl0ZXMoYTogQWNjb3VudCk6IHZvaWQKdG90YWxCb3hCeXRlczoKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hY2NvdW50LmFsZ28udHM6NjYKCS8vIGFzc2VydChhLnRvdGFsQm94Qnl0ZXMpCglmcmFtZV9kaWcgLTEgLy8gYTogQWNjb3VudAoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCglwb3AKCWFzc2VydAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiaGFzQXNzZXQoYWNjb3VudCl2b2lkIgoJbWV0aG9kICJhc3NldEJhbGFuY2UoYWNjb3VudCl2b2lkIgoJbWV0aG9kICJhc3NldEZyb3plbihhY2NvdW50KXZvaWQiCgltZXRob2QgImhhc0JhbGFuY2UoYWNjb3VudCl2b2lkIgoJbWV0aG9kICJiYWxhbmNlKGFjY291bnQpdm9pZCIKCW1ldGhvZCAibWluQmFsYW5jZShhY2NvdW50KXZvaWQiCgltZXRob2QgImF1dGhBZGRyKGFjY291bnQpdm9pZCIKCW1ldGhvZCAidG90YWxOdW1VaW50KGFjY291bnQpdm9pZCIKCW1ldGhvZCAidG90YWxOdW1CeXRlU2xpY2UoYWNjb3VudCl2b2lkIgoJbWV0aG9kICJ0b3RhbEV4dHJhQXBwUGFnZXMoYWNjb3VudCl2b2lkIgoJbWV0aG9kICJ0b3RhbEFwcHNDcmVhdGVkKGFjY291bnQpdm9pZCIKCW1ldGhvZCAidG90YWxBcHBzT3B0ZWRJbihhY2NvdW50KXZvaWQiCgltZXRob2QgInRvdGFsQXNzZXRzQ3JlYXRlZChhY2NvdW50KXZvaWQiCgltZXRob2QgInRvdGFsQXNzZXRzKGFjY291bnQpdm9pZCIKCW1ldGhvZCAidG90YWxCb3hlcyhhY2NvdW50KXZvaWQiCgltZXRob2QgInRvdGFsQm94Qnl0ZXMoYWNjb3VudCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9oYXNBc3NldCAqYWJpX3JvdXRlX2Fzc2V0QmFsYW5jZSAqYWJpX3JvdXRlX2Fzc2V0RnJvemVuICphYmlfcm91dGVfaGFzQmFsYW5jZSAqYWJpX3JvdXRlX2JhbGFuY2UgKmFiaV9yb3V0ZV9taW5CYWxhbmNlICphYmlfcm91dGVfYXV0aEFkZHIgKmFiaV9yb3V0ZV90b3RhbE51bVVpbnQgKmFiaV9yb3V0ZV90b3RhbE51bUJ5dGVTbGljZSAqYWJpX3JvdXRlX3RvdGFsRXh0cmFBcHBQYWdlcyAqYWJpX3JvdXRlX3RvdGFsQXBwc0NyZWF0ZWQgKmFiaV9yb3V0ZV90b3RhbEFwcHNPcHRlZEluICphYmlfcm91dGVfdG90YWxBc3NldHNDcmVhdGVkICphYmlfcm91dGVfdG90YWxBc3NldHMgKmFiaV9yb3V0ZV90b3RhbEJveGVzICphYmlfcm91dGVfdG90YWxCb3hCeXRlcwoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/B.approval.teal b/tests/contracts/artifacts/B.approval.teal index 53e088a78..4208e0569 100644 --- a/tests/contracts/artifacts/B.approval.teal +++ b/tests/contracts/artifacts/B.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // a()void -abi_route_a: +*abi_route_a: // execute a()void callsub a int 1 @@ -40,7 +40,7 @@ a: retsub // b()void -abi_route_b: +*abi_route_b: // execute b()void callsub b int 1 @@ -65,19 +65,19 @@ b: app_global_put retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "a()void" method "b()void" txna ApplicationArgs 0 - match abi_route_a abi_route_b + match *abi_route_a *abi_route_b err \ No newline at end of file diff --git a/tests/contracts/artifacts/B.arc32.json b/tests/contracts/artifacts/B.arc32.json index 60a9305f6..c09601eb9 100644 --- a/tests/contracts/artifacts/B.arc32.json +++ b/tests/contracts/artifacts/B.arc32.json @@ -53,7 +53,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBhKCl2b2lkCmFiaV9yb3V0ZV9hOgoJLy8gZXhlY3V0ZSBhKCl2b2lkCgljYWxsc3ViIGEKCWludCAxCglyZXR1cm4KCi8vIGEoKTogdm9pZAphOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6MTYKCS8vIHRoaXMuYUtleS52YWx1ZSA9IDEzMzcKCWJ5dGUgMHg2MSAvLyAiYSIKCWludCAxMzM3CglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBiKCl2b2lkCmFiaV9yb3V0ZV9iOgoJLy8gZXhlY3V0ZSBiKCl2b2lkCgljYWxsc3ViIGIKCWludCAxCglyZXR1cm4KCi8vIGIoKTogdm9pZApiOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6MjQKCS8vIGFzc2VydCh0aGlzLmFLZXkudmFsdWUgPT09IDEzMzcpCglieXRlIDB4NjEgLy8gImEiCglhcHBfZ2xvYmFsX2dldAoJaW50IDEzMzcKCT09Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czoyNQoJLy8gdGhpcy5iS2V5LnZhbHVlID0gNDIKCWJ5dGUgMHg2MiAvLyAiYiIKCWludCA0MgoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAiYSgpdm9pZCIKCW1ldGhvZCAiYigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9hIGFiaV9yb3V0ZV9iCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBhKCl2b2lkCiphYmlfcm91dGVfYToKCS8vIGV4ZWN1dGUgYSgpdm9pZAoJY2FsbHN1YiBhCglpbnQgMQoJcmV0dXJuCgovLyBhKCk6IHZvaWQKYToKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjE2CgkvLyB0aGlzLmFLZXkudmFsdWUgPSAxMzM3CglieXRlIDB4NjEgLy8gImEiCglpbnQgMTMzNwoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gYigpdm9pZAoqYWJpX3JvdXRlX2I6CgkvLyBleGVjdXRlIGIoKXZvaWQKCWNhbGxzdWIgYgoJaW50IDEKCXJldHVybgoKLy8gYigpOiB2b2lkCmI6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czoyNAoJLy8gYXNzZXJ0KHRoaXMuYUtleS52YWx1ZSA9PT0gMTMzNykKCWJ5dGUgMHg2MSAvLyAiYSIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMTMzNwoJPT0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjI1CgkvLyB0aGlzLmJLZXkudmFsdWUgPSA0MgoJYnl0ZSAweDYyIC8vICJiIgoJaW50IDQyCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiYSgpdm9pZCIKCW1ldGhvZCAiYigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYSAqYWJpX3JvdXRlX2IKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/B2.approval.teal b/tests/contracts/artifacts/B2.approval.teal index 587b45d05..2a56f00fe 100644 --- a/tests/contracts/artifacts/B2.approval.teal +++ b/tests/contracts/artifacts/B2.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // a()void -abi_route_a: +*abi_route_a: // execute a()void callsub a int 1 @@ -40,7 +40,7 @@ a: retsub // b2()void -abi_route_b2: +*abi_route_b2: // execute b2()void callsub b2 int 1 @@ -56,19 +56,19 @@ b2: log retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "a()void" method "b2()void" txna ApplicationArgs 0 - match abi_route_a abi_route_b2 + match *abi_route_a *abi_route_b2 err \ No newline at end of file diff --git a/tests/contracts/artifacts/B2.arc32.json b/tests/contracts/artifacts/B2.arc32.json index c9792c998..e937fc613 100644 --- a/tests/contracts/artifacts/B2.arc32.json +++ b/tests/contracts/artifacts/B2.arc32.json @@ -49,7 +49,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBhKCl2b2lkCmFiaV9yb3V0ZV9hOgoJLy8gZXhlY3V0ZSBhKCl2b2lkCgljYWxsc3ViIGEKCWludCAxCglyZXR1cm4KCi8vIGEoKTogdm9pZAphOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6MTYKCS8vIHRoaXMuYUtleS52YWx1ZSA9IDEzMzcKCWJ5dGUgMHg2MSAvLyAiYSIKCWludCAxMzM3CglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBiMigpdm9pZAphYmlfcm91dGVfYjI6CgkvLyBleGVjdXRlIGIyKCl2b2lkCgljYWxsc3ViIGIyCglpbnQgMQoJcmV0dXJuCgovLyBiMigpOiB2b2lkCmIyOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6ODgKCS8vIGxvZygnYjInKQoJYnl0ZSAweDYyMzIgLy8gImIyIgoJbG9nCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgImEoKXZvaWQiCgltZXRob2QgImIyKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2EgYWJpX3JvdXRlX2IyCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBhKCl2b2lkCiphYmlfcm91dGVfYToKCS8vIGV4ZWN1dGUgYSgpdm9pZAoJY2FsbHN1YiBhCglpbnQgMQoJcmV0dXJuCgovLyBhKCk6IHZvaWQKYToKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjE2CgkvLyB0aGlzLmFLZXkudmFsdWUgPSAxMzM3CglieXRlIDB4NjEgLy8gImEiCglpbnQgMTMzNwoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gYjIoKXZvaWQKKmFiaV9yb3V0ZV9iMjoKCS8vIGV4ZWN1dGUgYjIoKXZvaWQKCWNhbGxzdWIgYjIKCWludCAxCglyZXR1cm4KCi8vIGIyKCk6IHZvaWQKYjI6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo4OAoJLy8gbG9nKCdiMicpCglieXRlIDB4NjIzMiAvLyAiYjIiCglsb2cKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImEoKXZvaWQiCgltZXRob2QgImIyKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9hICphYmlfcm91dGVfYjIKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/BasicLsig.lsig.teal b/tests/contracts/artifacts/BasicLsig.lsig.teal index c453c20bb..c7a87ea20 100644 --- a/tests/contracts/artifacts/BasicLsig.lsig.teal +++ b/tests/contracts/artifacts/BasicLsig.lsig.teal @@ -1,15 +1,15 @@ #pragma version 10 //#pragma mode logicsig -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // The address of this logic signature is XBBFEDSZ6KEUC76ZFV5LUYHAYYRKAXRJ7FYUSBWIBTNA4HUYLMHGKGYXPU -b route_logic +b *route_logic // logic()void -route_logic: +*route_logic: // execute logic()void callsub logic int 1 diff --git a/tests/contracts/artifacts/BinaryTest.approval.teal b/tests/contracts/artifacts/BinaryTest.approval.teal index 67d5472ce..e6da0676b 100644 --- a/tests/contracts/artifacts/BinaryTest.approval.teal +++ b/tests/contracts/artifacts/BinaryTest.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // and(uint64,uint64)void -abi_route_and: +*abi_route_and: // b: uint64 txna ApplicationArgs 2 btoi @@ -44,16 +44,16 @@ and: // assert(a && b) frame_dig -1 // a: uint64 dup - bz skip_and0 + bz *skip_and0 frame_dig -2 // b: uint64 && -skip_and0: +*skip_and0: assert retsub // or(uint64,uint64)void -abi_route_or: +*abi_route_or: // b: uint64 txna ApplicationArgs 2 btoi @@ -75,16 +75,16 @@ or: // assert(a || b) frame_dig -1 // a: uint64 dup - bnz skip_or0 + bnz *skip_or0 frame_dig -2 // b: uint64 || -skip_or0: +*skip_or0: assert retsub // equal(uint64,uint64)void -abi_route_equal: +*abi_route_equal: // b: uint64 txna ApplicationArgs 2 btoi @@ -111,7 +111,7 @@ equal: retsub // notEqual(uint64,uint64)void -abi_route_notEqual: +*abi_route_notEqual: // b: uint64 txna ApplicationArgs 2 btoi @@ -138,7 +138,7 @@ notEqual: retsub // bitAnd(uint64,uint64)void -abi_route_bitAnd: +*abi_route_bitAnd: // b: uint64 txna ApplicationArgs 2 btoi @@ -165,7 +165,7 @@ bitAnd: retsub // bitOr(uint64,uint64)void -abi_route_bitOr: +*abi_route_bitOr: // b: uint64 txna ApplicationArgs 2 btoi @@ -192,7 +192,7 @@ bitOr: retsub // bitXor(uint64,uint64)void -abi_route_bitXor: +*abi_route_bitXor: // b: uint64 txna ApplicationArgs 2 btoi @@ -219,7 +219,7 @@ bitXor: retsub // combo(uint64,uint64,uint64)void -abi_route_combo: +*abi_route_combo: // c: uint64 txna ApplicationArgs 3 btoi @@ -245,31 +245,31 @@ combo: // assert(a || (b && c)) frame_dig -1 // a: uint64 dup - bnz skip_or1 + bnz *skip_or1 frame_dig -2 // b: uint64 dup - bz skip_and1 + bz *skip_and1 frame_dig -3 // c: uint64 && -skip_and1: +*skip_and1: || -skip_or1: +*skip_or1: assert retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "and(uint64,uint64)void" method "or(uint64,uint64)void" method "equal(uint64,uint64)void" @@ -279,5 +279,5 @@ call_NoOp: method "bitXor(uint64,uint64)void" method "combo(uint64,uint64,uint64)void" txna ApplicationArgs 0 - match abi_route_and abi_route_or abi_route_equal abi_route_notEqual abi_route_bitAnd abi_route_bitOr abi_route_bitXor abi_route_combo + match *abi_route_and *abi_route_or *abi_route_equal *abi_route_notEqual *abi_route_bitAnd *abi_route_bitOr *abi_route_bitXor *abi_route_combo err \ No newline at end of file diff --git a/tests/contracts/artifacts/BinaryTest.arc32.json b/tests/contracts/artifacts/BinaryTest.arc32.json index f7882cff8..8797e4f7a 100644 --- a/tests/contracts/artifacts/BinaryTest.arc32.json +++ b/tests/contracts/artifacts/BinaryTest.arc32.json @@ -74,7 +74,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBhbmQodWludDY0LHVpbnQ2NCl2b2lkCmFiaV9yb3V0ZV9hbmQ6CgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGFuZCh1aW50NjQsdWludDY0KXZvaWQKCWNhbGxzdWIgYW5kCglpbnQgMQoJcmV0dXJuCgovLyBhbmQoYTogdWludDY0LCBiOiB1aW50NjQpOiB2b2lkCmFuZDoKCXByb3RvIDIgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9iaW5hcnkuYWxnby50czo2CgkvLyBhc3NlcnQoYSAmJiBiKQoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZHVwCglieiBza2lwX2FuZDAKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCSYmCgpza2lwX2FuZDA6Cglhc3NlcnQKCXJldHN1YgoKLy8gb3IodWludDY0LHVpbnQ2NCl2b2lkCmFiaV9yb3V0ZV9vcjoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgb3IodWludDY0LHVpbnQ2NCl2b2lkCgljYWxsc3ViIG9yCglpbnQgMQoJcmV0dXJuCgovLyBvcihhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHZvaWQKb3I6Cglwcm90byAyIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYmluYXJ5LmFsZ28udHM6MTAKCS8vIGFzc2VydChhIHx8IGIpCglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CglkdXAKCWJueiBza2lwX29yMAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJfHwKCnNraXBfb3IwOgoJYXNzZXJ0CglyZXRzdWIKCi8vIGVxdWFsKHVpbnQ2NCx1aW50NjQpdm9pZAphYmlfcm91dGVfZXF1YWw6CgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGVxdWFsKHVpbnQ2NCx1aW50NjQpdm9pZAoJY2FsbHN1YiBlcXVhbAoJaW50IDEKCXJldHVybgoKLy8gZXF1YWwoYTogdWludDY0LCBiOiB1aW50NjQpOiB2b2lkCmVxdWFsOgoJcHJvdG8gMiAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2JpbmFyeS5hbGdvLnRzOjE0CgkvLyBhc3NlcnQoYSA9PT0gYikKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gbm90RXF1YWwodWludDY0LHVpbnQ2NCl2b2lkCmFiaV9yb3V0ZV9ub3RFcXVhbDoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgbm90RXF1YWwodWludDY0LHVpbnQ2NCl2b2lkCgljYWxsc3ViIG5vdEVxdWFsCglpbnQgMQoJcmV0dXJuCgovLyBub3RFcXVhbChhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHZvaWQKbm90RXF1YWw6Cglwcm90byAyIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYmluYXJ5LmFsZ28udHM6MTgKCS8vIGFzc2VydChhICE9PSBiKQoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJIT0KCWFzc2VydAoJcmV0c3ViCgovLyBiaXRBbmQodWludDY0LHVpbnQ2NCl2b2lkCmFiaV9yb3V0ZV9iaXRBbmQ6CgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGJpdEFuZCh1aW50NjQsdWludDY0KXZvaWQKCWNhbGxzdWIgYml0QW5kCglpbnQgMQoJcmV0dXJuCgovLyBiaXRBbmQoYTogdWludDY0LCBiOiB1aW50NjQpOiB2b2lkCmJpdEFuZDoKCXByb3RvIDIgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9iaW5hcnkuYWxnby50czoyMgoJLy8gYXNzZXJ0KGEgJiBiKQoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJJgoJYXNzZXJ0CglyZXRzdWIKCi8vIGJpdE9yKHVpbnQ2NCx1aW50NjQpdm9pZAphYmlfcm91dGVfYml0T3I6CgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGJpdE9yKHVpbnQ2NCx1aW50NjQpdm9pZAoJY2FsbHN1YiBiaXRPcgoJaW50IDEKCXJldHVybgoKLy8gYml0T3IoYTogdWludDY0LCBiOiB1aW50NjQpOiB2b2lkCmJpdE9yOgoJcHJvdG8gMiAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2JpbmFyeS5hbGdvLnRzOjI2CgkvLyBhc3NlcnQoYSB8IGIpCglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0Cgl8Cglhc3NlcnQKCXJldHN1YgoKLy8gYml0WG9yKHVpbnQ2NCx1aW50NjQpdm9pZAphYmlfcm91dGVfYml0WG9yOgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBiaXRYb3IodWludDY0LHVpbnQ2NCl2b2lkCgljYWxsc3ViIGJpdFhvcgoJaW50IDEKCXJldHVybgoKLy8gYml0WG9yKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdm9pZApiaXRYb3I6Cglwcm90byAyIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYmluYXJ5LmFsZ28udHM6MzAKCS8vIGFzc2VydChhIF4gYikKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCV4KCWFzc2VydAoJcmV0c3ViCgovLyBjb21ibyh1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkCmFiaV9yb3V0ZV9jb21ibzoKCS8vIGM6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJYnRvaQoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgY29tYm8odWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZAoJY2FsbHN1YiBjb21ibwoJaW50IDEKCXJldHVybgoKLy8gY29tYm8oYTogdWludDY0LCBiOiB1aW50NjQsIGM6IHVpbnQ2NCk6IHZvaWQKY29tYm86Cglwcm90byAzIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYmluYXJ5LmFsZ28udHM6MzQKCS8vIGFzc2VydChhIHx8IChiICYmIGMpKQoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZHVwCglibnogc2tpcF9vcjEKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCWR1cAoJYnogc2tpcF9hbmQxCglmcmFtZV9kaWcgLTMgLy8gYzogdWludDY0CgkmJgoKc2tpcF9hbmQxOgoJfHwKCnNraXBfb3IxOgoJYXNzZXJ0CglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgImFuZCh1aW50NjQsdWludDY0KXZvaWQiCgltZXRob2QgIm9yKHVpbnQ2NCx1aW50NjQpdm9pZCIKCW1ldGhvZCAiZXF1YWwodWludDY0LHVpbnQ2NCl2b2lkIgoJbWV0aG9kICJub3RFcXVhbCh1aW50NjQsdWludDY0KXZvaWQiCgltZXRob2QgImJpdEFuZCh1aW50NjQsdWludDY0KXZvaWQiCgltZXRob2QgImJpdE9yKHVpbnQ2NCx1aW50NjQpdm9pZCIKCW1ldGhvZCAiYml0WG9yKHVpbnQ2NCx1aW50NjQpdm9pZCIKCW1ldGhvZCAiY29tYm8odWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9hbmQgYWJpX3JvdXRlX29yIGFiaV9yb3V0ZV9lcXVhbCBhYmlfcm91dGVfbm90RXF1YWwgYWJpX3JvdXRlX2JpdEFuZCBhYmlfcm91dGVfYml0T3IgYWJpX3JvdXRlX2JpdFhvciBhYmlfcm91dGVfY29tYm8KCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBhbmQodWludDY0LHVpbnQ2NCl2b2lkCiphYmlfcm91dGVfYW5kOgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBhbmQodWludDY0LHVpbnQ2NCl2b2lkCgljYWxsc3ViIGFuZAoJaW50IDEKCXJldHVybgoKLy8gYW5kKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdm9pZAphbmQ6Cglwcm90byAyIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYmluYXJ5LmFsZ28udHM6NgoJLy8gYXNzZXJ0KGEgJiYgYikKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWR1cAoJYnogKnNraXBfYW5kMAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJJiYKCipza2lwX2FuZDA6Cglhc3NlcnQKCXJldHN1YgoKLy8gb3IodWludDY0LHVpbnQ2NCl2b2lkCiphYmlfcm91dGVfb3I6CgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIG9yKHVpbnQ2NCx1aW50NjQpdm9pZAoJY2FsbHN1YiBvcgoJaW50IDEKCXJldHVybgoKLy8gb3IoYTogdWludDY0LCBiOiB1aW50NjQpOiB2b2lkCm9yOgoJcHJvdG8gMiAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2JpbmFyeS5hbGdvLnRzOjEwCgkvLyBhc3NlcnQoYSB8fCBiKQoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZHVwCglibnogKnNraXBfb3IwCglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0Cgl8fAoKKnNraXBfb3IwOgoJYXNzZXJ0CglyZXRzdWIKCi8vIGVxdWFsKHVpbnQ2NCx1aW50NjQpdm9pZAoqYWJpX3JvdXRlX2VxdWFsOgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBlcXVhbCh1aW50NjQsdWludDY0KXZvaWQKCWNhbGxzdWIgZXF1YWwKCWludCAxCglyZXR1cm4KCi8vIGVxdWFsKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdm9pZAplcXVhbDoKCXByb3RvIDIgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9iaW5hcnkuYWxnby50czoxNAoJLy8gYXNzZXJ0KGEgPT09IGIpCglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0Cgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIG5vdEVxdWFsKHVpbnQ2NCx1aW50NjQpdm9pZAoqYWJpX3JvdXRlX25vdEVxdWFsOgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBub3RFcXVhbCh1aW50NjQsdWludDY0KXZvaWQKCWNhbGxzdWIgbm90RXF1YWwKCWludCAxCglyZXR1cm4KCi8vIG5vdEVxdWFsKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdm9pZApub3RFcXVhbDoKCXByb3RvIDIgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9iaW5hcnkuYWxnby50czoxOAoJLy8gYXNzZXJ0KGEgIT09IGIpCglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0CgkhPQoJYXNzZXJ0CglyZXRzdWIKCi8vIGJpdEFuZCh1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9iaXRBbmQ6CgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGJpdEFuZCh1aW50NjQsdWludDY0KXZvaWQKCWNhbGxzdWIgYml0QW5kCglpbnQgMQoJcmV0dXJuCgovLyBiaXRBbmQoYTogdWludDY0LCBiOiB1aW50NjQpOiB2b2lkCmJpdEFuZDoKCXByb3RvIDIgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9iaW5hcnkuYWxnby50czoyMgoJLy8gYXNzZXJ0KGEgJiBiKQoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJJgoJYXNzZXJ0CglyZXRzdWIKCi8vIGJpdE9yKHVpbnQ2NCx1aW50NjQpdm9pZAoqYWJpX3JvdXRlX2JpdE9yOgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBiaXRPcih1aW50NjQsdWludDY0KXZvaWQKCWNhbGxzdWIgYml0T3IKCWludCAxCglyZXR1cm4KCi8vIGJpdE9yKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdm9pZApiaXRPcjoKCXByb3RvIDIgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9iaW5hcnkuYWxnby50czoyNgoJLy8gYXNzZXJ0KGEgfCBiKQoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJfAoJYXNzZXJ0CglyZXRzdWIKCi8vIGJpdFhvcih1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9iaXRYb3I6CgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGJpdFhvcih1aW50NjQsdWludDY0KXZvaWQKCWNhbGxzdWIgYml0WG9yCglpbnQgMQoJcmV0dXJuCgovLyBiaXRYb3IoYTogdWludDY0LCBiOiB1aW50NjQpOiB2b2lkCmJpdFhvcjoKCXByb3RvIDIgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9iaW5hcnkuYWxnby50czozMAoJLy8gYXNzZXJ0KGEgXiBiKQoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJXgoJYXNzZXJ0CglyZXRzdWIKCi8vIGNvbWJvKHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9jb21ibzoKCS8vIGM6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJYnRvaQoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgY29tYm8odWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZAoJY2FsbHN1YiBjb21ibwoJaW50IDEKCXJldHVybgoKLy8gY29tYm8oYTogdWludDY0LCBiOiB1aW50NjQsIGM6IHVpbnQ2NCk6IHZvaWQKY29tYm86Cglwcm90byAzIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYmluYXJ5LmFsZ28udHM6MzQKCS8vIGFzc2VydChhIHx8IChiICYmIGMpKQoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZHVwCglibnogKnNraXBfb3IxCglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0CglkdXAKCWJ6ICpza2lwX2FuZDEKCWZyYW1lX2RpZyAtMyAvLyBjOiB1aW50NjQKCSYmCgoqc2tpcF9hbmQxOgoJfHwKCipza2lwX29yMToKCWFzc2VydAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiYW5kKHVpbnQ2NCx1aW50NjQpdm9pZCIKCW1ldGhvZCAib3IodWludDY0LHVpbnQ2NCl2b2lkIgoJbWV0aG9kICJlcXVhbCh1aW50NjQsdWludDY0KXZvaWQiCgltZXRob2QgIm5vdEVxdWFsKHVpbnQ2NCx1aW50NjQpdm9pZCIKCW1ldGhvZCAiYml0QW5kKHVpbnQ2NCx1aW50NjQpdm9pZCIKCW1ldGhvZCAiYml0T3IodWludDY0LHVpbnQ2NCl2b2lkIgoJbWV0aG9kICJiaXRYb3IodWludDY0LHVpbnQ2NCl2b2lkIgoJbWV0aG9kICJjb21ibyh1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9hbmQgKmFiaV9yb3V0ZV9vciAqYWJpX3JvdXRlX2VxdWFsICphYmlfcm91dGVfbm90RXF1YWwgKmFiaV9yb3V0ZV9iaXRBbmQgKmFiaV9yb3V0ZV9iaXRPciAqYWJpX3JvdXRlX2JpdFhvciAqYWJpX3JvdXRlX2NvbWJvCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/C.approval.teal b/tests/contracts/artifacts/C.approval.teal index 125f44fd1..c12065fb1 100644 --- a/tests/contracts/artifacts/C.approval.teal +++ b/tests/contracts/artifacts/C.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // a()void -abi_route_a: +*abi_route_a: // execute a()void callsub a int 1 @@ -40,7 +40,7 @@ a: retsub // b()void -abi_route_b: +*abi_route_b: // execute b()void callsub b int 1 @@ -66,7 +66,7 @@ b: retsub // c()void -abi_route_c: +*abi_route_c: // execute c()void callsub c int 1 @@ -93,20 +93,20 @@ c: assert retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "a()void" method "b()void" method "c()void" txna ApplicationArgs 0 - match abi_route_a abi_route_b abi_route_c + match *abi_route_a *abi_route_b *abi_route_c err \ No newline at end of file diff --git a/tests/contracts/artifacts/C.arc32.json b/tests/contracts/artifacts/C.arc32.json index a47e7de92..11cd1501a 100644 --- a/tests/contracts/artifacts/C.arc32.json +++ b/tests/contracts/artifacts/C.arc32.json @@ -58,7 +58,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBhKCl2b2lkCmFiaV9yb3V0ZV9hOgoJLy8gZXhlY3V0ZSBhKCl2b2lkCgljYWxsc3ViIGEKCWludCAxCglyZXR1cm4KCi8vIGEoKTogdm9pZAphOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6MTYKCS8vIHRoaXMuYUtleS52YWx1ZSA9IDEzMzcKCWJ5dGUgMHg2MSAvLyAiYSIKCWludCAxMzM3CglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBiKCl2b2lkCmFiaV9yb3V0ZV9iOgoJLy8gZXhlY3V0ZSBiKCl2b2lkCgljYWxsc3ViIGIKCWludCAxCglyZXR1cm4KCi8vIGIoKTogdm9pZApiOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6MjQKCS8vIGFzc2VydCh0aGlzLmFLZXkudmFsdWUgPT09IDEzMzcpCglieXRlIDB4NjEgLy8gImEiCglhcHBfZ2xvYmFsX2dldAoJaW50IDEzMzcKCT09Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czoyNQoJLy8gdGhpcy5iS2V5LnZhbHVlID0gNDIKCWJ5dGUgMHg2MiAvLyAiYiIKCWludCA0MgoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gYygpdm9pZAphYmlfcm91dGVfYzoKCS8vIGV4ZWN1dGUgYygpdm9pZAoJY2FsbHN1YiBjCglpbnQgMQoJcmV0dXJuCgovLyBjKCk6IHZvaWQKYzoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjMxCgkvLyBhc3NlcnQodGhpcy5iS2V5LnZhbHVlID09PSA0MikKCWJ5dGUgMHg2MiAvLyAiYiIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgNDIKCT09Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czozMgoJLy8gYXNzZXJ0KHRoaXMuYUtleS52YWx1ZSA9PT0gMTMzNykKCWJ5dGUgMHg2MSAvLyAiYSIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMTMzNwoJPT0KCWFzc2VydAoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJhKCl2b2lkIgoJbWV0aG9kICJiKCl2b2lkIgoJbWV0aG9kICJjKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2EgYWJpX3JvdXRlX2IgYWJpX3JvdXRlX2MKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBhKCl2b2lkCiphYmlfcm91dGVfYToKCS8vIGV4ZWN1dGUgYSgpdm9pZAoJY2FsbHN1YiBhCglpbnQgMQoJcmV0dXJuCgovLyBhKCk6IHZvaWQKYToKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjE2CgkvLyB0aGlzLmFLZXkudmFsdWUgPSAxMzM3CglieXRlIDB4NjEgLy8gImEiCglpbnQgMTMzNwoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gYigpdm9pZAoqYWJpX3JvdXRlX2I6CgkvLyBleGVjdXRlIGIoKXZvaWQKCWNhbGxzdWIgYgoJaW50IDEKCXJldHVybgoKLy8gYigpOiB2b2lkCmI6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czoyNAoJLy8gYXNzZXJ0KHRoaXMuYUtleS52YWx1ZSA9PT0gMTMzNykKCWJ5dGUgMHg2MSAvLyAiYSIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMTMzNwoJPT0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjI1CgkvLyB0aGlzLmJLZXkudmFsdWUgPSA0MgoJYnl0ZSAweDYyIC8vICJiIgoJaW50IDQyCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBjKCl2b2lkCiphYmlfcm91dGVfYzoKCS8vIGV4ZWN1dGUgYygpdm9pZAoJY2FsbHN1YiBjCglpbnQgMQoJcmV0dXJuCgovLyBjKCk6IHZvaWQKYzoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjMxCgkvLyBhc3NlcnQodGhpcy5iS2V5LnZhbHVlID09PSA0MikKCWJ5dGUgMHg2MiAvLyAiYiIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgNDIKCT09Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czozMgoJLy8gYXNzZXJ0KHRoaXMuYUtleS52YWx1ZSA9PT0gMTMzNykKCWJ5dGUgMHg2MSAvLyAiYSIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMTMzNwoJPT0KCWFzc2VydAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiYSgpdm9pZCIKCW1ldGhvZCAiYigpdm9pZCIKCW1ldGhvZCAiYygpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYSAqYWJpX3JvdXRlX2IgKmFiaV9yb3V0ZV9jCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ContractWithLsigProgram.approval.teal b/tests/contracts/artifacts/ContractWithLsigProgram.approval.teal index b6ebbaf76..9cf24b1a7 100644 --- a/tests/contracts/artifacts/ContractWithLsigProgram.approval.teal +++ b/tests/contracts/artifacts/ContractWithLsigProgram.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // createApplication()void -abi_route_createApplication: +*abi_route_createApplication: // execute createApplication()void callsub createApplication int 1 @@ -38,8 +38,8 @@ createApplication: log retsub -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err \ No newline at end of file diff --git a/tests/contracts/artifacts/ContractWithLsigProgram.arc32.json b/tests/contracts/artifacts/ContractWithLsigProgram.arc32.json index fac6eb0c2..442ad3a09 100644 --- a/tests/contracts/artifacts/ContractWithLsigProgram.arc32.json +++ b/tests/contracts/artifacts/ContractWithLsigProgram.arc32.json @@ -34,7 +34,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBjcmVhdGVBcHBsaWNhdGlvbigpdm9pZAphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CgkvLyBleGVjdXRlIGNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkCgljYWxsc3ViIGNyZWF0ZUFwcGxpY2F0aW9uCglpbnQgMQoJcmV0dXJuCgovLyBjcmVhdGVBcHBsaWNhdGlvbigpOiB2b2lkCmNyZWF0ZUFwcGxpY2F0aW9uOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2xzaWcuYWxnby50czozMgoJLy8gbG9nKEJhc2ljTHNpZy5wcm9ncmFtKCkpCglieXRlIGI2NCBDaUFCQVVJQUFJZ0FBaUpEaWdBQUlrU0oKCWxvZwoJcmV0c3ViCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBjcmVhdGVBcHBsaWNhdGlvbigpdm9pZAoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJLy8gZXhlY3V0ZSBjcmVhdGVBcHBsaWNhdGlvbigpdm9pZAoJY2FsbHN1YiBjcmVhdGVBcHBsaWNhdGlvbgoJaW50IDEKCXJldHVybgoKLy8gY3JlYXRlQXBwbGljYXRpb24oKTogdm9pZApjcmVhdGVBcHBsaWNhdGlvbjoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sc2lnLmFsZ28udHM6MzIKCS8vIGxvZyhCYXNpY0xzaWcucHJvZ3JhbSgpKQoJYnl0ZSBiNjQgQ2lBQkFVSUFBSWdBQWlKRGlnQUFJa1NKCglsb2cKCXJldHN1YgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ContratWithLsigAddress.approval.teal b/tests/contracts/artifacts/ContratWithLsigAddress.approval.teal index 00fde2c60..10d4d48b8 100644 --- a/tests/contracts/artifacts/ContratWithLsigAddress.approval.teal +++ b/tests/contracts/artifacts/ContratWithLsigAddress.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // createApplication()void -abi_route_createApplication: +*abi_route_createApplication: // execute createApplication()void callsub createApplication int 1 @@ -38,8 +38,8 @@ createApplication: log retsub -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err \ No newline at end of file diff --git a/tests/contracts/artifacts/ContratWithLsigAddress.arc32.json b/tests/contracts/artifacts/ContratWithLsigAddress.arc32.json index 71d97fd27..c6b31d38c 100644 --- a/tests/contracts/artifacts/ContratWithLsigAddress.arc32.json +++ b/tests/contracts/artifacts/ContratWithLsigAddress.arc32.json @@ -34,7 +34,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBjcmVhdGVBcHBsaWNhdGlvbigpdm9pZAphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CgkvLyBleGVjdXRlIGNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkCgljYWxsc3ViIGNyZWF0ZUFwcGxpY2F0aW9uCglpbnQgMQoJcmV0dXJuCgovLyBjcmVhdGVBcHBsaWNhdGlvbigpOiB2b2lkCmNyZWF0ZUFwcGxpY2F0aW9uOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2xzaWcuYWxnby50czozOQoJLy8gbG9nKEJhc2ljTHNpZy5hZGRyZXNzKCkpCglhZGRyIFhCQkZFRFNaNktFVUM3NlpGVjVMVVlIQVlZUktBWFJKN0ZZVVNCV0lCVE5BNEhVWUxNSEdLR1lYUFUKCWxvZwoJcmV0c3ViCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBjcmVhdGVBcHBsaWNhdGlvbigpdm9pZAoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJLy8gZXhlY3V0ZSBjcmVhdGVBcHBsaWNhdGlvbigpdm9pZAoJY2FsbHN1YiBjcmVhdGVBcHBsaWNhdGlvbgoJaW50IDEKCXJldHVybgoKLy8gY3JlYXRlQXBwbGljYXRpb24oKTogdm9pZApjcmVhdGVBcHBsaWNhdGlvbjoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sc2lnLmFsZ28udHM6MzkKCS8vIGxvZyhCYXNpY0xzaWcuYWRkcmVzcygpKQoJYWRkciBYQkJGRURTWjZLRVVDNzZaRlY1TFVZSEFZWVJLQVhSSjdGWVVTQldJQlROQTRIVVlMTUhHS0dZWFBVCglsb2cKCXJldHN1YgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/D.approval.teal b/tests/contracts/artifacts/D.approval.teal index f454cf0d9..90daaf6a7 100644 --- a/tests/contracts/artifacts/D.approval.teal +++ b/tests/contracts/artifacts/D.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // d()void -abi_route_d: +*abi_route_d: // execute d()void callsub d int 1 @@ -39,18 +39,18 @@ d: app_global_put retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "d()void" txna ApplicationArgs 0 - match abi_route_d + match *abi_route_d err \ No newline at end of file diff --git a/tests/contracts/artifacts/D.arc32.json b/tests/contracts/artifacts/D.arc32.json index 43a9dabf5..ec6eb22e7 100644 --- a/tests/contracts/artifacts/D.arc32.json +++ b/tests/contracts/artifacts/D.arc32.json @@ -44,7 +44,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBkKCl2b2lkCmFiaV9yb3V0ZV9kOgoJLy8gZXhlY3V0ZSBkKCl2b2lkCgljYWxsc3ViIGQKCWludCAxCglyZXR1cm4KCi8vIGQoKTogdm9pZApkOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6NDAKCS8vIHRoaXMuZEtleS52YWx1ZSA9IDQyCglieXRlIDB4NjQgLy8gImQiCglpbnQgNDIKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgImQoKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfZAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBkKCl2b2lkCiphYmlfcm91dGVfZDoKCS8vIGV4ZWN1dGUgZCgpdm9pZAoJY2FsbHN1YiBkCglpbnQgMQoJcmV0dXJuCgovLyBkKCk6IHZvaWQKZDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjQwCgkvLyB0aGlzLmRLZXkudmFsdWUgPSA0MgoJYnl0ZSAweDY0IC8vICJkIgoJaW50IDQyCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiZCgpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfZAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/DummyContract.approval.teal b/tests/contracts/artifacts/DummyContract.approval.teal index 164147464..c6e8fcfee 100644 --- a/tests/contracts/artifacts/DummyContract.approval.teal +++ b/tests/contracts/artifacts/DummyContract.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,24 +9,24 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err \ No newline at end of file diff --git a/tests/contracts/artifacts/DummyContract.arc32.json b/tests/contracts/artifacts/DummyContract.arc32.json index f6f3bc4b4..e311825e4 100644 --- a/tests/contracts/artifacts/DummyContract.arc32.json +++ b/tests/contracts/artifacts/DummyContract.arc32.json @@ -34,7 +34,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/E.approval.teal b/tests/contracts/artifacts/E.approval.teal index f29efed93..0a0d0fa41 100644 --- a/tests/contracts/artifacts/E.approval.teal +++ b/tests/contracts/artifacts/E.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // externalMethod()uint8 -abi_route_externalMethod: +*abi_route_externalMethod: // The ABI return prefix byte 0x151f7c75 @@ -58,7 +58,7 @@ externalMethod: retsub // e()void -abi_route_e: +*abi_route_e: // execute e()void callsub e int 1 @@ -118,19 +118,19 @@ e: assert retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "externalMethod()uint8" method "e()void" txna ApplicationArgs 0 - match abi_route_externalMethod abi_route_e + match *abi_route_externalMethod *abi_route_e err \ No newline at end of file diff --git a/tests/contracts/artifacts/E.arc32.json b/tests/contracts/artifacts/E.arc32.json index 6b244dfbf..3105a3f35 100644 --- a/tests/contracts/artifacts/E.arc32.json +++ b/tests/contracts/artifacts/E.arc32.json @@ -49,7 +49,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBleHRlcm5hbE1ldGhvZCgpdWludDgKYWJpX3JvdXRlX2V4dGVybmFsTWV0aG9kOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGV4dGVybmFsTWV0aG9kKCl1aW50OAoJY2FsbHN1YiBleHRlcm5hbE1ldGhvZAoJaXRvYgoJZHVwCgliaXRsZW4KCWludCA4Cgk8PQoJYXNzZXJ0CglleHRyYWN0IDcgMQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGV4dGVybmFsTWV0aG9kKCk6IEN1c3RvbVR5cGUKZXh0ZXJuYWxNZXRob2Q6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UtZXh0ZXJuYWwuYWxnby50czoxMQoJLy8gdGhpcy5leHRlcm5hbEtleS52YWx1ZSA9IDxDdXN0b21UeXBlPjEyMwoJYnl0ZSAweDY1Nzg3NDY1NzI2ZTYxNmM0YjY1NzkgLy8gImV4dGVybmFsS2V5IgoJYnl0ZSAweDdiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS1leHRlcm5hbC5hbGdvLnRzOjEyCgkvLyByZXR1cm4gdGhpcy5leHRlcm5hbEtleS52YWx1ZTsKCWJ5dGUgMHg2NTc4NzQ2NTcyNmU2MTZjNGI2NTc5IC8vICJleHRlcm5hbEtleSIKCWFwcF9nbG9iYWxfZ2V0CglidG9pCglyZXRzdWIKCi8vIGUoKXZvaWQKYWJpX3JvdXRlX2U6CgkvLyBleGVjdXRlIGUoKXZvaWQKCWNhbGxzdWIgZQoJaW50IDEKCXJldHVybgoKLy8gZSgpOiB2b2lkCmU6Cglwcm90byAwIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiAyCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6NTMKCS8vIHZhbDogRXh0ZXJuYWxDdXN0b21UeXBlID0gPEV4dGVybmFsQ3VzdG9tVHlwZT4xMjMKCWludCAxMjMKCWZyYW1lX2J1cnkgMCAvLyB2YWw6IEV4dGVybmFsQ3VzdG9tVHlwZQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjU0CgkvLyBhc3NlcnQodGhpcy5leHRlcm5hbEtleS52YWx1ZSA9PT0gdmFsKQoJYnl0ZSAweDY1Nzg3NDY1NzI2ZTYxNmM0YjY1NzkgLy8gImV4dGVybmFsS2V5IgoJYXBwX2dsb2JhbF9nZXQKCWJ0b2kKCWludCAxMjMgLy8gdmFsOiBFeHRlcm5hbEN1c3RvbVR5cGUKCT09Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo1NQoJLy8geCA9IDx1aW50MjU2PjMyMQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNDEKCWZyYW1lX2J1cnkgMSAvLyB4OiB1aW50MjU2CgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6NTYKCS8vIHkgPSA8Q3VzdG9tVHlwZT4zMjEKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTQxCglmcmFtZV9idXJ5IDIgLy8geTogdWludDI1NgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjU4CgkvLyBhc3NlcnQoeCA9PT0geSkKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTQxIC8vIHg6IHVpbnQyNTYKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTQxIC8vIHk6IHVpbnQyNTYKCWI9PQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6NjAKCS8vIGFzc2VydChNWV9DT05TVCA9PT0gNDU2KQoJaW50IDQ1NgoJZHVwCgk9PQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6NjEKCS8vIGFzc2VydChFWFRFUk5BTF9DT05TVCA9PT0gNjU0KQoJaW50IDY1NAoJZHVwCgk9PQoJYXNzZXJ0CglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgImV4dGVybmFsTWV0aG9kKCl1aW50OCIKCW1ldGhvZCAiZSgpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9leHRlcm5hbE1ldGhvZCBhYmlfcm91dGVfZQoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBleHRlcm5hbE1ldGhvZCgpdWludDgKKmFiaV9yb3V0ZV9leHRlcm5hbE1ldGhvZDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBleHRlcm5hbE1ldGhvZCgpdWludDgKCWNhbGxzdWIgZXh0ZXJuYWxNZXRob2QKCWl0b2IKCWR1cAoJYml0bGVuCglpbnQgOAoJPD0KCWFzc2VydAoJZXh0cmFjdCA3IDEKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBleHRlcm5hbE1ldGhvZCgpOiBDdXN0b21UeXBlCmV4dGVybmFsTWV0aG9kOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLWV4dGVybmFsLmFsZ28udHM6MTEKCS8vIHRoaXMuZXh0ZXJuYWxLZXkudmFsdWUgPSA8Q3VzdG9tVHlwZT4xMjMKCWJ5dGUgMHg2NTc4NzQ2NTcyNmU2MTZjNGI2NTc5IC8vICJleHRlcm5hbEtleSIKCWJ5dGUgMHg3YgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UtZXh0ZXJuYWwuYWxnby50czoxMgoJLy8gcmV0dXJuIHRoaXMuZXh0ZXJuYWxLZXkudmFsdWU7CglieXRlIDB4NjU3ODc0NjU3MjZlNjE2YzRiNjU3OSAvLyAiZXh0ZXJuYWxLZXkiCglhcHBfZ2xvYmFsX2dldAoJYnRvaQoJcmV0c3ViCgovLyBlKCl2b2lkCiphYmlfcm91dGVfZToKCS8vIGV4ZWN1dGUgZSgpdm9pZAoJY2FsbHN1YiBlCglpbnQgMQoJcmV0dXJuCgovLyBlKCk6IHZvaWQKZToKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDIKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo1MwoJLy8gdmFsOiBFeHRlcm5hbEN1c3RvbVR5cGUgPSA8RXh0ZXJuYWxDdXN0b21UeXBlPjEyMwoJaW50IDEyMwoJZnJhbWVfYnVyeSAwIC8vIHZhbDogRXh0ZXJuYWxDdXN0b21UeXBlCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6NTQKCS8vIGFzc2VydCh0aGlzLmV4dGVybmFsS2V5LnZhbHVlID09PSB2YWwpCglieXRlIDB4NjU3ODc0NjU3MjZlNjE2YzRiNjU3OSAvLyAiZXh0ZXJuYWxLZXkiCglhcHBfZ2xvYmFsX2dldAoJYnRvaQoJaW50IDEyMyAvLyB2YWw6IEV4dGVybmFsQ3VzdG9tVHlwZQoJPT0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjU1CgkvLyB4ID0gPHVpbnQyNTY+MzIxCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE0MQoJZnJhbWVfYnVyeSAxIC8vIHg6IHVpbnQyNTYKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo1NgoJLy8geSA9IDxDdXN0b21UeXBlPjMyMQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNDEKCWZyYW1lX2J1cnkgMiAvLyB5OiB1aW50MjU2CgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6NTgKCS8vIGFzc2VydCh4ID09PSB5KQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNDEgLy8geDogdWludDI1NgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNDEgLy8geTogdWludDI1NgoJYj09Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo2MAoJLy8gYXNzZXJ0KE1ZX0NPTlNUID09PSA0NTYpCglpbnQgNDU2CglkdXAKCT09Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo2MQoJLy8gYXNzZXJ0KEVYVEVSTkFMX0NPTlNUID09PSA2NTQpCglpbnQgNjU0CglkdXAKCT09Cglhc3NlcnQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImV4dGVybmFsTWV0aG9kKCl1aW50OCIKCW1ldGhvZCAiZSgpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfZXh0ZXJuYWxNZXRob2QgKmFiaV9yb3V0ZV9lCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ExternalContract.approval.teal b/tests/contracts/artifacts/ExternalContract.approval.teal index 7d6169d5c..ab93b062f 100644 --- a/tests/contracts/artifacts/ExternalContract.approval.teal +++ b/tests/contracts/artifacts/ExternalContract.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // externalMethod()uint8 -abi_route_externalMethod: +*abi_route_externalMethod: // The ABI return prefix byte 0x151f7c75 @@ -57,18 +57,18 @@ externalMethod: btoi retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "externalMethod()uint8" txna ApplicationArgs 0 - match abi_route_externalMethod + match *abi_route_externalMethod err \ No newline at end of file diff --git a/tests/contracts/artifacts/ExternalContract.arc32.json b/tests/contracts/artifacts/ExternalContract.arc32.json index 6855b20c0..573d73e26 100644 --- a/tests/contracts/artifacts/ExternalContract.arc32.json +++ b/tests/contracts/artifacts/ExternalContract.arc32.json @@ -44,7 +44,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBleHRlcm5hbE1ldGhvZCgpdWludDgKYWJpX3JvdXRlX2V4dGVybmFsTWV0aG9kOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGV4dGVybmFsTWV0aG9kKCl1aW50OAoJY2FsbHN1YiBleHRlcm5hbE1ldGhvZAoJaXRvYgoJZHVwCgliaXRsZW4KCWludCA4Cgk8PQoJYXNzZXJ0CglleHRyYWN0IDcgMQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGV4dGVybmFsTWV0aG9kKCk6IEN1c3RvbVR5cGUKZXh0ZXJuYWxNZXRob2Q6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UtZXh0ZXJuYWwuYWxnby50czoxMQoJLy8gdGhpcy5leHRlcm5hbEtleS52YWx1ZSA9IDxDdXN0b21UeXBlPjEyMwoJYnl0ZSAweDY1Nzg3NDY1NzI2ZTYxNmM0YjY1NzkgLy8gImV4dGVybmFsS2V5IgoJYnl0ZSAweDdiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS1leHRlcm5hbC5hbGdvLnRzOjEyCgkvLyByZXR1cm4gdGhpcy5leHRlcm5hbEtleS52YWx1ZTsKCWJ5dGUgMHg2NTc4NzQ2NTcyNmU2MTZjNGI2NTc5IC8vICJleHRlcm5hbEtleSIKCWFwcF9nbG9iYWxfZ2V0CglidG9pCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgImV4dGVybmFsTWV0aG9kKCl1aW50OCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9leHRlcm5hbE1ldGhvZAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBleHRlcm5hbE1ldGhvZCgpdWludDgKKmFiaV9yb3V0ZV9leHRlcm5hbE1ldGhvZDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBleHRlcm5hbE1ldGhvZCgpdWludDgKCWNhbGxzdWIgZXh0ZXJuYWxNZXRob2QKCWl0b2IKCWR1cAoJYml0bGVuCglpbnQgOAoJPD0KCWFzc2VydAoJZXh0cmFjdCA3IDEKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBleHRlcm5hbE1ldGhvZCgpOiBDdXN0b21UeXBlCmV4dGVybmFsTWV0aG9kOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLWV4dGVybmFsLmFsZ28udHM6MTEKCS8vIHRoaXMuZXh0ZXJuYWxLZXkudmFsdWUgPSA8Q3VzdG9tVHlwZT4xMjMKCWJ5dGUgMHg2NTc4NzQ2NTcyNmU2MTZjNGI2NTc5IC8vICJleHRlcm5hbEtleSIKCWJ5dGUgMHg3YgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UtZXh0ZXJuYWwuYWxnby50czoxMgoJLy8gcmV0dXJuIHRoaXMuZXh0ZXJuYWxLZXkudmFsdWU7CglieXRlIDB4NjU3ODc0NjU3MjZlNjE2YzRiNjU3OSAvLyAiZXh0ZXJuYWxLZXkiCglhcHBfZ2xvYmFsX2dldAoJYnRvaQoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiZXh0ZXJuYWxNZXRob2QoKXVpbnQ4IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9leHRlcm5hbE1ldGhvZAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/F.approval.teal b/tests/contracts/artifacts/F.approval.teal index 865cf8b6c..8b7610b2b 100644 --- a/tests/contracts/artifacts/F.approval.teal +++ b/tests/contracts/artifacts/F.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // publicMethod()string -abi_route_publicMethod: +*abi_route_publicMethod: // The ABI return prefix byte 0x151f7c75 @@ -66,18 +66,18 @@ protectedMethod: byte 0x70726f746563746564 // "protected" retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "publicMethod()string" txna ApplicationArgs 0 - match abi_route_publicMethod + match *abi_route_publicMethod err \ No newline at end of file diff --git a/tests/contracts/artifacts/F.arc32.json b/tests/contracts/artifacts/F.arc32.json index 85e26b079..325dc131b 100644 --- a/tests/contracts/artifacts/F.arc32.json +++ b/tests/contracts/artifacts/F.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBwdWJsaWNNZXRob2QoKXN0cmluZwphYmlfcm91dGVfcHVibGljTWV0aG9kOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHB1YmxpY01ldGhvZCgpc3RyaW5nCgljYWxsc3ViIHB1YmxpY01ldGhvZAoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBwdWJsaWNNZXRob2QoKTogc3RyaW5nCnB1YmxpY01ldGhvZDoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjY3CgkvLyByZXR1cm4gJ3B1YmxpYyc7CglieXRlIDB4NzA3NTYyNmM2OTYzIC8vICJwdWJsaWMiCglyZXRzdWIKCi8vIHByaXZhdGVNZXRob2QoKTogc3RyaW5nCnByaXZhdGVNZXRob2Q6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo3MQoJLy8gcmV0dXJuICdwcml2YXRlJzsKCWJ5dGUgMHg3MDcyNjk3NjYxNzQ2NSAvLyAicHJpdmF0ZSIKCXJldHN1YgoKLy8gcHJvdGVjdGVkTWV0aG9kKCk6IHN0cmluZwpwcm90ZWN0ZWRNZXRob2Q6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo3NQoJLy8gcmV0dXJuICdwcm90ZWN0ZWQnOwoJYnl0ZSAweDcwNzI2Zjc0NjU2Mzc0NjU2NCAvLyAicHJvdGVjdGVkIgoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJwdWJsaWNNZXRob2QoKXN0cmluZyIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9wdWJsaWNNZXRob2QKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBwdWJsaWNNZXRob2QoKXN0cmluZwoqYWJpX3JvdXRlX3B1YmxpY01ldGhvZDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBwdWJsaWNNZXRob2QoKXN0cmluZwoJY2FsbHN1YiBwdWJsaWNNZXRob2QKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gcHVibGljTWV0aG9kKCk6IHN0cmluZwpwdWJsaWNNZXRob2Q6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo2NwoJLy8gcmV0dXJuICdwdWJsaWMnOwoJYnl0ZSAweDcwNzU2MjZjNjk2MyAvLyAicHVibGljIgoJcmV0c3ViCgovLyBwcml2YXRlTWV0aG9kKCk6IHN0cmluZwpwcml2YXRlTWV0aG9kOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6NzEKCS8vIHJldHVybiAncHJpdmF0ZSc7CglieXRlIDB4NzA3MjY5NzY2MTc0NjUgLy8gInByaXZhdGUiCglyZXRzdWIKCi8vIHByb3RlY3RlZE1ldGhvZCgpOiBzdHJpbmcKcHJvdGVjdGVkTWV0aG9kOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6NzUKCS8vIHJldHVybiAncHJvdGVjdGVkJzsKCWJ5dGUgMHg3MDcyNmY3NDY1NjM3NDY1NjQgLy8gInByb3RlY3RlZCIKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInB1YmxpY01ldGhvZCgpc3RyaW5nIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9wdWJsaWNNZXRob2QKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/G.approval.teal b/tests/contracts/artifacts/G.approval.teal index 8331c1520..b51c8168c 100644 --- a/tests/contracts/artifacts/G.approval.teal +++ b/tests/contracts/artifacts/G.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // publicMethod()string -abi_route_publicMethod: +*abi_route_publicMethod: // The ABI return prefix byte 0x151f7c75 @@ -67,7 +67,7 @@ protectedMethod: retsub // g()void -abi_route_g: +*abi_route_g: // execute g()void callsub g int 1 @@ -92,19 +92,19 @@ g: assert retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "publicMethod()string" method "g()void" txna ApplicationArgs 0 - match abi_route_publicMethod abi_route_g + match *abi_route_publicMethod *abi_route_g err \ No newline at end of file diff --git a/tests/contracts/artifacts/G.arc32.json b/tests/contracts/artifacts/G.arc32.json index ff26f1536..e78defb2f 100644 --- a/tests/contracts/artifacts/G.arc32.json +++ b/tests/contracts/artifacts/G.arc32.json @@ -44,7 +44,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBwdWJsaWNNZXRob2QoKXN0cmluZwphYmlfcm91dGVfcHVibGljTWV0aG9kOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHB1YmxpY01ldGhvZCgpc3RyaW5nCgljYWxsc3ViIHB1YmxpY01ldGhvZAoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBwdWJsaWNNZXRob2QoKTogc3RyaW5nCnB1YmxpY01ldGhvZDoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjY3CgkvLyByZXR1cm4gJ3B1YmxpYyc7CglieXRlIDB4NzA3NTYyNmM2OTYzIC8vICJwdWJsaWMiCglyZXRzdWIKCi8vIHByaXZhdGVNZXRob2QoKTogc3RyaW5nCnByaXZhdGVNZXRob2Q6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo3MQoJLy8gcmV0dXJuICdwcml2YXRlJzsKCWJ5dGUgMHg3MDcyNjk3NjYxNzQ2NSAvLyAicHJpdmF0ZSIKCXJldHN1YgoKLy8gcHJvdGVjdGVkTWV0aG9kKCk6IHN0cmluZwpwcm90ZWN0ZWRNZXRob2Q6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo3NQoJLy8gcmV0dXJuICdwcm90ZWN0ZWQnOwoJYnl0ZSAweDcwNzI2Zjc0NjU2Mzc0NjU2NCAvLyAicHJvdGVjdGVkIgoJcmV0c3ViCgovLyBnKCl2b2lkCmFiaV9yb3V0ZV9nOgoJLy8gZXhlY3V0ZSBnKCl2b2lkCgljYWxsc3ViIGcKCWludCAxCglyZXR1cm4KCi8vIGcoKTogdm9pZApnOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6ODEKCS8vIGFzc2VydCh0aGlzLnByb3RlY3RlZE1ldGhvZCgpID09PSAncHJvdGVjdGVkJykKCWNhbGxzdWIgcHJvdGVjdGVkTWV0aG9kCglieXRlIDB4NzA3MjZmNzQ2NTYzNzQ2NTY0IC8vICJwcm90ZWN0ZWQiCgk9PQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6ODIKCS8vIGFzc2VydCh0aGlzLnB1YmxpY01ldGhvZCgpID09PSAncHVibGljJykKCWNhbGxzdWIgcHVibGljTWV0aG9kCglieXRlIDB4NzA3NTYyNmM2OTYzIC8vICJwdWJsaWMiCgk9PQoJYXNzZXJ0CglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgInB1YmxpY01ldGhvZCgpc3RyaW5nIgoJbWV0aG9kICJnKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX3B1YmxpY01ldGhvZCBhYmlfcm91dGVfZwoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBwdWJsaWNNZXRob2QoKXN0cmluZwoqYWJpX3JvdXRlX3B1YmxpY01ldGhvZDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBwdWJsaWNNZXRob2QoKXN0cmluZwoJY2FsbHN1YiBwdWJsaWNNZXRob2QKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gcHVibGljTWV0aG9kKCk6IHN0cmluZwpwdWJsaWNNZXRob2Q6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo2NwoJLy8gcmV0dXJuICdwdWJsaWMnOwoJYnl0ZSAweDcwNzU2MjZjNjk2MyAvLyAicHVibGljIgoJcmV0c3ViCgovLyBwcml2YXRlTWV0aG9kKCk6IHN0cmluZwpwcml2YXRlTWV0aG9kOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6NzEKCS8vIHJldHVybiAncHJpdmF0ZSc7CglieXRlIDB4NzA3MjY5NzY2MTc0NjUgLy8gInByaXZhdGUiCglyZXRzdWIKCi8vIHByb3RlY3RlZE1ldGhvZCgpOiBzdHJpbmcKcHJvdGVjdGVkTWV0aG9kOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6NzUKCS8vIHJldHVybiAncHJvdGVjdGVkJzsKCWJ5dGUgMHg3MDcyNmY3NDY1NjM3NDY1NjQgLy8gInByb3RlY3RlZCIKCXJldHN1YgoKLy8gZygpdm9pZAoqYWJpX3JvdXRlX2c6CgkvLyBleGVjdXRlIGcoKXZvaWQKCWNhbGxzdWIgZwoJaW50IDEKCXJldHVybgoKLy8gZygpOiB2b2lkCmc6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo4MQoJLy8gYXNzZXJ0KHRoaXMucHJvdGVjdGVkTWV0aG9kKCkgPT09ICdwcm90ZWN0ZWQnKQoJY2FsbHN1YiBwcm90ZWN0ZWRNZXRob2QKCWJ5dGUgMHg3MDcyNmY3NDY1NjM3NDY1NjQgLy8gInByb3RlY3RlZCIKCT09Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo4MgoJLy8gYXNzZXJ0KHRoaXMucHVibGljTWV0aG9kKCkgPT09ICdwdWJsaWMnKQoJY2FsbHN1YiBwdWJsaWNNZXRob2QKCWJ5dGUgMHg3MDc1NjI2YzY5NjMgLy8gInB1YmxpYyIKCT09Cglhc3NlcnQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInB1YmxpY01ldGhvZCgpc3RyaW5nIgoJbWV0aG9kICJnKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9wdWJsaWNNZXRob2QgKmFiaV9yb3V0ZV9nCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/GeneralTest.approval.teal b/tests/contracts/artifacts/GeneralTest.approval.teal index 43743443e..87efd9edb 100644 --- a/tests/contracts/artifacts/GeneralTest.approval.teal +++ b/tests/contracts/artifacts/GeneralTest.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // txnTypeEnum()void -abi_route_txnTypeEnum: +*abi_route_txnTypeEnum: // execute txnTypeEnum()void callsub txnTypeEnum int 1 @@ -42,7 +42,7 @@ txnTypeEnum: retsub // txnGroupLength()void -abi_route_txnGroupLength: +*abi_route_txnGroupLength: // execute txnGroupLength()void callsub txnGroupLength int 1 @@ -61,7 +61,7 @@ txnGroupLength: retsub // asserts(bool,bool)void -abi_route_asserts: +*abi_route_asserts: // arg2: bool txna ApplicationArgs 2 dup @@ -104,7 +104,7 @@ asserts: retsub // verifyTxnFromArg(pay)void -abi_route_verifyTxnFromArg: +*abi_route_verifyTxnFromArg: // somePay: pay txn GroupIndex int 1 @@ -142,7 +142,7 @@ verifyTxnFromArg: retsub // verifyTxnFromTxnGroup()void -abi_route_verifyTxnFromTxnGroup: +*abi_route_verifyTxnFromTxnGroup: // execute verifyTxnFromTxnGroup()void callsub verifyTxnFromTxnGroup int 1 @@ -163,7 +163,7 @@ verifyTxnFromTxnGroup: retsub // verifyTxnCondition()void -abi_route_verifyTxnCondition: +*abi_route_verifyTxnCondition: // execute verifyTxnCondition()void callsub verifyTxnCondition int 1 @@ -185,7 +185,7 @@ verifyTxnCondition: retsub // verifyTxnIncludedIn()void -abi_route_verifyTxnIncludedIn: +*abi_route_verifyTxnIncludedIn: // execute verifyTxnIncludedIn()void callsub verifyTxnIncludedIn int 1 @@ -207,7 +207,7 @@ verifyTxnIncludedIn: retsub // verifyTxnNotIncludedIn()void -abi_route_verifyTxnNotIncludedIn: +*abi_route_verifyTxnNotIncludedIn: // execute verifyTxnNotIncludedIn()void callsub verifyTxnNotIncludedIn int 1 @@ -229,7 +229,7 @@ verifyTxnNotIncludedIn: retsub // submitPendingGroup()void -abi_route_submitPendingGroup: +*abi_route_submitPendingGroup: // execute submitPendingGroup()void callsub submitPendingGroup int 1 @@ -290,7 +290,7 @@ submitPendingGroup: retsub // methodWithTxnArgs()void -abi_route_methodWithTxnArgs: +*abi_route_methodWithTxnArgs: // execute methodWithTxnArgs()void callsub methodWithTxnArgs int 1 @@ -372,7 +372,7 @@ methodWithTxnArgs: retsub // shift()void -abi_route_shift: +*abi_route_shift: // execute shift()void callsub shift int 1 @@ -402,7 +402,7 @@ shift: retsub // fromBytes()void -abi_route_fromBytes: +*abi_route_fromBytes: // execute fromBytes()void callsub fromBytes int 1 @@ -421,7 +421,7 @@ fromBytes: retsub // fromID()void -abi_route_fromID: +*abi_route_fromID: // execute fromID()void callsub fromID int 1 @@ -447,7 +447,7 @@ fromID: retsub // bzeroFunction()void -abi_route_bzeroFunction: +*abi_route_bzeroFunction: // execute bzeroFunction()void callsub bzeroFunction int 1 @@ -491,7 +491,7 @@ bzeroFunction: retsub // events()void -abi_route_events: +*abi_route_events: // execute events()void callsub events int 1 @@ -513,7 +513,7 @@ events: retsub // letOptimization(uint64[])uint64[] -abi_route_letOptimization: +*abi_route_letOptimization: // The ABI return prefix byte 0x151f7c75 @@ -560,7 +560,7 @@ letOptimization: retsub // staticContractProperties()void -abi_route_staticContractProperties: +*abi_route_staticContractProperties: // execute staticContractProperties()void callsub staticContractProperties int 1 @@ -628,7 +628,7 @@ staticContractProperties: retsub // numberToString()void -abi_route_numberToString: +*abi_route_numberToString: // execute numberToString()void callsub numberToString int 1 @@ -641,14 +641,14 @@ numberToString: // tests/contracts/general.algo.ts:170 // assert(n.toString() === s) int 1 - callsub itoa + callsub *itoa byte "1" == assert retsub // methodOnParens()void -abi_route_methodOnParens: +*abi_route_methodOnParens: // execute methodOnParens()void callsub methodOnParens int 1 @@ -661,14 +661,14 @@ methodOnParens: // tests/contracts/general.algo.ts:174 // assert((1 + 2).toString() === '3') int 3 - callsub itoa + callsub *itoa byte 0x33 // "3" == assert retsub // stringSubstring()void -abi_route_stringSubstring: +*abi_route_stringSubstring: // execute stringSubstring()void callsub stringSubstring int 1 @@ -688,7 +688,7 @@ stringSubstring: retsub // idProperty()void -abi_route_idProperty: +*abi_route_idProperty: // execute idProperty()void callsub idProperty int 1 @@ -728,7 +728,7 @@ idProperty: retsub // scratchSlot()void -abi_route_scratchSlot: +*abi_route_scratchSlot: // execute scratchSlot()void callsub scratchSlot int 1 @@ -752,7 +752,7 @@ scratchSlot: retsub // ecdsa()void -abi_route_ecdsa: +*abi_route_ecdsa: // execute ecdsa()void callsub ecdsa int 1 @@ -811,7 +811,7 @@ ecdsa: retsub // verifyTxnTypes()void -abi_route_verifyTxnTypes: +*abi_route_verifyTxnTypes: // execute verifyTxnTypes()void callsub verifyTxnTypes int 1 @@ -939,7 +939,7 @@ verifyTxnTypes: retsub // stringPlusEquals()void -abi_route_stringPlusEquals: +*abi_route_stringPlusEquals: // execute stringPlusEquals()void callsub stringPlusEquals int 1 @@ -973,7 +973,7 @@ stringPlusEquals: retsub // importedProgram()byte[] -abi_route_importedProgram: +*abi_route_importedProgram: // The ABI return prefix byte 0x151f7c75 @@ -1000,7 +1000,7 @@ importedProgram: retsub // callPrivateDefinedLater()void -abi_route_callPrivateDefinedLater: +*abi_route_callPrivateDefinedLater: // execute callPrivateDefinedLater()void callsub callPrivateDefinedLater int 1 @@ -1027,7 +1027,7 @@ privateMethod: retsub // interalPublicMethod(uint64,uint64)uint64 -abi_route_interalPublicMethod: +*abi_route_interalPublicMethod: // The ABI return prefix byte 0x151f7c75 @@ -1059,7 +1059,7 @@ interalPublicMethod: retsub // callInternalPublicMethod()void -abi_route_callInternalPublicMethod: +*abi_route_callInternalPublicMethod: // execute callInternalPublicMethod()void callsub callInternalPublicMethod int 1 @@ -1080,7 +1080,7 @@ callInternalPublicMethod: retsub // appLoadScratch()void -abi_route_appLoadScratch: +*abi_route_appLoadScratch: // execute appLoadScratch()void callsub appLoadScratch int 1 @@ -1097,7 +1097,7 @@ appLoadScratch: retsub // uintNWithUnderscore()uint256 -abi_route_uintNWithUnderscore: +*abi_route_uintNWithUnderscore: // The ABI return prefix byte 0x151f7c75 @@ -1132,7 +1132,7 @@ uintNWithUnderscore: retsub // opUp()void -abi_route_opUp: +*abi_route_opUp: // execute opUp()void callsub opUp int 1 @@ -1165,13 +1165,13 @@ opUp: int 1 frame_bury 0 // i: uint64 -for_0: +*for_0: // tests/contracts/general.algo.ts:270 // i < 75 frame_dig 0 // i: uint64 int 75 < - bz for_0_end + bz *for_0_end // tests/contracts/general.algo.ts:271 // assert(i) @@ -1184,13 +1184,13 @@ for_0: int 1 + frame_bury 0 // i: uint64 - b for_0 + b *for_0 -for_0_end: +*for_0_end: retsub // returnValueOnAssignment()string -abi_route_returnValueOnAssignment: +*abi_route_returnValueOnAssignment: // The ABI return prefix byte 0x151f7c75 @@ -1219,21 +1219,21 @@ returnValueOnAssignment: byte 0x6869 // "hi" frame_bury 0 // message: byte[] - // if0_condition + // *if0_condition // tests/contracts/general.algo.ts:278 // this.txn.sender === this.app.address txn Sender global CurrentApplicationAddress == - bz if0_end + bz *if0_end - // if0_consequent + // *if0_consequent // tests/contracts/general.algo.ts:279 // message = 'in block' byte 0x696e20626c6f636b // "in block" frame_bury 0 // message: byte[] -if0_end: +*if0_end: // tests/contracts/general.algo.ts:282 // return (message = 'bye'); byte 0x627965 // "bye" @@ -1245,7 +1245,7 @@ if0_end: retsub // returnArrayValueOnAssignment()uint64 -abi_route_returnArrayValueOnAssignment: +*abi_route_returnArrayValueOnAssignment: // The ABI return prefix byte 0x151f7c75 @@ -1286,7 +1286,7 @@ returnArrayValueOnAssignment: retsub // returnStorageValueOnAssignment()uint64 -abi_route_returnStorageValueOnAssignment: +*abi_route_returnStorageValueOnAssignment: // The ABI return prefix byte 0x151f7c75 @@ -1319,7 +1319,7 @@ returnStorageValueOnAssignment: retsub // returnOperatorAssignmentValue()uint64 -abi_route_returnOperatorAssignmentValue: +*abi_route_returnOperatorAssignmentValue: // The ABI return prefix byte 0x151f7c75 @@ -1358,7 +1358,7 @@ returnOperatorAssignmentValue: retsub // returnArrayValueOnOperatorAssignment()uint64 -abi_route_returnArrayValueOnOperatorAssignment: +*abi_route_returnArrayValueOnOperatorAssignment: // The ABI return prefix byte 0x151f7c75 @@ -1403,7 +1403,7 @@ returnArrayValueOnOperatorAssignment: retsub // returnArrayInStorageValueOnOperatorAssignment()uint64 -abi_route_returnArrayInStorageValueOnOperatorAssignment: +*abi_route_returnArrayInStorageValueOnOperatorAssignment: // The ABI return prefix byte 0x151f7c75 @@ -1447,7 +1447,7 @@ returnArrayInStorageValueOnOperatorAssignment: retsub // consts()void -abi_route_consts: +*abi_route_consts: // execute consts()void callsub consts int 1 @@ -1480,7 +1480,7 @@ consts: retsub // assertWithMessage()void -abi_route_assertWithMessage: +*abi_route_assertWithMessage: // execute assertWithMessage()void callsub assertWithMessage int 1 @@ -1499,7 +1499,7 @@ assertWithMessage: retsub // opcodeAliases()void -abi_route_opcodeAliases: +*abi_route_opcodeAliases: // execute opcodeAliases()void callsub opcodeAliases int 1 @@ -1543,7 +1543,7 @@ opcodeAliases: retsub // vrfVerifyOp()void -abi_route_vrfVerifyOp: +*abi_route_vrfVerifyOp: // execute vrfVerifyOp()void callsub vrfVerifyOp int 1 @@ -1714,7 +1714,7 @@ vrfVerifyOp: retsub // ecMath()void -abi_route_ecMath: +*abi_route_ecMath: // execute ecMath()void callsub ecMath int 1 @@ -1768,7 +1768,7 @@ ecMath: retsub // gitxn()void -abi_route_gitxn: +*abi_route_gitxn: // execute gitxn()void callsub gitxn int 1 @@ -1798,7 +1798,7 @@ gitxn: retsub // getSetBytes()void -abi_route_getSetBytes: +*abi_route_getSetBytes: // execute getSetBytes()void callsub getSetBytes int 1 @@ -1837,7 +1837,7 @@ getSetBytes: retsub // getSetUint64()void -abi_route_getSetUint64: +*abi_route_getSetUint64: // execute getSetUint64()void callsub getSetUint64 int 1 @@ -1863,7 +1863,7 @@ getSetUint64: retsub // blockOp()void -abi_route_blockOp: +*abi_route_blockOp: // execute blockOp()void callsub blockOp int 1 @@ -1891,7 +1891,7 @@ blockOp: retsub // b64()void -abi_route_b64: +*abi_route_b64: // execute b64()void callsub b64 int 1 @@ -1909,7 +1909,7 @@ b64: retsub // json()void -abi_route_json: +*abi_route_json: // execute json()void callsub json int 1 @@ -1942,7 +1942,7 @@ json: retsub // bitlenOp()void -abi_route_bitlenOp: +*abi_route_bitlenOp: // execute bitlenOp()void callsub bitlenOp int 1 @@ -1964,7 +1964,7 @@ bitlenOp: retsub // computedConst()void -abi_route_computedConst: +*abi_route_computedConst: // execute computedConst()void callsub computedConst int 1 @@ -1981,7 +1981,7 @@ computedConst: retsub // multiComputedConst()void -abi_route_multiComputedConst: +*abi_route_multiComputedConst: // execute multiComputedConst()void callsub multiComputedConst int 1 @@ -1998,7 +1998,7 @@ multiComputedConst: retsub // computedConstAsStaticArrayLength()void -abi_route_computedConstAsStaticArrayLength: +*abi_route_computedConstAsStaticArrayLength: // execute computedConstAsStaticArrayLength()void callsub computedConstAsStaticArrayLength int 1 @@ -2025,7 +2025,7 @@ computedConstAsStaticArrayLength: retsub // readSchema()void -abi_route_readSchema: +*abi_route_readSchema: // execute readSchema()void callsub readSchema int 1 @@ -2065,7 +2065,7 @@ readSchema: retsub // comparisonOr()bool -abi_route_comparisonOr: +*abi_route_comparisonOr: // The ABI return prefix byte 0x151f7c75 @@ -2090,17 +2090,17 @@ comparisonOr: global ZeroAddress == dup - bnz skip_or0 + bnz *skip_or0 txn Sender global ZeroAddress == || -skip_or0: +*skip_or0: retsub // txnArgsMethod(pay)void -abi_route_txnArgsMethod: +*abi_route_txnArgsMethod: // _pay1: pay txn GroupIndex int 1 @@ -2122,7 +2122,7 @@ txnArgsMethod: retsub // callTxnArgsMethod()void -abi_route_callTxnArgsMethod: +*abi_route_callTxnArgsMethod: // execute callTxnArgsMethod()void callsub callTxnArgsMethod int 1 @@ -2170,7 +2170,7 @@ callTxnArgsMethod: retsub // staticValueLen(uint256)void -abi_route_staticValueLen: +*abi_route_staticValueLen: // x: uint256 txna ApplicationArgs 1 dup @@ -2195,7 +2195,7 @@ staticValueLen: retsub // staticTypeLen()void -abi_route_staticTypeLen: +*abi_route_staticTypeLen: // execute staticTypeLen()void callsub staticTypeLen int 1 @@ -2211,17 +2211,17 @@ staticTypeLen: assert retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "txnTypeEnum()void" method "txnGroupLength()void" method "asserts(bool,bool)void" @@ -2282,10 +2282,10 @@ call_NoOp: method "staticValueLen(uint256)void" method "staticTypeLen()void" txna ApplicationArgs 0 - match abi_route_txnTypeEnum abi_route_txnGroupLength abi_route_asserts abi_route_verifyTxnFromArg abi_route_verifyTxnFromTxnGroup abi_route_verifyTxnCondition abi_route_verifyTxnIncludedIn abi_route_verifyTxnNotIncludedIn abi_route_submitPendingGroup abi_route_methodWithTxnArgs abi_route_shift abi_route_fromBytes abi_route_fromID abi_route_bzeroFunction abi_route_events abi_route_letOptimization abi_route_staticContractProperties abi_route_numberToString abi_route_methodOnParens abi_route_stringSubstring abi_route_idProperty abi_route_scratchSlot abi_route_ecdsa abi_route_verifyTxnTypes abi_route_stringPlusEquals abi_route_importedProgram abi_route_callPrivateDefinedLater abi_route_interalPublicMethod abi_route_callInternalPublicMethod abi_route_appLoadScratch abi_route_uintNWithUnderscore abi_route_opUp abi_route_returnValueOnAssignment abi_route_returnArrayValueOnAssignment abi_route_returnStorageValueOnAssignment abi_route_returnOperatorAssignmentValue abi_route_returnArrayValueOnOperatorAssignment abi_route_returnArrayInStorageValueOnOperatorAssignment abi_route_consts abi_route_assertWithMessage abi_route_opcodeAliases abi_route_vrfVerifyOp abi_route_ecMath abi_route_gitxn abi_route_getSetBytes abi_route_getSetUint64 abi_route_blockOp abi_route_b64 abi_route_json abi_route_bitlenOp abi_route_computedConst abi_route_multiComputedConst abi_route_computedConstAsStaticArrayLength abi_route_readSchema abi_route_comparisonOr abi_route_txnArgsMethod abi_route_callTxnArgsMethod abi_route_staticValueLen abi_route_staticTypeLen + match *abi_route_txnTypeEnum *abi_route_txnGroupLength *abi_route_asserts *abi_route_verifyTxnFromArg *abi_route_verifyTxnFromTxnGroup *abi_route_verifyTxnCondition *abi_route_verifyTxnIncludedIn *abi_route_verifyTxnNotIncludedIn *abi_route_submitPendingGroup *abi_route_methodWithTxnArgs *abi_route_shift *abi_route_fromBytes *abi_route_fromID *abi_route_bzeroFunction *abi_route_events *abi_route_letOptimization *abi_route_staticContractProperties *abi_route_numberToString *abi_route_methodOnParens *abi_route_stringSubstring *abi_route_idProperty *abi_route_scratchSlot *abi_route_ecdsa *abi_route_verifyTxnTypes *abi_route_stringPlusEquals *abi_route_importedProgram *abi_route_callPrivateDefinedLater *abi_route_interalPublicMethod *abi_route_callInternalPublicMethod *abi_route_appLoadScratch *abi_route_uintNWithUnderscore *abi_route_opUp *abi_route_returnValueOnAssignment *abi_route_returnArrayValueOnAssignment *abi_route_returnStorageValueOnAssignment *abi_route_returnOperatorAssignmentValue *abi_route_returnArrayValueOnOperatorAssignment *abi_route_returnArrayInStorageValueOnOperatorAssignment *abi_route_consts *abi_route_assertWithMessage *abi_route_opcodeAliases *abi_route_vrfVerifyOp *abi_route_ecMath *abi_route_gitxn *abi_route_getSetBytes *abi_route_getSetUint64 *abi_route_blockOp *abi_route_b64 *abi_route_json *abi_route_bitlenOp *abi_route_computedConst *abi_route_multiComputedConst *abi_route_computedConstAsStaticArrayLength *abi_route_readSchema *abi_route_comparisonOr *abi_route_txnArgsMethod *abi_route_callTxnArgsMethod *abi_route_staticValueLen *abi_route_staticTypeLen err -intToAscii: +*intToAscii: proto 1 1 byte 0x30313233343536373839 // "0123456789" frame_dig -1 // i: uint64 @@ -2294,36 +2294,36 @@ intToAscii: retsub -itoa: +*itoa: proto 1 1 frame_dig -1 // i: uint64 int 0 == - bz itoa_if_end + bz *itoa_if_end byte 0x151f7c75000130 log retsub -itoa_if_end: +*itoa_if_end: frame_dig -1 // i: uint64 int 10 / int 0 > - bz itoa_ternary_false + bz *itoa_ternary_false frame_dig -1 // i: uint64 int 10 / - callsub itoa - b itoa_ternary_end + callsub *itoa + b *itoa_ternary_end -itoa_ternary_false: +*itoa_ternary_false: byte 0x // "" -itoa_ternary_end: +*itoa_ternary_end: frame_dig -1 // i: uint64 int 10 % - callsub intToAscii + callsub *intToAscii concat retsub \ No newline at end of file diff --git a/tests/contracts/artifacts/GeneralTest.arc32.json b/tests/contracts/artifacts/GeneralTest.arc32.json index 8c1c4798f..abf4ffe41 100644 --- a/tests/contracts/artifacts/GeneralTest.arc32.json +++ b/tests/contracts/artifacts/GeneralTest.arc32.json @@ -338,7 +338,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyB0eG5UeXBlRW51bSgpdm9pZAphYmlfcm91dGVfdHhuVHlwZUVudW06CgkvLyBleGVjdXRlIHR4blR5cGVFbnVtKCl2b2lkCgljYWxsc3ViIHR4blR5cGVFbnVtCglpbnQgMQoJcmV0dXJuCgovLyB0eG5UeXBlRW51bSgpOiB2b2lkCnR4blR5cGVFbnVtOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo1MwoJLy8gYXNzZXJ0KHRoaXMudHhuR3JvdXBbMF0udHlwZUVudW0gPT09IFRyYW5zYWN0aW9uVHlwZS5BcHBsaWNhdGlvbkNhbGwpCglpbnQgMAoJZ3R4bnMgVHlwZUVudW0KCWludCBhcHBsCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIHR4bkdyb3VwTGVuZ3RoKCl2b2lkCmFiaV9yb3V0ZV90eG5Hcm91cExlbmd0aDoKCS8vIGV4ZWN1dGUgdHhuR3JvdXBMZW5ndGgoKXZvaWQKCWNhbGxzdWIgdHhuR3JvdXBMZW5ndGgKCWludCAxCglyZXR1cm4KCi8vIHR4bkdyb3VwTGVuZ3RoKCk6IHZvaWQKdHhuR3JvdXBMZW5ndGg6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjU3CgkvLyBhc3NlcnQodGhpcy50eG5Hcm91cC5sZW5ndGggPT09IDEpCglnbG9iYWwgR3JvdXBTaXplCglpbnQgMQoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBhc3NlcnRzKGJvb2wsYm9vbCl2b2lkCmFiaV9yb3V0ZV9hc3NlcnRzOgoJLy8gYXJnMjogYm9vbAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAxCgk9PQoJYXNzZXJ0CglpbnQgMAoJZ2V0Yml0CgoJLy8gYXJnMTogYm9vbAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAxCgk9PQoJYXNzZXJ0CglpbnQgMAoJZ2V0Yml0CgoJLy8gZXhlY3V0ZSBhc3NlcnRzKGJvb2wsYm9vbCl2b2lkCgljYWxsc3ViIGFzc2VydHMKCWludCAxCglyZXR1cm4KCi8vIGFzc2VydHMoYXJnMTogYm9vbGVhbiwgYXJnMjogYm9vbGVhbik6IHZvaWQKYXNzZXJ0czoKCXByb3RvIDIgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NjEKCS8vIGFzc2VydHMoYXJnMSwgYXJnMiwgYXJnMSA9PT0gYXJnMikKCWZyYW1lX2RpZyAtMSAvLyBhcmcxOiBib29sZWFuCglhc3NlcnQKCWZyYW1lX2RpZyAtMiAvLyBhcmcyOiBib29sZWFuCglhc3NlcnQKCWZyYW1lX2RpZyAtMSAvLyBhcmcxOiBib29sZWFuCglmcmFtZV9kaWcgLTIgLy8gYXJnMjogYm9vbGVhbgoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyB2ZXJpZnlUeG5Gcm9tQXJnKHBheSl2b2lkCmFiaV9yb3V0ZV92ZXJpZnlUeG5Gcm9tQXJnOgoJLy8gc29tZVBheTogcGF5Cgl0eG4gR3JvdXBJbmRleAoJaW50IDEKCS0KCWR1cAoJZ3R4bnMgVHlwZUVudW0KCWludCBwYXkKCT09Cglhc3NlcnQKCgkvLyBleGVjdXRlIHZlcmlmeVR4bkZyb21BcmcocGF5KXZvaWQKCWNhbGxzdWIgdmVyaWZ5VHhuRnJvbUFyZwoJaW50IDEKCXJldHVybgoKLy8gdmVyaWZ5VHhuRnJvbUFyZyhzb21lUGF5OiBQYXlUeG4pOiB2b2lkCnZlcmlmeVR4bkZyb21Bcmc6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjY1CgkvLyB2ZXJpZnlUeG4oc29tZVBheSwgeyByZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywgYW1vdW50OiAxMDBfMDAwIH0pCgkvLyB2ZXJpZnkgcmVjZWl2ZXIKCWZyYW1lX2RpZyAtMSAvLyBzb21lUGF5OiBQYXlUeG4KCWd0eG5zIFJlY2VpdmVyCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJPT0KCWFzc2VydAoKCS8vIHZlcmlmeSBhbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBzb21lUGF5OiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJaW50IDEwMF8wMDAKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gdmVyaWZ5VHhuRnJvbVR4bkdyb3VwKCl2b2lkCmFiaV9yb3V0ZV92ZXJpZnlUeG5Gcm9tVHhuR3JvdXA6CgkvLyBleGVjdXRlIHZlcmlmeVR4bkZyb21UeG5Hcm91cCgpdm9pZAoJY2FsbHN1YiB2ZXJpZnlUeG5Gcm9tVHhuR3JvdXAKCWludCAxCglyZXR1cm4KCi8vIHZlcmlmeVR4bkZyb21UeG5Hcm91cCgpOiB2b2lkCnZlcmlmeVR4bkZyb21UeG5Hcm91cDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NjkKCS8vIHZlcmlmeVR4bih0aGlzLnR4bkdyb3VwWzBdLCB7IHNlbmRlcjogdGhpcy50eG4uc2VuZGVyIH0pCgkvLyB2ZXJpZnkgc2VuZGVyCglpbnQgMAoJZ3R4bnMgU2VuZGVyCgl0eG4gU2VuZGVyCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIHZlcmlmeVR4bkNvbmRpdGlvbigpdm9pZAphYmlfcm91dGVfdmVyaWZ5VHhuQ29uZGl0aW9uOgoJLy8gZXhlY3V0ZSB2ZXJpZnlUeG5Db25kaXRpb24oKXZvaWQKCWNhbGxzdWIgdmVyaWZ5VHhuQ29uZGl0aW9uCglpbnQgMQoJcmV0dXJuCgovLyB2ZXJpZnlUeG5Db25kaXRpb24oKTogdm9pZAp2ZXJpZnlUeG5Db25kaXRpb246Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjczCgkvLyB2ZXJpZnlUeG4odGhpcy50eG4sIHsKCS8vICAgICAgIGFwcGxpY2F0aW9uSUQ6IHsgZ3JlYXRlclRoYW46IDEgfSwKCS8vICAgICB9KQoJLy8gdmVyaWZ5IGFwcGxpY2F0aW9uSUQKCXR4biBBcHBsaWNhdGlvbklECglpbnQgMQoJPgoJYXNzZXJ0CglyZXRzdWIKCi8vIHZlcmlmeVR4bkluY2x1ZGVkSW4oKXZvaWQKYWJpX3JvdXRlX3ZlcmlmeVR4bkluY2x1ZGVkSW46CgkvLyBleGVjdXRlIHZlcmlmeVR4bkluY2x1ZGVkSW4oKXZvaWQKCWNhbGxzdWIgdmVyaWZ5VHhuSW5jbHVkZWRJbgoJaW50IDEKCXJldHVybgoKLy8gdmVyaWZ5VHhuSW5jbHVkZWRJbigpOiB2b2lkCnZlcmlmeVR4bkluY2x1ZGVkSW46Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjc5CgkvLyB2ZXJpZnlUeG4odGhpcy50eG4sIHsKCS8vICAgICAgIHNlbmRlcjogeyBpbmNsdWRlZEluOiBbdGhpcy50eG4uc2VuZGVyXSB9LAoJLy8gICAgIH0pCgkvLyB2ZXJpZnkgc2VuZGVyCgl0eG4gU2VuZGVyCgl0eG4gU2VuZGVyCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIHZlcmlmeVR4bk5vdEluY2x1ZGVkSW4oKXZvaWQKYWJpX3JvdXRlX3ZlcmlmeVR4bk5vdEluY2x1ZGVkSW46CgkvLyBleGVjdXRlIHZlcmlmeVR4bk5vdEluY2x1ZGVkSW4oKXZvaWQKCWNhbGxzdWIgdmVyaWZ5VHhuTm90SW5jbHVkZWRJbgoJaW50IDEKCXJldHVybgoKLy8gdmVyaWZ5VHhuTm90SW5jbHVkZWRJbigpOiB2b2lkCnZlcmlmeVR4bk5vdEluY2x1ZGVkSW46Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjg1CgkvLyB2ZXJpZnlUeG4odGhpcy50eG4sIHsKCS8vICAgICAgIHNlbmRlcjogeyBub3RJbmNsdWRlZEluOiBbZ2xvYmFscy56ZXJvQWRkcmVzc10gfSwKCS8vICAgICB9KQoJLy8gdmVyaWZ5IHNlbmRlcgoJdHhuIFNlbmRlcgoJZ2xvYmFsIFplcm9BZGRyZXNzCgkhPQoJYXNzZXJ0CglyZXRzdWIKCi8vIHN1Ym1pdFBlbmRpbmdHcm91cCgpdm9pZAphYmlfcm91dGVfc3VibWl0UGVuZGluZ0dyb3VwOgoJLy8gZXhlY3V0ZSBzdWJtaXRQZW5kaW5nR3JvdXAoKXZvaWQKCWNhbGxzdWIgc3VibWl0UGVuZGluZ0dyb3VwCglpbnQgMQoJcmV0dXJuCgovLyBzdWJtaXRQZW5kaW5nR3JvdXAoKTogdm9pZApzdWJtaXRQZW5kaW5nR3JvdXA6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjkxCgkvLyB0aGlzLnBlbmRpbmdHcm91cC5hZGRQYXltZW50KHsgYW1vdW50OiAwLCByZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywgaXNGaXJzdFR4bjogdHJ1ZSB9KQoJaXR4bl9iZWdpbgoJaW50IHBheQoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6OTEKCS8vIGFtb3VudDogMAoJaW50IDAKCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo5MQoJLy8gcmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIFJlY2VpdmVyCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo5MgoJLy8gdGhpcy5wZW5kaW5nR3JvdXAuYWRkUGF5bWVudCh7IGFtb3VudDogMCwgcmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MsIG5vdGU6ICdmb28nIH0pCglpdHhuX25leHQKCWludCBwYXkKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjkyCgkvLyBhbW91bnQ6IDAKCWludCAwCglpdHhuX2ZpZWxkIEFtb3VudAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6OTIKCS8vIHJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6OTIKCS8vIG5vdGU6ICdmb28nCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglpdHhuX2ZpZWxkIE5vdGUKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjkzCgkvLyB0aGlzLnBlbmRpbmdHcm91cC5zdWJtaXQoKQoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gbWV0aG9kV2l0aFR4bkFyZ3MoKXZvaWQKYWJpX3JvdXRlX21ldGhvZFdpdGhUeG5BcmdzOgoJLy8gZXhlY3V0ZSBtZXRob2RXaXRoVHhuQXJncygpdm9pZAoJY2FsbHN1YiBtZXRob2RXaXRoVHhuQXJncwoJaW50IDEKCXJldHVybgoKLy8gbWV0aG9kV2l0aFR4bkFyZ3MoKTogdm9pZAptZXRob2RXaXRoVHhuQXJnczoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6OTcKCS8vIHNlbmRNZXRob2RDYWxsPFtQYXlUeG4sIE1ldGhvZENhbGw8W3VpbnQ2NF0sIHZvaWQ+XSwgdm9pZD4oewoJLy8gICAgICAgbmFtZTogJ2ZvbycsCgkvLyAgICAgICBtZXRob2RBcmdzOiBbCgkvLyAgICAgICAgIHsgYW1vdW50OiAxMDBfMDAwLCByZWNlaXZlcjogdGhpcy50eG4uc2VuZGVyIH0sCgkvLyAgICAgICAgIHsKCS8vICAgICAgICAgICBuYW1lOiAnYmFyJywKCS8vICAgICAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBsaWNhdGlvbi5mcm9tSUQoMTMzNyksCgkvLyAgICAgICAgICAgbWV0aG9kQXJnczogWzFdLAoJLy8gICAgICAgICB9LAoJLy8gICAgICAgXSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IHBheQoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTAwCgkvLyBhbW91bnQ6IDEwMF8wMDAKCWludCAxMDBfMDAwCglpdHhuX2ZpZWxkIEFtb3VudAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTAwCgkvLyByZWNlaXZlcjogdGhpcy50eG4uc2VuZGVyCgl0eG4gU2VuZGVyCglpdHhuX2ZpZWxkIFJlY2VpdmVyCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCglpdHhuX25leHQKCWludCBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgltZXRob2QgImJhcih1aW50NjQpdm9pZCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMDMKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcGxpY2F0aW9uLmZyb21JRCgxMzM3KQoJaW50IDEzMzcKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTA0CgkvLyBtZXRob2RBcmdzOiBbMV0KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAxCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoJaXR4bl9uZXh0CglpbnQgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJbWV0aG9kICJmb28ocGF5LGFwcGwpdm9pZCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo5OQoJLy8gbWV0aG9kQXJnczogWwoJLy8gICAgICAgICB7IGFtb3VudDogMTAwXzAwMCwgcmVjZWl2ZXI6IHRoaXMudHhuLnNlbmRlciB9LAoJLy8gICAgICAgICB7CgkvLyAgICAgICAgICAgbmFtZTogJ2JhcicsCgkvLyAgICAgICAgICAgYXBwbGljYXRpb25JRDogQXBwbGljYXRpb24uZnJvbUlEKDEzMzcpLAoJLy8gICAgICAgICAgIG1ldGhvZEFyZ3M6IFsxXSwKCS8vICAgICAgICAgfSwKCS8vICAgICAgIF0KCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gc2hpZnQoKXZvaWQKYWJpX3JvdXRlX3NoaWZ0OgoJLy8gZXhlY3V0ZSBzaGlmdCgpdm9pZAoJY2FsbHN1YiBzaGlmdAoJaW50IDEKCXJldHVybgoKLy8gc2hpZnQoKTogdm9pZApzaGlmdDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTExCgkvLyBhc3NlcnQoMSA8PCAyID09PSA0KQoJaW50IDEKCWludCAyCglzaGwKCWludCA0Cgk9PQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMTIKCS8vIGFzc2VydCg0ID4+IDEgPT09IDIpCglpbnQgNAoJaW50IDEKCXNocgoJaW50IDIKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gZnJvbUJ5dGVzKCl2b2lkCmFiaV9yb3V0ZV9mcm9tQnl0ZXM6CgkvLyBleGVjdXRlIGZyb21CeXRlcygpdm9pZAoJY2FsbHN1YiBmcm9tQnl0ZXMKCWludCAxCglyZXR1cm4KCi8vIGZyb21CeXRlcygpOiB2b2lkCmZyb21CeXRlczoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTE2CgkvLyBhc3NlcnQoQWRkcmVzcy5mcm9tQnl0ZXMoJ2FiYycpLm1pbkJhbGFuY2UpCglieXRlIDB4NjE2MjYzIC8vICJhYmMiCglhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKCXBvcAoJYXNzZXJ0CglyZXRzdWIKCi8vIGZyb21JRCgpdm9pZAphYmlfcm91dGVfZnJvbUlEOgoJLy8gZXhlY3V0ZSBmcm9tSUQoKXZvaWQKCWNhbGxzdWIgZnJvbUlECglpbnQgMQoJcmV0dXJuCgovLyBmcm9tSUQoKTogdm9pZApmcm9tSUQ6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjEyMAoJLy8gbG9nKEFwcGxpY2F0aW9uLmZyb21JRCgxMjMpLmNyZWF0b3IpCglpbnQgMTIzCglhcHBfcGFyYW1zX2dldCBBcHBDcmVhdG9yCglwb3AKCWxvZwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTIxCgkvLyBsb2coQXNzZXQuZnJvbUlEKDEyMykuY3JlYXRvcikKCWludCAxMjMKCWFzc2V0X3BhcmFtc19nZXQgQXNzZXRDcmVhdG9yCglwb3AKCWxvZwoJcmV0c3ViCgovLyBiemVyb0Z1bmN0aW9uKCl2b2lkCmFiaV9yb3V0ZV9iemVyb0Z1bmN0aW9uOgoJLy8gZXhlY3V0ZSBiemVyb0Z1bmN0aW9uKCl2b2lkCgljYWxsc3ViIGJ6ZXJvRnVuY3Rpb24KCWludCAxCglyZXR1cm4KCi8vIGJ6ZXJvRnVuY3Rpb24oKTogdm9pZApiemVyb0Z1bmN0aW9uOgoJcHJvdG8gMCAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gMgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTI2CgkvLyB4OiBieXRlcyA9IGJ6ZXJvKDIpCglieXRlIDB4MDAwMAoJZnJhbWVfYnVyeSAwIC8vIHg6IGJ5dGVzCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMjcKCS8vIHk6IGJ5dGVzID0gYnplcm8obikKCWludCAxCgliemVybwoJZnJhbWVfYnVyeSAxIC8vIHk6IGJ5dGVzCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMjgKCS8vIHo6IFt1aW50NjQsIHVpbnQ8OD5dID0gYnplcm88W3VpbnQ2NCwgdWludDw4Pl0+KCkKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAKCWZyYW1lX2J1cnkgMiAvLyB6OiBbdWludDY0LCB1aW50PDg+XQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTI5CgkvLyBhc3NlcnQobGVuKHggKyB5ICsgeikgPT09IDEyKQoJYnl0ZSAweDAwMDAgLy8geDogYnl0ZXMKCWZyYW1lX2RpZyAxIC8vIHk6IGJ5dGVzCgljb25jYXQKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAgLy8gejogW3VpbnQ2NCwgdWludDw4Pl0KCWNvbmNhdAoJbGVuCglpbnQgMTIKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gZXZlbnRzKCl2b2lkCmFiaV9yb3V0ZV9ldmVudHM6CgkvLyBleGVjdXRlIGV2ZW50cygpdm9pZAoJY2FsbHN1YiBldmVudHMKCWludCAxCglyZXR1cm4KCi8vIGV2ZW50cygpOiB2b2lkCmV2ZW50czoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTQ0CgkvLyB0aGlzLm15RXZlbnQubG9nKHsgYXBwOiB0aGlzLmFwcCwgbnVtOiAxIH0pCglieXRlIDB4ODc1MjgxOTYgLy8gbXlFdmVudCh1aW50NjQsdWludDY0KQoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJaXRvYgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDEKCWNvbmNhdAoJY29uY2F0Cglsb2cKCXJldHN1YgoKLy8gbGV0T3B0aW1pemF0aW9uKHVpbnQ2NFtdKXVpbnQ2NFtdCmFiaV9yb3V0ZV9sZXRPcHRpbWl6YXRpb246CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGE6IHVpbnQ2NFtdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgbGV0T3B0aW1pemF0aW9uKHVpbnQ2NFtdKXVpbnQ2NFtdCgljYWxsc3ViIGxldE9wdGltaXphdGlvbgoJZHVwCglsZW4KCWludCA4CgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gbGV0T3B0aW1pemF0aW9uKGE6IHVpbnQ2NFtdKTogdWludDY0W10KbGV0T3B0aW1pemF0aW9uOgoJcHJvdG8gMSAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxNDgKCS8vIGFzc2VydChhWzBdKQoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NFtdCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTUwCgkvLyBiID0gWzEsIDIsIDNdCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAzCglmcmFtZV9idXJ5IC0xIC8vIGI6IHVpbnQ2NFtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxNTIKCS8vIHJldHVybiBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NFtdCglyZXRzdWIKCi8vIHN0YXRpY0NvbnRyYWN0UHJvcGVydGllcygpdm9pZAphYmlfcm91dGVfc3RhdGljQ29udHJhY3RQcm9wZXJ0aWVzOgoJLy8gZXhlY3V0ZSBzdGF0aWNDb250cmFjdFByb3BlcnRpZXMoKXZvaWQKCWNhbGxzdWIgc3RhdGljQ29udHJhY3RQcm9wZXJ0aWVzCglpbnQgMQoJcmV0dXJuCgovLyBzdGF0aWNDb250cmFjdFByb3BlcnRpZXMoKTogdm9pZApzdGF0aWNDb250cmFjdFByb3BlcnRpZXM6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjE1NgoJLy8gc2VuZEFwcENhbGwoewoJLy8gICAgICAgb25Db21wbGV0aW9uOiBPbkNvbXBsZXRpb24uTm9PcCwKCS8vICAgICAgIGFwcHJvdmFsUHJvZ3JhbTogRHVtbXlDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSwKCS8vICAgICAgIGNsZWFyU3RhdGVQcm9ncmFtOiBEdW1teUNvbnRyYWN0LmNsZWFyUHJvZ3JhbSgpLAoJLy8gICAgICAgbG9jYWxOdW1CeXRlU2xpY2U6IER1bW15Q29udHJhY3Quc2NoZW1hLmxvY2FsLm51bUJ5dGVTbGljZSwKCS8vICAgICAgIGxvY2FsTnVtVWludDogRHVtbXlDb250cmFjdC5zY2hlbWEubG9jYWwubnVtVWludCwKCS8vICAgICAgIGdsb2JhbE51bUJ5dGVTbGljZTogRHVtbXlDb250cmFjdC5zY2hlbWEuZ2xvYmFsLm51bUJ5dGVTbGljZSwKCS8vICAgICAgIGdsb2JhbE51bVVpbnQ6IER1bW15Q29udHJhY3Quc2NoZW1hLmdsb2JhbC5udW1VaW50LAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnQgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTU3CgkvLyBvbkNvbXBsZXRpb246IE9uQ29tcGxldGlvbi5Ob09wCglpbnQgMCAvLyBOb09wCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTU4CgkvLyBhcHByb3ZhbFByb2dyYW06IER1bW15Q29udHJhY3QuYXBwcm92YWxQcm9ncmFtKCkKCWJ5dGUgYjY0IENqRVlGSUVHQ3pFWkNJME1BQUFBQUFBQUFBQUFBQUFBQUFRQUFBQUFBQUFBQUFBQUFJRUJRNEFFdUVSN05qWWFBSTRCLy9BQQoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjE1OQoJLy8gY2xlYXJTdGF0ZVByb2dyYW06IER1bW15Q29udHJhY3QuY2xlYXJQcm9ncmFtKCkKCWJ5dGUgYjY0IENnPT0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjE2MAoJLy8gbG9jYWxOdW1CeXRlU2xpY2U6IER1bW15Q29udHJhY3Quc2NoZW1hLmxvY2FsLm51bUJ5dGVTbGljZQoJaW50IDAKCWl0eG5fZmllbGQgTG9jYWxOdW1CeXRlU2xpY2UKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjE2MQoJLy8gbG9jYWxOdW1VaW50OiBEdW1teUNvbnRyYWN0LnNjaGVtYS5sb2NhbC5udW1VaW50CglpbnQgMAoJaXR4bl9maWVsZCBMb2NhbE51bVVpbnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjE2MgoJLy8gZ2xvYmFsTnVtQnl0ZVNsaWNlOiBEdW1teUNvbnRyYWN0LnNjaGVtYS5nbG9iYWwubnVtQnl0ZVNsaWNlCglpbnQgMAoJaXR4bl9maWVsZCBHbG9iYWxOdW1CeXRlU2xpY2UKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjE2MwoJLy8gZ2xvYmFsTnVtVWludDogRHVtbXlDb250cmFjdC5zY2hlbWEuZ2xvYmFsLm51bVVpbnQKCWludCAwCglpdHhuX2ZpZWxkIEdsb2JhbE51bVVpbnQKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglyZXRzdWIKCi8vIG51bWJlclRvU3RyaW5nKCl2b2lkCmFiaV9yb3V0ZV9udW1iZXJUb1N0cmluZzoKCS8vIGV4ZWN1dGUgbnVtYmVyVG9TdHJpbmcoKXZvaWQKCWNhbGxzdWIgbnVtYmVyVG9TdHJpbmcKCWludCAxCglyZXR1cm4KCi8vIG51bWJlclRvU3RyaW5nKCk6IHZvaWQKbnVtYmVyVG9TdHJpbmc6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjE3MAoJLy8gYXNzZXJ0KG4udG9TdHJpbmcoKSA9PT0gcykKCWludCAxCgljYWxsc3ViIGl0b2EKCWJ5dGUgIjEiCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIG1ldGhvZE9uUGFyZW5zKCl2b2lkCmFiaV9yb3V0ZV9tZXRob2RPblBhcmVuczoKCS8vIGV4ZWN1dGUgbWV0aG9kT25QYXJlbnMoKXZvaWQKCWNhbGxzdWIgbWV0aG9kT25QYXJlbnMKCWludCAxCglyZXR1cm4KCi8vIG1ldGhvZE9uUGFyZW5zKCk6IHZvaWQKbWV0aG9kT25QYXJlbnM6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjE3NAoJLy8gYXNzZXJ0KCgxICsgMikudG9TdHJpbmcoKSA9PT0gJzMnKQoJaW50IDMKCWNhbGxzdWIgaXRvYQoJYnl0ZSAweDMzIC8vICIzIgoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBzdHJpbmdTdWJzdHJpbmcoKXZvaWQKYWJpX3JvdXRlX3N0cmluZ1N1YnN0cmluZzoKCS8vIGV4ZWN1dGUgc3RyaW5nU3Vic3RyaW5nKCl2b2lkCgljYWxsc3ViIHN0cmluZ1N1YnN0cmluZwoJaW50IDEKCXJldHVybgoKLy8gc3RyaW5nU3Vic3RyaW5nKCk6IHZvaWQKc3RyaW5nU3Vic3RyaW5nOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxNzkKCS8vIGFzc2VydChzLnN1YnN0cmluZygxLCAzKSA9PT0gJ2JjJykKCWJ5dGUgImFiY2RlZiIKCXN1YnN0cmluZyAxIDMKCWJ5dGUgMHg2MjYzIC8vICJiYyIKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gaWRQcm9wZXJ0eSgpdm9pZAphYmlfcm91dGVfaWRQcm9wZXJ0eToKCS8vIGV4ZWN1dGUgaWRQcm9wZXJ0eSgpdm9pZAoJY2FsbHN1YiBpZFByb3BlcnR5CglpbnQgMQoJcmV0dXJuCgovLyBpZFByb3BlcnR5KCk6IHZvaWQKaWRQcm9wZXJ0eToKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjE4MwoJLy8gYXBwID0gQXBwbGljYXRpb24uemVyb0luZGV4CglpbnQgMAoJZnJhbWVfYnVyeSAwIC8vIGFwcDogYXBwbGljYXRpb24KCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjE4NAoJLy8gYXNzZXJ0KEFwcGxpY2F0aW9uLmZyb21JRChhcHAuaWQpID09PSBhcHApCglpbnQgMCAvLyBhcHA6IGFwcGxpY2F0aW9uCglkdXAKCT09Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjE4NgoJLy8gYXNhID0gQXNzZXQuemVyb0luZGV4CglpbnQgMAoJZnJhbWVfYnVyeSAxIC8vIGFzYTogYXNzZXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjE4NwoJLy8gYXNzZXJ0KEFzc2V0LmZyb21JRChhc2EuaWQpID09PSBhc2EpCglpbnQgMCAvLyBhc2E6IGFzc2V0CglkdXAKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gc2NyYXRjaFNsb3QoKXZvaWQKYWJpX3JvdXRlX3NjcmF0Y2hTbG90OgoJLy8gZXhlY3V0ZSBzY3JhdGNoU2xvdCgpdm9pZAoJY2FsbHN1YiBzY3JhdGNoU2xvdAoJaW50IDEKCXJldHVybgoKLy8gc2NyYXRjaFNsb3QoKTogdm9pZApzY3JhdGNoU2xvdDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTkxCgkvLyB0aGlzLnNjcmF0Y2gudmFsdWUgPSAxMzM3CglpbnQgMTMzNwoJc3RvcmUgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTkyCgkvLyBhc3NlcnQodGhpcy5zY3JhdGNoLnZhbHVlID09PSAxMzM3KQoJbG9hZCAwCglpbnQgMTMzNwoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBlY2RzYSgpdm9pZAphYmlfcm91dGVfZWNkc2E6CgkvLyBleGVjdXRlIGVjZHNhKCl2b2lkCgljYWxsc3ViIGVjZHNhCglpbnQgMQoJcmV0dXJuCgovLyBlY2RzYSgpOiB2b2lkCmVjZHNhOgoJcHJvdG8gMCAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gNwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTk2CgkvLyBlY2RzYVZlcmlmeSgnU2VjcDI1NmsxJywgJycgYXMgYnl0ZXMzMiwgJycgYXMgYnl0ZXMzMiwgJycgYXMgYnl0ZXMzMiwgJycgYXMgYnl0ZXMzMiwgJycgYXMgYnl0ZXMzMikKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIC8vICIiCglkdXBuIDQKCWVjZHNhX3ZlcmlmeSBTZWNwMjU2azEKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjE5NwoJLy8gZCA9IGVjZHNhUGtEZWNvbXByZXNzKCdTZWNwMjU2azEnLCAnJyBhcyBieXRlczwzMz4pCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIC8vICIiCgllY2RzYV9wa19kZWNvbXByZXNzIFNlY3AyNTZrMQoJZnJhbWVfYnVyeSAyIC8vIGQgeSBjb21wb25lbnQ6IGJ5dGVbXQoJZnJhbWVfYnVyeSAzIC8vIGQgeCBjb21wb25lbnQ6IGJ5dGVbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTk4CgkvLyBsb2coZC55KQoJZnJhbWVfZGlnIDIgLy8gZCB5IGNvbXBvbmVudDogYnl0ZVtdCglsb2cKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjE5OQoJLy8gbG9nKGQueCkKCWZyYW1lX2RpZyAzIC8vIGQgeCBjb21wb25lbnQ6IGJ5dGVbXQoJbG9nCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyMDEKCS8vIHIgPSBlY2RzYVBrUmVjb3ZlcignU2VjcDI1NmsxJywgJycgYXMgYnl0ZXMzMiwgMSwgJycgYXMgYnl0ZXMzMiwgJycgYXMgYnl0ZXMzMikKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIC8vICIiCglpbnQgMQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAgLy8gIiIKCWR1cAoJZWNkc2FfcGtfcmVjb3ZlciBTZWNwMjU2azEKCWZyYW1lX2J1cnkgNiAvLyByIHkgY29tcG9uZW50OiBieXRlW10KCWZyYW1lX2J1cnkgNyAvLyByIHggY29tcG9uZW50OiBieXRlW10KCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjIwMgoJLy8gbG9nKHIueSkKCWZyYW1lX2RpZyA2IC8vIHIgeSBjb21wb25lbnQ6IGJ5dGVbXQoJbG9nCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyMDMKCS8vIGxvZyhyLngpCglmcmFtZV9kaWcgNyAvLyByIHggY29tcG9uZW50OiBieXRlW10KCWxvZwoJcmV0c3ViCgovLyB2ZXJpZnlUeG5UeXBlcygpdm9pZAphYmlfcm91dGVfdmVyaWZ5VHhuVHlwZXM6CgkvLyBleGVjdXRlIHZlcmlmeVR4blR5cGVzKCl2b2lkCgljYWxsc3ViIHZlcmlmeVR4blR5cGVzCglpbnQgMQoJcmV0dXJuCgovLyB2ZXJpZnlUeG5UeXBlcygpOiB2b2lkCnZlcmlmeVR4blR5cGVzOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyMDcKCS8vIHZlcmlmeVBheVR4bih0aGlzLnR4bkdyb3VwWzBdLCB7CgkvLyAgICAgICBhbW91bnQ6IHsgZ3JlYXRlclRoYW46IDAgfSwKCS8vICAgICB9KQoJLy8gdmVyaWZ5IHBheQoJaW50IDAKCWd0eG5zIFR5cGVFbnVtCglpbnQgcGF5Cgk9PQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IGFtb3VudAoJaW50IDAKCWd0eG5zIEFtb3VudAoJaW50IDAKCT4KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjExCgkvLyB2ZXJpZnlBcHBDYWxsVHhuKHRoaXMudHhuR3JvdXBbMF0sIHsKCS8vICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcGxpY2F0aW9uLmZyb21JRCgwKSwKCS8vICAgICAgIGFwcGxpY2F0aW9uQXJnczogewoJLy8gICAgICAgICAwOiAnZm9vJywKCS8vICAgICAgICAgMTogewoJLy8gICAgICAgICAgIGluY2x1ZGVkSW46IFsnYmFyJywgJ2JheiddLAoJLy8gICAgICAgICB9LAoJLy8gICAgICAgfSwKCS8vICAgICB9KQoJLy8gdmVyaWZ5IGFwcGwKCWludCAwCglndHhucyBUeXBlRW51bQoJaW50IGFwcGwKCT09Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYXBwbGljYXRpb25JRAoJaW50IDAKCWd0eG5zIEFwcGxpY2F0aW9uSUQKCWludCAwCgk9PQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IGFwcGxpY2F0aW9uQXJncwoJLy8gdmVyaWZ5IGFwcGxpY2F0aW9uQXJncyAwCglpbnQgMAoJZ3R4bnMgQXBwbGljYXRpb25BcmdzIDAKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCT09Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYXBwbGljYXRpb25BcmdzIDEKCWludCAwCglndHhucyBBcHBsaWNhdGlvbkFyZ3MgMQoJYnl0ZSAweDYyNjE3MiAvLyAiYmFyIgoJPT0KCWludCAwCglndHhucyBBcHBsaWNhdGlvbkFyZ3MgMQoJYnl0ZSAweDYyNjE3YSAvLyAiYmF6IgoJPT0KCXx8Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjIyMQoJLy8gdmVyaWZ5QXNzZXRUcmFuc2ZlclR4bih0aGlzLnR4bkdyb3VwWzBdLCB7CgkvLyAgICAgICBhc3NldFJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgIH0pCgkvLyB2ZXJpZnkgYXhmZXIKCWludCAwCglndHhucyBUeXBlRW51bQoJaW50IGF4ZmVyCgk9PQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IGFzc2V0UmVjZWl2ZXIKCWludCAwCglndHhucyBBc3NldFJlY2VpdmVyCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJPT0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjI1CgkvLyB2ZXJpZnlBc3NldENvbmZpZ1R4bih0aGlzLnR4bkdyb3VwWzBdLCB7CgkvLyAgICAgICBjb25maWdBc3NldDogQXNzZXQuZnJvbUlEKDApLAoJLy8gICAgIH0pCgkvLyB2ZXJpZnkgYWNmZwoJaW50IDAKCWd0eG5zIFR5cGVFbnVtCglpbnQgYWNmZwoJPT0KCWFzc2VydAoKCS8vIHZlcmlmeSBjb25maWdBc3NldAoJaW50IDAKCWd0eG5zIENvbmZpZ0Fzc2V0CglpbnQgMAoJPT0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjI5CgkvLyB2ZXJpZnlLZXlSZWdUeG4odGhpcy50eG5Hcm91cFswXSwgewoJLy8gICAgICAgdm90ZUZpcnN0OiAxMzM3LAoJLy8gICAgIH0pCgkvLyB2ZXJpZnkga2V5cmVnCglpbnQgMAoJZ3R4bnMgVHlwZUVudW0KCWludCBrZXlyZWcKCT09Cglhc3NlcnQKCgkvLyB2ZXJpZnkgdm90ZUZpcnN0CglpbnQgMAoJZ3R4bnMgVm90ZUZpcnN0CglpbnQgMTMzNwoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBzdHJpbmdQbHVzRXF1YWxzKCl2b2lkCmFiaV9yb3V0ZV9zdHJpbmdQbHVzRXF1YWxzOgoJLy8gZXhlY3V0ZSBzdHJpbmdQbHVzRXF1YWxzKCl2b2lkCgljYWxsc3ViIHN0cmluZ1BsdXNFcXVhbHMKCWludCAxCglyZXR1cm4KCi8vIHN0cmluZ1BsdXNFcXVhbHMoKTogdm9pZApzdHJpbmdQbHVzRXF1YWxzOgoJcHJvdG8gMCAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjIzNQoJLy8gcyA9ICdmb28nCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglmcmFtZV9idXJ5IDAgLy8gczogYnl0ZVtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyMzYKCS8vIHMgKz0gJ2JhcicKCWZyYW1lX2RpZyAwIC8vIHM6IGJ5dGVbXQoJYnl0ZSAweDYyNjE3MiAvLyAiYmFyIgoJY29uY2F0CglmcmFtZV9idXJ5IDAgLy8gczogYnl0ZVtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyMzcKCS8vIGFzc2VydChzID09PSAnZm9vYmFyJykKCWZyYW1lX2RpZyAwIC8vIHM6IGJ5dGVbXQoJYnl0ZSAweDY2NmY2ZjYyNjE3MiAvLyAiZm9vYmFyIgoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBpbXBvcnRlZFByb2dyYW0oKWJ5dGVbXQphYmlfcm91dGVfaW1wb3J0ZWRQcm9ncmFtOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGltcG9ydGVkUHJvZ3JhbSgpYnl0ZVtdCgljYWxsc3ViIGltcG9ydGVkUHJvZ3JhbQoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBpbXBvcnRlZFByb2dyYW0oKTogYnl0ZXMKaW1wb3J0ZWRQcm9ncmFtOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyNDEKCS8vIHJldHVybiBJZlRlc3QuYXBwcm92YWxQcm9ncmFtKCk7CglieXRlIGI2NCBDaUFFQVFBQ0lDWUpCQlVmZkhVQ2FXWUVaV3h6WlFObGJtUUFBMlp2YndkbGJITmxJR2xtQ1dWc2MyVWdhV1lnTVFsbGJITmxJR2xtSURJeEdCU0JCZ3N4R1FpTkRBTElBQUFBQUFBQUFBQUFBQUs2QUFBQUFBQUFBQUFBQUFBb05ob0JTUlVpRWtRalU0Z0FERWtWRmxjR0FreFFVTEFpUTRvQkFZdi9RUUFDS1lrcmlTZzJHZ0ZKRlNJU1JDTlRpQUFNU1JVV1Z3WUNURkJRc0NKRGlnRUJpLzlCQUFVcGlVSUFBaXFKaVNnMkdnSkpGU0lTUkNOVE5ob0JTUlVpRWtRalU0Z0FERWtWRmxjR0FreFFVTEFpUTRvQ0FZdi9RUUFGS1lsQ0FBaUwva0VBQXljR2lTdUpLRFlhQWtrVkloSkVJMU0yR2dGSkZTSVNSQ05UaUFBTVNSVVdWd1lDVEZCUXNDSkRpZ0lCaS85QkFBVXBpVUlBRFl2K1FRQUdKd2FKUWdBQ0tvbUpLRFlhQTBrVkloSkVJMU0yR2dKSkZTSVNSQ05UTmhvQlNSVWlFa1FqVTRnQURFa1ZGbGNHQWt4UVVMQWlRNG9EQVl2L1FRQUZLWWxDQUJPTC9rRUFCaWNIaVVJQUNJdjlRUUFESndpSks0a29OaG9EU1JVaUVrUWpVellhQWtrVkloSkVJMU0yR2dGSkZTSVNSQ05UaUFBTVNSVVdWd1lDVEZCUXNDSkRpZ01CaS85QkFBVXBpVUlBR0l2K1FRQUdKd2VKUWdBTmkvMUJBQVluQ0lsQ0FBSXFpWWtvTmhvQ1NSVWlFa1FqVXpZYUFVa1ZJaEpFSTFPSUFBeEpGUlpYQmdKTVVGQ3dJa09LQWdHTC8wRUFGb3YrUVFBTWdBbHVaWE4wWldRZ2FXYUpLWWxDQUFJcWlZa29OaG9CU1JVaUVrUWpVNGdBREVrVkZsY0dBa3hRVUxBaVE0b0JBWXYvUVFBRktZbENBQUlxaVlrb05ob0NTUlVpRWtRalV6WWFBVWtWSWhKRUkxT0lBQVVXVUxBaVE0b0NBWXYvUVFBRUlrSUFDNHYrUVFBRUpFSUFBb0VEaVNnMkdnRlhBZ0NJQUFVV1VMQWlRNG9CQVl2L0p3U3BRUUFDSW9ra2lTZzJHZ0ZYQWdDSUFBVVdVTEFpUTRvQkFZdi9Kd1NwUVFBRUlrSUFBU1NKTmhvQlNSVWtFa1FYaUFBQ0lrT0tBUUNML3ljRXFVRUFBeWNGc0lrMkdnSkpGU1FTUkJjMkdnRkpGU1FTUkJlSUFBSWlRNG9DQUl2L2kvNE9RUUFESndXd2lUWWFBa2tWSlJKRU5ob0JTUlVsRWtTSUFBSWlRNG9DQUl2L2kvNm1RUUFESndXd2lTSkRnQVM0UkhzMk5ob0FqZ0gvOFFDQUJFTnV3Y0tBQkJ4NkRWNkFCRjRQdHMrQUJGNGNiRkNBQkZqUXVwS0FCRjB2VHdLQUJJUlhLZG1BQkkvbmJLaUFCQm84ZUhpQUJIUzh5R2lBQkVJUytRV0FCSlhkcnIrQUJERkh1R2FBQkVLSmYyRTJHZ0NPRHZ6RS9PcjlGUDFQL1k3OTN2NHkvbmYrb2Y3Vy92VC9GUDh4LzFjQQoJcmV0c3ViCgovLyBjYWxsUHJpdmF0ZURlZmluZWRMYXRlcigpdm9pZAphYmlfcm91dGVfY2FsbFByaXZhdGVEZWZpbmVkTGF0ZXI6CgkvLyBleGVjdXRlIGNhbGxQcml2YXRlRGVmaW5lZExhdGVyKCl2b2lkCgljYWxsc3ViIGNhbGxQcml2YXRlRGVmaW5lZExhdGVyCglpbnQgMQoJcmV0dXJuCgovLyBjYWxsUHJpdmF0ZURlZmluZWRMYXRlcigpOiB2b2lkCmNhbGxQcml2YXRlRGVmaW5lZExhdGVyOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyNDUKCS8vIGxvZyh0aGlzLnByaXZhdGVNZXRob2QoJ2hlbGxvJykpCglieXRlIDB4Njg2NTZjNmM2ZiAvLyAiaGVsbG8iCgljYWxsc3ViIHByaXZhdGVNZXRob2QKCWxvZwoJcmV0c3ViCgovLyBwcml2YXRlTWV0aG9kKG1zZzogc3RyaW5nKTogc3RyaW5nCnByaXZhdGVNZXRob2Q6Cglwcm90byAxIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjI0OQoJLy8gcmV0dXJuIG1zZzsKCWZyYW1lX2RpZyAtMSAvLyBtc2c6IHN0cmluZwoJcmV0c3ViCgovLyBpbnRlcmFsUHVibGljTWV0aG9kKHVpbnQ2NCx1aW50NjQpdWludDY0CmFiaV9yb3V0ZV9pbnRlcmFsUHVibGljTWV0aG9kOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGludGVyYWxQdWJsaWNNZXRob2QodWludDY0LHVpbnQ2NCl1aW50NjQKCWNhbGxzdWIgaW50ZXJhbFB1YmxpY01ldGhvZAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGludGVyYWxQdWJsaWNNZXRob2QoYTogdWludDY0LCBiOiB1aW50NjQpOiB1aW50NjQKaW50ZXJhbFB1YmxpY01ldGhvZDoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjUzCgkvLyByZXR1cm4gYSArIGI7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0CgkrCglyZXRzdWIKCi8vIGNhbGxJbnRlcm5hbFB1YmxpY01ldGhvZCgpdm9pZAphYmlfcm91dGVfY2FsbEludGVybmFsUHVibGljTWV0aG9kOgoJLy8gZXhlY3V0ZSBjYWxsSW50ZXJuYWxQdWJsaWNNZXRob2QoKXZvaWQKCWNhbGxzdWIgY2FsbEludGVybmFsUHVibGljTWV0aG9kCglpbnQgMQoJcmV0dXJuCgovLyBjYWxsSW50ZXJuYWxQdWJsaWNNZXRob2QoKTogdm9pZApjYWxsSW50ZXJuYWxQdWJsaWNNZXRob2Q6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjI1NwoJLy8gYXNzZXJ0KHRoaXMuaW50ZXJhbFB1YmxpY01ldGhvZCgxLCAyKSA9PT0gMykKCWludCAyCglpbnQgMQoJY2FsbHN1YiBpbnRlcmFsUHVibGljTWV0aG9kCglpbnQgMwoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBhcHBMb2FkU2NyYXRjaCgpdm9pZAphYmlfcm91dGVfYXBwTG9hZFNjcmF0Y2g6CgkvLyBleGVjdXRlIGFwcExvYWRTY3JhdGNoKCl2b2lkCgljYWxsc3ViIGFwcExvYWRTY3JhdGNoCglpbnQgMQoJcmV0dXJuCgovLyBhcHBMb2FkU2NyYXRjaCgpOiB2b2lkCmFwcExvYWRTY3JhdGNoOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyNjEKCS8vIGxvZyh0aGlzLnR4bkdyb3VwWzFdLmxvYWRTY3JhdGNoKDIpIGFzIGJ5dGVzKQoJZ2xvYWQgMSAyCglsb2cKCXJldHN1YgoKLy8gdWludE5XaXRoVW5kZXJzY29yZSgpdWludDI1NgphYmlfcm91dGVfdWludE5XaXRoVW5kZXJzY29yZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSB1aW50TldpdGhVbmRlcnNjb3JlKCl1aW50MjU2CgljYWxsc3ViIHVpbnROV2l0aFVuZGVyc2NvcmUKCWR1cAoJYml0bGVuCglpbnQgMjU2Cgk8PQoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAzMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHVpbnROV2l0aFVuZGVyc2NvcmUoKTogdWludDI1Ngp1aW50TldpdGhVbmRlcnNjb3JlOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyNjUKCS8vIHJldHVybiA8dWludDI1Nj4xMjNfNDU2OwoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMWUyNDAKCXJldHN1YgoKLy8gb3BVcCgpdm9pZAphYmlfcm91dGVfb3BVcDoKCS8vIGV4ZWN1dGUgb3BVcCgpdm9pZAoJY2FsbHN1YiBvcFVwCglpbnQgMQoJcmV0dXJuCgovLyBvcFVwKCk6IHZvaWQKb3BVcDoKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyNjkKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludCBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCWJ5dGUgYjY0IENvRUIgLy8gI3ByYWdtYSB2ZXJzaW9uIDEwOyBpbnQgMQoJZHVwCglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQoJaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQoJaW50IERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjI3MAoJLy8gZm9yIChsZXQgaSA9IDE7IGkgPCA3NTsgaSArPSAxKQoJaW50IDEKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCmZvcl8wOgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyNzAKCS8vIGkgPCA3NQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgNzUKCTwKCWJ6IGZvcl8wX2VuZAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjcxCgkvLyBhc3NlcnQoaSkKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyNzAKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoJYiBmb3JfMAoKZm9yXzBfZW5kOgoJcmV0c3ViCgovLyByZXR1cm5WYWx1ZU9uQXNzaWdubWVudCgpc3RyaW5nCmFiaV9yb3V0ZV9yZXR1cm5WYWx1ZU9uQXNzaWdubWVudDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSByZXR1cm5WYWx1ZU9uQXNzaWdubWVudCgpc3RyaW5nCgljYWxsc3ViIHJldHVyblZhbHVlT25Bc3NpZ25tZW50CglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHJldHVyblZhbHVlT25Bc3NpZ25tZW50KCk6IHN0cmluZwpyZXR1cm5WYWx1ZU9uQXNzaWdubWVudDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyNzYKCS8vIG1lc3NhZ2UgPSAnaGknCglieXRlIDB4Njg2OSAvLyAiaGkiCglmcmFtZV9idXJ5IDAgLy8gbWVzc2FnZTogYnl0ZVtdCgoJLy8gaWYwX2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyNzgKCS8vIHRoaXMudHhuLnNlbmRlciA9PT0gdGhpcy5hcHAuYWRkcmVzcwoJdHhuIFNlbmRlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09CglieiBpZjBfZW5kCgoJLy8gaWYwX2NvbnNlcXVlbnQKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6Mjc5CgkvLyBtZXNzYWdlID0gJ2luIGJsb2NrJwoJYnl0ZSAweDY5NmUyMDYyNmM2ZjYzNmIgLy8gImluIGJsb2NrIgoJZnJhbWVfYnVyeSAwIC8vIG1lc3NhZ2U6IGJ5dGVbXQoKaWYwX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjgyCgkvLyByZXR1cm4gKG1lc3NhZ2UgPSAnYnllJyk7CglieXRlIDB4NjI3OTY1IC8vICJieWUiCglkdXAKCWZyYW1lX2J1cnkgMCAvLyBtZXNzYWdlOiBieXRlW10KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gcmV0dXJuQXJyYXlWYWx1ZU9uQXNzaWdubWVudCgpdWludDY0CmFiaV9yb3V0ZV9yZXR1cm5BcnJheVZhbHVlT25Bc3NpZ25tZW50OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHJldHVybkFycmF5VmFsdWVPbkFzc2lnbm1lbnQoKXVpbnQ2NAoJY2FsbHN1YiByZXR1cm5BcnJheVZhbHVlT25Bc3NpZ25tZW50CglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gcmV0dXJuQXJyYXlWYWx1ZU9uQXNzaWdubWVudCgpOiB1aW50NjQKcmV0dXJuQXJyYXlWYWx1ZU9uQXNzaWdubWVudDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyODYKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbMSwgMiwgM10KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAxMDAwMDAwMDAwMDAwMDAwMjAwMDAwMDAwMDAwMDAwMDMKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyODgKCS8vIHJldHVybiAoYVswXSA9IDQpOwoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoJaW50IDAKCWludCA0CglkdXAKCXN0b3JlIDI0NSAvLyBhc3NpZ25tZW50IHZhbHVlCglpdG9iCglyZXBsYWNlMwoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWxvYWQgMjQ1IC8vIGFzc2lnbm1lbnQgdmFsdWUKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gcmV0dXJuU3RvcmFnZVZhbHVlT25Bc3NpZ25tZW50KCl1aW50NjQKYWJpX3JvdXRlX3JldHVyblN0b3JhZ2VWYWx1ZU9uQXNzaWdubWVudDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSByZXR1cm5TdG9yYWdlVmFsdWVPbkFzc2lnbm1lbnQoKXVpbnQ2NAoJY2FsbHN1YiByZXR1cm5TdG9yYWdlVmFsdWVPbkFzc2lnbm1lbnQKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyByZXR1cm5TdG9yYWdlVmFsdWVPbkFzc2lnbm1lbnQoKTogdWludDY0CnJldHVyblN0b3JhZ2VWYWx1ZU9uQXNzaWdubWVudDoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjkyCgkvLyB0aGlzLmdLZXkudmFsdWUgPSAxCglieXRlIDB4Njc0YjY1NzkgLy8gImdLZXkiCglpbnQgMQoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjI5NAoJLy8gcmV0dXJuICh0aGlzLmdLZXkudmFsdWUgPSAyKTsKCWJ5dGUgMHg2NzRiNjU3OSAvLyAiZ0tleSIKCWludCAyCglkdXAKCXN0b3JlIDI0NSAvLyBhc3NpZ25tZW50IHZhbHVlCglhcHBfZ2xvYmFsX3B1dAoJbG9hZCAyNDUgLy8gYXNzaWdubWVudCB2YWx1ZQoJcmV0c3ViCgovLyByZXR1cm5PcGVyYXRvckFzc2lnbm1lbnRWYWx1ZSgpdWludDY0CmFiaV9yb3V0ZV9yZXR1cm5PcGVyYXRvckFzc2lnbm1lbnRWYWx1ZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSByZXR1cm5PcGVyYXRvckFzc2lnbm1lbnRWYWx1ZSgpdWludDY0CgljYWxsc3ViIHJldHVybk9wZXJhdG9yQXNzaWdubWVudFZhbHVlCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gcmV0dXJuT3BlcmF0b3JBc3NpZ25tZW50VmFsdWUoKTogdWludDY0CnJldHVybk9wZXJhdG9yQXNzaWdubWVudFZhbHVlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjI5OAoJLy8gYSA9IDEKCWludCAxCglmcmFtZV9idXJ5IDAgLy8gYTogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozMDAKCS8vIHJldHVybiAoYSArPSAyKTsKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQ2NAoJaW50IDIKCSsKCWR1cAoJc3RvcmUgMjQ1IC8vIGFzc2lnbm1lbnQgdmFsdWUKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50NjQKCWxvYWQgMjQ1IC8vIGFzc2lnbm1lbnQgdmFsdWUKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gcmV0dXJuQXJyYXlWYWx1ZU9uT3BlcmF0b3JBc3NpZ25tZW50KCl1aW50NjQKYWJpX3JvdXRlX3JldHVybkFycmF5VmFsdWVPbk9wZXJhdG9yQXNzaWdubWVudDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSByZXR1cm5BcnJheVZhbHVlT25PcGVyYXRvckFzc2lnbm1lbnQoKXVpbnQ2NAoJY2FsbHN1YiByZXR1cm5BcnJheVZhbHVlT25PcGVyYXRvckFzc2lnbm1lbnQKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyByZXR1cm5BcnJheVZhbHVlT25PcGVyYXRvckFzc2lnbm1lbnQoKTogdWludDY0CnJldHVybkFycmF5VmFsdWVPbk9wZXJhdG9yQXNzaWdubWVudDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozMDQKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbMSwgMiwgM10KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAxMDAwMDAwMDAwMDAwMDAwMjAwMDAwMDAwMDAwMDAwMDMKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozMDYKCS8vIHJldHVybiAoYVswXSArPSA0KTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWludCAwCglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CglleHRyYWN0IDAgOAoJYnRvaQoJaW50IDQKCSsKCWR1cAoJc3RvcmUgMjQ1IC8vIGFzc2lnbm1lbnQgdmFsdWUKCWl0b2IKCXJlcGxhY2UzCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoJbG9hZCAyNDUgLy8gYXNzaWdubWVudCB2YWx1ZQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyByZXR1cm5BcnJheUluU3RvcmFnZVZhbHVlT25PcGVyYXRvckFzc2lnbm1lbnQoKXVpbnQ2NAphYmlfcm91dGVfcmV0dXJuQXJyYXlJblN0b3JhZ2VWYWx1ZU9uT3BlcmF0b3JBc3NpZ25tZW50OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHJldHVybkFycmF5SW5TdG9yYWdlVmFsdWVPbk9wZXJhdG9yQXNzaWdubWVudCgpdWludDY0CgljYWxsc3ViIHJldHVybkFycmF5SW5TdG9yYWdlVmFsdWVPbk9wZXJhdG9yQXNzaWdubWVudAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHJldHVybkFycmF5SW5TdG9yYWdlVmFsdWVPbk9wZXJhdG9yQXNzaWdubWVudCgpOiB1aW50NjQKcmV0dXJuQXJyYXlJblN0b3JhZ2VWYWx1ZU9uT3BlcmF0b3JBc3NpZ25tZW50OgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozMTAKCS8vIHRoaXMuc3RvcmFnZUFycmF5LnZhbHVlID0gWzEsIDIsIDNdCglieXRlIDB4NzM3NDZmNzI2MTY3NjU0MTcyNzI2MTc5IC8vICJzdG9yYWdlQXJyYXkiCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzEyCgkvLyByZXR1cm4gKHRoaXMuc3RvcmFnZUFycmF5LnZhbHVlWzBdICs9IDQpOwoJYnl0ZSAweDczNzQ2ZjcyNjE2NzY1NDE3MjcyNjE3OSAvLyAic3RvcmFnZUFycmF5IgoJYXBwX2dsb2JhbF9nZXQKCWludCAwCglieXRlIDB4NzM3NDZmNzI2MTY3NjU0MTcyNzI2MTc5IC8vICJzdG9yYWdlQXJyYXkiCglhcHBfZ2xvYmFsX2dldAoJZXh0cmFjdCAwIDgKCWJ0b2kKCWludCA0CgkrCglkdXAKCXN0b3JlIDI0NSAvLyBhc3NpZ25tZW50IHZhbHVlCglpdG9iCglyZXBsYWNlMwoJYnl0ZSAweDczNzQ2ZjcyNjE2NzY1NDE3MjcyNjE3OSAvLyAic3RvcmFnZUFycmF5IgoJc3dhcAoJYXBwX2dsb2JhbF9wdXQKCWxvYWQgMjQ1IC8vIGFzc2lnbm1lbnQgdmFsdWUKCXJldHN1YgoKLy8gY29uc3RzKCl2b2lkCmFiaV9yb3V0ZV9jb25zdHM6CgkvLyBleGVjdXRlIGNvbnN0cygpdm9pZAoJY2FsbHN1YiBjb25zdHMKCWludCAxCglyZXR1cm4KCi8vIGNvbnN0cygpOiB2b2lkCmNvbnN0czoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzE2CgkvLyBhc3NlcnQoU1RSSU5HX0NPTlNUID09PSAnZm9vJykKCWJ5dGUgImZvbyIKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCT09Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjMxNwoJLy8gYXNzZXJ0KE5VTV9DT05TVCA9PT0gMTIzKQoJaW50IDEyMwoJZHVwCgk9PQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozMTgKCS8vIGFzc2VydChORVNURURfQ09OU1QgPT09IDEyMykKCWludCAxMjMKCWR1cAoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBhc3NlcnRXaXRoTWVzc2FnZSgpdm9pZAphYmlfcm91dGVfYXNzZXJ0V2l0aE1lc3NhZ2U6CgkvLyBleGVjdXRlIGFzc2VydFdpdGhNZXNzYWdlKCl2b2lkCgljYWxsc3ViIGFzc2VydFdpdGhNZXNzYWdlCglpbnQgMQoJcmV0dXJuCgovLyBhc3NlcnRXaXRoTWVzc2FnZSgpOiB2b2lkCmFzc2VydFdpdGhNZXNzYWdlOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozMjIKCS8vIGFzc2VydChmYWxzZSwgJ3RoaXMgaXMgZmFsc2UnKQoJaW50IDAKCgkvLyB0aGlzIGlzIGZhbHNlCglhc3NlcnQKCXJldHN1YgoKLy8gb3Bjb2RlQWxpYXNlcygpdm9pZAphYmlfcm91dGVfb3Bjb2RlQWxpYXNlczoKCS8vIGV4ZWN1dGUgb3Bjb2RlQWxpYXNlcygpdm9pZAoJY2FsbHN1YiBvcGNvZGVBbGlhc2VzCglpbnQgMQoJcmV0dXJuCgovLyBvcGNvZGVBbGlhc2VzKCk6IHZvaWQKb3Bjb2RlQWxpYXNlczoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzI2CgkvLyBleHRyYWN0VWludDE2KGJ6ZXJvKDY0KSwgMCkKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoJaW50IDAKCWV4dHJhY3RfdWludDE2CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozMjcKCS8vIGV4dHJhY3RVaW50MzIoYnplcm8oNjQpLCAwKQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCglpbnQgMAoJZXh0cmFjdF91aW50MzIKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjMyOAoJLy8gZXh0cmFjdFVpbnQ2NChiemVybyg2NCksIDApCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCWludCAwCglleHRyYWN0X3VpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzI5CgkvLyBlZDI1NTE5VmVyaWZ5QmFyZShiemVybyg2NCksIGJ6ZXJvKDY0KSwgYnplcm8oMzIpKQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCglkdXAKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCgllZDI1NTE5dmVyaWZ5X2JhcmUKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjMzMAoJLy8gZWQyNTUxOVZlcmlmeShiemVybyg2NCksIGJ6ZXJvKDY0KSwgYnplcm8oMzIpKQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCglkdXAKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCgllZDI1NTE5dmVyaWZ5CglyZXRzdWIKCi8vIHZyZlZlcmlmeU9wKCl2b2lkCmFiaV9yb3V0ZV92cmZWZXJpZnlPcDoKCS8vIGV4ZWN1dGUgdnJmVmVyaWZ5T3AoKXZvaWQKCWNhbGxzdWIgdnJmVmVyaWZ5T3AKCWludCAxCglyZXR1cm4KCi8vIHZyZlZlcmlmeU9wKCk6IHZvaWQKdnJmVmVyaWZ5T3A6Cglwcm90byAwIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiAzCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozMzQKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludCBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCWJ5dGUgYjY0IENvRUIgLy8gI3ByYWdtYSB2ZXJzaW9uIDEwOyBpbnQgMQoJZHVwCglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQoJaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQoJaW50IERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjMzNQoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWludCAwCglpdHhuX2ZpZWxkIEZlZQoJYnl0ZSBiNjQgQ29FQiAvLyAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglpbnQgRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzM2CgkvLyBpbmNyZWFzZU9wY29kZUJ1ZGdldCgpCglpdHhuX2JlZ2luCglpbnQgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50IDAKCWl0eG5fZmllbGQgRmVlCglieXRlIGI2NCBDb0VCIC8vICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCWludCBEZWxldGVBcHBsaWNhdGlvbgoJaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KCWl0eG5fc3VibWl0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozMzcKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludCBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCWJ5dGUgYjY0IENvRUIgLy8gI3ByYWdtYSB2ZXJzaW9uIDEwOyBpbnQgMQoJZHVwCglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQoJaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQoJaW50IERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjMzOAoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWludCAwCglpdHhuX2ZpZWxkIEZlZQoJYnl0ZSBiNjQgQ29FQiAvLyAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglpbnQgRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzM5CgkvLyBpbmNyZWFzZU9wY29kZUJ1ZGdldCgpCglpdHhuX2JlZ2luCglpbnQgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50IDAKCWl0eG5fZmllbGQgRmVlCglieXRlIGI2NCBDb0VCIC8vICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCWludCBEZWxldGVBcHBsaWNhdGlvbgoJaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KCWl0eG5fc3VibWl0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNDAKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludCBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCWJ5dGUgYjY0IENvRUIgLy8gI3ByYWdtYSB2ZXJzaW9uIDEwOyBpbnQgMQoJZHVwCglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQoJaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQoJaW50IERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM0MQoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWludCAwCglpdHhuX2ZpZWxkIEZlZQoJYnl0ZSBiNjQgQ29FQiAvLyAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglpbnQgRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzQyCgkvLyBpbmNyZWFzZU9wY29kZUJ1ZGdldCgpCglpdHhuX2JlZ2luCglpbnQgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50IDAKCWl0eG5fZmllbGQgRmVlCglieXRlIGI2NCBDb0VCIC8vICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCWludCBEZWxldGVBcHBsaWNhdGlvbgoJaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KCWl0eG5fc3VibWl0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNDQKCS8vIHIgPSB2cmZWZWZpcnkoJ1ZyZkFsZ29yYW5kJywgYnplcm8oMzIpIGFzIGJ5dGVzLCBiemVybyg4MCksIGJ6ZXJvKDMyKSkKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCXZyZl92ZXJpZnkgVnJmQWxnb3JhbmQKCWZyYW1lX2J1cnkgMiAvLyByIHZlcmlmaWVkOiBib29sCglmcmFtZV9idXJ5IDMgLy8gciBvdXRwdXQ6IGJ5dGVbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzQ1CgkvLyBhc3NlcnQoIXIudmVyaWZpZWQpCglmcmFtZV9kaWcgMiAvLyByIHZlcmlmaWVkOiBib29sCgkhCglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM0NgoJLy8gbG9nKHIub3V0cHV0KQoJZnJhbWVfZGlnIDMgLy8gciBvdXRwdXQ6IGJ5dGVbXQoJbG9nCglyZXRzdWIKCi8vIGVjTWF0aCgpdm9pZAphYmlfcm91dGVfZWNNYXRoOgoJLy8gZXhlY3V0ZSBlY01hdGgoKXZvaWQKCWNhbGxzdWIgZWNNYXRoCglpbnQgMQoJcmV0dXJuCgovLyBlY01hdGgoKTogdm9pZAplY01hdGg6Cglwcm90byAwIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzUwCgkvLyBlY1NjYWxhck11bCgnQk4yNTRnMScsICcnLCAnJykKCWJ5dGUgMHggLy8gIiIKCWR1cAoJZWNfc2NhbGFyX211bCBCTjI1NGcxCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNTEKCS8vIGVjUGFpcmluZ0NoZWNrKCdCTjI1NGcxJywgJycsICcnKQoJYnl0ZSAweCAvLyAiIgoJZHVwCgllY19wYWlyaW5nX2NoZWNrIEJOMjU0ZzEKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM1MgoJLy8gc2NhbGFyczogYnl0ZXMzMltdID0gW2J6ZXJvKDMyKSwgYnplcm8oMzIpXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCglmcmFtZV9idXJ5IDAgLy8gc2NhbGFyczogYnl0ZXMzMltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNTMKCS8vIGVjTXVsdGlTY2FsYXJNdWwoJ0JOMjU0ZzEnLCAnJywgc2NhbGFycykKCWJ5dGUgMHggLy8gIiIKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCAvLyBzY2FsYXJzOiBieXRlczMyW10KCWVjX211bHRpX3NjYWxhcl9tdWwgQk4yNTRnMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzU0CgkvLyBlY1N1Ymdyb3VwQ2hlY2soJ0JOMjU0ZzEnLCAnJykKCWJ5dGUgMHggLy8gIiIKCWVjX3N1Ymdyb3VwX2NoZWNrIEJOMjU0ZzEKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM1NQoJLy8gZWNNYXBUbygnQk4yNTRnMScsICcnKQoJYnl0ZSAweCAvLyAiIgoJZWNfbWFwX3RvIEJOMjU0ZzEKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM1NgoJLy8gZWNBZGQoJ0JOMjU0ZzEnLCAnJywgJycpCglieXRlIDB4IC8vICIiCglkdXAKCWVjX2FkZCBCTjI1NGcxCglyZXRzdWIKCi8vIGdpdHhuKCl2b2lkCmFiaV9yb3V0ZV9naXR4bjoKCS8vIGV4ZWN1dGUgZ2l0eG4oKXZvaWQKCWNhbGxzdWIgZ2l0eG4KCWludCAxCglyZXR1cm4KCi8vIGdpdHhuKCk6IHZvaWQKZ2l0eG46Cglwcm90byAwIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzYwCgkvLyBsb2codGhpcy5sYXN0SW5uZXJHcm91cFswXS5zZW5kZXIpCglnaXR4biAwIFNlbmRlcgoJbG9nCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNjIKCS8vIGFub3RoZXJUeG4gPSB0aGlzLmxhc3RJbm5lckdyb3VwWzFdCglpbnQgMQoJZnJhbWVfYnVyeSAwIC8vIGFub3RoZXJUeG46IGdpdHhuCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNjQKCS8vIGxvZyhhbm90aGVyVHhuLnNlbmRlcikKCWdpdHhuIDEgU2VuZGVyCglsb2cKCXJldHN1YgoKLy8gZ2V0U2V0Qnl0ZXMoKXZvaWQKYWJpX3JvdXRlX2dldFNldEJ5dGVzOgoJLy8gZXhlY3V0ZSBnZXRTZXRCeXRlcygpdm9pZAoJY2FsbHN1YiBnZXRTZXRCeXRlcwoJaW50IDEKCXJldHVybgoKLy8gZ2V0U2V0Qnl0ZXMoKTogdm9pZApnZXRTZXRCeXRlczoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzY4CgkvLyBsb2coc2V0Yml0KCdmb28nLCAwLCB0cnVlKSkKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWludCAwCglpbnQgMQoJc2V0Yml0Cglsb2cKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM2OQoJLy8gZ2V0Yml0KCdmb28nLCAwKQoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJaW50IDAKCWdldGJpdAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzcwCgkvLyBnZXRieXRlKCdmb28nLCAwKQoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJaW50IDAKCWdldGJ5dGUKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM3MQoJLy8gc2V0Ynl0ZSgnZm9vJywgMCwgMSkKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWludCAwCglpbnQgMQoJc2V0Ynl0ZQoJcmV0c3ViCgovLyBnZXRTZXRVaW50NjQoKXZvaWQKYWJpX3JvdXRlX2dldFNldFVpbnQ2NDoKCS8vIGV4ZWN1dGUgZ2V0U2V0VWludDY0KCl2b2lkCgljYWxsc3ViIGdldFNldFVpbnQ2NAoJaW50IDEKCXJldHVybgoKLy8gZ2V0U2V0VWludDY0KCk6IHZvaWQKZ2V0U2V0VWludDY0OgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNzUKCS8vIGFzc2VydChzZXRiaXQoMTIzLCAwLCB0cnVlKSkKCWludCAxMjMKCWludCAwCglpbnQgMQoJc2V0Yml0Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM3NgoJLy8gZ2V0Yml0KDEyMywgMCkKCWludCAxMjMKCWludCAwCglnZXRiaXQKCXJldHN1YgoKLy8gYmxvY2tPcCgpdm9pZAphYmlfcm91dGVfYmxvY2tPcDoKCS8vIGV4ZWN1dGUgYmxvY2tPcCgpdm9pZAoJY2FsbHN1YiBibG9ja09wCglpbnQgMQoJcmV0dXJuCgovLyBibG9ja09wKCk6IHZvaWQKYmxvY2tPcDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzgwCgkvLyBsb2coYmxvY2tzW2dsb2JhbHMucm91bmQgLSAxXS5zZWVkKQoJZ2xvYmFsIFJvdW5kCglpbnQgMQoJLQoJYmxvY2sgQmxrU2VlZAoJbG9nCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozODEKCS8vIGFzc2VydChibG9ja3NbZ2xvYmFscy5yb3VuZCAtIDFdLnRpbWVzdGFtcCkKCWdsb2JhbCBSb3VuZAoJaW50IDEKCS0KCWJsb2NrIEJsa1RpbWVzdGFtcAoJYXNzZXJ0CglyZXRzdWIKCi8vIGI2NCgpdm9pZAphYmlfcm91dGVfYjY0OgoJLy8gZXhlY3V0ZSBiNjQoKXZvaWQKCWNhbGxzdWIgYjY0CglpbnQgMQoJcmV0dXJuCgovLyBiNjQoKTogdm9pZApiNjQ6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM4NQoJLy8gbG9nKGJhc2U2NERlY29kZSgnU3RkRW5jb2RpbmcnLCAnJykpCglieXRlIDB4IC8vICIiCgliYXNlNjRfZGVjb2RlIFN0ZEVuY29kaW5nCglsb2cKCXJldHN1YgoKLy8ganNvbigpdm9pZAphYmlfcm91dGVfanNvbjoKCS8vIGV4ZWN1dGUganNvbigpdm9pZAoJY2FsbHN1YiBqc29uCglpbnQgMQoJcmV0dXJuCgovLyBqc29uKCk6IHZvaWQKanNvbjoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6Mzg5CgkvLyBsb2coanNvblJlZignSlNPTk9iamVjdCcsICcnLCAnJykpCglieXRlIDB4IC8vICIiCglkdXAKCWpzb25fcmVmIEpTT05PYmplY3QKCWxvZwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzkwCgkvLyBsb2coanNvblJlZignSlNPTlN0cmluZycsICcnLCAnJykpCglieXRlIDB4IC8vICIiCglkdXAKCWpzb25fcmVmIEpTT05TdHJpbmcKCWxvZwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzkxCgkvLyBhc3NlcnQoanNvblJlZignSlNPTlVpbnQ2NCcsICcnLCAnJykpCglieXRlIDB4IC8vICIiCglkdXAKCWpzb25fcmVmIEpTT05VaW50NjQKCWFzc2VydAoJcmV0c3ViCgovLyBiaXRsZW5PcCgpdm9pZAphYmlfcm91dGVfYml0bGVuT3A6CgkvLyBleGVjdXRlIGJpdGxlbk9wKCl2b2lkCgljYWxsc3ViIGJpdGxlbk9wCglpbnQgMQoJcmV0dXJuCgovLyBiaXRsZW5PcCgpOiB2b2lkCmJpdGxlbk9wOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozOTUKCS8vIGJpdGxlbigxMjMpCglpbnQgMTIzCgliaXRsZW4KCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM5NgoJLy8gYml0bGVuKCdmb28nKQoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYml0bGVuCglyZXRzdWIKCi8vIGNvbXB1dGVkQ29uc3QoKXZvaWQKYWJpX3JvdXRlX2NvbXB1dGVkQ29uc3Q6CgkvLyBleGVjdXRlIGNvbXB1dGVkQ29uc3QoKXZvaWQKCWNhbGxzdWIgY29tcHV0ZWRDb25zdAoJaW50IDEKCXJldHVybgoKLy8gY29tcHV0ZWRDb25zdCgpOiB2b2lkCmNvbXB1dGVkQ29uc3Q6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQwMAoJLy8gYXNzZXJ0KENPTVBVVEVEX0NPTlNUKQoJaW50IDI0NgoJYXNzZXJ0CglyZXRzdWIKCi8vIG11bHRpQ29tcHV0ZWRDb25zdCgpdm9pZAphYmlfcm91dGVfbXVsdGlDb21wdXRlZENvbnN0OgoJLy8gZXhlY3V0ZSBtdWx0aUNvbXB1dGVkQ29uc3QoKXZvaWQKCWNhbGxzdWIgbXVsdGlDb21wdXRlZENvbnN0CglpbnQgMQoJcmV0dXJuCgovLyBtdWx0aUNvbXB1dGVkQ29uc3QoKTogdm9pZAptdWx0aUNvbXB1dGVkQ29uc3Q6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQwNAoJLy8gYXNzZXJ0KE1VVExJX0NPTVBVVEVEX0NPTlNUKQoJaW50IDMwMzgxCglhc3NlcnQKCXJldHN1YgoKLy8gY29tcHV0ZWRDb25zdEFzU3RhdGljQXJyYXlMZW5ndGgoKXZvaWQKYWJpX3JvdXRlX2NvbXB1dGVkQ29uc3RBc1N0YXRpY0FycmF5TGVuZ3RoOgoJLy8gZXhlY3V0ZSBjb21wdXRlZENvbnN0QXNTdGF0aWNBcnJheUxlbmd0aCgpdm9pZAoJY2FsbHN1YiBjb21wdXRlZENvbnN0QXNTdGF0aWNBcnJheUxlbmd0aAoJaW50IDEKCXJldHVybgoKLy8gY29tcHV0ZWRDb25zdEFzU3RhdGljQXJyYXlMZW5ndGgoKTogdm9pZApjb21wdXRlZENvbnN0QXNTdGF0aWNBcnJheUxlbmd0aDoKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0MDgKCS8vIGE6IE15VHlwZSA9IFtdCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCglmcmFtZV9idXJ5IDAgLy8gYTogTXlUeXBlCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0MDkKCS8vIGFzc2VydChhLmxlbmd0aCA9PT0gQ09NUFVURURfQ09OU1QpCglpbnQgMjQ2CglkdXAKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gcmVhZFNjaGVtYSgpdm9pZAphYmlfcm91dGVfcmVhZFNjaGVtYToKCS8vIGV4ZWN1dGUgcmVhZFNjaGVtYSgpdm9pZAoJY2FsbHN1YiByZWFkU2NoZW1hCglpbnQgMQoJcmV0dXJuCgovLyByZWFkU2NoZW1hKCk6IHZvaWQKcmVhZFNjaGVtYToKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NDEzCgkvLyBhc3NlcnQoU2NoZW1hQ29udHJhY3Quc2NoZW1hLmdsb2JhbC5udW1VaW50ID09PSAxKQoJaW50IDEKCWR1cAoJPT0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NDE0CgkvLyBhc3NlcnQoU2NoZW1hQ29udHJhY3Quc2NoZW1hLmdsb2JhbC5udW1CeXRlU2xpY2UgPT09IDIpCglpbnQgMgoJZHVwCgk9PQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0MTUKCS8vIGFzc2VydChTY2hlbWFDb250cmFjdC5zY2hlbWEubG9jYWwubnVtVWludCA9PT0gMykKCWludCAzCglkdXAKCT09Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQxNgoJLy8gYXNzZXJ0KFNjaGVtYUNvbnRyYWN0LnNjaGVtYS5sb2NhbC5udW1CeXRlU2xpY2UgPT09IDQpCglpbnQgNAoJZHVwCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIGNvbXBhcmlzb25PcigpYm9vbAphYmlfcm91dGVfY29tcGFyaXNvbk9yOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGNvbXBhcmlzb25PcigpYm9vbAoJY2FsbHN1YiBjb21wYXJpc29uT3IKCWJ5dGUgMHgwMAoJaW50IDAKCXVuY292ZXIgMgoJc2V0Yml0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gY29tcGFyaXNvbk9yKCk6IGJvb2xlYW4KY29tcGFyaXNvbk9yOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0MjAKCS8vIHJldHVybiB0aGlzLnR4bi5zZW5kZXIgPT09IGdsb2JhbHMuemVyb0FkZHJlc3MgfHwgdGhpcy50eG4uc2VuZGVyID09PSBnbG9iYWxzLnplcm9BZGRyZXNzOwoJdHhuIFNlbmRlcgoJZ2xvYmFsIFplcm9BZGRyZXNzCgk9PQoJZHVwCglibnogc2tpcF9vcjAKCXR4biBTZW5kZXIKCWdsb2JhbCBaZXJvQWRkcmVzcwoJPT0KCXx8Cgpza2lwX29yMDoKCXJldHN1YgoKLy8gdHhuQXJnc01ldGhvZChwYXkpdm9pZAphYmlfcm91dGVfdHhuQXJnc01ldGhvZDoKCS8vIF9wYXkxOiBwYXkKCXR4biBHcm91cEluZGV4CglpbnQgMQoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJaW50IHBheQoJPT0KCWFzc2VydAoKCS8vIGV4ZWN1dGUgdHhuQXJnc01ldGhvZChwYXkpdm9pZAoJY2FsbHN1YiB0eG5BcmdzTWV0aG9kCglpbnQgMQoJcmV0dXJuCgovLyB0eG5BcmdzTWV0aG9kKF9wYXkxOiBQYXlUeG4pOiB2b2lkCnR4bkFyZ3NNZXRob2Q6Cglwcm90byAxIDAKCXJldHN1YgoKLy8gY2FsbFR4bkFyZ3NNZXRob2QoKXZvaWQKYWJpX3JvdXRlX2NhbGxUeG5BcmdzTWV0aG9kOgoJLy8gZXhlY3V0ZSBjYWxsVHhuQXJnc01ldGhvZCgpdm9pZAoJY2FsbHN1YiBjYWxsVHhuQXJnc01ldGhvZAoJaW50IDEKCXJldHVybgoKLy8gY2FsbFR4bkFyZ3NNZXRob2QoKTogdm9pZApjYWxsVHhuQXJnc01ldGhvZDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NDI3CgkvLyBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgR2VuZXJhbFRlc3QucHJvdG90eXBlLnR4bkFyZ3NNZXRob2Q+KHsKCS8vICAgICAgIG1ldGhvZEFyZ3M6IFt7IHJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLCBhbW91bnQ6IDAgfV0sCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludCBwYXkKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQyOAoJLy8gcmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIFJlY2VpdmVyCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0MjgKCS8vIGFtb3VudDogMAoJaW50IDAKCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCglpdHhuX25leHQKCWludCBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgltZXRob2QgInR4bkFyZ3NNZXRob2QocGF5KXZvaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NDI4CgkvLyBtZXRob2RBcmdzOiBbeyByZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywgYW1vdW50OiAwIH1dCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglyZXRzdWIKCi8vIHN0YXRpY1ZhbHVlTGVuKHVpbnQyNTYpdm9pZAphYmlfcm91dGVfc3RhdGljVmFsdWVMZW46CgkvLyB4OiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBzdGF0aWNWYWx1ZUxlbih1aW50MjU2KXZvaWQKCWNhbGxzdWIgc3RhdGljVmFsdWVMZW4KCWludCAxCglyZXR1cm4KCi8vIHN0YXRpY1ZhbHVlTGVuKHg6IHVpbnQyNTYpOiB2b2lkCnN0YXRpY1ZhbHVlTGVuOgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0MzMKCS8vIGFzc2VydChsZW4oeCkpCglpbnQgMzIKCWFzc2VydAoJcmV0c3ViCgovLyBzdGF0aWNUeXBlTGVuKCl2b2lkCmFiaV9yb3V0ZV9zdGF0aWNUeXBlTGVuOgoJLy8gZXhlY3V0ZSBzdGF0aWNUeXBlTGVuKCl2b2lkCgljYWxsc3ViIHN0YXRpY1R5cGVMZW4KCWludCAxCglyZXR1cm4KCi8vIHN0YXRpY1R5cGVMZW4oKTogdm9pZApzdGF0aWNUeXBlTGVuOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0MzcKCS8vIGFzc2VydChsZW48dWludDI1Nj4oKSkKCWludCAzMgoJYXNzZXJ0CglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgInR4blR5cGVFbnVtKCl2b2lkIgoJbWV0aG9kICJ0eG5Hcm91cExlbmd0aCgpdm9pZCIKCW1ldGhvZCAiYXNzZXJ0cyhib29sLGJvb2wpdm9pZCIKCW1ldGhvZCAidmVyaWZ5VHhuRnJvbUFyZyhwYXkpdm9pZCIKCW1ldGhvZCAidmVyaWZ5VHhuRnJvbVR4bkdyb3VwKCl2b2lkIgoJbWV0aG9kICJ2ZXJpZnlUeG5Db25kaXRpb24oKXZvaWQiCgltZXRob2QgInZlcmlmeVR4bkluY2x1ZGVkSW4oKXZvaWQiCgltZXRob2QgInZlcmlmeVR4bk5vdEluY2x1ZGVkSW4oKXZvaWQiCgltZXRob2QgInN1Ym1pdFBlbmRpbmdHcm91cCgpdm9pZCIKCW1ldGhvZCAibWV0aG9kV2l0aFR4bkFyZ3MoKXZvaWQiCgltZXRob2QgInNoaWZ0KCl2b2lkIgoJbWV0aG9kICJmcm9tQnl0ZXMoKXZvaWQiCgltZXRob2QgImZyb21JRCgpdm9pZCIKCW1ldGhvZCAiYnplcm9GdW5jdGlvbigpdm9pZCIKCW1ldGhvZCAiZXZlbnRzKCl2b2lkIgoJbWV0aG9kICJsZXRPcHRpbWl6YXRpb24odWludDY0W10pdWludDY0W10iCgltZXRob2QgInN0YXRpY0NvbnRyYWN0UHJvcGVydGllcygpdm9pZCIKCW1ldGhvZCAibnVtYmVyVG9TdHJpbmcoKXZvaWQiCgltZXRob2QgIm1ldGhvZE9uUGFyZW5zKCl2b2lkIgoJbWV0aG9kICJzdHJpbmdTdWJzdHJpbmcoKXZvaWQiCgltZXRob2QgImlkUHJvcGVydHkoKXZvaWQiCgltZXRob2QgInNjcmF0Y2hTbG90KCl2b2lkIgoJbWV0aG9kICJlY2RzYSgpdm9pZCIKCW1ldGhvZCAidmVyaWZ5VHhuVHlwZXMoKXZvaWQiCgltZXRob2QgInN0cmluZ1BsdXNFcXVhbHMoKXZvaWQiCgltZXRob2QgImltcG9ydGVkUHJvZ3JhbSgpYnl0ZVtdIgoJbWV0aG9kICJjYWxsUHJpdmF0ZURlZmluZWRMYXRlcigpdm9pZCIKCW1ldGhvZCAiaW50ZXJhbFB1YmxpY01ldGhvZCh1aW50NjQsdWludDY0KXVpbnQ2NCIKCW1ldGhvZCAiY2FsbEludGVybmFsUHVibGljTWV0aG9kKCl2b2lkIgoJbWV0aG9kICJhcHBMb2FkU2NyYXRjaCgpdm9pZCIKCW1ldGhvZCAidWludE5XaXRoVW5kZXJzY29yZSgpdWludDI1NiIKCW1ldGhvZCAib3BVcCgpdm9pZCIKCW1ldGhvZCAicmV0dXJuVmFsdWVPbkFzc2lnbm1lbnQoKXN0cmluZyIKCW1ldGhvZCAicmV0dXJuQXJyYXlWYWx1ZU9uQXNzaWdubWVudCgpdWludDY0IgoJbWV0aG9kICJyZXR1cm5TdG9yYWdlVmFsdWVPbkFzc2lnbm1lbnQoKXVpbnQ2NCIKCW1ldGhvZCAicmV0dXJuT3BlcmF0b3JBc3NpZ25tZW50VmFsdWUoKXVpbnQ2NCIKCW1ldGhvZCAicmV0dXJuQXJyYXlWYWx1ZU9uT3BlcmF0b3JBc3NpZ25tZW50KCl1aW50NjQiCgltZXRob2QgInJldHVybkFycmF5SW5TdG9yYWdlVmFsdWVPbk9wZXJhdG9yQXNzaWdubWVudCgpdWludDY0IgoJbWV0aG9kICJjb25zdHMoKXZvaWQiCgltZXRob2QgImFzc2VydFdpdGhNZXNzYWdlKCl2b2lkIgoJbWV0aG9kICJvcGNvZGVBbGlhc2VzKCl2b2lkIgoJbWV0aG9kICJ2cmZWZXJpZnlPcCgpdm9pZCIKCW1ldGhvZCAiZWNNYXRoKCl2b2lkIgoJbWV0aG9kICJnaXR4bigpdm9pZCIKCW1ldGhvZCAiZ2V0U2V0Qnl0ZXMoKXZvaWQiCgltZXRob2QgImdldFNldFVpbnQ2NCgpdm9pZCIKCW1ldGhvZCAiYmxvY2tPcCgpdm9pZCIKCW1ldGhvZCAiYjY0KCl2b2lkIgoJbWV0aG9kICJqc29uKCl2b2lkIgoJbWV0aG9kICJiaXRsZW5PcCgpdm9pZCIKCW1ldGhvZCAiY29tcHV0ZWRDb25zdCgpdm9pZCIKCW1ldGhvZCAibXVsdGlDb21wdXRlZENvbnN0KCl2b2lkIgoJbWV0aG9kICJjb21wdXRlZENvbnN0QXNTdGF0aWNBcnJheUxlbmd0aCgpdm9pZCIKCW1ldGhvZCAicmVhZFNjaGVtYSgpdm9pZCIKCW1ldGhvZCAiY29tcGFyaXNvbk9yKClib29sIgoJbWV0aG9kICJ0eG5BcmdzTWV0aG9kKHBheSl2b2lkIgoJbWV0aG9kICJjYWxsVHhuQXJnc01ldGhvZCgpdm9pZCIKCW1ldGhvZCAic3RhdGljVmFsdWVMZW4odWludDI1Nil2b2lkIgoJbWV0aG9kICJzdGF0aWNUeXBlTGVuKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX3R4blR5cGVFbnVtIGFiaV9yb3V0ZV90eG5Hcm91cExlbmd0aCBhYmlfcm91dGVfYXNzZXJ0cyBhYmlfcm91dGVfdmVyaWZ5VHhuRnJvbUFyZyBhYmlfcm91dGVfdmVyaWZ5VHhuRnJvbVR4bkdyb3VwIGFiaV9yb3V0ZV92ZXJpZnlUeG5Db25kaXRpb24gYWJpX3JvdXRlX3ZlcmlmeVR4bkluY2x1ZGVkSW4gYWJpX3JvdXRlX3ZlcmlmeVR4bk5vdEluY2x1ZGVkSW4gYWJpX3JvdXRlX3N1Ym1pdFBlbmRpbmdHcm91cCBhYmlfcm91dGVfbWV0aG9kV2l0aFR4bkFyZ3MgYWJpX3JvdXRlX3NoaWZ0IGFiaV9yb3V0ZV9mcm9tQnl0ZXMgYWJpX3JvdXRlX2Zyb21JRCBhYmlfcm91dGVfYnplcm9GdW5jdGlvbiBhYmlfcm91dGVfZXZlbnRzIGFiaV9yb3V0ZV9sZXRPcHRpbWl6YXRpb24gYWJpX3JvdXRlX3N0YXRpY0NvbnRyYWN0UHJvcGVydGllcyBhYmlfcm91dGVfbnVtYmVyVG9TdHJpbmcgYWJpX3JvdXRlX21ldGhvZE9uUGFyZW5zIGFiaV9yb3V0ZV9zdHJpbmdTdWJzdHJpbmcgYWJpX3JvdXRlX2lkUHJvcGVydHkgYWJpX3JvdXRlX3NjcmF0Y2hTbG90IGFiaV9yb3V0ZV9lY2RzYSBhYmlfcm91dGVfdmVyaWZ5VHhuVHlwZXMgYWJpX3JvdXRlX3N0cmluZ1BsdXNFcXVhbHMgYWJpX3JvdXRlX2ltcG9ydGVkUHJvZ3JhbSBhYmlfcm91dGVfY2FsbFByaXZhdGVEZWZpbmVkTGF0ZXIgYWJpX3JvdXRlX2ludGVyYWxQdWJsaWNNZXRob2QgYWJpX3JvdXRlX2NhbGxJbnRlcm5hbFB1YmxpY01ldGhvZCBhYmlfcm91dGVfYXBwTG9hZFNjcmF0Y2ggYWJpX3JvdXRlX3VpbnROV2l0aFVuZGVyc2NvcmUgYWJpX3JvdXRlX29wVXAgYWJpX3JvdXRlX3JldHVyblZhbHVlT25Bc3NpZ25tZW50IGFiaV9yb3V0ZV9yZXR1cm5BcnJheVZhbHVlT25Bc3NpZ25tZW50IGFiaV9yb3V0ZV9yZXR1cm5TdG9yYWdlVmFsdWVPbkFzc2lnbm1lbnQgYWJpX3JvdXRlX3JldHVybk9wZXJhdG9yQXNzaWdubWVudFZhbHVlIGFiaV9yb3V0ZV9yZXR1cm5BcnJheVZhbHVlT25PcGVyYXRvckFzc2lnbm1lbnQgYWJpX3JvdXRlX3JldHVybkFycmF5SW5TdG9yYWdlVmFsdWVPbk9wZXJhdG9yQXNzaWdubWVudCBhYmlfcm91dGVfY29uc3RzIGFiaV9yb3V0ZV9hc3NlcnRXaXRoTWVzc2FnZSBhYmlfcm91dGVfb3Bjb2RlQWxpYXNlcyBhYmlfcm91dGVfdnJmVmVyaWZ5T3AgYWJpX3JvdXRlX2VjTWF0aCBhYmlfcm91dGVfZ2l0eG4gYWJpX3JvdXRlX2dldFNldEJ5dGVzIGFiaV9yb3V0ZV9nZXRTZXRVaW50NjQgYWJpX3JvdXRlX2Jsb2NrT3AgYWJpX3JvdXRlX2I2NCBhYmlfcm91dGVfanNvbiBhYmlfcm91dGVfYml0bGVuT3AgYWJpX3JvdXRlX2NvbXB1dGVkQ29uc3QgYWJpX3JvdXRlX211bHRpQ29tcHV0ZWRDb25zdCBhYmlfcm91dGVfY29tcHV0ZWRDb25zdEFzU3RhdGljQXJyYXlMZW5ndGggYWJpX3JvdXRlX3JlYWRTY2hlbWEgYWJpX3JvdXRlX2NvbXBhcmlzb25PciBhYmlfcm91dGVfdHhuQXJnc01ldGhvZCBhYmlfcm91dGVfY2FsbFR4bkFyZ3NNZXRob2QgYWJpX3JvdXRlX3N0YXRpY1ZhbHVlTGVuIGFiaV9yb3V0ZV9zdGF0aWNUeXBlTGVuCgllcnIKCmludFRvQXNjaWk6Cglwcm90byAxIDEKCWJ5dGUgMHgzMDMxMzIzMzM0MzUzNjM3MzgzOSAvLyAiMDEyMzQ1Njc4OSIKCWZyYW1lX2RpZyAtMSAvLyBpOiB1aW50NjQKCWludCAxCglleHRyYWN0MwoJcmV0c3ViCgkKCml0b2E6Cglwcm90byAxIDEKCWZyYW1lX2RpZyAtMSAvLyBpOiB1aW50NjQKCWludCAwCgk9PQoJYnogaXRvYV9pZl9lbmQKCWJ5dGUgMHgxNTFmN2M3NTAwMDEzMAoJbG9nCglyZXRzdWIKCml0b2FfaWZfZW5kOgoJZnJhbWVfZGlnIC0xIC8vIGk6IHVpbnQ2NAoJaW50IDEwCgkvCglpbnQgMAoJPgoJYnogaXRvYV90ZXJuYXJ5X2ZhbHNlCglmcmFtZV9kaWcgLTEgLy8gaTogdWludDY0CglpbnQgMTAKCS8KCWNhbGxzdWIgaXRvYQoJYiBpdG9hX3Rlcm5hcnlfZW5kCgppdG9hX3Rlcm5hcnlfZmFsc2U6CglieXRlIDB4IC8vICIiCgppdG9hX3Rlcm5hcnlfZW5kOgoJZnJhbWVfZGlnIC0xIC8vIGk6IHVpbnQ2NAoJaW50IDEwCgklCgljYWxsc3ViIGludFRvQXNjaWkKCWNvbmNhdAoJcmV0c3Vi", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyB0eG5UeXBlRW51bSgpdm9pZAoqYWJpX3JvdXRlX3R4blR5cGVFbnVtOgoJLy8gZXhlY3V0ZSB0eG5UeXBlRW51bSgpdm9pZAoJY2FsbHN1YiB0eG5UeXBlRW51bQoJaW50IDEKCXJldHVybgoKLy8gdHhuVHlwZUVudW0oKTogdm9pZAp0eG5UeXBlRW51bToKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NTMKCS8vIGFzc2VydCh0aGlzLnR4bkdyb3VwWzBdLnR5cGVFbnVtID09PSBUcmFuc2FjdGlvblR5cGUuQXBwbGljYXRpb25DYWxsKQoJaW50IDAKCWd0eG5zIFR5cGVFbnVtCglpbnQgYXBwbAoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyB0eG5Hcm91cExlbmd0aCgpdm9pZAoqYWJpX3JvdXRlX3R4bkdyb3VwTGVuZ3RoOgoJLy8gZXhlY3V0ZSB0eG5Hcm91cExlbmd0aCgpdm9pZAoJY2FsbHN1YiB0eG5Hcm91cExlbmd0aAoJaW50IDEKCXJldHVybgoKLy8gdHhuR3JvdXBMZW5ndGgoKTogdm9pZAp0eG5Hcm91cExlbmd0aDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NTcKCS8vIGFzc2VydCh0aGlzLnR4bkdyb3VwLmxlbmd0aCA9PT0gMSkKCWdsb2JhbCBHcm91cFNpemUKCWludCAxCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIGFzc2VydHMoYm9vbCxib29sKXZvaWQKKmFiaV9yb3V0ZV9hc3NlcnRzOgoJLy8gYXJnMjogYm9vbAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAxCgk9PQoJYXNzZXJ0CglpbnQgMAoJZ2V0Yml0CgoJLy8gYXJnMTogYm9vbAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAxCgk9PQoJYXNzZXJ0CglpbnQgMAoJZ2V0Yml0CgoJLy8gZXhlY3V0ZSBhc3NlcnRzKGJvb2wsYm9vbCl2b2lkCgljYWxsc3ViIGFzc2VydHMKCWludCAxCglyZXR1cm4KCi8vIGFzc2VydHMoYXJnMTogYm9vbGVhbiwgYXJnMjogYm9vbGVhbik6IHZvaWQKYXNzZXJ0czoKCXByb3RvIDIgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NjEKCS8vIGFzc2VydHMoYXJnMSwgYXJnMiwgYXJnMSA9PT0gYXJnMikKCWZyYW1lX2RpZyAtMSAvLyBhcmcxOiBib29sZWFuCglhc3NlcnQKCWZyYW1lX2RpZyAtMiAvLyBhcmcyOiBib29sZWFuCglhc3NlcnQKCWZyYW1lX2RpZyAtMSAvLyBhcmcxOiBib29sZWFuCglmcmFtZV9kaWcgLTIgLy8gYXJnMjogYm9vbGVhbgoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyB2ZXJpZnlUeG5Gcm9tQXJnKHBheSl2b2lkCiphYmlfcm91dGVfdmVyaWZ5VHhuRnJvbUFyZzoKCS8vIHNvbWVQYXk6IHBheQoJdHhuIEdyb3VwSW5kZXgKCWludCAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgcGF5Cgk9PQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSB2ZXJpZnlUeG5Gcm9tQXJnKHBheSl2b2lkCgljYWxsc3ViIHZlcmlmeVR4bkZyb21BcmcKCWludCAxCglyZXR1cm4KCi8vIHZlcmlmeVR4bkZyb21Bcmcoc29tZVBheTogUGF5VHhuKTogdm9pZAp2ZXJpZnlUeG5Gcm9tQXJnOgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo2NQoJLy8gdmVyaWZ5VHhuKHNvbWVQYXksIHsgcmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MsIGFtb3VudDogMTAwXzAwMCB9KQoJLy8gdmVyaWZ5IHJlY2VpdmVyCglmcmFtZV9kaWcgLTEgLy8gc29tZVBheTogUGF5VHhuCglndHhucyBSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYW1vdW50CglmcmFtZV9kaWcgLTEgLy8gc29tZVBheTogUGF5VHhuCglndHhucyBBbW91bnQKCWludCAxMDBfMDAwCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIHZlcmlmeVR4bkZyb21UeG5Hcm91cCgpdm9pZAoqYWJpX3JvdXRlX3ZlcmlmeVR4bkZyb21UeG5Hcm91cDoKCS8vIGV4ZWN1dGUgdmVyaWZ5VHhuRnJvbVR4bkdyb3VwKCl2b2lkCgljYWxsc3ViIHZlcmlmeVR4bkZyb21UeG5Hcm91cAoJaW50IDEKCXJldHVybgoKLy8gdmVyaWZ5VHhuRnJvbVR4bkdyb3VwKCk6IHZvaWQKdmVyaWZ5VHhuRnJvbVR4bkdyb3VwOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo2OQoJLy8gdmVyaWZ5VHhuKHRoaXMudHhuR3JvdXBbMF0sIHsgc2VuZGVyOiB0aGlzLnR4bi5zZW5kZXIgfSkKCS8vIHZlcmlmeSBzZW5kZXIKCWludCAwCglndHhucyBTZW5kZXIKCXR4biBTZW5kZXIKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gdmVyaWZ5VHhuQ29uZGl0aW9uKCl2b2lkCiphYmlfcm91dGVfdmVyaWZ5VHhuQ29uZGl0aW9uOgoJLy8gZXhlY3V0ZSB2ZXJpZnlUeG5Db25kaXRpb24oKXZvaWQKCWNhbGxzdWIgdmVyaWZ5VHhuQ29uZGl0aW9uCglpbnQgMQoJcmV0dXJuCgovLyB2ZXJpZnlUeG5Db25kaXRpb24oKTogdm9pZAp2ZXJpZnlUeG5Db25kaXRpb246Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjczCgkvLyB2ZXJpZnlUeG4odGhpcy50eG4sIHsKCS8vICAgICAgIGFwcGxpY2F0aW9uSUQ6IHsgZ3JlYXRlclRoYW46IDEgfSwKCS8vICAgICB9KQoJLy8gdmVyaWZ5IGFwcGxpY2F0aW9uSUQKCXR4biBBcHBsaWNhdGlvbklECglpbnQgMQoJPgoJYXNzZXJ0CglyZXRzdWIKCi8vIHZlcmlmeVR4bkluY2x1ZGVkSW4oKXZvaWQKKmFiaV9yb3V0ZV92ZXJpZnlUeG5JbmNsdWRlZEluOgoJLy8gZXhlY3V0ZSB2ZXJpZnlUeG5JbmNsdWRlZEluKCl2b2lkCgljYWxsc3ViIHZlcmlmeVR4bkluY2x1ZGVkSW4KCWludCAxCglyZXR1cm4KCi8vIHZlcmlmeVR4bkluY2x1ZGVkSW4oKTogdm9pZAp2ZXJpZnlUeG5JbmNsdWRlZEluOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo3OQoJLy8gdmVyaWZ5VHhuKHRoaXMudHhuLCB7CgkvLyAgICAgICBzZW5kZXI6IHsgaW5jbHVkZWRJbjogW3RoaXMudHhuLnNlbmRlcl0gfSwKCS8vICAgICB9KQoJLy8gdmVyaWZ5IHNlbmRlcgoJdHhuIFNlbmRlcgoJdHhuIFNlbmRlcgoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyB2ZXJpZnlUeG5Ob3RJbmNsdWRlZEluKCl2b2lkCiphYmlfcm91dGVfdmVyaWZ5VHhuTm90SW5jbHVkZWRJbjoKCS8vIGV4ZWN1dGUgdmVyaWZ5VHhuTm90SW5jbHVkZWRJbigpdm9pZAoJY2FsbHN1YiB2ZXJpZnlUeG5Ob3RJbmNsdWRlZEluCglpbnQgMQoJcmV0dXJuCgovLyB2ZXJpZnlUeG5Ob3RJbmNsdWRlZEluKCk6IHZvaWQKdmVyaWZ5VHhuTm90SW5jbHVkZWRJbjoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6ODUKCS8vIHZlcmlmeVR4bih0aGlzLnR4biwgewoJLy8gICAgICAgc2VuZGVyOiB7IG5vdEluY2x1ZGVkSW46IFtnbG9iYWxzLnplcm9BZGRyZXNzXSB9LAoJLy8gICAgIH0pCgkvLyB2ZXJpZnkgc2VuZGVyCgl0eG4gU2VuZGVyCglnbG9iYWwgWmVyb0FkZHJlc3MKCSE9Cglhc3NlcnQKCXJldHN1YgoKLy8gc3VibWl0UGVuZGluZ0dyb3VwKCl2b2lkCiphYmlfcm91dGVfc3VibWl0UGVuZGluZ0dyb3VwOgoJLy8gZXhlY3V0ZSBzdWJtaXRQZW5kaW5nR3JvdXAoKXZvaWQKCWNhbGxzdWIgc3VibWl0UGVuZGluZ0dyb3VwCglpbnQgMQoJcmV0dXJuCgovLyBzdWJtaXRQZW5kaW5nR3JvdXAoKTogdm9pZApzdWJtaXRQZW5kaW5nR3JvdXA6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjkxCgkvLyB0aGlzLnBlbmRpbmdHcm91cC5hZGRQYXltZW50KHsgYW1vdW50OiAwLCByZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywgaXNGaXJzdFR4bjogdHJ1ZSB9KQoJaXR4bl9iZWdpbgoJaW50IHBheQoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6OTEKCS8vIGFtb3VudDogMAoJaW50IDAKCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo5MQoJLy8gcmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIFJlY2VpdmVyCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo5MgoJLy8gdGhpcy5wZW5kaW5nR3JvdXAuYWRkUGF5bWVudCh7IGFtb3VudDogMCwgcmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MsIG5vdGU6ICdmb28nIH0pCglpdHhuX25leHQKCWludCBwYXkKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjkyCgkvLyBhbW91bnQ6IDAKCWludCAwCglpdHhuX2ZpZWxkIEFtb3VudAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6OTIKCS8vIHJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6OTIKCS8vIG5vdGU6ICdmb28nCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglpdHhuX2ZpZWxkIE5vdGUKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjkzCgkvLyB0aGlzLnBlbmRpbmdHcm91cC5zdWJtaXQoKQoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gbWV0aG9kV2l0aFR4bkFyZ3MoKXZvaWQKKmFiaV9yb3V0ZV9tZXRob2RXaXRoVHhuQXJnczoKCS8vIGV4ZWN1dGUgbWV0aG9kV2l0aFR4bkFyZ3MoKXZvaWQKCWNhbGxzdWIgbWV0aG9kV2l0aFR4bkFyZ3MKCWludCAxCglyZXR1cm4KCi8vIG1ldGhvZFdpdGhUeG5BcmdzKCk6IHZvaWQKbWV0aG9kV2l0aFR4bkFyZ3M6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjk3CgkvLyBzZW5kTWV0aG9kQ2FsbDxbUGF5VHhuLCBNZXRob2RDYWxsPFt1aW50NjRdLCB2b2lkPl0sIHZvaWQ+KHsKCS8vICAgICAgIG5hbWU6ICdmb28nLAoJLy8gICAgICAgbWV0aG9kQXJnczogWwoJLy8gICAgICAgICB7IGFtb3VudDogMTAwXzAwMCwgcmVjZWl2ZXI6IHRoaXMudHhuLnNlbmRlciB9LAoJLy8gICAgICAgICB7CgkvLyAgICAgICAgICAgbmFtZTogJ2JhcicsCgkvLyAgICAgICAgICAgYXBwbGljYXRpb25JRDogQXBwbGljYXRpb24uZnJvbUlEKDEzMzcpLAoJLy8gICAgICAgICAgIG1ldGhvZEFyZ3M6IFsxXSwKCS8vICAgICAgICAgfSwKCS8vICAgICAgIF0sCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludCBwYXkKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjEwMAoJLy8gYW1vdW50OiAxMDBfMDAwCglpbnQgMTAwXzAwMAoJaXR4bl9maWVsZCBBbW91bnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjEwMAoJLy8gcmVjZWl2ZXI6IHRoaXMudHhuLnNlbmRlcgoJdHhuIFNlbmRlcgoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoJaXR4bl9uZXh0CglpbnQgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJbWV0aG9kICJiYXIodWludDY0KXZvaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTAzCgkvLyBhcHBsaWNhdGlvbklEOiBBcHBsaWNhdGlvbi5mcm9tSUQoMTMzNykKCWludCAxMzM3CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjEwNAoJLy8gbWV0aG9kQXJnczogWzFdCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMQoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCWl0eG5fbmV4dAoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCW1ldGhvZCAiZm9vKHBheSxhcHBsKXZvaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6OTkKCS8vIG1ldGhvZEFyZ3M6IFsKCS8vICAgICAgICAgeyBhbW91bnQ6IDEwMF8wMDAsIHJlY2VpdmVyOiB0aGlzLnR4bi5zZW5kZXIgfSwKCS8vICAgICAgICAgewoJLy8gICAgICAgICAgIG5hbWU6ICdiYXInLAoJLy8gICAgICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcGxpY2F0aW9uLmZyb21JRCgxMzM3KSwKCS8vICAgICAgICAgICBtZXRob2RBcmdzOiBbMV0sCgkvLyAgICAgICAgIH0sCgkvLyAgICAgICBdCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglyZXRzdWIKCi8vIHNoaWZ0KCl2b2lkCiphYmlfcm91dGVfc2hpZnQ6CgkvLyBleGVjdXRlIHNoaWZ0KCl2b2lkCgljYWxsc3ViIHNoaWZ0CglpbnQgMQoJcmV0dXJuCgovLyBzaGlmdCgpOiB2b2lkCnNoaWZ0OgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMTEKCS8vIGFzc2VydCgxIDw8IDIgPT09IDQpCglpbnQgMQoJaW50IDIKCXNobAoJaW50IDQKCT09Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjExMgoJLy8gYXNzZXJ0KDQgPj4gMSA9PT0gMikKCWludCA0CglpbnQgMQoJc2hyCglpbnQgMgoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBmcm9tQnl0ZXMoKXZvaWQKKmFiaV9yb3V0ZV9mcm9tQnl0ZXM6CgkvLyBleGVjdXRlIGZyb21CeXRlcygpdm9pZAoJY2FsbHN1YiBmcm9tQnl0ZXMKCWludCAxCglyZXR1cm4KCi8vIGZyb21CeXRlcygpOiB2b2lkCmZyb21CeXRlczoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTE2CgkvLyBhc3NlcnQoQWRkcmVzcy5mcm9tQnl0ZXMoJ2FiYycpLm1pbkJhbGFuY2UpCglieXRlIDB4NjE2MjYzIC8vICJhYmMiCglhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKCXBvcAoJYXNzZXJ0CglyZXRzdWIKCi8vIGZyb21JRCgpdm9pZAoqYWJpX3JvdXRlX2Zyb21JRDoKCS8vIGV4ZWN1dGUgZnJvbUlEKCl2b2lkCgljYWxsc3ViIGZyb21JRAoJaW50IDEKCXJldHVybgoKLy8gZnJvbUlEKCk6IHZvaWQKZnJvbUlEOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMjAKCS8vIGxvZyhBcHBsaWNhdGlvbi5mcm9tSUQoMTIzKS5jcmVhdG9yKQoJaW50IDEyMwoJYXBwX3BhcmFtc19nZXQgQXBwQ3JlYXRvcgoJcG9wCglsb2cKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjEyMQoJLy8gbG9nKEFzc2V0LmZyb21JRCgxMjMpLmNyZWF0b3IpCglpbnQgMTIzCglhc3NldF9wYXJhbXNfZ2V0IEFzc2V0Q3JlYXRvcgoJcG9wCglsb2cKCXJldHN1YgoKLy8gYnplcm9GdW5jdGlvbigpdm9pZAoqYWJpX3JvdXRlX2J6ZXJvRnVuY3Rpb246CgkvLyBleGVjdXRlIGJ6ZXJvRnVuY3Rpb24oKXZvaWQKCWNhbGxzdWIgYnplcm9GdW5jdGlvbgoJaW50IDEKCXJldHVybgoKLy8gYnplcm9GdW5jdGlvbigpOiB2b2lkCmJ6ZXJvRnVuY3Rpb246Cglwcm90byAwIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiAyCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMjYKCS8vIHg6IGJ5dGVzID0gYnplcm8oMikKCWJ5dGUgMHgwMDAwCglmcmFtZV9idXJ5IDAgLy8geDogYnl0ZXMKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjEyNwoJLy8geTogYnl0ZXMgPSBiemVybyhuKQoJaW50IDEKCWJ6ZXJvCglmcmFtZV9idXJ5IDEgLy8geTogYnl0ZXMKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjEyOAoJLy8gejogW3VpbnQ2NCwgdWludDw4Pl0gPSBiemVybzxbdWludDY0LCB1aW50PDg+XT4oKQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMAoJZnJhbWVfYnVyeSAyIC8vIHo6IFt1aW50NjQsIHVpbnQ8OD5dCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMjkKCS8vIGFzc2VydChsZW4oeCArIHkgKyB6KSA9PT0gMTIpCglieXRlIDB4MDAwMCAvLyB4OiBieXRlcwoJZnJhbWVfZGlnIDEgLy8geTogYnl0ZXMKCWNvbmNhdAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMCAvLyB6OiBbdWludDY0LCB1aW50PDg+XQoJY29uY2F0CglsZW4KCWludCAxMgoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBldmVudHMoKXZvaWQKKmFiaV9yb3V0ZV9ldmVudHM6CgkvLyBleGVjdXRlIGV2ZW50cygpdm9pZAoJY2FsbHN1YiBldmVudHMKCWludCAxCglyZXR1cm4KCi8vIGV2ZW50cygpOiB2b2lkCmV2ZW50czoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTQ0CgkvLyB0aGlzLm15RXZlbnQubG9nKHsgYXBwOiB0aGlzLmFwcCwgbnVtOiAxIH0pCglieXRlIDB4ODc1MjgxOTYgLy8gbXlFdmVudCh1aW50NjQsdWludDY0KQoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJaXRvYgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDEKCWNvbmNhdAoJY29uY2F0Cglsb2cKCXJldHN1YgoKLy8gbGV0T3B0aW1pemF0aW9uKHVpbnQ2NFtdKXVpbnQ2NFtdCiphYmlfcm91dGVfbGV0T3B0aW1pemF0aW9uOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBhOiB1aW50NjRbXQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIGxldE9wdGltaXphdGlvbih1aW50NjRbXSl1aW50NjRbXQoJY2FsbHN1YiBsZXRPcHRpbWl6YXRpb24KCWR1cAoJbGVuCglpbnQgOAoJLwoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGxldE9wdGltaXphdGlvbihhOiB1aW50NjRbXSk6IHVpbnQ2NFtdCmxldE9wdGltaXphdGlvbjoKCXByb3RvIDEgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTQ4CgkvLyBhc3NlcnQoYVswXSkKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjRbXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWV4dHJhY3QgMCA4CglidG9pCglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjE1MAoJLy8gYiA9IFsxLCAyLCAzXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMwoJZnJhbWVfYnVyeSAtMSAvLyBiOiB1aW50NjRbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTUyCgkvLyByZXR1cm4gYjsKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjRbXQoJcmV0c3ViCgovLyBzdGF0aWNDb250cmFjdFByb3BlcnRpZXMoKXZvaWQKKmFiaV9yb3V0ZV9zdGF0aWNDb250cmFjdFByb3BlcnRpZXM6CgkvLyBleGVjdXRlIHN0YXRpY0NvbnRyYWN0UHJvcGVydGllcygpdm9pZAoJY2FsbHN1YiBzdGF0aWNDb250cmFjdFByb3BlcnRpZXMKCWludCAxCglyZXR1cm4KCi8vIHN0YXRpY0NvbnRyYWN0UHJvcGVydGllcygpOiB2b2lkCnN0YXRpY0NvbnRyYWN0UHJvcGVydGllczoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTU2CgkvLyBzZW5kQXBwQ2FsbCh7CgkvLyAgICAgICBvbkNvbXBsZXRpb246IE9uQ29tcGxldGlvbi5Ob09wLAoJLy8gICAgICAgYXBwcm92YWxQcm9ncmFtOiBEdW1teUNvbnRyYWN0LmFwcHJvdmFsUHJvZ3JhbSgpLAoJLy8gICAgICAgY2xlYXJTdGF0ZVByb2dyYW06IER1bW15Q29udHJhY3QuY2xlYXJQcm9ncmFtKCksCgkvLyAgICAgICBsb2NhbE51bUJ5dGVTbGljZTogRHVtbXlDb250cmFjdC5zY2hlbWEubG9jYWwubnVtQnl0ZVNsaWNlLAoJLy8gICAgICAgbG9jYWxOdW1VaW50OiBEdW1teUNvbnRyYWN0LnNjaGVtYS5sb2NhbC5udW1VaW50LAoJLy8gICAgICAgZ2xvYmFsTnVtQnl0ZVNsaWNlOiBEdW1teUNvbnRyYWN0LnNjaGVtYS5nbG9iYWwubnVtQnl0ZVNsaWNlLAoJLy8gICAgICAgZ2xvYmFsTnVtVWludDogRHVtbXlDb250cmFjdC5zY2hlbWEuZ2xvYmFsLm51bVVpbnQsCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludCBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxNTcKCS8vIG9uQ29tcGxldGlvbjogT25Db21wbGV0aW9uLk5vT3AKCWludCAwIC8vIE5vT3AKCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxNTgKCS8vIGFwcHJvdmFsUHJvZ3JhbTogRHVtbXlDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKQoJYnl0ZSBiNjQgQ2pFWUZJRUdDekVaQ0kwTUFBQUFBQUFBQUFBQUFBQUFBQVFBQUFBQUFBQUFBQUFBQUlFQlE0QUV1RVI3TmpZYUFJNEIvL0FBCglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTU5CgkvLyBjbGVhclN0YXRlUHJvZ3JhbTogRHVtbXlDb250cmFjdC5jbGVhclByb2dyYW0oKQoJYnl0ZSBiNjQgQ2c9PQoJaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTYwCgkvLyBsb2NhbE51bUJ5dGVTbGljZTogRHVtbXlDb250cmFjdC5zY2hlbWEubG9jYWwubnVtQnl0ZVNsaWNlCglpbnQgMAoJaXR4bl9maWVsZCBMb2NhbE51bUJ5dGVTbGljZQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTYxCgkvLyBsb2NhbE51bVVpbnQ6IER1bW15Q29udHJhY3Quc2NoZW1hLmxvY2FsLm51bVVpbnQKCWludCAwCglpdHhuX2ZpZWxkIExvY2FsTnVtVWludAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTYyCgkvLyBnbG9iYWxOdW1CeXRlU2xpY2U6IER1bW15Q29udHJhY3Quc2NoZW1hLmdsb2JhbC5udW1CeXRlU2xpY2UKCWludCAwCglpdHhuX2ZpZWxkIEdsb2JhbE51bUJ5dGVTbGljZQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTYzCgkvLyBnbG9iYWxOdW1VaW50OiBEdW1teUNvbnRyYWN0LnNjaGVtYS5nbG9iYWwubnVtVWludAoJaW50IDAKCWl0eG5fZmllbGQgR2xvYmFsTnVtVWludAoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gbnVtYmVyVG9TdHJpbmcoKXZvaWQKKmFiaV9yb3V0ZV9udW1iZXJUb1N0cmluZzoKCS8vIGV4ZWN1dGUgbnVtYmVyVG9TdHJpbmcoKXZvaWQKCWNhbGxzdWIgbnVtYmVyVG9TdHJpbmcKCWludCAxCglyZXR1cm4KCi8vIG51bWJlclRvU3RyaW5nKCk6IHZvaWQKbnVtYmVyVG9TdHJpbmc6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjE3MAoJLy8gYXNzZXJ0KG4udG9TdHJpbmcoKSA9PT0gcykKCWludCAxCgljYWxsc3ViICppdG9hCglieXRlICIxIgoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBtZXRob2RPblBhcmVucygpdm9pZAoqYWJpX3JvdXRlX21ldGhvZE9uUGFyZW5zOgoJLy8gZXhlY3V0ZSBtZXRob2RPblBhcmVucygpdm9pZAoJY2FsbHN1YiBtZXRob2RPblBhcmVucwoJaW50IDEKCXJldHVybgoKLy8gbWV0aG9kT25QYXJlbnMoKTogdm9pZAptZXRob2RPblBhcmVuczoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTc0CgkvLyBhc3NlcnQoKDEgKyAyKS50b1N0cmluZygpID09PSAnMycpCglpbnQgMwoJY2FsbHN1YiAqaXRvYQoJYnl0ZSAweDMzIC8vICIzIgoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBzdHJpbmdTdWJzdHJpbmcoKXZvaWQKKmFiaV9yb3V0ZV9zdHJpbmdTdWJzdHJpbmc6CgkvLyBleGVjdXRlIHN0cmluZ1N1YnN0cmluZygpdm9pZAoJY2FsbHN1YiBzdHJpbmdTdWJzdHJpbmcKCWludCAxCglyZXR1cm4KCi8vIHN0cmluZ1N1YnN0cmluZygpOiB2b2lkCnN0cmluZ1N1YnN0cmluZzoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTc5CgkvLyBhc3NlcnQocy5zdWJzdHJpbmcoMSwgMykgPT09ICdiYycpCglieXRlICJhYmNkZWYiCglzdWJzdHJpbmcgMSAzCglieXRlIDB4NjI2MyAvLyAiYmMiCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIGlkUHJvcGVydHkoKXZvaWQKKmFiaV9yb3V0ZV9pZFByb3BlcnR5OgoJLy8gZXhlY3V0ZSBpZFByb3BlcnR5KCl2b2lkCgljYWxsc3ViIGlkUHJvcGVydHkKCWludCAxCglyZXR1cm4KCi8vIGlkUHJvcGVydHkoKTogdm9pZAppZFByb3BlcnR5OgoJcHJvdG8gMCAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTgzCgkvLyBhcHAgPSBBcHBsaWNhdGlvbi56ZXJvSW5kZXgKCWludCAwCglmcmFtZV9idXJ5IDAgLy8gYXBwOiBhcHBsaWNhdGlvbgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTg0CgkvLyBhc3NlcnQoQXBwbGljYXRpb24uZnJvbUlEKGFwcC5pZCkgPT09IGFwcCkKCWludCAwIC8vIGFwcDogYXBwbGljYXRpb24KCWR1cAoJPT0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTg2CgkvLyBhc2EgPSBBc3NldC56ZXJvSW5kZXgKCWludCAwCglmcmFtZV9idXJ5IDEgLy8gYXNhOiBhc3NldAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTg3CgkvLyBhc3NlcnQoQXNzZXQuZnJvbUlEKGFzYS5pZCkgPT09IGFzYSkKCWludCAwIC8vIGFzYTogYXNzZXQKCWR1cAoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBzY3JhdGNoU2xvdCgpdm9pZAoqYWJpX3JvdXRlX3NjcmF0Y2hTbG90OgoJLy8gZXhlY3V0ZSBzY3JhdGNoU2xvdCgpdm9pZAoJY2FsbHN1YiBzY3JhdGNoU2xvdAoJaW50IDEKCXJldHVybgoKLy8gc2NyYXRjaFNsb3QoKTogdm9pZApzY3JhdGNoU2xvdDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTkxCgkvLyB0aGlzLnNjcmF0Y2gudmFsdWUgPSAxMzM3CglpbnQgMTMzNwoJc3RvcmUgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTkyCgkvLyBhc3NlcnQodGhpcy5zY3JhdGNoLnZhbHVlID09PSAxMzM3KQoJbG9hZCAwCglpbnQgMTMzNwoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBlY2RzYSgpdm9pZAoqYWJpX3JvdXRlX2VjZHNhOgoJLy8gZXhlY3V0ZSBlY2RzYSgpdm9pZAoJY2FsbHN1YiBlY2RzYQoJaW50IDEKCXJldHVybgoKLy8gZWNkc2EoKTogdm9pZAplY2RzYToKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDcKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjE5NgoJLy8gZWNkc2FWZXJpZnkoJ1NlY3AyNTZrMScsICcnIGFzIGJ5dGVzMzIsICcnIGFzIGJ5dGVzMzIsICcnIGFzIGJ5dGVzMzIsICcnIGFzIGJ5dGVzMzIsICcnIGFzIGJ5dGVzMzIpCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCAvLyAiIgoJZHVwbiA0CgllY2RzYV92ZXJpZnkgU2VjcDI1NmsxCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxOTcKCS8vIGQgPSBlY2RzYVBrRGVjb21wcmVzcygnU2VjcDI1NmsxJywgJycgYXMgYnl0ZXM8MzM+KQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCAvLyAiIgoJZWNkc2FfcGtfZGVjb21wcmVzcyBTZWNwMjU2azEKCWZyYW1lX2J1cnkgMiAvLyBkIHkgY29tcG9uZW50OiBieXRlW10KCWZyYW1lX2J1cnkgMyAvLyBkIHggY29tcG9uZW50OiBieXRlW10KCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjE5OAoJLy8gbG9nKGQueSkKCWZyYW1lX2RpZyAyIC8vIGQgeSBjb21wb25lbnQ6IGJ5dGVbXQoJbG9nCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxOTkKCS8vIGxvZyhkLngpCglmcmFtZV9kaWcgMyAvLyBkIHggY29tcG9uZW50OiBieXRlW10KCWxvZwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjAxCgkvLyByID0gZWNkc2FQa1JlY292ZXIoJ1NlY3AyNTZrMScsICcnIGFzIGJ5dGVzMzIsIDEsICcnIGFzIGJ5dGVzMzIsICcnIGFzIGJ5dGVzMzIpCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCAvLyAiIgoJaW50IDEKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIC8vICIiCglkdXAKCWVjZHNhX3BrX3JlY292ZXIgU2VjcDI1NmsxCglmcmFtZV9idXJ5IDYgLy8gciB5IGNvbXBvbmVudDogYnl0ZVtdCglmcmFtZV9idXJ5IDcgLy8gciB4IGNvbXBvbmVudDogYnl0ZVtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyMDIKCS8vIGxvZyhyLnkpCglmcmFtZV9kaWcgNiAvLyByIHkgY29tcG9uZW50OiBieXRlW10KCWxvZwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjAzCgkvLyBsb2coci54KQoJZnJhbWVfZGlnIDcgLy8gciB4IGNvbXBvbmVudDogYnl0ZVtdCglsb2cKCXJldHN1YgoKLy8gdmVyaWZ5VHhuVHlwZXMoKXZvaWQKKmFiaV9yb3V0ZV92ZXJpZnlUeG5UeXBlczoKCS8vIGV4ZWN1dGUgdmVyaWZ5VHhuVHlwZXMoKXZvaWQKCWNhbGxzdWIgdmVyaWZ5VHhuVHlwZXMKCWludCAxCglyZXR1cm4KCi8vIHZlcmlmeVR4blR5cGVzKCk6IHZvaWQKdmVyaWZ5VHhuVHlwZXM6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjIwNwoJLy8gdmVyaWZ5UGF5VHhuKHRoaXMudHhuR3JvdXBbMF0sIHsKCS8vICAgICAgIGFtb3VudDogeyBncmVhdGVyVGhhbjogMCB9LAoJLy8gICAgIH0pCgkvLyB2ZXJpZnkgcGF5CglpbnQgMAoJZ3R4bnMgVHlwZUVudW0KCWludCBwYXkKCT09Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYW1vdW50CglpbnQgMAoJZ3R4bnMgQW1vdW50CglpbnQgMAoJPgoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyMTEKCS8vIHZlcmlmeUFwcENhbGxUeG4odGhpcy50eG5Hcm91cFswXSwgewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogQXBwbGljYXRpb24uZnJvbUlEKDApLAoJLy8gICAgICAgYXBwbGljYXRpb25BcmdzOiB7CgkvLyAgICAgICAgIDA6ICdmb28nLAoJLy8gICAgICAgICAxOiB7CgkvLyAgICAgICAgICAgaW5jbHVkZWRJbjogWydiYXInLCAnYmF6J10sCgkvLyAgICAgICAgIH0sCgkvLyAgICAgICB9LAoJLy8gICAgIH0pCgkvLyB2ZXJpZnkgYXBwbAoJaW50IDAKCWd0eG5zIFR5cGVFbnVtCglpbnQgYXBwbAoJPT0KCWFzc2VydAoKCS8vIHZlcmlmeSBhcHBsaWNhdGlvbklECglpbnQgMAoJZ3R4bnMgQXBwbGljYXRpb25JRAoJaW50IDAKCT09Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYXBwbGljYXRpb25BcmdzCgkvLyB2ZXJpZnkgYXBwbGljYXRpb25BcmdzIDAKCWludCAwCglndHhucyBBcHBsaWNhdGlvbkFyZ3MgMAoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJPT0KCWFzc2VydAoKCS8vIHZlcmlmeSBhcHBsaWNhdGlvbkFyZ3MgMQoJaW50IDAKCWd0eG5zIEFwcGxpY2F0aW9uQXJncyAxCglieXRlIDB4NjI2MTcyIC8vICJiYXIiCgk9PQoJaW50IDAKCWd0eG5zIEFwcGxpY2F0aW9uQXJncyAxCglieXRlIDB4NjI2MTdhIC8vICJiYXoiCgk9PQoJfHwKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjIxCgkvLyB2ZXJpZnlBc3NldFRyYW5zZmVyVHhuKHRoaXMudHhuR3JvdXBbMF0sIHsKCS8vICAgICAgIGFzc2V0UmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgfSkKCS8vIHZlcmlmeSBheGZlcgoJaW50IDAKCWd0eG5zIFR5cGVFbnVtCglpbnQgYXhmZXIKCT09Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYXNzZXRSZWNlaXZlcgoJaW50IDAKCWd0eG5zIEFzc2V0UmVjZWl2ZXIKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCgk9PQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyMjUKCS8vIHZlcmlmeUFzc2V0Q29uZmlnVHhuKHRoaXMudHhuR3JvdXBbMF0sIHsKCS8vICAgICAgIGNvbmZpZ0Fzc2V0OiBBc3NldC5mcm9tSUQoMCksCgkvLyAgICAgfSkKCS8vIHZlcmlmeSBhY2ZnCglpbnQgMAoJZ3R4bnMgVHlwZUVudW0KCWludCBhY2ZnCgk9PQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IGNvbmZpZ0Fzc2V0CglpbnQgMAoJZ3R4bnMgQ29uZmlnQXNzZXQKCWludCAwCgk9PQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyMjkKCS8vIHZlcmlmeUtleVJlZ1R4bih0aGlzLnR4bkdyb3VwWzBdLCB7CgkvLyAgICAgICB2b3RlRmlyc3Q6IDEzMzcsCgkvLyAgICAgfSkKCS8vIHZlcmlmeSBrZXlyZWcKCWludCAwCglndHhucyBUeXBlRW51bQoJaW50IGtleXJlZwoJPT0KCWFzc2VydAoKCS8vIHZlcmlmeSB2b3RlRmlyc3QKCWludCAwCglndHhucyBWb3RlRmlyc3QKCWludCAxMzM3Cgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIHN0cmluZ1BsdXNFcXVhbHMoKXZvaWQKKmFiaV9yb3V0ZV9zdHJpbmdQbHVzRXF1YWxzOgoJLy8gZXhlY3V0ZSBzdHJpbmdQbHVzRXF1YWxzKCl2b2lkCgljYWxsc3ViIHN0cmluZ1BsdXNFcXVhbHMKCWludCAxCglyZXR1cm4KCi8vIHN0cmluZ1BsdXNFcXVhbHMoKTogdm9pZApzdHJpbmdQbHVzRXF1YWxzOgoJcHJvdG8gMCAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjIzNQoJLy8gcyA9ICdmb28nCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglmcmFtZV9idXJ5IDAgLy8gczogYnl0ZVtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyMzYKCS8vIHMgKz0gJ2JhcicKCWZyYW1lX2RpZyAwIC8vIHM6IGJ5dGVbXQoJYnl0ZSAweDYyNjE3MiAvLyAiYmFyIgoJY29uY2F0CglmcmFtZV9idXJ5IDAgLy8gczogYnl0ZVtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyMzcKCS8vIGFzc2VydChzID09PSAnZm9vYmFyJykKCWZyYW1lX2RpZyAwIC8vIHM6IGJ5dGVbXQoJYnl0ZSAweDY2NmY2ZjYyNjE3MiAvLyAiZm9vYmFyIgoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBpbXBvcnRlZFByb2dyYW0oKWJ5dGVbXQoqYWJpX3JvdXRlX2ltcG9ydGVkUHJvZ3JhbToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBpbXBvcnRlZFByb2dyYW0oKWJ5dGVbXQoJY2FsbHN1YiBpbXBvcnRlZFByb2dyYW0KCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gaW1wb3J0ZWRQcm9ncmFtKCk6IGJ5dGVzCmltcG9ydGVkUHJvZ3JhbToKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjQxCgkvLyByZXR1cm4gSWZUZXN0LmFwcHJvdmFsUHJvZ3JhbSgpOwoJYnl0ZSBiNjQgQ2lBRUFRQUNJQ1lKQkJVZmZIVUNhV1lFWld4elpRTmxibVFBQTJadmJ3ZGxiSE5sSUdsbUNXVnNjMlVnYVdZZ01RbGxiSE5sSUdsbUlESXhHQlNCQmdzeEdRaU5EQUxJQUFBQUFBQUFBQUFBQUFLNkFBQUFBQUFBQUFBQUFBQW9OaG9CU1JVaUVrUWpVNGdBREVrVkZsY0dBa3hRVUxBaVE0b0JBWXYvUVFBQ0tZa3JpU2cyR2dGSkZTSVNSQ05UaUFBTVNSVVdWd1lDVEZCUXNDSkRpZ0VCaS85QkFBVXBpVUlBQWlxSmlTZzJHZ0pKRlNJU1JDTlROaG9CU1JVaUVrUWpVNGdBREVrVkZsY0dBa3hRVUxBaVE0b0NBWXYvUVFBRktZbENBQWlML2tFQUF5Y0dpU3VKS0RZYUFra1ZJaEpFSTFNMkdnRkpGU0lTUkNOVGlBQU1TUlVXVndZQ1RGQlFzQ0pEaWdJQmkvOUJBQVVwaVVJQURZditRUUFHSndhSlFnQUNLb21KS0RZYUEwa1ZJaEpFSTFNMkdnSkpGU0lTUkNOVE5ob0JTUlVpRWtRalU0Z0FERWtWRmxjR0FreFFVTEFpUTRvREFZdi9RUUFGS1lsQ0FCT0wva0VBQmljSGlVSUFDSXY5UVFBREp3aUpLNGtvTmhvRFNSVWlFa1FqVXpZYUFra1ZJaEpFSTFNMkdnRkpGU0lTUkNOVGlBQU1TUlVXVndZQ1RGQlFzQ0pEaWdNQmkvOUJBQVVwaVVJQUdJditRUUFHSndlSlFnQU5pLzFCQUFZbkNJbENBQUlxaVlrb05ob0NTUlVpRWtRalV6WWFBVWtWSWhKRUkxT0lBQXhKRlJaWEJnSk1VRkN3SWtPS0FnR0wvMEVBRm92K1FRQU1nQWx1WlhOMFpXUWdhV2FKS1lsQ0FBSXFpWWtvTmhvQlNSVWlFa1FqVTRnQURFa1ZGbGNHQWt4UVVMQWlRNG9CQVl2L1FRQUZLWWxDQUFJcWlZa29OaG9DU1JVaUVrUWpVellhQVVrVkloSkVJMU9JQUFVV1VMQWlRNG9DQVl2L1FRQUVJa0lBQzR2K1FRQUVKRUlBQW9FRGlTZzJHZ0ZYQWdDSUFBVVdVTEFpUTRvQkFZdi9Kd1NwUVFBQ0lva2tpU2cyR2dGWEFnQ0lBQVVXVUxBaVE0b0JBWXYvSndTcFFRQUVJa0lBQVNTSk5ob0JTUlVrRWtRWGlBQUNJa09LQVFDTC95Y0VxVUVBQXljRnNJazJHZ0pKRlNRU1JCYzJHZ0ZKRlNRU1JCZUlBQUlpUTRvQ0FJdi9pLzRPUVFBREp3V3dpVFlhQWtrVkpSSkVOaG9CU1JVbEVrU0lBQUlpUTRvQ0FJdi9pLzZtUVFBREp3V3dpU0pEZ0FTNFJIczJOaG9BamdILzhRQ0FCRU51d2NLQUJCeDZEVjZBQkY0UHRzK0FCRjRjYkZDQUJGalF1cEtBQkYwdlR3S0FCSVJYS2RtQUJJL25iS2lBQkJvOGVIaUFCSFM4eUdpQUJFSVMrUVdBQkpYZHJyK0FCREZIdUdhQUJFS0pmMkUyR2dDT0R2ekUvT3I5RlAxUC9ZNzkzdjR5L25mK29mN1cvdlQvRlA4eC8xY0EKCXJldHN1YgoKLy8gY2FsbFByaXZhdGVEZWZpbmVkTGF0ZXIoKXZvaWQKKmFiaV9yb3V0ZV9jYWxsUHJpdmF0ZURlZmluZWRMYXRlcjoKCS8vIGV4ZWN1dGUgY2FsbFByaXZhdGVEZWZpbmVkTGF0ZXIoKXZvaWQKCWNhbGxzdWIgY2FsbFByaXZhdGVEZWZpbmVkTGF0ZXIKCWludCAxCglyZXR1cm4KCi8vIGNhbGxQcml2YXRlRGVmaW5lZExhdGVyKCk6IHZvaWQKY2FsbFByaXZhdGVEZWZpbmVkTGF0ZXI6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjI0NQoJLy8gbG9nKHRoaXMucHJpdmF0ZU1ldGhvZCgnaGVsbG8nKSkKCWJ5dGUgMHg2ODY1NmM2YzZmIC8vICJoZWxsbyIKCWNhbGxzdWIgcHJpdmF0ZU1ldGhvZAoJbG9nCglyZXRzdWIKCi8vIHByaXZhdGVNZXRob2QobXNnOiBzdHJpbmcpOiBzdHJpbmcKcHJpdmF0ZU1ldGhvZDoKCXByb3RvIDEgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjQ5CgkvLyByZXR1cm4gbXNnOwoJZnJhbWVfZGlnIC0xIC8vIG1zZzogc3RyaW5nCglyZXRzdWIKCi8vIGludGVyYWxQdWJsaWNNZXRob2QodWludDY0LHVpbnQ2NCl1aW50NjQKKmFiaV9yb3V0ZV9pbnRlcmFsUHVibGljTWV0aG9kOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGludGVyYWxQdWJsaWNNZXRob2QodWludDY0LHVpbnQ2NCl1aW50NjQKCWNhbGxzdWIgaW50ZXJhbFB1YmxpY01ldGhvZAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGludGVyYWxQdWJsaWNNZXRob2QoYTogdWludDY0LCBiOiB1aW50NjQpOiB1aW50NjQKaW50ZXJhbFB1YmxpY01ldGhvZDoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjUzCgkvLyByZXR1cm4gYSArIGI7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0CgkrCglyZXRzdWIKCi8vIGNhbGxJbnRlcm5hbFB1YmxpY01ldGhvZCgpdm9pZAoqYWJpX3JvdXRlX2NhbGxJbnRlcm5hbFB1YmxpY01ldGhvZDoKCS8vIGV4ZWN1dGUgY2FsbEludGVybmFsUHVibGljTWV0aG9kKCl2b2lkCgljYWxsc3ViIGNhbGxJbnRlcm5hbFB1YmxpY01ldGhvZAoJaW50IDEKCXJldHVybgoKLy8gY2FsbEludGVybmFsUHVibGljTWV0aG9kKCk6IHZvaWQKY2FsbEludGVybmFsUHVibGljTWV0aG9kOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyNTcKCS8vIGFzc2VydCh0aGlzLmludGVyYWxQdWJsaWNNZXRob2QoMSwgMikgPT09IDMpCglpbnQgMgoJaW50IDEKCWNhbGxzdWIgaW50ZXJhbFB1YmxpY01ldGhvZAoJaW50IDMKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gYXBwTG9hZFNjcmF0Y2goKXZvaWQKKmFiaV9yb3V0ZV9hcHBMb2FkU2NyYXRjaDoKCS8vIGV4ZWN1dGUgYXBwTG9hZFNjcmF0Y2goKXZvaWQKCWNhbGxzdWIgYXBwTG9hZFNjcmF0Y2gKCWludCAxCglyZXR1cm4KCi8vIGFwcExvYWRTY3JhdGNoKCk6IHZvaWQKYXBwTG9hZFNjcmF0Y2g6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjI2MQoJLy8gbG9nKHRoaXMudHhuR3JvdXBbMV0ubG9hZFNjcmF0Y2goMikgYXMgYnl0ZXMpCglnbG9hZCAxIDIKCWxvZwoJcmV0c3ViCgovLyB1aW50TldpdGhVbmRlcnNjb3JlKCl1aW50MjU2CiphYmlfcm91dGVfdWludE5XaXRoVW5kZXJzY29yZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSB1aW50TldpdGhVbmRlcnNjb3JlKCl1aW50MjU2CgljYWxsc3ViIHVpbnROV2l0aFVuZGVyc2NvcmUKCWR1cAoJYml0bGVuCglpbnQgMjU2Cgk8PQoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAzMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHVpbnROV2l0aFVuZGVyc2NvcmUoKTogdWludDI1Ngp1aW50TldpdGhVbmRlcnNjb3JlOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyNjUKCS8vIHJldHVybiA8dWludDI1Nj4xMjNfNDU2OwoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMWUyNDAKCXJldHN1YgoKLy8gb3BVcCgpdm9pZAoqYWJpX3JvdXRlX29wVXA6CgkvLyBleGVjdXRlIG9wVXAoKXZvaWQKCWNhbGxzdWIgb3BVcAoJaW50IDEKCXJldHVybgoKLy8gb3BVcCgpOiB2b2lkCm9wVXA6Cglwcm90byAwIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjY5CgkvLyBpbmNyZWFzZU9wY29kZUJ1ZGdldCgpCglpdHhuX2JlZ2luCglpbnQgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50IDAKCWl0eG5fZmllbGQgRmVlCglieXRlIGI2NCBDb0VCIC8vICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCWludCBEZWxldGVBcHBsaWNhdGlvbgoJaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KCWl0eG5fc3VibWl0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyNzAKCS8vIGZvciAobGV0IGkgPSAxOyBpIDwgNzU7IGkgKz0gMSkKCWludCAxCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgoqZm9yXzA6CgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjI3MAoJLy8gaSA8IDc1CglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludCA3NQoJPAoJYnogKmZvcl8wX2VuZAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjcxCgkvLyBhc3NlcnQoaSkKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyNzAKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzAKCipmb3JfMF9lbmQ6CglyZXRzdWIKCi8vIHJldHVyblZhbHVlT25Bc3NpZ25tZW50KClzdHJpbmcKKmFiaV9yb3V0ZV9yZXR1cm5WYWx1ZU9uQXNzaWdubWVudDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSByZXR1cm5WYWx1ZU9uQXNzaWdubWVudCgpc3RyaW5nCgljYWxsc3ViIHJldHVyblZhbHVlT25Bc3NpZ25tZW50CglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHJldHVyblZhbHVlT25Bc3NpZ25tZW50KCk6IHN0cmluZwpyZXR1cm5WYWx1ZU9uQXNzaWdubWVudDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyNzYKCS8vIG1lc3NhZ2UgPSAnaGknCglieXRlIDB4Njg2OSAvLyAiaGkiCglmcmFtZV9idXJ5IDAgLy8gbWVzc2FnZTogYnl0ZVtdCgoJLy8gKmlmMF9jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6Mjc4CgkvLyB0aGlzLnR4bi5zZW5kZXIgPT09IHRoaXMuYXBwLmFkZHJlc3MKCXR4biBTZW5kZXIKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCgk9PQoJYnogKmlmMF9lbmQKCgkvLyAqaWYwX2NvbnNlcXVlbnQKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6Mjc5CgkvLyBtZXNzYWdlID0gJ2luIGJsb2NrJwoJYnl0ZSAweDY5NmUyMDYyNmM2ZjYzNmIgLy8gImluIGJsb2NrIgoJZnJhbWVfYnVyeSAwIC8vIG1lc3NhZ2U6IGJ5dGVbXQoKKmlmMF9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjI4MgoJLy8gcmV0dXJuIChtZXNzYWdlID0gJ2J5ZScpOwoJYnl0ZSAweDYyNzk2NSAvLyAiYnllIgoJZHVwCglmcmFtZV9idXJ5IDAgLy8gbWVzc2FnZTogYnl0ZVtdCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIHJldHVybkFycmF5VmFsdWVPbkFzc2lnbm1lbnQoKXVpbnQ2NAoqYWJpX3JvdXRlX3JldHVybkFycmF5VmFsdWVPbkFzc2lnbm1lbnQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgcmV0dXJuQXJyYXlWYWx1ZU9uQXNzaWdubWVudCgpdWludDY0CgljYWxsc3ViIHJldHVybkFycmF5VmFsdWVPbkFzc2lnbm1lbnQKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyByZXR1cm5BcnJheVZhbHVlT25Bc3NpZ25tZW50KCk6IHVpbnQ2NApyZXR1cm5BcnJheVZhbHVlT25Bc3NpZ25tZW50OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjI4NgoJLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPiA9IFsxLCAyLCAzXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMwoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjI4OAoJLy8gcmV0dXJuIChhWzBdID0gNCk7CglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CglpbnQgMAoJaW50IDQKCWR1cAoJc3RvcmUgMjQ1IC8vIGFzc2lnbm1lbnQgdmFsdWUKCWl0b2IKCXJlcGxhY2UzCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoJbG9hZCAyNDUgLy8gYXNzaWdubWVudCB2YWx1ZQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyByZXR1cm5TdG9yYWdlVmFsdWVPbkFzc2lnbm1lbnQoKXVpbnQ2NAoqYWJpX3JvdXRlX3JldHVyblN0b3JhZ2VWYWx1ZU9uQXNzaWdubWVudDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSByZXR1cm5TdG9yYWdlVmFsdWVPbkFzc2lnbm1lbnQoKXVpbnQ2NAoJY2FsbHN1YiByZXR1cm5TdG9yYWdlVmFsdWVPbkFzc2lnbm1lbnQKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyByZXR1cm5TdG9yYWdlVmFsdWVPbkFzc2lnbm1lbnQoKTogdWludDY0CnJldHVyblN0b3JhZ2VWYWx1ZU9uQXNzaWdubWVudDoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjkyCgkvLyB0aGlzLmdLZXkudmFsdWUgPSAxCglieXRlIDB4Njc0YjY1NzkgLy8gImdLZXkiCglpbnQgMQoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjI5NAoJLy8gcmV0dXJuICh0aGlzLmdLZXkudmFsdWUgPSAyKTsKCWJ5dGUgMHg2NzRiNjU3OSAvLyAiZ0tleSIKCWludCAyCglkdXAKCXN0b3JlIDI0NSAvLyBhc3NpZ25tZW50IHZhbHVlCglhcHBfZ2xvYmFsX3B1dAoJbG9hZCAyNDUgLy8gYXNzaWdubWVudCB2YWx1ZQoJcmV0c3ViCgovLyByZXR1cm5PcGVyYXRvckFzc2lnbm1lbnRWYWx1ZSgpdWludDY0CiphYmlfcm91dGVfcmV0dXJuT3BlcmF0b3JBc3NpZ25tZW50VmFsdWU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgcmV0dXJuT3BlcmF0b3JBc3NpZ25tZW50VmFsdWUoKXVpbnQ2NAoJY2FsbHN1YiByZXR1cm5PcGVyYXRvckFzc2lnbm1lbnRWYWx1ZQoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHJldHVybk9wZXJhdG9yQXNzaWdubWVudFZhbHVlKCk6IHVpbnQ2NApyZXR1cm5PcGVyYXRvckFzc2lnbm1lbnRWYWx1ZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyOTgKCS8vIGEgPSAxCglpbnQgMQoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzAwCgkvLyByZXR1cm4gKGEgKz0gMik7CglmcmFtZV9kaWcgMCAvLyBhOiB1aW50NjQKCWludCAyCgkrCglkdXAKCXN0b3JlIDI0NSAvLyBhc3NpZ25tZW50IHZhbHVlCglmcmFtZV9idXJ5IDAgLy8gYTogdWludDY0Cglsb2FkIDI0NSAvLyBhc3NpZ25tZW50IHZhbHVlCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIHJldHVybkFycmF5VmFsdWVPbk9wZXJhdG9yQXNzaWdubWVudCgpdWludDY0CiphYmlfcm91dGVfcmV0dXJuQXJyYXlWYWx1ZU9uT3BlcmF0b3JBc3NpZ25tZW50OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHJldHVybkFycmF5VmFsdWVPbk9wZXJhdG9yQXNzaWdubWVudCgpdWludDY0CgljYWxsc3ViIHJldHVybkFycmF5VmFsdWVPbk9wZXJhdG9yQXNzaWdubWVudAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHJldHVybkFycmF5VmFsdWVPbk9wZXJhdG9yQXNzaWdubWVudCgpOiB1aW50NjQKcmV0dXJuQXJyYXlWYWx1ZU9uT3BlcmF0b3JBc3NpZ25tZW50OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjMwNAoJLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPiA9IFsxLCAyLCAzXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMwoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjMwNgoJLy8gcmV0dXJuIChhWzBdICs9IDQpOwoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoJaW50IDAKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWV4dHJhY3QgMCA4CglidG9pCglpbnQgNAoJKwoJZHVwCglzdG9yZSAyNDUgLy8gYXNzaWdubWVudCB2YWx1ZQoJaXRvYgoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+Cglsb2FkIDI0NSAvLyBhc3NpZ25tZW50IHZhbHVlCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIHJldHVybkFycmF5SW5TdG9yYWdlVmFsdWVPbk9wZXJhdG9yQXNzaWdubWVudCgpdWludDY0CiphYmlfcm91dGVfcmV0dXJuQXJyYXlJblN0b3JhZ2VWYWx1ZU9uT3BlcmF0b3JBc3NpZ25tZW50OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHJldHVybkFycmF5SW5TdG9yYWdlVmFsdWVPbk9wZXJhdG9yQXNzaWdubWVudCgpdWludDY0CgljYWxsc3ViIHJldHVybkFycmF5SW5TdG9yYWdlVmFsdWVPbk9wZXJhdG9yQXNzaWdubWVudAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHJldHVybkFycmF5SW5TdG9yYWdlVmFsdWVPbk9wZXJhdG9yQXNzaWdubWVudCgpOiB1aW50NjQKcmV0dXJuQXJyYXlJblN0b3JhZ2VWYWx1ZU9uT3BlcmF0b3JBc3NpZ25tZW50OgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozMTAKCS8vIHRoaXMuc3RvcmFnZUFycmF5LnZhbHVlID0gWzEsIDIsIDNdCglieXRlIDB4NzM3NDZmNzI2MTY3NjU0MTcyNzI2MTc5IC8vICJzdG9yYWdlQXJyYXkiCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzEyCgkvLyByZXR1cm4gKHRoaXMuc3RvcmFnZUFycmF5LnZhbHVlWzBdICs9IDQpOwoJYnl0ZSAweDczNzQ2ZjcyNjE2NzY1NDE3MjcyNjE3OSAvLyAic3RvcmFnZUFycmF5IgoJYXBwX2dsb2JhbF9nZXQKCWludCAwCglieXRlIDB4NzM3NDZmNzI2MTY3NjU0MTcyNzI2MTc5IC8vICJzdG9yYWdlQXJyYXkiCglhcHBfZ2xvYmFsX2dldAoJZXh0cmFjdCAwIDgKCWJ0b2kKCWludCA0CgkrCglkdXAKCXN0b3JlIDI0NSAvLyBhc3NpZ25tZW50IHZhbHVlCglpdG9iCglyZXBsYWNlMwoJYnl0ZSAweDczNzQ2ZjcyNjE2NzY1NDE3MjcyNjE3OSAvLyAic3RvcmFnZUFycmF5IgoJc3dhcAoJYXBwX2dsb2JhbF9wdXQKCWxvYWQgMjQ1IC8vIGFzc2lnbm1lbnQgdmFsdWUKCXJldHN1YgoKLy8gY29uc3RzKCl2b2lkCiphYmlfcm91dGVfY29uc3RzOgoJLy8gZXhlY3V0ZSBjb25zdHMoKXZvaWQKCWNhbGxzdWIgY29uc3RzCglpbnQgMQoJcmV0dXJuCgovLyBjb25zdHMoKTogdm9pZApjb25zdHM6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjMxNgoJLy8gYXNzZXJ0KFNUUklOR19DT05TVCA9PT0gJ2ZvbycpCglieXRlICJmb28iCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCgk9PQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozMTcKCS8vIGFzc2VydChOVU1fQ09OU1QgPT09IDEyMykKCWludCAxMjMKCWR1cAoJPT0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzE4CgkvLyBhc3NlcnQoTkVTVEVEX0NPTlNUID09PSAxMjMpCglpbnQgMTIzCglkdXAKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gYXNzZXJ0V2l0aE1lc3NhZ2UoKXZvaWQKKmFiaV9yb3V0ZV9hc3NlcnRXaXRoTWVzc2FnZToKCS8vIGV4ZWN1dGUgYXNzZXJ0V2l0aE1lc3NhZ2UoKXZvaWQKCWNhbGxzdWIgYXNzZXJ0V2l0aE1lc3NhZ2UKCWludCAxCglyZXR1cm4KCi8vIGFzc2VydFdpdGhNZXNzYWdlKCk6IHZvaWQKYXNzZXJ0V2l0aE1lc3NhZ2U6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjMyMgoJLy8gYXNzZXJ0KGZhbHNlLCAndGhpcyBpcyBmYWxzZScpCglpbnQgMAoKCS8vIHRoaXMgaXMgZmFsc2UKCWFzc2VydAoJcmV0c3ViCgovLyBvcGNvZGVBbGlhc2VzKCl2b2lkCiphYmlfcm91dGVfb3Bjb2RlQWxpYXNlczoKCS8vIGV4ZWN1dGUgb3Bjb2RlQWxpYXNlcygpdm9pZAoJY2FsbHN1YiBvcGNvZGVBbGlhc2VzCglpbnQgMQoJcmV0dXJuCgovLyBvcGNvZGVBbGlhc2VzKCk6IHZvaWQKb3Bjb2RlQWxpYXNlczoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzI2CgkvLyBleHRyYWN0VWludDE2KGJ6ZXJvKDY0KSwgMCkKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoJaW50IDAKCWV4dHJhY3RfdWludDE2CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozMjcKCS8vIGV4dHJhY3RVaW50MzIoYnplcm8oNjQpLCAwKQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCglpbnQgMAoJZXh0cmFjdF91aW50MzIKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjMyOAoJLy8gZXh0cmFjdFVpbnQ2NChiemVybyg2NCksIDApCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCWludCAwCglleHRyYWN0X3VpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzI5CgkvLyBlZDI1NTE5VmVyaWZ5QmFyZShiemVybyg2NCksIGJ6ZXJvKDY0KSwgYnplcm8oMzIpKQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCglkdXAKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCgllZDI1NTE5dmVyaWZ5X2JhcmUKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjMzMAoJLy8gZWQyNTUxOVZlcmlmeShiemVybyg2NCksIGJ6ZXJvKDY0KSwgYnplcm8oMzIpKQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCglkdXAKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCgllZDI1NTE5dmVyaWZ5CglyZXRzdWIKCi8vIHZyZlZlcmlmeU9wKCl2b2lkCiphYmlfcm91dGVfdnJmVmVyaWZ5T3A6CgkvLyBleGVjdXRlIHZyZlZlcmlmeU9wKCl2b2lkCgljYWxsc3ViIHZyZlZlcmlmeU9wCglpbnQgMQoJcmV0dXJuCgovLyB2cmZWZXJpZnlPcCgpOiB2b2lkCnZyZlZlcmlmeU9wOgoJcHJvdG8gMCAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gMwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzM0CgkvLyBpbmNyZWFzZU9wY29kZUJ1ZGdldCgpCglpdHhuX2JlZ2luCglpbnQgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50IDAKCWl0eG5fZmllbGQgRmVlCglieXRlIGI2NCBDb0VCIC8vICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCWludCBEZWxldGVBcHBsaWNhdGlvbgoJaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KCWl0eG5fc3VibWl0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozMzUKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludCBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCWJ5dGUgYjY0IENvRUIgLy8gI3ByYWdtYSB2ZXJzaW9uIDEwOyBpbnQgMQoJZHVwCglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQoJaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQoJaW50IERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjMzNgoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWludCAwCglpdHhuX2ZpZWxkIEZlZQoJYnl0ZSBiNjQgQ29FQiAvLyAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglpbnQgRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzM3CgkvLyBpbmNyZWFzZU9wY29kZUJ1ZGdldCgpCglpdHhuX2JlZ2luCglpbnQgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50IDAKCWl0eG5fZmllbGQgRmVlCglieXRlIGI2NCBDb0VCIC8vICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCWludCBEZWxldGVBcHBsaWNhdGlvbgoJaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KCWl0eG5fc3VibWl0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozMzgKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludCBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCWJ5dGUgYjY0IENvRUIgLy8gI3ByYWdtYSB2ZXJzaW9uIDEwOyBpbnQgMQoJZHVwCglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQoJaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQoJaW50IERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjMzOQoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWludCAwCglpdHhuX2ZpZWxkIEZlZQoJYnl0ZSBiNjQgQ29FQiAvLyAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglpbnQgRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzQwCgkvLyBpbmNyZWFzZU9wY29kZUJ1ZGdldCgpCglpdHhuX2JlZ2luCglpbnQgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50IDAKCWl0eG5fZmllbGQgRmVlCglieXRlIGI2NCBDb0VCIC8vICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCWludCBEZWxldGVBcHBsaWNhdGlvbgoJaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KCWl0eG5fc3VibWl0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNDEKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludCBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCWJ5dGUgYjY0IENvRUIgLy8gI3ByYWdtYSB2ZXJzaW9uIDEwOyBpbnQgMQoJZHVwCglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQoJaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQoJaW50IERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM0MgoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWludCAwCglpdHhuX2ZpZWxkIEZlZQoJYnl0ZSBiNjQgQ29FQiAvLyAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglpbnQgRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzQ0CgkvLyByID0gdnJmVmVmaXJ5KCdWcmZBbGdvcmFuZCcsIGJ6ZXJvKDMyKSBhcyBieXRlcywgYnplcm8oODApLCBiemVybygzMikpCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCgl2cmZfdmVyaWZ5IFZyZkFsZ29yYW5kCglmcmFtZV9idXJ5IDIgLy8gciB2ZXJpZmllZDogYm9vbAoJZnJhbWVfYnVyeSAzIC8vIHIgb3V0cHV0OiBieXRlW10KCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM0NQoJLy8gYXNzZXJ0KCFyLnZlcmlmaWVkKQoJZnJhbWVfZGlnIDIgLy8gciB2ZXJpZmllZDogYm9vbAoJIQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNDYKCS8vIGxvZyhyLm91dHB1dCkKCWZyYW1lX2RpZyAzIC8vIHIgb3V0cHV0OiBieXRlW10KCWxvZwoJcmV0c3ViCgovLyBlY01hdGgoKXZvaWQKKmFiaV9yb3V0ZV9lY01hdGg6CgkvLyBleGVjdXRlIGVjTWF0aCgpdm9pZAoJY2FsbHN1YiBlY01hdGgKCWludCAxCglyZXR1cm4KCi8vIGVjTWF0aCgpOiB2b2lkCmVjTWF0aDoKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNTAKCS8vIGVjU2NhbGFyTXVsKCdCTjI1NGcxJywgJycsICcnKQoJYnl0ZSAweCAvLyAiIgoJZHVwCgllY19zY2FsYXJfbXVsIEJOMjU0ZzEKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM1MQoJLy8gZWNQYWlyaW5nQ2hlY2soJ0JOMjU0ZzEnLCAnJywgJycpCglieXRlIDB4IC8vICIiCglkdXAKCWVjX3BhaXJpbmdfY2hlY2sgQk4yNTRnMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzUyCgkvLyBzY2FsYXJzOiBieXRlczMyW10gPSBbYnplcm8oMzIpLCBiemVybygzMildCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCWZyYW1lX2J1cnkgMCAvLyBzY2FsYXJzOiBieXRlczMyW10KCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM1MwoJLy8gZWNNdWx0aVNjYWxhck11bCgnQk4yNTRnMScsICcnLCBzY2FsYXJzKQoJYnl0ZSAweCAvLyAiIgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIC8vIHNjYWxhcnM6IGJ5dGVzMzJbXQoJZWNfbXVsdGlfc2NhbGFyX211bCBCTjI1NGcxCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNTQKCS8vIGVjU3ViZ3JvdXBDaGVjaygnQk4yNTRnMScsICcnKQoJYnl0ZSAweCAvLyAiIgoJZWNfc3ViZ3JvdXBfY2hlY2sgQk4yNTRnMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzU1CgkvLyBlY01hcFRvKCdCTjI1NGcxJywgJycpCglieXRlIDB4IC8vICIiCgllY19tYXBfdG8gQk4yNTRnMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzU2CgkvLyBlY0FkZCgnQk4yNTRnMScsICcnLCAnJykKCWJ5dGUgMHggLy8gIiIKCWR1cAoJZWNfYWRkIEJOMjU0ZzEKCXJldHN1YgoKLy8gZ2l0eG4oKXZvaWQKKmFiaV9yb3V0ZV9naXR4bjoKCS8vIGV4ZWN1dGUgZ2l0eG4oKXZvaWQKCWNhbGxzdWIgZ2l0eG4KCWludCAxCglyZXR1cm4KCi8vIGdpdHhuKCk6IHZvaWQKZ2l0eG46Cglwcm90byAwIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzYwCgkvLyBsb2codGhpcy5sYXN0SW5uZXJHcm91cFswXS5zZW5kZXIpCglnaXR4biAwIFNlbmRlcgoJbG9nCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNjIKCS8vIGFub3RoZXJUeG4gPSB0aGlzLmxhc3RJbm5lckdyb3VwWzFdCglpbnQgMQoJZnJhbWVfYnVyeSAwIC8vIGFub3RoZXJUeG46IGdpdHhuCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNjQKCS8vIGxvZyhhbm90aGVyVHhuLnNlbmRlcikKCWdpdHhuIDEgU2VuZGVyCglsb2cKCXJldHN1YgoKLy8gZ2V0U2V0Qnl0ZXMoKXZvaWQKKmFiaV9yb3V0ZV9nZXRTZXRCeXRlczoKCS8vIGV4ZWN1dGUgZ2V0U2V0Qnl0ZXMoKXZvaWQKCWNhbGxzdWIgZ2V0U2V0Qnl0ZXMKCWludCAxCglyZXR1cm4KCi8vIGdldFNldEJ5dGVzKCk6IHZvaWQKZ2V0U2V0Qnl0ZXM6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM2OAoJLy8gbG9nKHNldGJpdCgnZm9vJywgMCwgdHJ1ZSkpCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglpbnQgMAoJaW50IDEKCXNldGJpdAoJbG9nCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNjkKCS8vIGdldGJpdCgnZm9vJywgMCkKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWludCAwCglnZXRiaXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM3MAoJLy8gZ2V0Ynl0ZSgnZm9vJywgMCkKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWludCAwCglnZXRieXRlCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNzEKCS8vIHNldGJ5dGUoJ2ZvbycsIDAsIDEpCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglpbnQgMAoJaW50IDEKCXNldGJ5dGUKCXJldHN1YgoKLy8gZ2V0U2V0VWludDY0KCl2b2lkCiphYmlfcm91dGVfZ2V0U2V0VWludDY0OgoJLy8gZXhlY3V0ZSBnZXRTZXRVaW50NjQoKXZvaWQKCWNhbGxzdWIgZ2V0U2V0VWludDY0CglpbnQgMQoJcmV0dXJuCgovLyBnZXRTZXRVaW50NjQoKTogdm9pZApnZXRTZXRVaW50NjQ6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM3NQoJLy8gYXNzZXJ0KHNldGJpdCgxMjMsIDAsIHRydWUpKQoJaW50IDEyMwoJaW50IDAKCWludCAxCglzZXRiaXQKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6Mzc2CgkvLyBnZXRiaXQoMTIzLCAwKQoJaW50IDEyMwoJaW50IDAKCWdldGJpdAoJcmV0c3ViCgovLyBibG9ja09wKCl2b2lkCiphYmlfcm91dGVfYmxvY2tPcDoKCS8vIGV4ZWN1dGUgYmxvY2tPcCgpdm9pZAoJY2FsbHN1YiBibG9ja09wCglpbnQgMQoJcmV0dXJuCgovLyBibG9ja09wKCk6IHZvaWQKYmxvY2tPcDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzgwCgkvLyBsb2coYmxvY2tzW2dsb2JhbHMucm91bmQgLSAxXS5zZWVkKQoJZ2xvYmFsIFJvdW5kCglpbnQgMQoJLQoJYmxvY2sgQmxrU2VlZAoJbG9nCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozODEKCS8vIGFzc2VydChibG9ja3NbZ2xvYmFscy5yb3VuZCAtIDFdLnRpbWVzdGFtcCkKCWdsb2JhbCBSb3VuZAoJaW50IDEKCS0KCWJsb2NrIEJsa1RpbWVzdGFtcAoJYXNzZXJ0CglyZXRzdWIKCi8vIGI2NCgpdm9pZAoqYWJpX3JvdXRlX2I2NDoKCS8vIGV4ZWN1dGUgYjY0KCl2b2lkCgljYWxsc3ViIGI2NAoJaW50IDEKCXJldHVybgoKLy8gYjY0KCk6IHZvaWQKYjY0OgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozODUKCS8vIGxvZyhiYXNlNjREZWNvZGUoJ1N0ZEVuY29kaW5nJywgJycpKQoJYnl0ZSAweCAvLyAiIgoJYmFzZTY0X2RlY29kZSBTdGRFbmNvZGluZwoJbG9nCglyZXRzdWIKCi8vIGpzb24oKXZvaWQKKmFiaV9yb3V0ZV9qc29uOgoJLy8gZXhlY3V0ZSBqc29uKCl2b2lkCgljYWxsc3ViIGpzb24KCWludCAxCglyZXR1cm4KCi8vIGpzb24oKTogdm9pZApqc29uOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozODkKCS8vIGxvZyhqc29uUmVmKCdKU09OT2JqZWN0JywgJycsICcnKSkKCWJ5dGUgMHggLy8gIiIKCWR1cAoJanNvbl9yZWYgSlNPTk9iamVjdAoJbG9nCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozOTAKCS8vIGxvZyhqc29uUmVmKCdKU09OU3RyaW5nJywgJycsICcnKSkKCWJ5dGUgMHggLy8gIiIKCWR1cAoJanNvbl9yZWYgSlNPTlN0cmluZwoJbG9nCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozOTEKCS8vIGFzc2VydChqc29uUmVmKCdKU09OVWludDY0JywgJycsICcnKSkKCWJ5dGUgMHggLy8gIiIKCWR1cAoJanNvbl9yZWYgSlNPTlVpbnQ2NAoJYXNzZXJ0CglyZXRzdWIKCi8vIGJpdGxlbk9wKCl2b2lkCiphYmlfcm91dGVfYml0bGVuT3A6CgkvLyBleGVjdXRlIGJpdGxlbk9wKCl2b2lkCgljYWxsc3ViIGJpdGxlbk9wCglpbnQgMQoJcmV0dXJuCgovLyBiaXRsZW5PcCgpOiB2b2lkCmJpdGxlbk9wOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozOTUKCS8vIGJpdGxlbigxMjMpCglpbnQgMTIzCgliaXRsZW4KCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM5NgoJLy8gYml0bGVuKCdmb28nKQoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYml0bGVuCglyZXRzdWIKCi8vIGNvbXB1dGVkQ29uc3QoKXZvaWQKKmFiaV9yb3V0ZV9jb21wdXRlZENvbnN0OgoJLy8gZXhlY3V0ZSBjb21wdXRlZENvbnN0KCl2b2lkCgljYWxsc3ViIGNvbXB1dGVkQ29uc3QKCWludCAxCglyZXR1cm4KCi8vIGNvbXB1dGVkQ29uc3QoKTogdm9pZApjb21wdXRlZENvbnN0OgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0MDAKCS8vIGFzc2VydChDT01QVVRFRF9DT05TVCkKCWludCAyNDYKCWFzc2VydAoJcmV0c3ViCgovLyBtdWx0aUNvbXB1dGVkQ29uc3QoKXZvaWQKKmFiaV9yb3V0ZV9tdWx0aUNvbXB1dGVkQ29uc3Q6CgkvLyBleGVjdXRlIG11bHRpQ29tcHV0ZWRDb25zdCgpdm9pZAoJY2FsbHN1YiBtdWx0aUNvbXB1dGVkQ29uc3QKCWludCAxCglyZXR1cm4KCi8vIG11bHRpQ29tcHV0ZWRDb25zdCgpOiB2b2lkCm11bHRpQ29tcHV0ZWRDb25zdDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NDA0CgkvLyBhc3NlcnQoTVVUTElfQ09NUFVURURfQ09OU1QpCglpbnQgMzAzODEKCWFzc2VydAoJcmV0c3ViCgovLyBjb21wdXRlZENvbnN0QXNTdGF0aWNBcnJheUxlbmd0aCgpdm9pZAoqYWJpX3JvdXRlX2NvbXB1dGVkQ29uc3RBc1N0YXRpY0FycmF5TGVuZ3RoOgoJLy8gZXhlY3V0ZSBjb21wdXRlZENvbnN0QXNTdGF0aWNBcnJheUxlbmd0aCgpdm9pZAoJY2FsbHN1YiBjb21wdXRlZENvbnN0QXNTdGF0aWNBcnJheUxlbmd0aAoJaW50IDEKCXJldHVybgoKLy8gY29tcHV0ZWRDb25zdEFzU3RhdGljQXJyYXlMZW5ndGgoKTogdm9pZApjb21wdXRlZENvbnN0QXNTdGF0aWNBcnJheUxlbmd0aDoKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0MDgKCS8vIGE6IE15VHlwZSA9IFtdCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCglmcmFtZV9idXJ5IDAgLy8gYTogTXlUeXBlCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0MDkKCS8vIGFzc2VydChhLmxlbmd0aCA9PT0gQ09NUFVURURfQ09OU1QpCglpbnQgMjQ2CglkdXAKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gcmVhZFNjaGVtYSgpdm9pZAoqYWJpX3JvdXRlX3JlYWRTY2hlbWE6CgkvLyBleGVjdXRlIHJlYWRTY2hlbWEoKXZvaWQKCWNhbGxzdWIgcmVhZFNjaGVtYQoJaW50IDEKCXJldHVybgoKLy8gcmVhZFNjaGVtYSgpOiB2b2lkCnJlYWRTY2hlbWE6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQxMwoJLy8gYXNzZXJ0KFNjaGVtYUNvbnRyYWN0LnNjaGVtYS5nbG9iYWwubnVtVWludCA9PT0gMSkKCWludCAxCglkdXAKCT09Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQxNAoJLy8gYXNzZXJ0KFNjaGVtYUNvbnRyYWN0LnNjaGVtYS5nbG9iYWwubnVtQnl0ZVNsaWNlID09PSAyKQoJaW50IDIKCWR1cAoJPT0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NDE1CgkvLyBhc3NlcnQoU2NoZW1hQ29udHJhY3Quc2NoZW1hLmxvY2FsLm51bVVpbnQgPT09IDMpCglpbnQgMwoJZHVwCgk9PQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0MTYKCS8vIGFzc2VydChTY2hlbWFDb250cmFjdC5zY2hlbWEubG9jYWwubnVtQnl0ZVNsaWNlID09PSA0KQoJaW50IDQKCWR1cAoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBjb21wYXJpc29uT3IoKWJvb2wKKmFiaV9yb3V0ZV9jb21wYXJpc29uT3I6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgY29tcGFyaXNvbk9yKClib29sCgljYWxsc3ViIGNvbXBhcmlzb25PcgoJYnl0ZSAweDAwCglpbnQgMAoJdW5jb3ZlciAyCglzZXRiaXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBjb21wYXJpc29uT3IoKTogYm9vbGVhbgpjb21wYXJpc29uT3I6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQyMAoJLy8gcmV0dXJuIHRoaXMudHhuLnNlbmRlciA9PT0gZ2xvYmFscy56ZXJvQWRkcmVzcyB8fCB0aGlzLnR4bi5zZW5kZXIgPT09IGdsb2JhbHMuemVyb0FkZHJlc3M7Cgl0eG4gU2VuZGVyCglnbG9iYWwgWmVyb0FkZHJlc3MKCT09CglkdXAKCWJueiAqc2tpcF9vcjAKCXR4biBTZW5kZXIKCWdsb2JhbCBaZXJvQWRkcmVzcwoJPT0KCXx8Cgoqc2tpcF9vcjA6CglyZXRzdWIKCi8vIHR4bkFyZ3NNZXRob2QocGF5KXZvaWQKKmFiaV9yb3V0ZV90eG5BcmdzTWV0aG9kOgoJLy8gX3BheTE6IHBheQoJdHhuIEdyb3VwSW5kZXgKCWludCAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgcGF5Cgk9PQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSB0eG5BcmdzTWV0aG9kKHBheSl2b2lkCgljYWxsc3ViIHR4bkFyZ3NNZXRob2QKCWludCAxCglyZXR1cm4KCi8vIHR4bkFyZ3NNZXRob2QoX3BheTE6IFBheVR4bik6IHZvaWQKdHhuQXJnc01ldGhvZDoKCXByb3RvIDEgMAoJcmV0c3ViCgovLyBjYWxsVHhuQXJnc01ldGhvZCgpdm9pZAoqYWJpX3JvdXRlX2NhbGxUeG5BcmdzTWV0aG9kOgoJLy8gZXhlY3V0ZSBjYWxsVHhuQXJnc01ldGhvZCgpdm9pZAoJY2FsbHN1YiBjYWxsVHhuQXJnc01ldGhvZAoJaW50IDEKCXJldHVybgoKLy8gY2FsbFR4bkFyZ3NNZXRob2QoKTogdm9pZApjYWxsVHhuQXJnc01ldGhvZDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NDI3CgkvLyBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgR2VuZXJhbFRlc3QucHJvdG90eXBlLnR4bkFyZ3NNZXRob2Q+KHsKCS8vICAgICAgIG1ldGhvZEFyZ3M6IFt7IHJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLCBhbW91bnQ6IDAgfV0sCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludCBwYXkKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQyOAoJLy8gcmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIFJlY2VpdmVyCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0MjgKCS8vIGFtb3VudDogMAoJaW50IDAKCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCglpdHhuX25leHQKCWludCBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgltZXRob2QgInR4bkFyZ3NNZXRob2QocGF5KXZvaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NDI4CgkvLyBtZXRob2RBcmdzOiBbeyByZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywgYW1vdW50OiAwIH1dCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglyZXRzdWIKCi8vIHN0YXRpY1ZhbHVlTGVuKHVpbnQyNTYpdm9pZAoqYWJpX3JvdXRlX3N0YXRpY1ZhbHVlTGVuOgoJLy8geDogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCWFzc2VydAoKCS8vIGV4ZWN1dGUgc3RhdGljVmFsdWVMZW4odWludDI1Nil2b2lkCgljYWxsc3ViIHN0YXRpY1ZhbHVlTGVuCglpbnQgMQoJcmV0dXJuCgovLyBzdGF0aWNWYWx1ZUxlbih4OiB1aW50MjU2KTogdm9pZApzdGF0aWNWYWx1ZUxlbjoKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NDMzCgkvLyBhc3NlcnQobGVuKHgpKQoJaW50IDMyCglhc3NlcnQKCXJldHN1YgoKLy8gc3RhdGljVHlwZUxlbigpdm9pZAoqYWJpX3JvdXRlX3N0YXRpY1R5cGVMZW46CgkvLyBleGVjdXRlIHN0YXRpY1R5cGVMZW4oKXZvaWQKCWNhbGxzdWIgc3RhdGljVHlwZUxlbgoJaW50IDEKCXJldHVybgoKLy8gc3RhdGljVHlwZUxlbigpOiB2b2lkCnN0YXRpY1R5cGVMZW46Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQzNwoJLy8gYXNzZXJ0KGxlbjx1aW50MjU2PigpKQoJaW50IDMyCglhc3NlcnQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInR4blR5cGVFbnVtKCl2b2lkIgoJbWV0aG9kICJ0eG5Hcm91cExlbmd0aCgpdm9pZCIKCW1ldGhvZCAiYXNzZXJ0cyhib29sLGJvb2wpdm9pZCIKCW1ldGhvZCAidmVyaWZ5VHhuRnJvbUFyZyhwYXkpdm9pZCIKCW1ldGhvZCAidmVyaWZ5VHhuRnJvbVR4bkdyb3VwKCl2b2lkIgoJbWV0aG9kICJ2ZXJpZnlUeG5Db25kaXRpb24oKXZvaWQiCgltZXRob2QgInZlcmlmeVR4bkluY2x1ZGVkSW4oKXZvaWQiCgltZXRob2QgInZlcmlmeVR4bk5vdEluY2x1ZGVkSW4oKXZvaWQiCgltZXRob2QgInN1Ym1pdFBlbmRpbmdHcm91cCgpdm9pZCIKCW1ldGhvZCAibWV0aG9kV2l0aFR4bkFyZ3MoKXZvaWQiCgltZXRob2QgInNoaWZ0KCl2b2lkIgoJbWV0aG9kICJmcm9tQnl0ZXMoKXZvaWQiCgltZXRob2QgImZyb21JRCgpdm9pZCIKCW1ldGhvZCAiYnplcm9GdW5jdGlvbigpdm9pZCIKCW1ldGhvZCAiZXZlbnRzKCl2b2lkIgoJbWV0aG9kICJsZXRPcHRpbWl6YXRpb24odWludDY0W10pdWludDY0W10iCgltZXRob2QgInN0YXRpY0NvbnRyYWN0UHJvcGVydGllcygpdm9pZCIKCW1ldGhvZCAibnVtYmVyVG9TdHJpbmcoKXZvaWQiCgltZXRob2QgIm1ldGhvZE9uUGFyZW5zKCl2b2lkIgoJbWV0aG9kICJzdHJpbmdTdWJzdHJpbmcoKXZvaWQiCgltZXRob2QgImlkUHJvcGVydHkoKXZvaWQiCgltZXRob2QgInNjcmF0Y2hTbG90KCl2b2lkIgoJbWV0aG9kICJlY2RzYSgpdm9pZCIKCW1ldGhvZCAidmVyaWZ5VHhuVHlwZXMoKXZvaWQiCgltZXRob2QgInN0cmluZ1BsdXNFcXVhbHMoKXZvaWQiCgltZXRob2QgImltcG9ydGVkUHJvZ3JhbSgpYnl0ZVtdIgoJbWV0aG9kICJjYWxsUHJpdmF0ZURlZmluZWRMYXRlcigpdm9pZCIKCW1ldGhvZCAiaW50ZXJhbFB1YmxpY01ldGhvZCh1aW50NjQsdWludDY0KXVpbnQ2NCIKCW1ldGhvZCAiY2FsbEludGVybmFsUHVibGljTWV0aG9kKCl2b2lkIgoJbWV0aG9kICJhcHBMb2FkU2NyYXRjaCgpdm9pZCIKCW1ldGhvZCAidWludE5XaXRoVW5kZXJzY29yZSgpdWludDI1NiIKCW1ldGhvZCAib3BVcCgpdm9pZCIKCW1ldGhvZCAicmV0dXJuVmFsdWVPbkFzc2lnbm1lbnQoKXN0cmluZyIKCW1ldGhvZCAicmV0dXJuQXJyYXlWYWx1ZU9uQXNzaWdubWVudCgpdWludDY0IgoJbWV0aG9kICJyZXR1cm5TdG9yYWdlVmFsdWVPbkFzc2lnbm1lbnQoKXVpbnQ2NCIKCW1ldGhvZCAicmV0dXJuT3BlcmF0b3JBc3NpZ25tZW50VmFsdWUoKXVpbnQ2NCIKCW1ldGhvZCAicmV0dXJuQXJyYXlWYWx1ZU9uT3BlcmF0b3JBc3NpZ25tZW50KCl1aW50NjQiCgltZXRob2QgInJldHVybkFycmF5SW5TdG9yYWdlVmFsdWVPbk9wZXJhdG9yQXNzaWdubWVudCgpdWludDY0IgoJbWV0aG9kICJjb25zdHMoKXZvaWQiCgltZXRob2QgImFzc2VydFdpdGhNZXNzYWdlKCl2b2lkIgoJbWV0aG9kICJvcGNvZGVBbGlhc2VzKCl2b2lkIgoJbWV0aG9kICJ2cmZWZXJpZnlPcCgpdm9pZCIKCW1ldGhvZCAiZWNNYXRoKCl2b2lkIgoJbWV0aG9kICJnaXR4bigpdm9pZCIKCW1ldGhvZCAiZ2V0U2V0Qnl0ZXMoKXZvaWQiCgltZXRob2QgImdldFNldFVpbnQ2NCgpdm9pZCIKCW1ldGhvZCAiYmxvY2tPcCgpdm9pZCIKCW1ldGhvZCAiYjY0KCl2b2lkIgoJbWV0aG9kICJqc29uKCl2b2lkIgoJbWV0aG9kICJiaXRsZW5PcCgpdm9pZCIKCW1ldGhvZCAiY29tcHV0ZWRDb25zdCgpdm9pZCIKCW1ldGhvZCAibXVsdGlDb21wdXRlZENvbnN0KCl2b2lkIgoJbWV0aG9kICJjb21wdXRlZENvbnN0QXNTdGF0aWNBcnJheUxlbmd0aCgpdm9pZCIKCW1ldGhvZCAicmVhZFNjaGVtYSgpdm9pZCIKCW1ldGhvZCAiY29tcGFyaXNvbk9yKClib29sIgoJbWV0aG9kICJ0eG5BcmdzTWV0aG9kKHBheSl2b2lkIgoJbWV0aG9kICJjYWxsVHhuQXJnc01ldGhvZCgpdm9pZCIKCW1ldGhvZCAic3RhdGljVmFsdWVMZW4odWludDI1Nil2b2lkIgoJbWV0aG9kICJzdGF0aWNUeXBlTGVuKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV90eG5UeXBlRW51bSAqYWJpX3JvdXRlX3R4bkdyb3VwTGVuZ3RoICphYmlfcm91dGVfYXNzZXJ0cyAqYWJpX3JvdXRlX3ZlcmlmeVR4bkZyb21BcmcgKmFiaV9yb3V0ZV92ZXJpZnlUeG5Gcm9tVHhuR3JvdXAgKmFiaV9yb3V0ZV92ZXJpZnlUeG5Db25kaXRpb24gKmFiaV9yb3V0ZV92ZXJpZnlUeG5JbmNsdWRlZEluICphYmlfcm91dGVfdmVyaWZ5VHhuTm90SW5jbHVkZWRJbiAqYWJpX3JvdXRlX3N1Ym1pdFBlbmRpbmdHcm91cCAqYWJpX3JvdXRlX21ldGhvZFdpdGhUeG5BcmdzICphYmlfcm91dGVfc2hpZnQgKmFiaV9yb3V0ZV9mcm9tQnl0ZXMgKmFiaV9yb3V0ZV9mcm9tSUQgKmFiaV9yb3V0ZV9iemVyb0Z1bmN0aW9uICphYmlfcm91dGVfZXZlbnRzICphYmlfcm91dGVfbGV0T3B0aW1pemF0aW9uICphYmlfcm91dGVfc3RhdGljQ29udHJhY3RQcm9wZXJ0aWVzICphYmlfcm91dGVfbnVtYmVyVG9TdHJpbmcgKmFiaV9yb3V0ZV9tZXRob2RPblBhcmVucyAqYWJpX3JvdXRlX3N0cmluZ1N1YnN0cmluZyAqYWJpX3JvdXRlX2lkUHJvcGVydHkgKmFiaV9yb3V0ZV9zY3JhdGNoU2xvdCAqYWJpX3JvdXRlX2VjZHNhICphYmlfcm91dGVfdmVyaWZ5VHhuVHlwZXMgKmFiaV9yb3V0ZV9zdHJpbmdQbHVzRXF1YWxzICphYmlfcm91dGVfaW1wb3J0ZWRQcm9ncmFtICphYmlfcm91dGVfY2FsbFByaXZhdGVEZWZpbmVkTGF0ZXIgKmFiaV9yb3V0ZV9pbnRlcmFsUHVibGljTWV0aG9kICphYmlfcm91dGVfY2FsbEludGVybmFsUHVibGljTWV0aG9kICphYmlfcm91dGVfYXBwTG9hZFNjcmF0Y2ggKmFiaV9yb3V0ZV91aW50TldpdGhVbmRlcnNjb3JlICphYmlfcm91dGVfb3BVcCAqYWJpX3JvdXRlX3JldHVyblZhbHVlT25Bc3NpZ25tZW50ICphYmlfcm91dGVfcmV0dXJuQXJyYXlWYWx1ZU9uQXNzaWdubWVudCAqYWJpX3JvdXRlX3JldHVyblN0b3JhZ2VWYWx1ZU9uQXNzaWdubWVudCAqYWJpX3JvdXRlX3JldHVybk9wZXJhdG9yQXNzaWdubWVudFZhbHVlICphYmlfcm91dGVfcmV0dXJuQXJyYXlWYWx1ZU9uT3BlcmF0b3JBc3NpZ25tZW50ICphYmlfcm91dGVfcmV0dXJuQXJyYXlJblN0b3JhZ2VWYWx1ZU9uT3BlcmF0b3JBc3NpZ25tZW50ICphYmlfcm91dGVfY29uc3RzICphYmlfcm91dGVfYXNzZXJ0V2l0aE1lc3NhZ2UgKmFiaV9yb3V0ZV9vcGNvZGVBbGlhc2VzICphYmlfcm91dGVfdnJmVmVyaWZ5T3AgKmFiaV9yb3V0ZV9lY01hdGggKmFiaV9yb3V0ZV9naXR4biAqYWJpX3JvdXRlX2dldFNldEJ5dGVzICphYmlfcm91dGVfZ2V0U2V0VWludDY0ICphYmlfcm91dGVfYmxvY2tPcCAqYWJpX3JvdXRlX2I2NCAqYWJpX3JvdXRlX2pzb24gKmFiaV9yb3V0ZV9iaXRsZW5PcCAqYWJpX3JvdXRlX2NvbXB1dGVkQ29uc3QgKmFiaV9yb3V0ZV9tdWx0aUNvbXB1dGVkQ29uc3QgKmFiaV9yb3V0ZV9jb21wdXRlZENvbnN0QXNTdGF0aWNBcnJheUxlbmd0aCAqYWJpX3JvdXRlX3JlYWRTY2hlbWEgKmFiaV9yb3V0ZV9jb21wYXJpc29uT3IgKmFiaV9yb3V0ZV90eG5BcmdzTWV0aG9kICphYmlfcm91dGVfY2FsbFR4bkFyZ3NNZXRob2QgKmFiaV9yb3V0ZV9zdGF0aWNWYWx1ZUxlbiAqYWJpX3JvdXRlX3N0YXRpY1R5cGVMZW4KCWVycgoKKmludFRvQXNjaWk6Cglwcm90byAxIDEKCWJ5dGUgMHgzMDMxMzIzMzM0MzUzNjM3MzgzOSAvLyAiMDEyMzQ1Njc4OSIKCWZyYW1lX2RpZyAtMSAvLyBpOiB1aW50NjQKCWludCAxCglleHRyYWN0MwoJcmV0c3ViCgkKCippdG9hOgoJcHJvdG8gMSAxCglmcmFtZV9kaWcgLTEgLy8gaTogdWludDY0CglpbnQgMAoJPT0KCWJ6ICppdG9hX2lmX2VuZAoJYnl0ZSAweDE1MWY3Yzc1MDAwMTMwCglsb2cKCXJldHN1YgoKKml0b2FfaWZfZW5kOgoJZnJhbWVfZGlnIC0xIC8vIGk6IHVpbnQ2NAoJaW50IDEwCgkvCglpbnQgMAoJPgoJYnogKml0b2FfdGVybmFyeV9mYWxzZQoJZnJhbWVfZGlnIC0xIC8vIGk6IHVpbnQ2NAoJaW50IDEwCgkvCgljYWxsc3ViICppdG9hCgliICppdG9hX3Rlcm5hcnlfZW5kCgoqaXRvYV90ZXJuYXJ5X2ZhbHNlOgoJYnl0ZSAweCAvLyAiIgoKKml0b2FfdGVybmFyeV9lbmQ6CglmcmFtZV9kaWcgLTEgLy8gaTogdWludDY0CglpbnQgMTAKCSUKCWNhbGxzdWIgKmludFRvQXNjaWkKCWNvbmNhdAoJcmV0c3Vi", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/IfTest.approval.teal b/tests/contracts/artifacts/IfTest.approval.teal index d461cb11c..ae7d9d32d 100644 --- a/tests/contracts/artifacts/IfTest.approval.teal +++ b/tests/contracts/artifacts/IfTest.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // singleIf(bool)string -abi_route_singleIf: +*abi_route_singleIf: // The ABI return prefix byte 0x151f7c75 @@ -53,26 +53,26 @@ abi_route_singleIf: singleIf: proto 1 1 - // if0_condition + // *if0_condition // tests/contracts/if.algo.ts:7 // arg0 frame_dig -1 // arg0: boolean - bz if0_end + bz *if0_end - // if0_consequent + // *if0_consequent // tests/contracts/if.algo.ts:8 // return 'if'; byte 0x6966 // "if" retsub -if0_end: +*if0_end: // tests/contracts/if.algo.ts:11 // return 'end'; byte 0x656e64 // "end" retsub // ifElse(bool)string -abi_route_ifElse: +*abi_route_ifElse: // The ABI return prefix byte 0x151f7c75 @@ -103,30 +103,30 @@ abi_route_ifElse: ifElse: proto 1 1 - // if1_condition + // *if1_condition // tests/contracts/if.algo.ts:15 // arg0 frame_dig -1 // arg0: boolean - bz if1_else + bz *if1_else - // if1_consequent + // *if1_consequent // tests/contracts/if.algo.ts:16 // return 'if'; byte 0x6966 // "if" retsub - b if1_end + b *if1_end -if1_else: +*if1_else: // tests/contracts/if.algo.ts:18 // return 'else'; byte 0x656c7365 // "else" retsub -if1_end: +*if1_end: retsub // ifElseIf(bool,bool)string -abi_route_ifElseIf: +*abi_route_ifElseIf: // The ABI return prefix byte 0x151f7c75 @@ -167,39 +167,39 @@ abi_route_ifElseIf: ifElseIf: proto 2 1 - // if2_condition + // *if2_condition // tests/contracts/if.algo.ts:23 // arg0 frame_dig -1 // arg0: boolean - bz if2_elseif1_condition + bz *if2_elseif1_condition - // if2_consequent + // *if2_consequent // tests/contracts/if.algo.ts:24 // return 'if'; byte 0x6966 // "if" retsub - b if2_end + b *if2_end -if2_elseif1_condition: +*if2_elseif1_condition: // tests/contracts/if.algo.ts:25 // arg1 frame_dig -2 // arg1: boolean - bz if2_end + bz *if2_end - // if2_elseif1_consequent + // *if2_elseif1_consequent // tests/contracts/if.algo.ts:26 // return 'else if'; byte 0x656c7365206966 // "else if" retsub -if2_end: +*if2_end: // tests/contracts/if.algo.ts:29 // return 'end'; byte 0x656e64 // "end" retsub // ifElseIfElse(bool,bool)string -abi_route_ifElseIfElse: +*abi_route_ifElseIfElse: // The ABI return prefix byte 0x151f7c75 @@ -240,43 +240,43 @@ abi_route_ifElseIfElse: ifElseIfElse: proto 2 1 - // if3_condition + // *if3_condition // tests/contracts/if.algo.ts:33 // arg0 frame_dig -1 // arg0: boolean - bz if3_elseif1_condition + bz *if3_elseif1_condition - // if3_consequent + // *if3_consequent // tests/contracts/if.algo.ts:34 // return 'if'; byte 0x6966 // "if" retsub - b if3_end + b *if3_end -if3_elseif1_condition: +*if3_elseif1_condition: // tests/contracts/if.algo.ts:35 // arg1 frame_dig -2 // arg1: boolean - bz if3_else + bz *if3_else - // if3_elseif1_consequent + // *if3_elseif1_consequent // tests/contracts/if.algo.ts:36 // return 'else if'; byte 0x656c7365206966 // "else if" retsub - b if3_end + b *if3_end -if3_else: +*if3_else: // tests/contracts/if.algo.ts:38 // return 'else'; byte 0x656c7365 // "else" retsub -if3_end: +*if3_end: retsub // ifElseIfElseIf(bool,bool,bool)string -abi_route_ifElseIfElseIf: +*abi_route_ifElseIfElseIf: // The ABI return prefix byte 0x151f7c75 @@ -327,52 +327,52 @@ abi_route_ifElseIfElseIf: ifElseIfElseIf: proto 3 1 - // if4_condition + // *if4_condition // tests/contracts/if.algo.ts:43 // arg0 frame_dig -1 // arg0: boolean - bz if4_elseif1_condition + bz *if4_elseif1_condition - // if4_consequent + // *if4_consequent // tests/contracts/if.algo.ts:44 // return 'if'; byte 0x6966 // "if" retsub - b if4_end + b *if4_end -if4_elseif1_condition: +*if4_elseif1_condition: // tests/contracts/if.algo.ts:45 // arg1 frame_dig -2 // arg1: boolean - bz if4_elseif2_condition + bz *if4_elseif2_condition - // if4_elseif1_consequent + // *if4_elseif1_consequent // tests/contracts/if.algo.ts:46 // return 'else if 1'; byte 0x656c73652069662031 // "else if 1" retsub - b if4_end + b *if4_end -if4_elseif2_condition: +*if4_elseif2_condition: // tests/contracts/if.algo.ts:47 // arg2 frame_dig -3 // arg2: boolean - bz if4_end + bz *if4_end - // if4_elseif2_consequent + // *if4_elseif2_consequent // tests/contracts/if.algo.ts:48 // return 'else if 2'; byte 0x656c73652069662032 // "else if 2" retsub -if4_end: +*if4_end: // tests/contracts/if.algo.ts:51 // return 'end'; byte 0x656e64 // "end" retsub // ifElseIfElseIfElse(bool,bool,bool)string -abi_route_ifElseIfElseIfElse: +*abi_route_ifElseIfElseIfElse: // The ABI return prefix byte 0x151f7c75 @@ -423,56 +423,56 @@ abi_route_ifElseIfElseIfElse: ifElseIfElseIfElse: proto 3 1 - // if5_condition + // *if5_condition // tests/contracts/if.algo.ts:55 // arg0 frame_dig -1 // arg0: boolean - bz if5_elseif1_condition + bz *if5_elseif1_condition - // if5_consequent + // *if5_consequent // tests/contracts/if.algo.ts:56 // return 'if'; byte 0x6966 // "if" retsub - b if5_end + b *if5_end -if5_elseif1_condition: +*if5_elseif1_condition: // tests/contracts/if.algo.ts:57 // arg1 frame_dig -2 // arg1: boolean - bz if5_elseif2_condition + bz *if5_elseif2_condition - // if5_elseif1_consequent + // *if5_elseif1_consequent // tests/contracts/if.algo.ts:58 // return 'else if 1'; byte 0x656c73652069662031 // "else if 1" retsub - b if5_end + b *if5_end -if5_elseif2_condition: +*if5_elseif2_condition: // tests/contracts/if.algo.ts:59 // arg2 frame_dig -3 // arg2: boolean - bz if5_else + bz *if5_else - // if5_elseif2_consequent + // *if5_elseif2_consequent // tests/contracts/if.algo.ts:60 // return 'else if 2'; byte 0x656c73652069662032 // "else if 2" retsub - b if5_end + b *if5_end -if5_else: +*if5_else: // tests/contracts/if.algo.ts:62 // return 'else'; byte 0x656c7365 // "else" retsub -if5_end: +*if5_end: retsub // nestedIf(bool,bool)string -abi_route_nestedIf: +*abi_route_nestedIf: // The ABI return prefix byte 0x151f7c75 @@ -513,43 +513,43 @@ abi_route_nestedIf: nestedIf: proto 2 1 - // if6_condition + // *if6_condition // tests/contracts/if.algo.ts:67 // arg0 frame_dig -1 // arg0: boolean - bz if6_else + bz *if6_else - // if6_consequent - // if7_condition + // *if6_consequent + // *if7_condition // tests/contracts/if.algo.ts:68 // arg1 frame_dig -2 // arg1: boolean - bz if7_end + bz *if7_end - // if7_consequent + // *if7_consequent // tests/contracts/if.algo.ts:69 // return 'nested if'; byte 0x6e6573746564206966 // "nested if" retsub -if7_end: +*if7_end: // tests/contracts/if.algo.ts:71 // return 'if'; byte 0x6966 // "if" retsub - b if6_end + b *if6_end -if6_else: +*if6_else: // tests/contracts/if.algo.ts:73 // return 'else'; byte 0x656c7365 // "else" retsub -if6_end: +*if6_end: retsub // bracketlessIfElse(bool)string -abi_route_bracketlessIfElse: +*abi_route_bracketlessIfElse: // The ABI return prefix byte 0x151f7c75 @@ -580,30 +580,30 @@ abi_route_bracketlessIfElse: bracketlessIfElse: proto 1 1 - // if8_condition + // *if8_condition // tests/contracts/if.algo.ts:78 // arg0 frame_dig -1 // arg0: boolean - bz if8_else + bz *if8_else - // if8_consequent + // *if8_consequent // tests/contracts/if.algo.ts:78 // return 'if'; byte 0x6966 // "if" retsub - b if8_end + b *if8_end -if8_else: +*if8_else: // tests/contracts/if.algo.ts:79 // return 'else'; byte 0x656c7365 // "else" retsub -if8_end: +*if8_end: retsub // nestedTernary(bool,bool)uint64 -abi_route_nestedTernary: +*abi_route_nestedTernary: // The ABI return prefix byte 0x151f7c75 @@ -642,26 +642,26 @@ nestedTernary: // tests/contracts/if.algo.ts:84 // return arg0 ? 1 : arg1 ? 2 : 3; frame_dig -1 // arg0: boolean - bz ternary0_false + bz *ternary0_false int 1 - b ternary0_end + b *ternary0_end -ternary0_false: +*ternary0_false: frame_dig -2 // arg1: boolean - bz ternary1_false + bz *ternary1_false int 2 - b ternary1_end + b *ternary1_end -ternary1_false: +*ternary1_false: int 3 -ternary1_end: +*ternary1_end: -ternary0_end: +*ternary0_end: retsub // stringIf(string)uint64 -abi_route_stringIf: +*abi_route_stringIf: // The ABI return prefix byte 0x151f7c75 @@ -681,28 +681,28 @@ abi_route_stringIf: stringIf: proto 1 1 - // if9_condition + // *if9_condition // tests/contracts/if.algo.ts:88 // arg0 frame_dig -1 // arg0: string byte 0x b!= - bz if9_end + bz *if9_end - // if9_consequent + // *if9_consequent // tests/contracts/if.algo.ts:89 // return 1; int 1 retsub -if9_end: +*if9_end: // tests/contracts/if.algo.ts:92 // return 2; int 2 retsub // stringTernary(string)uint64 -abi_route_stringTernary: +*abi_route_stringTernary: // The ABI return prefix byte 0x151f7c75 @@ -727,18 +727,18 @@ stringTernary: frame_dig -1 // arg0: string byte 0x b!= - bz ternary2_false + bz *ternary2_false int 1 - b ternary2_end + b *ternary2_end -ternary2_false: +*ternary2_false: int 2 -ternary2_end: +*ternary2_end: retsub // smallUintConditional(uint16)void -abi_route_smallUintConditional: +*abi_route_smallUintConditional: // a: uint16 txna ApplicationArgs 1 dup @@ -757,25 +757,25 @@ abi_route_smallUintConditional: smallUintConditional: proto 1 0 - // if10_condition + // *if10_condition // tests/contracts/if.algo.ts:100 // a frame_dig -1 // a: uint16 byte 0x b!= - bz if10_end + bz *if10_end - // if10_consequent + // *if10_consequent // tests/contracts/if.algo.ts:101 // log('foo') byte 0x666f6f // "foo" log -if10_end: +*if10_end: retsub // smallUintComparisonConditional(uint16,uint16)void -abi_route_smallUintComparisonConditional: +*abi_route_smallUintComparisonConditional: // b: uint16 txna ApplicationArgs 2 dup @@ -803,25 +803,25 @@ abi_route_smallUintComparisonConditional: smallUintComparisonConditional: proto 2 0 - // if11_condition + // *if11_condition // tests/contracts/if.algo.ts:106 // a <= b frame_dig -1 // a: uint16 frame_dig -2 // b: uint16 <= - bz if11_end + bz *if11_end - // if11_consequent + // *if11_consequent // tests/contracts/if.algo.ts:107 // log('foo') byte 0x666f6f // "foo" log -if11_end: +*if11_end: retsub // uint256ComparsionConditional(uint256,uint256)void -abi_route_uint256ComparsionConditional: +*abi_route_uint256ComparsionConditional: // b: uint256 txna ApplicationArgs 2 dup @@ -847,34 +847,34 @@ abi_route_uint256ComparsionConditional: uint256ComparsionConditional: proto 2 0 - // if12_condition + // *if12_condition // tests/contracts/if.algo.ts:112 // a <= b frame_dig -1 // a: uint256 frame_dig -2 // b: uint256 b<= - bz if12_end + bz *if12_end - // if12_consequent + // *if12_consequent // tests/contracts/if.algo.ts:113 // log('foo') byte 0x666f6f // "foo" log -if12_end: +*if12_end: retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "singleIf(bool)string" method "ifElse(bool)string" method "ifElseIf(bool,bool)string" @@ -890,5 +890,5 @@ call_NoOp: method "smallUintComparisonConditional(uint16,uint16)void" method "uint256ComparsionConditional(uint256,uint256)void" txna ApplicationArgs 0 - match abi_route_singleIf abi_route_ifElse abi_route_ifElseIf abi_route_ifElseIfElse abi_route_ifElseIfElseIf abi_route_ifElseIfElseIfElse abi_route_nestedIf abi_route_bracketlessIfElse abi_route_nestedTernary abi_route_stringIf abi_route_stringTernary abi_route_smallUintConditional abi_route_smallUintComparisonConditional abi_route_uint256ComparsionConditional + match *abi_route_singleIf *abi_route_ifElse *abi_route_ifElseIf *abi_route_ifElseIfElse *abi_route_ifElseIfElseIf *abi_route_ifElseIfElseIfElse *abi_route_nestedIf *abi_route_bracketlessIfElse *abi_route_nestedTernary *abi_route_stringIf *abi_route_stringTernary *abi_route_smallUintConditional *abi_route_smallUintComparisonConditional *abi_route_uint256ComparsionConditional err \ No newline at end of file diff --git a/tests/contracts/artifacts/IfTest.arc32.json b/tests/contracts/artifacts/IfTest.arc32.json index 84c55a08d..47a7cba79 100644 --- a/tests/contracts/artifacts/IfTest.arc32.json +++ b/tests/contracts/artifacts/IfTest.arc32.json @@ -104,7 +104,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzaW5nbGVJZihib29sKXN0cmluZwphYmlfcm91dGVfc2luZ2xlSWY6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGFyZzA6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMQoJPT0KCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGV4ZWN1dGUgc2luZ2xlSWYoYm9vbClzdHJpbmcKCWNhbGxzdWIgc2luZ2xlSWYKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gc2luZ2xlSWYoYXJnMDogYm9vbGVhbik6IHN0cmluZwpzaW5nbGVJZjoKCXByb3RvIDEgMQoKCS8vIGlmMF9jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjcKCS8vIGFyZzAKCWZyYW1lX2RpZyAtMSAvLyBhcmcwOiBib29sZWFuCglieiBpZjBfZW5kCgoJLy8gaWYwX2NvbnNlcXVlbnQKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjgKCS8vIHJldHVybiAnaWYnOwoJYnl0ZSAweDY5NjYgLy8gImlmIgoJcmV0c3ViCgppZjBfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MTEKCS8vIHJldHVybiAnZW5kJzsKCWJ5dGUgMHg2NTZlNjQgLy8gImVuZCIKCXJldHN1YgoKLy8gaWZFbHNlKGJvb2wpc3RyaW5nCmFiaV9yb3V0ZV9pZkVsc2U6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGFyZzA6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMQoJPT0KCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGV4ZWN1dGUgaWZFbHNlKGJvb2wpc3RyaW5nCgljYWxsc3ViIGlmRWxzZQoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBpZkVsc2UoYXJnMDogYm9vbGVhbik6IHN0cmluZwppZkVsc2U6Cglwcm90byAxIDEKCgkvLyBpZjFfY29uZGl0aW9uCgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czoxNQoJLy8gYXJnMAoJZnJhbWVfZGlnIC0xIC8vIGFyZzA6IGJvb2xlYW4KCWJ6IGlmMV9lbHNlCgoJLy8gaWYxX2NvbnNlcXVlbnQKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjE2CgkvLyByZXR1cm4gJ2lmJzsKCWJ5dGUgMHg2OTY2IC8vICJpZiIKCXJldHN1YgoJYiBpZjFfZW5kCgppZjFfZWxzZToKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjE4CgkvLyByZXR1cm4gJ2Vsc2UnOwoJYnl0ZSAweDY1NmM3MzY1IC8vICJlbHNlIgoJcmV0c3ViCgppZjFfZW5kOgoJcmV0c3ViCgovLyBpZkVsc2VJZihib29sLGJvb2wpc3RyaW5nCmFiaV9yb3V0ZV9pZkVsc2VJZjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYXJnMTogYm9vbAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAxCgk9PQoJYXNzZXJ0CglpbnQgMAoJZ2V0Yml0CgoJLy8gYXJnMDogYm9vbAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAxCgk9PQoJYXNzZXJ0CglpbnQgMAoJZ2V0Yml0CgoJLy8gZXhlY3V0ZSBpZkVsc2VJZihib29sLGJvb2wpc3RyaW5nCgljYWxsc3ViIGlmRWxzZUlmCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGlmRWxzZUlmKGFyZzA6IGJvb2xlYW4sIGFyZzE6IGJvb2xlYW4pOiBzdHJpbmcKaWZFbHNlSWY6Cglwcm90byAyIDEKCgkvLyBpZjJfY29uZGl0aW9uCgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czoyMwoJLy8gYXJnMAoJZnJhbWVfZGlnIC0xIC8vIGFyZzA6IGJvb2xlYW4KCWJ6IGlmMl9lbHNlaWYxX2NvbmRpdGlvbgoKCS8vIGlmMl9jb25zZXF1ZW50CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czoyNAoJLy8gcmV0dXJuICdpZic7CglieXRlIDB4Njk2NiAvLyAiaWYiCglyZXRzdWIKCWIgaWYyX2VuZAoKaWYyX2Vsc2VpZjFfY29uZGl0aW9uOgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MjUKCS8vIGFyZzEKCWZyYW1lX2RpZyAtMiAvLyBhcmcxOiBib29sZWFuCglieiBpZjJfZW5kCgoJLy8gaWYyX2Vsc2VpZjFfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MjYKCS8vIHJldHVybiAnZWxzZSBpZic7CglieXRlIDB4NjU2YzczNjUyMDY5NjYgLy8gImVsc2UgaWYiCglyZXRzdWIKCmlmMl9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czoyOQoJLy8gcmV0dXJuICdlbmQnOwoJYnl0ZSAweDY1NmU2NCAvLyAiZW5kIgoJcmV0c3ViCgovLyBpZkVsc2VJZkVsc2UoYm9vbCxib29sKXN0cmluZwphYmlfcm91dGVfaWZFbHNlSWZFbHNlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBhcmcxOiBib29sCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDEKCT09Cglhc3NlcnQKCWludCAwCglnZXRiaXQKCgkvLyBhcmcwOiBib29sCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDEKCT09Cglhc3NlcnQKCWludCAwCglnZXRiaXQKCgkvLyBleGVjdXRlIGlmRWxzZUlmRWxzZShib29sLGJvb2wpc3RyaW5nCgljYWxsc3ViIGlmRWxzZUlmRWxzZQoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBpZkVsc2VJZkVsc2UoYXJnMDogYm9vbGVhbiwgYXJnMTogYm9vbGVhbik6IHN0cmluZwppZkVsc2VJZkVsc2U6Cglwcm90byAyIDEKCgkvLyBpZjNfY29uZGl0aW9uCgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czozMwoJLy8gYXJnMAoJZnJhbWVfZGlnIC0xIC8vIGFyZzA6IGJvb2xlYW4KCWJ6IGlmM19lbHNlaWYxX2NvbmRpdGlvbgoKCS8vIGlmM19jb25zZXF1ZW50CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czozNAoJLy8gcmV0dXJuICdpZic7CglieXRlIDB4Njk2NiAvLyAiaWYiCglyZXRzdWIKCWIgaWYzX2VuZAoKaWYzX2Vsc2VpZjFfY29uZGl0aW9uOgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MzUKCS8vIGFyZzEKCWZyYW1lX2RpZyAtMiAvLyBhcmcxOiBib29sZWFuCglieiBpZjNfZWxzZQoKCS8vIGlmM19lbHNlaWYxX2NvbnNlcXVlbnQKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjM2CgkvLyByZXR1cm4gJ2Vsc2UgaWYnOwoJYnl0ZSAweDY1NmM3MzY1MjA2OTY2IC8vICJlbHNlIGlmIgoJcmV0c3ViCgliIGlmM19lbmQKCmlmM19lbHNlOgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MzgKCS8vIHJldHVybiAnZWxzZSc7CglieXRlIDB4NjU2YzczNjUgLy8gImVsc2UiCglyZXRzdWIKCmlmM19lbmQ6CglyZXRzdWIKCi8vIGlmRWxzZUlmRWxzZUlmKGJvb2wsYm9vbCxib29sKXN0cmluZwphYmlfcm91dGVfaWZFbHNlSWZFbHNlSWY6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGFyZzI6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWR1cAoJbGVuCglpbnQgMQoJPT0KCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGFyZzE6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMQoJPT0KCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGFyZzA6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMQoJPT0KCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGV4ZWN1dGUgaWZFbHNlSWZFbHNlSWYoYm9vbCxib29sLGJvb2wpc3RyaW5nCgljYWxsc3ViIGlmRWxzZUlmRWxzZUlmCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGlmRWxzZUlmRWxzZUlmKGFyZzA6IGJvb2xlYW4sIGFyZzE6IGJvb2xlYW4sIGFyZzI6IGJvb2xlYW4pOiBzdHJpbmcKaWZFbHNlSWZFbHNlSWY6Cglwcm90byAzIDEKCgkvLyBpZjRfY29uZGl0aW9uCgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo0MwoJLy8gYXJnMAoJZnJhbWVfZGlnIC0xIC8vIGFyZzA6IGJvb2xlYW4KCWJ6IGlmNF9lbHNlaWYxX2NvbmRpdGlvbgoKCS8vIGlmNF9jb25zZXF1ZW50CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo0NAoJLy8gcmV0dXJuICdpZic7CglieXRlIDB4Njk2NiAvLyAiaWYiCglyZXRzdWIKCWIgaWY0X2VuZAoKaWY0X2Vsc2VpZjFfY29uZGl0aW9uOgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NDUKCS8vIGFyZzEKCWZyYW1lX2RpZyAtMiAvLyBhcmcxOiBib29sZWFuCglieiBpZjRfZWxzZWlmMl9jb25kaXRpb24KCgkvLyBpZjRfZWxzZWlmMV9jb25zZXF1ZW50CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo0NgoJLy8gcmV0dXJuICdlbHNlIGlmIDEnOwoJYnl0ZSAweDY1NmM3MzY1MjA2OTY2MjAzMSAvLyAiZWxzZSBpZiAxIgoJcmV0c3ViCgliIGlmNF9lbmQKCmlmNF9lbHNlaWYyX2NvbmRpdGlvbjoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjQ3CgkvLyBhcmcyCglmcmFtZV9kaWcgLTMgLy8gYXJnMjogYm9vbGVhbgoJYnogaWY0X2VuZAoKCS8vIGlmNF9lbHNlaWYyX2NvbnNlcXVlbnQKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjQ4CgkvLyByZXR1cm4gJ2Vsc2UgaWYgMic7CglieXRlIDB4NjU2YzczNjUyMDY5NjYyMDMyIC8vICJlbHNlIGlmIDIiCglyZXRzdWIKCmlmNF9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo1MQoJLy8gcmV0dXJuICdlbmQnOwoJYnl0ZSAweDY1NmU2NCAvLyAiZW5kIgoJcmV0c3ViCgovLyBpZkVsc2VJZkVsc2VJZkVsc2UoYm9vbCxib29sLGJvb2wpc3RyaW5nCmFiaV9yb3V0ZV9pZkVsc2VJZkVsc2VJZkVsc2U6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGFyZzI6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWR1cAoJbGVuCglpbnQgMQoJPT0KCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGFyZzE6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMQoJPT0KCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGFyZzA6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMQoJPT0KCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGV4ZWN1dGUgaWZFbHNlSWZFbHNlSWZFbHNlKGJvb2wsYm9vbCxib29sKXN0cmluZwoJY2FsbHN1YiBpZkVsc2VJZkVsc2VJZkVsc2UKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gaWZFbHNlSWZFbHNlSWZFbHNlKGFyZzA6IGJvb2xlYW4sIGFyZzE6IGJvb2xlYW4sIGFyZzI6IGJvb2xlYW4pOiBzdHJpbmcKaWZFbHNlSWZFbHNlSWZFbHNlOgoJcHJvdG8gMyAxCgoJLy8gaWY1X2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NTUKCS8vIGFyZzAKCWZyYW1lX2RpZyAtMSAvLyBhcmcwOiBib29sZWFuCglieiBpZjVfZWxzZWlmMV9jb25kaXRpb24KCgkvLyBpZjVfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NTYKCS8vIHJldHVybiAnaWYnOwoJYnl0ZSAweDY5NjYgLy8gImlmIgoJcmV0c3ViCgliIGlmNV9lbmQKCmlmNV9lbHNlaWYxX2NvbmRpdGlvbjoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjU3CgkvLyBhcmcxCglmcmFtZV9kaWcgLTIgLy8gYXJnMTogYm9vbGVhbgoJYnogaWY1X2Vsc2VpZjJfY29uZGl0aW9uCgoJLy8gaWY1X2Vsc2VpZjFfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NTgKCS8vIHJldHVybiAnZWxzZSBpZiAxJzsKCWJ5dGUgMHg2NTZjNzM2NTIwNjk2NjIwMzEgLy8gImVsc2UgaWYgMSIKCXJldHN1YgoJYiBpZjVfZW5kCgppZjVfZWxzZWlmMl9jb25kaXRpb246CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo1OQoJLy8gYXJnMgoJZnJhbWVfZGlnIC0zIC8vIGFyZzI6IGJvb2xlYW4KCWJ6IGlmNV9lbHNlCgoJLy8gaWY1X2Vsc2VpZjJfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NjAKCS8vIHJldHVybiAnZWxzZSBpZiAyJzsKCWJ5dGUgMHg2NTZjNzM2NTIwNjk2NjIwMzIgLy8gImVsc2UgaWYgMiIKCXJldHN1YgoJYiBpZjVfZW5kCgppZjVfZWxzZToKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjYyCgkvLyByZXR1cm4gJ2Vsc2UnOwoJYnl0ZSAweDY1NmM3MzY1IC8vICJlbHNlIgoJcmV0c3ViCgppZjVfZW5kOgoJcmV0c3ViCgovLyBuZXN0ZWRJZihib29sLGJvb2wpc3RyaW5nCmFiaV9yb3V0ZV9uZXN0ZWRJZjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYXJnMTogYm9vbAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAxCgk9PQoJYXNzZXJ0CglpbnQgMAoJZ2V0Yml0CgoJLy8gYXJnMDogYm9vbAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAxCgk9PQoJYXNzZXJ0CglpbnQgMAoJZ2V0Yml0CgoJLy8gZXhlY3V0ZSBuZXN0ZWRJZihib29sLGJvb2wpc3RyaW5nCgljYWxsc3ViIG5lc3RlZElmCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIG5lc3RlZElmKGFyZzA6IGJvb2xlYW4sIGFyZzE6IGJvb2xlYW4pOiBzdHJpbmcKbmVzdGVkSWY6Cglwcm90byAyIDEKCgkvLyBpZjZfY29uZGl0aW9uCgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo2NwoJLy8gYXJnMAoJZnJhbWVfZGlnIC0xIC8vIGFyZzA6IGJvb2xlYW4KCWJ6IGlmNl9lbHNlCgoJLy8gaWY2X2NvbnNlcXVlbnQKCS8vIGlmN19jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjY4CgkvLyBhcmcxCglmcmFtZV9kaWcgLTIgLy8gYXJnMTogYm9vbGVhbgoJYnogaWY3X2VuZAoKCS8vIGlmN19jb25zZXF1ZW50CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo2OQoJLy8gcmV0dXJuICduZXN0ZWQgaWYnOwoJYnl0ZSAweDZlNjU3Mzc0NjU2NDIwNjk2NiAvLyAibmVzdGVkIGlmIgoJcmV0c3ViCgppZjdfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NzEKCS8vIHJldHVybiAnaWYnOwoJYnl0ZSAweDY5NjYgLy8gImlmIgoJcmV0c3ViCgliIGlmNl9lbmQKCmlmNl9lbHNlOgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NzMKCS8vIHJldHVybiAnZWxzZSc7CglieXRlIDB4NjU2YzczNjUgLy8gImVsc2UiCglyZXRzdWIKCmlmNl9lbmQ6CglyZXRzdWIKCi8vIGJyYWNrZXRsZXNzSWZFbHNlKGJvb2wpc3RyaW5nCmFiaV9yb3V0ZV9icmFja2V0bGVzc0lmRWxzZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYXJnMDogYm9vbAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAxCgk9PQoJYXNzZXJ0CglpbnQgMAoJZ2V0Yml0CgoJLy8gZXhlY3V0ZSBicmFja2V0bGVzc0lmRWxzZShib29sKXN0cmluZwoJY2FsbHN1YiBicmFja2V0bGVzc0lmRWxzZQoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBicmFja2V0bGVzc0lmRWxzZShhcmcwOiBib29sZWFuKTogc3RyaW5nCmJyYWNrZXRsZXNzSWZFbHNlOgoJcHJvdG8gMSAxCgoJLy8gaWY4X2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NzgKCS8vIGFyZzAKCWZyYW1lX2RpZyAtMSAvLyBhcmcwOiBib29sZWFuCglieiBpZjhfZWxzZQoKCS8vIGlmOF9jb25zZXF1ZW50CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo3OAoJLy8gcmV0dXJuICdpZic7CglieXRlIDB4Njk2NiAvLyAiaWYiCglyZXRzdWIKCWIgaWY4X2VuZAoKaWY4X2Vsc2U6CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo3OQoJLy8gcmV0dXJuICdlbHNlJzsKCWJ5dGUgMHg2NTZjNzM2NSAvLyAiZWxzZSIKCXJldHN1YgoKaWY4X2VuZDoKCXJldHN1YgoKLy8gbmVzdGVkVGVybmFyeShib29sLGJvb2wpdWludDY0CmFiaV9yb3V0ZV9uZXN0ZWRUZXJuYXJ5OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBhcmcxOiBib29sCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDEKCT09Cglhc3NlcnQKCWludCAwCglnZXRiaXQKCgkvLyBhcmcwOiBib29sCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDEKCT09Cglhc3NlcnQKCWludCAwCglnZXRiaXQKCgkvLyBleGVjdXRlIG5lc3RlZFRlcm5hcnkoYm9vbCxib29sKXVpbnQ2NAoJY2FsbHN1YiBuZXN0ZWRUZXJuYXJ5CglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gbmVzdGVkVGVybmFyeShhcmcwOiBib29sZWFuLCBhcmcxOiBib29sZWFuKTogbnVtYmVyCm5lc3RlZFRlcm5hcnk6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo4NAoJLy8gcmV0dXJuIGFyZzAgPyAxIDogYXJnMSA/IDIgOiAzOwoJZnJhbWVfZGlnIC0xIC8vIGFyZzA6IGJvb2xlYW4KCWJ6IHRlcm5hcnkwX2ZhbHNlCglpbnQgMQoJYiB0ZXJuYXJ5MF9lbmQKCnRlcm5hcnkwX2ZhbHNlOgoJZnJhbWVfZGlnIC0yIC8vIGFyZzE6IGJvb2xlYW4KCWJ6IHRlcm5hcnkxX2ZhbHNlCglpbnQgMgoJYiB0ZXJuYXJ5MV9lbmQKCnRlcm5hcnkxX2ZhbHNlOgoJaW50IDMKCnRlcm5hcnkxX2VuZDoKCnRlcm5hcnkwX2VuZDoKCXJldHN1YgoKLy8gc3RyaW5nSWYoc3RyaW5nKXVpbnQ2NAphYmlfcm91dGVfc3RyaW5nSWY6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGFyZzA6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIHN0cmluZ0lmKHN0cmluZyl1aW50NjQKCWNhbGxzdWIgc3RyaW5nSWYKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzdHJpbmdJZihhcmcwOiBzdHJpbmcpOiBudW1iZXIKc3RyaW5nSWY6Cglwcm90byAxIDEKCgkvLyBpZjlfY29uZGl0aW9uCgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo4OAoJLy8gYXJnMAoJZnJhbWVfZGlnIC0xIC8vIGFyZzA6IHN0cmluZwoJYnl0ZSAweAoJYiE9CglieiBpZjlfZW5kCgoJLy8gaWY5X2NvbnNlcXVlbnQKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjg5CgkvLyByZXR1cm4gMTsKCWludCAxCglyZXRzdWIKCmlmOV9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo5MgoJLy8gcmV0dXJuIDI7CglpbnQgMgoJcmV0c3ViCgovLyBzdHJpbmdUZXJuYXJ5KHN0cmluZyl1aW50NjQKYWJpX3JvdXRlX3N0cmluZ1Rlcm5hcnk6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGFyZzA6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIHN0cmluZ1Rlcm5hcnkoc3RyaW5nKXVpbnQ2NAoJY2FsbHN1YiBzdHJpbmdUZXJuYXJ5CglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gc3RyaW5nVGVybmFyeShhcmcwOiBzdHJpbmcpOiBudW1iZXIKc3RyaW5nVGVybmFyeToKCXByb3RvIDEgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjk2CgkvLyByZXR1cm4gYXJnMCA/IDEgOiAyOwoJZnJhbWVfZGlnIC0xIC8vIGFyZzA6IHN0cmluZwoJYnl0ZSAweAoJYiE9CglieiB0ZXJuYXJ5Ml9mYWxzZQoJaW50IDEKCWIgdGVybmFyeTJfZW5kCgp0ZXJuYXJ5Ml9mYWxzZToKCWludCAyCgp0ZXJuYXJ5Ml9lbmQ6CglyZXRzdWIKCi8vIHNtYWxsVWludENvbmRpdGlvbmFsKHVpbnQxNil2b2lkCmFiaV9yb3V0ZV9zbWFsbFVpbnRDb25kaXRpb25hbDoKCS8vIGE6IHVpbnQxNgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAyCgk9PQoJYXNzZXJ0CglidG9pCgoJLy8gZXhlY3V0ZSBzbWFsbFVpbnRDb25kaXRpb25hbCh1aW50MTYpdm9pZAoJY2FsbHN1YiBzbWFsbFVpbnRDb25kaXRpb25hbAoJaW50IDEKCXJldHVybgoKLy8gc21hbGxVaW50Q29uZGl0aW9uYWwoYTogdWludDE2KTogdm9pZApzbWFsbFVpbnRDb25kaXRpb25hbDoKCXByb3RvIDEgMAoKCS8vIGlmMTBfY29uZGl0aW9uCgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czoxMDAKCS8vIGEKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50MTYKCWJ5dGUgMHgKCWIhPQoJYnogaWYxMF9lbmQKCgkvLyBpZjEwX2NvbnNlcXVlbnQKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjEwMQoJLy8gbG9nKCdmb28nKQoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJbG9nCgppZjEwX2VuZDoKCXJldHN1YgoKLy8gc21hbGxVaW50Q29tcGFyaXNvbkNvbmRpdGlvbmFsKHVpbnQxNix1aW50MTYpdm9pZAphYmlfcm91dGVfc21hbGxVaW50Q29tcGFyaXNvbkNvbmRpdGlvbmFsOgoJLy8gYjogdWludDE2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDIKCT09Cglhc3NlcnQKCWJ0b2kKCgkvLyBhOiB1aW50MTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMgoJPT0KCWFzc2VydAoJYnRvaQoKCS8vIGV4ZWN1dGUgc21hbGxVaW50Q29tcGFyaXNvbkNvbmRpdGlvbmFsKHVpbnQxNix1aW50MTYpdm9pZAoJY2FsbHN1YiBzbWFsbFVpbnRDb21wYXJpc29uQ29uZGl0aW9uYWwKCWludCAxCglyZXR1cm4KCi8vIHNtYWxsVWludENvbXBhcmlzb25Db25kaXRpb25hbChhOiB1aW50MTYsIGI6IHVpbnQxNik6IHZvaWQKc21hbGxVaW50Q29tcGFyaXNvbkNvbmRpdGlvbmFsOgoJcHJvdG8gMiAwCgoJLy8gaWYxMV9jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjEwNgoJLy8gYSA8PSBiCglmcmFtZV9kaWcgLTEgLy8gYTogdWludDE2CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDE2Cgk8PQoJYnogaWYxMV9lbmQKCgkvLyBpZjExX2NvbnNlcXVlbnQKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjEwNwoJLy8gbG9nKCdmb28nKQoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJbG9nCgppZjExX2VuZDoKCXJldHN1YgoKLy8gdWludDI1NkNvbXBhcnNpb25Db25kaXRpb25hbCh1aW50MjU2LHVpbnQyNTYpdm9pZAphYmlfcm91dGVfdWludDI1NkNvbXBhcnNpb25Db25kaXRpb25hbDoKCS8vIGI6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMzIKCT09Cglhc3NlcnQKCgkvLyBhOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSB1aW50MjU2Q29tcGFyc2lvbkNvbmRpdGlvbmFsKHVpbnQyNTYsdWludDI1Nil2b2lkCgljYWxsc3ViIHVpbnQyNTZDb21wYXJzaW9uQ29uZGl0aW9uYWwKCWludCAxCglyZXR1cm4KCi8vIHVpbnQyNTZDb21wYXJzaW9uQ29uZGl0aW9uYWwoYTogdWludDI1NiwgYjogdWludDI1Nik6IHZvaWQKdWludDI1NkNvbXBhcnNpb25Db25kaXRpb25hbDoKCXByb3RvIDIgMAoKCS8vIGlmMTJfY29uZGl0aW9uCgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czoxMTIKCS8vIGEgPD0gYgoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQyNTYKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50MjU2CgliPD0KCWJ6IGlmMTJfZW5kCgoJLy8gaWYxMl9jb25zZXF1ZW50CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czoxMTMKCS8vIGxvZygnZm9vJykKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWxvZwoKaWYxMl9lbmQ6CglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgInNpbmdsZUlmKGJvb2wpc3RyaW5nIgoJbWV0aG9kICJpZkVsc2UoYm9vbClzdHJpbmciCgltZXRob2QgImlmRWxzZUlmKGJvb2wsYm9vbClzdHJpbmciCgltZXRob2QgImlmRWxzZUlmRWxzZShib29sLGJvb2wpc3RyaW5nIgoJbWV0aG9kICJpZkVsc2VJZkVsc2VJZihib29sLGJvb2wsYm9vbClzdHJpbmciCgltZXRob2QgImlmRWxzZUlmRWxzZUlmRWxzZShib29sLGJvb2wsYm9vbClzdHJpbmciCgltZXRob2QgIm5lc3RlZElmKGJvb2wsYm9vbClzdHJpbmciCgltZXRob2QgImJyYWNrZXRsZXNzSWZFbHNlKGJvb2wpc3RyaW5nIgoJbWV0aG9kICJuZXN0ZWRUZXJuYXJ5KGJvb2wsYm9vbCl1aW50NjQiCgltZXRob2QgInN0cmluZ0lmKHN0cmluZyl1aW50NjQiCgltZXRob2QgInN0cmluZ1Rlcm5hcnkoc3RyaW5nKXVpbnQ2NCIKCW1ldGhvZCAic21hbGxVaW50Q29uZGl0aW9uYWwodWludDE2KXZvaWQiCgltZXRob2QgInNtYWxsVWludENvbXBhcmlzb25Db25kaXRpb25hbCh1aW50MTYsdWludDE2KXZvaWQiCgltZXRob2QgInVpbnQyNTZDb21wYXJzaW9uQ29uZGl0aW9uYWwodWludDI1Nix1aW50MjU2KXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfc2luZ2xlSWYgYWJpX3JvdXRlX2lmRWxzZSBhYmlfcm91dGVfaWZFbHNlSWYgYWJpX3JvdXRlX2lmRWxzZUlmRWxzZSBhYmlfcm91dGVfaWZFbHNlSWZFbHNlSWYgYWJpX3JvdXRlX2lmRWxzZUlmRWxzZUlmRWxzZSBhYmlfcm91dGVfbmVzdGVkSWYgYWJpX3JvdXRlX2JyYWNrZXRsZXNzSWZFbHNlIGFiaV9yb3V0ZV9uZXN0ZWRUZXJuYXJ5IGFiaV9yb3V0ZV9zdHJpbmdJZiBhYmlfcm91dGVfc3RyaW5nVGVybmFyeSBhYmlfcm91dGVfc21hbGxVaW50Q29uZGl0aW9uYWwgYWJpX3JvdXRlX3NtYWxsVWludENvbXBhcmlzb25Db25kaXRpb25hbCBhYmlfcm91dGVfdWludDI1NkNvbXBhcnNpb25Db25kaXRpb25hbAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzaW5nbGVJZihib29sKXN0cmluZwoqYWJpX3JvdXRlX3NpbmdsZUlmOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBhcmcwOiBib29sCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDEKCT09Cglhc3NlcnQKCWludCAwCglnZXRiaXQKCgkvLyBleGVjdXRlIHNpbmdsZUlmKGJvb2wpc3RyaW5nCgljYWxsc3ViIHNpbmdsZUlmCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHNpbmdsZUlmKGFyZzA6IGJvb2xlYW4pOiBzdHJpbmcKc2luZ2xlSWY6Cglwcm90byAxIDEKCgkvLyAqaWYwX2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NwoJLy8gYXJnMAoJZnJhbWVfZGlnIC0xIC8vIGFyZzA6IGJvb2xlYW4KCWJ6ICppZjBfZW5kCgoJLy8gKmlmMF9jb25zZXF1ZW50CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo4CgkvLyByZXR1cm4gJ2lmJzsKCWJ5dGUgMHg2OTY2IC8vICJpZiIKCXJldHN1YgoKKmlmMF9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czoxMQoJLy8gcmV0dXJuICdlbmQnOwoJYnl0ZSAweDY1NmU2NCAvLyAiZW5kIgoJcmV0c3ViCgovLyBpZkVsc2UoYm9vbClzdHJpbmcKKmFiaV9yb3V0ZV9pZkVsc2U6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGFyZzA6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMQoJPT0KCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGV4ZWN1dGUgaWZFbHNlKGJvb2wpc3RyaW5nCgljYWxsc3ViIGlmRWxzZQoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBpZkVsc2UoYXJnMDogYm9vbGVhbik6IHN0cmluZwppZkVsc2U6Cglwcm90byAxIDEKCgkvLyAqaWYxX2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MTUKCS8vIGFyZzAKCWZyYW1lX2RpZyAtMSAvLyBhcmcwOiBib29sZWFuCglieiAqaWYxX2Vsc2UKCgkvLyAqaWYxX2NvbnNlcXVlbnQKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjE2CgkvLyByZXR1cm4gJ2lmJzsKCWJ5dGUgMHg2OTY2IC8vICJpZiIKCXJldHN1YgoJYiAqaWYxX2VuZAoKKmlmMV9lbHNlOgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MTgKCS8vIHJldHVybiAnZWxzZSc7CglieXRlIDB4NjU2YzczNjUgLy8gImVsc2UiCglyZXRzdWIKCippZjFfZW5kOgoJcmV0c3ViCgovLyBpZkVsc2VJZihib29sLGJvb2wpc3RyaW5nCiphYmlfcm91dGVfaWZFbHNlSWY6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGFyZzE6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMQoJPT0KCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGFyZzA6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMQoJPT0KCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGV4ZWN1dGUgaWZFbHNlSWYoYm9vbCxib29sKXN0cmluZwoJY2FsbHN1YiBpZkVsc2VJZgoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBpZkVsc2VJZihhcmcwOiBib29sZWFuLCBhcmcxOiBib29sZWFuKTogc3RyaW5nCmlmRWxzZUlmOgoJcHJvdG8gMiAxCgoJLy8gKmlmMl9jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjIzCgkvLyBhcmcwCglmcmFtZV9kaWcgLTEgLy8gYXJnMDogYm9vbGVhbgoJYnogKmlmMl9lbHNlaWYxX2NvbmRpdGlvbgoKCS8vICppZjJfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MjQKCS8vIHJldHVybiAnaWYnOwoJYnl0ZSAweDY5NjYgLy8gImlmIgoJcmV0c3ViCgliICppZjJfZW5kCgoqaWYyX2Vsc2VpZjFfY29uZGl0aW9uOgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MjUKCS8vIGFyZzEKCWZyYW1lX2RpZyAtMiAvLyBhcmcxOiBib29sZWFuCglieiAqaWYyX2VuZAoKCS8vICppZjJfZWxzZWlmMV9jb25zZXF1ZW50CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czoyNgoJLy8gcmV0dXJuICdlbHNlIGlmJzsKCWJ5dGUgMHg2NTZjNzM2NTIwNjk2NiAvLyAiZWxzZSBpZiIKCXJldHN1YgoKKmlmMl9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czoyOQoJLy8gcmV0dXJuICdlbmQnOwoJYnl0ZSAweDY1NmU2NCAvLyAiZW5kIgoJcmV0c3ViCgovLyBpZkVsc2VJZkVsc2UoYm9vbCxib29sKXN0cmluZwoqYWJpX3JvdXRlX2lmRWxzZUlmRWxzZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYXJnMTogYm9vbAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAxCgk9PQoJYXNzZXJ0CglpbnQgMAoJZ2V0Yml0CgoJLy8gYXJnMDogYm9vbAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAxCgk9PQoJYXNzZXJ0CglpbnQgMAoJZ2V0Yml0CgoJLy8gZXhlY3V0ZSBpZkVsc2VJZkVsc2UoYm9vbCxib29sKXN0cmluZwoJY2FsbHN1YiBpZkVsc2VJZkVsc2UKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gaWZFbHNlSWZFbHNlKGFyZzA6IGJvb2xlYW4sIGFyZzE6IGJvb2xlYW4pOiBzdHJpbmcKaWZFbHNlSWZFbHNlOgoJcHJvdG8gMiAxCgoJLy8gKmlmM19jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjMzCgkvLyBhcmcwCglmcmFtZV9kaWcgLTEgLy8gYXJnMDogYm9vbGVhbgoJYnogKmlmM19lbHNlaWYxX2NvbmRpdGlvbgoKCS8vICppZjNfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MzQKCS8vIHJldHVybiAnaWYnOwoJYnl0ZSAweDY5NjYgLy8gImlmIgoJcmV0c3ViCgliICppZjNfZW5kCgoqaWYzX2Vsc2VpZjFfY29uZGl0aW9uOgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MzUKCS8vIGFyZzEKCWZyYW1lX2RpZyAtMiAvLyBhcmcxOiBib29sZWFuCglieiAqaWYzX2Vsc2UKCgkvLyAqaWYzX2Vsc2VpZjFfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MzYKCS8vIHJldHVybiAnZWxzZSBpZic7CglieXRlIDB4NjU2YzczNjUyMDY5NjYgLy8gImVsc2UgaWYiCglyZXRzdWIKCWIgKmlmM19lbmQKCippZjNfZWxzZToKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjM4CgkvLyByZXR1cm4gJ2Vsc2UnOwoJYnl0ZSAweDY1NmM3MzY1IC8vICJlbHNlIgoJcmV0c3ViCgoqaWYzX2VuZDoKCXJldHN1YgoKLy8gaWZFbHNlSWZFbHNlSWYoYm9vbCxib29sLGJvb2wpc3RyaW5nCiphYmlfcm91dGVfaWZFbHNlSWZFbHNlSWY6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGFyZzI6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWR1cAoJbGVuCglpbnQgMQoJPT0KCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGFyZzE6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMQoJPT0KCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGFyZzA6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMQoJPT0KCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGV4ZWN1dGUgaWZFbHNlSWZFbHNlSWYoYm9vbCxib29sLGJvb2wpc3RyaW5nCgljYWxsc3ViIGlmRWxzZUlmRWxzZUlmCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGlmRWxzZUlmRWxzZUlmKGFyZzA6IGJvb2xlYW4sIGFyZzE6IGJvb2xlYW4sIGFyZzI6IGJvb2xlYW4pOiBzdHJpbmcKaWZFbHNlSWZFbHNlSWY6Cglwcm90byAzIDEKCgkvLyAqaWY0X2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NDMKCS8vIGFyZzAKCWZyYW1lX2RpZyAtMSAvLyBhcmcwOiBib29sZWFuCglieiAqaWY0X2Vsc2VpZjFfY29uZGl0aW9uCgoJLy8gKmlmNF9jb25zZXF1ZW50CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo0NAoJLy8gcmV0dXJuICdpZic7CglieXRlIDB4Njk2NiAvLyAiaWYiCglyZXRzdWIKCWIgKmlmNF9lbmQKCippZjRfZWxzZWlmMV9jb25kaXRpb246CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo0NQoJLy8gYXJnMQoJZnJhbWVfZGlnIC0yIC8vIGFyZzE6IGJvb2xlYW4KCWJ6ICppZjRfZWxzZWlmMl9jb25kaXRpb24KCgkvLyAqaWY0X2Vsc2VpZjFfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NDYKCS8vIHJldHVybiAnZWxzZSBpZiAxJzsKCWJ5dGUgMHg2NTZjNzM2NTIwNjk2NjIwMzEgLy8gImVsc2UgaWYgMSIKCXJldHN1YgoJYiAqaWY0X2VuZAoKKmlmNF9lbHNlaWYyX2NvbmRpdGlvbjoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjQ3CgkvLyBhcmcyCglmcmFtZV9kaWcgLTMgLy8gYXJnMjogYm9vbGVhbgoJYnogKmlmNF9lbmQKCgkvLyAqaWY0X2Vsc2VpZjJfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NDgKCS8vIHJldHVybiAnZWxzZSBpZiAyJzsKCWJ5dGUgMHg2NTZjNzM2NTIwNjk2NjIwMzIgLy8gImVsc2UgaWYgMiIKCXJldHN1YgoKKmlmNF9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo1MQoJLy8gcmV0dXJuICdlbmQnOwoJYnl0ZSAweDY1NmU2NCAvLyAiZW5kIgoJcmV0c3ViCgovLyBpZkVsc2VJZkVsc2VJZkVsc2UoYm9vbCxib29sLGJvb2wpc3RyaW5nCiphYmlfcm91dGVfaWZFbHNlSWZFbHNlSWZFbHNlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBhcmcyOiBib29sCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglkdXAKCWxlbgoJaW50IDEKCT09Cglhc3NlcnQKCWludCAwCglnZXRiaXQKCgkvLyBhcmcxOiBib29sCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDEKCT09Cglhc3NlcnQKCWludCAwCglnZXRiaXQKCgkvLyBhcmcwOiBib29sCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDEKCT09Cglhc3NlcnQKCWludCAwCglnZXRiaXQKCgkvLyBleGVjdXRlIGlmRWxzZUlmRWxzZUlmRWxzZShib29sLGJvb2wsYm9vbClzdHJpbmcKCWNhbGxzdWIgaWZFbHNlSWZFbHNlSWZFbHNlCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGlmRWxzZUlmRWxzZUlmRWxzZShhcmcwOiBib29sZWFuLCBhcmcxOiBib29sZWFuLCBhcmcyOiBib29sZWFuKTogc3RyaW5nCmlmRWxzZUlmRWxzZUlmRWxzZToKCXByb3RvIDMgMQoKCS8vICppZjVfY29uZGl0aW9uCgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo1NQoJLy8gYXJnMAoJZnJhbWVfZGlnIC0xIC8vIGFyZzA6IGJvb2xlYW4KCWJ6ICppZjVfZWxzZWlmMV9jb25kaXRpb24KCgkvLyAqaWY1X2NvbnNlcXVlbnQKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjU2CgkvLyByZXR1cm4gJ2lmJzsKCWJ5dGUgMHg2OTY2IC8vICJpZiIKCXJldHN1YgoJYiAqaWY1X2VuZAoKKmlmNV9lbHNlaWYxX2NvbmRpdGlvbjoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjU3CgkvLyBhcmcxCglmcmFtZV9kaWcgLTIgLy8gYXJnMTogYm9vbGVhbgoJYnogKmlmNV9lbHNlaWYyX2NvbmRpdGlvbgoKCS8vICppZjVfZWxzZWlmMV9jb25zZXF1ZW50CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo1OAoJLy8gcmV0dXJuICdlbHNlIGlmIDEnOwoJYnl0ZSAweDY1NmM3MzY1MjA2OTY2MjAzMSAvLyAiZWxzZSBpZiAxIgoJcmV0c3ViCgliICppZjVfZW5kCgoqaWY1X2Vsc2VpZjJfY29uZGl0aW9uOgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NTkKCS8vIGFyZzIKCWZyYW1lX2RpZyAtMyAvLyBhcmcyOiBib29sZWFuCglieiAqaWY1X2Vsc2UKCgkvLyAqaWY1X2Vsc2VpZjJfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NjAKCS8vIHJldHVybiAnZWxzZSBpZiAyJzsKCWJ5dGUgMHg2NTZjNzM2NTIwNjk2NjIwMzIgLy8gImVsc2UgaWYgMiIKCXJldHN1YgoJYiAqaWY1X2VuZAoKKmlmNV9lbHNlOgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NjIKCS8vIHJldHVybiAnZWxzZSc7CglieXRlIDB4NjU2YzczNjUgLy8gImVsc2UiCglyZXRzdWIKCippZjVfZW5kOgoJcmV0c3ViCgovLyBuZXN0ZWRJZihib29sLGJvb2wpc3RyaW5nCiphYmlfcm91dGVfbmVzdGVkSWY6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGFyZzE6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMQoJPT0KCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGFyZzA6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMQoJPT0KCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGV4ZWN1dGUgbmVzdGVkSWYoYm9vbCxib29sKXN0cmluZwoJY2FsbHN1YiBuZXN0ZWRJZgoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBuZXN0ZWRJZihhcmcwOiBib29sZWFuLCBhcmcxOiBib29sZWFuKTogc3RyaW5nCm5lc3RlZElmOgoJcHJvdG8gMiAxCgoJLy8gKmlmNl9jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjY3CgkvLyBhcmcwCglmcmFtZV9kaWcgLTEgLy8gYXJnMDogYm9vbGVhbgoJYnogKmlmNl9lbHNlCgoJLy8gKmlmNl9jb25zZXF1ZW50CgkvLyAqaWY3X2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NjgKCS8vIGFyZzEKCWZyYW1lX2RpZyAtMiAvLyBhcmcxOiBib29sZWFuCglieiAqaWY3X2VuZAoKCS8vICppZjdfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NjkKCS8vIHJldHVybiAnbmVzdGVkIGlmJzsKCWJ5dGUgMHg2ZTY1NzM3NDY1NjQyMDY5NjYgLy8gIm5lc3RlZCBpZiIKCXJldHN1YgoKKmlmN19lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo3MQoJLy8gcmV0dXJuICdpZic7CglieXRlIDB4Njk2NiAvLyAiaWYiCglyZXRzdWIKCWIgKmlmNl9lbmQKCippZjZfZWxzZToKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjczCgkvLyByZXR1cm4gJ2Vsc2UnOwoJYnl0ZSAweDY1NmM3MzY1IC8vICJlbHNlIgoJcmV0c3ViCgoqaWY2X2VuZDoKCXJldHN1YgoKLy8gYnJhY2tldGxlc3NJZkVsc2UoYm9vbClzdHJpbmcKKmFiaV9yb3V0ZV9icmFja2V0bGVzc0lmRWxzZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYXJnMDogYm9vbAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAxCgk9PQoJYXNzZXJ0CglpbnQgMAoJZ2V0Yml0CgoJLy8gZXhlY3V0ZSBicmFja2V0bGVzc0lmRWxzZShib29sKXN0cmluZwoJY2FsbHN1YiBicmFja2V0bGVzc0lmRWxzZQoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBicmFja2V0bGVzc0lmRWxzZShhcmcwOiBib29sZWFuKTogc3RyaW5nCmJyYWNrZXRsZXNzSWZFbHNlOgoJcHJvdG8gMSAxCgoJLy8gKmlmOF9jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjc4CgkvLyBhcmcwCglmcmFtZV9kaWcgLTEgLy8gYXJnMDogYm9vbGVhbgoJYnogKmlmOF9lbHNlCgoJLy8gKmlmOF9jb25zZXF1ZW50CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo3OAoJLy8gcmV0dXJuICdpZic7CglieXRlIDB4Njk2NiAvLyAiaWYiCglyZXRzdWIKCWIgKmlmOF9lbmQKCippZjhfZWxzZToKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjc5CgkvLyByZXR1cm4gJ2Vsc2UnOwoJYnl0ZSAweDY1NmM3MzY1IC8vICJlbHNlIgoJcmV0c3ViCgoqaWY4X2VuZDoKCXJldHN1YgoKLy8gbmVzdGVkVGVybmFyeShib29sLGJvb2wpdWludDY0CiphYmlfcm91dGVfbmVzdGVkVGVybmFyeToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYXJnMTogYm9vbAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAxCgk9PQoJYXNzZXJ0CglpbnQgMAoJZ2V0Yml0CgoJLy8gYXJnMDogYm9vbAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAxCgk9PQoJYXNzZXJ0CglpbnQgMAoJZ2V0Yml0CgoJLy8gZXhlY3V0ZSBuZXN0ZWRUZXJuYXJ5KGJvb2wsYm9vbCl1aW50NjQKCWNhbGxzdWIgbmVzdGVkVGVybmFyeQoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIG5lc3RlZFRlcm5hcnkoYXJnMDogYm9vbGVhbiwgYXJnMTogYm9vbGVhbik6IG51bWJlcgpuZXN0ZWRUZXJuYXJ5OgoJcHJvdG8gMiAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6ODQKCS8vIHJldHVybiBhcmcwID8gMSA6IGFyZzEgPyAyIDogMzsKCWZyYW1lX2RpZyAtMSAvLyBhcmcwOiBib29sZWFuCglieiAqdGVybmFyeTBfZmFsc2UKCWludCAxCgliICp0ZXJuYXJ5MF9lbmQKCip0ZXJuYXJ5MF9mYWxzZToKCWZyYW1lX2RpZyAtMiAvLyBhcmcxOiBib29sZWFuCglieiAqdGVybmFyeTFfZmFsc2UKCWludCAyCgliICp0ZXJuYXJ5MV9lbmQKCip0ZXJuYXJ5MV9mYWxzZToKCWludCAzCgoqdGVybmFyeTFfZW5kOgoKKnRlcm5hcnkwX2VuZDoKCXJldHN1YgoKLy8gc3RyaW5nSWYoc3RyaW5nKXVpbnQ2NAoqYWJpX3JvdXRlX3N0cmluZ0lmOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBhcmcwOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSBzdHJpbmdJZihzdHJpbmcpdWludDY0CgljYWxsc3ViIHN0cmluZ0lmCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gc3RyaW5nSWYoYXJnMDogc3RyaW5nKTogbnVtYmVyCnN0cmluZ0lmOgoJcHJvdG8gMSAxCgoJLy8gKmlmOV9jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjg4CgkvLyBhcmcwCglmcmFtZV9kaWcgLTEgLy8gYXJnMDogc3RyaW5nCglieXRlIDB4CgliIT0KCWJ6ICppZjlfZW5kCgoJLy8gKmlmOV9jb25zZXF1ZW50CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo4OQoJLy8gcmV0dXJuIDE7CglpbnQgMQoJcmV0c3ViCgoqaWY5X2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjkyCgkvLyByZXR1cm4gMjsKCWludCAyCglyZXRzdWIKCi8vIHN0cmluZ1Rlcm5hcnkoc3RyaW5nKXVpbnQ2NAoqYWJpX3JvdXRlX3N0cmluZ1Rlcm5hcnk6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGFyZzA6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIHN0cmluZ1Rlcm5hcnkoc3RyaW5nKXVpbnQ2NAoJY2FsbHN1YiBzdHJpbmdUZXJuYXJ5CglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gc3RyaW5nVGVybmFyeShhcmcwOiBzdHJpbmcpOiBudW1iZXIKc3RyaW5nVGVybmFyeToKCXByb3RvIDEgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjk2CgkvLyByZXR1cm4gYXJnMCA/IDEgOiAyOwoJZnJhbWVfZGlnIC0xIC8vIGFyZzA6IHN0cmluZwoJYnl0ZSAweAoJYiE9CglieiAqdGVybmFyeTJfZmFsc2UKCWludCAxCgliICp0ZXJuYXJ5Ml9lbmQKCip0ZXJuYXJ5Ml9mYWxzZToKCWludCAyCgoqdGVybmFyeTJfZW5kOgoJcmV0c3ViCgovLyBzbWFsbFVpbnRDb25kaXRpb25hbCh1aW50MTYpdm9pZAoqYWJpX3JvdXRlX3NtYWxsVWludENvbmRpdGlvbmFsOgoJLy8gYTogdWludDE2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDIKCT09Cglhc3NlcnQKCWJ0b2kKCgkvLyBleGVjdXRlIHNtYWxsVWludENvbmRpdGlvbmFsKHVpbnQxNil2b2lkCgljYWxsc3ViIHNtYWxsVWludENvbmRpdGlvbmFsCglpbnQgMQoJcmV0dXJuCgovLyBzbWFsbFVpbnRDb25kaXRpb25hbChhOiB1aW50MTYpOiB2b2lkCnNtYWxsVWludENvbmRpdGlvbmFsOgoJcHJvdG8gMSAwCgoJLy8gKmlmMTBfY29uZGl0aW9uCgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czoxMDAKCS8vIGEKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50MTYKCWJ5dGUgMHgKCWIhPQoJYnogKmlmMTBfZW5kCgoJLy8gKmlmMTBfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MTAxCgkvLyBsb2coJ2ZvbycpCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglsb2cKCippZjEwX2VuZDoKCXJldHN1YgoKLy8gc21hbGxVaW50Q29tcGFyaXNvbkNvbmRpdGlvbmFsKHVpbnQxNix1aW50MTYpdm9pZAoqYWJpX3JvdXRlX3NtYWxsVWludENvbXBhcmlzb25Db25kaXRpb25hbDoKCS8vIGI6IHVpbnQxNgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAyCgk9PQoJYXNzZXJ0CglidG9pCgoJLy8gYTogdWludDE2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDIKCT09Cglhc3NlcnQKCWJ0b2kKCgkvLyBleGVjdXRlIHNtYWxsVWludENvbXBhcmlzb25Db25kaXRpb25hbCh1aW50MTYsdWludDE2KXZvaWQKCWNhbGxzdWIgc21hbGxVaW50Q29tcGFyaXNvbkNvbmRpdGlvbmFsCglpbnQgMQoJcmV0dXJuCgovLyBzbWFsbFVpbnRDb21wYXJpc29uQ29uZGl0aW9uYWwoYTogdWludDE2LCBiOiB1aW50MTYpOiB2b2lkCnNtYWxsVWludENvbXBhcmlzb25Db25kaXRpb25hbDoKCXByb3RvIDIgMAoKCS8vICppZjExX2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MTA2CgkvLyBhIDw9IGIKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50MTYKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50MTYKCTw9CglieiAqaWYxMV9lbmQKCgkvLyAqaWYxMV9jb25zZXF1ZW50CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czoxMDcKCS8vIGxvZygnZm9vJykKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWxvZwoKKmlmMTFfZW5kOgoJcmV0c3ViCgovLyB1aW50MjU2Q29tcGFyc2lvbkNvbmRpdGlvbmFsKHVpbnQyNTYsdWludDI1Nil2b2lkCiphYmlfcm91dGVfdWludDI1NkNvbXBhcnNpb25Db25kaXRpb25hbDoKCS8vIGI6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMzIKCT09Cglhc3NlcnQKCgkvLyBhOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSB1aW50MjU2Q29tcGFyc2lvbkNvbmRpdGlvbmFsKHVpbnQyNTYsdWludDI1Nil2b2lkCgljYWxsc3ViIHVpbnQyNTZDb21wYXJzaW9uQ29uZGl0aW9uYWwKCWludCAxCglyZXR1cm4KCi8vIHVpbnQyNTZDb21wYXJzaW9uQ29uZGl0aW9uYWwoYTogdWludDI1NiwgYjogdWludDI1Nik6IHZvaWQKdWludDI1NkNvbXBhcnNpb25Db25kaXRpb25hbDoKCXByb3RvIDIgMAoKCS8vICppZjEyX2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MTEyCgkvLyBhIDw9IGIKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50MjU2CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDI1NgoJYjw9CglieiAqaWYxMl9lbmQKCgkvLyAqaWYxMl9jb25zZXF1ZW50CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czoxMTMKCS8vIGxvZygnZm9vJykKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWxvZwoKKmlmMTJfZW5kOgoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAic2luZ2xlSWYoYm9vbClzdHJpbmciCgltZXRob2QgImlmRWxzZShib29sKXN0cmluZyIKCW1ldGhvZCAiaWZFbHNlSWYoYm9vbCxib29sKXN0cmluZyIKCW1ldGhvZCAiaWZFbHNlSWZFbHNlKGJvb2wsYm9vbClzdHJpbmciCgltZXRob2QgImlmRWxzZUlmRWxzZUlmKGJvb2wsYm9vbCxib29sKXN0cmluZyIKCW1ldGhvZCAiaWZFbHNlSWZFbHNlSWZFbHNlKGJvb2wsYm9vbCxib29sKXN0cmluZyIKCW1ldGhvZCAibmVzdGVkSWYoYm9vbCxib29sKXN0cmluZyIKCW1ldGhvZCAiYnJhY2tldGxlc3NJZkVsc2UoYm9vbClzdHJpbmciCgltZXRob2QgIm5lc3RlZFRlcm5hcnkoYm9vbCxib29sKXVpbnQ2NCIKCW1ldGhvZCAic3RyaW5nSWYoc3RyaW5nKXVpbnQ2NCIKCW1ldGhvZCAic3RyaW5nVGVybmFyeShzdHJpbmcpdWludDY0IgoJbWV0aG9kICJzbWFsbFVpbnRDb25kaXRpb25hbCh1aW50MTYpdm9pZCIKCW1ldGhvZCAic21hbGxVaW50Q29tcGFyaXNvbkNvbmRpdGlvbmFsKHVpbnQxNix1aW50MTYpdm9pZCIKCW1ldGhvZCAidWludDI1NkNvbXBhcnNpb25Db25kaXRpb25hbCh1aW50MjU2LHVpbnQyNTYpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc2luZ2xlSWYgKmFiaV9yb3V0ZV9pZkVsc2UgKmFiaV9yb3V0ZV9pZkVsc2VJZiAqYWJpX3JvdXRlX2lmRWxzZUlmRWxzZSAqYWJpX3JvdXRlX2lmRWxzZUlmRWxzZUlmICphYmlfcm91dGVfaWZFbHNlSWZFbHNlSWZFbHNlICphYmlfcm91dGVfbmVzdGVkSWYgKmFiaV9yb3V0ZV9icmFja2V0bGVzc0lmRWxzZSAqYWJpX3JvdXRlX25lc3RlZFRlcm5hcnkgKmFiaV9yb3V0ZV9zdHJpbmdJZiAqYWJpX3JvdXRlX3N0cmluZ1Rlcm5hcnkgKmFiaV9yb3V0ZV9zbWFsbFVpbnRDb25kaXRpb25hbCAqYWJpX3JvdXRlX3NtYWxsVWludENvbXBhcmlzb25Db25kaXRpb25hbCAqYWJpX3JvdXRlX3VpbnQyNTZDb21wYXJzaW9uQ29uZGl0aW9uYWwKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ItxnsTest.approval.teal b/tests/contracts/artifacts/ItxnsTest.approval.teal index d5dbfdcfe..5b5edf758 100644 --- a/tests/contracts/artifacts/ItxnsTest.approval.teal +++ b/tests/contracts/artifacts/ItxnsTest.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // payment()void -abi_route_payment: +*abi_route_payment: // execute payment()void callsub payment int 1 @@ -84,7 +84,7 @@ payment: retsub // assetCreation()uint64 -abi_route_assetCreation: +*abi_route_assetCreation: // The ABI return prefix byte 0x151f7c75 @@ -177,7 +177,7 @@ assetCreation: retsub // appCall()void -abi_route_appCall: +*abi_route_appCall: // execute appCall()void callsub appCall int 1 @@ -277,7 +277,7 @@ appCall: retsub // assetConfig()void -abi_route_assetConfig: +*abi_route_assetConfig: // execute assetConfig()void callsub assetConfig int 1 @@ -333,7 +333,7 @@ assetConfig: retsub // assetFreeze()void -abi_route_assetFreeze: +*abi_route_assetFreeze: // execute assetFreeze()void callsub assetFreeze int 1 @@ -377,7 +377,7 @@ assetFreeze: retsub // assetTransfer()void -abi_route_assetTransfer: +*abi_route_assetTransfer: // execute assetTransfer()void callsub assetTransfer int 1 @@ -433,7 +433,7 @@ assetTransfer: retsub // methodCall()uint64 -abi_route_methodCall: +*abi_route_methodCall: // The ABI return prefix byte 0x151f7c75 @@ -486,7 +486,7 @@ methodCall: retsub // onlineKeyRegistration()void -abi_route_onlineKeyRegistration: +*abi_route_onlineKeyRegistration: // execute onlineKeyRegistration()void callsub onlineKeyRegistration int 1 @@ -548,7 +548,7 @@ onlineKeyRegistration: retsub // offlineKeyRegistration()void -abi_route_offlineKeyRegistration: +*abi_route_offlineKeyRegistration: // execute offlineKeyRegistration()void callsub offlineKeyRegistration int 1 @@ -572,17 +572,17 @@ offlineKeyRegistration: itxn_submit retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "payment()void" method "assetCreation()uint64" method "appCall()void" @@ -593,5 +593,5 @@ call_NoOp: method "onlineKeyRegistration()void" method "offlineKeyRegistration()void" txna ApplicationArgs 0 - match abi_route_payment abi_route_assetCreation abi_route_appCall abi_route_assetConfig abi_route_assetFreeze abi_route_assetTransfer abi_route_methodCall abi_route_onlineKeyRegistration abi_route_offlineKeyRegistration + match *abi_route_payment *abi_route_assetCreation *abi_route_appCall *abi_route_assetConfig *abi_route_assetFreeze *abi_route_assetTransfer *abi_route_methodCall *abi_route_onlineKeyRegistration *abi_route_offlineKeyRegistration err \ No newline at end of file diff --git a/tests/contracts/artifacts/ItxnsTest.arc32.json b/tests/contracts/artifacts/ItxnsTest.arc32.json index 3a36a50d2..7db9dd1eb 100644 --- a/tests/contracts/artifacts/ItxnsTest.arc32.json +++ b/tests/contracts/artifacts/ItxnsTest.arc32.json @@ -79,7 +79,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBwYXltZW50KCl2b2lkCmFiaV9yb3V0ZV9wYXltZW50OgoJLy8gZXhlY3V0ZSBwYXltZW50KCl2b2lkCgljYWxsc3ViIHBheW1lbnQKCWludCAxCglyZXR1cm4KCi8vIHBheW1lbnQoKTogdm9pZApwYXltZW50OgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NgoJLy8gc2VuZFBheW1lbnQoewoJLy8gICAgICAgYW1vdW50OiAxMDAsCgkvLyAgICAgICByZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgIGNsb3NlUmVtYWluZGVyVG86IGdsb2JhbHMuemVyb0FkZHJlc3MsCgkvLyAgICAgICBzZW5kZXI6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICByZWtleVRvOiBnbG9iYWxzLnplcm9BZGRyZXNzLAoJLy8gICAgICAgbm90ZTogJ0hlbGxvIFdvcmxkIScsCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludCBwYXkKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo3CgkvLyBhbW91bnQ6IDEwMAoJaW50IDEwMAoJaXR4bl9maWVsZCBBbW91bnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo4CgkvLyByZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWl0eG5fZmllbGQgUmVjZWl2ZXIKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo5CgkvLyBjbG9zZVJlbWFpbmRlclRvOiBnbG9iYWxzLnplcm9BZGRyZXNzCglnbG9iYWwgWmVyb0FkZHJlc3MKCWl0eG5fZmllbGQgQ2xvc2VSZW1haW5kZXJUbwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjEwCgkvLyBzZW5kZXI6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIFNlbmRlcgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjExCgkvLyByZWtleVRvOiBnbG9iYWxzLnplcm9BZGRyZXNzCglnbG9iYWwgWmVyb0FkZHJlc3MKCWl0eG5fZmllbGQgUmVrZXlUbwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjEyCgkvLyBub3RlOiAnSGVsbG8gV29ybGQhJwoJYnl0ZSAweDQ4NjU2YzZjNmYyMDU3NmY3MjZjNjQyMSAvLyAiSGVsbG8gV29ybGQhIgoJaXR4bl9maWVsZCBOb3RlCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyBhc3NldENyZWF0aW9uKCl1aW50NjQKYWJpX3JvdXRlX2Fzc2V0Q3JlYXRpb246CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYXNzZXRDcmVhdGlvbigpdWludDY0CgljYWxsc3ViIGFzc2V0Q3JlYXRpb24KCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBhc3NldENyZWF0aW9uKCk6IEFzc2V0CmFzc2V0Q3JlYXRpb246Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czoxNwoJLy8gcmV0dXJuIHNlbmRBc3NldENyZWF0aW9uKHsKCS8vICAgICAgIGNvbmZpZ0Fzc2V0TmFtZTogJ25hbWUnLAoJLy8gICAgICAgY29uZmlnQXNzZXRVbml0TmFtZTogJ3VuaXQnLAoJLy8gICAgICAgY29uZmlnQXNzZXRUb3RhbDogMSwKCS8vICAgICAgIGNvbmZpZ0Fzc2V0TWFuYWdlcjogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgIGNvbmZpZ0Fzc2V0UmVzZXJ2ZTogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgIGNvbmZpZ0Fzc2V0RnJlZXplOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgY29uZmlnQXNzZXRDbGF3YmFjazogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgIGNvbmZpZ0Fzc2V0RGVmYXVsdEZyb3plbjogMCwKCS8vICAgICAgIGNvbmZpZ0Fzc2V0VVJMOiAndXJsJywKCS8vICAgICAgIGNvbmZpZ0Fzc2V0TWV0YWRhdGFIYXNoOiAnYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEnLAoJLy8gICAgIH0pOwoJaXR4bl9iZWdpbgoJaW50IGFjZmcKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czoxOAoJLy8gY29uZmlnQXNzZXROYW1lOiAnbmFtZScKCWJ5dGUgMHg2ZTYxNmQ2NSAvLyAibmFtZSIKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXROYW1lCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6MTkKCS8vIGNvbmZpZ0Fzc2V0VW5pdE5hbWU6ICd1bml0JwoJYnl0ZSAweDc1NmU2OTc0IC8vICJ1bml0IgoJaXR4bl9maWVsZCBDb25maWdBc3NldFVuaXROYW1lCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6MjAKCS8vIGNvbmZpZ0Fzc2V0VG90YWw6IDEKCWludCAxCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0VG90YWwKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czoyMQoJLy8gY29uZmlnQXNzZXRNYW5hZ2VyOiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBDb25maWdBc3NldE1hbmFnZXIKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czoyMgoJLy8gY29uZmlnQXNzZXRSZXNlcnZlOiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBDb25maWdBc3NldFJlc2VydmUKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czoyMwoJLy8gY29uZmlnQXNzZXRGcmVlemU6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0RnJlZXplCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6MjQKCS8vIGNvbmZpZ0Fzc2V0Q2xhd2JhY2s6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0Q2xhd2JhY2sKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czoyNQoJLy8gY29uZmlnQXNzZXREZWZhdWx0RnJvemVuOiAwCglpbnQgMAoJaXR4bl9maWVsZCBDb25maWdBc3NldERlZmF1bHRGcm96ZW4KCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czoyNgoJLy8gY29uZmlnQXNzZXRVUkw6ICd1cmwnCglieXRlIDB4NzU3MjZjIC8vICJ1cmwiCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0VVJMCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6MjcKCS8vIGNvbmZpZ0Fzc2V0TWV0YWRhdGFIYXNoOiAnYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEnCglieXRlIDB4NjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MSAvLyAiYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEiCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0TWV0YWRhdGFIYXNoCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJaXR4biBDcmVhdGVkQXNzZXRJRAoJcmV0c3ViCgovLyBhcHBDYWxsKCl2b2lkCmFiaV9yb3V0ZV9hcHBDYWxsOgoJLy8gZXhlY3V0ZSBhcHBDYWxsKCl2b2lkCgljYWxsc3ViIGFwcENhbGwKCWludCAxCglyZXR1cm4KCi8vIGFwcENhbGwoKTogdm9pZAphcHBDYWxsOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6MzIKCS8vIHNlbmRBcHBDYWxsKHsKCS8vICAgICAgIGFjY291bnRzOiBbdGhpcy5hcHAuYWRkcmVzc10sCgkvLyAgICAgICBhcHBsaWNhdGlvbkFyZ3M6IFsnYXJnMScsICdhcmcyJ10sCgkvLyAgICAgICBhcHBsaWNhdGlvbklEOiB0aGlzLmFwcCwKCS8vICAgICAgIGFwcGxpY2F0aW9uczogW3RoaXMuYXBwXSwKCS8vICAgICAgIGFwcHJvdmFsUHJvZ3JhbTogJ2FwcHJvdmFsJywKCS8vICAgICAgIGFzc2V0czogW0Fzc2V0Lnplcm9JbmRleF0sCgkvLyAgICAgICBjbGVhclN0YXRlUHJvZ3JhbTogJ2NsZWFyJywKCS8vICAgICAgIGdsb2JhbE51bUJ5dGVTbGljZTogMSwKCS8vICAgICAgIGdsb2JhbE51bVVpbnQ6IDEsCgkvLyAgICAgICBsb2NhbE51bUJ5dGVTbGljZTogMSwKCS8vICAgICAgIGxvY2FsTnVtVWludDogMSwKCS8vICAgICAgIG5vdGU6ICdub3RlJywKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czozMwoJLy8gYWNjb3VudHM6IFt0aGlzLmFwcC5hZGRyZXNzXQoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWl0eG5fZmllbGQgQWNjb3VudHMKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czozNAoJLy8gYXBwbGljYXRpb25BcmdzOiBbJ2FyZzEnLCAnYXJnMiddCglieXRlIDB4NjE3MjY3MzEgLy8gImFyZzEiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJYnl0ZSAweDYxNzI2NzMyIC8vICJhcmcyIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czozNQoJLy8gYXBwbGljYXRpb25JRDogdGhpcy5hcHAKCXR4bmEgQXBwbGljYXRpb25zIDAKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjM2CgkvLyBhcHBsaWNhdGlvbnM6IFt0aGlzLmFwcF0KCXR4bmEgQXBwbGljYXRpb25zIDAKCWl0eG5fZmllbGQgQXBwbGljYXRpb25zCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6MzcKCS8vIGFwcHJvdmFsUHJvZ3JhbTogJ2FwcHJvdmFsJwoJYnl0ZSAweDYxNzA3MDcyNmY3NjYxNmMgLy8gImFwcHJvdmFsIgoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czozOAoJLy8gYXNzZXRzOiBbQXNzZXQuemVyb0luZGV4XQoJaW50IDAKCWl0eG5fZmllbGQgQXNzZXRzCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6MzkKCS8vIGNsZWFyU3RhdGVQcm9ncmFtOiAnY2xlYXInCglieXRlIDB4NjM2YzY1NjE3MiAvLyAiY2xlYXIiCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NDAKCS8vIGdsb2JhbE51bUJ5dGVTbGljZTogMQoJaW50IDEKCWl0eG5fZmllbGQgR2xvYmFsTnVtQnl0ZVNsaWNlCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NDEKCS8vIGdsb2JhbE51bVVpbnQ6IDEKCWludCAxCglpdHhuX2ZpZWxkIEdsb2JhbE51bVVpbnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo0MgoJLy8gbG9jYWxOdW1CeXRlU2xpY2U6IDEKCWludCAxCglpdHhuX2ZpZWxkIExvY2FsTnVtQnl0ZVNsaWNlCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NDMKCS8vIGxvY2FsTnVtVWludDogMQoJaW50IDEKCWl0eG5fZmllbGQgTG9jYWxOdW1VaW50CgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NDQKCS8vIG5vdGU6ICdub3RlJwoJYnl0ZSAweDZlNmY3NDY1IC8vICJub3RlIgoJaXR4bl9maWVsZCBOb3RlCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyBhc3NldENvbmZpZygpdm9pZAphYmlfcm91dGVfYXNzZXRDb25maWc6CgkvLyBleGVjdXRlIGFzc2V0Q29uZmlnKCl2b2lkCgljYWxsc3ViIGFzc2V0Q29uZmlnCglpbnQgMQoJcmV0dXJuCgovLyBhc3NldENvbmZpZygpOiB2b2lkCmFzc2V0Q29uZmlnOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NDkKCS8vIHNlbmRBc3NldENvbmZpZyh7CgkvLyAgICAgICBjb25maWdBc3NldDogQXNzZXQuemVyb0luZGV4LAoJLy8gICAgICAgY29uZmlnQXNzZXRNYW5hZ2VyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgY29uZmlnQXNzZXRSZXNlcnZlOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgY29uZmlnQXNzZXRGcmVlemU6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICBjb25maWdBc3NldENsYXdiYWNrOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnQgYWNmZwoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjUwCgkvLyBjb25maWdBc3NldDogQXNzZXQuemVyb0luZGV4CglpbnQgMAoJaXR4bl9maWVsZCBDb25maWdBc3NldAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjUxCgkvLyBjb25maWdBc3NldE1hbmFnZXI6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0TWFuYWdlcgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjUyCgkvLyBjb25maWdBc3NldFJlc2VydmU6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0UmVzZXJ2ZQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjUzCgkvLyBjb25maWdBc3NldEZyZWV6ZTogdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRGcmVlemUKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo1NAoJLy8gY29uZmlnQXNzZXRDbGF3YmFjazogdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRDbGF3YmFjawoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gYXNzZXRGcmVlemUoKXZvaWQKYWJpX3JvdXRlX2Fzc2V0RnJlZXplOgoJLy8gZXhlY3V0ZSBhc3NldEZyZWV6ZSgpdm9pZAoJY2FsbHN1YiBhc3NldEZyZWV6ZQoJaW50IDEKCXJldHVybgoKLy8gYXNzZXRGcmVlemUoKTogdm9pZAphc3NldEZyZWV6ZToKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjU5CgkvLyBzZW5kQXNzZXRGcmVlemUoewoJLy8gICAgICAgZnJlZXplQXNzZXRGcm96ZW46IHRydWUsCgkvLyAgICAgICBmcmVlemVBc3NldEFjY291bnQ6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICBmcmVlemVBc3NldDogQXNzZXQuemVyb0luZGV4LAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnQgYWZyegoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjYwCgkvLyBmcmVlemVBc3NldEZyb3plbjogdHJ1ZQoJaW50IDEKCWl0eG5fZmllbGQgRnJlZXplQXNzZXRGcm96ZW4KCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo2MQoJLy8gZnJlZXplQXNzZXRBY2NvdW50OiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBGcmVlemVBc3NldEFjY291bnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo2MgoJLy8gZnJlZXplQXNzZXQ6IEFzc2V0Lnplcm9JbmRleAoJaW50IDAKCWl0eG5fZmllbGQgRnJlZXplQXNzZXQKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglyZXRzdWIKCi8vIGFzc2V0VHJhbnNmZXIoKXZvaWQKYWJpX3JvdXRlX2Fzc2V0VHJhbnNmZXI6CgkvLyBleGVjdXRlIGFzc2V0VHJhbnNmZXIoKXZvaWQKCWNhbGxzdWIgYXNzZXRUcmFuc2ZlcgoJaW50IDEKCXJldHVybgoKLy8gYXNzZXRUcmFuc2ZlcigpOiB2b2lkCmFzc2V0VHJhbnNmZXI6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo2NwoJLy8gc2VuZEFzc2V0VHJhbnNmZXIoewoJLy8gICAgICAgYXNzZXRBbW91bnQ6IDEsCgkvLyAgICAgICBhc3NldENsb3NlVG86IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICBhc3NldFJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgYXNzZXRTZW5kZXI6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICB4ZmVyQXNzZXQ6IEFzc2V0Lnplcm9JbmRleCwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGF4ZmVyCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NjgKCS8vIGFzc2V0QW1vdW50OiAxCglpbnQgMQoJaXR4bl9maWVsZCBBc3NldEFtb3VudAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjY5CgkvLyBhc3NldENsb3NlVG86IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIEFzc2V0Q2xvc2VUbwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjcwCgkvLyBhc3NldFJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBBc3NldFJlY2VpdmVyCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NzEKCS8vIGFzc2V0U2VuZGVyOiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBBc3NldFNlbmRlcgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjcyCgkvLyB4ZmVyQXNzZXQ6IEFzc2V0Lnplcm9JbmRleAoJaW50IDAKCWl0eG5fZmllbGQgWGZlckFzc2V0CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyBtZXRob2RDYWxsKCl1aW50NjQKYWJpX3JvdXRlX21ldGhvZENhbGw6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbWV0aG9kQ2FsbCgpdWludDY0CgljYWxsc3ViIG1ldGhvZENhbGwKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBtZXRob2RDYWxsKCk6IEFzc2V0Cm1ldGhvZENhbGw6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo3NwoJLy8gcmV0dXJuIHNlbmRNZXRob2RDYWxsPFtBcHBsaWNhdGlvbiwgQXNzZXRdLCBBc3NldD4oewoJLy8gICAgICAgbmFtZTogJ21ldGhvZCcsCgkvLyAgICAgICBtZXRob2RBcmdzOiBbdGhpcy5hcHAsIEFzc2V0Lnplcm9JbmRleF0sCgkvLyAgICAgfSk7CglpdHhuX2JlZ2luCglpbnQgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJbWV0aG9kICJtZXRob2QoYXBwbGljYXRpb24sYXNzZXQpdWludDY0IgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo3OQoJLy8gbWV0aG9kQXJnczogW3RoaXMuYXBwLCBBc3NldC56ZXJvSW5kZXhdCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9ucwoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDEKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglpbnQgMAoJaXR4bl9maWVsZCBBc3NldHMKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gTnVtTG9ncwoJaW50IDEKCS0KCWl0eG5hcyBMb2dzCglleHRyYWN0IDQgMAoJYnRvaQoJcmV0c3ViCgovLyBvbmxpbmVLZXlSZWdpc3RyYXRpb24oKXZvaWQKYWJpX3JvdXRlX29ubGluZUtleVJlZ2lzdHJhdGlvbjoKCS8vIGV4ZWN1dGUgb25saW5lS2V5UmVnaXN0cmF0aW9uKCl2b2lkCgljYWxsc3ViIG9ubGluZUtleVJlZ2lzdHJhdGlvbgoJaW50IDEKCXJldHVybgoKLy8gb25saW5lS2V5UmVnaXN0cmF0aW9uKCk6IHZvaWQKb25saW5lS2V5UmVnaXN0cmF0aW9uOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6ODQKCS8vIHNlbmRPbmxpbmVLZXlSZWdpc3RyYXRpb24oewoJLy8gICAgICAgc2VsZWN0aW9uUEs6ICdhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYScsCgkvLyAgICAgICBzdGF0ZVByb29mUEs6ICdhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYScsCgkvLyAgICAgICB2b3RlRmlyc3Q6IDEsCgkvLyAgICAgICB2b3RlS2V5RGlsdXRpb246IDEsCgkvLyAgICAgICB2b3RlTGFzdDogMSwKCS8vICAgICAgIHZvdGVQSzogJ2FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhJywKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGtleXJlZwoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjg1CgkvLyBzZWxlY3Rpb25QSzogJ2FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhJwoJYnl0ZSAweDYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjEgLy8gImFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhIgoJaXR4bl9maWVsZCBTZWxlY3Rpb25QSwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjg2CgkvLyBzdGF0ZVByb29mUEs6ICdhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYScKCWJ5dGUgMHg2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxIC8vICJhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYSIKCWl0eG5fZmllbGQgU3RhdGVQcm9vZlBLCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6ODcKCS8vIHZvdGVGaXJzdDogMQoJaW50IDEKCWl0eG5fZmllbGQgVm90ZUZpcnN0CgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6ODgKCS8vIHZvdGVLZXlEaWx1dGlvbjogMQoJaW50IDEKCWl0eG5fZmllbGQgVm90ZUtleURpbHV0aW9uCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6ODkKCS8vIHZvdGVMYXN0OiAxCglpbnQgMQoJaXR4bl9maWVsZCBWb3RlTGFzdAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjkwCgkvLyB2b3RlUEs6ICdhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYScKCWJ5dGUgMHg2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxIC8vICJhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYSIKCWl0eG5fZmllbGQgVm90ZVBLCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyBvZmZsaW5lS2V5UmVnaXN0cmF0aW9uKCl2b2lkCmFiaV9yb3V0ZV9vZmZsaW5lS2V5UmVnaXN0cmF0aW9uOgoJLy8gZXhlY3V0ZSBvZmZsaW5lS2V5UmVnaXN0cmF0aW9uKCl2b2lkCgljYWxsc3ViIG9mZmxpbmVLZXlSZWdpc3RyYXRpb24KCWludCAxCglyZXR1cm4KCi8vIG9mZmxpbmVLZXlSZWdpc3RyYXRpb24oKTogdm9pZApvZmZsaW5lS2V5UmVnaXN0cmF0aW9uOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6OTUKCS8vIHNlbmRPZmZsaW5lS2V5UmVnaXN0cmF0aW9uKHt9KQoJaXR4bl9iZWdpbgoJaW50IGtleXJlZwoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAicGF5bWVudCgpdm9pZCIKCW1ldGhvZCAiYXNzZXRDcmVhdGlvbigpdWludDY0IgoJbWV0aG9kICJhcHBDYWxsKCl2b2lkIgoJbWV0aG9kICJhc3NldENvbmZpZygpdm9pZCIKCW1ldGhvZCAiYXNzZXRGcmVlemUoKXZvaWQiCgltZXRob2QgImFzc2V0VHJhbnNmZXIoKXZvaWQiCgltZXRob2QgIm1ldGhvZENhbGwoKXVpbnQ2NCIKCW1ldGhvZCAib25saW5lS2V5UmVnaXN0cmF0aW9uKCl2b2lkIgoJbWV0aG9kICJvZmZsaW5lS2V5UmVnaXN0cmF0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX3BheW1lbnQgYWJpX3JvdXRlX2Fzc2V0Q3JlYXRpb24gYWJpX3JvdXRlX2FwcENhbGwgYWJpX3JvdXRlX2Fzc2V0Q29uZmlnIGFiaV9yb3V0ZV9hc3NldEZyZWV6ZSBhYmlfcm91dGVfYXNzZXRUcmFuc2ZlciBhYmlfcm91dGVfbWV0aG9kQ2FsbCBhYmlfcm91dGVfb25saW5lS2V5UmVnaXN0cmF0aW9uIGFiaV9yb3V0ZV9vZmZsaW5lS2V5UmVnaXN0cmF0aW9uCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBwYXltZW50KCl2b2lkCiphYmlfcm91dGVfcGF5bWVudDoKCS8vIGV4ZWN1dGUgcGF5bWVudCgpdm9pZAoJY2FsbHN1YiBwYXltZW50CglpbnQgMQoJcmV0dXJuCgovLyBwYXltZW50KCk6IHZvaWQKcGF5bWVudDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjYKCS8vIHNlbmRQYXltZW50KHsKCS8vICAgICAgIGFtb3VudDogMTAwLAoJLy8gICAgICAgcmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICBjbG9zZVJlbWFpbmRlclRvOiBnbG9iYWxzLnplcm9BZGRyZXNzLAoJLy8gICAgICAgc2VuZGVyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgcmVrZXlUbzogZ2xvYmFscy56ZXJvQWRkcmVzcywKCS8vICAgICAgIG5vdGU6ICdIZWxsbyBXb3JsZCEnLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnQgcGF5CglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NwoJLy8gYW1vdW50OiAxMDAKCWludCAxMDAKCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6OAoJLy8gcmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIFJlY2VpdmVyCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6OQoJLy8gY2xvc2VSZW1haW5kZXJUbzogZ2xvYmFscy56ZXJvQWRkcmVzcwoJZ2xvYmFsIFplcm9BZGRyZXNzCglpdHhuX2ZpZWxkIENsb3NlUmVtYWluZGVyVG8KCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czoxMAoJLy8gc2VuZGVyOiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBTZW5kZXIKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czoxMQoJLy8gcmVrZXlUbzogZ2xvYmFscy56ZXJvQWRkcmVzcwoJZ2xvYmFsIFplcm9BZGRyZXNzCglpdHhuX2ZpZWxkIFJla2V5VG8KCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czoxMgoJLy8gbm90ZTogJ0hlbGxvIFdvcmxkIScKCWJ5dGUgMHg0ODY1NmM2YzZmMjA1NzZmNzI2YzY0MjEgLy8gIkhlbGxvIFdvcmxkISIKCWl0eG5fZmllbGQgTm90ZQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gYXNzZXRDcmVhdGlvbigpdWludDY0CiphYmlfcm91dGVfYXNzZXRDcmVhdGlvbjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBhc3NldENyZWF0aW9uKCl1aW50NjQKCWNhbGxzdWIgYXNzZXRDcmVhdGlvbgoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFzc2V0Q3JlYXRpb24oKTogQXNzZXQKYXNzZXRDcmVhdGlvbjoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjE3CgkvLyByZXR1cm4gc2VuZEFzc2V0Q3JlYXRpb24oewoJLy8gICAgICAgY29uZmlnQXNzZXROYW1lOiAnbmFtZScsCgkvLyAgICAgICBjb25maWdBc3NldFVuaXROYW1lOiAndW5pdCcsCgkvLyAgICAgICBjb25maWdBc3NldFRvdGFsOiAxLAoJLy8gICAgICAgY29uZmlnQXNzZXRNYW5hZ2VyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgY29uZmlnQXNzZXRSZXNlcnZlOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgY29uZmlnQXNzZXRGcmVlemU6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICBjb25maWdBc3NldENsYXdiYWNrOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgY29uZmlnQXNzZXREZWZhdWx0RnJvemVuOiAwLAoJLy8gICAgICAgY29uZmlnQXNzZXRVUkw6ICd1cmwnLAoJLy8gICAgICAgY29uZmlnQXNzZXRNZXRhZGF0YUhhc2g6ICdhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYScsCgkvLyAgICAgfSk7CglpdHhuX2JlZ2luCglpbnQgYWNmZwoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjE4CgkvLyBjb25maWdBc3NldE5hbWU6ICduYW1lJwoJYnl0ZSAweDZlNjE2ZDY1IC8vICJuYW1lIgoJaXR4bl9maWVsZCBDb25maWdBc3NldE5hbWUKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czoxOQoJLy8gY29uZmlnQXNzZXRVbml0TmFtZTogJ3VuaXQnCglieXRlIDB4NzU2ZTY5NzQgLy8gInVuaXQiCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0VW5pdE5hbWUKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czoyMAoJLy8gY29uZmlnQXNzZXRUb3RhbDogMQoJaW50IDEKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRUb3RhbAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjIxCgkvLyBjb25maWdBc3NldE1hbmFnZXI6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0TWFuYWdlcgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjIyCgkvLyBjb25maWdBc3NldFJlc2VydmU6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0UmVzZXJ2ZQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjIzCgkvLyBjb25maWdBc3NldEZyZWV6ZTogdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRGcmVlemUKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czoyNAoJLy8gY29uZmlnQXNzZXRDbGF3YmFjazogdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRDbGF3YmFjawoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjI1CgkvLyBjb25maWdBc3NldERlZmF1bHRGcm96ZW46IDAKCWludCAwCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0RGVmYXVsdEZyb3plbgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjI2CgkvLyBjb25maWdBc3NldFVSTDogJ3VybCcKCWJ5dGUgMHg3NTcyNmMgLy8gInVybCIKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRVUkwKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czoyNwoJLy8gY29uZmlnQXNzZXRNZXRhZGF0YUhhc2g6ICdhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYScKCWJ5dGUgMHg2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxIC8vICJhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYSIKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRNZXRhZGF0YUhhc2gKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglpdHhuIENyZWF0ZWRBc3NldElECglyZXRzdWIKCi8vIGFwcENhbGwoKXZvaWQKKmFiaV9yb3V0ZV9hcHBDYWxsOgoJLy8gZXhlY3V0ZSBhcHBDYWxsKCl2b2lkCgljYWxsc3ViIGFwcENhbGwKCWludCAxCglyZXR1cm4KCi8vIGFwcENhbGwoKTogdm9pZAphcHBDYWxsOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6MzIKCS8vIHNlbmRBcHBDYWxsKHsKCS8vICAgICAgIGFjY291bnRzOiBbdGhpcy5hcHAuYWRkcmVzc10sCgkvLyAgICAgICBhcHBsaWNhdGlvbkFyZ3M6IFsnYXJnMScsICdhcmcyJ10sCgkvLyAgICAgICBhcHBsaWNhdGlvbklEOiB0aGlzLmFwcCwKCS8vICAgICAgIGFwcGxpY2F0aW9uczogW3RoaXMuYXBwXSwKCS8vICAgICAgIGFwcHJvdmFsUHJvZ3JhbTogJ2FwcHJvdmFsJywKCS8vICAgICAgIGFzc2V0czogW0Fzc2V0Lnplcm9JbmRleF0sCgkvLyAgICAgICBjbGVhclN0YXRlUHJvZ3JhbTogJ2NsZWFyJywKCS8vICAgICAgIGdsb2JhbE51bUJ5dGVTbGljZTogMSwKCS8vICAgICAgIGdsb2JhbE51bVVpbnQ6IDEsCgkvLyAgICAgICBsb2NhbE51bUJ5dGVTbGljZTogMSwKCS8vICAgICAgIGxvY2FsTnVtVWludDogMSwKCS8vICAgICAgIG5vdGU6ICdub3RlJywKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czozMwoJLy8gYWNjb3VudHM6IFt0aGlzLmFwcC5hZGRyZXNzXQoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWl0eG5fZmllbGQgQWNjb3VudHMKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czozNAoJLy8gYXBwbGljYXRpb25BcmdzOiBbJ2FyZzEnLCAnYXJnMiddCglieXRlIDB4NjE3MjY3MzEgLy8gImFyZzEiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJYnl0ZSAweDYxNzI2NzMyIC8vICJhcmcyIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czozNQoJLy8gYXBwbGljYXRpb25JRDogdGhpcy5hcHAKCXR4bmEgQXBwbGljYXRpb25zIDAKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjM2CgkvLyBhcHBsaWNhdGlvbnM6IFt0aGlzLmFwcF0KCXR4bmEgQXBwbGljYXRpb25zIDAKCWl0eG5fZmllbGQgQXBwbGljYXRpb25zCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6MzcKCS8vIGFwcHJvdmFsUHJvZ3JhbTogJ2FwcHJvdmFsJwoJYnl0ZSAweDYxNzA3MDcyNmY3NjYxNmMgLy8gImFwcHJvdmFsIgoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czozOAoJLy8gYXNzZXRzOiBbQXNzZXQuemVyb0luZGV4XQoJaW50IDAKCWl0eG5fZmllbGQgQXNzZXRzCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6MzkKCS8vIGNsZWFyU3RhdGVQcm9ncmFtOiAnY2xlYXInCglieXRlIDB4NjM2YzY1NjE3MiAvLyAiY2xlYXIiCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NDAKCS8vIGdsb2JhbE51bUJ5dGVTbGljZTogMQoJaW50IDEKCWl0eG5fZmllbGQgR2xvYmFsTnVtQnl0ZVNsaWNlCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NDEKCS8vIGdsb2JhbE51bVVpbnQ6IDEKCWludCAxCglpdHhuX2ZpZWxkIEdsb2JhbE51bVVpbnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo0MgoJLy8gbG9jYWxOdW1CeXRlU2xpY2U6IDEKCWludCAxCglpdHhuX2ZpZWxkIExvY2FsTnVtQnl0ZVNsaWNlCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NDMKCS8vIGxvY2FsTnVtVWludDogMQoJaW50IDEKCWl0eG5fZmllbGQgTG9jYWxOdW1VaW50CgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NDQKCS8vIG5vdGU6ICdub3RlJwoJYnl0ZSAweDZlNmY3NDY1IC8vICJub3RlIgoJaXR4bl9maWVsZCBOb3RlCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyBhc3NldENvbmZpZygpdm9pZAoqYWJpX3JvdXRlX2Fzc2V0Q29uZmlnOgoJLy8gZXhlY3V0ZSBhc3NldENvbmZpZygpdm9pZAoJY2FsbHN1YiBhc3NldENvbmZpZwoJaW50IDEKCXJldHVybgoKLy8gYXNzZXRDb25maWcoKTogdm9pZAphc3NldENvbmZpZzoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjQ5CgkvLyBzZW5kQXNzZXRDb25maWcoewoJLy8gICAgICAgY29uZmlnQXNzZXQ6IEFzc2V0Lnplcm9JbmRleCwKCS8vICAgICAgIGNvbmZpZ0Fzc2V0TWFuYWdlcjogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgIGNvbmZpZ0Fzc2V0UmVzZXJ2ZTogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgIGNvbmZpZ0Fzc2V0RnJlZXplOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgY29uZmlnQXNzZXRDbGF3YmFjazogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGFjZmcKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo1MAoJLy8gY29uZmlnQXNzZXQ6IEFzc2V0Lnplcm9JbmRleAoJaW50IDAKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo1MQoJLy8gY29uZmlnQXNzZXRNYW5hZ2VyOiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBDb25maWdBc3NldE1hbmFnZXIKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo1MgoJLy8gY29uZmlnQXNzZXRSZXNlcnZlOiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBDb25maWdBc3NldFJlc2VydmUKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo1MwoJLy8gY29uZmlnQXNzZXRGcmVlemU6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0RnJlZXplCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NTQKCS8vIGNvbmZpZ0Fzc2V0Q2xhd2JhY2s6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0Q2xhd2JhY2sKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglyZXRzdWIKCi8vIGFzc2V0RnJlZXplKCl2b2lkCiphYmlfcm91dGVfYXNzZXRGcmVlemU6CgkvLyBleGVjdXRlIGFzc2V0RnJlZXplKCl2b2lkCgljYWxsc3ViIGFzc2V0RnJlZXplCglpbnQgMQoJcmV0dXJuCgovLyBhc3NldEZyZWV6ZSgpOiB2b2lkCmFzc2V0RnJlZXplOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NTkKCS8vIHNlbmRBc3NldEZyZWV6ZSh7CgkvLyAgICAgICBmcmVlemVBc3NldEZyb3plbjogdHJ1ZSwKCS8vICAgICAgIGZyZWV6ZUFzc2V0QWNjb3VudDogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgIGZyZWV6ZUFzc2V0OiBBc3NldC56ZXJvSW5kZXgsCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludCBhZnJ6CglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NjAKCS8vIGZyZWV6ZUFzc2V0RnJvemVuOiB0cnVlCglpbnQgMQoJaXR4bl9maWVsZCBGcmVlemVBc3NldEZyb3plbgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjYxCgkvLyBmcmVlemVBc3NldEFjY291bnQ6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIEZyZWV6ZUFzc2V0QWNjb3VudAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjYyCgkvLyBmcmVlemVBc3NldDogQXNzZXQuemVyb0luZGV4CglpbnQgMAoJaXR4bl9maWVsZCBGcmVlemVBc3NldAoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gYXNzZXRUcmFuc2Zlcigpdm9pZAoqYWJpX3JvdXRlX2Fzc2V0VHJhbnNmZXI6CgkvLyBleGVjdXRlIGFzc2V0VHJhbnNmZXIoKXZvaWQKCWNhbGxzdWIgYXNzZXRUcmFuc2ZlcgoJaW50IDEKCXJldHVybgoKLy8gYXNzZXRUcmFuc2ZlcigpOiB2b2lkCmFzc2V0VHJhbnNmZXI6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo2NwoJLy8gc2VuZEFzc2V0VHJhbnNmZXIoewoJLy8gICAgICAgYXNzZXRBbW91bnQ6IDEsCgkvLyAgICAgICBhc3NldENsb3NlVG86IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICBhc3NldFJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgYXNzZXRTZW5kZXI6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICB4ZmVyQXNzZXQ6IEFzc2V0Lnplcm9JbmRleCwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGF4ZmVyCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NjgKCS8vIGFzc2V0QW1vdW50OiAxCglpbnQgMQoJaXR4bl9maWVsZCBBc3NldEFtb3VudAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjY5CgkvLyBhc3NldENsb3NlVG86IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIEFzc2V0Q2xvc2VUbwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjcwCgkvLyBhc3NldFJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBBc3NldFJlY2VpdmVyCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NzEKCS8vIGFzc2V0U2VuZGVyOiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBBc3NldFNlbmRlcgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjcyCgkvLyB4ZmVyQXNzZXQ6IEFzc2V0Lnplcm9JbmRleAoJaW50IDAKCWl0eG5fZmllbGQgWGZlckFzc2V0CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyBtZXRob2RDYWxsKCl1aW50NjQKKmFiaV9yb3V0ZV9tZXRob2RDYWxsOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG1ldGhvZENhbGwoKXVpbnQ2NAoJY2FsbHN1YiBtZXRob2RDYWxsCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gbWV0aG9kQ2FsbCgpOiBBc3NldAptZXRob2RDYWxsOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NzcKCS8vIHJldHVybiBzZW5kTWV0aG9kQ2FsbDxbQXBwbGljYXRpb24sIEFzc2V0XSwgQXNzZXQ+KHsKCS8vICAgICAgIG5hbWU6ICdtZXRob2QnLAoJLy8gICAgICAgbWV0aG9kQXJnczogW3RoaXMuYXBwLCBBc3NldC56ZXJvSW5kZXhdLAoJLy8gICAgIH0pOwoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCW1ldGhvZCAibWV0aG9kKGFwcGxpY2F0aW9uLGFzc2V0KXVpbnQ2NCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NzkKCS8vIG1ldGhvZEFyZ3M6IFt0aGlzLmFwcCwgQXNzZXQuemVyb0luZGV4XQoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbnMKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAxCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJaW50IDAKCWl0eG5fZmllbGQgQXNzZXRzCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglpdHhuIE51bUxvZ3MKCWludCAxCgktCglpdHhuYXMgTG9ncwoJZXh0cmFjdCA0IDAKCWJ0b2kKCXJldHN1YgoKLy8gb25saW5lS2V5UmVnaXN0cmF0aW9uKCl2b2lkCiphYmlfcm91dGVfb25saW5lS2V5UmVnaXN0cmF0aW9uOgoJLy8gZXhlY3V0ZSBvbmxpbmVLZXlSZWdpc3RyYXRpb24oKXZvaWQKCWNhbGxzdWIgb25saW5lS2V5UmVnaXN0cmF0aW9uCglpbnQgMQoJcmV0dXJuCgovLyBvbmxpbmVLZXlSZWdpc3RyYXRpb24oKTogdm9pZApvbmxpbmVLZXlSZWdpc3RyYXRpb246Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo4NAoJLy8gc2VuZE9ubGluZUtleVJlZ2lzdHJhdGlvbih7CgkvLyAgICAgICBzZWxlY3Rpb25QSzogJ2FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhJywKCS8vICAgICAgIHN0YXRlUHJvb2ZQSzogJ2FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhJywKCS8vICAgICAgIHZvdGVGaXJzdDogMSwKCS8vICAgICAgIHZvdGVLZXlEaWx1dGlvbjogMSwKCS8vICAgICAgIHZvdGVMYXN0OiAxLAoJLy8gICAgICAgdm90ZVBLOiAnYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEnLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnQga2V5cmVnCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6ODUKCS8vIHNlbGVjdGlvblBLOiAnYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEnCglieXRlIDB4NjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MSAvLyAiYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEiCglpdHhuX2ZpZWxkIFNlbGVjdGlvblBLCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6ODYKCS8vIHN0YXRlUHJvb2ZQSzogJ2FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhJwoJYnl0ZSAweDYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjEgLy8gImFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhIgoJaXR4bl9maWVsZCBTdGF0ZVByb29mUEsKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo4NwoJLy8gdm90ZUZpcnN0OiAxCglpbnQgMQoJaXR4bl9maWVsZCBWb3RlRmlyc3QKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo4OAoJLy8gdm90ZUtleURpbHV0aW9uOiAxCglpbnQgMQoJaXR4bl9maWVsZCBWb3RlS2V5RGlsdXRpb24KCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo4OQoJLy8gdm90ZUxhc3Q6IDEKCWludCAxCglpdHhuX2ZpZWxkIFZvdGVMYXN0CgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6OTAKCS8vIHZvdGVQSzogJ2FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhJwoJYnl0ZSAweDYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjEgLy8gImFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhIgoJaXR4bl9maWVsZCBWb3RlUEsKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglyZXRzdWIKCi8vIG9mZmxpbmVLZXlSZWdpc3RyYXRpb24oKXZvaWQKKmFiaV9yb3V0ZV9vZmZsaW5lS2V5UmVnaXN0cmF0aW9uOgoJLy8gZXhlY3V0ZSBvZmZsaW5lS2V5UmVnaXN0cmF0aW9uKCl2b2lkCgljYWxsc3ViIG9mZmxpbmVLZXlSZWdpc3RyYXRpb24KCWludCAxCglyZXR1cm4KCi8vIG9mZmxpbmVLZXlSZWdpc3RyYXRpb24oKTogdm9pZApvZmZsaW5lS2V5UmVnaXN0cmF0aW9uOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6OTUKCS8vIHNlbmRPZmZsaW5lS2V5UmVnaXN0cmF0aW9uKHt9KQoJaXR4bl9iZWdpbgoJaW50IGtleXJlZwoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInBheW1lbnQoKXZvaWQiCgltZXRob2QgImFzc2V0Q3JlYXRpb24oKXVpbnQ2NCIKCW1ldGhvZCAiYXBwQ2FsbCgpdm9pZCIKCW1ldGhvZCAiYXNzZXRDb25maWcoKXZvaWQiCgltZXRob2QgImFzc2V0RnJlZXplKCl2b2lkIgoJbWV0aG9kICJhc3NldFRyYW5zZmVyKCl2b2lkIgoJbWV0aG9kICJtZXRob2RDYWxsKCl1aW50NjQiCgltZXRob2QgIm9ubGluZUtleVJlZ2lzdHJhdGlvbigpdm9pZCIKCW1ldGhvZCAib2ZmbGluZUtleVJlZ2lzdHJhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfcGF5bWVudCAqYWJpX3JvdXRlX2Fzc2V0Q3JlYXRpb24gKmFiaV9yb3V0ZV9hcHBDYWxsICphYmlfcm91dGVfYXNzZXRDb25maWcgKmFiaV9yb3V0ZV9hc3NldEZyZWV6ZSAqYWJpX3JvdXRlX2Fzc2V0VHJhbnNmZXIgKmFiaV9yb3V0ZV9tZXRob2RDYWxsICphYmlfcm91dGVfb25saW5lS2V5UmVnaXN0cmF0aW9uICphYmlfcm91dGVfb2ZmbGluZUtleVJlZ2lzdHJhdGlvbgoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/LoopsTest.approval.teal b/tests/contracts/artifacts/LoopsTest.approval.teal index 9e296e02e..5b6ae6b99 100644 --- a/tests/contracts/artifacts/LoopsTest.approval.teal +++ b/tests/contracts/artifacts/LoopsTest.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // whileLoop()uint64 -abi_route_whileLoop: +*abi_route_whileLoop: // The ABI return prefix byte 0x151f7c75 @@ -46,13 +46,13 @@ whileLoop: int 0 frame_bury 0 // i: uint64 -while_0: +*while_0: // tests/contracts/loops.algo.ts:9 // i < 10 frame_dig 0 // i: uint64 int 10 < - bz while_0_end + bz *while_0_end // tests/contracts/loops.algo.ts:10 // i = i + 1 @@ -60,9 +60,9 @@ while_0: int 1 + frame_bury 0 // i: uint64 - b while_0 + b *while_0 -while_0_end: +*while_0_end: // tests/contracts/loops.algo.ts:13 // return i; frame_dig 0 // i: uint64 @@ -72,7 +72,7 @@ while_0_end: retsub // forLoop()uint64 -abi_route_forLoop: +*abi_route_forLoop: // The ABI return prefix byte 0x151f7c75 @@ -102,13 +102,13 @@ forLoop: int 0 frame_bury 1 // j: uint64 -for_0: +*for_0: // tests/contracts/loops.algo.ts:19 // j < 10 frame_dig 1 // j: uint64 int 10 < - bz for_0_end + bz *for_0_end // tests/contracts/loops.algo.ts:20 // i = i + 1 @@ -123,9 +123,9 @@ for_0: int 1 + frame_bury 1 // j: uint64 - b for_0 + b *for_0 -for_0_end: +*for_0_end: // tests/contracts/loops.algo.ts:23 // return i; frame_dig 0 // i: uint64 @@ -138,7 +138,7 @@ for_0_end: retsub // doWhileLoop()uint64 -abi_route_doWhileLoop: +*abi_route_doWhileLoop: // The ABI return prefix byte 0x151f7c75 @@ -188,7 +188,7 @@ do_while_0_end: retsub // breakWhileLoop()uint64 -abi_route_breakWhileLoop: +*abi_route_breakWhileLoop: // The ABI return prefix byte 0x151f7c75 @@ -212,13 +212,13 @@ breakWhileLoop: int 0 frame_bury 0 // i: uint64 -while_1: +*while_1: // tests/contracts/loops.algo.ts:39 // i < 10 frame_dig 0 // i: uint64 int 10 < - bz while_1_end + bz *while_1_end // tests/contracts/loops.algo.ts:40 // i = i + 1 @@ -227,21 +227,21 @@ while_1: + frame_bury 0 // i: uint64 - // if0_condition + // *if0_condition // tests/contracts/loops.algo.ts:41 // i === 5 frame_dig 0 // i: uint64 int 5 == - bz if0_end + bz *if0_end - // if0_consequent - b while_1_end + // *if0_consequent + b *while_1_end -if0_end: - b while_1 +*if0_end: + b *while_1 -while_1_end: +*while_1_end: // tests/contracts/loops.algo.ts:44 // return i; frame_dig 0 // i: uint64 @@ -251,7 +251,7 @@ while_1_end: retsub // continueWhileLoop()uint64 -abi_route_continueWhileLoop: +*abi_route_continueWhileLoop: // The ABI return prefix byte 0x151f7c75 @@ -275,39 +275,39 @@ continueWhileLoop: int 0 frame_bury 0 // i: uint64 -while_2: +*while_2: // tests/contracts/loops.algo.ts:50 // i < 10 frame_dig 0 // i: uint64 int 10 < - bz while_2_end + bz *while_2_end - // if1_condition + // *if1_condition // tests/contracts/loops.algo.ts:51 // i === 5 frame_dig 0 // i: uint64 int 5 == - bz if1_end + bz *if1_end - // if1_consequent + // *if1_consequent // tests/contracts/loops.algo.ts:52 // i = 1337 int 1337 frame_bury 0 // i: uint64 - b while_2 + b *while_2 -if1_end: +*if1_end: // tests/contracts/loops.algo.ts:55 // i = i + 1 frame_dig 0 // i: uint64 int 1 + frame_bury 0 // i: uint64 - b while_2 + b *while_2 -while_2_end: +*while_2_end: // tests/contracts/loops.algo.ts:58 // return i; frame_dig 0 // i: uint64 @@ -317,7 +317,7 @@ while_2_end: retsub // breakForLoop()uint64 -abi_route_breakForLoop: +*abi_route_breakForLoop: // The ABI return prefix byte 0x151f7c75 @@ -347,13 +347,13 @@ breakForLoop: int 0 frame_bury 1 // j: uint64 -for_1: +*for_1: // tests/contracts/loops.algo.ts:64 // j < 10 frame_dig 1 // j: uint64 int 10 < - bz for_1_end + bz *for_1_end // tests/contracts/loops.algo.ts:65 // i = i + 1 @@ -362,27 +362,27 @@ for_1: + frame_bury 0 // i: uint64 - // if2_condition + // *if2_condition // tests/contracts/loops.algo.ts:66 // i === 5 frame_dig 0 // i: uint64 int 5 == - bz if2_end + bz *if2_end - // if2_consequent - b for_1_end + // *if2_consequent + b *for_1_end -if2_end: +*if2_end: // tests/contracts/loops.algo.ts:64 // j = j + 1 frame_dig 1 // j: uint64 int 1 + frame_bury 1 // j: uint64 - b for_1 + b *for_1 -for_1_end: +*for_1_end: // tests/contracts/loops.algo.ts:69 // return i; frame_dig 0 // i: uint64 @@ -395,7 +395,7 @@ for_1_end: retsub // continueForLoop()uint64 -abi_route_continueForLoop: +*abi_route_continueForLoop: // The ABI return prefix byte 0x151f7c75 @@ -425,30 +425,30 @@ continueForLoop: int 0 frame_bury 1 // j: uint64 -for_2: +*for_2: // tests/contracts/loops.algo.ts:75 // j < 10 frame_dig 1 // j: uint64 int 10 < - bz for_2_end + bz *for_2_end - // if3_condition + // *if3_condition // tests/contracts/loops.algo.ts:76 // i === 5 frame_dig 0 // i: uint64 int 5 == - bz if3_end + bz *if3_end - // if3_consequent + // *if3_consequent // tests/contracts/loops.algo.ts:77 // i = 1337 int 1337 frame_bury 0 // i: uint64 - b for_2 + b *for_2 -if3_end: +*if3_end: // tests/contracts/loops.algo.ts:80 // i = i + 1 frame_dig 0 // i: uint64 @@ -462,9 +462,9 @@ if3_end: int 1 + frame_bury 1 // j: uint64 - b for_2 + b *for_2 -for_2_end: +*for_2_end: // tests/contracts/loops.algo.ts:83 // return i; frame_dig 0 // i: uint64 @@ -477,7 +477,7 @@ for_2_end: retsub // breakDoWhileLoop()uint64 -abi_route_breakDoWhileLoop: +*abi_route_breakDoWhileLoop: // The ABI return prefix byte 0x151f7c75 @@ -509,18 +509,18 @@ do_while_1_statement: + frame_bury 0 // i: uint64 - // if4_condition + // *if4_condition // tests/contracts/loops.algo.ts:91 // i === 5 frame_dig 0 // i: uint64 int 5 == - bz if4_end + bz *if4_end - // if4_consequent + // *if4_consequent b do_while_1_end -if4_end: +*if4_end: do_while_1: // tests/contracts/loops.algo.ts:92 @@ -540,7 +540,7 @@ do_while_1_end: retsub // continueDoWhileLoop()uint64 -abi_route_continueDoWhileLoop: +*abi_route_continueDoWhileLoop: // The ABI return prefix byte 0x151f7c75 @@ -565,22 +565,22 @@ continueDoWhileLoop: frame_bury 0 // i: uint64 do_while_2_statement: - // if5_condition + // *if5_condition // tests/contracts/loops.algo.ts:101 // i === 5 frame_dig 0 // i: uint64 int 5 == - bz if5_end + bz *if5_end - // if5_consequent + // *if5_consequent // tests/contracts/loops.algo.ts:102 // i = 1337 int 1337 frame_bury 0 // i: uint64 b do_while_2 -if5_end: +*if5_end: // tests/contracts/loops.algo.ts:105 // i = i + 1 frame_dig 0 // i: uint64 @@ -605,17 +605,17 @@ do_while_2_end: frame_bury 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "whileLoop()uint64" method "forLoop()uint64" method "doWhileLoop()uint64" @@ -626,5 +626,5 @@ call_NoOp: method "breakDoWhileLoop()uint64" method "continueDoWhileLoop()uint64" txna ApplicationArgs 0 - match abi_route_whileLoop abi_route_forLoop abi_route_doWhileLoop abi_route_breakWhileLoop abi_route_continueWhileLoop abi_route_breakForLoop abi_route_continueForLoop abi_route_breakDoWhileLoop abi_route_continueDoWhileLoop + match *abi_route_whileLoop *abi_route_forLoop *abi_route_doWhileLoop *abi_route_breakWhileLoop *abi_route_continueWhileLoop *abi_route_breakForLoop *abi_route_continueForLoop *abi_route_breakDoWhileLoop *abi_route_continueDoWhileLoop err \ No newline at end of file diff --git a/tests/contracts/artifacts/LoopsTest.arc32.json b/tests/contracts/artifacts/LoopsTest.arc32.json index 253e47889..a8bc3c413 100644 --- a/tests/contracts/artifacts/LoopsTest.arc32.json +++ b/tests/contracts/artifacts/LoopsTest.arc32.json @@ -79,7 +79,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyB3aGlsZUxvb3AoKXVpbnQ2NAphYmlfcm91dGVfd2hpbGVMb29wOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHdoaWxlTG9vcCgpdWludDY0CgljYWxsc3ViIHdoaWxlTG9vcAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHdoaWxlTG9vcCgpOiB1aW50NjQKd2hpbGVMb29wOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo3CgkvLyBpID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCndoaWxlXzA6CgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo5CgkvLyBpIDwgMTAKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDEwCgk8CglieiB3aGlsZV8wX2VuZAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjEwCgkvLyBpID0gaSArIDEKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCWIgd2hpbGVfMAoKd2hpbGVfMF9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czoxMwoJLy8gcmV0dXJuIGk7CglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gZm9yTG9vcCgpdWludDY0CmFiaV9yb3V0ZV9mb3JMb29wOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGZvckxvb3AoKXVpbnQ2NAoJY2FsbHN1YiBmb3JMb29wCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZm9yTG9vcCgpOiB1aW50NjQKZm9yTG9vcDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czoxNwoJLy8gaSA9IDAKCWludCAwCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6MTkKCS8vIGZvciAobGV0IGogPSAwOyBqIDwgMTA7IGogPSBqICsgMSkKCWludCAwCglmcmFtZV9idXJ5IDEgLy8gajogdWludDY0Cgpmb3JfMDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjE5CgkvLyBqIDwgMTAKCWZyYW1lX2RpZyAxIC8vIGo6IHVpbnQ2NAoJaW50IDEwCgk8CglieiBmb3JfMF9lbmQKCgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czoyMAoJLy8gaSA9IGkgKyAxCglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6MTkKCS8vIGogPSBqICsgMQoJZnJhbWVfZGlnIDEgLy8gajogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAxIC8vIGo6IHVpbnQ2NAoJYiBmb3JfMAoKZm9yXzBfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6MjMKCS8vIHJldHVybiBpOwoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMQoJcmV0c3ViCgovLyBkb1doaWxlTG9vcCgpdWludDY0CmFiaV9yb3V0ZV9kb1doaWxlTG9vcDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBkb1doaWxlTG9vcCgpdWludDY0CgljYWxsc3ViIGRvV2hpbGVMb29wCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZG9XaGlsZUxvb3AoKTogdWludDY0CmRvV2hpbGVMb29wOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czoyNwoJLy8gaSA9IDAKCWludCAwCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0Cgpkb193aGlsZV8wX3N0YXRlbWVudDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjMwCgkvLyBpID0gaSArIDEKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCmRvX3doaWxlXzA6CgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czozMQoJLy8gaSA8IDEwCglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludCAxMAoJPAoJYm56IGRvX3doaWxlXzBfc3RhdGVtZW50Cgpkb193aGlsZV8wX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjMzCgkvLyByZXR1cm4gaTsKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyBicmVha1doaWxlTG9vcCgpdWludDY0CmFiaV9yb3V0ZV9icmVha1doaWxlTG9vcDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBicmVha1doaWxlTG9vcCgpdWludDY0CgljYWxsc3ViIGJyZWFrV2hpbGVMb29wCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYnJlYWtXaGlsZUxvb3AoKTogdWludDY0CmJyZWFrV2hpbGVMb29wOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czozNwoJLy8gaSA9IDAKCWludCAwCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0Cgp3aGlsZV8xOgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6MzkKCS8vIGkgPCAxMAoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgMTAKCTwKCWJ6IHdoaWxlXzFfZW5kCgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NDAKCS8vIGkgPSBpICsgMQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKCS8vIGlmMF9jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjQxCgkvLyBpID09PSA1CglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludCA1Cgk9PQoJYnogaWYwX2VuZAoKCS8vIGlmMF9jb25zZXF1ZW50CgliIHdoaWxlXzFfZW5kCgppZjBfZW5kOgoJYiB3aGlsZV8xCgp3aGlsZV8xX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjQ0CgkvLyByZXR1cm4gaTsKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyBjb250aW51ZVdoaWxlTG9vcCgpdWludDY0CmFiaV9yb3V0ZV9jb250aW51ZVdoaWxlTG9vcDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBjb250aW51ZVdoaWxlTG9vcCgpdWludDY0CgljYWxsc3ViIGNvbnRpbnVlV2hpbGVMb29wCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gY29udGludWVXaGlsZUxvb3AoKTogdWludDY0CmNvbnRpbnVlV2hpbGVMb29wOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo0OAoJLy8gaSA9IDAKCWludCAwCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0Cgp3aGlsZV8yOgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NTAKCS8vIGkgPCAxMAoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgMTAKCTwKCWJ6IHdoaWxlXzJfZW5kCgoJLy8gaWYxX2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NTEKCS8vIGkgPT09IDUKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDUKCT09CglieiBpZjFfZW5kCgoJLy8gaWYxX2NvbnNlcXVlbnQKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjUyCgkvLyBpID0gMTMzNwoJaW50IDEzMzcKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCWIgd2hpbGVfMgoKaWYxX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjU1CgkvLyBpID0gaSArIDEKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCWIgd2hpbGVfMgoKd2hpbGVfMl9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo1OAoJLy8gcmV0dXJuIGk7CglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gYnJlYWtGb3JMb29wKCl1aW50NjQKYWJpX3JvdXRlX2JyZWFrRm9yTG9vcDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBicmVha0Zvckxvb3AoKXVpbnQ2NAoJY2FsbHN1YiBicmVha0Zvckxvb3AKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBicmVha0Zvckxvb3AoKTogdWludDY0CmJyZWFrRm9yTG9vcDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo2MgoJLy8gaSA9IDAKCWludCAwCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NjQKCS8vIGZvciAobGV0IGogPSAwOyBqIDwgMTA7IGogPSBqICsgMSkKCWludCAwCglmcmFtZV9idXJ5IDEgLy8gajogdWludDY0Cgpmb3JfMToKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjY0CgkvLyBqIDwgMTAKCWZyYW1lX2RpZyAxIC8vIGo6IHVpbnQ2NAoJaW50IDEwCgk8CglieiBmb3JfMV9lbmQKCgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo2NQoJLy8gaSA9IGkgKyAxCglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgoJLy8gaWYyX2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NjYKCS8vIGkgPT09IDUKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDUKCT09CglieiBpZjJfZW5kCgoJLy8gaWYyX2NvbnNlcXVlbnQKCWIgZm9yXzFfZW5kCgppZjJfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NjQKCS8vIGogPSBqICsgMQoJZnJhbWVfZGlnIDEgLy8gajogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAxIC8vIGo6IHVpbnQ2NAoJYiBmb3JfMQoKZm9yXzFfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NjkKCS8vIHJldHVybiBpOwoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMQoJcmV0c3ViCgovLyBjb250aW51ZUZvckxvb3AoKXVpbnQ2NAphYmlfcm91dGVfY29udGludWVGb3JMb29wOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGNvbnRpbnVlRm9yTG9vcCgpdWludDY0CgljYWxsc3ViIGNvbnRpbnVlRm9yTG9vcAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGNvbnRpbnVlRm9yTG9vcCgpOiB1aW50NjQKY29udGludWVGb3JMb29wOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjczCgkvLyBpID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo3NQoJLy8gZm9yIChsZXQgaiA9IDA7IGogPCAxMDsgaiA9IGogKyAxKQoJaW50IDAKCWZyYW1lX2J1cnkgMSAvLyBqOiB1aW50NjQKCmZvcl8yOgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NzUKCS8vIGogPCAxMAoJZnJhbWVfZGlnIDEgLy8gajogdWludDY0CglpbnQgMTAKCTwKCWJ6IGZvcl8yX2VuZAoKCS8vIGlmM19jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjc2CgkvLyBpID09PSA1CglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludCA1Cgk9PQoJYnogaWYzX2VuZAoKCS8vIGlmM19jb25zZXF1ZW50CgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo3NwoJLy8gaSA9IDEzMzcKCWludCAxMzM3CglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgliIGZvcl8yCgppZjNfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6ODAKCS8vIGkgPSBpICsgMQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjc1CgkvLyBqID0gaiArIDEKCWZyYW1lX2RpZyAxIC8vIGo6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMSAvLyBqOiB1aW50NjQKCWIgZm9yXzIKCmZvcl8yX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjgzCgkvLyByZXR1cm4gaTsKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKLy8gYnJlYWtEb1doaWxlTG9vcCgpdWludDY0CmFiaV9yb3V0ZV9icmVha0RvV2hpbGVMb29wOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGJyZWFrRG9XaGlsZUxvb3AoKXVpbnQ2NAoJY2FsbHN1YiBicmVha0RvV2hpbGVMb29wCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYnJlYWtEb1doaWxlTG9vcCgpOiB1aW50NjQKYnJlYWtEb1doaWxlTG9vcDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6ODcKCS8vIGkgPSAwCglpbnQgMAoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKZG9fd2hpbGVfMV9zdGF0ZW1lbnQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo5MAoJLy8gaSA9IGkgKyAxCglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgoJLy8gaWY0X2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6OTEKCS8vIGkgPT09IDUKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDUKCT09CglieiBpZjRfZW5kCgoJLy8gaWY0X2NvbnNlcXVlbnQKCWIgZG9fd2hpbGVfMV9lbmQKCmlmNF9lbmQ6Cgpkb193aGlsZV8xOgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6OTIKCS8vIGkgPCAxMAoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgMTAKCTwKCWJueiBkb193aGlsZV8xX3N0YXRlbWVudAoKZG9fd2hpbGVfMV9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo5NAoJLy8gcmV0dXJuIGk7CglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gY29udGludWVEb1doaWxlTG9vcCgpdWludDY0CmFiaV9yb3V0ZV9jb250aW51ZURvV2hpbGVMb29wOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGNvbnRpbnVlRG9XaGlsZUxvb3AoKXVpbnQ2NAoJY2FsbHN1YiBjb250aW51ZURvV2hpbGVMb29wCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gY29udGludWVEb1doaWxlTG9vcCgpOiB1aW50NjQKY29udGludWVEb1doaWxlTG9vcDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6OTgKCS8vIGkgPSAwCglpbnQgMAoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKZG9fd2hpbGVfMl9zdGF0ZW1lbnQ6CgkvLyBpZjVfY29uZGl0aW9uCgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czoxMDEKCS8vIGkgPT09IDUKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDUKCT09CglieiBpZjVfZW5kCgoJLy8gaWY1X2NvbnNlcXVlbnQKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjEwMgoJLy8gaSA9IDEzMzcKCWludCAxMzM3CglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgliIGRvX3doaWxlXzIKCmlmNV9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czoxMDUKCS8vIGkgPSBpICsgMQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKZG9fd2hpbGVfMjoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjEwNgoJLy8gaSA8IDEwCglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludCAxMAoJPAoJYm56IGRvX3doaWxlXzJfc3RhdGVtZW50Cgpkb193aGlsZV8yX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjEwOAoJLy8gcmV0dXJuIGk7CglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAid2hpbGVMb29wKCl1aW50NjQiCgltZXRob2QgImZvckxvb3AoKXVpbnQ2NCIKCW1ldGhvZCAiZG9XaGlsZUxvb3AoKXVpbnQ2NCIKCW1ldGhvZCAiYnJlYWtXaGlsZUxvb3AoKXVpbnQ2NCIKCW1ldGhvZCAiY29udGludWVXaGlsZUxvb3AoKXVpbnQ2NCIKCW1ldGhvZCAiYnJlYWtGb3JMb29wKCl1aW50NjQiCgltZXRob2QgImNvbnRpbnVlRm9yTG9vcCgpdWludDY0IgoJbWV0aG9kICJicmVha0RvV2hpbGVMb29wKCl1aW50NjQiCgltZXRob2QgImNvbnRpbnVlRG9XaGlsZUxvb3AoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV93aGlsZUxvb3AgYWJpX3JvdXRlX2Zvckxvb3AgYWJpX3JvdXRlX2RvV2hpbGVMb29wIGFiaV9yb3V0ZV9icmVha1doaWxlTG9vcCBhYmlfcm91dGVfY29udGludWVXaGlsZUxvb3AgYWJpX3JvdXRlX2JyZWFrRm9yTG9vcCBhYmlfcm91dGVfY29udGludWVGb3JMb29wIGFiaV9yb3V0ZV9icmVha0RvV2hpbGVMb29wIGFiaV9yb3V0ZV9jb250aW51ZURvV2hpbGVMb29wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyB3aGlsZUxvb3AoKXVpbnQ2NAoqYWJpX3JvdXRlX3doaWxlTG9vcDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSB3aGlsZUxvb3AoKXVpbnQ2NAoJY2FsbHN1YiB3aGlsZUxvb3AKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB3aGlsZUxvb3AoKTogdWludDY0CndoaWxlTG9vcDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NwoJLy8gaSA9IDAKCWludCAwCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0Cgoqd2hpbGVfMDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjkKCS8vIGkgPCAxMAoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgMTAKCTwKCWJ6ICp3aGlsZV8wX2VuZAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjEwCgkvLyBpID0gaSArIDEKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCWIgKndoaWxlXzAKCip3aGlsZV8wX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjEzCgkvLyByZXR1cm4gaTsKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyBmb3JMb29wKCl1aW50NjQKKmFiaV9yb3V0ZV9mb3JMb29wOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGZvckxvb3AoKXVpbnQ2NAoJY2FsbHN1YiBmb3JMb29wCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZm9yTG9vcCgpOiB1aW50NjQKZm9yTG9vcDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czoxNwoJLy8gaSA9IDAKCWludCAwCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6MTkKCS8vIGZvciAobGV0IGogPSAwOyBqIDwgMTA7IGogPSBqICsgMSkKCWludCAwCglmcmFtZV9idXJ5IDEgLy8gajogdWludDY0CgoqZm9yXzA6CgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czoxOQoJLy8gaiA8IDEwCglmcmFtZV9kaWcgMSAvLyBqOiB1aW50NjQKCWludCAxMAoJPAoJYnogKmZvcl8wX2VuZAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjIwCgkvLyBpID0gaSArIDEKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czoxOQoJLy8gaiA9IGogKyAxCglmcmFtZV9kaWcgMSAvLyBqOiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDEgLy8gajogdWludDY0CgliICpmb3JfMAoKKmZvcl8wX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjIzCgkvLyByZXR1cm4gaTsKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKLy8gZG9XaGlsZUxvb3AoKXVpbnQ2NAoqYWJpX3JvdXRlX2RvV2hpbGVMb29wOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGRvV2hpbGVMb29wKCl1aW50NjQKCWNhbGxzdWIgZG9XaGlsZUxvb3AKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBkb1doaWxlTG9vcCgpOiB1aW50NjQKZG9XaGlsZUxvb3A6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjI3CgkvLyBpID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCmRvX3doaWxlXzBfc3RhdGVtZW50OgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6MzAKCS8vIGkgPSBpICsgMQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKZG9fd2hpbGVfMDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjMxCgkvLyBpIDwgMTAKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDEwCgk8CglibnogZG9fd2hpbGVfMF9zdGF0ZW1lbnQKCmRvX3doaWxlXzBfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6MzMKCS8vIHJldHVybiBpOwoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIGJyZWFrV2hpbGVMb29wKCl1aW50NjQKKmFiaV9yb3V0ZV9icmVha1doaWxlTG9vcDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBicmVha1doaWxlTG9vcCgpdWludDY0CgljYWxsc3ViIGJyZWFrV2hpbGVMb29wCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYnJlYWtXaGlsZUxvb3AoKTogdWludDY0CmJyZWFrV2hpbGVMb29wOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czozNwoJLy8gaSA9IDAKCWludCAwCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0Cgoqd2hpbGVfMToKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjM5CgkvLyBpIDwgMTAKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDEwCgk8CglieiAqd2hpbGVfMV9lbmQKCgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo0MAoJLy8gaSA9IGkgKyAxCglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgoJLy8gKmlmMF9jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjQxCgkvLyBpID09PSA1CglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludCA1Cgk9PQoJYnogKmlmMF9lbmQKCgkvLyAqaWYwX2NvbnNlcXVlbnQKCWIgKndoaWxlXzFfZW5kCgoqaWYwX2VuZDoKCWIgKndoaWxlXzEKCip3aGlsZV8xX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjQ0CgkvLyByZXR1cm4gaTsKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyBjb250aW51ZVdoaWxlTG9vcCgpdWludDY0CiphYmlfcm91dGVfY29udGludWVXaGlsZUxvb3A6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgY29udGludWVXaGlsZUxvb3AoKXVpbnQ2NAoJY2FsbHN1YiBjb250aW51ZVdoaWxlTG9vcAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGNvbnRpbnVlV2hpbGVMb29wKCk6IHVpbnQ2NApjb250aW51ZVdoaWxlTG9vcDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NDgKCS8vIGkgPSAwCglpbnQgMAoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKKndoaWxlXzI6CgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo1MAoJLy8gaSA8IDEwCglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludCAxMAoJPAoJYnogKndoaWxlXzJfZW5kCgoJLy8gKmlmMV9jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjUxCgkvLyBpID09PSA1CglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludCA1Cgk9PQoJYnogKmlmMV9lbmQKCgkvLyAqaWYxX2NvbnNlcXVlbnQKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjUyCgkvLyBpID0gMTMzNwoJaW50IDEzMzcKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCWIgKndoaWxlXzIKCippZjFfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NTUKCS8vIGkgPSBpICsgMQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoJYiAqd2hpbGVfMgoKKndoaWxlXzJfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NTgKCS8vIHJldHVybiBpOwoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIGJyZWFrRm9yTG9vcCgpdWludDY0CiphYmlfcm91dGVfYnJlYWtGb3JMb29wOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGJyZWFrRm9yTG9vcCgpdWludDY0CgljYWxsc3ViIGJyZWFrRm9yTG9vcAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJyZWFrRm9yTG9vcCgpOiB1aW50NjQKYnJlYWtGb3JMb29wOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjYyCgkvLyBpID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo2NAoJLy8gZm9yIChsZXQgaiA9IDA7IGogPCAxMDsgaiA9IGogKyAxKQoJaW50IDAKCWZyYW1lX2J1cnkgMSAvLyBqOiB1aW50NjQKCipmb3JfMToKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjY0CgkvLyBqIDwgMTAKCWZyYW1lX2RpZyAxIC8vIGo6IHVpbnQ2NAoJaW50IDEwCgk8CglieiAqZm9yXzFfZW5kCgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NjUKCS8vIGkgPSBpICsgMQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKCS8vICppZjJfY29uZGl0aW9uCgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo2NgoJLy8gaSA9PT0gNQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgNQoJPT0KCWJ6ICppZjJfZW5kCgoJLy8gKmlmMl9jb25zZXF1ZW50CgliICpmb3JfMV9lbmQKCippZjJfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NjQKCS8vIGogPSBqICsgMQoJZnJhbWVfZGlnIDEgLy8gajogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAxIC8vIGo6IHVpbnQ2NAoJYiAqZm9yXzEKCipmb3JfMV9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo2OQoJLy8gcmV0dXJuIGk7CglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCi8vIGNvbnRpbnVlRm9yTG9vcCgpdWludDY0CiphYmlfcm91dGVfY29udGludWVGb3JMb29wOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGNvbnRpbnVlRm9yTG9vcCgpdWludDY0CgljYWxsc3ViIGNvbnRpbnVlRm9yTG9vcAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGNvbnRpbnVlRm9yTG9vcCgpOiB1aW50NjQKY29udGludWVGb3JMb29wOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjczCgkvLyBpID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo3NQoJLy8gZm9yIChsZXQgaiA9IDA7IGogPCAxMDsgaiA9IGogKyAxKQoJaW50IDAKCWZyYW1lX2J1cnkgMSAvLyBqOiB1aW50NjQKCipmb3JfMjoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjc1CgkvLyBqIDwgMTAKCWZyYW1lX2RpZyAxIC8vIGo6IHVpbnQ2NAoJaW50IDEwCgk8CglieiAqZm9yXzJfZW5kCgoJLy8gKmlmM19jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjc2CgkvLyBpID09PSA1CglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludCA1Cgk9PQoJYnogKmlmM19lbmQKCgkvLyAqaWYzX2NvbnNlcXVlbnQKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjc3CgkvLyBpID0gMTMzNwoJaW50IDEzMzcKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCWIgKmZvcl8yCgoqaWYzX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjgwCgkvLyBpID0gaSArIDEKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo3NQoJLy8gaiA9IGogKyAxCglmcmFtZV9kaWcgMSAvLyBqOiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDEgLy8gajogdWludDY0CgliICpmb3JfMgoKKmZvcl8yX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjgzCgkvLyByZXR1cm4gaTsKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKLy8gYnJlYWtEb1doaWxlTG9vcCgpdWludDY0CiphYmlfcm91dGVfYnJlYWtEb1doaWxlTG9vcDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBicmVha0RvV2hpbGVMb29wKCl1aW50NjQKCWNhbGxzdWIgYnJlYWtEb1doaWxlTG9vcAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJyZWFrRG9XaGlsZUxvb3AoKTogdWludDY0CmJyZWFrRG9XaGlsZUxvb3A6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjg3CgkvLyBpID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCmRvX3doaWxlXzFfc3RhdGVtZW50OgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6OTAKCS8vIGkgPSBpICsgMQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKCS8vICppZjRfY29uZGl0aW9uCgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo5MQoJLy8gaSA9PT0gNQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgNQoJPT0KCWJ6ICppZjRfZW5kCgoJLy8gKmlmNF9jb25zZXF1ZW50CgliIGRvX3doaWxlXzFfZW5kCgoqaWY0X2VuZDoKCmRvX3doaWxlXzE6CgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo5MgoJLy8gaSA8IDEwCglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludCAxMAoJPAoJYm56IGRvX3doaWxlXzFfc3RhdGVtZW50Cgpkb193aGlsZV8xX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjk0CgkvLyByZXR1cm4gaTsKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyBjb250aW51ZURvV2hpbGVMb29wKCl1aW50NjQKKmFiaV9yb3V0ZV9jb250aW51ZURvV2hpbGVMb29wOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGNvbnRpbnVlRG9XaGlsZUxvb3AoKXVpbnQ2NAoJY2FsbHN1YiBjb250aW51ZURvV2hpbGVMb29wCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gY29udGludWVEb1doaWxlTG9vcCgpOiB1aW50NjQKY29udGludWVEb1doaWxlTG9vcDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6OTgKCS8vIGkgPSAwCglpbnQgMAoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKZG9fd2hpbGVfMl9zdGF0ZW1lbnQ6CgkvLyAqaWY1X2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6MTAxCgkvLyBpID09PSA1CglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludCA1Cgk9PQoJYnogKmlmNV9lbmQKCgkvLyAqaWY1X2NvbnNlcXVlbnQKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjEwMgoJLy8gaSA9IDEzMzcKCWludCAxMzM3CglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgliIGRvX3doaWxlXzIKCippZjVfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6MTA1CgkvLyBpID0gaSArIDEKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCmRvX3doaWxlXzI6CgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czoxMDYKCS8vIGkgPCAxMAoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgMTAKCTwKCWJueiBkb193aGlsZV8yX3N0YXRlbWVudAoKZG9fd2hpbGVfMl9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czoxMDgKCS8vIHJldHVybiBpOwoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJ3aGlsZUxvb3AoKXVpbnQ2NCIKCW1ldGhvZCAiZm9yTG9vcCgpdWludDY0IgoJbWV0aG9kICJkb1doaWxlTG9vcCgpdWludDY0IgoJbWV0aG9kICJicmVha1doaWxlTG9vcCgpdWludDY0IgoJbWV0aG9kICJjb250aW51ZVdoaWxlTG9vcCgpdWludDY0IgoJbWV0aG9kICJicmVha0Zvckxvb3AoKXVpbnQ2NCIKCW1ldGhvZCAiY29udGludWVGb3JMb29wKCl1aW50NjQiCgltZXRob2QgImJyZWFrRG9XaGlsZUxvb3AoKXVpbnQ2NCIKCW1ldGhvZCAiY29udGludWVEb1doaWxlTG9vcCgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV93aGlsZUxvb3AgKmFiaV9yb3V0ZV9mb3JMb29wICphYmlfcm91dGVfZG9XaGlsZUxvb3AgKmFiaV9yb3V0ZV9icmVha1doaWxlTG9vcCAqYWJpX3JvdXRlX2NvbnRpbnVlV2hpbGVMb29wICphYmlfcm91dGVfYnJlYWtGb3JMb29wICphYmlfcm91dGVfY29udGludWVGb3JMb29wICphYmlfcm91dGVfYnJlYWtEb1doaWxlTG9vcCAqYWJpX3JvdXRlX2NvbnRpbnVlRG9XaGlsZUxvb3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/LsigWithArgs.lsig.teal b/tests/contracts/artifacts/LsigWithArgs.lsig.teal index 030c25ff8..f9c1ae998 100644 --- a/tests/contracts/artifacts/LsigWithArgs.lsig.teal +++ b/tests/contracts/artifacts/LsigWithArgs.lsig.teal @@ -1,15 +1,15 @@ #pragma version 10 //#pragma mode logicsig -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // The address of this logic signature is W6DDEFBKZB2HZYJ6WYJ3S3RSK57IRNV4LACOOLBGVDEWJ524RQWF5EBMTU -b route_logic +b *route_logic // logic(asset,uint64[])void -route_logic: +*route_logic: // b: uint64[] int 1 args diff --git a/tests/contracts/artifacts/LsigWithPrivateMethod.lsig.teal b/tests/contracts/artifacts/LsigWithPrivateMethod.lsig.teal index 42bd37c82..1712f60c0 100644 --- a/tests/contracts/artifacts/LsigWithPrivateMethod.lsig.teal +++ b/tests/contracts/artifacts/LsigWithPrivateMethod.lsig.teal @@ -1,12 +1,12 @@ #pragma version 10 //#pragma mode logicsig -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // The address of this logic signature is 2G7X6ZCAOFJOVGTOAGVL2ZKKJSLUSV2XFG4SKH3JRUIZ7EY7JWY3T7EQGI -b route_logic +b *route_logic // privateMethod(): boolean privateMethod: @@ -18,7 +18,7 @@ privateMethod: retsub // logic()void -route_logic: +*route_logic: // execute logic()void callsub logic int 1 diff --git a/tests/contracts/artifacts/MathTest.approval.teal b/tests/contracts/artifacts/MathTest.approval.teal index 1883d357d..dc0e0dd33 100644 --- a/tests/contracts/artifacts/MathTest.approval.teal +++ b/tests/contracts/artifacts/MathTest.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // u64plus(uint64,uint64)uint64 -abi_route_u64plus: +*abi_route_u64plus: // The ABI return prefix byte 0x151f7c75 @@ -54,7 +54,7 @@ u64plus: retsub // u64minus(uint64,uint64)uint64 -abi_route_u64minus: +*abi_route_u64minus: // The ABI return prefix byte 0x151f7c75 @@ -86,7 +86,7 @@ u64minus: retsub // u64mul(uint64,uint64)uint64 -abi_route_u64mul: +*abi_route_u64mul: // The ABI return prefix byte 0x151f7c75 @@ -118,7 +118,7 @@ u64mul: retsub // u64div(uint64,uint64)uint64 -abi_route_u64div: +*abi_route_u64div: // The ABI return prefix byte 0x151f7c75 @@ -150,7 +150,7 @@ u64div: retsub // u256plus(uint256,uint256)uint256 -abi_route_u256plus: +*abi_route_u256plus: // The ABI return prefix byte 0x151f7c75 @@ -203,7 +203,7 @@ u256plus: retsub // u256minus(uint256,uint256)uint256 -abi_route_u256minus: +*abi_route_u256minus: // The ABI return prefix byte 0x151f7c75 @@ -256,7 +256,7 @@ u256minus: retsub // u256mul(uint256,uint256)uint256 -abi_route_u256mul: +*abi_route_u256mul: // The ABI return prefix byte 0x151f7c75 @@ -309,7 +309,7 @@ u256mul: retsub // u256div(uint256,uint256)uint256 -abi_route_u256div: +*abi_route_u256div: // The ABI return prefix byte 0x151f7c75 @@ -362,7 +362,7 @@ u256div: retsub // u64Return256(uint64,uint64)uint256 -abi_route_u64Return256: +*abi_route_u64Return256: // The ABI return prefix byte 0x151f7c75 @@ -408,7 +408,7 @@ u64Return256: retsub // maxU64()uint64 -abi_route_maxU64: +*abi_route_maxU64: // The ABI return prefix byte 0x151f7c75 @@ -430,7 +430,7 @@ maxU64: retsub // exponent(uint64,uint64)uint64 -abi_route_exponent: +*abi_route_exponent: // The ABI return prefix byte 0x151f7c75 @@ -462,7 +462,7 @@ exponent: retsub // variableTypeHint(uint8,uint8)uint16 -abi_route_variableTypeHint: +*abi_route_variableTypeHint: // The ABI return prefix byte 0x151f7c75 @@ -521,7 +521,7 @@ variableTypeHint: retsub // uint8plus(uint8,uint8)uint8 -abi_route_uint8plus: +*abi_route_uint8plus: // The ABI return prefix byte 0x151f7c75 @@ -569,7 +569,7 @@ uint8plus: retsub // uint8exp(uint8,uint8)uint8 -abi_route_uint8exp: +*abi_route_uint8exp: // The ABI return prefix byte 0x151f7c75 @@ -617,7 +617,7 @@ uint8exp: retsub // plusEquals(uint64,uint64)uint64 -abi_route_plusEquals: +*abi_route_plusEquals: // The ABI return prefix byte 0x151f7c75 @@ -665,7 +665,7 @@ plusEquals: retsub // plusEqualsFromGlobal(uint64,uint64)uint64 -abi_route_plusEqualsFromGlobal: +*abi_route_plusEqualsFromGlobal: // The ABI return prefix byte 0x151f7c75 @@ -712,7 +712,7 @@ plusEqualsFromGlobal: retsub // ufixedLiteralMul()ufixed64x2 -abi_route_ufixedLiteralMul: +*abi_route_ufixedLiteralMul: // The ABI return prefix byte 0x151f7c75 @@ -764,7 +764,7 @@ ufixedLiteralMul: retsub // ufixedMul(ufixed64x2,ufixed64x2)ufixed64x2 -abi_route_ufixedMul: +*abi_route_ufixedMul: // The ABI return prefix byte 0x151f7c75 @@ -809,7 +809,7 @@ ufixedMul: retsub // BigUfixedMul(ufixed128x2,ufixed128x2)ufixed128x2 -abi_route_BigUfixedMul: +*abi_route_BigUfixedMul: // The ABI return prefix byte 0x151f7c75 @@ -864,7 +864,7 @@ BigUfixedMul: retsub // TripleBigUfixedMul(ufixed128x2,ufixed128x2,ufixed128x2)ufixed128x2 -abi_route_TripleBigUfixedMul: +*abi_route_TripleBigUfixedMul: // The ABI return prefix byte 0x151f7c75 @@ -951,7 +951,7 @@ TripleBigUfixedMul: retsub // boxTest()uint256 -abi_route_boxTest: +*abi_route_boxTest: // The ABI return prefix byte 0x151f7c75 @@ -1028,7 +1028,7 @@ foo: retsub // unsafeMethodArgs(uint256,uint256)uint256 -abi_route_unsafeMethodArgs: +*abi_route_unsafeMethodArgs: // The ABI return prefix byte 0x151f7c75 @@ -1107,7 +1107,7 @@ unsafeMethodArgs: retsub // uint256ComparisonType(uint256,uint256)void -abi_route_uint256ComparisonType: +*abi_route_uint256ComparisonType: // b: uint256 txna ApplicationArgs 2 dup @@ -1143,32 +1143,32 @@ uint256ComparisonType: b- frame_bury 0 // senderBalanceAfter: unsafe uint256 - // if0_condition + // *if0_condition // tests/contracts/math.algo.ts:125 // senderBalanceAfter > 0 frame_dig 0 // senderBalanceAfter: unsafe uint256 byte 0x0000000000000000000000000000000000000000000000000000000000000000 b> - bz if0_else + bz *if0_else - // if0_consequent + // *if0_consequent // tests/contracts/math.algo.ts:126 // log('nonZero') byte 0x6e6f6e5a65726f // "nonZero" log - b if0_end + b *if0_end -if0_else: +*if0_else: // tests/contracts/math.algo.ts:128 // log('zero') byte 0x7a65726f // "zero" log -if0_end: +*if0_end: retsub // squareRoot256(uint256,uint256)uint256 -abi_route_squareRoot256: +*abi_route_squareRoot256: // The ABI return prefix byte 0x151f7c75 @@ -1222,7 +1222,7 @@ squareRoot256: retsub // squareRoot64(uint64,uint64)uint64 -abi_route_squareRoot64: +*abi_route_squareRoot64: // The ABI return prefix byte 0x151f7c75 @@ -1255,7 +1255,7 @@ squareRoot64: retsub // addressToBigInt(address)bool -abi_route_addressToBigInt: +*abi_route_addressToBigInt: // The ABI return prefix byte 0x151f7c75 @@ -1290,7 +1290,7 @@ addressToBigInt: retsub // u8Tou64()uint64 -abi_route_u8Tou64: +*abi_route_u8Tou64: // The ABI return prefix byte 0x151f7c75 @@ -1335,7 +1335,7 @@ privateFuncName: retsub // funcName(uint256)void -abi_route_funcName: +*abi_route_funcName: // x: uint256 txna ApplicationArgs 1 dup @@ -1368,7 +1368,7 @@ funcName: retsub // bigintPlus(uint64,uint64)uint64 -abi_route_bigintPlus: +*abi_route_bigintPlus: // The ABI return prefix byte 0x151f7c75 @@ -1437,7 +1437,7 @@ bigintPlus: retsub // bitwiseOr(uint64,uint64)uint64 -abi_route_bitwiseOr: +*abi_route_bitwiseOr: // The ABI return prefix byte 0x151f7c75 @@ -1469,7 +1469,7 @@ bitwiseOr: retsub // bitwiseAnd(uint64,uint64)uint64 -abi_route_bitwiseAnd: +*abi_route_bitwiseAnd: // The ABI return prefix byte 0x151f7c75 @@ -1501,7 +1501,7 @@ bitwiseAnd: retsub // bitwiseXor(uint64,uint64)uint64 -abi_route_bitwiseXor: +*abi_route_bitwiseXor: // The ABI return prefix byte 0x151f7c75 @@ -1533,7 +1533,7 @@ bitwiseXor: retsub // bitwiseOrU256(uint256,uint256)uint256 -abi_route_bitwiseOrU256: +*abi_route_bitwiseOrU256: // The ABI return prefix byte 0x151f7c75 @@ -1586,7 +1586,7 @@ bitwiseOrU256: retsub // bitwiseAndU256(uint256,uint256)uint256 -abi_route_bitwiseAndU256: +*abi_route_bitwiseAndU256: // The ABI return prefix byte 0x151f7c75 @@ -1639,7 +1639,7 @@ bitwiseAndU256: retsub // bitwiseXorU256(uint256,uint256)uint256 -abi_route_bitwiseXorU256: +*abi_route_bitwiseXorU256: // The ABI return prefix byte 0x151f7c75 @@ -1692,7 +1692,7 @@ bitwiseXorU256: retsub // bitwiseNot(uint64)uint64 -abi_route_bitwiseNot: +*abi_route_bitwiseNot: // The ABI return prefix byte 0x151f7c75 @@ -1719,7 +1719,7 @@ bitwiseNot: retsub // bitwiseNotU256(uint256)uint256 -abi_route_bitwiseNotU256: +*abi_route_bitwiseNotU256: // The ABI return prefix byte 0x151f7c75 @@ -1763,7 +1763,7 @@ bitwiseNotU256: retsub // mulw(uint64,uint64)uint64 -abi_route_mulw: +*abi_route_mulw: // The ABI return prefix byte 0x151f7c75 @@ -1811,7 +1811,7 @@ mulw: retsub // addw(uint64,uint64)uint64 -abi_route_addw: +*abi_route_addw: // The ABI return prefix byte 0x151f7c75 @@ -1859,7 +1859,7 @@ addw: retsub // expw(uint64,uint64)uint64 -abi_route_expw: +*abi_route_expw: // The ABI return prefix byte 0x151f7c75 @@ -1907,7 +1907,7 @@ expw: retsub // divw(uint64,uint64)uint64 -abi_route_divw: +*abi_route_divw: // The ABI return prefix byte 0x151f7c75 @@ -1940,7 +1940,7 @@ divw: retsub // divmodw(uint64,uint64)uint64 -abi_route_divmodw: +*abi_route_divmodw: // The ABI return prefix byte 0x151f7c75 @@ -1991,17 +1991,17 @@ divmodw: popn 7 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "u64plus(uint64,uint64)uint64" method "u64minus(uint64,uint64)uint64" method "u64mul(uint64,uint64)uint64" @@ -2045,5 +2045,5 @@ call_NoOp: method "divw(uint64,uint64)uint64" method "divmodw(uint64,uint64)uint64" txna ApplicationArgs 0 - match abi_route_u64plus abi_route_u64minus abi_route_u64mul abi_route_u64div abi_route_u256plus abi_route_u256minus abi_route_u256mul abi_route_u256div abi_route_u64Return256 abi_route_maxU64 abi_route_exponent abi_route_variableTypeHint abi_route_uint8plus abi_route_uint8exp abi_route_plusEquals abi_route_plusEqualsFromGlobal abi_route_ufixedLiteralMul abi_route_ufixedMul abi_route_BigUfixedMul abi_route_TripleBigUfixedMul abi_route_boxTest abi_route_unsafeMethodArgs abi_route_uint256ComparisonType abi_route_squareRoot256 abi_route_squareRoot64 abi_route_addressToBigInt abi_route_u8Tou64 abi_route_funcName abi_route_bigintPlus abi_route_bitwiseOr abi_route_bitwiseAnd abi_route_bitwiseXor abi_route_bitwiseOrU256 abi_route_bitwiseAndU256 abi_route_bitwiseXorU256 abi_route_bitwiseNot abi_route_bitwiseNotU256 abi_route_mulw abi_route_addw abi_route_expw abi_route_divw abi_route_divmodw + match *abi_route_u64plus *abi_route_u64minus *abi_route_u64mul *abi_route_u64div *abi_route_u256plus *abi_route_u256minus *abi_route_u256mul *abi_route_u256div *abi_route_u64Return256 *abi_route_maxU64 *abi_route_exponent *abi_route_variableTypeHint *abi_route_uint8plus *abi_route_uint8exp *abi_route_plusEquals *abi_route_plusEqualsFromGlobal *abi_route_ufixedLiteralMul *abi_route_ufixedMul *abi_route_BigUfixedMul *abi_route_TripleBigUfixedMul *abi_route_boxTest *abi_route_unsafeMethodArgs *abi_route_uint256ComparisonType *abi_route_squareRoot256 *abi_route_squareRoot64 *abi_route_addressToBigInt *abi_route_u8Tou64 *abi_route_funcName *abi_route_bigintPlus *abi_route_bitwiseOr *abi_route_bitwiseAnd *abi_route_bitwiseXor *abi_route_bitwiseOrU256 *abi_route_bitwiseAndU256 *abi_route_bitwiseXorU256 *abi_route_bitwiseNot *abi_route_bitwiseNotU256 *abi_route_mulw *abi_route_addw *abi_route_expw *abi_route_divw *abi_route_divmodw err \ No newline at end of file diff --git a/tests/contracts/artifacts/MathTest.arc32.json b/tests/contracts/artifacts/MathTest.arc32.json index d07deaca9..e5cd7e45d 100644 --- a/tests/contracts/artifacts/MathTest.arc32.json +++ b/tests/contracts/artifacts/MathTest.arc32.json @@ -249,7 +249,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyB1NjRwbHVzKHVpbnQ2NCx1aW50NjQpdWludDY0CmFiaV9yb3V0ZV91NjRwbHVzOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIHU2NHBsdXModWludDY0LHVpbnQ2NCl1aW50NjQKCWNhbGxzdWIgdTY0cGx1cwoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHU2NHBsdXMoYTogdWludDY0LCBiOiB1aW50NjQpOiB1aW50NjQKdTY0cGx1czoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6OAoJLy8gcmV0dXJuIGEgKyBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJKwoJcmV0c3ViCgovLyB1NjRtaW51cyh1aW50NjQsdWludDY0KXVpbnQ2NAphYmlfcm91dGVfdTY0bWludXM6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgdTY0bWludXModWludDY0LHVpbnQ2NCl1aW50NjQKCWNhbGxzdWIgdTY0bWludXMKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1NjRtaW51cyhhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHVpbnQ2NAp1NjRtaW51czoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTIKCS8vIHJldHVybiBhIC0gYjsKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCS0KCXJldHN1YgoKLy8gdTY0bXVsKHVpbnQ2NCx1aW50NjQpdWludDY0CmFiaV9yb3V0ZV91NjRtdWw6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgdTY0bXVsKHVpbnQ2NCx1aW50NjQpdWludDY0CgljYWxsc3ViIHU2NG11bAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHU2NG11bChhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHVpbnQ2NAp1NjRtdWw6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjE2CgkvLyByZXR1cm4gYSAqIGI7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0CgkqCglyZXRzdWIKCi8vIHU2NGRpdih1aW50NjQsdWludDY0KXVpbnQ2NAphYmlfcm91dGVfdTY0ZGl2OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIHU2NGRpdih1aW50NjQsdWludDY0KXVpbnQ2NAoJY2FsbHN1YiB1NjRkaXYKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1NjRkaXYoYTogdWludDY0LCBiOiB1aW50NjQpOiB1aW50NjQKdTY0ZGl2OgoJcHJvdG8gMiAxCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoyMAoJLy8gcmV0dXJuIGEgLyBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJLwoJcmV0c3ViCgovLyB1MjU2cGx1cyh1aW50MjU2LHVpbnQyNTYpdWludDI1NgphYmlfcm91dGVfdTI1NnBsdXM6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMzIKCT09Cglhc3NlcnQKCgkvLyBhOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSB1MjU2cGx1cyh1aW50MjU2LHVpbnQyNTYpdWludDI1NgoJY2FsbHN1YiB1MjU2cGx1cwoJZHVwCgliaXRsZW4KCWludCAyNTYKCTw9Cglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50IDMyCgktCglzd2FwCglzdWJzdHJpbmczCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdTI1NnBsdXMoYTogdWludDI1NiwgYjogdWludDI1Nik6IHVpbnQyNTYKdTI1NnBsdXM6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjI0CgkvLyByZXR1cm4gPHVpbnQyNTY+KGEgKyBiKTsKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50MjU2CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDI1NgoJYisKCXJldHN1YgoKLy8gdTI1Nm1pbnVzKHVpbnQyNTYsdWludDI1Nil1aW50MjU2CmFiaV9yb3V0ZV91MjU2bWludXM6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMzIKCT09Cglhc3NlcnQKCgkvLyBhOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSB1MjU2bWludXModWludDI1Nix1aW50MjU2KXVpbnQyNTYKCWNhbGxzdWIgdTI1Nm1pbnVzCglkdXAKCWJpdGxlbgoJaW50IDI1NgoJPD0KCWFzc2VydAoJYnl0ZSAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMzIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1MjU2bWludXMoYTogdWludDI1NiwgYjogdWludDI1Nik6IHVpbnQyNTYKdTI1Nm1pbnVzOgoJcHJvdG8gMiAxCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoyOAoJLy8gcmV0dXJuIDx1aW50MjU2PihhIC0gYik7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDI1NgoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQyNTYKCWItCglyZXRzdWIKCi8vIHUyNTZtdWwodWludDI1Nix1aW50MjU2KXVpbnQyNTYKYWJpX3JvdXRlX3UyNTZtdWw6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMzIKCT09Cglhc3NlcnQKCgkvLyBhOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSB1MjU2bXVsKHVpbnQyNTYsdWludDI1Nil1aW50MjU2CgljYWxsc3ViIHUyNTZtdWwKCWR1cAoJYml0bGVuCglpbnQgMjU2Cgk8PQoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAzMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHUyNTZtdWwoYTogdWludDI1NiwgYjogdWludDI1Nik6IHVpbnQyNTYKdTI1Nm11bDoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MzIKCS8vIHJldHVybiA8dWludDI1Nj4oYSAqIGIpOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQyNTYKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50MjU2CgliKgoJcmV0c3ViCgovLyB1MjU2ZGl2KHVpbnQyNTYsdWludDI1Nil1aW50MjU2CmFiaV9yb3V0ZV91MjU2ZGl2OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDMyCgk9PQoJYXNzZXJ0CgoJLy8gYTogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCWFzc2VydAoKCS8vIGV4ZWN1dGUgdTI1NmRpdih1aW50MjU2LHVpbnQyNTYpdWludDI1NgoJY2FsbHN1YiB1MjU2ZGl2CglkdXAKCWJpdGxlbgoJaW50IDI1NgoJPD0KCWFzc2VydAoJYnl0ZSAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMzIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1MjU2ZGl2KGE6IHVpbnQyNTYsIGI6IHVpbnQyNTYpOiB1aW50MjU2CnUyNTZkaXY6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjM2CgkvLyByZXR1cm4gPHVpbnQyNTY+KGEgLyBiKTsKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50MjU2CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDI1NgoJYi8KCXJldHN1YgoKLy8gdTY0UmV0dXJuMjU2KHVpbnQ2NCx1aW50NjQpdWludDI1NgphYmlfcm91dGVfdTY0UmV0dXJuMjU2OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIHU2NFJldHVybjI1Nih1aW50NjQsdWludDY0KXVpbnQyNTYKCWNhbGxzdWIgdTY0UmV0dXJuMjU2CglkdXAKCWJpdGxlbgoJaW50IDI1NgoJPD0KCWFzc2VydAoJYnl0ZSAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMzIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1NjRSZXR1cm4yNTYoYTogdWludDY0LCBiOiB1aW50NjQpOiB1aW50MjU2CnU2NFJldHVybjI1NjoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6NDAKCS8vIHJldHVybiA8dWludDI1Nj4oYSArIGIpOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJKwoJaXRvYgoJcmV0c3ViCgovLyBtYXhVNjQoKXVpbnQ2NAphYmlfcm91dGVfbWF4VTY0OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG1heFU2NCgpdWludDY0CgljYWxsc3ViIG1heFU2NAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIG1heFU2NCgpOiB1aW50NjQKbWF4VTY0OgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czo0NQoJLy8gcmV0dXJuIDE4XzQ0Nl83NDRfMDczXzcwOV81NTFfNjE1OwoJaW50IDE4XzQ0Nl83NDRfMDczXzcwOV81NTFfNjE1CglyZXRzdWIKCi8vIGV4cG9uZW50KHVpbnQ2NCx1aW50NjQpdWludDY0CmFiaV9yb3V0ZV9leHBvbmVudDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBleHBvbmVudCh1aW50NjQsdWludDY0KXVpbnQ2NAoJY2FsbHN1YiBleHBvbmVudAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGV4cG9uZW50KGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0CmV4cG9uZW50OgoJcHJvdG8gMiAxCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czo0OQoJLy8gcmV0dXJuIGEgKiogYjsKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCWV4cAoJcmV0c3ViCgovLyB2YXJpYWJsZVR5cGVIaW50KHVpbnQ4LHVpbnQ4KXVpbnQxNgphYmlfcm91dGVfdmFyaWFibGVUeXBlSGludDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8geTogdWludDgKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMQoJPT0KCWFzc2VydAoJYnRvaQoKCS8vIHg6IHVpbnQ4Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDEKCT09Cglhc3NlcnQKCWJ0b2kKCgkvLyBleGVjdXRlIHZhcmlhYmxlVHlwZUhpbnQodWludDgsdWludDgpdWludDE2CgljYWxsc3ViIHZhcmlhYmxlVHlwZUhpbnQKCWl0b2IKCWR1cAoJYml0bGVuCglpbnQgMTYKCTw9Cglhc3NlcnQKCWV4dHJhY3QgNiAyCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdmFyaWFibGVUeXBlSGludCh4OiB1aW50PDg+LCB5OiB1aW50PDg+KTogdWludDE2CnZhcmlhYmxlVHlwZUhpbnQ6Cglwcm90byAyIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6NTMKCS8vIHogPSA8dWludDE2Pih4ICsgeSkKCWZyYW1lX2RpZyAtMSAvLyB4OiB1aW50PDg+CglmcmFtZV9kaWcgLTIgLy8geTogdWludDw4PgoJKwoJZnJhbWVfYnVyeSAwIC8vIHo6IHVuc2FmZSB1aW50MTYKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjU1CgkvLyByZXR1cm4gejsKCWZyYW1lX2RpZyAwIC8vIHo6IHVuc2FmZSB1aW50MTYKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gdWludDhwbHVzKHVpbnQ4LHVpbnQ4KXVpbnQ4CmFiaV9yb3V0ZV91aW50OHBsdXM6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQ4Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDEKCT09Cglhc3NlcnQKCWJ0b2kKCgkvLyBhOiB1aW50OAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAxCgk9PQoJYXNzZXJ0CglidG9pCgoJLy8gZXhlY3V0ZSB1aW50OHBsdXModWludDgsdWludDgpdWludDgKCWNhbGxzdWIgdWludDhwbHVzCglpdG9iCglkdXAKCWJpdGxlbgoJaW50IDgKCTw9Cglhc3NlcnQKCWV4dHJhY3QgNyAxCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdWludDhwbHVzKGE6IHVpbnQ8OD4sIGI6IHVpbnQ8OD4pOiB1aW50PDg+CnVpbnQ4cGx1czoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6NTkKCS8vIHJldHVybiBhICsgYjsKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50PDg+CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDw4PgoJKwoJcmV0c3ViCgovLyB1aW50OGV4cCh1aW50OCx1aW50OCl1aW50OAphYmlfcm91dGVfdWludDhleHA6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQ4Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDEKCT09Cglhc3NlcnQKCWJ0b2kKCgkvLyBhOiB1aW50OAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAxCgk9PQoJYXNzZXJ0CglidG9pCgoJLy8gZXhlY3V0ZSB1aW50OGV4cCh1aW50OCx1aW50OCl1aW50OAoJY2FsbHN1YiB1aW50OGV4cAoJaXRvYgoJZHVwCgliaXRsZW4KCWludCA4Cgk8PQoJYXNzZXJ0CglleHRyYWN0IDcgMQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHVpbnQ4ZXhwKGE6IHVpbnQ8OD4sIGI6IHVpbnQ8OD4pOiB1aW50PDg+CnVpbnQ4ZXhwOgoJcHJvdG8gMiAxCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czo2MwoJLy8gcmV0dXJuIGEgKiogYjsKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50PDg+CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDw4PgoJZXhwCglyZXRzdWIKCi8vIHBsdXNFcXVhbHModWludDY0LHVpbnQ2NCl1aW50NjQKYWJpX3JvdXRlX3BsdXNFcXVhbHM6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgcGx1c0VxdWFscyh1aW50NjQsdWludDY0KXVpbnQ2NAoJY2FsbHN1YiBwbHVzRXF1YWxzCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gcGx1c0VxdWFscyhhOiBudW1iZXIsIGI6IG51bWJlcik6IG51bWJlcgpwbHVzRXF1YWxzOgoJcHJvdG8gMiAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjY3CgkvLyB4ID0gYQoJZnJhbWVfZGlnIC0xIC8vIGE6IG51bWJlcgoJZnJhbWVfYnVyeSAwIC8vIHg6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6NjkKCS8vIHggKz0gYgoJZnJhbWVfZGlnIDAgLy8geDogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gYjogbnVtYmVyCgkrCglmcmFtZV9idXJ5IDAgLy8geDogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czo3MQoJLy8gcmV0dXJuIHg7CglmcmFtZV9kaWcgMCAvLyB4OiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gcGx1c0VxdWFsc0Zyb21HbG9iYWwodWludDY0LHVpbnQ2NCl1aW50NjQKYWJpX3JvdXRlX3BsdXNFcXVhbHNGcm9tR2xvYmFsOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIHBsdXNFcXVhbHNGcm9tR2xvYmFsKHVpbnQ2NCx1aW50NjQpdWludDY0CgljYWxsc3ViIHBsdXNFcXVhbHNGcm9tR2xvYmFsCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gcGx1c0VxdWFsc0Zyb21HbG9iYWwoYTogbnVtYmVyLCBiOiBudW1iZXIpOiBudW1iZXIKcGx1c0VxdWFsc0Zyb21HbG9iYWw6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjc1CgkvLyB0aGlzLmdLZXkudmFsdWUgPSBhCglieXRlIDB4Njc0YjY1NzkgLy8gImdLZXkiCglmcmFtZV9kaWcgLTEgLy8gYTogbnVtYmVyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6NzcKCS8vIHRoaXMuZ0tleS52YWx1ZSArPSBiCglieXRlIDB4Njc0YjY1NzkgLy8gImdLZXkiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIC0yIC8vIGI6IG51bWJlcgoJKwoJYnl0ZSAweDY3NGI2NTc5IC8vICJnS2V5IgoJc3dhcAoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjc5CgkvLyByZXR1cm4gdGhpcy5nS2V5LnZhbHVlOwoJYnl0ZSAweDY3NGI2NTc5IC8vICJnS2V5IgoJYXBwX2dsb2JhbF9nZXQKCXJldHN1YgoKLy8gdWZpeGVkTGl0ZXJhbE11bCgpdWZpeGVkNjR4MgphYmlfcm91dGVfdWZpeGVkTGl0ZXJhbE11bDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSB1Zml4ZWRMaXRlcmFsTXVsKCl1Zml4ZWQ2NHgyCgljYWxsc3ViIHVmaXhlZExpdGVyYWxNdWwKCWl0b2IKCWV4dHJhY3QgMCA4Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdWZpeGVkTGl0ZXJhbE11bCgpOiB1Zml4ZWQ8NjQsIDI+CnVmaXhlZExpdGVyYWxNdWw6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiAyCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czo4MwoJLy8gYTogdWZpeGVkPDY0LCAyPiA9IDEyLjM0CglpbnQgMTIzNAoJZnJhbWVfYnVyeSAwIC8vIGE6IHVmaXhlZDw2NCwgMj4KCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjg0CgkvLyBiOiB1Zml4ZWQ8NjQsIDI+ID0gMTIuMzQKCWludCAxMjM0CglmcmFtZV9idXJ5IDEgLy8gYjogdWZpeGVkPDY0LCAyPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6ODUKCS8vIGMgPSBhICogYgoJZnJhbWVfZGlnIDAgLy8gYTogdWZpeGVkPDY0LCAyPgoJaW50IDEyMzQgLy8gYjogdWZpeGVkPDY0LCAyPgoJKgoJaW50IDEwMAoJLwoJZnJhbWVfYnVyeSAyIC8vIGM6IHVmaXhlZDY0eDIKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjg3CgkvLyByZXR1cm4gYzsKCWZyYW1lX2RpZyAyIC8vIGM6IHVmaXhlZDY0eDIKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAyCglyZXRzdWIKCi8vIHVmaXhlZE11bCh1Zml4ZWQ2NHgyLHVmaXhlZDY0eDIpdWZpeGVkNjR4MgphYmlfcm91dGVfdWZpeGVkTXVsOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1Zml4ZWQ2NHgyCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDgKCT09Cglhc3NlcnQKCWJ0b2kKCgkvLyBhOiB1Zml4ZWQ2NHgyCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDgKCT09Cglhc3NlcnQKCWJ0b2kKCgkvLyBleGVjdXRlIHVmaXhlZE11bCh1Zml4ZWQ2NHgyLHVmaXhlZDY0eDIpdWZpeGVkNjR4MgoJY2FsbHN1YiB1Zml4ZWRNdWwKCWl0b2IKCWV4dHJhY3QgMCA4Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdWZpeGVkTXVsKGE6IHVmaXhlZDw2NCwgMj4sIGI6IHVmaXhlZDw2NCwgMj4pOiB1Zml4ZWQ8NjQsIDI+CnVmaXhlZE11bDoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6OTEKCS8vIHJldHVybiBhICogYjsKCWZyYW1lX2RpZyAtMSAvLyBhOiB1Zml4ZWQ8NjQsIDI+CglmcmFtZV9kaWcgLTIgLy8gYjogdWZpeGVkPDY0LCAyPgoJKgoJaW50IDEwMAoJLwoJcmV0c3ViCgovLyBCaWdVZml4ZWRNdWwodWZpeGVkMTI4eDIsdWZpeGVkMTI4eDIpdWZpeGVkMTI4eDIKYWJpX3JvdXRlX0JpZ1VmaXhlZE11bDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWZpeGVkMTI4eDIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMTYKCT09Cglhc3NlcnQKCgkvLyBhOiB1Zml4ZWQxMjh4MgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAxNgoJPT0KCWFzc2VydAoKCS8vIGV4ZWN1dGUgQmlnVWZpeGVkTXVsKHVmaXhlZDEyOHgyLHVmaXhlZDEyOHgyKXVmaXhlZDEyOHgyCgljYWxsc3ViIEJpZ1VmaXhlZE11bAoJZHVwCgliaXRsZW4KCWludCAxMjgKCTw9Cglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAxNgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIEJpZ1VmaXhlZE11bChhOiB1Zml4ZWQ8MTI4LCAyPiwgYjogdWZpeGVkPDEyOCwgMj4pOiB1Zml4ZWQ8MTI4LCAyPgpCaWdVZml4ZWRNdWw6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjk1CgkvLyByZXR1cm4gYSAqIGI7CglmcmFtZV9kaWcgLTEgLy8gYTogdWZpeGVkPDEyOCwgMj4KCWZyYW1lX2RpZyAtMiAvLyBiOiB1Zml4ZWQ8MTI4LCAyPgoJYioKCWJ5dGUgMHg2NAoJYi8KCXJldHN1YgoKLy8gVHJpcGxlQmlnVWZpeGVkTXVsKHVmaXhlZDEyOHgyLHVmaXhlZDEyOHgyLHVmaXhlZDEyOHgyKXVmaXhlZDEyOHgyCmFiaV9yb3V0ZV9UcmlwbGVCaWdVZml4ZWRNdWw6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGM6IHVmaXhlZDEyOHgyCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglkdXAKCWxlbgoJaW50IDE2Cgk9PQoJYXNzZXJ0CgoJLy8gYjogdWZpeGVkMTI4eDIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMTYKCT09Cglhc3NlcnQKCgkvLyBhOiB1Zml4ZWQxMjh4MgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAxNgoJPT0KCWFzc2VydAoKCS8vIGV4ZWN1dGUgVHJpcGxlQmlnVWZpeGVkTXVsKHVmaXhlZDEyOHgyLHVmaXhlZDEyOHgyLHVmaXhlZDEyOHgyKXVmaXhlZDEyOHgyCgljYWxsc3ViIFRyaXBsZUJpZ1VmaXhlZE11bAoJZHVwCgliaXRsZW4KCWludCAxMjgKCTw9Cglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAxNgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIFRyaXBsZUJpZ1VmaXhlZE11bChhOiB1Zml4ZWQ8MTI4LCAyPiwgYjogdWZpeGVkPDEyOCwgMj4sIGM6IHVmaXhlZDwxMjgsIDI+KTogdWZpeGVkPDEyOCwgMj4KVHJpcGxlQmlnVWZpeGVkTXVsOgoJcHJvdG8gMyAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6OTkKCS8vIGFiID0gYSAqIGIKCWZyYW1lX2RpZyAtMSAvLyBhOiB1Zml4ZWQ8MTI4LCAyPgoJZnJhbWVfZGlnIC0yIC8vIGI6IHVmaXhlZDwxMjgsIDI+CgliKgoJYnl0ZSAweDY0CgliLwoJZnJhbWVfYnVyeSAwIC8vIGFiOiB1bnNhZmUgdWZpeGVkMTI4eDIKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjEwMAoJLy8gYWJjID0gYWIgKiBjCglmcmFtZV9kaWcgMCAvLyBhYjogdW5zYWZlIHVmaXhlZDEyOHgyCglmcmFtZV9kaWcgLTMgLy8gYzogdWZpeGVkPDEyOCwgMj4KCWIqCglieXRlIDB4NjQKCWIvCglmcmFtZV9idXJ5IDEgLy8gYWJjOiB1bnNhZmUgdWZpeGVkMTI4eDIKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjEwMQoJLy8gcmV0dXJuIGFiYzsKCWZyYW1lX2RpZyAxIC8vIGFiYzogdW5zYWZlIHVmaXhlZDEyOHgyCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMQoJcmV0c3ViCgovLyBib3hUZXN0KCl1aW50MjU2CmFiaV9yb3V0ZV9ib3hUZXN0OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGJveFRlc3QoKXVpbnQyNTYKCWNhbGxzdWIgYm94VGVzdAoJZHVwCgliaXRsZW4KCWludCAyNTYKCTw9Cglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50IDMyCgktCglzd2FwCglzdWJzdHJpbmczCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYm94VGVzdCgpOiB1aW50MjU2CmJveFRlc3Q6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjEwNwoJLy8gdGhpcy5ib3hLZXkudmFsdWUgPSA8dWludDI1Nj4xCglieXRlIDB4NjI2Zjc4NGI2NTc5IC8vICJib3hLZXkiCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMQoJYm94X3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTA4CgkvLyB0aGlzLmJveEtleS52YWx1ZSArPSAxCglieXRlIDB4NjI2Zjc4NGI2NTc5IC8vICJib3hLZXkiCglib3hfZ2V0Cglhc3NlcnQKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxCgliKwoJYnl0ZSAweDYyNmY3ODRiNjU3OSAvLyAiYm94S2V5IgoJZHVwCgliaXRsZW4KCWludCAyNTYKCTw9Cglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50IDMyCgktCglzd2FwCglzdWJzdHJpbmczCglzd2FwCglib3hfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoxMTAKCS8vIHJldHVybiB0aGlzLmJveEtleS52YWx1ZTsKCWJ5dGUgMHg2MjZmNzg0YjY1NzkgLy8gImJveEtleSIKCWJveF9nZXQKCWFzc2VydAoJcmV0c3ViCgovLyBmb28oeDogdWludDI1Nik6IHVpbnQyNTYKZm9vOgoJcHJvdG8gMSAxCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoxMTQKCS8vIHJldHVybiB4OwoJZnJhbWVfZGlnIC0xIC8vIHg6IHVpbnQyNTYKCXJldHN1YgoKLy8gdW5zYWZlTWV0aG9kQXJncyh1aW50MjU2LHVpbnQyNTYpdWludDI1NgphYmlfcm91dGVfdW5zYWZlTWV0aG9kQXJnczoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAzMgoJPT0KCWFzc2VydAoKCS8vIGE6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09Cglhc3NlcnQKCgkvLyBleGVjdXRlIHVuc2FmZU1ldGhvZEFyZ3ModWludDI1Nix1aW50MjU2KXVpbnQyNTYKCWNhbGxzdWIgdW5zYWZlTWV0aG9kQXJncwoJZHVwCgliaXRsZW4KCWludCAyNTYKCTw9Cglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50IDMyCgktCglzd2FwCglzdWJzdHJpbmczCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdW5zYWZlTWV0aG9kQXJncyhhOiB1aW50MjU2LCBiOiB1aW50MjU2KTogdWludDI1Ngp1bnNhZmVNZXRob2RBcmdzOgoJcHJvdG8gMiAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjExOAoJLy8gYyA9IGEgKyBiCglmcmFtZV9kaWcgLTEgLy8gYTogdWludDI1NgoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQyNTYKCWIrCglmcmFtZV9idXJ5IDAgLy8gYzogdW5zYWZlIHVpbnQyNTYKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjEyMAoJLy8gcmV0dXJuIHRoaXMuZm9vKGMpOwoJZnJhbWVfZGlnIDAgLy8gYzogdW5zYWZlIHVpbnQyNTYKCWR1cAoJYml0bGVuCglpbnQgMjU2Cgk8PQoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAzMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY2FsbHN1YiBmb28KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gdWludDI1NkNvbXBhcmlzb25UeXBlKHVpbnQyNTYsdWludDI1Nil2b2lkCmFiaV9yb3V0ZV91aW50MjU2Q29tcGFyaXNvblR5cGU6CgkvLyBiOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDMyCgk9PQoJYXNzZXJ0CgoJLy8gYTogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCWFzc2VydAoKCS8vIGV4ZWN1dGUgdWludDI1NkNvbXBhcmlzb25UeXBlKHVpbnQyNTYsdWludDI1Nil2b2lkCgljYWxsc3ViIHVpbnQyNTZDb21wYXJpc29uVHlwZQoJaW50IDEKCXJldHVybgoKLy8gdWludDI1NkNvbXBhcmlzb25UeXBlKGE6IHVpbnQyNTYsIGI6IHVpbnQyNTYpOiB2b2lkCnVpbnQyNTZDb21wYXJpc29uVHlwZToKCXByb3RvIDIgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoxMjQKCS8vIHNlbmRlckJhbGFuY2VBZnRlciA9IGEgLSBiCglmcmFtZV9kaWcgLTEgLy8gYTogdWludDI1NgoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQyNTYKCWItCglmcmFtZV9idXJ5IDAgLy8gc2VuZGVyQmFsYW5jZUFmdGVyOiB1bnNhZmUgdWludDI1NgoKCS8vIGlmMF9jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTI1CgkvLyBzZW5kZXJCYWxhbmNlQWZ0ZXIgPiA8dWludDI1Nj4wCglmcmFtZV9kaWcgMCAvLyBzZW5kZXJCYWxhbmNlQWZ0ZXI6IHVuc2FmZSB1aW50MjU2CglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoJYj4KCWJ6IGlmMF9lbHNlCgoJLy8gaWYwX2NvbnNlcXVlbnQKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTI2CgkvLyBsb2coJ25vblplcm8nKQoJYnl0ZSAweDZlNmY2ZTVhNjU3MjZmIC8vICJub25aZXJvIgoJbG9nCgliIGlmMF9lbmQKCmlmMF9lbHNlOgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoxMjgKCS8vIGxvZygnemVybycpCglieXRlIDB4N2E2NTcyNmYgLy8gInplcm8iCglsb2cKCmlmMF9lbmQ6CglyZXRzdWIKCi8vIHNxdWFyZVJvb3QyNTYodWludDI1Nix1aW50MjU2KXVpbnQyNTYKYWJpX3JvdXRlX3NxdWFyZVJvb3QyNTY6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMzIKCT09Cglhc3NlcnQKCgkvLyBhOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBzcXVhcmVSb290MjU2KHVpbnQyNTYsdWludDI1Nil1aW50MjU2CgljYWxsc3ViIHNxdWFyZVJvb3QyNTYKCWR1cAoJYml0bGVuCglpbnQgMjU2Cgk8PQoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAzMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHNxdWFyZVJvb3QyNTYoYTogdWludDI1NiwgYjogdWludDI1Nik6IHVpbnQyNTYKc3F1YXJlUm9vdDI1NjoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTMzCgkvLyByZXR1cm4gc3FydChhICogYik7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDI1NgoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQyNTYKCWIqCglic3FydAoJcmV0c3ViCgovLyBzcXVhcmVSb290NjQodWludDY0LHVpbnQ2NCl1aW50NjQKYWJpX3JvdXRlX3NxdWFyZVJvb3Q2NDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBzcXVhcmVSb290NjQodWludDY0LHVpbnQ2NCl1aW50NjQKCWNhbGxzdWIgc3F1YXJlUm9vdDY0CglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gc3F1YXJlUm9vdDY0KGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0CnNxdWFyZVJvb3Q2NDoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTM3CgkvLyByZXR1cm4gc3FydChhICogYik7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0CgkqCglzcXJ0CglyZXRzdWIKCi8vIGFkZHJlc3NUb0JpZ0ludChhZGRyZXNzKWJvb2wKYWJpX3JvdXRlX2FkZHJlc3NUb0JpZ0ludDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYWRkcjogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCWFzc2VydAoKCS8vIGV4ZWN1dGUgYWRkcmVzc1RvQmlnSW50KGFkZHJlc3MpYm9vbAoJY2FsbHN1YiBhZGRyZXNzVG9CaWdJbnQKCWJ5dGUgMHgwMAoJaW50IDAKCXVuY292ZXIgMgoJc2V0Yml0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYWRkcmVzc1RvQmlnSW50KGFkZHI6IEFkZHJlc3MpOiBib29sZWFuCmFkZHJlc3NUb0JpZ0ludDoKCXByb3RvIDEgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTQxCgkvLyByZXR1cm4gYnRvYmlnaW50KGFkZHIpID4gYnRvYmlnaW50KHRoaXMudHhuLnNlbmRlcik7CglmcmFtZV9kaWcgLTEgLy8gYWRkcjogQWRkcmVzcwoJdHhuIFNlbmRlcgoJYj4KCXJldHN1YgoKLy8gdThUb3U2NCgpdWludDY0CmFiaV9yb3V0ZV91OFRvdTY0OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHU4VG91NjQoKXVpbnQ2NAoJY2FsbHN1YiB1OFRvdTY0CglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdThUb3U2NCgpOiB1aW50NjQKdThUb3U2NDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoxNDUKCS8vIHg6IHVpbnQ4ID0gNwoJaW50IDcKCWZyYW1lX2J1cnkgMCAvLyB4OiB1aW50OAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTQ2CgkvLyByZXR1cm4gPHVpbnQ2ND54OwoJZnJhbWVfZGlnIDAgLy8geDogdWludDgKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gcHJpdmF0ZUZ1bmNOYW1lKHg6IHVpbnQ4LCB5OiB1aW50NjQpOiB2b2lkCnByaXZhdGVGdW5jTmFtZToKCXByb3RvIDIgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTUwCgkvLyBhc3NlcnQoPHVpbnQ4PnkgPiB4KQoJZnJhbWVfZGlnIC0yIC8vIHk6IHVpbnQ2NAoJZnJhbWVfZGlnIC0xIC8vIHg6IHVpbnQ4Cgk+Cglhc3NlcnQKCXJldHN1YgoKLy8gZnVuY05hbWUodWludDI1Nil2b2lkCmFiaV9yb3V0ZV9mdW5jTmFtZToKCS8vIHg6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09Cglhc3NlcnQKCgkvLyBleGVjdXRlIGZ1bmNOYW1lKHVpbnQyNTYpdm9pZAoJY2FsbHN1YiBmdW5jTmFtZQoJaW50IDEKCXJldHVybgoKLy8gZnVuY05hbWUoeDogdWludDI1Nik6IHZvaWQKZnVuY05hbWU6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjE1NAoJLy8gdGhpcy5wcml2YXRlRnVuY05hbWUoPHVpbnQ4PngsIDEzMzcpCglpbnQgMTMzNwoJZnJhbWVfZGlnIC0xIC8vIHg6IHVpbnQyNTYKCWR1cAoJYml0bGVuCglpbnQgOAoJPD0KCWFzc2VydAoJZXh0cmFjdCAzMSAxCglidG9pCgljYWxsc3ViIHByaXZhdGVGdW5jTmFtZQoJcmV0c3ViCgovLyBiaWdpbnRQbHVzKHVpbnQ2NCx1aW50NjQpdWludDY0CmFiaV9yb3V0ZV9iaWdpbnRQbHVzOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGJpZ2ludFBsdXModWludDY0LHVpbnQ2NCl1aW50NjQKCWNhbGxzdWIgYmlnaW50UGx1cwoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJpZ2ludFBsdXMoYTogdWludDY0LCBiOiB1aW50NjQpOiB1aW50NjQKYmlnaW50UGx1czoKCXByb3RvIDIgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjE1OAoJLy8geCA9IGl0b2IoYSkKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWl0b2IKCWZyYW1lX2J1cnkgMCAvLyB4OiBieXRlW10KCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjE1OQoJLy8geSA9IGl0b2IoYikKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCWl0b2IKCWZyYW1lX2J1cnkgMSAvLyB5OiBieXRlW10KCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjE2MAoJLy8gcmV0dXJuIChidG9iaWdpbnQoeCkgKyBidG9iaWdpbnQoeSkpIGFzIHVpbnQ2NDsKCWZyYW1lX2RpZyAwIC8vIHg6IGJ5dGVbXQoJZnJhbWVfZGlnIDEgLy8geTogYnl0ZVtdCgliKwoJZHVwCgliaXRsZW4KCWludCA2NAoJPD0KCWFzc2VydAoJYnl0ZSAweEZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgOAoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJYnRvaQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKLy8gYml0d2lzZU9yKHVpbnQ2NCx1aW50NjQpdWludDY0CmFiaV9yb3V0ZV9iaXR3aXNlT3I6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgYml0d2lzZU9yKHVpbnQ2NCx1aW50NjQpdWludDY0CgljYWxsc3ViIGJpdHdpc2VPcgoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJpdHdpc2VPcihhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHVpbnQ2NApiaXR3aXNlT3I6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjE2NAoJLy8gcmV0dXJuIGEgfCBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJfAoJcmV0c3ViCgovLyBiaXR3aXNlQW5kKHVpbnQ2NCx1aW50NjQpdWludDY0CmFiaV9yb3V0ZV9iaXR3aXNlQW5kOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGJpdHdpc2VBbmQodWludDY0LHVpbnQ2NCl1aW50NjQKCWNhbGxzdWIgYml0d2lzZUFuZAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJpdHdpc2VBbmQoYTogdWludDY0LCBiOiB1aW50NjQpOiB1aW50NjQKYml0d2lzZUFuZDoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTY4CgkvLyByZXR1cm4gYSAmIGI7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0CgkmCglyZXRzdWIKCi8vIGJpdHdpc2VYb3IodWludDY0LHVpbnQ2NCl1aW50NjQKYWJpX3JvdXRlX2JpdHdpc2VYb3I6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgYml0d2lzZVhvcih1aW50NjQsdWludDY0KXVpbnQ2NAoJY2FsbHN1YiBiaXR3aXNlWG9yCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYml0d2lzZVhvcihhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHVpbnQ2NApiaXR3aXNlWG9yOgoJcHJvdG8gMiAxCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoxNzIKCS8vIHJldHVybiBhIF4gYjsKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCV4KCXJldHN1YgoKLy8gYml0d2lzZU9yVTI1Nih1aW50MjU2LHVpbnQyNTYpdWludDI1NgphYmlfcm91dGVfYml0d2lzZU9yVTI1NjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAzMgoJPT0KCWFzc2VydAoKCS8vIGE6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09Cglhc3NlcnQKCgkvLyBleGVjdXRlIGJpdHdpc2VPclUyNTYodWludDI1Nix1aW50MjU2KXVpbnQyNTYKCWNhbGxzdWIgYml0d2lzZU9yVTI1NgoJZHVwCgliaXRsZW4KCWludCAyNTYKCTw9Cglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50IDMyCgktCglzd2FwCglzdWJzdHJpbmczCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYml0d2lzZU9yVTI1NihhOiB1aW50MjU2LCBiOiB1aW50MjU2KTogdWludDI1NgpiaXR3aXNlT3JVMjU2OgoJcHJvdG8gMiAxCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoxNzYKCS8vIHJldHVybiBhIHwgYjsKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50MjU2CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDI1NgoJYnwKCXJldHN1YgoKLy8gYml0d2lzZUFuZFUyNTYodWludDI1Nix1aW50MjU2KXVpbnQyNTYKYWJpX3JvdXRlX2JpdHdpc2VBbmRVMjU2OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDMyCgk9PQoJYXNzZXJ0CgoJLy8gYTogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCWFzc2VydAoKCS8vIGV4ZWN1dGUgYml0d2lzZUFuZFUyNTYodWludDI1Nix1aW50MjU2KXVpbnQyNTYKCWNhbGxzdWIgYml0d2lzZUFuZFUyNTYKCWR1cAoJYml0bGVuCglpbnQgMjU2Cgk8PQoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAzMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJpdHdpc2VBbmRVMjU2KGE6IHVpbnQyNTYsIGI6IHVpbnQyNTYpOiB1aW50MjU2CmJpdHdpc2VBbmRVMjU2OgoJcHJvdG8gMiAxCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoxODAKCS8vIHJldHVybiBhICYgYjsKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50MjU2CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDI1NgoJYiYKCXJldHN1YgoKLy8gYml0d2lzZVhvclUyNTYodWludDI1Nix1aW50MjU2KXVpbnQyNTYKYWJpX3JvdXRlX2JpdHdpc2VYb3JVMjU2OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDMyCgk9PQoJYXNzZXJ0CgoJLy8gYTogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCWFzc2VydAoKCS8vIGV4ZWN1dGUgYml0d2lzZVhvclUyNTYodWludDI1Nix1aW50MjU2KXVpbnQyNTYKCWNhbGxzdWIgYml0d2lzZVhvclUyNTYKCWR1cAoJYml0bGVuCglpbnQgMjU2Cgk8PQoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAzMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJpdHdpc2VYb3JVMjU2KGE6IHVpbnQyNTYsIGI6IHVpbnQyNTYpOiB1aW50MjU2CmJpdHdpc2VYb3JVMjU2OgoJcHJvdG8gMiAxCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoxODQKCS8vIHJldHVybiBhIF4gYjsKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50MjU2CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDI1NgoJYl4KCXJldHN1YgoKLy8gYml0d2lzZU5vdCh1aW50NjQpdWludDY0CmFiaV9yb3V0ZV9iaXR3aXNlTm90OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGJpdHdpc2VOb3QodWludDY0KXVpbnQ2NAoJY2FsbHN1YiBiaXR3aXNlTm90CglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYml0d2lzZU5vdChhOiB1aW50NjQpOiB1aW50NjQKYml0d2lzZU5vdDoKCXByb3RvIDEgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTg4CgkvLyByZXR1cm4gfmE7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0Cgl+CglyZXRzdWIKCi8vIGJpdHdpc2VOb3RVMjU2KHVpbnQyNTYpdWludDI1NgphYmlfcm91dGVfYml0d2lzZU5vdFUyNTY6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGE6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09Cglhc3NlcnQKCgkvLyBleGVjdXRlIGJpdHdpc2VOb3RVMjU2KHVpbnQyNTYpdWludDI1NgoJY2FsbHN1YiBiaXR3aXNlTm90VTI1NgoJZHVwCgliaXRsZW4KCWludCAyNTYKCTw9Cglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50IDMyCgktCglzd2FwCglzdWJzdHJpbmczCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYml0d2lzZU5vdFUyNTYoYTogdWludDI1Nik6IHVpbnQyNTYKYml0d2lzZU5vdFUyNTY6Cglwcm90byAxIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjE5MgoJLy8gcmV0dXJuIH5hOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQyNTYKCWJ+CglyZXRzdWIKCi8vIG11bHcodWludDY0LHVpbnQ2NCl1aW50NjQKYWJpX3JvdXRlX211bHc6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgbXVsdyh1aW50NjQsdWludDY0KXVpbnQ2NAoJY2FsbHN1YiBtdWx3CglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gbXVsdyhhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHVpbnQ2NAptdWx3OgoJcHJvdG8gMiAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gMwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTk2CgkvLyBwID0gbXVsdyhhLCBiKQoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJbXVsdwoJZnJhbWVfYnVyeSAyIC8vIHAgbG93OiB1aW50NjQKCWZyYW1lX2J1cnkgMyAvLyBwIGhpZ2g6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MjAwCgkvLyByZXR1cm4gcDIubG93OwoJZnJhbWVfZGlnIDIgLy8gcCBsb3c6IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDMKCXJldHN1YgoKLy8gYWRkdyh1aW50NjQsdWludDY0KXVpbnQ2NAphYmlfcm91dGVfYWRkdzoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBhZGR3KHVpbnQ2NCx1aW50NjQpdWludDY0CgljYWxsc3ViIGFkZHcKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBhZGR3KGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0CmFkZHc6Cglwcm90byAyIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiAzCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoyMDQKCS8vIHAgPSBhZGR3KGEsIGIpCglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0CglhZGR3CglmcmFtZV9idXJ5IDIgLy8gcCBsb3c6IHVpbnQ2NAoJZnJhbWVfYnVyeSAzIC8vIHAgaGlnaDogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoyMDgKCS8vIHJldHVybiBwMi5sb3c7CglmcmFtZV9kaWcgMiAvLyBwIGxvdzogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMwoJcmV0c3ViCgovLyBleHB3KHVpbnQ2NCx1aW50NjQpdWludDY0CmFiaV9yb3V0ZV9leHB3OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGV4cHcodWludDY0LHVpbnQ2NCl1aW50NjQKCWNhbGxzdWIgZXhwdwoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGV4cHcoYTogdWludDY0LCBiOiB1aW50NjQpOiB1aW50NjQKZXhwdzoKCXByb3RvIDIgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDMKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjIxMgoJLy8gcCA9IGV4cHcoYSwgYikKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCWV4cHcKCWZyYW1lX2J1cnkgMiAvLyBwIGxvdzogdWludDY0CglmcmFtZV9idXJ5IDMgLy8gcCBoaWdoOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjIxNgoJLy8gcmV0dXJuIHAyLmxvdzsKCWZyYW1lX2RpZyAyIC8vIHAgbG93OiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAzCglyZXRzdWIKCi8vIGRpdncodWludDY0LHVpbnQ2NCl1aW50NjQKYWJpX3JvdXRlX2Rpdnc6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZGl2dyh1aW50NjQsdWludDY0KXVpbnQ2NAoJY2FsbHN1YiBkaXZ3CglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZGl2dyhhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHVpbnQ2NApkaXZ3OgoJcHJvdG8gMiAxCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoyMjAKCS8vIHJldHVybiBkaXZ3KDAsIGEsIGIpOwoJaW50IDAKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCWRpdncKCXJldHN1YgoKLy8gZGl2bW9kdyh1aW50NjQsdWludDY0KXVpbnQ2NAphYmlfcm91dGVfZGl2bW9kdzoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBkaXZtb2R3KHVpbnQ2NCx1aW50NjQpdWludDY0CgljYWxsc3ViIGRpdm1vZHcKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBkaXZtb2R3KGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0CmRpdm1vZHc6Cglwcm90byAyIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiA3CgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoyMjQKCS8vIHAgPSBkaXZtb2R3KDAsIGEsIDAsIGIpCglpbnQgMAoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJaW50IDAKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCWRpdm1vZHcKCWZyYW1lX2J1cnkgNCAvLyBwIHJlbWFpbmRlckxvdzogdWludDY0CglmcmFtZV9idXJ5IDUgLy8gcCByZW1haW5kZXJIaWdoOiB1aW50NjQKCWZyYW1lX2J1cnkgNiAvLyBwIHF1b3RpZW50TG93OiB1aW50NjQKCWZyYW1lX2J1cnkgNyAvLyBwIHF1b3RpZW50SGlnaDogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoyMjgKCS8vIHJldHVybiBwMi5xdW90aWVudExvdzsKCWZyYW1lX2RpZyA2IC8vIHAgcXVvdGllbnRMb3c6IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDcKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAidTY0cGx1cyh1aW50NjQsdWludDY0KXVpbnQ2NCIKCW1ldGhvZCAidTY0bWludXModWludDY0LHVpbnQ2NCl1aW50NjQiCgltZXRob2QgInU2NG11bCh1aW50NjQsdWludDY0KXVpbnQ2NCIKCW1ldGhvZCAidTY0ZGl2KHVpbnQ2NCx1aW50NjQpdWludDY0IgoJbWV0aG9kICJ1MjU2cGx1cyh1aW50MjU2LHVpbnQyNTYpdWludDI1NiIKCW1ldGhvZCAidTI1Nm1pbnVzKHVpbnQyNTYsdWludDI1Nil1aW50MjU2IgoJbWV0aG9kICJ1MjU2bXVsKHVpbnQyNTYsdWludDI1Nil1aW50MjU2IgoJbWV0aG9kICJ1MjU2ZGl2KHVpbnQyNTYsdWludDI1Nil1aW50MjU2IgoJbWV0aG9kICJ1NjRSZXR1cm4yNTYodWludDY0LHVpbnQ2NCl1aW50MjU2IgoJbWV0aG9kICJtYXhVNjQoKXVpbnQ2NCIKCW1ldGhvZCAiZXhwb25lbnQodWludDY0LHVpbnQ2NCl1aW50NjQiCgltZXRob2QgInZhcmlhYmxlVHlwZUhpbnQodWludDgsdWludDgpdWludDE2IgoJbWV0aG9kICJ1aW50OHBsdXModWludDgsdWludDgpdWludDgiCgltZXRob2QgInVpbnQ4ZXhwKHVpbnQ4LHVpbnQ4KXVpbnQ4IgoJbWV0aG9kICJwbHVzRXF1YWxzKHVpbnQ2NCx1aW50NjQpdWludDY0IgoJbWV0aG9kICJwbHVzRXF1YWxzRnJvbUdsb2JhbCh1aW50NjQsdWludDY0KXVpbnQ2NCIKCW1ldGhvZCAidWZpeGVkTGl0ZXJhbE11bCgpdWZpeGVkNjR4MiIKCW1ldGhvZCAidWZpeGVkTXVsKHVmaXhlZDY0eDIsdWZpeGVkNjR4Mil1Zml4ZWQ2NHgyIgoJbWV0aG9kICJCaWdVZml4ZWRNdWwodWZpeGVkMTI4eDIsdWZpeGVkMTI4eDIpdWZpeGVkMTI4eDIiCgltZXRob2QgIlRyaXBsZUJpZ1VmaXhlZE11bCh1Zml4ZWQxMjh4Mix1Zml4ZWQxMjh4Mix1Zml4ZWQxMjh4Mil1Zml4ZWQxMjh4MiIKCW1ldGhvZCAiYm94VGVzdCgpdWludDI1NiIKCW1ldGhvZCAidW5zYWZlTWV0aG9kQXJncyh1aW50MjU2LHVpbnQyNTYpdWludDI1NiIKCW1ldGhvZCAidWludDI1NkNvbXBhcmlzb25UeXBlKHVpbnQyNTYsdWludDI1Nil2b2lkIgoJbWV0aG9kICJzcXVhcmVSb290MjU2KHVpbnQyNTYsdWludDI1Nil1aW50MjU2IgoJbWV0aG9kICJzcXVhcmVSb290NjQodWludDY0LHVpbnQ2NCl1aW50NjQiCgltZXRob2QgImFkZHJlc3NUb0JpZ0ludChhZGRyZXNzKWJvb2wiCgltZXRob2QgInU4VG91NjQoKXVpbnQ2NCIKCW1ldGhvZCAiZnVuY05hbWUodWludDI1Nil2b2lkIgoJbWV0aG9kICJiaWdpbnRQbHVzKHVpbnQ2NCx1aW50NjQpdWludDY0IgoJbWV0aG9kICJiaXR3aXNlT3IodWludDY0LHVpbnQ2NCl1aW50NjQiCgltZXRob2QgImJpdHdpc2VBbmQodWludDY0LHVpbnQ2NCl1aW50NjQiCgltZXRob2QgImJpdHdpc2VYb3IodWludDY0LHVpbnQ2NCl1aW50NjQiCgltZXRob2QgImJpdHdpc2VPclUyNTYodWludDI1Nix1aW50MjU2KXVpbnQyNTYiCgltZXRob2QgImJpdHdpc2VBbmRVMjU2KHVpbnQyNTYsdWludDI1Nil1aW50MjU2IgoJbWV0aG9kICJiaXR3aXNlWG9yVTI1Nih1aW50MjU2LHVpbnQyNTYpdWludDI1NiIKCW1ldGhvZCAiYml0d2lzZU5vdCh1aW50NjQpdWludDY0IgoJbWV0aG9kICJiaXR3aXNlTm90VTI1Nih1aW50MjU2KXVpbnQyNTYiCgltZXRob2QgIm11bHcodWludDY0LHVpbnQ2NCl1aW50NjQiCgltZXRob2QgImFkZHcodWludDY0LHVpbnQ2NCl1aW50NjQiCgltZXRob2QgImV4cHcodWludDY0LHVpbnQ2NCl1aW50NjQiCgltZXRob2QgImRpdncodWludDY0LHVpbnQ2NCl1aW50NjQiCgltZXRob2QgImRpdm1vZHcodWludDY0LHVpbnQ2NCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfdTY0cGx1cyBhYmlfcm91dGVfdTY0bWludXMgYWJpX3JvdXRlX3U2NG11bCBhYmlfcm91dGVfdTY0ZGl2IGFiaV9yb3V0ZV91MjU2cGx1cyBhYmlfcm91dGVfdTI1Nm1pbnVzIGFiaV9yb3V0ZV91MjU2bXVsIGFiaV9yb3V0ZV91MjU2ZGl2IGFiaV9yb3V0ZV91NjRSZXR1cm4yNTYgYWJpX3JvdXRlX21heFU2NCBhYmlfcm91dGVfZXhwb25lbnQgYWJpX3JvdXRlX3ZhcmlhYmxlVHlwZUhpbnQgYWJpX3JvdXRlX3VpbnQ4cGx1cyBhYmlfcm91dGVfdWludDhleHAgYWJpX3JvdXRlX3BsdXNFcXVhbHMgYWJpX3JvdXRlX3BsdXNFcXVhbHNGcm9tR2xvYmFsIGFiaV9yb3V0ZV91Zml4ZWRMaXRlcmFsTXVsIGFiaV9yb3V0ZV91Zml4ZWRNdWwgYWJpX3JvdXRlX0JpZ1VmaXhlZE11bCBhYmlfcm91dGVfVHJpcGxlQmlnVWZpeGVkTXVsIGFiaV9yb3V0ZV9ib3hUZXN0IGFiaV9yb3V0ZV91bnNhZmVNZXRob2RBcmdzIGFiaV9yb3V0ZV91aW50MjU2Q29tcGFyaXNvblR5cGUgYWJpX3JvdXRlX3NxdWFyZVJvb3QyNTYgYWJpX3JvdXRlX3NxdWFyZVJvb3Q2NCBhYmlfcm91dGVfYWRkcmVzc1RvQmlnSW50IGFiaV9yb3V0ZV91OFRvdTY0IGFiaV9yb3V0ZV9mdW5jTmFtZSBhYmlfcm91dGVfYmlnaW50UGx1cyBhYmlfcm91dGVfYml0d2lzZU9yIGFiaV9yb3V0ZV9iaXR3aXNlQW5kIGFiaV9yb3V0ZV9iaXR3aXNlWG9yIGFiaV9yb3V0ZV9iaXR3aXNlT3JVMjU2IGFiaV9yb3V0ZV9iaXR3aXNlQW5kVTI1NiBhYmlfcm91dGVfYml0d2lzZVhvclUyNTYgYWJpX3JvdXRlX2JpdHdpc2VOb3QgYWJpX3JvdXRlX2JpdHdpc2VOb3RVMjU2IGFiaV9yb3V0ZV9tdWx3IGFiaV9yb3V0ZV9hZGR3IGFiaV9yb3V0ZV9leHB3IGFiaV9yb3V0ZV9kaXZ3IGFiaV9yb3V0ZV9kaXZtb2R3CgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyB1NjRwbHVzKHVpbnQ2NCx1aW50NjQpdWludDY0CiphYmlfcm91dGVfdTY0cGx1czoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSB1NjRwbHVzKHVpbnQ2NCx1aW50NjQpdWludDY0CgljYWxsc3ViIHU2NHBsdXMKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1NjRwbHVzKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0CnU2NHBsdXM6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjgKCS8vIHJldHVybiBhICsgYjsKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCSsKCXJldHN1YgoKLy8gdTY0bWludXModWludDY0LHVpbnQ2NCl1aW50NjQKKmFiaV9yb3V0ZV91NjRtaW51czoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSB1NjRtaW51cyh1aW50NjQsdWludDY0KXVpbnQ2NAoJY2FsbHN1YiB1NjRtaW51cwoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHU2NG1pbnVzKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0CnU2NG1pbnVzOgoJcHJvdG8gMiAxCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoxMgoJLy8gcmV0dXJuIGEgLSBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJLQoJcmV0c3ViCgovLyB1NjRtdWwodWludDY0LHVpbnQ2NCl1aW50NjQKKmFiaV9yb3V0ZV91NjRtdWw6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgdTY0bXVsKHVpbnQ2NCx1aW50NjQpdWludDY0CgljYWxsc3ViIHU2NG11bAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHU2NG11bChhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHVpbnQ2NAp1NjRtdWw6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjE2CgkvLyByZXR1cm4gYSAqIGI7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0CgkqCglyZXRzdWIKCi8vIHU2NGRpdih1aW50NjQsdWludDY0KXVpbnQ2NAoqYWJpX3JvdXRlX3U2NGRpdjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSB1NjRkaXYodWludDY0LHVpbnQ2NCl1aW50NjQKCWNhbGxzdWIgdTY0ZGl2CglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdTY0ZGl2KGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0CnU2NGRpdjoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MjAKCS8vIHJldHVybiBhIC8gYjsKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCS8KCXJldHN1YgoKLy8gdTI1NnBsdXModWludDI1Nix1aW50MjU2KXVpbnQyNTYKKmFiaV9yb3V0ZV91MjU2cGx1czoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAzMgoJPT0KCWFzc2VydAoKCS8vIGE6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09Cglhc3NlcnQKCgkvLyBleGVjdXRlIHUyNTZwbHVzKHVpbnQyNTYsdWludDI1Nil1aW50MjU2CgljYWxsc3ViIHUyNTZwbHVzCglkdXAKCWJpdGxlbgoJaW50IDI1NgoJPD0KCWFzc2VydAoJYnl0ZSAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMzIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1MjU2cGx1cyhhOiB1aW50MjU2LCBiOiB1aW50MjU2KTogdWludDI1Ngp1MjU2cGx1czoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MjQKCS8vIHJldHVybiA8dWludDI1Nj4oYSArIGIpOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQyNTYKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50MjU2CgliKwoJcmV0c3ViCgovLyB1MjU2bWludXModWludDI1Nix1aW50MjU2KXVpbnQyNTYKKmFiaV9yb3V0ZV91MjU2bWludXM6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMzIKCT09Cglhc3NlcnQKCgkvLyBhOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSB1MjU2bWludXModWludDI1Nix1aW50MjU2KXVpbnQyNTYKCWNhbGxzdWIgdTI1Nm1pbnVzCglkdXAKCWJpdGxlbgoJaW50IDI1NgoJPD0KCWFzc2VydAoJYnl0ZSAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMzIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1MjU2bWludXMoYTogdWludDI1NiwgYjogdWludDI1Nik6IHVpbnQyNTYKdTI1Nm1pbnVzOgoJcHJvdG8gMiAxCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoyOAoJLy8gcmV0dXJuIDx1aW50MjU2PihhIC0gYik7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDI1NgoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQyNTYKCWItCglyZXRzdWIKCi8vIHUyNTZtdWwodWludDI1Nix1aW50MjU2KXVpbnQyNTYKKmFiaV9yb3V0ZV91MjU2bXVsOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDMyCgk9PQoJYXNzZXJ0CgoJLy8gYTogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCWFzc2VydAoKCS8vIGV4ZWN1dGUgdTI1Nm11bCh1aW50MjU2LHVpbnQyNTYpdWludDI1NgoJY2FsbHN1YiB1MjU2bXVsCglkdXAKCWJpdGxlbgoJaW50IDI1NgoJPD0KCWFzc2VydAoJYnl0ZSAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMzIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1MjU2bXVsKGE6IHVpbnQyNTYsIGI6IHVpbnQyNTYpOiB1aW50MjU2CnUyNTZtdWw6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjMyCgkvLyByZXR1cm4gPHVpbnQyNTY+KGEgKiBiKTsKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50MjU2CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDI1NgoJYioKCXJldHN1YgoKLy8gdTI1NmRpdih1aW50MjU2LHVpbnQyNTYpdWludDI1NgoqYWJpX3JvdXRlX3UyNTZkaXY6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMzIKCT09Cglhc3NlcnQKCgkvLyBhOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSB1MjU2ZGl2KHVpbnQyNTYsdWludDI1Nil1aW50MjU2CgljYWxsc3ViIHUyNTZkaXYKCWR1cAoJYml0bGVuCglpbnQgMjU2Cgk8PQoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAzMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHUyNTZkaXYoYTogdWludDI1NiwgYjogdWludDI1Nik6IHVpbnQyNTYKdTI1NmRpdjoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MzYKCS8vIHJldHVybiA8dWludDI1Nj4oYSAvIGIpOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQyNTYKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50MjU2CgliLwoJcmV0c3ViCgovLyB1NjRSZXR1cm4yNTYodWludDY0LHVpbnQ2NCl1aW50MjU2CiphYmlfcm91dGVfdTY0UmV0dXJuMjU2OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIHU2NFJldHVybjI1Nih1aW50NjQsdWludDY0KXVpbnQyNTYKCWNhbGxzdWIgdTY0UmV0dXJuMjU2CglkdXAKCWJpdGxlbgoJaW50IDI1NgoJPD0KCWFzc2VydAoJYnl0ZSAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMzIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1NjRSZXR1cm4yNTYoYTogdWludDY0LCBiOiB1aW50NjQpOiB1aW50MjU2CnU2NFJldHVybjI1NjoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6NDAKCS8vIHJldHVybiA8dWludDI1Nj4oYSArIGIpOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJKwoJaXRvYgoJcmV0c3ViCgovLyBtYXhVNjQoKXVpbnQ2NAoqYWJpX3JvdXRlX21heFU2NDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBtYXhVNjQoKXVpbnQ2NAoJY2FsbHN1YiBtYXhVNjQKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBtYXhVNjQoKTogdWludDY0Cm1heFU2NDoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6NDUKCS8vIHJldHVybiAxOF80NDZfNzQ0XzA3M183MDlfNTUxXzYxNTsKCWludCAxOF80NDZfNzQ0XzA3M183MDlfNTUxXzYxNQoJcmV0c3ViCgovLyBleHBvbmVudCh1aW50NjQsdWludDY0KXVpbnQ2NAoqYWJpX3JvdXRlX2V4cG9uZW50OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGV4cG9uZW50KHVpbnQ2NCx1aW50NjQpdWludDY0CgljYWxsc3ViIGV4cG9uZW50CglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZXhwb25lbnQoYTogdWludDY0LCBiOiB1aW50NjQpOiB1aW50NjQKZXhwb25lbnQ6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjQ5CgkvLyByZXR1cm4gYSAqKiBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJZXhwCglyZXRzdWIKCi8vIHZhcmlhYmxlVHlwZUhpbnQodWludDgsdWludDgpdWludDE2CiphYmlfcm91dGVfdmFyaWFibGVUeXBlSGludDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8geTogdWludDgKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMQoJPT0KCWFzc2VydAoJYnRvaQoKCS8vIHg6IHVpbnQ4Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDEKCT09Cglhc3NlcnQKCWJ0b2kKCgkvLyBleGVjdXRlIHZhcmlhYmxlVHlwZUhpbnQodWludDgsdWludDgpdWludDE2CgljYWxsc3ViIHZhcmlhYmxlVHlwZUhpbnQKCWl0b2IKCWR1cAoJYml0bGVuCglpbnQgMTYKCTw9Cglhc3NlcnQKCWV4dHJhY3QgNiAyCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdmFyaWFibGVUeXBlSGludCh4OiB1aW50PDg+LCB5OiB1aW50PDg+KTogdWludDE2CnZhcmlhYmxlVHlwZUhpbnQ6Cglwcm90byAyIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6NTMKCS8vIHogPSA8dWludDE2Pih4ICsgeSkKCWZyYW1lX2RpZyAtMSAvLyB4OiB1aW50PDg+CglmcmFtZV9kaWcgLTIgLy8geTogdWludDw4PgoJKwoJZnJhbWVfYnVyeSAwIC8vIHo6IHVuc2FmZSB1aW50MTYKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjU1CgkvLyByZXR1cm4gejsKCWZyYW1lX2RpZyAwIC8vIHo6IHVuc2FmZSB1aW50MTYKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gdWludDhwbHVzKHVpbnQ4LHVpbnQ4KXVpbnQ4CiphYmlfcm91dGVfdWludDhwbHVzOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50OAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAxCgk9PQoJYXNzZXJ0CglidG9pCgoJLy8gYTogdWludDgKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMQoJPT0KCWFzc2VydAoJYnRvaQoKCS8vIGV4ZWN1dGUgdWludDhwbHVzKHVpbnQ4LHVpbnQ4KXVpbnQ4CgljYWxsc3ViIHVpbnQ4cGx1cwoJaXRvYgoJZHVwCgliaXRsZW4KCWludCA4Cgk8PQoJYXNzZXJ0CglleHRyYWN0IDcgMQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHVpbnQ4cGx1cyhhOiB1aW50PDg+LCBiOiB1aW50PDg+KTogdWludDw4Pgp1aW50OHBsdXM6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjU5CgkvLyByZXR1cm4gYSArIGI7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDw4PgoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ8OD4KCSsKCXJldHN1YgoKLy8gdWludDhleHAodWludDgsdWludDgpdWludDgKKmFiaV9yb3V0ZV91aW50OGV4cDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDgKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMQoJPT0KCWFzc2VydAoJYnRvaQoKCS8vIGE6IHVpbnQ4Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDEKCT09Cglhc3NlcnQKCWJ0b2kKCgkvLyBleGVjdXRlIHVpbnQ4ZXhwKHVpbnQ4LHVpbnQ4KXVpbnQ4CgljYWxsc3ViIHVpbnQ4ZXhwCglpdG9iCglkdXAKCWJpdGxlbgoJaW50IDgKCTw9Cglhc3NlcnQKCWV4dHJhY3QgNyAxCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdWludDhleHAoYTogdWludDw4PiwgYjogdWludDw4Pik6IHVpbnQ8OD4KdWludDhleHA6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjYzCgkvLyByZXR1cm4gYSAqKiBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ8OD4KCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50PDg+CglleHAKCXJldHN1YgoKLy8gcGx1c0VxdWFscyh1aW50NjQsdWludDY0KXVpbnQ2NAoqYWJpX3JvdXRlX3BsdXNFcXVhbHM6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgcGx1c0VxdWFscyh1aW50NjQsdWludDY0KXVpbnQ2NAoJY2FsbHN1YiBwbHVzRXF1YWxzCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gcGx1c0VxdWFscyhhOiBudW1iZXIsIGI6IG51bWJlcik6IG51bWJlcgpwbHVzRXF1YWxzOgoJcHJvdG8gMiAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjY3CgkvLyB4ID0gYQoJZnJhbWVfZGlnIC0xIC8vIGE6IG51bWJlcgoJZnJhbWVfYnVyeSAwIC8vIHg6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6NjkKCS8vIHggKz0gYgoJZnJhbWVfZGlnIDAgLy8geDogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gYjogbnVtYmVyCgkrCglmcmFtZV9idXJ5IDAgLy8geDogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czo3MQoJLy8gcmV0dXJuIHg7CglmcmFtZV9kaWcgMCAvLyB4OiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gcGx1c0VxdWFsc0Zyb21HbG9iYWwodWludDY0LHVpbnQ2NCl1aW50NjQKKmFiaV9yb3V0ZV9wbHVzRXF1YWxzRnJvbUdsb2JhbDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBwbHVzRXF1YWxzRnJvbUdsb2JhbCh1aW50NjQsdWludDY0KXVpbnQ2NAoJY2FsbHN1YiBwbHVzRXF1YWxzRnJvbUdsb2JhbAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHBsdXNFcXVhbHNGcm9tR2xvYmFsKGE6IG51bWJlciwgYjogbnVtYmVyKTogbnVtYmVyCnBsdXNFcXVhbHNGcm9tR2xvYmFsOgoJcHJvdG8gMiAxCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czo3NQoJLy8gdGhpcy5nS2V5LnZhbHVlID0gYQoJYnl0ZSAweDY3NGI2NTc5IC8vICJnS2V5IgoJZnJhbWVfZGlnIC0xIC8vIGE6IG51bWJlcgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjc3CgkvLyB0aGlzLmdLZXkudmFsdWUgKz0gYgoJYnl0ZSAweDY3NGI2NTc5IC8vICJnS2V5IgoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAtMiAvLyBiOiBudW1iZXIKCSsKCWJ5dGUgMHg2NzRiNjU3OSAvLyAiZ0tleSIKCXN3YXAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czo3OQoJLy8gcmV0dXJuIHRoaXMuZ0tleS52YWx1ZTsKCWJ5dGUgMHg2NzRiNjU3OSAvLyAiZ0tleSIKCWFwcF9nbG9iYWxfZ2V0CglyZXRzdWIKCi8vIHVmaXhlZExpdGVyYWxNdWwoKXVmaXhlZDY0eDIKKmFiaV9yb3V0ZV91Zml4ZWRMaXRlcmFsTXVsOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHVmaXhlZExpdGVyYWxNdWwoKXVmaXhlZDY0eDIKCWNhbGxzdWIgdWZpeGVkTGl0ZXJhbE11bAoJaXRvYgoJZXh0cmFjdCAwIDgKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1Zml4ZWRMaXRlcmFsTXVsKCk6IHVmaXhlZDw2NCwgMj4KdWZpeGVkTGl0ZXJhbE11bDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDIKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjgzCgkvLyBhOiB1Zml4ZWQ8NjQsIDI+ID0gMTIuMzQKCWludCAxMjM0CglmcmFtZV9idXJ5IDAgLy8gYTogdWZpeGVkPDY0LCAyPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6ODQKCS8vIGI6IHVmaXhlZDw2NCwgMj4gPSAxMi4zNAoJaW50IDEyMzQKCWZyYW1lX2J1cnkgMSAvLyBiOiB1Zml4ZWQ8NjQsIDI+CgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czo4NQoJLy8gYyA9IGEgKiBiCglmcmFtZV9kaWcgMCAvLyBhOiB1Zml4ZWQ8NjQsIDI+CglpbnQgMTIzNCAvLyBiOiB1Zml4ZWQ8NjQsIDI+CgkqCglpbnQgMTAwCgkvCglmcmFtZV9idXJ5IDIgLy8gYzogdWZpeGVkNjR4MgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6ODcKCS8vIHJldHVybiBjOwoJZnJhbWVfZGlnIDIgLy8gYzogdWZpeGVkNjR4MgoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDIKCXJldHN1YgoKLy8gdWZpeGVkTXVsKHVmaXhlZDY0eDIsdWZpeGVkNjR4Mil1Zml4ZWQ2NHgyCiphYmlfcm91dGVfdWZpeGVkTXVsOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1Zml4ZWQ2NHgyCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDgKCT09Cglhc3NlcnQKCWJ0b2kKCgkvLyBhOiB1Zml4ZWQ2NHgyCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDgKCT09Cglhc3NlcnQKCWJ0b2kKCgkvLyBleGVjdXRlIHVmaXhlZE11bCh1Zml4ZWQ2NHgyLHVmaXhlZDY0eDIpdWZpeGVkNjR4MgoJY2FsbHN1YiB1Zml4ZWRNdWwKCWl0b2IKCWV4dHJhY3QgMCA4Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdWZpeGVkTXVsKGE6IHVmaXhlZDw2NCwgMj4sIGI6IHVmaXhlZDw2NCwgMj4pOiB1Zml4ZWQ8NjQsIDI+CnVmaXhlZE11bDoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6OTEKCS8vIHJldHVybiBhICogYjsKCWZyYW1lX2RpZyAtMSAvLyBhOiB1Zml4ZWQ8NjQsIDI+CglmcmFtZV9kaWcgLTIgLy8gYjogdWZpeGVkPDY0LCAyPgoJKgoJaW50IDEwMAoJLwoJcmV0c3ViCgovLyBCaWdVZml4ZWRNdWwodWZpeGVkMTI4eDIsdWZpeGVkMTI4eDIpdWZpeGVkMTI4eDIKKmFiaV9yb3V0ZV9CaWdVZml4ZWRNdWw6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVmaXhlZDEyOHgyCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDE2Cgk9PQoJYXNzZXJ0CgoJLy8gYTogdWZpeGVkMTI4eDIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMTYKCT09Cglhc3NlcnQKCgkvLyBleGVjdXRlIEJpZ1VmaXhlZE11bCh1Zml4ZWQxMjh4Mix1Zml4ZWQxMjh4Mil1Zml4ZWQxMjh4MgoJY2FsbHN1YiBCaWdVZml4ZWRNdWwKCWR1cAoJYml0bGVuCglpbnQgMTI4Cgk8PQoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMTYKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBCaWdVZml4ZWRNdWwoYTogdWZpeGVkPDEyOCwgMj4sIGI6IHVmaXhlZDwxMjgsIDI+KTogdWZpeGVkPDEyOCwgMj4KQmlnVWZpeGVkTXVsOgoJcHJvdG8gMiAxCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czo5NQoJLy8gcmV0dXJuIGEgKiBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVmaXhlZDwxMjgsIDI+CglmcmFtZV9kaWcgLTIgLy8gYjogdWZpeGVkPDEyOCwgMj4KCWIqCglieXRlIDB4NjQKCWIvCglyZXRzdWIKCi8vIFRyaXBsZUJpZ1VmaXhlZE11bCh1Zml4ZWQxMjh4Mix1Zml4ZWQxMjh4Mix1Zml4ZWQxMjh4Mil1Zml4ZWQxMjh4MgoqYWJpX3JvdXRlX1RyaXBsZUJpZ1VmaXhlZE11bDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYzogdWZpeGVkMTI4eDIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWR1cAoJbGVuCglpbnQgMTYKCT09Cglhc3NlcnQKCgkvLyBiOiB1Zml4ZWQxMjh4MgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAxNgoJPT0KCWFzc2VydAoKCS8vIGE6IHVmaXhlZDEyOHgyCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDE2Cgk9PQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBUcmlwbGVCaWdVZml4ZWRNdWwodWZpeGVkMTI4eDIsdWZpeGVkMTI4eDIsdWZpeGVkMTI4eDIpdWZpeGVkMTI4eDIKCWNhbGxzdWIgVHJpcGxlQmlnVWZpeGVkTXVsCglkdXAKCWJpdGxlbgoJaW50IDEyOAoJPD0KCWFzc2VydAoJYnl0ZSAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50IDE2CgktCglzd2FwCglzdWJzdHJpbmczCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gVHJpcGxlQmlnVWZpeGVkTXVsKGE6IHVmaXhlZDwxMjgsIDI+LCBiOiB1Zml4ZWQ8MTI4LCAyPiwgYzogdWZpeGVkPDEyOCwgMj4pOiB1Zml4ZWQ8MTI4LCAyPgpUcmlwbGVCaWdVZml4ZWRNdWw6Cglwcm90byAzIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czo5OQoJLy8gYWIgPSBhICogYgoJZnJhbWVfZGlnIC0xIC8vIGE6IHVmaXhlZDwxMjgsIDI+CglmcmFtZV9kaWcgLTIgLy8gYjogdWZpeGVkPDEyOCwgMj4KCWIqCglieXRlIDB4NjQKCWIvCglmcmFtZV9idXJ5IDAgLy8gYWI6IHVuc2FmZSB1Zml4ZWQxMjh4MgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTAwCgkvLyBhYmMgPSBhYiAqIGMKCWZyYW1lX2RpZyAwIC8vIGFiOiB1bnNhZmUgdWZpeGVkMTI4eDIKCWZyYW1lX2RpZyAtMyAvLyBjOiB1Zml4ZWQ8MTI4LCAyPgoJYioKCWJ5dGUgMHg2NAoJYi8KCWZyYW1lX2J1cnkgMSAvLyBhYmM6IHVuc2FmZSB1Zml4ZWQxMjh4MgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTAxCgkvLyByZXR1cm4gYWJjOwoJZnJhbWVfZGlnIDEgLy8gYWJjOiB1bnNhZmUgdWZpeGVkMTI4eDIKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCi8vIGJveFRlc3QoKXVpbnQyNTYKKmFiaV9yb3V0ZV9ib3hUZXN0OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGJveFRlc3QoKXVpbnQyNTYKCWNhbGxzdWIgYm94VGVzdAoJZHVwCgliaXRsZW4KCWludCAyNTYKCTw9Cglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50IDMyCgktCglzd2FwCglzdWJzdHJpbmczCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYm94VGVzdCgpOiB1aW50MjU2CmJveFRlc3Q6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjEwNwoJLy8gdGhpcy5ib3hLZXkudmFsdWUgPSA8dWludDI1Nj4xCglieXRlIDB4NjI2Zjc4NGI2NTc5IC8vICJib3hLZXkiCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMQoJYm94X3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTA4CgkvLyB0aGlzLmJveEtleS52YWx1ZSArPSAxCglieXRlIDB4NjI2Zjc4NGI2NTc5IC8vICJib3hLZXkiCglib3hfZ2V0Cglhc3NlcnQKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxCgliKwoJYnl0ZSAweDYyNmY3ODRiNjU3OSAvLyAiYm94S2V5IgoJZHVwCgliaXRsZW4KCWludCAyNTYKCTw9Cglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50IDMyCgktCglzd2FwCglzdWJzdHJpbmczCglzd2FwCglib3hfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoxMTAKCS8vIHJldHVybiB0aGlzLmJveEtleS52YWx1ZTsKCWJ5dGUgMHg2MjZmNzg0YjY1NzkgLy8gImJveEtleSIKCWJveF9nZXQKCWFzc2VydAoJcmV0c3ViCgovLyBmb28oeDogdWludDI1Nik6IHVpbnQyNTYKZm9vOgoJcHJvdG8gMSAxCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoxMTQKCS8vIHJldHVybiB4OwoJZnJhbWVfZGlnIC0xIC8vIHg6IHVpbnQyNTYKCXJldHN1YgoKLy8gdW5zYWZlTWV0aG9kQXJncyh1aW50MjU2LHVpbnQyNTYpdWludDI1NgoqYWJpX3JvdXRlX3Vuc2FmZU1ldGhvZEFyZ3M6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMzIKCT09Cglhc3NlcnQKCgkvLyBhOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSB1bnNhZmVNZXRob2RBcmdzKHVpbnQyNTYsdWludDI1Nil1aW50MjU2CgljYWxsc3ViIHVuc2FmZU1ldGhvZEFyZ3MKCWR1cAoJYml0bGVuCglpbnQgMjU2Cgk8PQoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAzMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHVuc2FmZU1ldGhvZEFyZ3MoYTogdWludDI1NiwgYjogdWludDI1Nik6IHVpbnQyNTYKdW5zYWZlTWV0aG9kQXJnczoKCXByb3RvIDIgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoxMTgKCS8vIGMgPSBhICsgYgoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQyNTYKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50MjU2CgliKwoJZnJhbWVfYnVyeSAwIC8vIGM6IHVuc2FmZSB1aW50MjU2CgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoxMjAKCS8vIHJldHVybiB0aGlzLmZvbyhjKTsKCWZyYW1lX2RpZyAwIC8vIGM6IHVuc2FmZSB1aW50MjU2CglkdXAKCWJpdGxlbgoJaW50IDI1NgoJPD0KCWFzc2VydAoJYnl0ZSAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMzIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNhbGxzdWIgZm9vCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIHVpbnQyNTZDb21wYXJpc29uVHlwZSh1aW50MjU2LHVpbnQyNTYpdm9pZAoqYWJpX3JvdXRlX3VpbnQyNTZDb21wYXJpc29uVHlwZToKCS8vIGI6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMzIKCT09Cglhc3NlcnQKCgkvLyBhOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSB1aW50MjU2Q29tcGFyaXNvblR5cGUodWludDI1Nix1aW50MjU2KXZvaWQKCWNhbGxzdWIgdWludDI1NkNvbXBhcmlzb25UeXBlCglpbnQgMQoJcmV0dXJuCgovLyB1aW50MjU2Q29tcGFyaXNvblR5cGUoYTogdWludDI1NiwgYjogdWludDI1Nik6IHZvaWQKdWludDI1NkNvbXBhcmlzb25UeXBlOgoJcHJvdG8gMiAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjEyNAoJLy8gc2VuZGVyQmFsYW5jZUFmdGVyID0gYSAtIGIKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50MjU2CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDI1NgoJYi0KCWZyYW1lX2J1cnkgMCAvLyBzZW5kZXJCYWxhbmNlQWZ0ZXI6IHVuc2FmZSB1aW50MjU2CgoJLy8gKmlmMF9jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTI1CgkvLyBzZW5kZXJCYWxhbmNlQWZ0ZXIgPiA8dWludDI1Nj4wCglmcmFtZV9kaWcgMCAvLyBzZW5kZXJCYWxhbmNlQWZ0ZXI6IHVuc2FmZSB1aW50MjU2CglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoJYj4KCWJ6ICppZjBfZWxzZQoKCS8vICppZjBfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoxMjYKCS8vIGxvZygnbm9uWmVybycpCglieXRlIDB4NmU2ZjZlNWE2NTcyNmYgLy8gIm5vblplcm8iCglsb2cKCWIgKmlmMF9lbmQKCippZjBfZWxzZToKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTI4CgkvLyBsb2coJ3plcm8nKQoJYnl0ZSAweDdhNjU3MjZmIC8vICJ6ZXJvIgoJbG9nCgoqaWYwX2VuZDoKCXJldHN1YgoKLy8gc3F1YXJlUm9vdDI1Nih1aW50MjU2LHVpbnQyNTYpdWludDI1NgoqYWJpX3JvdXRlX3NxdWFyZVJvb3QyNTY6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMzIKCT09Cglhc3NlcnQKCgkvLyBhOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBzcXVhcmVSb290MjU2KHVpbnQyNTYsdWludDI1Nil1aW50MjU2CgljYWxsc3ViIHNxdWFyZVJvb3QyNTYKCWR1cAoJYml0bGVuCglpbnQgMjU2Cgk8PQoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAzMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHNxdWFyZVJvb3QyNTYoYTogdWludDI1NiwgYjogdWludDI1Nik6IHVpbnQyNTYKc3F1YXJlUm9vdDI1NjoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTMzCgkvLyByZXR1cm4gc3FydChhICogYik7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDI1NgoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQyNTYKCWIqCglic3FydAoJcmV0c3ViCgovLyBzcXVhcmVSb290NjQodWludDY0LHVpbnQ2NCl1aW50NjQKKmFiaV9yb3V0ZV9zcXVhcmVSb290NjQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgc3F1YXJlUm9vdDY0KHVpbnQ2NCx1aW50NjQpdWludDY0CgljYWxsc3ViIHNxdWFyZVJvb3Q2NAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHNxdWFyZVJvb3Q2NChhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHVpbnQ2NApzcXVhcmVSb290NjQ6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjEzNwoJLy8gcmV0dXJuIHNxcnQoYSAqIGIpOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJKgoJc3FydAoJcmV0c3ViCgovLyBhZGRyZXNzVG9CaWdJbnQoYWRkcmVzcylib29sCiphYmlfcm91dGVfYWRkcmVzc1RvQmlnSW50OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBhZGRyOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBhZGRyZXNzVG9CaWdJbnQoYWRkcmVzcylib29sCgljYWxsc3ViIGFkZHJlc3NUb0JpZ0ludAoJYnl0ZSAweDAwCglpbnQgMAoJdW5jb3ZlciAyCglzZXRiaXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBhZGRyZXNzVG9CaWdJbnQoYWRkcjogQWRkcmVzcyk6IGJvb2xlYW4KYWRkcmVzc1RvQmlnSW50OgoJcHJvdG8gMSAxCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoxNDEKCS8vIHJldHVybiBidG9iaWdpbnQoYWRkcikgPiBidG9iaWdpbnQodGhpcy50eG4uc2VuZGVyKTsKCWZyYW1lX2RpZyAtMSAvLyBhZGRyOiBBZGRyZXNzCgl0eG4gU2VuZGVyCgliPgoJcmV0c3ViCgovLyB1OFRvdTY0KCl1aW50NjQKKmFiaV9yb3V0ZV91OFRvdTY0OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHU4VG91NjQoKXVpbnQ2NAoJY2FsbHN1YiB1OFRvdTY0CglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdThUb3U2NCgpOiB1aW50NjQKdThUb3U2NDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoxNDUKCS8vIHg6IHVpbnQ4ID0gNwoJaW50IDcKCWZyYW1lX2J1cnkgMCAvLyB4OiB1aW50OAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTQ2CgkvLyByZXR1cm4gPHVpbnQ2ND54OwoJZnJhbWVfZGlnIDAgLy8geDogdWludDgKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gcHJpdmF0ZUZ1bmNOYW1lKHg6IHVpbnQ4LCB5OiB1aW50NjQpOiB2b2lkCnByaXZhdGVGdW5jTmFtZToKCXByb3RvIDIgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTUwCgkvLyBhc3NlcnQoPHVpbnQ4PnkgPiB4KQoJZnJhbWVfZGlnIC0yIC8vIHk6IHVpbnQ2NAoJZnJhbWVfZGlnIC0xIC8vIHg6IHVpbnQ4Cgk+Cglhc3NlcnQKCXJldHN1YgoKLy8gZnVuY05hbWUodWludDI1Nil2b2lkCiphYmlfcm91dGVfZnVuY05hbWU6CgkvLyB4OiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBmdW5jTmFtZSh1aW50MjU2KXZvaWQKCWNhbGxzdWIgZnVuY05hbWUKCWludCAxCglyZXR1cm4KCi8vIGZ1bmNOYW1lKHg6IHVpbnQyNTYpOiB2b2lkCmZ1bmNOYW1lOgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoxNTQKCS8vIHRoaXMucHJpdmF0ZUZ1bmNOYW1lKDx1aW50OD54LCAxMzM3KQoJaW50IDEzMzcKCWZyYW1lX2RpZyAtMSAvLyB4OiB1aW50MjU2CglkdXAKCWJpdGxlbgoJaW50IDgKCTw9Cglhc3NlcnQKCWV4dHJhY3QgMzEgMQoJYnRvaQoJY2FsbHN1YiBwcml2YXRlRnVuY05hbWUKCXJldHN1YgoKLy8gYmlnaW50UGx1cyh1aW50NjQsdWludDY0KXVpbnQ2NAoqYWJpX3JvdXRlX2JpZ2ludFBsdXM6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgYmlnaW50UGx1cyh1aW50NjQsdWludDY0KXVpbnQ2NAoJY2FsbHN1YiBiaWdpbnRQbHVzCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYmlnaW50UGx1cyhhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHVpbnQ2NApiaWdpbnRQbHVzOgoJcHJvdG8gMiAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTU4CgkvLyB4ID0gaXRvYihhKQoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJaXRvYgoJZnJhbWVfYnVyeSAwIC8vIHg6IGJ5dGVbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTU5CgkvLyB5ID0gaXRvYihiKQoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJaXRvYgoJZnJhbWVfYnVyeSAxIC8vIHk6IGJ5dGVbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTYwCgkvLyByZXR1cm4gKGJ0b2JpZ2ludCh4KSArIGJ0b2JpZ2ludCh5KSkgYXMgdWludDY0OwoJZnJhbWVfZGlnIDAgLy8geDogYnl0ZVtdCglmcmFtZV9kaWcgMSAvLyB5OiBieXRlW10KCWIrCglkdXAKCWJpdGxlbgoJaW50IDY0Cgk8PQoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCA4CgktCglzd2FwCglzdWJzdHJpbmczCglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMQoJcmV0c3ViCgovLyBiaXR3aXNlT3IodWludDY0LHVpbnQ2NCl1aW50NjQKKmFiaV9yb3V0ZV9iaXR3aXNlT3I6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgYml0d2lzZU9yKHVpbnQ2NCx1aW50NjQpdWludDY0CgljYWxsc3ViIGJpdHdpc2VPcgoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJpdHdpc2VPcihhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHVpbnQ2NApiaXR3aXNlT3I6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjE2NAoJLy8gcmV0dXJuIGEgfCBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJfAoJcmV0c3ViCgovLyBiaXR3aXNlQW5kKHVpbnQ2NCx1aW50NjQpdWludDY0CiphYmlfcm91dGVfYml0d2lzZUFuZDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBiaXR3aXNlQW5kKHVpbnQ2NCx1aW50NjQpdWludDY0CgljYWxsc3ViIGJpdHdpc2VBbmQKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBiaXR3aXNlQW5kKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0CmJpdHdpc2VBbmQ6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjE2OAoJLy8gcmV0dXJuIGEgJiBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJJgoJcmV0c3ViCgovLyBiaXR3aXNlWG9yKHVpbnQ2NCx1aW50NjQpdWludDY0CiphYmlfcm91dGVfYml0d2lzZVhvcjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBiaXR3aXNlWG9yKHVpbnQ2NCx1aW50NjQpdWludDY0CgljYWxsc3ViIGJpdHdpc2VYb3IKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBiaXR3aXNlWG9yKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0CmJpdHdpc2VYb3I6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjE3MgoJLy8gcmV0dXJuIGEgXiBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJXgoJcmV0c3ViCgovLyBiaXR3aXNlT3JVMjU2KHVpbnQyNTYsdWludDI1Nil1aW50MjU2CiphYmlfcm91dGVfYml0d2lzZU9yVTI1NjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAzMgoJPT0KCWFzc2VydAoKCS8vIGE6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09Cglhc3NlcnQKCgkvLyBleGVjdXRlIGJpdHdpc2VPclUyNTYodWludDI1Nix1aW50MjU2KXVpbnQyNTYKCWNhbGxzdWIgYml0d2lzZU9yVTI1NgoJZHVwCgliaXRsZW4KCWludCAyNTYKCTw9Cglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50IDMyCgktCglzd2FwCglzdWJzdHJpbmczCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYml0d2lzZU9yVTI1NihhOiB1aW50MjU2LCBiOiB1aW50MjU2KTogdWludDI1NgpiaXR3aXNlT3JVMjU2OgoJcHJvdG8gMiAxCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoxNzYKCS8vIHJldHVybiBhIHwgYjsKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50MjU2CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDI1NgoJYnwKCXJldHN1YgoKLy8gYml0d2lzZUFuZFUyNTYodWludDI1Nix1aW50MjU2KXVpbnQyNTYKKmFiaV9yb3V0ZV9iaXR3aXNlQW5kVTI1NjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAzMgoJPT0KCWFzc2VydAoKCS8vIGE6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09Cglhc3NlcnQKCgkvLyBleGVjdXRlIGJpdHdpc2VBbmRVMjU2KHVpbnQyNTYsdWludDI1Nil1aW50MjU2CgljYWxsc3ViIGJpdHdpc2VBbmRVMjU2CglkdXAKCWJpdGxlbgoJaW50IDI1NgoJPD0KCWFzc2VydAoJYnl0ZSAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMzIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBiaXR3aXNlQW5kVTI1NihhOiB1aW50MjU2LCBiOiB1aW50MjU2KTogdWludDI1NgpiaXR3aXNlQW5kVTI1NjoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTgwCgkvLyByZXR1cm4gYSAmIGI7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDI1NgoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQyNTYKCWImCglyZXRzdWIKCi8vIGJpdHdpc2VYb3JVMjU2KHVpbnQyNTYsdWludDI1Nil1aW50MjU2CiphYmlfcm91dGVfYml0d2lzZVhvclUyNTY6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMzIKCT09Cglhc3NlcnQKCgkvLyBhOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBiaXR3aXNlWG9yVTI1Nih1aW50MjU2LHVpbnQyNTYpdWludDI1NgoJY2FsbHN1YiBiaXR3aXNlWG9yVTI1NgoJZHVwCgliaXRsZW4KCWludCAyNTYKCTw9Cglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50IDMyCgktCglzd2FwCglzdWJzdHJpbmczCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYml0d2lzZVhvclUyNTYoYTogdWludDI1NiwgYjogdWludDI1Nik6IHVpbnQyNTYKYml0d2lzZVhvclUyNTY6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjE4NAoJLy8gcmV0dXJuIGEgXiBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQyNTYKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50MjU2CgliXgoJcmV0c3ViCgovLyBiaXR3aXNlTm90KHVpbnQ2NCl1aW50NjQKKmFiaV9yb3V0ZV9iaXR3aXNlTm90OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGJpdHdpc2VOb3QodWludDY0KXVpbnQ2NAoJY2FsbHN1YiBiaXR3aXNlTm90CglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYml0d2lzZU5vdChhOiB1aW50NjQpOiB1aW50NjQKYml0d2lzZU5vdDoKCXByb3RvIDEgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTg4CgkvLyByZXR1cm4gfmE7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0Cgl+CglyZXRzdWIKCi8vIGJpdHdpc2VOb3RVMjU2KHVpbnQyNTYpdWludDI1NgoqYWJpX3JvdXRlX2JpdHdpc2VOb3RVMjU2OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBhOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBiaXR3aXNlTm90VTI1Nih1aW50MjU2KXVpbnQyNTYKCWNhbGxzdWIgYml0d2lzZU5vdFUyNTYKCWR1cAoJYml0bGVuCglpbnQgMjU2Cgk8PQoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAzMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJpdHdpc2VOb3RVMjU2KGE6IHVpbnQyNTYpOiB1aW50MjU2CmJpdHdpc2VOb3RVMjU2OgoJcHJvdG8gMSAxCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoxOTIKCS8vIHJldHVybiB+YTsKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50MjU2CglifgoJcmV0c3ViCgovLyBtdWx3KHVpbnQ2NCx1aW50NjQpdWludDY0CiphYmlfcm91dGVfbXVsdzoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBtdWx3KHVpbnQ2NCx1aW50NjQpdWludDY0CgljYWxsc3ViIG11bHcKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBtdWx3KGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0Cm11bHc6Cglwcm90byAyIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiAzCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoxOTYKCS8vIHAgPSBtdWx3KGEsIGIpCglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0CgltdWx3CglmcmFtZV9idXJ5IDIgLy8gcCBsb3c6IHVpbnQ2NAoJZnJhbWVfYnVyeSAzIC8vIHAgaGlnaDogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoyMDAKCS8vIHJldHVybiBwMi5sb3c7CglmcmFtZV9kaWcgMiAvLyBwIGxvdzogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMwoJcmV0c3ViCgovLyBhZGR3KHVpbnQ2NCx1aW50NjQpdWludDY0CiphYmlfcm91dGVfYWRkdzoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBhZGR3KHVpbnQ2NCx1aW50NjQpdWludDY0CgljYWxsc3ViIGFkZHcKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBhZGR3KGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0CmFkZHc6Cglwcm90byAyIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiAzCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoyMDQKCS8vIHAgPSBhZGR3KGEsIGIpCglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0CglhZGR3CglmcmFtZV9idXJ5IDIgLy8gcCBsb3c6IHVpbnQ2NAoJZnJhbWVfYnVyeSAzIC8vIHAgaGlnaDogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoyMDgKCS8vIHJldHVybiBwMi5sb3c7CglmcmFtZV9kaWcgMiAvLyBwIGxvdzogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMwoJcmV0c3ViCgovLyBleHB3KHVpbnQ2NCx1aW50NjQpdWludDY0CiphYmlfcm91dGVfZXhwdzoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBleHB3KHVpbnQ2NCx1aW50NjQpdWludDY0CgljYWxsc3ViIGV4cHcKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBleHB3KGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0CmV4cHc6Cglwcm90byAyIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiAzCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoyMTIKCS8vIHAgPSBleHB3KGEsIGIpCglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0CglleHB3CglmcmFtZV9idXJ5IDIgLy8gcCBsb3c6IHVpbnQ2NAoJZnJhbWVfYnVyeSAzIC8vIHAgaGlnaDogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoyMTYKCS8vIHJldHVybiBwMi5sb3c7CglmcmFtZV9kaWcgMiAvLyBwIGxvdzogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMwoJcmV0c3ViCgovLyBkaXZ3KHVpbnQ2NCx1aW50NjQpdWludDY0CiphYmlfcm91dGVfZGl2dzoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBkaXZ3KHVpbnQ2NCx1aW50NjQpdWludDY0CgljYWxsc3ViIGRpdncKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBkaXZ3KGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0CmRpdnc6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjIyMAoJLy8gcmV0dXJuIGRpdncoMCwgYSwgYik7CglpbnQgMAoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJZGl2dwoJcmV0c3ViCgovLyBkaXZtb2R3KHVpbnQ2NCx1aW50NjQpdWludDY0CiphYmlfcm91dGVfZGl2bW9kdzoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBkaXZtb2R3KHVpbnQ2NCx1aW50NjQpdWludDY0CgljYWxsc3ViIGRpdm1vZHcKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBkaXZtb2R3KGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0CmRpdm1vZHc6Cglwcm90byAyIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiA3CgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoyMjQKCS8vIHAgPSBkaXZtb2R3KDAsIGEsIDAsIGIpCglpbnQgMAoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJaW50IDAKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCWRpdm1vZHcKCWZyYW1lX2J1cnkgNCAvLyBwIHJlbWFpbmRlckxvdzogdWludDY0CglmcmFtZV9idXJ5IDUgLy8gcCByZW1haW5kZXJIaWdoOiB1aW50NjQKCWZyYW1lX2J1cnkgNiAvLyBwIHF1b3RpZW50TG93OiB1aW50NjQKCWZyYW1lX2J1cnkgNyAvLyBwIHF1b3RpZW50SGlnaDogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoyMjgKCS8vIHJldHVybiBwMi5xdW90aWVudExvdzsKCWZyYW1lX2RpZyA2IC8vIHAgcXVvdGllbnRMb3c6IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDcKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInU2NHBsdXModWludDY0LHVpbnQ2NCl1aW50NjQiCgltZXRob2QgInU2NG1pbnVzKHVpbnQ2NCx1aW50NjQpdWludDY0IgoJbWV0aG9kICJ1NjRtdWwodWludDY0LHVpbnQ2NCl1aW50NjQiCgltZXRob2QgInU2NGRpdih1aW50NjQsdWludDY0KXVpbnQ2NCIKCW1ldGhvZCAidTI1NnBsdXModWludDI1Nix1aW50MjU2KXVpbnQyNTYiCgltZXRob2QgInUyNTZtaW51cyh1aW50MjU2LHVpbnQyNTYpdWludDI1NiIKCW1ldGhvZCAidTI1Nm11bCh1aW50MjU2LHVpbnQyNTYpdWludDI1NiIKCW1ldGhvZCAidTI1NmRpdih1aW50MjU2LHVpbnQyNTYpdWludDI1NiIKCW1ldGhvZCAidTY0UmV0dXJuMjU2KHVpbnQ2NCx1aW50NjQpdWludDI1NiIKCW1ldGhvZCAibWF4VTY0KCl1aW50NjQiCgltZXRob2QgImV4cG9uZW50KHVpbnQ2NCx1aW50NjQpdWludDY0IgoJbWV0aG9kICJ2YXJpYWJsZVR5cGVIaW50KHVpbnQ4LHVpbnQ4KXVpbnQxNiIKCW1ldGhvZCAidWludDhwbHVzKHVpbnQ4LHVpbnQ4KXVpbnQ4IgoJbWV0aG9kICJ1aW50OGV4cCh1aW50OCx1aW50OCl1aW50OCIKCW1ldGhvZCAicGx1c0VxdWFscyh1aW50NjQsdWludDY0KXVpbnQ2NCIKCW1ldGhvZCAicGx1c0VxdWFsc0Zyb21HbG9iYWwodWludDY0LHVpbnQ2NCl1aW50NjQiCgltZXRob2QgInVmaXhlZExpdGVyYWxNdWwoKXVmaXhlZDY0eDIiCgltZXRob2QgInVmaXhlZE11bCh1Zml4ZWQ2NHgyLHVmaXhlZDY0eDIpdWZpeGVkNjR4MiIKCW1ldGhvZCAiQmlnVWZpeGVkTXVsKHVmaXhlZDEyOHgyLHVmaXhlZDEyOHgyKXVmaXhlZDEyOHgyIgoJbWV0aG9kICJUcmlwbGVCaWdVZml4ZWRNdWwodWZpeGVkMTI4eDIsdWZpeGVkMTI4eDIsdWZpeGVkMTI4eDIpdWZpeGVkMTI4eDIiCgltZXRob2QgImJveFRlc3QoKXVpbnQyNTYiCgltZXRob2QgInVuc2FmZU1ldGhvZEFyZ3ModWludDI1Nix1aW50MjU2KXVpbnQyNTYiCgltZXRob2QgInVpbnQyNTZDb21wYXJpc29uVHlwZSh1aW50MjU2LHVpbnQyNTYpdm9pZCIKCW1ldGhvZCAic3F1YXJlUm9vdDI1Nih1aW50MjU2LHVpbnQyNTYpdWludDI1NiIKCW1ldGhvZCAic3F1YXJlUm9vdDY0KHVpbnQ2NCx1aW50NjQpdWludDY0IgoJbWV0aG9kICJhZGRyZXNzVG9CaWdJbnQoYWRkcmVzcylib29sIgoJbWV0aG9kICJ1OFRvdTY0KCl1aW50NjQiCgltZXRob2QgImZ1bmNOYW1lKHVpbnQyNTYpdm9pZCIKCW1ldGhvZCAiYmlnaW50UGx1cyh1aW50NjQsdWludDY0KXVpbnQ2NCIKCW1ldGhvZCAiYml0d2lzZU9yKHVpbnQ2NCx1aW50NjQpdWludDY0IgoJbWV0aG9kICJiaXR3aXNlQW5kKHVpbnQ2NCx1aW50NjQpdWludDY0IgoJbWV0aG9kICJiaXR3aXNlWG9yKHVpbnQ2NCx1aW50NjQpdWludDY0IgoJbWV0aG9kICJiaXR3aXNlT3JVMjU2KHVpbnQyNTYsdWludDI1Nil1aW50MjU2IgoJbWV0aG9kICJiaXR3aXNlQW5kVTI1Nih1aW50MjU2LHVpbnQyNTYpdWludDI1NiIKCW1ldGhvZCAiYml0d2lzZVhvclUyNTYodWludDI1Nix1aW50MjU2KXVpbnQyNTYiCgltZXRob2QgImJpdHdpc2VOb3QodWludDY0KXVpbnQ2NCIKCW1ldGhvZCAiYml0d2lzZU5vdFUyNTYodWludDI1Nil1aW50MjU2IgoJbWV0aG9kICJtdWx3KHVpbnQ2NCx1aW50NjQpdWludDY0IgoJbWV0aG9kICJhZGR3KHVpbnQ2NCx1aW50NjQpdWludDY0IgoJbWV0aG9kICJleHB3KHVpbnQ2NCx1aW50NjQpdWludDY0IgoJbWV0aG9kICJkaXZ3KHVpbnQ2NCx1aW50NjQpdWludDY0IgoJbWV0aG9kICJkaXZtb2R3KHVpbnQ2NCx1aW50NjQpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV91NjRwbHVzICphYmlfcm91dGVfdTY0bWludXMgKmFiaV9yb3V0ZV91NjRtdWwgKmFiaV9yb3V0ZV91NjRkaXYgKmFiaV9yb3V0ZV91MjU2cGx1cyAqYWJpX3JvdXRlX3UyNTZtaW51cyAqYWJpX3JvdXRlX3UyNTZtdWwgKmFiaV9yb3V0ZV91MjU2ZGl2ICphYmlfcm91dGVfdTY0UmV0dXJuMjU2ICphYmlfcm91dGVfbWF4VTY0ICphYmlfcm91dGVfZXhwb25lbnQgKmFiaV9yb3V0ZV92YXJpYWJsZVR5cGVIaW50ICphYmlfcm91dGVfdWludDhwbHVzICphYmlfcm91dGVfdWludDhleHAgKmFiaV9yb3V0ZV9wbHVzRXF1YWxzICphYmlfcm91dGVfcGx1c0VxdWFsc0Zyb21HbG9iYWwgKmFiaV9yb3V0ZV91Zml4ZWRMaXRlcmFsTXVsICphYmlfcm91dGVfdWZpeGVkTXVsICphYmlfcm91dGVfQmlnVWZpeGVkTXVsICphYmlfcm91dGVfVHJpcGxlQmlnVWZpeGVkTXVsICphYmlfcm91dGVfYm94VGVzdCAqYWJpX3JvdXRlX3Vuc2FmZU1ldGhvZEFyZ3MgKmFiaV9yb3V0ZV91aW50MjU2Q29tcGFyaXNvblR5cGUgKmFiaV9yb3V0ZV9zcXVhcmVSb290MjU2ICphYmlfcm91dGVfc3F1YXJlUm9vdDY0ICphYmlfcm91dGVfYWRkcmVzc1RvQmlnSW50ICphYmlfcm91dGVfdThUb3U2NCAqYWJpX3JvdXRlX2Z1bmNOYW1lICphYmlfcm91dGVfYmlnaW50UGx1cyAqYWJpX3JvdXRlX2JpdHdpc2VPciAqYWJpX3JvdXRlX2JpdHdpc2VBbmQgKmFiaV9yb3V0ZV9iaXR3aXNlWG9yICphYmlfcm91dGVfYml0d2lzZU9yVTI1NiAqYWJpX3JvdXRlX2JpdHdpc2VBbmRVMjU2ICphYmlfcm91dGVfYml0d2lzZVhvclUyNTYgKmFiaV9yb3V0ZV9iaXR3aXNlTm90ICphYmlfcm91dGVfYml0d2lzZU5vdFUyNTYgKmFiaV9yb3V0ZV9tdWx3ICphYmlfcm91dGVfYWRkdyAqYWJpX3JvdXRlX2V4cHcgKmFiaV9yb3V0ZV9kaXZ3ICphYmlfcm91dGVfZGl2bW9kdwoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/MultiInheritance.approval.teal b/tests/contracts/artifacts/MultiInheritance.approval.teal index 628f1a6dd..73222aafe 100644 --- a/tests/contracts/artifacts/MultiInheritance.approval.teal +++ b/tests/contracts/artifacts/MultiInheritance.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // a()void -abi_route_a: +*abi_route_a: // execute a()void callsub a int 1 @@ -40,7 +40,7 @@ a: retsub // b()void -abi_route_b: +*abi_route_b: // execute b()void callsub b int 1 @@ -66,7 +66,7 @@ b: retsub // b2()void -abi_route_b2: +*abi_route_b2: // execute b2()void callsub b2 int 1 @@ -83,7 +83,7 @@ b2: retsub // foo()void -abi_route_foo: +*abi_route_foo: // execute foo()void callsub foo int 1 @@ -99,21 +99,21 @@ foo: log retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "a()void" method "b()void" method "b2()void" method "foo()void" txna ApplicationArgs 0 - match abi_route_a abi_route_b abi_route_b2 abi_route_foo + match *abi_route_a *abi_route_b *abi_route_b2 *abi_route_foo err \ No newline at end of file diff --git a/tests/contracts/artifacts/MultiInheritance.arc32.json b/tests/contracts/artifacts/MultiInheritance.arc32.json index ff4f85b5c..77d72dbae 100644 --- a/tests/contracts/artifacts/MultiInheritance.arc32.json +++ b/tests/contracts/artifacts/MultiInheritance.arc32.json @@ -63,7 +63,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBhKCl2b2lkCmFiaV9yb3V0ZV9hOgoJLy8gZXhlY3V0ZSBhKCl2b2lkCgljYWxsc3ViIGEKCWludCAxCglyZXR1cm4KCi8vIGEoKTogdm9pZAphOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6MTYKCS8vIHRoaXMuYUtleS52YWx1ZSA9IDEzMzcKCWJ5dGUgMHg2MSAvLyAiYSIKCWludCAxMzM3CglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBiKCl2b2lkCmFiaV9yb3V0ZV9iOgoJLy8gZXhlY3V0ZSBiKCl2b2lkCgljYWxsc3ViIGIKCWludCAxCglyZXR1cm4KCi8vIGIoKTogdm9pZApiOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6MjQKCS8vIGFzc2VydCh0aGlzLmFLZXkudmFsdWUgPT09IDEzMzcpCglieXRlIDB4NjEgLy8gImEiCglhcHBfZ2xvYmFsX2dldAoJaW50IDEzMzcKCT09Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czoyNQoJLy8gdGhpcy5iS2V5LnZhbHVlID0gNDIKCWJ5dGUgMHg2MiAvLyAiYiIKCWludCA0MgoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gYjIoKXZvaWQKYWJpX3JvdXRlX2IyOgoJLy8gZXhlY3V0ZSBiMigpdm9pZAoJY2FsbHN1YiBiMgoJaW50IDEKCXJldHVybgoKLy8gYjIoKTogdm9pZApiMjoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjg4CgkvLyBsb2coJ2IyJykKCWJ5dGUgMHg2MjMyIC8vICJiMiIKCWxvZwoJcmV0c3ViCgovLyBmb28oKXZvaWQKYWJpX3JvdXRlX2ZvbzoKCS8vIGV4ZWN1dGUgZm9vKCl2b2lkCgljYWxsc3ViIGZvbwoJaW50IDEKCXJldHVybgoKLy8gZm9vKCk6IHZvaWQKZm9vOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6OTQKCS8vIGxvZyhCMi5hcHByb3ZhbFByb2dyYW0oKSkKCWJ5dGUgYjY0IENpQUJBVEVZRklFR0N6RVpDSTBNQUM4QUFBQUFBQUFBQUFBQUFDRUFBQUFBQUFBQUFBQUFBSWdBQWlKRGlnQUFnQUZoZ2JrS1o0bUlBQUlpUTRvQUFJQUNZakt3aVNKRGdBUzRSSHMyTmhvQWpnSC84UUNBQkI1NnJSeUFCRVE3TXhrMkdnQ09Bdis5LzgwQQoJbG9nCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgImEoKXZvaWQiCgltZXRob2QgImIoKXZvaWQiCgltZXRob2QgImIyKCl2b2lkIgoJbWV0aG9kICJmb28oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfYSBhYmlfcm91dGVfYiBhYmlfcm91dGVfYjIgYWJpX3JvdXRlX2ZvbwoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBhKCl2b2lkCiphYmlfcm91dGVfYToKCS8vIGV4ZWN1dGUgYSgpdm9pZAoJY2FsbHN1YiBhCglpbnQgMQoJcmV0dXJuCgovLyBhKCk6IHZvaWQKYToKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjE2CgkvLyB0aGlzLmFLZXkudmFsdWUgPSAxMzM3CglieXRlIDB4NjEgLy8gImEiCglpbnQgMTMzNwoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gYigpdm9pZAoqYWJpX3JvdXRlX2I6CgkvLyBleGVjdXRlIGIoKXZvaWQKCWNhbGxzdWIgYgoJaW50IDEKCXJldHVybgoKLy8gYigpOiB2b2lkCmI6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czoyNAoJLy8gYXNzZXJ0KHRoaXMuYUtleS52YWx1ZSA9PT0gMTMzNykKCWJ5dGUgMHg2MSAvLyAiYSIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMTMzNwoJPT0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjI1CgkvLyB0aGlzLmJLZXkudmFsdWUgPSA0MgoJYnl0ZSAweDYyIC8vICJiIgoJaW50IDQyCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBiMigpdm9pZAoqYWJpX3JvdXRlX2IyOgoJLy8gZXhlY3V0ZSBiMigpdm9pZAoJY2FsbHN1YiBiMgoJaW50IDEKCXJldHVybgoKLy8gYjIoKTogdm9pZApiMjoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjg4CgkvLyBsb2coJ2IyJykKCWJ5dGUgMHg2MjMyIC8vICJiMiIKCWxvZwoJcmV0c3ViCgovLyBmb28oKXZvaWQKKmFiaV9yb3V0ZV9mb286CgkvLyBleGVjdXRlIGZvbygpdm9pZAoJY2FsbHN1YiBmb28KCWludCAxCglyZXR1cm4KCi8vIGZvbygpOiB2b2lkCmZvbzoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjk0CgkvLyBsb2coQjIuYXBwcm92YWxQcm9ncmFtKCkpCglieXRlIGI2NCBDaUFCQVRFWUZJRUdDekVaQ0kwTUFDOEFBQUFBQUFBQUFBQUFBQ0VBQUFBQUFBQUFBQUFBQUlnQUFpSkRpZ0FBZ0FGaGdia0taNG1JQUFJaVE0b0FBSUFDWWpLd2lTSkRnQVM0UkhzMk5ob0FqZ0gvOFFDQUJCNTZyUnlBQkVRN014azJHZ0NPQXYrOS84MEEKCWxvZwoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiYSgpdm9pZCIKCW1ldGhvZCAiYigpdm9pZCIKCW1ldGhvZCAiYjIoKXZvaWQiCgltZXRob2QgImZvbygpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYSAqYWJpX3JvdXRlX2IgKmFiaV9yb3V0ZV9iMiAqYWJpX3JvdXRlX2ZvbwoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/MultiInheritanceProgram.approval.teal b/tests/contracts/artifacts/MultiInheritanceProgram.approval.teal index b94206dd8..6eb53c28f 100644 --- a/tests/contracts/artifacts/MultiInheritanceProgram.approval.teal +++ b/tests/contracts/artifacts/MultiInheritanceProgram.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // prog()void -abi_route_prog: +*abi_route_prog: // execute prog()void callsub prog int 1 @@ -38,18 +38,18 @@ prog: log retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "prog()void" txna ApplicationArgs 0 - match abi_route_prog + match *abi_route_prog err \ No newline at end of file diff --git a/tests/contracts/artifacts/MultiInheritanceProgram.arc32.json b/tests/contracts/artifacts/MultiInheritanceProgram.arc32.json index 141b59e83..0a33328ca 100644 --- a/tests/contracts/artifacts/MultiInheritanceProgram.arc32.json +++ b/tests/contracts/artifacts/MultiInheritanceProgram.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBwcm9nKCl2b2lkCmFiaV9yb3V0ZV9wcm9nOgoJLy8gZXhlY3V0ZSBwcm9nKCl2b2lkCgljYWxsc3ViIHByb2cKCWludCAxCglyZXR1cm4KCi8vIHByb2coKTogdm9pZApwcm9nOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6MTAwCgkvLyBsb2coTXVsdGlJbmhlcml0YW5jZS5hcHByb3ZhbFByb2dyYW0oKSkKCWJ5dGUgYjY0IENpQUNBYmtLSmdFQllURVlGSUVHQ3pFWkNJME1BTGNBQUFBQUFBQUFBQUFBQUtrQUFBQUFBQUFBQUFBQUFJZ0FBaUpEaWdBQUtDTm5pWWdBQWlKRGlnQUFLR1FqRWtTQUFXS0JLbWVKaUFBQ0lrT0tBQUNBQW1JeXNJbUlBQUlpUTRvQUFJQnNDaUFCQVRFWUZJRUdDekVaQ0kwTUFDOEFBQUFBQUFBQUFBQUFBQ0VBQUFBQUFBQUFBQUFBQUlnQUFpSkRpZ0FBZ0FGaGdia0taNG1JQUFJaVE0b0FBSUFDWWpLd2lTSkRnQVM0UkhzMk5ob0FqZ0gvOFFDQUJCNTZyUnlBQkVRN014azJHZ0NPQXYrOS84MEFzSWtpUTRBRXVFUjdOallhQUk0Qi8vRUFnQVFlZXEwY2dBUTZ5UXNJZ0FSRU96TVpnQVNFUm5yL05ob0FqZ1QvSmY4eC8wWC9Vd0E9Cglsb2cKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAicHJvZygpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9wcm9nCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBwcm9nKCl2b2lkCiphYmlfcm91dGVfcHJvZzoKCS8vIGV4ZWN1dGUgcHJvZygpdm9pZAoJY2FsbHN1YiBwcm9nCglpbnQgMQoJcmV0dXJuCgovLyBwcm9nKCk6IHZvaWQKcHJvZzoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjEwMAoJLy8gbG9nKE11bHRpSW5oZXJpdGFuY2UuYXBwcm92YWxQcm9ncmFtKCkpCglieXRlIGI2NCBDaUFDQWJrS0pnRUJZVEVZRklFR0N6RVpDSTBNQUxjQUFBQUFBQUFBQUFBQUFLa0FBQUFBQUFBQUFBQUFBSWdBQWlKRGlnQUFLQ05uaVlnQUFpSkRpZ0FBS0dRakVrU0FBV0tCS21lSmlBQUNJa09LQUFDQUFtSXlzSW1JQUFJaVE0b0FBSUJzQ2lBQkFURVlGSUVHQ3pFWkNJME1BQzhBQUFBQUFBQUFBQUFBQUNFQUFBQUFBQUFBQUFBQUFJZ0FBaUpEaWdBQWdBRmhnYmtLWjRtSUFBSWlRNG9BQUlBQ1lqS3dpU0pEZ0FTNFJIczJOaG9BamdILzhRQ0FCQjU2clJ5QUJFUTdNeGsyR2dDT0F2KzkvODBBc0lraVE0QUV1RVI3TmpZYUFJNEIvL0VBZ0FRZWVxMGNnQVE2eVFzSWdBUkVPek1aZ0FTRVJuci9OaG9BamdUL0pmOHgvMFgvVXdBPQoJbG9nCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJwcm9nKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9wcm9nCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ProgramVersion.approval.teal b/tests/contracts/artifacts/ProgramVersion.approval.teal index 759f8a9df..5c0e694e8 100644 --- a/tests/contracts/artifacts/ProgramVersion.approval.teal +++ b/tests/contracts/artifacts/ProgramVersion.approval.teal @@ -1,6 +1,6 @@ #pragma version 8 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,24 +9,24 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err \ No newline at end of file diff --git a/tests/contracts/artifacts/ProgramVersion.arc32.json b/tests/contracts/artifacts/ProgramVersion.arc32.json index 922e45331..a85cdc51d 100644 --- a/tests/contracts/artifacts/ProgramVersion.arc32.json +++ b/tests/contracts/artifacts/ProgramVersion.arc32.json @@ -34,7 +34,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuODMuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBjcmVhdGVfTm9PcCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVECgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuODMuMQovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgllcnIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDg=" }, "contract": { diff --git a/tests/contracts/artifacts/SchemaContract.approval.teal b/tests/contracts/artifacts/SchemaContract.approval.teal index 164147464..c6e8fcfee 100644 --- a/tests/contracts/artifacts/SchemaContract.approval.teal +++ b/tests/contracts/artifacts/SchemaContract.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,24 +9,24 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err \ No newline at end of file diff --git a/tests/contracts/artifacts/SchemaContract.arc32.json b/tests/contracts/artifacts/SchemaContract.arc32.json index 2df3bbef2..474ee2cc2 100644 --- a/tests/contracts/artifacts/SchemaContract.arc32.json +++ b/tests/contracts/artifacts/SchemaContract.arc32.json @@ -34,7 +34,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/StorageTest.approval.teal b/tests/contracts/artifacts/StorageTest.approval.teal index 0b535bdff..5a72fe7d8 100644 --- a/tests/contracts/artifacts/StorageTest.approval.teal +++ b/tests/contracts/artifacts/StorageTest.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // prefix()void -abi_route_prefix: +*abi_route_prefix: // execute prefix()void callsub prefix int 1 @@ -56,7 +56,7 @@ prefix: retsub // globalKeyPut()void -abi_route_globalKeyPut: +*abi_route_globalKeyPut: // execute globalKeyPut()void callsub globalKeyPut int 1 @@ -74,7 +74,7 @@ globalKeyPut: retsub // globalKeyGet()void -abi_route_globalKeyGet: +*abi_route_globalKeyGet: // execute globalKeyGet()void callsub globalKeyGet int 1 @@ -94,7 +94,7 @@ globalKeyGet: retsub // globalKeyDelete()void -abi_route_globalKeyDelete: +*abi_route_globalKeyDelete: // execute globalKeyDelete()void callsub globalKeyDelete int 1 @@ -111,7 +111,7 @@ globalKeyDelete: retsub // globalKeyExists()void -abi_route_globalKeyExists: +*abi_route_globalKeyExists: // execute globalKeyExists()void callsub globalKeyExists int 1 @@ -132,7 +132,7 @@ globalKeyExists: retsub // localKeyPut(account)void -abi_route_localKeyPut: +*abi_route_localKeyPut: // a: account txna ApplicationArgs 1 btoi @@ -156,7 +156,7 @@ localKeyPut: retsub // localKeyGet(account)void -abi_route_localKeyGet: +*abi_route_localKeyGet: // a: account txna ApplicationArgs 1 btoi @@ -182,7 +182,7 @@ localKeyGet: retsub // localKeyDelete(account)void -abi_route_localKeyDelete: +*abi_route_localKeyDelete: // a: account txna ApplicationArgs 1 btoi @@ -205,7 +205,7 @@ localKeyDelete: retsub // localKeyExists(account)void -abi_route_localKeyExists: +*abi_route_localKeyExists: // a: account txna ApplicationArgs 1 btoi @@ -232,7 +232,7 @@ localKeyExists: retsub // boxKeyPut()void -abi_route_boxKeyPut: +*abi_route_boxKeyPut: // execute boxKeyPut()void callsub boxKeyPut int 1 @@ -250,7 +250,7 @@ boxKeyPut: retsub // boxKeyGet()void -abi_route_boxKeyGet: +*abi_route_boxKeyGet: // execute boxKeyGet()void callsub boxKeyGet int 1 @@ -271,7 +271,7 @@ boxKeyGet: retsub // boxKeyDelete()void -abi_route_boxKeyDelete: +*abi_route_boxKeyDelete: // execute boxKeyDelete()void callsub boxKeyDelete int 1 @@ -288,7 +288,7 @@ boxKeyDelete: retsub // boxKeyExists()void -abi_route_boxKeyExists: +*abi_route_boxKeyExists: // execute boxKeyExists()void callsub boxKeyExists int 1 @@ -308,7 +308,7 @@ boxKeyExists: retsub // globalMapPut()void -abi_route_globalMapPut: +*abi_route_globalMapPut: // execute globalMapPut()void callsub globalMapPut int 1 @@ -326,7 +326,7 @@ globalMapPut: retsub // globalMapGet()void -abi_route_globalMapGet: +*abi_route_globalMapGet: // execute globalMapGet()void callsub globalMapGet int 1 @@ -346,7 +346,7 @@ globalMapGet: retsub // globalMapDelete()void -abi_route_globalMapDelete: +*abi_route_globalMapDelete: // execute globalMapDelete()void callsub globalMapDelete int 1 @@ -363,7 +363,7 @@ globalMapDelete: retsub // globalMapExists()void -abi_route_globalMapExists: +*abi_route_globalMapExists: // execute globalMapExists()void callsub globalMapExists int 1 @@ -384,7 +384,7 @@ globalMapExists: retsub // localMapPut(account)void -abi_route_localMapPut: +*abi_route_localMapPut: // a: account txna ApplicationArgs 1 btoi @@ -408,7 +408,7 @@ localMapPut: retsub // localMapGet(account)void -abi_route_localMapGet: +*abi_route_localMapGet: // a: account txna ApplicationArgs 1 btoi @@ -434,7 +434,7 @@ localMapGet: retsub // localMapDelete(account)void -abi_route_localMapDelete: +*abi_route_localMapDelete: // a: account txna ApplicationArgs 1 btoi @@ -457,7 +457,7 @@ localMapDelete: retsub // localMapExists(account)void -abi_route_localMapExists: +*abi_route_localMapExists: // a: account txna ApplicationArgs 1 btoi @@ -484,7 +484,7 @@ localMapExists: retsub // boxMapPut()void -abi_route_boxMapPut: +*abi_route_boxMapPut: // execute boxMapPut()void callsub boxMapPut int 1 @@ -502,7 +502,7 @@ boxMapPut: retsub // boxMapGet()void -abi_route_boxMapGet: +*abi_route_boxMapGet: // execute boxMapGet()void callsub boxMapGet int 1 @@ -523,7 +523,7 @@ boxMapGet: retsub // boxMapDelete()void -abi_route_boxMapDelete: +*abi_route_boxMapDelete: // execute boxMapDelete()void callsub boxMapDelete int 1 @@ -540,7 +540,7 @@ boxMapDelete: retsub // boxMapExists()void -abi_route_boxMapExists: +*abi_route_boxMapExists: // execute boxMapExists()void callsub boxMapExists int 1 @@ -560,7 +560,7 @@ boxMapExists: retsub // boxKeyCreate()void -abi_route_boxKeyCreate: +*abi_route_boxKeyCreate: // execute boxKeyCreate()void callsub boxKeyCreate int 1 @@ -579,7 +579,7 @@ boxKeyCreate: retsub // boxMapCreate()void -abi_route_boxMapCreate: +*abi_route_boxMapCreate: // execute boxMapCreate()void callsub boxMapCreate int 1 @@ -598,7 +598,7 @@ boxMapCreate: retsub // boxKeyLength()uint64 -abi_route_boxKeyLength: +*abi_route_boxKeyLength: // The ABI return prefix byte 0x151f7c75 @@ -622,7 +622,7 @@ boxKeyLength: retsub // boxMapLength()uint64 -abi_route_boxMapLength: +*abi_route_boxMapLength: // The ABI return prefix byte 0x151f7c75 @@ -646,7 +646,7 @@ boxMapLength: retsub // boxKeyReplace()void -abi_route_boxKeyReplace: +*abi_route_boxKeyReplace: // execute boxKeyReplace()void callsub boxKeyReplace int 1 @@ -665,7 +665,7 @@ boxKeyReplace: retsub // boxMapReplace()void -abi_route_boxMapReplace: +*abi_route_boxMapReplace: // execute boxMapReplace()void callsub boxMapReplace int 1 @@ -684,7 +684,7 @@ boxMapReplace: retsub // boxKeyExtract()string -abi_route_boxKeyExtract: +*abi_route_boxKeyExtract: // The ABI return prefix byte 0x151f7c75 @@ -714,7 +714,7 @@ boxKeyExtract: retsub // boxMapExtract()string -abi_route_boxMapExtract: +*abi_route_boxMapExtract: // The ABI return prefix byte 0x151f7c75 @@ -744,7 +744,7 @@ boxMapExtract: retsub // isOptedIn()bool -abi_route_isOptedIn: +*abi_route_isOptedIn: // The ABI return prefix byte 0x151f7c75 @@ -771,7 +771,7 @@ isOptedIn: retsub // exGlobal()void -abi_route_exGlobal: +*abi_route_exGlobal: // execute exGlobal()void callsub exGlobal int 1 @@ -791,7 +791,7 @@ exGlobal: retsub // exLocal()void -abi_route_exLocal: +*abi_route_exLocal: // execute exLocal()void callsub exLocal int 1 @@ -812,7 +812,7 @@ exLocal: retsub // accessStaticValueInLargeBox()uint16 -abi_route_accessStaticValueInLargeBox: +*abi_route_accessStaticValueInLargeBox: // The ABI return prefix byte 0x151f7c75 @@ -858,7 +858,7 @@ accessStaticValueInLargeBox: retsub // dynamicAccessStaticValueInLargeBox(uint64)uint16 -abi_route_dynamicAccessStaticValueInLargeBox: +*abi_route_dynamicAccessStaticValueInLargeBox: // The ABI return prefix byte 0x151f7c75 @@ -914,7 +914,7 @@ dynamicAccessStaticValueInLargeBox: retsub // boxResize()void -abi_route_boxResize: +*abi_route_boxResize: // execute boxResize()void callsub boxResize int 1 @@ -938,7 +938,7 @@ boxResize: retsub // boxSplice()void -abi_route_boxSplice: +*abi_route_boxSplice: // execute boxSplice()void callsub boxSplice int 1 @@ -965,17 +965,17 @@ boxSplice: box_splice retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "prefix()void" method "globalKeyPut()void" method "globalKeyGet()void" @@ -1017,5 +1017,5 @@ call_NoOp: method "boxResize()void" method "boxSplice()void" txna ApplicationArgs 0 - match abi_route_prefix abi_route_globalKeyPut abi_route_globalKeyGet abi_route_globalKeyDelete abi_route_globalKeyExists abi_route_localKeyPut abi_route_localKeyGet abi_route_localKeyDelete abi_route_localKeyExists abi_route_boxKeyPut abi_route_boxKeyGet abi_route_boxKeyDelete abi_route_boxKeyExists abi_route_globalMapPut abi_route_globalMapGet abi_route_globalMapDelete abi_route_globalMapExists abi_route_localMapPut abi_route_localMapGet abi_route_localMapDelete abi_route_localMapExists abi_route_boxMapPut abi_route_boxMapGet abi_route_boxMapDelete abi_route_boxMapExists abi_route_boxKeyCreate abi_route_boxMapCreate abi_route_boxKeyLength abi_route_boxMapLength abi_route_boxKeyReplace abi_route_boxMapReplace abi_route_boxKeyExtract abi_route_boxMapExtract abi_route_isOptedIn abi_route_exGlobal abi_route_exLocal abi_route_accessStaticValueInLargeBox abi_route_dynamicAccessStaticValueInLargeBox abi_route_boxResize abi_route_boxSplice + match *abi_route_prefix *abi_route_globalKeyPut *abi_route_globalKeyGet *abi_route_globalKeyDelete *abi_route_globalKeyExists *abi_route_localKeyPut *abi_route_localKeyGet *abi_route_localKeyDelete *abi_route_localKeyExists *abi_route_boxKeyPut *abi_route_boxKeyGet *abi_route_boxKeyDelete *abi_route_boxKeyExists *abi_route_globalMapPut *abi_route_globalMapGet *abi_route_globalMapDelete *abi_route_globalMapExists *abi_route_localMapPut *abi_route_localMapGet *abi_route_localMapDelete *abi_route_localMapExists *abi_route_boxMapPut *abi_route_boxMapGet *abi_route_boxMapDelete *abi_route_boxMapExists *abi_route_boxKeyCreate *abi_route_boxMapCreate *abi_route_boxKeyLength *abi_route_boxMapLength *abi_route_boxKeyReplace *abi_route_boxMapReplace *abi_route_boxKeyExtract *abi_route_boxMapExtract *abi_route_isOptedIn *abi_route_exGlobal *abi_route_exLocal *abi_route_accessStaticValueInLargeBox *abi_route_dynamicAccessStaticValueInLargeBox *abi_route_boxResize *abi_route_boxSplice err \ No newline at end of file diff --git a/tests/contracts/artifacts/StorageTest.arc32.json b/tests/contracts/artifacts/StorageTest.arc32.json index b1edde8c8..d33ec4806 100644 --- a/tests/contracts/artifacts/StorageTest.arc32.json +++ b/tests/contracts/artifacts/StorageTest.arc32.json @@ -244,7 +244,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBwcmVmaXgoKXZvaWQKYWJpX3JvdXRlX3ByZWZpeDoKCS8vIGV4ZWN1dGUgcHJlZml4KCl2b2lkCgljYWxsc3ViIHByZWZpeAoJaW50IDEKCXJldHVybgoKLy8gcHJlZml4KCk6IHZvaWQKcHJlZml4OgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoyNgoJLy8gdGhpcy5ib3hNYXBXaXRoUHJlZml4KCdvbycpLnZhbHVlID0gJ2JhcicKCWJ5dGUgMHg2NjZmNmYKCWR1cAoJYm94X2RlbAoJcG9wCglieXRlIDB4NjI2MTcyIC8vICJiYXIiCglib3hfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoyNwoJLy8gdGhpcy5nbG9iYWxNYXBXaXRoUHJlZml4KCdvbycpLnZhbHVlID0gJ2JhcicKCWJ5dGUgMHg2NjZmNmYKCWJ5dGUgMHg2MjYxNzIgLy8gImJhciIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoyOAoJLy8gdGhpcy5sb2NhbE1hcFdpdGhQcmVmaXgodGhpcy50eG4uc2VuZGVyLCAnb28nKS52YWx1ZSA9ICdiYXInCgl0eG4gU2VuZGVyCglieXRlIDB4NjY2ZjZmCglieXRlIDB4NjI2MTcyIC8vICJiYXIiCglhcHBfbG9jYWxfcHV0CglyZXRzdWIKCi8vIGdsb2JhbEtleVB1dCgpdm9pZAphYmlfcm91dGVfZ2xvYmFsS2V5UHV0OgoJLy8gZXhlY3V0ZSBnbG9iYWxLZXlQdXQoKXZvaWQKCWNhbGxzdWIgZ2xvYmFsS2V5UHV0CglpbnQgMQoJcmV0dXJuCgovLyBnbG9iYWxLZXlQdXQoKTogdm9pZApnbG9iYWxLZXlQdXQ6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjMyCgkvLyB0aGlzLmdsb2JhbEtleS52YWx1ZSA9ICdiYXInCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglieXRlIDB4NjI2MTcyIC8vICJiYXIiCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBnbG9iYWxLZXlHZXQoKXZvaWQKYWJpX3JvdXRlX2dsb2JhbEtleUdldDoKCS8vIGV4ZWN1dGUgZ2xvYmFsS2V5R2V0KCl2b2lkCgljYWxsc3ViIGdsb2JhbEtleUdldAoJaW50IDEKCXJldHVybgoKLy8gZ2xvYmFsS2V5R2V0KCk6IHZvaWQKZ2xvYmFsS2V5R2V0OgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czozNgoJLy8gYXNzZXJ0KHRoaXMuZ2xvYmFsS2V5LnZhbHVlID09PSAnYmFyJykKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWFwcF9nbG9iYWxfZ2V0CglieXRlIDB4NjI2MTcyIC8vICJiYXIiCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIGdsb2JhbEtleURlbGV0ZSgpdm9pZAphYmlfcm91dGVfZ2xvYmFsS2V5RGVsZXRlOgoJLy8gZXhlY3V0ZSBnbG9iYWxLZXlEZWxldGUoKXZvaWQKCWNhbGxzdWIgZ2xvYmFsS2V5RGVsZXRlCglpbnQgMQoJcmV0dXJuCgovLyBnbG9iYWxLZXlEZWxldGUoKTogdm9pZApnbG9iYWxLZXlEZWxldGU6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjQwCgkvLyB0aGlzLmdsb2JhbEtleS5kZWxldGUoKQoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYXBwX2dsb2JhbF9kZWwKCXJldHN1YgoKLy8gZ2xvYmFsS2V5RXhpc3RzKCl2b2lkCmFiaV9yb3V0ZV9nbG9iYWxLZXlFeGlzdHM6CgkvLyBleGVjdXRlIGdsb2JhbEtleUV4aXN0cygpdm9pZAoJY2FsbHN1YiBnbG9iYWxLZXlFeGlzdHMKCWludCAxCglyZXR1cm4KCi8vIGdsb2JhbEtleUV4aXN0cygpOiB2b2lkCmdsb2JhbEtleUV4aXN0czoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6NDQKCS8vIGFzc2VydCh0aGlzLmdsb2JhbEtleS5leGlzdHMpCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglhcHBfZ2xvYmFsX2dldF9leAoJc3dhcAoJcG9wCglhc3NlcnQKCXJldHN1YgoKLy8gbG9jYWxLZXlQdXQoYWNjb3VudCl2b2lkCmFiaV9yb3V0ZV9sb2NhbEtleVB1dDoKCS8vIGE6IGFjY291bnQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCXR4bmFzIEFjY291bnRzCgoJLy8gZXhlY3V0ZSBsb2NhbEtleVB1dChhY2NvdW50KXZvaWQKCWNhbGxzdWIgbG9jYWxLZXlQdXQKCWludCAxCglyZXR1cm4KCi8vIGxvY2FsS2V5UHV0KGE6IEFjY291bnQpOiB2b2lkCmxvY2FsS2V5UHV0OgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czo0OAoJLy8gdGhpcy5sb2NhbEtleShhKS52YWx1ZSA9ICdiYXInCglmcmFtZV9kaWcgLTEgLy8gYTogQWNjb3VudAoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYnl0ZSAweDYyNjE3MiAvLyAiYmFyIgoJYXBwX2xvY2FsX3B1dAoJcmV0c3ViCgovLyBsb2NhbEtleUdldChhY2NvdW50KXZvaWQKYWJpX3JvdXRlX2xvY2FsS2V5R2V0OgoJLy8gYTogYWNjb3VudAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoJdHhuYXMgQWNjb3VudHMKCgkvLyBleGVjdXRlIGxvY2FsS2V5R2V0KGFjY291bnQpdm9pZAoJY2FsbHN1YiBsb2NhbEtleUdldAoJaW50IDEKCXJldHVybgoKLy8gbG9jYWxLZXlHZXQoYTogQWNjb3VudCk6IHZvaWQKbG9jYWxLZXlHZXQ6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjUyCgkvLyBhc3NlcnQodGhpcy5sb2NhbEtleShhKS52YWx1ZSA9PT0gJ2JhcicpCglmcmFtZV9kaWcgLTEgLy8gYTogQWNjb3VudAoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYXBwX2xvY2FsX2dldAoJYnl0ZSAweDYyNjE3MiAvLyAiYmFyIgoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBsb2NhbEtleURlbGV0ZShhY2NvdW50KXZvaWQKYWJpX3JvdXRlX2xvY2FsS2V5RGVsZXRlOgoJLy8gYTogYWNjb3VudAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoJdHhuYXMgQWNjb3VudHMKCgkvLyBleGVjdXRlIGxvY2FsS2V5RGVsZXRlKGFjY291bnQpdm9pZAoJY2FsbHN1YiBsb2NhbEtleURlbGV0ZQoJaW50IDEKCXJldHVybgoKLy8gbG9jYWxLZXlEZWxldGUoYTogQWNjb3VudCk6IHZvaWQKbG9jYWxLZXlEZWxldGU6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjU2CgkvLyB0aGlzLmxvY2FsS2V5KGEpLmRlbGV0ZSgpCglmcmFtZV9kaWcgLTEgLy8gYTogQWNjb3VudAoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYXBwX2xvY2FsX2RlbAoJcmV0c3ViCgovLyBsb2NhbEtleUV4aXN0cyhhY2NvdW50KXZvaWQKYWJpX3JvdXRlX2xvY2FsS2V5RXhpc3RzOgoJLy8gYTogYWNjb3VudAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoJdHhuYXMgQWNjb3VudHMKCgkvLyBleGVjdXRlIGxvY2FsS2V5RXhpc3RzKGFjY291bnQpdm9pZAoJY2FsbHN1YiBsb2NhbEtleUV4aXN0cwoJaW50IDEKCXJldHVybgoKLy8gbG9jYWxLZXlFeGlzdHMoYTogQWNjb3VudCk6IHZvaWQKbG9jYWxLZXlFeGlzdHM6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjYwCgkvLyBhc3NlcnQodGhpcy5sb2NhbEtleShhKS5leGlzdHMpCglmcmFtZV9kaWcgLTEgLy8gYTogQWNjb3VudAoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYXBwX2xvY2FsX2dldF9leAoJc3dhcAoJcG9wCglhc3NlcnQKCXJldHN1YgoKLy8gYm94S2V5UHV0KCl2b2lkCmFiaV9yb3V0ZV9ib3hLZXlQdXQ6CgkvLyBleGVjdXRlIGJveEtleVB1dCgpdm9pZAoJY2FsbHN1YiBib3hLZXlQdXQKCWludCAxCglyZXR1cm4KCi8vIGJveEtleVB1dCgpOiB2b2lkCmJveEtleVB1dDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6NjQKCS8vIHRoaXMuYm94S2V5LnZhbHVlID0gJ2JhcicKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWJ5dGUgMHg2MjYxNzIgLy8gImJhciIKCWJveF9wdXQKCXJldHN1YgoKLy8gYm94S2V5R2V0KCl2b2lkCmFiaV9yb3V0ZV9ib3hLZXlHZXQ6CgkvLyBleGVjdXRlIGJveEtleUdldCgpdm9pZAoJY2FsbHN1YiBib3hLZXlHZXQKCWludCAxCglyZXR1cm4KCi8vIGJveEtleUdldCgpOiB2b2lkCmJveEtleUdldDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6NjgKCS8vIGFzc2VydCh0aGlzLmJveEtleS52YWx1ZSA9PT0gJ2JhcicpCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglib3hfZ2V0Cglhc3NlcnQKCWJ5dGUgMHg2MjYxNzIgLy8gImJhciIKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gYm94S2V5RGVsZXRlKCl2b2lkCmFiaV9yb3V0ZV9ib3hLZXlEZWxldGU6CgkvLyBleGVjdXRlIGJveEtleURlbGV0ZSgpdm9pZAoJY2FsbHN1YiBib3hLZXlEZWxldGUKCWludCAxCglyZXR1cm4KCi8vIGJveEtleURlbGV0ZSgpOiB2b2lkCmJveEtleURlbGV0ZToKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6NzIKCS8vIHRoaXMuYm94S2V5LmRlbGV0ZSgpCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglib3hfZGVsCglyZXRzdWIKCi8vIGJveEtleUV4aXN0cygpdm9pZAphYmlfcm91dGVfYm94S2V5RXhpc3RzOgoJLy8gZXhlY3V0ZSBib3hLZXlFeGlzdHMoKXZvaWQKCWNhbGxzdWIgYm94S2V5RXhpc3RzCglpbnQgMQoJcmV0dXJuCgovLyBib3hLZXlFeGlzdHMoKTogdm9pZApib3hLZXlFeGlzdHM6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjc2CgkvLyBhc3NlcnQodGhpcy5ib3hLZXkuZXhpc3RzKQoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYm94X2xlbgoJc3dhcAoJcG9wCglhc3NlcnQKCXJldHN1YgoKLy8gZ2xvYmFsTWFwUHV0KCl2b2lkCmFiaV9yb3V0ZV9nbG9iYWxNYXBQdXQ6CgkvLyBleGVjdXRlIGdsb2JhbE1hcFB1dCgpdm9pZAoJY2FsbHN1YiBnbG9iYWxNYXBQdXQKCWludCAxCglyZXR1cm4KCi8vIGdsb2JhbE1hcFB1dCgpOiB2b2lkCmdsb2JhbE1hcFB1dDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6ODAKCS8vIHRoaXMuZ2xvYmFsTWFwKCdmb28nKS52YWx1ZSA9ICdiYXInCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglieXRlIDB4NjI2MTcyIC8vICJiYXIiCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBnbG9iYWxNYXBHZXQoKXZvaWQKYWJpX3JvdXRlX2dsb2JhbE1hcEdldDoKCS8vIGV4ZWN1dGUgZ2xvYmFsTWFwR2V0KCl2b2lkCgljYWxsc3ViIGdsb2JhbE1hcEdldAoJaW50IDEKCXJldHVybgoKLy8gZ2xvYmFsTWFwR2V0KCk6IHZvaWQKZ2xvYmFsTWFwR2V0OgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czo4NAoJLy8gYXNzZXJ0KHRoaXMuZ2xvYmFsTWFwKCdmb28nKS52YWx1ZSA9PT0gJ2JhcicpCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglhcHBfZ2xvYmFsX2dldAoJYnl0ZSAweDYyNjE3MiAvLyAiYmFyIgoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBnbG9iYWxNYXBEZWxldGUoKXZvaWQKYWJpX3JvdXRlX2dsb2JhbE1hcERlbGV0ZToKCS8vIGV4ZWN1dGUgZ2xvYmFsTWFwRGVsZXRlKCl2b2lkCgljYWxsc3ViIGdsb2JhbE1hcERlbGV0ZQoJaW50IDEKCXJldHVybgoKLy8gZ2xvYmFsTWFwRGVsZXRlKCk6IHZvaWQKZ2xvYmFsTWFwRGVsZXRlOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czo4OAoJLy8gdGhpcy5nbG9iYWxNYXAoJ2ZvbycpLmRlbGV0ZSgpCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglhcHBfZ2xvYmFsX2RlbAoJcmV0c3ViCgovLyBnbG9iYWxNYXBFeGlzdHMoKXZvaWQKYWJpX3JvdXRlX2dsb2JhbE1hcEV4aXN0czoKCS8vIGV4ZWN1dGUgZ2xvYmFsTWFwRXhpc3RzKCl2b2lkCgljYWxsc3ViIGdsb2JhbE1hcEV4aXN0cwoJaW50IDEKCXJldHVybgoKLy8gZ2xvYmFsTWFwRXhpc3RzKCk6IHZvaWQKZ2xvYmFsTWFwRXhpc3RzOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czo5MgoJLy8gYXNzZXJ0KHRoaXMuZ2xvYmFsTWFwKCdmb28nKS5leGlzdHMpCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglhcHBfZ2xvYmFsX2dldF9leAoJc3dhcAoJcG9wCglhc3NlcnQKCXJldHN1YgoKLy8gbG9jYWxNYXBQdXQoYWNjb3VudCl2b2lkCmFiaV9yb3V0ZV9sb2NhbE1hcFB1dDoKCS8vIGE6IGFjY291bnQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCXR4bmFzIEFjY291bnRzCgoJLy8gZXhlY3V0ZSBsb2NhbE1hcFB1dChhY2NvdW50KXZvaWQKCWNhbGxzdWIgbG9jYWxNYXBQdXQKCWludCAxCglyZXR1cm4KCi8vIGxvY2FsTWFwUHV0KGE6IEFjY291bnQpOiB2b2lkCmxvY2FsTWFwUHV0OgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czo5NgoJLy8gdGhpcy5sb2NhbE1hcChhLCAnZm9vJykudmFsdWUgPSAnYmFyJwoJZnJhbWVfZGlnIC0xIC8vIGE6IEFjY291bnQKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWJ5dGUgMHg2MjYxNzIgLy8gImJhciIKCWFwcF9sb2NhbF9wdXQKCXJldHN1YgoKLy8gbG9jYWxNYXBHZXQoYWNjb3VudCl2b2lkCmFiaV9yb3V0ZV9sb2NhbE1hcEdldDoKCS8vIGE6IGFjY291bnQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCXR4bmFzIEFjY291bnRzCgoJLy8gZXhlY3V0ZSBsb2NhbE1hcEdldChhY2NvdW50KXZvaWQKCWNhbGxzdWIgbG9jYWxNYXBHZXQKCWludCAxCglyZXR1cm4KCi8vIGxvY2FsTWFwR2V0KGE6IEFjY291bnQpOiB2b2lkCmxvY2FsTWFwR2V0OgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoxMDAKCS8vIGFzc2VydCh0aGlzLmxvY2FsTWFwKGEsICdmb28nKS52YWx1ZSA9PT0gJ2JhcicpCglmcmFtZV9kaWcgLTEgLy8gYTogQWNjb3VudAoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYXBwX2xvY2FsX2dldAoJYnl0ZSAweDYyNjE3MiAvLyAiYmFyIgoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBsb2NhbE1hcERlbGV0ZShhY2NvdW50KXZvaWQKYWJpX3JvdXRlX2xvY2FsTWFwRGVsZXRlOgoJLy8gYTogYWNjb3VudAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoJdHhuYXMgQWNjb3VudHMKCgkvLyBleGVjdXRlIGxvY2FsTWFwRGVsZXRlKGFjY291bnQpdm9pZAoJY2FsbHN1YiBsb2NhbE1hcERlbGV0ZQoJaW50IDEKCXJldHVybgoKLy8gbG9jYWxNYXBEZWxldGUoYTogQWNjb3VudCk6IHZvaWQKbG9jYWxNYXBEZWxldGU6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjEwNAoJLy8gdGhpcy5sb2NhbE1hcChhLCAnZm9vJykuZGVsZXRlKCkKCWZyYW1lX2RpZyAtMSAvLyBhOiBBY2NvdW50CglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglhcHBfbG9jYWxfZGVsCglyZXRzdWIKCi8vIGxvY2FsTWFwRXhpc3RzKGFjY291bnQpdm9pZAphYmlfcm91dGVfbG9jYWxNYXBFeGlzdHM6CgkvLyBhOiBhY2NvdW50Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgl0eG5hcyBBY2NvdW50cwoKCS8vIGV4ZWN1dGUgbG9jYWxNYXBFeGlzdHMoYWNjb3VudCl2b2lkCgljYWxsc3ViIGxvY2FsTWFwRXhpc3RzCglpbnQgMQoJcmV0dXJuCgovLyBsb2NhbE1hcEV4aXN0cyhhOiBBY2NvdW50KTogdm9pZApsb2NhbE1hcEV4aXN0czoKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTA4CgkvLyBhc3NlcnQodGhpcy5sb2NhbE1hcChhLCAnZm9vJykuZXhpc3RzKQoJZnJhbWVfZGlnIC0xIC8vIGE6IEFjY291bnQKCXR4bmEgQXBwbGljYXRpb25zIDAKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWFwcF9sb2NhbF9nZXRfZXgKCXN3YXAKCXBvcAoJYXNzZXJ0CglyZXRzdWIKCi8vIGJveE1hcFB1dCgpdm9pZAphYmlfcm91dGVfYm94TWFwUHV0OgoJLy8gZXhlY3V0ZSBib3hNYXBQdXQoKXZvaWQKCWNhbGxzdWIgYm94TWFwUHV0CglpbnQgMQoJcmV0dXJuCgovLyBib3hNYXBQdXQoKTogdm9pZApib3hNYXBQdXQ6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjExMgoJLy8gdGhpcy5ib3hNYXAoJ2ZvbycpLnZhbHVlID0gJ2JhcicKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWJ5dGUgMHg2MjYxNzIgLy8gImJhciIKCWJveF9wdXQKCXJldHN1YgoKLy8gYm94TWFwR2V0KCl2b2lkCmFiaV9yb3V0ZV9ib3hNYXBHZXQ6CgkvLyBleGVjdXRlIGJveE1hcEdldCgpdm9pZAoJY2FsbHN1YiBib3hNYXBHZXQKCWludCAxCglyZXR1cm4KCi8vIGJveE1hcEdldCgpOiB2b2lkCmJveE1hcEdldDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTE2CgkvLyBhc3NlcnQodGhpcy5ib3hNYXAoJ2ZvbycpLnZhbHVlID09PSAnYmFyJykKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWJveF9nZXQKCWFzc2VydAoJYnl0ZSAweDYyNjE3MiAvLyAiYmFyIgoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBib3hNYXBEZWxldGUoKXZvaWQKYWJpX3JvdXRlX2JveE1hcERlbGV0ZToKCS8vIGV4ZWN1dGUgYm94TWFwRGVsZXRlKCl2b2lkCgljYWxsc3ViIGJveE1hcERlbGV0ZQoJaW50IDEKCXJldHVybgoKLy8gYm94TWFwRGVsZXRlKCk6IHZvaWQKYm94TWFwRGVsZXRlOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoxMjAKCS8vIHRoaXMuYm94TWFwKCdmb28nKS5kZWxldGUoKQoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYm94X2RlbAoJcmV0c3ViCgovLyBib3hNYXBFeGlzdHMoKXZvaWQKYWJpX3JvdXRlX2JveE1hcEV4aXN0czoKCS8vIGV4ZWN1dGUgYm94TWFwRXhpc3RzKCl2b2lkCgljYWxsc3ViIGJveE1hcEV4aXN0cwoJaW50IDEKCXJldHVybgoKLy8gYm94TWFwRXhpc3RzKCk6IHZvaWQKYm94TWFwRXhpc3RzOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoxMjQKCS8vIGFzc2VydCh0aGlzLmJveE1hcCgnZm9vJykuZXhpc3RzKQoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYm94X2xlbgoJc3dhcAoJcG9wCglhc3NlcnQKCXJldHN1YgoKLy8gYm94S2V5Q3JlYXRlKCl2b2lkCmFiaV9yb3V0ZV9ib3hLZXlDcmVhdGU6CgkvLyBleGVjdXRlIGJveEtleUNyZWF0ZSgpdm9pZAoJY2FsbHN1YiBib3hLZXlDcmVhdGUKCWludCAxCglyZXR1cm4KCi8vIGJveEtleUNyZWF0ZSgpOiB2b2lkCmJveEtleUNyZWF0ZToKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTI4CgkvLyB0aGlzLmJveEtleS5jcmVhdGUoMTAyNCkKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWludCAxMDI0Cglib3hfY3JlYXRlCglwb3AKCXJldHN1YgoKLy8gYm94TWFwQ3JlYXRlKCl2b2lkCmFiaV9yb3V0ZV9ib3hNYXBDcmVhdGU6CgkvLyBleGVjdXRlIGJveE1hcENyZWF0ZSgpdm9pZAoJY2FsbHN1YiBib3hNYXBDcmVhdGUKCWludCAxCglyZXR1cm4KCi8vIGJveE1hcENyZWF0ZSgpOiB2b2lkCmJveE1hcENyZWF0ZToKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTMyCgkvLyB0aGlzLmJveE1hcCgnYmFyJykuY3JlYXRlKDEwMjQpCglieXRlIDB4NjI2MTcyIC8vICJiYXIiCglpbnQgMTAyNAoJYm94X2NyZWF0ZQoJcG9wCglyZXRzdWIKCi8vIGJveEtleUxlbmd0aCgpdWludDY0CmFiaV9yb3V0ZV9ib3hLZXlMZW5ndGg6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYm94S2V5TGVuZ3RoKCl1aW50NjQKCWNhbGxzdWIgYm94S2V5TGVuZ3RoCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYm94S2V5TGVuZ3RoKCk6IHVpbnQ2NApib3hLZXlMZW5ndGg6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjEzNgoJLy8gcmV0dXJuIHRoaXMuYm94S2V5LnNpemU7CglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglib3hfbGVuCglhc3NlcnQKCXJldHN1YgoKLy8gYm94TWFwTGVuZ3RoKCl1aW50NjQKYWJpX3JvdXRlX2JveE1hcExlbmd0aDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBib3hNYXBMZW5ndGgoKXVpbnQ2NAoJY2FsbHN1YiBib3hNYXBMZW5ndGgKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBib3hNYXBMZW5ndGgoKTogdWludDY0CmJveE1hcExlbmd0aDoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTQwCgkvLyByZXR1cm4gdGhpcy5ib3hNYXAoJ2JhcicpLnNpemU7CglieXRlIDB4NjI2MTcyIC8vICJiYXIiCglib3hfbGVuCglhc3NlcnQKCXJldHN1YgoKLy8gYm94S2V5UmVwbGFjZSgpdm9pZAphYmlfcm91dGVfYm94S2V5UmVwbGFjZToKCS8vIGV4ZWN1dGUgYm94S2V5UmVwbGFjZSgpdm9pZAoJY2FsbHN1YiBib3hLZXlSZXBsYWNlCglpbnQgMQoJcmV0dXJuCgovLyBib3hLZXlSZXBsYWNlKCk6IHZvaWQKYm94S2V5UmVwbGFjZToKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTQ0CgkvLyB0aGlzLmJveEtleS5yZXBsYWNlKDAsICdhYmMnKQoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJaW50IDAKCWJ5dGUgMHg2MTYyNjMgLy8gImFiYyIKCWJveF9yZXBsYWNlCglyZXRzdWIKCi8vIGJveE1hcFJlcGxhY2UoKXZvaWQKYWJpX3JvdXRlX2JveE1hcFJlcGxhY2U6CgkvLyBleGVjdXRlIGJveE1hcFJlcGxhY2UoKXZvaWQKCWNhbGxzdWIgYm94TWFwUmVwbGFjZQoJaW50IDEKCXJldHVybgoKLy8gYm94TWFwUmVwbGFjZSgpOiB2b2lkCmJveE1hcFJlcGxhY2U6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjE0OAoJLy8gdGhpcy5ib3hNYXAoJ2JhcicpLnJlcGxhY2UoMCwgJ2FiYycpCglieXRlIDB4NjI2MTcyIC8vICJiYXIiCglpbnQgMAoJYnl0ZSAweDYxNjI2MyAvLyAiYWJjIgoJYm94X3JlcGxhY2UKCXJldHN1YgoKLy8gYm94S2V5RXh0cmFjdCgpc3RyaW5nCmFiaV9yb3V0ZV9ib3hLZXlFeHRyYWN0OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGJveEtleUV4dHJhY3QoKXN0cmluZwoJY2FsbHN1YiBib3hLZXlFeHRyYWN0CglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJveEtleUV4dHJhY3QoKTogc3RyaW5nCmJveEtleUV4dHJhY3Q6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjE1MgoJLy8gcmV0dXJuIHRoaXMuYm94S2V5LmV4dHJhY3QoMCwgMyk7CglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglpbnQgMAoJaW50IDMKCWJveF9leHRyYWN0CglyZXRzdWIKCi8vIGJveE1hcEV4dHJhY3QoKXN0cmluZwphYmlfcm91dGVfYm94TWFwRXh0cmFjdDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBib3hNYXBFeHRyYWN0KClzdHJpbmcKCWNhbGxzdWIgYm94TWFwRXh0cmFjdAoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBib3hNYXBFeHRyYWN0KCk6IHN0cmluZwpib3hNYXBFeHRyYWN0OgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoxNTYKCS8vIHJldHVybiB0aGlzLmJveE1hcCgnYmFyJykuZXh0cmFjdCgwLCAzKTsKCWJ5dGUgMHg2MjYxNzIgLy8gImJhciIKCWludCAwCglpbnQgMwoJYm94X2V4dHJhY3QKCXJldHN1YgoKLy8gaXNPcHRlZEluKClib29sCmFiaV9yb3V0ZV9pc09wdGVkSW46CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgaXNPcHRlZEluKClib29sCgljYWxsc3ViIGlzT3B0ZWRJbgoJYnl0ZSAweDAwCglpbnQgMAoJdW5jb3ZlciAyCglzZXRiaXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBpc09wdGVkSW4oKTogYm9vbGVhbgppc09wdGVkSW46Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjE2MAoJLy8gcmV0dXJuIHRoaXMudHhuLnNlbmRlci5pc09wdGVkSW5Ub0FwcCh0aGlzLmFwcCk7Cgl0eG4gU2VuZGVyCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglhcHBfb3B0ZWRfaW4KCXJldHN1YgoKLy8gZXhHbG9iYWwoKXZvaWQKYWJpX3JvdXRlX2V4R2xvYmFsOgoJLy8gZXhlY3V0ZSBleEdsb2JhbCgpdm9pZAoJY2FsbHN1YiBleEdsb2JhbAoJaW50IDEKCXJldHVybgoKLy8gZXhHbG9iYWwoKTogdm9pZApleEdsb2JhbDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTY0CgkvLyBsb2codGhpcy5hcHAuZ2xvYmFsU3RhdGUoJ2ZvbycpIGFzIGJ5dGVzKQoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYXBwX2dsb2JhbF9nZXRfZXgKCWFzc2VydAoJbG9nCglyZXRzdWIKCi8vIGV4TG9jYWwoKXZvaWQKYWJpX3JvdXRlX2V4TG9jYWw6CgkvLyBleGVjdXRlIGV4TG9jYWwoKXZvaWQKCWNhbGxzdWIgZXhMb2NhbAoJaW50IDEKCXJldHVybgoKLy8gZXhMb2NhbCgpOiB2b2lkCmV4TG9jYWw6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjE2OAoJLy8gbG9nKHRoaXMuYXBwLmxvY2FsU3RhdGUodGhpcy50eG4uc2VuZGVyLCAnZm9vJykgYXMgYnl0ZXMpCgl0eG4gU2VuZGVyCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglhcHBfbG9jYWxfZ2V0X2V4Cglhc3NlcnQKCWxvZwoJcmV0c3ViCgovLyBhY2Nlc3NTdGF0aWNWYWx1ZUluTGFyZ2VCb3goKXVpbnQxNgphYmlfcm91dGVfYWNjZXNzU3RhdGljVmFsdWVJbkxhcmdlQm94OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGFjY2Vzc1N0YXRpY1ZhbHVlSW5MYXJnZUJveCgpdWludDE2CgljYWxsc3ViIGFjY2Vzc1N0YXRpY1ZhbHVlSW5MYXJnZUJveAoJaXRvYgoJZHVwCgliaXRsZW4KCWludCAxNgoJPD0KCWFzc2VydAoJZXh0cmFjdCA2IDIKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBhY2Nlc3NTdGF0aWNWYWx1ZUluTGFyZ2VCb3goKTogdWludDE2CmFjY2Vzc1N0YXRpY1ZhbHVlSW5MYXJnZUJveDoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTcyCgkvLyB0aGlzLmxhcmdlU3RhdGljQXJyYXlJbkJveC5jcmVhdGUoKQoJYnl0ZSAweDZjNjE3MjY3NjU1Mzc0NjE3NDY5NjM0MTcyNzI2MTc5NDk2ZTQyNmY3OCAvLyAibGFyZ2VTdGF0aWNBcnJheUluQm94IgoJaW50IDgwMDAKCWJveF9jcmVhdGUKCXBvcAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTczCgkvLyB0aGlzLmxhcmdlU3RhdGljQXJyYXlJbkJveC52YWx1ZVsxMjNdID0gNDU2CglieXRlIDB4NmM2MTcyNjc2NTUzNzQ2MTc0Njk2MzQxNzI3MjYxNzk0OTZlNDI2Zjc4IC8vICJsYXJnZVN0YXRpY0FycmF5SW5Cb3giCglpbnQgMjQ2CglieXRlIDB4MDFjOAoJYm94X3JlcGxhY2UKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjE3NQoJLy8gcmV0dXJuIHRoaXMubGFyZ2VTdGF0aWNBcnJheUluQm94LnZhbHVlWzEyM107CglieXRlIDB4NmM2MTcyNjc2NTUzNzQ2MTc0Njk2MzQxNzI3MjYxNzk0OTZlNDI2Zjc4IC8vICJsYXJnZVN0YXRpY0FycmF5SW5Cb3giCglpbnQgMjQ2CglpbnQgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCXJldHN1YgoKLy8gZHluYW1pY0FjY2Vzc1N0YXRpY1ZhbHVlSW5MYXJnZUJveCh1aW50NjQpdWludDE2CmFiaV9yb3V0ZV9keW5hbWljQWNjZXNzU3RhdGljVmFsdWVJbkxhcmdlQm94OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBpOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGR5bmFtaWNBY2Nlc3NTdGF0aWNWYWx1ZUluTGFyZ2VCb3godWludDY0KXVpbnQxNgoJY2FsbHN1YiBkeW5hbWljQWNjZXNzU3RhdGljVmFsdWVJbkxhcmdlQm94CglpdG9iCglkdXAKCWJpdGxlbgoJaW50IDE2Cgk8PQoJYXNzZXJ0CglleHRyYWN0IDYgMgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGR5bmFtaWNBY2Nlc3NTdGF0aWNWYWx1ZUluTGFyZ2VCb3goaTogdWludDY0KTogdWludDE2CmR5bmFtaWNBY2Nlc3NTdGF0aWNWYWx1ZUluTGFyZ2VCb3g6Cglwcm90byAxIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjE3OQoJLy8gdGhpcy5sYXJnZVN0YXRpY0FycmF5SW5Cb3guY3JlYXRlKCkKCWJ5dGUgMHg2YzYxNzI2NzY1NTM3NDYxNzQ2OTYzNDE3MjcyNjE3OTQ5NmU0MjZmNzggLy8gImxhcmdlU3RhdGljQXJyYXlJbkJveCIKCWludCA4MDAwCglib3hfY3JlYXRlCglwb3AKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjE4MAoJLy8gdGhpcy5sYXJnZVN0YXRpY0FycmF5SW5Cb3gudmFsdWVbaV0gPSA0NTYKCWZyYW1lX2RpZyAtMSAvLyBpOiB1aW50NjQKCWludCAyCgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWJ5dGUgMHgwMWM4CglieXRlIDB4NmM2MTcyNjc2NTUzNzQ2MTc0Njk2MzQxNzI3MjYxNzk0OTZlNDI2Zjc4IC8vICJsYXJnZVN0YXRpY0FycmF5SW5Cb3giCgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTg0CgkvLyByZXR1cm4gYVtpXTsKCWZyYW1lX2RpZyAtMSAvLyBpOiB1aW50NjQKCWludCAyCgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludCAyCglieXRlIDB4NmM2MTcyNjc2NTUzNzQ2MTc0Njk2MzQxNzI3MjYxNzk0OTZlNDI2Zjc4IC8vICJsYXJnZVN0YXRpY0FycmF5SW5Cb3giCgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJcmV0c3ViCgovLyBib3hSZXNpemUoKXZvaWQKYWJpX3JvdXRlX2JveFJlc2l6ZToKCS8vIGV4ZWN1dGUgYm94UmVzaXplKCl2b2lkCgljYWxsc3ViIGJveFJlc2l6ZQoJaW50IDEKCXJldHVybgoKLy8gYm94UmVzaXplKCk6IHZvaWQKYm94UmVzaXplOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoxODgKCS8vIHRoaXMuYm94S2V5LnJlc2l6ZSgxMDI0KQoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJaW50IDEwMjQKCWJveF9yZXNpemUKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjE4OQoJLy8gdGhpcy5ib3hNYXAoJ2JhcicpLnJlc2l6ZSgxMDI0KQoJYnl0ZSAweDYyNjE3MiAvLyAiYmFyIgoJaW50IDEwMjQKCWJveF9yZXNpemUKCXJldHN1YgoKLy8gYm94U3BsaWNlKCl2b2lkCmFiaV9yb3V0ZV9ib3hTcGxpY2U6CgkvLyBleGVjdXRlIGJveFNwbGljZSgpdm9pZAoJY2FsbHN1YiBib3hTcGxpY2UKCWludCAxCglyZXR1cm4KCi8vIGJveFNwbGljZSgpOiB2b2lkCmJveFNwbGljZToKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTkzCgkvLyB0aGlzLmJveEtleS5zcGxpY2UoMCwgMSwgJ2FiYycpCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglpbnQgMAoJaW50IDEKCWJ5dGUgMHg2MTYyNjMgLy8gImFiYyIKCWJveF9zcGxpY2UKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjE5NAoJLy8gdGhpcy5ib3hNYXAoJ2JhcicpLnNwbGljZSgwLCAxLCAnYWJjJykKCWJ5dGUgMHg2MjYxNzIgLy8gImJhciIKCWludCAwCglpbnQgMQoJYnl0ZSAweDYxNjI2MyAvLyAiYWJjIgoJYm94X3NwbGljZQoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJwcmVmaXgoKXZvaWQiCgltZXRob2QgImdsb2JhbEtleVB1dCgpdm9pZCIKCW1ldGhvZCAiZ2xvYmFsS2V5R2V0KCl2b2lkIgoJbWV0aG9kICJnbG9iYWxLZXlEZWxldGUoKXZvaWQiCgltZXRob2QgImdsb2JhbEtleUV4aXN0cygpdm9pZCIKCW1ldGhvZCAibG9jYWxLZXlQdXQoYWNjb3VudCl2b2lkIgoJbWV0aG9kICJsb2NhbEtleUdldChhY2NvdW50KXZvaWQiCgltZXRob2QgImxvY2FsS2V5RGVsZXRlKGFjY291bnQpdm9pZCIKCW1ldGhvZCAibG9jYWxLZXlFeGlzdHMoYWNjb3VudCl2b2lkIgoJbWV0aG9kICJib3hLZXlQdXQoKXZvaWQiCgltZXRob2QgImJveEtleUdldCgpdm9pZCIKCW1ldGhvZCAiYm94S2V5RGVsZXRlKCl2b2lkIgoJbWV0aG9kICJib3hLZXlFeGlzdHMoKXZvaWQiCgltZXRob2QgImdsb2JhbE1hcFB1dCgpdm9pZCIKCW1ldGhvZCAiZ2xvYmFsTWFwR2V0KCl2b2lkIgoJbWV0aG9kICJnbG9iYWxNYXBEZWxldGUoKXZvaWQiCgltZXRob2QgImdsb2JhbE1hcEV4aXN0cygpdm9pZCIKCW1ldGhvZCAibG9jYWxNYXBQdXQoYWNjb3VudCl2b2lkIgoJbWV0aG9kICJsb2NhbE1hcEdldChhY2NvdW50KXZvaWQiCgltZXRob2QgImxvY2FsTWFwRGVsZXRlKGFjY291bnQpdm9pZCIKCW1ldGhvZCAibG9jYWxNYXBFeGlzdHMoYWNjb3VudCl2b2lkIgoJbWV0aG9kICJib3hNYXBQdXQoKXZvaWQiCgltZXRob2QgImJveE1hcEdldCgpdm9pZCIKCW1ldGhvZCAiYm94TWFwRGVsZXRlKCl2b2lkIgoJbWV0aG9kICJib3hNYXBFeGlzdHMoKXZvaWQiCgltZXRob2QgImJveEtleUNyZWF0ZSgpdm9pZCIKCW1ldGhvZCAiYm94TWFwQ3JlYXRlKCl2b2lkIgoJbWV0aG9kICJib3hLZXlMZW5ndGgoKXVpbnQ2NCIKCW1ldGhvZCAiYm94TWFwTGVuZ3RoKCl1aW50NjQiCgltZXRob2QgImJveEtleVJlcGxhY2UoKXZvaWQiCgltZXRob2QgImJveE1hcFJlcGxhY2UoKXZvaWQiCgltZXRob2QgImJveEtleUV4dHJhY3QoKXN0cmluZyIKCW1ldGhvZCAiYm94TWFwRXh0cmFjdCgpc3RyaW5nIgoJbWV0aG9kICJpc09wdGVkSW4oKWJvb2wiCgltZXRob2QgImV4R2xvYmFsKCl2b2lkIgoJbWV0aG9kICJleExvY2FsKCl2b2lkIgoJbWV0aG9kICJhY2Nlc3NTdGF0aWNWYWx1ZUluTGFyZ2VCb3goKXVpbnQxNiIKCW1ldGhvZCAiZHluYW1pY0FjY2Vzc1N0YXRpY1ZhbHVlSW5MYXJnZUJveCh1aW50NjQpdWludDE2IgoJbWV0aG9kICJib3hSZXNpemUoKXZvaWQiCgltZXRob2QgImJveFNwbGljZSgpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9wcmVmaXggYWJpX3JvdXRlX2dsb2JhbEtleVB1dCBhYmlfcm91dGVfZ2xvYmFsS2V5R2V0IGFiaV9yb3V0ZV9nbG9iYWxLZXlEZWxldGUgYWJpX3JvdXRlX2dsb2JhbEtleUV4aXN0cyBhYmlfcm91dGVfbG9jYWxLZXlQdXQgYWJpX3JvdXRlX2xvY2FsS2V5R2V0IGFiaV9yb3V0ZV9sb2NhbEtleURlbGV0ZSBhYmlfcm91dGVfbG9jYWxLZXlFeGlzdHMgYWJpX3JvdXRlX2JveEtleVB1dCBhYmlfcm91dGVfYm94S2V5R2V0IGFiaV9yb3V0ZV9ib3hLZXlEZWxldGUgYWJpX3JvdXRlX2JveEtleUV4aXN0cyBhYmlfcm91dGVfZ2xvYmFsTWFwUHV0IGFiaV9yb3V0ZV9nbG9iYWxNYXBHZXQgYWJpX3JvdXRlX2dsb2JhbE1hcERlbGV0ZSBhYmlfcm91dGVfZ2xvYmFsTWFwRXhpc3RzIGFiaV9yb3V0ZV9sb2NhbE1hcFB1dCBhYmlfcm91dGVfbG9jYWxNYXBHZXQgYWJpX3JvdXRlX2xvY2FsTWFwRGVsZXRlIGFiaV9yb3V0ZV9sb2NhbE1hcEV4aXN0cyBhYmlfcm91dGVfYm94TWFwUHV0IGFiaV9yb3V0ZV9ib3hNYXBHZXQgYWJpX3JvdXRlX2JveE1hcERlbGV0ZSBhYmlfcm91dGVfYm94TWFwRXhpc3RzIGFiaV9yb3V0ZV9ib3hLZXlDcmVhdGUgYWJpX3JvdXRlX2JveE1hcENyZWF0ZSBhYmlfcm91dGVfYm94S2V5TGVuZ3RoIGFiaV9yb3V0ZV9ib3hNYXBMZW5ndGggYWJpX3JvdXRlX2JveEtleVJlcGxhY2UgYWJpX3JvdXRlX2JveE1hcFJlcGxhY2UgYWJpX3JvdXRlX2JveEtleUV4dHJhY3QgYWJpX3JvdXRlX2JveE1hcEV4dHJhY3QgYWJpX3JvdXRlX2lzT3B0ZWRJbiBhYmlfcm91dGVfZXhHbG9iYWwgYWJpX3JvdXRlX2V4TG9jYWwgYWJpX3JvdXRlX2FjY2Vzc1N0YXRpY1ZhbHVlSW5MYXJnZUJveCBhYmlfcm91dGVfZHluYW1pY0FjY2Vzc1N0YXRpY1ZhbHVlSW5MYXJnZUJveCBhYmlfcm91dGVfYm94UmVzaXplIGFiaV9yb3V0ZV9ib3hTcGxpY2UKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBwcmVmaXgoKXZvaWQKKmFiaV9yb3V0ZV9wcmVmaXg6CgkvLyBleGVjdXRlIHByZWZpeCgpdm9pZAoJY2FsbHN1YiBwcmVmaXgKCWludCAxCglyZXR1cm4KCi8vIHByZWZpeCgpOiB2b2lkCnByZWZpeDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MjYKCS8vIHRoaXMuYm94TWFwV2l0aFByZWZpeCgnb28nKS52YWx1ZSA9ICdiYXInCglieXRlIDB4NjY2ZjZmCglkdXAKCWJveF9kZWwKCXBvcAoJYnl0ZSAweDYyNjE3MiAvLyAiYmFyIgoJYm94X3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MjcKCS8vIHRoaXMuZ2xvYmFsTWFwV2l0aFByZWZpeCgnb28nKS52YWx1ZSA9ICdiYXInCglieXRlIDB4NjY2ZjZmCglieXRlIDB4NjI2MTcyIC8vICJiYXIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MjgKCS8vIHRoaXMubG9jYWxNYXBXaXRoUHJlZml4KHRoaXMudHhuLnNlbmRlciwgJ29vJykudmFsdWUgPSAnYmFyJwoJdHhuIFNlbmRlcgoJYnl0ZSAweDY2NmY2ZgoJYnl0ZSAweDYyNjE3MiAvLyAiYmFyIgoJYXBwX2xvY2FsX3B1dAoJcmV0c3ViCgovLyBnbG9iYWxLZXlQdXQoKXZvaWQKKmFiaV9yb3V0ZV9nbG9iYWxLZXlQdXQ6CgkvLyBleGVjdXRlIGdsb2JhbEtleVB1dCgpdm9pZAoJY2FsbHN1YiBnbG9iYWxLZXlQdXQKCWludCAxCglyZXR1cm4KCi8vIGdsb2JhbEtleVB1dCgpOiB2b2lkCmdsb2JhbEtleVB1dDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MzIKCS8vIHRoaXMuZ2xvYmFsS2V5LnZhbHVlID0gJ2JhcicKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWJ5dGUgMHg2MjYxNzIgLy8gImJhciIKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIGdsb2JhbEtleUdldCgpdm9pZAoqYWJpX3JvdXRlX2dsb2JhbEtleUdldDoKCS8vIGV4ZWN1dGUgZ2xvYmFsS2V5R2V0KCl2b2lkCgljYWxsc3ViIGdsb2JhbEtleUdldAoJaW50IDEKCXJldHVybgoKLy8gZ2xvYmFsS2V5R2V0KCk6IHZvaWQKZ2xvYmFsS2V5R2V0OgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czozNgoJLy8gYXNzZXJ0KHRoaXMuZ2xvYmFsS2V5LnZhbHVlID09PSAnYmFyJykKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWFwcF9nbG9iYWxfZ2V0CglieXRlIDB4NjI2MTcyIC8vICJiYXIiCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIGdsb2JhbEtleURlbGV0ZSgpdm9pZAoqYWJpX3JvdXRlX2dsb2JhbEtleURlbGV0ZToKCS8vIGV4ZWN1dGUgZ2xvYmFsS2V5RGVsZXRlKCl2b2lkCgljYWxsc3ViIGdsb2JhbEtleURlbGV0ZQoJaW50IDEKCXJldHVybgoKLy8gZ2xvYmFsS2V5RGVsZXRlKCk6IHZvaWQKZ2xvYmFsS2V5RGVsZXRlOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czo0MAoJLy8gdGhpcy5nbG9iYWxLZXkuZGVsZXRlKCkKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWFwcF9nbG9iYWxfZGVsCglyZXRzdWIKCi8vIGdsb2JhbEtleUV4aXN0cygpdm9pZAoqYWJpX3JvdXRlX2dsb2JhbEtleUV4aXN0czoKCS8vIGV4ZWN1dGUgZ2xvYmFsS2V5RXhpc3RzKCl2b2lkCgljYWxsc3ViIGdsb2JhbEtleUV4aXN0cwoJaW50IDEKCXJldHVybgoKLy8gZ2xvYmFsS2V5RXhpc3RzKCk6IHZvaWQKZ2xvYmFsS2V5RXhpc3RzOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czo0NAoJLy8gYXNzZXJ0KHRoaXMuZ2xvYmFsS2V5LmV4aXN0cykKCXR4bmEgQXBwbGljYXRpb25zIDAKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWFwcF9nbG9iYWxfZ2V0X2V4Cglzd2FwCglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyBsb2NhbEtleVB1dChhY2NvdW50KXZvaWQKKmFiaV9yb3V0ZV9sb2NhbEtleVB1dDoKCS8vIGE6IGFjY291bnQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCXR4bmFzIEFjY291bnRzCgoJLy8gZXhlY3V0ZSBsb2NhbEtleVB1dChhY2NvdW50KXZvaWQKCWNhbGxzdWIgbG9jYWxLZXlQdXQKCWludCAxCglyZXR1cm4KCi8vIGxvY2FsS2V5UHV0KGE6IEFjY291bnQpOiB2b2lkCmxvY2FsS2V5UHV0OgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czo0OAoJLy8gdGhpcy5sb2NhbEtleShhKS52YWx1ZSA9ICdiYXInCglmcmFtZV9kaWcgLTEgLy8gYTogQWNjb3VudAoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYnl0ZSAweDYyNjE3MiAvLyAiYmFyIgoJYXBwX2xvY2FsX3B1dAoJcmV0c3ViCgovLyBsb2NhbEtleUdldChhY2NvdW50KXZvaWQKKmFiaV9yb3V0ZV9sb2NhbEtleUdldDoKCS8vIGE6IGFjY291bnQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCXR4bmFzIEFjY291bnRzCgoJLy8gZXhlY3V0ZSBsb2NhbEtleUdldChhY2NvdW50KXZvaWQKCWNhbGxzdWIgbG9jYWxLZXlHZXQKCWludCAxCglyZXR1cm4KCi8vIGxvY2FsS2V5R2V0KGE6IEFjY291bnQpOiB2b2lkCmxvY2FsS2V5R2V0OgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czo1MgoJLy8gYXNzZXJ0KHRoaXMubG9jYWxLZXkoYSkudmFsdWUgPT09ICdiYXInKQoJZnJhbWVfZGlnIC0xIC8vIGE6IEFjY291bnQKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWFwcF9sb2NhbF9nZXQKCWJ5dGUgMHg2MjYxNzIgLy8gImJhciIKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gbG9jYWxLZXlEZWxldGUoYWNjb3VudCl2b2lkCiphYmlfcm91dGVfbG9jYWxLZXlEZWxldGU6CgkvLyBhOiBhY2NvdW50Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgl0eG5hcyBBY2NvdW50cwoKCS8vIGV4ZWN1dGUgbG9jYWxLZXlEZWxldGUoYWNjb3VudCl2b2lkCgljYWxsc3ViIGxvY2FsS2V5RGVsZXRlCglpbnQgMQoJcmV0dXJuCgovLyBsb2NhbEtleURlbGV0ZShhOiBBY2NvdW50KTogdm9pZApsb2NhbEtleURlbGV0ZToKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6NTYKCS8vIHRoaXMubG9jYWxLZXkoYSkuZGVsZXRlKCkKCWZyYW1lX2RpZyAtMSAvLyBhOiBBY2NvdW50CglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglhcHBfbG9jYWxfZGVsCglyZXRzdWIKCi8vIGxvY2FsS2V5RXhpc3RzKGFjY291bnQpdm9pZAoqYWJpX3JvdXRlX2xvY2FsS2V5RXhpc3RzOgoJLy8gYTogYWNjb3VudAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoJdHhuYXMgQWNjb3VudHMKCgkvLyBleGVjdXRlIGxvY2FsS2V5RXhpc3RzKGFjY291bnQpdm9pZAoJY2FsbHN1YiBsb2NhbEtleUV4aXN0cwoJaW50IDEKCXJldHVybgoKLy8gbG9jYWxLZXlFeGlzdHMoYTogQWNjb3VudCk6IHZvaWQKbG9jYWxLZXlFeGlzdHM6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjYwCgkvLyBhc3NlcnQodGhpcy5sb2NhbEtleShhKS5leGlzdHMpCglmcmFtZV9kaWcgLTEgLy8gYTogQWNjb3VudAoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYXBwX2xvY2FsX2dldF9leAoJc3dhcAoJcG9wCglhc3NlcnQKCXJldHN1YgoKLy8gYm94S2V5UHV0KCl2b2lkCiphYmlfcm91dGVfYm94S2V5UHV0OgoJLy8gZXhlY3V0ZSBib3hLZXlQdXQoKXZvaWQKCWNhbGxzdWIgYm94S2V5UHV0CglpbnQgMQoJcmV0dXJuCgovLyBib3hLZXlQdXQoKTogdm9pZApib3hLZXlQdXQ6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjY0CgkvLyB0aGlzLmJveEtleS52YWx1ZSA9ICdiYXInCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglieXRlIDB4NjI2MTcyIC8vICJiYXIiCglib3hfcHV0CglyZXRzdWIKCi8vIGJveEtleUdldCgpdm9pZAoqYWJpX3JvdXRlX2JveEtleUdldDoKCS8vIGV4ZWN1dGUgYm94S2V5R2V0KCl2b2lkCgljYWxsc3ViIGJveEtleUdldAoJaW50IDEKCXJldHVybgoKLy8gYm94S2V5R2V0KCk6IHZvaWQKYm94S2V5R2V0OgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czo2OAoJLy8gYXNzZXJ0KHRoaXMuYm94S2V5LnZhbHVlID09PSAnYmFyJykKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWJveF9nZXQKCWFzc2VydAoJYnl0ZSAweDYyNjE3MiAvLyAiYmFyIgoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBib3hLZXlEZWxldGUoKXZvaWQKKmFiaV9yb3V0ZV9ib3hLZXlEZWxldGU6CgkvLyBleGVjdXRlIGJveEtleURlbGV0ZSgpdm9pZAoJY2FsbHN1YiBib3hLZXlEZWxldGUKCWludCAxCglyZXR1cm4KCi8vIGJveEtleURlbGV0ZSgpOiB2b2lkCmJveEtleURlbGV0ZToKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6NzIKCS8vIHRoaXMuYm94S2V5LmRlbGV0ZSgpCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglib3hfZGVsCglyZXRzdWIKCi8vIGJveEtleUV4aXN0cygpdm9pZAoqYWJpX3JvdXRlX2JveEtleUV4aXN0czoKCS8vIGV4ZWN1dGUgYm94S2V5RXhpc3RzKCl2b2lkCgljYWxsc3ViIGJveEtleUV4aXN0cwoJaW50IDEKCXJldHVybgoKLy8gYm94S2V5RXhpc3RzKCk6IHZvaWQKYm94S2V5RXhpc3RzOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czo3NgoJLy8gYXNzZXJ0KHRoaXMuYm94S2V5LmV4aXN0cykKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWJveF9sZW4KCXN3YXAKCXBvcAoJYXNzZXJ0CglyZXRzdWIKCi8vIGdsb2JhbE1hcFB1dCgpdm9pZAoqYWJpX3JvdXRlX2dsb2JhbE1hcFB1dDoKCS8vIGV4ZWN1dGUgZ2xvYmFsTWFwUHV0KCl2b2lkCgljYWxsc3ViIGdsb2JhbE1hcFB1dAoJaW50IDEKCXJldHVybgoKLy8gZ2xvYmFsTWFwUHV0KCk6IHZvaWQKZ2xvYmFsTWFwUHV0OgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czo4MAoJLy8gdGhpcy5nbG9iYWxNYXAoJ2ZvbycpLnZhbHVlID0gJ2JhcicKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWJ5dGUgMHg2MjYxNzIgLy8gImJhciIKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIGdsb2JhbE1hcEdldCgpdm9pZAoqYWJpX3JvdXRlX2dsb2JhbE1hcEdldDoKCS8vIGV4ZWN1dGUgZ2xvYmFsTWFwR2V0KCl2b2lkCgljYWxsc3ViIGdsb2JhbE1hcEdldAoJaW50IDEKCXJldHVybgoKLy8gZ2xvYmFsTWFwR2V0KCk6IHZvaWQKZ2xvYmFsTWFwR2V0OgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czo4NAoJLy8gYXNzZXJ0KHRoaXMuZ2xvYmFsTWFwKCdmb28nKS52YWx1ZSA9PT0gJ2JhcicpCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglhcHBfZ2xvYmFsX2dldAoJYnl0ZSAweDYyNjE3MiAvLyAiYmFyIgoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBnbG9iYWxNYXBEZWxldGUoKXZvaWQKKmFiaV9yb3V0ZV9nbG9iYWxNYXBEZWxldGU6CgkvLyBleGVjdXRlIGdsb2JhbE1hcERlbGV0ZSgpdm9pZAoJY2FsbHN1YiBnbG9iYWxNYXBEZWxldGUKCWludCAxCglyZXR1cm4KCi8vIGdsb2JhbE1hcERlbGV0ZSgpOiB2b2lkCmdsb2JhbE1hcERlbGV0ZToKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6ODgKCS8vIHRoaXMuZ2xvYmFsTWFwKCdmb28nKS5kZWxldGUoKQoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYXBwX2dsb2JhbF9kZWwKCXJldHN1YgoKLy8gZ2xvYmFsTWFwRXhpc3RzKCl2b2lkCiphYmlfcm91dGVfZ2xvYmFsTWFwRXhpc3RzOgoJLy8gZXhlY3V0ZSBnbG9iYWxNYXBFeGlzdHMoKXZvaWQKCWNhbGxzdWIgZ2xvYmFsTWFwRXhpc3RzCglpbnQgMQoJcmV0dXJuCgovLyBnbG9iYWxNYXBFeGlzdHMoKTogdm9pZApnbG9iYWxNYXBFeGlzdHM6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjkyCgkvLyBhc3NlcnQodGhpcy5nbG9iYWxNYXAoJ2ZvbycpLmV4aXN0cykKCXR4bmEgQXBwbGljYXRpb25zIDAKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWFwcF9nbG9iYWxfZ2V0X2V4Cglzd2FwCglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyBsb2NhbE1hcFB1dChhY2NvdW50KXZvaWQKKmFiaV9yb3V0ZV9sb2NhbE1hcFB1dDoKCS8vIGE6IGFjY291bnQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCXR4bmFzIEFjY291bnRzCgoJLy8gZXhlY3V0ZSBsb2NhbE1hcFB1dChhY2NvdW50KXZvaWQKCWNhbGxzdWIgbG9jYWxNYXBQdXQKCWludCAxCglyZXR1cm4KCi8vIGxvY2FsTWFwUHV0KGE6IEFjY291bnQpOiB2b2lkCmxvY2FsTWFwUHV0OgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czo5NgoJLy8gdGhpcy5sb2NhbE1hcChhLCAnZm9vJykudmFsdWUgPSAnYmFyJwoJZnJhbWVfZGlnIC0xIC8vIGE6IEFjY291bnQKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWJ5dGUgMHg2MjYxNzIgLy8gImJhciIKCWFwcF9sb2NhbF9wdXQKCXJldHN1YgoKLy8gbG9jYWxNYXBHZXQoYWNjb3VudCl2b2lkCiphYmlfcm91dGVfbG9jYWxNYXBHZXQ6CgkvLyBhOiBhY2NvdW50Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgl0eG5hcyBBY2NvdW50cwoKCS8vIGV4ZWN1dGUgbG9jYWxNYXBHZXQoYWNjb3VudCl2b2lkCgljYWxsc3ViIGxvY2FsTWFwR2V0CglpbnQgMQoJcmV0dXJuCgovLyBsb2NhbE1hcEdldChhOiBBY2NvdW50KTogdm9pZApsb2NhbE1hcEdldDoKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTAwCgkvLyBhc3NlcnQodGhpcy5sb2NhbE1hcChhLCAnZm9vJykudmFsdWUgPT09ICdiYXInKQoJZnJhbWVfZGlnIC0xIC8vIGE6IEFjY291bnQKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWFwcF9sb2NhbF9nZXQKCWJ5dGUgMHg2MjYxNzIgLy8gImJhciIKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gbG9jYWxNYXBEZWxldGUoYWNjb3VudCl2b2lkCiphYmlfcm91dGVfbG9jYWxNYXBEZWxldGU6CgkvLyBhOiBhY2NvdW50Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgl0eG5hcyBBY2NvdW50cwoKCS8vIGV4ZWN1dGUgbG9jYWxNYXBEZWxldGUoYWNjb3VudCl2b2lkCgljYWxsc3ViIGxvY2FsTWFwRGVsZXRlCglpbnQgMQoJcmV0dXJuCgovLyBsb2NhbE1hcERlbGV0ZShhOiBBY2NvdW50KTogdm9pZApsb2NhbE1hcERlbGV0ZToKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTA0CgkvLyB0aGlzLmxvY2FsTWFwKGEsICdmb28nKS5kZWxldGUoKQoJZnJhbWVfZGlnIC0xIC8vIGE6IEFjY291bnQKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWFwcF9sb2NhbF9kZWwKCXJldHN1YgoKLy8gbG9jYWxNYXBFeGlzdHMoYWNjb3VudCl2b2lkCiphYmlfcm91dGVfbG9jYWxNYXBFeGlzdHM6CgkvLyBhOiBhY2NvdW50Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgl0eG5hcyBBY2NvdW50cwoKCS8vIGV4ZWN1dGUgbG9jYWxNYXBFeGlzdHMoYWNjb3VudCl2b2lkCgljYWxsc3ViIGxvY2FsTWFwRXhpc3RzCglpbnQgMQoJcmV0dXJuCgovLyBsb2NhbE1hcEV4aXN0cyhhOiBBY2NvdW50KTogdm9pZApsb2NhbE1hcEV4aXN0czoKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTA4CgkvLyBhc3NlcnQodGhpcy5sb2NhbE1hcChhLCAnZm9vJykuZXhpc3RzKQoJZnJhbWVfZGlnIC0xIC8vIGE6IEFjY291bnQKCXR4bmEgQXBwbGljYXRpb25zIDAKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWFwcF9sb2NhbF9nZXRfZXgKCXN3YXAKCXBvcAoJYXNzZXJ0CglyZXRzdWIKCi8vIGJveE1hcFB1dCgpdm9pZAoqYWJpX3JvdXRlX2JveE1hcFB1dDoKCS8vIGV4ZWN1dGUgYm94TWFwUHV0KCl2b2lkCgljYWxsc3ViIGJveE1hcFB1dAoJaW50IDEKCXJldHVybgoKLy8gYm94TWFwUHV0KCk6IHZvaWQKYm94TWFwUHV0OgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoxMTIKCS8vIHRoaXMuYm94TWFwKCdmb28nKS52YWx1ZSA9ICdiYXInCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglieXRlIDB4NjI2MTcyIC8vICJiYXIiCglib3hfcHV0CglyZXRzdWIKCi8vIGJveE1hcEdldCgpdm9pZAoqYWJpX3JvdXRlX2JveE1hcEdldDoKCS8vIGV4ZWN1dGUgYm94TWFwR2V0KCl2b2lkCgljYWxsc3ViIGJveE1hcEdldAoJaW50IDEKCXJldHVybgoKLy8gYm94TWFwR2V0KCk6IHZvaWQKYm94TWFwR2V0OgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoxMTYKCS8vIGFzc2VydCh0aGlzLmJveE1hcCgnZm9vJykudmFsdWUgPT09ICdiYXInKQoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYm94X2dldAoJYXNzZXJ0CglieXRlIDB4NjI2MTcyIC8vICJiYXIiCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIGJveE1hcERlbGV0ZSgpdm9pZAoqYWJpX3JvdXRlX2JveE1hcERlbGV0ZToKCS8vIGV4ZWN1dGUgYm94TWFwRGVsZXRlKCl2b2lkCgljYWxsc3ViIGJveE1hcERlbGV0ZQoJaW50IDEKCXJldHVybgoKLy8gYm94TWFwRGVsZXRlKCk6IHZvaWQKYm94TWFwRGVsZXRlOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoxMjAKCS8vIHRoaXMuYm94TWFwKCdmb28nKS5kZWxldGUoKQoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYm94X2RlbAoJcmV0c3ViCgovLyBib3hNYXBFeGlzdHMoKXZvaWQKKmFiaV9yb3V0ZV9ib3hNYXBFeGlzdHM6CgkvLyBleGVjdXRlIGJveE1hcEV4aXN0cygpdm9pZAoJY2FsbHN1YiBib3hNYXBFeGlzdHMKCWludCAxCglyZXR1cm4KCi8vIGJveE1hcEV4aXN0cygpOiB2b2lkCmJveE1hcEV4aXN0czoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTI0CgkvLyBhc3NlcnQodGhpcy5ib3hNYXAoJ2ZvbycpLmV4aXN0cykKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWJveF9sZW4KCXN3YXAKCXBvcAoJYXNzZXJ0CglyZXRzdWIKCi8vIGJveEtleUNyZWF0ZSgpdm9pZAoqYWJpX3JvdXRlX2JveEtleUNyZWF0ZToKCS8vIGV4ZWN1dGUgYm94S2V5Q3JlYXRlKCl2b2lkCgljYWxsc3ViIGJveEtleUNyZWF0ZQoJaW50IDEKCXJldHVybgoKLy8gYm94S2V5Q3JlYXRlKCk6IHZvaWQKYm94S2V5Q3JlYXRlOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoxMjgKCS8vIHRoaXMuYm94S2V5LmNyZWF0ZSgxMDI0KQoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJaW50IDEwMjQKCWJveF9jcmVhdGUKCXBvcAoJcmV0c3ViCgovLyBib3hNYXBDcmVhdGUoKXZvaWQKKmFiaV9yb3V0ZV9ib3hNYXBDcmVhdGU6CgkvLyBleGVjdXRlIGJveE1hcENyZWF0ZSgpdm9pZAoJY2FsbHN1YiBib3hNYXBDcmVhdGUKCWludCAxCglyZXR1cm4KCi8vIGJveE1hcENyZWF0ZSgpOiB2b2lkCmJveE1hcENyZWF0ZToKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTMyCgkvLyB0aGlzLmJveE1hcCgnYmFyJykuY3JlYXRlKDEwMjQpCglieXRlIDB4NjI2MTcyIC8vICJiYXIiCglpbnQgMTAyNAoJYm94X2NyZWF0ZQoJcG9wCglyZXRzdWIKCi8vIGJveEtleUxlbmd0aCgpdWludDY0CiphYmlfcm91dGVfYm94S2V5TGVuZ3RoOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGJveEtleUxlbmd0aCgpdWludDY0CgljYWxsc3ViIGJveEtleUxlbmd0aAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJveEtleUxlbmd0aCgpOiB1aW50NjQKYm94S2V5TGVuZ3RoOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoxMzYKCS8vIHJldHVybiB0aGlzLmJveEtleS5zaXplOwoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYm94X2xlbgoJYXNzZXJ0CglyZXRzdWIKCi8vIGJveE1hcExlbmd0aCgpdWludDY0CiphYmlfcm91dGVfYm94TWFwTGVuZ3RoOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGJveE1hcExlbmd0aCgpdWludDY0CgljYWxsc3ViIGJveE1hcExlbmd0aAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJveE1hcExlbmd0aCgpOiB1aW50NjQKYm94TWFwTGVuZ3RoOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoxNDAKCS8vIHJldHVybiB0aGlzLmJveE1hcCgnYmFyJykuc2l6ZTsKCWJ5dGUgMHg2MjYxNzIgLy8gImJhciIKCWJveF9sZW4KCWFzc2VydAoJcmV0c3ViCgovLyBib3hLZXlSZXBsYWNlKCl2b2lkCiphYmlfcm91dGVfYm94S2V5UmVwbGFjZToKCS8vIGV4ZWN1dGUgYm94S2V5UmVwbGFjZSgpdm9pZAoJY2FsbHN1YiBib3hLZXlSZXBsYWNlCglpbnQgMQoJcmV0dXJuCgovLyBib3hLZXlSZXBsYWNlKCk6IHZvaWQKYm94S2V5UmVwbGFjZToKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTQ0CgkvLyB0aGlzLmJveEtleS5yZXBsYWNlKDAsICdhYmMnKQoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJaW50IDAKCWJ5dGUgMHg2MTYyNjMgLy8gImFiYyIKCWJveF9yZXBsYWNlCglyZXRzdWIKCi8vIGJveE1hcFJlcGxhY2UoKXZvaWQKKmFiaV9yb3V0ZV9ib3hNYXBSZXBsYWNlOgoJLy8gZXhlY3V0ZSBib3hNYXBSZXBsYWNlKCl2b2lkCgljYWxsc3ViIGJveE1hcFJlcGxhY2UKCWludCAxCglyZXR1cm4KCi8vIGJveE1hcFJlcGxhY2UoKTogdm9pZApib3hNYXBSZXBsYWNlOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoxNDgKCS8vIHRoaXMuYm94TWFwKCdiYXInKS5yZXBsYWNlKDAsICdhYmMnKQoJYnl0ZSAweDYyNjE3MiAvLyAiYmFyIgoJaW50IDAKCWJ5dGUgMHg2MTYyNjMgLy8gImFiYyIKCWJveF9yZXBsYWNlCglyZXRzdWIKCi8vIGJveEtleUV4dHJhY3QoKXN0cmluZwoqYWJpX3JvdXRlX2JveEtleUV4dHJhY3Q6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYm94S2V5RXh0cmFjdCgpc3RyaW5nCgljYWxsc3ViIGJveEtleUV4dHJhY3QKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYm94S2V5RXh0cmFjdCgpOiBzdHJpbmcKYm94S2V5RXh0cmFjdDoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTUyCgkvLyByZXR1cm4gdGhpcy5ib3hLZXkuZXh0cmFjdCgwLCAzKTsKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWludCAwCglpbnQgMwoJYm94X2V4dHJhY3QKCXJldHN1YgoKLy8gYm94TWFwRXh0cmFjdCgpc3RyaW5nCiphYmlfcm91dGVfYm94TWFwRXh0cmFjdDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBib3hNYXBFeHRyYWN0KClzdHJpbmcKCWNhbGxzdWIgYm94TWFwRXh0cmFjdAoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBib3hNYXBFeHRyYWN0KCk6IHN0cmluZwpib3hNYXBFeHRyYWN0OgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoxNTYKCS8vIHJldHVybiB0aGlzLmJveE1hcCgnYmFyJykuZXh0cmFjdCgwLCAzKTsKCWJ5dGUgMHg2MjYxNzIgLy8gImJhciIKCWludCAwCglpbnQgMwoJYm94X2V4dHJhY3QKCXJldHN1YgoKLy8gaXNPcHRlZEluKClib29sCiphYmlfcm91dGVfaXNPcHRlZEluOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGlzT3B0ZWRJbigpYm9vbAoJY2FsbHN1YiBpc09wdGVkSW4KCWJ5dGUgMHgwMAoJaW50IDAKCXVuY292ZXIgMgoJc2V0Yml0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gaXNPcHRlZEluKCk6IGJvb2xlYW4KaXNPcHRlZEluOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoxNjAKCS8vIHJldHVybiB0aGlzLnR4bi5zZW5kZXIuaXNPcHRlZEluVG9BcHAodGhpcy5hcHApOwoJdHhuIFNlbmRlcgoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJYXBwX29wdGVkX2luCglyZXRzdWIKCi8vIGV4R2xvYmFsKCl2b2lkCiphYmlfcm91dGVfZXhHbG9iYWw6CgkvLyBleGVjdXRlIGV4R2xvYmFsKCl2b2lkCgljYWxsc3ViIGV4R2xvYmFsCglpbnQgMQoJcmV0dXJuCgovLyBleEdsb2JhbCgpOiB2b2lkCmV4R2xvYmFsOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoxNjQKCS8vIGxvZyh0aGlzLmFwcC5nbG9iYWxTdGF0ZSgnZm9vJykgYXMgYnl0ZXMpCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglhcHBfZ2xvYmFsX2dldF9leAoJYXNzZXJ0Cglsb2cKCXJldHN1YgoKLy8gZXhMb2NhbCgpdm9pZAoqYWJpX3JvdXRlX2V4TG9jYWw6CgkvLyBleGVjdXRlIGV4TG9jYWwoKXZvaWQKCWNhbGxzdWIgZXhMb2NhbAoJaW50IDEKCXJldHVybgoKLy8gZXhMb2NhbCgpOiB2b2lkCmV4TG9jYWw6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjE2OAoJLy8gbG9nKHRoaXMuYXBwLmxvY2FsU3RhdGUodGhpcy50eG4uc2VuZGVyLCAnZm9vJykgYXMgYnl0ZXMpCgl0eG4gU2VuZGVyCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglhcHBfbG9jYWxfZ2V0X2V4Cglhc3NlcnQKCWxvZwoJcmV0c3ViCgovLyBhY2Nlc3NTdGF0aWNWYWx1ZUluTGFyZ2VCb3goKXVpbnQxNgoqYWJpX3JvdXRlX2FjY2Vzc1N0YXRpY1ZhbHVlSW5MYXJnZUJveDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBhY2Nlc3NTdGF0aWNWYWx1ZUluTGFyZ2VCb3goKXVpbnQxNgoJY2FsbHN1YiBhY2Nlc3NTdGF0aWNWYWx1ZUluTGFyZ2VCb3gKCWl0b2IKCWR1cAoJYml0bGVuCglpbnQgMTYKCTw9Cglhc3NlcnQKCWV4dHJhY3QgNiAyCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYWNjZXNzU3RhdGljVmFsdWVJbkxhcmdlQm94KCk6IHVpbnQxNgphY2Nlc3NTdGF0aWNWYWx1ZUluTGFyZ2VCb3g6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjE3MgoJLy8gdGhpcy5sYXJnZVN0YXRpY0FycmF5SW5Cb3guY3JlYXRlKCkKCWJ5dGUgMHg2YzYxNzI2NzY1NTM3NDYxNzQ2OTYzNDE3MjcyNjE3OTQ5NmU0MjZmNzggLy8gImxhcmdlU3RhdGljQXJyYXlJbkJveCIKCWludCA4MDAwCglib3hfY3JlYXRlCglwb3AKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjE3MwoJLy8gdGhpcy5sYXJnZVN0YXRpY0FycmF5SW5Cb3gudmFsdWVbMTIzXSA9IDQ1NgoJYnl0ZSAweDZjNjE3MjY3NjU1Mzc0NjE3NDY5NjM0MTcyNzI2MTc5NDk2ZTQyNmY3OCAvLyAibGFyZ2VTdGF0aWNBcnJheUluQm94IgoJaW50IDI0NgoJYnl0ZSAweDAxYzgKCWJveF9yZXBsYWNlCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoxNzUKCS8vIHJldHVybiB0aGlzLmxhcmdlU3RhdGljQXJyYXlJbkJveC52YWx1ZVsxMjNdOwoJYnl0ZSAweDZjNjE3MjY3NjU1Mzc0NjE3NDY5NjM0MTcyNzI2MTc5NDk2ZTQyNmY3OCAvLyAibGFyZ2VTdGF0aWNBcnJheUluQm94IgoJaW50IDI0NgoJaW50IDIKCWJveF9leHRyYWN0CglidG9pCglyZXRzdWIKCi8vIGR5bmFtaWNBY2Nlc3NTdGF0aWNWYWx1ZUluTGFyZ2VCb3godWludDY0KXVpbnQxNgoqYWJpX3JvdXRlX2R5bmFtaWNBY2Nlc3NTdGF0aWNWYWx1ZUluTGFyZ2VCb3g6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGk6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZHluYW1pY0FjY2Vzc1N0YXRpY1ZhbHVlSW5MYXJnZUJveCh1aW50NjQpdWludDE2CgljYWxsc3ViIGR5bmFtaWNBY2Nlc3NTdGF0aWNWYWx1ZUluTGFyZ2VCb3gKCWl0b2IKCWR1cAoJYml0bGVuCglpbnQgMTYKCTw9Cglhc3NlcnQKCWV4dHJhY3QgNiAyCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZHluYW1pY0FjY2Vzc1N0YXRpY1ZhbHVlSW5MYXJnZUJveChpOiB1aW50NjQpOiB1aW50MTYKZHluYW1pY0FjY2Vzc1N0YXRpY1ZhbHVlSW5MYXJnZUJveDoKCXByb3RvIDEgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTc5CgkvLyB0aGlzLmxhcmdlU3RhdGljQXJyYXlJbkJveC5jcmVhdGUoKQoJYnl0ZSAweDZjNjE3MjY3NjU1Mzc0NjE3NDY5NjM0MTcyNzI2MTc5NDk2ZTQyNmY3OCAvLyAibGFyZ2VTdGF0aWNBcnJheUluQm94IgoJaW50IDgwMDAKCWJveF9jcmVhdGUKCXBvcAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTgwCgkvLyB0aGlzLmxhcmdlU3RhdGljQXJyYXlJbkJveC52YWx1ZVtpXSA9IDQ1NgoJZnJhbWVfZGlnIC0xIC8vIGk6IHVpbnQ2NAoJaW50IDIKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJYnl0ZSAweDAxYzgKCWJ5dGUgMHg2YzYxNzI2NzY1NTM3NDYxNzQ2OTYzNDE3MjcyNjE3OTQ5NmU0MjZmNzggLy8gImxhcmdlU3RhdGljQXJyYXlJbkJveCIKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoxODQKCS8vIHJldHVybiBhW2ldOwoJZnJhbWVfZGlnIC0xIC8vIGk6IHVpbnQ2NAoJaW50IDIKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50IDIKCWJ5dGUgMHg2YzYxNzI2NzY1NTM3NDYxNzQ2OTYzNDE3MjcyNjE3OTQ5NmU0MjZmNzggLy8gImxhcmdlU3RhdGljQXJyYXlJbkJveCIKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglyZXRzdWIKCi8vIGJveFJlc2l6ZSgpdm9pZAoqYWJpX3JvdXRlX2JveFJlc2l6ZToKCS8vIGV4ZWN1dGUgYm94UmVzaXplKCl2b2lkCgljYWxsc3ViIGJveFJlc2l6ZQoJaW50IDEKCXJldHVybgoKLy8gYm94UmVzaXplKCk6IHZvaWQKYm94UmVzaXplOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoxODgKCS8vIHRoaXMuYm94S2V5LnJlc2l6ZSgxMDI0KQoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJaW50IDEwMjQKCWJveF9yZXNpemUKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjE4OQoJLy8gdGhpcy5ib3hNYXAoJ2JhcicpLnJlc2l6ZSgxMDI0KQoJYnl0ZSAweDYyNjE3MiAvLyAiYmFyIgoJaW50IDEwMjQKCWJveF9yZXNpemUKCXJldHN1YgoKLy8gYm94U3BsaWNlKCl2b2lkCiphYmlfcm91dGVfYm94U3BsaWNlOgoJLy8gZXhlY3V0ZSBib3hTcGxpY2UoKXZvaWQKCWNhbGxzdWIgYm94U3BsaWNlCglpbnQgMQoJcmV0dXJuCgovLyBib3hTcGxpY2UoKTogdm9pZApib3hTcGxpY2U6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjE5MwoJLy8gdGhpcy5ib3hLZXkuc3BsaWNlKDAsIDEsICdhYmMnKQoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJaW50IDAKCWludCAxCglieXRlIDB4NjE2MjYzIC8vICJhYmMiCglib3hfc3BsaWNlCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoxOTQKCS8vIHRoaXMuYm94TWFwKCdiYXInKS5zcGxpY2UoMCwgMSwgJ2FiYycpCglieXRlIDB4NjI2MTcyIC8vICJiYXIiCglpbnQgMAoJaW50IDEKCWJ5dGUgMHg2MTYyNjMgLy8gImFiYyIKCWJveF9zcGxpY2UKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInByZWZpeCgpdm9pZCIKCW1ldGhvZCAiZ2xvYmFsS2V5UHV0KCl2b2lkIgoJbWV0aG9kICJnbG9iYWxLZXlHZXQoKXZvaWQiCgltZXRob2QgImdsb2JhbEtleURlbGV0ZSgpdm9pZCIKCW1ldGhvZCAiZ2xvYmFsS2V5RXhpc3RzKCl2b2lkIgoJbWV0aG9kICJsb2NhbEtleVB1dChhY2NvdW50KXZvaWQiCgltZXRob2QgImxvY2FsS2V5R2V0KGFjY291bnQpdm9pZCIKCW1ldGhvZCAibG9jYWxLZXlEZWxldGUoYWNjb3VudCl2b2lkIgoJbWV0aG9kICJsb2NhbEtleUV4aXN0cyhhY2NvdW50KXZvaWQiCgltZXRob2QgImJveEtleVB1dCgpdm9pZCIKCW1ldGhvZCAiYm94S2V5R2V0KCl2b2lkIgoJbWV0aG9kICJib3hLZXlEZWxldGUoKXZvaWQiCgltZXRob2QgImJveEtleUV4aXN0cygpdm9pZCIKCW1ldGhvZCAiZ2xvYmFsTWFwUHV0KCl2b2lkIgoJbWV0aG9kICJnbG9iYWxNYXBHZXQoKXZvaWQiCgltZXRob2QgImdsb2JhbE1hcERlbGV0ZSgpdm9pZCIKCW1ldGhvZCAiZ2xvYmFsTWFwRXhpc3RzKCl2b2lkIgoJbWV0aG9kICJsb2NhbE1hcFB1dChhY2NvdW50KXZvaWQiCgltZXRob2QgImxvY2FsTWFwR2V0KGFjY291bnQpdm9pZCIKCW1ldGhvZCAibG9jYWxNYXBEZWxldGUoYWNjb3VudCl2b2lkIgoJbWV0aG9kICJsb2NhbE1hcEV4aXN0cyhhY2NvdW50KXZvaWQiCgltZXRob2QgImJveE1hcFB1dCgpdm9pZCIKCW1ldGhvZCAiYm94TWFwR2V0KCl2b2lkIgoJbWV0aG9kICJib3hNYXBEZWxldGUoKXZvaWQiCgltZXRob2QgImJveE1hcEV4aXN0cygpdm9pZCIKCW1ldGhvZCAiYm94S2V5Q3JlYXRlKCl2b2lkIgoJbWV0aG9kICJib3hNYXBDcmVhdGUoKXZvaWQiCgltZXRob2QgImJveEtleUxlbmd0aCgpdWludDY0IgoJbWV0aG9kICJib3hNYXBMZW5ndGgoKXVpbnQ2NCIKCW1ldGhvZCAiYm94S2V5UmVwbGFjZSgpdm9pZCIKCW1ldGhvZCAiYm94TWFwUmVwbGFjZSgpdm9pZCIKCW1ldGhvZCAiYm94S2V5RXh0cmFjdCgpc3RyaW5nIgoJbWV0aG9kICJib3hNYXBFeHRyYWN0KClzdHJpbmciCgltZXRob2QgImlzT3B0ZWRJbigpYm9vbCIKCW1ldGhvZCAiZXhHbG9iYWwoKXZvaWQiCgltZXRob2QgImV4TG9jYWwoKXZvaWQiCgltZXRob2QgImFjY2Vzc1N0YXRpY1ZhbHVlSW5MYXJnZUJveCgpdWludDE2IgoJbWV0aG9kICJkeW5hbWljQWNjZXNzU3RhdGljVmFsdWVJbkxhcmdlQm94KHVpbnQ2NCl1aW50MTYiCgltZXRob2QgImJveFJlc2l6ZSgpdm9pZCIKCW1ldGhvZCAiYm94U3BsaWNlKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9wcmVmaXggKmFiaV9yb3V0ZV9nbG9iYWxLZXlQdXQgKmFiaV9yb3V0ZV9nbG9iYWxLZXlHZXQgKmFiaV9yb3V0ZV9nbG9iYWxLZXlEZWxldGUgKmFiaV9yb3V0ZV9nbG9iYWxLZXlFeGlzdHMgKmFiaV9yb3V0ZV9sb2NhbEtleVB1dCAqYWJpX3JvdXRlX2xvY2FsS2V5R2V0ICphYmlfcm91dGVfbG9jYWxLZXlEZWxldGUgKmFiaV9yb3V0ZV9sb2NhbEtleUV4aXN0cyAqYWJpX3JvdXRlX2JveEtleVB1dCAqYWJpX3JvdXRlX2JveEtleUdldCAqYWJpX3JvdXRlX2JveEtleURlbGV0ZSAqYWJpX3JvdXRlX2JveEtleUV4aXN0cyAqYWJpX3JvdXRlX2dsb2JhbE1hcFB1dCAqYWJpX3JvdXRlX2dsb2JhbE1hcEdldCAqYWJpX3JvdXRlX2dsb2JhbE1hcERlbGV0ZSAqYWJpX3JvdXRlX2dsb2JhbE1hcEV4aXN0cyAqYWJpX3JvdXRlX2xvY2FsTWFwUHV0ICphYmlfcm91dGVfbG9jYWxNYXBHZXQgKmFiaV9yb3V0ZV9sb2NhbE1hcERlbGV0ZSAqYWJpX3JvdXRlX2xvY2FsTWFwRXhpc3RzICphYmlfcm91dGVfYm94TWFwUHV0ICphYmlfcm91dGVfYm94TWFwR2V0ICphYmlfcm91dGVfYm94TWFwRGVsZXRlICphYmlfcm91dGVfYm94TWFwRXhpc3RzICphYmlfcm91dGVfYm94S2V5Q3JlYXRlICphYmlfcm91dGVfYm94TWFwQ3JlYXRlICphYmlfcm91dGVfYm94S2V5TGVuZ3RoICphYmlfcm91dGVfYm94TWFwTGVuZ3RoICphYmlfcm91dGVfYm94S2V5UmVwbGFjZSAqYWJpX3JvdXRlX2JveE1hcFJlcGxhY2UgKmFiaV9yb3V0ZV9ib3hLZXlFeHRyYWN0ICphYmlfcm91dGVfYm94TWFwRXh0cmFjdCAqYWJpX3JvdXRlX2lzT3B0ZWRJbiAqYWJpX3JvdXRlX2V4R2xvYmFsICphYmlfcm91dGVfZXhMb2NhbCAqYWJpX3JvdXRlX2FjY2Vzc1N0YXRpY1ZhbHVlSW5MYXJnZUJveCAqYWJpX3JvdXRlX2R5bmFtaWNBY2Nlc3NTdGF0aWNWYWx1ZUluTGFyZ2VCb3ggKmFiaV9yb3V0ZV9ib3hSZXNpemUgKmFiaV9yb3V0ZV9ib3hTcGxpY2UKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/Templates.approval.teal b/tests/contracts/artifacts/Templates.approval.teal index ba6b0bf8a..fbd964b84 100644 --- a/tests/contracts/artifacts/Templates.approval.teal +++ b/tests/contracts/artifacts/Templates.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.83.0 +// This TEAL was generated by TEALScript v0.83.1 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,20 +9,20 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // tmpl()void -abi_route_tmpl: +*abi_route_tmpl: // execute tmpl()void callsub tmpl int 1 @@ -43,18 +43,18 @@ tmpl: assert retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "tmpl()void" txna ApplicationArgs 0 - match abi_route_tmpl + match *abi_route_tmpl err \ No newline at end of file diff --git a/tests/contracts/artifacts/Templates.arc32.json b/tests/contracts/artifacts/Templates.arc32.json index 1bdbcbd0c..f736053b0 100644 --- a/tests/contracts/artifacts/Templates.arc32.json +++ b/tests/contracts/artifacts/Templates.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbG1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICJOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY3JlYXRlX05vT3AgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRAoKTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyB0bXBsKCl2b2lkCmFiaV9yb3V0ZV90bXBsOgoJLy8gZXhlY3V0ZSB0bXBsKCl2b2lkCgljYWxsc3ViIHRtcGwKCWludCAxCglyZXR1cm4KCi8vIHRtcGwoKTogdm9pZAp0bXBsOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozMgoJLy8gbG9nKHRoaXMuYnl0ZXNUbXBsVmFyKQoJcHVzaGJ5dGVzIFRNUExfYnl0ZXNUbXBsVmFyCglsb2cKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjMzCgkvLyBhc3NlcnQodGhpcy51aW50NjRUbXBsVmFyKQoJcHVzaGludCBUTVBMX3VpbnQ2NFRtcGxWYXIKCWFzc2VydAoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJ0bXBsKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX3RtcGwKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjgzLjEKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyB0bXBsKCl2b2lkCiphYmlfcm91dGVfdG1wbDoKCS8vIGV4ZWN1dGUgdG1wbCgpdm9pZAoJY2FsbHN1YiB0bXBsCglpbnQgMQoJcmV0dXJuCgovLyB0bXBsKCk6IHZvaWQKdG1wbDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzIKCS8vIGxvZyh0aGlzLmJ5dGVzVG1wbFZhcikKCXB1c2hieXRlcyBUTVBMX2J5dGVzVG1wbFZhcgoJbG9nCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozMwoJLy8gYXNzZXJ0KHRoaXMudWludDY0VG1wbFZhcikKCXB1c2hpbnQgVE1QTF91aW50NjRUbXBsVmFyCglhc3NlcnQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInRtcGwoKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3RtcGwKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/web/goldfile.ts b/tests/web/goldfile.ts index c63d6acd5..0a461da95 100644 --- a/tests/web/goldfile.ts +++ b/tests/web/goldfile.ts @@ -11,20 +11,20 @@ export const TEAL = `#pragma version 10 // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its respective branch will be "NOT_IMPLEMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! int 6 * txn OnCompletion + -switch call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: err // doMath(uint64,uint64)uint64 -abi_route_doMath: +*abi_route_doMath: // The ABI return prefix byte 0x151f7c75 @@ -62,18 +62,18 @@ doMath: + retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication err -call_NoOp: +*call_NoOp: method "doMath(uint64,uint64)uint64" txna ApplicationArgs 0 - match abi_route_doMath + match *abi_route_doMath err`;