summaryrefslogtreecommitdiff
path: root/c7/b3505aa74eed96c934dbd6885881fa8faca812
blob: 96508c5ff18e4edc38b20cd63d1b11e72b83ce30 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
Return-Path: <antoine.riard@gmail.com>
Received: from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138])
 by lists.linuxfoundation.org (Postfix) with ESMTP id B0DF9C016F
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Thu, 11 Jun 2020 08:53:25 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by whitealder.osuosl.org (Postfix) with ESMTP id 9F0A18865C
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Thu, 11 Jun 2020 08:53:25 +0000 (UTC)
X-Virus-Scanned: amavisd-new at osuosl.org
Received: from whitealder.osuosl.org ([127.0.0.1])
 by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id b0jNqDB0rFcv
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Thu, 11 Jun 2020 08:53:22 +0000 (UTC)
X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6
Received: from mail-pj1-f67.google.com (mail-pj1-f67.google.com
 [209.85.216.67])
 by whitealder.osuosl.org (Postfix) with ESMTPS id 375BD8862F
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Thu, 11 Jun 2020 08:53:22 +0000 (UTC)
Received: by mail-pj1-f67.google.com with SMTP id ga6so1984682pjb.1
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Thu, 11 Jun 2020 01:53:22 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:from:date:message-id:subject:to;
 bh=j3kcD147qHuXzw9Xs9iVNFMg5LMP+67pVykcGbRn/g8=;
 b=kz//FVjwpfposCkLizC+Md7EI4hFr3KJ5NMvCEzTK9Lb3RWhQAI3KkIZbqAeBg91iS
 NqKoyFbyxgGZSzvcgjV22lEEswET8ENNYodRs4+afroB28U/0PvMaLiifIHYklXwAAB4
 cKogTWlWjhcNz3Rsp5ETazYEi2XnnqPCyXjMQcdA7m+dHO7haazRCQG+5J2RYcG4hpOl
 bgqn7EgLRLJthOgpjAWWMaPusixQQ1q8T7IeYpULAd/vq1rTEB6LLf6jQoa/6L01tuf8
 fTdSGDJ/G2gKYsu2D4bqbH9diPAtjXP9d4ahdN3SD+of0tOCQSbkbZ5aF2IRDOEW3RHw
 H/qA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:from:date:message-id:subject:to;
 bh=j3kcD147qHuXzw9Xs9iVNFMg5LMP+67pVykcGbRn/g8=;
 b=uQtSUbdjhA6D0hw4NqxDIEsUmc0Kdc6b50Sdwlflb0vUWuPwMaZ6eEXl9vDWRZWe8w
 BPNZNZI69E0T+jr8bQHzXuDCFSvt7CtP9WDZj7UWExQW+MxvusG/F/eyosjYYx+6GcUV
 NTyNrE5I+7JIVMoDPLDBSM5IivkQHod8AWW9MZhjjyEMVx+fVKMKYj6sIfldESNlxae1
 mZxALf3j7ZsDqTIwtN9I7fGT6U+Osdj2tq7ARihL9ht3W4M19mYlIYV+JzDM/dsnBXdI
 aGM30ppbQIN78nI/H4mtGekJSYJiW6TWaXLgwIV5x+QsMGZ40oLCB7TmVRyghMCTw9vV
 9FOw==
X-Gm-Message-State: AOAM532dc1DQrK1yI0QUkQyHE2VRPPwTQUDICn9qOxjFSVF6ZLGnzI8D
 xb7QuHE/CX9pLWPgIAP8Iu7IQyN0b3qefsyy5Fdr610QL28=
X-Google-Smtp-Source: ABdhPJwUo/m8lBdAMsVs9kzEr545U1lyOjCRr3IUA/aD22LVS6xxoBCDZDQ4RDfvbJx6WrzCB8xOUplU4jPiU70dZIw=
X-Received: by 2002:a17:902:b286:: with SMTP id
 u6mr6238719plr.264.1591865600861; 
 Thu, 11 Jun 2020 01:53:20 -0700 (PDT)
MIME-Version: 1.0
From: Antoine Riard <antoine.riard@gmail.com>
Date: Thu, 11 Jun 2020 04:53:08 -0400
Message-ID: <CALZpt+FqAWCAqCLF2HsajL84sOvst_X9_34bb_tvUxLFw=HTAA@mail.gmail.com>
To: Bitcoin Protocol Discussion <bitcoin-dev@lists.linuxfoundation.org>
Content-Type: multipart/alternative; boundary="000000000000ab691505a7cb1763"
X-Mailman-Approved-At: Thu, 11 Jun 2020 09:23:26 +0000
Subject: [bitcoin-dev] CoinPool,
	exploring generic payment pools for Fun and Privacy
X-BeenThere: bitcoin-dev@lists.linuxfoundation.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Bitcoin Protocol Discussion <bitcoin-dev.lists.linuxfoundation.org>
List-Unsubscribe: <https://lists.linuxfoundation.org/mailman/options/bitcoin-dev>, 
 <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=unsubscribe>
List-Archive: <http://lists.linuxfoundation.org/pipermail/bitcoin-dev/>
List-Post: <mailto:bitcoin-dev@lists.linuxfoundation.org>
List-Help: <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=help>
List-Subscribe: <https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev>, 
 <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=subscribe>
X-List-Received-Date: Thu, 11 Jun 2020 08:53:25 -0000

--000000000000ab691505a7cb1763
Content-Type: text/plain; charset="UTF-8"

Hi list,

We (Gleb Naumenko + I) think that a wide range of second-layer protocols
(LN, vaults, inheritance, etc) will be used by average Bitcoin users. We
are interested in finding and addressing the privacy issues coming from the
unique fingerprints these protocols bring.

More specifically, we are interested in answering the following questions:
1. How bad are privacy leaks from on-chain txn of second-layer protocols
and how much is leaked via protocol-specific metadatas (LN domain names,
watchtowers, ...) ?
2. How to establish a list of Bitcoin fingerprints and their severity to
inform protocol designers and clarify threat models ?
3. What kind of sophisticated heuristics spies may use in the future ?
4. How to mitigate privacy leaks ? Should each protocol adopt a common
toolbox (scriptless scripts, taproot, ...) in its own way or should we
design a confidential-layer to wrap around all of them ?
5. How to make the solution usable (cheaper, easier to integrate, safer)
for a daily basis ?

We suggest CoinPool: a generic payment pool [0] as a solution to those
problems. Although the design we propose is somewhat a scaling solution, we
won't focus on this aspect. This work is rather an exploration of *how a
pool construction could serve as a TLS for Bitcoin, enhancing both on-chain
and off-chain privacy*.

### Motivation: cross-protocols privacy

It has always been a challenge to make the on-chain UTXO graph more
private. We all know the issues with cleartext amounts, the linkability of
inputs/outputs, and other metadatas. Combining with p2p-level spying
(transaction-to-IP mapping) or some other patterns leading to real-world
identities enable serious spying.

