60806040526115b3600a556115b3600b556601c6bf52634000600c556003600d556037600e556001600f60006101000a81548160ff0219169083151502179055506001600f60016101000a81548160ff02191690831515021790555060405180602001604052806000815250601090816200007b91906200060f565b506040518060400160405280600881526020017f52455645414c454400000000000000000000000000000000000000000000000081525060119081620000c291906200060f565b50348015620000d057600080fd5b5060405162003ee938038062003ee98339818101604052810190620000f691906200085a565b6040518060400160405280601081526020017f416c706861204c696f6e732047616e67000000000000000000000000000000008152506040518060400160405280600381526020017f414c47000000000000000000000000000000000000000000000000000000000081525081600290816200017391906200060f565b5080600390816200018591906200060f565b5062000196620001de60201b60201c565b6000819055505050620001be620001b2620001e760201b60201c565b620001ef60201b60201c565b6001600981905550620001d781620002b560201b60201c565b506200092e565b60006001905090565b600033905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620002c5620002da60201b60201c565b8060109081620002d691906200060f565b5050565b620002ea620001e760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620003106200036b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000369576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000360906200090c565b60405180910390fd5b565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200041757607f821691505b6020821081036200042d576200042c620003cf565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620004977fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000458565b620004a3868362000458565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620004f0620004ea620004e484620004bb565b620004c5565b620004bb565b9050919050565b6000819050919050565b6200050c83620004cf565b620005246200051b82620004f7565b84845462000465565b825550505050565b600090565b6200053b6200052c565b6200054881848462000501565b505050565b5b8181101562000570576200056460008262000531565b6001810190506200054e565b5050565b601f821115620005bf57620005898162000433565b620005948462000448565b81016020851015620005a4578190505b620005bc620005b38562000448565b8301826200054d565b50505b505050565b600082821c905092915050565b6000620005e460001984600802620005c4565b1980831691505092915050565b6000620005ff8383620005d1565b9150826002028217905092915050565b6200061a8262000395565b67ffffffffffffffff811115620006365762000635620003a0565b5b620006428254620003fe565b6200064f82828562000574565b600060209050601f83116001811462000687576000841562000672578287015190505b6200067e8582620005f1565b865550620006ee565b601f198416620006978662000433565b60005b82811015620006c1578489015182556001820191506020850194506020810190506200069a565b86831015620006e15784890151620006dd601f891682620005d1565b8355505b6001600288020188555050505b505050505050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b620007308262000714565b810181811067ffffffffffffffff82111715620007525762000751620003a0565b5b80604052505050565b600062000767620006f6565b905062000775828262000725565b919050565b600067ffffffffffffffff821115620007985762000797620003a0565b5b620007a38262000714565b9050602081019050919050565b60005b83811015620007d0578082015181840152602081019050620007b3565b60008484015250505050565b6000620007f3620007ed846200077a565b6200075b565b9050828152602081018484840111156200081257620008116200070f565b5b6200081f848285620007b0565b509392505050565b600082601f8301126200083f576200083e6200070a565b5b815162000851848260208601620007dc565b91505092915050565b60006020828403121562000873576200087262000700565b5b600082015167ffffffffffffffff81111562000894576200089362000705565b5b620008a28482850162000827565b91505092915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000620008f4602083620008ab565b91506200090182620008bc565b602082019050919050565b600060208201905081810360008301526200092781620008e5565b9050919050565b6135ab806200093e6000396000f3fe6080604052600436106102255760003560e01c806370a0823111610123578063a22cb465116100ab578063cb2b1c5e1161006f578063cb2b1c5e1461079c578063d5abeb01146107c5578063e268e4d3146107f0578063e985e9c514610819578063f2fde38b1461085657610225565b8063a22cb465146106c6578063abfc4efa146106ef578063b88d4fde1461071a578063bedb86fb14610736578063c87b56dd1461075f57610225565b80638da5cb5b116100f25780638da5cb5b14610602578063940cd05b1461062d57806395d89b4114610656578063a0712d6814610681578063a0bcfc7f1461069d57610225565b806370a082311461055a578063715018a6146105975780638456cb59146105ae5780638ba4cc3c146105d957610225565b80633ccfd60b116101b15780634751333411610175578063475133341461047557806354214f69146104a05780635b28fd91146104cb5780636352211e146104f45780636f8b44b01461053157610225565b80633ccfd60b146103c55780633d6d652a146103dc57806342842e0e1461040557806344a0d68a14610421578063453c23101461044a57610225565b8063095ea7b3116101f8578063095ea7b31461030c57806313faede6146103285780631638fef01461035357806318160ddd1461037e57806323b872dd146103a957610225565b80630103c92b1461022a57806301ffc9a71461026757806306fdde03146102a4578063081812fc146102cf575b600080fd5b34801561023657600080fd5b50610251600480360381019061024c91906125ca565b61087f565b60405161025e9190612610565b60405180910390f35b34801561027357600080fd5b5061028e60048036038101906102899190612683565b610897565b60405161029b91906126cb565b60405180910390f35b3480156102b057600080fd5b506102b9610929565b6040516102c69190612776565b60405180910390f35b3480156102db57600080fd5b506102f660048036038101906102f191906127c4565b6109bb565b6040516103039190612800565b60405180910390f35b6103266004803603810190610321919061281b565b610a3a565b005b34801561033457600080fd5b5061033d610b7e565b60405161034a9190612610565b60405180910390f35b34801561035f57600080fd5b50610368610b84565b6040516103759190612776565b60405180910390f35b34801561038a57600080fd5b50610393610c12565b6040516103a09190612610565b60405180910390f35b6103c360048036038101906103be919061285b565b610c29565b005b3480156103d157600080fd5b506103da610f4b565b005b3480156103e857600080fd5b5061040360048036038101906103fe91906127c4565b610fd3565b005b61041f600480360381019061041a919061285b565b611029565b005b34801561042d57600080fd5b50610448600480360381019061044391906127c4565b611049565b005b34801561045657600080fd5b5061045f61105b565b60405161046c9190612610565b60405180910390f35b34801561048157600080fd5b5061048a611061565b6040516104979190612610565b60405180910390f35b3480156104ac57600080fd5b506104b5611067565b6040516104c291906126cb565b60405180910390f35b3480156104d757600080fd5b506104f260048036038101906104ed91906127c4565b61107a565b005b34801561050057600080fd5b5061051b600480360381019061051691906127c4565b61108c565b6040516105289190612800565b60405180910390f35b34801561053d57600080fd5b50610558600480360381019061055391906127c4565b61109e565b005b34801561056657600080fd5b50610581600480360381019061057c91906125ca565b6110b0565b60405161058e9190612610565b60405180910390f35b3480156105a357600080fd5b506105ac611168565b005b3480156105ba57600080fd5b506105c361117c565b6040516105d091906126cb565b60405180910390f35b3480156105e557600080fd5b5061060060048036038101906105fb919061281b565b61118f565b005b34801561060e57600080fd5b506106176111fc565b6040516106249190612800565b60405180910390f35b34801561063957600080fd5b50610654600480360381019061064f91906128da565b611226565b005b34801561066257600080fd5b5061066b61124b565b6040516106789190612776565b60405180910390f35b61069b600480360381019061069691906127c4565b6112dd565b005b3480156106a957600080fd5b506106c460048036038101906106bf9190612a3c565b6116b9565b005b3480156106d257600080fd5b506106ed60048036038101906106e89190612a85565b6116d4565b005b3480156106fb57600080fd5b506107046117df565b6040516107119190612610565b60405180910390f35b610734600480360381019061072f9190612b66565b6117e5565b005b34801561074257600080fd5b5061075d600480360381019061075891906128da565b611858565b005b34801561076b57600080fd5b50610786600480360381019061078191906127c4565b61187d565b6040516107939190612776565b60405180910390f35b3480156107a857600080fd5b506107c360048036038101906107be9190612a3c565b6119d3565b005b3480156107d157600080fd5b506107da6119ee565b6040516107e79190612610565b60405180910390f35b3480156107fc57600080fd5b50610817600480360381019061081291906127c4565b6119f4565b005b34801561082557600080fd5b50610840600480360381019061083b9190612be9565b611a4a565b60405161084d91906126cb565b60405180910390f35b34801561086257600080fd5b5061087d600480360381019061087891906125ca565b611ade565b005b60126020528060005260406000206000915090505481565b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806108f257506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806109225750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b60606002805461093890612c58565b80601f016020809104026020016040519081016040528092919081815260200182805461096490612c58565b80156109b15780601f10610986576101008083540402835291602001916109b1565b820191906000526020600020905b81548152906001019060200180831161099457829003601f168201915b5050505050905090565b60006109c682611b61565b6109fc576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610a458261108c565b90508073ffffffffffffffffffffffffffffffffffffffff16610a66611bc0565b73ffffffffffffffffffffffffffffffffffffffff1614610ac957610a9281610a8d611bc0565b611a4a565b610ac8576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b826006600084815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b600c5481565b60118054610b9190612c58565b80601f0160208091040260200160405190810160405280929190818152602001828054610bbd90612c58565b8015610c0a5780601f10610bdf57610100808354040283529160200191610c0a565b820191906000526020600020905b815481529060010190602001808311610bed57829003601f168201915b505050505081565b6000610c1c611bc8565b6001546000540303905090565b6000610c3482611bd1565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610c9b576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080610ca784611c9d565b91509150610cbd8187610cb8611bc0565b611cc4565b610d0957610cd286610ccd611bc0565b611a4a565b610d08576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610d6f576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d7c8686866001611d08565b8015610d8757600082555b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001900391905081905550600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815460010191905081905550610e5585610e31888887611d0e565b7c020000000000000000000000000000000000000000000000000000000017611d36565b600460008681526020019081526020016000208190555060007c0200000000000000000000000000000000000000000000000000000000841603610edb5760006001850190506000600460008381526020019081526020016000205403610ed9576000548114610ed8578360046000838152602001908152602001600020819055505b5b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4610f438686866001611d61565b505050505050565b610f53611d67565b6000610f5d6111fc565b73ffffffffffffffffffffffffffffffffffffffff1647604051610f8090612cba565b60006040518083038185875af1925050503d8060008114610fbd576040519150601f19603f3d011682016040523d82523d6000602084013e610fc2565b606091505b5050905080610fd057600080fd5b50565b610fdb611d67565b600e54811061101f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101690612d1b565b60405180910390fd5b80600d8190555050565b611044838383604051806020016040528060008152506117e5565b505050565b611051611d67565b80600c8190555050565b600e5481565b600b5481565b600f60009054906101000a900460ff1681565b611082611d67565b80600b8190555050565b600061109782611bd1565b9050919050565b6110a6611d67565b80600a8190555050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611117576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054169050919050565b611170611d67565b61117a6000611de5565b565b600f60019054906101000a900460ff1681565b611197611d67565b600a54816111a3611eab565b6111ad9190612d6a565b11156111ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e590612dea565b60405180910390fd5b6111f88282611ebe565b5050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61122e611d67565b80600f60006101000a81548160ff02191690831515021790555050565b60606003805461125a90612c58565b80601f016020809104026020016040519081016040528092919081815260200182805461128690612c58565b80156112d35780601f106112a8576101008083540402835291602001916112d3565b820191906000526020600020905b8154815290600101906020018083116112b657829003601f168201915b5050505050905090565b600f60019054906101000a900460ff161561132d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132490612e56565b60405180910390fd5b600d54601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106113ca5780600c546113839190612e76565b3410156113c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bc90612f04565b60405180910390fd5b611538565b600b54816113d6610c12565b6113e09190612d6a565b116114e657601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600d546114329190612f24565b8111156114e157601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600d546114869190612f24565b816114919190612f24565b600c5461149e9190612e76565b3410156114e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d790612f04565b60405180910390fd5b5b611537565b80600c546114f49190612e76565b341015611536576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152d90612f04565b60405180910390fd5b5b5b600a5481611544611eab565b61154e9190612d6a565b111561158f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158690612dea565b60405180910390fd5b600e5481601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115dd9190612d6a565b111561161e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161590612fa4565b60405180910390fd5b6116283382611ebe565b80601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116739190612d6a565b601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6116c1611d67565b80601090816116d09190613170565b5050565b80600760006116e1611bc0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff1661178e611bc0565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516117d391906126cb565b60405180910390a35050565b600d5481565b6117f0848484610c29565b60008373ffffffffffffffffffffffffffffffffffffffff163b146118525761181b84848484611edc565b611851576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b50505050565b611860611d67565b80600f60016101000a81548160ff02191690831515021790555050565b606061188882611b61565b6118c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118be9061328e565b60405180910390fd5b60001515600f60009054906101000a900460ff1615150361197457601180546118ef90612c58565b80601f016020809104026020016040519081016040528092919081815260200182805461191b90612c58565b80156119685780601f1061193d57610100808354040283529160200191611968565b820191906000526020600020905b81548152906001019060200180831161194b57829003601f168201915b505050505090506119ce565b600061197e61202c565b511161199957604051806020016040528060008152506119cb565b6119a161202c565b6119aa836120be565b6040516020016119bb929190613336565b6040516020818303038152906040525b90505b919050565b6119db611d67565b80601190816119ea9190613170565b5050565b600a5481565b6119fc611d67565b600d548111611a40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3790612d1b565b60405180910390fd5b80600e8190555050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611ae6611d67565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611b55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4c906133d7565b60405180910390fd5b611b5e81611de5565b50565b600081611b6c611bc8565b11158015611b7b575060005482105b8015611bb9575060007c0100000000000000000000000000000000000000000000000000000000600460008581526020019081526020016000205416145b9050919050565b600033905090565b60006001905090565b60008082905080611be0611bc8565b11611c6657600054811015611c655760006004600083815260200190815260200160002054905060007c0100000000000000000000000000000000000000000000000000000000821603611c63575b60008103611c59576004600083600190039350838152602001908152602001600020549050611c2f565b8092505050611c98565b505b5b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b60008060006006600085815260200190815260200160002090508092508254915050915091565b600073ffffffffffffffffffffffffffffffffffffffff8316925073ffffffffffffffffffffffffffffffffffffffff821691508382148383141790509392505050565b50505050565b60008060e883901c905060e8611d2586868461218c565b62ffffff16901b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b611d6f612195565b73ffffffffffffffffffffffffffffffffffffffff16611d8d6111fc565b73ffffffffffffffffffffffffffffffffffffffff1614611de3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dda90613443565b60405180910390fd5b565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000611eb5611bc8565b60005403905090565b611ed882826040518060200160405280600081525061219d565b5050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611f02611bc0565b8786866040518563ffffffff1660e01b8152600401611f2494939291906134b8565b6020604051808303816000875af1925050508015611f6057506040513d601f19601f82011682018060405250810190611f5d9190613519565b60015b611fd9573d8060008114611f90576040519150601f19603f3d011682016040523d82523d6000602084013e611f95565b606091505b506000815103611fd1576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b60606010805461203b90612c58565b80601f016020809104026020016040519081016040528092919081815260200182805461206790612c58565b80156120b45780601f10612089576101008083540402835291602001916120b4565b820191906000526020600020905b81548152906001019060200180831161209757829003601f168201915b5050505050905090565b6060600060016120cd8461223a565b01905060008167ffffffffffffffff8111156120ec576120eb612911565b5b6040519080825280601f01601f19166020018201604052801561211e5781602001600182028036833780820191505090505b509050600082602001820190505b600115612181578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a858161217557612174613546565b5b0494506000850361212c575b819350505050919050565b60009392505050565b600033905090565b6121a7838361238d565b60008373ffffffffffffffffffffffffffffffffffffffff163b1461223557600080549050600083820390505b6121e76000868380600101945086611edc565b61221d576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8181106121d457816000541461223257600080fd5b50505b505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612298577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161228e5761228d613546565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106122d5576d04ee2d6d415b85acef810000000083816122cb576122ca613546565b5b0492506020810190505b662386f26fc10000831061230457662386f26fc1000083816122fa576122f9613546565b5b0492506010810190505b6305f5e100831061232d576305f5e100838161232357612322613546565b5b0492506008810190505b612710831061235257612710838161234857612347613546565b5b0492506004810190505b60648310612375576064838161236b5761236a613546565b5b0492506002810190505b600a8310612384576001810190505b80915050919050565b600080549050600082036123cd576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6123da6000848385611d08565b600160406001901b178202600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550612451836124426000866000611d0e565b61244b85612548565b17611d36565b6004600083815260200190815260200160002081905550600080838301905073ffffffffffffffffffffffffffffffffffffffff85169150828260007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600183015b8181146124f257808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a46001810190506124b7565b506000820361252d576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060008190555050506125436000848385611d61565b505050565b60006001821460e11b9050919050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125978261256c565b9050919050565b6125a78161258c565b81146125b257600080fd5b50565b6000813590506125c48161259e565b92915050565b6000602082840312156125e0576125df612562565b5b60006125ee848285016125b5565b91505092915050565b6000819050919050565b61260a816125f7565b82525050565b60006020820190506126256000830184612601565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6126608161262b565b811461266b57600080fd5b50565b60008135905061267d81612657565b92915050565b60006020828403121561269957612698612562565b5b60006126a78482850161266e565b91505092915050565b60008115159050919050565b6126c5816126b0565b82525050565b60006020820190506126e060008301846126bc565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612720578082015181840152602081019050612705565b60008484015250505050565b6000601f19601f8301169050919050565b6000612748826126e6565b61275281856126f1565b9350612762818560208601612702565b61276b8161272c565b840191505092915050565b60006020820190508181036000830152612790818461273d565b905092915050565b6127a1816125f7565b81146127ac57600080fd5b50565b6000813590506127be81612798565b92915050565b6000602082840312156127da576127d9612562565b5b60006127e8848285016127af565b91505092915050565b6127fa8161258c565b82525050565b600060208201905061281560008301846127f1565b92915050565b6000806040838503121561283257612831612562565b5b6000612840858286016125b5565b9250506020612851858286016127af565b9150509250929050565b60008060006060848603121561287457612873612562565b5b6000612882868287016125b5565b9350506020612893868287016125b5565b92505060406128a4868287016127af565b9150509250925092565b6128b7816126b0565b81146128c257600080fd5b50565b6000813590506128d4816128ae565b92915050565b6000602082840312156128f0576128ef612562565b5b60006128fe848285016128c5565b91505092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6129498261272c565b810181811067ffffffffffffffff8211171561296857612967612911565b5b80604052505050565b600061297b612558565b90506129878282612940565b919050565b600067ffffffffffffffff8211156129a7576129a6612911565b5b6129b08261272c565b9050602081019050919050565b82818337600083830152505050565b60006129df6129da8461298c565b612971565b9050828152602081018484840111156129fb576129fa61290c565b5b612a068482856129bd565b509392505050565b600082601f830112612a2357612a22612907565b5b8135612a338482602086016129cc565b91505092915050565b600060208284031215612a5257612a51612562565b5b600082013567ffffffffffffffff811115612a7057612a6f612567565b5b612a7c84828501612a0e565b91505092915050565b60008060408385031215612a9c57612a9b612562565b5b6000612aaa858286016125b5565b9250506020612abb858286016128c5565b9150509250929050565b600067ffffffffffffffff821115612ae057612adf612911565b5b612ae98261272c565b9050602081019050919050565b6000612b09612b0484612ac5565b612971565b905082815260208101848484011115612b2557612b2461290c565b5b612b308482856129bd565b509392505050565b600082601f830112612b4d57612b4c612907565b5b8135612b5d848260208601612af6565b91505092915050565b60008060008060808587031215612b8057612b7f612562565b5b6000612b8e878288016125b5565b9450506020612b9f878288016125b5565b9350506040612bb0878288016127af565b925050606085013567ffffffffffffffff811115612bd157612bd0612567565b5b612bdd87828801612b38565b91505092959194509250565b60008060408385031215612c0057612bff612562565b5b6000612c0e858286016125b5565b9250506020612c1f858286016125b5565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612c7057607f821691505b602082108103612c8357612c82612c29565b5b50919050565b600081905092915050565b50565b6000612ca4600083612c89565b9150612caf82612c94565b600082019050919050565b6000612cc582612c97565b9150819050919050565b7f49742773206e6f7420706f737369626c65000000000000000000000000000000600082015250565b6000612d056011836126f1565b9150612d1082612ccf565b602082019050919050565b60006020820190508181036000830152612d3481612cf8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612d75826125f7565b9150612d80836125f7565b9250828201905080821115612d9857612d97612d3b565b5b92915050565b7f45786365656473206d6178696d756d20737570706c7900000000000000000000600082015250565b6000612dd46016836126f1565b9150612ddf82612d9e565b602082019050919050565b60006020820190508181036000830152612e0381612dc7565b9050919050565b7f4d696e74206973206f6e20706175736500000000000000000000000000000000600082015250565b6000612e406010836126f1565b9150612e4b82612e0a565b602082019050919050565b60006020820190508181036000830152612e6f81612e33565b9050919050565b6000612e81826125f7565b9150612e8c836125f7565b9250828202612e9a816125f7565b91508282048414831517612eb157612eb0612d3b565b5b5092915050565b7f496e73756666696369656e742066756e64730000000000000000000000000000600082015250565b6000612eee6012836126f1565b9150612ef982612eb8565b602082019050919050565b60006020820190508181036000830152612f1d81612ee1565b9050919050565b6000612f2f826125f7565b9150612f3a836125f7565b9250828203905081811115612f5257612f51612d3b565b5b92915050565b7f45786365656473206d6178696d756d207065722077616c6c6574000000000000600082015250565b6000612f8e601a836126f1565b9150612f9982612f58565b602082019050919050565b60006020820190508181036000830152612fbd81612f81565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026130267fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612fe9565b6130308683612fe9565b95508019841693508086168417925050509392505050565b6000819050919050565b600061306d613068613063846125f7565b613048565b6125f7565b9050919050565b6000819050919050565b61308783613052565b61309b61309382613074565b848454612ff6565b825550505050565b600090565b6130b06130a3565b6130bb81848461307e565b505050565b5b818110156130df576130d46000826130a8565b6001810190506130c1565b5050565b601f821115613124576130f581612fc4565b6130fe84612fd9565b8101602085101561310d578190505b61312161311985612fd9565b8301826130c0565b50505b505050565b600082821c905092915050565b600061314760001984600802613129565b1980831691505092915050565b60006131608383613136565b9150826002028217905092915050565b613179826126e6565b67ffffffffffffffff81111561319257613191612911565b5b61319c8254612c58565b6131a78282856130e3565b600060209050601f8311600181146131da57600084156131c8578287015190505b6131d28582613154565b86555061323a565b601f1984166131e886612fc4565b60005b82811015613210578489015182556001820191506020850194506020810190506131eb565b8683101561322d5784890151613229601f891682613136565b8355505b6001600288020188555050505b505050505050565b7f4e465420646f65736e2774206578697374000000000000000000000000000000600082015250565b60006132786011836126f1565b915061328382613242565b602082019050919050565b600060208201905081810360008301526132a78161326b565b9050919050565b600081905092915050565b60006132c4826126e6565b6132ce81856132ae565b93506132de818560208601612702565b80840191505092915050565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b60006133206005836132ae565b915061332b826132ea565b600582019050919050565b600061334282856132b9565b915061334e82846132b9565b915061335982613313565b91508190509392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006133c16026836126f1565b91506133cc82613365565b604082019050919050565b600060208201905081810360008301526133f0816133b4565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061342d6020836126f1565b9150613438826133f7565b602082019050919050565b6000602082019050818103600083015261345c81613420565b9050919050565b600081519050919050565b600082825260208201905092915050565b600061348a82613463565b613494818561346e565b93506134a4818560208601612702565b6134ad8161272c565b840191505092915050565b60006080820190506134cd60008301876127f1565b6134da60208301866127f1565b6134e76040830185612601565b81810360608301526134f9818461347f565b905095945050505050565b60008151905061351381612657565b92915050565b60006020828403121561352f5761352e612562565b5b600061353d84828501613504565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfea26469706673582212200e8041f35365d841cf19db5929b2ec4fa0307fb5ed36703a9b16f225661d024e64736f6c6343000813003300000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000043697066733a2f2f6261667962656968736275337274673773756a6e7770636c746a67347772723264797764787a61356f746d36656270376d6a6b336a7a686b7571752f0000000000000000000000000000000000000000000000000000000000