60806040526000600260146101000a81548160ff0219169083151502179055506101c060405190810160405280603c63ffffffff1663ffffffff168152602001607863ffffffff1663ffffffff16815260200161012c63ffffffff1663ffffffff16815260200161025863ffffffff1663ffffffff16815260200161070863ffffffff1663ffffffff168152602001610e1063ffffffff1663ffffffff168152602001611c2063ffffffff1663ffffffff16815260200161384063ffffffff1663ffffffff16815260200161708063ffffffff1663ffffffff16815260200161e10063ffffffff1663ffffffff1681526020016201518063ffffffff1663ffffffff1681526020016202a30063ffffffff1663ffffffff1681526020016205460063ffffffff1663ffffffff16815260200162093a8063ffffffff1663ffffffff16815250600390600e62000156929190620007ec565b50600f60055566071afd498d0000600e553480156200017457600080fd5b506001600260146101000a81548160ff021916908315150217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200025360008060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000806200025a640100000000026401000000009004565b5062000940565b6000806200026762000896565b60008963ffffffff168a1415156200027e57600080fd5b8863ffffffff16891415156200029357600080fd5b8761ffff1688141515620002a657600080fd5b600288811515620002b357fe5b04925060008561ffff161115620002c8578492505b600d8361ffff161115620002db57600d92505b610100604051908101604052808881526020014267ffffffffffffffff168152602001600067ffffffffffffffff1681526020018b63ffffffff1681526020018a63ffffffff168152602001600063ffffffff1681526020018461ffff1681526020018961ffff1681525091506001600683908060018154018082558091505090600182039060005260206000209060020201600090919290919091506000820151816000015560208201518160010160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060408201518160010160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060608201518160010160106101000a81548163ffffffff021916908363ffffffff16021790555060808201518160010160146101000a81548163ffffffff021916908363ffffffff16021790555060a08201518160010160186101000a81548163ffffffff021916908363ffffffff16021790555060c082015181600101601c6101000a81548161ffff021916908361ffff16021790555060e082015181600101601e6101000a81548161ffff021916908361ffff16021790555050500390508063ffffffff1681141515620004b557600080fd5b7f4d7db65e2dd0f3057e79f9be02ea5a1934db7c87142029558cf44a26e3848d8d8682846060015163ffffffff16856080015163ffffffff1686600001518760c0015161ffff16886020015167ffffffffffffffff168960e0015161ffff16604051808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019850505050505050505060405180910390a1620005a360008783620005b3640100000000026401000000009004565b8093505050509695505050505050565b600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550816007600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415156200074857600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600190039190505550600a600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556009600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838383604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a1505050565b82600e600701600890048101928215620008835791602002820160005b838211156200084f57835183826101000a81548163ffffffff021916908363ffffffff160217905550926020019260040160208160030104928301926001030262000809565b8015620008815782816101000a81549063ffffffff02191690556004016020816003010492830192600103026200084f565b505b5090506200089291906200090a565b5090565b6101006040519081016040528060008152602001600067ffffffffffffffff168152602001600067ffffffffffffffff168152602001600063ffffffff168152602001600063ffffffff168152602001600063ffffffff168152602001600061ffff168152602001600061ffff1681525090565b6200093d91905b808211156200093957600081816101000a81549063ffffffff02191690555060010162000911565b5090565b90565b61556680620009506000396000f3006080604052600436106102bf576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806301ffc9a7146103755780630519ce79146103d95780630560ff441461043057806305e45546146104ee57806306fdde0314610519578063095ea7b3146105a95780630a0f8168146105f65780630e583df01461064d57806314001f4c1461067857806318160ddd146106bb5780631940a936146106e657806319c2f2011461072b57806321717ebf1461075657806323b872dd146107ad57806324e7a38a1461081a57806327d7874c1461085d5780632ba73c15146108a05780633369c33d146108e357806333cee4ce1461090e57806334a742381461094f5780633d7d3f5a146109b45780633f4ba83a146109ff57806346116e6f14610a1657806346d22c7014610a835780634ad8c93814610ad25780634b85fd5514610b1d5780634dfff04f14610b4a5780634e0a337914610b975780635663896e14610bda5780635c975abb14610c075780635fd8c71014610c365780636352211e14610c4d578063680eba2714610cba5780636af04a5714610ce55780636fbde40d14610d3c57806370a0823114610d7f5780637158798814610dd65780637a7d493714610e195780637c62e2a414610e445780638456cb5914610ecc5780638462151c14610ee357806388c2a0bf14610f7b5780638a83603114610fbc57806391876e571461102957806395d89b41146110405780639d6fac6f146110d0578063a9059cbb1461111d578063b047fb501461116a578063b0c35c05146111c1578063bc4006f5146111ec578063d3e6f49f14611243578063d83970a114611288578063defb9584146112f5578063e17b25af14611320578063e6cbe35114611363578063ed60ade6146113ba578063f1ca9410146113e4578063f2b47d521461140f578063f7d8c88314611466575b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806103685750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561037357600080fd5b005b34801561038157600080fd5b506103bf60048036038101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050611490565b604051808215151515815260200191505060405180910390f35b3480156103e557600080fd5b506103ee6117a1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561043c57600080fd5b50610473600480360381019080803590602001909291908035906020019082018035906020019190919293919293905050506117c7565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104b3578082015181840152602081019050610498565b50505050905090810190601f1680156104e05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156104fa57600080fd5b50610503611950565b6040518082815260200191505060405180910390f35b34801561052557600080fd5b5061052e611956565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561056e578082015181840152602081019050610553565b50505050905090810190601f16801561059b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105b557600080fd5b506105f4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061198f565b005b34801561060257600080fd5b5061060b611a6d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561065957600080fd5b50610662611a92565b6040518082815260200191505060405180910390f35b34801561068457600080fd5b506106b9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a9e565b005b3480156106c757600080fd5b506106d0611bed565b6040518082815260200191505060405180910390f35b3480156106f257600080fd5b5061071160048036038101908080359060200190929190505050611bfd565b604051808215151515815260200191505060405180910390f35b34801561073757600080fd5b50610740611c4f565b6040518082815260200191505060405180910390f35b34801561076257600080fd5b5061076b611c56565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107b957600080fd5b50610818600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611c7c565b005b34801561082657600080fd5b5061085b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d49565b005b34801561086957600080fd5b5061089e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e98565b005b3480156108ac57600080fd5b506108e1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f72565b005b3480156108ef57600080fd5b506108f861204d565b6040518082815260200191505060405180910390f35b34801561091a57600080fd5b5061094d600480360381019080803590602001909291908035906020019092919080359060200190929190505050612053565b005b34801561095b57600080fd5b506109b260048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803561ffff169060200190929190505050612234565b005b3480156109c057600080fd5b506109fd6004803603810190808035906020019092919080359060200190929190803590602001909291908035906020019092919050505061232b565b005b348015610a0b57600080fd5b50610a14612498565b005b348015610a2257600080fd5b50610a416004803603810190808035906020019092919050505061268f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a8f57600080fd5b50610ab860048036038101908080359060200190929190803590602001909291905050506126c2565b604051808215151515815260200191505060405180910390f35b348015610ade57600080fd5b50610b1b6004803603810190808035906020019092919080359060200190929190803590602001909291908035906020019092919050505061274a565b005b348015610b2957600080fd5b50610b48600480360381019080803590602001909291905050506128b6565b005b348015610b5657600080fd5b50610b95600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061291c565b005b348015610ba357600080fd5b50610bd8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506129a3565b005b348015610be657600080fd5b50610c0560048036038101908080359060200190929190505050612a7e565b005b348015610c1357600080fd5b50610c1c612bd2565b604051808215151515815260200191505060405180910390f35b348015610c4257600080fd5b50610c4b612be5565b005b348015610c5957600080fd5b50610c7860048036038101908080359060200190929190505050612cd1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610cc657600080fd5b50610ccf612d4a565b6040518082815260200191505060405180910390f35b348015610cf157600080fd5b50610cfa612d50565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610d4857600080fd5b50610d7d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612d76565b005b348015610d8b57600080fd5b50610dc0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612ec5565b6040518082815260200191505060405180910390f35b348015610de257600080fd5b50610e17600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612f0e565b005b348015610e2557600080fd5b50610e2e61302b565b6040518082815260200191505060405180910390f35b348015610e5057600080fd5b50610e6f60048036038101908080359060200190929190505050613031565b604051808b1515151581526020018a1515151581526020018981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019a505050505050505050505060405180910390f35b348015610ed857600080fd5b50610ee1613192565b005b348015610eef57600080fd5b50610f24600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506132d6565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610f67578082015181840152602081019050610f4c565b505050509050019250505060405180910390f35b348015610f8757600080fd5b50610fa660048036038101908080359060200190929190505050613423565b6040518082815260200191505060405180910390f35b348015610fc857600080fd5b50610fe760048036038101908080359060200190929190505050613824565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561103557600080fd5b5061103e613857565b005b34801561104c57600080fd5b50611055613aa0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561109557808201518184015260208101905061107a565b50505050905090810190601f1680156110c25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156110dc57600080fd5b506110fb60048036038101908080359060200190929190505050613ad9565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b34801561112957600080fd5b50611168600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613b08565b005b34801561117657600080fd5b5061117f613c79565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156111cd57600080fd5b506111d6613c9f565b6040518082815260200191505060405180910390f35b3480156111f857600080fd5b50611201613ca5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561124f57600080fd5b5061126e60048036038101908080359060200190929190505050613ccb565b604051808215151515815260200191505060405180910390f35b34801561129457600080fd5b506112b360048036038101908080359060200190929190505050613e3a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561130157600080fd5b5061130a613e6d565b6040518082815260200191505060405180910390f35b34801561132c57600080fd5b50611361600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613e73565b005b34801561136f57600080fd5b50611378613f12565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6113e26004803603810190808035906020019092919080359060200190929190505050613f38565b005b3480156113f057600080fd5b506113f961413e565b6040518082815260200191505060405180910390f35b34801561141b57600080fd5b50611424614144565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61148e600480360381019080803590602001909291908035906020019092919050505061416a565b005b600060405180807f737570706f727473496e74657266616365286279746573342900000000000000815250601901905060405180910390207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061179a575060405180807f746f6b656e4d657461646174612875696e743235362c737472696e6729000000815250601d019050604051809103902060405180807f746f6b656e734f664f776e6572286164647265737329000000000000000000008152506016019050604051809103902060405180807f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81526020017f74323536290000000000000000000000000000000000000000000000000000008152506025019050604051809103902060405180807f7472616e7366657228616464726573732c75696e7432353629000000000000008152506019019050604051809103902060405180807f617070726f766528616464726573732c75696e743235362900000000000000008152506018019050604051809103902060405180807f6f776e65724f662875696e7432353629000000000000000000000000000000008152506010019050604051809103902060405180807f62616c616e63654f6628616464726573732900000000000000000000000000008152506012019050604051809103902060405180807f746f74616c537570706c79282900000000000000000000000000000000000000815250600d019050604051809103902060405180807f73796d626f6c28290000000000000000000000000000000000000000000000008152506008019050604051809103902060405180807f6e616d6528290000000000000000000000000000000000000000000000000000815250600601905060405180910390201818181818181818187bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606117d16154a3565b60008073ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561183057600080fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cb4799f28787876040518463ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180848152602001806020018281038252848482818152602001925080828437820191505094505050505060a060405180830381600087803b1580156118e357600080fd5b505af11580156118f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525060a081101561191c57600080fd5b8101908091908260800180519060200190929190505050809250819350505061194582826144ab565b925050509392505050565b60115481565b6040805190810160405280600681526020017f4554446f6773000000000000000000000000000000000000000000000000000081525081565b600260149054906101000a900460ff161515156119ab57600080fd5b6119b53382614507565b15156119c057600080fd5b6119ca8183614573565b7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925338383604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a15050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b67027f7d0bdb92000081565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611afb57600080fd5b8190508073ffffffffffffffffffffffffffffffffffffffff166376190f8f6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611b6257600080fd5b505af1158015611b76573d6000803e3d6000fd5b505050506040513d6020811015611b8c57600080fd5b81019080805190602001909291905050501515611ba857600080fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000600160068054905003905090565b60008082111515611c0d57600080fd5b6000600683815481101515611c1e57fe5b906000526020600020906002020160010160189054906101000a900463ffffffff1663ffffffff1614159050919050565b6201518081565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260149054906101000a900460ff16151515611c9857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611cd457600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611d0f57600080fd5b611d1933826145c9565b1515611d2457600080fd5b611d2e8382614507565b1515611d3957600080fd5b611d44838383614635565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611da657600080fd5b8190508073ffffffffffffffffffffffffffffffffffffffff166354c15b826040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611e0d57600080fd5b505af1158015611e21573d6000803e3d6000fd5b505050506040513d6020811015611e3757600080fd5b81019080805190602001909291905050501515611e5357600080fd5b80601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ef357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611f2f57600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611fcd57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561200957600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600f5481565b600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156120b257600080fd5b6136b06012541015156120c457600080fd5b6120d560008060008830600061486d565b915061210382600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16614573565b60009050600084111561211857839050612123565b612120614bac565b90505b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166327ebe40a83838662015180306040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808681526020018581526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200195505050505050600060405180830381600087803b15801561220357600080fd5b505af1158015612217573d6000803e3d6000fd5b505050506012600081548092919060010191905055505050505050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561229257600080fd5b839050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156122f057600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b61177060115410151561230257600080fd5b6011600081548092919060010191905055506123236000808588858761486d565b505050505050565b600260149054906101000a900460ff1615151561234757600080fd5b6123513385614507565b151561235c57600080fd5b61236584611bfd565b15151561237157600080fd5b61239d84600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16614573565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166327ebe40a85858585336040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808681526020018581526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200195505050505050600060405180830381600087803b15801561247a57600080fd5b505af115801561248e573d6000803e3d6000fd5b5050505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156124f357600080fd5b600260149054906101000a900460ff16151561250e57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561256c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156125ca57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561262857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561268557600080fd5b61268d614cc9565b565b600a6020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600080851115156126d557600080fd5b6000841115156126e457600080fd5b6006858154811015156126f357fe5b9060005260206000209060020201915060068481548110151561271257fe5b9060005260206000209060020201905061272e82868387614d5c565b8015612740575061273f8486614f71565b5b9250505092915050565b600260149054906101000a900460ff1615151561276657600080fd5b6127703385614507565b151561277b57600080fd5b61278484613ccb565b151561278f57600080fd5b6127bb84600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16614573565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166327ebe40a85858585336040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808681526020018581526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200195505050505050600060405180830381600087803b15801561289857600080fd5b505af11580156128ac573d6000803e3d6000fd5b5050505050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561291257600080fd5b80600e8190555050565b600260149054906101000a900460ff1615151561293857600080fd5b6129423382614507565b151561294d57600080fd5b81600a600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156129fe57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612a3a57600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612b2657506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80612b7e5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515612b8957600080fd5b60036000600e81101515612b9957fe5b600891828204019190066004029054906101000a900463ffffffff1663ffffffff1681101515612bc857600080fd5b8060058190555050565b600260149054906101000a900460ff1681565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612c4457600080fd5b3073ffffffffffffffffffffffffffffffffffffffff16319150600e546001600f540102905080821115612ccd57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8284039081150290604051600060405180830381858888f19350505050505b5050565b60006007600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612d4557600080fd5b919050565b6136b081565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612dd357600080fd5b8190508073ffffffffffffffffffffffffffffffffffffffff166385b861886040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612e3a57600080fd5b505af1158015612e4e573d6000803e3d6000fd5b505050506040513d6020811015612e6457600080fd5b81019080805190602001909291905050501515612e8057600080fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612f6957600080fd5b600260149054906101000a900460ff161515612f8457600080fd5b80601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f450db8da6efbe9c22f2347f7c2021231df1fc58d3ae9a2fa75d39fa44619930581604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b60055481565b600080600080600080600080600080600060068c81548110151561305157fe5b9060005260206000209060020201905060008160010160189054906101000a900463ffffffff1663ffffffff1614159a50438160010160089054906101000a900467ffffffffffffffff1667ffffffffffffffff161115995080600101601c9054906101000a900461ffff1661ffff1698508060010160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1697508060010160189054906101000a900463ffffffff1663ffffffff1696508060010160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1695508060010160109054906101000a900463ffffffff1663ffffffff1694508060010160149054906101000a900463ffffffff1663ffffffff16935080600101601e9054906101000a900461ffff1661ffff16925080600001549150509193959799509193959799565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061323a57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806132925750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561329d57600080fd5b600260149054906101000a900460ff161515156132b957600080fd5b6001600260146101000a81548160ff021916908315150217905550565b60606000606060008060006132ea87612ec5565b9450600085141561332d5760006040519080825280602002602001820160405280156133255781602001602082028038833980820191505090505b509550613419565b8460405190808252806020026020018201604052801561335c5781602001602082028038833980820191505090505b509350613367611bed565b925060009150600190505b8281111515613415578673ffffffffffffffffffffffffffffffffffffffff166007600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415613408578084838151811015156133f157fe5b906020019060200201818152505081806001019250505b8080600101915050613372565b8395505b5050505050919050565b600080600080600080600080600260149054906101000a900460ff1615151561344b57600080fd5b60068981548110151561345a57fe5b9060005260206000209060020201965060008760010160009054906101000a900467ffffffffffffffff1667ffffffffffffffff161415151561349c57600080fd5b6135d2876101006040519081016040529081600082015481526020016001820160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016001820160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016001820160109054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016001820160149054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016001820160189054906101000a900463ffffffff1663ffffffff1663ffffffff16815260200160018201601c9054906101000a900461ffff1661ffff1661ffff16815260200160018201601e9054906101000a900461ffff1661ffff1661ffff1681525050615084565b15156135dd57600080fd5b8660010160189054906101000a900463ffffffff1663ffffffff16955060068681548110151561360957fe5b9060005260206000209060020201945086600101601e9054906101000a900461ffff16935086600101601e9054906101000a900461ffff1661ffff1685600101601e9054906101000a900461ffff1661ffff1611156136785784600101601e9054906101000a900461ffff1693505b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630d9f5aed8860000154876000015460018b60010160089054906101000a900467ffffffffffffffff16036040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808481526020018381526020018267ffffffffffffffff1681526020019350505050602060405180830381600087803b15801561374657600080fd5b505af115801561375a573d6000803e3d6000fd5b505050506040513d602081101561377057600080fd5b81019080805190602001909291905050509250600760008a815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691506137e9898860010160189054906101000a900463ffffffff1663ffffffff166001870161ffff168686600061486d565b90508660010160186101000a81549063ffffffff0219169055600f600081548092919060019003919050555080975050505050505050919050565b60076020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806138ff57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806139575750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561396257600080fd5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635fd8c7106040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b1580156139e857600080fd5b505af11580156139fc573d6000803e3d6000fd5b50505050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635fd8c7106040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b158015613a8657600080fd5b505af1158015613a9a573d6000803e3d6000fd5b50505050565b6040805190810160405280600281526020017f455400000000000000000000000000000000000000000000000000000000000081525081565b600381600e81101515613ae857fe5b60089182820401919006600402915054906101000a900463ffffffff1681565b600260149054906101000a900460ff16151515613b2457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515613b6057600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515613b9b57600080fd5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515613bf857600080fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515613c5557600080fd5b613c5f3382614507565b1515613c6a57600080fd5b613c75338383614635565b5050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600083111515613cdd57600080fd5b600683815481101515613cec57fe5b90600052602060002090600202019050613e32816101006040519081016040529081600082015481526020016001820160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016001820160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016001820160109054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016001820160149054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016001820160189054906101000a900463ffffffff1663ffffffff1663ffffffff16815260200160018201601c9054906101000a900461ffff1661ffff1661ffff16815260200160018201601e9054906101000a900461ffff1661ffff1661ffff16815250506150bf565b915050919050565b60096020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61177081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613ece57600080fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600260149054906101000a900460ff16151515613f5657600080fd5b613f603383614507565b1515613f6b57600080fd5b613f7482613ccb565b1515613f7f57600080fd5b613f8982846150f9565b1515613f9457600080fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c55d0f56846040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b15801561402557600080fd5b505af1158015614039573d6000803e3d6000fd5b505050506040513d602081101561404f57600080fd5b81019080805190602001909291905050509050600e548101341015151561407557600080fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663454a2ab3600e543403856040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808281526020019150506000604051808303818588803b15801561410a57600080fd5b505af115801561411e573d6000803e3d6000fd5b50505050506141398263ffffffff168463ffffffff16615152565b505050565b60125481565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600260149054906101000a900460ff1615151561418957600080fd5b600e54341015151561419a57600080fd5b6141a43385614507565b15156141af57600080fd5b6141b98385614f71565b15156141c457600080fd5b6006848154811015156141d357fe5b90600052602060002090600202019150614319826101006040519081016040529081600082015481526020016001820160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016001820160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016001820160109054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016001820160149054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016001820160189054906101000a900463ffffffff1663ffffffff1663ffffffff16815260200160018201601c9054906101000a900461ffff1661ffff1661ffff16815260200160018201601e9054906101000a900461ffff1661ffff1661ffff16815250506150bf565b151561432457600080fd5b60068381548110151561433357fe5b90600052602060002090600202019050614479816101006040519081016040529081600082015481526020016001820160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016001820160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016001820160109054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016001820160149054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016001820160189054906101000a900463ffffffff1663ffffffff1663ffffffff16815260200160018201601c9054906101000a900461ffff1661ffff1661ffff16815260200160018201601e9054906101000a900461ffff1661ffff1661ffff16815250506150bf565b151561448457600080fd5b61449082858386614d5c565b151561449b57600080fd5b6144a58484615152565b50505050565b606080600080846040519080825280601f01601f1916602001820160405280156144e45781602001602082028038833980820191505090505b5092506020830191508590506144fb828287615382565b82935050505092915050565b60008273ffffffffffffffffffffffffffffffffffffffff166007600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905092915050565b806009600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60008273ffffffffffffffffffffffffffffffffffffffff166009600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905092915050565b600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550816007600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415156147c957600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600190039190505550600a600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556009600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838383604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a1505050565b6000806148786154c6565b60008963ffffffff168a14151561488e57600080fd5b8863ffffffff16891415156148a257600080fd5b8761ffff16881415156148b457600080fd5b6002888115156148c057fe5b04925060008561ffff1611156148d4578492505b600d8361ffff1611156148e657600d92505b610100604051908101604052808881526020014267ffffffffffffffff168152602001600067ffffffffffffffff1681526020018b63ffffffff1681526020018a63ffffffff168152602001600063ffffffff1681526020018461ffff1681526020018961ffff1681525091506001600683908060018154018082558091505090600182039060005260206000209060020201600090919290919091506000820151816000015560208201518160010160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060408201518160010160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060608201518160010160106101000a81548163ffffffff021916908363ffffffff16021790555060808201518160010160146101000a81548163ffffffff021916908363ffffffff16021790555060a08201518160010160186101000a81548163ffffffff021916908363ffffffff16021790555060c082015181600101601c6101000a81548161ffff021916908361ffff16021790555060e082015181600101601e6101000a81548161ffff021916908361ffff16021790555050500390508063ffffffff1681141515614abf57600080fd5b7f4d7db65e2dd0f3057e79f9be02ea5a1934db7c87142029558cf44a26e3848d8d8682846060015163ffffffff16856080015163ffffffff1686600001518760c0015161ffff16886020015167ffffffffffffffff168960e0015161ffff16604051808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019850505050505050505060405180910390a1614b9c60008783614635565b8093505050509695505050505050565b6000806000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663eac9d94c6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015614c3757600080fd5b505af1158015614c4b573d6000803e3d6000fd5b505050506040513d6020811015614c6157600080fd5b81019080805190602001909291905050509150816fffffffffffffffffffffffffffffffff1682141515614c9457600080fd5b600282811515614ca057fe5b048201905067027f7d0bdb920000811015614cc15767027f7d0bdb92000090505b809250505090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515614d2457600080fd5b600260149054906101000a900460ff161515614d3f57600080fd5b6000600260146101000a81548160ff021916908315150217905550565b600081841415614d6f5760009050614f69565b818560010160109054906101000a900463ffffffff1663ffffffff161480614db05750818560010160149054906101000a900463ffffffff1663ffffffff16145b15614dbe5760009050614f69565b838360010160109054906101000a900463ffffffff1663ffffffff161480614dff5750838360010160149054906101000a900463ffffffff1663ffffffff16145b15614e0d5760009050614f69565b60008360010160109054906101000a900463ffffffff1663ffffffff161480614e50575060008560010160109054906101000a900463ffffffff1663ffffffff16145b15614e5e5760019050614f69565b8460010160109054906101000a900463ffffffff1663ffffffff168360010160109054906101000a900463ffffffff1663ffffffff161480614ed357508460010160149054906101000a900463ffffffff1663ffffffff168360010160109054906101000a900463ffffffff1663ffffffff16145b15614ee15760009050614f69565b8460010160109054906101000a900463ffffffff1663ffffffff168360010160149054906101000a900463ffffffff1663ffffffff161480614f5657508460010160149054906101000a900463ffffffff1663ffffffff168360010160149054906101000a900463ffffffff1663ffffffff16145b15614f645760009050614f69565b600190505b949350505050565b60008060006007600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691506007600086815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148061507a57508173ffffffffffffffffffffffffffffffffffffffff16600a600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b9250505092915050565b6000808260a0015163ffffffff16141580156150b857504367ffffffffffffffff16826040015167ffffffffffffffff1611155b9050919050565b6000808260a0015163ffffffff161480156150f257504367ffffffffffffffff16826040015167ffffffffffffffff1611155b9050919050565b600080600060068581548110151561510d57fe5b9060005260206000209060020201915060068481548110151561512c57fe5b9060005260206000209060020201905061514882868387614d5c565b9250505092915050565b60008060068381548110151561516457fe5b9060005260206000209060020201915060068481548110151561518357fe5b90600052602060002090600202019050828160010160186101000a81548163ffffffff021916908363ffffffff1602179055506151bf826153cd565b6151c8816153cd565b600a600085815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600a600084815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600f600081548092919060010191905055507f1ee9be14ee585b164bf130cf7a98acb8ec21d44ae3cf64cd149aee4dcc5923216007600086815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685858460010160089054906101000a900467ffffffffffffffff168660010160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1686600101601c9054906101000a900461ffff1661ffff1688600101601c9054906101000a900461ffff1661ffff16604051808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018781526020018681526020018567ffffffffffffffff16815260200184815260200183815260200182815260200197505050505050505060405180910390a150505050565b60005b6020821015156153aa5782518452602084019350602083019250602082039150615385565b6001826020036101000a0390508019835116818551168181178652505050505050565b43600554600383600101601c9054906101000a900461ffff1661ffff16600e811015156153f657fe5b600891828204019190066004029054906101000a900463ffffffff1663ffffffff1681151561542157fe5b04018160010160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550600d81600101601c9054906101000a900461ffff1661ffff1610156154a057600181600101601c8282829054906101000a900461ffff160192506101000a81548161ffff021916908361ffff1602179055505b50565b608060405190810160405280600490602082028038833980820191505090505090565b6101006040519081016040528060008152602001600067ffffffffffffffff168152602001600067ffffffffffffffff168152602001600063ffffffff168152602001600063ffffffff168152602001600063ffffffff168152602001600061ffff168152602001600061ffff16815250905600a165627a7a723058200d11b70658dae0d8ef76980a6f7190cfc8827e71fac7082df1ec2edd0f07aca30029