Protocols on top of Bitcoin (LN, vaults[1], complicated spending conditions
based on Miniscript, DLC [2] are even more vulnerable to spying because:
- each of them brings new unique fingerprint/metadata [3]
- known spying techniques against second-layer are currently limited to
trivial heuristics, but we can't assume spies will always this
unsophisticated

There is already a wiki list [4] attempting to cover all issues like that,
although maintaining it would be challenging considering privacy is a
moving target.

Let's consider this example: Alice is a well-known LN merchant with a node
tied to a domain name. She always directs the output of channel closing to
her vault address. If she has another vault address on-chain with the same
unique unlocking script (like a CSV timelock with a specific delta) this
can be leveraged to cluster her transactions. And since one of her
addresses is tied to a domain name, all her funds can now be linked to a
real-world identity.

In theory, one may use CoinJoin-like solutions to mask cross-protocol
on-chain transfers. Unfortunately, robust designs like CoinSwap depend on
timelocking coins, extensive use of the on-chain space, and paying fees to
provide sufficient privacy, as we explain further. These properties imply
we can't expect users to be using strong CoinSwaps by default.

That's why instead of specialized high-latency, high-chain-use
CoinJoin-style protocols, we propose CoinPool: a low-latency, generic
off-chain protocol used to be wrapped around any other protocol. CoinPool
is based on shared UTXO ownership. It may reasonably improve on-chain
privacy while avoiding latency and locked liquidity issues. CoinPool may
also reduce the on-chain use (thus, help to scale Bitcoin) if participants
cooperate sufficiently.

We do believe that CoinSwap and other CoinJoins are of interest, but we
have to consider the trade-offs and choose the best tool for a job to make
privacy usable with regards to user resources. We will compare CoinPool to
CoinSwap in more detail later in this write-up.

### Extra-motivation: on-chain scalability

Even though it's not the main focus of this proposal, we also want to
mention that since CoinPool is a payment pool, it helps with on-chain
scalability. More specifically:
1. Shared UTXO ownership allows to represent many outputs as one, reducing
the UTXO set in size.
2. The CoinPool design enables off-chain transfers within the pool, helping
to save the block space by committing fewer transactions on-chain.
3. CoinPool provides decent support for batching activities from different
users, also helping to have fewer individual transactions on-chain.

Since the CoinPool provides scalability benefits, users will be even
incentivized to join CoinPools due to the conservative chain resources
usage and such enjoy privacy as a side-effect.

### CoinPool design

A CoinPool must satisfy the following *non-interactive any-order
withdrawal* property: at any point in time and any possible sequence of
previous CoinPool events, a participant should be able to move their funds
from the CoinPool to any address the participant wants without cooperation
with other CoinPool members.

The state of a CoinPool is represented by one on-chain UTXO (a funding
multisig of all pool participants) and a set of transactions stored by the
participants along with signatures allowing to spend that UTXO. This UTXO
is a Taproot output, where the leaves in the Merkle tree represent pool
participants.

#### Transactions

A CoinPool UTXO can be spent by two types: Pool_Tx and Split_Tx.

A Pool_Tx enables cooperatives updates of the pool, e.g a participant
exiting the pool or off-chain internal transfers. This transaction is used
to spend the key branch of the Taproot tree of the CoinPool UTXO.
Signatures for a Pool_Tx should be exchanged "on-demand", the moment
parties decide to update the CoinPool state collaboratively, In practice,
this would happen upon a request of a pool participant.

A Split_Tx enables a unilateral exit from the CoinPool, in case it's not
possible to use a cooperative Pool_Tx path. This transaction spends the
UTXO via the Merkle branch into two outputs:
- a _withdraw_ output paying to the pool participant who initiated a
transaction
- a _recursive_ output paying to the new instance of a CoinPool, which
contains all the same participants except the one who just withdrew

The design of the unilateral Split_Tx depends on what can be achieved with
Bitcoin Script. The main challenge is to enforce the second output of the
Split_tx s that the participant who exists can't take all the funds
unilaterally. We will talk more about the updates to Bitcoin Script which
would allow more advanced pools later (Scaling section).

For now, we will *focus on the Script capabilities of today*, per which
spending a Split_Tx requires signatures from all pool participants. Since
Split_Tx is a unilateral exit, parties are required to exchange signatures
for *any possible state of the pool* in advance, to handle the *any-order
withdraw* requirement. The exchange should happen when a pool is created.

#### Operations

There are three types of operations against a CoinPool: create, update,
withdraw.

Per *creation*, participants agree on a pool policy and commit inputs to a
funding transaction by sending a corresponding signature, created in a
secure "atomic" way (so that their funds can't be taken if other pool
participants are unresponsive). Participants also exchange their signatures
which would allow any participant to exit at any given time via a Split_Tx.

Per *update*, participants agree on a new coin distribution within the pool
tree. They can aggregate and split leaves of the tree, or rotate a target
output of a given leaf. E.g, a participant may choose to redirect coins to
a new pool right from the old pool and ask all the parties to agree on this
update. The previous state should then be revoked either via sequence
number (Eltoo) or adding the latest state as a child transaction from any
previous Pool_tx.

Per *withdraw*, a participant may submit either a Pool_Tx (after asking all
the parties for their signatures) or a Split_Tx (unilaterally). After that,
a new UTXO of the CoinPool would consist of all the remaining participants.

As an optimization, updates and withdrawals may aggregate changes to
multiple leaves within one transaction. A CoinPool may also optionality
allow new participants to *join* a pool on-the-fly, although trade-offs
should be considered.

#### Transaction Tree illustrated

We illustrate a CoinPool transaction tree with 3 leaves below. We use an
obvious optimization: if there are only 2 leaves left, the last transaction
doesn't have to commit to a new tree [5].


                                      Funding_Tx

                                  |

                                              |

                                     [Taproot_T]


          |

        ___________________ | ______________________________________

|
                                                  |

      |

                                  |


|
                                    |

[leaf_A]
                                           |

    ^

                                    |


|
                                       |

Split_TxA

___________________ |________________________
                                                                        /
             \
                                                                 |

|

/
\
|
|

/
\
[leaf_B]
  [leaf_C]
                                              [withdraw_A]
[Taproot T']
^
^

^
|
|

|
Split_TxB
Split_TxC


Pool_Tx                                                    /
\
/            \

/              \
/
\
/                \

/                  \                               [withdraw_B]
[Taproot T'']
[withdraw_C]             [Taproot'']

/
\
^
^

[withdraw_B]
[withdraw_C]                                                     |

      |

Pool_Tx
Pool_tx

/
\
/            \

/
\
/                \

           [withdraw_A]
[withdraw_C]
[withdraw_A]            [withdraw_B]


### Scaling the Pool and the Any-Order problem

A conservative CoinPool indeed does not scale well: it requires generating
pruned Merkle Tree encumbering the _recursive_ output for any combination
of withdrawals at pool creation. For a tree of Alice, Bob and Carol, they'd
have to build (A,B,C), (A,C,B), (B,A,C), (B,C,A), (C,A,B), (C,B,A) trees.
Since the complexity is quasi-factorial, the conservative CoinPool design
is impractical for more than 10 leaves.

Instead of operating over every possible alternative statically (via
pre-signing *every* combination), the protocol may rely on the script
interpreter to do it dynamically, only enforcing an effective path among
alternatives.

A new primitive to enable this behavior can be implemented as an
accumulator, i.e a space-efficient cryptographic set representation
supporting testing for inclusion and element deletion.

Implementation of this delete-only accumulator can be done by introducing
or combining already-proposed primitives like a new sighash flag, using a
Taproot tree as an accumulator, a committed bitset with templated
operations, etc, ... The exact design is left for future research.

This primitive would enable re-committing the updated tree on the
_recursive_ output, that way preserving balances of other participants,
independently of order of withdrawals.

Such _recursive_ output needs to be spendable by remaining Split_txn. These
transactions are pre-signed and their inputs commit to the parent txid. To
alleviate this issue, Split_tx should be signed through SIGHASH_NOINPUT,
therefore enabling _recursive_ output. The spending Tapscript must be
present among the set of Taproot tree leaves.

### Intra-pool communication and pool policies

The CoinPool design assumes participants have to communicate regularly to
exchange transaction templates and signatures. It happens almost every time
a state of the pools is modified: pool creation, pool update, and
cooperative withdrawal. Selecting a communication channel (a mixnet,
centralized servers, publication boards, ...) should be done considering
the threat model, the cost, the expected latency.

Every instance of a CoinPool may be public (available for new participants
to join at any time), private (available to join via some out-of-band
communication), or something in the middle (based on anti-Sybil measures we
will discuss later).

### Protocol rebinding

Since the conservative CoinPool design every unilateral exit via Split_Tx
should be signed by all the parties in advance, every participant joining
the pool should define in advance which address the coins will be directed
to in a unilateral case.

However, participants may want to use their CoinPool funds to move their
pool funds to a new scriptPubkey (for example, to open a new LN channel).
To avoid using an intermediate single-address on-chain transaction for
these cases, participants should be able to rotate the Split_Tx output.

To avoid asking other participants of the CoinPool to sign a new update, a
multisig signature covering the Split_Tx and enforcing covenant semantic
may be signed with SIGHASH_SINGLE. That way, at any-time Alice can finalize
her Split_Tx by adding a new output and signing her with SIGHASH_ALL.

Since unilateral withdrawal from CoinPool is time-locked, integration
time-sensitive off-chain protocols (e.g, LN or DLC) must be done with extra
care.

Lastly, the limitations of the current mempool design should be taken into
account while using CoinPools, so that issues like mempool  pinning [6] are
not critical.

### Security/Privacy model

Similarly to CoinJoins, CoinPool provides privacy by breaking payment
sender/receiver linkability for an on-chain observer.
Common-input-ownership, address reuse, change address heuristics can't be
leveraged. A spy is forced to commit/lock funds to the pool, and
potentially overcome ant-Sybil measures. Internal CoinPool transfers also
remain private for an external observer.

The exact on-chain privacy efficiency of a given CoinPool depends on two
factors: intra-pool activities and exit activities. If the parties are
cooperative, intra-pool transfers never leave a footprint on-chain. Exit
activities always hit the chain, but if output rebinding is available, the
funds can be sent right to the target receiver outside the pool (e.g, cold
storage or even another pool), making on-chain analysis much more difficult
than what happens with regular transactions today.

Since it's possible for an attacker to join a pool, we have to consider
extra Sybil-resistance (beyond just depositing coins). Extra
Sybil-resistance may include a lock on withdrawal. This lock should not
limit intra-pool updates, so that honest users are not limited.
Additionally, the solutions suggested for CoinJoins may be used (fidelity
bonds, PoDle, etc).

### User Requirements

CoinPool introduces two requirements on users: one for security, one for
pool performance.

It requires persistent storage from the user. Since a unilateral withdrawal
assumes transmitting signatures received from other participants
beforehand, these signatures, corresponding Taproot output and Merkle
branches should not be lost or corrupted, otherwise a participant won't be
able to exit the pool without cooperation.

It also requires hot access to the signing keys, i.e being online to sign
updates which introduces a higher security risk.

These requirements are similar to the requirements for LN and vault
constructions, so we believe that the burden on a CoinPool participant is
reasonable as long as we consider second-layer protocols practical.

### Comparing to CoinSwap

A CoinSwap was recently proposed as a next step for on-chain bitcoin
privacy [6]. We will compare CoinPool to  CoinSwap in terms of high-level
properties, because there are no deployed CoinSwaps yet.

CoinSwap enables privacy-enhanced (in terms of on-chain footprint)
transactions, executed as a non-custodial atomic "trade" between two
parties willing to send someone else (not each other) coins at the same
time.

A CoinSwap between two parties cost at least two on-chain transactions.
However, since this minimal design leaks privacy due to the amount
correlation, more advanced CoinSwap constructions should be used, and they
would be even more costly.

The privacy-efficiency of CoinSwaps is thus defined by fees and time-value
parameters. For these reasons, the lower security requirements are likely
to be most-widely picked-up by thrift users. Participation in a CoinPool,
however, costs of a funding transaction fee (shared across all
participants), and a cost of the withdrawal (either unilateral or
cooperative). Off-chain updates within a pool are free.

With regards to linkability, CoinSwap breaks the UTXO ownership graph,
CoinPool has similar properties the moment the coins are withdrawn, but the
off-chain events inside the pool are likely to obfuscate it even further.
Every participant can make direct payments during pool lifetime, breaking
mapping between committed inputs and withdrawn outputs.

CoinPool output will be part of the broader taproot user set, therefore any
single-owned output may be confused as a pool one, hindering further
on-chain analysis even for non-CoinPool users.

With regards to linkability, CoinSwap completely breaks the link between
inputs and outputs, while CoinPool just largely obfuscates the link
(similarly to CoinJoins). CoinPool is capable of breaking the link for
those payments happening off-chain (e.g, simple transfers within the pool).

With regards to requirements, beyond requiring online keys, practical
CoinPools require new base layers primitives, namely Taproot,
SIGHASH_NOINPUT and delete-only accumulators. CoinSwap is deployable today,
although the client software should be built.

With regards to malicious participants, CoinPool provides some privacy (in
terms of on-chain analysis) if at least one other participant is honest,
which is the same assumption as CoinSwap. More specifying spying cost
analysis can be made when comparing particular configurations of a CoinSwap
and a CoinPools. We invite the community to develop a better model of
privacy adversaries, their resources and leverages to refine
privacy-enhancing protocols comparisons.

Although we claim that different properties of CoinSwaps and CoinPools make
them better for different goals, they can benefit from each other: e.g,
both of them may rely on Sybil-resistance mechanisms or federated message
boards for cooperation.

### Conclusion

We propose CoinPool: a payment pool construction to improve privacy against
on-chain data analysis. More specifically, it helps to hide the unique
footprint associated with the use of second-layer protocols.

We attempted to design CoinPools to make them usable for daily activities,
as opposed to specialized CoinJoin-style solutions. They usually don't
require paying fees and don't use the on-chain space *per-activity*. If
they are widely used, they can also help with on-chain scalability,
although we don't cover this aspect in detail.

CoinPool is a UTXO representing a Taproot tree, in which the leaves
represent the spending conditions for coins in the pool. We designed
CoinPool around the *non-interactive any-order withdrawal* requirement.

In the long-term, CoinPool appears as a good candidate for a scalable,
used-by-default privacy-enhancing technology. We emphasize there are
several challenges deploying CoinPools, the biggest one being scalability.
Making them practical requires introducing new on-chain primitives.

Thanks to the wider privacy-community and on which of their work this
depends heavily.

Thanks to the reviewers.

Cheers,

Gleb + Antoine


[0] AFAIK, payment pools have been suggested by Greg Maxwell, although I
couldn't find any written evidence. The only description I know have been
made to me by Dave Harding during a BitDevs meetup. Yes I'm old enough to
have known when meatspace Bitcoin meetup was a thing.
<https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-April/017793.html>

[1]
https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-April/017793.html

[2] https://github.com/discreetlogcontracts/dlcspecs/

[3] On protocol usage leak at the on-chain level see
https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-February/017633.html,
for an illustration see
https://b10c.me/mempool-observations/1-locktime-stairs/

[4] https://en.bitcoin.it/Privacy

[5] . A gist backup if it doesn't survive formatting :
https://gist.github.com/ariard/ab1e4c3a85e4816be21ee0e0f925e86b A common
notation to describe transactions tree and their scripts and ease reviewers
to verify their correctness would be great. Otherwise it's hard to gauge
the correctness of this kind of new protocol.

[6] https://bitcoinops.org/en/newsletters/2020/04/29/

--000000000000ab691505a7cb1763
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: base64

PGRpdiBkaXI9Imx0ciI+PGRpdj48ZGl2PjxkaXY+SGkgbGlzdCw8YnI+PGJyPjwvZGl2PldlIChH
bGViIE5hdW1lbmtvICsgSSkgdGhpbmsgdGhhdCBhIHdpZGUgcmFuZ2Ugb2Ygc2Vjb25kLWxheWVy
IHByb3RvY29scyAoTE4sIHZhdWx0cywgaW5oZXJpdGFuY2UsIGV0Yykgd2lsbCBiZSB1c2VkIGJ5
IGF2ZXJhZ2UgQml0Y29pbiB1c2Vycy4gV2UgYXJlIGludGVyZXN0ZWQgaW4gZmluZGluZyBhbmQg
YWRkcmVzc2luZyB0aGUgcHJpdmFjeSBpc3N1ZXMgY29taW5nIGZyb20gdGhlIHVuaXF1ZSBmaW5n
ZXJwcmludHMgdGhlc2UgcHJvdG9jb2xzIGJyaW5nLjxicj48YnI+PC9kaXY+TW9yZSBzcGVjaWZp
Y2FsbHksIHdlIGFyZSBpbnRlcmVzdGVkIGluIGFuc3dlcmluZyB0aGUgZm9sbG93aW5nIHF1ZXN0
aW9uczo8YnI+PC9kaXY+PGRpdj4xLiBIb3cgYmFkIGFyZSBwcml2YWN5IGxlYWtzIGZyb20gb24t
Y2hhaW4gdHhuIG9mIHNlY29uZC1sYXllciBwcm90b2NvbHMgYW5kIGhvdyBtdWNoIGlzIGxlYWtl
ZCB2aWEgcHJvdG9jb2wtc3BlY2lmaWMgbWV0YWRhdGFzIChMTiBkb21haW4gbmFtZXMsIHdhdGNo
dG93ZXJzLCAuLi4pID88YnI+PC9kaXY+PGRpdj4gMi4gSG93IHRvIGVzdGFibGlzaCBhIGxpc3Qg
b2YgQml0Y29pbiBmaW5nZXJwcmludHMgYW5kIHRoZWlyIHNldmVyaXR5IHRvIGluZm9ybSBwcm90
b2NvbCBkZXNpZ25lcnMgYW5kIGNsYXJpZnkgdGhyZWF0IG1vZGVscyA/PGJyPjwvZGl2PjxkaXY+
My4gV2hhdCBraW5kIG9mIHNvcGhpc3RpY2F0ZWQgaGV1cmlzdGljcyBzcGllcyBtYXkgdXNlIGlu
IHRoZSBmdXR1cmUgPzxicj48L2Rpdj48ZGl2PjQuIEhvdyB0byBtaXRpZ2F0ZSBwcml2YWN5IGxl
YWtzID8gU2hvdWxkIGVhY2ggcHJvdG9jb2wgYWRvcHQgYSBjb21tb24gdG9vbGJveCAoc2NyaXB0
bGVzcyBzY3JpcHRzLCB0YXByb290LCAuLi4pIGluIGl0cyBvd24gd2F5IG9yIHNob3VsZCB3ZSBk
ZXNpZ24gYSBjb25maWRlbnRpYWwtbGF5ZXIgdG8gd3JhcCBhcm91bmQgYWxsIG9mIHRoZW0gPzwv
ZGl2PjxkaXY+NS4gSG93IHRvIG1ha2UgdGhlIHNvbHV0aW9uIHVzYWJsZSAoY2hlYXBlciwgZWFz
aWVyIHRvIGludGVncmF0ZSwgc2FmZXIpIGZvciBhIGRhaWx5IGJhc2lzID88YnI+PC9kaXY+PGRp
dj48YnI+PC9kaXY+PGRpdj5XZSBzdWdnZXN0IENvaW5Qb29sOiBhIGdlbmVyaWMgcGF5bWVudCBw
b29sIFswXSBhcyBhIHNvbHV0aW9uIHRvIHRob3NlIHByb2JsZW1zLiBBbHRob3VnaCB0aGUgZGVz
aWduIHdlIHByb3Bvc2UgaXMgc29tZXdoYXQgYSBzY2FsaW5nIHNvbHV0aW9uLCB3ZSB3b24mIzM5
O3QgZm9jdXMgb24gdGhpcyBhc3BlY3QuIFRoaXMgd29yayBpcyByYXRoZXIgYW4gZXhwbG9yYXRp
b24gb2YgKmhvdyBhIHBvb2wgY29uc3RydWN0aW9uIGNvdWxkIHNlcnZlIGFzIGEgVExTIGZvciBC
aXRjb2luLCBlbmhhbmNpbmcgYm90aCBvbi1jaGFpbiBhbmQgb2ZmLWNoYWluIHByaXZhY3kqLjxi
cj48YnI+PC9kaXY+PGRpdj4jIyMgTW90aXZhdGlvbjogY3Jvc3MtcHJvdG9jb2xzIHByaXZhY3k8
YnI+PGJyPjwvZGl2PjxkaXY+SXQgaGFzIGFsd2F5cyBiZWVuIGEgY2hhbGxlbmdlIHRvIG1ha2Ug
dGhlIG9uLWNoYWluIFVUWE8gZ3JhcGggbW9yZSBwcml2YXRlLiBXZSBhbGwga25vdyB0aGUgaXNz
dWVzIHdpdGggY2xlYXJ0ZXh0IGFtb3VudHMsIHRoZSBsaW5rYWJpbGl0eSBvZiBpbnB1dHMvb3V0
cHV0cywgYW5kIG90aGVyIG1ldGFkYXRhcy4gQ29tPHNwYW4+PC9zcGFuPmJpbmluZyB3aXRoIHAy
cC1sZXZlbCBzcHlpbmcgKHRyYW5zYWN0aW9uLXRvLUlQIG1hcHBpbmcpIG9yIHNvbWUgb3RoZXIg
cGF0dGVybnMgbGVhZGluZyB0byByZWFsLXdvcmxkIGlkZW50aXRpZXMgZW5hYmxlIHNlcmlvdXMg
c3B5aW5nLjxicj48YnI+PC9kaXY+PGRpdj5Qcm90b2NvbHMgb24gdG9wIG9mIEJpdGNvaW4gKExO
LCB2YXVsdHNbMV0sIGNvbXBsaWNhdGVkIHNwZW5kaW5nIGNvbmRpdGlvbnMgYmFzZWQgb24gTWlu
aXNjcmlwdCwgRExDIFsyXSBhcmUgZXZlbiBtb3JlIHZ1bG5lcmFibGUgdG8gc3B5aW5nIGJlY2F1
c2U6PC9kaXY+PGRpdj4tIGVhY2ggb2YgdGhlbSBicmluZ3MgbmV3IHVuaXF1ZSBmaW5nZXJwcmlu
dC9tZXRhZGF0YSBbM108YnI+PC9kaXY+PGRpdj4tIGtub3duIHNweWluZyB0ZWNobmlxdWVzIGFn
YWluc3Qgc2Vjb25kLWxheWVyIGFyZSBjdXJyZW50bHkgbGltaXRlZCB0byB0cml2aWFsIGhldXJp
c3RpY3MsIGJ1dCB3ZSBjYW4mIzM5O3QgYXNzdW1lIHNwaWVzIHdpbGwgYWx3YXlzIHRoaXMgdW5z
b3BoaXN0aWNhdGVkPGJyPjxicj48L2Rpdj48ZGl2PlRoZXJlIGlzIGFscmVhZHkgYSB3aWtpIGxp
c3QgWzRdIGF0dGVtcHRpbmcgdG8gY292ZXIgYWxsIGlzc3VlcyBsaWtlIHRoYXQsIGFsdGhvdWdo
IG1haW50YWluaW5nIGl0IHdvdWxkIGJlIGNoYWxsZW5naW5nIGNvbnNpZGVyaW5nIHByaXZhY3kg
aXMgYSBtb3ZpbmcgdGFyZ2V0Ljxicj48YnI+PC9kaXY+PGRpdj5MZXQmIzM5O3MgY29uc2lkZXIg
dGhpcyBleGFtcGxlOiBBbGljZSBpcyBhIHdlbGwta25vd24gTE4gbWVyY2hhbnQgd2l0aCBhIG5v
ZGUgdGllZCB0byBhIGRvbWFpbiBuYW1lLiBTaGUgYWx3YXlzIGRpcmVjdHMgdGhlIG91dHB1dCBv
ZiBjaGFubmVsIGNsb3NpbmcgdG8gaGVyIHZhdWx0IGFkZHJlc3MuIElmIHNoZSBoYXMgYW5vdGhl
ciB2YXVsdCBhZGRyZXNzIG9uLWNoYWluIHdpdGggdGhlIHNhbWUgdW5pcXVlIHVubG9ja2luZyBz
Y3JpcHQgKGxpa2UgYSBDU1YgdGltZWxvY2sgd2l0aCBhIHNwZWNpZmljIGRlbHRhKSB0aGlzIGNh
biBiZSBsZXZlcmFnZWQgdG8gY2x1c3RlciBoZXIgdHJhbnNhY3Rpb25zLiBBbmQgc2luY2Ugb25l
IG9mIGhlciBhZGRyZXNzZXMgaXMgdGllZCB0byBhIGRvbWFpbiBuYW1lLCBhbGwgaGVyIGZ1bmRz
IGNhbiBub3cgYmUgbGlua2VkIHRvIGEgcmVhbC13b3JsZCBpZGVudGl0eS48YnI+PGJyPjwvZGl2
PjxkaXY+SW4gdGhlb3J5LCBvbmUgbWF5IHVzZSBDb2luSm9pbi1saWtlIHNvbHV0aW9ucyB0byBt
YXNrIGNyb3NzLXByb3RvY29sIG9uLWNoYWluIHRyYW5zZmVycy4gVW5mb3J0dW5hdGVseSwgcm9i
dXN0IGRlc2lnbnMgbGlrZSBDb2luU3dhcCBkZXBlbmQgb24gdGltZWxvY2tpbmcgY29pbnMsIGV4
dGVuc2l2ZSB1c2Ugb2YgdGhlIG9uLWNoYWluIHNwYWNlLCBhbmQgcGF5aW5nIGZlZXMgdG8gcHJv
dmlkZSBzdWZmaWNpZW50IHByaXZhY3ksIGFzIHdlIGV4cGxhaW4gZnVydGhlci4gVGhlc2UgcHJv
cGVydGllcyBpbXBseSB3ZSBjYW4mIzM5O3QgZXhwZWN0IHVzZXJzIHRvIGJlIHVzaW5nIHN0cm9u
ZyBDb2luU3dhcHMgYnkgZGVmYXVsdC48YnI+PGJyPjwvZGl2PjxkaXY+VGhhdCYjMzk7cyB3aHkg
aW5zdGVhZCBvZiBzcGVjaWFsaXplZCBoaWdoLWxhdGVuY3ksIGhpZ2gtY2hhaW4tdXNlIENvaW5K
b2luLXN0eWxlIHByb3RvY29scywgd2UgcHJvcG9zZSBDb2luUG9vbDogYSBsb3ctbGF0ZW5jeSwg
Z2VuZXJpYyBvZmYtY2hhaW4gcHJvdG9jb2wgdXNlZCB0byBiZSB3cmFwcGVkIGFyb3VuZCBhbnkg
b3RoZXIgcHJvdG9jb2wuIENvaW5Qb29sIGlzIGJhc2VkIG9uIHNoYXJlZCBVVFhPIG93bmVyc2hp
cC4gSXQgbWF5IHJlYXNvbmFibHkgaW1wcm92ZSBvbi1jaGFpbiBwcml2YWN5IHdoaWxlIGF2b2lk
aW5nIGxhdGVuY3kgYW5kIGxvY2tlZCBsaXF1aWRpdHkgaXNzdWVzLiBDb2luUG9vbCBtYXkgYWxz
byByZWR1Y2UgdGhlIG9uLWNoYWluIHVzZSAodGh1cywgaGVscCB0byBzY2FsZSBCaXRjb2luKSBp
ZiBwYXJ0aWNpcGFudHMgY29vcGVyYXRlIHN1ZmZpY2llbnRseS4gPGJyPjxicj48L2Rpdj48ZGl2
PldlIGRvIGJlbGlldmUgdGhhdCBDb2luU3dhcCBhbmQgb3RoZXIgQ29pbkpvaW5zIGFyZSBvZiBp
bnRlcmVzdCwgYnV0IHdlIGhhdmUgdG8gY29uc2lkZXIgdGhlIHRyYWRlLW9mZnMgYW5kIGNob29z
ZSB0aGUgYmVzdCB0b29sIGZvciBhIGpvYiB0byBtYWtlIHByaXZhY3kgdXNhYmxlIHdpdGggcmVn
YXJkcyB0byB1c2VyIHJlc291cmNlcy4gV2Ugd2lsbCBjb21wYXJlIENvaW5Qb29sIHRvIENvaW5T
d2FwIGluIG1vcmUgZGV0YWlsIGxhdGVyIGluIHRoaXMgd3JpdGUtdXAuPGJyPjxicj48L2Rpdj48
ZGl2PiMjIyBFeHRyYS1tb3RpdmF0aW9uOiBvbi1jaGFpbiBzY2FsYWJpbGl0eTxicj48YnI+PC9k
aXY+PGRpdj5FdmVuIHRob3VnaCBpdCYjMzk7cyBub3QgdGhlIG1haW4gZm9jdXMgb2YgdGhpcyBw
cm9wb3NhbCwgd2UgYWxzbyB3YW50IHRvIG1lbnRpb24gdGhhdCBzaW5jZSBDb2luUG9vbCBpcyBh
IHBheW1lbnQgcG9vbCwgaXQgaGVscHMgd2l0aCBvbi1jaGFpbiBzY2FsYWJpbGl0eS4gTW9yZSBz
cGVjaWZpY2FsbHk6PGJyPjwvZGl2PjxkaXY+MS4gU2hhcmVkIFVUWE8gb3duZXJzaGlwIGFsbG93
cyB0byByZXByZXNlbnQgbWFueSBvdXRwdXRzIGFzIG9uZSwgcmVkdWNpbmcgdGhlIFVUWE8gc2V0
IGluIHNpemUuPGJyPjwvZGl2PjxkaXY+Mi4gVGhlIENvaW5Qb29sIGRlc2lnbiBlbmFibGVzIG9m
Zi1jaGFpbiB0cmFuc2ZlcnMgd2l0aGluIHRoZSBwb29sLCBoZWxwaW5nIHRvIHNhdmUgdGhlIGJs
b2NrIHNwYWNlIGJ5IGNvbW1pdHRpbmcgZmV3ZXIgdHJhbnNhY3Rpb25zIG9uLWNoYWluLjxicj48
L2Rpdj48ZGl2PjMuIENvaW5Qb29sIHByb3ZpZGVzIGRlY2VudCBzdXBwb3J0IGZvciBiYXRjaGlu
ZyBhY3Rpdml0aWVzIGZyb20gZGlmZmVyZW50IHVzZXJzLCBhbHNvIGhlbHBpbmcgdG8gaGF2ZSBm
ZXdlciBpbmRpdmlkdWFsIHRyYW5zYWN0aW9ucyBvbi1jaGFpbi48YnI+PGJyPjwvZGl2PjxkaXY+
U2luY2UgdGhlIENvaW5Qb29sIHByb3ZpZGVzIHNjYWxhYmlsaXR5IGJlbmVmaXRzLCB1c2VycyB3
aWxsIGJlIGV2ZW4gaW5jZW50aXZpemVkIHRvIGpvaW4gQ29pblBvb2xzIGR1ZSB0byB0aGUgY29u
c2VydmF0aXZlIGNoYWluIHJlc291cmNlcyB1c2FnZSBhbmQgc3VjaCBlbmpveSBwcml2YWN5IGFz
IGEgc2lkZS1lZmZlY3QuPGJyPjxicj48L2Rpdj48ZGl2PiMjIyBDb2luUG9vbCBkZXNpZ248YnI+
PGJyPjwvZGl2PjxkaXY+QSBDb2luUG9vbCBtdXN0IHNhdGlzZnkgdGhlIGZvbGxvd2luZyAqbm9u
LWludGVyYWN0aXZlIGFueS1vcmRlciB3aXRoZHJhd2FsKiBwcm9wZXJ0eTogYXQgYW55IHBvaW50
IGluIHRpbWUgYW5kIGFueSBwb3NzaWJsZSBzZXF1ZW5jZSBvZiBwcmV2aW91cyBDb2luUG9vbCBl
dmVudHMsIGEgcGFydGljaXBhbnQgc2hvdWxkIGJlIGFibGUgdG8gbW92ZSB0aGVpciBmdW5kcyBm
cm9tIHRoZSBDb2luUG9vbCB0byBhbnkgYWRkcmVzcyB0aGUgcGFydGljaXBhbnQgd2FudHMgd2l0
aG91dCBjb29wZXJhdGlvbiB3aXRoIG90aGVyIENvaW5Qb29sIG1lbWJlcnMuPGJyPjxicj48L2Rp
dj48ZGl2PlRoZSBzdGF0ZSBvZiBhIENvaW5Qb29sIGlzIHJlcHJlc2VudGVkIGJ5IG9uZSBvbi1j
aGFpbiBVVFhPIChhIGZ1bmRpbmcgbXVsdGlzaWcgb2YgYWxsIHBvb2wgcGFydGljaXBhbnRzKSBh
bmQgYSBzZXQgb2YgdHJhbnNhY3Rpb25zIHN0b3JlZCBieSB0aGUgcGFydGljaXBhbnRzIGFsb25n
IHdpdGggc2lnbmF0dXJlcyBhbGxvd2luZyB0byBzcGVuZCB0aGF0IFVUWE8uIFRoaXMgVVRYTyBp
cyBhIFRhcHJvb3Qgb3V0cHV0LCB3aGVyZSB0aGUgbGVhdmVzIGluIHRoZSBNZXJrbGUgdHJlZSBy
ZXByZXNlbnQgcG9vbCBwYXJ0aWNpcGFudHMuPGJyPjxicj48L2Rpdj48ZGl2PiMjIyMgVHJhbnNh
Y3Rpb25zIDxicj48YnI+PC9kaXY+PGRpdj5BIENvaW5Qb29sIFVUWE8gY2FuIGJlIHNwZW50IGJ5
IHR3byB0eXBlczogUG9vbF9UeCBhbmQgU3BsaXRfVHguPGJyPjxicj48L2Rpdj48ZGl2PkEgUG9v
bF9UeCBlbmFibGVzIGNvb3BlcmF0aXZlcyB1cGRhdGVzIG9mIHRoZSBwb29sLCBlLmcgYSBwYXJ0
aWNpcGFudCBleGl0aW5nIHRoZSBwb29sIG9yIG9mZi1jaGFpbiBpbnRlcm5hbCB0cmFuc2ZlcnMu
IFRoaXMgdHJhbnNhY3Rpb24gaXMgdXNlZCB0byBzcGVuZCB0aGUga2V5IGJyYW5jaCBvZiB0aGUg
VGFwcm9vdCB0cmVlIG9mIHRoZSBDb2luUG9vbCBVVFhPLiBTaWduYXR1cmVzIGZvciBhIFBvb2xf
VHggc2hvdWxkIGJlIGV4Y2hhbmdlZCAmcXVvdDtvbi1kZW1hbmQmcXVvdDssIHRoZSBtb21lbnQg
cGFydGllcyBkZWNpZGUgdG8gdXBkYXRlIHRoZSBDb2luUG9vbCBzdGF0ZSBjb2xsYWJvcmF0aXZl
bHksIEluIHByYWN0aWNlLCB0aGlzIHdvdWxkIGhhcHBlbiB1cG9uIGEgcmVxdWVzdCBvZiBhIHBv
b2wgcGFydGljaXBhbnQuPGJyPjxicj48L2Rpdj48ZGl2PkEgU3BsaXRfVHggZW5hYmxlcyBhIHVu
aWxhdGVyYWwgZXhpdCBmcm9tIHRoZSBDb2luUG9vbCwgaW4gY2FzZSBpdCYjMzk7cyBub3QgcG9z
c2libGUgdG8gdXNlIGEgY29vcGVyYXRpdmUgUG9vbF9UeCBwYXRoLiBUaGlzIHRyYW5zYWN0aW9u
IHNwZW5kcyB0aGUgVVRYTyB2aWEgdGhlIE1lcmtsZSBicmFuY2ggaW50byB0d28gb3V0cHV0czo8
YnI+PC9kaXY+PGRpdj4tIGEgX3dpdGhkcmF3XyBvdXRwdXQgcGF5aW5nIHRvIHRoZSBwb29sIHBh
cnRpY2lwYW50IHdobyBpbml0aWF0ZWQgYSB0cmFuc2FjdGlvbjwvZGl2PjxkaXY+LSBhIF9yZWN1
cnNpdmVfIG91dHB1dCBwYXlpbmcgdG8gdGhlIG5ldyBpbnN0YW5jZSBvZiBhIENvaW5Qb29sLCB3
aGljaCBjb250YWlucyBhbGwgdGhlIHNhbWUgcGFydGljaXBhbnRzIGV4Y2VwdCB0aGUgb25lIHdo
byBqdXN0IHdpdGhkcmV3PGJyPjxicj48L2Rpdj48ZGl2PlRoZSBkZXNpZ24gb2YgdGhlIHVuaWxh
dGVyYWwgU3BsaXRfVHggZGVwZW5kcyBvbiB3aGF0IGNhbiBiZSBhY2hpZXZlZCB3aXRoIEJpdGNv
aW4gU2NyaXB0LiBUaGUgbWFpbiBjaGFsbGVuZ2UgaXMgdG8gZW5mb3JjZSB0aGUgc2Vjb25kIG91
dHB1dCBvZiB0aGUgU3BsaXRfdHggcyB0aGF0IHRoZSBwYXJ0aWNpcGFudCB3aG8gZXhpc3RzIGNh
biYjMzk7dCB0YWtlIGFsbCB0aGUgZnVuZHMgdW5pbGF0ZXJhbGx5LiBXZSB3aWxsIHRhbGsgbW9y
ZSBhYm91dCB0aGUgdXBkYXRlcyB0byBCaXRjb2luIFNjcmlwdCB3aGljaCB3b3VsZCBhbGxvdyBt
b3JlIGFkdmFuY2VkIHBvb2xzIGxhdGVyIChTY2FsaW5nIHNlY3Rpb24pLjxicj48YnI+PC9kaXY+
PGRpdj5Gb3Igbm93LCB3ZSB3aWxsICpmb2N1cyBvbiB0aGUgU2NyaXB0IGNhcGFiaWxpdGllcyBv
ZiB0b2RheSosIHBlciB3aGljaCBzcGVuZGluZyBhIFNwbGl0X1R4IHJlcXVpcmVzIHNpZ25hdHVy
ZXMgZnJvbSBhbGwgcG9vbCBwYXJ0aWNpcGFudHMuIFNpbmNlIFNwbGl0X1R4IGlzIGEgdW5pbGF0
ZXJhbCBleGl0LCBwYXJ0aWVzIGFyZSByZXF1aXJlZCB0byBleGNoYW5nZSBzaWduYXR1cmVzIGZv
ciAqYW55IHBvc3NpYmxlIHN0YXRlIG9mIHRoZSBwb29sKiBpbiBhZHZhbmNlLCB0byBoYW5kbGUg
dGhlICphbnktb3JkZXIgd2l0aGRyYXcqIHJlcXVpcmVtZW50LiBUaGUgZXhjaGFuZ2Ugc2hvdWxk
IGhhcHBlbiB3aGVuIGEgcG9vbCBpcyBjcmVhdGVkLjxicj48YnI+PC9kaXY+PGRpdj4jIyMjIE9w
ZXJhdGlvbnM8YnI+PGJyPjwvZGl2PjxkaXY+VGhlcmUgYXJlIHRocmVlIHR5cGVzIG9mIG9wZXJh
dGlvbnMgYWdhaW5zdCBhIENvaW5Qb29sOiBjcmVhdGUsIHVwZGF0ZSwgd2l0aGRyYXcuPGJyPjxi
cj48L2Rpdj48ZGl2PlBlciAqY3JlYXRpb24qLCBwYXJ0aWNpcGFudHMgYWdyZWUgb24gYSBwb29s
IHBvbGljeSBhbmQgY29tbWl0IGlucHV0cyB0byBhIGZ1bmRpbmcgdHJhbnNhY3Rpb24gYnkgc2Vu
ZGluZyBhIGNvcnJlc3BvbmRpbmcgc2lnbmF0dXJlLCBjcmVhdGVkIGluIGEgc2VjdXJlICZxdW90
O2F0b21pYyZxdW90OyB3YXkgKHNvIHRoYXQgdGhlaXIgZnVuZHMgY2FuJiMzOTt0IGJlIHRha2Vu
IGlmIG90aGVyIHBvb2wgcGFydGljaXBhbnRzIGFyZSB1bnJlc3BvbnNpdmUpLiBQYXJ0aWNpcGFu
dHMgYWxzbyBleGNoYW5nZSB0aGVpciBzaWduYXR1cmVzIHdoaWNoIHdvdWxkIGFsbG93IGFueSBw
YXJ0aWNpcGFudCB0byBleGl0IGF0IGFueSBnaXZlbiB0aW1lIHZpYSBhIFNwbGl0X1R4Ljxicj48
YnI+PC9kaXY+PGRpdj5QZXIgKnVwZGF0ZSosIHBhcnRpY2lwYW50cyBhZ3JlZSBvbiBhIG5ldyBj
b2luIGRpc3RyaWJ1dGlvbiB3aXRoaW4gdGhlIHBvb2wgdHJlZS4gVGhleSBjYW4gYWdncmVnYXRl
IGFuZCBzcGxpdCBsZWF2ZXMgb2YgdGhlIHRyZWUsIG9yIHJvdGF0ZSBhIHRhcmdldCBvdXRwdXQg
b2YgYSBnaXZlbiBsZWFmLiBFLmcsIGEgcGFydGljaXBhbnQgbWF5IGNob29zZSB0byByZWRpcmVj
dCBjb2lucyB0byBhIG5ldyBwb29sIHJpZ2h0IGZyb20gdGhlIG9sZCBwb29sIGFuZCBhc2sgYWxs
IHRoZSBwYXJ0aWVzIHRvIGFncmVlIG9uIHRoaXMgdXBkYXRlLiBUaGUgcHJldmlvdXMgc3RhdGUg
c2hvdWxkIHRoZW4gYmUgcmV2b2tlZCBlaXRoZXIgdmlhIHNlcXVlbmNlIG51bWJlciAoRWx0b28p
IG9yIGFkZGluZyB0aGUgbGF0ZXN0IHN0YXRlIGFzIGEgY2hpbGQgdHJhbnNhY3Rpb24gZnJvbSBh
bnkgcHJldmlvdXMgUG9vbF90eC48YnI+PGJyPjwvZGl2PjxkaXY+UGVyICp3aXRoZHJhdyosIGEg
cGFydGljaXBhbnQgbWF5IHN1Ym1pdCBlaXRoZXIgYSBQb29sX1R4IChhZnRlciBhc2tpbmcgYWxs
IHRoZSBwYXJ0aWVzIGZvciB0aGVpciBzaWduYXR1cmVzKSBvciBhIFNwbGl0X1R4ICh1bmlsYXRl
cmFsbHkpLiBBZnRlciB0aGF0LCBhIG5ldyBVVFhPIG9mIHRoZSBDb2luUG9vbCB3b3VsZCBjb25z
aXN0IG9mIGFsbCB0aGUgcmVtYWluaW5nIHBhcnRpY2lwYW50cy48YnI+PGJyPjwvZGl2PjxkaXY+
QXMgYW4gb3B0aW1pemF0aW9uLCB1cGRhdGVzIGFuZCB3aXRoZHJhd2FscyBtYXkgYWdncmVnYXRl
IGNoYW5nZXMgdG8gbXVsdGlwbGUgbGVhdmVzIHdpdGhpbiBvbmUgdHJhbnNhY3Rpb24uIEEgQ29p
blBvb2wgbWF5IGFsc28gb3B0aW9uYWxpdHkgYWxsb3cgbmV3IHBhcnRpY2lwYW50cyB0byAqam9p
biogYSBwb29sIG9uLXRoZS1mbHksIGFsdGhvdWdoIHRyYWRlLW9mZnMgc2hvdWxkIGJlIGNvbnNp
ZGVyZWQuPGJyPjxicj48L2Rpdj48ZGl2PiMjIyMgVHJhbnNhY3Rpb24gVHJlZSBpbGx1c3RyYXRl
ZDxicj48YnI+PC9kaXY+PGRpdj5XZSBpbGx1c3RyYXRlIGEgQ29pblBvb2wgdHJhbnNhY3Rpb24g
dHJlZSB3aXRoIDMgbGVhdmVzIGJlbG93LiBXZSB1c2UgYW4gb2J2aW91cyBvcHRpbWl6YXRpb246
IGlmIHRoZXJlIGFyZSBvbmx5IDIgbGVhdmVzIGxlZnQsIHRoZSBsYXN0IHRyYW5zYWN0aW9uIGRv
ZXNuJiMzOTt0IGhhdmUgdG8gY29tbWl0IHRvIGEgbmV3IHRyZWUgWzVdLjxicj48YnI+PC9kaXY+
PGRpdj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqDCoCDCoCDCoMKgIEZ1bmRpbmdfVHg8YnI+
PC9kaXY+PGRpdj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoCB8PC9kaXY+PGRpdj7CoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoMKgIMKgIMKgIMKgIMKgIMKgIMKgwqAgfDxicj48L2Rpdj48ZGl2PsKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgwqAgwqAgwqDCoCDCoMKgIFtU
YXByb290X1RdIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgPGJyPjwvZGl2Pjxk
aXY+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgwqAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCDCoCDC
oCDCoCDCoCDCoCB8IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIDxicj48L2Rpdj48
ZGl2PsKgIMKgIMKgIMKgIMKgIMKgIMKgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgX19fX19fX19fX19fX19fX19fXyB8IF9fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fPGJyPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqAgfMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCDCoCDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoCB8PGJyPjwvZGl2PjxkaXY+wqAgwqAgwqAgwqDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB8wqDCoMKgIMKgIMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoMKgwqDCoMKgwqDCoCB8PGJyPjwvZGl2PjxkaXY+wqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqDCoCB8wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqDCoMKgwqAgwqAgwqDCoCB8
PGJyPjwvZGl2PjxkaXY+wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqDCoCDCoMKgIFtsZWFmX0FdwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgIHw8YnI+PC9kaXY+PGRpdj7CoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBeIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoMKgwqDCoMKgwqDCoMKgwqAgfDxicj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgwqDCoCB8wqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfDxicj48L2Rpdj48ZGl2PsKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgwqAgU3Bs
aXRfVHhBIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIF9fX19fX19fX19fX19fX19fX18gfF9f
X19fX19fX19fX19fX19fX19fX19fXzxicj48L2Rpdj48ZGl2PsKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC8gwqAgwqAgwqAgwqAgwqAgwqAgwqDCoCBc
IMKgIMKgIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHwgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfDxicj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqAgL8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFzCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgIMKgIHzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgIHw8YnI+PC9kaXY+PGRpdj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBcwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgW2xlYWZfQl3C
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIMKgIFtsZWFmX0NdPGJyPjwv
ZGl2PjxkaXY+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIMKgIMKgwqDCoCBbd2l0aGRyYXdfQV3CoMKg
wqDCoMKgwqDCoMKgwqDCoMKgIMKgIMKgIMKgIFtUYXByb290IFQmIzM5O13CoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIF7CoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBePGJyPjwv
ZGl2PjxkaXY+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBewqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfDxicj48L2Rp
dj48ZGl2PsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFNwbGl0X1R4QsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqAgU3BsaXRfVHhDPGJyPjwvZGl2PjxkaXY+wqDCoCDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgUG9vbF9UeMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgwqAgwqAgLyDCoCDCoCDCoCDCoCDCoMKgIFzCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgL8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAg
XDxicj48L2Rpdj48ZGl2PsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgIC/CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBcwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC/CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqAgXMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCDCoMKgIMKgIC/CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqAgXDxicj48L2Rpdj48ZGl2PsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqAgL8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgXMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oCBbd2l0aGRyYXdfQl3CoMKgwqDCoMKgwqDCoMKgIFtUYXByb290IFQmIzM5OyYjMzk7XcKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqAgW3dpdGhkcmF3X0NdwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFtUYXBy
b290JiMzOTsmIzM5O108YnI+PC9kaXY+PGRpdj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqAgL8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoCBcwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBewqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBePGJyPjwvZGl2PjxkaXY+wqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgwqAgwqAgwqDCoCDCoMKgIFt3aXRo
ZHJhd19CXcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgW3dpdGhkcmF3X0NdwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCDCoCB8IMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIHwgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqAgPGJyPjwvZGl2PjxkaXY+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgUG9vbF9UeMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqAgUG9vbF90eDxicj48L2Rpdj48ZGl2PsKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgL8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBcwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgL8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAg
XDxicj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgL8KgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoCBcwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgL8Kg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBcPGJyPjwvZGl2PjxkaXY+wqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCDCoCDCoCDCoCDCoMKgIMKgIFt3aXRoZHJhd19BXcKgwqDC
oMKgwqDCoMKgwqDCoMKgIFt3aXRoZHJhd19DXcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
IFt3aXRoZHJhd19BXcKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgW3dpdGhkcmF3X0JdPGJyPjwvZGl2
PjxkaXY+PGJyPjxicj4jIyMgU2NhbGluZyB0aGUgUG9vbCBhbmQgdGhlIEFueS1PcmRlciBwcm9i
bGVtPC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5BIGNvbnNlcnZhdGl2ZSBDb2luUG9vbCBpbmRl
ZWQgZG9lcyBub3Qgc2NhbGUgd2VsbDogaXQgcmVxdWlyZXMgZ2VuZXJhdGluZyBwcnVuZWQgTWVy
a2xlIFRyZWUgZW5jdW1iZXJpbmcgdGhlIF9yZWN1cnNpdmVfIG91dHB1dCBmb3IgYW55IGNvbWJp
bmF0aW9uIG9mIHdpdGhkcmF3YWxzIGF0IHBvb2wgY3JlYXRpb24uIEZvciBhIHRyZWUgb2YgQWxp
Y2UsIEJvYiBhbmQgQ2Fyb2wsIHRoZXkmIzM5O2QgaGF2ZSB0byBidWlsZCAoQSxCLEMpLCAoQSxD
LEIpLCAoQixBLEMpLCAoQixDLEEpLCAoQyxBLEIpLCAoQyxCLEEpIHRyZWVzLiBTaW5jZSB0aGUg
Y29tcGxleGl0eSBpcyBxdWFzaS1mYWN0b3JpYWwsIHRoZSBjb25zZXJ2YXRpdmUgQ29pblBvb2wg
ZGVzaWduIGlzIGltcHJhY3RpY2FsIGZvciBtb3JlIHRoYW4gMTAgbGVhdmVzLjxicj48YnI+PC9k
aXY+PGRpdj5JbnN0ZWFkIG9mIG9wZXJhdGluZyBvdmVyIGV2ZXJ5IHBvc3NpYmxlIGFsdGVybmF0
aXZlIHN0YXRpY2FsbHkgKHZpYSBwcmUtc2lnbmluZyAqZXZlcnkqIGNvbWJpbmF0aW9uKSwgdGhl
IHByb3RvY29sIG1heSByZWx5IG9uIHRoZSBzY3JpcHQgaW50ZXJwcmV0ZXIgdG8gZG8gaXQgZHlu
YW1pY2FsbHksIG9ubHkgZW5mb3JjaW5nIGFuIGVmZmVjdGl2ZSBwYXRoIGFtb25nIGFsdGVybmF0
aXZlcy48YnI+PGJyPjwvZGl2PjxkaXY+QSBuZXcgcHJpbWl0aXZlIHRvIGVuYWJsZSB0aGlzIGJl
aGF2aW9yIGNhbiBiZSBpbXBsZW1lbnRlZCBhcyBhbiBhY2N1bXVsYXRvciwgaS5lIGEgc3BhY2Ut
ZWZmaWNpZW50IGNyeXB0b2dyYXBoaWMgc2V0IHJlcHJlc2VudGF0aW9uIHN1cHBvcnRpbmcgdGVz
dGluZyBmb3IgaW5jbHVzaW9uIGFuZCBlbGVtZW50IGRlbGV0aW9uLjxicj48YnI+PC9kaXY+PGRp
dj5JbXBsZW1lbnRhdGlvbiBvZiB0aGlzIGRlbGV0ZS1vbmx5IGFjY3VtdWxhdG9yIGNhbiBiZSBk
b25lIGJ5IGludHJvZHVjaW5nIG9yIGNvbWJpbmluZyBhbHJlYWR5LXByb3Bvc2VkIHByaW1pdGl2
ZXMgbGlrZSBhIG5ldyBzaWdoYXNoIGZsYWcsIHVzaW5nIGEgVGFwcm9vdCB0cmVlIGFzIGFuIGFj
Y3VtdWxhdG9yLCBhIGNvbW1pdHRlZCBiaXRzZXQgd2l0aCB0ZW1wbGF0ZWQgb3BlcmF0aW9ucywg
ZXRjLCAuLi4gVGhlIGV4YWN0IGRlc2lnbiBpcyBsZWZ0IGZvciBmdXR1cmUgcmVzZWFyY2guPGJy
Pjxicj48L2Rpdj48ZGl2PlRoaXMgcHJpbWl0aXZlIHdvdWxkIGVuYWJsZSByZS1jb21taXR0aW5n
IHRoZSB1cGRhdGVkIHRyZWUgb24gdGhlIF9yZWN1cnNpdmVfIG91dHB1dCwgdGhhdCB3YXkgcHJl
c2VydmluZyBiYWxhbmNlcyBvZiBvdGhlciBwYXJ0aWNpcGFudHMsIGluZGVwZW5kZW50bHkgb2Yg
b3JkZXIgb2Ygd2l0aGRyYXdhbHMuPGJyPjxicj48L2Rpdj48ZGl2PlN1Y2ggX3JlY3Vyc2l2ZV8g
b3V0cHV0IG5lZWRzIHRvIGJlIHNwZW5kYWJsZSBieSByZW1haW5pbmcgU3BsaXRfdHhuLiBUaGVz
ZSB0cmFuc2FjdGlvbnMgYXJlIHByZS1zaWduZWQgYW5kIHRoZWlyIGlucHV0cyBjb21taXQgdG8g
dGhlIHBhcmVudCB0eGlkLiBUbyBhbGxldmlhdGUgdGhpcyBpc3N1ZSwgU3BsaXRfdHggc2hvdWxk
IGJlIHNpZ25lZCB0aHJvdWdoIFNJR0hBU0hfTk9JTlBVVCwgdGhlcmVmb3JlIGVuYWJsaW5nIF9y
ZWN1cnNpdmVfIG91dHB1dC4gVGhlIHNwZW5kaW5nIFRhcHNjcmlwdCBtdXN0IGJlIHByZXNlbnQg
YW1vbmcgdGhlIHNldCBvZiBUYXByb290IHRyZWUgbGVhdmVzLjxicj48YnI+PC9kaXY+PGRpdj4j
IyMgSW50cmEtcG9vbCBjb21tdW5pY2F0aW9uIGFuZCBwb29sIHBvbGljaWVzPGJyPjxicj48L2Rp
dj48ZGl2PlRoZSBDb2luUG9vbCBkZXNpZ24gYXNzdW1lcyBwYXJ0aWNpcGFudHMgaGF2ZSB0byBj
b21tdW5pY2F0ZSByZWd1bGFybHkgdG8gZXhjaGFuZ2UgdHJhbnNhY3Rpb24gdGVtcGxhdGVzIGFu
ZCBzaWduYXR1cmVzLiBJdCBoYXBwZW5zIGFsbW9zdCBldmVyeSB0aW1lIGEgc3RhdGUgb2YgdGhl
IHBvb2xzIGlzIG1vZGlmaWVkOiBwb29sIGNyZWF0aW9uLCBwb29sIHVwZGF0ZSwgYW5kIGNvb3Bl
cmF0aXZlIHdpdGhkcmF3YWwuIFNlbGVjdGluZyBhIGNvbW11bmljYXRpb24gY2hhbm5lbCAoYSBt
aXhuZXQsIGNlbnRyYWxpemVkIHNlcnZlcnMsIHB1YmxpY2F0aW9uIGJvYXJkcywgLi4uKSBzaG91
bGQgYmUgZG9uZSBjb25zaWRlcmluZyB0aGUgdGhyZWF0IG1vZGVsLCB0aGUgY29zdCwgdGhlIGV4
cGVjdGVkIGxhdGVuY3kuPGJyPjxicj48L2Rpdj48ZGl2PkV2ZXJ5IGluc3RhbmNlIG9mIGEgQ29p
blBvb2wgbWF5IGJlIHB1YmxpYyAoYXZhaWxhYmxlIGZvciBuZXcgcGFydGljaXBhbnRzIHRvIGpv
aW4gYXQgYW55IHRpbWUpLCBwcml2YXRlIChhdmFpbGFibGUgdG8gam9pbiB2aWEgc29tZSBvdXQt
b2YtYmFuZCBjb21tdW5pY2F0aW9uKSwgb3Igc29tZXRoaW5nIGluIHRoZSBtaWRkbGUgKGJhc2Vk
IG9uIGFudGktU3liaWwgbWVhc3VyZXMgd2Ugd2lsbCBkaXNjdXNzIGxhdGVyKS48YnI+PGJyPjwv
ZGl2PjxkaXY+IyMjIFByb3RvY29sIHJlYmluZGluZzxicj48YnI+PC9kaXY+PGRpdj5TaW5jZSB0
aGUgY29uc2VydmF0aXZlIENvaW5Qb29sIGRlc2lnbiBldmVyeSB1bmlsYXRlcmFsIGV4aXQgdmlh
IFNwbGl0X1R4IHNob3VsZCBiZSBzaWduZWQgYnkgYWxsIHRoZSBwYXJ0aWVzIGluIGFkdmFuY2Us
IGV2ZXJ5IHBhcnRpY2lwYW50IGpvaW5pbmcgdGhlIHBvb2wgc2hvdWxkIGRlZmluZSBpbiBhZHZh
bmNlIHdoaWNoIGFkZHJlc3MgdGhlIGNvaW5zIHdpbGwgYmUgZGlyZWN0ZWQgdG8gaW4gYSB1bmls
YXRlcmFsIGNhc2UuPGJyPjxicj48L2Rpdj48ZGl2Pkhvd2V2ZXIsIHBhcnRpY2lwYW50cyBtYXkg
d2FudCB0byB1c2UgdGhlaXIgQ29pblBvb2wgZnVuZHMgdG8gbW92ZSB0aGVpciBwb29sIGZ1bmRz
IHRvIGEgbmV3IHNjcmlwdFB1YmtleSAoZm9yIGV4YW1wbGUsIHRvIG9wZW4gYSBuZXcgTE4gY2hh
bm5lbCkuIFRvIGF2b2lkIHVzaW5nIGFuIGludGVybWVkaWF0ZSBzaW5nbGUtYWRkcmVzcyBvbi1j
aGFpbiB0cmFuc2FjdGlvbiBmb3IgdGhlc2UgY2FzZXMsIHBhcnRpY2lwYW50cyBzaG91bGQgYmUg
YWJsZSB0byByb3RhdGUgdGhlIFNwbGl0X1R4IG91dHB1dC48YnI+PGJyPjwvZGl2PjxkaXY+VG8g
YXZvaWQgYXNraW5nIG90aGVyIHBhcnRpY2lwYW50cyBvZiB0aGUgQ29pblBvb2wgdG8gc2lnbiBh
IG5ldyB1cGRhdGUsIGEgbXVsdGlzaWcgc2lnbmF0dXJlIGNvdmVyaW5nIHRoZSBTcGxpdF9UeCBh
bmQgZW5mb3JjaW5nIGNvdmVuYW50IHNlbWFudGljIG1heSBiZSBzaWduZWQgd2l0aCBTSUdIQVNI
X1NJTkdMRS4gVGhhdCB3YXksIGF0IGFueS10aW1lIEFsaWNlIGNhbiBmaW5hbGl6ZSBoZXIgU3Bs
aXRfVHggYnkgYWRkaW5nIGEgbmV3IG91dHB1dCBhbmQgc2lnbmluZyBoZXIgd2l0aCBTSUdIQVNI
X0FMTC48YnI+PGJyPjwvZGl2PjxkaXY+U2luY2UgdW5pbGF0ZXJhbCB3aXRoZHJhd2FsIGZyb20g
Q29pblBvb2wgaXMgdGltZS1sb2NrZWQsIGludGVncmF0aW9uIHRpbWUtc2Vuc2l0aXZlIG9mZi1j
aGFpbiBwcm90b2NvbHMgKGUuZywgTE4gb3IgRExDKSBtdXN0IGJlIGRvbmUgd2l0aCBleHRyYSBj
YXJlLjxicj48YnI+PC9kaXY+PGRpdj5MYXN0bHksIHRoZSBsaW1pdGF0aW9ucyBvZiB0aGUgY3Vy
cmVudCBtZW1wb29sIGRlc2lnbiBzaG91bGQgYmUgdGFrZW4gaW50byBhY2NvdW50IHdoaWxlIHVz
aW5nIENvaW5Qb29scywgc28gdGhhdCBpc3N1ZXMgbGlrZSBtZW1wb29swqAgcGlubmluZyBbNl0g
YXJlIG5vdCBjcml0aWNhbC48YnI+PGJyPjwvZGl2PjxkaXY+IyMjIFNlY3VyaXR5L1ByaXZhY3kg
bW9kZWw8L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PlNpbWlsYXJseSB0byBDb2luSm9pbnMsIENv
aW5Qb29sIHByb3ZpZGVzIHByaXZhY3kgYnkgYnJlYWtpbmcgcGF5bWVudCBzZW5kZXIvcmVjZWl2
ZXIgbGlua2FiaWxpdHkgZm9yIGFuIG9uLWNoYWluIG9ic2VydmVyLiBDb21tb24taW5wdXQtb3du
ZXJzaGlwLCBhZGRyZXNzIHJldXNlLCBjaGFuZ2UgYWRkcmVzcyBoZXVyaXN0aWNzIGNhbiYjMzk7
dCBiZSBsZXZlcmFnZWQuIEEgc3B5IGlzIGZvcmNlZCB0byBjb21taXQvbG9jayBmdW5kcyB0byB0
aGUgcG9vbCwgYW5kIHBvdGVudGlhbGx5IG92ZXJjb21lIGFudC1TeWJpbCBtZWFzdXJlcy4gSW50
ZXJuYWwgQ29pblBvb2wgdHJhbnNmZXJzIGFsc28gcmVtYWluIHByaXZhdGUgZm9yIGFuIGV4dGVy
bmFsIG9ic2VydmVyLjxicj48YnI+PC9kaXY+PGRpdj5UaGUgZXhhY3Qgb24tY2hhaW4gcHJpdmFj
eSBlZmZpY2llbmN5IG9mIGEgZ2l2ZW4gQ29pblBvb2wgZGVwZW5kcyBvbiB0d28gZmFjdG9yczog
aW50cmEtcG9vbCBhY3Rpdml0aWVzIGFuZCBleGl0IGFjdGl2aXRpZXMuIElmIHRoZSBwYXJ0aWVz
IGFyZSBjb29wZXJhdGl2ZSwgaW50cmEtcG9vbCB0cmFuc2ZlcnMgbmV2ZXIgbGVhdmUgYSBmb290
cHJpbnQgb24tY2hhaW4uIEV4aXQgYWN0aXZpdGllcyBhbHdheXMgaGl0IHRoZSBjaGFpbiwgYnV0
IGlmIG91dHB1dCByZWJpbmRpbmcgaXMgYXZhaWxhYmxlLCB0aGUgZnVuZHMgY2FuIGJlIHNlbnQg
cmlnaHQgdG8gdGhlIHRhcmdldCByZWNlaXZlciBvdXRzaWRlIHRoZSBwb29sIChlLmcsIGNvbGQg
c3RvcmFnZSBvciBldmVuIGFub3RoZXIgcG9vbCksIG1ha2luZyBvbi1jaGFpbiBhbmFseXNpcyBt
dWNoIG1vcmUgZGlmZmljdWx0IHRoYW4gd2hhdCBoYXBwZW5zIHdpdGggcmVndWxhciB0cmFuc2Fj
dGlvbnMgdG9kYXkuPGJyPjxicj48L2Rpdj48ZGl2PlNpbmNlIGl0JiMzOTtzIHBvc3NpYmxlIGZv
ciBhbiBhdHRhY2tlciB0byBqb2luIGEgcG9vbCwgd2UgaGF2ZSB0byBjb25zaWRlciBleHRyYSBT
eWJpbC1yZXNpc3RhbmNlIChiZXlvbmQganVzdCBkZXBvc2l0aW5nIGNvaW5zKS4gRXh0cmEgU3li
aWwtcmVzaXN0YW5jZSBtYXkgaW5jbHVkZSBhIGxvY2sgb24gd2l0aGRyYXdhbC4gVGhpcyBsb2Nr
IHNob3VsZCBub3QgbGltaXQgaW50cmEtcG9vbCB1cGRhdGVzLCBzbyB0aGF0IGhvbmVzdCB1c2Vy
cyBhcmUgbm90IGxpbWl0ZWQuIEFkZGl0aW9uYWxseSwgdGhlIHNvbHV0aW9ucyBzdWdnZXN0ZWQg
Zm9yIENvaW5Kb2lucyBtYXkgYmUgdXNlZCAoZmlkZWxpdHkgYm9uZHMsIFBvRGxlLCBldGMpLjxi
cj48YnI+PC9kaXY+PGRpdj4jIyMgVXNlciBSZXF1aXJlbWVudHMgPGJyPjxicj48L2Rpdj48ZGl2
PkNvaW5Qb29sIGludHJvZHVjZXMgdHdvIHJlcXVpcmVtZW50cyBvbiB1c2Vyczogb25lIGZvciBz
ZWN1cml0eSwgb25lIGZvciBwb29sIHBlcmZvcm1hbmNlLjxicj48YnI+PC9kaXY+PGRpdj5JdCBy
ZXF1aXJlcyBwZXJzaXN0ZW50IHN0b3JhZ2UgZnJvbSB0aGUgdXNlci4gU2luY2UgYSB1bmlsYXRl
cmFsIHdpdGhkcmF3YWwgYXNzdW1lcyB0cmFuc21pdHRpbmcgc2lnbmF0dXJlcyByZWNlaXZlZCBm
cm9tIG90aGVyIHBhcnRpY2lwYW50cyBiZWZvcmVoYW5kLCB0aGVzZSBzaWduYXR1cmVzLCBjb3Jy
ZXNwb25kaW5nIFRhcHJvb3Qgb3V0cHV0IGFuZCBNZXJrbGUgYnJhbmNoZXMgc2hvdWxkIG5vdCBi
ZSBsb3N0IG9yIGNvcnJ1cHRlZCwgb3RoZXJ3aXNlIGEgcGFydGljaXBhbnQgd29uJiMzOTt0IGJl
IGFibGUgdG8gZXhpdCB0aGUgcG9vbCB3aXRob3V0IGNvb3BlcmF0aW9uLjxicj48YnI+PC9kaXY+
PGRpdj5JdCBhbHNvIHJlcXVpcmVzIGhvdCBhY2Nlc3MgdG8gdGhlIHNpZ25pbmcga2V5cywgaS5l
IGJlaW5nIG9ubGluZSB0byBzaWduIHVwZGF0ZXMgd2hpY2ggaW50cm9kdWNlcyBhIGhpZ2hlciBz
ZWN1cml0eSByaXNrLjxicj48YnI+PC9kaXY+PGRpdj5UaGVzZSByZXF1aXJlbWVudHMgYXJlIHNp
bWlsYXIgdG8gdGhlIHJlcXVpcmVtZW50cyBmb3IgTE4gYW5kIHZhdWx0IGNvbnN0cnVjdGlvbnMs
IHNvIHdlIGJlbGlldmUgdGhhdCB0aGUgYnVyZGVuIG9uIGEgQ29pblBvb2wgcGFydGljaXBhbnQg
aXMgcmVhc29uYWJsZSBhcyBsb25nIGFzIHdlIGNvbnNpZGVyIHNlY29uZC1sYXllciBwcm90b2Nv
bHMgcHJhY3RpY2FsLjxicj48YnI+PC9kaXY+PGRpdj4jIyMgQ29tcGFyaW5nIHRvIENvaW5Td2Fw
PGJyPjxicj48L2Rpdj48ZGl2PkEgQ29pblN3YXAgd2FzIHJlY2VudGx5IHByb3Bvc2VkIGFzIGEg
bmV4dCBzdGVwIGZvciBvbi1jaGFpbiBiaXRjb2luIHByaXZhY3kgWzZdLiBXZSB3aWxsIGNvbXBh
cmUgQ29pblBvb2wgdG/CoCBDb2luU3dhcCBpbiB0ZXJtcyBvZiBoaWdoLWxldmVsIHByb3BlcnRp
ZXMsIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGRlcGxveWVkIENvaW5Td2FwcyB5ZXQuPGJyPjxicj48
L2Rpdj48ZGl2PkNvaW5Td2FwIGVuYWJsZXMgcHJpdmFjeS1lbmhhbmNlZCAoaW4gdGVybXMgb2Yg
b24tY2hhaW4gZm9vdHByaW50KSB0cmFuc2FjdGlvbnMsIGV4ZWN1dGVkIGFzIGEgbm9uLWN1c3Rv
ZGlhbCBhdG9taWMgJnF1b3Q7dHJhZGUmcXVvdDsgYmV0d2VlbiB0d28gcGFydGllcyB3aWxsaW5n
IHRvIHNlbmQgc29tZW9uZSBlbHNlIChub3QgZWFjaCBvdGhlcikgY29pbnMgYXQgdGhlIHNhbWUg
dGltZS48YnI+PGJyPjwvZGl2PjxkaXY+QSBDb2luU3dhcCBiZXR3ZWVuIHR3byBwYXJ0aWVzIGNv
c3QgYXQgbGVhc3QgdHdvIG9uLWNoYWluIHRyYW5zYWN0aW9ucy4gSG93ZXZlciwgc2luY2UgdGhp
cyBtaW5pbWFsIGRlc2lnbiBsZWFrcyBwcml2YWN5IGR1ZSB0byB0aGUgYW1vdW50IGNvcnJlbGF0
aW9uLCBtb3JlIGFkdmFuY2VkIENvaW5Td2FwIGNvbnN0cnVjdGlvbnMgc2hvdWxkIGJlIHVzZWQs
IGFuZCB0aGV5IHdvdWxkIGJlIGV2ZW4gbW9yZSBjb3N0bHkuPGJyPjxicj48L2Rpdj48ZGl2PlRo
ZSBwcml2YWN5LWVmZmljaWVuY3kgb2YgQ29pblN3YXBzIGlzIHRodXMgZGVmaW5lZCBieSBmZWVz
IGFuZCB0aW1lLXZhbHVlIHBhcmFtZXRlcnMuIEZvciB0aGVzZSByZWFzb25zLCB0aGUgbG93ZXIg
c2VjdXJpdHkgcmVxdWlyZW1lbnRzIGFyZSBsaWtlbHkgdG8gYmUgbW9zdC13aWRlbHkgcGlja2Vk
LXVwIGJ5IHRocmlmdCB1c2Vycy4gUGFydGljaXBhdGlvbiBpbiBhIENvaW5Qb29sLCBob3dldmVy
LCBjb3N0cyBvZiBhIGZ1bmRpbmcgdHJhbnNhY3Rpb24gZmVlIChzaGFyZWQgYWNyb3NzIGFsbCBw
YXJ0aWNpcGFudHMpLCBhbmQgYSBjb3N0IG9mIHRoZSB3aXRoZHJhd2FsIChlaXRoZXIgdW5pbGF0
ZXJhbCBvciBjb29wZXJhdGl2ZSkuIE9mZi1jaGFpbiB1cGRhdGVzIHdpdGhpbiBhIHBvb2wgYXJl
IGZyZWUuPGJyPjxicj48L2Rpdj48ZGl2PldpdGggcmVnYXJkcyB0byBsaW5rYWJpbGl0eSwgQ29p
blN3YXAgYnJlYWtzIHRoZSBVVFhPIG93bmVyc2hpcCBncmFwaCwgQ29pblBvb2wgaGFzIHNpbWls
YXIgcHJvcGVydGllcyB0aGUgbW9tZW50IHRoZSBjb2lucyBhcmUgd2l0aGRyYXduLCBidXQgdGhl
IG9mZi1jaGFpbiBldmVudHMgaW5zaWRlIHRoZSBwb29sIGFyZSBsaWtlbHkgdG8gb2JmdXNjYXRl
IGl0IGV2ZW4gZnVydGhlci4gRXZlcnkgcGFydGljaXBhbnQgY2FuIG1ha2UgZGlyZWN0IHBheW1l
bnRzIGR1cmluZyBwb29sIGxpZmV0aW1lLCBicmVha2luZyBtYXBwaW5nIGJldHdlZW4gY29tbWl0
dGVkIGlucHV0cyBhbmQgd2l0aGRyYXduIG91dHB1dHMuPGJyPjxicj48L2Rpdj48ZGl2PkNvaW5Q
b29sIG91dHB1dCB3aWxsIGJlIHBhcnQgb2YgdGhlIGJyb2FkZXIgdGFwcm9vdCB1c2VyIHNldCwg
dGhlcmVmb3JlIGFueSBzaW5nbGUtb3duZWQgb3V0cHV0IG1heSBiZSBjb25mdXNlZCBhcyBhIHBv
b2wgb25lLCBoaW5kZXJpbmcgZnVydGhlciBvbi1jaGFpbiBhbmFseXNpcyBldmVuIGZvciBub24t
Q29pblBvb2wgdXNlcnMuPGJyPjxicj48L2Rpdj48ZGl2PldpdGggcmVnYXJkcyB0byBsaW5rYWJp
bGl0eSwgQ29pblN3YXAgY29tcGxldGVseSBicmVha3MgdGhlIGxpbmsgYmV0d2VlbiBpbnB1dHMg
YW5kIG91dHB1dHMsIHdoaWxlIENvaW5Qb29sIGp1c3QgbGFyZ2VseSBvYmZ1c2NhdGVzIHRoZSBs
aW5rIChzaW1pbGFybHkgdG8gQ29pbkpvaW5zKS4gQ29pblBvb2wgaXMgY2FwYWJsZSBvZiBicmVh
a2luZyB0aGUgbGluayBmb3IgdGhvc2UgcGF5bWVudHMgaGFwcGVuaW5nIG9mZi1jaGFpbiAoZS5n
LCBzaW1wbGUgdHJhbnNmZXJzIHdpdGhpbiB0aGUgcG9vbCkuPGJyPjxicj48L2Rpdj48ZGl2Pldp
dGggcmVnYXJkcyB0byByZXF1aXJlbWVudHMsIGJleW9uZCByZXF1aXJpbmcgb25saW5lIGtleXMs
IHByYWN0aWNhbCBDb2luUG9vbHMgcmVxdWlyZSBuZXcgYmFzZSBsYXllcnMgcHJpbWl0aXZlcywg
bmFtZWx5IFRhcHJvb3QsIFNJR0hBU0hfTk9JTlBVVCBhbmQgZGVsZXRlLW9ubHkgYWNjdW11bGF0
b3JzLiBDb2luU3dhcCBpcyBkZXBsb3lhYmxlIHRvZGF5LCBhbHRob3VnaCB0aGUgY2xpZW50IHNv
ZnR3YXJlIHNob3VsZCBiZSBidWlsdC48YnI+PGJyPjwvZGl2PjxkaXY+V2l0aCByZWdhcmRzIHRv
IG1hbGljaW91cyBwYXJ0aWNpcGFudHMsIENvaW5Qb29sIHByb3ZpZGVzIHNvbWUgcHJpdmFjeSAo
aW4gdGVybXMgb2Ygb24tY2hhaW4gYW5hbHlzaXMpIGlmIGF0IGxlYXN0IG9uZSBvdGhlciBwYXJ0
aWNpcGFudCBpcyBob25lc3QsIHdoaWNoIGlzIHRoZSBzYW1lIGFzc3VtcHRpb24gYXMgQ29pblN3
YXAuIE1vcmUgc3BlY2lmeWluZyBzcHlpbmcgY29zdCBhbmFseXNpcyBjYW4gYmUgbWFkZSB3aGVu
IGNvbXBhcmluZyBwYXJ0aWN1bGFyIGNvbmZpZ3VyYXRpb25zIG9mIGEgQ29pblN3YXAgYW5kIGEg
Q29pblBvb2xzLiBXZSBpbnZpdGUgdGhlIGNvbW11bml0eSB0byBkZXZlbG9wIGEgYmV0dGVyIG1v
ZGVsIG9mIHByaXZhY3kgYWR2ZXJzYXJpZXMsIHRoZWlyIHJlc291cmNlcyBhbmQgbGV2ZXJhZ2Vz
IHRvIHJlZmluZSBwcml2YWN5LWVuaGFuY2luZyBwcm90b2NvbHMgY29tcGFyaXNvbnMuPGJyPjxi
cj48L2Rpdj48ZGl2PkFsdGhvdWdoIHdlIGNsYWltIHRoYXQgZGlmZmVyZW50IHByb3BlcnRpZXMg
b2YgQ29pblN3YXBzIGFuZCBDb2luUG9vbHMgbWFrZSB0aGVtIGJldHRlciBmb3IgZGlmZmVyZW50
IGdvYWxzLCB0aGV5IGNhbiBiZW5lZml0IGZyb20gZWFjaCBvdGhlcjogZS5nLCBib3RoIG9mIHRo
ZW0gbWF5IHJlbHkgb24gU3liaWwtcmVzaXN0YW5jZSBtZWNoYW5pc21zIG9yIGZlZGVyYXRlZCBt
ZXNzYWdlIGJvYXJkcyBmb3IgY29vcGVyYXRpb24uPGJyPjxicj48L2Rpdj48ZGl2PiMjIyBDb25j
bHVzaW9uPGJyPjxicj48L2Rpdj48ZGl2PldlIHByb3Bvc2UgQ29pblBvb2w6IGEgcGF5bWVudCBw
b29sIGNvbnN0cnVjdGlvbiB0byBpbXByb3ZlIHByaXZhY3kgYWdhaW5zdCBvbi1jaGFpbiBkYXRh
IGFuYWx5c2lzLiBNb3JlIHNwZWNpZmljYWxseSwgaXQgaGVscHMgdG8gaGlkZSB0aGUgdW5pcXVl
IGZvb3RwcmludCBhc3NvY2lhdGVkIHdpdGggdGhlIHVzZSBvZiBzZWNvbmQtbGF5ZXIgcHJvdG9j
b2xzLjxicj48YnI+PC9kaXY+PGRpdj5XZSBhdHRlbXB0ZWQgdG8gZGVzaWduIENvaW5Qb29scyB0
byBtYWtlIHRoZW0gdXNhYmxlIGZvciBkYWlseSBhY3Rpdml0aWVzLCBhcyBvcHBvc2VkIHRvIHNw
ZWNpYWxpemVkIENvaW5Kb2luLXN0eWxlIHNvbHV0aW9ucy4gVGhleSB1c3VhbGx5IGRvbiYjMzk7
dCByZXF1aXJlIHBheWluZyBmZWVzIGFuZCBkb24mIzM5O3QgdXNlIHRoZSBvbi1jaGFpbiBzcGFj
ZSAqcGVyLWFjdGl2aXR5Ki4gSWYgdGhleSBhcmUgd2lkZWx5IHVzZWQsIHRoZXkgY2FuIGFsc28g
aGVscCB3aXRoIG9uLWNoYWluIHNjYWxhYmlsaXR5LCBhbHRob3VnaCB3ZSBkb24mIzM5O3QgY292
ZXIgdGhpcyBhc3BlY3QgaW4gZGV0YWlsLjxicj48YnI+PC9kaXY+PGRpdj5Db2luUG9vbCBpcyBh
IFVUWE8gcmVwcmVzZW50aW5nIGEgVGFwcm9vdCB0cmVlLCBpbiB3aGljaCB0aGUgbGVhdmVzIHJl
cHJlc2VudCB0aGUgc3BlbmRpbmcgY29uZGl0aW9ucyBmb3IgY29pbnMgaW4gdGhlIHBvb2wuIFdl
IGRlc2lnbmVkIENvaW5Qb29sIGFyb3VuZCB0aGUgKm5vbi1pbnRlcmFjdGl2ZSBhbnktb3JkZXIg
d2l0aGRyYXdhbCogcmVxdWlyZW1lbnQuPGJyPjxicj48L2Rpdj48ZGl2PkluIHRoZSBsb25nLXRl
cm0sIENvaW5Qb29sIGFwcGVhcnMgYXMgYSBnb29kIGNhbmRpZGF0ZSBmb3IgYSBzY2FsYWJsZSwg
dXNlZC1ieS1kZWZhdWx0IHByaXZhY3ktZW5oYW5jaW5nIHRlY2hub2xvZ3kuIFdlIGVtcGhhc2l6
ZSB0aGVyZSBhcmUgc2V2ZXJhbCBjaGFsbGVuZ2VzIGRlcGxveWluZyBDb2luUG9vbHMsIHRoZSBi
aWdnZXN0IG9uZSBiZWluZyBzY2FsYWJpbGl0eS4gTWFraW5nIHRoZW0gcHJhY3RpY2FsIHJlcXVp
cmVzIGludHJvZHVjaW5nIG5ldyBvbi1jaGFpbiBwcmltaXRpdmVzLjxicj48YnI+PC9kaXY+PGRp
dj5UaGFua3MgdG8gdGhlIHdpZGVyIHByaXZhY3ktY29tbXVuaXR5IGFuZCBvbiB3aGljaCBvZiB0
aGVpciB3b3JrIHRoaXMgZGVwZW5kcyBoZWF2aWx5Ljxicj48L2Rpdj48ZGl2Pjxicj48L2Rpdj48
ZGl2PlRoYW5rcyB0byB0aGUgcmV2aWV3ZXJzLjxicj48YnI+PC9kaXY+PGRpdj5DaGVlcnMsPGJy
Pjxicj48L2Rpdj48ZGl2PkdsZWIgKyBBbnRvaW5lPGJyPjwvZGl2PjxkaXY+PGJyPjxicj48L2Rp
dj48ZGl2PlswXSBBRkFJSywgcGF5bWVudCBwb29scyBoYXZlIGJlZW4gc3VnZ2VzdGVkIGJ5IEdy
ZWcgTWF4d2VsbCwgYWx0aG91Z2ggSSBjb3VsZG4mIzM5O3QgZmluZCBhbnkgd3JpdHRlbiBldmlk
ZW5jZS4gVGhlIG9ubHkgZGVzY3JpcHRpb24gSSBrbm93IGhhdmUgYmVlbiBtYWRlIHRvIG1lIGJ5
IERhdmUgSGFyZGluZyBkdXJpbmcgYSBCaXREZXZzIG1lZXR1cC4gWWVzIEkmIzM5O20gb2xkIGVu
b3VnaCB0byBoYXZlIGtub3duIHdoZW4gbWVhdHNwYWNlIEJpdGNvaW4gbWVldHVwIHdhcyBhIHRo
aW5nLjxicj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWw7Y29s
b3I6cmdiKDE3LDg1LDIwNCk7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdo
dDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRp
b246dW5kZXJsaW5lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZS13cmFw
Ij48L3NwYW4+PGEgaHJlZj0iaHR0cHM6Ly9saXN0cy5saW51eGZvdW5kYXRpb24ub3JnL3BpcGVy
bWFpbC9iaXRjb2luLWRldi8yMDIwLUFwcmlsLzAxNzc5My5odG1sIiBzdHlsZT0idGV4dC1kZWNv
cmF0aW9uOm5vbmUiIGlkPSJtXy02NDEwMzQ5NDM0NTk2NDU3NzQzZ21haWwtZG9jcy1pbnRlcm5h
bC1ndWlkLTdlMzE1NGFiLTdmZmYtYzQ1NC1lZGMyLTMyYWZmYmFhMDk5OSIgdGFyZ2V0PSJfYmxh
bmsiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbDtjb2xvcjpy
Z2IoMCwwLDApO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2Zv
bnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7
dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlLXdyYXAiPjwvc3Bhbj48L2E+
PC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5bMV0gPGEgaHJlZj0iaHR0cHM6Ly9saXN0cy5saW51
eGZvdW5kYXRpb24ub3JnL3BpcGVybWFpbC9iaXRjb2luLWRldi8yMDIwLUFwcmlsLzAxNzc5My5o
dG1sIiB0YXJnZXQ9Il9ibGFuayI+aHR0cHM6Ly9saXN0cy5saW51eGZvdW5kYXRpb24ub3JnL3Bp
cGVybWFpbC9iaXRjb2luLWRldi8yMDIwLUFwcmlsLzAxNzc5My5odG1sPC9hPjxicj48YnI+WzJd
IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9kaXNjcmVldGxvZ2NvbnRyYWN0cy9kbGNzcGVj
cy8iIHRhcmdldD0iX2JsYW5rIj5odHRwczovL2dpdGh1Yi5jb20vZGlzY3JlZXRsb2djb250cmFj
dHMvZGxjc3BlY3MvPC9hPjxicj48YnI+PC9kaXY+PGRpdj5bM10gT24gcHJvdG9jb2wgdXNhZ2Ug
bGVhayBhdCB0aGUgb24tY2hhaW4gbGV2ZWwgc2VlIDxhIGhyZWY9Imh0dHBzOi8vbGlzdHMubGlu
dXhmb3VuZGF0aW9uLm9yZy9waXBlcm1haWwvYml0Y29pbi1kZXYvMjAyMC1GZWJydWFyeS8wMTc2
MzMuaHRtbCIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOi8vbGlzdHMubGludXhmb3VuZGF0aW9uLm9y
Zy9waXBlcm1haWwvYml0Y29pbi1kZXYvMjAyMC1GZWJydWFyeS8wMTc2MzMuaHRtbDwvYT4sIGZv
ciBhbiBpbGx1c3RyYXRpb24gc2VlIDxhIGhyZWY9Imh0dHBzOi8vYjEwYy5tZS9tZW1wb29sLW9i
c2VydmF0aW9ucy8xLWxvY2t0aW1lLXN0YWlycy8iIHRhcmdldD0iX2JsYW5rIj5odHRwczovL2Ix
MGMubWUvbWVtcG9vbC1vYnNlcnZhdGlvbnMvMS1sb2NrdGltZS1zdGFpcnMvPC9hPjxicj48YnI+
WzRdIDxhIGhyZWY9Imh0dHBzOi8vZW4uYml0Y29pbi5pdC9Qcml2YWN5IiB0YXJnZXQ9Il9ibGFu
ayI+aHR0cHM6Ly9lbi5iaXRjb2luLml0L1ByaXZhY3k8L2E+PGJyPjxicj48L2Rpdj48ZGl2Pls1
XSAuIEEgZ2lzdCBiYWNrdXAgaWYgaXQgZG9lc24mIzM5O3Qgc3Vydml2ZSBmb3JtYXR0aW5nIDog
PGEgaHJlZj0iaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vYXJpYXJkL2FiMWU0YzNhODVlNDgxNmJl
MjFlZTBlMGY5MjVlODZiIj5odHRwczovL2dpc3QuZ2l0aHViLmNvbS9hcmlhcmQvYWIxZTRjM2E4
NWU0ODE2YmUyMWVlMGUwZjkyNWU4NmI8L2E+IEEgY29tbW9uIG5vdGF0aW9uIHRvIGRlc2NyaWJl
IHRyYW5zYWN0aW9ucyB0cmVlIGFuZCB0aGVpciBzY3JpcHRzIGFuZCBlYXNlIHJldmlld2VycyB0
byB2ZXJpZnkgdGhlaXIgY29ycmVjdG5lc3Mgd291bGQgYmUgZ3JlYXQuIE90aGVyd2lzZSBpdCYj
Mzk7cyBoYXJkIHRvIGdhdWdlIHRoZSBjb3JyZWN0bmVzcyBvZiB0aGlzIGtpbmQgb2YgbmV3IHBy
b3RvY29sLiA8YnI+PC9kaXY+PGRpdj48YnI+WzZdIDxhIGhyZWY9Imh0dHBzOi8vYml0Y29pbm9w
cy5vcmcvZW4vbmV3c2xldHRlcnMvMjAyMC8wNC8yOS8iIHRhcmdldD0iX2JsYW5rIj5odHRwczov
L2JpdGNvaW5vcHMub3JnL2VuL25ld3NsZXR0ZXJzLzIwMjAvMDQvMjkvPC9hPjwvZGl2PjxkaXY+
PGJyPjxicj48YnI+wqAgPC9kaXY+PGRpdj48YnI+PC9kaXY+PC9kaXY+DQo=
--000000000000ab691505a7cb1763--