0x60806040526658d15e1762800060005534801561001b57600080fd5b50336000908152600b60205260408120805460ff1990811660019081179092557383c0efc6d8b16d87bfe1335ab6bcab3ed39602859092527f29ce3759bbf95975730c743e71f2f896f90c19c0e38fbe9dcdbc5ea23420991080549092161790556123fe8061008b6000396000f3006080604052600436106101695763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630c6940ea811461016e57806310f01eba14610185578063180603eb146101b85780632614195f146101cd5780632660316e146101e257806327249e61146102115780632e19ebdc146102325780633ddd46981461024a5780633fda926e146102a65780634b2271761461030d5780634d0d35ff14610322578063685ffd83146103565780636c52660d146103a9578063745ea0c11461040257806381c5b2061461043c57806382e37b2c14610454578063921dec211461046c578063a448ed4b146104bf578063aa4d490b146104da578063b9291296146104fd578063b9eca0c814610556578063c0942dfd1461056b578063c320c7271461058a578063d5241279146105a2578063dbbcaa97146105ba578063de7874f3146105db578063e3c08adf14610623578063e56556a91461063b575b600080fd5b34801561017a57600080fd5b5061018361065c565b005b34801561019157600080fd5b506101a6600160a060020a036004351661088c565b60408051918252519081900360200190f35b3480156101c457600080fd5b506101a661089e565b3480156101d957600080fd5b506101a66108a4565b3480156101ee57600080fd5b506101fd6004356024356108aa565b604080519115158252519081900360200190f35b34801561021d57600080fd5b506101a6600160a060020a03600435166108ca565b34801561023e57600080fd5b506101a66004356108dc565b6040805160206004803580820135601f810184900484028501840190955284845261018394369492936024939284019190819084018382808284375094975050600160a060020a038535169550505050506020013515156108ee565b3480156102b257600080fd5b5060408051602060046024803582810135601f8101859004850286018501909652858552610183958335600160a060020a0316953695604494919390910191908190840183828082843750949750610a199650505050505050565b34801561031957600080fd5b506101a6610e74565b34801561032e57600080fd5b5061033a600435610e7a565b60408051600160a060020a039092168252519081900360200190f35b6040805160206004803580820135601f8101849004840285018401909552848452610183943694929360249392840191908190840183828082843750949750508435955050505050602001351515610e98565b3480156103b557600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526101fd943694929360249392840191908190840183828082843750949750610f999650505050505050565b610421600160a060020a03600435166024356044356064351515610fd1565b60408051921515835260208301919091528051918290030190f35b34801561044857600080fd5b506101836004356110e5565b34801561046057600080fd5b506101a660043561137c565b6040805160206004803580820135601f8101849004840285018401909552848452610183943694929360249392840191908190840183828082843750949750508435955050505050602001351515611391565b3480156104cb57600080fd5b506101a6600435602435611498565b610421600160a060020a03600435811690602435906044351660643515156114b5565b34801561050957600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526101839436949293602493928401919081908401838280828437509497506115d89650505050505050565b34801561056257600080fd5b506101a661168d565b610421600160a060020a03600435166024356044356064351515611693565b34801561059657600080fd5b5061018360043561179f565b3480156105ae57600080fd5b5061033a6004356117c2565b3480156105c657600080fd5b506101a6600160a060020a03600435166117dd565b3480156105e757600080fd5b506105f36004356117ef565b60408051600160a060020a0390951685526020850193909352838301919091526060830152519081900360800190f35b34801561062f57600080fd5b506101a6600435611820565b34801561064757600080fd5b506101a6600160a060020a0360043516611835565b600080808080808033321461067057600080fd5b336000818152600660205260409020549097509550851515610702576040805160e560020a62461bcd02815260206004820152602e60248201527f6865792074686572652062756464792c20796f7520646f6e74206576656e206860448201527f61766520616e206163636f756e74000000000000000000000000000000000000606482015290519081900360840190fd5b6000868152600860205260409020600281015460038201546001928301549197509550935091505b60045482116108835760008281526001602052604080822054815160e060020a6349cc635d028152600481018a9052600160a060020a038b8116602483015260448201889052606482018a9052925192909116926349cc635d9260848084019382900301818387803b15801561079f57600080fd5b505af11580156107b3573d6000803e3d6000fd5b505050506001841115610878575060015b83811161087857600082815260016020908152604080832054898452600a83528184208585529092528083205481517f8f7140ea000000000000000000000000000000000000000000000000000000008152600481018b905260248101919091529051600160a060020a0390921692638f7140ea9260448084019382900301818387803b15801561085457600080fd5b505af1158015610868573d6000803e3d6000fd5b5050600190920191506107c49050565b60019091019061072a565b50505050505050565b60066020526000908152604090205481565b60005481565b60005490565b600960209081526000928352604080842090915290825290205460ff1681565b60026020526000908152604090205481565b60076020526000908152604090205481565b60008080808033321461090057600080fd5b60005434101561095c576040805160e560020a62461bcd028152602060048201526026602482015260008051602061239383398151915260448201526000805160206123b3833981519152606482015290519081900360840190fd5b61096588611876565b945033935061097384612089565b600160a060020a038086166000908152600660205260409020549194509092508716158015906109b5575083600160a060020a031687600160a060020a031614155b15610a015750600160a060020a0386166000908152600660209081526040808320548484526008909252909120600201548114610a015760008281526008602052604090206002018190555b610a0f82858388878b61210b565b5050505050505050565b336000908152600b602052604081205460ff161515610a3757600080fd5b600160a060020a03831660009081526003602052604090205415610acb576040805160e560020a62461bcd02815260206004820152602860248201527f646572702c20746861742067616d657320616c7265616479206265656e20726560448201527f6769737465726564000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600480546001019055610add82611876565b60048054600160a060020a0380871660008181526003602090815260408083209590955560028152848220879055855482526001808252858320805473ffffffffffffffffffffffffffffffffffffffff1916909417909355855482528482205483835260089091527fad67d757c34507f157cacfa2e3153e9f260a2244f30428821be7be64587ac55f547fad67d757c34507f157cacfa2e3153e9f260a2244f30428821be7be64587ac56054865160e060020a6349cc635d0281529788019490945284166024870152604486019290925260648501819052925194955016926349cc635d92608480820193929182900301818387803b158015610be057600080fd5b505af1158015610bf4573d6000803e3d6000fd5b505060048054600090815260016020908152604080832054600280855260089093527f6add646517a5b0f6793cd5891b7937d28a5b2981a5d88ebc7cd776088fea9041547f6add646517a5b0f6793cd5891b7937d28a5b2981a5d88ebc7cd776088fea904254835160e060020a6349cc635d02815296870194909452600160a060020a0390811660248701526044860193909352606485018490529051911694506349cc635d935060848084019382900301818387803b158015610cb757600080fd5b505af1158015610ccb573d6000803e3d6000fd5b505060048054600090815260016020908152604080832054600380855260089093527f625b35f5e76f098dd7c3a05b10e2e5e78a4a01228d60c3b143426cdf36d26455547f625b35f5e76f098dd7c3a05b10e2e5e78a4a01228d60c3b143426cdf36d2645654835160e060020a6349cc635d02815296870194909452600160a060020a0390811660248701526044860193909352606485018490529051911694506349cc635d935060848084019382900301818387803b158015610d8e57600080fd5b505af1158015610da2573d6000803e3d6000fd5b50506004805460009081526001602090815260408083205484845260089092527f9321edea6e3be4df59a344b401fab4f888b556fda1f954244cff9204bad624b8547f9321edea6e3be4df59a344b401fab4f888b556fda1f954244cff9204bad624b954825160e060020a6349cc635d02815280870196909652600160a060020a0391821660248701526044860152606485018490529051911694506349cc635d935060848084019382900301818387803b158015610e6057600080fd5b505af1158015610883573d6000803e3d6000fd5b60055481565b600081815260086020526040902054600160a060020a03165b919050565b600080808080333214610eaa57600080fd5b600054341015610f06576040805160e560020a62461bcd028152602060048201526026602482015260008051602061239383398151915260448201526000805160206123b3833981519152606482015290519081900360840190fd5b610f0f88611876565b9450339350610f1d84612089565b600160a060020a03851660009081526006602052604090205490935091508615801590610f4a5750868514155b15610a0157506000868152600760209081526040808320548484526008909252909120600201548114610a01576000828152600860205260409020600201819055610a0f82858388878b61210b565b600080610fa583611876565b6000818152600760205260409020549091501515610fc65760019150610fcb565b600091505b50919050565b3360009081526003602052604081205481908190819081901515610ff457600080fd5b600054341015611050576040805160e560020a62461bcd028152602060048201526026602482015260008051602061239383398151915260448201526000805160206123b3833981519152606482015290519081900360840190fd5b61105989612089565b600160a060020a038a16600090815260066020526040902054909350915086158015906110865750868814155b156110c8575060008681526007602090815260408083205484845260089092529091206002015481146110c85760008281526008602052604090206002018190555b6110d6828a838b878b61210b565b91989197509095505050505050565b60008080803332146110f657600080fd5b600454851115611176576040805160e560020a62461bcd02815260206004820152602960248201527f73696c6c7920706c617965722c20746861742067616d6520646f65736e27742060448201527f6578697374207965740000000000000000000000000000000000000000000000606482015290519081900360840190fd5b336000818152600660205260409020549094509250821515611208576040805160e560020a62461bcd02815260206004820152602e60248201527f6865792074686572652062756464792c20796f7520646f6e74206576656e206860448201527f61766520616e206163636f756e74000000000000000000000000000000000000606482015290519081900360840190fd5b600083815260086020818152604080842060038101548a86526001808552838720548a88529590945292810154600290910154825160e060020a6349cc635d028152600481018a9052600160a060020a038b81166024830152604482019390935260648101919091529151929650909216926349cc635d926084808201939182900301818387803b15801561129c57600080fd5b505af11580156112b0573d6000803e3d6000fd5b505050506001821115611375575060015b81811161137557600085815260016020908152604080832054868452600a83528184208585529092528083205481517f8f7140ea0000000000000000000000000000000000000000000000000000000081526004810188905260248101919091529051600160a060020a0390921692638f7140ea9260448084019382900301818387803b15801561135157600080fd5b505af1158015611365573d6000803e3d6000fd5b5050600190920191506112c19050565b5050505050565b60009081526008602052604090206001015490565b60008080803332146113a257600080fd5b6000543410156113fe576040805160e560020a62461bcd028152602060048201526026602482015260008051602061239383398151915260448201526000805160206123b3833981519152606482015290519081900360840190fd5b61140787611876565b935033925061141583612089565b600160a060020a0384166000908152600660205260409020549092509050851580159061145357506000818152600860205260409020600201548614155b801561145f5750808614155b1561147d57600081815260086020526040902060020186905561148a565b8086141561148a57600095505b61088381848887868a61210b565b600a60209081526000928352604080842090915290825290205481565b33600090815260036020526040812054819081908190819015156114d857600080fd5b600054341015611534576040805160e560020a62461bcd028152602060048201526026602482015260008051602061239383398151915260448201526000805160206123b3833981519152606482015290519081900360840190fd5b61153d89612089565b600160a060020a03808b1660009081526006602052604090205491945090925087161580159061157f575088600160a060020a031687600160a060020a031614155b156110c85750600160a060020a03861660009081526006602090815260408083205484845260089092529091206002015481146110c85760008281526008602052604090206002018190556110d6828a838b878b61210b565b6000803332146115e757600080fd5b6115f083611876565b336000908152600660209081526040808320548084526009835281842085855290925290912054919350915060ff161515600114611678576040805160e560020a62461bcd02815260206004820152601f60248201527f756d6d2e2e2e207468617473206e6f742061206e616d6520796f75206f776e00604482015290519081900360640190fd5b60009081526008602052604090206001015550565b60045481565b33600090815260036020526040812054819081908190819015156116b657600080fd5b600054341015611712576040805160e560020a62461bcd028152602060048201526026602482015260008051602061239383398151915260448201526000805160206123b3833981519152606482015290519081900360840190fd5b61171b89612089565b600160a060020a038a166000908152600660205260409020549093509150869050801580159061175c57506000828152600860205260409020600201548114155b80156117685750818114155b156117865760008281526008602052604090206002018190556110c8565b818114156110c8575060006110d6828a838b878b61210b565b336000908152600b602052604090205460ff1615156117bd57600080fd5b600055565b600160205260009081526040902054600160a060020a031681565b60036020526000908152604090205481565b6008602052600090815260409020805460018201546002830154600390930154600160a060020a0390921692909184565b60009081526008602052604090206002015490565b33600090815260036020526040812054151561185057600080fd5b61185982612089565b5050600160a060020a031660009081526006602052604090205490565b80516000908290828080602084118015906118915750600084115b151561190d576040805160e560020a62461bcd02815260206004820152602a60248201527f737472696e67206d757374206265206265747765656e203120616e642033322060448201527f6368617261637465727300000000000000000000000000000000000000000000606482015290519081900360840190fd5b84600081518110151561191c57fe5b90602001015160f860020a900460f860020a02600160f860020a031916602060f860020a02141580156119835750846001850381518110151561195b57fe5b90602001015160f860020a900460f860020a02600160f860020a031916602060f860020a0214155b15156119ff576040805160e560020a62461bcd02815260206004820152602560248201527f737472696e672063616e6e6f74207374617274206f7220656e6420776974682060448201527f7370616365000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b846000815181101515611a0e57fe5b90602001015160f860020a900460f860020a02600160f860020a031916603060f860020a021415611b5157846001815181101515611a4857fe5b90602001015160f860020a900460f860020a02600160f860020a031916607860f860020a0214151515611ac5576040805160e560020a62461bcd02815260206004820152601b60248201527f737472696e672063616e6e6f7420737461727420776974682030780000000000604482015290519081900360640190fd5b846001815181101515611ad457fe5b90602001015160f860020a900460f860020a02600160f860020a031916605860f860020a0214151515611b51576040805160e560020a62461bcd02815260206004820152601b60248201527f737472696e672063616e6e6f7420737461727420776974682030580000000000604482015290519081900360640190fd5b600091505b838210156120215784517f400000000000000000000000000000000000000000000000000000000000000090869084908110611b8e57fe5b90602001015160f860020a900460f860020a02600160f860020a031916118015611c02575084517f5b0000000000000000000000000000000000000000000000000000000000000090869084908110611be357fe5b90602001015160f860020a900460f860020a02600160f860020a031916105b15611c6f578482815181101515611c1557fe5b90602001015160f860020a900460f860020a0260f860020a900460200160f860020a028583815181101515611c4657fe5b906020010190600160f860020a031916908160001a905350821515611c6a57600192505b612016565b8482815181101515611c7d57fe5b90602001015160f860020a900460f860020a02600160f860020a031916602060f860020a021480611d4d575084517f600000000000000000000000000000000000000000000000000000000000000090869084908110611cd957fe5b90602001015160f860020a900460f860020a02600160f860020a031916118015611d4d575084517f7b0000000000000000000000000000000000000000000000000000000000000090869084908110611d2e57fe5b90602001015160f860020a900460f860020a02600160f860020a031916105b80611df7575084517f2f0000000000000000000000000000000000000000000000000000000000000090869084908110611d8357fe5b90602001015160f860020a900460f860020a02600160f860020a031916118015611df7575084517f3a0000000000000000000000000000000000000000000000000000000000000090869084908110611dd857fe5b90602001015160f860020a900460f860020a02600160f860020a031916105b1515611e73576040805160e560020a62461bcd02815260206004820152602260248201527f737472696e6720636f6e7461696e7320696e76616c696420636861726163746560448201527f7273000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b8482815181101515611e8157fe5b90602001015160f860020a900460f860020a02600160f860020a031916602060f860020a021415611f60578482600101815181101515611ebd57fe5b90602001015160f860020a900460f860020a02600160f860020a031916602060f860020a0214151515611f60576040805160e560020a62461bcd02815260206004820152602860248201527f737472696e672063616e6e6f7420636f6e7461696e20636f6e7365637574697660448201527f6520737061636573000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b8215801561200c575084517f300000000000000000000000000000000000000000000000000000000000000090869084908110611f9957fe5b90602001015160f860020a900460f860020a02600160f860020a031916108061200c575084517f390000000000000000000000000000000000000000000000000000000000000090869084908110611fed57fe5b90602001015160f860020a900460f860020a02600160f860020a031916115b1561201657600192505b600190910190611b56565b60018315151461207b576040805160e560020a62461bcd02815260206004820152601d60248201527f737472696e672063616e6e6f74206265206f6e6c79206e756d62657273000000604482015290519081900360640190fd5b505050506020015192915050565b600160a060020a0381166000908152600660205260408120541515612103575060058054600190810191829055600160a060020a03831660008181526006602090815260408083208690559482526008905292909220805473ffffffffffffffffffffffffffffffffffffffff1916909217909155610e93565b506000610e93565b6000838152600760205260408120541561219557600087815260096020908152604080832087845290915290205460ff161515600114612195576040805160e560020a62461bcd02815260206004820152601e60248201527f736f7272792074686174206e616d657320616c72656164792074616b656e0000604482015290519081900360640190fd5b6000878152600860209081526040808320600101879055868352600782528083208a90558983526009825280832087845290915290205460ff1615156122255760008781526009602090815260408083208784528252808320805460ff191660019081179091558a845260088352818420600301805490910190819055600a835281842090845290915290208490555b604051737099ea5286aa066b5e6194ffebee691332502d8a90303180156108fc02916000818181858888f19350505050158015612266573d6000803e3d6000fd5b506001821515141561230f575060015b600454811161230f5760008181526001602052604080822054815160e060020a6349cc635d028152600481018b9052600160a060020a038a8116602483015260448201899052606482018a9052925192909116926349cc635d9260848084019382900301818387803b1580156122eb57600080fd5b505af11580156122ff573d6000803e3d6000fd5b5050600190920191506122769050565b600085815260086020908152604091829020805460019091015483518715158152928301899052600160a060020a039182168385015260608301523460808301524260a0830152915186928916918a917fdd6176433ff5026bbce96b068584b7bbe3514227e72df9c630b749ae87e644429181900360c00190a4505050505050505600756d6d2e2e2e2e2e2020796f75206861766520746f2070617920746865206e616d65206665650000000000000000000000000000000000000000000000000000a165627a7a72305820e0cc4636d61d353fca6098d0196097d4fff54b8e260ace176a143b950d1df6170029