tx · 83CRM8gcbQV4SwTYJSDm8FqKM5crAQY5Pp3GSQRsQn4y

3N5mwuqT6dXpbqwT5VKDXzGJJ6c14rKqxS7:  -0.01400000 Waves

2019.08.20 16:32 [639521] smart account 3N5mwuqT6dXpbqwT5VKDXzGJJ6c14rKqxS7 > SELF 0.00000000 Waves

{ "type": 13, "id": "83CRM8gcbQV4SwTYJSDm8FqKM5crAQY5Pp3GSQRsQn4y", "fee": 1400000, "feeAssetId": null, "timestamp": 1566308022154, "version": 1, "sender": "3N5mwuqT6dXpbqwT5VKDXzGJJ6c14rKqxS7", "senderPublicKey": "Gxi9GKByT2CYHqPr6ZTohMDmHRGAgE8uBM6R4QXfvtxK", "proofs": [ "4b3VPTuLy5pw38HbW9FmkJQDRYrL9FUWkM8hMLAgoxfj9SsYTjbnitkcC57hvKRu4LsbEJUou8AfwHetutof3ogG" ], "script": "base64:AAIDAAAAAAAAAAAAAAARAAAAAAdSVU5OSU5HAgAAAAdSVU5OSU5HAAAAAAZDTE9TRUQCAAAABkNMT1NFRAAAAAAIQ0FOQ0VMRUQCAAAACENBTkNFTEVEAAAAAAlEQVBQT1dORVICAAAAIzNONW13dXFUNmRYcGJxd1Q1VktEWHpHSko2YzE0cktxeFM3AAAAAAxPUkFDTEVXQUxMRVQCAAAAIzNOQWNvZVdkVVRXbjhjc1hKUEc0N3YxRmp0amNmcXhiNXR1AAAAAA1XTFRCVVJOV0FMTEVUAgAAACMzTXBDYkREamtTcmZTMVhrUHBtNzFpWmo1RFExUnBCUlJodAAAAAAOV0FWRVNLSVRXQUxMRVQCAAAAIzNNcVBwYldQUnNaRm9UOVg3NHFXb2NVNEJweXBHRVBoaUNuAAAAABFEQVBQQVVUSE9STldBTExFVAIAAAAjM04xeFFlUWNzclk4VXJtNFJkcm1MMmRmb1pBUDRVTHBIMVMAAAAABVdBVkVTAgAAAAVXQVZFUwAAAAAETk9ORQIAAAAETk9ORQAAAAADRkVFAAAAAAAADbugAAAAAANXTFQBAAAAIF3NWDIgMbVNOuvYgL6FmAoSJM/K3j1H2LzA3Rk1DquqAQAAAAtnZXROdW1CeUtleQAAAAEAAAADa2V5BAAAAANudW0EAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAFAAAAA251bQEAAAALZ2V0U3RyQnlLZXkAAAABAAAAA2tleQQAAAADc3RyBAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhBQAAAAROT05FBQAAAANzdHIBAAAAEGdldENvbnRlc3RTdGF0dXMAAAAABAAAABFjb250ZXN0Q3Vyck51bWJlcgkBAAAAC2dldE51bUJ5S2V5AAAAAQIAAAAVY29udGVzdF9jdXJyZW50bnVtYmVyCQEAAAALZ2V0U3RyQnlLZXkAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAIY29udGVzdF8JAAGkAAAAAQUAAAARY29udGVzdEN1cnJOdW1iZXICAAAAB19zdGF0dXMBAAAADWdldEJldEFjY291bnQAAAABAAAABWJldElkBAAAABFjb250ZXN0Q3Vyck51bWJlcgkBAAAAC2dldE51bUJ5S2V5AAAAAQIAAAAVY29udGVzdF9jdXJyZW50bnVtYmVyCQEAAAALZ2V0U3RyQnlLZXkAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABGJldF8JAAGkAAAAAQUAAAARY29udGVzdEN1cnJOdW1iZXICAAAAAV8JAAGkAAAAAQUAAAAFYmV0SWQCAAAABl9vd25lcgEAAAAaZ2V0RXh0V0FWRVNVU0RDdXJyZW5jeVJhdGUAAAAABAAAAA1vcmFjbGVBZGRyZXNzCQEAAAAHZXh0cmFjdAAAAAEJAQAAABFhZGRyZXNzRnJvbVN0cmluZwAAAAEFAAAADE9SQUNMRVdBTExFVAQAAAAUV0FWRVNVU0RDdXJyZW5jeVJhdGUEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAANb3JhY2xlQWRkcmVzcwIAAAALd2F2ZXNfdXNkXzIDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAUAAAAUV0FWRVNVU0RDdXJyZW5jeVJhdGUAAAAEAAAAAWkBAAAAEHNldENvbnRlc3RTdGF0dXMAAAACAAAADWNvbnRlc3ROdW1iZXIAAAANY29udGVzdFN0YXR1cwQAAAAHYWNjb3VudAkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzAwkBAAAAAiE9AAAAAgUAAAAHYWNjb3VudAUAAAAJREFQUE9XTkVSCQAAAgAAAAECAAAAJ09ubHkgZEFQUCBPd25lciBjYW4gc2V0IENvbnRlc3QgU3RhdHVzLgMDCQEAAAACIT0AAAACBQAAAA1jb250ZXN0U3RhdHVzBQAAAAhDQU5DRUxFRAkBAAAAAiE9AAAAAgUAAAANY29udGVzdFN0YXR1cwUAAAAGQ0xPU0VEBwkAAAIAAAABCQABLAAAAAICAAAAEEludmFsaWQgc3RhdHVzOiAFAAAADWNvbnRlc3RT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", "chainId": 84, "height": 639521, "spentComplexity": 0 } View: original | compacted Prev: 6JCt3hYKrWfdvC5mqJxXUEawnA8WbHwzxpUnb5LYWKhd Next: 3XoVZ8MtkJErTNwkhHJuv77QgWTAsYo2sDNqZ8N5r75E Diff:
OldNewDifferences
100100 let u = m("contest_currentnumber")
101101 let E = r((("contest_" + toString(u)) + "_status"))
102102 let F = (u + 1)
103- let G = (((wavesBalance(this) / 25) / 5000000) * 100000)
103+ let G = wavesBalance(this)
104+ let H = (((G / 25) / 5000000) * 100000)
104105 if ((D != d))
105106 then throw(((("Only dAPP Owner can Configure Contest. Caller account: " + D) + " dapp owner: ") + d))
106107 else if ((E == a))
107108 then throw(("You cannot configure a new Contest while old Contest status is: " + E))
108- else {
109- let H = (height + (6 * 1440))
110- WriteSet([DataEntry("contest_currentnumber", F), DataEntry((("contest_" + toString(F)) + "_finishheight"), H), DataEntry((("contest_" + toString(F)) + "_status"), a), DataEntry((("contest_" + toString(F)) + "_betcounter"), 0), DataEntry((("contest_" + toString(F)) + "_betcost"), G)])
111- }
109+ else if ((100000000 > G))
110+ then throw("Balance too low, cannot start a contest.")
111+ else {
112+ let I = (height + (6 * 1440))
113+ WriteSet([DataEntry("contest_currentnumber", F), DataEntry((("contest_" + toString(F)) + "_finishheight"), I), DataEntry((("contest_" + toString(F)) + "_status"), a), DataEntry((("contest_" + toString(F)) + "_betcounter"), 0), DataEntry((("contest_" + toString(F)) + "_betcost"), H)])
114+ }
112115 }
113116
114117
115118
116119 @Callable(A)
117-func bet (I) = {
120+func bet (J) = {
118121 let D = toBase58String(A.caller.bytes)
119- let J = extract(A.payment)
122+ let K = extract(A.payment)
120123 let u = m("contest_currentnumber")
121- let K = m((("contest_" + toString(u)) + "_startheight"))
122- let H = m((("contest_" + toString(u)) + "_finishheight"))
124+ let L = m((("contest_" + toString(u)) + "_startheight"))
125+ let I = m((("contest_" + toString(u)) + "_finishheight"))
123126 let E = r((("contest_" + toString(u)) + "_status"))
124- let L = m((("contest_" + toString(u)) + "_betcost"))
127+ let M = m((("contest_" + toString(u)) + "_betcost"))
125128 let C = r((("contest_" + toString(u)) + "_status"))
126- let M = r(((("bet_" + toString(u)) + "_") + toString(I)))
127- if ((height > (H - (2 * 1440))))
129+ let N = r(((("bet_" + toString(u)) + "_") + toString(J)))
130+ if ((height > (I - (2 * 1440))))
128131 then throw("You cannot bet anymore at this height.")
129132 else if ((E != a))
130133 then throw(("Invalid status: you cannot bet now, contest status is: " + E))
131- else if (if ((J.assetId != l))
134+ else if (if ((K.assetId != l))
132135 then true
133- else (J.amount != L))
134- then throw(((("You must pay at least: " + toString(L)) + " WLT to bet. You paid: ") + toString(J.amount)))
135- else if (if ((M != j))
136- then (M != D)
136+ else (K.amount != M))
137+ then throw(((("You must pay at least: " + toString(M)) + " WLT to bet. You paid: ") + toString(K.amount)))
138+ else if (if ((N != j))
139+ then (N != D)
137140 else false)
138- then throw((("Another user: " + M) + " did bet already on this rate."))
139- else WriteSet([DataEntry(((("bet_" + toString(u)) + "_") + toString(I)), D)])
141+ then throw((("Another user: " + N) + " did bet already on this rate."))
142+ else WriteSet([DataEntry(((("bet_" + toString(u)) + "_") + toString(J)), D)])
140143 }
141144
142145
143146
144147 @Callable(A)
145148 func closecontest () = {
146- let N = x()
149+ let O = x()
147150 let u = m("contest_currentnumber")
148- let O = r(((("bet_" + toString(u)) + "_") + toString(N)))
149- let H = m((("contest_" + toString(u)) + "_finishheight"))
151+ let P = r(((("bet_" + toString(u)) + "_") + toString(O)))
152+ let I = m((("contest_" + toString(u)) + "_finishheight"))
150153 let D = toBase58String(A.caller.bytes)
151- let P = wavesBalance(this)
154+ let G = wavesBalance(this)
152155 let E = r((("contest_" + toString(u)) + "_status"))
153156 let Q = ((assetBalance(this, l) * 85) / 100)
154157 if ((D != d))
155158 then throw("Only dAPP Owner can Close Contest.")
156- else if (if ((H > height))
159+ else if (if ((I > height))
157160 then (D != d)
158161 else false)
159- then throw(((("account: " + D) + ": Cannot close the contest before height:") + toString(H)))
162+ then throw(((("account: " + D) + ": Cannot close the contest before height:") + toString(I)))
160163 else if ((E != a))
161164 then throw(("Cannot close a contest in status: " + E))
162- else if ((O != j))
165+ else if ((P != j))
163166 then {
164167 let R = ((assetBalance(this, l) * 5) / 100)
165168 let S = ((wavesBalance(this) * 99) / 100)
166- let T = TransferSet([ScriptTransfer(extract(addressFromString(O)), S, unit), ScriptTransfer(extract(addressFromString(e)), R, l), ScriptTransfer(extract(addressFromString(g)), R, l), ScriptTransfer(extract(addressFromString(f)), Q, l), ScriptTransfer(extract(addressFromString(h)), Q, l)])
167- ScriptResult(WriteSet([DataEntry((("contest_" + toString(u)) + "_status"), b), DataEntry((("contest_" + toString(u)) + "_winner"), O), DataEntry((("contest_" + toString(u)) + "_currencyrate"), N), DataEntry((("contest_" + toString(u)) + "_prize"), S), DataEntry((("contest_" + toString(u)) + "_wltburned"), Q)]), T)
169+ let T = TransferSet([ScriptTransfer(extract(addressFromString(P)), S, unit), ScriptTransfer(extract(addressFromString(e)), R, l), ScriptTransfer(extract(addressFromString(g)), R, l), ScriptTransfer(extract(addressFromString(f)), Q, l), ScriptTransfer(extract(addressFromString(h)), Q, l)])
170+ ScriptResult(WriteSet([DataEntry((("contest_" + toString(u)) + "_status"), b), DataEntry((("contest_" + toString(u)) + "_winner"), P), DataEntry((("contest_" + toString(u)) + "_currencyrate"), O), DataEntry((("contest_" + toString(u)) + "_prize"), S), DataEntry((("contest_" + toString(u)) + "_wltburned"), Q)]), T)
168171 }
169- else WriteSet([DataEntry((("contest_" + toString(u)) + "_status"), b), DataEntry((("contest_" + toString(u)) + "_winner"), O), DataEntry((("contest_" + toString(u)) + "_currencyrate"), N), DataEntry((("contest_" + toString(u)) + "_prize"), 0), DataEntry((("contest_" + toString(u)) + "_wltburned"), Q)])
172+ else WriteSet([DataEntry((("contest_" + toString(u)) + "_status"), b), DataEntry((("contest_" + toString(u)) + "_winner"), P), DataEntry((("contest_" + toString(u)) + "_currencyrate"), O), DataEntry((("contest_" + toString(u)) + "_prize"), 0), DataEntry((("contest_" + toString(u)) + "_wltburned"), Q)])
170173 }
171174
172175
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "RUNNING"
55
66 let b = "CLOSED"
77
88 let c = "CANCELED"
99
1010 let d = "3N5mwuqT6dXpbqwT5VKDXzGJJ6c14rKqxS7"
1111
1212 let e = "3NAcoeWdUTWn8csXJPG47v1Fjtjcfqxb5tu"
1313
1414 let f = "3MpCbDDjkSrfS1XkPpm71iZj5DQ1RpBRRht"
1515
1616 let g = "3MqPpbWPRsZFoT9X74qWocU4BpypGEPhiCn"
1717
1818 let h = "3N1xQeQcsrY8Urm4RdrmL2dfoZAP4ULpH1S"
1919
2020 let i = "WAVES"
2121
2222 let j = "NONE"
2323
2424 let k = 900000
2525
2626 let l = base58'7KAXNTswj6947a6cVpGhVrh1utWpLcjwf8AFpWCtuMT7'
2727
2828 func m (n) = {
2929 let o = {
3030 let p = getInteger(this, n)
3131 if ($isInstanceOf(p, "Int"))
3232 then {
3333 let q = p
3434 q
3535 }
3636 else 0
3737 }
3838 o
3939 }
4040
4141
4242 func r (n) = {
4343 let s = {
4444 let p = getString(this, n)
4545 if ($isInstanceOf(p, "String"))
4646 then {
4747 let q = p
4848 q
4949 }
5050 else j
5151 }
5252 s
5353 }
5454
5555
5656 func t () = {
5757 let u = m("contest_currentnumber")
5858 r((("contest_" + toString(u)) + "_status"))
5959 }
6060
6161
6262 func v (w) = {
6363 let u = m("contest_currentnumber")
6464 r((((("bet_" + toString(u)) + "_") + toString(w)) + "_owner"))
6565 }
6666
6767
6868 func x () = {
6969 let y = extract(addressFromString(e))
7070 let z = {
7171 let p = getInteger(y, "waves_usd_2")
7272 if ($isInstanceOf(p, "Int"))
7373 then {
7474 let q = p
7575 q
7676 }
7777 else 0
7878 }
7979 z
8080 }
8181
8282
8383 @Callable(A)
8484 func setContestStatus (B,C) = {
8585 let D = toBase58String(A.caller.bytes)
8686 if ((D != d))
8787 then throw("Only dAPP Owner can set Contest Status.")
8888 else if (if ((C != c))
8989 then (C != b)
9090 else false)
9191 then throw(("Invalid status: " + C))
9292 else WriteSet([DataEntry((("contest_" + toString(B)) + "_status"), C)])
9393 }
9494
9595
9696
9797 @Callable(A)
9898 func setContestConfiguration () = {
9999 let D = toBase58String(A.caller.bytes)
100100 let u = m("contest_currentnumber")
101101 let E = r((("contest_" + toString(u)) + "_status"))
102102 let F = (u + 1)
103- let G = (((wavesBalance(this) / 25) / 5000000) * 100000)
103+ let G = wavesBalance(this)
104+ let H = (((G / 25) / 5000000) * 100000)
104105 if ((D != d))
105106 then throw(((("Only dAPP Owner can Configure Contest. Caller account: " + D) + " dapp owner: ") + d))
106107 else if ((E == a))
107108 then throw(("You cannot configure a new Contest while old Contest status is: " + E))
108- else {
109- let H = (height + (6 * 1440))
110- WriteSet([DataEntry("contest_currentnumber", F), DataEntry((("contest_" + toString(F)) + "_finishheight"), H), DataEntry((("contest_" + toString(F)) + "_status"), a), DataEntry((("contest_" + toString(F)) + "_betcounter"), 0), DataEntry((("contest_" + toString(F)) + "_betcost"), G)])
111- }
109+ else if ((100000000 > G))
110+ then throw("Balance too low, cannot start a contest.")
111+ else {
112+ let I = (height + (6 * 1440))
113+ WriteSet([DataEntry("contest_currentnumber", F), DataEntry((("contest_" + toString(F)) + "_finishheight"), I), DataEntry((("contest_" + toString(F)) + "_status"), a), DataEntry((("contest_" + toString(F)) + "_betcounter"), 0), DataEntry((("contest_" + toString(F)) + "_betcost"), H)])
114+ }
112115 }
113116
114117
115118
116119 @Callable(A)
117-func bet (I) = {
120+func bet (J) = {
118121 let D = toBase58String(A.caller.bytes)
119- let J = extract(A.payment)
122+ let K = extract(A.payment)
120123 let u = m("contest_currentnumber")
121- let K = m((("contest_" + toString(u)) + "_startheight"))
122- let H = m((("contest_" + toString(u)) + "_finishheight"))
124+ let L = m((("contest_" + toString(u)) + "_startheight"))
125+ let I = m((("contest_" + toString(u)) + "_finishheight"))
123126 let E = r((("contest_" + toString(u)) + "_status"))
124- let L = m((("contest_" + toString(u)) + "_betcost"))
127+ let M = m((("contest_" + toString(u)) + "_betcost"))
125128 let C = r((("contest_" + toString(u)) + "_status"))
126- let M = r(((("bet_" + toString(u)) + "_") + toString(I)))
127- if ((height > (H - (2 * 1440))))
129+ let N = r(((("bet_" + toString(u)) + "_") + toString(J)))
130+ if ((height > (I - (2 * 1440))))
128131 then throw("You cannot bet anymore at this height.")
129132 else if ((E != a))
130133 then throw(("Invalid status: you cannot bet now, contest status is: " + E))
131- else if (if ((J.assetId != l))
134+ else if (if ((K.assetId != l))
132135 then true
133- else (J.amount != L))
134- then throw(((("You must pay at least: " + toString(L)) + " WLT to bet. You paid: ") + toString(J.amount)))
135- else if (if ((M != j))
136- then (M != D)
136+ else (K.amount != M))
137+ then throw(((("You must pay at least: " + toString(M)) + " WLT to bet. You paid: ") + toString(K.amount)))
138+ else if (if ((N != j))
139+ then (N != D)
137140 else false)
138- then throw((("Another user: " + M) + " did bet already on this rate."))
139- else WriteSet([DataEntry(((("bet_" + toString(u)) + "_") + toString(I)), D)])
141+ then throw((("Another user: " + N) + " did bet already on this rate."))
142+ else WriteSet([DataEntry(((("bet_" + toString(u)) + "_") + toString(J)), D)])
140143 }
141144
142145
143146
144147 @Callable(A)
145148 func closecontest () = {
146- let N = x()
149+ let O = x()
147150 let u = m("contest_currentnumber")
148- let O = r(((("bet_" + toString(u)) + "_") + toString(N)))
149- let H = m((("contest_" + toString(u)) + "_finishheight"))
151+ let P = r(((("bet_" + toString(u)) + "_") + toString(O)))
152+ let I = m((("contest_" + toString(u)) + "_finishheight"))
150153 let D = toBase58String(A.caller.bytes)
151- let P = wavesBalance(this)
154+ let G = wavesBalance(this)
152155 let E = r((("contest_" + toString(u)) + "_status"))
153156 let Q = ((assetBalance(this, l) * 85) / 100)
154157 if ((D != d))
155158 then throw("Only dAPP Owner can Close Contest.")
156- else if (if ((H > height))
159+ else if (if ((I > height))
157160 then (D != d)
158161 else false)
159- then throw(((("account: " + D) + ": Cannot close the contest before height:") + toString(H)))
162+ then throw(((("account: " + D) + ": Cannot close the contest before height:") + toString(I)))
160163 else if ((E != a))
161164 then throw(("Cannot close a contest in status: " + E))
162- else if ((O != j))
165+ else if ((P != j))
163166 then {
164167 let R = ((assetBalance(this, l) * 5) / 100)
165168 let S = ((wavesBalance(this) * 99) / 100)
166- let T = TransferSet([ScriptTransfer(extract(addressFromString(O)), S, unit), ScriptTransfer(extract(addressFromString(e)), R, l), ScriptTransfer(extract(addressFromString(g)), R, l), ScriptTransfer(extract(addressFromString(f)), Q, l), ScriptTransfer(extract(addressFromString(h)), Q, l)])
167- ScriptResult(WriteSet([DataEntry((("contest_" + toString(u)) + "_status"), b), DataEntry((("contest_" + toString(u)) + "_winner"), O), DataEntry((("contest_" + toString(u)) + "_currencyrate"), N), DataEntry((("contest_" + toString(u)) + "_prize"), S), DataEntry((("contest_" + toString(u)) + "_wltburned"), Q)]), T)
169+ let T = TransferSet([ScriptTransfer(extract(addressFromString(P)), S, unit), ScriptTransfer(extract(addressFromString(e)), R, l), ScriptTransfer(extract(addressFromString(g)), R, l), ScriptTransfer(extract(addressFromString(f)), Q, l), ScriptTransfer(extract(addressFromString(h)), Q, l)])
170+ ScriptResult(WriteSet([DataEntry((("contest_" + toString(u)) + "_status"), b), DataEntry((("contest_" + toString(u)) + "_winner"), P), DataEntry((("contest_" + toString(u)) + "_currencyrate"), O), DataEntry((("contest_" + toString(u)) + "_prize"), S), DataEntry((("contest_" + toString(u)) + "_wltburned"), Q)]), T)
168171 }
169- else WriteSet([DataEntry((("contest_" + toString(u)) + "_status"), b), DataEntry((("contest_" + toString(u)) + "_winner"), O), DataEntry((("contest_" + toString(u)) + "_currencyrate"), N), DataEntry((("contest_" + toString(u)) + "_prize"), 0), DataEntry((("contest_" + toString(u)) + "_wltburned"), Q)])
172+ else WriteSet([DataEntry((("contest_" + toString(u)) + "_status"), b), DataEntry((("contest_" + toString(u)) + "_winner"), P), DataEntry((("contest_" + toString(u)) + "_currencyrate"), O), DataEntry((("contest_" + toString(u)) + "_prize"), 0), DataEntry((("contest_" + toString(u)) + "_wltburned"), Q)])
170173 }
171174
172175
173176 @Verifier(U)
174177 func V () = {
175178 let p = U
176179 if (if ($isInstanceOf(p, "SetScriptTransaction"))
177180 then true
178181 else $isInstanceOf(p, "DataTransaction"))
179182 then sigVerify(U.bodyBytes, U.proofs[0], U.senderPublicKey)
180183 else if ($isInstanceOf(p, "InvokeScriptTransaction"))
181184 then true
182185 else true
183186 }
184187

github/deemru/w8io/169f3d6 
86.28 ms