0x6080604052600436106101795760003560e01c8063715018a6116100cb578063aa46a4001161007f578063e985e9c511610059578063e985e9c514610437578063eac989f81461048d578063f2fde38b146104a257600080fd5b8063aa46a400146103a5578063b88d4fde146103f7578063c87b56dd1461041757600080fd5b806395d89b41116100b057806395d89b411461035b5780639890220b14610370578063a22cb4651461038557600080fd5b8063715018a61461031b5780638da5cb5b1461033057600080fd5b80631249c58b1161012d57806343d726d61161010757806343d726d6146102b85780636352211e146102cd57806370a08231146102ed57600080fd5b80631249c58b1461026357806323b872dd1461027857806342842e0e1461029857600080fd5b806306fdde031161015e57806306fdde03146101dc578063081812fc146101fe578063095ea7b31461024357600080fd5b806301ffc9a71461018557806302fe5305146101ba57600080fd5b3661018057005b600080fd5b34801561019157600080fd5b506101a56101a036600461196c565b6104c2565b60405190151581526020015b60405180910390f35b3480156101c657600080fd5b506101da6101d5366004611a53565b6105a7565b005b3480156101e857600080fd5b506101f16105bf565b6040516101b19190611b00565b34801561020a57600080fd5b5061021e610219366004611b13565b610651565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101b1565b34801561024f57600080fd5b506101da61025e366004611b55565b610685565b34801561026f57600080fd5b506101da6107e2565b34801561028457600080fd5b506101da610293366004611b7f565b6108c0565b3480156102a457600080fd5b506101da6102b3366004611b7f565b610947565b3480156102c457600080fd5b506101da610962565b3480156102d957600080fd5b5061021e6102e8366004611b13565b610994565b3480156102f957600080fd5b5061030d610308366004611bbb565b610a06565b6040519081526020016101b1565b34801561032757600080fd5b506101da610aba565b34801561033c57600080fd5b5060065473ffffffffffffffffffffffffffffffffffffffff1661021e565b34801561036757600080fd5b506101f1610acc565b34801561037c57600080fd5b506101da610adb565b34801561039157600080fd5b506101da6103a0366004611bd6565b610b2c565b3480156103b157600080fd5b506006546103de9074010000000000000000000000000000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016101b1565b34801561040357600080fd5b506101da610412366004611c12565b610b37565b34801561042357600080fd5b506101f1610432366004611b13565b610bc5565b34801561044357600080fd5b506101a5610452366004611c8e565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260056020908152604080832093909416825291909152205460ff1690565b34801561049957600080fd5b506101f1610ccb565b3480156104ae57600080fd5b506101da6104bd366004611bbb565b610d59565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd00000000000000000000000000000000000000000000000000000000148061055557507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b806105a157507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6105af610df3565b60076105bb8282611d62565b5050565b6060600080546105ce90611cc1565b80601f01602080910402602001604051908101604052809291908181526020018280546105fa90611cc1565b80156106475780601f1061061c57610100808354040283529160200191610647565b820191906000526020600020905b81548152906001019060200180831161062a57829003601f168201915b5050505050905090565b600061065c82610e5a565b5060009081526004602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b600061069082610994565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107385760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff8216148061076157506107618133610452565b6107d35760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000606482015260840161072f565b6107dd8383610ecb565b505050565b6006547c0100000000000000000000000000000000000000000000000000000000900460ff166108545760405162461bcd60e51b815260206004820152600860248201527f746f6f206c617465000000000000000000000000000000000000000000000000604482015260640161072f565b600680547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff8116740100000000000000000000000000000000000000009182900467ffffffffffffffff9081166001018116830291909117928390556108be923392900416610f6b565b565b6108ca3382610f85565b61093c5760405162461bcd60e51b815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f76656400000000000000000000000000000000000000606482015260840161072f565b6107dd838383611045565b6107dd83838360405180602001604052806000815250610b37565b61096a610df3565b600680547fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff169055565b60008181526002602052604081205473ffffffffffffffffffffffffffffffffffffffff16806105a15760405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e2049440000000000000000604482015260640161072f565b600073ffffffffffffffffffffffffffffffffffffffff8216610a915760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f74206120766160448201527f6c6964206f776e65720000000000000000000000000000000000000000000000606482015260840161072f565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205490565b610ac2610df3565b6108be60006112f2565b6060600180546105ce90611cc1565b610ae3610df3565b60065460405173ffffffffffffffffffffffffffffffffffffffff909116904780156108fc02916000818181858888f19350505050158015610b29573d6000803e3d6000fd5b50565b6105bb338383611369565b610b413383610f85565b610bb35760405162461bcd60e51b815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f76656400000000000000000000000000000000000000606482015260840161072f565b610bbf8484848461147c565b50505050565b60008181526002602052604090205460609073ffffffffffffffffffffffffffffffffffffffff16610c395760405162461bcd60e51b815260206004820152601160248201527f6e6f6e6578697374656e7420746f6b656e000000000000000000000000000000604482015260640161072f565b60078054610c4690611cc1565b80601f0160208091040260200160405190810160405280929190818152602001828054610c7290611cc1565b8015610cbf5780601f10610c9457610100808354040283529160200191610cbf565b820191906000526020600020905b815481529060010190602001808311610ca257829003601f168201915b50505050509050919050565b60078054610cd890611cc1565b80601f0160208091040260200160405190810160405280929190818152602001828054610d0490611cc1565b8015610d515780601f10610d2657610100808354040283529160200191610d51565b820191906000526020600020905b815481529060010190602001808311610d3457829003601f168201915b505050505081565b610d61610df3565b73ffffffffffffffffffffffffffffffffffffffff8116610dea5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161072f565b610b29816112f2565b60065473ffffffffffffffffffffffffffffffffffffffff1633146108be5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161072f565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff16610b295760405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e2049440000000000000000604482015260640161072f565b600081815260046020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091558190610f2582610994565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6105bb828260405180602001604052806000815250611505565b600080610f9183610994565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610fff575073ffffffffffffffffffffffffffffffffffffffff80821660009081526005602090815260408083209388168352929052205460ff165b8061103d57508373ffffffffffffffffffffffffffffffffffffffff1661102584610651565b73ffffffffffffffffffffffffffffffffffffffff16145b949350505050565b8273ffffffffffffffffffffffffffffffffffffffff1661106582610994565b73ffffffffffffffffffffffffffffffffffffffff16146110ee5760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015260840161072f565b73ffffffffffffffffffffffffffffffffffffffff82166111765760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161072f565b8273ffffffffffffffffffffffffffffffffffffffff1661119682610994565b73ffffffffffffffffffffffffffffffffffffffff161461121f5760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015260840161072f565b600081815260046020908152604080832080547fffffffffffffffffffffffff000000000000000000000000000000000000000090811690915573ffffffffffffffffffffffffffffffffffffffff8781168086526003855283862080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6006805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113e45760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015260640161072f565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526005602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b611487848484611045565b6114938484848461158e565b610bbf5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e7465720000000000000000000000000000606482015260840161072f565b61150f8383611767565b61151c600084848461158e565b6107dd5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e7465720000000000000000000000000000606482015260840161072f565b600073ffffffffffffffffffffffffffffffffffffffff84163b1561175c576040517f150b7a0200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063150b7a0290611605903390899088908890600401611e7c565b6020604051808303816000875af192505050801561165e575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261165b91810190611ec5565b60015b611711573d80801561168c576040519150601f19603f3d011682016040523d82523d6000602084013e611691565b606091505b5080516000036117095760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e7465720000000000000000000000000000606482015260840161072f565b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a020000000000000000000000000000000000000000000000000000000014905061103d565b506001949350505050565b73ffffffffffffffffffffffffffffffffffffffff82166117ca5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015260640161072f565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff161561183c5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161072f565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff16156118ae5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161072f565b73ffffffffffffffffffffffffffffffffffffffff8216600081815260036020908152604080832080546001019055848352600290915280822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114610b2957600080fd5b60006020828403121561197e57600080fd5b81356119898161193e565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600067ffffffffffffffff808411156119da576119da611990565b604051601f85017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715611a2057611a20611990565b81604052809350858152868686011115611a3957600080fd5b858560208301376000602087830101525050509392505050565b600060208284031215611a6557600080fd5b813567ffffffffffffffff811115611a7c57600080fd5b8201601f81018413611a8d57600080fd5b61103d848235602084016119bf565b6000815180845260005b81811015611ac257602081850181015186830182015201611aa6565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6020815260006119896020830184611a9c565b600060208284031215611b2557600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611b5057600080fd5b919050565b60008060408385031215611b6857600080fd5b611b7183611b2c565b946020939093013593505050565b600080600060608486031215611b9457600080fd5b611b9d84611b2c565b9250611bab60208501611b2c565b9150604084013590509250925092565b600060208284031215611bcd57600080fd5b61198982611b2c565b60008060408385031215611be957600080fd5b611bf283611b2c565b915060208301358015158114611c0757600080fd5b809150509250929050565b60008060008060808587031215611c2857600080fd5b611c3185611b2c565b9350611c3f60208601611b2c565b925060408501359150606085013567ffffffffffffffff811115611c6257600080fd5b8501601f81018713611c7357600080fd5b611c82878235602084016119bf565b91505092959194509250565b60008060408385031215611ca157600080fd5b611caa83611b2c565b9150611cb860208401611b2c565b90509250929050565b600181811c90821680611cd557607f821691505b602082108103611d0e577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f8211156107dd57600081815260208120601f850160051c81016020861015611d3b5750805b601f850160051c820191505b81811015611d5a57828155600101611d47565b505050505050565b815167ffffffffffffffff811115611d7c57611d7c611990565b611d9081611d8a8454611cc1565b84611d14565b602080601f831160018114611de35760008415611dad5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555611d5a565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015611e3057888601518255948401946001909101908401611e11565b5085821015611e6c57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525083604083015260806060830152611ebb6080830184611a9c565b9695505050505050565b600060208284031215611ed757600080fd5b81516119898161193e56fea2646970667358221220175237dbedff4baeb9ec629efeac3a0059439337d211cb51e81434285c86829d64736f6c63430008130033
0x608060405260068054600160a01b600160e81b031916600160e01b1790553480156200002a57600080fd5b506040518060400160405280601681526020017f3c4368617444474e3e204f70656e2045646974696f6e000000000000000000008152506040518060400160405280600481526020016344474e4f60e01b81525081600090816200008f9190620001bc565b5060016200009e8282620001bc565b505050620000bb620000b5620000c160201b60201c565b620000c5565b62000288565b3390565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200014257607f821691505b6020821081036200016357634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620001b757600081815260208120601f850160051c81016020861015620001925750805b601f850160051c820191505b81811015620001b3578281556001016200019e565b5050505b505050565b81516001600160401b03811115620001d857620001d862000117565b620001f081620001e984546200012d565b8462000169565b602080601f8311600181146200022857600084156200020f5750858301515b600019600386901b1c1916600185901b178555620001b3565b600085815260208120601f198616915b82811015620002595788860151825594840194600190910190840162000238565b5085821015620002785787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b611f1880620002986000396000f3fe6080604052600436106101795760003560e01c8063715018a6116100cb578063aa46a4001161007f578063e985e9c511610059578063e985e9c514610437578063eac989f81461048d578063f2fde38b146104a257600080fd5b8063aa46a400146103a5578063b88d4fde146103f7578063c87b56dd1461041757600080fd5b806395d89b41116100b057806395d89b411461035b5780639890220b14610370578063a22cb4651461038557600080fd5b8063715018a61461031b5780638da5cb5b1461033057600080fd5b80631249c58b1161012d57806343d726d61161010757806343d726d6146102b85780636352211e146102cd57806370a08231146102ed57600080fd5b80631249c58b1461026357806323b872dd1461027857806342842e0e1461029857600080fd5b806306fdde031161015e57806306fdde03146101dc578063081812fc146101fe578063095ea7b31461024357600080fd5b806301ffc9a71461018557806302fe5305146101ba57600080fd5b3661018057005b600080fd5b34801561019157600080fd5b506101a56101a036600461196c565b6104c2565b60405190151581526020015b60405180910390f35b3480156101c657600080fd5b506101da6101d5366004611a53565b6105a7565b005b3480156101e857600080fd5b506101f16105bf565b6040516101b19190611b00565b34801561020a57600080fd5b5061021e610219366004611b13565b610651565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101b1565b34801561024f57600080fd5b506101da61025e366004611b55565b610685565b34801561026f57600080fd5b506101da6107e2565b34801561028457600080fd5b506101da610293366004611b7f565b6108c0565b3480156102a457600080fd5b506101da6102b3366004611b7f565b610947565b3480156102c457600080fd5b506101da610962565b3480156102d957600080fd5b5061021e6102e8366004611b13565b610994565b3480156102f957600080fd5b5061030d610308366004611bbb565b610a06565b6040519081526020016101b1565b34801561032757600080fd5b506101da610aba565b34801561033c57600080fd5b5060065473ffffffffffffffffffffffffffffffffffffffff1661021e565b34801561036757600080fd5b506101f1610acc565b34801561037c57600080fd5b506101da610adb565b34801561039157600080fd5b506101da6103a0366004611bd6565b610b2c565b3480156103b157600080fd5b506006546103de9074010000000000000000000000000000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016101b1565b34801561040357600080fd5b506101da610412366004611c12565b610b37565b34801561042357600080fd5b506101f1610432366004611b13565b610bc5565b34801561044357600080fd5b506101a5610452366004611c8e565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260056020908152604080832093909416825291909152205460ff1690565b34801561049957600080fd5b506101f1610ccb565b3480156104ae57600080fd5b506101da6104bd366004611bbb565b610d59565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd00000000000000000000000000000000000000000000000000000000148061055557507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b806105a157507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6105af610df3565b60076105bb8282611d62565b5050565b6060600080546105ce90611cc1565b80601f01602080910402602001604051908101604052809291908181526020018280546105fa90611cc1565b80156106475780601f1061061c57610100808354040283529160200191610647565b820191906000526020600020905b81548152906001019060200180831161062a57829003601f168201915b5050505050905090565b600061065c82610e5a565b5060009081526004602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b600061069082610994565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107385760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff8216148061076157506107618133610452565b6107d35760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000606482015260840161072f565b6107dd8383610ecb565b505050565b6006547c0100000000000000000000000000000000000000000000000000000000900460ff166108545760405162461bcd60e51b815260206004820152600860248201527f746f6f206c617465000000000000000000000000000000000000000000000000604482015260640161072f565b600680547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff8116740100000000000000000000000000000000000000009182900467ffffffffffffffff9081166001018116830291909117928390556108be923392900416610f6b565b565b6108ca3382610f85565b61093c5760405162461bcd60e51b815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f76656400000000000000000000000000000000000000606482015260840161072f565b6107dd838383611045565b6107dd83838360405180602001604052806000815250610b37565b61096a610df3565b600680547fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff169055565b60008181526002602052604081205473ffffffffffffffffffffffffffffffffffffffff16806105a15760405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e2049440000000000000000604482015260640161072f565b600073ffffffffffffffffffffffffffffffffffffffff8216610a915760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f74206120766160448201527f6c6964206f776e65720000000000000000000000000000000000000000000000606482015260840161072f565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205490565b610ac2610df3565b6108be60006112f2565b6060600180546105ce90611cc1565b610ae3610df3565b60065460405173ffffffffffffffffffffffffffffffffffffffff909116904780156108fc02916000818181858888f19350505050158015610b29573d6000803e3d6000fd5b50565b6105bb338383611369565b610b413383610f85565b610bb35760405162461bcd60e51b815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f76656400000000000000000000000000000000000000606482015260840161072f565b610bbf8484848461147c565b50505050565b60008181526002602052604090205460609073ffffffffffffffffffffffffffffffffffffffff16610c395760405162461bcd60e51b815260206004820152601160248201527f6e6f6e6578697374656e7420746f6b656e000000000000000000000000000000604482015260640161072f565b60078054610c4690611cc1565b80601f0160208091040260200160405190810160405280929190818152602001828054610c7290611cc1565b8015610cbf5780601f10610c9457610100808354040283529160200191610cbf565b820191906000526020600020905b815481529060010190602001808311610ca257829003601f168201915b50505050509050919050565b60078054610cd890611cc1565b80601f0160208091040260200160405190810160405280929190818152602001828054610d0490611cc1565b8015610d515780601f10610d2657610100808354040283529160200191610d51565b820191906000526020600020905b815481529060010190602001808311610d3457829003601f168201915b505050505081565b610d61610df3565b73ffffffffffffffffffffffffffffffffffffffff8116610dea5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161072f565b610b29816112f2565b60065473ffffffffffffffffffffffffffffffffffffffff1633146108be5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161072f565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff16610b295760405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e2049440000000000000000604482015260640161072f565b600081815260046020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091558190610f2582610994565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6105bb828260405180602001604052806000815250611505565b600080610f9183610994565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610fff575073ffffffffffffffffffffffffffffffffffffffff80821660009081526005602090815260408083209388168352929052205460ff165b8061103d57508373ffffffffffffffffffffffffffffffffffffffff1661102584610651565b73ffffffffffffffffffffffffffffffffffffffff16145b949350505050565b8273ffffffffffffffffffffffffffffffffffffffff1661106582610994565b73ffffffffffffffffffffffffffffffffffffffff16146110ee5760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015260840161072f565b73ffffffffffffffffffffffffffffffffffffffff82166111765760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161072f565b8273ffffffffffffffffffffffffffffffffffffffff1661119682610994565b73ffffffffffffffffffffffffffffffffffffffff161461121f5760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015260840161072f565b600081815260046020908152604080832080547fffffffffffffffffffffffff000000000000000000000000000000000000000090811690915573ffffffffffffffffffffffffffffffffffffffff8781168086526003855283862080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6006805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113e45760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015260640161072f565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526005602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b611487848484611045565b6114938484848461158e565b610bbf5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e7465720000000000000000000000000000606482015260840161072f565b61150f8383611767565b61151c600084848461158e565b6107dd5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e7465720000000000000000000000000000606482015260840161072f565b600073ffffffffffffffffffffffffffffffffffffffff84163b1561175c576040517f150b7a0200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063150b7a0290611605903390899088908890600401611e7c565b6020604051808303816000875af192505050801561165e575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261165b91810190611ec5565b60015b611711573d80801561168c576040519150601f19603f3d011682016040523d82523d6000602084013e611691565b606091505b5080516000036117095760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e7465720000000000000000000000000000606482015260840161072f565b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a020000000000000000000000000000000000000000000000000000000014905061103d565b506001949350505050565b73ffffffffffffffffffffffffffffffffffffffff82166117ca5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015260640161072f565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff161561183c5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161072f565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff16156118ae5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161072f565b73ffffffffffffffffffffffffffffffffffffffff8216600081815260036020908152604080832080546001019055848352600290915280822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114610b2957600080fd5b60006020828403121561197e57600080fd5b81356119898161193e565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600067ffffffffffffffff808411156119da576119da611990565b604051601f85017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715611a2057611a20611990565b81604052809350858152868686011115611a3957600080fd5b858560208301376000602087830101525050509392505050565b600060208284031215611a6557600080fd5b813567ffffffffffffffff811115611a7c57600080fd5b8201601f81018413611a8d57600080fd5b61103d848235602084016119bf565b6000815180845260005b81811015611ac257602081850181015186830182015201611aa6565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6020815260006119896020830184611a9c565b600060208284031215611b2557600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611b5057600080fd5b919050565b60008060408385031215611b6857600080fd5b611b7183611b2c565b946020939093013593505050565b600080600060608486031215611b9457600080fd5b611b9d84611b2c565b9250611bab60208501611b2c565b9150604084013590509250925092565b600060208284031215611bcd57600080fd5b61198982611b2c565b60008060408385031215611be957600080fd5b611bf283611b2c565b915060208301358015158114611c0757600080fd5b809150509250929050565b60008060008060808587031215611c2857600080fd5b611c3185611b2c565b9350611c3f60208601611b2c565b925060408501359150606085013567ffffffffffffffff811115611c6257600080fd5b8501601f81018713611c7357600080fd5b611c82878235602084016119bf565b91505092959194509250565b60008060408385031215611ca157600080fd5b611caa83611b2c565b9150611cb860208401611b2c565b90509250929050565b600181811c90821680611cd557607f821691505b602082108103611d0e577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f8211156107dd57600081815260208120601f850160051c81016020861015611d3b5750805b601f850160051c820191505b81811015611d5a57828155600101611d47565b505050505050565b815167ffffffffffffffff811115611d7c57611d7c611990565b611d9081611d8a8454611cc1565b84611d14565b602080601f831160018114611de35760008415611dad5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555611d5a565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015611e3057888601518255948401946001909101908401611e11565b5085821015611e6c57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525083604083015260806060830152611ebb6080830184611a9c565b9695505050505050565b600060208284031215611ed757600080fd5b81516119898161193e56fea2646970667358221220175237dbedff4baeb9ec629efeac3a0059439337d211cb51e81434285c86829d64736f6c63430008130033