60806040526000600b553480156200001657600080fd5b5060405162003d6438038062003d648339810160408190526200003991620001f9565b6040518060400160405280600b81526020016a416666696e65205061737360a81b81525060405180604001604052806005815260200164415041535360d81b81525081600090816200008c9190620002b8565b5060016200009b8282620002b8565b505050620000b8620000b26200011d60201b60201c565b62000121565b80600e81905550620000d660126200017360201b62001c4c1760201c565b336000908152600f6020908152604091829020805460ff19166001179055815160608101909252602a80835262000116929162003d3a908301396200017c565b5062000384565b3390565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b80546001019055565b6200018662000198565b600d620001948282620002b8565b5050565b600a546001600160a01b03163314620001f75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640160405180910390fd5b565b6000602082840312156200020c57600080fd5b5051919050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200023e57607f821691505b6020821081036200025f57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620002b357600081815260208120601f850160051c810160208610156200028e5750805b601f850160051c820191505b81811015620002af578281556001016200029a565b5050505b505050565b81516001600160401b03811115620002d457620002d462000213565b620002ec81620002e5845462000229565b8462000265565b602080601f8311600181146200032457600084156200030b5750858301515b600019600386901b1c1916600185901b178555620002af565b600085815260208120601f198616915b82811015620003555788860151825594840194600190910190840162000334565b5085821015620003745787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6139a680620003946000396000f3fe6080604052600436106103135760003560e01c806365f130971161019a578063b88d4fde116100e1578063e222c7f91161008a578063f2fde38b11610064578063f2fde38b146108b9578063f906751b146108d9578063fa790141146108f957600080fd5b8063e222c7f914610834578063e985e9c514610849578063eb8d24441461089f57600080fd5b8063d5582965116100bb578063d5582965146107df578063d82bc7c6146107f4578063dcc67de91461081457600080fd5b8063b88d4fde1461079f578063c08dfd3c1461063a578063c87b56dd146107bf57600080fd5b806375675749116101435780638da5cb5b1161011d5780638da5cb5b1461073f57806395d89b411461076a578063a22cb4651461077f57600080fd5b806375675749146106df5780637cb64759146106ff5780638c2a993e1461071f57600080fd5b80636f147a8c116101745780636f147a8c1461067a57806370a08231146106aa578063715018a6146106ca57600080fd5b806365f130971461063a5780636c0360eb1461064f5780636ceefebb1461066457600080fd5b806332cb6b0c1161025e5780634f6ccce7116102075780635a23dd99116101e15780635a23dd99146105e45780636352211e1461060457806363ff5e171461062457600080fd5b80634f6ccce71461058f57806355f804b3146105af57806359eda1b5146105cf57600080fd5b806342842e0e1161023857806342842e0e1461053c57806342966c681461055c57806344d843811461057c57600080fd5b806332cb6b0c146104cc57806338e21cce146104e25780633ccfd60b1461052757600080fd5b806310b5454d116102c057806323b872dd1161029a57806323b872dd146104765780632eb4a7ab146104965780632f745c59146104ac57600080fd5b806310b5454d146104305780631249c58b1461044f57806318160ddd1461045757600080fd5b8063081812fc116102f1578063081812fc14610384578063095ce7c1146103c9578063095ea7b31461040e57600080fd5b806301ffc9a71461031857806306fdde031461034d57806307ed51011461036f575b600080fd5b34801561032457600080fd5b506103386103333660046130e4565b61090e565b60405190151581526020015b60405180910390f35b34801561035957600080fd5b5061036261091f565b604051610344919061316f565b34801561037b57600080fd5b506103386109b1565b34801561039057600080fd5b506103a461039f366004613182565b6109e0565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610344565b3480156103d557600080fd5b506103386103e43660046131c4565b73ffffffffffffffffffffffffffffffffffffffff16600090815260116020526040902054151590565b34801561041a57600080fd5b5061042e6104293660046131df565b610a14565b005b34801561043c57600080fd5b50600c5461033890610100900460ff1681565b61042e610ba5565b34801561046357600080fd5b506008545b604051908152602001610344565b34801561048257600080fd5b5061042e610491366004613209565b610d48565b3480156104a257600080fd5b50610468600e5481565b3480156104b857600080fd5b506104686104c73660046131df565b610dea565b3480156104d857600080fd5b50610468610bb881565b3480156104ee57600080fd5b506103386104fd3660046131c4565b73ffffffffffffffffffffffffffffffffffffffff16600090815260106020526040902054151590565b34801561053357600080fd5b5061042e610eb9565b34801561054857600080fd5b5061042e610557366004613209565b610f2a565b34801561056857600080fd5b5061042e610577366004613182565b610f45565b61042e61058a366004613352565b610fe3565b34801561059b57600080fd5b506104686105aa366004613182565b611197565b3480156105bb57600080fd5b5061042e6105ca3660046133fd565b611255565b3480156105db57600080fd5b5061042e611269565b3480156105f057600080fd5b506103386105ff366004613446565b6112cd565b34801561061057600080fd5b506103a461061f366004613182565b611331565b34801561063057600080fd5b506104686103dc81565b34801561064657600080fd5b50610468600181565b34801561065b57600080fd5b506103626113bd565b34801561067057600080fd5b50610468600b5481565b34801561068657600080fd5b506103386106953660046131c4565b600f6020526000908152604090205460ff1681565b3480156106b657600080fd5b506104686106c53660046131c4565b61144b565b3480156106d657600080fd5b5061042e611519565b3480156106eb57600080fd5b5061042e6106fa366004613494565b61152d565b34801561070b57600080fd5b5061042e61071a366004613182565b6116c8565b34801561072b57600080fd5b5061042e61073a3660046131df565b611703565b34801561074b57600080fd5b50600a5473ffffffffffffffffffffffffffffffffffffffff166103a4565b34801561077657600080fd5b50610362611786565b34801561078b57600080fd5b5061042e61079a36600461354a565b611795565b3480156107ab57600080fd5b5061042e6107ba366004613586565b6117a0565b3480156107cb57600080fd5b506103626107da366004613182565b611848565b3480156107eb57600080fd5b5061042e6118af565b34801561080057600080fd5b5061042e61080f36600461354a565b6118e1565b34801561082057600080fd5b5061042e61082f366004613182565b61193f565b34801561084057600080fd5b5061042e6119b8565b34801561085557600080fd5b50610338610864366004613602565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260056020908152604080832093909416825291909152205460ff1690565b3480156108ab57600080fd5b50600c546103389060ff1681565b3480156108c557600080fd5b5061042e6108d43660046131c4565b611a14565b3480156108e557600080fd5b5061042e6108f4366004613182565b611ac8565b34801561090557600080fd5b50610468611c3b565b600061091982611c55565b92915050565b60606000805461092e90613635565b80601f016020809104026020016040519081016040528092919081815260200182805461095a90613635565b80156109a75780601f1061097c576101008083540402835291602001916109a7565b820191906000526020600020905b81548152906001019060200180831161098a57829003601f168201915b5050505050905090565b600080600b546109c060085490565b6109ca91906136b7565b90506109da6103dc610bb86136b7565b11919050565b60006109eb82611cab565b5060009081526004602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b6000610a1f82611331565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ae1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff82161480610b0a5750610b0a8133610864565b610b96576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610ad8565b610ba08383611d36565b505050565b600c5460ff16610c11576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f53616c65206973206e6f742061637469766500000000000000000000000000006044820152606401610ad8565b610c196109b1565b610c7f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f45786365656473206d617820737570706c7900000000000000000000000000006044820152606401610ad8565b33600090815260106020526040902054600190610c9c90826136ca565b1115610d04576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f45786365656473206d6178207075626c6963206d696e740000000000000000006044820152606401610ad8565b336000908152601060205260408120805460019290610d249084906136ca565b9091555050601254610d3a601280546001019055565b610d45335b82611dd6565b50565b610d53335b82611df0565b610ddf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f766564000000000000000000000000000000000000006064820152608401610ad8565b610ba0838383611eaf565b6000610df58361144b565b8210610e83576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201527f74206f6620626f756e64730000000000000000000000000000000000000000006064820152608401610ad8565b5073ffffffffffffffffffffffffffffffffffffffff919091166000908152600660209081526040808320938352929052205490565b610ec16121b7565b47610ee1600a5473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610f26573d6000803e3d6000fd5b5050565b610ba0838383604051806020016040528060008152506117a0565b610f4e33610d4d565b610fda576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f766564000000000000000000000000000000000000006064820152608401610ad8565b610d4581612238565b600c54610100900460ff168015610fff5750610fff33826112cd565b611065576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f53616c6520706175736564206f72206e6f742077686974656c697374656400006044820152606401610ad8565b61106d6109b1565b6110d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f45786365656473206d617820737570706c7900000000000000000000000000006044820152606401610ad8565b336000908152601160205260409020546001906110f090826136ca565b1115611158576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f45786365656473206d617820574c206d696e74000000000000000000000000006044820152606401610ad8565b3360009081526011602052604081208054600192906111789084906136ca565b909155505060125461118e601280546001019055565b610f2633610d3f565b60006111a260085490565b8210611230576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201527f7574206f6620626f756e647300000000000000000000000000000000000000006064820152608401610ad8565b60088281548110611243576112436136dd565b90600052602060002001549050919050565b61125d6121b7565b600d610f26828261375a565b6112716121b7565b600c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000081166101009182900460ff16159091027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016179055565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606084901b166020820152600090819060340160405160208183030381529060405280519060200120905061132983600e548361231e565b949350505050565b60008181526002602052604081205473ffffffffffffffffffffffffffffffffffffffff1680610919576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610ad8565b600d80546113ca90613635565b80601f01602080910402602001604051908101604052809291908181526020018280546113f690613635565b80156114435780601f1061141857610100808354040283529160200191611443565b820191906000526020600020905b81548152906001019060200180831161142657829003601f168201915b505050505081565b600073ffffffffffffffffffffffffffffffffffffffff82166114f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f74206120766160448201527f6c6964206f776e657200000000000000000000000000000000000000000000006064820152608401610ad8565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205490565b6115216121b7565b61152b6000612334565b565b6115356121b7565b80518251146115c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f526563697069656e747320616e64207175616e746974696573206c656e67746860448201527f206d69736d6174636800000000000000000000000000000000000000000000006064820152608401610ad8565b60005b8251811015610ba05760005b8282815181106115e7576115e76136dd565b60200260200101518110156116b5576115fe6109b1565b611664576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f45786365656473206d617820737570706c7900000000000000000000000000006044820152606401610ad8565b600061166f60125490565b905061167f601280546001019055565b6116a2858481518110611694576116946136dd565b602002602001015182611dd6565b50806116ad81613874565b9150506115d5565b50806116c081613874565b9150506115c9565b6116d06121b7565b600e81905560405181907fdc19f0450677d6677f518d36c8c7261672c50906ed02ca310f5c68f71a868db990600090a250565b336000908152600f602052604090205460ff1661177c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f4f6e6c79206272696467652063616e2063616c6c0000000000000000000000006044820152606401610ad8565b610f268282611dd6565b60606001805461092e90613635565b610f263383836123ab565b6117aa3383611df0565b611836576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f766564000000000000000000000000000000000000006064820152608401610ad8565b611842848484846124d8565b50505050565b606061185382611cab565b600061185d61257b565b9050600081511161187d57604051806020016040528060008152506118a8565b806118878461258a565b6040516020016118989291906138ac565b6040516020818303038152906040525b9392505050565b6118b76121b7565b600c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000169055565b6118e96121b7565b73ffffffffffffffffffffffffffffffffffffffff919091166000908152600f6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b336000908152600f602052604090205460ff16610fda576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f4f6e6c79206272696467652063616e2063616c6c0000000000000000000000006044820152606401610ad8565b6119c06121b7565b600c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff60ff821615167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000909116179055565b611a1c6121b7565b73ffffffffffffffffffffffffffffffffffffffff8116611abf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610ad8565b610d4581612334565b611ad06121b7565b610bb881611add60085490565b611ae791906136ca565b1115611b4f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f45786365656473206d617820737570706c7900000000000000000000000000006044820152606401610ad8565b6103dc81600b54611b6091906136ca565b1115611bc8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f45786365656473206d6178207265736572766520737570706c790000000000006044820152606401610ad8565b80600b6000828254611bda91906136ca565b90915550600090505b81811015610f26576000611bf660125490565b9050611c06601280546001019055565b611c28610d3f600a5473ffffffffffffffffffffffffffffffffffffffff1690565b5080611c3381613874565b915050611be3565b611c496103dc610bb86136b7565b81565b80546001019055565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f780e9d63000000000000000000000000000000000000000000000000000000001480610919575061091982612648565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff16610d45576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610ad8565b600081815260046020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091558190611d9082611331565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b610f2682826040518060200160405280600081525061272b565b600080611dfc83611331565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611e6a575073ffffffffffffffffffffffffffffffffffffffff80821660009081526005602090815260408083209388168352929052205460ff165b8061132957508373ffffffffffffffffffffffffffffffffffffffff16611e90846109e0565b73ffffffffffffffffffffffffffffffffffffffff1614949350505050565b8273ffffffffffffffffffffffffffffffffffffffff16611ecf82611331565b73ffffffffffffffffffffffffffffffffffffffff1614611f72576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e65720000000000000000000000000000000000000000000000000000006064820152608401610ad8565b73ffffffffffffffffffffffffffffffffffffffff8216612014576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610ad8565b61202183838360016127ce565b8273ffffffffffffffffffffffffffffffffffffffff1661204182611331565b73ffffffffffffffffffffffffffffffffffffffff16146120e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e65720000000000000000000000000000000000000000000000000000006064820152608401610ad8565b600081815260046020908152604080832080547fffffffffffffffffffffffff000000000000000000000000000000000000000090811690915573ffffffffffffffffffffffffffffffffffffffff8781168086526003855283862080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b600a5473ffffffffffffffffffffffffffffffffffffffff16331461152b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ad8565b600061224382611331565b90506122538160008460016127ce565b61225c82611331565b600083815260046020908152604080832080547fffffffffffffffffffffffff000000000000000000000000000000000000000090811690915573ffffffffffffffffffffffffffffffffffffffff85168085526003845282852080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190558785526002909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b60008261232b85846127da565b14949350505050565b600a805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612440576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610ad8565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526005602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6124e3848484611eaf565b6124ef84848484612827565b611842576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610ad8565b6060600d805461092e90613635565b6060600061259783612a1a565b600101905060008167ffffffffffffffff8111156125b7576125b7613245565b6040519080825280601f01601f1916602001820160405280156125e1576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85049450846125eb57509392505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd0000000000000000000000000000000000000000000000000000000014806126db57507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061091957507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610919565b6127358383612afc565b6127426000848484612827565b610ba0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610ad8565b61184284848484612d2f565b600081815b845181101561281f5761280b828683815181106127fe576127fe6136dd565b6020026020010151612ed3565b91508061281781613874565b9150506127df565b509392505050565b600073ffffffffffffffffffffffffffffffffffffffff84163b15612a0f576040517f150b7a0200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063150b7a029061289e9033908990889088906004016138db565b6020604051808303816000875af19250505080156128f7575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526128f491810190613924565b60015b6129c4573d808015612925576040519150601f19603f3d011682016040523d82523d6000602084013e61292a565b606091505b5080516000036129bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610ad8565b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a0200000000000000000000000000000000000000000000000000000000149050611329565b506001949350505050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612a63577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310612a8f576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310612aad57662386f26fc10000830492506010015b6305f5e1008310612ac5576305f5e100830492506008015b6127108310612ad957612710830492506004015b60648310612aeb576064830492506002015b600a83106109195760010192915050565b73ffffffffffffffffffffffffffffffffffffffff8216612b79576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610ad8565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff1615612c05576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610ad8565b612c136000838360016127ce565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff1615612c9f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610ad8565b73ffffffffffffffffffffffffffffffffffffffff8216600081815260036020908152604080832080546001019055848352600290915280822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6001811115612dc0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f455243373231456e756d657261626c653a20636f6e736563757469766520747260448201527f616e7366657273206e6f7420737570706f7274656400000000000000000000006064820152608401610ad8565b8173ffffffffffffffffffffffffffffffffffffffff8516612e2957612e2481600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b612e66565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614612e6657612e668582612eff565b73ffffffffffffffffffffffffffffffffffffffff8416612e8f57612e8a81612fb6565b612ecc565b8473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614612ecc57612ecc8482613065565b5050505050565b6000818310612eef5760008281526020849052604090206118a8565b5060009182526020526040902090565b60006001612f0c8461144b565b612f1691906136b7565b600083815260076020526040902054909150808214612f765773ffffffffffffffffffffffffffffffffffffffff841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b50600091825260076020908152604080842084905573ffffffffffffffffffffffffffffffffffffffff9094168352600681528383209183525290812055565b600854600090612fc8906001906136b7565b60008381526009602052604081205460088054939450909284908110612ff057612ff06136dd565b906000526020600020015490508060088381548110613011576130116136dd565b600091825260208083209091019290925582815260099091526040808220849055858252812055600880548061304957613049613941565b6001900381819060005260206000200160009055905550505050565b60006130708361144b565b73ffffffffffffffffffffffffffffffffffffffff9093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114610d4557600080fd5b6000602082840312156130f657600080fd5b81356118a8816130b6565b60005b8381101561311c578181015183820152602001613104565b50506000910152565b6000815180845261313d816020860160208601613101565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006118a86020830184613125565b60006020828403121561319457600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff811681146131bf57600080fd5b919050565b6000602082840312156131d657600080fd5b6118a88261319b565b600080604083850312156131f257600080fd5b6131fb8361319b565b946020939093013593505050565b60008060006060848603121561321e57600080fd5b6132278461319b565b92506132356020850161319b565b9150604084013590509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156132bb576132bb613245565b604052919050565b600067ffffffffffffffff8211156132dd576132dd613245565b5060051b60200190565b600082601f8301126132f857600080fd5b8135602061330d613308836132c3565b613274565b82815260059290921b8401810191818101908684111561332c57600080fd5b8286015b848110156133475780358352918301918301613330565b509695505050505050565b60006020828403121561336457600080fd5b813567ffffffffffffffff81111561337b57600080fd5b611329848285016132e7565b600067ffffffffffffffff8311156133a1576133a1613245565b6133d260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f86011601613274565b90508281528383830111156133e657600080fd5b828260208301376000602084830101529392505050565b60006020828403121561340f57600080fd5b813567ffffffffffffffff81111561342657600080fd5b8201601f8101841361343757600080fd5b61132984823560208401613387565b6000806040838503121561345957600080fd5b6134628361319b565b9150602083013567ffffffffffffffff81111561347e57600080fd5b61348a858286016132e7565b9150509250929050565b600080604083850312156134a757600080fd5b823567ffffffffffffffff808211156134bf57600080fd5b818501915085601f8301126134d357600080fd5b813560206134e3613308836132c3565b82815260059290921b8401810191818101908984111561350257600080fd5b948201945b83861015613527576135188661319b565b82529482019490820190613507565b9650508601359250508082111561353d57600080fd5b5061348a858286016132e7565b6000806040838503121561355d57600080fd5b6135668361319b565b91506020830135801515811461357b57600080fd5b809150509250929050565b6000806000806080858703121561359c57600080fd5b6135a58561319b565b93506135b36020860161319b565b925060408501359150606085013567ffffffffffffffff8111156135d657600080fd5b8501601f810187136135e757600080fd5b6135f687823560208401613387565b91505092959194509250565b6000806040838503121561361557600080fd5b61361e8361319b565b915061362c6020840161319b565b90509250929050565b600181811c9082168061364957607f821691505b602082108103613682577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181038181111561091957610919613688565b8082018082111561091957610919613688565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b601f821115610ba057600081815260208120601f850160051c810160208610156137335750805b601f850160051c820191505b818110156137525782815560010161373f565b505050505050565b815167ffffffffffffffff81111561377457613774613245565b613788816137828454613635565b8461370c565b602080601f8311600181146137db57600084156137a55750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555613752565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561382857888601518255948401946001909101908401613809565b508582101561386457878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036138a5576138a5613688565b5060010190565b600083516138be818460208801613101565b8351908301906138d2818360208801613101565b01949350505050565b600073ffffffffffffffffffffffffffffffffffffffff80871683528086166020840152508360408301526080606083015261391a6080830184613125565b9695505050505050565b60006020828403121561393657600080fd5b81516118a8816130b6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea2646970667358221220cd9af15b92571005951bad1ac43f677c24506687f3d7b9e3db3f8820d425ee1064736f6c6343000811003368747470733a2f2f616666696e652d706173732e73332e616d617a6f6e6177732e636f6d2f706173732fcd3bd15b8472a61a124018ae11d3cf7eabba15bc592e41f57496e43abad9165e