60806040526001600660006101000a81548160ff0219169083151502179055506014600755601460085560016009556001600a556014600b556014600c55600f600d556000600e556009600a6200005791906200062d565b6301312d006200006891906200067e565b600f556009600a6200007b91906200062d565b6301312d006200008c91906200067e565b6010556009600a6200009f91906200062d565b620f4240620000af91906200067e565b6011556009600a620000c291906200062d565b62e4e1c0620000d291906200067e565b6012556000601460156101000a81548160ff0219169083151502179055506000601460166101000a81548160ff0219169083151502179055503480156200011857600080fd5b5060006200012b6200046260201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001d96200046260201b60201c565b600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6200022991906200062d565b633b9aca006200023a91906200067e565b600160006200024e6200046260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620002a26200046a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003d56200046260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200043491906200062d565b633b9aca006200044591906200067e565b604051620004549190620006da565b60405180910390a3620006f7565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200052157808604811115620004f957620004f862000493565b5b6001851615620005095780820291505b80810290506200051985620004c2565b9450620004d9565b94509492505050565b6000826200053c57600190506200060f565b816200054c57600090506200060f565b81600181146200056557600281146200057057620005a6565b60019150506200060f565b60ff84111562000585576200058462000493565b5b8360020a9150848211156200059f576200059e62000493565b5b506200060f565b5060208310610133831016604e8410600b8410161715620005e05782820a905083811115620005da57620005d962000493565b5b6200060f565b620005ef8484846001620004cf565b9250905081840481111562000609576200060862000493565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200063a8262000616565b9150620006478362000620565b9250620006767fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200052a565b905092915050565b60006200068b8262000616565b9150620006988362000616565b9250828202620006a88162000616565b91508282048414831517620006c257620006c162000493565b5b5092915050565b620006d48162000616565b82525050565b6000602082019050620006f16000830184620006c9565b92915050565b6136e780620007076000396000f3fe6080604052600436106101445760003560e01c8063751039fc116100b6578063bf474bed1161006f578063bf474bed14610447578063c876d0b914610472578063c9567bf91461049d578063d34628cc146104b4578063dd62ed3e146104dd578063ec1f3f631461051a5761014b565b8063751039fc146103475780637d1db4a51461035e5780638da5cb5b146103895780638f9a55c0146103b457806395d89b41146103df578063a9059cbb1461040a5761014b565b8063313ce56711610108578063313ce5671461024b57806331c2d847146102765780633bbac5791461029f57806351bc3c85146102dc57806370a08231146102f3578063715018a6146103305761014b565b806306fdde0314610150578063095ea7b31461017b5780630faee56f146101b857806318160ddd146101e357806323b872dd1461020e5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b50610165610543565b6040516101729190612586565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d9190612650565b610563565b6040516101af91906126ab565b60405180910390f35b3480156101c457600080fd5b506101cd610581565b6040516101da91906126d5565b60405180910390f35b3480156101ef57600080fd5b506101f8610587565b60405161020591906126d5565b60405180910390f35b34801561021a57600080fd5b50610235600480360381019061023091906126f0565b6105ab565b60405161024291906126ab565b60405180910390f35b34801561025757600080fd5b50610260610684565b60405161026d919061275f565b60405180910390f35b34801561028257600080fd5b5061029d600480360381019061029891906128c2565b61068d565b005b3480156102ab57600080fd5b506102c660048036038101906102c1919061290b565b6107b7565b6040516102d391906126ab565b60405180910390f35b3480156102e857600080fd5b506102f161080d565b005b3480156102ff57600080fd5b5061031a6004803603810190610315919061290b565b6108aa565b60405161032791906126d5565b60405180910390f35b34801561033c57600080fd5b506103456108f3565b005b34801561035357600080fd5b5061035c610a46565b005b34801561036a57600080fd5b50610373610b91565b60405161038091906126d5565b60405180910390f35b34801561039557600080fd5b5061039e610b97565b6040516103ab9190612947565b60405180910390f35b3480156103c057600080fd5b506103c9610bc0565b6040516103d691906126d5565b60405180910390f35b3480156103eb57600080fd5b506103f4610bc6565b6040516104019190612586565b60405180910390f35b34801561041657600080fd5b50610431600480360381019061042c9190612650565b610c03565b60405161043e91906126ab565b60405180910390f35b34801561045357600080fd5b5061045c610c21565b60405161046991906126d5565b60405180910390f35b34801561047e57600080fd5b50610487610c27565b60405161049491906126ab565b60405180910390f35b3480156104a957600080fd5b506104b2610c3a565b005b3480156104c057600080fd5b506104db60048036038101906104d691906128c2565b61116f565b005b3480156104e957600080fd5b5061050460048036038101906104ff9190612962565b611299565b60405161051191906126d5565b60405180910390f35b34801561052657600080fd5b50610541600480360381019061053c91906129a2565b611320565b005b606060405180606001604052806039815260200161367960399139905090565b60006105776105706113af565b84846113b7565b6001905092915050565b60125481565b60006009600a6105979190612b31565b633b9aca006105a69190612b7c565b905090565b60006105b8848484611580565b610679846105c46113af565b6106748560405180606001604052806028815260200161365160289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061062a6113af565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fc59092919063ffffffff16565b6113b7565b600190509392505050565b60006009905090565b6106956113af565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610722576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071990612c0a565b60405180910390fd5b60005b81518110156107b35760006004600084848151811061074757610746612c2a565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806107ab90612c59565b915050610725565b5050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661084e6113af565b73ffffffffffffffffffffffffffffffffffffffff161461086e57600080fd5b6000610879306108aa565b9050600081111561088e5761088d81612029565b5b600047905060008111156108a6576108a5816122a2565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108fb6113af565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610988576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097f90612c0a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a4e6113af565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610adb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad290612c0a565b60405180910390fd5b6009600a610ae99190612b31565b633b9aca00610af89190612b7c565b600f819055506009600a610b0c9190612b31565b633b9aca00610b1b9190612b7c565b6010819055506000600660006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610b6b9190612b31565b633b9aca00610b7a9190612b7c565b604051610b8791906126d5565b60405180910390a1565b600f5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600a81526020017f244d454d45434f494e5300000000000000000000000000000000000000000000815250905090565b6000610c17610c106113af565b8484611580565b6001905092915050565b60115481565b600660009054906101000a900460ff1681565b610c426113af565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ccf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc690612c0a565b60405180910390fd5b60148054906101000a900460ff1615610d1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1490612ced565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610dbb30601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610da79190612b31565b633b9aca00610db69190612b7c565b6113b7565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4c9190612d22565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ed5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef99190612d22565b6040518363ffffffff1660e01b8152600401610f16929190612d4f565b6020604051808303816000875af1158015610f35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f599190612d22565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610fe2306108aa565b600080610fed610b97565b426040518863ffffffff1660e01b815260040161100f96959493929190612dbd565b60606040518083038185885af115801561102d573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110529190612e33565b505050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016110f4929190612e86565b6020604051808303816000875af1158015611113573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111379190612edb565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b6111776113af565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611204576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fb90612c0a565b60405180910390fd5b60005b81518110156112955760016004600084848151811061122957611228612c2a565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061128d90612c59565b915050611207565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113616113af565b73ffffffffffffffffffffffffffffffffffffffff161461138157600080fd5b60095481111580156113955750600a548111155b61139e57600080fd5b8060098190555080600a8190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611426576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141d90612f7a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611495576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148c9061300c565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161157391906126d5565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e69061309e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361165e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165590613130565b60405180910390fd5b600081116116a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611698906131c2565b60405180910390fd5b60006116ab610b97565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561171957506116e9610b97565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d0857600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156117c25750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6117cb57600080fd5b61180760646117f9600b54600e54116117e6576007546117ea565b6009545b8561230e90919063ffffffff16565b61238890919063ffffffff16565b9050600660009054906101000a900460ff161561199657601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118ca5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156119955743600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611950576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119479061327a565b60405180910390fd5b43600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611a415750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a975750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611b5257600f54821115611ae1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad8906132e6565b60405180910390fd5b60105482611aee856108aa565b611af89190613306565b1115611b39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3090613386565b60405180910390fd5b600e6000815480929190611b4c90612c59565b91905055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611bdb57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611c1f57611c1c6064611c0e600c54600e5411611bfb57600854611bff565b600a545b8561230e90919063ffffffff16565b61238890919063ffffffff16565b90505b6000611c2a306108aa565b9050601460159054906101000a900460ff16158015611c965750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611cae5750601460169054906101000a900460ff165b8015611cbb575060115481115b8015611cca5750600d54600e54115b15611d0657611cec611ce784611ce2846012546123d2565b6123d2565b612029565b60004790506000811115611d0457611d03476122a2565b5b505b505b6000811115611e0c57611d6381600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123eb90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e0391906126d5565b60405180910390a35b611e5e82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461244990919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f05611eb7828461244990919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123eb90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611faa848661244990919063ffffffff16565b604051611fb791906126d5565b60405180910390a350505050565b600083831115829061200d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120049190612586565b60405180910390fd5b506000838561201c91906133a6565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156120615761206061277f565b5b60405190808252806020026020018201604052801561208f5781602001602082028036833780820191505090505b50905030816000815181106120a7576120a6612c2a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561214e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121729190612d22565b8160018151811061218657612185612c2a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121ed30601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113b7565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612251959493929190613498565b600060405180830381600087803b15801561226b57600080fd5b505af115801561227f573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561230a573d6000803e3d6000fd5b5050565b60008083036123205760009050612382565b6000828461232e9190612b7c565b905082848261233d9190613521565b1461237d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612374906135c4565b60405180910390fd5b809150505b92915050565b60006123ca83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612493565b905092915050565b60008183116123e157826123e3565b815b905092915050565b60008082846123fa9190613306565b90508381101561243f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243690613630565b60405180910390fd5b8091505092915050565b600061248b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611fc5565b905092915050565b600080831182906124da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d19190612586565b60405180910390fd5b50600083856124e99190613521565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612530578082015181840152602081019050612515565b60008484015250505050565b6000601f19601f8301169050919050565b6000612558826124f6565b6125628185612501565b9350612572818560208601612512565b61257b8161253c565b840191505092915050565b600060208201905081810360008301526125a0818461254d565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125e7826125bc565b9050919050565b6125f7816125dc565b811461260257600080fd5b50565b600081359050612614816125ee565b92915050565b6000819050919050565b61262d8161261a565b811461263857600080fd5b50565b60008135905061264a81612624565b92915050565b60008060408385031215612667576126666125b2565b5b600061267585828601612605565b92505060206126868582860161263b565b9150509250929050565b60008115159050919050565b6126a581612690565b82525050565b60006020820190506126c0600083018461269c565b92915050565b6126cf8161261a565b82525050565b60006020820190506126ea60008301846126c6565b92915050565b600080600060608486031215612709576127086125b2565b5b600061271786828701612605565b935050602061272886828701612605565b92505060406127398682870161263b565b9150509250925092565b600060ff82169050919050565b61275981612743565b82525050565b60006020820190506127746000830184612750565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6127b78261253c565b810181811067ffffffffffffffff821117156127d6576127d561277f565b5b80604052505050565b60006127e96125a8565b90506127f582826127ae565b919050565b600067ffffffffffffffff8211156128155761281461277f565b5b602082029050602081019050919050565b600080fd5b600061283e612839846127fa565b6127df565b9050808382526020820190506020840283018581111561286157612860612826565b5b835b8181101561288a57806128768882612605565b845260208401935050602081019050612863565b5050509392505050565b600082601f8301126128a9576128a861277a565b5b81356128b984826020860161282b565b91505092915050565b6000602082840312156128d8576128d76125b2565b5b600082013567ffffffffffffffff8111156128f6576128f56125b7565b5b61290284828501612894565b91505092915050565b600060208284031215612921576129206125b2565b5b600061292f84828501612605565b91505092915050565b612941816125dc565b82525050565b600060208201905061295c6000830184612938565b92915050565b60008060408385031215612979576129786125b2565b5b600061298785828601612605565b925050602061299885828601612605565b9150509250929050565b6000602082840312156129b8576129b76125b2565b5b60006129c68482850161263b565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612a5557808604811115612a3157612a306129cf565b5b6001851615612a405780820291505b8081029050612a4e856129fe565b9450612a15565b94509492505050565b600082612a6e5760019050612b2a565b81612a7c5760009050612b2a565b8160018114612a925760028114612a9c57612acb565b6001915050612b2a565b60ff841115612aae57612aad6129cf565b5b8360020a915084821115612ac557612ac46129cf565b5b50612b2a565b5060208310610133831016604e8410600b8410161715612b005782820a905083811115612afb57612afa6129cf565b5b612b2a565b612b0d8484846001612a0b565b92509050818404811115612b2457612b236129cf565b5b81810290505b9392505050565b6000612b3c8261261a565b9150612b4783612743565b9250612b747fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612a5e565b905092915050565b6000612b878261261a565b9150612b928361261a565b9250828202612ba08161261a565b91508282048414831517612bb757612bb66129cf565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612bf4602083612501565b9150612bff82612bbe565b602082019050919050565b60006020820190508181036000830152612c2381612be7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612c648261261a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612c9657612c956129cf565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612cd7601783612501565b9150612ce282612ca1565b602082019050919050565b60006020820190508181036000830152612d0681612cca565b9050919050565b600081519050612d1c816125ee565b92915050565b600060208284031215612d3857612d376125b2565b5b6000612d4684828501612d0d565b91505092915050565b6000604082019050612d646000830185612938565b612d716020830184612938565b9392505050565b6000819050919050565b6000819050919050565b6000612da7612da2612d9d84612d78565b612d82565b61261a565b9050919050565b612db781612d8c565b82525050565b600060c082019050612dd26000830189612938565b612ddf60208301886126c6565b612dec6040830187612dae565b612df96060830186612dae565b612e066080830185612938565b612e1360a08301846126c6565b979650505050505050565b600081519050612e2d81612624565b92915050565b600080600060608486031215612e4c57612e4b6125b2565b5b6000612e5a86828701612e1e565b9350506020612e6b86828701612e1e565b9250506040612e7c86828701612e1e565b9150509250925092565b6000604082019050612e9b6000830185612938565b612ea860208301846126c6565b9392505050565b612eb881612690565b8114612ec357600080fd5b50565b600081519050612ed581612eaf565b92915050565b600060208284031215612ef157612ef06125b2565b5b6000612eff84828501612ec6565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612f64602483612501565b9150612f6f82612f08565b604082019050919050565b60006020820190508181036000830152612f9381612f57565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612ff6602283612501565b915061300182612f9a565b604082019050919050565b6000602082019050818103600083015261302581612fe9565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613088602583612501565b91506130938261302c565b604082019050919050565b600060208201905081810360008301526130b78161307b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061311a602383612501565b9150613125826130be565b604082019050919050565b600060208201905081810360008301526131498161310d565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006131ac602983612501565b91506131b782613150565b604082019050919050565b600060208201905081810360008301526131db8161319f565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b6000613264604983612501565b915061326f826131e2565b606082019050919050565b6000602082019050818103600083015261329381613257565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006132d0601983612501565b91506132db8261329a565b602082019050919050565b600060208201905081810360008301526132ff816132c3565b9050919050565b60006133118261261a565b915061331c8361261a565b9250828201905080821115613334576133336129cf565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613370601a83612501565b915061337b8261333a565b602082019050919050565b6000602082019050818103600083015261339f81613363565b9050919050565b60006133b18261261a565b91506133bc8361261a565b92508282039050818111156133d4576133d36129cf565b5b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61340f816125dc565b82525050565b60006134218383613406565b60208301905092915050565b6000602082019050919050565b6000613445826133da565b61344f81856133e5565b935061345a836133f6565b8060005b8381101561348b5781516134728882613415565b975061347d8361342d565b92505060018101905061345e565b5085935050505092915050565b600060a0820190506134ad60008301886126c6565b6134ba6020830187612dae565b81810360408301526134cc818661343a565b90506134db6060830185612938565b6134e860808301846126c6565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061352c8261261a565b91506135378361261a565b925082613547576135466134f2565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006135ae602183612501565b91506135b982613552565b604082019050919050565b600060208201905081810360008301526135dd816135a1565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061361a601b83612501565b9150613625826135e4565b602082019050919050565b600060208201905081810360008301526136498161360d565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654861727279506f74746572456c6f6e584f62616d61536f6e696350657065446f6765466c6f6b694b697368755368696261576f6a616b496e75a2646970667358221220279ae3ed98d033d7efe060284327e369e5edffa60d598488bf9a1c5129a31d5664736f6c63430008110033