BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Mainnet
  • /
  • Youves v2 Engine Vault legacy (uBTC with TEZ)
Contract factoryDelegatable
operations (34.8K)Storage Code Interact Tokens Fork Statistics Details
Latest
​x
865
1829
 
1
parameter (or
2
            (or
3
              (or (or (nat %bailout) (nat %burn))
4
                  (or
5
                    (pair %create_vault (bool %allows_settlement)
6
                                        (pair (option %baker key_hash)
7
                                              (contract %contract_address_callback address)))
8
                    (or (lambda %execute unit (list operation)) (nat %internal_bailout))))
9
              (or
10
                (or (nat %internal_burn)
11
                    (or
12
                      (pair %internal_liquidate (address %vault_owner)
13
                                                (nat %token_amount))
14
                      (nat %internal_mint)))
15
                (or
16
                  (pair %internal_settle_with_vault (address %vault_owner)
17
                                                    (pair (nat %token_amount)
18
                                                          (address %recipient)))
19
                  (or (mutez %internal_withdraw)
20
                      (pair %liquidate (address %vault_owner) (nat %token_amount))))))
21
            (or
22
              (or
23
                (or (nat %mint)
24
                    (pair %remove_administrator (address %administrator_to_remove)
25
                                                (nat %token_id)))
26
                (or
27
                  (pair %set_administrator (address %administrator_to_set)
28
                                           (nat %token_id))
29
                  (or
30
                    (pair %set_contracts
31
                      (pair (address %governance_token_contract)
32
                            (address %options_contract))
33
                      (pair (address %reward_pool_contract)
34
                            (pair (address %savings_pool_contract)
35
                                  (address %target_price_oracle))))
36
                    (nat %set_reference_interest_rate))))
37
              (or
38
                (or (nat %set_target_price)
39
                    (or (mutez %set_vault_balance) (option %set_vault_delegate key_hash)))
40
                (or
41
                  (pair %settle_with_vault (address %vault_owner)
42
                                           (pair (nat %token_amount)
43
                                                 (address %recipient)))
44
                  (or (unit %update) (mutez %withdraw))))));
45
storage (pair
46
          (pair
47
            (pair
48
              (pair (timestamp %accrual_update_timestamp)
49
                    (big_map %administrators (pair (address %owner) (nat %token_id))
50
                                             unit))
51
              (pair (nat %compound_interest_rate) (address %governance_token_contract)))
52
            (pair (pair (address %options_contract) (nat %reference_interest_rate))
53
                  (pair (address %reward_pool_contract) (address %savings_pool_contract))))
54
          (pair
55
            (pair (pair (address %sender) (nat %target_price))
56
                  (pair (address %target_price_oracle) (address %token_contract)))
57
            (pair (pair (nat %token_id) (nat %total_supply))
58
                  (pair
59
                    (big_map %vault_contexts address
60
                                             (pair
61
                                               (pair (address %address)
62
                                                     (bool %allows_settlement))
63
                                               (pair (mutez %balance)
64
                                                     (pair (bool %is_being_liquidated)
65
                                                           (nat %minted)))))
66
                    (big_map %vault_lookup address address)))));
