60c060405234801562000010575f80fd5b5060405162004452380380620044528339818101604052810190620000369190620002bc565b6040518060400160405280600a81526020017f4d756773686f74343034000000000000000000000000000000000000000000008152506040518060400160405280600781526020017f4d554753484f54000000000000000000000000000000000000000000000000008152506012610fa084805f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036200010f576040517f49e27cff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3508460019081620001ba919062000550565b508360029081620001cc919062000550565b508260ff1660808160ff1681525050608051600a620001ec9190620007bd565b82620001f991906200080d565b60a08181525050505050505068d8d726b7177a80000060045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505062000857565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000286826200025b565b9050919050565b62000298816200027a565b8114620002a3575f80fd5b50565b5f81519050620002b6816200028d565b92915050565b5f60208284031215620002d457620002d362000257565b5b5f620002e384828501620002a6565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200036857607f821691505b6020821081036200037e576200037d62000323565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620003e27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620003a5565b620003ee8683620003a5565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000438620004326200042c8462000406565b6200040f565b62000406565b9050919050565b5f819050919050565b620004538362000418565b6200046b62000462826200043f565b848454620003b1565b825550505050565b5f90565b6200048162000473565b6200048e81848462000448565b505050565b5b81811015620004b557620004a95f8262000477565b60018101905062000494565b5050565b601f8211156200050457620004ce8162000384565b620004d98462000396565b81016020851015620004e9578190505b62000501620004f88562000396565b83018262000493565b50505b505050565b5f82821c905092915050565b5f620005265f198460080262000509565b1980831691505092915050565b5f62000540838362000515565b9150826002028217905092915050565b6200055b82620002ec565b67ffffffffffffffff811115620005775762000576620002f6565b5b62000583825462000350565b62000590828285620004b9565b5f60209050601f831160018114620005c6575f8415620005b1578287015190505b620005bd858262000533565b8655506200062c565b601f198416620005d68662000384565b5f5b82811015620005ff57848901518255600182019150602085019450602081019050620005d8565b868310156200061f57848901516200061b601f89168262000515565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620006be5780860481111562000696576200069562000634565b5b6001851615620006a65780820291505b8081029050620006b68562000661565b945062000676565b94509492505050565b5f82620006d85760019050620007aa565b81620006e7575f9050620007aa565b81600181146200070057600281146200070b5762000741565b6001915050620007aa565b60ff84111562000720576200071f62000634565b5b8360020a9150848211156200073a576200073962000634565b5b50620007aa565b5060208310610133831016604e8410600b84101617156200077b5782820a90508381111562000775576200077462000634565b5b620007aa565b6200078a84848460016200066d565b92509050818404811115620007a457620007a362000634565b5b81810290505b9392505050565b5f60ff82169050919050565b5f620007c98262000406565b9150620007d683620007b1565b9250620008057fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620006c7565b905092915050565b5f620008198262000406565b9150620008268362000406565b9250828202620008368162000406565b9150828204841483151762000850576200084f62000634565b5b5092915050565b60805160a051613bd2620008805f395f6108f601525f81816112c7015261209f0152613bd25ff3fe608060405234801561000f575f80fd5b50600436106101a7575f3560e01c806370a08231116100f7578063c87b56dd11610095578063e0df5b6f1161006f578063e0df5b6f146104cb578063e985e9c5146104e7578063f28ca1dd14610517578063f2fde38b14610535576101a7565b8063c87b56dd1461044d578063d547cfb71461047d578063dd62ed3e1461049b576101a7565b80639b19251a116100d15780639b19251a146103b5578063a22cb465146103e5578063a9059cbb14610401578063b88d4fde14610431576101a7565b806370a08231146103495780638da5cb5b1461037957806395d89b4114610397576101a7565b80632b968958116101645780634f02c4201161013e5780634f02c420146102c3578063504334c2146102e157806353d6fd59146102fd5780636352211e14610319576101a7565b80632b9689581461027f578063313ce5671461028957806342842e0e146102a7576101a7565b806306fdde03146101ab578063081812fc146101c9578063095ea7b3146101f957806318160ddd1461022957806318d217c31461024757806323b872dd14610263575b5f80fd5b6101b3610551565b6040516101c09190612ba3565b60405180910390f35b6101e360048036038101906101de9190612c07565b6105dd565b6040516101f09190612c71565b60405180910390f35b610213600480360381019061020e9190612cb4565b61060d565b6040516102209190612d0c565b60405180910390f35b6102316108f4565b60405161023e9190612d34565b60405180910390f35b610261600480360381019061025c9190612e79565b610918565b005b61027d60048036038101906102789190612ec0565b6109af565b005b6102876111a6565b005b6102916112c5565b60405161029e9190612f2b565b60405180910390f35b6102c160048036038101906102bc9190612ec0565b6112e9565b005b6102cb611418565b6040516102d89190612d34565b60405180910390f35b6102fb60048036038101906102f69190612f44565b61141e565b005b61031760048036038101906103129190612fe4565b6114b0565b005b610333600480360381019061032e9190612c07565b61158c565b6040516103409190612c71565b60405180910390f35b610363600480360381019061035e9190613022565b61162a565b6040516103709190612d34565b60405180910390f35b61038161163f565b60405161038e9190612c71565b60405180910390f35b61039f611662565b6040516103ac9190612ba3565b60405180910390f35b6103cf60048036038101906103ca9190613022565b6116ee565b6040516103dc9190612d0c565b60405180910390f35b6103ff60048036038101906103fa9190612fe4565b61170b565b005b61041b60048036038101906104169190612cb4565b611803565b6040516104289190612d0c565b60405180910390f35b61044b600480360381019061044691906130aa565b611817565b005b61046760048036038101906104629190612c07565b61194c565b6040516104749190612ba3565b60405180910390f35b610485611d1e565b6040516104929190612ba3565b60405180910390f35b6104b560048036038101906104b0919061312e565b611daa565b6040516104c29190612d34565b60405180910390f35b6104e560048036038101906104e09190612e79565b611dca565b005b61050160048036038101906104fc919061312e565b611e61565b60405161050e9190612d0c565b60405180910390f35b61051f611e8b565b60405161052c9190612ba3565b60405180910390f35b61054f600480360381019061054a9190613022565b611f17565b005b6001805461055e90613199565b80601f016020809104026020016040519081016040528092919081815260200182805461058a90613199565b80156105d55780601f106105ac576101008083540402835291602001916105d5565b820191905f5260205f20905b8154815290600101906020018083116105b857829003601f168201915b505050505081565b6006602052805f5260405f205f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600354821115801561061f57505f82115b15610807575f60085f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015610716575060075f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561074d576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8360065f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040516107f99190612d34565b60405180910390a3506108ea565b8160055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516108e19190612d34565b60405180910390a35b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461099c576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600c90816109ab9190613366565b5050565b60035481116110675760085f8281526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610a4d576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ab2576040517f9c8d2cd200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015610b70575060075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015610bd8575060065f8281526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15610c0f576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c1761209c565b60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610c629190613462565b92505081905550610c7161209c565b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508160085f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060065f8281526020019081526020015f205f6101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555f60095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600160095f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2080549050610dc79190613462565b81548110610dd857610dd7613495565b5b905f5260205f20015490508060095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600a5f8581526020019081526020015f205481548110610e4457610e43613495565b5b905f5260205f20018190555060095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20805480610e9d57610e9c6134c2565b5b600190038181905f5260205f20015f90559055600a5f8381526020019081526020015f2054600a5f8381526020019081526020015f208190555060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2082908060018154018082558091505060019003905f5260205f20015f9091909190915055600160095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2080549050610f859190613462565b600a5f8481526020019081526020015f2081905550818373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a48273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fe59fdd36d0d223c0c7d996db7ad796880f45e1936cb0bb7ac102e7082e03148761104c61209c565b6040516110599190612d34565b60405180910390a3506111a1565b5f60055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146111935781816111169190613462565b60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b61119e8484846120cf565b50505b505050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461122a576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3565b7f000000000000000000000000000000000000000000000000000000000000000081565b6112f48383836109af565b5f8273ffffffffffffffffffffffffffffffffffffffff163b141580156113dc575063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168273ffffffffffffffffffffffffffffffffffffffff1663150b7a023386856040518463ffffffff1660e01b815260040161137a93929190613522565b6020604051808303815f875af1158015611396573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113ba91906135bf565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614155b15611413576040517f3da6393100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b60035481565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146114a2576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6114ac8282612413565b5050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611534576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60085f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611625576040517fc5723b5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b6004602052805f5260405f205f915090505481565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6002805461166f90613199565b80601f016020809104026020016040519081016040528092919081815260200182805461169b90613199565b80156116e65780601f106116bd576101008083540402835291602001916116e6565b820191905f5260205f20905b8154815290600101906020018083116116c957829003601f168201915b505050505081565b600b602052805f5260405f205f915054906101000a900460ff1681565b8060075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516117f79190612d0c565b60405180910390a35050565b5f61180f3384846120cf565b905092915050565b6118228585856109af565b5f8473ffffffffffffffffffffffffffffffffffffffff163b1415801561190e575063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168473ffffffffffffffffffffffffffffffffffffffff1663150b7a0233888787876040518663ffffffff1660e01b81526004016118ac959493929190613616565b6020604051808303815f875af11580156118c8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118ec91906135bf565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614155b15611945576040517f3da6393100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050565b60605f600d805461195c90613199565b9050111561199657600d61196f83612437565b60405160200161198092919061371c565b6040516020818303038152906040529050611d19565b5f826040516020016119a8919061375f565b6040516020818303038152906040528051906020012060f81c905060608060768360ff1611611a46576040518060400160405280600c81526020017f6f726967696e616c2e706e67000000000000000000000000000000000000000081525091506040518060400160405280600281526020017f4f470000000000000000000000000000000000000000000000000000000000008152509050611bc5565b60b68360ff1611611ac6576040518060400160405280600c81526020017f746875676c6966652e706e67000000000000000000000000000000000000000081525091506040518060400160405280600881526020017f546875674c6966650000000000000000000000000000000000000000000000008152509050611bc4565b60e68360ff1611611b46576040518060400160405280600881526020017f6d6167612e706e6700000000000000000000000000000000000000000000000081525091506040518060400160405280600481526020017f4d414741000000000000000000000000000000000000000000000000000000008152509050611bc3565b60ff8360ff1611611bc2576040518060400160405280600781526020017f7573612e706e670000000000000000000000000000000000000000000000000081525091506040518060400160405280600381526020017f555341000000000000000000000000000000000000000000000000000000000081525090505b5b5b5b5f611bcf86612437565b604051602001611bdf919061379f565b604051602081830303815290604052604051602001611bfe91906138a6565b604051602081830303815290604052600c84604051602001611c2192919061371c565b604051602081830303815290604052604051602001611c419291906138c7565b60405160208183030381529060405290505f82604051602001611c64919061395a565b60405160208183030381529060405290505f6040518060400160405280600481526020017f227d5d7d0000000000000000000000000000000000000000000000000000000081525090508282604051602001611cc19291906138c7565b60405160208183030381529060405281604051602001611ce29291906138c7565b604051602081830303815290604052604051602001611d0191906139a1565b60405160208183030381529060405296505050505050505b919050565b600d8054611d2b90613199565b80601f0160208091040260200160405190810160405280929190818152602001828054611d5790613199565b8015611da25780601f10611d7957610100808354040283529160200191611da2565b820191905f5260205f20905b815481529060010190602001808311611d8557829003601f168201915b505050505081565b6005602052815f5260405f20602052805f5260405f205f91509150505481565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e4e576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600d9081611e5d9190613366565b5050565b6007602052815f5260405f20602052805f5260405f205f915091509054906101000a900460ff1681565b600c8054611e9890613199565b80601f0160208091040260200160405190810160405280929190818152602001828054611ec490613199565b8015611f0f5780601f10611ee657610100808354040283529160200191611f0f565b820191905f5260205f20905b815481529060010190602001808311611ef257829003601f168201915b505050505081565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611f9b576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612000576040517f49e27cff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b5f7f0000000000000000000000000000000000000000000000000000000000000000600a6120ca9190613af5565b905090565b5f806120d961209c565b90505f60045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f60045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508460045f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546121a99190613462565b925050819055508460045f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282540192505081905550600b5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166122cd575f8360045f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122929190613b6c565b848461229e9190613b6c565b6122a89190613462565b90505f5b818110156122ca576122bd89612501565b80806001019150506122ac565b50505b600b5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166123a0575f83826123289190613b6c565b8460045f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123719190613b6c565b61237b9190613462565b90505f5b8181101561239d5761239088612746565b808060010191505061237f565b50505b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fe59fdd36d0d223c0c7d996db7ad796880f45e1936cb0bb7ac102e7082e031487876040516123fd9190612d34565b60405180910390a3600193505050509392505050565b81600190816124229190613366565b5080600290816124329190613366565b505050565b60605f6001612445846129c8565b0190505f8167ffffffffffffffff81111561246357612462612d55565b5b6040519080825280601f01601f1916602001820160405280156124955781602001600182028036833780820191505090505b5090505f82602001820190505b6001156124f6578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816124eb576124ea613b3f565b5b0494505f85036124a2575b819350505050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612566576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600160095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20805490506125f19190613462565b8154811061260257612601613495565b5b905f5260205f200154905060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2080548061265a576126596134c2565b5b600190038181905f5260205f20015f90559055600a5f8281526020019081526020015f205f905560085f8281526020019081526020015f205f6101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560065f8281526020019081526020015f205f6101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055805f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036127ab576040517f9c8d2cd200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60035f81548092919060010191905055505f60035490505f73ffffffffffffffffffffffffffffffffffffffff1660085f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612857576040517f23369fa600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8160085f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081908060018154018082558091505060019003905f5260205f20015f9091909190915055600160095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20805490506129549190613462565b600a5f8381526020019081526020015f2081905550808273ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b5f805f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612a24577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381612a1a57612a19613b3f565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310612a61576d04ee2d6d415b85acef81000000008381612a5757612a56613b3f565b5b0492506020810190505b662386f26fc100008310612a9057662386f26fc100008381612a8657612a85613b3f565b5b0492506010810190505b6305f5e1008310612ab9576305f5e1008381612aaf57612aae613b3f565b5b0492506008810190505b6127108310612ade576127108381612ad457612ad3613b3f565b5b0492506004810190505b60648310612b015760648381612af757612af6613b3f565b5b0492506002810190505b600a8310612b10576001810190505b80915050919050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612b50578082015181840152602081019050612b35565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612b7582612b19565b612b7f8185612b23565b9350612b8f818560208601612b33565b612b9881612b5b565b840191505092915050565b5f6020820190508181035f830152612bbb8184612b6b565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b612be681612bd4565b8114612bf0575f80fd5b50565b5f81359050612c0181612bdd565b92915050565b5f60208284031215612c1c57612c1b612bcc565b5b5f612c2984828501612bf3565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612c5b82612c32565b9050919050565b612c6b81612c51565b82525050565b5f602082019050612c845f830184612c62565b92915050565b612c9381612c51565b8114612c9d575f80fd5b50565b5f81359050612cae81612c8a565b92915050565b5f8060408385031215612cca57612cc9612bcc565b5b5f612cd785828601612ca0565b9250506020612ce885828601612bf3565b9150509250929050565b5f8115159050919050565b612d0681612cf2565b82525050565b5f602082019050612d1f5f830184612cfd565b92915050565b612d2e81612bd4565b82525050565b5f602082019050612d475f830184612d25565b92915050565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612d8b82612b5b565b810181811067ffffffffffffffff82111715612daa57612da9612d55565b5b80604052505050565b5f612dbc612bc3565b9050612dc88282612d82565b919050565b5f67ffffffffffffffff821115612de757612de6612d55565b5b612df082612b5b565b9050602081019050919050565b828183375f83830152505050565b5f612e1d612e1884612dcd565b612db3565b905082815260208101848484011115612e3957612e38612d51565b5b612e44848285612dfd565b509392505050565b5f82601f830112612e6057612e5f612d4d565b5b8135612e70848260208601612e0b565b91505092915050565b5f60208284031215612e8e57612e8d612bcc565b5b5f82013567ffffffffffffffff811115612eab57612eaa612bd0565b5b612eb784828501612e4c565b91505092915050565b5f805f60608486031215612ed757612ed6612bcc565b5b5f612ee486828701612ca0565b9350506020612ef586828701612ca0565b9250506040612f0686828701612bf3565b9150509250925092565b5f60ff82169050919050565b612f2581612f10565b82525050565b5f602082019050612f3e5f830184612f1c565b92915050565b5f8060408385031215612f5a57612f59612bcc565b5b5f83013567ffffffffffffffff811115612f7757612f76612bd0565b5b612f8385828601612e4c565b925050602083013567ffffffffffffffff811115612fa457612fa3612bd0565b5b612fb085828601612e4c565b9150509250929050565b612fc381612cf2565b8114612fcd575f80fd5b50565b5f81359050612fde81612fba565b92915050565b5f8060408385031215612ffa57612ff9612bcc565b5b5f61300785828601612ca0565b925050602061301885828601612fd0565b9150509250929050565b5f6020828403121561303757613036612bcc565b5b5f61304484828501612ca0565b91505092915050565b5f80fd5b5f80fd5b5f8083601f84011261306a57613069612d4d565b5b8235905067ffffffffffffffff8111156130875761308661304d565b5b6020830191508360018202830111156130a3576130a2613051565b5b9250929050565b5f805f805f608086880312156130c3576130c2612bcc565b5b5f6130d088828901612ca0565b95505060206130e188828901612ca0565b94505060406130f288828901612bf3565b935050606086013567ffffffffffffffff81111561311357613112612bd0565b5b61311f88828901613055565b92509250509295509295909350565b5f806040838503121561314457613143612bcc565b5b5f61315185828601612ca0565b925050602061316285828601612ca0565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806131b057607f821691505b6020821081036131c3576131c261316c565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026132257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826131ea565b61322f86836131ea565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61326a61326561326084612bd4565b613247565b612bd4565b9050919050565b5f819050919050565b61328383613250565b61329761328f82613271565b8484546131f6565b825550505050565b5f90565b6132ab61329f565b6132b681848461327a565b505050565b5b818110156132d9576132ce5f826132a3565b6001810190506132bc565b5050565b601f82111561331e576132ef816131c9565b6132f8846131db565b81016020851015613307578190505b61331b613313856131db565b8301826132bb565b50505b505050565b5f82821c905092915050565b5f61333e5f1984600802613323565b1980831691505092915050565b5f613356838361332f565b9150826002028217905092915050565b61336f82612b19565b67ffffffffffffffff81111561338857613387612d55565b5b6133928254613199565b61339d8282856132dd565b5f60209050601f8311600181146133ce575f84156133bc578287015190505b6133c6858261334b565b86555061342d565b601f1984166133dc866131c9565b5f5b82811015613403578489015182556001820191506020850194506020810190506133de565b86831015613420578489015161341c601f89168261332f565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61346c82612bd4565b915061347783612bd4565b925082820390508181111561348f5761348e613435565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b5f82825260208201905092915050565b50565b5f61350d5f836134ef565b9150613518826134ff565b5f82019050919050565b5f6080820190506135355f830186612c62565b6135426020830185612c62565b61354f6040830184612d25565b818103606083015261356081613502565b9050949350505050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61359e8161356a565b81146135a8575f80fd5b50565b5f815190506135b981613595565b92915050565b5f602082840312156135d4576135d3612bcc565b5b5f6135e1848285016135ab565b91505092915050565b5f6135f583856134ef565b9350613602838584612dfd565b61360b83612b5b565b840190509392505050565b5f6080820190506136295f830188612c62565b6136366020830187612c62565b6136436040830186612d25565b81810360608301526136568184866135ea565b90509695505050505050565b5f81905092915050565b5f815461367881613199565b6136828186613662565b9450600182165f811461369c57600181146136b1576136e3565b60ff19831686528115158202860193506136e3565b6136ba856131c9565b5f5b838110156136db578154818901526001820191506020810190506136bc565b838801955050505b50505092915050565b5f6136f682612b19565b6137008185613662565b9350613710818560208601612b33565b80840191505092915050565b5f613727828561366c565b915061373382846136ec565b91508190509392505050565b5f819050919050565b61375961375482612bd4565b61373f565b82525050565b5f61376a8284613748565b60208201915081905092915050565b7f7b226e616d65223a20224d756773686f74343034202300000000000000000000815250565b5f6137a982613779565b6016820191506137b982846136ec565b915081905092915050565b7f222c226465736372697074696f6e223a224120636f6c6c656374696f6e206f665f8201527f20342c303030205472756d70206d756773686f747320656e61626c656420627960208201527f204552433430342c20616e206578706572696d656e74616c20746f6b656e207360408201527f74616e646172642e222c2265787465726e616c5f75726c223a22687474703a2f60608201527f2f6d756773686f743430342e78797a2f222c22696d616765223a220000000000608082015250565b5f613890609b83613662565b915061389b826137c4565b609b82019050919050565b5f6138b182846136ec565b91506138bc82613884565b915081905092915050565b5f6138d282856136ec565b91506138de82846136ec565b91508190509392505050565b7f222c2261747472696275746573223a5b7b2274726169745f74797065223a22545f8201527f72616974222c2276616c7565223a220000000000000000000000000000000000602082015250565b5f613944602f83613662565b915061394f826138ea565b602f82019050919050565b5f61396482613938565b915061397082846136ec565b915081905092915050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b757466382c0000000000815250565b5f6139ab8261397b565b601b820191506139bb82846136ec565b915081905092915050565b5f8160011c9050919050565b5f808291508390505b6001851115613a1b578086048111156139f7576139f6613435565b5b6001851615613a065780820291505b8081029050613a14856139c6565b94506139db565b94509492505050565b5f82613a335760019050613aee565b81613a40575f9050613aee565b8160018114613a565760028114613a6057613a8f565b6001915050613aee565b60ff841115613a7257613a71613435565b5b8360020a915084821115613a8957613a88613435565b5b50613aee565b5060208310610133831016604e8410600b8410161715613ac45782820a905083811115613abf57613abe613435565b5b613aee565b613ad184848460016139d2565b92509050818404811115613ae857613ae7613435565b5b81810290505b9392505050565b5f613aff82612bd4565b9150613b0a83612f10565b9250613b377fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613a24565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613b7682612bd4565b9150613b8183612bd4565b925082613b9157613b90613b3f565b5b82820490509291505056fea26469706673582212206a4d730aef4733837dc9f4dfd19313c45a8d30483b294ef93f05eb50b5789f8a64736f6c63430008180033000000000000000000000000b3b47097b79c23f489166ee6ed90efe21ea795e6