{
  "_format": "hh-sol-artifact-1",
  "contractName": "MPTValidator01",
  "sourceName": "contracts/MPTValidator01.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_stargateBridgeAddress",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_stargateTokenAddress",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "PACKET_SIGNATURE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        },
        {
          "internalType": "uint256",
          "name": "sizeOfSrcAddress",
          "type": "uint256"
        },
        {
          "internalType": "bytes32",
          "name": "ulnAddress",
          "type": "bytes32"
        }
      ],
      "name": "getPacket",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint16",
              "name": "srcChainId",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "dstChainId",
              "type": "uint16"
            },
            {
              "internalType": "uint64",
              "name": "nonce",
              "type": "uint64"
            },
            {
              "internalType": "address",
              "name": "dstAddress",
              "type": "address"
            },
            {
              "internalType": "bytes",
              "name": "srcAddress",
              "type": "bytes"
            },
            {
              "internalType": "bytes32",
              "name": "ulnAddress",
              "type": "bytes32"
            },
            {
              "internalType": "bytes",
              "name": "payload",
              "type": "bytes"
            }
          ],
          "internalType": "struct LayerZeroPacket.Packet",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getUtilsVersion",
      "outputs": [
        {
          "internalType": "uint8",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "hashRoot",
          "type": "bytes32"
        },
        {
          "internalType": "uint256[]",
          "name": "receiptSlotIndex",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256",
          "name": "logIndex",
          "type": "uint256"
        },
        {
          "internalType": "bytes[]",
          "name": "proof",
          "type": "bytes[]"
        }
      ],
      "name": "getVerifyLog",
      "outputs": [
        {
          "components": [
            {
              "internalType": "bytes32",
              "name": "contractAddress",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "topicZeroSig",
              "type": "bytes32"
            },
            {
              "internalType": "bytes",
              "name": "data",
              "type": "bytes"
            }
          ],
          "internalType": "struct IValidationLibraryHelperV2.ULNLog",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes",
          "name": "_payload",
          "type": "bytes"
        }
      ],
      "name": "secureStgPayload",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes",
          "name": "_payload",
          "type": "bytes"
        }
      ],
      "name": "secureStgTokenPayload",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "stargateBridgeAddress",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "stargateTokenAddress",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "utilsVersion",
      "outputs": [
        {
          "internalType": "uint8",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_receiptsRoot",
          "type": "bytes32"
        },
        {
          "internalType": "bytes",
          "name": "_transactionProof",
          "type": "bytes"
        },
        {
          "internalType": "uint256",
          "name": "_remoteAddressSize",
          "type": "uint256"
        }
      ],
      "name": "validateProof",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint16",
              "name": "srcChainId",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "dstChainId",
              "type": "uint16"
            },
            {
              "internalType": "uint64",
              "name": "nonce",
              "type": "uint64"
            },
            {
              "internalType": "address",
              "name": "dstAddress",
              "type": "address"
            },
            {
              "internalType": "bytes",
              "name": "srcAddress",
              "type": "bytes"
            },
            {
              "internalType": "bytes32",
              "name": "ulnAddress",
              "type": "bytes32"
            },
            {
              "internalType": "bytes",
              "name": "payload",
              "type": "bytes"
            }
          ],
          "internalType": "struct LayerZeroPacket.Packet",
          "name": "packet",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x60c06040526000805460ff191660041790553480156200001e57600080fd5b50604051620020af380380620020af83398101604081905262000041916200007d565b6001600160601b0319606092831b8116608052911b1660a052620000b4565b80516001600160a01b03811681146200007857600080fd5b919050565b6000806040838503121562000090578182fd5b6200009b8362000060565b9150620000ab6020840162000060565b90509250929050565b60805160601c60a05160601c611fc7620000e86000398061036a528061040e5250806101f752806102ff5250611fc76000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c8063b71e0f7111610076578063d633ad611161005b578063d633ad611461017e578063e965c19214610186578063ea455df91461018e576100be565b8063b71e0f7114610156578063be9d395e14610169576100be565b806347713b39116100a757806347713b391461010c5780635711c2a8146101215780636348d26914610141576100be565b80630f222e65146100c35780632ff20449146100ec575b600080fd5b6100d66100d136600461187d565b6101a1565b6040516100e39190611d9a565b60405180910390f35b6100ff6100fa3660046119e6565b6101be565b6040516100e39190611cf5565b6101146101d9565b6040516100e39190611dc9565b61013461012f36600461196e565b6101e2565b6040516100e39190611bad565b6101496101f5565b6040516100e39190611b83565b6100ff6101643660046118f1565b610219565b6101716103df565b6040516100e39190611ba4565b610114610403565b61014961040c565b61013461019c36600461196e565b610430565b6101a9611557565b6101b58585858561043b565b95945050505050565b6101c6611576565b6101d18484846105ea565b949350505050565b60005460ff1681565b60606101ed82610759565b90505b919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b610221611576565b60008211610264576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025b90611cbe565b60405180910390fd5b6000808061027486880188611813565b92509250925060006102888984848761043b565b60208101519091507fe9bded5f24a4168e4f3bf44e00298c993b22376aad8c58c7dda9718a54cbea82146102e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025b90611c50565b6102fb81604001518783600001516105ea565b94507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16856060015173ffffffffffffffffffffffffffffffffffffffff161415610368576103628560c00151610759565b60c08601525b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16856060015173ffffffffffffffffffffffffffffffffffffffff1614156103d3576103cd8560c0015161087a565b60c08601525b50505050949350505050565b7fe9bded5f24a4168e4f3bf44e00298c993b22376aad8c58c7dda9718a54cbea8281565b60005460ff1690565b7f000000000000000000000000000000000000000000000000000000000000000081565b60606101ed8261087a565b610443611557565b815184511461047e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025b90611be2565b60008251116104b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025b90611c87565b6104c16115b4565b606060005b845181101561056d578481815181106104db57fe5b6020026020010151915081805190602001208814610525576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025b90611c19565b61054b87828151811061053457fe5b602002602001015161054584610924565b90610998565b925060018551038110156105655761056283610b54565b97505b6001016104c6565b50600061057e600361054585610c71565b9050600061059461058f8389610998565b610cfd565b905061059e611557565b6105af6105aa83610da9565b610b54565b81526105c26105aa600061054585610da9565b60208201526105d86105d383610da9565b610e59565b60408201529998505050505050505050565b6105f2611576565b60408401516048850151604a860151858701604c81015160609091015161ffff831661067f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4c617965725a65726f5061636b65743a20696e76616c6964207061636b657400604482015290519081900360640190fd5b6106876115ce565b610691818a610f86565b506106a18160008c606a8d610fc0565b5060006106af8a602061109a565b905060006106bd8883611115565b90506106c76115ce565b6106d18183610f86565b506106ed60008e6106e386606061109a565b8492919086610fc0565b506040805160e08101825261ffff988916815296909716602087015267ffffffffffffffff909716958501959095525073ffffffffffffffffffffffffffffffffffffffff909116606083015251608082015260a08101869052915160c0830152509150509392505050565b6020810151606090600160ff821614156108735760008060008060008060008980602001905181019061078c9190611a32565b97509750975097509750975097505060008151111561086b578151600090156107b6575060148201515b803b80610868576000826040516020016107d09190611b53565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815260208381018352600080855292519194509192610826928f928f928f928f928f928f928b9201611dd7565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190529c506101f09b505050505050505050505050565b50505b505050505050505b5090919050565b60606000808380602001905181019061089391906119a1565b91509150600080835111156108a9575060148201515b73ffffffffffffffffffffffffffffffffffffffff811661091b5760405161dead906000906108dc908390602001611b53565b60405160208183030381529060405290508084604051602001610900929190611bc0565b604051602081830303815290604052955050505050506101f0565b50929392505050565b61092c6115b4565b602082018051835160009190911a90801580159061094d575060c060ff8316105b1561097c57600192909201917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b6040805180820190915290815260208101929092525092915050565b6109a06115b4565b6109a98361118c565b6109fe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611f506021913960400191505060405180910390fd5b610a07836111c6565b8210610a7457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f524c50206974656d206f7574206f6620626f756e647300000000000000000000604482015290519081900360640190fd5b8251602084015190810190600090610a8b9061121e565b60208601510190506000805b85811015610ab657610aa8836112bd565b928301929150600101610a97565b50610ac0826112bd565b9050828183011115610b3357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f524c50206974656d206f766572666c6f77000000000000000000000000000000604482015290519081900360640190fd5b60405180604001604052808281526020018381525093505050505b92915050565b805160009015801590610b6957508151602110155b610bd457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f524c504465636f64657220746f55696e7420696e76616c6964206c656e677468604482015290519081900360640190fd5b6000610be3836020015161121e565b90508083600001511015610c42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180611f286028913960400191505060405180910390fd5b825160208085015183018051928490039291831015610c6857826020036101000a820491505b50949350505050565b610c796115b4565b6000610c88836020015161121e565b60208401518451908201805192935060009290921a91908015801590610cb1575060c060ff8416105b15610ce057600191909101907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b604080518082019091529081526020810191909152949350505050565b610d056115e8565b610d0e8261118c565b610d7957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f524c504465636f646572206974657261746f72206973206e6f74206c69737400604482015290519081900360640190fd5b6000610d88836020015161121e565b60208085015160408051808201909152868152920190820152915050919050565b610db16115b4565b610dba82611392565b610e2557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f524c504465636f646572206974657261746f7220686173206e6f206e65787400604482015290519081900360640190fd5b60208201516000610e35826112bd565b80830160209586015260408051808201909152908152938401919091525090919050565b8051606090610eb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611f716021913960400191505060405180910390fd5b6000610ec2836020015161121e565b90508083600001511015610f21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180611f286028913960400191505060405180910390fd5b825181900360008167ffffffffffffffff81118015610f3f57600080fd5b506040519080825280601f01601f191660200182016040528015610f6a576020820181803683370190505b5090506000816020019050610c688487602001510182856113a7565b610f8e6115ce565b6020820615610fa35760208206602003820191505b506020828101829052604080518085526000815290920101905290565b610fc86115ce565b85602001518286011115610ff257610ff286610fea886020015188860161142e565b600202611445565b6000808751805188602083010193508089870111156110115788860182525b5050508484015b6020841061105557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09093019260209182019101611018565b5181517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60208690036101000a01908116901991909116179052508495945050505050565b60008282018381101561110e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60008282111561118657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b805160009061119d575060006101f0565b6020820151805160001a9060c08210156111bc576000925050506101f0565b5060019392505050565b80516000906111d7575060006101f0565b6000806111e7846020015161121e565b602085015185519181019250015b8082101561121557611206826112bd565b600190930192909101906111f5565b50909392505050565b8051600090811a60808110156112385760009150506101f0565b60b8811080611253575060c08110801590611253575060f881105b156112625760019150506101f0565b60c0811015611294577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4a0190506101f0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0a0190506101f0565b80516000908190811a60808110156112d8576001915061138b565b60b881101561130b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818101915061138b565b60c08110156113385760b78103600185019450806020036101000a8551046001820181019350505061138b565b60f881101561136b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff418101915061138b565b60f78103600185019450806020036101000a855104600182018101935050505b5092915050565b80518051602091820151919092015191011190565b806113b157611429565b5b602081106113ef5782518252602092830192909101907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0016113b2565b8251825160208390036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161782525b505050565b60008183111561143f575081610b4e565b50919050565b81516114518383610f86565b5061145c8382611462565b50505050565b61146a6115ce565b61110e8384600001515184855161147f6115ce565b825182111561148d57600080fd5b846020015182850111156114af576114af85610fea876020015187860161142e565b6000808651805187602083010193508088870111156114ce5787860182525b505050602084015b6020841061151357805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090930192602091820191016114d6565b5181517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60208690036101000a019081169019919091161790525083949350505050565b6040805160608082018352600080835260208301529181019190915290565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820181905260a082019290925260c081019190915290565b604051806040016040528060008152602001600081525090565b604051806040016040528060608152602001600081525090565b60405180604001604052806115fb6115b4565b8152602001600081525090565b600082601f830112611618578081fd5b8135602061162d61162883611e9d565b611e79565b82815281810190858301855b8581101561166257611650898684358b01016116c9565b84529284019290840190600101611639565b5090979650505050505050565b600082601f83011261167f578081fd5b8135602061168f61162883611e9d565b82815281810190858301838502870184018810156116ab578586fd5b855b85811015611662578135845292840192908401906001016116ad565b600082601f8301126116d9578081fd5b81356116e761162882611ebb565b8181528460208386010111156116fb578283fd5b816020850160208301379081016020019190915292915050565b600082601f830112611725578081fd5b815161173361162882611ebb565b818152846020838601011115611747578283fd5b6101d1826020830160208701611efb565b600060408284031215611769578081fd5b6040516040810181811067ffffffffffffffff8211171561178657fe5b604052825181526020928301519281019290925250919050565b600060c082840312156117b1578081fd5b60405160c0810181811067ffffffffffffffff821117156117ce57fe5b8060405250809150825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a08201525092915050565b600080600060608486031215611827578283fd5b833567ffffffffffffffff8082111561183e578485fd5b61184a87838801611608565b9450602086013591508082111561185f578384fd5b5061186c8682870161166f565b925050604084013590509250925092565b60008060008060808587031215611892578081fd5b84359350602085013567ffffffffffffffff808211156118b0578283fd5b6118bc8883890161166f565b94506040870135935060608701359150808211156118d8578283fd5b506118e587828801611608565b91505092959194509250565b60008060008060608587031215611906578384fd5b84359350602085013567ffffffffffffffff80821115611924578485fd5b818701915087601f830112611937578485fd5b813581811115611945578586fd5b886020828501011115611956578586fd5b95986020929092019750949560400135945092505050565b60006020828403121561197f578081fd5b813567ffffffffffffffff811115611995578182fd5b6101d1848285016116c9565b600080604083850312156119b3578182fd5b825167ffffffffffffffff8111156119c9578283fd5b6119d585828601611715565b925050602083015190509250929050565b6000806000606084860312156119fa578283fd5b833567ffffffffffffffff811115611a10578384fd5b611a1c868287016116c9565b9660208601359650604090950135949350505050565b6000806000806000806000806101c0898b031215611a4e578586fd5b885160ff81168114611a5e578687fd5b80985050602089015196506040890151955060608901519450611a848a60808b01611758565b9350611a938a60c08b016117a0565b925061018089015167ffffffffffffffff80821115611ab0578384fd5b611abc8c838d01611715565b93506101a08b0151915080821115611ad2578283fd5b50611adf8b828c01611715565b9150509295985092959890939650565b73ffffffffffffffffffffffffffffffffffffffff169052565b60008151808452611b21816020860160208601611efb565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60609190911b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016815260140190565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b90815260200190565b60006020825261110e6020830184611b09565b600060408252611bd36040830185611b09565b90508260208301529392505050565b6020808252601c908201527f50726f6f664c69623a20696e76616c69642070726f6f662073697a6500000000604082015260600190565b6020808252601a908201527f50726f6f664c69623a20696e76616c696420686173686c696e6b000000000000604082015260600190565b6020808252601f908201527f50726f6f664c69623a207061636b6574206e6f74207265636f676e697a656400604082015260600190565b6020808252601d908201527f50726f6f664c69623a2070726f6f662073697a65206d757374203e2030000000604082015260600190565b6020808252601e908201527f50726f6f664c69623a20696e76616c696420616464726573732073697a650000604082015260600190565b60006020825261ffff8084511660208401528060208501511660408401525067ffffffffffffffff60408401511660608301526060830151611d3a6080840182611aef565b50608083015160e060a0840152611d55610100840182611b09565b905060a084015160c084015260c08401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08483030160e08501526101b58282611b09565b600060208252825160208301526020830151604083015260408301516060808401526101d16080840182611b09565b60ff91909116815260200190565b60006101c060ff8b16835289602084015288604084015287606084015286516080840152602087015160a0840152855160c0840152602086015160e084015260408601516101008401526060860151610120840152608086015161014084015260a086015161016084015280610180840152611e5581840186611b09565b90508281036101a0840152611e6a8185611b09565b9b9a5050505050505050505050565b60405181810167ffffffffffffffff81118282101715611e9557fe5b604052919050565b600067ffffffffffffffff821115611eb157fe5b5060209081020190565b600067ffffffffffffffff821115611ecf57fe5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b83811015611f16578181015183820152602001611efe565b8381111561145c575050600091015256fe524c504465636f6465723a20696e76616c696420524c50206974656d206f66667365742073697a65524c504465636f646572206974657261746f72206973206e6f742061206c697374524c504465636f64657220746f427974657320696e76616c6964206c656e677468a2646970667358221220f1db32ef7285c2e5965a37be743c325e917268c7445210edf92348b49ca9860c64736f6c63430007060033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100be5760003560e01c8063b71e0f7111610076578063d633ad611161005b578063d633ad611461017e578063e965c19214610186578063ea455df91461018e576100be565b8063b71e0f7114610156578063be9d395e14610169576100be565b806347713b39116100a757806347713b391461010c5780635711c2a8146101215780636348d26914610141576100be565b80630f222e65146100c35780632ff20449146100ec575b600080fd5b6100d66100d136600461187d565b6101a1565b6040516100e39190611d9a565b60405180910390f35b6100ff6100fa3660046119e6565b6101be565b6040516100e39190611cf5565b6101146101d9565b6040516100e39190611dc9565b61013461012f36600461196e565b6101e2565b6040516100e39190611bad565b6101496101f5565b6040516100e39190611b83565b6100ff6101643660046118f1565b610219565b6101716103df565b6040516100e39190611ba4565b610114610403565b61014961040c565b61013461019c36600461196e565b610430565b6101a9611557565b6101b58585858561043b565b95945050505050565b6101c6611576565b6101d18484846105ea565b949350505050565b60005460ff1681565b60606101ed82610759565b90505b919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b610221611576565b60008211610264576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025b90611cbe565b60405180910390fd5b6000808061027486880188611813565b92509250925060006102888984848761043b565b60208101519091507fe9bded5f24a4168e4f3bf44e00298c993b22376aad8c58c7dda9718a54cbea82146102e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025b90611c50565b6102fb81604001518783600001516105ea565b94507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16856060015173ffffffffffffffffffffffffffffffffffffffff161415610368576103628560c00151610759565b60c08601525b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16856060015173ffffffffffffffffffffffffffffffffffffffff1614156103d3576103cd8560c0015161087a565b60c08601525b50505050949350505050565b7fe9bded5f24a4168e4f3bf44e00298c993b22376aad8c58c7dda9718a54cbea8281565b60005460ff1690565b7f000000000000000000000000000000000000000000000000000000000000000081565b60606101ed8261087a565b610443611557565b815184511461047e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025b90611be2565b60008251116104b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025b90611c87565b6104c16115b4565b606060005b845181101561056d578481815181106104db57fe5b6020026020010151915081805190602001208814610525576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025b90611c19565b61054b87828151811061053457fe5b602002602001015161054584610924565b90610998565b925060018551038110156105655761056283610b54565b97505b6001016104c6565b50600061057e600361054585610c71565b9050600061059461058f8389610998565b610cfd565b905061059e611557565b6105af6105aa83610da9565b610b54565b81526105c26105aa600061054585610da9565b60208201526105d86105d383610da9565b610e59565b60408201529998505050505050505050565b6105f2611576565b60408401516048850151604a860151858701604c81015160609091015161ffff831661067f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4c617965725a65726f5061636b65743a20696e76616c6964207061636b657400604482015290519081900360640190fd5b6106876115ce565b610691818a610f86565b506106a18160008c606a8d610fc0565b5060006106af8a602061109a565b905060006106bd8883611115565b90506106c76115ce565b6106d18183610f86565b506106ed60008e6106e386606061109a565b8492919086610fc0565b506040805160e08101825261ffff988916815296909716602087015267ffffffffffffffff909716958501959095525073ffffffffffffffffffffffffffffffffffffffff909116606083015251608082015260a08101869052915160c0830152509150509392505050565b6020810151606090600160ff821614156108735760008060008060008060008980602001905181019061078c9190611a32565b97509750975097509750975097505060008151111561086b578151600090156107b6575060148201515b803b80610868576000826040516020016107d09190611b53565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815260208381018352600080855292519194509192610826928f928f928f928f928f928f928b9201611dd7565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190529c506101f09b505050505050505050505050565b50505b505050505050505b5090919050565b60606000808380602001905181019061089391906119a1565b91509150600080835111156108a9575060148201515b73ffffffffffffffffffffffffffffffffffffffff811661091b5760405161dead906000906108dc908390602001611b53565b60405160208183030381529060405290508084604051602001610900929190611bc0565b604051602081830303815290604052955050505050506101f0565b50929392505050565b61092c6115b4565b602082018051835160009190911a90801580159061094d575060c060ff8316105b1561097c57600192909201917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b6040805180820190915290815260208101929092525092915050565b6109a06115b4565b6109a98361118c565b6109fe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611f506021913960400191505060405180910390fd5b610a07836111c6565b8210610a7457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f524c50206974656d206f7574206f6620626f756e647300000000000000000000604482015290519081900360640190fd5b8251602084015190810190600090610a8b9061121e565b60208601510190506000805b85811015610ab657610aa8836112bd565b928301929150600101610a97565b50610ac0826112bd565b9050828183011115610b3357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f524c50206974656d206f766572666c6f77000000000000000000000000000000604482015290519081900360640190fd5b60405180604001604052808281526020018381525093505050505b92915050565b805160009015801590610b6957508151602110155b610bd457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f524c504465636f64657220746f55696e7420696e76616c6964206c656e677468604482015290519081900360640190fd5b6000610be3836020015161121e565b90508083600001511015610c42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180611f286028913960400191505060405180910390fd5b825160208085015183018051928490039291831015610c6857826020036101000a820491505b50949350505050565b610c796115b4565b6000610c88836020015161121e565b60208401518451908201805192935060009290921a91908015801590610cb1575060c060ff8416105b15610ce057600191909101907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b604080518082019091529081526020810191909152949350505050565b610d056115e8565b610d0e8261118c565b610d7957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f524c504465636f646572206974657261746f72206973206e6f74206c69737400604482015290519081900360640190fd5b6000610d88836020015161121e565b60208085015160408051808201909152868152920190820152915050919050565b610db16115b4565b610dba82611392565b610e2557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f524c504465636f646572206974657261746f7220686173206e6f206e65787400604482015290519081900360640190fd5b60208201516000610e35826112bd565b80830160209586015260408051808201909152908152938401919091525090919050565b8051606090610eb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611f716021913960400191505060405180910390fd5b6000610ec2836020015161121e565b90508083600001511015610f21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180611f286028913960400191505060405180910390fd5b825181900360008167ffffffffffffffff81118015610f3f57600080fd5b506040519080825280601f01601f191660200182016040528015610f6a576020820181803683370190505b5090506000816020019050610c688487602001510182856113a7565b610f8e6115ce565b6020820615610fa35760208206602003820191505b506020828101829052604080518085526000815290920101905290565b610fc86115ce565b85602001518286011115610ff257610ff286610fea886020015188860161142e565b600202611445565b6000808751805188602083010193508089870111156110115788860182525b5050508484015b6020841061105557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09093019260209182019101611018565b5181517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60208690036101000a01908116901991909116179052508495945050505050565b60008282018381101561110e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60008282111561118657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b805160009061119d575060006101f0565b6020820151805160001a9060c08210156111bc576000925050506101f0565b5060019392505050565b80516000906111d7575060006101f0565b6000806111e7846020015161121e565b602085015185519181019250015b8082101561121557611206826112bd565b600190930192909101906111f5565b50909392505050565b8051600090811a60808110156112385760009150506101f0565b60b8811080611253575060c08110801590611253575060f881105b156112625760019150506101f0565b60c0811015611294577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4a0190506101f0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0a0190506101f0565b80516000908190811a60808110156112d8576001915061138b565b60b881101561130b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818101915061138b565b60c08110156113385760b78103600185019450806020036101000a8551046001820181019350505061138b565b60f881101561136b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff418101915061138b565b60f78103600185019450806020036101000a855104600182018101935050505b5092915050565b80518051602091820151919092015191011190565b806113b157611429565b5b602081106113ef5782518252602092830192909101907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0016113b2565b8251825160208390036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161782525b505050565b60008183111561143f575081610b4e565b50919050565b81516114518383610f86565b5061145c8382611462565b50505050565b61146a6115ce565b61110e8384600001515184855161147f6115ce565b825182111561148d57600080fd5b846020015182850111156114af576114af85610fea876020015187860161142e565b6000808651805187602083010193508088870111156114ce5787860182525b505050602084015b6020841061151357805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090930192602091820191016114d6565b5181517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60208690036101000a019081169019919091161790525083949350505050565b6040805160608082018352600080835260208301529181019190915290565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820181905260a082019290925260c081019190915290565b604051806040016040528060008152602001600081525090565b604051806040016040528060608152602001600081525090565b60405180604001604052806115fb6115b4565b8152602001600081525090565b600082601f830112611618578081fd5b8135602061162d61162883611e9d565b611e79565b82815281810190858301855b8581101561166257611650898684358b01016116c9565b84529284019290840190600101611639565b5090979650505050505050565b600082601f83011261167f578081fd5b8135602061168f61162883611e9d565b82815281810190858301838502870184018810156116ab578586fd5b855b85811015611662578135845292840192908401906001016116ad565b600082601f8301126116d9578081fd5b81356116e761162882611ebb565b8181528460208386010111156116fb578283fd5b816020850160208301379081016020019190915292915050565b600082601f830112611725578081fd5b815161173361162882611ebb565b818152846020838601011115611747578283fd5b6101d1826020830160208701611efb565b600060408284031215611769578081fd5b6040516040810181811067ffffffffffffffff8211171561178657fe5b604052825181526020928301519281019290925250919050565b600060c082840312156117b1578081fd5b60405160c0810181811067ffffffffffffffff821117156117ce57fe5b8060405250809150825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a08201525092915050565b600080600060608486031215611827578283fd5b833567ffffffffffffffff8082111561183e578485fd5b61184a87838801611608565b9450602086013591508082111561185f578384fd5b5061186c8682870161166f565b925050604084013590509250925092565b60008060008060808587031215611892578081fd5b84359350602085013567ffffffffffffffff808211156118b0578283fd5b6118bc8883890161166f565b94506040870135935060608701359150808211156118d8578283fd5b506118e587828801611608565b91505092959194509250565b60008060008060608587031215611906578384fd5b84359350602085013567ffffffffffffffff80821115611924578485fd5b818701915087601f830112611937578485fd5b813581811115611945578586fd5b886020828501011115611956578586fd5b95986020929092019750949560400135945092505050565b60006020828403121561197f578081fd5b813567ffffffffffffffff811115611995578182fd5b6101d1848285016116c9565b600080604083850312156119b3578182fd5b825167ffffffffffffffff8111156119c9578283fd5b6119d585828601611715565b925050602083015190509250929050565b6000806000606084860312156119fa578283fd5b833567ffffffffffffffff811115611a10578384fd5b611a1c868287016116c9565b9660208601359650604090950135949350505050565b6000806000806000806000806101c0898b031215611a4e578586fd5b885160ff81168114611a5e578687fd5b80985050602089015196506040890151955060608901519450611a848a60808b01611758565b9350611a938a60c08b016117a0565b925061018089015167ffffffffffffffff80821115611ab0578384fd5b611abc8c838d01611715565b93506101a08b0151915080821115611ad2578283fd5b50611adf8b828c01611715565b9150509295985092959890939650565b73ffffffffffffffffffffffffffffffffffffffff169052565b60008151808452611b21816020860160208601611efb565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60609190911b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016815260140190565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b90815260200190565b60006020825261110e6020830184611b09565b600060408252611bd36040830185611b09565b90508260208301529392505050565b6020808252601c908201527f50726f6f664c69623a20696e76616c69642070726f6f662073697a6500000000604082015260600190565b6020808252601a908201527f50726f6f664c69623a20696e76616c696420686173686c696e6b000000000000604082015260600190565b6020808252601f908201527f50726f6f664c69623a207061636b6574206e6f74207265636f676e697a656400604082015260600190565b6020808252601d908201527f50726f6f664c69623a2070726f6f662073697a65206d757374203e2030000000604082015260600190565b6020808252601e908201527f50726f6f664c69623a20696e76616c696420616464726573732073697a650000604082015260600190565b60006020825261ffff8084511660208401528060208501511660408401525067ffffffffffffffff60408401511660608301526060830151611d3a6080840182611aef565b50608083015160e060a0840152611d55610100840182611b09565b905060a084015160c084015260c08401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08483030160e08501526101b58282611b09565b600060208252825160208301526020830151604083015260408301516060808401526101d16080840182611b09565b60ff91909116815260200190565b60006101c060ff8b16835289602084015288604084015287606084015286516080840152602087015160a0840152855160c0840152602086015160e084015260408601516101008401526060860151610120840152608086015161014084015260a086015161016084015280610180840152611e5581840186611b09565b90508281036101a0840152611e6a8185611b09565b9b9a5050505050505050505050565b60405181810167ffffffffffffffff81118282101715611e9557fe5b604052919050565b600067ffffffffffffffff821115611eb157fe5b5060209081020190565b600067ffffffffffffffff821115611ecf57fe5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b83811015611f16578181015183820152602001611efe565b8381111561145c575050600091015256fe524c504465636f6465723a20696e76616c696420524c50206974656d206f66667365742073697a65524c504465636f646572206974657261746f72206973206e6f742061206c697374524c504465636f64657220746f427974657320696e76616c6964206c656e677468a2646970667358221220f1db32ef7285c2e5965a37be743c325e917268c7445210edf92348b49ca9860c64736f6c63430007060033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
