608060405261dead600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060026009556003600a556004600b556009600c555f600d555f600e555f60105560405162003c3338038062003c33833981810160405281019062000110919062000473565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d9050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280600581526020017f585348494200000000000000000000000000000000000000000000000000000081525060019081620001ad919062000713565b506040518060400160405280600581526020017f585348494200000000000000000000000000000000000000000000000000000081525060029081620001f4919062000713565b50601260035f6101000a81548160ff021916908360ff16021790555060035f9054906101000a900460ff16600a6200022d919062000980565b836200023a9190620009d0565b600f819055508060115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f5460075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600f5460065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600f54604051620003c5919062000a2b565b60405180910390a350505062000a46565b5f80fd5b5f819050919050565b620003ee81620003da565b8114620003f9575f80fd5b50565b5f815190506200040c81620003e3565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200043d8262000412565b9050919050565b6200044f8162000431565b81146200045a575f80fd5b50565b5f815190506200046d8162000444565b92915050565b5f80604083850312156200048c576200048b620003d6565b5b5f6200049b85828601620003fc565b9250506020620004ae858286016200045d565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200053457607f821691505b6020821081036200054a5762000549620004ef565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620005ae7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000571565b620005ba868362000571565b95508019841693508086168417925050509392505050565b5f819050919050565b5f620005fb620005f5620005ef84620003da565b620005d2565b620003da565b9050919050565b5f819050919050565b6200061683620005db565b6200062e620006258262000602565b8484546200057d565b825550505050565b5f90565b6200064462000636565b620006518184846200060b565b505050565b5b8181101562000678576200066c5f826200063a565b60018101905062000657565b5050565b601f821115620006c757620006918162000550565b6200069c8462000562565b81016020851015620006ac578190505b620006c4620006bb8562000562565b83018262000656565b50505b505050565b5f82821c905092915050565b5f620006e95f1984600802620006cc565b1980831691505092915050565b5f620007038383620006d8565b9150826002028217905092915050565b6200071e82620004b8565b67ffffffffffffffff8111156200073a5762000739620004c2565b5b6200074682546200051c565b620007538282856200067c565b5f60209050601f83116001811462000789575f841562000774578287015190505b620007808582620006f6565b865550620007ef565b601f198416620007998662000550565b5f5b82811015620007c2578489015182556001820191506020850194506020810190506200079b565b86831015620007e25784890151620007de601f891682620006d8565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200088157808604811115620008595762000858620007f7565b5b6001851615620008695780820291505b8081029050620008798562000824565b945062000839565b94509492505050565b5f826200089b57600190506200096d565b81620008aa575f90506200096d565b8160018114620008c35760028114620008ce5762000904565b60019150506200096d565b60ff841115620008e357620008e2620007f7565b5b8360020a915084821115620008fd57620008fc620007f7565b5b506200096d565b5060208310610133831016604e8410600b84101617156200093e5782820a905083811115620009385762000937620007f7565b5b6200096d565b6200094d848484600162000830565b92509050818404811115620009675762000966620007f7565b5b81810290505b9392505050565b5f60ff82169050919050565b5f6200098c82620003da565b9150620009998362000974565b9250620009c87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200088a565b905092915050565b5f620009dc82620003da565b9150620009e983620003da565b9250828202620009f981620003da565b9150828204841483151762000a135762000a12620007f7565b5b5092915050565b62000a2581620003da565b82525050565b5f60208201905062000a405f83018462000a1a565b92915050565b6131df8062000a545f395ff3fe6080604052600436106101e6575f3560e01c80638da5cb5b11610101578063c816841b11610094578063dd62ed3e11610063578063dd62ed3e14610705578063f039c69f14610741578063f0cd1dac1461076b578063f2fde38b14610795576101ed565b8063c816841b1461064b578063d158272d14610675578063d59c58be1461069f578063da00097d146106db576101ed565b8063a457c2d7116100d0578063a457c2d71461057f578063a83f53a7146105bb578063a9059cbb146105e5578063b2bdfa7b14610621576101ed565b80638da5cb5b146104eb578063914eb66a1461051557806395d89b411461052b578063a08e671f14610555576101ed565b8063313ce5671161017957806357a5802f1161014857806357a5802f1461043157806361a23c691461045b57806370a082311461048557806382eefb43146104c1576101ed565b8063313ce56714610365578063395093511461038f5780633ecad271146103cb578063557ed1ba14610407576101ed565b806318160ddd116101b557806318160ddd146102ab57806323b872dd146102d557806327c8f835146103115780632b112e491461033b576101ed565b806306fdde03146101f1578063095ea7b31461021b5780631245e347146102575780631694505e14610281576101ed565b366101ed57005b5f80fd5b3480156101fc575f80fd5b506102056107bd565b60405161021291906125da565b60405180910390f35b348015610226575f80fd5b50610241600480360381019061023c919061268b565b61084d565b60405161024e91906126e3565b60405180910390f35b348015610262575f80fd5b5061026b61086a565b604051610278919061271c565b60405180910390f35b34801561028c575f80fd5b5061029561088f565b6040516102a29190612790565b60405180910390f35b3480156102b6575f80fd5b506102bf6108b4565b6040516102cc91906127b8565b60405180910390f35b3480156102e0575f80fd5b506102fb60048036038101906102f691906127d1565b6108bd565b60405161030891906126e3565b60405180910390f35b34801561031c575f80fd5b50610325610992565b6040516103329190612830565b60405180910390f35b348015610346575f80fd5b5061034f6109b7565b60405161035c91906127b8565b60405180910390f35b348015610370575f80fd5b506103796109fb565b6040516103869190612864565b60405180910390f35b34801561039a575f80fd5b506103b560048036038101906103b0919061268b565b610a10565b6040516103c291906126e3565b60405180910390f35b3480156103d6575f80fd5b506103f160048036038101906103ec919061287d565b610abe565b6040516103fe91906126e3565b60405180910390f35b348015610412575f80fd5b5061041b610adb565b60405161042891906127b8565b60405180910390f35b34801561043c575f80fd5b50610445610ae2565b60405161045291906127b8565b60405180910390f35b348015610466575f80fd5b5061046f610ae8565b60405161047c91906127b8565b60405180910390f35b348015610490575f80fd5b506104ab60048036038101906104a6919061287d565b610aee565b6040516104b891906127b8565b60405180910390f35b3480156104cc575f80fd5b506104d5610b34565b6040516104e291906127b8565b60405180910390f35b3480156104f6575f80fd5b506104ff610b3a565b60405161050c9190612830565b60405180910390f35b348015610520575f80fd5b50610529610b61565b005b348015610536575f80fd5b5061053f610caf565b60405161054c91906125da565b60405180910390f35b348015610560575f80fd5b50610569610d3f565b60405161057691906127b8565b60405180910390f35b34801561058a575f80fd5b506105a560048036038101906105a0919061268b565b610d45565b6040516105b291906126e3565b60405180910390f35b3480156105c6575f80fd5b506105cf610e0d565b6040516105dc91906127b8565b60405180910390f35b3480156105f0575f80fd5b5061060b6004803603810190610606919061268b565b610e13565b60405161061891906126e3565b60405180910390f35b34801561062c575f80fd5b50610635610e31565b6040516106429190612830565b60405180910390f35b348015610656575f80fd5b5061065f610e54565b60405161066c9190612830565b60405180910390f35b348015610680575f80fd5b50610689610e79565b604051610696919061271c565b60405180910390f35b3480156106aa575f80fd5b506106c560048036038101906106c0919061287d565b610e9f565b6040516106d29190612830565b60405180910390f35b3480156106e6575f80fd5b506106ef61134d565b6040516106fc91906126e3565b60405180910390f35b348015610710575f80fd5b5061072b600480360381019061072691906128a8565b611360565b60405161073891906127b8565b60405180910390f35b34801561074c575f80fd5b506107556113e2565b60405161076291906126e3565b60405180910390f35b348015610776575f80fd5b5061077f6113f5565b60405161078c91906127b8565b60405180910390f35b3480156107a0575f80fd5b506107bb60048036038101906107b6919061287d565b6113fb565b005b6060600180546107cc90612913565b80601f01602080910402602001604051908101604052809291908181526020018280546107f890612913565b80156108435780601f1061081a57610100808354040283529160200191610843565b820191905f5260205f20905b81548152906001019060200180831161082657829003601f168201915b5050505050905090565b5f6108606108596115b8565b84846115bf565b6001905092915050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600f54905090565b5f6108c9848484611782565b50610987846108d66115b8565b6109828560405180606001604052806028815260200161315d6028913960075f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6109396115b8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b689092919063ffffffff16565b6115bf565b600190509392505050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6109f66109e560055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610aee565b600f54611bca90919063ffffffff16565b905090565b5f60035f9054906101000a900460ff16905090565b5f610ab4610a1c6115b8565b84610aaf8560075f610a2c6115b8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c1390919063ffffffff16565b6115bf565b6001905092915050565b6008602052805f5260405f205f915054906101000a900460ff1681565b5f42905090565b60095481565b600a5481565b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610b696115b8565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bec9061298d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060028054610cbe90612913565b80601f0160208091040260200160405190810160405280929190818152602001828054610cea90612913565b8015610d355780601f10610d0c57610100808354040283529160200191610d35565b820191905f5260205f20905b815481529060010190602001808311610d1857829003601f168201915b5050505050905090565b600c5481565b5f610e03610d516115b8565b84610dfe856040518060600160405280602581526020016131856025913960075f610d7a6115b8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b689092919063ffffffff16565b6115bf565b6001905092915050565b600b5481565b5f610e26610e1f6115b8565b8484611782565b506001905092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610ea86115b8565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2b9061298d565b60405180910390fd5b5f60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fa2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fc691906129bf565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561102b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061104f91906129bf565b6040518363ffffffff1660e01b815260040161106c9291906129ea565b602060405180830381865afa158015611087573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110ab91906129bf565b91505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611236578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611129573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061114d91906129bf565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111b2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111d691906129bf565b6040518363ffffffff1660e01b81526004016111f39291906129ea565b6020604051808303815f875af115801561120f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061123391906129bf565b91505b8160125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601260166101000a81548160ff021916908315150217905550600160085f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050919050565b601260149054906101000a900460ff1681565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b601260169054906101000a900460ff1681565b600d5481565b6114036115b8565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461148f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114869061298d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036114fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f490612a81565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361162d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162490612b0f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361169b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169290612b9d565b60405180910390fd5b8060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161177591906127b8565b60405180910390a3505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036117f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e890612c2b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361185f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185690612cb9565b60405180910390fd5b5f82116118a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189890612d47565b60405180910390fd5b601260159054906101000a900460ff16156118c8576118c1848484611c70565b9050611b61565b5f6118d230610aee565b90505f60105482101590508080156118f75750601260159054906101000a900460ff16155b801561194a575060085f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156119625750601260169054906101000a900460ff165b1561198d57601260149054906101000a900460ff16156119825760105491505b61198c8287611e3a565b5b611a14846040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b689092919063ffffffff16565b60065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f611a61878787611f0e565b9050611ab38160065f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c1390919063ffffffff16565b60065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b5191906127b8565b60405180910390a3600193505050505b9392505050565b5f838311158290611baf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba691906125da565b60405180910390fd5b505f8385611bbd9190612d92565b9050809150509392505050565b5f611c0b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b68565b905092915050565b5f808284611c219190612dc5565b905083811015611c66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5d90612e42565b60405180910390fd5b8091505092915050565b5f611cf8826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b689092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611d898260065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c1390919063ffffffff16565b60065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e2791906127b8565b60405180910390a3600190509392505050565b6001601260156101000a81548160ff0219169083151502179055505f611e926002611e84600c54611e766009548861212890919063ffffffff16565b61219f90919063ffffffff16565b61219f90919063ffffffff16565b90505f611ea88285611bca90919063ffffffff16565b9050611eb481846121e8565b5f4790505f811115611eed57611eec600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826124a7565b5b5050505f601260156101000a81548160ff0219169083151502179055505050565b5f805f905060085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611f9157611f8a6064611f7c600d548661212890919063ffffffff16565b61219f90919063ffffffff16565b905061200c565b60085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561200b576120086064611ffa600e548661212890919063ffffffff16565b61219f90919063ffffffff16565b90505b5b5f81111561210b576120648160065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c1390919063ffffffff16565b60065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161210291906127b8565b60405180910390a35b61211e8184611bca90919063ffffffff16565b9150509392505050565b5f808303612138575f9050612199565b5f82846121459190612e60565b90508284826121549190612ece565b14612194576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218b90612f6e565b60405180910390fd5b809150505b92915050565b5f6121e083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506124ef565b905092915050565b5f600367ffffffffffffffff81111561220457612203612f8c565b5b6040519080825280602002602001820160405280156122325781602001602082028036833780820191505090505b50905030815f8151811061224957612248612fb9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050818160018151811061229857612297612fb9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561233c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061236091906129bf565b8160028151811061237457612373612fb9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506123da3060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856115bf565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8430426040518663ffffffff1660e01b815260040161243c9594939291906130d6565b5f604051808303815f87803b158015612453575f80fd5b505af1158015612465573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7838260405161249a92919061312e565b60405180910390a1505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156124ea573d5f803e3d5ffd5b505050565b5f8083118290612535576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252c91906125da565b60405180910390fd5b505f83856125439190612ece565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561258757808201518184015260208101905061256c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6125ac82612550565b6125b6818561255a565b93506125c681856020860161256a565b6125cf81612592565b840191505092915050565b5f6020820190508181035f8301526125f281846125a2565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612627826125fe565b9050919050565b6126378161261d565b8114612641575f80fd5b50565b5f813590506126528161262e565b92915050565b5f819050919050565b61266a81612658565b8114612674575f80fd5b50565b5f8135905061268581612661565b92915050565b5f80604083850312156126a1576126a06125fa565b5b5f6126ae85828601612644565b92505060206126bf85828601612677565b9150509250929050565b5f8115159050919050565b6126dd816126c9565b82525050565b5f6020820190506126f65f8301846126d4565b92915050565b5f612706826125fe565b9050919050565b612716816126fc565b82525050565b5f60208201905061272f5f83018461270d565b92915050565b5f819050919050565b5f61275861275361274e846125fe565b612735565b6125fe565b9050919050565b5f6127698261273e565b9050919050565b5f61277a8261275f565b9050919050565b61278a81612770565b82525050565b5f6020820190506127a35f830184612781565b92915050565b6127b281612658565b82525050565b5f6020820190506127cb5f8301846127a9565b92915050565b5f805f606084860312156127e8576127e76125fa565b5b5f6127f586828701612644565b935050602061280686828701612644565b925050604061281786828701612677565b9150509250925092565b61282a8161261d565b82525050565b5f6020820190506128435f830184612821565b92915050565b5f60ff82169050919050565b61285e81612849565b82525050565b5f6020820190506128775f830184612855565b92915050565b5f60208284031215612892576128916125fa565b5b5f61289f84828501612644565b91505092915050565b5f80604083850312156128be576128bd6125fa565b5b5f6128cb85828601612644565b92505060206128dc85828601612644565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061292a57607f821691505b60208210810361293d5761293c6128e6565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61297760208361255a565b915061298282612943565b602082019050919050565b5f6020820190508181035f8301526129a48161296b565b9050919050565b5f815190506129b98161262e565b92915050565b5f602082840312156129d4576129d36125fa565b5b5f6129e1848285016129ab565b91505092915050565b5f6040820190506129fd5f830185612821565b612a0a6020830184612821565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612a6b60268361255a565b9150612a7682612a11565b604082019050919050565b5f6020820190508181035f830152612a9881612a5f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612af960248361255a565b9150612b0482612a9f565b604082019050919050565b5f6020820190508181035f830152612b2681612aed565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612b8760228361255a565b9150612b9282612b2d565b604082019050919050565b5f6020820190508181035f830152612bb481612b7b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612c1560258361255a565b9150612c2082612bbb565b604082019050919050565b5f6020820190508181035f830152612c4281612c09565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612ca360238361255a565b9150612cae82612c49565b604082019050919050565b5f6020820190508181035f830152612cd081612c97565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612d3160298361255a565b9150612d3c82612cd7565b604082019050919050565b5f6020820190508181035f830152612d5e81612d25565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612d9c82612658565b9150612da783612658565b9250828203905081811115612dbf57612dbe612d65565b5b92915050565b5f612dcf82612658565b9150612dda83612658565b9250828201905080821115612df257612df1612d65565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612e2c601b8361255a565b9150612e3782612df8565b602082019050919050565b5f6020820190508181035f830152612e5981612e20565b9050919050565b5f612e6a82612658565b9150612e7583612658565b9250828202612e8381612658565b91508282048414831517612e9a57612e99612d65565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612ed882612658565b9150612ee383612658565b925082612ef357612ef2612ea1565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612f5860218361255a565b9150612f6382612efe565b604082019050919050565b5f6020820190508181035f830152612f8581612f4c565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f613009613004612fff84612fe6565b612735565b612658565b9050919050565b61301981612fef565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6130518161261d565b82525050565b5f6130628383613048565b60208301905092915050565b5f602082019050919050565b5f6130848261301f565b61308e8185613029565b935061309983613039565b805f5b838110156130c95781516130b08882613057565b97506130bb8361306e565b92505060018101905061309c565b5085935050505092915050565b5f60a0820190506130e95f8301886127a9565b6130f66020830187613010565b8181036040830152613108818661307a565b90506131176060830185612821565b61312460808301846127a9565b9695505050505050565b5f6040820190506131415f8301856127a9565b8181036020830152613153818461307a565b9050939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212203ee4b18b64d7985f4f6c8998fd8f563255fe716f960831df113e3f965705b77d64736f6c634300081500330000000000000000000000000000000000000000000000000000000005f5e10000000000000000000000000024e420b1b28f35069ea8dec8882f88d882178af4