67
code { LAMBDA
68
         (pair unit
69
               (pair (list operation)
70
                     (pair
71
                       (pair
72
                         (pair (pair timestamp (big_map (pair address nat) unit))
73
                               (pair nat address))
74
                         (pair (pair address nat) (pair address address)))
75
                       (pair (pair (pair address nat) (pair address address))
76
                             (pair (pair nat nat)
77
                                   (pair
78
                                     (big_map address
79
                                              (pair (pair address bool)
80
                                                    (pair mutez (pair bool nat))))
81
                                     (big_map address address)))))))
82
         (pair unit
83
               (pair (list operation)
84
                     (pair
85
                       (pair
86
                         (pair (pair timestamp (big_map (pair address nat) unit))
87
                               (pair nat address))
88
                         (pair (pair address nat) (pair address address)))
89
                       (pair (pair (pair address nat) (pair address address))
90
                             (pair (pair nat nat)
91
                                   (pair
92
                                     (big_map address
93
                                              (pair (pair address bool)
94
                                                    (pair mutez (pair bool nat))))
95
                                     (big_map address address)))))))
96
         { CDR ;
97
           UNPAIR ;
98
           SWAP ;
99
           DUP ;
100
           DUG 2 ;
101
           GET 3 ;
102
           GET 3 ;
103
           CONTRACT %get_price (contract nat) ;
104
           IF_NONE { PUSH int 69 ; FAILWITH } {} ;
105
           PUSH mutez 0 ;
106
           SELF_ADDRESS ;
107
           CONTRACT %set_target_price nat ;
108
           IF_NONE { PUSH int 71 ; FAILWITH } {} ;
109
           TRANSFER_TOKENS ;
110
           CONS ;
111
           UNIT ;
112
           PAIR 3 } ;
113
       SWAP ;
114
       LAMBDA
115
         (pair unit
116
               (pair (list operation)
117
                     (pair
118
                       (pair
119
                         (pair (pair timestamp (big_map (pair address nat) unit))
120
                               (pair nat address))
121
                         (pair (pair address nat) (pair address address)))
122
                       (pair (pair (pair address nat) (pair address address))
123
                             (pair (pair nat nat)
124
                                   (pair
125
                                     (big_map address
126
                                              (pair (pair address bool)
127
                                                    (pair mutez (pair bool nat))))
128
                                     (big_map address address)))))))
129
         (pair unit
130
               (pair (list operation)
131
                     (pair
132
                       (pair
133
                         (pair (pair timestamp (big_map (pair address nat) unit))
134
                               (pair nat address))
135
                         (pair (pair address nat) (pair address address)))
136
                       (pair (pair (pair address nat) (pair address address))
137
                             (pair (pair nat nat)
138
                                   (pair
139
                                     (big_map address
140
                                              (pair (pair address bool)
141
                                                    (pair mutez (pair bool nat))))
142
                                     (big_map address address)))))))
143
         { UNPAIR 3 ;
144
           SWAP ;
145
           DUP 3 ;
146
           CAR ;
147
           CAR ;
148
           CAR ;
149
           CAR ;
150
           NOW ;
151
           SUB ;
152
           ISNAT ;
153
           IF_NONE { PUSH int 133 ; FAILWITH } {} ;
154
           DUP ;
155
           PUSH nat 0 ;
156
           COMPARE ;
157
           LT ;
158
           IF
159
             { DIG 2 ;
160
               DROP ;
161
               PUSH nat 1000000000000 ;
162
               DUP 4 ;
163
               GET 5 ;
164
               CDR ;
165
               DUP 3 ;
166
               DUP 6 ;
167
               CAR ;
168
               GET 3 ;
169
               CDR ;
170
               MUL ;
171
               MUL ;
172
               EDIV ;
173
               IF_NONE { PUSH int 136 ; FAILWITH } { CAR } ;
174
               PUSH nat 1000000000000 ;
175
               DUP 5 ;
176
               GET 5 ;
177
               CDR ;
178
               DUP 4 ;
179
               PUSH nat 316 ;
180
               MUL ;
181
               MUL ;
182
               EDIV ;
183
               IF_NONE { PUSH int 138 ; FAILWITH } { CAR } ;
184
               DUP 5 ;
185
               UNPAIR ;
186
               UNPAIR ;
187
               UNPAIR ;
188
               SWAP ;
189
               CDR ;
190
               PUSH nat 1000000000000 ;
191
               DIG 7 ;
192
               PUSH nat 316 ;
193
               DUP 11 ;
194
               CAR ;
195
               GET 3 ;
196
               CDR ;
197
               ADD ;
198
               MUL ;
199
               PUSH nat 1000000000000 ;
200
               ADD ;
201
               DIG 9 ;
202
               CAR ;
203
               CAR ;
204
               GET 3 ;
205
               MUL ;
206
               EDIV ;
207
               IF_NONE { PUSH int 142 ; FAILWITH } { CAR } ;
208
               PAIR ;
209
               SWAP ;
210
               PAIR ;
211
               PAIR ;
212
               PAIR ;
213
               DUG 3 ;
214
               DIG 2 ;
215
               DUP 4 ;
216
               GET 3 ;
217
               GET 4 ;
218
               CONTRACT %mint (pair address (pair nat nat)) ;
219
               IF_NONE { PUSH int 120 ; FAILWITH } {} ;
220
               PUSH mutez 0 ;
221
               DUP 5 ;
222
               DIG 6 ;
223
               DUP ;
224
               GET 5 ;
225
               CAR ;
226
               SWAP ;
227
               DUP ;
228
               DUG 8 ;
229
               CAR ;
230
               GET 6 ;
231
               PAIR 3 ;
232
               TRANSFER_TOKENS ;
233
               CONS ;
234
               DUP 4 ;
235
               GET 3 ;
236
               GET 4 ;
237
               CONTRACT %mint (pair address (pair nat nat)) ;
238
               IF_NONE { PUSH int 120 ; FAILWITH } {} ;
239
               PUSH mutez 0 ;
240
               DUP 4 ;
241
               DIG 6 ;
242
               DUP ;
243
               GET 5 ;
244
               CAR ;
245
               SWAP ;
246
               DUP ;
247
               DUG 8 ;
248
               CAR ;
249
               GET 5 ;
250
               PAIR 3 ;
251
               TRANSFER_TOKENS ;
252
               CONS ;
253
               DUG 2 ;
254
               DIG 3 ;
255
               UNPAIR ;
256
               SWAP ;
257
               UNPAIR ;
258
               SWAP ;
259
               UNPAIR ;
260
               UNPAIR ;
261
               SWAP ;
262
               DIG 5 ;
263
               DIG 6 ;
264
               ADD ;
265
               ADD ;
266
               SWAP ;
267
               PAIR ;
268
               PAIR ;
269
               SWAP ;
270
               PAIR ;
271
               SWAP ;
272
               UNPAIR ;
273
               UNPAIR ;
274
               CDR ;
275
               NOW ;
276
               PAIR ;
277
               PAIR ;
278
               PAIR ;
279
               PAIR ;
280
               SWAP }
281
             { DROP ; SWAP ; DROP } ;
282
           UNIT ;
283
           PAIR 3 } ;
284
       SWAP ;
285
       LAMBDA
286
         (pair (pair address nat)
287
               (pair (list operation)
288
                     (pair
289
                       (pair
290
                         (pair (pair timestamp (big_map (pair address nat) unit))
291
                               (pair nat address))
292
                         (pair (pair address nat) (pair address address)))
293
                       (pair (pair (pair address nat) (pair address address))
294
                             (pair (pair nat nat)
295
                                   (pair
296
                                     (big_map address
297
                                              (pair (pair address bool)
298
                                                    (pair mutez (pair bool nat))))
299
                                     (big_map address address)))))))
300
         (pair unit
301
               (pair (list operation)
302
                     (pair
303
                       (pair
304
                         (pair (pair timestamp (big_map (pair address nat) unit))
305
                               (pair nat address))
306
                         (pair (pair address nat) (pair address address)))
307
                       (pair (pair (pair address nat) (pair address address))
308
                             (pair (pair nat nat)
309
                                   (pair
310
                                     (big_map address
311
                                              (pair (pair address bool)
312
                                                    (pair mutez (pair bool nat))))
313
                                     (big_map address address)))))))
314
         { UNPAIR 3 ;
315
           SWAP ;
316
           DUP 3 ;
317
           CAR ;
318
           CAR ;
319
           GET 4 ;
320
           CONTRACT %update_stake (pair address nat) ;
321
           IF_NONE { PUSH int 161 ; FAILWITH } {} ;
322
           PUSH mutez 0 ;
323
           DIG 3 ;
324
           TRANSFER_TOKENS ;
325
           CONS ;
326
           UNIT ;
327
           PAIR 3 } ;
328
       SWAP ;
329
       LAMBDA
330
         (pair unit
331
               (pair (list operation)
332
                     (pair
333
                       (pair
334
                         (pair (pair timestamp (big_map (pair address nat) unit))
335
                               (pair nat address))
336
                         (pair (pair address nat) (pair address address)))
337
                       (pair (pair (pair address nat) (pair address address))
338
                             (pair (pair nat nat)
339
                                   (pair
340
                                     (big_map address
341
                                              (pair (pair address bool)
342
                                                    (pair mutez (pair bool nat))))
343
                                     (big_map address address)))))))
344
         (pair unit
345
               (pair (list operation)
346
                     (pair
347
                       (pair
348
                         (pair (pair timestamp (big_map (pair address nat) unit))
349
                               (pair nat address))
350
                         (pair (pair address nat) (pair address address)))
351
                       (pair (pair (pair address nat) (pair address address))
352
                             (pair (pair nat nat)
353
                                   (pair
354
                                     (big_map address
355
                                              (pair (pair address bool)
356
                                                    (pair mutez (pair bool nat))))
357
                                     (big_map address address)))))))
358
         { CDR ;
359
           UNPAIR ;
360
           SELF_ADDRESS ;
361
           SENDER ;
362
           COMPARE ;
363
           EQ ;
364
           IF {} { PUSH int 400 ; FAILWITH } ;
365
           UNIT ;
366
           PAIR 3 } ;
367
       SWAP ;
368
       LAMBDA
369
         (pair nat
370
               (pair (list operation)
371
                     (pair
372
                       (pair
373
                         (pair (pair timestamp (big_map (pair address nat) unit))
374
                               (pair nat address))
375
                         (pair (pair address nat) (pair address address)))
376
                       (pair (pair (pair address nat) (pair address address))
377
                             (pair (pair nat nat)
378
                                   (pair
379
                                     (big_map address
380
                                              (pair (pair address bool)
381
                                                    (pair mutez (pair bool nat))))
382
                                     (big_map address address)))))))
383
         (pair unit
384
               (pair (list operation)
385
                     (pair
386
                       (pair
387
                         (pair (pair timestamp (big_map (pair address nat) unit))
388
                               (pair nat address))
389
                         (pair (pair address nat) (pair address address)))
390
                       (pair (pair (pair address nat) (pair address address))
391
                             (pair (pair nat nat)
392
                                   (pair
393
                                     (big_map address
394
                                              (pair (pair address bool)
395
                                                    (pair mutez (pair bool nat))))
396
                                     (big_map address address)))))))
397
         { UNPAIR 3 ;
398
           SWAP ;
399
           DUP 3 ;
400
           CAR ;
401
           CAR ;
402
           CAR ;
403
           CDR ;
404
           DIG 2 ;
405
           SENDER ;
406
           PAIR ;
407
           MEM ;
408
           IF {} { PUSH int 401 ; FAILWITH } ;
409
           UNIT ;
410
           PAIR 3 } ;
411
       SWAP ;
412
       UNPAIR ;
413
       IF_LEFT
414
         { IF_LEFT
415
             { IF_LEFT
416
                 { IF_LEFT
417
                     { DIG 2 ;
418
                       DROP ;
419
                       DIG 2 ;
420
                       DROP ;
421
                       DIG 2 ;
422
                       DROP ;
423
                       NIL operation ;
424
                       DIG 4 ;
425
                       UNIT ;
426
                       SWAP ;
427
                       DIG 4 ;
428
                       DIG 3 ;
429
                       DIG 3 ;
430
                       PAIR 3 ;
431
                       EXEC ;
432
                       CDR ;
433
                       UNPAIR ;
434
                       DIG 3 ;
435
                       DIG 2 ;
436
                       DIG 3 ;
437
                       DIG 3 ;
438
                       DIG 3 ;
439
                       UNIT ;
440
                       SWAP ;
441
                       DIG 4 ;
442
                       DIG 3 ;
443
                       DIG 3 ;
444
                       PAIR 3 ;
445
                       EXEC ;
446
                       CDR ;
447
                       UNPAIR ;
448
                       SWAP ;
449
                       UNPAIR ;
450
                       SWAP ;
451
                       UNPAIR ;
452
                       UNPAIR ;
453
                       CDR ;
454
                       SENDER ;
455
                       PAIR ;
456
                       PAIR ;
457
                       PAIR ;
458
                       SWAP ;
459
                       PAIR ;
460
                       DUP ;
461
                       DUG 3 ;
462
                       CAR ;
463
                       GET 6 ;
464
                       CONTRACT %bailout nat ;
465
                       IF_NONE { PUSH int 581 ; FAILWITH } {} ;
466
                       PUSH mutez 0 ;
467
                       DUP 4 ;
468
                       TRANSFER_TOKENS ;
469
                       CONS ;
470
                       SELF %internal_bailout ;
471
                       PUSH mutez 0 ;
472
                       DIG 3 ;
473
                       TRANSFER_TOKENS ;
474
                       CONS }
475
                     { DIG 2 ;
476
                       DROP ;
477
                       DIG 2 ;
478
                       DROP ;
479
                       DIG 2 ;
480
                       DROP ;
481
                       NIL operation ;
482
                       DIG 4 ;
483
                       UNIT ;
484
                       SWAP ;
485
                       DIG 4 ;
486
                       DIG 3 ;
487
                       DIG 3 ;
488
                       PAIR 3 ;
489
                       EXEC ;
490
                       CDR ;
491
                       UNPAIR ;
492
                       DIG 3 ;
493
                       DIG 2 ;
494
                       DIG 3 ;
495
                       DIG 3 ;
496
                       DIG 3 ;
497
                       UNIT ;
498
                       SWAP ;
499
                       DIG 4 ;
500
                       DIG 3 ;
501
                       DIG 3 ;
502
                       PAIR 3 ;
503
                       EXEC ;
504
                       CDR ;
505
                       UNPAIR ;
506
                       SWAP ;
507
                       UNPAIR ;
508
                       SWAP ;
509
                       UNPAIR ;
510
                       UNPAIR ;
511
                       CDR ;
512
                       SENDER ;
513
                       PAIR ;
514
                       PAIR ;
515
                       PAIR ;
516
                       SWAP ;
517
                       PAIR ;
518
                       DUG 2 ;
519
                       SELF %internal_burn ;
520
                       PUSH mutez 0 ;
521
                       DIG 3 ;
522
                       TRANSFER_TOKENS ;
523
                       CONS } }
524
                 { IF_LEFT
525
                     { DIG 2 ;
526
                       DROP ;
527
                       DIG 2 ;
528
                       DROP ;
529
                       DIG 2 ;
530
                       DROP ;
531
                       DIG 2 ;
532
                       DROP ;
533
                       DIG 2 ;
534
                       DROP ;
535
                       SWAP ;
536
                       DUP ;
537
                       DUG 2 ;
538
                       GET 7 ;
539
                       SENDER ;
540
                       MEM ;
541
                       IF
542
                         { NIL operation ;
543
                           DUP 3 ;
544
                           GET 7 ;
545
                           SENDER ;
546
                           GET ;
547
                           IF_NONE { PUSH int 227 ; FAILWITH } {} ;
548
                           CAR ;
549
                           CAR ;
550
                           CONTRACT unit ;
551
                           IF_NONE { PUSH int 227 ; FAILWITH } {} ;
552
                           AMOUNT ;
553
                           UNIT ;
554
                           TRANSFER_TOKENS ;
555
                           CONS }
556
                         { NIL operation ;
557
                           SELF_ADDRESS ;
558
                           AMOUNT ;
559
                           DUP 4 ;
560
                           GET 3 ;
561
                           CREATE_CONTRACT { parameter (or (unit %default)
562
                                                           (or
563
                                                             (option %set_delegate key_hash)
564
                                                             (pair %withdraw
565
                                                               (address %recipient)
566
                                                               (mutez %amount)))) ;
567
                                             storage address ;
568
                                             code { CAST (pair
569
                                                           (or unit
570
                                                               (or (option key_hash)
571
                                                                   (pair address mutez)))
572
                                                           address) ;
573
                                                    UNPAIR ;
574
                                                    IF_LEFT
575
                                                      { DROP ;
576
                                                        DUP ;
577
                                                        CONTRACT %set_vault_balance mutez ;
578
                                                        IF_NONE
579
                                                          { PUSH int 64 ; FAILWITH }
580
                                                          {} ;
581
                                                        NIL operation ;
582
                                                        SWAP ;
583
                                                        PUSH mutez 0 ;
584
                                                        BALANCE ;
585
                                                        TRANSFER_TOKENS ;
586
                                                        CONS }
587
                                                      { IF_LEFT
588
                                                          { SWAP ;
589
                                                            DUP ;
590
                                                            DUG 2 ;
591
                                                            SENDER ;
592
                                                            COMPARE ;
593
                                                            EQ ;
594
                                                            IF
595
                                                              {}
596
                                                              { PUSH int 401 ; FAILWITH } ;
597
                                                            SET_DELEGATE ;
598
                                                            NIL operation ;
599
                                                            SWAP ;
600
                                                            CONS ;
601
                                                            SELF_ADDRESS ;
602
                                                            CONTRACT unit ;
603
                                                            IF_NONE
604
                                                              { PUSH int 57 ; FAILWITH }
605
                                                              {} ;
606
                                                            PUSH mutez 0 ;
607
                                                            UNIT ;
608
                                                            TRANSFER_TOKENS ;
609
                                                            CONS }
610
                                                          { SWAP ;
611
                                                            DUP ;
612
                                                            DUG 2 ;
613
                                                            SENDER ;
614
                                                            COMPARE ;
615
                                                            EQ ;
616
                                                            IF
617
                                                              {}
618
                                                              { PUSH int 401 ; FAILWITH } ;
619
                                                            DUP ;
620
                                                            CAR ;
621
                                                            CONTRACT unit ;
622
                                                            IF_NONE
623
                                                              { PUSH int 79 ; FAILWITH }
624
                                                              {} ;
625
                                                            NIL operation ;
626
                                                            SWAP ;
627
                                                            DIG 2 ;
628
                                                            CDR ;
629
                                                            UNIT ;
630
                                                            TRANSFER_TOKENS ;
631
                                                            CONS } } ;
632
                                                    NIL operation ;
633
                                                    SWAP ;
634
                                                    ITER { CONS } ;
635
                                                    PAIR } } ;
636
                           PAIR ;
637
                           DUP ;
638
                           DUG 2 ;
639
                           CAR ;
640
                           CONS ;
641
                           SWAP ;
642
                           DIG 3 ;
643
                           DUP ;
644
                           GET 7 ;
645
                           PUSH (pair bool nat) (Pair False 0) ;
646
                           AMOUNT ;
647
                           PAIR ;
648
                           DUP 6 ;
649
                           CAR ;
650
                           DUP 5 ;
651
                           CDR ;
652
                           PAIR ;
653
                           PAIR ;
654
                           SOME ;
655
                           SENDER ;
656
                           UPDATE ;
657
                           UPDATE 7 ;
658
                           DUP ;
659
                           GET 8 ;
660
                           SENDER ;
661
                           SOME ;
662
                           DIG 3 ;
663
                           CDR ;
664
                           UPDATE ;
665
                           UPDATE 8 ;
666
                           DUG 2 } ;
667
                       SWAP ;
668
                       GET 4 ;
669
                       PUSH mutez 0 ;
670
                       DUP 4 ;
671
                       GET 7 ;
672
                       SENDER ;
673
                       GET ;
674
                       IF_NONE { PUSH int 229 ; FAILWITH } {} ;
675
                       CAR ;
676
                       CAR ;
677
                       TRANSFER_TOKENS ;
678
                       CONS }
679
                     { IF_LEFT
680
                         { NIL operation ;
681
                           DUP 4 ;
682
                           PUSH nat 0 ;
683
                           SWAP ;
684
                           DIG 4 ;
685
                           DIG 3 ;
686
                           DIG 3 ;
687
                           PAIR 3 ;
688
                           EXEC ;
689
                           UNPAIR 3 ;
690
                           DUG 8 ;
691
                           DUG 8 ;
692
                           DUG 8 ;
693
                           DUG 8 ;
694
                           DIG 7 ;
695
                           DIG 8 ;
696
                           DIG 8 ;
697
                           DIG 8 ;
698
                           DUP 3 ;
699
                           UNIT ;
700
                           EXEC ;
701
                           NIL operation ;
702
                           SWAP ;
703
                           ITER { CONS } ;
704
                           ITER { DIG 2 ; SWAP ; CONS ; SWAP } ;
705
                           DROP ;
706
                           SWAP ;
707
                           DROP ;
708
                           DIG 2 ;
709
                           DROP ;
710
                           DIG 2 ;
711
                           DROP ;
712
                           DIG 2 ;
713
                           DROP ;
714
                           DIG 2 ;
715
                           DROP ;
716
                           DIG 2 ;
717
                           DROP }
718
                         { NIL operation ;
719
                           DUP 5 ;
720
                           UNIT ;
721
                           SWAP ;
722
                           DIG 4 ;
723
                           DIG 3 ;
724
                           DIG 3 ;
725
                           PAIR 3 ;
726
                           EXEC ;
727
                           UNPAIR 3 ;
728
                           DUG 8 ;
729
                           DUG 8 ;
730
                           DUG 8 ;
731
                           DUG 8 ;
732
                           DIG 7 ;
733
                           DIG 8 ;
734
                           DIG 8 ;
735
                           DIG 8 ;
736
                           DIG 3 ;
737
                           DUP ;
738
                           GET 7 ;
739
                           SWAP ;
740
                           DUP ;
741
                           DUG 5 ;
742
                           GET 3 ;
743
                           CAR ;
744
                           CAR ;
745
                           GET ;
746
                           IF_NONE { PUSH int 606 ; FAILWITH } {} ;
747
                           DUP 5 ;
748
                           GET 3 ;
749
                           CAR ;
750
                           CDR ;
751
                           DUP 5 ;
752
                           MUL ;
753
                           PUSH mutez 1 ;
754
                           PUSH nat 1000000000000 ;
755
                           PUSH nat 2 ;
756
                           DUP 4 ;
757
                           LSR ;
758
                           DUP 4 ;
759
                           ADD ;
760
                           EDIV ;
761
                           IF_NONE { PUSH int 610 ; FAILWITH } { CAR } ;
762
                           MUL ;
763
                           DUP ;
764
                           PUSH mutez 1000 ;
765
                           SWAP ;
766
                           COMPARE ;
767
                           GE ;
768
                           IF {} { PUSH int 602 ; FAILWITH } ;
769
                           PUSH nat 1000000000000 ;
770
                           DUP 8 ;
771
                           CAR ;
772
                           CAR ;
773
                           GET 3 ;
774
                           DUP 5 ;
775
                           GET 6 ;
776
                           MUL ;
777
                           EDIV ;
778
                           IF_NONE { PUSH int 614 ; FAILWITH } { CAR } ;
779
                           DIG 3 ;
780
                           DUP 8 ;
781
                           CAR ;
782
                           CAR ;
783
                           GET 3 ;
784
                           PUSH nat 1000000000000 ;
785
                           DUP 9 ;
786
                           DUP 5 ;
787
                           SUB ;
788
                           ISNAT ;
789
                           IF_NONE { PUSH int 615 ; FAILWITH } {} ;
790
                           MUL ;
791
                           EDIV ;
792
                           IF_NONE { PUSH int 615 ; FAILWITH } { CAR } ;
793
                           UPDATE 6 ;
794
                           DUP ;
795
                           GET 3 ;
796
                           DUP 4 ;
797
                           SWAP ;
798
                           SUB ;
799
                           UPDATE 3 ;
800
                           DUG 3 ;
801
                           DUP 8 ;
802
                           DUP ;
803
                           GET 7 ;
804
                           DUP 6 ;
805
                           SOME ;
806
                           DIG 10 ;
807
                           GET 3 ;
808
                           CAR ;
809
                           CAR ;
810
                           UPDATE ;
811
                           UPDATE 7 ;
812
                           DUG 7 ;
813
                           DUP 4 ;
814
                           CAR ;
815
                           CDR ;
816
                           IF
817
                             { DIG 2 ;
818
                               DROP ;
819
                               DIG 3 ;
820
                               DROP ;
821
                               DIG 6 ;
822
                               DROP ;
823
                               DIG 6 ;
824
                               DROP ;
825
                               DIG 7 ;
826
                               DROP ;
827
                               DIG 7 ;
828
                               DROP ;
829
                               DIG 6 ;
830
                               DUP 7 ;
831
                               GET 3 ;
832
                               CAR ;
833
                               CDR ;
834
                               DUP 7 ;
835
                               DIG 3 ;
836
                               SUB ;
837
                               ISNAT ;
838
                               IF_NONE { PUSH int 620 ; FAILWITH } {} ;
839
                               MUL ;
840
                               DUP 7 ;
841
                               GET 3 ;
842
                               CAR ;
843
                               CAR ;
844
                               PAIR ;
845
                               SWAP ;
846
                               DIG 6 ;
847
                               DIG 5 ;
848
                               DIG 3 ;
849
                               PAIR 3 ;
850
                               EXEC ;
851
                               CDR ;
852
                               UNPAIR ;
853
                               SWAP ;
854
                               DIG 4 ;
855
                               DIG 2 ;
856
                               DIG 4 ;
857
                               DIG 4 }
858
                             { DROP ;
859
                               SWAP ;
860
                               DROP ;
861
                               DIG 2 ;
862
                               DROP ;
863
                               DIG 5 ;
864
                               DROP ;
865
                               DIG 5 ;
866
                               DROP ;
867
                               DIG 5 ;
868
                               DROP ;
869
                               DIG 5 ;
870
                               DROP ;
871
                               DIG 5 ;
872
                               DROP } ;
873
                           DUG 2 ;
874
                           CAR ;
875
                           CAR ;
876
                           CONTRACT %withdraw (pair address mutez) ;
877
                           IF_NONE { PUSH int 622 ; FAILWITH } {} ;
878
                           PUSH mutez 0 ;
879
                           DIG 3 ;
880
                           DUP 6 ;
881
                           CAR ;
882
                           GET 6 ;
883
                           PAIR ;
884
                           TRANSFER_TOKENS ;
885
                           CONS ;
886
                           DUP 3 ;
887
                           GET 3 ;
888
                           GET 4 ;
889
                           CONTRACT %burn (pair address (pair nat nat)) ;
890
                           IF_NONE { PUSH int 120 ; FAILWITH } {} ;
891
                           PUSH mutez 0 ;
892
                           DUP 4 ;
893
                           DIG 5 ;
894
                           DUP ;
895
                           GET 5 ;
896
                           CAR ;
897
                           SWAP ;
898
                           DUP ;
899
                           DUG 7 ;
900
                           CAR ;
901
                           GET 6 ;
902
                           PAIR 3 ;
903
                           TRANSFER_TOKENS ;
904
                           CONS ;
905
                           DUP 3 ;
906
                           UNPAIR ;
907
                           SWAP ;
908
                           UNPAIR ;
909
                           SWAP ;
910
                           UNPAIR ;
911
                           CAR ;
912
                           DIG 5 ;
913
                           DIG 6 ;
914
                           GET 5 ;
915
                           CDR ;
916
                           SUB ;
917
                           ISNAT ;
918
                           IF_NONE { PUSH int 626 ; FAILWITH } {} ;
919
                           SWAP ;
920
                           PAIR ;
921
                           PAIR ;
922
                           SWAP ;
923
                           PAIR ;
924
                           SWAP ;
925
                           PAIR ;
926
                           SWAP } } } }
927
             { IF_LEFT
928
                 { IF_LEFT
929
                     { NIL operation ;
930
                       DUP 5 ;
931
                       UNIT ;
932
                       SWAP ;
933
                       DIG 4 ;
934
                       DIG 3 ;
935
                       DIG 3 ;
936
                       PAIR 3 ;
937
                       EXEC ;
938
                       UNPAIR 3 ;
939
                       DUG 8 ;
940
                       DUG 8 ;
941
                       DUG 8 ;
942
                       DUG 8 ;
943
                       DIG 7 ;
944
                       DIG 8 ;
945
                       DIG 8 ;
946
                       DIG 8 ;
947
                       PUSH nat 1000001 ;
948
                       DUP 4 ;
949
                       COMPARE ;
950
                       GE ;
951
                       IF {} { PUSH int 602 ; FAILWITH } ;
952
                       DIG 3 ;
953
                       DUP ;
954
                       GET 7 ;
955
                       SWAP ;
956
                       DUP ;
957
                       DUG 5 ;
958
                       GET 3 ;
959
                       CAR ;
960
                       CAR ;
961
                       GET ;
962
                       IF_NONE { PUSH int 348 ; FAILWITH } {} ;
963
                       PUSH nat 1000000000000 ;
964
                       DUP 6 ;
965
                       CAR ;
966
                       CAR ;
967
                       GET 3 ;
968
                       DUP 3 ;
969
                       GET 6 ;
970
                       MUL ;
971
                       EDIV ;
972
                       IF_NONE { PUSH int 350 ; FAILWITH } { CAR } ;
973
                       DUP 6 ;
974
                       GET 3 ;
975
                       CAR ;
976
                       CDR ;
977
                       DUP 6 ;
978
                       DUP 3 ;
979
                       SUB ;
980
                       ISNAT ;
981
                       IF_NONE { PUSH int 351 ; FAILWITH } {} ;
982
                       MUL ;
983
                       DIG 2 ;
984
                       DUP 7 ;
985
                       CAR ;
986
                       CAR ;
987
                       GET 3 ;
988
                       PUSH nat 1000000000000 ;
989
                       DUP 8 ;
990
                       DUP 6 ;
991
                       SUB ;
992
                       ISNAT ;
993
                       IF_NONE { PUSH int 353 ; FAILWITH } {} ;
994
                       MUL ;
995
                       EDIV ;
996
                       IF_NONE { PUSH int 353 ; FAILWITH } { CAR } ;
997
                       UPDATE 6 ;
998
                       DUG 2 ;
999
                       DUP 7 ;
1000
                       DUP ;
1001
                       GET 7 ;
1002
                       DUP 5 ;
1003
                       SOME ;
1004
                       DIG 9 ;
1005
                       GET 3 ;
1006
                       CAR ;
1007
                       CAR ;
1008
                       UPDATE ;
1009
                       UPDATE 7 ;
1010
                       DUG 6 ;
1011
                       DIG 4 ;
1012
                       DUP 7 ;
1013
                       GET 3 ;
1014
                       GET 4 ;
1015
                       CONTRACT %burn (pair address (pair nat nat)) ;
1016
                       IF_NONE { PUSH int 120 ; FAILWITH } {} ;
1017
                       PUSH mutez 0 ;
1018
                       DUP 8 ;
1019
                       DIG 9 ;
1020
                       DUP ;
1021
                       GET 5 ;
1022
                       CAR ;
1023
                       SWAP ;
1024
                       DUP ;
1025
                       DUG 11 ;
1026
                       GET 3 ;
1027
                       CAR ;
1028
                       CAR ;
1029
                       PAIR 3 ;
1030
                       TRANSFER_TOKENS ;
1031
                       CONS ;
1032
                       DUG 4 ;
1033
                       DUP 7 ;
1034
                       UNPAIR ;
1035
                       SWAP ;
1036
                       UNPAIR ;
1037
                       SWAP ;
1038
                       UNPAIR ;
1039
                       CAR ;
1040
                       DUP 10 ;
1041
                       DIG 11 ;
1042
                       GET 5 ;
1043
                       CDR ;
1044
                       SUB ;
1045
                       ISNAT ;
1046
                       IF_NONE { PUSH int 359 ; FAILWITH } {} ;
1047
                       SWAP ;
1048
                       PAIR ;
1049
                       PAIR ;
1050
                       SWAP ;
1051
                       PAIR ;
1052
                       SWAP ;
1053
                       PAIR ;
1054
                       DUG 6 ;
1055
                       DUP 3 ;
1056
                       CAR ;
1057
                       CDR ;
1058
                       IF
1059
                         { SWAP ;
1060
                           DROP ;
1061
                           SWAP ;
1062
                           DROP ;
1063
                           SWAP ;
1064
                           DROP ;
1065
                           DIG 2 ;
1066
                           DROP ;
1067
                           DIG 3 ;
1068
                           DROP ;
1069
                           DIG 3 ;
1070
                           DROP ;
1071
                           DIG 4 ;
1072
                           DROP ;
1073
                           DIG 4 ;
1074
                           DROP ;
1075
                           DIG 3 ;
1076
                           SWAP ;
1077
                           DUP 4 ;
1078
                           GET 3 ;
1079
                           CAR ;
1080
                           CAR ;
1081
                           PAIR ;
1082
                           SWAP ;
1083
                           DUG 3 ;
1084
                           PAIR 3 ;
1085
                           EXEC ;
1086
                           CDR ;
1087
                           UNPAIR }
1088
                         { DROP 4 ;
1089
                           SWAP ;
1090
                           DROP ;
1091
                           DIG 2 ;
1092
                           DROP ;
1093
                           DIG 2 ;
1094
                           DROP ;
1095
                           DIG 2 ;
1096
                           DROP ;
1097
                           DIG 2 ;
1098
                           DROP ;
1099
                           DIG 2 ;
1100
                           DROP } }
1101
                     { IF_LEFT
1102
                         { NIL operation ;
1103
                           DUP 5 ;
1104
                           UNIT ;
1105
                           SWAP ;
1106
                           DIG 4 ;
1107
                           DIG 3 ;
1108
                           DIG 3 ;
1109
                           PAIR 3 ;
1110
                           EXEC ;
1111
                           UNPAIR 3 ;
1112
                           DUG 8 ;
1113
                           DUG 8 ;
1114
                           DUG 8 ;
1115
                           DUG 8 ;
1116
                           DIG 7 ;
1117
                           DIG 8 ;
1118
                           DIG 8 ;
1119
                           DIG 8 ;
1120
                           DUP 4 ;
1121
                           GET 7 ;
1122
                           DUP 4 ;
1123
                           CAR ;
1124
                           GET ;
1125
                           IF_NONE { PUSH int 405 ; FAILWITH } {} ;
1126
                           PUSH nat 1000000000000 ;
1127
                           PUSH mutez 1 ;
1128
                           DUP 3 ;
1129
                           GET 3 ;
1130
                           EDIV ;
1131
                           IF_NONE { UNIT ; FAILWITH } {} ;
1132
                           CAR ;
1133
                           MUL ;
1134
                           PUSH nat 2 ;
1135
                           DUP 7 ;
1136
                           GET 3 ;
1137
                           CAR ;
1138
                           CDR ;
1139
                           PUSH nat 1000000000000 ;
1140
                           DUP 9 ;
1141
                           CAR ;
1142
                           CAR ;
1143
                           GET 3 ;
1144
                           DUP 6 ;
1145
                           GET 6 ;
1146
                           MUL ;
1147
                           EDIV ;
1148
                           IF_NONE { PUSH int 408 ; FAILWITH } { CAR } ;
1149
                           MUL ;
1150
                           MUL ;
1151
                           SWAP ;
1152
                           DUP ;
1153
                           DUG 2 ;
1154
                           COMPARE ;
1155
                           LT ;
1156
                           IF { PUSH bool True } { SWAP ; DUP ; DUG 2 ; GET 5 } ;
1157
                           IF {} { PUSH int 802 ; FAILWITH } ;
1158
                           SWAP ;
1159
                           PUSH bool True ;
1160
                           UPDATE 5 ;
1161
                           SWAP ;
1162
                           PUSH nat 3 ;
1163
                           DUP 7 ;
1164
                           GET 3 ;
1165
                           CAR ;
1166
                           CDR ;
1167
                           DUP 7 ;
1168
                           CDR ;
1169
                           MUL ;
1170
                           LSR ;
1171
                           DUP 7 ;
1172
                           GET 3 ;
1173
                           CAR ;
1174
                           CDR ;
1175
                           DUP 7 ;
1176
                           CDR ;
1177
                           MUL ;
1178
                           ADD ;
1179
                           PUSH mutez 1 ;
1180
                           PUSH nat 1000000000000 ;
1181
                           DUP 3 ;
1182
                           EDIV ;
1183
                           IF_NONE { PUSH int 418 ; FAILWITH } { CAR } ;
1184
                           MUL ;
1185
                           DUP 8 ;
1186
                           GET 3 ;
1187
                           CAR ;
1188
                           CDR ;
1189
                           DUP 8 ;
1190
                           CDR ;
1191
                           PUSH nat 1000000000000 ;
1192
                           DUP 11 ;
1193
                           CAR ;
1194
                           CAR ;
1195
                           GET 3 ;
1196
                           DUP 8 ;
1197
                           GET 6 ;
1198
                           MUL ;
1199
                           EDIV ;
1200
                           IF_NONE { PUSH int 408 ; FAILWITH } { CAR } ;
1201
                           SUB ;
1202
                           ISNAT ;
1203
                           IF_NONE { PUSH int 419 ; FAILWITH } {} ;
1204
                           MUL ;
1205
                           DUP ;
1206
                           PUSH nat 3 ;
1207
                           SWAP ;
1208
                           MUL ;
1209
                           DUP 4 ;
1210
                           DUP 6 ;
1211
                           SUB ;
1212
                           ISNAT ;
1213
                           IF_NONE { PUSH int 421 ; FAILWITH } {} ;
1214
                           COMPARE ;
1215
                           LT ;
1216
                           IF {} { PUSH int 803 ; FAILWITH } ;
1217
                           PUSH mutez 1000 ;
1218
                           DUP 3 ;
1219
                           COMPARE ;
1220
                           GE ;
1221
                           IF {} { PUSH int 602 ; FAILWITH } ;
1222
                           PUSH nat 100 ;
1223
                           PUSH nat 3 ;
1224
                           DUP 3 ;
1225
                           MUL ;
1226
                           MUL ;
1227
                           PUSH nat 105 ;
1228
                           DUP 5 ;
1229
                           DUP 7 ;
1230
                           SUB ;
1231
                           ISNAT ;
1232
                           IF_NONE { PUSH int 424 ; FAILWITH } {} ;
1233
                           MUL ;
1234
                           COMPARE ;
1235
                           GE ;
1236
                           IF { DIG 4 ; PUSH bool False ; UPDATE 5 ; DUG 4 } {} ;
1237
                           DIG 6 ;
1238
                           DUP 9 ;
1239
                           GET 3 ;
1240
                           GET 4 ;
1241
                           CONTRACT %burn (pair address (pair nat nat)) ;
1242
                           IF_NONE { PUSH int 120 ; FAILWITH } {} ;
1243
                           PUSH mutez 0 ;
1244
                           DUP 10 ;
1245
                           CDR ;
1246
                           DIG 11 ;
1247
                           DUP ;
1248
                           GET 5 ;
1249
                           CAR ;
1250
                           SWAP ;
1251
                           DUP ;
1252
                           DUG 13 ;
1253
                           GET 3 ;
1254
                           CAR ;
1255
                           CAR ;
1256
                           PAIR 3 ;
1257
                           TRANSFER_TOKENS ;
1258
                           CONS ;
1259
                           DUG 6 ;
1260
                           DUP 9 ;
1261
                           UNPAIR ;
1262
                           SWAP ;
1263
                           UNPAIR ;
1264
                           SWAP ;
1265
                           UNPAIR ;
1266
                           CAR ;
1267
                           DUP 12 ;
1268
                           CDR ;
1269
                           DIG 13 ;
1270
                           GET 5 ;
1271
                           CDR ;
1272
                           SUB ;
1273
                           ISNAT ;
1274
                           IF_NONE { PUSH int 429 ; FAILWITH } {} ;
1275
                           SWAP ;
1276
                           PAIR ;
1277
                           PAIR ;
1278
                           SWAP ;
1279
                           PAIR ;
1280
                           SWAP ;
1281
                           PAIR ;
1282
                           DUG 8 ;
1283
                           DUP 5 ;
1284
                           DUP 10 ;
1285
                           CAR ;
1286
                           CAR ;
1287
                           GET 3 ;
1288
                           PUSH nat 1000000000000 ;
1289
                           DUP 11 ;
1290
                           CDR ;
1291
                           PUSH nat 1000000000000 ;
1292
                           DUP 14 ;
1293
                           CAR ;
1294
                           CAR ;
1295
                           GET 3 ;
1296
                           DIG 10 ;
1297
                           GET 6 ;
1298
                           MUL ;
1299
                           EDIV ;
1300
                           IF_NONE { PUSH int 408 ; FAILWITH } { CAR } ;
1301
                           SUB ;
1302
                           ISNAT ;
1303
                           IF_NONE { PUSH int 431 ; FAILWITH } {} ;
1304
                           MUL ;
1305
                           EDIV ;
1306
                           IF_NONE { PUSH int 431 ; FAILWITH } { CAR } ;
1307
                           UPDATE 6 ;
1308
                           DUP ;
1309
                           GET 3 ;
1310
                           DUP 4 ;
1311
                           SWAP ;
1312
                           SUB ;
1313
                           UPDATE 3 ;
1314
                           DUG 4 ;
1315
                           DIG 8 ;
1316
                           DUP ;
1317
                           GET 7 ;
1318
                           DUP 7 ;
1319
                           SOME ;
1320
                           DUP 11 ;
1321
                           CAR ;
1322
                           UPDATE ;
1323
                           UPDATE 7 ;
1324
                           DUG 8 ;
1325
                           DUP 5 ;
1326
                           CAR ;
1327
                           CDR ;
1328
                           IF
1329
                             { DIG 2 ;
1330
                               DROP ;
1331
                               DIG 2 ;
1332
                               DROP ;
1333
                               DIG 3 ;
1334
                               DROP ;
1335
                               DIG 6 ;
1336
                               DROP ;
1337
                               DIG 6 ;
1338
                               DROP ;
1339
                               DIG 7 ;
1340
                               DROP ;
1341
                               DIG 7 ;
1342
                               DROP ;
1343
                               DIG 6 ;
1344
                               SWAP ;
1345
                               DIG 5 ;
1346
                               CAR ;
1347
                               PAIR ;
1348
                               SWAP ;
1349
                               DIG 5 ;
1350
                               DIG 5 ;
1351
                               DIG 3 ;
1352
                               PAIR 3 ;
1353
                               EXEC ;
1354
                               CDR ;
1355
                               UNPAIR ;
1356
                               DIG 3 ;
1357
                               DIG 3 }
1358
                             { DROP ;
1359
                               SWAP ;
1360
                               DROP ;
1361
                               SWAP ;
1362
                               DROP ;
1363
                               DIG 2 ;
1364
                               DROP ;
1365
                               DIG 3 ;
1366
                               DROP ;
1367
                               DIG 4 ;
1368
                               DROP ;
1369
                               DIG 4 ;
1370
                               DROP ;
1371
                               DIG 4 ;
1372
                               DROP ;
1373
                               DIG 4 ;
1374
                               DROP ;
1375
                               DIG 4 ;
1376
                               DROP } ;
1377
                           DUG 2 ;
1378
                           CAR ;
1379
                           CAR ;
1380
                           CONTRACT %withdraw (pair address mutez) ;
1381
                           IF_NONE { PUSH int 438 ; FAILWITH } {} ;
1382
                           PUSH mutez 0 ;
1383
                           DIG 3 ;
1384
                           DUP 5 ;
1385
                           GET 3 ;
1386
                           CAR ;
1387
                           CAR ;
1388
                           PAIR ;
1389
                           TRANSFER_TOKENS ;
1390
                           CONS }
1391
                         { NIL operation ;
1392
                           DUP 5 ;
1393
                           UNIT ;
1394
                           SWAP ;
1395
                           DIG 4 ;
1396
                           DIG 3 ;
1397
                           DIG 3 ;
1398
                           PAIR 3 ;
1399
                           EXEC ;
1400
                           UNPAIR 3 ;
1401
                           DUG 8 ;
1402
                           DUG 8 ;
1403
                           DUG 8 ;
1404
                           DUG 8 ;
1405
                           DIG 7 ;
1406
                           DIG 8 ;
1407
                           DIG 8 ;
1408
                           DIG 8 ;
1409
                           PUSH nat 1000001 ;
1410
                           DUP 4 ;
1411
                           COMPARE ;
1412
                           GE ;
1413
                           IF {} { PUSH int 602 ; FAILWITH } ;
1414
                           DIG 3 ;
1415
                           DUP ;
1416
                           GET 7 ;
1417
                           SWAP ;
1418
                           DUP ;
1419
                           DUG 5 ;
1420
                           GET 3 ;
1421
                           CAR ;
1422
                           CAR ;
1423
                           GET ;
1424
                           IF_NONE { PUSH int 285 ; FAILWITH } {} ;
1425
                           PUSH nat 1000000000000 ;
1426
                           DUP 6 ;
1427
                           CAR ;
1428
                           CAR ;
1429
                           GET 3 ;
1430
                           DUP 3 ;
1431
                           GET 6 ;
1432
                           MUL ;
1433
                           EDIV ;
1434
                           IF_NONE { PUSH int 288 ; FAILWITH } { CAR } ;
1435
                           DUP 6 ;
1436
                           GET 3 ;
1437
                           CAR ;
1438
                           CDR ;
1439
                           DUP 6 ;
1440
                           DUP 3 ;
1441
                           ADD ;
1442
                           MUL ;
1443
                           DUP ;
1444
                           PUSH nat 3 ;
1445
                           SWAP ;
1446
                           MUL ;
1447
                           PUSH nat 1000000000000 ;
1448
                           PUSH mutez 1 ;
1449
                           DUP 6 ;
1450
                           GET 3 ;
1451
                           EDIV ;
1452
                           IF_NONE { UNIT ; FAILWITH } {} ;
1453
                           CAR ;
1454
                           MUL ;
1455
                           COMPARE ;
1456
                           GE ;
1457
                           IF {} { PUSH int 801 ; FAILWITH } ;
1458
                           DIG 2 ;
1459
                           DUP ;
1460
                           GET 6 ;
1461
                           DUP 8 ;
1462
                           CAR ;
1463
                           CAR ;
1464
                           GET 3 ;
1465
                           PUSH nat 1000000000000 ;
1466
                           DUP 9 ;
1467
                           MUL ;
1468
                           EDIV ;
1469
                           IF_NONE { PUSH int 298 ; FAILWITH } { CAR } ;
1470
                           ADD ;
1471
                           UPDATE 6 ;
1472
                           DUG 2 ;
1473
                           DUP 7 ;
1474
                           DUP ;
1475
                           GET 7 ;
1476
                           DUP 5 ;
1477
                           SOME ;
1478
                           DIG 9 ;
1479
                           GET 3 ;
1480
                           CAR ;
1481
                           CAR ;
1482
                           UPDATE ;
1483
                           UPDATE 7 ;
1484
                           DUG 6 ;
1485
                           DIG 4 ;
1486
                           DUP 7 ;
1487
                           GET 3 ;
1488
                           GET 4 ;
1489
                           CONTRACT %mint (pair address (pair nat nat)) ;
1490
                           IF_NONE { PUSH int 120 ; FAILWITH } {} ;
1491
                           PUSH mutez 0 ;
1492
                           PUSH nat 6 ;
1493
                           DUP 9 ;
1494
                           LSR ;
1495
                           DUP 9 ;
1496
                           SUB ;
1497
                           ISNAT ;
1498
                           IF_NONE { PUSH int 296 ; FAILWITH } {} ;
1499
                           DIG 9 ;
1500
                           DUP ;
1501
                           GET 5 ;
1502
                           CAR ;
1503
                           SWAP ;
1504
                           DUP ;
1505
                           DUG 11 ;
1506
                           GET 3 ;
1507
                           CAR ;
1508
                           CAR ;
1509
                           PAIR 3 ;
1510
                           TRANSFER_TOKENS ;
1511
                           CONS ;
1512
                           DUP 7 ;
1513
                           GET 3 ;
1514
                           GET 4 ;
1515
                           CONTRACT %mint (pair address (pair nat nat)) ;
1516
                           IF_NONE { PUSH int 120 ; FAILWITH } {} ;
1517
                           PUSH mutez 0 ;
1518
                           PUSH nat 6 ;
1519
                           DUP 9 ;
1520
                           LSR ;
1521
                           DIG 9 ;
1522
                           DUP ;
1523
                           GET 5 ;
1524
                           CAR ;
1525
                           SWAP ;
1526
                           DUP ;
1527
                           DUG 11 ;
1528
                           CAR ;
1529
                           GET 5 ;
1530
                           PAIR 3 ;
1531
                           TRANSFER_TOKENS ;
1532
                           CONS ;
1533
                           DUG 4 ;
1534
                           DIG 6 ;
1535
                           UNPAIR ;
1536
                           SWAP ;
1537
                           UNPAIR ;
1538
                           SWAP ;
1539
                           UNPAIR ;
1540
                           UNPAIR ;
1541
                           SWAP ;
1542
                           DUP 11 ;
1543
                           ADD ;
1544
                           SWAP ;
1545
                           PAIR ;
1546
                           PAIR ;
1547
                           SWAP ;
1548
                           PAIR ;
1549
                           SWAP ;
1550
                           PAIR ;
1551
                           DUG 6 ;
1552
                           DUP 3 ;
1553
                           CAR ;
1554
                           CDR ;
1555
                           IF
1556
                             { SWAP ;
1557
                               DROP ;
1558
                               SWAP ;
1559
                               DROP ;
1560
                               SWAP ;
1561
                               DROP ;
1562
                               DIG 2 ;
1563
                               DROP ;
1564
                               DIG 3 ;
1565
                               DROP ;
1566
                               DIG 3 ;
1567
                               DROP ;
1568
                               DIG 4 ;
1569
                               DROP ;
1570
                               DIG 4 ;
1571
                               DROP ;
1572
                               DIG 3 ;
1573
                               SWAP ;
1574
                               DUP 4 ;
1575
                               GET 3 ;
1576
                               CAR ;
1577
                               CAR ;
1578
                               PAIR ;
1579
                               SWAP ;
1580
                               DUG 3 ;
1581
                               PAIR 3 ;
1582
                               EXEC ;
1583
                               CDR ;
1584
                               UNPAIR }
1585
                             { DROP 4 ;
1586
                               SWAP ;
1587
                               DROP ;
1588
                               DIG 2 ;
1589
                               DROP ;
1590
                               DIG 2 ;
1591
                               DROP ;
1592
                               DIG 2 ;
1593
                               DROP ;
1594
                               DIG 2 ;
1595
                               DROP ;
1596
                               DIG 2 ;
1597
                               DROP } } } }
1598
                 { IF_LEFT
1599
                     { NIL operation ;
1600
                       DUP 5 ;
1601
                       UNIT ;
1602
                       SWAP ;
1603
                       DIG 4 ;
1604
                       DIG 3 ;
1605
                       DIG 3 ;
1606
                       PAIR 3 ;
1607
                       EXEC ;
1608
                       UNPAIR 3 ;
1609
                       DUG 8 ;
1610
                       DUG 8 ;
1611
                       DUG 8 ;
1612
                       DUG 8 ;
1613
                       DIG 7 ;
1614
                       DIG 8 ;
1615
                       DIG 8 ;
1616
                       DIG 8 ;
1617
                       DIG 3 ;
1618
                       DUP ;
1619
                       CAR ;
1620
                       GET 3 ;
1621
                       CAR ;
1622
                       SWAP ;
1623
                       DUP ;
1624
                       DUG 5 ;
1625
                       GET 3 ;
1626
                       CAR ;
1627
                       CAR ;
1628
                       COMPARE ;
1629
                       EQ ;
1630
                       IF {} { PUSH int 401 ; FAILWITH } ;
1631
                       DUP 4 ;
1632
                       GET 7 ;
1633
                       DUP 4 ;
1634
                       CAR ;
1635
                       GET ;
1636
                       IF_NONE { PUSH int 534 ; FAILWITH } {} ;
1637
                       DUP ;
1638
                       CAR ;
1639
                       CDR ;
1640
                       IF {} { PUSH int 403 ; FAILWITH } ;
1641
                       DUP 5 ;
1642
                       GET 3 ;
1643
                       CAR ;
1644
                       CDR ;
1645
                       DUP 5 ;
1646
                       GET 3 ;
1647
                       MUL ;
1648
                       PUSH mutez 1 ;
1649
                       PUSH nat 1000000000000 ;
1650
                       PUSH nat 4 ;
1651
                       DUP 4 ;
1652
                       LSR ;
1653
                       DUP 4 ;
1654
                       SUB ;
1655
                       ISNAT ;
1656
                       IF_NONE { PUSH int 541 ; FAILWITH } {} ;
1657
                       EDIV ;
1658
                       IF_NONE { PUSH int 541 ; FAILWITH } { CAR } ;
1659
                       MUL ;
1660
                       DUP ;
1661
                       PUSH mutez 1000 ;
1662
                       SWAP ;
1663
                       COMPARE ;
1664
                       GE ;
1665
                       IF {} { PUSH int 602 ; FAILWITH } ;
1666
                       PUSH nat 1000000000000 ;
1667
                       DUP 8 ;
1668
                       CAR ;
1669
                       CAR ;
1670
                       GET 3 ;
1671
                       DUP 5 ;
1672
                       GET 6 ;
1673
                       MUL ;
1674
                       EDIV ;
1675
                       IF_NONE { PUSH int 546 ; FAILWITH } { CAR } ;
1676
                       DIG 3 ;
1677
                       DUP 8 ;
1678
                       CAR ;
1679
                       CAR ;
1680
                       GET 3 ;
1681
                       PUSH nat 1000000000000 ;
1682
                       DUP 9 ;
1683
                       GET 3 ;
1684
                       DUP 5 ;
1685
                       SUB ;
1686
                       ISNAT ;
1687
                       IF_NONE { PUSH int 548 ; FAILWITH } {} ;
1688
                       MUL ;
1689
                       EDIV ;
1690
                       IF_NONE { PUSH int 548 ; FAILWITH } { CAR } ;
1691
                       UPDATE 6 ;
1692
                       DUP ;
1693
                       GET 3 ;
1694
                       DUP 4 ;
1695
                       SWAP ;
1696
                       SUB ;
1697
                       UPDATE 3 ;
1698
                       DUG 3 ;
1699
                       DIG 7 ;
1700
                       DUP ;
1701
                       GET 7 ;
1702
                       DUP 6 ;
1703
                       SOME ;
1704
                       DUP 10 ;
1705
                       CAR ;
1706
                       UPDATE ;
1707
                       UPDATE 7 ;
1708
                       DUG 7 ;
1709
                       DUP 4 ;
1710
                       CAR ;
1711
                       CDR ;
1712
                       IF
1713
                         { DIG 2 ;
1714
                           DROP ;
1715
                           DIG 3 ;
1716
                           DROP ;
1717
                           DIG 6 ;
1718
                           DROP ;
1719
                           DIG 6 ;
1720
                           DROP ;
1721
                           DIG 7 ;
1722
                           DROP ;
1723
                           DIG 7 ;
1724
                           DROP ;
1725
                           DIG 6 ;
1726
                           DUP 7 ;
1727
                           GET 3 ;
1728
                           CAR ;
1729
                           CDR ;
1730
                           DUP 7 ;
1731
                           GET 3 ;
1732
                           DIG 3 ;
1733
                           SUB ;
1734
                           ISNAT ;
1735
                           IF_NONE { PUSH int 554 ; FAILWITH } {} ;
1736
                           MUL ;
1737
                           DUP 6 ;
1738
                           CAR ;
1739
                           PAIR ;
1740
                           SWAP ;
1741
                           DIG 6 ;
1742
                           DIG 5 ;
1743
                           DIG 3 ;
1744
                           PAIR 3 ;
1745
                           EXEC ;
1746
                           CDR ;
1747
                           UNPAIR ;
1748
                           SWAP ;
1749
                           DIG 4 ;
1750
                           DIG 2 ;
1751
                           DIG 4 ;
1752
                           DIG 4 }
1753
                         { DROP ;
1754
                           SWAP ;
1755
                           DROP ;
1756
                           DIG 2 ;
1757
                           DROP ;
1758
                           DIG 5 ;
1759
                           DROP ;
1760
                           DIG 5 ;
1761
                           DROP ;
1762
                           DIG 5 ;
1763
                           DROP ;
1764
                           DIG 5 ;
1765
                           DROP ;
1766
                           DIG 5 ;
1767
                           DROP } ;
1768
                       DUG 2 ;
1769
                       CAR ;
1770
                       CAR ;
1771
                       CONTRACT %withdraw (pair address mutez) ;
1772
                       IF_NONE { PUSH int 556 ; FAILWITH } {} ;
1773
                       PUSH mutez 0 ;
1774
                       DIG 3 ;
1775
                       DUP 5 ;
1776
                       GET 4 ;
1777
                       PAIR ;
1778
                       TRANSFER_TOKENS ;
1779
                       CONS ;
1780
                       DUP 3 ;
1781
                       GET 3 ;
1782
                       GET 4 ;
1783
                       CONTRACT %burn (pair address (pair nat nat)) ;
1784
                       IF_NONE { PUSH int 120 ; FAILWITH } {} ;
1785
                       PUSH mutez 0 ;
1786
                       DUP 4 ;
1787
                       GET 3 ;
1788
                       DIG 5 ;
1789
                       DUP ;
1790
                       GET 5 ;
1791
                       CAR ;
1792
                       SWAP ;
1793
                       DUP ;
1794
                       DUG 7 ;
1795
                       GET 3 ;
1796
                       CAR ;
1797
                       CAR ;
1798
                       PAIR 3 ;
1799
                       TRANSFER_TOKENS ;
1800
                       CONS ;
1801
                       DUP 3 ;
1802
                       UNPAIR ;
1803
                       SWAP ;
1804
                       UNPAIR ;
1805
                       SWAP ;
1806
                       UNPAIR ;
1807
                       CAR ;
1808
                       DIG 5 ;
1809
                       GET 3 ;
1810
                       DIG 6 ;
1811
                       GET 5 ;
1812
                       CDR ;
1813
                       SUB ;
1814
                       ISNAT ;
1815
                       IF_NONE { PUSH int 560 ; FAILWITH } {} ;
1816
                       SWAP ;
1817
                       PAIR ;
1818
                       PAIR ;
1819
                       SWAP ;
1820
                       PAIR ;
1821
                       SWAP ;
1822
                       PAIR ;
1823
                       SWAP }
1824
                     { IF_LEFT
1825
                         { DIG 2 ;
1826
                           DROP ;
1827
                           DIG 3 ;
1828
                           DROP ;
1829
                           DIG 3 ;
1830
                           DROP ;
1831
                           DIG 3 ;
1832
                           DROP ;
1833
                           NIL operation ;
1834
                           DIG 3 ;
1835
                           UNIT ;
1836
                           SWAP ;
1837
                           DIG 4 ;
1838
                           DIG 3 ;
1839
                           DIG 3 ;
1840
                           PAIR 3 ;
1841
                           EXEC ;
1842
                           CDR ;
1843
                           UNPAIR ;
1844
                           SWAP ;
1845
                           DUP ;
1846
                           GET 7 ;
1847
                           SWAP ;
1848
                           DUP ;
1849
                           DUG 4 ;
1850
                           GET 3 ;
1851
                           CAR ;
1852
                           CAR ;
1853
                           GET ;
1854
                           IF_NONE { PUSH int 477 ; FAILWITH } {} ;
1855
                           PUSH nat 3 ;
1856
                           DIG 4 ;
1857
                           DUP ;
1858
                           GET 3 ;
1859
                           CAR ;
1860
                           CDR ;
1861
                           SWAP ;
1862
                           DUP ;
1863
                           DUG 6 ;
1864
                           CAR ;
1865
                           CAR ;
1866
                           GET 3 ;
1867
                           DUP 4 ;
1868
                           GET 6 ;
1869
                           MUL ;
1870
                           MUL ;
1871
                           MUL ;
1872
                           PUSH nat 1000000000000 ;
1873
                           DUP ;
1874
                           PUSH mutez 1 ;
1875
                           DUP 7 ;
1876
                           DUP 6 ;
1877
                           GET 3 ;
1878
                           SUB ;
1879
                           EDIV ;
1880
                           IF_NONE { UNIT ; FAILWITH } {} ;
1881
                           CAR ;
1882
                           MUL ;
1883
                           MUL ;
1884
                           COMPARE ;
1885
                           GE ;
1886
                           IF {} { PUSH int 801 ; FAILWITH } ;
1887
                           DUP ;
1888
                           GET 3 ;
1889
                           DUP 4 ;
1890
                           SWAP ;
1891
                           SUB ;
1892
                           UPDATE 3 ;
1893
                           DUP 4 ;
1894
                           DUP ;
1895
                           GET 7 ;
1896
                           DUP 3 ;
1897
                           SOME ;
1898
                           DIG 6 ;
1899
                           GET 3 ;
1900
                           CAR ;
1901
                           CAR ;
1902
                           UPDATE ;
1903
                           UPDATE 7 ;
1904
                           DUG 3 ;
1905
                           CAR ;
1906
                           CAR ;
1907
                           CONTRACT %withdraw (pair address mutez) ;
1908
                           IF_NONE { PUSH int 488 ; FAILWITH } {} ;
1909
                           PUSH mutez 0 ;
1910
                           DIG 3 ;
1911
                           DUP 5 ;
1912
                           GET 3 ;
1913
                           CAR ;
1914
                           CAR ;
1915
                           PAIR ;
1916
                           TRANSFER_TOKENS ;
1917
                           CONS }
1918
                         { DIG 2 ;
1919
                           DROP ;
1920
                           DIG 2 ;
1921
                           DROP ;
1922
                           DIG 2 ;
1923
                           DROP ;
1924
                           NIL operation ;
1925
                           DIG 4 ;
1926
                           UNIT ;
1927
                           SWAP ;
1928
                           DIG 4 ;
1929
                           DIG 3 ;
1930
                           DIG 3 ;
1931
                           PAIR 3 ;
1932
                           EXEC ;
1933
                           CDR ;
1934
                           UNPAIR ;
1935
                           DIG 3 ;
1936
                           DIG 2 ;
1937
                           DIG 3 ;
1938
                           DIG 3 ;
1939
                           DIG 3 ;
1940
                           UNIT ;
1941
                           SWAP ;
1942
                           DIG 4 ;
1943
                           DIG 3 ;
1944
                           DIG 3 ;
1945
                           PAIR 3 ;
1946
                           EXEC ;
1947
                           CDR ;
1948
                           UNPAIR ;
1949
                           SWAP ;
1950
                           UNPAIR ;
1951
                           SWAP ;
1952
                           UNPAIR ;
1953
                           UNPAIR ;
1954
                           CDR ;
1955
                           SENDER ;
1956
                           PAIR ;
1957
                           PAIR ;
1958
                           PAIR ;
1959
                           SWAP ;
1960
                           PAIR ;
1961
                           DUG 2 ;
1962
                           SELF %internal_liquidate ;
1963
                           PUSH mutez 0 ;
1964
                           DIG 3 ;
1965
                           TRANSFER_TOKENS ;
1966
                           CONS } } } } }
1967
         { IF_LEFT
1968
             { IF_LEFT
1969
                 { IF_LEFT
1970
                     { DIG 2 ;
1971
                       DROP ;
1972
                       DIG 2 ;
1973
                       DROP ;
1974
                       DIG 2 ;
1975
                       DROP ;
1976
                       NIL operation ;
1977
                       DIG 4 ;
1978
                       UNIT ;
1979
                       SWAP ;
1980
                       DIG 4 ;
1981
                       DIG 3 ;
1982
                       DIG 3 ;
1983
                       PAIR 3 ;
1984
                       EXEC ;
1985
                       CDR ;
1986
                       UNPAIR ;
1987
                       DIG 3 ;
1988
                       DIG 2 ;
1989
                       DIG 3 ;
1990
                       DIG 3 ;
1991
                       DIG 3 ;
1992
                       UNIT ;
1993
                       SWAP ;
1994
                       DIG 4 ;
1995
                       DIG 3 ;
1996
                       DIG 3 ;
1997
                       PAIR 3 ;
1998
                       EXEC ;
1999
                       CDR ;
2000
                       UNPAIR ;
2001
                       SWAP ;
2002
                       UNPAIR ;
2003
                       SWAP ;
2004
                       UNPAIR ;
2005
                       UNPAIR ;
2006
                       CDR ;
2007
                       SENDER ;
2008
                       PAIR ;
2009
                       PAIR ;
2010
                       PAIR ;
2011
                       SWAP ;
2012
                       PAIR ;
2013
                       DUG 2 ;
2014
                       SELF %internal_mint ;
2015
                       PUSH mutez 0 ;
2016
                       DIG 3 ;
2017
                       TRANSFER_TOKENS ;
2018
                       CONS }
2019
                     { DIG 3 ;
2020
                       DROP ;
2021
                       DIG 3 ;
2022
                       DROP ;
2023
                       DIG 3 ;
2024
                       DROP ;
2025
                       DIG 3 ;
2026
                       DROP ;
2027
                       NIL operation ;
2028
                       DIG 3 ;
2029
                       DUP 3 ;
2030
                       CDR ;
2031
                       SWAP ;
2032
                       DIG 4 ;
2033
                       DIG 3 ;
2034
                       DIG 3 ;
2035
                       PAIR 3 ;
2036
                       EXEC ;
2037
                       CDR ;
2038
                       UNPAIR ;
2039
                       SWAP ;
2040
                       UNPAIR ;
2041
                       UNPAIR ;
2042
                       UNPAIR ;
2043
                       UNPAIR ;
2044
                       SWAP ;
2045
                       NONE unit ;
2046
                       DIG 7 ;
2047
                       UPDATE ;
2048
                       SWAP ;
2049
                       PAIR ;
2050
                       PAIR ;
2051
                       PAIR ;
2052
                       PAIR ;
2053
                       SWAP } }
2054
                 { IF_LEFT
2055
                     { DIG 3 ;
2056
                       DROP ;
2057
                       DIG 3 ;
2058
                       DROP ;
2059
                       DIG 3 ;
2060
                       DROP ;
2061
                       DIG 3 ;
2062
                       DROP ;
2063
                       NIL operation ;
2064
                       DIG 3 ;
2065
                       DUP 3 ;
2066
                       CDR ;
2067
                       SWAP ;
2068
                       DIG 4 ;
2069
                       DIG 3 ;
2070
                       DIG 3 ;
2071
                       PAIR 3 ;
2072
                       EXEC ;
2073
                       CDR ;
2074
                       UNPAIR ;
2075
                       SWAP ;
2076
                       UNPAIR ;
2077
                       UNPAIR ;
2078
                       UNPAIR ;
2079
                       UNPAIR ;
2080
                       SWAP ;
2081
                       PUSH (option unit) (Some Unit) ;
2082
                       DIG 7 ;
2083
                       UPDATE ;
2084
                       SWAP ;
2085
                       PAIR ;
2086
                       PAIR ;
2087
                       PAIR ;
2088
                       PAIR ;
2089
                       SWAP }
2090
                     { IF_LEFT
2091
                         { DIG 3 ;
2092
                           DROP ;
2093
                           DIG 3 ;
2094
                           DROP ;
2095
                           DIG 3 ;
2096
                           DROP ;
2097
                           DIG 3 ;
2098
                           DROP ;
2099
                           NIL operation ;
2100
                           DIG 3 ;
2101
                           PUSH nat 0 ;
2102
                           SWAP ;
2103
                           DIG 4 ;
2104
                           DIG 3 ;
2105
                           DIG 3 ;
2106
                           PAIR 3 ;
2107
                           EXEC ;
2108
                           CDR ;
2109
                           UNPAIR ;
2110
                           SWAP ;
2111
                           UNPAIR ;
2112
                           SWAP ;
2113
                           UNPAIR ;
2114
                           UNPAIR ;
2115
                           SWAP ;
2116
                           CDR ;
2117
                           DUP 6 ;
2118
                           GET 6 ;
2119
                           PAIR ;
2120
                           SWAP ;
2121
                           PAIR ;
2122
                           PAIR ;
2123
                           SWAP ;
2124
                           UNPAIR ;
2125
                           SWAP ;
2126
                           CAR ;
2127
                           DUP 5 ;
2128
                           GET 3 ;
2129
                           DUP 6 ;
2130
                           GET 5 ;
2131
                           SWAP ;
2132
                           PAIR ;
2133
                           SWAP ;
2134
                           PAIR ;
2135
                           SWAP ;
2136
                           UNPAIR ;
2137
                           SWAP ;
2138
                           CAR ;
2139
                           DUP 6 ;
2140
                           CAR ;
2141
                           CAR ;
2142
                           SWAP ;
2143
                           PAIR ;
2144
                           SWAP ;
2145
                           PAIR ;
2146
                           SWAP ;
2147
                           UNPAIR ;
2148
                           CDR ;
2149
                           DIG 5 ;
2150
                           CAR ;
2151
                           CDR ;
2152
                           PAIR ;
2153
                           PAIR ;
2154
                           SWAP ;
2155
                           PAIR ;
2156
                           PAIR ;
2157
                           SWAP }
2158
                         { DIG 3 ;
2159
                           DROP ;
2160
                           DIG 3 ;
2161
                           DROP ;
2162
                           DIG 4 ;
2163
                           DROP ;
2164
                           NIL operation ;
2165
                           DIG 3 ;
2166
                           PUSH nat 0 ;
2167
                           SWAP ;
2168
                           DIG 4 ;
2169
                           DIG 3 ;
2170
                           DIG 3 ;
2171
                           PAIR 3 ;
2172
                           EXEC ;
2173
                           CDR ;
2174
                           UNPAIR ;
2175
                           DIG 3 ;
2176
                           DIG 2 ;
2177
                           DIG 3 ;
2178
                           DIG 3 ;
2179
                           DIG 3 ;
2180
                           UNIT ;
2181
                           SWAP ;
2182
                           DIG 4 ;
2183
                           DIG 3 ;
2184
                           DIG 3 ;
2185
                           PAIR 3 ;
2186
                           EXEC ;
2187
                           CDR ;
2188
                           UNPAIR ;
2189
                           SWAP ;
2190
                           UNPAIR ;
2191
                           UNPAIR ;
2192
                           SWAP ;
2193
                           UNPAIR ;
2194
                           CAR ;
2195
                           DIG 5 ;
2196
                           SWAP ;
2197
                           PAIR ;
2198
                           PAIR ;
2199
                           SWAP ;
2200
                           PAIR ;
2201
                           PAIR ;
2202
                           SWAP } } } }
2203
             { IF_LEFT
2204
                 { DIG 3 ;
2205
                   DROP ;
2206
                   DIG 3 ;
2207
                   DROP ;
2208
                   DIG 3 ;
2209
                   DROP ;
2210
                   DIG 3 ;
2211
                   DROP ;
2212
                   IF_LEFT
2213
                     { DIG 2 ;
2214
                       DROP ;
2215
                       SWAP ;
2216
                       DUP ;
2217
                       DUG 2 ;
2218
                       GET 3 ;
2219
                       GET 3 ;
2220
                       SENDER ;
2221
                       COMPARE ;
2222
                       EQ ;
2223
                       IF
2224
                         {}
2225
                         { PUSH string "WrongCondition: sp.sender == self.data.target_price_oracle" ;
2226
                           FAILWITH } ;
2227
                       SWAP ;
2228
                       UNPAIR ;
2229
                       SWAP ;
2230
                       UNPAIR ;
2231
                       UNPAIR ;
2232
                       CAR ;
2233
                       DIG 4 ;
2234
                       SWAP ;
2235
                       PAIR ;
2236
                       PAIR ;
2237
                       PAIR ;
2238
                       SWAP ;
2239
                       PAIR ;
2240
                       NIL operation }
2241
                     { IF_LEFT
2242
                         { DIG 2 ;
2243
                           DROP ;
2244
                           SWAP ;
2245
                           DUP ;
2246
                           DUG 2 ;
2247
                           DUP ;
2248
                           GET 7 ;
2249
                           DUP ;
2250
                           DIG 4 ;
2251
                           GET 8 ;
2252
                           SENDER ;
2253
                           GET ;
2254
                           IF_NONE { PUSH int 172 ; FAILWITH } {} ;
2255
                           DUP ;
2256
                           DUG 2 ;
2257
                           GET ;
2258
                           IF_NONE { PUSH int 172 ; FAILWITH } {} ;
2259
                           DIG 4 ;
2260
                           UPDATE 3 ;
2261
                           SOME ;
2262
                           SWAP ;
2263
                           UPDATE ;
2264
                           UPDATE 7 ;
2265
                           NIL operation }
2266
                         { DIG 2 ;
2267
                           DROP ;
2268
                           NIL operation ;
2269
                           DUP 3 ;
2270
                           GET 7 ;
2271
                           SENDER ;
2272
                           GET ;
2273
                           IF_NONE { PUSH int 243 ; FAILWITH } {} ;
2274
                           CAR ;
2275
                           CAR ;
2276
                           CONTRACT %set_delegate (option key_hash) ;
2277
                           IF_NONE { PUSH int 243 ; FAILWITH } {} ;
2278
                           AMOUNT ;
2279
                           DIG 3 ;
2280
                           TRANSFER_TOKENS ;
2281
                           CONS } } }
2282
                 { IF_LEFT
2283
                     { DIG 2 ;
2284
                       DROP ;
2285
                       DIG 2 ;
2286
                       DROP ;
2287
                       DIG 2 ;
2288
                       DROP ;
2289
                       NIL operation ;
2290
                       DIG 4 ;
2291
                       UNIT ;
2292
                       SWAP ;
2293
                       DIG 4 ;
2294
                       DIG 3 ;
2295
                       DIG 3 ;
2296
                       PAIR 3 ;
2297
                       EXEC ;
2298
                       CDR ;
2299
                       UNPAIR ;
2300
                       DIG 3 ;
2301
                       DIG 2 ;
2302
                       DIG 3 ;
2303
                       DIG 3 ;
2304
                       DIG 3 ;
2305
                       UNIT ;
2306
                       SWAP ;
2307
                       DIG 4 ;
2308
                       DIG 3 ;
2309
                       DIG 3 ;
2310
                       PAIR 3 ;
2311
                       EXEC ;
2312
                       CDR ;
2313
                       UNPAIR ;
2314
                       SWAP ;
2315
                       UNPAIR ;
2316
                       SWAP ;
2317
                       UNPAIR ;
2318
                       UNPAIR ;
2319
                       CDR ;
2320
                       SENDER ;
2321
                       PAIR ;
2322
                       PAIR ;
2323
                       PAIR ;
2324
                       SWAP ;
2325
                       PAIR ;
2326
                       DUG 2 ;
2327
                       SELF %internal_settle_with_vault ;
2328
                       PUSH mutez 0 ;
2329
                       DIG 3 ;
2330
                       TRANSFER_TOKENS ;
2331
                       CONS }
2332
                     { IF_LEFT
2333
                         { DROP ;
2334
                           SWAP ;
2335
                           DROP ;
2336
                           SWAP ;
2337
                           DROP ;
2338
                           SWAP ;
2339
                           DROP ;
2340
                           DIG 2 ;
2341
                           DROP ;
2342
                           NIL operation ;
2343
                           DIG 2 ;
2344
                           UNIT ;
2345
                           SWAP ;
2346
                           DUG 3 ;
2347
                           PAIR 3 ;
2348
                           EXEC ;
2349
                           CDR ;
2350
                           UNPAIR }
2351
                         { DIG 2 ;
2352
                           DROP ;
2353
                           DIG 2 ;
2354
                           DROP ;
2355
                           DIG 2 ;
2356
                           DROP ;
2357
                           NIL operation ;
2358
                           DIG 4 ;
2359
                           UNIT ;
2360
                           SWAP ;
2361
                           DIG 4 ;
2362
                           DIG 3 ;
2363
                           DIG 3 ;
2364
                           PAIR 3 ;
2365
                           EXEC ;
2366
                           CDR ;
2367
                           UNPAIR ;
2368
                           DIG 3 ;
2369
                           DIG 2 ;
2370
                           DIG 3 ;
2371
                           DIG 3 ;
2372
                           DIG 3 ;
2373
                           UNIT ;
2374
                           SWAP ;
2375
                           DIG 4 ;
2376
                           DIG 3 ;
2377
                           DIG 3 ;
2378
                           PAIR 3 ;
2379
                           EXEC ;
2380
                           CDR ;
2381
                           UNPAIR ;
2382
                           SWAP ;
2383
                           UNPAIR ;
2384
                           SWAP ;
2385
                           UNPAIR ;
2386
                           UNPAIR ;
2387
                           CDR ;
2388
                           SENDER ;
2389
                           PAIR ;
2390
                           PAIR ;
2391
                           PAIR ;
2392
                           SWAP ;
2393
                           PAIR ;
2394
                           DUG 2 ;
2395
                           SELF %internal_withdraw ;
2396
                           PUSH mutez 0 ;
2397
                           DIG 3 ;
2398
                           TRANSFER_TOKENS ;
2399
                           CONS } } } } } ;
2400
       NIL operation ;
2401
       SWAP ;
2402
       ITER { CONS } ;
2403
       PAIR }