{
  "_format": "hh-sol-artifact-1",
  "contractName": "MIPS",
  "sourceName": "contracts/L1/cannon/MIPS.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract IPreimageOracle",
          "name": "_oracle",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "oracle",
      "outputs": [
        {
          "internalType": "contract IPreimageOracle",
          "name": "oracle_",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes",
          "name": "_stateData",
          "type": "bytes"
        },
        {
          "internalType": "bytes",
          "name": "_proof",
          "type": "bytes"
        },
        {
          "internalType": "bytes32",
          "name": "_localContext",
          "type": "bytes32"
        }
      ],
      "name": "step",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "version",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x60a060405234801561001057600080fd5b50604051620024373803806200243783398101604081905261003191610042565b6001600160a01b0316608052610072565b60006020828403121561005457600080fd5b81516001600160a01b038116811461006b57600080fd5b9392505050565b6080516123a3620000946000396000818160b201526106eb01526123a36000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806354fd4d50146100465780637dc0d1d014610098578063e14ced32146100dc575b600080fd5b6100826040518060400160405280600a81526020017f312e312e302d72632e310000000000000000000000000000000000000000000081525081565b60405161008f91906121c2565b60405180910390f35b60405173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016815260200161008f565b6100ef6100ea366004612277565b6100fd565b60405190815260200161008f565b6000610107612138565b6080811461011457600080fd5b6040516106001461012457600080fd5b6084871461013157600080fd5b6101a4851461013f57600080fd5b8635608052602087013560a052604087013560e090811c60c09081526044890135821c82526048890135821c61010052604c890135821c610120526050890135821c61014052605489013590911c61016052605888013560f890811c610180526059890135901c6101a0819052605a89013590911c6101c05260628801906101e09060018111156101f5576040517f0136cc76000000000000000000000000000000000000000000000000000000008152600481fd5b506020810181511461020657600080fd5b60200160005b602081101561023057823560e01c825260049092019160209091019060010161020c565b5050508061012001511561024e576102466103a6565b91505061039d565b6101408101805160010167ffffffffffffffff16905260006101a49050600080600061028385606001518660000151866104f7565b9250925092508163ffffffff1660001480156102a557508063ffffffff16600c145b156102bf576102b387610521565b9550505050505061039d565b6000610339866040805160808101825260008082526020820181905291810182905260608101919091526040518060800160405280836060015163ffffffff168152602001836080015163ffffffff1681526020018360a0015163ffffffff1681526020018360c0015163ffffffff168152509050919050565b6101608701518751919250610356918391906105248888886108f9565b8652805163ffffffff9081166060808901919091526020830151821660808901526040830151821660a08901528201511660c08701526103946103a6565b96505050505050505b95945050505050565b60408051608051815260a051602082015260dc519181019190915260fc51604482015261011c51604882015261013c51604c82015261015c51605082015261017c5160548201526101805161019f5160588301526101a0516101bf5160598401526101d851605a8401526000926102009290916062830191906001811115610453576040517f0136cc76000000000000000000000000000000000000000000000000000000008152600481fd5b60005b602081101561047a57601c8601518452602090950194600490930192600101610456565b506000835283830384a060009450806001811461049a57600395506104c2565b8280156104b257600181146104bb57600296506104c0565b600096506104c0565b600196505b505b50505081900390207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660f89190911b17919050565b6000806000610507858786610cdf565b925050603f601a83901c8116915082165b93509350939050565b600061052b612138565b608090506000806000806105628561016001516040810151608082015160a083015160c084015160e0909401519294919390929091565b509350935093509350600080610ffa63ffffffff168663ffffffff16036105a75761059285858960e00151610d93565b63ffffffff1660e08a01529092509050610808565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03363ffffffff8716016105e05763400000009150610808565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefe863ffffffff8716016106165760019150610808565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef6a63ffffffff87160161066a57600161012088015260ff851661010088015261065d6103a6565b9998505050505050505050565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff05d63ffffffff8716016107665760006040518061012001604052808763ffffffff1681526020018663ffffffff1681526020018563ffffffff16815260200189602001518152602001896040015163ffffffff1681526020018b81526020017f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1681526020016107386101a4600160ff16610380020190565b81528951602090910152905061074d81610e27565b8b5263ffffffff1660408b015290935091506108089050565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff05c63ffffffff8716016107cb57602087015160408801516107b1918791879187916105248d5161109f565b63ffffffff1660408b015260208a01529092509050610808565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02963ffffffff871601610808576108028585611195565b90925090505b6000610882886040805160808101825260008082526020820181905291810182905260608101919091526040518060800160405280836060015163ffffffff168152602001836080015163ffffffff1681526020018360a0015163ffffffff1681526020018360c0015163ffffffff168152509050919050565b61016089015163ffffffff85811660408084019190915285821660e0909301929092526020830180518083168086526004909101831682526060808e01919091529051821660808d015291830151811660a08c0152908201511660c08a015290506108eb6103a6565b9a9950505050505050505050565b84600263ffffffff8416148061091557508263ffffffff166003145b156109675760006002856303ffffff1663ffffffff16901b896020015163f00000001617905061096189898663ffffffff1660021461095557601f610958565b60005b60ff16846112d4565b50610cd4565b600080601f601087901c8116908a90601589901c166020811061098c5761098c6122eb565b602002015192508063ffffffff871615806109ad57508663ffffffff16601c145b156109df578a8263ffffffff16602081106109ca576109ca6122eb565b6020020151925050601f600b88901c16610a96565b60208763ffffffff161015610a41578663ffffffff16600c1480610a0957508663ffffffff16600d145b80610a1a57508663ffffffff16600e145b15610a2b578761ffff169250610a96565b610a3a8861ffff166010611392565b9250610a96565b60288763ffffffff16101580610a5d57508663ffffffff166022145b80610a6e57508663ffffffff166026145b15610a96578a8263ffffffff1660208110610a8b57610a8b6122eb565b602002015192508190505b60048763ffffffff1610158015610ab3575060088763ffffffff16105b80610ac457508663ffffffff166001145b15610ae057610ad78c8c898b8689611405565b50505050610cd4565b63ffffffff6000602089831610610b4557610b008a61ffff166010611392565b9095019463fffffffc8616610b168d828e610cdf565b915060288a63ffffffff1610158015610b3657508963ffffffff16603014155b15610b4357809250600093505b505b6000610b558b8b8b8a8a876115d9565b63ffffffff1690508963ffffffff166000148015610b7a575060088963ffffffff1610155b8015610b8c5750601c8963ffffffff16105b15610c54578863ffffffff1660081480610bac57508863ffffffff166009145b15610bdf57610bd38f8f8b63ffffffff16600814610bca5786610bcd565b60005b8a6112d4565b50505050505050610cd4565b8863ffffffff16600a03610c0157610bd38f8f868a63ffffffff8b1615611cdc565b8863ffffffff16600b03610c2457610bd38f8f868a63ffffffff8b161515611cdc565b60108963ffffffff1610158015610c415750601c8963ffffffff16105b15610c5457610bd38f8f8b8a8a89611d92565b8963ffffffff166038148015610c6f575063ffffffff851615155b15610c9f5760018e8663ffffffff1660208110610c8e57610c8e6122eb565b63ffffffff90921660209290920201525b8263ffffffff1663ffffffff14610cbe57610cbb838d83612017565b97505b610ccc8f8f86846001611cdc565b505050505050505b979650505050505050565b6000610cea826120b9565b6003831615610cf857600080fd5b6020820191358360051c8160005b601b811015610d5e5760208601953583821c6001168015610d2e5760018114610d4357610d54565b60008481526020839052604090209350610d54565b600082815260208590526040902093505b5050600101610d06565b50868114610d7457630badf00d60005260206000fd5b5050601f93909316601c0360031b9290921c63ffffffff169392505050565b6000808284610fff811615610dad57610fff811661100003015b8663ffffffff16600003610e195784935090810190636000000063ffffffff83161180610de557508463ffffffff168263ffffffff16105b80610dfb57508563ffffffff168163ffffffff16105b15610e14575063ffffffff925060169150839050610518565b610e1d565b8693505b5093509350939050565b6101008101516080820151825160009283929163ffffffff161561109857845163ffffffff167ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb01611052576000610e93866101000151876020015163fffffffc168860e00151610cdf565b606087015190915060001a600103610f1557610f0f86606001518760a0015160408051600093845233602052918152606090922091527effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01000000000000000000000000000000000000000000000000000000000000001790565b60608701525b6000808760c0015173ffffffffffffffffffffffffffffffffffffffff1663e03110e189606001518a608001516040518363ffffffff1660e01b8152600401610f6e92919091825263ffffffff16602082015260400190565b6040805180830381865afa158015610f8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fae919061231a565b60208a015160408b01519294509092509060038216600481900384811015610fd4578094505b5083821015610fe1578193505b8460088502610100031c9450846008828660040303021b9450600180600883600403021b036001806008878560040303021b0391508119811690508581198816179650505061103f8a6020015163fffffffc168b60e0015187612017565b9298505050938601939250611098915050565b845163ffffffff167ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0161108c5784604001519350611098565b63ffffffff9350600992505b9193509193565b600080858563ffffffff8b16600114806110bf575063ffffffff8b166002145b806110d0575063ffffffff8b166004145b156110dd57889350611187565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa63ffffffff8c160161117b57600061111d868c63fffffffc1689610cdf565b90508860038c166004038b81101561113357809b505b8b965086900360089081029290921c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600193880293841b0116911b17915060009050611187565b63ffffffff9350600992505b975097509750979350505050565b60008063ffffffff83166001036112315763ffffffff841615806111bf575063ffffffff84166001145b806111d0575063ffffffff84166002145b806111e1575063ffffffff84166005145b806111f2575063ffffffff84166003145b80611203575063ffffffff84166006145b80611214575063ffffffff84166004145b1561122257600091506112cd565b5063ffffffff905060096112cd565b8263ffffffff166003036112c25763ffffffff84161580611258575063ffffffff84166005145b80611269575063ffffffff84166003145b1561127757600091506112cd565b63ffffffff841660011480611292575063ffffffff84166002145b806112a3575063ffffffff84166006145b806112b4575063ffffffff84166004145b1561122257600191506112cd565b5063ffffffff905060165b9250929050565b836000015160040163ffffffff16846020015163ffffffff161461133f5760405162461bcd60e51b815260206004820152601260248201527f6a756d7020696e2064656c617920736c6f74000000000000000000000000000060448201526064015b60405180910390fd5b835160208501805163ffffffff908116875283811690915283161561138b5780600801848463ffffffff166020811061137a5761137a6122eb565b63ffffffff90921660209290920201525b5050505050565b600063ffffffff8381167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80850183169190911c821615159160016020869003821681901b830191861691821b92911b01826113ef5760006113f1565b815b90861663ffffffff16179250505092915050565b6000866000015160040163ffffffff16876020015163ffffffff161461146d5760405162461bcd60e51b815260206004820152601460248201527f6272616e636820696e2064656c617920736c6f740000000000000000000000006044820152606401611336565b8463ffffffff166004148061148857508463ffffffff166005145b156114ff576000868463ffffffff16602081106114a7576114a76122eb565b602002015190508063ffffffff168363ffffffff161480156114cf57508563ffffffff166004145b806114f757508063ffffffff168363ffffffff16141580156114f757508563ffffffff166005145b91505061157c565b8463ffffffff1660060361151c5760008260030b1315905061157c565b8463ffffffff166007036115385760008260030b13905061157c565b8463ffffffff1660010361157c57601f601085901c1660008190036115615760008360030b1291505b8063ffffffff1660010361157a5760008360030b121591505b505b8651602088015163ffffffff16885281156115bd5760026115a28661ffff166010611392565b63ffffffff90811690911b82016004011660208901526115cf565b60208801805160040163ffffffff1690525b5050505050505050565b600063ffffffff86161580611606575060088663ffffffff16101580156116065750600f8663ffffffff16105b156119ec578560088114611649576009811461165257600a811461165b57600b811461166457600c811461166d57600d811461167657600e811461167f57611684565b60209550611684565b60219550611684565b602a9550611684565b602b9550611684565b60249550611684565b60259550611684565b602695505b508463ffffffff166000036116a9575063ffffffff8216601f600688901c161b611cd2565b8463ffffffff166002036116cd575063ffffffff8216601f600688901c161c611cd2565b8463ffffffff1660030361170157601f600688901c166116f963ffffffff8516821c6020839003611392565b915050611cd2565b8463ffffffff16600403611721575063ffffffff8216601f84161b611cd2565b8463ffffffff16600603611741575063ffffffff8216601f84161c611cd2565b8463ffffffff1660070361176957601f84166116f963ffffffff8516821c6020839003611392565b8463ffffffff1660080361177e575082611cd2565b8463ffffffff16600903611793575082611cd2565b8463ffffffff16600a036117a8575082611cd2565b8463ffffffff16600b036117bd575082611cd2565b8463ffffffff16600c036117d2575082611cd2565b8463ffffffff16600f036117e7575082611cd2565b8463ffffffff166010036117fc575082611cd2565b8463ffffffff16601103611811575082611cd2565b8463ffffffff16601203611826575082611cd2565b8463ffffffff1660130361183b575082611cd2565b8463ffffffff16601803611850575082611cd2565b8463ffffffff16601903611865575082611cd2565b8463ffffffff16601a0361187a575082611cd2565b8463ffffffff16601b0361188f575082611cd2565b8463ffffffff166020036118a65750828201611cd2565b8463ffffffff166021036118bd5750828201611cd2565b8463ffffffff166022036118d45750818303611cd2565b8463ffffffff166023036118eb5750818303611cd2565b8463ffffffff166024036119025750828216611cd2565b8463ffffffff166025036119195750828217611cd2565b8463ffffffff166026036119305750828218611cd2565b8463ffffffff16602703611948575082821719611cd2565b8463ffffffff16602a03611977578260030b8460030b1261196a57600061196d565b60015b60ff169050611cd2565b8463ffffffff16602b0361199f578263ffffffff168463ffffffff161061196a57600061196d565b60405162461bcd60e51b815260206004820152601360248201527f696e76616c696420696e737472756374696f6e000000000000000000000000006044820152606401611336565b61199f565b8563ffffffff16601c03611a6c578463ffffffff16600203611a115750828202611cd2565b8463ffffffff1660201480611a2c57508463ffffffff166021145b156119e7578463ffffffff16602003611a43579219925b60005b6380000000851615611a65576401fffffffe600195861b169401611a46565b9050611cd2565b8563ffffffff16600f03611a8d575065ffffffff0000601083901b16611cd2565b8563ffffffff16602003611ac157611a658460031660080260180363ffffffff168363ffffffff16901c60ff166008611392565b8563ffffffff16602103611af657611a658460021660080260100363ffffffff168363ffffffff16901c61ffff166010611392565b8563ffffffff16602203611b24575063ffffffff60086003851602811681811b198416918316901b17611cd2565b8563ffffffff16602303611b39575080611cd2565b8563ffffffff16602403611b6a578360031660080260180363ffffffff168263ffffffff16901c60ff169050611cd2565b8563ffffffff16602503611b9c578360021660080260100363ffffffff168263ffffffff16901c61ffff169050611cd2565b8563ffffffff16602603611bcd575063ffffffff60086003851602601803811681811c198416918316901c17611cd2565b8563ffffffff16602803611c02575060ff63ffffffff60086003861602601803811682811b9091188316918416901b17611cd2565b8563ffffffff16602903611c38575061ffff63ffffffff60086002861602601003811682811b9091188316918416901b17611cd2565b8563ffffffff16602a03611c66575063ffffffff60086003851602811681811c198316918416901c17611cd2565b8563ffffffff16602b03611c7b575081611cd2565b8563ffffffff16602e03611cac575063ffffffff60086003851602601803811681811b198316918416901b17611cd2565b8563ffffffff16603003611cc1575080611cd2565b8563ffffffff1660380361199f5750815b9695505050505050565b60208363ffffffff1610611d325760405162461bcd60e51b815260206004820152600e60248201527f76616c69642072656769737465720000000000000000000000000000000000006044820152606401611336565b63ffffffff831615801590611d445750805b15611d735781848463ffffffff1660208110611d6257611d626122eb565b63ffffffff90921660209290920201525b5050505060208101805163ffffffff8082169093526004019091169052565b60008463ffffffff16601003611dad57506060860151611fbf565b8463ffffffff16601103611dcc5763ffffffff84166060880152611fbf565b8463ffffffff16601203611de557506040860151611fbf565b8463ffffffff16601303611e045763ffffffff84166040880152611fbf565b8463ffffffff16601803611e385763ffffffff600385810b9085900b02602081901c821660608a0152166040880152611fbf565b8463ffffffff16601903611e695763ffffffff84811681851602602081901c821660608a0152166040880152611fbf565b8463ffffffff16601a03611f12578260030b600003611eca5760405162461bcd60e51b815260206004820152601660248201527f4d4950533a206469766973696f6e206279207a65726f000000000000000000006044820152606401611336565b8260030b8460030b81611edf57611edf61233e565b0763ffffffff166060880152600383810b9085900b81611f0157611f0161233e565b0563ffffffff166040880152611fbf565b8463ffffffff16601b03611fbf578263ffffffff16600003611f765760405162461bcd60e51b815260206004820152601660248201527f4d4950533a206469766973696f6e206279207a65726f000000000000000000006044820152606401611336565b8263ffffffff168463ffffffff1681611f9157611f9161233e565b0663ffffffff908116606089015283811690851681611fb257611fb261233e565b0463ffffffff1660408801525b63ffffffff821615611ff55780868363ffffffff1660208110611fe457611fe46122eb565b63ffffffff90921660209290920201525b50505060208401805163ffffffff808216909652600401909416909352505050565b6000612022836120b9565b600384161561203057600080fd5b6020830192601f8516601c0360031b83811b913563ffffffff90911b1916178460051c60005b601b8110156120ae5760208601953582821c600116801561207e5760018114612093576120a4565b600085815260208390526040902094506120a4565b600082815260208690526040902094505b5050600101612056565b509095945050505050565b3661038082018110156121345760405162461bcd60e51b815260206004820152602360248201527f636865636b207468617420746865726520697320656e6f7567682063616c6c6460448201527f61746100000000000000000000000000000000000000000000000000000000006064820152608401611336565b5050565b6040805161018081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810182905261010081018290526101208101829052610140810191909152610160810161219e6121a3565b905290565b6040518061040001604052806020906020820280368337509192915050565b600060208083528351808285015260005b818110156121ef578581018301518582016040015282016121d3565b81811115612201576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b60008083601f84011261224757600080fd5b50813567ffffffffffffffff81111561225f57600080fd5b6020830191508360208285010111156112cd57600080fd5b60008060008060006060868803121561228f57600080fd5b853567ffffffffffffffff808211156122a757600080fd5b6122b389838a01612235565b909750955060208801359150808211156122cc57600080fd5b506122d988828901612235565b96999598509660400135949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000806040838503121561232d57600080fd5b505080516020909101519092909150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfea26469706673582212202033b0a8641ed14da772e895fa5645a46d5e8517ed9dad22f795d7f26638277364736f6c634300080f0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c806354fd4d50146100465780637dc0d1d014610098578063e14ced32146100dc575b600080fd5b6100826040518060400160405280600a81526020017f312e312e302d72632e310000000000000000000000000000000000000000000081525081565b60405161008f91906121c2565b60405180910390f35b60405173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016815260200161008f565b6100ef6100ea366004612277565b6100fd565b60405190815260200161008f565b6000610107612138565b6080811461011457600080fd5b6040516106001461012457600080fd5b6084871461013157600080fd5b6101a4851461013f57600080fd5b8635608052602087013560a052604087013560e090811c60c09081526044890135821c82526048890135821c61010052604c890135821c610120526050890135821c61014052605489013590911c61016052605888013560f890811c610180526059890135901c6101a0819052605a89013590911c6101c05260628801906101e09060018111156101f5576040517f0136cc76000000000000000000000000000000000000000000000000000000008152600481fd5b506020810181511461020657600080fd5b60200160005b602081101561023057823560e01c825260049092019160209091019060010161020c565b5050508061012001511561024e576102466103a6565b91505061039d565b6101408101805160010167ffffffffffffffff16905260006101a49050600080600061028385606001518660000151866104f7565b9250925092508163ffffffff1660001480156102a557508063ffffffff16600c145b156102bf576102b387610521565b9550505050505061039d565b6000610339866040805160808101825260008082526020820181905291810182905260608101919091526040518060800160405280836060015163ffffffff168152602001836080015163ffffffff1681526020018360a0015163ffffffff1681526020018360c0015163ffffffff168152509050919050565b6101608701518751919250610356918391906105248888886108f9565b8652805163ffffffff9081166060808901919091526020830151821660808901526040830151821660a08901528201511660c08701526103946103a6565b96505050505050505b95945050505050565b60408051608051815260a051602082015260dc519181019190915260fc51604482015261011c51604882015261013c51604c82015261015c51605082015261017c5160548201526101805161019f5160588301526101a0516101bf5160598401526101d851605a8401526000926102009290916062830191906001811115610453576040517f0136cc76000000000000000000000000000000000000000000000000000000008152600481fd5b60005b602081101561047a57601c8601518452602090950194600490930192600101610456565b506000835283830384a060009450806001811461049a57600395506104c2565b8280156104b257600181146104bb57600296506104c0565b600096506104c0565b600196505b505b50505081900390207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660f89190911b17919050565b6000806000610507858786610cdf565b925050603f601a83901c8116915082165b93509350939050565b600061052b612138565b608090506000806000806105628561016001516040810151608082015160a083015160c084015160e0909401519294919390929091565b509350935093509350600080610ffa63ffffffff168663ffffffff16036105a75761059285858960e00151610d93565b63ffffffff1660e08a01529092509050610808565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03363ffffffff8716016105e05763400000009150610808565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefe863ffffffff8716016106165760019150610808565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef6a63ffffffff87160161066a57600161012088015260ff851661010088015261065d6103a6565b9998505050505050505050565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff05d63ffffffff8716016107665760006040518061012001604052808763ffffffff1681526020018663ffffffff1681526020018563ffffffff16815260200189602001518152602001896040015163ffffffff1681526020018b81526020017f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1681526020016107386101a4600160ff16610380020190565b81528951602090910152905061074d81610e27565b8b5263ffffffff1660408b015290935091506108089050565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff05c63ffffffff8716016107cb57602087015160408801516107b1918791879187916105248d5161109f565b63ffffffff1660408b015260208a01529092509050610808565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02963ffffffff871601610808576108028585611195565b90925090505b6000610882886040805160808101825260008082526020820181905291810182905260608101919091526040518060800160405280836060015163ffffffff168152602001836080015163ffffffff1681526020018360a0015163ffffffff1681526020018360c0015163ffffffff168152509050919050565b61016089015163ffffffff85811660408084019190915285821660e0909301929092526020830180518083168086526004909101831682526060808e01919091529051821660808d015291830151811660a08c0152908201511660c08a015290506108eb6103a6565b9a9950505050505050505050565b84600263ffffffff8416148061091557508263ffffffff166003145b156109675760006002856303ffffff1663ffffffff16901b896020015163f00000001617905061096189898663ffffffff1660021461095557601f610958565b60005b60ff16846112d4565b50610cd4565b600080601f601087901c8116908a90601589901c166020811061098c5761098c6122eb565b602002015192508063ffffffff871615806109ad57508663ffffffff16601c145b156109df578a8263ffffffff16602081106109ca576109ca6122eb565b6020020151925050601f600b88901c16610a96565b60208763ffffffff161015610a41578663ffffffff16600c1480610a0957508663ffffffff16600d145b80610a1a57508663ffffffff16600e145b15610a2b578761ffff169250610a96565b610a3a8861ffff166010611392565b9250610a96565b60288763ffffffff16101580610a5d57508663ffffffff166022145b80610a6e57508663ffffffff166026145b15610a96578a8263ffffffff1660208110610a8b57610a8b6122eb565b602002015192508190505b60048763ffffffff1610158015610ab3575060088763ffffffff16105b80610ac457508663ffffffff166001145b15610ae057610ad78c8c898b8689611405565b50505050610cd4565b63ffffffff6000602089831610610b4557610b008a61ffff166010611392565b9095019463fffffffc8616610b168d828e610cdf565b915060288a63ffffffff1610158015610b3657508963ffffffff16603014155b15610b4357809250600093505b505b6000610b558b8b8b8a8a876115d9565b63ffffffff1690508963ffffffff166000148015610b7a575060088963ffffffff1610155b8015610b8c5750601c8963ffffffff16105b15610c54578863ffffffff1660081480610bac57508863ffffffff166009145b15610bdf57610bd38f8f8b63ffffffff16600814610bca5786610bcd565b60005b8a6112d4565b50505050505050610cd4565b8863ffffffff16600a03610c0157610bd38f8f868a63ffffffff8b1615611cdc565b8863ffffffff16600b03610c2457610bd38f8f868a63ffffffff8b161515611cdc565b60108963ffffffff1610158015610c415750601c8963ffffffff16105b15610c5457610bd38f8f8b8a8a89611d92565b8963ffffffff166038148015610c6f575063ffffffff851615155b15610c9f5760018e8663ffffffff1660208110610c8e57610c8e6122eb565b63ffffffff90921660209290920201525b8263ffffffff1663ffffffff14610cbe57610cbb838d83612017565b97505b610ccc8f8f86846001611cdc565b505050505050505b979650505050505050565b6000610cea826120b9565b6003831615610cf857600080fd5b6020820191358360051c8160005b601b811015610d5e5760208601953583821c6001168015610d2e5760018114610d4357610d54565b60008481526020839052604090209350610d54565b600082815260208590526040902093505b5050600101610d06565b50868114610d7457630badf00d60005260206000fd5b5050601f93909316601c0360031b9290921c63ffffffff169392505050565b6000808284610fff811615610dad57610fff811661100003015b8663ffffffff16600003610e195784935090810190636000000063ffffffff83161180610de557508463ffffffff168263ffffffff16105b80610dfb57508563ffffffff168163ffffffff16105b15610e14575063ffffffff925060169150839050610518565b610e1d565b8693505b5093509350939050565b6101008101516080820151825160009283929163ffffffff161561109857845163ffffffff167ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb01611052576000610e93866101000151876020015163fffffffc168860e00151610cdf565b606087015190915060001a600103610f1557610f0f86606001518760a0015160408051600093845233602052918152606090922091527effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01000000000000000000000000000000000000000000000000000000000000001790565b60608701525b6000808760c0015173ffffffffffffffffffffffffffffffffffffffff1663e03110e189606001518a608001516040518363ffffffff1660e01b8152600401610f6e92919091825263ffffffff16602082015260400190565b6040805180830381865afa158015610f8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fae919061231a565b60208a015160408b01519294509092509060038216600481900384811015610fd4578094505b5083821015610fe1578193505b8460088502610100031c9450846008828660040303021b9450600180600883600403021b036001806008878560040303021b0391508119811690508581198816179650505061103f8a6020015163fffffffc168b60e0015187612017565b9298505050938601939250611098915050565b845163ffffffff167ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0161108c5784604001519350611098565b63ffffffff9350600992505b9193509193565b600080858563ffffffff8b16600114806110bf575063ffffffff8b166002145b806110d0575063ffffffff8b166004145b156110dd57889350611187565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa63ffffffff8c160161117b57600061111d868c63fffffffc1689610cdf565b90508860038c166004038b81101561113357809b505b8b965086900360089081029290921c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600193880293841b0116911b17915060009050611187565b63ffffffff9350600992505b975097509750979350505050565b60008063ffffffff83166001036112315763ffffffff841615806111bf575063ffffffff84166001145b806111d0575063ffffffff84166002145b806111e1575063ffffffff84166005145b806111f2575063ffffffff84166003145b80611203575063ffffffff84166006145b80611214575063ffffffff84166004145b1561122257600091506112cd565b5063ffffffff905060096112cd565b8263ffffffff166003036112c25763ffffffff84161580611258575063ffffffff84166005145b80611269575063ffffffff84166003145b1561127757600091506112cd565b63ffffffff841660011480611292575063ffffffff84166002145b806112a3575063ffffffff84166006145b806112b4575063ffffffff84166004145b1561122257600191506112cd565b5063ffffffff905060165b9250929050565b836000015160040163ffffffff16846020015163ffffffff161461133f5760405162461bcd60e51b815260206004820152601260248201527f6a756d7020696e2064656c617920736c6f74000000000000000000000000000060448201526064015b60405180910390fd5b835160208501805163ffffffff908116875283811690915283161561138b5780600801848463ffffffff166020811061137a5761137a6122eb565b63ffffffff90921660209290920201525b5050505050565b600063ffffffff8381167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80850183169190911c821615159160016020869003821681901b830191861691821b92911b01826113ef5760006113f1565b815b90861663ffffffff16179250505092915050565b6000866000015160040163ffffffff16876020015163ffffffff161461146d5760405162461bcd60e51b815260206004820152601460248201527f6272616e636820696e2064656c617920736c6f740000000000000000000000006044820152606401611336565b8463ffffffff166004148061148857508463ffffffff166005145b156114ff576000868463ffffffff16602081106114a7576114a76122eb565b602002015190508063ffffffff168363ffffffff161480156114cf57508563ffffffff166004145b806114f757508063ffffffff168363ffffffff16141580156114f757508563ffffffff166005145b91505061157c565b8463ffffffff1660060361151c5760008260030b1315905061157c565b8463ffffffff166007036115385760008260030b13905061157c565b8463ffffffff1660010361157c57601f601085901c1660008190036115615760008360030b1291505b8063ffffffff1660010361157a5760008360030b121591505b505b8651602088015163ffffffff16885281156115bd5760026115a28661ffff166010611392565b63ffffffff90811690911b82016004011660208901526115cf565b60208801805160040163ffffffff1690525b5050505050505050565b600063ffffffff86161580611606575060088663ffffffff16101580156116065750600f8663ffffffff16105b156119ec578560088114611649576009811461165257600a811461165b57600b811461166457600c811461166d57600d811461167657600e811461167f57611684565b60209550611684565b60219550611684565b602a9550611684565b602b9550611684565b60249550611684565b60259550611684565b602695505b508463ffffffff166000036116a9575063ffffffff8216601f600688901c161b611cd2565b8463ffffffff166002036116cd575063ffffffff8216601f600688901c161c611cd2565b8463ffffffff1660030361170157601f600688901c166116f963ffffffff8516821c6020839003611392565b915050611cd2565b8463ffffffff16600403611721575063ffffffff8216601f84161b611cd2565b8463ffffffff16600603611741575063ffffffff8216601f84161c611cd2565b8463ffffffff1660070361176957601f84166116f963ffffffff8516821c6020839003611392565b8463ffffffff1660080361177e575082611cd2565b8463ffffffff16600903611793575082611cd2565b8463ffffffff16600a036117a8575082611cd2565b8463ffffffff16600b036117bd575082611cd2565b8463ffffffff16600c036117d2575082611cd2565b8463ffffffff16600f036117e7575082611cd2565b8463ffffffff166010036117fc575082611cd2565b8463ffffffff16601103611811575082611cd2565b8463ffffffff16601203611826575082611cd2565b8463ffffffff1660130361183b575082611cd2565b8463ffffffff16601803611850575082611cd2565b8463ffffffff16601903611865575082611cd2565b8463ffffffff16601a0361187a575082611cd2565b8463ffffffff16601b0361188f575082611cd2565b8463ffffffff166020036118a65750828201611cd2565b8463ffffffff166021036118bd5750828201611cd2565b8463ffffffff166022036118d45750818303611cd2565b8463ffffffff166023036118eb5750818303611cd2565b8463ffffffff166024036119025750828216611cd2565b8463ffffffff166025036119195750828217611cd2565b8463ffffffff166026036119305750828218611cd2565b8463ffffffff16602703611948575082821719611cd2565b8463ffffffff16602a03611977578260030b8460030b1261196a57600061196d565b60015b60ff169050611cd2565b8463ffffffff16602b0361199f578263ffffffff168463ffffffff161061196a57600061196d565b60405162461bcd60e51b815260206004820152601360248201527f696e76616c696420696e737472756374696f6e000000000000000000000000006044820152606401611336565b61199f565b8563ffffffff16601c03611a6c578463ffffffff16600203611a115750828202611cd2565b8463ffffffff1660201480611a2c57508463ffffffff166021145b156119e7578463ffffffff16602003611a43579219925b60005b6380000000851615611a65576401fffffffe600195861b169401611a46565b9050611cd2565b8563ffffffff16600f03611a8d575065ffffffff0000601083901b16611cd2565b8563ffffffff16602003611ac157611a658460031660080260180363ffffffff168363ffffffff16901c60ff166008611392565b8563ffffffff16602103611af657611a658460021660080260100363ffffffff168363ffffffff16901c61ffff166010611392565b8563ffffffff16602203611b24575063ffffffff60086003851602811681811b198416918316901b17611cd2565b8563ffffffff16602303611b39575080611cd2565b8563ffffffff16602403611b6a578360031660080260180363ffffffff168263ffffffff16901c60ff169050611cd2565b8563ffffffff16602503611b9c578360021660080260100363ffffffff168263ffffffff16901c61ffff169050611cd2565b8563ffffffff16602603611bcd575063ffffffff60086003851602601803811681811c198416918316901c17611cd2565b8563ffffffff16602803611c02575060ff63ffffffff60086003861602601803811682811b9091188316918416901b17611cd2565b8563ffffffff16602903611c38575061ffff63ffffffff60086002861602601003811682811b9091188316918416901b17611cd2565b8563ffffffff16602a03611c66575063ffffffff60086003851602811681811c198316918416901c17611cd2565b8563ffffffff16602b03611c7b575081611cd2565b8563ffffffff16602e03611cac575063ffffffff60086003851602601803811681811b198316918416901b17611cd2565b8563ffffffff16603003611cc1575080611cd2565b8563ffffffff1660380361199f5750815b9695505050505050565b60208363ffffffff1610611d325760405162461bcd60e51b815260206004820152600e60248201527f76616c69642072656769737465720000000000000000000000000000000000006044820152606401611336565b63ffffffff831615801590611d445750805b15611d735781848463ffffffff1660208110611d6257611d626122eb565b63ffffffff90921660209290920201525b5050505060208101805163ffffffff8082169093526004019091169052565b60008463ffffffff16601003611dad57506060860151611fbf565b8463ffffffff16601103611dcc5763ffffffff84166060880152611fbf565b8463ffffffff16601203611de557506040860151611fbf565b8463ffffffff16601303611e045763ffffffff84166040880152611fbf565b8463ffffffff16601803611e385763ffffffff600385810b9085900b02602081901c821660608a0152166040880152611fbf565b8463ffffffff16601903611e695763ffffffff84811681851602602081901c821660608a0152166040880152611fbf565b8463ffffffff16601a03611f12578260030b600003611eca5760405162461bcd60e51b815260206004820152601660248201527f4d4950533a206469766973696f6e206279207a65726f000000000000000000006044820152606401611336565b8260030b8460030b81611edf57611edf61233e565b0763ffffffff166060880152600383810b9085900b81611f0157611f0161233e565b0563ffffffff166040880152611fbf565b8463ffffffff16601b03611fbf578263ffffffff16600003611f765760405162461bcd60e51b815260206004820152601660248201527f4d4950533a206469766973696f6e206279207a65726f000000000000000000006044820152606401611336565b8263ffffffff168463ffffffff1681611f9157611f9161233e565b0663ffffffff908116606089015283811690851681611fb257611fb261233e565b0463ffffffff1660408801525b63ffffffff821615611ff55780868363ffffffff1660208110611fe457611fe46122eb565b63ffffffff90921660209290920201525b50505060208401805163ffffffff808216909652600401909416909352505050565b6000612022836120b9565b600384161561203057600080fd5b6020830192601f8516601c0360031b83811b913563ffffffff90911b1916178460051c60005b601b8110156120ae5760208601953582821c600116801561207e5760018114612093576120a4565b600085815260208390526040902094506120a4565b600082815260208690526040902094505b5050600101612056565b509095945050505050565b3661038082018110156121345760405162461bcd60e51b815260206004820152602360248201527f636865636b207468617420746865726520697320656e6f7567682063616c6c6460448201527f61746100000000000000000000000000000000000000000000000000000000006064820152608401611336565b5050565b6040805161018081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810182905261010081018290526101208101829052610140810191909152610160810161219e6121a3565b905290565b6040518061040001604052806020906020820280368337509192915050565b600060208083528351808285015260005b818110156121ef578581018301518582016040015282016121d3565b81811115612201576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b60008083601f84011261224757600080fd5b50813567ffffffffffffffff81111561225f57600080fd5b6020830191508360208285010111156112cd57600080fd5b60008060008060006060868803121561228f57600080fd5b853567ffffffffffffffff808211156122a757600080fd5b6122b389838a01612235565b909750955060208801359150808211156122cc57600080fd5b506122d988828901612235565b96999598509660400135949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000806040838503121561232d57600080fd5b505080516020909101519092909150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfea26469706673582212202033b0a8641ed14da772e895fa5645a46d5e8517ed9dad22f795d7f26638277364736f6c634300080f0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
