60806040526000600360146101000a81548163ffffffff021916908363ffffffff1602179055503480156200003357600080fd5b50604051620037ba380380620037ba8339818101604052810190620000599190620002ab565b806200006b816200009360201b60201c565b506200008c62000080620000af60201b60201c565b620000b760201b60201c565b5062000480565b8060029080519060200190620000ab9291906200017d565b5050565b600033905090565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8280546200018b9062000391565b90600052602060002090601f016020900481019282620001af5760008555620001fb565b82601f10620001ca57805160ff1916838001178555620001fb565b82800160010185558215620001fb579182015b82811115620001fa578251825591602001919060010190620001dd565b5b5090506200020a91906200020e565b5090565b5b80821115620002295760008160009055506001016200020f565b5090565b6000620002446200023e8462000325565b620002fc565b90508281526020810184848401111562000263576200026262000460565b5b620002708482856200035b565b509392505050565b600082601f83011262000290576200028f6200045b565b5b8151620002a28482602086016200022d565b91505092915050565b600060208284031215620002c457620002c36200046a565b5b600082015167ffffffffffffffff811115620002e557620002e462000465565b5b620002f38482850162000278565b91505092915050565b6000620003086200031b565b9050620003168282620003c7565b919050565b6000604051905090565b600067ffffffffffffffff8211156200034357620003426200042c565b5b6200034e826200046f565b9050602081019050919050565b60005b838110156200037b5780820151818401526020810190506200035e565b838111156200038b576000848401525b50505050565b60006002820490506001821680620003aa57607f821691505b60208210811415620003c157620003c0620003fd565b5b50919050565b620003d2826200046f565b810181811067ffffffffffffffff82111715620003f457620003f36200042c565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b61332a80620004906000396000f3fe608060405234801561001057600080fd5b506004361061010a5760003560e01c80634e1273f4116100a257806395d89b411161007157806395d89b41146102a5578063a22cb465146102c3578063e985e9c5146102df578063f242432a1461030f578063f2fde38b1461032b5761010a565b80634e1273f414610231578063715018a614610261578063729ad39e1461026b5780638da5cb5b146102875761010a565b80630e89341c116100de5780630e89341c146101a957806318160ddd146101d95780632eb2c2d6146101f757806332cb6b0c146102135761010a565b8062fdd58e1461010f57806301ffc9a71461013f57806302fe53051461016f57806306fdde031461018b575b600080fd5b6101296004803603810190610124919061210c565b610347565b6040516101369190612935565b60405180910390f35b61015960048036038101906101549190612211565b610410565b6040516101669190612738565b60405180910390f35b6101896004803603810190610184919061226b565b6104f2565b005b6101936105bf565b6040516101a09190612753565b60405180910390f35b6101c360048036038101906101be91906122b8565b6105f8565b6040516101d09190612753565b60405180910390f35b6101e161068c565b6040516101ee9190612979565b60405180910390f35b610211600480360381019061020c9190611f66565b6106a2565b005b61021b610743565b6040516102289190612979565b60405180910390f35b61024b60048036038101906102469190612199565b610748565b60405161025891906126df565b60405180910390f35b610269610861565b005b6102856004803603810190610280919061214c565b6108e9565b005b61028f610aa1565b60405161029c9190612602565b60405180910390f35b6102ad610acb565b6040516102ba9190612753565b60405180910390f35b6102dd60048036038101906102d891906120cc565b610b04565b005b6102f960048036038101906102f49190611f26565b610b1a565b6040516103069190612738565b60405180910390f35b61032960048036038101906103249190612035565b610bae565b005b61034560048036038101906103409190611ef9565b610c4f565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156103b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103af906127b5565b60405180910390fd5b60008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806104db57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806104eb57506104ea82610d47565b5b9050919050565b6104fa610db1565b73ffffffffffffffffffffffffffffffffffffffff16610518610aa1565b73ffffffffffffffffffffffffffffffffffffffff161461056e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056590612875565b60405180910390fd5b6105bb82828080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610db9565b5050565b6040518060400160405280600c81526020017f4d616c626f6e205768616c65000000000000000000000000000000000000000081525081565b60606002805461060790612c09565b80601f016020809104026020016040519081016040528092919081815260200182805461063390612c09565b80156106805780601f1061065557610100808354040283529160200191610680565b820191906000526020600020905b81548152906001019060200180831161066357829003601f168201915b50505050509050919050565b600360149054906101000a900463ffffffff1681565b6106aa610db1565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806106f057506106ef856106ea610db1565b610b1a565b5b61072f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072690612835565b60405180910390fd5b61073c8585858585610dd3565b5050505050565b601e81565b6060815183511461078e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610785906128d5565b60405180910390fd5b6000835167ffffffffffffffff8111156107ab576107aa612d6f565b5b6040519080825280602002602001820160405280156107d95781602001602082028036833780820191505090505b50905060005b8451811015610856576108268582815181106107fe576107fd612d40565b5b602002602001015185838151811061081957610818612d40565b5b6020026020010151610347565b82828151811061083957610838612d40565b5b6020026020010181815250508061084f90612c6c565b90506107df565b508091505092915050565b610869610db1565b73ffffffffffffffffffffffffffffffffffffffff16610887610aa1565b73ffffffffffffffffffffffffffffffffffffffff16146108dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d490612875565b60405180910390fd5b6108e760006110e7565b565b6108f1610db1565b73ffffffffffffffffffffffffffffffffffffffff1661090f610aa1565b73ffffffffffffffffffffffffffffffffffffffff1614610965576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095c90612875565b60405180910390fd5b601e63ffffffff1682829050600360149054906101000a900463ffffffff1663ffffffff166109949190612ab3565b106109d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cb90612895565b60405180910390fd5b60005b828290508163ffffffff161015610a9c57610a4983838363ffffffff16818110610a0457610a03612d40565b5b9050602002016020810190610a199190611ef9565b600360149054906101000a900463ffffffff1663ffffffff166001604051806020016040528060008152506111ad565b6001600360148282829054906101000a900463ffffffff16610a6b9190612b09565b92506101000a81548163ffffffff021916908363ffffffff1602179055508080610a9490612cb5565b9150506109d7565b505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6040518060400160405280600681526020017f4d414c424f4e000000000000000000000000000000000000000000000000000081525081565b610b16610b0f610db1565b8383611343565b5050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610bb6610db1565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480610bfc5750610bfb85610bf6610db1565b610b1a565b5b610c3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c32906127f5565b60405180910390fd5b610c4885858585856114b0565b5050505050565b610c57610db1565b73ffffffffffffffffffffffffffffffffffffffff16610c75610aa1565b73ffffffffffffffffffffffffffffffffffffffff1614610ccb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc290612875565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d32906127d5565b60405180910390fd5b610d44816110e7565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b8060029080519060200190610dcf929190611b95565b5050565b8151835114610e17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0e906128f5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610e87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7e90612815565b60405180910390fd5b6000610e91610db1565b9050610ea1818787878787611732565b60005b8451811015611052576000858281518110610ec257610ec1612d40565b5b602002602001015190506000858381518110610ee157610ee0612d40565b5b60200260200101519050600080600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610f82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7990612855565b60405180910390fd5b81810360008085815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546110379190612ab3565b925050819055505050508061104b90612c6c565b9050610ea4565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516110c9929190612701565b60405180910390a46110df81878787878761173a565b505050505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561121d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121490612915565b60405180910390fd5b6000611227610db1565b90506112488160008761123988611921565b61124288611921565b87611732565b8260008086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546112a79190612ab3565b925050819055508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628787604051611325929190612950565b60405180910390a461133c8160008787878761199b565b5050505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a9906128b5565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516114a39190612738565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611520576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151790612815565b60405180910390fd5b600061152a610db1565b905061154a81878761153b88611921565b61154488611921565b87611732565b600080600086815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050838110156115e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d890612855565b60405180910390fd5b83810360008087815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508360008087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116969190612ab3565b925050819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628888604051611713929190612950565b60405180910390a461172982888888888861199b565b50505050505050565b505050505050565b6117598473ffffffffffffffffffffffffffffffffffffffff16611b82565b15611919578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b815260040161179f95949392919061261d565b602060405180830381600087803b1580156117b957600080fd5b505af19250505080156117ea57506040513d601f19601f820116820180604052508101906117e7919061223e565b60015b611890576117f6612d9e565b806308c379a01415611853575061180b613202565b806118165750611855565b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184a9190612753565b60405180910390fd5b505b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188790612775565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611917576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190e90612795565b60405180910390fd5b505b505050505050565b60606000600167ffffffffffffffff8111156119405761193f612d6f565b5b60405190808252806020026020018201604052801561196e5781602001602082028036833780820191505090505b509050828160008151811061198657611985612d40565b5b60200260200101818152505080915050919050565b6119ba8473ffffffffffffffffffffffffffffffffffffffff16611b82565b15611b7a578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611a00959493929190612685565b602060405180830381600087803b158015611a1a57600080fd5b505af1925050508015611a4b57506040513d601f19601f82011682018060405250810190611a48919061223e565b60015b611af157611a57612d9e565b806308c379a01415611ab45750611a6c613202565b80611a775750611ab6565b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aab9190612753565b60405180910390fd5b505b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae890612775565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611b78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6f90612795565b60405180910390fd5b505b505050505050565b600080823b905060008111915050919050565b828054611ba190612c09565b90600052602060002090601f016020900481019282611bc35760008555611c0a565b82601f10611bdc57805160ff1916838001178555611c0a565b82800160010185558215611c0a579182015b82811115611c09578251825591602001919060010190611bee565b5b509050611c179190611c1b565b5090565b5b80821115611c34576000816000905550600101611c1c565b5090565b6000611c4b611c46846129b9565b612994565b90508083825260208201905082856020860282011115611c6e57611c6d612dca565b5b60005b85811015611c9e5781611c848882611d5a565b845260208401935060208301925050600181019050611c71565b5050509392505050565b6000611cbb611cb6846129e5565b612994565b90508083825260208201905082856020860282011115611cde57611cdd612dca565b5b60005b85811015611d0e5781611cf48882611ee4565b845260208401935060208301925050600181019050611ce1565b5050509392505050565b6000611d2b611d2684612a11565b612994565b905082815260208101848484011115611d4757611d46612dcf565b5b611d52848285612bc7565b509392505050565b600081359050611d6981613298565b92915050565b60008083601f840112611d8557611d84612dc5565b5b8235905067ffffffffffffffff811115611da257611da1612dc0565b5b602083019150836020820283011115611dbe57611dbd612dca565b5b9250929050565b600082601f830112611dda57611dd9612dc5565b5b8135611dea848260208601611c38565b91505092915050565b600082601f830112611e0857611e07612dc5565b5b8135611e18848260208601611ca8565b91505092915050565b600081359050611e30816132af565b92915050565b600081359050611e45816132c6565b92915050565b600081519050611e5a816132c6565b92915050565b600082601f830112611e7557611e74612dc5565b5b8135611e85848260208601611d18565b91505092915050565b60008083601f840112611ea457611ea3612dc5565b5b8235905067ffffffffffffffff811115611ec157611ec0612dc0565b5b602083019150836001820283011115611edd57611edc612dca565b5b9250929050565b600081359050611ef3816132dd565b92915050565b600060208284031215611f0f57611f0e612dd9565b5b6000611f1d84828501611d5a565b91505092915050565b60008060408385031215611f3d57611f3c612dd9565b5b6000611f4b85828601611d5a565b9250506020611f5c85828601611d5a565b9150509250929050565b600080600080600060a08688031215611f8257611f81612dd9565b5b6000611f9088828901611d5a565b9550506020611fa188828901611d5a565b945050604086013567ffffffffffffffff811115611fc257611fc1612dd4565b5b611fce88828901611df3565b935050606086013567ffffffffffffffff811115611fef57611fee612dd4565b5b611ffb88828901611df3565b925050608086013567ffffffffffffffff81111561201c5761201b612dd4565b5b61202888828901611e60565b9150509295509295909350565b600080600080600060a0868803121561205157612050612dd9565b5b600061205f88828901611d5a565b955050602061207088828901611d5a565b945050604061208188828901611ee4565b935050606061209288828901611ee4565b925050608086013567ffffffffffffffff8111156120b3576120b2612dd4565b5b6120bf88828901611e60565b9150509295509295909350565b600080604083850312156120e3576120e2612dd9565b5b60006120f185828601611d5a565b925050602061210285828601611e21565b9150509250929050565b6000806040838503121561212357612122612dd9565b5b600061213185828601611d5a565b925050602061214285828601611ee4565b9150509250929050565b6000806020838503121561216357612162612dd9565b5b600083013567ffffffffffffffff81111561218157612180612dd4565b5b61218d85828601611d6f565b92509250509250929050565b600080604083850312156121b0576121af612dd9565b5b600083013567ffffffffffffffff8111156121ce576121cd612dd4565b5b6121da85828601611dc5565b925050602083013567ffffffffffffffff8111156121fb576121fa612dd4565b5b61220785828601611df3565b9150509250929050565b60006020828403121561222757612226612dd9565b5b600061223584828501611e36565b91505092915050565b60006020828403121561225457612253612dd9565b5b600061226284828501611e4b565b91505092915050565b6000806020838503121561228257612281612dd9565b5b600083013567ffffffffffffffff8111156122a05761229f612dd4565b5b6122ac85828601611e8e565b92509250509250929050565b6000602082840312156122ce576122cd612dd9565b5b60006122dc84828501611ee4565b91505092915050565b60006122f183836125d5565b60208301905092915050565b61230681612b43565b82525050565b600061231782612a52565b6123218185612a80565b935061232c83612a42565b8060005b8381101561235d57815161234488826122e5565b975061234f83612a73565b925050600181019050612330565b5085935050505092915050565b61237381612b55565b82525050565b600061238482612a5d565b61238e8185612a91565b935061239e818560208601612bd6565b6123a781612dde565b840191505092915050565b60006123bd82612a68565b6123c78185612aa2565b93506123d7818560208601612bd6565b6123e081612dde565b840191505092915050565b60006123f8603483612aa2565b915061240382612dfc565b604082019050919050565b600061241b602883612aa2565b915061242682612e4b565b604082019050919050565b600061243e602b83612aa2565b915061244982612e9a565b604082019050919050565b6000612461602683612aa2565b915061246c82612ee9565b604082019050919050565b6000612484602983612aa2565b915061248f82612f38565b604082019050919050565b60006124a7602583612aa2565b91506124b282612f87565b604082019050919050565b60006124ca603283612aa2565b91506124d582612fd6565b604082019050919050565b60006124ed602a83612aa2565b91506124f882613025565b604082019050919050565b6000612510602083612aa2565b915061251b82613074565b602082019050919050565b6000612533601883612aa2565b915061253e8261309d565b602082019050919050565b6000612556602983612aa2565b9150612561826130c6565b604082019050919050565b6000612579602983612aa2565b915061258482613115565b604082019050919050565b600061259c602883612aa2565b91506125a782613164565b604082019050919050565b60006125bf602183612aa2565b91506125ca826131b3565b604082019050919050565b6125de81612bad565b82525050565b6125ed81612bad565b82525050565b6125fc81612bb7565b82525050565b600060208201905061261760008301846122fd565b92915050565b600060a08201905061263260008301886122fd565b61263f60208301876122fd565b8181036040830152612651818661230c565b90508181036060830152612665818561230c565b905081810360808301526126798184612379565b90509695505050505050565b600060a08201905061269a60008301886122fd565b6126a760208301876122fd565b6126b460408301866125e4565b6126c160608301856125e4565b81810360808301526126d38184612379565b90509695505050505050565b600060208201905081810360008301526126f9818461230c565b905092915050565b6000604082019050818103600083015261271b818561230c565b9050818103602083015261272f818461230c565b90509392505050565b600060208201905061274d600083018461236a565b92915050565b6000602082019050818103600083015261276d81846123b2565b905092915050565b6000602082019050818103600083015261278e816123eb565b9050919050565b600060208201905081810360008301526127ae8161240e565b9050919050565b600060208201905081810360008301526127ce81612431565b9050919050565b600060208201905081810360008301526127ee81612454565b9050919050565b6000602082019050818103600083015261280e81612477565b9050919050565b6000602082019050818103600083015261282e8161249a565b9050919050565b6000602082019050818103600083015261284e816124bd565b9050919050565b6000602082019050818103600083015261286e816124e0565b9050919050565b6000602082019050818103600083015261288e81612503565b9050919050565b600060208201905081810360008301526128ae81612526565b9050919050565b600060208201905081810360008301526128ce81612549565b9050919050565b600060208201905081810360008301526128ee8161256c565b9050919050565b6000602082019050818103600083015261290e8161258f565b9050919050565b6000602082019050818103600083015261292e816125b2565b9050919050565b600060208201905061294a60008301846125e4565b92915050565b600060408201905061296560008301856125e4565b61297260208301846125e4565b9392505050565b600060208201905061298e60008301846125f3565b92915050565b600061299e6129af565b90506129aa8282612c3b565b919050565b6000604051905090565b600067ffffffffffffffff8211156129d4576129d3612d6f565b5b602082029050602081019050919050565b600067ffffffffffffffff821115612a00576129ff612d6f565b5b602082029050602081019050919050565b600067ffffffffffffffff821115612a2c57612a2b612d6f565b5b612a3582612dde565b9050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612abe82612bad565b9150612ac983612bad565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612afe57612afd612ce2565b5b828201905092915050565b6000612b1482612bb7565b9150612b1f83612bb7565b92508263ffffffff03821115612b3857612b37612ce2565b5b828201905092915050565b6000612b4e82612b8d565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b82818337600083830152505050565b60005b83811015612bf4578082015181840152602081019050612bd9565b83811115612c03576000848401525b50505050565b60006002820490506001821680612c2157607f821691505b60208210811415612c3557612c34612d11565b5b50919050565b612c4482612dde565b810181811067ffffffffffffffff82111715612c6357612c62612d6f565b5b80604052505050565b6000612c7782612bad565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612caa57612ca9612ce2565b5b600182019050919050565b6000612cc082612bb7565b915063ffffffff821415612cd757612cd6612ce2565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060033d1115612dbd5760046000803e612dba600051612def565b90505b90565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160e01c9050919050565b7f455243313135353a207472616e7366657220746f206e6f6e204552433131353560008201527f526563656976657220696d706c656d656e746572000000000000000000000000602082015250565b7f455243313135353a204552433131353552656365697665722072656a6563746560008201527f6420746f6b656e73000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a2062616c616e636520717565727920666f7220746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260008201527f20617070726f7665640000000000000000000000000000000000000000000000602082015250565b7f455243313135353a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a207472616e736665722063616c6c6572206973206e6f742060008201527f6f776e6572206e6f7220617070726f7665640000000000000000000000000000602082015250565b7f455243313135353a20696e73756666696369656e742062616c616e636520666f60008201527f72207472616e7366657200000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f436f756e742065786365656473206d617820737570706c790000000000000000600082015250565b7f455243313135353a2073657474696e6720617070726f76616c2073746174757360008201527f20666f722073656c660000000000000000000000000000000000000000000000602082015250565b7f455243313135353a206163636f756e747320616e6420696473206c656e67746860008201527f206d69736d617463680000000000000000000000000000000000000000000000602082015250565b7f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060008201527f6d69736d61746368000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a206d696e7420746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600060443d101561321257613295565b61321a6129af565b60043d036004823e80513d602482011167ffffffffffffffff82111715613242575050613295565b808201805167ffffffffffffffff8111156132605750505050613295565b80602083010160043d03850181111561327d575050505050613295565b61328c82602001850186612c3b565b82955050505050505b90565b6132a181612b43565b81146132ac57600080fd5b50565b6132b881612b55565b81146132c357600080fd5b50565b6132cf81612b61565b81146132da57600080fd5b50565b6132e681612bad565b81146132f157600080fd5b5056fea264697066735822122070b6897ca750d2a53ce534a48cba70f77f81cc1682911bbdd8e6d2dbb52f7f8764736f6c634300080700330000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000005668747470733a2f2f6161756e66742e6d7970696e6174612e636c6f75642f697066732f516d534b78696348574d5074754457774563775052754163726834764145595a424d6e4e5070527158324c6d56312f7b69647d00000000000000000000