Special data
- Status: Failed
- Nonce: 7
- Type: 2
- Gas used: 8538105 gas
- Gas limit: 8788169 gas
- Gas price: 2.51 Gwei
- Effective gas price: 2.51 Gwei
- Max gas price: 3.00 Gwei
- Max priority gas price: 0.07 Gwei
-
Input data:
0x61ff715f85ca9c1e9dbe2a150b54b966d263ea06cae52f9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000006ef0610160604052348015610010575f80fd5b50604051616eb0380380616eb083398101604081905261002f9161040f565b306080524660a052808260608061007a6040805180820182526008815267416e677374726f6d60c01b60208083019190915282518084019093526002835261763160f01b9083015291565b815160209283012081519183019190912060c082905260e0819052604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8152938401929092528282015246606083015230608083015260a0909120610100526001600160a01b039384166101208190525f80546001600160a01b0319169587169590951790945551610111925090506103eb565b6001600160a01b039091168152602001604051809103905ff08015801561013a573d5f803e3d5ffd5b506001600160a01b03166101405250610151610158565b5050610447565b61016130610180565b61017e5760405163cb13e96160e01b815260040160405180910390fd5b565b5f816101976001600160a01b0382166130006102a1565b6101a357505f92915050565b6101b86001600160a01b0382166108006102a1565b6101c457505f92915050565b6101d96001600160a01b0382166104006102a1565b156101e657505f92915050565b6101fb6001600160a01b0382166102006102a1565b61020757505f92915050565b61021c6001600160a01b0382166101006102a1565b1561022957505f92915050565b61023d6001600160a01b03821660806102a1565b61024957505f92915050565b61025d6001600160a01b03821660406102a1565b801561027857506102786001600160a01b03821660046102a1565b61028457505f92915050565b61029a6001600160a01b038216628000006102b6565b9392505050565b6001600160a01b038282161615155b92915050565b5f6102cb6001600160a01b03841660806102a1565b1580156102e757506102e76001600160a01b03841660086102a1565b156102f357505f6102b0565b6103076001600160a01b03841660406102a1565b15801561032357506103236001600160a01b03841660046102a1565b1561032f57505f6102b0565b6103446001600160a01b0384166104006102a1565b15801561036057506103606001600160a01b03841660026102a1565b1561036c57505f6102b0565b6103816001600160a01b0384166101006102a1565b15801561039d575061039d6001600160a01b03841660016102a1565b156103a957505f6102b0565b6001600160a01b038316156103da57613fff83161515806103d557506280000062ffffff83161461029a565b61029a565b5062ffffff16628000001415919050565b6108e4806165cc83390190565b6001600160a01b038116811461040c575f80fd5b50565b5f8060408385031215610420575f80fd5b825161042b816103f8565b602084015190925061043c816103f8565b809150509250929050565b60805160a05160c05160e0516101005161012051610140516160546105785f395f8181610df50152611ae401525f818161049a01528181610744015281816107c901528181610833015281816108e30152818161097701528181610a5901528181610b5601528181610ce60152818161175a01528181611abd01528181612428015281816130d701528181613193015281816131ba01528181613694015281816137cd015281816138090152818161384a0152818161388e015281816138da015281816140a90152818161428401528181614d6901528181614df201528181614ec40152614f4d01525f81816121e5015261439801525f818161229f015261445201525f8181612279015261442c01525f818161222901526143dc01525f818161220601526143b901526160545ff3fe608060405234801561000f575f80fd5b506004361061018f575f3560e01c80638340f549116100dd578063d6cffd1e11610088578063dd4d4cf611610063578063dd4d4cf614610410578063e979006b14610423578063f3fef3a314610436575f80fd5b8063d6cffd1e146103d7578063d9caed12146103ea578063d9e17f98146103fd575f80fd5b806391dd7346116100b857806391dd73461461035657806392eefe9b14610376578063b47b2fb114610389575f80fd5b80638340f5491461031557806384b0196e146103285780638587f45014610343575f80fd5b80633f5f1ce61161013d578063575e24b411610118578063575e24b4146102765780637407905c146102cc5780637cf98081146102f4575f80fd5b80633f5f1ce61461023d57806343af7adb1461025057806347e7ef2414610263575f80fd5b806321d0ee701161016d57806321d0ee70146101ce578063259982e51461021757806333830e481461022a575f80fd5b806309c5eabe14610193578063116a5550146101a85780631828e0e7146101bb575b5f80fd5b6101a66101a136600461540d565b610449565b005b6101a66101b636600461544c565b610536565b6101a66101c9366004615494565b610543565b6101e16101dc3660046154fb565b6106b1565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020015b60405180910390f35b6101e16102253660046154fb565b610a18565b6101a6610238366004615494565b610db0565b6101a661024b36600461559a565b610e60565b6101a661025e36600461561d565b611000565b6101a661027136600461566d565b611118565b6102896102843660046156a7565b611182565b604080517fffffffff000000000000000000000000000000000000000000000000000000009094168452602084019290925262ffffff169082015260600161020e565b6102df6102da366004615494565b6112b4565b60405163ffffffff909116815260200161020e565b610307610302366004615701565b6115b7565b60405190815260200161020e565b6101a6610323366004615718565b6115c1565b610330611630565b60405161020e97969594939291906157a2565b6101a6610351366004615861565b6116d8565b61036961036436600461540d565b6118ae565b60405161020e91906158b1565b6101a66103843660046158c3565b61194f565b61039c6103973660046158de565b61199d565b604080517fffffffff000000000000000000000000000000000000000000000000000000009093168352600f9190910b60208301520161020e565b6101a66103e536600461595f565b611c0c565b6101a66103f8366004615718565b611ca5565b6101a661040b36600461566d565b611d0b565b6101a661041e366004615a04565b611d38565b6101a6610431366004615a31565b611e65565b6101a661044436600461566d565b61206f565b6104516120d5565b5f81900361045d575050565b6040517f48c8949100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906348c89491906104d19085908590600401615ae5565b5f604051808303815f875af11580156104ec573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526105319190810190615b25565b505050565b61054033826121a8565b50565b61055860035467ffffffffffffffff16431490565b1561058f576040517fd8a6b89b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83165f9081526001602052604090205460ff166105ed576040517f5cd26b6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f3f25e551746414ff93f076a7dd83828ff53735b39366c74015637e004fcb02235f908152436020526040812090610624826121e3565b9050610632858286866122f9565b610668576040517f8baa579f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610671436123f3565b600380547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff929092169190911790555050505050565b5f6106ba612410565b5f6106c486612481565b90505f80610721838a6106da60208b018b615c23565b6106ea60408c0160208d01615c23565b6006526003525f90815260608a01356026908152603a600c2090829052918152600760209081526040808320848452909152902091565b90925090505f61077361076a73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001686612495565b60a01c60020b90565b90505f6107ac8261078760208c018c615c23565b61079760408d0160208e01615c23565b5f8981526008602052604090209291906124cc565b90505f6107f073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016878661254e565b90505f610814865f01548403836fffffffffffffffffffffffffffffffff166125a9565b905080156109e65773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001663a584119461086560208f018f6158c3565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff90911660048201526024015f604051808303815f87803b1580156108c8575f80fd5b505af11580156108da573d5f803e3d5ffd5b505050506109327f0000000000000000000000000000000000000000000000000000000000000000828e5f01602081019061091591906158c3565b73ffffffffffffffffffffffffffffffffffffffff16919061261e565b6040517f3dd45adb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8e811660048301527f00000000000000000000000000000000000000000000000000000000000000001690633dd45adb906024016020604051808303815f875af11580156109bd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109e19190615c3e565b508286555b507f21d0ee70000000000000000000000000000000000000000000000000000000009c9b505050505050505050505050565b5f610a21612410565b5f610a2b86612481565b5f81815260086020526040812091925080610a7f61076a73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001686612495565b90505f83610a9060208b018b615c23565b62ffffff1663010000008110610aa857610aa8615c55565b015490505f84610abe60408c0160208d01615c23565b62ffffff1663010000008110610ad657610ad6615c55565b01549050610ae760208b018b615c23565b60020b8360020b1215610afe578082039350610c66565b600283900b610b1360408c0160208d01615c23565b60020b13610c0e57610b7e86610b2c60208d018d615c23565b8d6060016020810190610b3f9190615c23565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016929190612671565b610bb657630100000085015491508185610b9b60208d018d615c23565b62ffffff1663010000008110610bb357610bb3615c55565b01555b610bca86610b2c60408d0160208e01615c23565b610c04575063010000008401548085610be960408d0160208e01615c23565b62ffffff1663010000008110610c0157610c01615c55565b01555b8181039350610c66565b610c1f86610b2c60208d018d615c23565b610c5757630100000085015491508185610c3c60208d018d615c23565b62ffffff1663010000008110610c5457610c54615c55565b01555b80828663010000000154030393505b505f9150819050610cc6858c610c7f60208d018d615c23565b610c8f60408e0160208f01615c23565b6006526003525f90815260608c01356026908152603a600c2090829052918152600760209081526040808320848452909152902091565b90925090505f610d0d73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016878461254e565b905060408a01355f610d1f8284615caf565b9050826fffffffffffffffffffffffffffffffff165f03610d4257858555610d7d565b5f610d77865f01548803856fffffffffffffffffffffffffffffffff16846fffffffffffffffffffffffffffffffff166126d4565b87038655505b507f259982e5000000000000000000000000000000000000000000000000000000009d9c50505050505050505050505050565b610db8612781565b6040517f877415d200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063877415d290610e2e90869086908690600401615cd7565b5f604051808303815f87803b158015610e45575f80fd5b505af1158015610e57573d5f803e3d5ffd5b50505050505050565b610e68612781565b60035473ffffffffffffffffffffffffffffffffffffffff6801000000000000000090910481169084168114610eca576040517ff21fd99f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6003545f90610efb9068010000000000000000900473ffffffffffffffffffffffffffffffffffffffff16826127d1565b90505f5b83811015610faf5736858583818110610f1a57610f1a615c55565b9050608002019050610f5a816040016020810190610f389190615d06565b610f54610f4b6040850160208601615d1f565b86908535612852565b906128df565b835180518335908110610f6f57610f6f615c55565b602002602001018181525050610fa6816020016020810190610f919190615d1f565b610fa16080840160608501615d06565b6128fa565b50600101610eff565b50610fb98161297f565b600360086101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050565b611008612781565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161061106d576040517f32b4bc9300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b620f42408163ffffffff16106110af576040517f37d7fd8500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff9283165f9081526004602090815260408083209490951682529290925291902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff909216919091179055565b61113a73ffffffffffffffffffffffffffffffffffffffff83163330846129fb565b73ffffffffffffffffffffffffffffffffffffffff82165f90815260066020908152604080832033845290915281208054839290611179908490615d38565b90915550505050565b5f805f61118d612410565b6111a260035467ffffffffffffffff16431490565b61125957601484101561121b575f8490036111e9576040517f1e8107a000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f4926898b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6112296014828789615d4b565b61123291615d72565b60601c9050365f611246876014818b615d4b565b91509150611255838383610543565b5050505b6240000061128261126d60208a018a6158c3565b61127d60408b0160208c016158c3565b612a5d565b7f575e24b4000000000000000000000000000000000000000000000000000000009a5f9a509117975095505050505050565b5f600183018335821a806113be57604080517fd505accf00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff881660048201523360248201527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6044820152601484013560d81c6064820181905260198501355f90811a60848401819052601a87013560a48501819052603a88013560c486018190529551605a8901983560601c969495929491939192879263d505accf9260e48084019382900301818387803b15801561139e575f80fd5b505af11580156113b0573d5f803e3d5ffd5b50505050505050505061159b565b60018160ff16036114a6576040517fd505accf00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8716600482015233602482810191909152601484013560801c604483018190529084013560d81c6064830181905260298501355f1a60848401819052602a86013560a48501819052604a87013560c48601819052606a8801973560601c95869063d505accf9060e4015b5f604051808303815f87803b158015611485575f80fd5b505af1158015611497573d5f803e3d5ffd5b5050505050505050505061159b565b60028160ff160361155f576040517f8fcbaf0c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87166004820152336024820152601483013560e01c60448201819052601884013560d81c6064830181905260016084840152601d8501355f1a60a48401819052601e86013560c48501819052603e87013560e48601819052605e8801973560601c958690638fcbaf0c906101040161146e565b6040517f6f1d150900000000000000000000000000000000000000000000000000000000815260ff821660048201526024015b60405180910390fd5b6115a6828686612b06565b6324a2e44b925050505b9392505050565b5f81545f5260205ff35b6115e373ffffffffffffffffffffffffffffffffffffffff84163330846129fb565b73ffffffffffffffffffffffffffffffffffffffff8084165f90815260066020908152604080832093861683529290529081208054839290611626908490615d38565b9091555050505050565b7f0f000000000000000000000000000000000000000000000000000000000000006060805f8080836116c6604080518082018252600881527f416e677374726f6d0000000000000000000000000000000000000000000000006020808301919091528251808401909352600283527f76310000000000000000000000000000000000000000000000000000000000009083015291565b97989097965046955030945091925090565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161115611710579192915b5f84815260208490526040812060281b6003549091505f906117559068010000000000000000900473ffffffffffffffffffffffffffffffffffffffff168386612b23565b5090507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636276cbbe6040518060a001604052806117a68a90565b73ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff908116825262800000602080840191909152600287810b6040808601919091523060609586015280517fffffffff0000000000000000000000000000000000000000000000000000000060e089901b168152865185166004820152928601518416602484015285015162ffffff1660448301529284015190920b60648301526080909201518216608482015290861660a482015260c4016020604051808303815f875af115801561188a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e579190615dd8565b60606118b8612410565b825f6118c382612b9a565b60035491935091505f906118fc908490849068010000000000000000900473ffffffffffffffffffffffffffffffffffffffff16612c6b565b909350905061190a82612e07565b6119148382612e32565b92506119208382612ebe565b925061192c8382612f71565b9250611939838787612b06565b61194282613010565b60205f525f60205260405ff35b611957612781565b5f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b5f806119a7612410565b5f6004816119b860208b018b6158c3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f896020016020810190611a0591906158c3565b73ffffffffffffffffffffffffffffffffffffffff1681526020808201929092526040015f9081205463ffffffff169250908801803582139190611a49908a615df3565b151582151503611a6257611a5d88600f0b90565b611a6c565b611a6c8860801d90565b90505f620f42408460030b5f84600f0b12611a875783611a90565b611a9084615e12565b611a9a9190615e4e565b611aa49190615e9a565b905073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001663156e29f67f0000000000000000000000000000000000000000000000000000000000000000611b1060208e018e615df3565b151586151503611b32578d6020016020810190611b2d91906158c3565b611b3f565b611b3f60208f018f6158c3565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff9283166004820152911660248201526fffffffffffffffffffffffffffffffff841660448201526064015f604051808303815f87803b158015611bc1575f80fd5b505af1158015611bd3573d5f803e3d5ffd5b507fb47b2fb10000000000000000000000000000000000000000000000000000000098509296505050505050505b965096945050505050565b611c14612781565b5f5b81811015610531575f838383818110611c3157611c31615c55565b9050602002016020810190611c4691906158c3565b73ffffffffffffffffffffffffffffffffffffffff165f90815260016020819052604090912080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00811660ff90911615179055919091019050611c16565b73ffffffffffffffffffffffffffffffffffffffff83165f90815260066020908152604080832033845290915281208054839290611ce4908490615f0d565b90915550610531905073ffffffffffffffffffffffffffffffffffffffff8416838361261e565b611d13612781565b611d3473ffffffffffffffffffffffffffffffffffffffff8316338361261e565b5050565b611d40612781565b60035473ffffffffffffffffffffffffffffffffffffffff6801000000000000000090910481169083168114611da2576040517ff21fd99f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6003545f90611dd29068010000000000000000900473ffffffffffffffffffffffffffffffffffffffff16613279565b9050611ddf8186856132ad565b611de88161297f565b600360086101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611e5e857fffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000165f90815260026020526040812055565b5050505050565b611e6d612781565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1610611ed2576040517f32b4bc9300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f85815260208590526040812060281b6003549091505f90611f179068010000000000000000900473ffffffffffffffffffffffffffffffffffffffff1660016127d1565b8051519091505f905b80821015611fe7575f835f01518381518110611f3e57611f3e615c55565b60200260200101519050611f7d611f528290565b867fffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000090811691161490565b15611fdb57611fb587610f548a875f01518781518110611f9f57611f9f615c55565b602002602001015161339990919063ffffffff16565b8451805185908110611fc957611fc9615c55565b60200260200101818152505050611fe7565b50600190910190611f20565b80820361200357612003611ffc8589896133c3565b8490613406565b61200c8361297f565b600360086101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061205a8562ffffff16613481565b61206484866128fa565b505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff82165f908152600660209081526040808320338452909152812080548392906120ae908490615f0d565b90915550611d34905073ffffffffffffffffffffffffffffffffffffffff8316338361261e565b6003544367ffffffffffffffff9091160361211c576040517fd8a6b89b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b335f9081526001602052604090205460ff16612164576040517f5cd26b6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61216d436123f3565b600380547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff92909216919091179055565b80600c5263daa050e9600452815f52601f600c20600160ff83161b808254188181166121db57638cb888725f526004601cfd5b909155505050565b7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000030147f00000000000000000000000000000000000000000000000000000000000000004614166122d65750604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81527f000000000000000000000000000000000000000000000000000000000000000060208201527f00000000000000000000000000000000000000000000000000000000000000009181019190915246606082015230608082015260a090205b6719010000000000005f5280601a5281603a52604260182090505f603a52919050565b5f73ffffffffffffffffffffffffffffffffffffffff8516156123eb57604051853b6123af578260408114612336576041811461237657506123e9565b60208581013560ff81901c601b0190915285356040527f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16606052612387565b60408501355f1a6020526040856040375b50845f526020600160805f60015afa5180871860601b3d119250505f606052806040526123e9565b631626ba7e60e01b80825285600483015260248201604081528460448401528486606485013760208160648701858b5afa90519091141691505b505b949350505050565b5f68010000000000000000821061240c5761240c6134c0565b5090565b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461247f576040517ff832861400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6040515f9060a083823760a0902092915050565b5f8181526006602052604081206124c273ffffffffffffffffffffffffffffffffffffffff8516826134cd565b9150505b92915050565b5f808562ffffff8516630100000081106124e8576124e8615c55565b015490505f8662ffffff85166301000000811061250757612507615c55565b015490508460020b8660020b121561252257900390506123eb565b8560020b8460020b13612537570390506123eb565b630100000087015491909103039050949350505050565b5f6006602052825f52600660405f2001602052815f5260405f20602052631e2eaeaf5f5260205f6024601c875afa61258d5763535cf94b5f526004601cfd5b50505f516fffffffffffffffffffffffffffffffff1692915050565b8181028183820414831517612615577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8284098181108201900370010000000000000000000000000000000081106126085763c56a01595f526004601cfd5b608091821c911b016124c6565b60801c92915050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af18060015f51141661266757803d853b151710612667576390b8ec185f526004601cfd5b505f603452505050565b5f808061268f8486078213858705035b600881901d9160ff90911690565b90925090506126c9816126b973ffffffffffffffffffffffffffffffffffffffff8a1689866134fd565b90600160ff919091161b16151590565b979650505050505050565b8282028183858304148515170261277a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8385098181108201900382848609835f03841682851161272d5763ae47f7025f526004601cfd5b93849004938382119092035f8390038390046001010292030417600260038302811880840282030280840282030280840282030280840282030280840282030280840290910302026115b0565b0492915050565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461247f576040517f23019e6700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408051808201909152606081525f60208201525f6128058473ffffffffffffffffffffffffffffffffffffffff16613541565b90505f6128128483615d38565b602084810182905260408051838302810183019091525f81528086529192508381029081906001908401893c506128498484613455565b50505092915050565b5f835f0151828151811061286857612868615c55565b602002602001015190506128a861287c8290565b847fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000009081169116141590565b156115b0576040517f23f69dc200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6128e982613564565b5062ffffff80831691909118161890565b62061a808162ffffff16111561293c576040517f37d7fd8500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000009091165f9081526002602052604090206301fffffe600192831b169091179055565b805180516b600b380380600b5f395ff30082525f9190600c60208202016014830184f0818352925073ffffffffffffffffffffffffffffffffffffffff83166129f4576040517f5670258700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050919050565b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c5260205f6064601c5f895af18060015f511416612a4f57803d873b151710612a4f57637939f4245f526004601cfd5b505f60605260405250505050565b5f8281526020828152604080832060281b7fffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000811684526002909252822054600181168303612afb576040517f291a6d080000000000000000000000000000000000000000000000000000000081527fffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000083166004820152602401611592565b60011c949350505050565b808201808414612b1d576301842f8c5f526004601cfd5b50505050565b5f8080612b4773ffffffffffffffffffffffffffffffffffffffff871686866135a6565b905080612b80576040517f2f659e4400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61ffff601882901c169662ffffff90911695509350505050565b6003818101915f918291803560e81c0101816044612bb88684615f0d565b612bc29190615f20565b905080602086901b1792505f805b82811015612c5f575f612bee602087901c60448402015b3560601c90565b90508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1611612c55576040517f80f11acf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9150600101612bd0565b50829450505050915091565b6003838101935f91829182918291803560e81c0101816026612c8d8a84615f0d565b612c979190615f20565b905060405193508060c0028401925082604052808460201b179450505f5b82841015612dfa5760048901983560e081901c905f90612cdd90612be7908c9060f01c6135e4565b90505f612cf1612be78c61ffff86166135e4565b90508363ffffffff168363ffffffff16111580612d3a57508073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1610155b15612d71576040517ff35f939900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b90865260208601526040852060028b019a91925060281b903560f01c5f80612db073ffffffffffffffffffffffffffffffffffffffff8c168585612b23565b60408a0191909152606089015250505060208a01993590505f760a70c3c40a64e6c51999090b65f67d924000000000000082900460808701525060a085015260c090930192612cb5565b5093505050935093915050565b63ffffffff81165f5b8181101561053157612e2a602084901c6044830201613642565b600101612e10565b60408051610160810182525f602082018190529181018290526080810182905260c0810182905260e081018290526101008101829052610140810182905263f3cd914c81526280000060608201523060a082015261012080820152600384810194803560e81c0101905b818514612eb557612eae858286613713565b9450612e9c565b50929392505050565b6003828101925f91813560e81c9091010181612ed8613950565b60408051610120810182525f60208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101919091527f0af19d5479e90f25845cea6db89a524bb4e8da3a698213efb1b85e10a5e8be9c815267ffffffffffffffff43166101008201529091505b828614612f6757612f608682848861399a565b9550612f4d565b5093949350505050565b5f80612f7b613950565b604080516101a0810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810182905261010081018290526101208101829052610140810182905261016081018290526101808101919091526003868101969293509091803560e81c01015b808614612f675761300986838588613b98565b9550612ff6565b6040805163ffffffff8316602481028201909252805f5b838110156132665760448102602086901c01803560601c6014820135608090811c906034840135901c5f6130688461305f8486615d38565b60059190613d86565b905080156130ba576040517fcc67af5300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401611592565b81156132485773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001663a5841194856040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff90911660048201526024015f604051808303815f87803b158015613160575f80fd5b505af1158015613172573d5f803e3d5ffd5b506131b89250505073ffffffffffffffffffffffffffffffffffffffff85167f00000000000000000000000000000000000000000000000000000000000000008461261e565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166311da60b46040518163ffffffff1660e01b81526004016020604051808303815f875af1158015613222573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906132469190615c3e565b505b6132528588613dc9565b505050602493909301925050600101613027565b506024830282205f5260205fa050505050565b60408051808201909152606081525f60208201526124c673ffffffffffffffffffffffffffffffffffffffff83165f6127d1565b6132ff6132d3845f015183815181106132c8576132c8615c55565b602002602001015190565b837fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000009081169116141590565b15613336576040517f23f69dc200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8251515f9061334790600190615f0d565b90508082101561338f57835180518290811061336557613365615c55565b6020026020010151845f0151838151811061338257613382615c55565b6020026020010181815250505b612b1d8482905152565b5f6133a382613dd2565b5065ffffff00000061ffff918216601884811c939093161890911b161890565b5f6133cd83613dd2565b6133d682613564565b6123eb82610f547fffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000871686613399565b81515160208301518103613446576040517f5cef583a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61345a83613455836001615d38565b905152565b81835f0151828151811061347057613470615c55565b602002602001018181525050505050565b620f424062ffffff82161115610540576105407f140021130000000000000000000000000000000000000000000000000000000062ffffff8316613e21565b6335278d125f526004601cfd5b5f81602052631e2eaeaf5f5260205f6024601c865afa6134f45763535cf94b5f526004601cfd5b50505f51919050565b5f828152600660209081526040808320848452600501909152812061353873ffffffffffffffffffffffffffffffffffffffff8616826134cd565b95945050505050565b5f6124c6602073ffffffffffffffffffffffffffffffffffffffff84163b615f20565b62030d4062ffffff82161115610540576040517f76a3f95d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6020826020026001015f863c50505f517fffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000081169190911402919050565b5f8163ffffffff841611613633576040517fffc31e710000000000000000000000000000000000000000000000000000000081526004810183905263ffffffff84166024820152604401611592565b602083901c60448302016115b0565b602481013560801c8015611d3457604080517f0b0d9c09000000000000000000000000000000000000000000000000000000008152833560601c600482018190523060248301526044820184905291517f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1691630b0d9c09916064808301925f92919082900301818387803b1580156136ee575f80fd5b505af1158015613700573d5f803e3d5ffd5b5061053192506005915083905084613e43565b6001838101935f919035821a9061372f90859083161515613e7c565b60028501943560f01c6137566137458583613ecd565b805160208201516040909201519092565b60020b608088015273ffffffffffffffffffffffffffffffffffffffff9081166040880152166020860190815260a090205f60108801883560801c9098506fffffffffffffffffffffffffffffffff1690505f81156138bd575f6137f361076a73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001686612495565b90506137fe83613f2d565b60e08a015261382d897f0000000000000000000000000000000000000000000000000000000000000000613f8e565b61387061076a73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001686612495565b60808a01515f8681526008602052604090209193506138b7919086907f00000000000000000000000000000000000000000000000000000000000000009085908790613fab565b50613903565b61390061076a73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001685612495565b90505b5f61392a6002871615155f86815260086020526040902060808c01518d9190889087614034565b60208b0151919b5091506139419060059083613d86565b50989998505050505050505050565b5f61399561395c614396565b60408051604281019091527f19010000000000000000000000000000000000000000000000000000000000008152600281019190915290565b905090565b83355f90811a6001818116151560808781019190915290870135811c60208701526011870135811c60408701526021870135811c6060870181905260418801976031013590911c90811115613a1b576040517f2bae6c5200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002878101973560f01c90613a4a9084161515613a388784613ecd565b9060051b602081188201519101519091565b73ffffffffffffffffffffffffffffffffffffffff90811660c08a01521660a08801525060048216613a7d57865f613a87565b60148701873560601c5b73ffffffffffffffffffffffffffffffffffffffff1660e088015296505f613ac0613ab488610120902090565b60228801526042872090565b90505f60088416613ada57613ad5898361448e565b613ae4565b613ae489836144f8565b9099509050613af3828261453c565b60e088015180158202176002851615613b3257836fffffffffffffffffffffffffffffffff1689602001818151613b2a9190615d38565b905250613b5a565b836fffffffffffffffffffffffffffffffff1689604001818151613b569190615f0d565b9052505b613b72828a60a001518b602001518c60800151614564565b613b8a818a60c001518b604001518c608001516145e7565b509798975050505050505050565b5f80613ba4858761465f565b60028201975091505f9081903560f01c613bcd600885161515613bc78884613ecd565b9061473f565b73ffffffffffffffffffffffffffffffffffffffff9182166101008c0152911660e08a01529250505060208701873560a08801819052909750811015613c3f576040517f8e1edfa400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60028216613c4e57865f613c58565b60148701873560601c5b73ffffffffffffffffffffffffffffffffffffffff1661012088015296505f613c85886004851615614781565b6101408a01529098509050613c9b878985614863565b97505f80613cab898b87876148ab565b919b50925090505f613ccc613cc08b88614ab5565b60228b015260428a2090565b90505f60808716613ce657613ce18c8361448e565b613cf0565b613cf08c836144f8565b909c5090506010871615613d2757613d138b610180015164ffffffffff16614ad5565b613d22818c61016001516121a8565b613d31565b613d31828261453c565b5f8b610120015190508082821502179050613d57818d6101000151868f60c001516145e7565b613d618683614b0f565b613d75828d60e00151878f60c00151614564565b509a9b9a5050505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff82165f908152602084905260408120613dc1613db8825c85614b57565b92508183614b6f565b509392505050565b60248282375050565b600161ffff82161080613dea5750617fff61ffff8216115b15610540576040517f270815a000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815f5273ffffffffffffffffffffffffffffffffffffffff811660045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff82165f908152602084905260409020612b1d613e75825c84614b76565b8290614b6f565b80151560c083015280613ea35773fffd8963efd1fc6a506488495d951d5263988d25613eaa565b6401000276a45b73ffffffffffffffffffffffffffffffffffffffff166101009092019190915250565b5f8163ffffffff841611613f1c576040517ff6601b500000000000000000000000000000000000000000000000000000000081526004810183905263ffffffff84166024820152604401611592565b5060c08102602083901c0192915050565b5f7f8000000000000000000000000000000000000000000000000000000000000000821115613f88576040517f35278d1200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505f0390565b5f80610144601c85015f855af180610531576040513d5f823e3d81fd5b8260020b8260020b1315613fef578260020b613fd3828460020b614b8e90919063ffffffff16565b60020b1315613fea57613fea868587868686614b9f565b61402c565b8260020b8260020b121561402c575f600284900b828107919091129082900503810260020b8260020b121561402c5761402c868587868686614c2b565b505050505050565b5f8087156141735760208701968035608090811c9160100135901c81158061406c57506fffffffffffffffffffffffffffffffff8116155b1561408e57508792506fffffffffffffffffffffffffffffffff169050611c01565b5f6140cf73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001689614cc3565b9050806fffffffffffffffffffffffffffffffff16826fffffffffffffffffffffffffffffffff161461412e576040517fbecb195c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6fffffffffffffffffffffffffffffffff8116608084901b0463010000008a018054909101905550889350506fffffffffffffffffffffffffffffffff169050611c01565b5f808060038a018a3560e81d909a5090505f60108b018b3560801c909b5090505f806003808e01908e3560e81c8f0101604080516080810182528e815260028e810b60208301528d810b9282018390525f606083018190529496509294508f939290919088900b13156141f2576141ed8388878985614cf4565b6141ff565b6141ff8388878985614e4f565b6fffffffffffffffffffffffffffffffff81167fffffffffffffffffffffffffffffffff000000000000000000000000000000008535908116919091049092019c509a5060109092019650925060801c6142598184615d38565b92506142658686614fab565b81515f906142aa9073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690614cc3565b9050806fffffffffffffffffffffffffffffffff168a6fffffffffffffffffffffffffffffffff1614614325576040517f6429cfd20000000000000000000000000000000000000000000000000000000081526fffffffffffffffffffffffffffffffff808c16600483015282166024820152604401611592565b606083810151601489019835821c911c811461436d576040517fbecb195c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050630100000090920180549098019097555090965093945050505050965096945050505050565b7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000030147f000000000000000000000000000000000000000000000000000000000000000046141661448b5750604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81527f000000000000000000000000000000000000000000000000000000000000000060208201527f00000000000000000000000000000000000000000000000000000000000000009181019190915246606082015230608082015260a0902090565b90565b6017601483013560e81c8084018201935f92813560601c929101906144b583868484614fe4565b6144eb576040517f8baa579f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b85935050505b9250929050565b5f806040518381525f6020820152604185603f8301376041850194506020600160808360015afa519150503d61453557638baa579f5f526004601cfd5b9293915050565b80601452815f5260345f20805c1561455b57638a2ef1165f526004601cfd5b6001815d505050565b8161457160058583613e43565b81156145c55773ffffffffffffffffffffffffffffffffffffffff8085165f908152600660209081526040808320938916835292905290812080548392906145ba908490615f0d565b90915550611e5e9050565b611e5e73ffffffffffffffffffffffffffffffffffffffff85168630846129fb565b816145f460058583613d86565b50811561463e5773ffffffffffffffffffffffffffffffffffffffff8085165f908152600660209081526040808320938916835292905290812080548392906145ba908490615d38565b611e5e73ffffffffffffffffffffffffffffffffffffffff8516868361261e565b60018101905f9035811a600483603c8601376004929092019160208116156146d857601081166146af577f6ee89dee573705c024a086e19a128ee0a5ee0547e3283adfa72fbe336a4c4b6c6146d1565b7f6be5f22bdcd037f6f35250c32e478fad62195ac2bbab1e2932f8c97af926b4915b845261472b565b60108116614706577f022e170cdf338f45bc718f58d29bfafbf3956c2f9ea8d19ccc9b72e42dbbb7b0614728565b7fb0617b84f694c245e54fb8032ebdc9f56eb26ea2c1b65a46c58f50dbd516e2865b84525b60018116151560c094909401939093525091565b600581901b6020811883015190830180516080909101516060850151620f42409081039061476d8284615f33565b6147779190615f20565b9150509250925092565b5f807fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708361485957843560e81c60038601955060405160146064038101828101604052828882378290206050828101517f7407905c0000000000000000000000000000000000000000000000000000000084526040602485018190527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec860160448601529985019960c09490941b77ffffffffffffffffffffffffffffffffffffffff000000009190941c1693019290921717925090505b8492509250925092565b5f6010821615614891576008836101788601376008929092019160058361019b8601376005830192506148a3565b67ffffffffffffffff43166101608501525b509092915050565b5f808080602086161561495d57508535608090811c604089018190526010880135821c60608a0181905260308901986020013590921c918183101561491c576040517fc4daf00300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80831115614956576040517f4418233100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050614988565b5060108601953560801c60408616614975575f614978565b60015b60ff166040890152606088018190525b60208701966010810135608090811c9135901c808211156149d5576040517f668fef1b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6fffffffffffffffffffffffffffffffff1660808a01526008871615614a50576fffffffffffffffffffffffffffffffff81166060881615614a2f57829450614a28614a218683615029565b8890615034565b9350614a4a565b9192508291614a47614a41888561503f565b8261504a565b94505b50614aa7565b6fffffffffffffffffffffffffffffffff81166060881615614a8b579193508391614a84614a7e8885615034565b82615029565b9350614aa5565b829350614aa2614a9b858361504a565b889061503f565b94505b505b509597919650945092505050565b5f8060108316614ac757610180614acb565b6101a05b9093209392505050565b80421115610540576040517f203d82d800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8115611d345763ffffffff82168260c01c8260048201528360201c60205f84845f855af1925050506324a2e44b5f5114601f3d111681166105315763f959fdae5f526004601cfd5b808203828113156124c65763c9654ed45f526004601cfd5b80825d5050565b818101828112156124c65763c9654ed45f526004601cfd5b5f8183071291819005919091030290565b5f614bc273ffffffffffffffffffffffffffffffffffffffff8716868685615055565b94509050600284810b9084900b1215614bdb575061402c565b8015614c25578662ffffff851663010000008110614bfb57614bfb615c55565b0154876301000000015403875f018562ffffff1663010000008110614c2257614c22615c55565b01555b50614b9f565b5f614c4e73ffffffffffffffffffffffffffffffffffffffff87168686856150bc565b94509050600283810b9085900b13614c66575061402c565b8015614cb0578662ffffff851663010000008110614c8657614c86615c55565b0154876301000000015403875f018562ffffff1663010000008110614cad57614cad615c55565b01555b83614cba81615f4a565b94505050614c2b565b5f8181526006602052604081205f61353873ffffffffffffffffffffffffffffffffffffffff8616600384016134cd565b5f80808060018180805b8315614dd05760108b019a3560801c614d178185615d38565b93506fffffffffffffffffffffffffffffffff8b16608082901b0483019250828e8e62ffffff1663010000008110614d5157614d51615c55565b015f82825401925050819055505f614dad8b5f01518f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166151019092919063ffffffff16565b915050614dba8c82615166565b9b508d6013528b601052825f5260335f20925050505b885160208a0151614e1a9173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016918f90615180565b809d508195505050886040015160020b8c60020b13614cfe5760609890980197909752979a9799509497509495945050505050565b5f80808060018180805b8315614f2b5760108b019a3560801c614e728185615d38565b93506fffffffffffffffffffffffffffffffff8b16608082901b0483019250828e8e62ffffff1663010000008110614eac57614eac615c55565b015f82825401925050819055505f614f088b5f01518f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166151019092919063ffffffff16565b915050614f158c8261519a565b9b508d6013528b601052825f5260335f20925050505b885160208a0151614f759173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016918f90615055565b809d508195505050886040015160020b8c60020b1315614e595760609890980197909752979a9799509497509495945050505050565b808214611d34576040517f01842f8c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f604051631626ba7e60e01b80825285600483015260248201604081528460448401528486606485013760208160648701858b5afa9051909114169695505050505050565b5f6115b08284615f0d565b5f6115b082846151b4565b5f6115b082846151d6565b5f6115b08284615d38565b5f80808061506f6126818688078313878905036001615fa6565b909250905061509f8161509973ffffffffffffffffffffffffffffffffffffffff8b168a866134fd565b906151ee565b90945090506150af8282876152b0565b9250505094509492505050565b5f8080806150d1858707821386880503612681565b909250905061509f816150fb73ffffffffffffffffffffffffffffffffffffffff8b168a866134fd565b906152da565b5f806006602052835f52600460405f2001602052825f5260405f20602052631e2eaeaf5f5260205f6024601c885afa6151415763535cf94b5f526004601cfd5b50505f516fffffffffffffffffffffffffffffffff81169460809190911d9350915050565b808203608081901c156124c65763c9654ed45f526004601cfd5b5f8080806150d161268160018789078413888a0503615fe7565b818101608081901c156124c65763c9654ed45f526004601cfd5b5f6b033b2e3c9fd0803ce80000006151cc8385615f33565b6115b09190615f20565b5f6115b0836b033b2e3c9fd0803ce8000000846153a2565b5f805f6152898460ff1686901c7e1f0d1e100c1d070f090b19131c1706010e11080a1a141802121b150316040581196001019091166101e07f804040554300526644320000502061067405302602000010750620017611707760fc7fb6db6db6ddddddddd34d34d349249249210842108c6318c639ce739cffffffff840260f81c161b60f71c1690811c63d76453e004601f169190911a1790565b905080610100141592508261529f5760ff6152a6565b8360ff1681015b9150509250929050565b5f8160ff84166152c6600187900b610100616028565b6152d09190615fa6565b6123eb9190616028565b5f805f8360ff0390505f61537b8260ff1687901b7f0706060506020504060203020504030106050205030304010505030400000000601f6f8421084210842108cc6318c6db6d54be831560081b6fffffffffffffffffffffffffffffffff851160071b1784811c67ffffffffffffffff1060061b1784811c63ffffffff1060051b1784811c61ffff1060041b1784811c60ff1060031b1793841c1c161a1790565b9050806101001415935083615390575f615397565b8160ff1681035b925050509250929050565b828202831584820484141782026153c05763ad251c275f526004601cfd5b81810615159190040192915050565b5f8083601f8401126153df575f80fd5b50813567ffffffffffffffff8111156153f6575f80fd5b6020830191508360208285010111156144f1575f80fd5b5f806020838503121561541e575f80fd5b823567ffffffffffffffff811115615434575f80fd5b615440858286016153cf565b90969095509350505050565b5f6020828403121561545c575f80fd5b813567ffffffffffffffff811681146115b0575f80fd5b73ffffffffffffffffffffffffffffffffffffffff81168114610540575f80fd5b5f805f604084860312156154a6575f80fd5b83356154b181615473565b9250602084013567ffffffffffffffff8111156154cc575f80fd5b6154d8868287016153cf565b9497909650939450505050565b5f60a082840312156154f5575f80fd5b50919050565b5f805f805f858703610160811215615511575f80fd5b863561551c81615473565b955061552b88602089016154e5565b945060807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff408201121561555c575f80fd5b5060c08601925061014086013567ffffffffffffffff81111561557d575f80fd5b615589888289016153cf565b969995985093965092949392505050565b5f805f604084860312156155ac575f80fd5b83356155b781615473565b9250602084013567ffffffffffffffff8111156155d2575f80fd5b8401601f810186136155e2575f80fd5b803567ffffffffffffffff8111156155f8575f80fd5b8660208260071b840101111561560c575f80fd5b939660209190910195509293505050565b5f805f6060848603121561562f575f80fd5b833561563a81615473565b9250602084013561564a81615473565b9150604084013563ffffffff81168114615662575f80fd5b809150509250925092565b5f806040838503121561567e575f80fd5b823561568981615473565b946020939093013593505050565b5f606082840312156154f5575f80fd5b5f805f805f61014086880312156156bc575f80fd5b85356156c781615473565b94506156d687602088016154e5565b93506156e58760c08801615697565b925061012086013567ffffffffffffffff81111561557d575f80fd5b5f60208284031215615711575f80fd5b5035919050565b5f805f6060848603121561572a575f80fd5b833561573581615473565b9250602084013561574581615473565b929592945050506040919091013590565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b7fff000000000000000000000000000000000000000000000000000000000000008816815260e060208201525f6157dc60e0830189615756565b82810360408401526157ee8189615756565b6060840188905273ffffffffffffffffffffffffffffffffffffffff8716608085015260a0840186905283810360c0850152845180825260208087019350909101905f5b81811015615850578351835260209384019390920191600101615832565b50909b9a5050505050505050505050565b5f805f8060808587031215615874575f80fd5b843561587f81615473565b9350602085013561588f81615473565b92506040850135915060608501356158a681615473565b939692955090935050565b602081525f6115b06020830184615756565b5f602082840312156158d3575f80fd5b81356115b081615473565b5f805f805f8061016087890312156158f4575f80fd5b86356158ff81615473565b955061590e88602089016154e5565b945061591d8860c08901615697565b9350610120870135925061014087013567ffffffffffffffff811115615941575f80fd5b61594d89828a016153cf565b979a9699509497509295939492505050565b5f8060208385031215615970575f80fd5b823567ffffffffffffffff811115615986575f80fd5b8301601f81018513615996575f80fd5b803567ffffffffffffffff8111156159ac575f80fd5b8560208260051b84010111156159c0575f80fd5b6020919091019590945092505050565b80357fffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000811681146159ff575f80fd5b919050565b5f805f60608486031215615a16575f80fd5b615735846159d0565b803562ffffff811681146159ff575f80fd5b5f805f805f60a08688031215615a45575f80fd5b8535615a5081615473565b94506020860135615a6081615473565b9350604086013561ffff81168114615a76575f80fd5b9250615a8460608701615a1f565b9150615a9260808701615a1f565b90509295509295909350565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b602081525f6123eb602083018486615a9e565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f60208284031215615b35575f80fd5b815167ffffffffffffffff811115615b4b575f80fd5b8201601f81018413615b5b575f80fd5b805167ffffffffffffffff811115615b7557615b75615af8565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff82111715615be157615be1615af8565b604052818152828201602001861015615bf8575f80fd5b8160208401602083015e5f91810160200191909152949350505050565b8060020b8114610540575f80fd5b5f60208284031215615c33575f80fd5b81356115b081615c15565b5f60208284031215615c4e575f80fd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b6fffffffffffffffffffffffffffffffff81811683821601908111156124c6576124c6615c82565b73ffffffffffffffffffffffffffffffffffffffff84168152604060208201525f613538604083018486615a9e565b5f60208284031215615d16575f80fd5b6115b082615a1f565b5f60208284031215615d2f575f80fd5b6115b0826159d0565b808201808211156124c6576124c6615c82565b5f8085851115615d59575f80fd5b83861115615d65575f80fd5b5050820193919092039150565b80357fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008116906014841015615dd1577fffffffffffffffffffffffffffffffffffffffff000000000000000000000000808560140360031b1b82161691505b5092915050565b5f60208284031215615de8575f80fd5b81516115b081615c15565b5f60208284031215615e03575f80fd5b813580151581146115b0575f80fd5b5f81600f0b7fffffffffffffffffffffffffffffffff800000000000000000000000000000008103615e4657615e46615c82565b5f0392915050565b5f82600f0b82600f0b0280600f0b9150808214615dd157615dd1615c82565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f81600f0b83600f0b80615eb057615eb0615e6d565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81147fffffffffffffffffffffffffffffffff8000000000000000000000000000000083141615615f0457615f04615c82565b90059392505050565b818103818111156124c6576124c6615c82565b5f82615f2e57615f2e615e6d565b500490565b80820281158282048414176124c6576124c6615c82565b5f8160020b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000008103615f7e57615f7e615c82565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0192915050565b600281810b9083900b01627fffff81137fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000821217156124c6576124c6615c82565b600282810b9082900b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000008112627fffff821317156124c6576124c6615c82565b5f8260020b8260020b028060020b9150808214615dd157615dd1615c8256fea164736f6c634300081a000a60c0604052348015600e575f80fd5b506040516108e43803806108e4833981016040819052602b91603f565b336080526001600160a01b031660a052606a565b5f60208284031215604e575f80fd5b81516001600160a01b03811681146063575f80fd5b9392505050565b60805160a05161083f6100a55f395f818160e7015281816101e4015281816102c201528181610394015261043f01525f608e015261083f5ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063877415d21461003857806391dd73461461004d575b5f80fd5b61004b610046366004610503565b610076565b005b61006061005b36600461056c565b6101ca565b60405161006d91906105ab565b60405180910390f35b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146100e5576040517f30cd747100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166348c894918460601b8484604051602001610139939291906105fe565b6040516020818303038152906040526040518263ffffffff1660e01b815260040161016491906105ab565b5f604051808303815f875af115801561017f573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526101c49190810190610666565b50505050565b60603373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461023b576040517ff832861400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6102496014828587610756565b6102529161077d565b60601c90506102648360148187610756565b90945092505f6102756014856107e3565b90505f5b818110156104a6576040517efdd58e0000000000000000000000000000000000000000000000000000000081523060048201526014820287013560601c60248201819052905f907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169062fdd58e90604401602060405180830381865afa15801561031b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061033f919061081b565b6040517ff5298aca00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff8481166024830152604482018390529192507f00000000000000000000000000000000000000000000000000000000000000009091169063f5298aca906064015f604051808303815f87803b1580156103d7575f80fd5b505af11580156103e9573d5f803e3d5ffd5b50506040517f0b0d9c0900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301528881166024830152604482018590527f0000000000000000000000000000000000000000000000000000000000000000169250630b0d9c0991506064015f604051808303815f87803b158015610482575f80fd5b505af1158015610494573d5f803e3d5ffd5b50506001909401935061027992505050565b505060408051602081019091525f8152949350505050565b5f8083601f8401126104ce575f80fd5b50813567ffffffffffffffff8111156104e5575f80fd5b6020830191508360208285010111156104fc575f80fd5b9250929050565b5f805f60408486031215610515575f80fd5b833573ffffffffffffffffffffffffffffffffffffffff81168114610538575f80fd5b9250602084013567ffffffffffffffff811115610553575f80fd5b61055f868287016104be565b9497909650939450505050565b5f806020838503121561057d575f80fd5b823567ffffffffffffffff811115610593575f80fd5b61059f858286016104be565b90969095509350505050565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000084168152818360148301375f910160140190815292915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f60208284031215610676575f80fd5b815167ffffffffffffffff81111561068c575f80fd5b8201601f8101841361069c575f80fd5b805167ffffffffffffffff8111156106b6576106b6610639565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff8211171561072257610722610639565b604052818152828201602001861015610739575f80fd5b8160208401602083015e5f91810160200191909152949350505050565b5f8085851115610764575f80fd5b83861115610770575f80fd5b5050820193919092039150565b80357fffffffffffffffffffffffffffffffffffffffff00000000000000000000000081169060148410156107dc577fffffffffffffffffffffffffffffffffffffffff000000000000000000000000808560140360031b1b82161691505b5092915050565b5f82610816577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b5f6020828403121561082b575f80fd5b505191905056fea164736f6c634300081a000a000000000000000000000000000000000004444c5dc75cb358380d2e3de08a9000000000000000000000000046a46b9c3191c31f0694d8360e7d8918e0fe106300000000000000000000000000000000