6080604052600f6006556001600960146101000a81548160ff02191690831515021790555034801561002f575f80fd5b5060405161361a38038061361a83398181016040528101906100519190610aa1565b336040518060400160405280600381526020017f4d465000000000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f4d4650000000000000000000000000000000000000000000000000000000000081525081600390816100cd9190610d06565b5080600490816100dd9190610d06565b5050505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610150575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016101479190610de4565b60405180910390fd5b61015f8161024a60201b60201c565b505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036101ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101c590610e7d565b60405180910390fd5b8060095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061022a336b033b2e3c9fd0803ce800000061030d60201b60201c565b5f600960146101000a81548160ff0219169083151502179055505061114c565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361037d575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016103749190610de4565b60405180910390fd5b61038e5f838361039260201b60201c565b5050565b600960149054906101000a900460ff161580156103e857506103b861070660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15610428576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161041f90610ee5565b60405180910390fd5b5f60646002601160646b033b2e3c9fd0803ce80000006104489190610f5d565b6104529190610f8d565b61045c9190610f8d565b6104669190610f5d565b9050600754431080156104c6575060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561050357620f42405a10156104de575f9050610502565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90505b5b6006546007546105139190610fce565b4310801561056e575060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156105d057806105838461072e60201b60201c565b8361058e9190610fce565b11156105cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105c690611071565b60405180910390fd5b5b5f6105e08461077360201b60201c565b90505f60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ee4964896040518163ffffffff1660e01b8152600401602060405180830381865afa15801561064d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061067191906110c4565b905081801561067e575080155b156106ec575f61271060fa866106949190610f8d565b61069e9190610f5d565b90505f81866106ad9190610fce565b90506106d488739601da246167b02232ee1f4e7bad10b8393526948461082a60201b60201c565b6106e588888361082a60201b60201c565b50506106fe565b6106fd86868661082a60201b60201c565b5b505050505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107d15760019050610825565b733fc91a3afd70395cd496c647d5a6cc9d4b2b7fad73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108215760019050610825565b5f90505b919050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361087a578060025f82825461086e9190610fce565b92505081905550610948565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610903578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016108fa939291906110fe565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361098f578060025f82825403925050819055506109d9565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610a369190611133565b60405180910390a3505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610a7082610a47565b9050919050565b610a8081610a66565b8114610a8a575f80fd5b50565b5f81519050610a9b81610a77565b92915050565b5f60208284031215610ab657610ab5610a43565b5b5f610ac384828501610a8d565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610b4757607f821691505b602082108103610b5a57610b59610b03565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302610bbc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610b81565b610bc68683610b81565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f610c0a610c05610c0084610bde565b610be7565b610bde565b9050919050565b5f819050919050565b610c2383610bf0565b610c37610c2f82610c11565b848454610b8d565b825550505050565b5f90565b610c4b610c3f565b610c56818484610c1a565b505050565b5b81811015610c7957610c6e5f82610c43565b600181019050610c5c565b5050565b601f821115610cbe57610c8f81610b60565b610c9884610b72565b81016020851015610ca7578190505b610cbb610cb385610b72565b830182610c5b565b50505b505050565b5f82821c905092915050565b5f610cde5f1984600802610cc3565b1980831691505092915050565b5f610cf68383610ccf565b9150826002028217905092915050565b610d0f82610acc565b67ffffffffffffffff811115610d2857610d27610ad6565b5b610d328254610b30565b610d3d828285610c7d565b5f60209050601f831160018114610d6e575f8415610d5c578287015190505b610d668582610ceb565b865550610dcd565b601f198416610d7c86610b60565b5f5b82811015610da357848901518255600182019150602085019450602081019050610d7e565b86831015610dc05784890151610dbc601f891682610ccf565b8355505b6001600288020188555050505b505050505050565b610dde81610a66565b82525050565b5f602082019050610df75f830184610dd5565b92915050565b5f82825260208201905092915050565b7f5461784d616e6167657220616464726573732063616e6e6f74206265207a65725f8201527f6f00000000000000000000000000000000000000000000000000000000000000602082015250565b5f610e67602183610dfd565b9150610e7282610e0d565b604082019050919050565b5f6020820190508181035f830152610e9481610e5b565b9050919050565b7f54726164696e67206973206e6f7420656e61626c6564207965740000000000005f82015250565b5f610ecf601a83610dfd565b9150610eda82610e9b565b602082019050919050565b5f6020820190508181035f830152610efc81610ec3565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610f6782610bde565b9150610f7283610bde565b925082610f8257610f81610f03565b5b828204905092915050565b5f610f9782610bde565b9150610fa283610bde565b9250828202610fb081610bde565b91508282048414831517610fc757610fc6610f30565b5b5092915050565b5f610fd882610bde565b9150610fe383610bde565b9250828201905080821115610ffb57610ffa610f30565b5b92915050565b7f546865204d41585f5045525f57414c4c4554206c696d6974206973207374696c5f8201527f6c20656e61626c656420616e642074686520747820657863656564732069742e602082015250565b5f61105b604083610dfd565b915061106682611001565b604082019050919050565b5f6020820190508181035f8301526110888161104f565b9050919050565b5f8115159050919050565b6110a38161108f565b81146110ad575f80fd5b50565b5f815190506110be8161109a565b92915050565b5f602082840312156110d9576110d8610a43565b5b5f6110e6848285016110b0565b91505092915050565b6110f881610bde565b82525050565b5f6060820190506111115f830186610dd5565b61111e60208301856110ef565b61112b60408301846110ef565b949350505050565b5f6020820190506111465f8301846110ef565b92915050565b6124c1806111595f395ff3fe608060405234801561000f575f80fd5b5060043610610156575f3560e01c80638a8c523c116100c1578063bea1dcf81161007a578063bea1dcf8146103a8578063c816841b146103c6578063d8264920146103e4578063dd62ed3e14610402578063f2fde38b14610432578063f73e5aab1461044e57610156565b80638a8c523c146102f65780638da5cb5b1461030057806395d89b411461031e57806399d8fae31461033c578063a9059cbb1461035a578063ad5c46481461038a57610156565b80634ada218b116101135780634ada218b146102325780634d237730146102505780634e716a7b1461026e57806370a082311461028c578063715018a6146102bc57806388d695b2146102c657610156565b806306fdde031461015a578063095ea7b3146101785780630c35461b146101a857806318160ddd146101c657806323b872dd146101e4578063313ce56714610214575b5f80fd5b61016261046c565b60405161016f91906119f5565b60405180910390f35b610192600480360381019061018d9190611aaa565b6104fc565b60405161019f9190611b02565b60405180910390f35b6101b061051e565b6040516101bd9190611b2a565b60405180910390f35b6101ce6108c0565b6040516101db9190611b52565b60405180910390f35b6101fe60048036038101906101f99190611b6b565b6108c9565b60405161020b9190611b02565b60405180910390f35b61021c6108f7565b6040516102299190611bd6565b60405180910390f35b61023a6108ff565b6040516102479190611b02565b60405180910390f35b610258610912565b6040516102659190611c4a565b60405180910390f35b610276610937565b6040516102839190611b52565b60405180910390f35b6102a660048036038101906102a19190611c63565b61093d565b6040516102b39190611b52565b60405180910390f35b6102c4610982565b005b6102e060048036038101906102db9190611d44565b610995565b6040516102ed9190611b02565b60405180910390f35b6102fe610b6a565b005b610308610c34565b6040516103159190611b2a565b60405180910390f35b610326610c5c565b60405161033391906119f5565b60405180910390f35b610344610cec565b6040516103519190611b2a565b60405180910390f35b610374600480360381019061036f9190611aaa565b610d04565b6040516103819190611b02565b60405180910390f35b610392610d26565b60405161039f9190611b2a565b60405180910390f35b6103b0610d3e565b6040516103bd9190611b2a565b60405180910390f35b6103ce610d56565b6040516103db9190611b2a565b60405180910390f35b6103ec610d7b565b6040516103f99190611b2a565b60405180910390f35b61041c60048036038101906104179190611dc2565b610d93565b6040516104299190611b52565b60405180910390f35b61044c60048036038101906104479190611c63565b610e15565b005b610456610e99565b6040516104639190611b2a565b60405180910390f35b60606003805461047b90611e2d565b80601f01602080910402602001604051908101604052809291908181526020018280546104a790611e2d565b80156104f25780601f106104c9576101008083540402835291602001916104f2565b820191905f5260205f20905b8154815290600101906020018083116104d557829003601f168201915b5050505050905090565b5f80610506610eb1565b9050610513818585610eb8565b600191505092915050565b5f8073ffffffffffffffffffffffffffffffffffffffff1660085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461059c5760085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506108bd565b5f8073fff9976782d46cc05630d1f6ebab18b2324d6b1473ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff16106106005773fff9976782d46cc05630d1f6ebab18b2324d6b1430610617565b3073fff9976782d46cc05630d1f6ebab18b2324d6b145b9150915073f62c03e08ada871a0beb309762e260a7a6a880e673ffffffffffffffffffffffffffffffffffffffff1663e6a4390583836040518363ffffffff1660e01b815260040161066a929190611e5d565b602060405180830381865afa158015610685573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106a99190611e98565b92505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610725578260085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050506108bd565b5f6040518060800160405280606462ffffff1662ffffff1681526020016101f462ffffff1662ffffff168152602001610bb862ffffff1662ffffff16815260200161271062ffffff1662ffffff1681525090505f5b60048110156108b557730227628f3f023bb0b980b67d528571c95c6dac1c73ffffffffffffffffffffffffffffffffffffffff16631698ee8285858585600481106107c8576107c7611ec3565b5b60200201516040518463ffffffff1660e01b81526004016107eb93929190611f0d565b602060405180830381865afa158015610806573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061082a9190611e98565b94505f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16146108a8578460085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050506108bd565b808060010191505061077a565b505f93505050505b90565b5f600254905090565b5f806108d3610eb1565b90506108e0858285610eca565b6108eb858585610f5c565b60019150509392505050565b5f6012905090565b600960149054906101000a900460ff1681565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075481565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61098a61104c565b6109935f6110d3565b565b5f61099e61104c565b8282905085859050146109e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109dd90611fb2565b60405180910390fd5b5f805b86869050811015610b08575f73ffffffffffffffffffffffffffffffffffffffff16878783818110610a1e57610a1d611ec3565b5b9050602002016020810190610a339190611c63565b73ffffffffffffffffffffffffffffffffffffffff1603610a89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a809061201a565b60405180910390fd5b610ad433888884818110610aa057610a9f611ec3565b5b9050602002016020810190610ab59190611c63565b878785818110610ac857610ac7611ec3565b5b90506020020135610f5c565b848482818110610ae757610ae6611ec3565b5b9050602002013582610af99190612065565b915080806001019150506109e9565b503373ffffffffffffffffffffffffffffffffffffffff167fd76871a3b9b205c530f73884df11af482cc4ac28f71bdb2f15a98e79a3a7907687878787604051610b5594939291906121cc565b60405180910390a26001915050949350505050565b610b7261104c565b5f73ffffffffffffffffffffffffffffffffffffffff1660085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610c01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf89061224f565b60405180910390fd5b600960149054906101000a900460ff1615600960146101000a81548160ff02191690831515021790555043600781905550565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610c6b90611e2d565b80601f0160208091040260200160405190810160405280929190818152602001828054610c9790611e2d565b8015610ce25780601f10610cb957610100808354040283529160200191610ce2565b820191905f5260205f20905b815481529060010190602001808311610cc557829003601f168201915b5050505050905090565b73f62c03e08ada871a0beb309762e260a7a6a880e681565b5f80610d0e610eb1565b9050610d1b818585610f5c565b600191505092915050565b73fff9976782d46cc05630d1f6ebab18b2324d6b1481565b739601da246167b02232ee1f4e7bad10b83935269481565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b733fc91a3afd70395cd496c647d5a6cc9d4b2b7fad81565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610e1d61104c565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e8d575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610e849190611b2a565b60405180910390fd5b610e96816110d3565b50565b730227628f3f023bb0b980b67d528571c95c6dac1c81565b5f33905090565b610ec58383836001611196565b505050565b5f610ed58484610d93565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610f565781811015610f47578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610f3e9392919061226d565b60405180910390fd5b610f5584848484035f611196565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610fcc575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610fc39190611b2a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361103c575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016110339190611b2a565b60405180910390fd5b611047838383611365565b505050565b611054610eb1565b73ffffffffffffffffffffffffffffffffffffffff16611072610c34565b73ffffffffffffffffffffffffffffffffffffffff16146110d157611095610eb1565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016110c89190611b2a565b60405180910390fd5b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611206575f6040517fe602df050000000000000000000000000000000000000000000000000000000081526004016111fd9190611b2a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611276575f6040517f94280d6200000000000000000000000000000000000000000000000000000000815260040161126d9190611b2a565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550801561135f578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516113569190611b52565b60405180910390a35b50505050565b600960149054906101000a900460ff161580156113b55750611385610c34565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156113f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ec906122ec565b60405180910390fd5b5f60646002601160646b033b2e3c9fd0803ce80000006114159190612337565b61141f9190612367565b6114299190612367565b6114339190612337565b905060075443108015611493575060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156114d057620f42405a10156114ab575f90506114cf565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90505b5b6006546007546114e09190612065565b4310801561153b575060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611597578061154a8461093d565b836115559190612065565b1115611596576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158d90612418565b60405180910390fd5b5b5f6115a1846116b5565b90505f60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ee4964896040518163ffffffff1660e01b8152600401602060405180830381865afa15801561160e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116329190612460565b905081801561163f575080155b156116a1575f61271060fa866116559190612367565b61165f9190612337565b90505f818661166e9190612065565b905061168f88739601da246167b02232ee1f4e7bad10b8393526948461176c565b61169a88888361176c565b50506116ad565b6116ac86868661176c565b5b505050505050565b5f60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117135760019050611767565b733fc91a3afd70395cd496c647d5a6cc9d4b2b7fad73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117635760019050611767565b5f90505b919050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117bc578060025f8282546117b09190612065565b9250508190555061188a565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611845578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161183c9392919061226d565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118d1578060025f828254039250508190555061191b565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119789190611b52565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6119c782611985565b6119d1818561198f565b93506119e181856020860161199f565b6119ea816119ad565b840191505092915050565b5f6020820190508181035f830152611a0d81846119bd565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611a4682611a1d565b9050919050565b611a5681611a3c565b8114611a60575f80fd5b50565b5f81359050611a7181611a4d565b92915050565b5f819050919050565b611a8981611a77565b8114611a93575f80fd5b50565b5f81359050611aa481611a80565b92915050565b5f8060408385031215611ac057611abf611a15565b5b5f611acd85828601611a63565b9250506020611ade85828601611a96565b9150509250929050565b5f8115159050919050565b611afc81611ae8565b82525050565b5f602082019050611b155f830184611af3565b92915050565b611b2481611a3c565b82525050565b5f602082019050611b3d5f830184611b1b565b92915050565b611b4c81611a77565b82525050565b5f602082019050611b655f830184611b43565b92915050565b5f805f60608486031215611b8257611b81611a15565b5b5f611b8f86828701611a63565b9350506020611ba086828701611a63565b9250506040611bb186828701611a96565b9150509250925092565b5f60ff82169050919050565b611bd081611bbb565b82525050565b5f602082019050611be95f830184611bc7565b92915050565b5f819050919050565b5f611c12611c0d611c0884611a1d565b611bef565b611a1d565b9050919050565b5f611c2382611bf8565b9050919050565b5f611c3482611c19565b9050919050565b611c4481611c2a565b82525050565b5f602082019050611c5d5f830184611c3b565b92915050565b5f60208284031215611c7857611c77611a15565b5b5f611c8584828501611a63565b91505092915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112611caf57611cae611c8e565b5b8235905067ffffffffffffffff811115611ccc57611ccb611c92565b5b602083019150836020820283011115611ce857611ce7611c96565b5b9250929050565b5f8083601f840112611d0457611d03611c8e565b5b8235905067ffffffffffffffff811115611d2157611d20611c92565b5b602083019150836020820283011115611d3d57611d3c611c96565b5b9250929050565b5f805f8060408587031215611d5c57611d5b611a15565b5b5f85013567ffffffffffffffff811115611d7957611d78611a19565b5b611d8587828801611c9a565b9450945050602085013567ffffffffffffffff811115611da857611da7611a19565b5b611db487828801611cef565b925092505092959194509250565b5f8060408385031215611dd857611dd7611a15565b5b5f611de585828601611a63565b9250506020611df685828601611a63565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611e4457607f821691505b602082108103611e5757611e56611e00565b5b50919050565b5f604082019050611e705f830185611b1b565b611e7d6020830184611b1b565b9392505050565b5f81519050611e9281611a4d565b92915050565b5f60208284031215611ead57611eac611a15565b5b5f611eba84828501611e84565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f62ffffff82169050919050565b611f0781611ef0565b82525050565b5f606082019050611f205f830186611b1b565b611f2d6020830185611b1b565b611f3a6040830184611efe565b949350505050565b7f4d69736d61746368206265747765656e20726563697069656e7420616e6420615f8201527f6d6f756e74206172726179730000000000000000000000000000000000000000602082015250565b5f611f9c602c8361198f565b9150611fa782611f42565b604082019050919050565b5f6020820190508181035f830152611fc981611f90565b9050919050565b7f496e76616c6964206164647265737300000000000000000000000000000000005f82015250565b5f612004600f8361198f565b915061200f82611fd0565b602082019050919050565b5f6020820190508181035f83015261203181611ff8565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61206f82611a77565b915061207a83611a77565b925082820190508082111561209257612091612038565b5b92915050565b5f82825260208201905092915050565b5f819050919050565b6120ba81611a3c565b82525050565b5f6120cb83836120b1565b60208301905092915050565b5f6120e56020840184611a63565b905092915050565b5f602082019050919050565b5f6121048385612098565b935061210f826120a8565b805f5b858110156121475761212482846120d7565b61212e88826120c0565b9750612139836120ed565b925050600181019050612112565b5085925050509392505050565b5f82825260208201905092915050565b5f80fd5b82818337505050565b5f61217c8385612154565b93507f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8311156121af576121ae612164565b5b6020830292506121c0838584612168565b82840190509392505050565b5f6040820190508181035f8301526121e58186886120f9565b905081810360208301526121fa818486612171565b905095945050505050565b7f46696e64207468652066697273742070616972210000000000000000000000005f82015250565b5f61223960148361198f565b915061224482612205565b602082019050919050565b5f6020820190508181035f8301526122668161222d565b9050919050565b5f6060820190506122805f830186611b1b565b61228d6020830185611b43565b61229a6040830184611b43565b949350505050565b7f54726164696e67206973206e6f7420656e61626c6564207965740000000000005f82015250565b5f6122d6601a8361198f565b91506122e1826122a2565b602082019050919050565b5f6020820190508181035f830152612303816122ca565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61234182611a77565b915061234c83611a77565b92508261235c5761235b61230a565b5b828204905092915050565b5f61237182611a77565b915061237c83611a77565b925082820261238a81611a77565b915082820484148315176123a1576123a0612038565b5b5092915050565b7f546865204d41585f5045525f57414c4c4554206c696d6974206973207374696c5f8201527f6c20656e61626c656420616e642074686520747820657863656564732069742e602082015250565b5f61240260408361198f565b915061240d826123a8565b604082019050919050565b5f6020820190508181035f83015261242f816123f6565b9050919050565b61243f81611ae8565b8114612449575f80fd5b50565b5f8151905061245a81612436565b92915050565b5f6020828403121561247557612474611a15565b5b5f6124828482850161244c565b9150509291505056fea2646970667358221220f5f52d6853977a92a583d13bb580c26649283b3a49c247ea3c509c4743a110a964736f6c634300081a0033000000000000000000000000c657ab33b79b15305ed0a557842f84146ebb2adb