{
  "_format": "hh-sol-artifact-1",
  "contractName": "MPTValidatorStgV3",
  "sourceName": "contracts/MPTValidatorStgV3.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_stargateBridgeAddress",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_stgTokenAddress",
          "type": "address"
        },
        {
          "internalType": "uint16",
          "name": "_localChainId",
          "type": "uint16"
        }
      ],
      "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": "uint16",
          "name": "srcChain",
          "type": "uint16"
        },
        {
          "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": [
        {
          "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 MPTValidatorStgV3.ULNLog",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "localChainId",
      "outputs": [
        {
          "internalType": "uint16",
          "name": "",
          "type": "uint16"
        }
      ],
      "stateMutability": "view",
      "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": "stgTokenAddress",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "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": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x60e06040523480156200001157600080fd5b506040516200213d3803806200213d833981016040819052620000349162000083565b606092831b6001600160601b03199081166080529190921b1660a05260f01b6001600160f01b03191660c052620000d5565b80516001600160a01b03811681146200007e57600080fd5b919050565b60008060006060848603121562000098578283fd5b620000a38462000066565b9250620000b36020850162000066565b9150604084015161ffff81168114620000ca578182fd5b809150509250925092565b60805160601c60a05160601c60c05160f01c6120236200011a600039806101d452806102cc52508061019d528061039c5250806101f8528061033152506120236000f3fe608060405234801561001057600080fd5b50600436106100a35760003560e01c80636348d26911610076578063be9d395e1161005b578063be9d395e14610143578063e0cabadd14610158578063ea455df91461016b576100a3565b80636348d2691461011b578063b71e0f7114610123576100a3565b80630f222e65146100a85780633fc18d4c146100d15780635711c2a8146100e65780635b056da514610106575b600080fd5b6100bb6100b6366004611861565b61017e565b6040516100c89190611df5565b60405180910390f35b6100d961019b565b6040516100c89190611bef565b6100f96100f4366004611952565b6101bf565b6040516100c89190611c19565b61010e6101d2565b6040516100c89190611e24565b6100d96101f6565b6101366101313660046118d5565b61021a565b6040516100c89190611d50565b61014b610413565b6040516100c89190611c10565b610136610166366004611985565b610437565b6100f9610179366004611952565b61044b565b61018661158b565b61019285858585610456565b95945050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60606101ca826105d0565b90505b919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6102226115aa565b600080808061023387890189611a25565b935093509350935060006102498a848487610456565b60208101519091507fe8d23d927749ec8e512eb885679c2977d57068839d8cca1a85685dbbea0648f6146102b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102a990611cbc565b60405180910390fd5b60006102c88260400151878a85600001516106f1565b90507f000000000000000000000000000000000000000000000000000000000000000061ffff16816020015161ffff161461032f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102a990611cf3565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16816060015173ffffffffffffffffffffffffffffffffffffffff16141561039a576103948160c001516105d0565b60c08201525b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16816060015173ffffffffffffffffffffffffffffffffffffffff161415610405576103ff8160c001516107e7565b60c08201525b9a9950505050505050505050565b7fe8d23d927749ec8e512eb885679c2977d57068839d8cca1a85685dbbea0648f681565b61043f6115aa565b610192858585856106f1565b60606101ca826107e7565b61045e61158b565b8151845114610499576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102a990611c4e565b6104a16115e8565b606060005b845181101561054d578481815181106104bb57fe5b6020026020010151915081805190602001208814610505576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102a990611c85565b61052b87828151811061051457fe5b602002602001015161052584610891565b90610905565b925060018551038110156105455761054283610ac1565b97505b6001016104a6565b50600061055e600361052585610bde565b9050600061057461056f8389610905565b610c6a565b905061057e61158b565b61058f61058a83610d16565b610ac1565b81526105a861058a60006105a285610d16565b90610dc6565b60208201526105be6105b983610d16565b610e8d565b60408201529998505050505050505050565b6020810151606090600160ff821614156106ea576000806000806000806000898060200190518101906106039190611a9e565b9750975097509750975097509750506000815111156106e25781516000901561062d575060148201515b803b806106df576000826040516020016106479190611bbf565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181526020838101835260008085529251919450919261069d928f928f928f928f928f928f928b9201611e33565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190529c506101cd9b505050505050505050505050565b50505b505050505050505b5090919050565b6106f96115aa565b602085015160608601516068870151858801607c01519190610719611602565b6107238189610fba565b506107338160008c60888c610ff4565b50600061074b896107458660146110ce565b906110ce565b9050610755611602565b61075f8183610fba565b5061077b60008d6107718d609c611145565b8492919086610ff4565b506040805160e08101825261ffff808e16825298909816602089015267ffffffffffffffff909416938701939093525073ffffffffffffffffffffffffffffffffffffffff9093166060850152915160808401525060a082018490525160c08201529050949350505050565b60606000808380602001905181019061080091906119e0565b9150915060008083511115610816575060148201515b73ffffffffffffffffffffffffffffffffffffffff81166108885760405161dead90600090610849908390602001611bbf565b6040516020818303038152906040529050808460405160200161086d929190611c2c565b604051602081830303815290604052955050505050506101cd565b50929392505050565b6108996115e8565b602082018051835160009190911a9080158015906108ba575060c060ff8316105b156108e957600192909201917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b6040805180820190915290815260208101929092525092915050565b61090d6115e8565b610916836111c0565b61096b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611fac6021913960400191505060405180910390fd5b610974836111fa565b82106109e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f524c50206974656d206f7574206f6620626f756e647300000000000000000000604482015290519081900360640190fd5b82516020840151908101906000906109f890611252565b60208601510190506000805b85811015610a2357610a15836112f1565b928301929150600101610a04565b50610a2d826112f1565b9050828183011115610aa057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f524c50206974656d206f766572666c6f77000000000000000000000000000000604482015290519081900360640190fd5b60405180604001604052808281526020018381525093505050505b92915050565b805160009015801590610ad657508151602110155b610b4157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f524c504465636f64657220746f55696e7420696e76616c6964206c656e677468604482015290519081900360640190fd5b6000610b508360200151611252565b90508083600001511015610baf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180611f846028913960400191505060405180910390fd5b825160208085015183018051928490039291831015610bd557826020036101000a820491505b50949350505050565b610be66115e8565b6000610bf58360200151611252565b60208401518451908201805192935060009290921a91908015801590610c1e575060c060ff8416105b15610c4d57600191909101907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b604080518082019091529081526020810191909152949350505050565b610c7261161c565b610c7b826111c0565b610ce657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f524c504465636f646572206974657261746f72206973206e6f74206c69737400604482015290519081900360640190fd5b6000610cf58360200151611252565b60208085015160408051808201909152868152920190820152915050919050565b610d1e6115e8565b610d27826113c6565b610d9257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f524c504465636f646572206974657261746f7220686173206e6f206e65787400604482015290519081900360640190fd5b60208201516000610da2826112f1565b80830160209586015260408051808201909152908152938401919091525090919050565b610dce6115e8565b610dd7836111c0565b610e2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611fac6021913960400191505060405180910390fd5b6000610e3b8460200151611252565b60208501510190506000805b84811015610e6657610e58836112f1565b928301929150600101610e47565b50610e70826112f1565b604080518082019091529081526020810192909252509392505050565b8051606090610ee7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611fcd6021913960400191505060405180910390fd5b6000610ef68360200151611252565b90508083600001511015610f55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180611f846028913960400191505060405180910390fd5b825181900360008167ffffffffffffffff81118015610f7357600080fd5b506040519080825280601f01601f191660200182016040528015610f9e576020820181803683370190505b5090506000816020019050610bd58487602001510182856113db565b610fc2611602565b6020820615610fd75760208206602003820191505b506020828101829052604080518085526000815290920101905290565b610ffc611602565b85602001518286011115611026576110268661101e8860200151888601611462565b600202611479565b6000808751805188602083010193508089870111156110455788860182525b5050508484015b6020841061108957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909301926020918201910161104c565b5181517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60208690036101000a01908116901991909116179052508495945050505050565b60008282111561113f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000828201838110156111b957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b80516000906111d1575060006101cd565b6020820151805160001a9060c08210156111f0576000925050506101cd565b5060019392505050565b805160009061120b575060006101cd565b60008061121b8460200151611252565b602085015185519181019250015b808210156112495761123a826112f1565b60019093019290910190611229565b50909392505050565b8051600090811a608081101561126c5760009150506101cd565b60b8811080611287575060c08110801590611287575060f881105b156112965760019150506101cd565b60c08110156112c8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4a0190506101cd565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0a0190506101cd565b80516000908190811a608081101561130c57600191506113bf565b60b881101561133f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81810191506113bf565b60c081101561136c5760b78103600185019450806020036101000a855104600182018101935050506113bf565b60f881101561139f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff41810191506113bf565b60f78103600185019450806020036101000a855104600182018101935050505b5092915050565b80518051602091820151919092015191011190565b806113e55761145d565b5b602081106114235782518252602092830192909101907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0016113e6565b8251825160208390036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161782525b505050565b600081831115611473575081610abb565b50919050565b81516114858383610fba565b506114908382611496565b50505050565b61149e611602565b6111b9838460000151518485516114b3611602565b82518211156114c157600080fd5b846020015182850111156114e3576114e38561101e8760200151878601611462565b6000808651805187602083010193508088870111156115025787860182525b505050602084015b6020841061154757805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909301926020918201910161150a565b5181517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60208690036101000a019081169019919091161790525083949350505050565b6040805160608082018352600080835260208301529181019190915290565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820181905260a082019290925260c081019190915290565b604051806040016040528060008152602001600081525090565b604051806040016040528060608152602001600081525090565b604051806040016040528061162f6115e8565b8152602001600081525090565b600082601f83011261164c578081fd5b8135602061166161165c83611ef9565b611ed5565b82815281810190858301855b8581101561169657611684898684358b01016116fd565b8452928401929084019060010161166d565b5090979650505050505050565b600082601f8301126116b3578081fd5b813560206116c361165c83611ef9565b82815281810190858301838502870184018810156116df578586fd5b855b85811015611696578135845292840192908401906001016116e1565b600082601f83011261170d578081fd5b813561171b61165c82611f17565b81815284602083860101111561172f578283fd5b816020850160208301379081016020019190915292915050565b600082601f830112611759578081fd5b815161176761165c82611f17565b81815284602083860101111561177b578283fd5b61178c826020830160208701611f57565b949350505050565b6000604082840312156117a5578081fd5b6040516040810181811067ffffffffffffffff821117156117c257fe5b604052825181526020928301519281019290925250919050565b600060c082840312156117ed578081fd5b60405160c0810181811067ffffffffffffffff8211171561180a57fe5b8060405250809150825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a08201525092915050565b803561ffff811681146101cd57600080fd5b60008060008060808587031215611876578384fd5b84359350602085013567ffffffffffffffff80821115611894578485fd5b6118a0888389016116a3565b94506040870135935060608701359150808211156118bc578283fd5b506118c98782880161163c565b91505092959194509250565b600080600080606085870312156118ea578384fd5b84359350602085013567ffffffffffffffff80821115611908578485fd5b818701915087601f83011261191b578485fd5b813581811115611929578586fd5b88602082850101111561193a578586fd5b95986020929092019750949560400135945092505050565b600060208284031215611963578081fd5b813567ffffffffffffffff811115611979578182fd5b61178c848285016116fd565b6000806000806080858703121561199a578384fd5b843567ffffffffffffffff8111156119b0578485fd5b6119bc878288016116fd565b9450506119cb6020860161184f565b93969395505050506040820135916060013590565b600080604083850312156119f2578182fd5b825167ffffffffffffffff811115611a08578283fd5b611a1485828601611749565b925050602083015190509250929050565b60008060008060808587031215611a3a578182fd5b611a438561184f565b9350602085013567ffffffffffffffff80821115611a5f578384fd5b611a6b8883890161163c565b94506040870135915080821115611a80578384fd5b50611a8d878288016116a3565b949793965093946060013593505050565b6000806000806000806000806101c0898b031215611aba578586fd5b885160ff81168114611aca578687fd5b80985050602089015196506040890151955060608901519450611af08a60808b01611794565b9350611aff8a60c08b016117dc565b925061018089015167ffffffffffffffff80821115611b1c578384fd5b611b288c838d01611749565b93506101a08b0151915080821115611b3e578283fd5b50611b4b8b828c01611749565b9150509295985092959890939650565b73ffffffffffffffffffffffffffffffffffffffff169052565b60008151808452611b8d816020860160208601611f57565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60609190911b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016815260140190565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b90815260200190565b6000602082526111b96020830184611b75565b600060408252611c3f6040830185611b75565b90508260208301529392505050565b6020808252601c908201527f50726f6f664c69623a20696e76616c69642070726f6f662073697a6500000000604082015260600190565b6020808252601a908201527f50726f6f664c69623a20696e76616c696420686173686c696e6b000000000000604082015260600190565b6020808252601f908201527f50726f6f664c69623a207061636b6574206e6f74207265636f676e697a656400604082015260600190565b60208082526026908201527f50726f6f664c69623a20696e76616c69642064657374696e6174696f6e20636860408201527f61696e2049440000000000000000000000000000000000000000000000000000606082015260800190565b60006020825261ffff8084511660208401528060208501511660408401525067ffffffffffffffff60408401511660608301526060830151611d956080840182611b5b565b50608083015160e060a0840152611db0610100840182611b75565b905060a084015160c084015260c08401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08483030160e08501526101928282611b75565b6000602082528251602083015260208301516040830152604083015160608084015261178c6080840182611b75565b61ffff91909116815260200190565b60006101c060ff8b16835289602084015288604084015287606084015286516080840152602087015160a0840152855160c0840152602086015160e084015260408601516101008401526060860151610120840152608086015161014084015260a086015161016084015280610180840152611eb181840186611b75565b90508281036101a0840152611ec68185611b75565b9b9a5050505050505050505050565b60405181810167ffffffffffffffff81118282101715611ef157fe5b604052919050565b600067ffffffffffffffff821115611f0d57fe5b5060209081020190565b600067ffffffffffffffff821115611f2b57fe5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b83811015611f72578181015183820152602001611f5a565b83811115611490575050600091015256fe524c504465636f6465723a20696e76616c696420524c50206974656d206f66667365742073697a65524c504465636f646572206974657261746f72206973206e6f742061206c697374524c504465636f64657220746f427974657320696e76616c6964206c656e677468a264697066735822122039bc6e5ea9302676fc28d1f5deb1bcee1c91e4cbe77b905f7be52fbe3befa5b864736f6c63430007060033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100a35760003560e01c80636348d26911610076578063be9d395e1161005b578063be9d395e14610143578063e0cabadd14610158578063ea455df91461016b576100a3565b80636348d2691461011b578063b71e0f7114610123576100a3565b80630f222e65146100a85780633fc18d4c146100d15780635711c2a8146100e65780635b056da514610106575b600080fd5b6100bb6100b6366004611861565b61017e565b6040516100c89190611df5565b60405180910390f35b6100d961019b565b6040516100c89190611bef565b6100f96100f4366004611952565b6101bf565b6040516100c89190611c19565b61010e6101d2565b6040516100c89190611e24565b6100d96101f6565b6101366101313660046118d5565b61021a565b6040516100c89190611d50565b61014b610413565b6040516100c89190611c10565b610136610166366004611985565b610437565b6100f9610179366004611952565b61044b565b61018661158b565b61019285858585610456565b95945050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60606101ca826105d0565b90505b919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6102226115aa565b600080808061023387890189611a25565b935093509350935060006102498a848487610456565b60208101519091507fe8d23d927749ec8e512eb885679c2977d57068839d8cca1a85685dbbea0648f6146102b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102a990611cbc565b60405180910390fd5b60006102c88260400151878a85600001516106f1565b90507f000000000000000000000000000000000000000000000000000000000000000061ffff16816020015161ffff161461032f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102a990611cf3565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16816060015173ffffffffffffffffffffffffffffffffffffffff16141561039a576103948160c001516105d0565b60c08201525b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16816060015173ffffffffffffffffffffffffffffffffffffffff161415610405576103ff8160c001516107e7565b60c08201525b9a9950505050505050505050565b7fe8d23d927749ec8e512eb885679c2977d57068839d8cca1a85685dbbea0648f681565b61043f6115aa565b610192858585856106f1565b60606101ca826107e7565b61045e61158b565b8151845114610499576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102a990611c4e565b6104a16115e8565b606060005b845181101561054d578481815181106104bb57fe5b6020026020010151915081805190602001208814610505576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102a990611c85565b61052b87828151811061051457fe5b602002602001015161052584610891565b90610905565b925060018551038110156105455761054283610ac1565b97505b6001016104a6565b50600061055e600361052585610bde565b9050600061057461056f8389610905565b610c6a565b905061057e61158b565b61058f61058a83610d16565b610ac1565b81526105a861058a60006105a285610d16565b90610dc6565b60208201526105be6105b983610d16565b610e8d565b60408201529998505050505050505050565b6020810151606090600160ff821614156106ea576000806000806000806000898060200190518101906106039190611a9e565b9750975097509750975097509750506000815111156106e25781516000901561062d575060148201515b803b806106df576000826040516020016106479190611bbf565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181526020838101835260008085529251919450919261069d928f928f928f928f928f928f928b9201611e33565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190529c506101cd9b505050505050505050505050565b50505b505050505050505b5090919050565b6106f96115aa565b602085015160608601516068870151858801607c01519190610719611602565b6107238189610fba565b506107338160008c60888c610ff4565b50600061074b896107458660146110ce565b906110ce565b9050610755611602565b61075f8183610fba565b5061077b60008d6107718d609c611145565b8492919086610ff4565b506040805160e08101825261ffff808e16825298909816602089015267ffffffffffffffff909416938701939093525073ffffffffffffffffffffffffffffffffffffffff9093166060850152915160808401525060a082018490525160c08201529050949350505050565b60606000808380602001905181019061080091906119e0565b9150915060008083511115610816575060148201515b73ffffffffffffffffffffffffffffffffffffffff81166108885760405161dead90600090610849908390602001611bbf565b6040516020818303038152906040529050808460405160200161086d929190611c2c565b604051602081830303815290604052955050505050506101cd565b50929392505050565b6108996115e8565b602082018051835160009190911a9080158015906108ba575060c060ff8316105b156108e957600192909201917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b6040805180820190915290815260208101929092525092915050565b61090d6115e8565b610916836111c0565b61096b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611fac6021913960400191505060405180910390fd5b610974836111fa565b82106109e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f524c50206974656d206f7574206f6620626f756e647300000000000000000000604482015290519081900360640190fd5b82516020840151908101906000906109f890611252565b60208601510190506000805b85811015610a2357610a15836112f1565b928301929150600101610a04565b50610a2d826112f1565b9050828183011115610aa057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f524c50206974656d206f766572666c6f77000000000000000000000000000000604482015290519081900360640190fd5b60405180604001604052808281526020018381525093505050505b92915050565b805160009015801590610ad657508151602110155b610b4157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f524c504465636f64657220746f55696e7420696e76616c6964206c656e677468604482015290519081900360640190fd5b6000610b508360200151611252565b90508083600001511015610baf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180611f846028913960400191505060405180910390fd5b825160208085015183018051928490039291831015610bd557826020036101000a820491505b50949350505050565b610be66115e8565b6000610bf58360200151611252565b60208401518451908201805192935060009290921a91908015801590610c1e575060c060ff8416105b15610c4d57600191909101907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b604080518082019091529081526020810191909152949350505050565b610c7261161c565b610c7b826111c0565b610ce657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f524c504465636f646572206974657261746f72206973206e6f74206c69737400604482015290519081900360640190fd5b6000610cf58360200151611252565b60208085015160408051808201909152868152920190820152915050919050565b610d1e6115e8565b610d27826113c6565b610d9257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f524c504465636f646572206974657261746f7220686173206e6f206e65787400604482015290519081900360640190fd5b60208201516000610da2826112f1565b80830160209586015260408051808201909152908152938401919091525090919050565b610dce6115e8565b610dd7836111c0565b610e2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611fac6021913960400191505060405180910390fd5b6000610e3b8460200151611252565b60208501510190506000805b84811015610e6657610e58836112f1565b928301929150600101610e47565b50610e70826112f1565b604080518082019091529081526020810192909252509392505050565b8051606090610ee7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611fcd6021913960400191505060405180910390fd5b6000610ef68360200151611252565b90508083600001511015610f55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180611f846028913960400191505060405180910390fd5b825181900360008167ffffffffffffffff81118015610f7357600080fd5b506040519080825280601f01601f191660200182016040528015610f9e576020820181803683370190505b5090506000816020019050610bd58487602001510182856113db565b610fc2611602565b6020820615610fd75760208206602003820191505b506020828101829052604080518085526000815290920101905290565b610ffc611602565b85602001518286011115611026576110268661101e8860200151888601611462565b600202611479565b6000808751805188602083010193508089870111156110455788860182525b5050508484015b6020841061108957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909301926020918201910161104c565b5181517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60208690036101000a01908116901991909116179052508495945050505050565b60008282111561113f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000828201838110156111b957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b80516000906111d1575060006101cd565b6020820151805160001a9060c08210156111f0576000925050506101cd565b5060019392505050565b805160009061120b575060006101cd565b60008061121b8460200151611252565b602085015185519181019250015b808210156112495761123a826112f1565b60019093019290910190611229565b50909392505050565b8051600090811a608081101561126c5760009150506101cd565b60b8811080611287575060c08110801590611287575060f881105b156112965760019150506101cd565b60c08110156112c8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4a0190506101cd565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0a0190506101cd565b80516000908190811a608081101561130c57600191506113bf565b60b881101561133f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81810191506113bf565b60c081101561136c5760b78103600185019450806020036101000a855104600182018101935050506113bf565b60f881101561139f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff41810191506113bf565b60f78103600185019450806020036101000a855104600182018101935050505b5092915050565b80518051602091820151919092015191011190565b806113e55761145d565b5b602081106114235782518252602092830192909101907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0016113e6565b8251825160208390036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161782525b505050565b600081831115611473575081610abb565b50919050565b81516114858383610fba565b506114908382611496565b50505050565b61149e611602565b6111b9838460000151518485516114b3611602565b82518211156114c157600080fd5b846020015182850111156114e3576114e38561101e8760200151878601611462565b6000808651805187602083010193508088870111156115025787860182525b505050602084015b6020841061154757805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909301926020918201910161150a565b5181517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60208690036101000a019081169019919091161790525083949350505050565b6040805160608082018352600080835260208301529181019190915290565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820181905260a082019290925260c081019190915290565b604051806040016040528060008152602001600081525090565b604051806040016040528060608152602001600081525090565b604051806040016040528061162f6115e8565b8152602001600081525090565b600082601f83011261164c578081fd5b8135602061166161165c83611ef9565b611ed5565b82815281810190858301855b8581101561169657611684898684358b01016116fd565b8452928401929084019060010161166d565b5090979650505050505050565b600082601f8301126116b3578081fd5b813560206116c361165c83611ef9565b82815281810190858301838502870184018810156116df578586fd5b855b85811015611696578135845292840192908401906001016116e1565b600082601f83011261170d578081fd5b813561171b61165c82611f17565b81815284602083860101111561172f578283fd5b816020850160208301379081016020019190915292915050565b600082601f830112611759578081fd5b815161176761165c82611f17565b81815284602083860101111561177b578283fd5b61178c826020830160208701611f57565b949350505050565b6000604082840312156117a5578081fd5b6040516040810181811067ffffffffffffffff821117156117c257fe5b604052825181526020928301519281019290925250919050565b600060c082840312156117ed578081fd5b60405160c0810181811067ffffffffffffffff8211171561180a57fe5b8060405250809150825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a08201525092915050565b803561ffff811681146101cd57600080fd5b60008060008060808587031215611876578384fd5b84359350602085013567ffffffffffffffff80821115611894578485fd5b6118a0888389016116a3565b94506040870135935060608701359150808211156118bc578283fd5b506118c98782880161163c565b91505092959194509250565b600080600080606085870312156118ea578384fd5b84359350602085013567ffffffffffffffff80821115611908578485fd5b818701915087601f83011261191b578485fd5b813581811115611929578586fd5b88602082850101111561193a578586fd5b95986020929092019750949560400135945092505050565b600060208284031215611963578081fd5b813567ffffffffffffffff811115611979578182fd5b61178c848285016116fd565b6000806000806080858703121561199a578384fd5b843567ffffffffffffffff8111156119b0578485fd5b6119bc878288016116fd565b9450506119cb6020860161184f565b93969395505050506040820135916060013590565b600080604083850312156119f2578182fd5b825167ffffffffffffffff811115611a08578283fd5b611a1485828601611749565b925050602083015190509250929050565b60008060008060808587031215611a3a578182fd5b611a438561184f565b9350602085013567ffffffffffffffff80821115611a5f578384fd5b611a6b8883890161163c565b94506040870135915080821115611a80578384fd5b50611a8d878288016116a3565b949793965093946060013593505050565b6000806000806000806000806101c0898b031215611aba578586fd5b885160ff81168114611aca578687fd5b80985050602089015196506040890151955060608901519450611af08a60808b01611794565b9350611aff8a60c08b016117dc565b925061018089015167ffffffffffffffff80821115611b1c578384fd5b611b288c838d01611749565b93506101a08b0151915080821115611b3e578283fd5b50611b4b8b828c01611749565b9150509295985092959890939650565b73ffffffffffffffffffffffffffffffffffffffff169052565b60008151808452611b8d816020860160208601611f57565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60609190911b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016815260140190565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b90815260200190565b6000602082526111b96020830184611b75565b600060408252611c3f6040830185611b75565b90508260208301529392505050565b6020808252601c908201527f50726f6f664c69623a20696e76616c69642070726f6f662073697a6500000000604082015260600190565b6020808252601a908201527f50726f6f664c69623a20696e76616c696420686173686c696e6b000000000000604082015260600190565b6020808252601f908201527f50726f6f664c69623a207061636b6574206e6f74207265636f676e697a656400604082015260600190565b60208082526026908201527f50726f6f664c69623a20696e76616c69642064657374696e6174696f6e20636860408201527f61696e2049440000000000000000000000000000000000000000000000000000606082015260800190565b60006020825261ffff8084511660208401528060208501511660408401525067ffffffffffffffff60408401511660608301526060830151611d956080840182611b5b565b50608083015160e060a0840152611db0610100840182611b75565b905060a084015160c084015260c08401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08483030160e08501526101928282611b75565b6000602082528251602083015260208301516040830152604083015160608084015261178c6080840182611b75565b61ffff91909116815260200190565b60006101c060ff8b16835289602084015288604084015287606084015286516080840152602087015160a0840152855160c0840152602086015160e084015260408601516101008401526060860151610120840152608086015161014084015260a086015161016084015280610180840152611eb181840186611b75565b90508281036101a0840152611ec68185611b75565b9b9a5050505050505050505050565b60405181810167ffffffffffffffff81118282101715611ef157fe5b604052919050565b600067ffffffffffffffff821115611f0d57fe5b5060209081020190565b600067ffffffffffffffff821115611f2b57fe5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b83811015611f72578181015183820152602001611f5a565b83811115611490575050600091015256fe524c504465636f6465723a20696e76616c696420524c50206974656d206f66667365742073697a65524c504465636f646572206974657261746f72206973206e6f742061206c697374524c504465636f64657220746f427974657320696e76616c6964206c656e677468a264697066735822122039bc6e5ea9302676fc28d1f5deb1bcee1c91e4cbe77b905f7be52fbe3befa5b864736f6c63430007060033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
