<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>146849</bug_id>
          
          <creation_ts>2015-07-10 12:33:40 -0700</creation_ts>
          <short_desc>jsc-tailcall: Clean up register naming</short_desc>
          <delta_ts>2015-09-14 10:56:42 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>146845</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Basile Clement">basile_clement</reporter>
          <assigned_to name="Basile Clement">basile_clement</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1108714</commentid>
    <comment_count>0</comment_count>
    <who name="Basile Clement">basile_clement</who>
    <bug_when>2015-07-10 12:33:40 -0700</bug_when>
    <thetext>This has two goals:

 1) Ensure that we are not using callee-save registers (or the least possible amount) on 64-bits platforms in preparation of https://bugs.webkit.org/show_bug.cgi?id=146845

 2) Have sane(r) and (mostly) platform-independent conventions for register naming in the LLint to limit the number of implicit platform knowledge</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108828</commentid>
    <comment_count>1</comment_count>
      <attachid>256629</attachid>
    <who name="Basile Clement">basile_clement</who>
    <bug_when>2015-07-10 17:52:14 -0700</bug_when>
    <thetext>Created attachment 256629
WIP

Tests pass on x86_64 and x86. Missing a ChangeLog entry + check that its perf-neutral.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109164</commentid>
    <comment_count>2</comment_count>
    <who name="Basile Clement">basile_clement</who>
    <bug_when>2015-07-13 12:15:33 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created attachment 256629 [details]
&gt; WIP
&gt; 
&gt; Tests pass on x86_64 and x86. Missing a ChangeLog entry + check that its
&gt; perf-neutral.

Some tests are actually failing on a clean build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109171</commentid>
    <comment_count>3</comment_count>
    <who name="Basile Clement">basile_clement</who>
    <bug_when>2015-07-13 12:30:39 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (In reply to comment #1)
&gt; &gt; Created attachment 256629 [details]
&gt; &gt; WIP
&gt; &gt; 
&gt; &gt; Tests pass on x86_64 and x86. Missing a ChangeLog entry + check that its
&gt; &gt; perf-neutral.
&gt; 
&gt; Some tests are actually failing on a clean build.

Actually, I just shouldn&apos;t leave debug breaks lying around when running run-javascriptcore-tests...

https://bugs.webkit.org/attachment.cgi?id=256629&amp;action=diff#a/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm_sec12</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109186</commentid>
    <comment_count>4</comment_count>
    <who name="Basile Clement">basile_clement</who>
    <bug_when>2015-07-13 13:07:35 -0700</bug_when>
    <thetext>A few perf changes that were to be expected due to changes in register allocation ordering, but overall looks perf neutral on x86_64. I&apos;ll try to run a couple more benches on the browser to check we are not getting screwed by increasing code size.

Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSRegress, AsmBench, and CompressionBench on Basiles-Mac-Pro (MacPro6,1).

VMs tested:
&quot;Baseline&quot; at /Volumes/Data/secondary/OpenSource/WebKitBuild/svn-tailcall/Release/jsc
&quot;Cleanup&quot; at /Volumes/Data/secondary/OpenSource/WebKitBuild/jsc-tailcall-cleanup/Release/jsc

Collected 6 samples per benchmark/VM, with 6 VM invocations per benchmark. Emitted a call to gc() between sample measurements.
Used 1 benchmark iteration per VM invocation for warm-up. Used the jsc-specific preciseTime() function to get microsecond-level
timing. Reporting benchmark execution times with 95% confidence intervals in milliseconds.

                                                         Baseline                  Cleanup                                      
SunSpider:
   3d-cube                                            6.7349+-0.0719     ?      6.7963+-0.1519        ?
   3d-morph                                           7.5206+-0.0335     ?      7.5511+-0.0287        ?
   3d-raytrace                                        8.4003+-0.0908            8.3558+-0.1055        
   access-binary-trees                                2.8979+-0.0343     ?      2.9416+-0.0735        ? might be 1.0151x slower
   access-fannkuch                                    7.8890+-0.0495            7.8054+-0.0433          might be 1.0107x faster
   access-nbody                                       3.7960+-0.0149     !      3.8320+-0.0162        ! definitely 1.0095x slower
   access-nsieve                                      4.7426+-0.3226            4.5509+-0.0419          might be 1.0421x faster
   bitops-3bit-bits-in-byte                           2.1748+-0.1635     ^      1.5761+-0.0334        ^ definitely 1.3799x faster
   bitops-bits-in-byte                                4.6630+-0.0654     ?      4.6742+-0.0658        ?
   bitops-bitwise-and                                 2.8267+-0.0360            2.8265+-0.0289        
   bitops-nsieve-bits                                 4.0926+-0.0189            4.0922+-0.0112        
   controlflow-recursive                              2.9229+-0.1597     ?      2.9332+-0.0994        ?
   crypto-aes                                         5.9205+-0.0867     ?      5.9594+-0.0675        ?
   crypto-md5                                         3.4471+-0.0576     ?      3.4939+-0.0313        ? might be 1.0136x slower
   crypto-sha1                                        3.3060+-0.0552     ^      3.2107+-0.0318        ^ definitely 1.0297x faster
   date-format-tofte                                 12.4493+-0.1084           12.3802+-0.2785        
   date-format-xparb                                  7.3903+-0.1070     ?      7.4753+-0.2236        ? might be 1.0115x slower
   math-cordic                                        4.0004+-0.0193     ^      3.8087+-0.0412        ^ definitely 1.0503x faster
   math-partial-sums                                  7.1932+-0.0700            7.1144+-0.0711          might be 1.0111x faster
   math-spectral-norm                                 2.5990+-0.0933            2.4769+-0.0372          might be 1.0493x faster
   regexp-dna                                         9.7048+-0.1017            9.6091+-0.0942        
   string-base64                                      6.2059+-0.0708     ?      6.3383+-0.1474        ? might be 1.0213x slower
   string-fasta                                       8.3570+-0.0535     !      8.4763+-0.0392        ! definitely 1.0143x slower
   string-tagcloud                                   12.2777+-0.0970     ^     12.0398+-0.0679        ^ definitely 1.0198x faster
   string-unpack-code                                27.1223+-0.2250     ?     27.3379+-0.2668        ?
   string-validate-input                              6.4165+-0.0868     ?      6.4353+-0.0778        ?

   &lt;arithmetic&gt;                                       6.7327+-0.0109            6.6958+-0.0263          might be 1.0055x faster

                                                         Baseline                  Cleanup                                      
LongSpider:
   3d-cube                                         1161.8412+-6.4887         1152.5332+-3.2716        
   3d-morph                                        2081.1110+-1.1700         2080.3168+-0.0956        
   3d-raytrace                                      945.4407+-2.7038     ^    934.5921+-4.2997        ^ definitely 1.0116x faster
   access-binary-trees                             1198.6842+-3.9270         1196.6345+-2.7889        
   access-fannkuch                                  453.4463+-8.8105          452.8426+-10.8680       
   access-nbody                                     800.7323+-0.3361     ^    795.9546+-0.4892        ^ definitely 1.0060x faster
   access-nsieve                                    545.8983+-1.8585          544.8724+-3.3537        
   bitops-3bit-bits-in-byte                          62.0057+-0.4545     ^     53.0330+-0.0786        ^ definitely 1.1692x faster
   bitops-bits-in-byte                              124.3708+-1.3943          122.9960+-2.4800          might be 1.0112x faster
   bitops-nsieve-bits                               589.7192+-3.1306          587.5258+-3.5433        
   controlflow-recursive                            629.7211+-11.0865    ?    638.1432+-9.7784        ? might be 1.0134x slower
   crypto-aes                                       876.1451+-5.0672          869.2526+-4.0232        
   crypto-md5                                       677.6091+-2.5095     !    685.0111+-2.6589        ! definitely 1.0109x slower
   crypto-sha1                                      902.1063+-13.3005    ?    905.6310+-3.3668        ?
   date-format-tofte                                990.8559+-16.6845         965.2799+-25.6768         might be 1.0265x faster
   date-format-xparb                               1000.6452+-25.5231    !   1042.5932+-9.3398        ! definitely 1.0419x slower
   hash-map                                         219.3025+-1.3116     ?    219.7008+-2.6742        ?
   math-cordic                                      783.6735+-1.1202          783.1446+-0.9507        
   math-partial-sums                                692.6728+-3.8965     ?    694.4527+-5.9501        ?
   math-spectral-norm                               770.1455+-4.6595          765.6347+-1.3753        
   string-base64                                    479.7296+-0.3406     !    505.6764+-2.4112        ! definitely 1.0541x slower
   string-fasta                                     544.5638+-3.6467          544.3551+-6.8886        
   string-tagcloud                                  266.0013+-3.3262          263.7384+-1.1230        

   &lt;geometric&gt;                                      589.4795+-1.4041     ^    586.2730+-1.1275        ^ definitely 1.0055x faster

                                                         Baseline                  Cleanup                                      
V8Spider:
   crypto                                            67.5082+-0.2485     !     68.9623+-1.1668        ! definitely 1.0215x slower
   deltablue                                         87.2450+-1.8400           86.8190+-1.1002        
   earley-boyer                                      55.9561+-0.3860     ?     56.6427+-0.4786        ? might be 1.0123x slower
   raytrace                                          38.1482+-0.6174     ?     38.6637+-0.7811        ? might be 1.0135x slower
   regexp                                            97.8666+-0.5275           96.9073+-0.7904        
   richards                                          96.8340+-1.3080           96.4351+-1.4363        
   splay                                             46.4869+-2.2516     ?     47.5540+-2.8788        ? might be 1.0230x slower

   &lt;geometric&gt;                                       66.1322+-0.3290     ?     66.6109+-0.7971        ? might be 1.0072x slower

                                                         Baseline                  Cleanup                                      
Octane:
   encrypt                                           0.31168+-0.01076          0.30730+-0.01144         might be 1.0142x faster
   decrypt                                           5.11519+-0.11926          5.06137+-0.01625         might be 1.0106x faster
   deltablue                                x2       0.24911+-0.00229    ?     0.24961+-0.00472       ?
   earley                                            0.42829+-0.00222    ?     0.43060+-0.00139       ?
   boyer                                             6.76369+-0.00910    !     6.80048+-0.00558       ! definitely 1.0054x slower
   navier-stokes                            x2       7.00241+-0.00648    ?     7.01282+-0.00568       ?
   raytrace                                 x2       1.62602+-0.05696          1.62311+-0.06450       
   richards                                 x2       0.17121+-0.00312          0.16901+-0.00248         might be 1.0130x faster
   splay                                    x2       0.46480+-0.00577    ?     0.46815+-0.00591       ?
   regexp                                   x2      36.88398+-0.37551         36.63212+-0.20488       
   pdfjs                                    x2      55.99159+-0.08090    !    56.42693+-0.19653       ! definitely 1.0078x slower
   mandreel                                 x2      67.92740+-0.15191    !    68.50462+-0.19064       ! definitely 1.0085x slower
   gbemu                                    x2      60.30344+-0.65758         59.67936+-0.23516         might be 1.0105x faster
   closure                                           0.88833+-0.00385          0.88533+-0.00465       
   jquery                                           11.58502+-0.03336         11.54738+-0.01633       
   box2d                                    x2      16.75842+-0.06345    ?    16.76000+-0.04127       ?
   zlib                                     x2     519.24531+-19.93258   ?   529.23839+-1.89203       ? might be 1.0192x slower
   typescript                               x2    1071.06067+-17.42616      1066.31193+-20.44820      

   &lt;geometric&gt;                                       8.69376+-0.05176          8.69358+-0.03174         might be 1.0000x faster

                                                         Baseline                  Cleanup                                      
Kraken:
   ai-astar                                          374.098+-4.521            371.082+-5.049         
   audio-beat-detection                              108.882+-0.610      ?     109.963+-0.717         ?
   audio-dft                                         150.174+-0.868            149.704+-1.020         
   audio-fft                                          86.256+-6.821             80.177+-5.606           might be 1.0758x faster
   audio-oscillator                                   96.539+-0.173      ^      95.260+-0.153         ^ definitely 1.0134x faster
   imaging-darkroom                                  140.365+-1.004            140.333+-0.736         
   imaging-desaturate                                 84.466+-0.627      ?      84.985+-0.388         ?
   imaging-gaussian-blur                             144.349+-1.003      ?     144.462+-1.088         ?
   json-parse-financial                               62.070+-0.221      ?      62.595+-0.365         ?
   json-stringify-tinderbox                           41.271+-0.124      !      42.021+-0.153         ! definitely 1.0182x slower
   stanford-crypto-aes                                75.097+-0.656      ?      75.291+-0.662         ?
   stanford-crypto-ccm                                65.848+-2.608             65.224+-1.840         
   stanford-crypto-pbkdf2                            138.845+-0.981      ?     139.965+-1.186         ?
   stanford-crypto-sha256-iterative                   56.915+-0.317             56.605+-0.543         

   &lt;arithmetic&gt;                                      116.084+-0.763            115.548+-0.796           might be 1.0046x faster

                                                         Baseline                  Cleanup                                      
JSRegress:
   abc-forward-loop-equal                            62.0682+-0.1434     ?     62.1720+-0.0636        ?
   abc-postfix-backward-loop                         61.6083+-0.1318           61.5688+-0.0841        
   abc-simple-backward-loop                          61.3091+-0.0556           61.2077+-0.0497        
   abc-simple-forward-loop                           61.5677+-0.2466           61.5199+-0.1163        
   abc-skippy-loop                                   42.0013+-0.1525     ?     42.1657+-0.3324        ?
   abs-boolean                                        3.4184+-0.0357     ?      3.4819+-0.0387        ? might be 1.0186x slower
   adapt-to-double-divide                            21.7009+-0.0684     ?     21.7128+-0.0704        ?
   aliased-arguments-getbyval                         1.6740+-0.1143            1.6715+-0.0651        
   allocate-big-object                                3.1800+-0.1098     ?      3.2656+-0.0873        ? might be 1.0269x slower
   arguments-named-and-reflective                    15.1085+-0.3518           15.0746+-0.3501        
   arguments-out-of-bounds                           18.5758+-0.0332     ?     18.6112+-0.0983        ?
   arguments-strict-mode                             12.8947+-0.2754     ?     13.0587+-0.3522        ? might be 1.0127x slower
   arguments                                         11.4388+-0.0800           11.4332+-0.0854        
   arity-mismatch-inlining                            1.1892+-0.0290     ?      1.2225+-0.0388        ? might be 1.0280x slower
   array-access-polymorphic-structure                 7.9513+-0.0805            7.9278+-0.0657        
   array-nonarray-polymorhpic-access                 41.1190+-0.2191           40.6074+-1.1804          might be 1.0126x faster
   array-prototype-every                            111.6422+-0.2003     !    112.5262+-0.6148        ! definitely 1.0079x slower
   array-prototype-forEach                          109.2232+-0.8932     ?    109.5192+-0.5706        ?
   array-prototype-map                              124.6735+-2.4861          124.0004+-2.5844        
   array-prototype-reduce                           104.9543+-0.5647     ?    105.2569+-0.7580        ?
   array-prototype-reduceRight                      105.3582+-0.6879          104.7185+-0.6439        
   array-prototype-some                             111.6165+-0.2144     ?    113.3468+-1.9217        ? might be 1.0155x slower
   array-splice-contiguous                           34.7727+-0.3378     !     35.8519+-0.4091        ! definitely 1.0310x slower
   array-with-double-add                              5.3252+-0.0559     ?      5.3681+-0.0151        ?
   array-with-double-increment                        4.2321+-0.0217            4.1750+-0.0374          might be 1.0137x faster
   array-with-double-mul-add                          6.5493+-0.0387     ^      6.4688+-0.0119        ^ definitely 1.0124x faster
   array-with-double-sum                              4.2673+-0.0313            4.2491+-0.0183        
   array-with-int32-add-sub                           8.5422+-0.0337     !      8.7853+-0.1885        ! definitely 1.0285x slower
   array-with-int32-or-double-sum                     4.3495+-0.0312            4.3354+-0.0213        
   ArrayBuffer-DataView-alloc-large-long-lived   
                                                     38.7996+-0.1750           38.6390+-0.1529        
   ArrayBuffer-DataView-alloc-long-lived             16.9175+-0.2802     ?     17.0192+-0.2815        ?
   ArrayBuffer-Int32Array-byteOffset                  5.1020+-0.1983            5.0294+-0.0139          might be 1.0144x faster
   ArrayBuffer-Int8Array-alloc-large-long-lived   
                                                     41.6876+-3.8315           39.7367+-1.8853          might be 1.0491x faster
   ArrayBuffer-Int8Array-alloc-long-lived-buffer   
                                                     28.2072+-0.1603     ^     27.5235+-0.1837        ^ definitely 1.0248x faster
   ArrayBuffer-Int8Array-alloc-long-lived            16.8138+-2.1193           15.9185+-0.1793          might be 1.0562x faster
   ArrayBuffer-Int8Array-alloc                       13.6458+-0.3295     ?     14.5506+-2.5724        ? might be 1.0663x slower
   asmjs_bool_bug                                     9.5976+-0.1853     ?      9.7096+-0.1721        ? might be 1.0117x slower
   assign-custom-setter-polymorphic                   4.0940+-0.0581     !      4.1918+-0.0398        ! definitely 1.0239x slower
   assign-custom-setter                               5.6039+-0.0315     ?      5.8127+-0.1899        ? might be 1.0373x slower
   basic-set                                         11.1949+-0.5221           11.1298+-0.0903        
   big-int-mul                                        5.3266+-0.2377            5.2237+-0.0130          might be 1.0197x faster
   boolean-test                                       4.0314+-0.0562            3.9959+-0.0278        
   branch-fold                                        4.8407+-0.0350     ?      4.9161+-0.1572        ? might be 1.0156x slower
   branch-on-string-as-boolean                       25.3538+-0.3078           25.2882+-0.3910        
   by-val-generic                                     9.9597+-0.0653            9.9080+-0.2558        
   call-spread-apply                                 37.4915+-0.8748     ?     38.4904+-1.1527        ? might be 1.0266x slower
   call-spread-call                                  31.1302+-0.0865     ^     30.8404+-0.1320        ^ definitely 1.0094x faster
   captured-assignments                               0.6444+-0.0219     ?      0.6492+-0.0241        ?
   cast-int-to-double                                 6.7339+-0.0235     ?      6.8240+-0.1739        ? might be 1.0134x slower
   cell-argument                                     10.7218+-0.0303     ?     10.7826+-0.2197        ?
   cfg-simplify                                       3.6548+-0.0806            3.6434+-0.0936        
   chain-getter-access                               11.7304+-0.0908           11.6052+-0.1325          might be 1.0108x faster
   cmpeq-obj-to-obj-other                            12.6528+-0.1375     !     13.0671+-0.0453        ! definitely 1.0328x slower
   constant-test                                      6.3556+-0.0184     ?      6.3623+-0.0255        ?
   create-lots-of-functions                          13.3037+-0.5555           12.9614+-0.1109          might be 1.0264x faster
   cse-new-array-buffer                               2.8648+-0.0402            2.7787+-0.0864          might be 1.0310x faster
   cse-new-array                                      2.9864+-0.0579            2.9787+-0.0495        
   DataView-custom-properties                        46.2083+-1.2287           45.5124+-0.4256          might be 1.0153x faster
   delay-tear-off-arguments-strictmode               17.5054+-0.2570           17.3861+-0.0780        
   deltablue-varargs                                266.0583+-1.9069     ?    268.6702+-8.2586        ?
   destructuring-arguments                          230.2788+-1.2814     ?    235.8361+-10.9457       ? might be 1.0241x slower
   destructuring-parameters-overridden-by-function   
                                                      0.7323+-0.0307            0.7212+-0.0487          might be 1.0154x faster
   destructuring-swap                                 6.5111+-0.0286            6.5089+-0.0481        
   direct-arguments-getbyval                          1.7095+-0.0661            1.7005+-0.0518        
   div-boolean-double                                 6.6482+-0.0212     ?      6.6833+-0.0341        ?
   div-boolean                                        9.9967+-0.0109     !     10.0710+-0.0184        ! definitely 1.0074x slower
   double-get-by-val-out-of-bounds                    5.7133+-0.0227     ^      5.5549+-0.0347        ^ definitely 1.0285x faster
   double-pollution-getbyval                         11.3955+-0.0430     ?     11.4111+-0.0237        ?
   double-pollution-putbyoffset                       5.3514+-0.0304     ^      5.2711+-0.0395        ^ definitely 1.0152x faster
   double-real-use                                   38.8680+-0.0312     !     39.0460+-0.1097        ! definitely 1.0046x slower
   double-to-int32-typed-array-no-inline              2.9147+-0.0513            2.9027+-0.0509        
   double-to-int32-typed-array                        2.6109+-0.0410            2.5654+-0.0535          might be 1.0177x faster
   double-to-uint32-typed-array-no-inline             2.9718+-0.0460            2.9450+-0.0312        
   double-to-uint32-typed-array                       2.6473+-0.0525     ?      2.6488+-0.0403        ?
   elidable-new-object-dag                           50.3193+-0.8058     ?     50.3413+-0.4375        ?
   elidable-new-object-roflcopter                    50.8408+-0.4193           50.8092+-0.4156        
   elidable-new-object-then-call                     46.7357+-0.2467     ?     46.9992+-0.4955        ?
   elidable-new-object-tree                          52.7918+-0.6395     ?     52.8315+-0.6537        ?
   empty-string-plus-int                              6.7159+-0.1521     ?      6.7271+-0.0628        ?
   emscripten-cube2hash                              48.3326+-0.3124     ?     48.8531+-0.3268        ? might be 1.0108x slower
   exit-length-on-plain-object                       16.8698+-0.0872     ?     17.4952+-0.7665        ? might be 1.0371x slower
   external-arguments-getbyval                        1.6294+-0.0537     ?      1.6655+-0.0615        ? might be 1.0222x slower
   external-arguments-putbyval                        3.0933+-0.1654            3.0282+-0.0560          might be 1.0215x faster
   fixed-typed-array-storage-var-index                1.6789+-0.0308     ?      1.6958+-0.0626        ? might be 1.0101x slower
   fixed-typed-array-storage                          1.2629+-0.0240            1.2496+-0.0284          might be 1.0106x faster
   Float32Array-matrix-mult                           5.8921+-0.0466     ?      5.9247+-0.0474        ?
   Float32Array-to-Float64Array-set                  70.4592+-0.0870     !     73.9915+-0.1406        ! definitely 1.0501x slower
   Float64Array-alloc-long-lived                     80.4173+-0.3633     ^     79.3145+-0.3472        ^ definitely 1.0139x faster
   Float64Array-to-Int16Array-set                    99.7402+-0.3963     ^     93.4952+-0.1544        ^ definitely 1.0668x faster
   fold-double-to-int                                18.5864+-0.1552     ?     18.6248+-0.1537        ?
   fold-get-by-id-to-multi-get-by-offset-rare-int   
                                                     10.7157+-0.2105     ?     10.7184+-0.2382        ?
   fold-get-by-id-to-multi-get-by-offset              8.9760+-0.2921     ?      9.0944+-0.1363        ? might be 1.0132x slower
   fold-multi-get-by-offset-to-get-by-offset   
                                                      8.4648+-0.3831     ?      8.4701+-0.4334        ?
   fold-multi-get-by-offset-to-poly-get-by-offset   
                                                      8.3057+-0.5966     ?      8.3653+-0.6644        ?
   fold-multi-put-by-offset-to-poly-put-by-offset   
                                                      7.7778+-0.3071     ?      7.7787+-0.2733        ?
   fold-multi-put-by-offset-to-put-by-offset   
                                                      6.2231+-0.0474            6.0987+-0.3375          might be 1.0204x faster
   fold-multi-put-by-offset-to-replace-or-transition-put-by-offset   
                                                     12.2407+-0.7210     ?     12.6628+-0.6421        ? might be 1.0345x slower
   fold-put-by-id-to-multi-put-by-offset              8.9200+-0.5767     ?      8.9666+-0.4092        ?
   fold-put-structure                                 5.9176+-0.0474     ?      5.9606+-0.0391        ?
   for-of-iterate-array-entries                      16.5500+-0.5184           16.1927+-0.3405          might be 1.0221x faster
   for-of-iterate-array-keys                          4.8068+-0.1401     ?      4.9388+-0.1891        ? might be 1.0275x slower
   for-of-iterate-array-values                        4.6561+-0.0500     ?      4.7798+-0.2045        ? might be 1.0266x slower
   fround                                            25.9820+-0.2891     ?     26.2406+-0.3518        ?
   ftl-library-inlining-dataview                     86.4126+-0.0862     ?     86.7813+-0.3783        ?
   ftl-library-inlining                             161.7449+-33.1793         144.2740+-0.1983          might be 1.1211x faster
   function-dot-apply                                 2.8805+-0.0433     ?      2.8958+-0.0308        ?
   function-test                                      3.8060+-0.0397     ?      3.8293+-0.0674        ?
   function-with-eval                               124.7633+-0.9514          123.8104+-0.8024        
   gcse-poly-get-less-obvious                        27.0659+-4.1221           25.2286+-1.9691          might be 1.0728x faster
   gcse-poly-get                                     33.4540+-3.5483           29.7109+-2.5840          might be 1.1260x faster
   gcse                                               5.6418+-0.0271            5.6310+-0.0204        
   get-by-id-bimorphic-check-structure-elimination-simple   
                                                      3.6243+-0.1606            3.5333+-0.0273          might be 1.0258x faster
   get-by-id-bimorphic-check-structure-elimination   
                                                      7.9460+-0.1116     ?      7.9474+-0.0904        ?
   get-by-id-chain-from-try-block                     8.8924+-0.0081     ^      8.7063+-0.0362        ^ definitely 1.0214x faster
   get-by-id-check-structure-elimination              6.6802+-0.0465     ?      6.6847+-0.0290        ?
   get-by-id-proto-or-self                           22.5911+-0.9970     ?     24.9811+-2.2403        ? might be 1.1058x slower
   get-by-id-quadmorphic-check-structure-elimination-simple   
                                                      3.8105+-0.0641     ?      3.8470+-0.2084        ?
   get-by-id-self-or-proto                           22.1123+-0.9911     ?     23.0606+-1.1966        ? might be 1.0429x slower
   get-by-val-out-of-bounds                           5.4045+-0.0329            5.3690+-0.0551        
   get_callee_monomorphic                             3.0481+-0.1333     ?      3.0840+-0.0445        ? might be 1.0118x slower
   get_callee_polymorphic                             4.2763+-0.0854            4.2666+-0.0632        
   getter-no-activation                               6.1677+-0.0418            6.1478+-0.0583        
   getter-prototype                                  19.1430+-0.2014     ?     19.1616+-0.1338        ?
   getter-richards                                  119.2553+-2.3645     ?    120.0335+-1.7076        ?
   getter                                             6.7192+-0.0550     ?      6.8012+-0.0481        ? might be 1.0122x slower
   global-var-const-infer-fire-from-opt               1.2591+-0.1525     ?      1.3055+-0.1271        ? might be 1.0369x slower
   global-var-const-infer                             1.0558+-0.0354     ?      1.1400+-0.1248        ? might be 1.0797x slower
   HashMap-put-get-iterate-keys                      31.0373+-0.3722           30.7209+-0.2404          might be 1.0103x faster
   HashMap-put-get-iterate                           30.6773+-0.2117           30.3654+-0.5507          might be 1.0103x faster
   HashMap-string-put-get-iterate                    40.2012+-1.5833     ^     35.2194+-1.3954        ^ definitely 1.1414x faster
   hoist-make-rope                                   14.3208+-1.1539     ?     14.7665+-1.3856        ? might be 1.0311x slower
   hoist-poly-check-structure-effectful-loop   
                                                      6.4588+-0.0400     ?      6.4836+-0.0492        ?
   hoist-poly-check-structure                         4.7786+-0.0272            4.7678+-0.0285        
   imul-double-only                                  10.0229+-0.0623     ^      9.4725+-0.1127        ^ definitely 1.0581x faster
   imul-int-only                                     12.3222+-0.3697           12.2781+-0.3992        
   imul-mixed                                         9.5611+-0.1233     ?      9.8151+-0.5966        ? might be 1.0266x slower
   in-four-cases                                     28.8295+-0.1128     !     29.9942+-0.2183        ! definitely 1.0404x slower
   in-one-case-false                                 14.1002+-0.0638           13.8383+-0.2094          might be 1.0189x faster
   in-one-case-true                                  14.0590+-0.0375     ^     13.7144+-0.0258        ^ definitely 1.0251x faster
   in-two-cases                                      14.7330+-0.1485     ^     14.1530+-0.0930        ^ definitely 1.0410x faster
   indexed-properties-in-objects                      3.7946+-0.0502            3.7887+-0.0461        
   infer-closure-const-then-mov-no-inline             5.1108+-0.0671     ^      5.0094+-0.0252        ^ definitely 1.0202x faster
   infer-closure-const-then-mov                      25.5530+-0.1854     ?     25.8312+-0.3787        ? might be 1.0109x slower
   infer-closure-const-then-put-to-scope-no-inline   
                                                     16.5005+-0.0361     ?     16.7502+-0.2455        ? might be 1.0151x slower
   infer-closure-const-then-put-to-scope             28.1703+-0.1493     !     29.5809+-1.1496        ! definitely 1.0501x slower
   infer-closure-const-then-reenter-no-inline   
                                                     72.4104+-0.3225     ?     73.0959+-1.1720        ?
   infer-closure-const-then-reenter                  28.8865+-0.9151           28.8506+-0.8386        
   infer-constant-global-property                     4.6298+-0.0958            4.5800+-0.0175          might be 1.0109x faster
   infer-constant-property                            3.5152+-0.0184     ?      3.5610+-0.0347        ? might be 1.0130x slower
   infer-one-time-closure-ten-vars                   15.8865+-0.1956           15.7283+-0.1921          might be 1.0101x faster
   infer-one-time-closure-two-vars                   15.2623+-0.1001           15.0797+-0.1232          might be 1.0121x faster
   infer-one-time-closure                            15.1500+-0.2953     ?     15.1530+-0.0952        ?
   infer-one-time-deep-closure                       26.8258+-0.1937     ?     26.8922+-0.1958        ?
   inline-arguments-access                            4.9858+-0.0946            4.9540+-0.0756        
   inline-arguments-aliased-access                    5.0320+-0.1188            5.0165+-0.0968        
   inline-arguments-local-escape                      5.1383+-0.1950            5.1078+-0.1401        
   inline-get-scoped-var                              6.0699+-0.0654     ?      6.1210+-0.0525        ?
   inlined-put-by-id-transition                      13.9570+-0.2643           13.8094+-0.1864          might be 1.0107x faster
   int-or-other-abs-then-get-by-val                   6.3394+-0.0365     ^      5.9941+-0.0386        ^ definitely 1.0576x faster
   int-or-other-abs-zero-then-get-by-val             22.7919+-0.2342     ?     23.4238+-0.4075        ? might be 1.0277x slower
   int-or-other-add-then-get-by-val                   5.5110+-0.0473     ?      5.5436+-0.0547        ?
   int-or-other-add                                   6.8479+-0.0562     ?      6.8490+-0.0468        ?
   int-or-other-div-then-get-by-val                   5.4437+-0.0291     ^      5.3094+-0.0326        ^ definitely 1.0253x faster
   int-or-other-max-then-get-by-val                   5.5627+-0.0332     ^      5.5003+-0.0135        ^ definitely 1.0113x faster
   int-or-other-min-then-get-by-val                   5.5589+-0.0265     ^      5.3693+-0.0174        ^ definitely 1.0353x faster
   int-or-other-mod-then-get-by-val                   5.0503+-0.0621     ?      5.0994+-0.0950        ?
   int-or-other-mul-then-get-by-val                   5.0573+-0.0215     ?      5.1177+-0.1406        ? might be 1.0119x slower
   int-or-other-neg-then-get-by-val                   6.1060+-0.0188     ^      5.5638+-0.0251        ^ definitely 1.0974x faster
   int-or-other-neg-zero-then-get-by-val             22.6818+-0.2077     !     23.3442+-0.2087        ! definitely 1.0292x slower
   int-or-other-sub-then-get-by-val                   5.5424+-0.0524            5.5153+-0.0524        
   int-or-other-sub                                   4.5974+-0.0416            4.5789+-0.0389        
   int-overflow-local                                 5.7850+-0.0405            5.7319+-0.1740        
   Int16Array-alloc-long-lived                       58.9126+-0.7147           58.2027+-0.3232          might be 1.0122x faster
   Int16Array-bubble-sort-with-byteLength            26.3084+-0.0651     !     27.0109+-0.2123        ! definitely 1.0267x slower
   Int16Array-bubble-sort                            26.9322+-0.2398     ?     26.9779+-0.2370        ?
   Int16Array-load-int-mul                            1.9698+-0.0246            1.9617+-0.0199        
   Int16Array-to-Int32Array-set                      68.5887+-0.0703     !     69.1246+-0.3598        ! definitely 1.0078x slower
   Int32Array-alloc-large                            23.3470+-0.3762     ?     23.4303+-0.3749        ?
   Int32Array-alloc-long-lived                       66.0114+-0.6230           65.2233+-0.6977          might be 1.0121x faster
   Int32Array-alloc                                   3.4170+-0.0703     ?      3.4827+-0.3743        ? might be 1.0192x slower
   Int32Array-Int8Array-view-alloc                    8.3517+-0.0467     ?      8.3605+-0.0253        ?
   int52-spill                                        6.7677+-0.0811            6.7405+-0.0624        
   Int8Array-alloc-long-lived                        53.1388+-0.7743           52.1472+-0.5969          might be 1.0190x faster
   Int8Array-load-with-byteLength                     4.3444+-0.0335     ?      4.4068+-0.1735        ? might be 1.0144x slower
   Int8Array-load                                     4.3530+-0.0273     ?      4.3627+-0.0158        ?
   integer-divide                                    14.3213+-0.1036     ?     14.3812+-0.1493        ?
   integer-modulo                                     2.7508+-0.0920            2.6565+-0.0855          might be 1.0355x faster
   is-boolean-fold-tricky                             5.8466+-0.2136            5.7972+-0.0332        
   is-boolean-fold                                    3.6215+-0.0193     ?      3.6837+-0.0443        ? might be 1.0172x slower
   is-function-fold-tricky-internal-function   
                                                     15.6170+-0.0276     ^     15.1833+-0.0372        ^ definitely 1.0286x faster
   is-function-fold-tricky                            5.8931+-0.0186     ?      5.9482+-0.0801        ?
   is-function-fold                                   3.6844+-0.0415            3.6705+-0.0526        
   is-number-fold-tricky                              5.7832+-0.0276     ?      5.8123+-0.0931        ?
   is-number-fold                                     3.6545+-0.0687     ?      3.6620+-0.0565        ?
   is-object-or-null-fold-functions                   3.7469+-0.0328            3.7423+-0.0661        
   is-object-or-null-fold-less-tricky                 5.8537+-0.0142     ?      5.9615+-0.0971        ? might be 1.0184x slower
   is-object-or-null-fold-tricky                      8.4486+-0.0213            8.4420+-0.0218        
   is-object-or-null-fold                             3.7019+-0.0630            3.6944+-0.0230        
   is-object-or-null-trickier-function                6.0220+-0.0225     ?      6.0699+-0.1157        ?
   is-object-or-null-trickier-internal-function   
                                                     16.2985+-0.0641     !     16.6989+-0.2520        ! definitely 1.0246x slower
   is-object-or-null-tricky-function                  5.9465+-0.0283     ?      5.9914+-0.0311        ?
   is-object-or-null-tricky-internal-function   
                                                     12.0720+-0.0267     ^     11.8963+-0.0287        ^ definitely 1.0148x faster
   is-string-fold-tricky                              5.7970+-0.0255     ?      5.8106+-0.0131        ?
   is-string-fold                                     3.6236+-0.0544     ?      3.7114+-0.1770        ? might be 1.0242x slower
   is-undefined-fold-tricky                           4.8417+-0.0654            4.8016+-0.0423        
   is-undefined-fold                                  3.6639+-0.0662            3.6401+-0.0283        
   large-int-captured                                 5.4955+-0.0993            5.4434+-0.0883        
   large-int-neg                                     21.3974+-0.0881     ^     21.1322+-0.1651        ^ definitely 1.0126x faster
   large-int                                         19.8873+-0.2852           19.5206+-0.1725          might be 1.0188x faster
   load-varargs-elimination                          31.3516+-0.2604     ?     31.6255+-0.0860        ?
   logical-not-weird-types                            4.3513+-0.0473            4.2990+-0.0642          might be 1.0122x faster
   logical-not                                        5.9675+-0.0661     !      6.1282+-0.0930        ! definitely 1.0269x slower
   lots-of-fields                                    14.9067+-0.0930     ?     14.9414+-0.1004        ?
   make-indexed-storage                               3.9790+-0.2916            3.9529+-0.2975        
   make-rope-cse                                      4.8083+-0.0619            4.7662+-0.0603        
   marsaglia-larger-ints                             52.2453+-0.1612           52.1742+-0.2116        
   marsaglia-osr-entry                               29.2806+-0.1460     ?     29.4050+-0.2476        ?
   math-with-out-of-bounds-array-values              32.5067+-1.9226           32.1429+-1.0026          might be 1.0113x faster
   max-boolean                                        3.2168+-0.0476            3.1592+-0.0164          might be 1.0182x faster
   method-on-number                                  22.8708+-0.2147     ?     23.2787+-0.2161        ? might be 1.0178x slower
   min-boolean                                        3.2193+-0.0474            3.1983+-0.0414        
   minus-boolean-double                               4.1091+-0.0316     ?      4.1172+-0.0339        ?
   minus-boolean                                      3.0298+-0.0628            2.9913+-0.0153          might be 1.0129x faster
   misc-strict-eq                                    48.3538+-1.0811           47.9309+-0.6977        
   mod-boolean-double                                14.1358+-0.0184           14.1352+-0.0523        
   mod-boolean                                       10.0667+-0.0475           10.0608+-0.0470        
   mul-boolean-double                                 4.8247+-0.0166            4.7988+-0.0186        
   mul-boolean                                        3.7300+-0.0173     ?      3.7378+-0.0571        ?
   neg-boolean                                        4.1357+-0.0490            4.1104+-0.0252        
   negative-zero-divide                               0.5373+-0.0241            0.5323+-0.0321        
   negative-zero-modulo                               0.5457+-0.0147            0.5212+-0.0303          might be 1.0470x faster
   negative-zero-negate                               0.5039+-0.0314            0.4987+-0.0272          might be 1.0104x faster
   nested-function-parsing                           50.4342+-0.4603           50.3311+-0.3377        
   new-array-buffer-dead                            124.9716+-0.4599     ?    125.3321+-1.4148        ?
   new-array-buffer-push                              8.0832+-0.3174            7.8784+-0.1356          might be 1.0260x faster
   new-array-dead                                    22.4814+-0.7806     ?     22.9073+-0.7556        ? might be 1.0189x slower
   new-array-push                                     4.6827+-0.0810     ?      4.7508+-0.1801        ? might be 1.0145x slower
   no-inline-constructor                             46.6945+-0.1829           46.6540+-0.3923        
   number-test                                        3.9960+-0.1413     ?      4.0682+-0.2109        ? might be 1.0181x slower
   object-closure-call                                7.2012+-0.0641     ?      7.2381+-0.0501        ?
   object-test                                        3.7124+-0.0596     ^      3.6113+-0.0364        ^ definitely 1.0280x faster
   obvious-sink-pathology-taken                     151.7870+-1.1083          151.6200+-1.6764        
   obvious-sink-pathology                           142.5675+-0.8539          142.3259+-1.0376        
   obviously-elidable-new-object                     41.2596+-0.2919           41.2030+-0.2047        
   plus-boolean-arith                                 3.2520+-0.0190     ?      3.2595+-0.0262        ?
   plus-boolean-double                                4.1027+-0.0295     ?      4.1306+-0.0473        ?
   plus-boolean                                       3.1228+-0.0454            3.1160+-0.0177        
   poly-chain-access-different-prototypes-simple   
                                                      4.2731+-0.0211     ?      4.2766+-0.0183        ?
   poly-chain-access-different-prototypes             3.3501+-0.0398     ?      3.3523+-0.0285        ?
   poly-chain-access-simpler                          4.2382+-0.0424     ?      4.2453+-0.0337        ?
   poly-chain-access                                  3.3725+-0.0345            3.3615+-0.0158        
   poly-stricteq                                     83.3443+-0.3664     !     84.1060+-0.1634        ! definitely 1.0091x slower
   polymorphic-array-call                             1.8799+-0.1427            1.8236+-0.0660          might be 1.0309x faster
   polymorphic-get-by-id                              4.0509+-0.0786     ?      4.0605+-0.2026        ?
   polymorphic-put-by-id                             39.2329+-1.4733     ?     40.8713+-1.8717        ? might be 1.0418x slower
   polymorphic-structure                             19.5623+-0.0641     ?     19.5924+-0.2310        ?
   polyvariant-monomorphic-get-by-id                 10.9385+-0.0181           10.9276+-0.0298        
   proto-getter-access                               11.7424+-0.1295     ?     11.7708+-0.2814        ?
   put-by-id-replace-and-transition                  11.6860+-0.0568     ?     11.6990+-0.1435        ?
   put-by-id-slightly-polymorphic                     3.7568+-0.1086            3.6465+-0.0145          might be 1.0302x faster
   put-by-id                                         14.6830+-0.3868           14.4934+-0.0747          might be 1.0131x faster
   put-by-val-direct                                  0.5404+-0.0182            0.5387+-0.0075        
   put-by-val-large-index-blank-indexing-type   
                                                      6.9388+-0.2142            6.8062+-0.1478          might be 1.0195x faster
   put-by-val-machine-int                             3.2948+-0.0924            3.2623+-0.0409        
   rare-osr-exit-on-local                            19.7411+-0.2237     ^     19.0790+-0.1641        ^ definitely 1.0347x faster
   register-pressure-from-osr                        28.1209+-0.0970     ^     27.7845+-0.0265        ^ definitely 1.0121x faster
   repeat-multi-get-by-offset                        32.1580+-0.0559     ^     31.4649+-0.0682        ^ definitely 1.0220x faster
   setter-prototype                                  13.1719+-0.0638     ?     13.6416+-0.6023        ? might be 1.0357x slower
   setter                                             6.8587+-0.0148     !      7.0769+-0.0356        ! definitely 1.0318x slower
   simple-activation-demo                            32.9895+-0.1577     ?     32.9927+-0.0450        ?
   simple-getter-access                              15.4791+-0.3484           15.2904+-0.3360          might be 1.0123x faster
   simple-poly-call-nested                           10.2493+-0.1542           10.1699+-0.0467        
   simple-poly-call                                   1.7946+-0.0303            1.7848+-0.0324        
   sin-boolean                                       24.3118+-0.3637     ?     24.3903+-0.4249        ?
   singleton-scope                                   83.1614+-0.1904           83.1191+-0.0863        
   sink-function                                     13.6433+-0.4021           13.2854+-0.6508          might be 1.0269x faster
   sink-huge-activation                              22.6903+-0.6360     ?     22.9220+-0.5473        ? might be 1.0102x slower
   sinkable-new-object-dag                           84.9805+-0.7027           84.3514+-0.6247        
   sinkable-new-object-taken                         65.6322+-3.1689     ?     65.8191+-3.0931        ?
   sinkable-new-object                               45.7503+-0.5675     ?     46.0223+-0.3013        ?
   slow-array-profile-convergence                     3.7451+-0.1139     ?      3.8437+-0.0714        ? might be 1.0263x slower
   slow-convergence                                   3.6045+-0.0368            3.5973+-0.0449        
   slow-ternaries                                    24.2060+-0.2163           24.0245+-0.2353        
   sorting-benchmark                                 24.6932+-0.5514           24.6858+-0.4376        
   sparse-conditional                                 1.5698+-0.0340            1.5675+-0.0301        
   splice-to-remove                                  19.8423+-0.3218     ?     19.9764+-0.5908        ?
   string-char-code-at                               20.9876+-0.2843     ?     21.1620+-0.1656        ?
   string-concat-object                               2.7364+-0.0655     ?      2.7422+-0.0315        ?
   string-concat-pair-object                          2.6460+-0.0506     ?      2.6642+-0.0514        ?
   string-concat-pair-simple                         13.5157+-0.2640     ?     13.7063+-0.1159        ? might be 1.0141x slower
   string-concat-simple                              14.0951+-0.2387     ?     14.2005+-0.1988        ?
   string-cons-repeat                                 9.2513+-0.0515     ?      9.4098+-0.1888        ? might be 1.0171x slower
   string-cons-tower                                  9.6667+-0.2086            9.5395+-0.0810          might be 1.0133x faster
   string-equality                                   23.6063+-0.2168           23.5155+-0.0265        
   string-get-by-val-big-char                         9.0806+-0.0862     ?      9.1562+-0.0958        ?
   string-get-by-val-out-of-bounds-insane             4.8190+-0.0441     ?      5.0474+-0.6344        ? might be 1.0474x slower
   string-get-by-val-out-of-bounds                    6.8684+-0.0265     ^      6.6848+-0.0538        ^ definitely 1.0275x faster
   string-get-by-val                                  4.3996+-0.0316     ^      4.2893+-0.0293        ^ definitely 1.0257x faster
   string-hash                                        2.6992+-0.0704     ?      2.7437+-0.1147        ? might be 1.0165x slower
   string-long-ident-equality                        19.6039+-0.2716           19.4805+-0.1779        
   string-out-of-bounds                              19.0359+-0.1593     ?     19.0513+-0.0943        ?
   string-repeat-arith                               43.4468+-0.5989           42.8693+-0.7905          might be 1.0135x faster
   string-sub                                        82.3200+-0.2182     ^     81.1168+-0.1957        ^ definitely 1.0148x faster
   string-test                                        3.7943+-0.0348            3.7915+-0.0380        
   string-var-equality                               46.2826+-0.3475     ?     46.5564+-0.1709        ?
   structure-hoist-over-transitions                   3.2639+-0.0683            3.2330+-0.0567        
   substring-concat-weird                            53.2482+-0.6092           52.7653+-0.1292        
   substring-concat                                  57.7355+-1.1844     ?     60.3466+-7.2989        ? might be 1.0452x slower
   substring                                         63.4055+-0.9276           62.6812+-0.2170          might be 1.0116x faster
   switch-char-constant                               3.4739+-0.0413     ?      3.4799+-0.0438        ?
   switch-char                                        7.8057+-0.0242            7.7732+-0.2004        
   switch-constant                                   11.2731+-0.6442           10.7506+-0.8877          might be 1.0486x faster
   switch-string-basic-big-var                       24.4424+-0.4139     ?     24.5066+-0.4056        ?
   switch-string-basic-big                           23.5321+-0.2996           22.9768+-0.3396          might be 1.0242x faster
   switch-string-basic-var                           19.7283+-0.0995     ?     19.8987+-0.0945        ?
   switch-string-basic                               19.3378+-0.2378           18.8169+-0.3269          might be 1.0277x faster
   switch-string-big-length-tower-var                26.5957+-0.0297           26.5598+-0.0874        
   switch-string-length-tower-var                    20.1005+-0.1995           20.0606+-0.1977        
   switch-string-length-tower                        17.3988+-0.1986           17.2304+-0.0791        
   switch-string-short                               17.1941+-0.0667     ?     17.2528+-0.1996        ?
   switch                                            15.3530+-0.2367     ^     14.0450+-0.1074        ^ definitely 1.0931x faster
   tear-off-arguments-simple                          4.1361+-0.0805            4.0854+-0.0461          might be 1.0124x faster
   tear-off-arguments                                 5.4071+-0.0441     ?      5.4895+-0.1201        ? might be 1.0152x slower
   temporal-structure                                15.8851+-0.0627           15.8675+-0.0728        
   to-int32-boolean                                  18.9233+-0.1154           18.6267+-0.1996          might be 1.0159x faster
   try-catch-get-by-val-cloned-arguments             18.1443+-0.3468           17.8828+-0.3005          might be 1.0146x faster
   try-catch-get-by-val-direct-arguments              7.7983+-0.0713            7.6645+-0.0682          might be 1.0175x faster
   try-catch-get-by-val-scoped-arguments              8.9816+-0.0585            8.9486+-0.0641        
   typed-array-get-set-by-val-profiling              39.8994+-0.6285     ?     40.2024+-0.5922        ?
   undefined-property-access                        458.2072+-0.7950          457.8249+-0.5490        
   undefined-test                                     3.9502+-0.0373            3.9157+-0.0399        
   unprofiled-licm                                   28.9218+-0.0516           28.8149+-0.2147        
   varargs-call                                      19.7487+-0.1390     ^     19.4434+-0.1203        ^ definitely 1.0157x faster
   varargs-construct-inline                          33.9153+-0.1252           33.7347+-0.2229        
   varargs-construct                                 28.9379+-0.0709           28.9348+-0.0644        
   varargs-inline                                    11.9621+-0.0572     ?     11.9979+-0.0646        ?
   varargs-strict-mode                               13.0958+-0.2104     ?     13.1982+-0.0330        ?
   varargs                                           13.1533+-0.2389     ?     13.1689+-0.1161        ?
   weird-inlining-const-prop                          2.8992+-0.0306     ?      2.9430+-0.0948        ? might be 1.0151x slower

   &lt;geometric&gt;                                       11.1467+-0.0095           11.1272+-0.0175          might be 1.0018x faster

                                                         Baseline                  Cleanup                                      
AsmBench:
   bigfib.cpp                                       662.2800+-1.9151     ?    664.0327+-2.9713        ?
   cray.c                                           582.6438+-1.7950     ?    585.1523+-0.9829        ?
   dry.c                                            665.7187+-16.7209    ?    669.6738+-13.0361       ?
   FloatMM.c                                        981.7186+-0.8931     ?    982.5483+-0.9883        ?
   gcc-loops.cpp                                   5398.6945+-19.9279        5386.8262+-20.6273       
   n-body.c                                        1338.3314+-1.5712         1337.5039+-1.1509        
   Quicksort.c                                      571.0984+-7.3592          569.8118+-2.2348        
   stepanov_container.cpp                          5053.1910+-17.3673        5047.7298+-8.0727        
   Towers.c                                         341.1200+-3.4657          340.9508+-2.2335        

   &lt;geometric&gt;                                     1067.0364+-2.8968     ?   1067.8936+-2.6431        ? might be 1.0008x slower

                                                         Baseline                  Cleanup                                      
CompressionBench:
   huffman                                           77.5303+-2.4317           76.5352+-1.7042          might be 1.0130x faster
   arithmetic-simple                                451.1222+-0.6117          450.9536+-1.2013        
   arithmetic-precise                               366.6309+-1.7393     ?    367.1316+-0.7801        ?
   arithmetic-complex-precise                       364.5636+-3.0375     ?    366.0035+-3.4183        ?
   arithmetic-precise-order-0                       464.0109+-0.5699     ?    465.7971+-1.9316        ?
   arithmetic-precise-order-1                       436.7401+-2.2413     ?    438.2528+-1.2560        ?
   arithmetic-precise-order-2                       501.5858+-3.3546     ?    503.6953+-2.3826        ?
   arithmetic-simple-order-1                        531.2106+-1.8268     ?    533.1872+-0.9793        ?
   arithmetic-simple-order-2                        598.7681+-2.4969     ?    602.1770+-2.9760        ?
   lz-string                                        400.7597+-2.9111     ?    409.3882+-7.3152        ? might be 1.0215x slower

   &lt;geometric&gt;                                      378.6246+-1.2321     ?    379.9261+-1.4980        ? might be 1.0034x slower

                                                         Baseline                  Cleanup                                      
Geomean of preferred means:
   &lt;scaled-result&gt;                                   76.6604+-0.1408           76.6034+-0.1108          might be 1.0007x faster</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109203</commentid>
    <comment_count>5</comment_count>
      <attachid>256720</attachid>
    <who name="Basile Clement">basile_clement</who>
    <bug_when>2015-07-13 13:54:52 -0700</bug_when>
    <thetext>Created attachment 256720
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109207</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-13 13:58:00 -0700</bug_when>
    <thetext>Attachment 256720 did not pass style-queue:


ERROR: Source/JavaScriptCore/jit/GPRInfo.h:429:  One space before end of line comments  [whitespace/comments] [5]
Total errors found: 1 in 21 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109208</commentid>
    <comment_count>7</comment_count>
    <who name="Basile Clement">basile_clement</who>
    <bug_when>2015-07-13 13:58:58 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Attachment 256720 [details] did not pass style-queue:
&gt; 
&gt; 
&gt; ERROR: Source/JavaScriptCore/jit/GPRInfo.h:429:  One space before end of
&gt; line comments  [whitespace/comments] [5]
&gt; Total errors found: 1 in 21 files
&gt; 
&gt; 
&gt; If any of these errors are false positives, please file a bug against
&gt; check-webkit-style.

Fixed locally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109251</commentid>
    <comment_count>8</comment_count>
      <attachid>256720</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2015-07-13 15:43:09 -0700</bug_when>
    <thetext>Comment on attachment 256720
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=256720&amp;action=review

r=me with a couple of changes.

&gt; Source/JavaScriptCore/dfg/DFGJITCompiler.cpp:408
&gt; +    if (GPRInfo::returnValueGPR != GPRInfo::argumentGPR0)

A register to register move() in the macro assembler already does a src != dest check so this is redundant.

&gt; Source/JavaScriptCore/jit/FPRInfo.h:280
&gt; +    static const FPRReg fpRegT5 = MIPSRegisters::f10;
&gt;      static const FPRReg fpRegT5 = MIPSRegisters::f18;

You have fpRegT5 listed twice.  I think one of these should be fpRegT6.

&gt; Source/JavaScriptCore/jit/GPRInfo.h:406
&gt; +    static const GPRReg regC0 = X86Registers::ebx;
&gt; +    static const GPRReg regC1 = X86Registers::r12;
&gt; +    static const GPRReg regC2 = X86Registers::r13;

What about changing the names to regCS&lt;n? or even regCalleeSave&lt;n&gt;?

&gt; Source/JavaScriptCore/jit/JIT.cpp:594
&gt; +        if (returnValueGPR != GPRInfo::argumentGPR0)

Like above, this not needed.

&gt; Source/JavaScriptCore/llint/LowLevelInterpreter.asm:33
&gt; +#   Currently this is just 32-bit so &quot;i&quot; and &quot;p&quot; are interchangeable

Change this line to &apos;For 32-bit, &quot;i&quot; and &quot;p&quot; are interchangeable&apos;

&gt; Source/JavaScriptCore/llint/LowLevelInterpreter.asm:132
&gt; +

Delete this blank line

&gt; Source/JavaScriptCore/llint/LowLevelInterpreter.asm:867
&gt; +        const address = a1
&gt; +        const zeroValue = a2

Let&apos;s add &quot;const vm = a0&quot; for readability.

&gt; Source/JavaScriptCore/llint/LowLevelInterpreter.asm:934
&gt;      if X86_64
&gt; -        leap (label - _relativePCBase)[t1], t0
&gt; -        move index, t2
&gt; -        storep t0, [t4, t2, 8]
&gt; +        leap (label - _relativePCBase)[t1], t3
&gt; +        move index, t4
&gt; +        storep t3, [a0, t4, 8]
&gt;      elsif X86_64_WIN
&gt; -        leap (label - _relativePCBase)[t1], t0
&gt; +        leap (label - _relativePCBase)[t1], t3
&gt;          move index, t4
&gt; -        storep t0, [t2, t4, 8]
&gt; +        storep t3, [a0, t4, 8]

These two cases are now the same and can be merged together.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109261</commentid>
    <comment_count>9</comment_count>
    <who name="Basile Clement">basile_clement</who>
    <bug_when>2015-07-13 15:58:09 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Comment on attachment 256720 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=256720&amp;action=review
&gt; 
&gt; r=me with a couple of changes.

Thanks!

&gt; 
&gt; &gt; Source/JavaScriptCore/dfg/DFGJITCompiler.cpp:408
&gt; &gt; +    if (GPRInfo::returnValueGPR != GPRInfo::argumentGPR0)
&gt; 
&gt; A register to register move() in the macro assembler already does a src !=
&gt; dest check so this is redundant.

Removed.

&gt; 
&gt; &gt; Source/JavaScriptCore/jit/FPRInfo.h:280
&gt; &gt; +    static const FPRReg fpRegT5 = MIPSRegisters::f10;
&gt; &gt;      static const FPRReg fpRegT5 = MIPSRegisters::f18;
&gt; 
&gt; You have fpRegT5 listed twice.  I think one of these should be fpRegT6.

Indeed, good catch.

&gt; 
&gt; &gt; Source/JavaScriptCore/jit/GPRInfo.h:406
&gt; &gt; +    static const GPRReg regC0 = X86Registers::ebx;
&gt; &gt; +    static const GPRReg regC1 = X86Registers::r12;
&gt; &gt; +    static const GPRReg regC2 = X86Registers::r13;
&gt; 
&gt; What about changing the names to regCS&lt;n? or even regCalleeSave&lt;n&gt;?

Changed those to regCS&lt;n&gt;.

&gt; 
&gt; &gt; Source/JavaScriptCore/jit/JIT.cpp:594
&gt; &gt; +        if (returnValueGPR != GPRInfo::argumentGPR0)
&gt; 
&gt; Like above, this not needed.

Removed.

&gt; 
&gt; &gt; Source/JavaScriptCore/llint/LowLevelInterpreter.asm:33
&gt; &gt; +#   Currently this is just 32-bit so &quot;i&quot; and &quot;p&quot; are interchangeable
&gt; 
&gt; Change this line to &apos;For 32-bit, &quot;i&quot; and &quot;p&quot; are interchangeable&apos;

Done.

&gt; 
&gt; &gt; Source/JavaScriptCore/llint/LowLevelInterpreter.asm:132
&gt; &gt; +
&gt; 
&gt; Delete this blank line

Done.

&gt; 
&gt; &gt; Source/JavaScriptCore/llint/LowLevelInterpreter.asm:867
&gt; &gt; +        const address = a1
&gt; &gt; +        const zeroValue = a2
&gt; 
&gt; Let&apos;s add &quot;const vm = a0&quot; for readability.

Ditto.

&gt; 
&gt; &gt; Source/JavaScriptCore/llint/LowLevelInterpreter.asm:934
&gt; &gt;      if X86_64
&gt; &gt; -        leap (label - _relativePCBase)[t1], t0
&gt; &gt; -        move index, t2
&gt; &gt; -        storep t0, [t4, t2, 8]
&gt; &gt; +        leap (label - _relativePCBase)[t1], t3
&gt; &gt; +        move index, t4
&gt; &gt; +        storep t3, [a0, t4, 8]
&gt; &gt;      elsif X86_64_WIN
&gt; &gt; -        leap (label - _relativePCBase)[t1], t0
&gt; &gt; +        leap (label - _relativePCBase)[t1], t3
&gt; &gt;          move index, t4
&gt; &gt; -        storep t0, [t2, t4, 8]
&gt; &gt; +        storep t3, [a0, t4, 8]
&gt; 
&gt; These two cases are now the same and can be merged together.

Indeed, merged.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109267</commentid>
    <comment_count>10</comment_count>
    <who name="Basile Clement">basile_clement</who>
    <bug_when>2015-07-13 16:02:36 -0700</bug_when>
    <thetext>Committed r186792 &lt;https://trac.webkit.org/changeset/186792&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125633</commentid>
    <comment_count>11</comment_count>
      <attachid>256720</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-09-14 10:56:42 -0700</bug_when>
    <thetext>Comment on attachment 256720
Patch

Cleared review? from attachment 256720 so that this bug does not appear in http://webkit.org/pending-review.  If you would like this patch reviewed, please attach it to a new bug (or re-open this bug before marking it for review again).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256629</attachid>
            <date>2015-07-10 17:52:14 -0700</date>
            <delta_ts>2015-07-13 13:54:50 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>tailcall.patch</filename>
            <type>text/plain</type>
            <size>126455</size>
            <attacher name="Basile Clement">basile_clement</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5jcHAKaW5kZXggYWVi
YzBlMi4uNjdiOTY0YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdK
SVRDb21waWxlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21w
aWxlci5jcHAKQEAgLTM5OCwxOCArMzk4LDE1IEBAIHZvaWQgSklUQ29tcGlsZXI6OmNvbXBpbGVG
dW5jdGlvbigpCiAgICAgbV9zcGVjdWxhdGl2ZS0+Y2FsbE9wZXJhdGlvbldpdGhDYWxsRnJhbWVS
b2xsYmFja09uRXhjZXB0aW9uKG1fY29kZUJsb2NrLT5tX2lzQ29uc3RydWN0b3IgPyBvcGVyYXRp
b25Db25zdHJ1Y3RBcml0eUNoZWNrIDogb3BlcmF0aW9uQ2FsbEFyaXR5Q2hlY2ssIEdQUkluZm86
OnJlZ1QwKTsKICAgICBpZiAobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpCiAgICAgICAg
IGFkZFB0cihUcnVzdGVkSW1tMzIobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpLCBzdGFj
a1BvaW50ZXJSZWdpc3Rlcik7Ci0gICAgYnJhbmNoVGVzdDMyKFplcm8sIEdQUkluZm86OnJlZ1Qw
KS5saW5rVG8oZnJvbUFyaXR5Q2hlY2ssIHRoaXMpOworICAgIGJyYW5jaFRlc3QzMihaZXJvLCBH
UFJJbmZvOjpyZXR1cm5WYWx1ZUdQUikubGlua1RvKGZyb21Bcml0eUNoZWNrLCB0aGlzKTsKICAg
ICBlbWl0U3RvcmVDb2RlT3JpZ2luKENvZGVPcmlnaW4oMCkpOwotICAgIEdQUlJlZyB0aHVua1Jl
ZzsKLSNpZiBVU0UoSlNWQUxVRTY0KQotICAgIHRodW5rUmVnID0gR1BSSW5mbzo6cmVnVDc7Ci0j
ZWxzZQotICAgIHRodW5rUmVnID0gR1BSSW5mbzo6cmVnVDU7Ci0jZW5kaWYKKyAgICBHUFJSZWcg
dGh1bmtSZWcgPSBHUFJJbmZvOjphcmd1bWVudEdQUjE7CiAgICAgQ29kZUxvY2F0aW9uTGFiZWwq
IGFyaXR5VGh1bmtMYWJlbHMgPQogICAgICAgICBtX3ZtLT5hcml0eUNoZWNrRmFpbFJldHVyblRo
dW5rcy0+cmV0dXJuUENzRm9yKCptX3ZtLCBtX2NvZGVCbG9jay0+bnVtUGFyYW1ldGVycygpKTsK
ICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIoYXJpdHlUaHVua0xhYmVscyksIHRodW5rUmVnKTsKLSAg
ICBsb2FkUHRyKEJhc2VJbmRleCh0aHVua1JlZywgR1BSSW5mbzo6cmVnVDAsIHRpbWVzUHRyKCkp
LCB0aHVua1JlZyk7CisgICAgbG9hZFB0cihCYXNlSW5kZXgodGh1bmtSZWcsIEdQUkluZm86OnJl
dHVyblZhbHVlR1BSLCB0aW1lc1B0cigpKSwgdGh1bmtSZWcpOworICAgIGlmIChHUFJJbmZvOjpy
ZXR1cm5WYWx1ZUdQUiAhPSBHUFJJbmZvOjphcmd1bWVudEdQUjApCisgICAgICAgIG1vdmUoR1BS
SW5mbzo6cmV0dXJuVmFsdWVHUFIsIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgbV9jYWxs
QXJpdHlGaXh1cCA9IGNhbGwoKTsKICAgICBqdW1wKGZyb21Bcml0eUNoZWNrKTsKICAgICAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTGluay5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTExpbmsuY3BwCmluZGV4IDE4OGFmZTUuLjkyOWY1MGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTGluay5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMaW5rLmNwcApAQCAtMTY1LDE0ICsxNjUsMTQgQEAg
dm9pZCBsaW5rKFN0YXRlJiBzdGF0ZSkKICAgICAgICAgaml0LmxvYWQ2NCh2bS5hZGRyZXNzT2ZF
eGNlcHRpb24oKSwgR1BSSW5mbzo6cmVnVDEpOwogICAgICAgICBqaXQuaml0QXNzZXJ0SXNOdWxs
KEdQUkluZm86OnJlZ1QxKTsKICNlbmRpZgotICAgICAgICBqaXQubW92ZShHUFJJbmZvOjpyZXR1
cm5WYWx1ZUdQUiwgR1BSSW5mbzo6cmVnVDApOworICAgICAgICBqaXQubW92ZShHUFJJbmZvOjpy
ZXR1cm5WYWx1ZUdQUiwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICAgICAgaml0LmVtaXRG
dW5jdGlvbkVwaWxvZ3VlKCk7Ci0gICAgICAgIG1haW5QYXRoSnVtcHMuYXBwZW5kKGppdC5icmFu
Y2hUZXN0MzIoQ0NhbGxIZWxwZXJzOjpaZXJvLCBHUFJJbmZvOjpyZWdUMCkpOworICAgICAgICBt
YWluUGF0aEp1bXBzLmFwcGVuZChqaXQuYnJhbmNoVGVzdDMyKENDYWxsSGVscGVyczo6WmVybywg
R1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CiAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25Qcm9sb2d1
ZSgpOwogICAgICAgICBDb2RlTG9jYXRpb25MYWJlbCogYXJpdHlUaHVua0xhYmVscyA9CiAgICAg
ICAgICAgICB2bS5hcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy0+cmV0dXJuUENzRm9yKHZtLCBj
b2RlQmxvY2stPm51bVBhcmFtZXRlcnMoKSk7Ci0gICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVy
czo6VHJ1c3RlZEltbVB0cihhcml0eVRodW5rTGFiZWxzKSwgR1BSSW5mbzo6cmVnVDcpOwotICAg
ICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkJhc2VJbmRleChHUFJJbmZvOjpyZWdUNywg
R1BSSW5mbzo6cmVnVDAsIENDYWxsSGVscGVyczo6dGltZXNQdHIoKSksIEdQUkluZm86OnJlZ1Q3
KTsKKyAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGFyaXR5VGh1
bmtMYWJlbHMpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOworICAgICAgICBqaXQubG9hZFB0cihD
Q2FsbEhlbHBlcnM6OkJhc2VJbmRleChHUFJJbmZvOjphcmd1bWVudEdQUjEsIEdQUkluZm86OmFy
Z3VtZW50R1BSMCwgQ0NhbGxIZWxwZXJzOjp0aW1lc1B0cigpKSwgR1BSSW5mbzo6YXJndW1lbnRH
UFIxKTsKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpDYWxsIGNhbGxBcml0eUZpeHVwID0gaml0LmNh
bGwoKTsKICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgIG1haW5Q
YXRoSnVtcHMuYXBwZW5kKGppdC5qdW1wKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9GUFJJbmZvLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0ZQUkluZm8u
aAppbmRleCBmMDZiMTdjLi42ZWNkYTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0ZQUkluZm8uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0ZQUkluZm8u
aApAQCAtMjY4LDE0ICsyNjgsMTUgQEAgcHVibGljOgogY2xhc3MgRlBSSW5mbyB7CiBwdWJsaWM6
CiAgICAgdHlwZWRlZiBGUFJSZWcgUmVnaXN0ZXJUeXBlOwotICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBudW1iZXJPZlJlZ2lzdGVycyA9IDY7CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG51
bWJlck9mUmVnaXN0ZXJzID0gNzsKIAogICAgIC8vIFRlbXBvcmFyeSByZWdpc3RlcnMuCiAgICAg
c3RhdGljIGNvbnN0IEZQUlJlZyBmcFJlZ1QwID0gTUlQU1JlZ2lzdGVyczo6ZjA7Ci0gICAgc3Rh
dGljIGNvbnN0IEZQUlJlZyBmcFJlZ1QxID0gTUlQU1JlZ2lzdGVyczo6ZjQ7Ci0gICAgc3RhdGlj
IGNvbnN0IEZQUlJlZyBmcFJlZ1QyID0gTUlQU1JlZ2lzdGVyczo6ZjY7Ci0gICAgc3RhdGljIGNv
bnN0IEZQUlJlZyBmcFJlZ1QzID0gTUlQU1JlZ2lzdGVyczo6Zjg7Ci0gICAgc3RhdGljIGNvbnN0
IEZQUlJlZyBmcFJlZ1Q0ID0gTUlQU1JlZ2lzdGVyczo6ZjEwOworICAgIHN0YXRpYyBjb25zdCBG
UFJSZWcgZnBSZWdUMSA9IE1JUFNSZWdpc3RlcnM6OmYyOworICAgIHN0YXRpYyBjb25zdCBGUFJS
ZWcgZnBSZWdUMiA9IE1JUFNSZWdpc3RlcnM6OmY0OworICAgIHN0YXRpYyBjb25zdCBGUFJSZWcg
ZnBSZWdUMyA9IE1JUFNSZWdpc3RlcnM6OmY2OworICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgZnBS
ZWdUNCA9IE1JUFNSZWdpc3RlcnM6OmY4OworICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgZnBSZWdU
NSA9IE1JUFNSZWdpc3RlcnM6OmYxMDsKICAgICBzdGF0aWMgY29uc3QgRlBSUmVnIGZwUmVnVDUg
PSBNSVBTUmVnaXN0ZXJzOjpmMTg7CiAKICAgICBzdGF0aWMgY29uc3QgRlBSUmVnIHJldHVyblZh
bHVlRlBSID0gTUlQU1JlZ2lzdGVyczo6ZjA7CkBAIC0yODYsNyArMjg3LDcgQEAgcHVibGljOgog
ICAgIHN0YXRpYyBGUFJSZWcgdG9SZWdpc3Rlcih1bnNpZ25lZCBpbmRleCkKICAgICB7CiAgICAg
ICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgcmVnaXN0ZXJGb3JJbmRleFtudW1iZXJPZlJlZ2lzdGVy
c10gPSB7Ci0gICAgICAgICAgICBmcFJlZ1QwLCBmcFJlZ1QxLCBmcFJlZ1QyLCBmcFJlZ1QzLCBm
cFJlZ1Q0LCBmcFJlZ1Q1IH07CisgICAgICAgICAgICBmcFJlZ1QwLCBmcFJlZ1QxLCBmcFJlZ1Qy
LCBmcFJlZ1QzLCBmcFJlZ1Q0LCBmcFJlZ1Q1LCBmcFJlZ1Q2IH07CiAKICAgICAgICAgQVNTRVJU
KGluZGV4IDwgbnVtYmVyT2ZSZWdpc3RlcnMpOwogICAgICAgICByZXR1cm4gcmVnaXN0ZXJGb3JJ
bmRleFtpbmRleF07CkBAIC0yOTcsMTEgKzI5OCwxMSBAQCBwdWJsaWM6CiAgICAgICAgIEFTU0VS
VChyZWcgIT0gSW52YWxpZEZQUlJlZyk7CiAgICAgICAgIEFTU0VSVChyZWcgPCAyMCk7CiAgICAg
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbmRleEZvclJlZ2lzdGVyWzIwXSA9IHsKLSAgICAg
ICAgICAgIDAsIEludmFsaWRJbmRleCwgSW52YWxpZEluZGV4LCBJbnZhbGlkSW5kZXgsCi0gICAg
ICAgICAgICAxLCBJbnZhbGlkSW5kZXgsIDIsIEludmFsaWRJbmRleCwKLSAgICAgICAgICAgIDMs
IEludmFsaWRJbmRleCwgNCwgSW52YWxpZEluZGV4LAorICAgICAgICAgICAgMCwgSW52YWxpZElu
ZGV4LCAxLCBJbnZhbGlkSW5kZXgsCisgICAgICAgICAgICAyLCBJbnZhbGlkSW5kZXgsIDMsIElu
dmFsaWRJbmRleCwKKyAgICAgICAgICAgIDQsIEludmFsaWRJbmRleCwgNSwgSW52YWxpZEluZGV4
LAogICAgICAgICAgICAgSW52YWxpZEluZGV4LCBJbnZhbGlkSW5kZXgsIEludmFsaWRJbmRleCwg
SW52YWxpZEluZGV4LAotICAgICAgICAgICAgSW52YWxpZEluZGV4LCBJbnZhbGlkSW5kZXgsIDUs
IEludmFsaWRJbmRleCwKKyAgICAgICAgICAgIEludmFsaWRJbmRleCwgSW52YWxpZEluZGV4LCA2
LCBJbnZhbGlkSW5kZXgsCiAgICAgICAgIH07CiAgICAgICAgIHVuc2lnbmVkIHJlc3VsdCA9IGlu
ZGV4Rm9yUmVnaXN0ZXJbcmVnXTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR1BSSW5mby5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9HUFJJbmZvLmgKaW5kZXggYTVlMzAxYi4uYzgzOGRiYyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9HUFJJbmZvLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9HUFJJbmZvLmgKQEAgLTMxLDYgKzMxLDExIEBACiAKIG5hbWVzcGFjZSBKU0Mgewog
CisvLyBXZSB1c2UgdGhlIHNhbWUgY29udmVudGlvbnMgaW4gdGhlIGJhc2xpbmUgSklUIGFzIGlu
IHRoZSBMTGludC4gSWYgeW91CisvLyBjaGFuZ2UgbWFwcGluZ3MgaW4gdGhlIEdQUkluZm8sIHlv
dSBzaG91bGQgY2hhbmdlIHRoZW0gaW4gdGhlIG9mZmxpbmVhc20KKy8vIGNvbXBpbGVyIGFkZXF1
YXRlbHkuIFRoZSByZWdpc3RlciBuYW1pbmcgY29udmVudGlvbnMgYXJlIGRlc2NyaWJlZCBhdCB0
aGUKKy8vIHRvcCBvZiB0aGUgTG93TGV2ZWxJbnRlcnByZXRlci5hc20gZmlsZS4KKwogdHlwZWRl
ZiBNYWNyb0Fzc2VtYmxlcjo6UmVnaXN0ZXJJRCBHUFJSZWc7CiAjZGVmaW5lIEludmFsaWRHUFJS
ZWcgKCg6OkpTQzo6R1BSUmVnKS0xKQogCkBAIC0yOTQsOCArMjk5LDYgQEAgcHJpdmF0ZToKIH07
CiAjZW5kaWYgLy8gVVNFKEpTVkFMVUUzMl82NCkKIAotLy8gVGhlIGJhc2VsaW5lIEpJVCByZXF1
aXJlcyB0aGF0IHJlZ1QzIGJlIGNhbGxlZS1wcmVzZXJ2ZWQuCi0KICNpZiBDUFUoWDg2KQogI2Rl
ZmluZSBOVU1CRVJfT0ZfQVJHVU1FTlRfUkVHSVNURVJTIDB1CiAKQEAgLTMwNSwyNSArMzA4LDIx
IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbnVtYmVyT2ZSZWdpc3RlcnMg
PSA2OwogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJz
ID0gTlVNQkVSX09GX0FSR1VNRU5UX1JFR0lTVEVSUzsKIAotICAgIC8vIE5vdGU6IHJlZ1QzIGlz
IHJlcXVpcmVkIHRvIGJlIGNhbGxlZS1wcmVzZXJ2ZWQuCi0KICAgICAvLyBUZW1wb3JhcnkgcmVn
aXN0ZXJzLgogICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDAgPSBYODZSZWdpc3RlcnM6OmVh
eDsKICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1QxID0gWDg2UmVnaXN0ZXJzOjplZHg7CiAg
ICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUMiA9IFg4NlJlZ2lzdGVyczo6ZWN4OwotICAgIHN0
YXRpYyBjb25zdCBHUFJSZWcgcmVnVDMgPSBYODZSZWdpc3RlcnM6OmVieDsKLSAgICBzdGF0aWMg
Y29uc3QgR1BSUmVnIHJlZ1Q0ID0gWDg2UmVnaXN0ZXJzOjplZGk7Ci0gICAgc3RhdGljIGNvbnN0
IEdQUlJlZyByZWdUNSA9IFg4NlJlZ2lzdGVyczo6ZXNpOwotICAgIC8vIFRoZXNlIHJlZ2lzdGVy
cyBtYXRjaCB0aGUgYmFzZWxpbmUgSklULgotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgY2FjaGVk
UmVzdWx0UmVnaXN0ZXIgPSByZWdUMDsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGNhY2hlZFJl
c3VsdFJlZ2lzdGVyMiA9IHJlZ1QxOworICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDMgPSBY
ODZSZWdpc3RlcnM6OmVieDsgLy8gQ2FsbGVlLXNhdmUKKyAgICBzdGF0aWMgY29uc3QgR1BSUmVn
IHJlZ1Q0ID0gWDg2UmVnaXN0ZXJzOjplc2k7IC8vIENhbGxlZS1zYXZlCisgICAgc3RhdGljIGNv
bnN0IEdQUlJlZyByZWdUNSA9IFg4NlJlZ2lzdGVyczo6ZWRpOyAvLyBDYWxsZWUtc2F2ZQogICAg
IHN0YXRpYyBjb25zdCBHUFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIgPSBYODZSZWdpc3RlcnM6OmVi
cDsKICAgICAvLyBUaGVzZSBjb25zdGFudHMgcHJvdmlkZSB0aGUgbmFtZXMgZm9yIHRoZSBnZW5l
cmFsIHB1cnBvc2UgYXJndW1lbnQgJiByZXR1cm4gdmFsdWUgcmVnaXN0ZXJzLgogICAgIHN0YXRp
YyBjb25zdCBHUFJSZWcgYXJndW1lbnRHUFIwID0gWDg2UmVnaXN0ZXJzOjplY3g7IC8vIHJlZ1Qy
CiAgICAgc3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjEgPSBYODZSZWdpc3RlcnM6OmVk
eDsgLy8gcmVnVDEKKyAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSMiA9IFg4NlJl
Z2lzdGVyczo6ZWF4OyAvLyByZWdUMAorICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgYXJndW1lbnRH
UFIzID0gWDg2UmVnaXN0ZXJzOjplYng7IC8vIHJlZ1QzCiAgICAgc3RhdGljIGNvbnN0IEdQUlJl
ZyBub25BcmdHUFIwID0gWDg2UmVnaXN0ZXJzOjplc2k7IC8vIHJlZ1Q0Ci0gICAgc3RhdGljIGNv
bnN0IEdQUlJlZyBub25BcmdHUFIxID0gWDg2UmVnaXN0ZXJzOjplYXg7IC8vIHJlZ1QwCi0gICAg
c3RhdGljIGNvbnN0IEdQUlJlZyBub25BcmdHUFIyID0gWDg2UmVnaXN0ZXJzOjplYng7IC8vIHJl
Z1QzCisgICAgc3RhdGljIGNvbnN0IEdQUlJlZyBub25BcmdHUFIxID0gWDg2UmVnaXN0ZXJzOjpl
ZGk7IC8vIHJlZ1Q1CiAgICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZXR1cm5WYWx1ZUdQUiA9IFg4
NlJlZ2lzdGVyczo6ZWF4OyAvLyByZWdUMAogICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmV0dXJu
VmFsdWVHUFIyID0gWDg2UmVnaXN0ZXJzOjplZHg7IC8vIHJlZ1QxCiAgICAgc3RhdGljIGNvbnN0
IEdQUlJlZyBub25QcmVzZXJ2ZWROb25SZXR1cm5HUFIgPSBYODZSZWdpc3RlcnM6OmVjeDsKQEAg
LTM0NSw3ICszNDQsNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBBU1NFUlQocmVnICE9IElu
dmFsaWRHUFJSZWcpOwogICAgICAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8aW50PihyZWcpIDwgOCk7
Ci0gICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbmRleEZvclJlZ2lzdGVyWzhdID0geyAw
LCAyLCAxLCAzLCBJbnZhbGlkSW5kZXgsIEludmFsaWRJbmRleCwgNSwgNCB9OworICAgICAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgaW5kZXhGb3JSZWdpc3Rlcls4XSA9IHsgMCwgMiwgMSwgMywg
SW52YWxpZEluZGV4LCBJbnZhbGlkSW5kZXgsIDQsIDUgfTsKICAgICAgICAgdW5zaWduZWQgcmVz
dWx0ID0gaW5kZXhGb3JSZWdpc3RlcltyZWddOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAg
IH0KQEAgLTM3Nyw1NCArMzc2LDgwIEBAIGNsYXNzIEdQUkluZm8gewogcHVibGljOgogICAgIHR5
cGVkZWYgR1BSUmVnIFJlZ2lzdGVyVHlwZTsKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbnVt
YmVyT2ZSZWdpc3RlcnMgPSAxMTsKKyNpZiAhT1MoV0lORE9XUykKKyAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgbnVtYmVyT2ZDYWxsZWVTYXZlcyA9IDU7CisjZWxzZQorICAgIHN0YXRpYyBjb25z
dCB1bnNpZ25lZCBudW1iZXJPZkNhbGxlZVNhdmVzID0gNzsKKyNlbmRpZgogICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzID0gTlVNQkVSX09GX0FSR1VN
RU5UX1JFR0lTVEVSUzsKIAotICAgIC8vIE5vdGU6IHJlZ1QzIGlzIHJlcXVpcmVkIHRvIGJlIGNh
bGxlZS1wcmVzZXJ2ZWQuCi0KICAgICAvLyBUaGVzZSByZWdpc3RlcnMgbWF0Y2ggdGhlIGJhc2Vs
aW5lIEpJVC4KLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGNhY2hlZFJlc3VsdFJlZ2lzdGVyID0g
WDg2UmVnaXN0ZXJzOjplYXg7CiAgICAgc3RhdGljIGNvbnN0IEdQUlJlZyBjYWxsRnJhbWVSZWdp
c3RlciA9IFg4NlJlZ2lzdGVyczo6ZWJwOwogICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgdGFnVHlw
ZU51bWJlclJlZ2lzdGVyID0gWDg2UmVnaXN0ZXJzOjpyMTQ7CiAgICAgc3RhdGljIGNvbnN0IEdQ
UlJlZyB0YWdNYXNrUmVnaXN0ZXIgPSBYODZSZWdpc3RlcnM6OnIxNTsKICAgICAvLyBUZW1wb3Jh
cnkgcmVnaXN0ZXJzLgogICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDAgPSBYODZSZWdpc3Rl
cnM6OmVheDsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1QxID0gWDg2UmVnaXN0ZXJzOjpl
ZHg7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUMiA9IFg4NlJlZ2lzdGVyczo6ZWN4Owot
ICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDMgPSBYODZSZWdpc3RlcnM6OmVieDsKLSAgICBz
dGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Q0ID0gWDg2UmVnaXN0ZXJzOjplZGk7Ci0gICAgc3RhdGlj
IGNvbnN0IEdQUlJlZyByZWdUNSA9IFg4NlJlZ2lzdGVyczo6ZXNpOwotICAgIHN0YXRpYyBjb25z
dCBHUFJSZWcgcmVnVDYgPSBYODZSZWdpc3RlcnM6OnI4OworI2lmICFPUyhXSU5ET1dTKQorICAg
IHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDEgPSBYODZSZWdpc3RlcnM6OmVzaTsKKyAgICBzdGF0
aWMgY29uc3QgR1BSUmVnIHJlZ1QyID0gWDg2UmVnaXN0ZXJzOjplZHg7CisgICAgc3RhdGljIGNv
bnN0IEdQUlJlZyByZWdUMyA9IFg4NlJlZ2lzdGVyczo6ZWN4OworICAgIHN0YXRpYyBjb25zdCBH
UFJSZWcgcmVnVDQgPSBYODZSZWdpc3RlcnM6OnI4OworICAgIHN0YXRpYyBjb25zdCBHUFJSZWcg
cmVnVDUgPSBYODZSZWdpc3RlcnM6OnIxMDsKKyAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Q2
ID0gWDg2UmVnaXN0ZXJzOjplZGk7CiAgICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUNyA9IFg4
NlJlZ2lzdGVyczo6cjk7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUOCA9IFg4NlJlZ2lz
dGVyczo6cjEwOwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDkgPSBYODZSZWdpc3RlcnM6
OnIxMjsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1QxMCA9IFg4NlJlZ2lzdGVyczo6cjEz
OwotICAgIC8vIFRoZXNlIGNvbnN0YW50cyBwcm92aWRlIHRoZSBuYW1lcyBmb3IgdGhlIGdlbmVy
YWwgcHVycG9zZSBhcmd1bWVudCAmIHJldHVybiB2YWx1ZSByZWdpc3RlcnMuCisjZWxzZQorICAg
IHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDEgPSBYODZSZWdpc3RlcnM6OmVkeDsKKyAgICBzdGF0
aWMgY29uc3QgR1BSUmVnIHJlZ1QyID0gWDg2UmVnaXN0ZXJzOjpyODsKKyAgICBzdGF0aWMgY29u
c3QgR1BSUmVnIHJlZ1QzID0gWDg2UmVnaXN0ZXJzOjpyOTsKKyAgICBzdGF0aWMgY29uc3QgR1BS
UmVnIHJlZ1Q0ID0gWDg2UmVnaXN0ZXJzOjplZGk7IC8vIFRoaXMgb25lIGlzIGFjdHVhbGx5IGNh
bGxlZS1zYXZlCisgICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUNSA9IFg4NlJlZ2lzdGVyczo6
cjEwOworICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDYgPSBYODZSZWdpc3RlcnM6OmVjeDsK
KyNlbmRpZgorCisgICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdDMCA9IFg4NlJlZ2lzdGVyczo6
ZWJ4OworICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnQzEgPSBYODZSZWdpc3RlcnM6OnIxMjsK
KyAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ0MyID0gWDg2UmVnaXN0ZXJzOjpyMTM7CisKICNp
ZiAhT1MoV0lORE9XUykKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSMCA9IFg4
NlJlZ2lzdGVyczo6ZWRpOyAvLyByZWdUNAotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgYXJndW1l
bnRHUFIxID0gWDg2UmVnaXN0ZXJzOjplc2k7IC8vIHJlZ1Q1Ci0gICAgc3RhdGljIGNvbnN0IEdQ
UlJlZyBhcmd1bWVudEdQUjIgPSBYODZSZWdpc3RlcnM6OmVkeDsgLy8gcmVnVDEKLSAgICBzdGF0
aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSMyA9IFg4NlJlZ2lzdGVyczo6ZWN4OyAvLyByZWdU
MgotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgYXJndW1lbnRHUFI0ID0gWDg2UmVnaXN0ZXJzOjpy
ODsgIC8vIHJlZ1Q2Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjUgPSBYODZS
ZWdpc3RlcnM6OnI5OyAgLy8gcmVnVDcKKyAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ0MzID0g
WDg2UmVnaXN0ZXJzOjpyMTQ7CisgICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdDNCA9IFg4NlJl
Z2lzdGVyczo6cjE1OwogI2Vsc2UKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BS
MCA9IFg4NlJlZ2lzdGVyczo6ZWN4OwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgYXJndW1lbnRH
UFIxID0gWDg2UmVnaXN0ZXJzOjplZHg7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1bWVu
dEdQUjIgPSBYODZSZWdpc3RlcnM6OnI4OyAvLyByZWdUNgotICAgIHN0YXRpYyBjb25zdCBHUFJS
ZWcgYXJndW1lbnRHUFIzID0gWDg2UmVnaXN0ZXJzOjpyOTsgLy8gcmVnVDcKKyAgICBzdGF0aWMg
Y29uc3QgR1BSUmVnIHJlZ0MzID0gWDg2UmVnaXN0ZXJzOjplc2k7CisgICAgc3RhdGljIGNvbnN0
IEdQUlJlZyByZWdDNCA9IFg4NlJlZ2lzdGVyczo6ZWRpOyAvLyByZWdUNAorICAgIHN0YXRpYyBj
b25zdCBHUFJSZWcgcmVnQzUgPSBYODZSZWdpc3RlcnM6OnIxNDsKKyAgICBzdGF0aWMgY29uc3Qg
R1BSUmVnIHJlZ0M2ID0gWDg2UmVnaXN0ZXJzOjpyMTU7CiAjZW5kaWYKLSAgICBzdGF0aWMgY29u
c3QgR1BSUmVnIG5vbkFyZ0dQUjAgPSBYODZSZWdpc3RlcnM6OnIxMDsgLy8gcmVnVDgKLSAgICBz
dGF0aWMgY29uc3QgR1BSUmVnIG5vbkFyZ0dQUjEgPSBYODZSZWdpc3RlcnM6OmVieDsgLy8gcmVn
VDMKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIG5vbkFyZ0dQUjIgPSBYODZSZWdpc3RlcnM6OnIx
MjsgLy8gcmVnVDkKKworICAgIC8vIFRoZXNlIGNvbnN0YW50cyBwcm92aWRlIHRoZSBuYW1lcyBm
b3IgdGhlIGdlbmVyYWwgcHVycG9zZSBhcmd1bWVudCAmIHJldHVybiB2YWx1ZSByZWdpc3RlcnMu
CisjaWYgT1MoV0lORE9XUykKKyAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSMCA9
IFg4NlJlZ2lzdGVyczo6ZWN4OyAvLyByZWdUNgorICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgYXJn
dW1lbnRHUFIxID0gWDg2UmVnaXN0ZXJzOjplZHg7IC8vIHJlZ1QxCisgICAgc3RhdGljIGNvbnN0
IEdQUlJlZyBhcmd1bWVudEdQUjIgPSBYODZSZWdpc3RlcnM6OnI4OyAvLyByZWdUMgorICAgIHN0
YXRpYyBjb25zdCBHUFJSZWcgYXJndW1lbnRHUFIzID0gWDg2UmVnaXN0ZXJzOjpyOTsgLy8gcmVn
VDMKKyNlbHNlCisgICAgc3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjAgPSBYODZSZWdp
c3RlcnM6OmVkaTsgLy8gcmVnVDYKKyAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BS
MSA9IFg4NlJlZ2lzdGVyczo6ZXNpOyAvLyByZWdUMQorICAgIHN0YXRpYyBjb25zdCBHUFJSZWcg
YXJndW1lbnRHUFIyID0gWDg2UmVnaXN0ZXJzOjplZHg7IC8vIHJlZ1QyCisgICAgc3RhdGljIGNv
bnN0IEdQUlJlZyBhcmd1bWVudEdQUjMgPSBYODZSZWdpc3RlcnM6OmVjeDsgLy8gcmVnVDMKKyAg
ICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSNCA9IFg4NlJlZ2lzdGVyczo6cjg7ICAv
LyByZWdUNAorICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgYXJndW1lbnRHUFI1ID0gWDg2UmVnaXN0
ZXJzOjpyOTsgLy8gcmVnVDcKKyNlbmRpZgorICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgbm9uQXJn
R1BSMCA9IFg4NlJlZ2lzdGVyczo6cjEwOyAvLyByZWdUNQorICAgIHN0YXRpYyBjb25zdCBHUFJS
ZWcgbm9uQXJnR1BSMSA9IFg4NlJlZ2lzdGVyczo6ZWJ4OwogICAgIHN0YXRpYyBjb25zdCBHUFJS
ZWcgcmV0dXJuVmFsdWVHUFIgPSBYODZSZWdpc3RlcnM6OmVheDsgLy8gcmVnVDAKLSAgICBzdGF0
aWMgY29uc3QgR1BSUmVnIHJldHVyblZhbHVlR1BSMiA9IFg4NlJlZ2lzdGVyczo6ZWR4OyAvLyBy
ZWdUMQotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgbm9uUHJlc2VydmVkTm9uUmV0dXJuR1BSID0g
WDg2UmVnaXN0ZXJzOjplc2k7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBub25QcmVzZXJ2ZWRO
b25Bcmd1bWVudEdQUiA9IFg4NlJlZ2lzdGVyczo6cjEwOworICAgIHN0YXRpYyBjb25zdCBHUFJS
ZWcgcmV0dXJuVmFsdWVHUFIyID0gWDg2UmVnaXN0ZXJzOjplZHg7IC8vIHJlZ1QxIG9yIHJlZ1Qy
CisgICAgc3RhdGljIGNvbnN0IEdQUlJlZyBub25QcmVzZXJ2ZWROb25SZXR1cm5HUFIgPSBYODZS
ZWdpc3RlcnM6OnIxMDsgLy8gcmVnVDUKKyAgICBzdGF0aWMgY29uc3QgR1BSUmVnIG5vblByZXNl
cnZlZE5vbkFyZ3VtZW50R1BSID0gWDg2UmVnaXN0ZXJzOjpyMTA7IC8vIHJlZ1Q1CiAgICAgc3Rh
dGljIGNvbnN0IEdQUlJlZyBwYXRjaHBvaW50U2NyYXRjaFJlZ2lzdGVyID0gTWFjcm9Bc3NlbWJs
ZXI6OnNjcmF0Y2hSZWdpc3RlcjsKIAogICAgIHN0YXRpYyBHUFJSZWcgdG9SZWdpc3Rlcih1bnNp
Z25lZCBpbmRleCkKICAgICB7CiAgICAgICAgIEFTU0VSVChpbmRleCA8IG51bWJlck9mUmVnaXN0
ZXJzKTsKLSAgICAgICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdpc3RlckZvckluZGV4W251bWJl
ck9mUmVnaXN0ZXJzXSA9IHsgcmVnVDAsIHJlZ1QxLCByZWdUMiwgcmVnVDMsIHJlZ1Q0LCByZWdU
NSwgcmVnVDYsIHJlZ1Q3LCByZWdUOCwgcmVnVDksIHJlZ1QxMCB9OworI2lmICFPUyhXSU5ET1dT
KQorICAgICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ2lzdGVyRm9ySW5kZXhbbnVtYmVyT2ZS
ZWdpc3RlcnNdID0geyByZWdUMCwgcmVnVDEsIHJlZ1QyLCByZWdUMywgcmVnVDQsIHJlZ1Q1LCBy
ZWdUNiwgcmVnVDcsIHJlZ0MwLCByZWdDMSwgcmVnQzIgfTsKKyNlbHNlCisgICAgICAgIHN0YXRp
YyBjb25zdCBHUFJSZWcgcmVnaXN0ZXJGb3JJbmRleFtudW1iZXJPZlJlZ2lzdGVyc10gPSB7IHJl
Z1QwLCByZWdUMSwgcmVnVDIsIHJlZ1QzLCByZWdUNCwgcmVnVDUsIHJlZ1Q2LCByZWdDMCwgcmVn
QzEsIHJlZ0MyLCByZWdDMyB9OworI2VuZGlmCiAgICAgICAgIHJldHVybiByZWdpc3RlckZvcklu
ZGV4W2luZGV4XTsKICAgICB9CiAgICAgCkBAIC00NDMsNyArNDY4LDExIEBAIHB1YmxpYzoKICAg
ICB7CiAgICAgICAgIEFTU0VSVChyZWcgIT0gSW52YWxpZEdQUlJlZyk7CiAgICAgICAgIEFTU0VS
VChzdGF0aWNfY2FzdDxpbnQ+KHJlZykgPCAxNik7Ci0gICAgICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBpbmRleEZvclJlZ2lzdGVyWzE2XSA9IHsgMCwgMiwgMSwgMywgSW52YWxpZEluZGV4LCBJ
bnZhbGlkSW5kZXgsIDUsIDQsIDYsIDcsIDgsIEludmFsaWRJbmRleCwgOSwgMTAsIEludmFsaWRJ
bmRleCwgSW52YWxpZEluZGV4IH07CisjaWYgIU9TKFdJTkRPV1MpCisgICAgICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBpbmRleEZvclJlZ2lzdGVyWzE2XSA9IHsgMCwgMywgMiwgOCwgSW52YWxp
ZEluZGV4LCBJbnZhbGlkSW5kZXgsIDEsIDYsIDQsIDcsIDUsIEludmFsaWRJbmRleCwgOSwgMTAs
IEludmFsaWRJbmRleCwgSW52YWxpZEluZGV4IH07CisjZWxzZQorICAgICAgICBzdGF0aWMgY29u
c3QgdW5zaWduZWQgaW5kZXhGb3JSZWdpc3RlclsxNl0gPSB7IDAsIDYsIDEsIDcsIEludmFsaWRJ
bmRleCwgSW52YWxpZEluZGV4LCAxMCwgNCwgMiwgMywgNSwgSW52YWxpZEluZGV4LCA4LCA5LCBJ
bnZhbGlkSW5kZXgsIEludmFsaWRJbmRleCB9OworI2VuZGlmCiAgICAgICAgIHJldHVybiBpbmRl
eEZvclJlZ2lzdGVyW3JlZ107CiAgICAgfQogCkBAIC00NzQsMTMgKzUwMywxMSBAQCBwdWJsaWM6
CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG51bWJlck9mUmVnaXN0ZXJzID0gOTsKICAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgbnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyA9IE5VTUJFUl9P
Rl9BUkdVTUVOVF9SRUdJU1RFUlM7CiAKLSAgICAvLyBOb3RlOiByZWdUMyBpcyByZXF1aXJlZCB0
byBiZSBjYWxsZWUtcHJlc2VydmVkLgotCiAgICAgLy8gVGVtcG9yYXJ5IHJlZ2lzdGVycy4KICAg
ICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1QwID0gQVJNUmVnaXN0ZXJzOjpyMDsKICAgICBzdGF0
aWMgY29uc3QgR1BSUmVnIHJlZ1QxID0gQVJNUmVnaXN0ZXJzOjpyMTsKICAgICBzdGF0aWMgY29u
c3QgR1BSUmVnIHJlZ1QyID0gQVJNUmVnaXN0ZXJzOjpyMjsKLSAgICBzdGF0aWMgY29uc3QgR1BS
UmVnIHJlZ1QzID0gQVJNUmVnaXN0ZXJzOjpyNDsKKyAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJl
Z1QzID0gQVJNUmVnaXN0ZXJzOjpyMzsKICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Q0ID0g
QVJNUmVnaXN0ZXJzOjpyODsKICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Q1ID0gQVJNUmVn
aXN0ZXJzOjpyOTsKICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Q2ID0gQVJNUmVnaXN0ZXJz
OjpyMTA7CkBAIC00ODksMjIgKzUxNiwyMCBAQCBwdWJsaWM6CiAjZWxzZSAKICAgICBzdGF0aWMg
Y29uc3QgR1BSUmVnIHJlZ1Q3ID0gQVJNUmVnaXN0ZXJzOjpyNzsKICNlbmRpZgotICAgIHN0YXRp
YyBjb25zdCBHUFJSZWcgcmVnVDggPSBBUk1SZWdpc3RlcnM6OnIzOworICAgIHN0YXRpYyBjb25z
dCBHUFJSZWcgcmVnVDggPSBBUk1SZWdpc3RlcnM6OnI0OwogICAgIC8vIFRoZXNlIHJlZ2lzdGVy
cyBtYXRjaCB0aGUgYmFzZWxpbmUgSklULgotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgY2FjaGVk
UmVzdWx0UmVnaXN0ZXIgPSByZWdUMDsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGNhY2hlZFJl
c3VsdFJlZ2lzdGVyMiA9IHJlZ1QxOwogICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgY2FsbEZyYW1l
UmVnaXN0ZXIgPSBBUk1SZWdpc3RlcnM6OmZwOwogICAgIC8vIFRoZXNlIGNvbnN0YW50cyBwcm92
aWRlIHRoZSBuYW1lcyBmb3IgdGhlIGdlbmVyYWwgcHVycG9zZSBhcmd1bWVudCAmIHJldHVybiB2
YWx1ZSByZWdpc3RlcnMuCiAgICAgc3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjAgPSBB
Uk1SZWdpc3RlcnM6OnIwOyAvLyByZWdUMAogICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgYXJndW1l
bnRHUFIxID0gQVJNUmVnaXN0ZXJzOjpyMTsgLy8gcmVnVDEKICAgICBzdGF0aWMgY29uc3QgR1BS
UmVnIGFyZ3VtZW50R1BSMiA9IEFSTVJlZ2lzdGVyczo6cjI7IC8vIHJlZ1QyCi0gICAgc3RhdGlj
IGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjMgPSBBUk1SZWdpc3RlcnM6OnIzOyAvLyByZWdUOAot
ICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgbm9uQXJnR1BSMCA9IEFSTVJlZ2lzdGVyczo6cjQ7IC8v
IHJlZ1QzCisgICAgc3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjMgPSBBUk1SZWdpc3Rl
cnM6OnIzOyAvLyByZWdUMworICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgbm9uQXJnR1BSMCA9IEFS
TVJlZ2lzdGVyczo6cjQ7IC8vIHJlZ1Q4CiAgICAgc3RhdGljIGNvbnN0IEdQUlJlZyBub25BcmdH
UFIxID0gQVJNUmVnaXN0ZXJzOjpyODsgLy8gcmVnVDQKICAgICBzdGF0aWMgY29uc3QgR1BSUmVn
IG5vbkFyZ0dQUjIgPSBBUk1SZWdpc3RlcnM6OnI5OyAvLyByZWdUNQogICAgIHN0YXRpYyBjb25z
dCBHUFJSZWcgcmV0dXJuVmFsdWVHUFIgPSBBUk1SZWdpc3RlcnM6OnIwOyAvLyByZWdUMAogICAg
IHN0YXRpYyBjb25zdCBHUFJSZWcgcmV0dXJuVmFsdWVHUFIyID0gQVJNUmVnaXN0ZXJzOjpyMTsg
Ly8gcmVnVDEKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIG5vblByZXNlcnZlZE5vblJldHVybkdQ
UiA9IEFSTVJlZ2lzdGVyczo6cjU7IC8vIHJlZ1Q3CisgICAgc3RhdGljIGNvbnN0IEdQUlJlZyBu
b25QcmVzZXJ2ZWROb25SZXR1cm5HUFIgPSBBUk1SZWdpc3RlcnM6OnI1OwogCiAgICAgc3RhdGlj
IEdQUlJlZyB0b1JlZ2lzdGVyKHVuc2lnbmVkIGluZGV4KQogICAgIHsKQEAgLTUyNiw5ICs1NTEs
OSBAQCBwdWJsaWM6CiAgICAgICAgIEFTU0VSVChzdGF0aWNfY2FzdDxpbnQ+KHJlZykgPCAxNik7
CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbmRleEZvclJlZ2lzdGVyWzE2XSA9CiAj
aWYgQ1BVKEFSTV9USFVNQjIpCi0gICAgICAgICAgICB7IDAsIDEsIDIsIDgsIDMsIDksIEludmFs
aWRJbmRleCwgSW52YWxpZEluZGV4LCA0LCA1LCA2LCA3LCBJbnZhbGlkSW5kZXgsIEludmFsaWRJ
bmRleCwgSW52YWxpZEluZGV4LCBJbnZhbGlkSW5kZXggfTsKKyAgICAgICAgICAgIHsgMCwgMSwg
MiwgMywgOCwgSW52YWxpZEluZGV4LCBJbnZhbGlkSW5kZXgsIEludmFsaWRJbmRleCwgNCwgNSwg
NiwgNywgSW52YWxpZEluZGV4LCBJbnZhbGlkSW5kZXgsIEludmFsaWRJbmRleCwgSW52YWxpZElu
ZGV4IH07CiAjZWxzZQotICAgICAgICAgICAgeyAwLCAxLCAyLCA4LCAzLCA5LCBJbnZhbGlkSW5k
ZXgsIDcsIDQsIDUsIDYsIEludmFsaWRJbmRleCwgSW52YWxpZEluZGV4LCBJbnZhbGlkSW5kZXgs
IEludmFsaWRJbmRleCwgSW52YWxpZEluZGV4IH07CisgICAgICAgICAgICB7IDAsIDEsIDIsIDMs
IDgsIEludmFsaWRJbmRleCwgSW52YWxpZEluZGV4LCA3LCA0LCA1LCA2LCBJbnZhbGlkSW5kZXgs
IEludmFsaWRJbmRleCwgSW52YWxpZEluZGV4LCBJbnZhbGlkSW5kZXgsIEludmFsaWRJbmRleCB9
OwogI2VuZGlmCiAgICAgICAgIHVuc2lnbmVkIHJlc3VsdCA9IGluZGV4Rm9yUmVnaXN0ZXJbcmVn
XTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTU2MSwxMSArNTg2LDkgQEAgcHVibGljOgog
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBudW1iZXJPZlJlZ2lzdGVycyA9IDE2OwogICAgIHN0
YXRpYyBjb25zdCB1bnNpZ25lZCBudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzID0gODsKIAotICAg
IC8vIE5vdGU6IHJlZ1QzIGlzIHJlcXVpcmVkIHRvIGJlIGNhbGxlZS1wcmVzZXJ2ZWQuCisgICAg
c3RhdGljIGNvbnN0IHVuc2lnbmVkIG51bWJlck9mQ2FsbGVlU2F2ZXMgPSAyOwogCiAgICAgLy8g
VGhlc2UgcmVnaXN0ZXJzIG1hdGNoIHRoZSBiYXNlbGluZSBKSVQuCi0gICAgc3RhdGljIGNvbnN0
IEdQUlJlZyBjYWNoZWRSZXN1bHRSZWdpc3RlciA9IEFSTTY0UmVnaXN0ZXJzOjp4MDsKLSAgICBz
dGF0aWMgY29uc3QgR1BSUmVnIHRpbWVvdXRDaGVja1JlZ2lzdGVyID0gQVJNNjRSZWdpc3RlcnM6
OngyNjsKICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGNhbGxGcmFtZVJlZ2lzdGVyID0gQVJNNjRS
ZWdpc3RlcnM6OmZwOwogICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgdGFnVHlwZU51bWJlclJlZ2lz
dGVyID0gQVJNNjRSZWdpc3RlcnM6OngyNzsKICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHRhZ01h
c2tSZWdpc3RlciA9IEFSTTY0UmVnaXN0ZXJzOjp4Mjg7CkBAIC01NzMsOSArNTk2LDkgQEAgcHVi
bGljOgogICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDAgPSBBUk02NFJlZ2lzdGVyczo6eDA7
CiAgICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUMSA9IEFSTTY0UmVnaXN0ZXJzOjp4MTsKICAg
ICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1QyID0gQVJNNjRSZWdpc3RlcnM6OngyOwotICAgIHN0
YXRpYyBjb25zdCBHUFJSZWcgcmVnVDMgPSBBUk02NFJlZ2lzdGVyczo6eDIzOwotICAgIHN0YXRp
YyBjb25zdCBHUFJSZWcgcmVnVDQgPSBBUk02NFJlZ2lzdGVyczo6eDU7Ci0gICAgc3RhdGljIGNv
bnN0IEdQUlJlZyByZWdUNSA9IEFSTTY0UmVnaXN0ZXJzOjp4MjQ7CisgICAgc3RhdGljIGNvbnN0
IEdQUlJlZyByZWdUMyA9IEFSTTY0UmVnaXN0ZXJzOjp4MzsKKyAgICBzdGF0aWMgY29uc3QgR1BS
UmVnIHJlZ1Q0ID0gQVJNNjRSZWdpc3RlcnM6Ong0OworICAgIHN0YXRpYyBjb25zdCBHUFJSZWcg
cmVnVDUgPSBBUk02NFJlZ2lzdGVyczo6eDU7CiAgICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdU
NiA9IEFSTTY0UmVnaXN0ZXJzOjp4NjsKICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Q3ID0g
QVJNNjRSZWdpc3RlcnM6Ong3OwogICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDggPSBBUk02
NFJlZ2lzdGVyczo6eDg7CkBAIC01ODYsMTggKzYwOSwxOSBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IGNvbnN0IEdQUlJlZyByZWdUMTMgPSBBUk02NFJlZ2lzdGVyczo6eDEzOwogICAgIHN0YXRpYyBj
b25zdCBHUFJSZWcgcmVnVDE0ID0gQVJNNjRSZWdpc3RlcnM6OngxNDsKICAgICBzdGF0aWMgY29u
c3QgR1BSUmVnIHJlZ1QxNSA9IEFSTTY0UmVnaXN0ZXJzOjp4MTU7CisgICAgc3RhdGljIGNvbnN0
IEdQUlJlZyByZWdDMCA9IEFSTTY0UmVnaXN0ZXJzOjp4Mjc7IC8vIHRhZ1R5cGVOdW1iZXIKKyAg
ICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ0MxID0gQVJNNjRSZWdpc3RlcnM6OngyODsgLy8gdGFn
TWFzawogICAgIC8vIFRoZXNlIGNvbnN0YW50cyBwcm92aWRlIHRoZSBuYW1lcyBmb3IgdGhlIGdl
bmVyYWwgcHVycG9zZSBhcmd1bWVudCAmIHJldHVybiB2YWx1ZSByZWdpc3RlcnMuCiAgICAgc3Rh
dGljIGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjAgPSBBUk02NFJlZ2lzdGVyczo6eDA7IC8vIHJl
Z1QwCiAgICAgc3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjEgPSBBUk02NFJlZ2lzdGVy
czo6eDE7IC8vIHJlZ1QxCiAgICAgc3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjIgPSBB
Uk02NFJlZ2lzdGVyczo6eDI7IC8vIHJlZ1QyCi0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1
bWVudEdQUjMgPSBBUk02NFJlZ2lzdGVyczo6eDM7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBh
cmd1bWVudEdQUjQgPSBBUk02NFJlZ2lzdGVyczo6eDQ7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJl
ZyBhcmd1bWVudEdQUjUgPSBBUk02NFJlZ2lzdGVyczo6eDU7IC8vIHJlZ1Q0CisgICAgc3RhdGlj
IGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjMgPSBBUk02NFJlZ2lzdGVyczo6eDM7IC8vIHJlZ1Qz
CisgICAgc3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjQgPSBBUk02NFJlZ2lzdGVyczo6
eDQ7IC8vIHJlZ1Q0CisgICAgc3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjUgPSBBUk02
NFJlZ2lzdGVyczo6eDU7IC8vIHJlZ1Q1CiAgICAgc3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1bWVu
dEdQUjYgPSBBUk02NFJlZ2lzdGVyczo6eDY7IC8vIHJlZ1Q2CiAgICAgc3RhdGljIGNvbnN0IEdQ
UlJlZyBhcmd1bWVudEdQUjcgPSBBUk02NFJlZ2lzdGVyczo6eDc7IC8vIHJlZ1Q3CiAgICAgc3Rh
dGljIGNvbnN0IEdQUlJlZyBub25BcmdHUFIwID0gQVJNNjRSZWdpc3RlcnM6Ong4OyAvLyByZWdU
OAogICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgbm9uQXJnR1BSMSA9IEFSTTY0UmVnaXN0ZXJzOjp4
OTsgLy8gcmVnVDkKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIG5vbkFyZ0dQUjIgPSBBUk02NFJl
Z2lzdGVyczo6eDEwOyAvLyByZWdUMTAKICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJldHVyblZh
bHVlR1BSID0gQVJNNjRSZWdpc3RlcnM6OngwOyAvLyByZWdUMAogICAgIHN0YXRpYyBjb25zdCBH
UFJSZWcgcmV0dXJuVmFsdWVHUFIyID0gQVJNNjRSZWdpc3RlcnM6OngxOyAvLyByZWdUMQogICAg
IHN0YXRpYyBjb25zdCBHUFJSZWcgbm9uUHJlc2VydmVkTm9uUmV0dXJuR1BSID0gQVJNNjRSZWdp
c3RlcnM6OngyOwpAQCAtNjYzLDQxICs2ODcsMzggQEAgcHVibGljOgogY2xhc3MgR1BSSW5mbyB7
CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBHUFJSZWcgUmVnaXN0ZXJUeXBlOwotICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBudW1iZXJPZlJlZ2lzdGVycyA9IDc7CisgICAgc3RhdGljIGNvbnN0IHVu
c2lnbmVkIG51bWJlck9mUmVnaXN0ZXJzID0gODsKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQg
bnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyA9IE5VTUJFUl9PRl9BUkdVTUVOVF9SRUdJU1RFUlM7
CiAKICAgICAvLyByZWdUMCBtdXN0IGJlIHYwIGZvciByZXR1cm5pbmcgYSAzMi1iaXQgdmFsdWUu
CiAgICAgLy8gcmVnVDEgbXVzdCBiZSB2MSBmb3IgcmV0dXJuaW5nIGEgcGFpciBvZiAzMi1iaXQg
dmFsdWUuCi0gICAgLy8gcmVnVDMgbXVzdCBiZSBzYXZlZCBpbiB0aGUgY2FsbGVlLCBzbyB1c2Ug
YW4gUyByZWdpc3Rlci4KIAogICAgIC8vIFRlbXBvcmFyeSByZWdpc3RlcnMuCiAgICAgc3RhdGlj
IGNvbnN0IEdQUlJlZyByZWdUMCA9IE1JUFNSZWdpc3RlcnM6OnYwOwogICAgIHN0YXRpYyBjb25z
dCBHUFJSZWcgcmVnVDEgPSBNSVBTUmVnaXN0ZXJzOjp2MTsKLSAgICBzdGF0aWMgY29uc3QgR1BS
UmVnIHJlZ1QyID0gTUlQU1JlZ2lzdGVyczo6dDQ7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBy
ZWdUMyA9IE1JUFNSZWdpc3RlcnM6OnMyOwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDQg
PSBNSVBTUmVnaXN0ZXJzOjp0NTsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Q1ID0gTUlQ
U1JlZ2lzdGVyczo6dDY7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUNiA9IE1JUFNSZWdp
c3RlcnM6OnMwOworICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDIgPSBNSVBTUmVnaXN0ZXJz
Ojp0MjsKKyAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1QzID0gTUlQU1JlZ2lzdGVyczo6dDM7
CisgICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUNCA9IE1JUFNSZWdpc3RlcnM6OnQ0OworICAg
IHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDUgPSBNSVBTUmVnaXN0ZXJzOjp0NTsKKyAgICBzdGF0
aWMgY29uc3QgR1BSUmVnIHJlZ1Q2ID0gTUlQU1JlZ2lzdGVyczo6dDA7CisgICAgc3RhdGljIGNv
bnN0IEdQUlJlZyByZWdUNyA9IE1JUFNSZWdpc3RlcnM6OnQxOwogICAgIC8vIFRoZXNlIHJlZ2lz
dGVycyBtYXRjaCB0aGUgYmFzZWxpbmUgSklULgotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgY2Fj
aGVkUmVzdWx0UmVnaXN0ZXIgPSByZWdUMDsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGNhY2hl
ZFJlc3VsdFJlZ2lzdGVyMiA9IHJlZ1QxOwogICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgY2FsbEZy
YW1lUmVnaXN0ZXIgPSBNSVBTUmVnaXN0ZXJzOjpmcDsKICAgICAvLyBUaGVzZSBjb25zdGFudHMg
cHJvdmlkZSB0aGUgbmFtZXMgZm9yIHRoZSBnZW5lcmFsIHB1cnBvc2UgYXJndW1lbnQgJiByZXR1
cm4gdmFsdWUgcmVnaXN0ZXJzLgogICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgYXJndW1lbnRHUFIw
ID0gTUlQU1JlZ2lzdGVyczo6YTA7CiAgICAgc3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQ
UjEgPSBNSVBTUmVnaXN0ZXJzOjphMTsKICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50
R1BSMiA9IE1JUFNSZWdpc3RlcnM6OmEyOwogICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgYXJndW1l
bnRHUFIzID0gTUlQU1JlZ2lzdGVyczo6YTM7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBub25B
cmdHUFIwID0gcmVnVDI7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBub25BcmdHUFIxID0gcmVn
VDM7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBub25BcmdHUFIyID0gcmVnVDQ7CisgICAgc3Rh
dGljIGNvbnN0IEdQUlJlZyBub25BcmdHUFIwID0gcmVnVDA7CisgICAgc3RhdGljIGNvbnN0IEdQ
UlJlZyBub25BcmdHUFIxID0gcmVnVDE7CiAgICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZXR1cm5W
YWx1ZUdQUiA9IHJlZ1QwOwogICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmV0dXJuVmFsdWVHUFIy
ID0gcmVnVDE7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBub25QcmVzZXJ2ZWROb25SZXR1cm5H
UFIgPSByZWdUNTsKKyAgICBzdGF0aWMgY29uc3QgR1BSUmVnIG5vblByZXNlcnZlZE5vblJldHVy
bkdQUiA9IHJlZ1QyOwogCiAgICAgc3RhdGljIEdQUlJlZyB0b1JlZ2lzdGVyKHVuc2lnbmVkIGlu
ZGV4KQogICAgIHsKICAgICAgICAgQVNTRVJUKGluZGV4IDwgbnVtYmVyT2ZSZWdpc3RlcnMpOwot
ICAgICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ2lzdGVyRm9ySW5kZXhbbnVtYmVyT2ZSZWdp
c3RlcnNdID0geyByZWdUMCwgcmVnVDEsIHJlZ1QyLCByZWdUMywgcmVnVDQsIHJlZ1Q1LCByZWdU
NiB9OworICAgICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ2lzdGVyRm9ySW5kZXhbbnVtYmVy
T2ZSZWdpc3RlcnNdID0geyByZWdUMCwgcmVnVDEsIHJlZ1QyLCByZWdUMywgcmVnVDQsIHJlZ1Q1
LCByZWdUNiwgcmVnVDcgfTsKICAgICAgICAgcmV0dXJuIHJlZ2lzdGVyRm9ySW5kZXhbaW5kZXhd
OwogICAgIH0KIApAQCAtNzA3LDggKzcyOCw4IEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKHJl
ZyA8IDI0KTsKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGluZGV4Rm9yUmVnaXN0ZXJb
MjRdID0gewogICAgICAgICAgICAgSW52YWxpZEluZGV4LCBJbnZhbGlkSW5kZXgsIDAsIDEsIElu
dmFsaWRJbmRleCwgSW52YWxpZEluZGV4LCBJbnZhbGlkSW5kZXgsIEludmFsaWRJbmRleCwKLSAg
ICAgICAgICAgIEludmFsaWRJbmRleCwgSW52YWxpZEluZGV4LCBJbnZhbGlkSW5kZXgsIEludmFs
aWRJbmRleCwgMiwgNCwgNSwgSW52YWxpZEluZGV4LAotICAgICAgICAgICAgNiwgSW52YWxpZElu
ZGV4LCAzLCBJbnZhbGlkSW5kZXgsIEludmFsaWRJbmRleCwgSW52YWxpZEluZGV4LCBJbnZhbGlk
SW5kZXgsIEludmFsaWRJbmRleAorICAgICAgICAgICAgNiwgNywgMiwgMywgNCwgNSwgSW52YWxp
ZEluZGV4LCBJbnZhbGlkSW5kZXgsCisgICAgICAgICAgICBJbnZhbGlkSW5kZXgsIEludmFsaWRJ
bmRleCwgSW52YWxpZEluZGV4LCBJbnZhbGlkSW5kZXgsIEludmFsaWRJbmRleCwgSW52YWxpZElu
ZGV4LCBJbnZhbGlkSW5kZXgsIEludmFsaWRJbmRleAogICAgICAgICB9OwogICAgICAgICB1bnNp
Z25lZCByZXN1bHQgPSBpbmRleEZvclJlZ2lzdGVyW3JlZ107CiAgICAgICAgIHJldHVybiByZXN1
bHQ7CkBAIC03NDUsMTIgKzc2NiwxMiBAQCBwdWJsaWM6CiAgICAgLy8gVGVtcG9yYXJ5IHJlZ2lz
dGVycy4KICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1QwID0gU0g0UmVnaXN0ZXJzOjpyMDsK
ICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1QxID0gU0g0UmVnaXN0ZXJzOjpyMTsKLSAgICBz
dGF0aWMgY29uc3QgR1BSUmVnIHJlZ1QyID0gU0g0UmVnaXN0ZXJzOjpyMjsKLSAgICBzdGF0aWMg
Y29uc3QgR1BSUmVnIHJlZ1QzID0gU0g0UmVnaXN0ZXJzOjpyMTA7Ci0gICAgc3RhdGljIGNvbnN0
IEdQUlJlZyByZWdUNCA9IFNINFJlZ2lzdGVyczo6cjQ7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJl
ZyByZWdUNSA9IFNINFJlZ2lzdGVyczo6cjU7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdU
NiA9IFNINFJlZ2lzdGVyczo6cjY7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUNyA9IFNI
NFJlZ2lzdGVyczo6cjc7CisgICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUMiA9IFNINFJlZ2lz
dGVyczo6cjY7CisgICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUMyA9IFNINFJlZ2lzdGVyczo6
cjc7CisgICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUNCA9IFNINFJlZ2lzdGVyczo6cjI7Cisg
ICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUNSA9IFNINFJlZ2lzdGVyczo6cjM7CisgICAgc3Rh
dGljIGNvbnN0IEdQUlJlZyByZWdUNiA9IFNINFJlZ2lzdGVyczo6cjQ7CisgICAgc3RhdGljIGNv
bnN0IEdQUlJlZyByZWdUNyA9IFNINFJlZ2lzdGVyczo6cjU7CiAgICAgc3RhdGljIGNvbnN0IEdQ
UlJlZyByZWdUOCA9IFNINFJlZ2lzdGVyczo6cjg7CiAgICAgc3RhdGljIGNvbnN0IEdQUlJlZyBy
ZWdUOSA9IFNINFJlZ2lzdGVyczo6cjk7CiAgICAgLy8gVGhlc2UgcmVnaXN0ZXJzIG1hdGNoIHRo
ZSBiYXNlbGluZSBKSVQuCkBAIC03NTgsMTMgKzc3OSwxMiBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IGNvbnN0IEdQUlJlZyBjYWNoZWRSZXN1bHRSZWdpc3RlcjIgPSByZWdUMTsKICAgICBzdGF0aWMg
Y29uc3QgR1BSUmVnIGNhbGxGcmFtZVJlZ2lzdGVyID0gU0g0UmVnaXN0ZXJzOjpmcDsKICAgICAv
LyBUaGVzZSBjb25zdGFudHMgcHJvdmlkZSB0aGUgbmFtZXMgZm9yIHRoZSBnZW5lcmFsIHB1cnBv
c2UgYXJndW1lbnQgJiByZXR1cm4gdmFsdWUgcmVnaXN0ZXJzLgotICAgIHN0YXRpYyBjb25zdCBH
UFJSZWcgYXJndW1lbnRHUFIwID0gcmVnVDQ7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1
bWVudEdQUjEgPSByZWdUNTsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSMiA9
IHJlZ1Q2OwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgYXJndW1lbnRHUFIzID0gcmVnVDc7Ci0g
ICAgc3RhdGljIGNvbnN0IEdQUlJlZyBub25BcmdHUFIwID0gcmVnVDM7Ci0gICAgc3RhdGljIGNv
bnN0IEdQUlJlZyBub25BcmdHUFIxID0gcmVnVDg7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBu
b25BcmdHUFIyID0gcmVnVDk7CisgICAgc3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjAg
PSBTSDRSZWdpc3RlcnM6OnI0OyAvLyByZWdUNgorICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgYXJn
dW1lbnRHUFIxID0gU0g0UmVnaXN0ZXJzOjpyNTsgLy8gcmVnVDcKKyAgICBzdGF0aWMgY29uc3Qg
R1BSUmVnIGFyZ3VtZW50R1BSMiA9IFNINFJlZ2lzdGVyczo6cjY7IC8vIHJlZ1QyCisgICAgc3Rh
dGljIGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjMgPSBTSDRSZWdpc3RlcnM6OnI3OyAvLyByZWdU
MworICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgbm9uQXJnR1BSMCA9IHJlZ1Q0OworICAgIHN0YXRp
YyBjb25zdCBHUFJSZWcgbm9uQXJnR1BSMSA9IHJlZ1Q1OwogICAgIHN0YXRpYyBjb25zdCBHUFJS
ZWcgcmV0dXJuVmFsdWVHUFIgPSByZWdUMDsKICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJldHVy
blZhbHVlR1BSMiA9IHJlZ1QxOwogICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgbm9uUHJlc2VydmVk
Tm9uUmV0dXJuR1BSID0gcmVnVDI7CkBAIC03ODAsNyArODAwLDcgQEAgcHVibGljOgogICAgIHsK
ICAgICAgICAgQVNTRVJUKHJlZyAhPSBJbnZhbGlkR1BSUmVnKTsKICAgICAgICAgQVNTRVJUKHJl
ZyA8IDE0KTsKLSAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGluZGV4Rm9yUmVnaXN0ZXJb
MTRdID0geyAwLCAxLCAyLCBJbnZhbGlkSW5kZXgsIDQsIDUsIDYsIDcsIDgsIDksIDMsIEludmFs
aWRJbmRleCwgSW52YWxpZEluZGV4LCBJbnZhbGlkSW5kZXggfTsKKyAgICAgICAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIGluZGV4Rm9yUmVnaXN0ZXJbMTRdID0geyAwLCAxLCA0LCA1LCA2LCA3LCAy
LCAzLCA4LCA5LCBJbnZhbGlkSW5kZXgsIEludmFsaWRJbmRleCwgSW52YWxpZEluZGV4LCBJbnZh
bGlkSW5kZXggfTsKICAgICAgICAgdW5zaWduZWQgcmVzdWx0ID0gaW5kZXhGb3JSZWdpc3Rlclty
ZWddOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
LmNwcAppbmRleCAyM2QzMWRhLi40MzA0ODkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3Bw
CkBAIC01ODUsMTkgKzU4NSwxNCBAQCBDb21waWxhdGlvblJlc3VsdCBKSVQ6OnByaXZhdGVDb21w
aWxlKEpJVENvbXBpbGF0aW9uRWZmb3J0IGVmZm9ydCkKICAgICAgICAgY2FsbE9wZXJhdGlvbldp
dGhDYWxsRnJhbWVSb2xsYmFja09uRXhjZXB0aW9uKG1fY29kZUJsb2NrLT5tX2lzQ29uc3RydWN0
b3IgPyBvcGVyYXRpb25Db25zdHJ1Y3RBcml0eUNoZWNrIDogb3BlcmF0aW9uQ2FsbEFyaXR5Q2hl
Y2spOwogICAgICAgICBpZiAobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpCiAgICAgICAg
ICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKSwg
c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwotICAgICAgICBpZiAocmV0dXJuVmFsdWVHUFIgIT0gcmVn
VDApCi0gICAgICAgICAgICBtb3ZlKHJldHVyblZhbHVlR1BSLCByZWdUMCk7Ci0gICAgICAgIGJy
YW5jaFRlc3QzMihaZXJvLCByZWdUMCkubGlua1RvKGJlZ2luTGFiZWwsIHRoaXMpOwotICAgICAg
ICBHUFJSZWcgdGh1bmtSZWc7Ci0jaWYgVVNFKEpTVkFMVUU2NCkKLSAgICAgICAgdGh1bmtSZWcg
PSBHUFJJbmZvOjpyZWdUNzsKLSNlbHNlCi0gICAgICAgIHRodW5rUmVnID0gR1BSSW5mbzo6cmVn
VDU7Ci0jZW5kaWYKKyAgICAgICAgYnJhbmNoVGVzdDMyKFplcm8sIHJldHVyblZhbHVlR1BSKS5s
aW5rVG8oYmVnaW5MYWJlbCwgdGhpcyk7CisgICAgICAgIEdQUlJlZyB0aHVua1JlZyA9IEdQUklu
Zm86OmFyZ3VtZW50R1BSMTsKICAgICAgICAgQ29kZUxvY2F0aW9uTGFiZWwqIGZhaWxUaHVua0xh
YmVscyA9CiAgICAgICAgICAgICBtX3ZtLT5hcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy0+cmV0
dXJuUENzRm9yKCptX3ZtLCBtX2NvZGVCbG9jay0+bnVtUGFyYW1ldGVycygpKTsKICAgICAgICAg
bW92ZShUcnVzdGVkSW1tUHRyKGZhaWxUaHVua0xhYmVscyksIHRodW5rUmVnKTsKLSAgICAgICAg
bG9hZFB0cihCYXNlSW5kZXgodGh1bmtSZWcsIHJlZ1QwLCB0aW1lc1B0cigpKSwgdGh1bmtSZWcp
OworICAgICAgICBsb2FkUHRyKEJhc2VJbmRleCh0aHVua1JlZywgcmV0dXJuVmFsdWVHUFIsIHRp
bWVzUHRyKCkpLCB0aHVua1JlZyk7CisgICAgICAgIGlmIChyZXR1cm5WYWx1ZUdQUiAhPSBHUFJJ
bmZvOjphcmd1bWVudEdQUjApCisgICAgICAgICAgICBtb3ZlKHJldHVyblZhbHVlR1BSLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjApOwogICAgICAgICBlbWl0TmFrZWRDYWxsKG1fdm0tPmdldENUSVN0
dWIoYXJpdHlGaXh1cEdlbmVyYXRvcikuY29kZSgpKTsKIAogI2lmICFBU1NFUlRfRElTQUJMRUQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQXJpdGhtZXRpYy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMuY3BwCmluZGV4IDE2N2U0
MTMuLjYxODllNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQXJp
dGhtZXRpYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBcml0aG1ldGlj
LmNwcApAQCAtNjExLDI1ICs2MTEsMzIgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfbW9kKEluc3RydWN0
aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgaW50IG9wMiA9IGN1cnJlbnRJbnN0cnVjdGlv
blszXS51Lm9wZXJhbmQ7CiAKICAgICAvLyBNYWtlIHN1cmUgcmVnaXN0ZXJzIGFyZSBjb3JyZWN0
IGZvciB4ODYgSURJViBpbnN0cnVjdGlvbnMuCisjaWYgQ1BVKFg4NikKKyAgICBhdXRvIGVkeCA9
IHJlZ1QxOworICAgIGF1dG8gZWN4ID0gcmVnVDI7CisjZWxzZQorICAgIGF1dG8gZWR4ID0gcmVn
VDI7CisgICAgYXV0byBlY3ggPSByZWdUMzsKKyNlbmRpZgogICAgIEFTU0VSVChyZWdUMCA9PSBY
ODZSZWdpc3RlcnM6OmVheCk7Ci0gICAgQVNTRVJUKHJlZ1QxID09IFg4NlJlZ2lzdGVyczo6ZWR4
KTsKLSAgICBBU1NFUlQocmVnVDIgPT0gWDg2UmVnaXN0ZXJzOjplY3gpOworICAgIEFTU0VSVChl
ZHggPT0gWDg2UmVnaXN0ZXJzOjplZHgpOworICAgIEFTU0VSVChlY3ggPT0gWDg2UmVnaXN0ZXJz
OjplY3gpOwogCi0gICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcnMob3AxLCByZWdUMywgb3AyLCBy
ZWdUMik7Ci0gICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SW1tZWRpYXRlSW50ZWdlcihyZWdUMyk7
Ci0gICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SW1tZWRpYXRlSW50ZWdlcihyZWdUMik7CisgICAg
ZW1pdEdldFZpcnR1YWxSZWdpc3RlcnMob3AxLCByZWdUNCwgb3AyLCBlY3gpOworICAgIGVtaXRK
dW1wU2xvd0Nhc2VJZk5vdEltbWVkaWF0ZUludGVnZXIocmVnVDQpOworICAgIGVtaXRKdW1wU2xv
d0Nhc2VJZk5vdEltbWVkaWF0ZUludGVnZXIoZWN4KTsKIAotICAgIG1vdmUocmVnVDMsIHJlZ1Qw
KTsKLSAgICBhZGRTbG93Q2FzZShicmFuY2hUZXN0MzIoWmVybywgcmVnVDIpKTsKLSAgICBKdW1w
IGRlbm9taW5hdG9yTm90TmVnMSA9IGJyYW5jaDMyKE5vdEVxdWFsLCByZWdUMiwgVHJ1c3RlZElt
bTMyKC0xKSk7CisgICAgbW92ZShyZWdUNCwgcmVnVDApOworICAgIGFkZFNsb3dDYXNlKGJyYW5j
aFRlc3QzMihaZXJvLCBlY3gpKTsKKyAgICBKdW1wIGRlbm9taW5hdG9yTm90TmVnMSA9IGJyYW5j
aDMyKE5vdEVxdWFsLCBlY3gsIFRydXN0ZWRJbW0zMigtMSkpOwogICAgIGFkZFNsb3dDYXNlKGJy
YW5jaDMyKEVxdWFsLCByZWdUMCwgVHJ1c3RlZEltbTMyKC0yMTQ3NDgzNjQ3LTEpKSk7CiAgICAg
ZGVub21pbmF0b3JOb3ROZWcxLmxpbmsodGhpcyk7CiAgICAgbV9hc3NlbWJsZXIuY2RxKCk7Ci0g
ICAgbV9hc3NlbWJsZXIuaWRpdmxfcihyZWdUMik7Ci0gICAgSnVtcCBudW1lcmF0b3JQb3NpdGl2
ZSA9IGJyYW5jaDMyKEdyZWF0ZXJUaGFuT3JFcXVhbCwgcmVnVDMsIFRydXN0ZWRJbW0zMigwKSk7
Ci0gICAgYWRkU2xvd0Nhc2UoYnJhbmNoVGVzdDMyKFplcm8sIHJlZ1QxKSk7CisgICAgbV9hc3Nl
bWJsZXIuaWRpdmxfcihlY3gpOworICAgIEp1bXAgbnVtZXJhdG9yUG9zaXRpdmUgPSBicmFuY2gz
MihHcmVhdGVyVGhhbk9yRXF1YWwsIHJlZ1Q0LCBUcnVzdGVkSW1tMzIoMCkpOworICAgIGFkZFNs
b3dDYXNlKGJyYW5jaFRlc3QzMihaZXJvLCBlZHgpKTsKICAgICBudW1lcmF0b3JQb3NpdGl2ZS5s
aW5rKHRoaXMpOwotICAgIGVtaXRGYXN0QXJpdGhSZVRhZ0ltbWVkaWF0ZShyZWdUMSwgcmVnVDAp
OworICAgIGVtaXRGYXN0QXJpdGhSZVRhZ0ltbWVkaWF0ZShlZHgsIHJlZ1QwKTsKICAgICBlbWl0
UHV0VmlydHVhbFJlZ2lzdGVyKHJlc3VsdCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVE9wY29kZXMuY3BwCmluZGV4IDA4MTNiMTUuLjMwNzQ4ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcApAQCAtOTM4LDcgKzkzOCw3IEBAIHZvaWQgSklUOjpl
bWl0U2xvd19vcF9sb29wX2hpbnQoSW5zdHJ1Y3Rpb24qLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46
Oml0ZXJhdG9yJiBpCiAgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uT3B0aW1pemUsIG1f
Ynl0ZWNvZGVPZmZzZXQpOwogICAgICAgICBKdW1wIG5vT3B0aW1pemVkRW50cnkgPSBicmFuY2hU
ZXN0UHRyKFplcm8sIHJldHVyblZhbHVlR1BSKTsKICAgICAgICAgaWYgKCFBU1NFUlRfRElTQUJM
RUQpIHsKLSAgICAgICAgICAgIEp1bXAgb2sgPSBicmFuY2hQdHIoTWFjcm9Bc3NlbWJsZXI6OkFi
b3ZlLCByZWdUMCwgVHJ1c3RlZEltbVB0cihiaXR3aXNlX2Nhc3Q8dm9pZCo+KHN0YXRpY19jYXN0
PGludHB0cl90PigxMDAwKSkpKTsKKyAgICAgICAgICAgIEp1bXAgb2sgPSBicmFuY2hQdHIoTWFj
cm9Bc3NlbWJsZXI6OkFib3ZlLCByZXR1cm5WYWx1ZUdQUiwgVHJ1c3RlZEltbVB0cihiaXR3aXNl
X2Nhc3Q8dm9pZCo+KHN0YXRpY19jYXN0PGludHB0cl90PigxMDAwKSkpKTsKICAgICAgICAgICAg
IGFib3J0V2l0aFJlYXNvbihKSVRVbnJlYXNvbmFibGVMb29wSGludEp1bXBUYXJnZXQpOwogICAg
ICAgICAgICAgb2subGluayh0aGlzKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCmluZGV4IDg3NjRjYzIuLjVhYmM3NmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKQEAgLTE0OCw3
ICsxNDgsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9tb3YoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0
cnVjdGlvbikKIHZvaWQgSklUOjplbWl0X29wX2VuZChJbnN0cnVjdGlvbiogY3VycmVudEluc3Ry
dWN0aW9uKQogewogICAgIEFTU0VSVChyZXR1cm5WYWx1ZUdQUiAhPSBjYWxsRnJhbWVSZWdpc3Rl
cik7Ci0gICAgZW1pdExvYWQoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCwgcmVnVDEs
IHJlZ1QwKTsKKyAgICBlbWl0TG9hZChjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCBy
ZWdUMSwgcmV0dXJuVmFsdWVHUFIpOwogICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAg
cmV0KCk7CiB9CkBAIC0xNjUsOSArMTY1LDkgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfbmV3X29iamVj
dChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIHNpemVfdCBhbGxvY2F0aW9u
U2l6ZSA9IEpTRmluYWxPYmplY3Q6OmFsbG9jYXRpb25TaXplKHN0cnVjdHVyZS0+aW5saW5lQ2Fw
YWNpdHkoKSk7CiAgICAgTWFya2VkQWxsb2NhdG9yKiBhbGxvY2F0b3IgPSAmbV92bS0+aGVhcC5h
bGxvY2F0b3JGb3JPYmplY3RXaXRob3V0RGVzdHJ1Y3RvcihhbGxvY2F0aW9uU2l6ZSk7CiAKLSAg
ICBSZWdpc3RlcklEIHJlc3VsdFJlZyA9IHJlZ1QwOworICAgIFJlZ2lzdGVySUQgcmVzdWx0UmVn
ID0gcmV0dXJuVmFsdWVHUFI7CiAgICAgUmVnaXN0ZXJJRCBhbGxvY2F0b3JSZWcgPSByZWdUMTsK
LSAgICBSZWdpc3RlcklEIHNjcmF0Y2hSZWcgPSByZWdUMjsKKyAgICBSZWdpc3RlcklEIHNjcmF0
Y2hSZWcgPSByZWdUMzsKIAogICAgIG1vdmUoVHJ1c3RlZEltbVB0cihhbGxvY2F0b3IpLCBhbGxv
Y2F0b3JSZWcpOwogICAgIGVtaXRBbGxvY2F0ZUpTT2JqZWN0KGFsbG9jYXRvclJlZywgVHJ1c3Rl
ZEltbVB0cihzdHJ1Y3R1cmUpLCByZXN1bHRSZWcsIHNjcmF0Y2hSZWcpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJHZW5l
cmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlclByZXNlcnZhdGlv
bldyYXBwZXJHZW5lcmF0b3IuY3BwCmluZGV4IDA3MGI1Y2IuLjE4MDcyNTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2Vu
ZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyUHJlc2Vy
dmF0aW9uV3JhcHBlckdlbmVyYXRvci5jcHAKQEAgLTY1LDYgKzY1LDEwIEBAIE1hY3JvQXNzZW1i
bGVyQ29kZVJlZiBnZW5lcmF0ZVJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlcihWTSYgdm0sIEV4
ZWN1dGFibGVCYXNlCiAgICAgLy8gV2Ugc2hvdWxkbid0IGV2ZXIgYmUgZ2VuZXJhdGluZyB3cmFw
cGVycyBmb3IgbmF0aXZlIGZ1bmN0aW9ucy4KICAgICBSZWdpc3RlclNldCB0b1NhdmUgPSByZWdp
c3RlcnNUb1ByZXNlcnZlKCk7CiAgICAgcHRyZGlmZl90IG9mZnNldCA9IHJlZ2lzdGVyUHJlc2Vy
dmF0aW9uT2Zmc2V0KCk7CisKKyAgICBBU1NFUlQoIXRvU2F2ZS5nZXQoR1BSSW5mbzo6cmVnVDEp
KTsKKyAgICBBU1NFUlQoIXRvU2F2ZS5nZXQoR1BSSW5mbzo6cmVnVDIpKTsKKyAgICBBU1NFUlQo
IXRvU2F2ZS5nZXQoR1BSSW5mbzo6cmVnVDMpKTsKICAgICAKICAgICBBc3NlbWJseUhlbHBlcnMg
aml0KCZ2bSwgMCk7CiAgICAgCkBAIC04NCwzMSArODgsMzAgQEAgTWFjcm9Bc3NlbWJsZXJDb2Rl
UmVmIGdlbmVyYXRlUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyKFZNJiB2bSwgRXhlY3V0YWJs
ZUJhc2UKICAgICAgICAgICAgIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUgLSBKU1N0YWNr
OjpDYWxsZXJGcmFtZUFuZFBDU2l6ZSksCiAgICAgICAgIEdQUkluZm86OnJlZ1QyKTsKIAotICAg
IEFTU0VSVCghdG9TYXZlLmdldChHUFJJbmZvOjpyZWdUNCkpOwotICAgIGppdC5tb3ZlKEFzc2Vt
Ymx5SGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIEdQUkluZm86OnJlZ1Q0KTsKKyAgICBq
aXQubW92ZShBc3NlbWJseUhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBHUFJJbmZvOjpy
ZWdUMyk7CiAgICAgCiAgICAgQXNzZW1ibHlIZWxwZXJzOjpMYWJlbCBsb29wID0gaml0LmxhYmVs
KCk7CiAgICAgaml0LnN1YjMyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKDEpLCBHUFJJ
bmZvOjpyZWdUMik7Ci0gICAgaml0LmxvYWQ2NChBc3NlbWJseUhlbHBlcnM6OkFkZHJlc3MoR1BS
SW5mbzo6cmVnVDQsIG9mZnNldCksIEdQUkluZm86OnJlZ1QwKTsKLSAgICBqaXQuc3RvcmU2NChH
UFJJbmZvOjpyZWdUMCwgR1BSSW5mbzo6cmVnVDQpOwotICAgIGppdC5hZGRQdHIoQXNzZW1ibHlI
ZWxwZXJzOjpUcnVzdGVkSW1tMzIoc2l6ZW9mKFJlZ2lzdGVyKSksIEdQUkluZm86OnJlZ1Q0KTsK
KyAgICBqaXQubG9hZDY0KEFzc2VtYmx5SGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMywg
b2Zmc2V0KSwgR1BSSW5mbzo6cmVnVDApOworICAgIGppdC5zdG9yZTY0KEdQUkluZm86OnJlZ1Qw
LCBHUFJJbmZvOjpyZWdUMyk7CisgICAgaml0LmFkZFB0cihBc3NlbWJseUhlbHBlcnM6OlRydXN0
ZWRJbW0zMihzaXplb2YoUmVnaXN0ZXIpKSwgR1BSSW5mbzo6cmVnVDMpOwogICAgIGppdC5icmFu
Y2hUZXN0MzIoQXNzZW1ibHlIZWxwZXJzOjpOb25aZXJvLCBHUFJJbmZvOjpyZWdUMikubGlua1Rv
KGxvb3AsICZqaXQpOwogCi0gICAgLy8gQXQgdGhpcyBwb2ludCByZWdUNCArIG9mZnNldCBwb2lu
dHMgdG8gd2hlcmUgd2Ugc2F2ZSB0aGluZ3MuCisgICAgLy8gQXQgdGhpcyBwb2ludCByZWdUMyAr
IG9mZnNldCBwb2ludHMgdG8gd2hlcmUgd2Ugc2F2ZSB0aGluZ3MuCiAgICAgcHRyZGlmZl90IGN1
cnJlbnRPZmZzZXQgPSAwOwotICAgIGppdC5zdG9yZVB0cihHUFJJbmZvOjpyZWdUMSwgQXNzZW1i
bHlIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OnJlZ1Q0LCBjdXJyZW50T2Zmc2V0KSk7CisgICAg
aml0LnN0b3JlUHRyKEdQUkluZm86OnJlZ1QxLCBBc3NlbWJseUhlbHBlcnM6OkFkZHJlc3MoR1BS
SW5mbzo6cmVnVDMsIGN1cnJlbnRPZmZzZXQpKTsKICAgICAKICAgICBmb3IgKEdQUlJlZyBncHIg
PSBBc3NlbWJseUhlbHBlcnM6OmZpcnN0UmVnaXN0ZXIoKTsgZ3ByIDw9IEFzc2VtYmx5SGVscGVy
czo6bGFzdFJlZ2lzdGVyKCk7IGdwciA9IHN0YXRpY19jYXN0PEdQUlJlZz4oZ3ByICsgMSkpIHsK
ICAgICAgICAgaWYgKCF0b1NhdmUuZ2V0KGdwcikpCiAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgY3VycmVudE9mZnNldCArPSBzaXplb2YoUmVnaXN0ZXIpOwotICAgICAgICBqaXQuc3Rv
cmU2NChncHIsIEFzc2VtYmx5SGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUNCwgY3VycmVu
dE9mZnNldCkpOworICAgICAgICBqaXQuc3RvcmU2NChncHIsIEFzc2VtYmx5SGVscGVyczo6QWRk
cmVzcyhHUFJJbmZvOjpyZWdUMywgY3VycmVudE9mZnNldCkpOwogICAgIH0KICAgICBmb3IgKEZQ
UlJlZyBmcHIgPSBBc3NlbWJseUhlbHBlcnM6OmZpcnN0RlBSZWdpc3RlcigpOyBmcHIgPD0gQXNz
ZW1ibHlIZWxwZXJzOjpsYXN0RlBSZWdpc3RlcigpOyBmcHIgPSBzdGF0aWNfY2FzdDxGUFJSZWc+
KGZwciArIDEpKSB7CiAgICAgICAgIGlmICghdG9TYXZlLmdldChmcHIpKQogICAgICAgICAgICAg
Y29udGludWU7CiAgICAgICAgIGN1cnJlbnRPZmZzZXQgKz0gc2l6ZW9mKFJlZ2lzdGVyKTsKLSAg
ICAgICAgaml0LnN0b3JlRG91YmxlKGZwciwgQXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNzKEdQUklu
Zm86OnJlZ1Q0LCBjdXJyZW50T2Zmc2V0KSk7CisgICAgICAgIGppdC5zdG9yZURvdWJsZShmcHIs
IEFzc2VtYmx5SGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMywgY3VycmVudE9mZnNldCkp
OwogICAgIH0KICAgICAKICAgICAvLyBBc3N1bWUgdGhhdCB0aGVyZSBhcmVuJ3QgYW55IHNhdmVk
IEZQIHJlZ2lzdGVycy4KQEAgLTE1MSw3ICsxNTQsOSBAQCBzdGF0aWMgdm9pZCBnZW5lcmF0ZVJl
Z2lzdGVyUmVzdG9yYXRpb24oQXNzZW1ibHlIZWxwZXJzJiBqaXQpCiAgICAgUmVnaXN0ZXJTZXQg
dG9TYXZlID0gcmVnaXN0ZXJzVG9QcmVzZXJ2ZSgpOwogICAgIHB0cmRpZmZfdCBvZmZzZXQgPSBy
ZWdpc3RlclByZXNlcnZhdGlvbk9mZnNldCgpOwogICAgIAotICAgIEFTU0VSVCghdG9TYXZlLmdl
dChHUFJJbmZvOjpyZWdUNCkpOworICAgIEFTU0VSVCghdG9TYXZlLmdldChHUFJJbmZvOjpyZWdU
MSkpOworICAgIEFTU0VSVCghdG9TYXZlLmdldChHUFJJbmZvOjpyZWdUMikpOworICAgIEFTU0VS
VCghdG9TYXZlLmdldChHUFJJbmZvOjpyZWdUMykpOwogCiAgICAgLy8gV2UgbmVlZCB0byBwbGFj
ZSB0aGUgc3RhY2sgcG9pbnRlciBiYWNrIHRvIHdoZXJlIHRoZSBjYWxsZXIgdGhvdWdodCB0aGV5
IGxlZnQgaXQuCiAgICAgLy8gQnV0IGFsc28sIGluIG9yZGVyIHRvIHJlY292ZXIgdGhlIHJlZ2lz
dGVycywgd2UgbmVlZCB0byBmaWd1cmUgb3V0IGhvdyBiaWcgdGhlCkBAIC0xNjEsOSArMTY2LDkg
QEAgc3RhdGljIHZvaWQgZ2VuZXJhdGVSZWdpc3RlclJlc3RvcmF0aW9uKEFzc2VtYmx5SGVscGVy
cyYgaml0KQogICAgICAgICBBc3NlbWJseUhlbHBlcnM6OkFkZHJlc3MoCiAgICAgICAgICAgICBB
c3NlbWJseUhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLAogICAgICAgICAgICAgKEpTU3Rh
Y2s6OkFyZ3VtZW50Q291bnQgLSBKU1N0YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6ZSkgKiBzaXpl
b2YoUmVnaXN0ZXIpICsgUGF5bG9hZE9mZnNldCksCi0gICAgICAgIEdQUkluZm86OnJlZ1Q0KTsK
KyAgICAgICAgR1BSSW5mbzo6cmVnVDMpOwogICAgIAotICAgIGppdC5tb3ZlKEdQUkluZm86OnJl
Z1Q0LCBHUFJJbmZvOjpyZWdUMik7CisgICAgaml0Lm1vdmUoR1BSSW5mbzo6cmVnVDMsIEdQUklu
Zm86OnJlZ1QyKTsKICAgICBqaXQubHNoaWZ0MzIoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1t
MzIoMyksIEdQUkluZm86OnJlZ1QyKTsKICAgICAKICAgICBqaXQuYWRkUHRyKEFzc2VtYmx5SGVs
cGVyczo6VHJ1c3RlZEltbTMyKG9mZnNldCksIEFzc2VtYmx5SGVscGVyczo6c3RhY2tQb2ludGVy
UmVnaXN0ZXIpOwpAQCAtMjAzLDcgKzIwOCw3IEBAIHN0YXRpYyB2b2lkIGdlbmVyYXRlUmVnaXN0
ZXJSZXN0b3JhdGlvbihBc3NlbWJseUhlbHBlcnMmIGppdCkKICAgICAKICAgICAvLyBUaHVua3Mg
bGlrZSB0aGlzIHJlbHkgb24gdGhlIEFyZ3VtZW50Q291bnQgYmVpbmcgaW50YWN0LiBQYXkgaXQg
Zm9yd2FyZC4KICAgICBqaXQuc3RvcmUzMigKLSAgICAgICAgR1BSSW5mbzo6cmVnVDQsCisgICAg
ICAgIEdQUkluZm86OnJlZ1QzLAogICAgICAgICBBc3NlbWJseUhlbHBlcnM6OkFkZHJlc3MoCiAg
ICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLAogICAgICAg
ICAgICAgKEpTU3RhY2s6OkFyZ3VtZW50Q291bnQgLSBKU1N0YWNrOjpDYWxsZXJGcmFtZUFuZFBD
U2l6ZSkgKiBzaXplb2YoUmVnaXN0ZXIpICsgUGF5bG9hZE9mZnNldCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwCmluZGV4IDE3NTQ2NzYuLjZiNzNl
MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3Jz
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5jcHAK
QEAgLTMwNiw4ICszMDYsNiBAQCBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZUZv
ckdlbmVyYXRvcihWTSogdm0sIENvZGVTcGVjaWFsaXphdGlvbktpbmQgawogI2VuZGlmCiAKICNl
bGlmIENQVShBUk02NCkKLSAgICBDT01QSUxFX0FTU0VSVChBUk02NFJlZ2lzdGVyczo6eDMgIT0g
SlNJbnRlcmZhY2VKSVQ6OnJlZ1QxLCBwcmV2X2NhbGxmcmFtZV9ub3RfdHJhbXBsZWRfYnlfVDEp
OwotICAgIENPTVBJTEVfQVNTRVJUKEFSTTY0UmVnaXN0ZXJzOjp4MyAhPSBKU0ludGVyZmFjZUpJ
VDo6cmVnVDMsIHByZXZfY2FsbGZyYW1lX25vdF90cmFtcGxlZF9ieV9UMyk7CiAgICAgQ09NUElM
RV9BU1NFUlQoQVJNNjRSZWdpc3RlcnM6OngwICE9IEpTSW50ZXJmYWNlSklUOjpyZWdUMywgVDNf
bm90X3RyYW1wbGVkX2J5X2FyZ18wKTsKICAgICBDT01QSUxFX0FTU0VSVChBUk02NFJlZ2lzdGVy
czo6eDEgIT0gSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzLCBUM19ub3RfdHJhbXBsZWRfYnlfYXJnXzEp
OwogICAgIENPTVBJTEVfQVNTRVJUKEFSTTY0UmVnaXN0ZXJzOjp4MiAhPSBKU0ludGVyZmFjZUpJ
VDo6cmVnVDMsIFQzX25vdF90cmFtcGxlZF9ieV9hcmdfMik7CkBAIC00MDYsNDYgKzQwNCw0NiBA
QCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgYXJpdHlGaXh1cEdlbmVyYXRvcihWTSogdm0pCiB7CiAg
ICAgSlNJbnRlcmZhY2VKSVQgaml0KHZtKTsKIAotICAgIC8vIFdlIGVudGVyIHdpdGggZml4dXAg
Y291bnQsIGluIGFsaWduZWQgc3RhY2sgdW5pdHMsIGluIHJlZ1QwIGFuZCB0aGUgcmV0dXJuIHRo
dW5rIGluCi0gICAgLy8gcmVnVDUgb24gMzItYml0IGFuZCByZWdUNyBvbiA2NC1iaXQuCisgICAg
Ly8gV2UgZW50ZXIgd2l0aCBmaXh1cCBjb3VudCwgaW4gYWxpZ25lZCBzdGFjayB1bml0cywgaW4g
YXJndW1lbnRHUFIwIGFuZCB0aGUgcmV0dXJuIHRodW5rIGluIGFyZ3VtZW50R1BSMQorICAgIC8v
IFdlIGhhdmUgdGhlIGd1YXJhbnRlZSB0aGF0IGEwLCBhMSwgYTIsIHQzLCB0NCBhbmQgdDUgYXJl
IGFsbCBkaXN0aW5jdCA6LSkKICNpZiBVU0UoSlNWQUxVRTY0KQogIyAgaWYgQ1BVKFg4Nl82NCkK
ICAgICBqaXQucG9wKEpTSW50ZXJmYWNlSklUOjpyZWdUNCk7CiAjICBlbmRpZgotICAgIGppdC5s
c2hpZnQzMihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKGxvZ1N0YWNrQWxpZ25tZW50UmVn
aXN0ZXJzKCkpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDApOwotICAgIGppdC5uZWc2NChKU0ludGVy
ZmFjZUpJVDo6cmVnVDApOwotICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVS
ZWdpc3RlciwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1Q2KTsKLSAgICBqaXQubG9hZDMyKEpTSW50ZXJm
YWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3RlciwgSlNTdGFj
azo6QXJndW1lbnRDb3VudCAqIHNpemVvZihSZWdpc3RlcikpLCBKU0ludGVyZmFjZUpJVDo6cmVn
VDIpOwotICAgIGppdC5hZGQzMihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKEpTU3RhY2s6
OkNhbGxGcmFtZUhlYWRlclNpemUpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDIpOworICAgIGppdC5s
c2hpZnQzMihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKGxvZ1N0YWNrQWxpZ25tZW50UmVn
aXN0ZXJzKCkpLCBKU0ludGVyZmFjZUpJVDo6YXJndW1lbnRHUFIwKTsKKyAgICBqaXQubmVnNjQo
SlNJbnRlcmZhY2VKSVQ6OmFyZ3VtZW50R1BSMCk7CisgICAgaml0Lm1vdmUoSlNJbnRlcmZhY2VK
SVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCBKU0ludGVyZmFjZUpJVDo6cmVnVDMpOworICAgIGppdC5s
b2FkMzIoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJl
Z2lzdGVyLCBKU1N0YWNrOjpBcmd1bWVudENvdW50ICogc2l6ZW9mKFJlZ2lzdGVyKSksIEpTSW50
ZXJmYWNlSklUOjphcmd1bWVudEdQUjIpOworICAgIGppdC5hZGQzMihKU0ludGVyZmFjZUpJVDo6
VHJ1c3RlZEltbTMyKEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUpLCBKU0ludGVyZmFjZUpJ
VDo6YXJndW1lbnRHUFIyKTsKIAotICAgIC8vIE1vdmUgY3VycmVudCBmcmFtZSBkb3duIHJlZ1Qw
IG51bWJlciBvZiBzbG90cworICAgIC8vIE1vdmUgY3VycmVudCBmcmFtZSBkb3duIGFyZ3VtZW50
R1BSMCBudW1iZXIgb2Ygc2xvdHMKICAgICBKU0ludGVyZmFjZUpJVDo6TGFiZWwgY29weUxvb3Ao
aml0LmxhYmVsKCkpOwotICAgIGppdC5sb2FkNjQoSlNJbnRlcmZhY2VKSVQ6OnJlZ1Q2LCBKU0lu
dGVyZmFjZUpJVDo6cmVnVDEpOwotICAgIGppdC5zdG9yZTY0KEpTSW50ZXJmYWNlSklUOjpyZWdU
MSwgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChKU0ludGVyZmFjZUpJVDo6cmVnVDYsIEpTSW50
ZXJmYWNlSklUOjpyZWdUMCwgSlNJbnRlcmZhY2VKSVQ6OlRpbWVzRWlnaHQpKTsKLSAgICBqaXQu
YWRkUHRyKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoOCksIEpTSW50ZXJmYWNlSklUOjpy
ZWdUNik7Ci0gICAgaml0LmJyYW5jaFN1YjMyKE1hY3JvQXNzZW1ibGVyOjpOb25aZXJvLCBKU0lu
dGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDEpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDIpLmxpbmtU
byhjb3B5TG9vcCwgJmppdCk7Ci0KLSAgICAvLyBGaWxsIGluIHJlZ1QwIC0gMSBtaXNzaW5nIGFy
ZyBzbG90cyB3aXRoIHVuZGVmaW5lZAotICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpyZWdU
MCwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKTsKLSAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6
VHJ1c3RlZEltbTY0KFZhbHVlVW5kZWZpbmVkKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxKTsKLSAg
ICBqaXQuYWRkMzIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigxKSwgSlNJbnRlcmZhY2VK
SVQ6OnJlZ1QyKTsKKyAgICBqaXQubG9hZDY0KEpTSW50ZXJmYWNlSklUOjpyZWdUMywgSlNJbnRl
cmZhY2VKSVQ6OnJlZ1Q1KTsKKyAgICBqaXQuc3RvcmU2NChKU0ludGVyZmFjZUpJVDo6cmVnVDUs
IE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzLCBKU0ludGVy
ZmFjZUpJVDo6YXJndW1lbnRHUFIwLCBKU0ludGVyZmFjZUpJVDo6VGltZXNFaWdodCkpOworICAg
IGppdC5hZGRQdHIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMig4KSwgSlNJbnRlcmZhY2VK
SVQ6OnJlZ1QzKTsKKyAgICBqaXQuYnJhbmNoU3ViMzIoTWFjcm9Bc3NlbWJsZXI6Ok5vblplcm8s
IEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoMSksIEpTSW50ZXJmYWNlSklUOjphcmd1bWVu
dEdQUjIpLmxpbmtUbyhjb3B5TG9vcCwgJmppdCk7CisKKyAgICAvLyBGaWxsIGluIGFyZ3VtZW50
R1BSMCAtIDEgbWlzc2luZyBhcmcgc2xvdHMgd2l0aCB1bmRlZmluZWQKKyAgICBqaXQubW92ZShK
U0ludGVyZmFjZUpJVDo6YXJndW1lbnRHUFIwLCBKU0ludGVyZmFjZUpJVDo6YXJndW1lbnRHUFIy
KTsKKyAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTY0KFZhbHVlVW5kZWZp
bmVkKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1Q1KTsKKyAgICBqaXQuYWRkMzIoSlNJbnRlcmZhY2VK
SVQ6OlRydXN0ZWRJbW0zMigxKSwgSlNJbnRlcmZhY2VKSVQ6OmFyZ3VtZW50R1BSMik7CiAgICAg
SlNJbnRlcmZhY2VKSVQ6OkxhYmVsIGZpbGxVbmRlZmluZWRMb29wKGppdC5sYWJlbCgpKTsKLSAg
ICBqaXQuc3RvcmU2NChKU0ludGVyZmFjZUpJVDo6cmVnVDEsIE1hY3JvQXNzZW1ibGVyOjpCYXNl
SW5kZXgoSlNJbnRlcmZhY2VKSVQ6OnJlZ1Q2LCBKU0ludGVyZmFjZUpJVDo6cmVnVDAsIEpTSW50
ZXJmYWNlSklUOjpUaW1lc0VpZ2h0KSk7Ci0gICAgaml0LmFkZFB0cihKU0ludGVyZmFjZUpJVDo6
VHJ1c3RlZEltbTMyKDgpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDYpOwotICAgIGppdC5icmFuY2hB
ZGQzMihNYWNyb0Fzc2VtYmxlcjo6Tm9uWmVybywgSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0z
MigxKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKS5saW5rVG8oZmlsbFVuZGVmaW5lZExvb3AsICZq
aXQpOworICAgIGppdC5zdG9yZTY0KEpTSW50ZXJmYWNlSklUOjpyZWdUNSwgTWFjcm9Bc3NlbWJs
ZXI6OkJhc2VJbmRleChKU0ludGVyZmFjZUpJVDo6cmVnVDMsIEpTSW50ZXJmYWNlSklUOjphcmd1
bWVudEdQUjAsIEpTSW50ZXJmYWNlSklUOjpUaW1lc0VpZ2h0KSk7CisgICAgaml0LmFkZFB0cihK
U0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDgpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDMpOwor
ICAgIGppdC5icmFuY2hBZGQzMihNYWNyb0Fzc2VtYmxlcjo6Tm9uWmVybywgSlNJbnRlcmZhY2VK
SVQ6OlRydXN0ZWRJbW0zMigxKSwgSlNJbnRlcmZhY2VKSVQ6OmFyZ3VtZW50R1BSMikubGlua1Rv
KGZpbGxVbmRlZmluZWRMb29wLCAmaml0KTsKICAgICAKICAgICAvLyBBZGp1c3QgY2FsbCBmcmFt
ZSByZWdpc3RlciBhbmQgc3RhY2sgcG9pbnRlciB0byBhY2NvdW50IGZvciBtaXNzaW5nIGFyZ3MK
LSAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6cmVnVDAsIEpTSW50ZXJmYWNlSklUOjpyZWdU
MSk7Ci0gICAgaml0LmxzaGlmdDY0KEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoMyksIEpT
SW50ZXJmYWNlSklUOjpyZWdUMSk7Ci0gICAgaml0LmFkZFB0cihKU0ludGVyZmFjZUpJVDo6cmVn
VDEsIEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3Rlcik7Ci0gICAgaml0LmFkZFB0cihK
U0ludGVyZmFjZUpJVDo6cmVnVDEsIEpTSW50ZXJmYWNlSklUOjpzdGFja1BvaW50ZXJSZWdpc3Rl
cik7CisgICAgaml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OmFyZ3VtZW50R1BSMCwgSlNJbnRlcmZh
Y2VKSVQ6OnJlZ1Q1KTsKKyAgICBqaXQubHNoaWZ0NjQoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJ
bW0zMigzKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1Q1KTsKKyAgICBqaXQuYWRkUHRyKEpTSW50ZXJm
YWNlSklUOjpyZWdUNSwgSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyKTsKKyAgICBq
aXQuYWRkUHRyKEpTSW50ZXJmYWNlSklUOjpyZWdUNSwgSlNJbnRlcmZhY2VKSVQ6OnN0YWNrUG9p
bnRlclJlZ2lzdGVyKTsKIAogICAgIC8vIFNhdmUgdGhlIG9yaWdpbmFsIHJldHVybiBQQy4KLSAg
ICBqaXQubG9hZFB0cihKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6Y2Fs
bEZyYW1lUmVnaXN0ZXIsIENhbGxGcmFtZTo6cmV0dXJuUENPZmZzZXQoKSksIEdQUkluZm86OnJl
Z1QxKTsKLSAgICBqaXQuc3RvcmVQdHIoR1BSSW5mbzo6cmVnVDEsIE1hY3JvQXNzZW1ibGVyOjpC
YXNlSW5kZXgoSlNJbnRlcmZhY2VKSVQ6OnJlZ1Q2LCBKU0ludGVyZmFjZUpJVDo6cmVnVDAsIEpT
SW50ZXJmYWNlSklUOjpUaW1lc0VpZ2h0KSk7CisgICAgaml0LmxvYWRQdHIoSlNJbnRlcmZhY2VK
SVQ6OkFkZHJlc3MoSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJhbWU6
OnJldHVyblBDT2Zmc2V0KCkpLCBHUFJJbmZvOjpyZWdUNSk7CisgICAgaml0LnN0b3JlUHRyKEdQ
UkluZm86OnJlZ1Q1LCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KEpTSW50ZXJmYWNlSklUOjpy
ZWdUMywgSlNJbnRlcmZhY2VKSVQ6OmFyZ3VtZW50R1BSMCwgSlNJbnRlcmZhY2VKSVQ6OlRpbWVz
RWlnaHQpKTsKICAgICAKICAgICAvLyBJbnN0YWxsIHRoZSBuZXcgcmV0dXJuIFBDLgotICAgIGpp
dC5zdG9yZVB0cihHUFJJbmZvOjpyZWdUNywgSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRl
cmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJhbWU6OnJldHVyblBDT2Zmc2V0KCkp
KTsKKyAgICBqaXQuc3RvcmVQdHIoR1BSSW5mbzo6YXJndW1lbnRHUFIxLCBKU0ludGVyZmFjZUpJ
VDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxGcmFtZTo6
cmV0dXJuUENPZmZzZXQoKSkpOwogCiAjICBpZiBDUFUoWDg2XzY0KQogICAgIGppdC5wdXNoKEpT
SW50ZXJmYWNlSklUOjpyZWdUNCk7CkBAIC00NTUsNDUgKzQ1Myw0NSBAQCBNYWNyb0Fzc2VtYmxl
ckNvZGVSZWYgYXJpdHlGaXh1cEdlbmVyYXRvcihWTSogdm0pCiAjICBpZiBDUFUoWDg2KQogICAg
IGppdC5wb3AoSlNJbnRlcmZhY2VKSVQ6OnJlZ1Q0KTsKICMgIGVuZGlmCi0gICAgaml0LmxzaGlm
dDMyKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIobG9nU3RhY2tBbGlnbm1lbnRSZWdpc3Rl
cnMoKSksIEpTSW50ZXJmYWNlSklUOjpyZWdUMCk7Ci0gICAgaml0Lm5lZzMyKEpTSW50ZXJmYWNl
SklUOjpyZWdUMCk7CisgICAgaml0LmxzaGlmdDMyKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1t
MzIobG9nU3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSksIEpTSW50ZXJmYWNlSklUOjphcmd1bWVu
dEdQUjApOworICAgIGppdC5uZWczMihKU0ludGVyZmFjZUpJVDo6YXJndW1lbnRHUFIwKTsKICAg
ICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEpTSW50ZXJmYWNl
SklUOjpyZWdUMyk7Ci0gICAgaml0LmxvYWQzMihKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0lu
dGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEpTU3RhY2s6OkFyZ3VtZW50Q291bnQgKiBz
aXplb2YoUmVnaXN0ZXIpKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKTsKLSAgICBqaXQuYWRkMzIo
SlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMihKU1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXpl
KSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKTsKKyAgICBqaXQubG9hZDMyKEpTSW50ZXJmYWNlSklU
OjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3RlciwgSlNTdGFjazo6QXJn
dW1lbnRDb3VudCAqIHNpemVvZihSZWdpc3RlcikpLCBKU0ludGVyZmFjZUpJVDo6YXJndW1lbnRH
UFIyKTsKKyAgICBqaXQuYWRkMzIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMihKU1N0YWNr
OjpDYWxsRnJhbWVIZWFkZXJTaXplKSwgSlNJbnRlcmZhY2VKSVQ6OmFyZ3VtZW50R1BSMik7CiAK
LSAgICAvLyBNb3ZlIGN1cnJlbnQgZnJhbWUgZG93biByZWdUMCBudW1iZXIgb2Ygc2xvdHMKKyAg
ICAvLyBNb3ZlIGN1cnJlbnQgZnJhbWUgZG93biBhcmd1bWVudEdQUjAgbnVtYmVyIG9mIHNsb3Rz
CiAgICAgSlNJbnRlcmZhY2VKSVQ6OkxhYmVsIGNvcHlMb29wKGppdC5sYWJlbCgpKTsKLSAgICBq
aXQubG9hZDMyKEpTSW50ZXJmYWNlSklUOjpyZWdUMywgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxKTsK
LSAgICBqaXQuc3RvcmUzMihKU0ludGVyZmFjZUpJVDo6cmVnVDEsIE1hY3JvQXNzZW1ibGVyOjpC
YXNlSW5kZXgoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzLCBKU0ludGVyZmFjZUpJVDo6cmVnVDAsIEpT
SW50ZXJmYWNlSklUOjpUaW1lc0VpZ2h0KSk7Ci0gICAgaml0LmxvYWQzMihNYWNyb0Fzc2VtYmxl
cjo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6cmVnVDMsIDQpLCBKU0ludGVyZmFjZUpJVDo6cmVn
VDEpOwotICAgIGppdC5zdG9yZTMyKEpTSW50ZXJmYWNlSklUOjpyZWdUMSwgTWFjcm9Bc3NlbWJs
ZXI6OkJhc2VJbmRleChKU0ludGVyZmFjZUpJVDo6cmVnVDMsIEpTSW50ZXJmYWNlSklUOjpyZWdU
MCwgSlNJbnRlcmZhY2VKSVQ6OlRpbWVzRWlnaHQsIDQpKTsKKyAgICBqaXQubG9hZDMyKEpTSW50
ZXJmYWNlSklUOjpyZWdUMywgSlNJbnRlcmZhY2VKSVQ6OnJlZ1Q1KTsKKyAgICBqaXQuc3RvcmUz
MihKU0ludGVyZmFjZUpJVDo6cmVnVDUsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoSlNJbnRl
cmZhY2VKSVQ6OnJlZ1QzLCBKU0ludGVyZmFjZUpJVDo6YXJndW1lbnRHUFIwLCBKU0ludGVyZmFj
ZUpJVDo6VGltZXNFaWdodCkpOworICAgIGppdC5sb2FkMzIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJl
c3MoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzLCA0KSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1Q1KTsKKyAg
ICBqaXQuc3RvcmUzMihKU0ludGVyZmFjZUpJVDo6cmVnVDUsIE1hY3JvQXNzZW1ibGVyOjpCYXNl
SW5kZXgoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzLCBKU0ludGVyZmFjZUpJVDo6YXJndW1lbnRHUFIw
LCBKU0ludGVyZmFjZUpJVDo6VGltZXNFaWdodCwgNCkpOwogICAgIGppdC5hZGRQdHIoSlNJbnRl
cmZhY2VKSVQ6OlRydXN0ZWRJbW0zMig4KSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzKTsKLSAgICBq
aXQuYnJhbmNoU3ViMzIoTWFjcm9Bc3NlbWJsZXI6Ok5vblplcm8sIEpTSW50ZXJmYWNlSklUOjpU
cnVzdGVkSW1tMzIoMSksIEpTSW50ZXJmYWNlSklUOjpyZWdUMikubGlua1RvKGNvcHlMb29wLCAm
aml0KTsKKyAgICBqaXQuYnJhbmNoU3ViMzIoTWFjcm9Bc3NlbWJsZXI6Ok5vblplcm8sIEpTSW50
ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoMSksIEpTSW50ZXJmYWNlSklUOjphcmd1bWVudEdQUjIp
LmxpbmtUbyhjb3B5TG9vcCwgJmppdCk7CiAKLSAgICAvLyBGaWxsIGluIHJlZ1QwIC0gMSBtaXNz
aW5nIGFyZyBzbG90cyB3aXRoIHVuZGVmaW5lZAotICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklU
OjpyZWdUMCwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKTsKLSAgICBqaXQuYWRkMzIoSlNJbnRlcmZh
Y2VKSVQ6OlRydXN0ZWRJbW0zMigxKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKTsKKyAgICAvLyBG
aWxsIGluIGFyZ3VtZW50R1BSMCAtIDEgbWlzc2luZyBhcmcgc2xvdHMgd2l0aCB1bmRlZmluZWQK
KyAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6YXJndW1lbnRHUFIwLCBKU0ludGVyZmFjZUpJ
VDo6YXJndW1lbnRHUFIyKTsKKyAgICBqaXQuYWRkMzIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJ
bW0zMigxKSwgSlNJbnRlcmZhY2VKSVQ6OmFyZ3VtZW50R1BSMik7CiAgICAgSlNJbnRlcmZhY2VK
SVQ6OkxhYmVsIGZpbGxVbmRlZmluZWRMb29wKGppdC5sYWJlbCgpKTsKLSAgICBqaXQubW92ZShK
U0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDApLCBKU0ludGVyZmFjZUpJVDo6cmVnVDEpOwot
ICAgIGppdC5zdG9yZTMyKEpTSW50ZXJmYWNlSklUOjpyZWdUMSwgTWFjcm9Bc3NlbWJsZXI6OkJh
c2VJbmRleChKU0ludGVyZmFjZUpJVDo6cmVnVDMsIEpTSW50ZXJmYWNlSklUOjpyZWdUMCwgSlNJ
bnRlcmZhY2VKSVQ6OlRpbWVzRWlnaHQpKTsKLSAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6
VHJ1c3RlZEltbTMyKEpTVmFsdWU6OlVuZGVmaW5lZFRhZyksIEpTSW50ZXJmYWNlSklUOjpyZWdU
MSk7Ci0gICAgaml0LnN0b3JlMzIoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxLCBNYWNyb0Fzc2VtYmxl
cjo6QmFzZUluZGV4KEpTSW50ZXJmYWNlSklUOjpyZWdUMywgSlNJbnRlcmZhY2VKSVQ6OnJlZ1Qw
LCBKU0ludGVyZmFjZUpJVDo6VGltZXNFaWdodCwgNCkpOworICAgIGppdC5tb3ZlKEpTSW50ZXJm
YWNlSklUOjpUcnVzdGVkSW1tMzIoMCksIEpTSW50ZXJmYWNlSklUOjpyZWdUNSk7CisgICAgaml0
LnN0b3JlMzIoSlNJbnRlcmZhY2VKSVQ6OnJlZ1Q1LCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4
KEpTSW50ZXJmYWNlSklUOjpyZWdUMywgSlNJbnRlcmZhY2VKSVQ6OmFyZ3VtZW50R1BSMCwgSlNJ
bnRlcmZhY2VKSVQ6OlRpbWVzRWlnaHQpKTsKKyAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6
VHJ1c3RlZEltbTMyKEpTVmFsdWU6OlVuZGVmaW5lZFRhZyksIEpTSW50ZXJmYWNlSklUOjpyZWdU
NSk7CisgICAgaml0LnN0b3JlMzIoSlNJbnRlcmZhY2VKSVQ6OnJlZ1Q1LCBNYWNyb0Fzc2VtYmxl
cjo6QmFzZUluZGV4KEpTSW50ZXJmYWNlSklUOjpyZWdUMywgSlNJbnRlcmZhY2VKSVQ6OmFyZ3Vt
ZW50R1BSMCwgSlNJbnRlcmZhY2VKSVQ6OlRpbWVzRWlnaHQsIDQpKTsKIAogICAgIGppdC5hZGRQ
dHIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMig4KSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1Qz
KTsKLSAgICBqaXQuYnJhbmNoQWRkMzIoTWFjcm9Bc3NlbWJsZXI6Ok5vblplcm8sIEpTSW50ZXJm
YWNlSklUOjpUcnVzdGVkSW1tMzIoMSksIEpTSW50ZXJmYWNlSklUOjpyZWdUMikubGlua1RvKGZp
bGxVbmRlZmluZWRMb29wLCAmaml0KTsKKyAgICBqaXQuYnJhbmNoQWRkMzIoTWFjcm9Bc3NlbWJs
ZXI6Ok5vblplcm8sIEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoMSksIEpTSW50ZXJmYWNl
SklUOjphcmd1bWVudEdQUjIpLmxpbmtUbyhmaWxsVW5kZWZpbmVkTG9vcCwgJmppdCk7CiAKICAg
ICAvLyBBZGp1c3QgY2FsbCBmcmFtZSByZWdpc3RlciBhbmQgc3RhY2sgcG9pbnRlciB0byBhY2Nv
dW50IGZvciBtaXNzaW5nIGFyZ3MKLSAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6cmVnVDAs
IEpTSW50ZXJmYWNlSklUOjpyZWdUMSk7Ci0gICAgaml0LmxzaGlmdDMyKEpTSW50ZXJmYWNlSklU
OjpUcnVzdGVkSW1tMzIoMyksIEpTSW50ZXJmYWNlSklUOjpyZWdUMSk7Ci0gICAgaml0LmFkZFB0
cihKU0ludGVyZmFjZUpJVDo6cmVnVDEsIEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3Rl
cik7Ci0gICAgaml0LmFkZFB0cihKU0ludGVyZmFjZUpJVDo6cmVnVDEsIEpTSW50ZXJmYWNlSklU
OjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgaml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OmFy
Z3VtZW50R1BSMCwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1Q1KTsKKyAgICBqaXQubHNoaWZ0MzIoSlNJ
bnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigzKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1Q1KTsKKyAg
ICBqaXQuYWRkUHRyKEpTSW50ZXJmYWNlSklUOjpyZWdUNSwgSlNJbnRlcmZhY2VKSVQ6OmNhbGxG
cmFtZVJlZ2lzdGVyKTsKKyAgICBqaXQuYWRkUHRyKEpTSW50ZXJmYWNlSklUOjpyZWdUNSwgSlNJ
bnRlcmZhY2VKSVQ6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKIAogICAgIC8vIFNhdmUgdGhlIG9y
aWdpbmFsIHJldHVybiBQQy4KLSAgICBqaXQubG9hZFB0cihKU0ludGVyZmFjZUpJVDo6QWRkcmVz
cyhKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxGcmFtZTo6cmV0dXJuUENP
ZmZzZXQoKSksIEdQUkluZm86OnJlZ1QxKTsKLSAgICBqaXQuc3RvcmVQdHIoR1BSSW5mbzo6cmVn
VDEsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzLCBKU0lu
dGVyZmFjZUpJVDo6cmVnVDAsIEpTSW50ZXJmYWNlSklUOjpUaW1lc0VpZ2h0KSk7CisgICAgaml0
LmxvYWRQdHIoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFt
ZVJlZ2lzdGVyLCBDYWxsRnJhbWU6OnJldHVyblBDT2Zmc2V0KCkpLCBHUFJJbmZvOjpyZWdUNSk7
CisgICAgaml0LnN0b3JlUHRyKEdQUkluZm86OnJlZ1Q1LCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUlu
ZGV4KEpTSW50ZXJmYWNlSklUOjpyZWdUMywgSlNJbnRlcmZhY2VKSVQ6OmFyZ3VtZW50R1BSMCwg
SlNJbnRlcmZhY2VKSVQ6OlRpbWVzRWlnaHQpKTsKICAgICAKICAgICAvLyBJbnN0YWxsIHRoZSBu
ZXcgcmV0dXJuIFBDLgotICAgIGppdC5zdG9yZVB0cihHUFJJbmZvOjpyZWdUNSwgSlNJbnRlcmZh
Y2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJh
bWU6OnJldHVyblBDT2Zmc2V0KCkpKTsKKyAgICBqaXQuc3RvcmVQdHIoR1BSSW5mbzo6YXJndW1l
bnRHUFIxLCBKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1l
UmVnaXN0ZXIsIENhbGxGcmFtZTo6cmV0dXJuUENPZmZzZXQoKSkpOwogICAgIAogIyAgaWYgQ1BV
KFg4NikKICAgICBqaXQucHVzaChKU0ludGVyZmFjZUpJVDo6cmVnVDQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCmluZGV4IGQ5
Y2QwMWIuLjRkOGY0MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
b3dMZXZlbEludGVycHJldGVyLmFzbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TG93TGV2ZWxJbnRlcnByZXRlci5hc20KQEAgLTIxLDYgKzIxLDEyOSBAQAogIyBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCiAjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAorIyBDcmFzaCBjb3Vyc2Ug
b24gdGhlIGxhbmd1YWdlIHRoYXQgdGhpcyBpcyB3cml0dGVuIGluICh3aGljaCBJIGp1c3QgY2Fs
bAorIyAiYXNzZW1ibHkiIGV2ZW4gdGhvdWdoIGl0J3MgbW9yZSB0aGFuIHRoYXQpOgorIworIyAt
IE1vc3RseSBnYXMtc3R5bGUgb3BlcmFuZCBvcmRlcmluZy4gVGhlIGxhc3Qgb3BlcmFuZCB0ZW5k
cyB0byBiZSB0aGUKKyMgICBkZXN0aW5hdGlvbi4gU28gImEgOj0gYiIgaXMgd3JpdHRlbiBhcyAi
bW92IGIsIGEiLiBCdXQgdW5saWtlIGdhcywKKyMgICBjb21wYXJpc29ucyBhcmUgaW4tb3JkZXIs
IHNvICJpZiAoYSA8IGIpIiBpcyB3cml0dGVuIGFzCisjICAgImJpbHQgYSwgYiwgLi4uIi4KKyMK
KyMgLSAiYiIgPSBieXRlLCAiaCIgPSAxNi1iaXQgd29yZCwgImkiID0gMzItYml0IHdvcmQsICJw
IiA9IHBvaW50ZXIuCisjICAgQ3VycmVudGx5IHRoaXMgaXMganVzdCAzMi1iaXQgc28gImkiIGFu
ZCAicCIgYXJlIGludGVyY2hhbmdlYWJsZQorIyAgIGV4Y2VwdCB3aGVuIGFuIG9wIHN1cHBvcnRz
IG9uZSBidXQgbm90IHRoZSBvdGhlci4KKyMKKyMgLSBJbiBnZW5lcmFsLCB2YWxpZCBvcGVyYW5k
cyBmb3IgbWFjcm8gaW52b2NhdGlvbnMgYW5kIGluc3RydWN0aW9ucyBhcmUKKyMgICByZWdpc3Rl
cnMgKGVnICJ0MCIpLCBhZGRyZXNzZXMgKGVnICI0W3QwXSIpLCBiYXNlLWluZGV4IGFkZHJlc3Nl
cworIyAgIChlZyAiN1t0MCwgdDEsIDJdIiksIGFic29sdXRlIGFkZHJlc3NlcyAoZWcgIjB4YTAw
MDAwMDBbXSIpLCBvciBsYWJlbHMKKyMgICAoZWcgIl9mb28iIG9yICIuZm9vIikuIE1hY3JvIGlu
dm9jYXRpb25zIGNhbiBhbHNvIHRha2UgYW5vbnltb3VzCisjICAgbWFjcm9zIGFzIG9wZXJhbmRz
LiBJbnN0cnVjdGlvbnMgY2Fubm90IHRha2UgYW5vbnltb3VzIG1hY3Jvcy4KKyMKKyMgLSBMYWJl
bHMgbXVzdCBoYXZlIG5hbWVzIHRoYXQgYmVnaW4gd2l0aCBlaXRoZXIgIl8iIG9yICIuIi4gIEEg
Ii4iIGxhYmVsCisjICAgaXMgbG9jYWwgYW5kIGdldHMgcmVuYW1lZCBiZWZvcmUgY29kZSBnZW4g
dG8gbWluaW1pemUgbmFtZXNwYWNlCisjICAgcG9sbHV0aW9uLiBBICJfIiBsYWJlbCBpcyBhbiBl
eHRlcm4gc3ltYm9sIChpLmUuICIuZ2xvYmwiKS4gVGhlICJfIgorIyAgIG1heSBvciBtYXkgbm90
IGJlIHJlbW92ZWQgZHVyaW5nIGNvZGUgZ2VuIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSBhc20K
KyMgICBjb252ZW50aW9ucyBmb3IgQyBuYW1lIG1hbmdsaW5nIG9uIHRoZSB0YXJnZXQgcGxhdGZv
cm0gbWFuZGF0ZSBhICJfIgorIyAgIHByZWZpeC4KKyMKKyMgLSBBICJtYWNybyIgaXMgYSBsYW1i
ZGEgZXhwcmVzc2lvbiwgd2hpY2ggbWF5IGJlIGVpdGhlciBhbm9ueW1vdXMgb3IKKyMgICBuYW1l
ZC4gQnV0IHRoaXMgaGFzIGNhdmVhdHMuICJtYWNybyIgY2FuIHRha2UgemVybyBvciBtb3JlIGFy
Z3VtZW50cywKKyMgICB3aGljaCBtYXkgYmUgbWFjcm9zIG9yIGFueSB2YWxpZCBvcGVyYW5kcywg
YnV0IGl0IGNhbiBvbmx5IHJldHVybgorIyAgIGNvZGUuIEJ1dCB5b3UgY2FuIGRvIFR1cmluZy1j
b21wbGV0ZSB0aGluZ3MgdmlhIGNvbnRpbnVhdGlvbiBwYXNzaW5nCisjICAgc3R5bGU6ICJtYWNy
byBmb28gKGEsIGIpIGIoYSwgYSkgZW5kIGZvbyhmb28sIGZvbykiLiBBY3R1YWxseSwgZG9uJ3Qg
ZG8KKyMgICB0aGF0LCBzaW5jZSB5b3UnbGwganVzdCBjcmFzaCB0aGUgYXNzZW1ibGVyLgorIwor
IyAtIEFuICJpZiIgaXMgYSBjb25kaXRpb25hbCBvbiBzZXR0aW5ncy4gQW55IGlkZW50aWZpZXIg
c3VwcGxpZWQgaW4gdGhlCisjICAgcHJlZGljYXRlIG9mIGFuICJpZiIgaXMgYXNzdW1lZCB0byBi
ZSBhICNkZWZpbmUgdGhhdCBpcyBhdmFpbGFibGUKKyMgICBkdXJpbmcgY29kZSBnZW4uIFNvIHlv
dSBjYW4ndCB1c2UgImlmIiBmb3IgY29tcHV0YXRpb24gaW4gYSBtYWNybywgYnV0CisjICAgeW91
IGNhbiB1c2UgaXQgdG8gc2VsZWN0IGRpZmZlcmVudCBwaWVjZXMgb2YgY29kZSBmb3IgZGlmZmVy
ZW50CisjICAgcGxhdGZvcm1zLgorIworIyAtIEFyZ3VtZW50cyB0byBtYWNyb3MgZm9sbG93IGxl
eGljYWwgc2NvcGluZyByYXRoZXIgdGhhbiBkeW5hbWljIHNjb3BpbmcuCisjICAgQ29uc3QncyBh
bHNvIGZvbGxvdyBsZXhpY2FsIHNjb3BpbmcgYW5kIG1heSBvdmVycmlkZSAoaGlkZSkgYXJndW1l
bnRzCisjICAgb3Igb3RoZXIgY29uc3RzLiBBbGwgdmFyaWFibGVzIChhcmd1bWVudHMgYW5kIGNv
bnN0YW50cykgY2FuIGJlIGJvdW5kCisjICAgdG8gb3BlcmFuZHMuIEFkZGl0aW9uYWxseSwgYXJn
dW1lbnRzIChidXQgbm90IGNvbnN0YW50cykgY2FuIGJlIGJvdW5kCisjICAgdG8gbWFjcm9zLgor
CisjIFRoZSBmb2xsb3dpbmcgZ2VuZXJhbC1wdXJwb3NlIHJlZ2lzdGVycyBhcmUgYXZhaWxhYmxl
OgorIworIyAgLSBjZnIgYW5kIHNwIGhvbGQgdGhlIGNhbGwgZnJhbWUgYW5kIChuYXRpdmUpIHN0
YWNrIHBvaW50ZXIgcmVzcGVjdGl2ZWx5LgorIyAgVGhleSBhcmUgY2FsbGVlLXNhdmUgcmVnaXN0
ZXJzLCBhbmQgZ3VhcmFudGVlZCB0byBiZSBkaXN0aW5jdCBmcm9tIGFsbCBvdGhlcgorIyAgcmVn
aXN0ZXJzIG9uIGFsbCBhcmNoaXRlY3R1cmVzLgorIworIyAgLSBsciBpcyBkZWZpbmVkIG9uIG5v
bi1YODYgYXJjaGl0ZWN0dXJlcyAoQVJNNjQsIEFSTXY3LCBBUk0sCisjICBBUk12N19UUkFESVRJ
T05BTCwgTUlQUywgU0g0IGFuZCBDTE9PUCkgYW5kIGhvbGRzIHRoZSByZXR1cm4gUEMKKyMKKyMg
IC0gcGMgaG9sZHMgdGhlIChuYXRpdmUpIHByb2dyYW0gY291bnRlciBvbiAzMi1iaXRzIEFSTSBh
cmNoaXRlY3R1cmVzIChBUk0sCisjICBBUk12NywgQVJNdjdfVFJBRElUSU9OQUwpCisjCisjICAt
IHQwLCB0MSwgdDIsIHQzLCB0NCBhbmQgdDUgYXJlIHRlbXBvcmFyeSByZWdpc3RlcnMgdGhhdCBj
YW4gZ2V0IHRyYXNoZWQgb24KKyMgIGNhbGxzLCBhbmQgYXJlIHBhaXJ3aXNlIGRpc3RpbmN0IHJl
Z2lzdGVycy4gdDUgaG9sZHMgdGhlIEpTIHByb2dyYW0gY291bnRlciwgc28gdXNlCisjICB3aXRo
IGNhdXRpb24gaW4gb3Bjb2RlcyAoYWN0dWFsbHksIGRvbid0IHVzZSBpdCBpbiBvcGNvZGVzIGF0
IGFsbCwgZXhjZXB0IGFzIFBDKS4KKyMKKyMgIC0gcjAgYW5kIHIxIGFyZSB0aGUgcGxhdGZvcm0n
cyBjdXN0b21hcnkgcmV0dXJuIHJlZ2lzdGVycywgYW5kIHRodXMgYXJlCisjICB0d28gZGlzdGlu
Y3QgcmVnaXN0ZXJzCisjCisjICAtIGEwLCBhMSwgYTIgYW5kIGEzIGFyZSB0aGUgcGxhdGZvcm0n
cyBjdXN0b21hcnkgYXJndW1lbnQgcmVnaXN0ZXJzLCBhbmQKKyMgIHRodXMgYXJlIHBhaXJ3aXNl
IGRpc3RpbmN0IHJlZ2lzdGVycy4gQmUgbWluZGZ1bCB0aGF0OgorIyAgICArIE9uIFg4NiwgdGhl
cmUgYXJlIG5vIGFjdHVhbHkgYXJndW1lbnQgcmVnaXN0ZXJzLiBhMCBhbmQgYTEgYXJlIGVkeCBh
bmQKKyMgICAgZWN4IGZvbGxvd2luZyB0aGUgZmFzdGNhbGwgY29udmVudGlvbiwgYnV0IHlvdSBz
aG91bGQgc3RpbGwgdXNlIHRoZSBzdGFjaworIyAgICB0byBwYXNzIHlvdXIgYXJndW1lbnRzLiBU
aGUgY0NhbGwyIGFuZCBjQ2FsbDQgbWFjcm9zIGRvIHRoaXMgZm9yIHlvdS4KKyMgICAgKyBPbiBY
ODZfNjRfV0lOLCB5b3Ugc2hvdWxkIGFsbG9jYXRlIHNwYWNlIG9uIHRoZSBzdGFjayBmb3IgdGhl
IGFyZ3VtZW50cywKKyMgICAgYW5kIHRoZSByZXR1cm4gY29udmVudGlvbiBpcyB3ZWlyZCBmb3Ig
PiA4IGJ5dGVzIHR5cGVzLiBUaGUgb25seSBwbGFjZSB3ZQorIyAgICB1c2UgPiA4IGJ5dGVzIHJl
dHVybiB2YWx1ZXMgaXMgb24gYSBjQ2FsbCwgYW5kIGNDYWxsMiBhbmQgY0NhbGw0IGhhbmRsZQor
IyAgICB0aGlzIGZvciB5b3UuCisjCisjICAtIFRoZSBvbmx5IHJlZ2lzdGVycyBndWFyYW50ZWVk
IHRvIGJlIGNhbGxlci1zYXZlZCBhcmUgcjAsIHIxLCBhMCwgYTEgYW5kIGEyLCBhbmQKKyMgIHlv
dSBzaG91bGQgYmUgbWluZGZ1bCBvZiB0aGF0IGluIGZ1bmN0aW9ucyB0aGF0IGFyZSBjYWxsZWQg
ZGlyZWN0bHkgZnJvbSBDLgorIyAgSWYgeW91IG5lZWQgbW9yZSByZWdpc3RlcnMsIHlvdSBzaG91
bGQgcHVzaCBhbmQgcG9wIHRoZW0gbGlrZSBhIGdvb2QKKyMgIGFzc2VtYmx5IGNpdGl6ZW4sIGJl
Y2F1c2UgYW55IG90aGVyIHJlZ2lzdGVyIHdpbGwgYmUgY2FsbGVlLXNhdmVkIG9uIFg4Ni4KKyMK
KyMgWW91IGNhbiBhZGRpdGlvbmFsbHkgYXNzdW1lOgorIworIyAgLSBhMywgdDIsIHQzLCB0NCBh
bmQgdDUgYXJlIG5ldmVyIHJldHVybiByZWdpc3RlcnM7IHQwLCB0MSwgYTAsIGExIGFuZCBhMgor
IyAgY2FuIGJlIHJldHVybiByZWdpc3RlcnMuCisjCisjICAtIHQ0IGFuZCB0NSBhcmUgbmV2ZXIg
YXJndW1lbnQgcmVnaXN0ZXJzLCB0MyBjYW4gb25seSBiZSBhMywgdDEgY2FuIG9ubHkgYmUKKyMg
IGExOyBidXQgdDAgYW5kIHQyIGNhbiBiZSBlaXRoZXIgYTAgb3IgYTIuCisjCisjICAtIE9uIDY0
IGJpdHMsIGNzcjAsIGNzcjEgYW5kIGNzcjIgYXJlIGF2YWlsYWJsZSBhcyBjYWxsZWUtc2F2ZSBy
ZWdpc3RlcnMuCisjICBjc3IwIGlzIHVzZWQgdG8gc3RvcmUgdGhlIFBDIGJhc2UsIHdoaWxlIGNz
cjEgYW5kIGNzcjIgYXJlIHVzZWQgdG8gc3RvcmUKKyMgIHNwZWNpYWwgdGFnIHZhbHVlcy4gRG9u
J3QgdXNlIHRoZW0gZm9yIGFueXRoaW5nIGVsc2UuCisjCisjIEFkZGl0aW9uYWwgcGxhdGZvcm0t
c3BlY2lmaWMgZGV0YWlscyAoeW91IHNob3VsZG4ndCByZWx5IG9uIHRoaXMgcmVtYWluaW5nCisj
IHRydWUpOgorIworIyAgLSBGb3IgY29uc2lzdGVuY3kgd2l0aCB0aGUgYmFzZWxpbmUgSklULCB0
MCBpcyBhbHdheXMgcjAgKGFuZCB0MSBpcyBhbHdheXMKKyMgIHIxIG9uIDMyIGJpdHMgcGxhdGZv
cm1zKS4gWW91IHNob3VsZCB1c2UgdGhlIHIgdmVyc2lvbiB3aGVuIHlvdSBuZWVkIHJldHVybgor
IyAgcmVnaXN0ZXJzLCBhbmQgdGhlIHQgdmVyc2lvbiBvdGhlcndpc2U6IGNvZGUgdXNpbmcgdDAg
KG9yIHQxKSBzaG91bGQgc3RpbGwKKyMgIHdvcmsgaWYgc3dhcHBlZCB3aXRoIGUuZy4gdDMsIHdo
aWxlIGNvZGUgdXNpbmcgcjAgKG9yIHIxKSBzaG91bGQgbm90LiBUaGVyZQorIyAgKm1heSogYmUg
bGVnYWN5IGNvZGUgcmVseWluZyBvbiB0aGlzLgorIworIyAgLSBPbiBhbGwgcGxhdGZvcm1zIG90
aGVyIHRoYW4gWDg2LCB0MCBjYW4gb25seSBiZSBhMCBhbmQgdDIgY2FuIG9ubHkgYmUgYTIuCisj
CisjICAtIE9uIGFsbCBwbGF0Zm9ybXMgb3RoZXIgdGhhbiBYODYgYW5kIFg4Nl82NCwgYTIgaXMg
bm90IGEgcmV0dXJuIHJlZ2lzdGVyLgorIyAgYTIgaXMgcjAgb24gWDg2IChiZWNhdXNlIHdlIGhh
dmUgc28gZmV3IHJlZ2lzdGVycykgYW5kIHIxIG9uIFg4Nl82NCAoYmVjYXVzZQorIyAgdGhlIEFC
SSBlbmZvcmNlcyBpdCkuCisjCisjICAtIE9uIFg4Nl82NF9XSU4sIHQ0IGlzIGFjdHVhbGx5IGNh
bGxlZS1zYXZlIChiZWNhdXNlIHdlIGhhdmUgc28gZmV3CisjICBjYWxsZXItc2F2ZSByZWdpc3Rl
cnMpLgorIworCisjIFRoZSBmb2xsb3dpbmcgZmxvYXRpbmctcG9pbnQgcmVnaXN0ZXJzIGFyZSBh
dmFpbGFibGU6CisjCisjICAtIGZ0MC1mdDUgYXJlIHRlbXBvcmFyeSBmbG9hdGluZy1wb2ludCBy
ZWdpc3RlcnMgdGhhdCBnZXQgdHJhc2hlZCBvbiBjYWxscywKKyMgIGFuZCBhcmUgcGFpcndpc2Ug
ZGlzdGluY3QuCisjCisjICAtIGZhMCBhbmQgZmExIGFyZSB0aGUgcGxhdGZvcm0ncyBjdXN0b21h
cnkgZmxvYXRpbmctcG9pbnQgYXJndW1lbnQKKyMgIHJlZ2lzdGVycywgYW5kIGFyZSBib3RoIGRp
c3RpbmN0LiBPbiA2NC1iaXRzIHBsYXRmb3JtcywgZmEyIGFuZCBmYTMgYXJlCisjICBhZGRpdGlv
bmFsIGZsb2F0aW5nLXBvaW50IGFyZ3VtZW50IHJlZ2lzdGVycy4KKyMKKyMgIC0gZnIgaXMgdGhl
IHBsYXRmb3JtJ3MgY3VzdG9tYXJ5IGZsb2F0aW5nLXBvaW50IHJldHVybiByZWdpc3RlcgorIwor
IyBZb3UgY2FuIGFzc3VtZSB0aGF0IGZ0MS1mdDUgb3IgZmExLWZhMyBhcmUgbmV2ZXIgZnIsIGFu
ZCB0aGF0IGZ0WCBpcyBuZXZlcgorIyBmYVkgaWYgWCAhPSBZLgorCiAjIEZpcnN0IGNvbWUgdGhl
IGNvbW1vbiBwcm90b2NvbHMgdGhhdCBib3RoIGludGVycHJldGVycyB1c2UuIE5vdGUgdGhhdCBl
YWNoCiAjIG9mIHRoZXNlIG11c3QgaGF2ZSBhbiBBU1NFUlQoKSBpbiBMTEludERhdGEuY3BwCiAK
QEAgLTEwNywxMyArMjMwLDExIEBAIGNvbnN0IElzSW52YWxpZGF0ZWQgPSAyCiBpZiBKU1ZBTFVF
NjQKICAgICAjIC0gVXNlIGEgcGFpciBvZiByZWdpc3RlcnMgdG8gcmVwcmVzZW50IHRoZSBQQzog
b25lIHJlZ2lzdGVyIGZvciB0aGUKICAgICAjICAgYmFzZSBvZiB0aGUgYnl0ZWNvZGVzLCBhbmQg
b25lIHJlZ2lzdGVyIGZvciB0aGUgaW5kZXguCi0gICAgIyAtIFRoZSBQQyBiYXNlIChvciBQQiBm
b3Igc2hvcnQpIHNob3VsZCBiZSBzdG9yZWQgaW4gdGhlIGNzci4gSXQgd2lsbAotICAgICMgICBn
ZXQgY2xvYmJlcmVkIG9uIGNhbGxzIHRvIG90aGVyIEpTIGNvZGUsIGJ1dCB3aWxsIGdldCBzYXZl
ZCBvbiBjYWxscwotICAgICMgICB0byBDIGZ1bmN0aW9ucy4KKyAgICAjIC0gVGhlIFBDIGJhc2Ug
KG9yIFBCIGZvciBzaG9ydCkgbXVzdCBiZSBzdG9yZWQgaW4gYSBjYWxsZWUtc2F2ZSByZWdpc3Rl
ci4KICAgICAjIC0gQyBjYWxscyBhcmUgc3RpbGwgZ2l2ZW4gdGhlIEluc3RydWN0aW9uKiByYXRo
ZXIgdGhhbiB0aGUgUEMgaW5kZXguCiAgICAgIyAgIFRoaXMgcmVxdWlyZXMgYW4gYWRkIGJlZm9y
ZSB0aGUgY2FsbCwgYW5kIGEgc3ViIGFmdGVyLgogICAgIGNvbnN0IFBDID0gdDUKLSAgICBjb25z
dCBQQiA9IHQ2CisgICAgY29uc3QgUEIgPSBjc3IwCiAgICAgY29uc3QgdGFnVHlwZU51bWJlciA9
IGNzcjEKICAgICBjb25zdCB0YWdNYXNrID0gY3NyMgogICAgIApAQCAtNDg5LDEzICs2MTAsMTMg
QEAgZW5kCiBtYWNybyBzbG93UGF0aEZvckNhbGwoc2xvd1BhdGgpCiAgICAgY2FsbENhbGxTbG93
UGF0aCgKICAgICAgICAgc2xvd1BhdGgsCi0gICAgICAgIG1hY3JvIChjYWxsZWUpCi0gICAgICAg
ICAgICBidHB6IHQxLCAuZG9udFVwZGF0ZVNQCisgICAgICAgIG1hY3JvIChjYWxsZWUsIGNhbGxl
ZUZyYW1lKQorICAgICAgICAgICAgYnRweiBjYWxsZWVGcmFtZSwgLmRvbnRVcGRhdGVTUAogICAg
ICAgICAgICAgaWYgQVJNdjcKLSAgICAgICAgICAgICAgICBhZGRwIENhbGxlckZyYW1lQW5kUENT
aXplLCB0MSwgdDEKLSAgICAgICAgICAgICAgICBtb3ZlIHQxLCBzcAorICAgICAgICAgICAgICAg
IGFkZHAgQ2FsbGVyRnJhbWVBbmRQQ1NpemUsIGNhbGxlZUZyYW1lLCBjYWxsZWVGcmFtZQorICAg
ICAgICAgICAgICAgIG1vdmUgY2FsbGVlRnJhbWUsIHNwCiAgICAgICAgICAgICBlbHNlCi0gICAg
ICAgICAgICAgICAgYWRkcCBDYWxsZXJGcmFtZUFuZFBDU2l6ZSwgdDEsIHNwCisgICAgICAgICAg
ICAgICAgYWRkcCBDYWxsZXJGcmFtZUFuZFBDU2l6ZSwgY2FsbGVlRnJhbWUsIHNwCiAgICAgICAg
ICAgICBlbmQKICAgICAgICAgLmRvbnRVcGRhdGVTUDoKICAgICAgICAgICAgIGlmIENfTE9PUApA
QCAtNTkxLDE1ICs3MTIsMTkgQEAgbWFjcm8gcHJvbG9ndWUoY29kZUJsb2NrR2V0dGVyLCBjb2Rl
QmxvY2tTZXR0ZXIsIG9zclNsb3dQYXRoLCB0cmFjZVNsb3dQYXRoKQogICAgIGlmIG5vdCBDX0xP
T1AKICAgICAgICAgYmFkZGlzIDUsIENvZGVCbG9jazo6bV9sbGludEV4ZWN1dGVDb3VudGVyICsg
QmFzZWxpbmVFeGVjdXRpb25Db3VudGVyOjptX2NvdW50ZXJbdDFdLCAuY29udGludWUKICAgICAg
ICAgaWYgSlNWQUxVRTY0Ci0gICAgICAgICAgICBjQ2FsbDIob3NyU2xvd1BhdGgsIGNmciwgUEMp
CisgICAgICAgICAgICBtb3ZlIGNmciwgYTAKKyAgICAgICAgICAgIG1vdmUgUEMsIGExCisgICAg
ICAgICAgICBjQ2FsbDIob3NyU2xvd1BhdGgpCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgICMg
V2UgYXJlIGFmdGVyIHRoZSBmdW5jdGlvbiBwcm9sb2d1ZSwgYnV0IGJlZm9yZSB3ZSBoYXZlIHNl
dCB1cCBzcCBmcm9tIHRoZSBDb2RlQmxvY2suCiAgICAgICAgICAgICAjIFRlbXBvcmFyaWx5IGFs
aWduIHN0YWNrIHBvaW50ZXIgZm9yIHRoaXMgY2FsbC4KICAgICAgICAgICAgIHN1YnAgOCwgc3AK
LSAgICAgICAgICAgIGNDYWxsMihvc3JTbG93UGF0aCwgY2ZyLCBQQykKKyAgICAgICAgICAgIG1v
dmUgY2ZyLCBhMAorICAgICAgICAgICAgbW92ZSBQQywgYTEKKyAgICAgICAgICAgIGNDYWxsMihv
c3JTbG93UGF0aCkKICAgICAgICAgICAgIGFkZHAgOCwgc3AKICAgICAgICAgZW5kCi0gICAgICAg
IGJ0cHogdDAsIC5yZWNvdmVyCisgICAgICAgIGJ0cHogcjAsIC5yZWNvdmVyCiAgICAgICAgIG1v
dmUgY2ZyLCBzcCAjIHJlc3RvcmUgdGhlIHByZXZpb3VzIHNwCiAgICAgICAgICMgcG9wIHRoZSBj
YWxsZXJGcmFtZSBzaW5jZSB3ZSB3aWxsIGp1bXAgdG8gYSBmdW5jdGlvbiB0aGF0IHdhbnRzIHRv
IHNhdmUgaXQKICAgICAgICAgaWYgQVJNNjQKQEAgLTYxMCw3ICs3MzUsNyBAQCBtYWNybyBwcm9s
b2d1ZShjb2RlQmxvY2tHZXR0ZXIsIGNvZGVCbG9ja1NldHRlciwgb3NyU2xvd1BhdGgsIHRyYWNl
U2xvd1BhdGgpCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHBvcCBjZnIKICAgICAgICAgZW5k
Ci0gICAgICAgIGptcCB0MAorICAgICAgICBqbXAgcjAKICAgICAucmVjb3ZlcjoKICAgICAgICAg
Y29kZUJsb2NrR2V0dGVyKHQxKQogICAgIC5jb250aW51ZToKQEAgLTYzNSw4ICs3NjAsOCBAQCBt
YWNybyBwcm9sb2d1ZShjb2RlQmxvY2tHZXR0ZXIsIGNvZGVCbG9ja1NldHRlciwgb3NyU2xvd1Bh
dGgsIHRyYWNlU2xvd1BhdGgpCiAgICAgIyBTdGFjayBoZWlnaHQgY2hlY2sgZmFpbGVkIC0gbmVl
ZCB0byBjYWxsIGEgc2xvd19wYXRoLgogICAgIHN1YnAgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0
aENhbGwsIHNwICMgU2V0IHVwIHRlbXBvcmFyeSBzdGFjayBwb2ludGVyIGZvciBjYWxsCiAgICAg
Y2FsbFNsb3dQYXRoKF9sbGludF9zdGFja19jaGVjaykKLSAgICBicGVxIHQxLCAwLCAuc3RhY2tI
ZWlnaHRPS0dldENvZGVCbG9jawotICAgIG1vdmUgdDEsIGNmcgorICAgIGJwZXEgcjEsIDAsIC5z
dGFja0hlaWdodE9LR2V0Q29kZUJsb2NrCisgICAgbW92ZSByMSwgY2ZyCiAgICAgZGlzcGF0Y2go
MCkgIyBHbyB0byBleGNlcHRpb24gaGFuZGxlciBpbiBQQwogCiAuc3RhY2tIZWlnaHRPS0dldENv
ZGVCbG9jazoKQEAgLTczMywyOSArODU4LDE1IEBAIGlmIG5vdCBDX0xPT1AKICAgICAjIHZvaWQg
c2FuaXRpemVTdGFja0ZvclZNSW1wbChWTSogdm0pCiAgICAgZ2xvYmFsIF9zYW5pdGl6ZVN0YWNr
Rm9yVk1JbXBsCiAgICAgX3Nhbml0aXplU3RhY2tGb3JWTUltcGw6Ci0gICAgICAgIGlmIFg4Nl82
NAotICAgICAgICAgICAgY29uc3Qgdm0gPSB0NAotICAgICAgICAgICAgY29uc3QgYWRkcmVzcyA9
IHQxCi0gICAgICAgICAgICBjb25zdCB6ZXJvVmFsdWUgPSB0MAotICAgICAgICBlbHNpZiBYODZf
NjRfV0lOCi0gICAgICAgICAgICBjb25zdCB2bSA9IHQyCi0gICAgICAgICAgICBjb25zdCBhZGRy
ZXNzID0gdDEKLSAgICAgICAgICAgIGNvbnN0IHplcm9WYWx1ZSA9IHQwCi0gICAgICAgIGVsc2lm
IFg4NiBvciBYODZfV0lOCi0gICAgICAgICAgICBjb25zdCB2bSA9IHQyCi0gICAgICAgICAgICBj
b25zdCBhZGRyZXNzID0gdDEKLSAgICAgICAgICAgIGNvbnN0IHplcm9WYWx1ZSA9IHQwCi0gICAg
ICAgIGVsc2UKLSAgICAgICAgICAgIGNvbnN0IHZtID0gYTAKLSAgICAgICAgICAgIGNvbnN0IGFk
ZHJlc3MgPSB0MQotICAgICAgICAgICAgY29uc3QgemVyb1ZhbHVlID0gdDIKLSAgICAgICAgZW5k
Ci0gICAgCisgICAgICAgICMgV2UgbmVlZCB0aHJlZSBub24tYWxpYXNlZCBjYWxsZXItc2F2ZSBy
ZWdpc3RlcnMuIFdlIGFyZSBndWFyYW50ZWVkCisgICAgICAgICMgdGhpcyBmb3IgYTAsIGExIGFu
ZCBhMiBvbiBhbGwgYXJjaGl0ZWN0dXJlcy4KICAgICAgICAgaWYgWDg2IG9yIFg4Nl9XSU4KLSAg
ICAgICAgICAgIGxvYWRwIDRbc3BdLCB2bQorICAgICAgICAgICAgbG9hZHAgNFtzcF0sIGEwCiAg
ICAgICAgIGVuZAorICAgICAgICBjb25zdCBhZGRyZXNzID0gYTEKKyAgICAgICAgY29uc3QgemVy
b1ZhbHVlID0gYTIKICAgICAKLSAgICAgICAgbG9hZHAgVk06Om1fbGFzdFN0YWNrVG9wW3ZtXSwg
YWRkcmVzcworICAgICAgICBsb2FkcCBWTTo6bV9sYXN0U3RhY2tUb3BbYTBdLCBhZGRyZXNzCiAg
ICAgICAgIGJwYmVxIHNwLCBhZGRyZXNzLCAuemVyb0ZpbGxEb25lCiAgICAgCiAgICAgICAgIG1v
dmUgMCwgemVyb1ZhbHVlCkBAIC03NjYsMjggKzg3NywxNyBAQCBpZiBub3QgQ19MT09QCiAgICAg
CiAgICAgLnplcm9GaWxsRG9uZToKICAgICAgICAgbW92ZSBzcCwgYWRkcmVzcwotICAgICAgICBz
dG9yZXAgYWRkcmVzcywgVk06Om1fbGFzdFN0YWNrVG9wW3ZtXQorICAgICAgICBzdG9yZXAgYWRk
cmVzcywgVk06Om1fbGFzdFN0YWNrVG9wW2EwXQogICAgICAgICByZXQKICAgICAKICAgICAjIFZN
RW50cnlSZWNvcmQqIHZtRW50cnlSZWNvcmQoY29uc3QgVk1FbnRyeUZyYW1lKiBlbnRyeUZyYW1l
KQogICAgIGdsb2JhbCBfdm1FbnRyeVJlY29yZAogICAgIF92bUVudHJ5UmVjb3JkOgotICAgICAg
ICBpZiBYODZfNjQKLSAgICAgICAgICAgIGNvbnN0IGVudHJ5RnJhbWUgPSB0NAotICAgICAgICAg
ICAgY29uc3QgcmVzdWx0ID0gdDAKLSAgICAgICAgZWxzaWYgWDg2IG9yIFg4Nl9XSU4gb3IgWDg2
XzY0X1dJTgotICAgICAgICAgICAgY29uc3QgZW50cnlGcmFtZSA9IHQyCi0gICAgICAgICAgICBj
b25zdCByZXN1bHQgPSB0MAotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb25zdCBlbnRyeUZy
YW1lID0gYTAKLSAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHQwCi0gICAgICAgIGVuZAotICAg
IAogICAgICAgICBpZiBYODYgb3IgWDg2X1dJTgotICAgICAgICAgICAgbG9hZHAgNFtzcF0sIGVu
dHJ5RnJhbWUKKyAgICAgICAgICAgIGxvYWRwIDRbc3BdLCBhMAogICAgICAgICBlbmQKLSAgICAK
LSAgICAgICAgdm1FbnRyeVJlY29yZChlbnRyeUZyYW1lLCByZXN1bHQpCisKKyAgICAgICAgdm1F
bnRyeVJlY29yZChhMCwgcjApCiAgICAgICAgIHJldAogZW5kCiAKQEAgLTc5NSwxNyArODk1LDEy
IEBAIGlmIENfTE9PUAogICAgICMgRHVtbXkgZW50cnkgcG9pbnQgdGhlIEMgTG9vcCB1c2VzIHRv
IGluaXRpYWxpemUuCiAgICAgX2xsaW50X2VudHJ5OgogICAgICAgICBjcmFzaCgpCi0gICAgZWxz
ZQorZWxzZQogICAgIG1hY3JvIGluaXRQQ1JlbGF0aXZlKHBjQmFzZSkKLSAgICAgICAgaWYgWDg2
XzY0IG9yIFg4Nl82NF9XSU4KLSAgICAgICAgICAgIGNhbGwgX3JlbGF0aXZlUENCYXNlCi0gICAg
ICAgIF9yZWxhdGl2ZVBDQmFzZToKLSAgICAgICAgICAgIHBvcCBwY0Jhc2UKLSAgICAgICAgZWxz
aWYgWDg2IG9yIFg4Nl9XSU4KKyAgICAgICAgaWYgWDg2XzY0IG9yIFg4Nl82NF9XSU4gb3IgWDg2
IG9yIFg4Nl9XSU4KICAgICAgICAgICAgIGNhbGwgX3JlbGF0aXZlUENCYXNlCiAgICAgICAgIF9y
ZWxhdGl2ZVBDQmFzZToKICAgICAgICAgICAgIHBvcCBwY0Jhc2UKLSAgICAgICAgICAgIGxvYWRw
IDIwW3NwXSwgdDQKICAgICAgICAgZWxzaWYgQVJNNjQKICAgICAgICAgZWxzaWYgQVJNdjcKICAg
ICAgICAgX3JlbGF0aXZlUENCYXNlOgpAQCAtODI2LDQxICs5MjEsNDMgQEAgaWYgQ19MT09QCiAg
ICAgICAgIGVuZAogZW5kCiAKKyMgVGhlIFBDIGJhc2UgaXMgaW4gdDEsIGFzIHRoaXMgaXMgd2hh
dCBfbGxpbnRfZW50cnkgbGVhdmVzIGJlaGluZCB0aHJvdWdoCisjIGluaXRQQ1JlbGF0aXZlKHQx
KQogbWFjcm8gc2V0RW50cnlBZGRyZXNzKGluZGV4LCBsYWJlbCkKICAgICBpZiBYODZfNjQKLSAg
ICAgICAgbGVhcCAobGFiZWwgLSBfcmVsYXRpdmVQQ0Jhc2UpW3QxXSwgdDAKLSAgICAgICAgbW92
ZSBpbmRleCwgdDIKLSAgICAgICAgc3RvcmVwIHQwLCBbdDQsIHQyLCA4XQorICAgICAgICBsZWFw
IChsYWJlbCAtIF9yZWxhdGl2ZVBDQmFzZSlbdDFdLCB0MworICAgICAgICBtb3ZlIGluZGV4LCB0
NAorICAgICAgICBzdG9yZXAgdDMsIFthMCwgdDQsIDhdCiAgICAgZWxzaWYgWDg2XzY0X1dJTgot
ICAgICAgICBsZWFwIChsYWJlbCAtIF9yZWxhdGl2ZVBDQmFzZSlbdDFdLCB0MAorICAgICAgICBs
ZWFwIChsYWJlbCAtIF9yZWxhdGl2ZVBDQmFzZSlbdDFdLCB0MwogICAgICAgICBtb3ZlIGluZGV4
LCB0NAotICAgICAgICBzdG9yZXAgdDAsIFt0MiwgdDQsIDhdCisgICAgICAgIHN0b3JlcCB0Mywg
W2EwLCB0NCwgOF0KICAgICBlbHNpZiBYODYgb3IgWDg2X1dJTgotICAgICAgICBsZWFwIChsYWJl
bCAtIF9yZWxhdGl2ZVBDQmFzZSlbdDFdLCB0MAotICAgICAgICBtb3ZlIGluZGV4LCB0MgotICAg
ICAgICBzdG9yZXAgdDAsIFt0NCwgdDIsIDRdCisgICAgICAgIGxlYXAgKGxhYmVsIC0gX3JlbGF0
aXZlUENCYXNlKVt0MV0sIHQzCisgICAgICAgIG1vdmUgaW5kZXgsIHQ0CisgICAgICAgIHN0b3Jl
cCB0MywgW2EwLCB0NCwgNF0KICAgICBlbHNpZiBBUk02NAogICAgICAgICBwY3J0b2FkZHIgbGFi
ZWwsIHQxCi0gICAgICAgIG1vdmUgaW5kZXgsIHQyCi0gICAgICAgIHN0b3JlcCB0MSwgW2EwLCB0
MiwgOF0KKyAgICAgICAgbW92ZSBpbmRleCwgdDQKKyAgICAgICAgc3RvcmVwIHQxLCBbYTAsIHQ0
LCA4XQogICAgIGVsc2lmIEFSTSBvciBBUk12NyBvciBBUk12N19UUkFESVRJT05BTAotICAgICAg
ICBtdmxibCAobGFiZWwgLSBfcmVsYXRpdmVQQ0Jhc2UpLCB0MgotICAgICAgICBhZGRwIHQyLCB0
MSwgdDIKKyAgICAgICAgbXZsYmwgKGxhYmVsIC0gX3JlbGF0aXZlUENCYXNlKSwgdDQKKyAgICAg
ICAgYWRkcCB0NCwgdDEsIHQ0CiAgICAgICAgIG1vdmUgaW5kZXgsIHQzCi0gICAgICAgIHN0b3Jl
cCB0MiwgW2EwLCB0MywgNF0KKyAgICAgICAgc3RvcmVwIHQ0LCBbYTAsIHQzLCA0XQogICAgIGVs
c2lmIFNINAotICAgICAgICBtb3ZlIChsYWJlbCAtIF9yZWxhdGl2ZVBDQmFzZSksIHQyCi0gICAg
ICAgIGFkZHAgdDIsIHQxLCB0MgorICAgICAgICBtb3ZlIChsYWJlbCAtIF9yZWxhdGl2ZVBDQmFz
ZSksIHQ0CisgICAgICAgIGFkZHAgdDQsIHQxLCB0NAogICAgICAgICBtb3ZlIGluZGV4LCB0Mwot
ICAgICAgICBzdG9yZXAgdDIsIFthMCwgdDMsIDRdCisgICAgICAgIHN0b3JlcCB0NCwgW2EwLCB0
MywgNF0KICAgICAgICAgZmx1c2hjcCAjIEZvcmNlIGNvbnN0YW50IHBvb2wgZmx1c2ggdG8gYXZv
aWQgInBjcmVsIHRvbyBmYXIiIGxpbmsgZXJyb3IuCiAgICAgZWxzaWYgTUlQUwotICAgICAgICBs
YSBsYWJlbCwgdDIKKyAgICAgICAgbGEgbGFiZWwsIHQ0CiAgICAgICAgIGxhIF9yZWxhdGl2ZVBD
QmFzZSwgdDMKLSAgICAgICAgc3VicCB0MywgdDIKLSAgICAgICAgYWRkcCB0MiwgdDEsIHQyCisg
ICAgICAgIHN1YnAgdDMsIHQ0CisgICAgICAgIGFkZHAgdDQsIHQxLCB0NAogICAgICAgICBtb3Zl
IGluZGV4LCB0MwotICAgICAgICBzdG9yZXAgdDIsIFthMCwgdDMsIDRdCisgICAgICAgIHN0b3Jl
cCB0NCwgW2EwLCB0MywgNF0KICAgICBlbmQKIGVuZAogCkBAIC04NjksNiArOTY2LDkgQEAgZ2xv
YmFsIF9sbGludF9lbnRyeQogX2xsaW50X2VudHJ5OgogICAgIGZ1bmN0aW9uUHJvbG9ndWUoKQog
ICAgIHB1c2hDYWxsZWVTYXZlcygpCisgICAgaWYgWDg2IG9yIFg4Nl9XSU4KKyAgICAgICAgbG9h
ZHAgMjBbc3BdLCBhMAorICAgIGVuZAogICAgIGluaXRQQ1JlbGF0aXZlKHQxKQogCiAgICAgIyBJ
bmNsdWRlIGdlbmVyYXRlZCBieXRlY29kZSBpbml0aWFsaXphdGlvbiBmaWxlLgpAQCAtMTE5OSwx
NiArMTI5OSwxNiBAQCBfbGxpbnRfb3BfY2FsbF92YXJhcmdzOgogICAgIHRyYWNlRXhlY3V0aW9u
KCkKICAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9zaXplX2ZyYW1lX2Zvcl92YXJh
cmdzKQogICAgIGJyYW5jaElmRXhjZXB0aW9uKF9sbGludF90aHJvd19mcm9tX3Nsb3dfcGF0aF90
cmFtcG9saW5lKQotICAgICMgY2FsbGVlRnJhbWUgaW4gdDEKKyAgICAjIGNhbGxlZUZyYW1lIGlu
IHIxCiAgICAgaWYgSlNWQUxVRTY0Ci0gICAgICAgIG1vdmUgdDEsIHNwCisgICAgICAgIG1vdmUg
cjEsIHNwCiAgICAgZWxzZQogICAgICAgICAjIFRoZSBjYWxsZWVGcmFtZSBpcyBub3Qgc3RhY2sg
YWxpZ25lZCwgbW92ZSBkb3duIGJ5IENhbGxlckZyYW1lQW5kUENTaXplIHRvIGFsaWduCiAgICAg
ICAgIGlmIEFSTXY3Ci0gICAgICAgICAgICBzdWJwIHQxLCBDYWxsZXJGcmFtZUFuZFBDU2l6ZSwg
dDIKKyAgICAgICAgICAgIHN1YnAgcjEsIENhbGxlckZyYW1lQW5kUENTaXplLCB0MgogICAgICAg
ICAgICAgbW92ZSB0Miwgc3AKICAgICAgICAgZWxzZQotICAgICAgICAgICAgc3VicCB0MSwgQ2Fs
bGVyRnJhbWVBbmRQQ1NpemUsIHNwCisgICAgICAgICAgICBzdWJwIHIxLCBDYWxsZXJGcmFtZUFu
ZFBDU2l6ZSwgc3AKICAgICAgICAgZW5kCiAgICAgZW5kCiAgICAgc2xvd1BhdGhGb3JDYWxsKF9s
bGludF9zbG93X3BhdGhfY2FsbF92YXJhcmdzKQpAQCAtMTIxNywxNiArMTMxNywxNiBAQCBfbGxp
bnRfb3BfY29uc3RydWN0X3ZhcmFyZ3M6CiAgICAgdHJhY2VFeGVjdXRpb24oKQogICAgIGNhbGxT
bG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3NpemVfZnJhbWVfZm9yX3ZhcmFyZ3MpCiAgICAgYnJh
bmNoSWZFeGNlcHRpb24oX2xsaW50X3Rocm93X2Zyb21fc2xvd19wYXRoX3RyYW1wb2xpbmUpCi0g
ICAgIyBjYWxsZWVGcmFtZSBpbiB0MQorICAgICMgY2FsbGVlRnJhbWUgaW4gcjEKICAgICBpZiBK
U1ZBTFVFNjQKLSAgICAgICAgbW92ZSB0MSwgc3AKKyAgICAgICAgbW92ZSByMSwgc3AKICAgICBl
bHNlCiAgICAgICAgICMgVGhlIGNhbGxlZUZyYW1lIGlzIG5vdCBzdGFjayBhbGlnbmVkLCBtb3Zl
IGRvd24gYnkgQ2FsbGVyRnJhbWVBbmRQQ1NpemUgdG8gYWxpZ24KICAgICAgICAgaWYgQVJNdjcK
LSAgICAgICAgICAgIHN1YnAgdDEsIENhbGxlckZyYW1lQW5kUENTaXplLCB0MgorICAgICAgICAg
ICAgc3VicCByMSwgQ2FsbGVyRnJhbWVBbmRQQ1NpemUsIHQyCiAgICAgICAgICAgICBtb3ZlIHQy
LCBzcAogICAgICAgICBlbHNlCi0gICAgICAgICAgICBzdWJwIHQxLCBDYWxsZXJGcmFtZUFuZFBD
U2l6ZSwgc3AKKyAgICAgICAgICAgIHN1YnAgcjEsIENhbGxlckZyYW1lQW5kUENTaXplLCBzcAog
ICAgICAgICBlbmQKICAgICBlbmQKICAgICBzbG93UGF0aEZvckNhbGwoX2xsaW50X3Nsb3dfcGF0
aF9jb25zdHJ1Y3RfdmFyYXJncykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KaW5kZXggMTE5Yjg5YS4uZWJlMGRh
MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJw
cmV0ZXIzMl82NC5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVs
SW50ZXJwcmV0ZXIzMl82NC5hc20KQEAgLTIyLDU0ICsyMiw2IEBACiAjIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KIAogCi0jIENyYXNoIGNvdXJzZSBvbiB0aGUgbGFuZ3VhZ2UgdGhh
dCB0aGlzIGlzIHdyaXR0ZW4gaW4gKHdoaWNoIEkganVzdCBjYWxsCi0jICJhc3NlbWJseSIgZXZl
biB0aG91Z2ggaXQncyBtb3JlIHRoYW4gdGhhdCk6Ci0jCi0jIC0gTW9zdGx5IGdhcy1zdHlsZSBv
cGVyYW5kIG9yZGVyaW5nLiBUaGUgbGFzdCBvcGVyYW5kIHRlbmRzIHRvIGJlIHRoZQotIyAgIGRl
c3RpbmF0aW9uLiBTbyAiYSA6PSBiIiBpcyB3cml0dGVuIGFzICJtb3YgYiwgYSIuIEJ1dCB1bmxp
a2UgZ2FzLAotIyAgIGNvbXBhcmlzb25zIGFyZSBpbi1vcmRlciwgc28gImlmIChhIDwgYikiIGlz
IHdyaXR0ZW4gYXMKLSMgICAiYmlsdCBhLCBiLCAuLi4iLgotIwotIyAtICJiIiA9IGJ5dGUsICJo
IiA9IDE2LWJpdCB3b3JkLCAiaSIgPSAzMi1iaXQgd29yZCwgInAiID0gcG9pbnRlci4KLSMgICBD
dXJyZW50bHkgdGhpcyBpcyBqdXN0IDMyLWJpdCBzbyAiaSIgYW5kICJwIiBhcmUgaW50ZXJjaGFu
Z2VhYmxlCi0jICAgZXhjZXB0IHdoZW4gYW4gb3Agc3VwcG9ydHMgb25lIGJ1dCBub3QgdGhlIG90
aGVyLgotIwotIyAtIEluIGdlbmVyYWwsIHZhbGlkIG9wZXJhbmRzIGZvciBtYWNybyBpbnZvY2F0
aW9ucyBhbmQgaW5zdHJ1Y3Rpb25zIGFyZQotIyAgIHJlZ2lzdGVycyAoZWcgInQwIiksIGFkZHJl
c3NlcyAoZWcgIjRbdDBdIiksIGJhc2UtaW5kZXggYWRkcmVzc2VzCi0jICAgKGVnICI3W3QwLCB0
MSwgMl0iKSwgYWJzb2x1dGUgYWRkcmVzc2VzIChlZyAiMHhhMDAwMDAwMFtdIiksIG9yIGxhYmVs
cwotIyAgIChlZyAiX2ZvbyIgb3IgIi5mb28iKS4gTWFjcm8gaW52b2NhdGlvbnMgY2FuIGFsc28g
dGFrZSBhbm9ueW1vdXMKLSMgICBtYWNyb3MgYXMgb3BlcmFuZHMuIEluc3RydWN0aW9ucyBjYW5u
b3QgdGFrZSBhbm9ueW1vdXMgbWFjcm9zLgotIwotIyAtIExhYmVscyBtdXN0IGhhdmUgbmFtZXMg
dGhhdCBiZWdpbiB3aXRoIGVpdGhlciAiXyIgb3IgIi4iLiAgQSAiLiIgbGFiZWwKLSMgICBpcyBs
b2NhbCBhbmQgZ2V0cyByZW5hbWVkIGJlZm9yZSBjb2RlIGdlbiB0byBtaW5pbWl6ZSBuYW1lc3Bh
Y2UKLSMgICBwb2xsdXRpb24uIEEgIl8iIGxhYmVsIGlzIGFuIGV4dGVybiBzeW1ib2wgKGkuZS4g
Ii5nbG9ibCIpLiBUaGUgIl8iCi0jICAgbWF5IG9yIG1heSBub3QgYmUgcmVtb3ZlZCBkdXJpbmcg
Y29kZSBnZW4gZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhlIGFzbQotIyAgIGNvbnZlbnRpb25zIGZv
ciBDIG5hbWUgbWFuZ2xpbmcgb24gdGhlIHRhcmdldCBwbGF0Zm9ybSBtYW5kYXRlIGEgIl8iCi0j
ICAgcHJlZml4LgotIwotIyAtIEEgIm1hY3JvIiBpcyBhIGxhbWJkYSBleHByZXNzaW9uLCB3aGlj
aCBtYXkgYmUgZWl0aGVyIGFub255bW91cyBvcgotIyAgIG5hbWVkLiBCdXQgdGhpcyBoYXMgY2F2
ZWF0cy4gIm1hY3JvIiBjYW4gdGFrZSB6ZXJvIG9yIG1vcmUgYXJndW1lbnRzLAotIyAgIHdoaWNo
IG1heSBiZSBtYWNyb3Mgb3IgYW55IHZhbGlkIG9wZXJhbmRzLCBidXQgaXQgY2FuIG9ubHkgcmV0
dXJuCi0jICAgY29kZS4gQnV0IHlvdSBjYW4gZG8gVHVyaW5nLWNvbXBsZXRlIHRoaW5ncyB2aWEg
Y29udGludWF0aW9uIHBhc3NpbmcKLSMgICBzdHlsZTogIm1hY3JvIGZvbyAoYSwgYikgYihhKSBl
bmQgZm9vKGZvbywgZm9vKSIuIEFjdHVhbGx5LCBkb24ndCBkbwotIyAgIHRoYXQsIHNpbmNlIHlv
dSdsbCBqdXN0IGNyYXNoIHRoZSBhc3NlbWJsZXIuCi0jCi0jIC0gQW4gImlmIiBpcyBhIGNvbmRp
dGlvbmFsIG9uIHNldHRpbmdzLiBBbnkgaWRlbnRpZmllciBzdXBwbGllZCBpbiB0aGUKLSMgICBw
cmVkaWNhdGUgb2YgYW4gImlmIiBpcyBhc3N1bWVkIHRvIGJlIGEgI2RlZmluZSB0aGF0IGlzIGF2
YWlsYWJsZQotIyAgIGR1cmluZyBjb2RlIGdlbi4gU28geW91IGNhbid0IHVzZSAiaWYiIGZvciBj
b21wdXRhdGlvbiBpbiBhIG1hY3JvLCBidXQKLSMgICB5b3UgY2FuIHVzZSBpdCB0byBzZWxlY3Qg
ZGlmZmVyZW50IHBpZWNlcyBvZiBjb2RlIGZvciBkaWZmZXJlbnQKLSMgICBwbGF0Zm9ybXMuCi0j
Ci0jIC0gQXJndW1lbnRzIHRvIG1hY3JvcyBmb2xsb3cgbGV4aWNhbCBzY29waW5nIHJhdGhlciB0
aGFuIGR5bmFtaWMgc2NvcGluZy4KLSMgICBDb25zdCdzIGFsc28gZm9sbG93IGxleGljYWwgc2Nv
cGluZyBhbmQgbWF5IG92ZXJyaWRlIChoaWRlKSBhcmd1bWVudHMKLSMgICBvciBvdGhlciBjb25z
dHMuIEFsbCB2YXJpYWJsZXMgKGFyZ3VtZW50cyBhbmQgY29uc3RhbnRzKSBjYW4gYmUgYm91bmQK
LSMgICB0byBvcGVyYW5kcy4gQWRkaXRpb25hbGx5LCBhcmd1bWVudHMgKGJ1dCBub3QgY29uc3Rh
bnRzKSBjYW4gYmUgYm91bmQKLSMgICB0byBtYWNyb3MuCi0KLQotIyBCZWxvdyB3ZSBoYXZlIGEg
YnVuY2ggb2YgY29uc3RhbnQgZGVjbGFyYXRpb25zLiBFYWNoIGNvbnN0YW50IG11c3QgaGF2ZQot
IyBhIGNvcnJlc3BvbmRpbmcgQVNTRVJUKCkgaW4gTExJbnREYXRhLmNwcC4KLQogIyBVdGlsaXRp
ZXMKIG1hY3JvIGRpc3BhdGNoKGFkdmFuY2UpCiAgICAgYWRkcCBhZHZhbmNlICogNCwgUEMKQEAg
LTg5LDYwICs0MSw0NyBAQCBlbmQKIAogbWFjcm8gZGlzcGF0Y2hBZnRlckNhbGwoKQogICAgIGxv
YWRpIEFyZ3VtZW50Q291bnQgKyBUYWdPZmZzZXRbY2ZyXSwgUEMKLSAgICBsb2FkaSA0W1BDXSwg
dDIKLSAgICBzdG9yZWkgdDEsIFRhZ09mZnNldFtjZnIsIHQyLCA4XQotICAgIHN0b3JlaSB0MCwg
UGF5bG9hZE9mZnNldFtjZnIsIHQyLCA4XQotICAgIHZhbHVlUHJvZmlsZSh0MSwgdDAsIDQgKiAo
Q2FsbE9wQ29kZVNpemUgLSAxKSwgdDMpCisgICAgbG9hZGkgNFtQQ10sIHQzCisgICAgc3RvcmVp
IHIxLCBUYWdPZmZzZXRbY2ZyLCB0MywgOF0KKyAgICBzdG9yZWkgcjAsIFBheWxvYWRPZmZzZXRb
Y2ZyLCB0MywgOF0KKyAgICB2YWx1ZVByb2ZpbGUocjEsIHIwLCA0ICogKENhbGxPcENvZGVTaXpl
IC0gMSksIHQzKQogICAgIGRpc3BhdGNoKENhbGxPcENvZGVTaXplKQogZW5kCiAKLW1hY3JvIGND
YWxsMihmdW5jdGlvbiwgYXJnMSwgYXJnMikKLSAgICBpZiBBUk0gb3IgQVJNdjcgb3IgQVJNdjdf
VFJBRElUSU9OQUwgb3IgTUlQUwotICAgICAgICBtb3ZlIGFyZzEsIGEwCi0gICAgICAgIG1vdmUg
YXJnMiwgYTEKK21hY3JvIGNDYWxsMihmdW5jdGlvbikKKyAgICBpZiBBUk0gb3IgQVJNdjcgb3Ig
QVJNdjdfVFJBRElUSU9OQUwgb3IgTUlQUyBvciBTSDQKICAgICAgICAgY2FsbCBmdW5jdGlvbgog
ICAgIGVsc2lmIFg4NiBvciBYODZfV0lOCiAgICAgICAgIHN1YnAgOCwgc3AKLSAgICAgICAgcHVz
aCBhcmcyCi0gICAgICAgIHB1c2ggYXJnMQorICAgICAgICBwdXNoIGExCisgICAgICAgIHB1c2gg
YTAKICAgICAgICAgY2FsbCBmdW5jdGlvbgogICAgICAgICBhZGRwIDE2LCBzcAotICAgIGVsc2lm
IFNINAotICAgICAgICBzZXRhcmdzIGFyZzEsIGFyZzIKLSAgICAgICAgY2FsbCBmdW5jdGlvbgog
ICAgIGVsc2lmIENfTE9PUAotICAgICAgICBjbG9vcENhbGxTbG93UGF0aCBmdW5jdGlvbiwgYXJn
MSwgYXJnMgorICAgICAgICBjbG9vcENhbGxTbG93UGF0aCBmdW5jdGlvbiwgYTAsIGExCiAgICAg
ZWxzZQogICAgICAgICBlcnJvcgogICAgIGVuZAogZW5kCiAKLW1hY3JvIGNDYWxsMlZvaWQoZnVu
Y3Rpb24sIGFyZzEsIGFyZzIpCittYWNybyBjQ2FsbDJWb2lkKGZ1bmN0aW9uKQogICAgIGlmIENf
TE9PUAotICAgICAgICBjbG9vcENhbGxTbG93UGF0aFZvaWQgZnVuY3Rpb24sIGFyZzEsIGFyZzIK
KyAgICAgICAgY2xvb3BDYWxsU2xvd1BhdGhWb2lkIGZ1bmN0aW9uLCBhMCwgYTEKICAgICBlbHNl
Ci0gICAgICAgIGNDYWxsMihmdW5jdGlvbiwgYXJnMSwgYXJnMikKKyAgICAgICAgY0NhbGwyKGZ1
bmN0aW9uKQogICAgIGVuZAogZW5kCiAKLSMgVGhpcyBiYXJlbHkgd29ya3MuIGFyZzMgYW5kIGFy
ZzQgc2hvdWxkIHByb2JhYmx5IGJlIGltbWVkaWF0ZXMuCi1tYWNybyBjQ2FsbDQoZnVuY3Rpb24s
IGFyZzEsIGFyZzIsIGFyZzMsIGFyZzQpCi0gICAgaWYgQVJNIG9yIEFSTXY3IG9yIEFSTXY3X1RS
QURJVElPTkFMIG9yIE1JUFMKLSAgICAgICAgbW92ZSBhcmcxLCBhMAotICAgICAgICBtb3ZlIGFy
ZzIsIGExCi0gICAgICAgIG1vdmUgYXJnMywgYTIKLSAgICAgICAgbW92ZSBhcmc0LCBhMworbWFj
cm8gY0NhbGw0KGZ1bmN0aW9uKQorICAgIGlmIEFSTSBvciBBUk12NyBvciBBUk12N19UUkFESVRJ
T05BTCBvciBNSVBTIG9yIFNINAogICAgICAgICBjYWxsIGZ1bmN0aW9uCiAgICAgZWxzaWYgWDg2
IG9yIFg4Nl9XSU4KLSAgICAgICAgcHVzaCBhcmc0Ci0gICAgICAgIHB1c2ggYXJnMwotICAgICAg
ICBwdXNoIGFyZzIKLSAgICAgICAgcHVzaCBhcmcxCisgICAgICAgIHB1c2ggYTMKKyAgICAgICAg
cHVzaCBhMgorICAgICAgICBwdXNoIGExCisgICAgICAgIHB1c2ggYTAKICAgICAgICAgY2FsbCBm
dW5jdGlvbgogICAgICAgICBhZGRwIDE2LCBzcAotICAgIGVsc2lmIFNINAotICAgICAgICBzZXRh
cmdzIGFyZzEsIGFyZzIsIGFyZzMsIGFyZzQKLSAgICAgICAgY2FsbCBmdW5jdGlvbgogICAgIGVs
c2lmIENfTE9PUAogICAgICAgICBlcnJvcgogICAgIGVsc2UKQEAgLTE1MSwxMzMgKzkwLDEwNSBA
QCBtYWNybyBjQ2FsbDQoZnVuY3Rpb24sIGFyZzEsIGFyZzIsIGFyZzMsIGFyZzQpCiBlbmQKIAog
bWFjcm8gY2FsbFNsb3dQYXRoKHNsb3dQYXRoKQotICAgIGNDYWxsMihzbG93UGF0aCwgY2ZyLCBQ
QykKLSAgICBtb3ZlIHQwLCBQQworICAgIG1vdmUgY2ZyLCBhMAorICAgIG1vdmUgUEMsIGExCisg
ICAgY0NhbGwyKHNsb3dQYXRoKQorICAgIG1vdmUgcjAsIFBDCiBlbmQKIAogbWFjcm8gZG9WTUVu
dHJ5KG1ha2VDYWxsKQotICAgIGlmIFg4NiBvciBYODZfV0lOCi0gICAgICAgIGNvbnN0IGVudHJ5
ID0gdDQKLSAgICAgICAgY29uc3Qgdm0gPSB0MwotICAgICAgICBjb25zdCBwcm90b0NhbGxGcmFt
ZSA9IHQ1Ci0KLSAgICAgICAgY29uc3QgdGVtcDEgPSB0MAotICAgICAgICBjb25zdCB0ZW1wMiA9
IHQxCi0gICAgICAgIGNvbnN0IHRlbXAzID0gdDIKLSAgICAgICAgY29uc3QgdGVtcDQgPSB0MyAj
IHNhbWUgYXMgdm0KLSAgICBlbHNpZiBBUk0gb3IgQVJNdjcgb3IgQVJNdjdfVFJBRElUSU9OQUwg
b3IgQ19MT09QCi0gICAgICAgIGNvbnN0IGVudHJ5ID0gYTAKLSAgICAgICAgY29uc3Qgdm0gPSBh
MQotICAgICAgICBjb25zdCBwcm90b0NhbGxGcmFtZSA9IGEyCi0KLSAgICAgICAgY29uc3QgdGVt
cDEgPSB0MwotICAgICAgICBjb25zdCB0ZW1wMiA9IHQ0Ci0gICAgICAgIGNvbnN0IHRlbXAzID0g
dDUKLSAgICAgICAgY29uc3QgdGVtcDQgPSB0NCAjIFNhbWUgYXMgdGVtcDIKLSAgICBlbHNpZiBN
SVBTCi0gICAgICAgIGNvbnN0IGVudHJ5ID0gYTAKLSAgICAgICAgY29uc3Qgdm0gPSBhMQotICAg
ICAgICBjb25zdCBwcm90b0NhbGxGcmFtZSA9IGEyCi0KLSAgICAgICAgY29uc3QgdGVtcDEgPSB0
MwotICAgICAgICBjb25zdCB0ZW1wMiA9IHQ1Ci0gICAgICAgIGNvbnN0IHRlbXAzID0gdDQKLSAg
ICAgICAgY29uc3QgdGVtcDQgPSB0NgotICAgIGVsc2lmIFNINAotICAgICAgICBjb25zdCBlbnRy
eSA9IGEwCi0gICAgICAgIGNvbnN0IHZtID0gYTEKLSAgICAgICAgY29uc3QgcHJvdG9DYWxsRnJh
bWUgPSBhMgotCi0gICAgICAgIGNvbnN0IHRlbXAxID0gdDMKLSAgICAgICAgY29uc3QgdGVtcDIg
PSBhMwotICAgICAgICBjb25zdCB0ZW1wMyA9IHQ4Ci0gICAgICAgIGNvbnN0IHRlbXA0ID0gdDkK
LSAgICBlbmQKLQogICAgIGZ1bmN0aW9uUHJvbG9ndWUoKQogICAgIHB1c2hDYWxsZWVTYXZlcygp
CiAKKyAgICAjIHg4NiBuZWVkcyB0byBsb2FkIGFyZ3VtZW50cyBmcm9tIHRoZSBzdGFjawogICAg
IGlmIFg4NiBvciBYODZfV0lOCi0gICAgICAgIGxvYWRwIDEyW2Nmcl0sIHZtCi0gICAgICAgIGxv
YWRwIDhbY2ZyXSwgZW50cnkKKyAgICAgICAgbG9hZHAgMTZbY2ZyXSwgYTIKKyAgICAgICAgbG9h
ZHAgMTJbY2ZyXSwgYTEKKyAgICAgICAgbG9hZHAgOFtjZnJdLCBhMAogICAgIGVuZAogCisgICAg
Y29uc3QgZW50cnkgPSBhMAorICAgIGNvbnN0IHZtID0gYTEKKyAgICBjb25zdCBwcm90b0NhbGxG
cmFtZSA9IGEyCisKKyAgICAjIFdlIGFyZSB1c2luZyB0MywgdDQgYW5kIHQ1IGFzIHRlbXBvcmFy
aWVzIHRocm91Z2ggdGhlIGZ1bmN0aW9uLgorICAgICMgU2luY2Ugd2UgaGF2ZSB0aGUgZ3VhcmFu
dGVlIHRoYXQgdFggIT0gYVkgd2hlbiBYICE9IFksIHdlIGFyZSBzYWZlIGZyb20KKyAgICAjIGFs
aWFzaW5nIHByb2JsZW1zIHdpdGggb3VyIGFyZ3VtZW50cy4KKwogICAgIGlmIEFSTXY3Ci0gICAg
ICAgIHZtRW50cnlSZWNvcmQoY2ZyLCB0ZW1wMSkKLSAgICAgICAgbW92ZSB0ZW1wMSwgc3AKKyAg
ICAgICAgdm1FbnRyeVJlY29yZChjZnIsIHQzKQorICAgICAgICBtb3ZlIHQzLCBzcAogICAgIGVs
c2UKICAgICAgICAgdm1FbnRyeVJlY29yZChjZnIsIHNwKQogICAgIGVuZAogCiAgICAgc3RvcmVw
IHZtLCBWTUVudHJ5UmVjb3JkOjptX3ZtW3NwXQotICAgIGxvYWRwIFZNOjp0b3BDYWxsRnJhbWVb
dm1dLCB0ZW1wMgotICAgIHN0b3JlcCB0ZW1wMiwgVk1FbnRyeVJlY29yZDo6bV9wcmV2VG9wQ2Fs
bEZyYW1lW3NwXQotICAgIGxvYWRwIFZNOjp0b3BWTUVudHJ5RnJhbWVbdm1dLCB0ZW1wMgotICAg
IHN0b3JlcCB0ZW1wMiwgVk1FbnRyeVJlY29yZDo6bV9wcmV2VG9wVk1FbnRyeUZyYW1lW3NwXQor
ICAgIGxvYWRwIFZNOjp0b3BDYWxsRnJhbWVbdm1dLCB0NAorICAgIHN0b3JlcCB0NCwgVk1FbnRy
eVJlY29yZDo6bV9wcmV2VG9wQ2FsbEZyYW1lW3NwXQorICAgIGxvYWRwIFZNOjp0b3BWTUVudHJ5
RnJhbWVbdm1dLCB0NAorICAgIHN0b3JlcCB0NCwgVk1FbnRyeVJlY29yZDo6bV9wcmV2VG9wVk1F
bnRyeUZyYW1lW3NwXQogCiAgICAgIyBBbGlnbiBzdGFjayBwb2ludGVyCiAgICAgaWYgWDg2X1dJ
TgotICAgICAgICBhZGRwIENhbGxGcmFtZUFsaWduU2xvdHMgKiBTbG90U2l6ZSwgc3AsIHRlbXAx
Ci0gICAgICAgIGFuZHAgflN0YWNrQWxpZ25tZW50TWFzaywgdGVtcDEKLSAgICAgICAgc3VicCB0
ZW1wMSwgQ2FsbEZyYW1lQWxpZ25TbG90cyAqIFNsb3RTaXplLCBzcAorICAgICAgICBhZGRwIENh
bGxGcmFtZUFsaWduU2xvdHMgKiBTbG90U2l6ZSwgc3AsIHQzCisgICAgICAgIGFuZHAgflN0YWNr
QWxpZ25tZW50TWFzaywgdDMKKyAgICAgICAgc3VicCB0MywgQ2FsbEZyYW1lQWxpZ25TbG90cyAq
IFNsb3RTaXplLCBzcAogICAgIGVsc2lmIEFSTSBvciBBUk12NyBvciBBUk12N19UUkFESVRJT05B
TAotICAgICAgICBhZGRwIENhbGxGcmFtZUFsaWduU2xvdHMgKiBTbG90U2l6ZSwgc3AsIHRlbXAx
Ci0gICAgICAgIGNscmJwIHRlbXAxLCBTdGFja0FsaWdubWVudE1hc2ssIHRlbXAxCisgICAgICAg
IGFkZHAgQ2FsbEZyYW1lQWxpZ25TbG90cyAqIFNsb3RTaXplLCBzcCwgdDMKKyAgICAgICAgY2xy
YnAgdDMsIFN0YWNrQWxpZ25tZW50TWFzaywgdDMKICAgICAgICAgaWYgQVJNdjcKLSAgICAgICAg
ICAgIHN1YnAgdGVtcDEsIENhbGxGcmFtZUFsaWduU2xvdHMgKiBTbG90U2l6ZSwgdGVtcDEKLSAg
ICAgICAgICAgIG1vdmUgdGVtcDEsIHNwCisgICAgICAgICAgICBzdWJwIHQzLCBDYWxsRnJhbWVB
bGlnblNsb3RzICogU2xvdFNpemUsIHQzCisgICAgICAgICAgICBtb3ZlIHQzLCBzcAogICAgICAg
ICBlbHNlCi0gICAgICAgICAgICBzdWJwIHRlbXAxLCBDYWxsRnJhbWVBbGlnblNsb3RzICogU2xv
dFNpemUsIHNwCisgICAgICAgICAgICBzdWJwIHQzLCBDYWxsRnJhbWVBbGlnblNsb3RzICogU2xv
dFNpemUsIHNwCiAgICAgICAgIGVuZAogICAgIGVuZAogCi0gICAgaWYgWDg2IG9yIFg4Nl9XSU4K
LSAgICAgICAgbG9hZHAgMTZbY2ZyXSwgcHJvdG9DYWxsRnJhbWUKLSAgICBlbmQKLQotICAgIGxv
YWRpIFByb3RvQ2FsbEZyYW1lOjpwYWRkZWRBcmdDb3VudFtwcm90b0NhbGxGcmFtZV0sIHRlbXAy
Ci0gICAgYWRkcCBDYWxsRnJhbWVIZWFkZXJTbG90cywgdGVtcDIsIHRlbXAyCi0gICAgbHNoaWZ0
cCAzLCB0ZW1wMgotICAgIHN1YnAgc3AsIHRlbXAyLCB0ZW1wMQorICAgIGxvYWRpIFByb3RvQ2Fs
bEZyYW1lOjpwYWRkZWRBcmdDb3VudFtwcm90b0NhbGxGcmFtZV0sIHQ0CisgICAgYWRkcCBDYWxs
RnJhbWVIZWFkZXJTbG90cywgdDQsIHQ0CisgICAgbHNoaWZ0cCAzLCB0NAorICAgIHN1YnAgc3As
IHQ0LCB0MwogCiAgICAgIyBFbnN1cmUgdGhhdCB3ZSBoYXZlIGVub3VnaCBhZGRpdGlvbmFsIHN0
YWNrIGNhcGFjaXR5IGZvciB0aGUgaW5jb21pbmcgYXJncywKICAgICAjIGFuZCB0aGUgZnJhbWUg
Zm9yIHRoZSBKUyBjb2RlIHdlJ3JlIGV4ZWN1dGluZy4gV2UgbmVlZCB0byBkbyB0aGlzIGNoZWNr
CiAgICAgIyBiZWZvcmUgd2Ugc3RhcnQgY29weWluZyB0aGUgYXJncyBmcm9tIHRoZSBwcm90b0Nh
bGxGcmFtZSBiZWxvdy4KLSAgICBicGFlcSB0ZW1wMSwgVk06Om1fanNTdGFja0xpbWl0W3ZtXSwg
LnN0YWNrSGVpZ2h0T0sKKyAgICBicGFlcSB0MywgVk06Om1fanNTdGFja0xpbWl0W3ZtXSwgLnN0
YWNrSGVpZ2h0T0sKIAogICAgIGlmIENfTE9PUAotICAgICAgICBtb3ZlIGVudHJ5LCB0ZW1wMgot
ICAgICAgICBtb3ZlIHZtLCB0ZW1wMwotICAgICAgICBjbG9vcENhbGxTbG93UGF0aCBfbGxpbnRf
c3RhY2tfY2hlY2tfYXRfdm1fZW50cnksIHZtLCB0ZW1wMQorICAgICAgICBtb3ZlIGVudHJ5LCB0
NAorICAgICAgICBtb3ZlIHZtLCB0NQorICAgICAgICBjbG9vcENhbGxTbG93UGF0aCBfbGxpbnRf
c3RhY2tfY2hlY2tfYXRfdm1fZW50cnksIHZtLCB0MwogICAgICAgICBicGVxIHQwLCAwLCAuc3Rh
Y2tDaGVja0ZhaWxlZAotICAgICAgICBtb3ZlIHRlbXAyLCBlbnRyeQotICAgICAgICBtb3ZlIHRl
bXAzLCB2bQorICAgICAgICBtb3ZlIHQ0LCBlbnRyeQorICAgICAgICBtb3ZlIHQ1LCB2bQogICAg
ICAgICBqbXAgLnN0YWNrSGVpZ2h0T0sKIAogLnN0YWNrQ2hlY2tGYWlsZWQ6Ci0gICAgICAgIG1v
dmUgdGVtcDIsIGVudHJ5Ci0gICAgICAgIG1vdmUgdGVtcDMsIHZtCisgICAgICAgIG1vdmUgdDQs
IGVudHJ5CisgICAgICAgIG1vdmUgdDUsIHZtCiAgICAgZW5kCiAKICAgICBzdWJwIDgsIHNwICMg
QWxpZ24gc3RhY2sgZm9yIGNDYWxsMigpIHRvIG1ha2UgYSBjYWxsLgotICAgIGNDYWxsMihfbGxp
bnRfdGhyb3dfc3RhY2tfb3ZlcmZsb3dfZXJyb3IsIHZtLCBwcm90b0NhbGxGcmFtZSkKKyAgICBt
b3ZlIHZtLCBhMAorICAgIG1vdmUgcHJvdG9DYWxsRnJhbWUsIGExCisgICAgY0NhbGwyKF9sbGlu
dF90aHJvd19zdGFja19vdmVyZmxvd19lcnJvcikKIAogICAgIGlmIEFSTXY3Ci0gICAgICAgIHZt
RW50cnlSZWNvcmQoY2ZyLCB0ZW1wMSkKLSAgICAgICAgbW92ZSB0ZW1wMSwgc3AKKyAgICAgICAg
dm1FbnRyeVJlY29yZChjZnIsIHQzKQorICAgICAgICBtb3ZlIHQzLCBzcAogICAgIGVsc2UKICAg
ICAgICAgdm1FbnRyeVJlY29yZChjZnIsIHNwKQogICAgIGVuZAogCi0gICAgbG9hZHAgVk1FbnRy
eVJlY29yZDo6bV92bVtzcF0sIHRlbXAzCi0gICAgbG9hZHAgVk1FbnRyeVJlY29yZDo6bV9wcmV2
VG9wQ2FsbEZyYW1lW3NwXSwgdGVtcDQKLSAgICBzdG9yZXAgdGVtcDQsIFZNOjp0b3BDYWxsRnJh
bWVbdGVtcDNdCi0gICAgbG9hZHAgVk1FbnRyeVJlY29yZDo6bV9wcmV2VG9wVk1FbnRyeUZyYW1l
W3NwXSwgdGVtcDQKLSAgICBzdG9yZXAgdGVtcDQsIFZNOjp0b3BWTUVudHJ5RnJhbWVbdGVtcDNd
CisgICAgbG9hZHAgVk1FbnRyeVJlY29yZDo6bV92bVtzcF0sIHQ1CisgICAgbG9hZHAgVk1FbnRy
eVJlY29yZDo6bV9wcmV2VG9wQ2FsbEZyYW1lW3NwXSwgdDQKKyAgICBzdG9yZXAgdDQsIFZNOjp0
b3BDYWxsRnJhbWVbdDVdCisgICAgbG9hZHAgVk1FbnRyeVJlY29yZDo6bV9wcmV2VG9wVk1FbnRy
eUZyYW1lW3NwXSwgdDQKKyAgICBzdG9yZXAgdDQsIFZNOjp0b3BWTUVudHJ5RnJhbWVbdDVdCiAK
ICAgICBpZiBBUk12NwotICAgICAgICBzdWJwIGNmciwgQ2FsbGVlUmVnaXN0ZXJTYXZlU2l6ZSwg
dGVtcDMKLSAgICAgICAgbW92ZSB0ZW1wMywgc3AKKyAgICAgICAgc3VicCBjZnIsIENhbGxlZVJl
Z2lzdGVyU2F2ZVNpemUsIHQ1CisgICAgICAgIG1vdmUgdDUsIHNwCiAgICAgZWxzZQogICAgICAg
ICBzdWJwIGNmciwgQ2FsbGVlUmVnaXN0ZXJTYXZlU2l6ZSwgc3AKICAgICBlbmQKQEAgLTI4Nyw2
MyArMTk4LDYzIEBAIG1hY3JvIGRvVk1FbnRyeShtYWtlQ2FsbCkKICAgICByZXQKIAogLnN0YWNr
SGVpZ2h0T0s6Ci0gICAgbW92ZSB0ZW1wMSwgc3AKLSAgICBtb3ZlIDQsIHRlbXAxCisgICAgbW92
ZSB0Mywgc3AKKyAgICBtb3ZlIDQsIHQzCiAKIC5jb3B5SGVhZGVyTG9vcDoKLSAgICBzdWJpIDEs
IHRlbXAxCi0gICAgbG9hZGkgVGFnT2Zmc2V0W3Byb3RvQ2FsbEZyYW1lLCB0ZW1wMSwgOF0sIHRl
bXAzCi0gICAgc3RvcmVpIHRlbXAzLCBUYWdPZmZzZXQgKyBDb2RlQmxvY2tbc3AsIHRlbXAxLCA4
XQotICAgIGxvYWRpIFBheWxvYWRPZmZzZXRbcHJvdG9DYWxsRnJhbWUsIHRlbXAxLCA4XSwgdGVt
cDMKLSAgICBzdG9yZWkgdGVtcDMsIFBheWxvYWRPZmZzZXQgKyBDb2RlQmxvY2tbc3AsIHRlbXAx
LCA4XQotICAgIGJ0aW56IHRlbXAxLCAuY29weUhlYWRlckxvb3AKLQotICAgIGxvYWRpIFBheWxv
YWRPZmZzZXQgKyBQcm90b0NhbGxGcmFtZTo6YXJnQ291bnRBbmRDb2RlT3JpZ2luVmFsdWVbcHJv
dG9DYWxsRnJhbWVdLCB0ZW1wMgotICAgIHN1YmkgMSwgdGVtcDIKLSAgICBsb2FkaSBQcm90b0Nh
bGxGcmFtZTo6cGFkZGVkQXJnQ291bnRbcHJvdG9DYWxsRnJhbWVdLCB0ZW1wMwotICAgIHN1Ymkg
MSwgdGVtcDMKLQotICAgIGJpZXEgdGVtcDIsIHRlbXAzLCAuY29weUFyZ3MKKyAgICBzdWJpIDEs
IHQzCisgICAgbG9hZGkgVGFnT2Zmc2V0W3Byb3RvQ2FsbEZyYW1lLCB0MywgOF0sIHQ1CisgICAg
c3RvcmVpIHQ1LCBUYWdPZmZzZXQgKyBDb2RlQmxvY2tbc3AsIHQzLCA4XQorICAgIGxvYWRpIFBh
eWxvYWRPZmZzZXRbcHJvdG9DYWxsRnJhbWUsIHQzLCA4XSwgdDUKKyAgICBzdG9yZWkgdDUsIFBh
eWxvYWRPZmZzZXQgKyBDb2RlQmxvY2tbc3AsIHQzLCA4XQorICAgIGJ0aW56IHQzLCAuY29weUhl
YWRlckxvb3AKKworICAgIGxvYWRpIFBheWxvYWRPZmZzZXQgKyBQcm90b0NhbGxGcmFtZTo6YXJn
Q291bnRBbmRDb2RlT3JpZ2luVmFsdWVbcHJvdG9DYWxsRnJhbWVdLCB0NAorICAgIHN1YmkgMSwg
dDQKKyAgICBsb2FkaSBQcm90b0NhbGxGcmFtZTo6cGFkZGVkQXJnQ291bnRbcHJvdG9DYWxsRnJh
bWVdLCB0NQorICAgIHN1YmkgMSwgdDUKKworICAgIGJpZXEgdDQsIHQ1LCAuY29weUFyZ3MKIC5m
aWxsRXh0cmFBcmdzTG9vcDoKLSAgICBzdWJpIDEsIHRlbXAzCi0gICAgc3RvcmVpIFVuZGVmaW5l
ZFRhZywgVGhpc0FyZ3VtZW50T2Zmc2V0ICsgOCArIFRhZ09mZnNldFtzcCwgdGVtcDMsIDhdCi0g
ICAgc3RvcmVpIDAsIFRoaXNBcmd1bWVudE9mZnNldCArIDggKyBQYXlsb2FkT2Zmc2V0W3NwLCB0
ZW1wMywgOF0KLSAgICBiaW5lcSB0ZW1wMiwgdGVtcDMsIC5maWxsRXh0cmFBcmdzTG9vcAorICAg
IHN1YmkgMSwgdDUKKyAgICBzdG9yZWkgVW5kZWZpbmVkVGFnLCBUaGlzQXJndW1lbnRPZmZzZXQg
KyA4ICsgVGFnT2Zmc2V0W3NwLCB0NSwgOF0KKyAgICBzdG9yZWkgMCwgVGhpc0FyZ3VtZW50T2Zm
c2V0ICsgOCArIFBheWxvYWRPZmZzZXRbc3AsIHQ1LCA4XQorICAgIGJpbmVxIHQ0LCB0NSwgLmZp
bGxFeHRyYUFyZ3NMb29wCiAKIC5jb3B5QXJnczoKLSAgICBsb2FkcCBQcm90b0NhbGxGcmFtZTo6
YXJnc1twcm90b0NhbGxGcmFtZV0sIHRlbXAxCisgICAgbG9hZHAgUHJvdG9DYWxsRnJhbWU6OmFy
Z3NbcHJvdG9DYWxsRnJhbWVdLCB0MwogCiAuY29weUFyZ3NMb29wOgotICAgIGJ0aXogdGVtcDIs
IC5jb3B5QXJnc0RvbmUKLSAgICBzdWJpIDEsIHRlbXAyCi0gICAgbG9hZGkgVGFnT2Zmc2V0W3Rl
bXAxLCB0ZW1wMiwgOF0sIHRlbXAzCi0gICAgc3RvcmVpIHRlbXAzLCBUaGlzQXJndW1lbnRPZmZz
ZXQgKyA4ICsgVGFnT2Zmc2V0W3NwLCB0ZW1wMiwgOF0KLSAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0
W3RlbXAxLCB0ZW1wMiwgOF0sIHRlbXAzCi0gICAgc3RvcmVpIHRlbXAzLCBUaGlzQXJndW1lbnRP
ZmZzZXQgKyA4ICsgUGF5bG9hZE9mZnNldFtzcCwgdGVtcDIsIDhdCisgICAgYnRpeiB0NCwgLmNv
cHlBcmdzRG9uZQorICAgIHN1YmkgMSwgdDQKKyAgICBsb2FkaSBUYWdPZmZzZXRbdDMsIHQ0LCA4
XSwgdDUKKyAgICBzdG9yZWkgdDUsIFRoaXNBcmd1bWVudE9mZnNldCArIDggKyBUYWdPZmZzZXRb
c3AsIHQ0LCA4XQorICAgIGxvYWRpIFBheWxvYWRPZmZzZXRbdDMsIHQ0LCA4XSwgdDUKKyAgICBz
dG9yZWkgdDUsIFRoaXNBcmd1bWVudE9mZnNldCArIDggKyBQYXlsb2FkT2Zmc2V0W3NwLCB0NCwg
OF0KICAgICBqbXAgLmNvcHlBcmdzTG9vcAogCiAuY29weUFyZ3NEb25lOgogICAgIHN0b3JlcCBz
cCwgVk06OnRvcENhbGxGcmFtZVt2bV0KICAgICBzdG9yZXAgY2ZyLCBWTTo6dG9wVk1FbnRyeUZy
YW1lW3ZtXQogCi0gICAgbWFrZUNhbGwoZW50cnksIHRlbXAxLCB0ZW1wMikKKyAgICBtYWtlQ2Fs
bChlbnRyeSwgdDMsIHQ0KQogCiAgICAgaWYgQVJNdjcKLSAgICAgICAgdm1FbnRyeVJlY29yZChj
ZnIsIHRlbXAxKQotICAgICAgICBtb3ZlIHRlbXAxLCBzcAorICAgICAgICB2bUVudHJ5UmVjb3Jk
KGNmciwgdDMpCisgICAgICAgIG1vdmUgdDMsIHNwCiAgICAgZWxzZQogICAgICAgICB2bUVudHJ5
UmVjb3JkKGNmciwgc3ApCiAgICAgZW5kCiAKLSAgICBsb2FkcCBWTUVudHJ5UmVjb3JkOjptX3Zt
W3NwXSwgdGVtcDMKLSAgICBsb2FkcCBWTUVudHJ5UmVjb3JkOjptX3ByZXZUb3BDYWxsRnJhbWVb
c3BdLCB0ZW1wNAotICAgIHN0b3JlcCB0ZW1wNCwgVk06OnRvcENhbGxGcmFtZVt0ZW1wM10KLSAg
ICBsb2FkcCBWTUVudHJ5UmVjb3JkOjptX3ByZXZUb3BWTUVudHJ5RnJhbWVbc3BdLCB0ZW1wNAot
ICAgIHN0b3JlcCB0ZW1wNCwgVk06OnRvcFZNRW50cnlGcmFtZVt0ZW1wM10KKyAgICBsb2FkcCBW
TUVudHJ5UmVjb3JkOjptX3ZtW3NwXSwgdDUKKyAgICBsb2FkcCBWTUVudHJ5UmVjb3JkOjptX3By
ZXZUb3BDYWxsRnJhbWVbc3BdLCB0NAorICAgIHN0b3JlcCB0NCwgVk06OnRvcENhbGxGcmFtZVt0
NV0KKyAgICBsb2FkcCBWTUVudHJ5UmVjb3JkOjptX3ByZXZUb3BWTUVudHJ5RnJhbWVbc3BdLCB0
NAorICAgIHN0b3JlcCB0NCwgVk06OnRvcFZNRW50cnlGcmFtZVt0NV0KIAogICAgIGlmIEFSTXY3
Ci0gICAgICAgIHN1YnAgY2ZyLCBDYWxsZWVSZWdpc3RlclNhdmVTaXplLCB0ZW1wMwotICAgICAg
ICBtb3ZlIHRlbXAzLCBzcAorICAgICAgICBzdWJwIGNmciwgQ2FsbGVlUmVnaXN0ZXJTYXZlU2l6
ZSwgdDUKKyAgICAgICAgbW92ZSB0NSwgc3AKICAgICBlbHNlCiAgICAgICAgIHN1YnAgY2ZyLCBD
YWxsZWVSZWdpc3RlclNhdmVTaXplLCBzcAogICAgIGVuZApAQCAtMzU1LDEzICsyNjYsMTMgQEAg
ZW5kCiAKIG1hY3JvIG1ha2VKYXZhU2NyaXB0Q2FsbChlbnRyeSwgdGVtcCwgdW51c2VkKQogICAg
IGFkZHAgQ2FsbGVyRnJhbWVBbmRQQ1NpemUsIHNwCi0gICAgY2hlY2tTdGFja1BvaW50ZXJBbGln
bm1lbnQodDIsIDB4YmFkMGRjMDIpCisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodGVt
cCwgMHhiYWQwZGMwMikKICAgICBpZiBDX0xPT1AKICAgICAgICAgY2xvb3BDYWxsSlNGdW5jdGlv
biBlbnRyeQogICAgIGVsc2UKICAgICAgICAgY2FsbCBlbnRyeQogICAgIGVuZAotICAgIGNoZWNr
U3RhY2tQb2ludGVyQWxpZ25tZW50KHQyLCAweGJhZDBkYzAzKQorICAgIGNoZWNrU3RhY2tQb2lu
dGVyQWxpZ25tZW50KHRlbXAsIDB4YmFkMGRjMDMpCiAgICAgc3VicCBDYWxsZXJGcmFtZUFuZFBD
U2l6ZSwgc3AKIGVuZAogCkBAIC0zNzYsOSArMjg3LDkgQEAgbWFjcm8gbWFrZUhvc3RGdW5jdGlv
bkNhbGwoZW50cnksIHRlbXAxLCB0ZW1wMikKICAgICAgICAgIyBQdXQgY2FsbGVlIGZyYW1lIHBv
aW50ZXIgb24gc3RhY2sgYXMgYXJnMCwgYWxzbyBwdXQgaXQgaW4gZWN4IGZvciAiZmFzdGNhbGwi
IHRhcmdldHMKICAgICAgICAgbW92ZSAwLCB0ZW1wMgogICAgICAgICBtb3ZlIHRlbXAyLCA0W3Nw
XSAjIHB1dCAwIGluIFJldHVyblBDCi0gICAgICAgIG1vdmUgc3AsIHQyICMgdDIgaXMgZWN4Cisg
ICAgICAgIG1vdmUgc3AsIGEwICMgYTAgaXMgZWN4CiAgICAgICAgIHB1c2ggdGVtcDIgIyBQdXNo
IGR1bW15IGFyZzEKLSAgICAgICAgcHVzaCB0MgorICAgICAgICBwdXNoIGEwCiAgICAgICAgIGNh
bGwgdGVtcDEKICAgICAgICAgYWRkcCA4LCBzcAogICAgIGVsc2UKQEAgLTQyOSwzMSArMzQwLDQz
IEBAIGVuZAogIyBkZWJ1Z2dpbmcgZnJvbS4gb3BlcmFuZCBzaG91bGQgbGlrZXdpc2UgYmUgYW4g
aW1tZWRpYXRlLCBhbmQgc2hvdWxkIGlkZW50aWZ5IHRoZSBvcGVyYW5kCiAjIGluIHRoZSBpbnN0
cnVjdGlvbiBzdHJlYW0geW91J2QgbGlrZSB0byBwcmludCBvdXQuCiBtYWNybyB0cmFjZU9wZXJh
bmQoZnJvbVdoZXJlLCBvcGVyYW5kKQotICAgIGNDYWxsNChfbGxpbnRfdHJhY2Vfb3BlcmFuZCwg
Y2ZyLCBQQywgZnJvbVdoZXJlLCBvcGVyYW5kKQotICAgIG1vdmUgdDAsIFBDCi0gICAgbW92ZSB0
MSwgY2ZyCisgICAgbW92ZSBmcm9tV2hlcmUsIGEyCisgICAgbW92ZSBvcGVyYW5kLCBhMworICAg
IG1vdmUgY2ZyLCBhMAorICAgIG1vdmUgUEMsIGExCisgICAgY0NhbGw0KF9sbGludF90cmFjZV9v
cGVyYW5kKQorICAgIG1vdmUgcjAsIFBDCisgICAgbW92ZSByMSwgY2ZyCiBlbmQKIAogIyBEZWJ1
Z2dpbmcgb3BlcmF0aW9uIGlmIHlvdSdkIGxpa2UgdG8gcHJpbnQgdGhlIHZhbHVlIG9mIGFuIG9w
ZXJhbmQgaW4gdGhlIGluc3RydWN0aW9uCiAjIHN0cmVhbS4gU2FtZSBhcyB0cmFjZU9wZXJhbmQo
KSwgYnV0IGFzc3VtZXMgdGhhdCB0aGUgb3BlcmFuZCBpcyBhIHJlZ2lzdGVyLCBhbmQgcHJpbnRz
IGl0cwogIyB2YWx1ZS4KIG1hY3JvIHRyYWNlVmFsdWUoZnJvbVdoZXJlLCBvcGVyYW5kKQotICAg
IGNDYWxsNChfbGxpbnRfdHJhY2VfdmFsdWUsIGNmciwgUEMsIGZyb21XaGVyZSwgb3BlcmFuZCkK
LSAgICBtb3ZlIHQwLCBQQwotICAgIG1vdmUgdDEsIGNmcgorICAgIG1vdmUgZnJvbVdoZXJlLCBh
MgorICAgIG1vdmUgb3BlcmFuZCwgYTMKKyAgICBtb3ZlIGNmciwgYTAKKyAgICBtb3ZlIFBDLCBh
MQorICAgIGNDYWxsNChfbGxpbnRfdHJhY2VfdmFsdWUpCisgICAgbW92ZSByMCwgUEMKKyAgICBt
b3ZlIHIxLCBjZnIKIGVuZAogCiAjIENhbGwgYSBzbG93UGF0aCBmb3IgY2FsbCBvcGNvZGVzLgog
bWFjcm8gY2FsbENhbGxTbG93UGF0aChzbG93UGF0aCwgYWN0aW9uKQogICAgIHN0b3JlcCBQQywg
QXJndW1lbnRDb3VudCArIFRhZ09mZnNldFtjZnJdCi0gICAgY0NhbGwyKHNsb3dQYXRoLCBjZnIs
IFBDKQotICAgIGFjdGlvbih0MCkKKyAgICBtb3ZlIGNmciwgYTAKKyAgICBtb3ZlIFBDLCBhMQor
ICAgIGNDYWxsMihzbG93UGF0aCkKKyAgICBhY3Rpb24ocjAsIHIxKQogZW5kCiAKIG1hY3JvIGNh
bGxXYXRjaGRvZ1RpbWVySGFuZGxlcih0aHJvd0hhbmRsZXIpCiAgICAgc3RvcmVpIFBDLCBBcmd1
bWVudENvdW50ICsgVGFnT2Zmc2V0W2Nmcl0KLSAgICBjQ2FsbDIoX2xsaW50X3Nsb3dfcGF0aF9o
YW5kbGVfd2F0Y2hkb2dfdGltZXIsIGNmciwgUEMpCi0gICAgYnRwbnogdDAsIHRocm93SGFuZGxl
cgorICAgIG1vdmUgY2ZyLCBhMAorICAgIG1vdmUgUEMsIGExCisgICAgY0NhbGwyKF9sbGludF9z
bG93X3BhdGhfaGFuZGxlX3dhdGNoZG9nX3RpbWVyKQorICAgIGJ0cG56IHIwLCB0aHJvd0hhbmRs
ZXIKICAgICBsb2FkaSBBcmd1bWVudENvdW50ICsgVGFnT2Zmc2V0W2Nmcl0sIFBDCiBlbmQKIApA
QCAtNDYyLDEwICszODUsMTIgQEAgbWFjcm8gY2hlY2tTd2l0Y2hUb0pJVEZvckxvb3AoKQogICAg
ICAgICAxLAogICAgICAgICBtYWNybyAoKQogICAgICAgICAgICAgc3RvcmVpIFBDLCBBcmd1bWVu
dENvdW50ICsgVGFnT2Zmc2V0W2Nmcl0KLSAgICAgICAgICAgIGNDYWxsMihfbGxpbnRfbG9vcF9v
c3IsIGNmciwgUEMpCi0gICAgICAgICAgICBidHB6IHQwLCAucmVjb3ZlcgotICAgICAgICAgICAg
bW92ZSB0MSwgc3AKLSAgICAgICAgICAgIGptcCB0MAorICAgICAgICAgICAgbW92ZSBjZnIsIGEw
CisgICAgICAgICAgICBtb3ZlIFBDLCBhMQorICAgICAgICAgICAgY0NhbGwyKF9sbGludF9sb29w
X29zcikKKyAgICAgICAgICAgIGJ0cHogcjAsIC5yZWNvdmVyCisgICAgICAgICAgICBtb3ZlIHIx
LCBzcAorICAgICAgICAgICAgam1wIHIwCiAgICAgICAgIC5yZWNvdmVyOgogICAgICAgICAgICAg
bG9hZGkgQXJndW1lbnRDb3VudCArIFRhZ09mZnNldFtjZnJdLCBQQwogICAgICAgICBlbmQpCkBA
IC01NzYsNyArNTAxLDkgQEAgbWFjcm8gd3JpdGVCYXJyaWVyT25PcGVyYW5kKGNlbGxPcGVyYW5k
KQogICAgICAgICAgICAgICAgIHB1c2ggY2ZyLCBQQwogICAgICAgICAgICAgICAgICMgV2UgbWFr
ZSB0d28gZXh0cmEgc2xvdHMgYmVjYXVzZSBjQ2FsbDIgd2lsbCBwb2tlLgogICAgICAgICAgICAg
ICAgIHN1YnAgOCwgc3AKLSAgICAgICAgICAgICAgICBjQ2FsbDJWb2lkKF9sbGludF93cml0ZV9i
YXJyaWVyX3Nsb3csIGNmciwgdDIpCisgICAgICAgICAgICAgICAgbW92ZSB0MiwgYTEgIyB0MiBj
YW4gYmUgYTAgb24geDg2CisgICAgICAgICAgICAgICAgbW92ZSBjZnIsIGEwCisgICAgICAgICAg
ICAgICAgY0NhbGwyVm9pZChfbGxpbnRfd3JpdGVfYmFycmllcl9zbG93KQogICAgICAgICAgICAg
ICAgIGFkZHAgOCwgc3AKICAgICAgICAgICAgICAgICBwb3AgUEMsIGNmcgogICAgICAgICAgICAg
ZW5kCkBAIC02MTAsNyArNTM3LDkgQEAgbWFjcm8gd3JpdGVCYXJyaWVyT25HbG9iYWxPYmplY3Qo
dmFsdWVPcGVyYW5kKQogICAgICAgICAgICAgICAgIHB1c2ggY2ZyLCBQQwogICAgICAgICAgICAg
ICAgICMgV2UgbWFrZSB0d28gZXh0cmEgc2xvdHMgYmVjYXVzZSBjQ2FsbDIgd2lsbCBwb2tlLgog
ICAgICAgICAgICAgICAgIHN1YnAgOCwgc3AKLSAgICAgICAgICAgICAgICBjQ2FsbDJWb2lkKF9s
bGludF93cml0ZV9iYXJyaWVyX3Nsb3csIGNmciwgdDMpCisgICAgICAgICAgICAgICAgbW92ZSBj
ZnIsIGEwCisgICAgICAgICAgICAgICAgbW92ZSB0MywgYTEKKyAgICAgICAgICAgICAgICBjQ2Fs
bDJWb2lkKF9sbGludF93cml0ZV9iYXJyaWVyX3Nsb3cpCiAgICAgICAgICAgICAgICAgYWRkcCA4
LCBzcAogICAgICAgICAgICAgICAgIHBvcCBQQywgY2ZyCiAgICAgICAgICAgICBlbmQKQEAgLTYz
MiwxOSArNTYxLDIxIEBAIGVuZAogbWFjcm8gZnVuY3Rpb25Bcml0eUNoZWNrKGRvbmVMYWJlbCwg
c2xvd1BhdGgpCiAgICAgbG9hZGkgUGF5bG9hZE9mZnNldCArIEFyZ3VtZW50Q291bnRbY2ZyXSwg
dDAKICAgICBiaWFlcSB0MCwgQ29kZUJsb2NrOjptX251bVBhcmFtZXRlcnNbdDFdLCBkb25lTGFi
ZWwKLSAgICBjQ2FsbDIoc2xvd1BhdGgsIGNmciwgUEMpICAgIyBUaGlzIHNsb3dQYXRoIGhhcyBh
IHNpbXBsZSBwcm90b2NvbDogdDAgPSAwID0+IG5vIGVycm9yLCB0MCAhPSAwID0+IGVycm9yCi0g
ICAgYnRpeiB0MCwgLm5vRXJyb3IKLSAgICBtb3ZlIHQxLCBjZnIgICAjIHQxIGNvbnRhaW5zIGNh
bGxlciBmcmFtZQorICAgIG1vdmUgY2ZyLCBhMAorICAgIG1vdmUgUEMsIGExCisgICAgY0NhbGwy
KHNsb3dQYXRoKSAgICMgVGhpcyBzbG93UGF0aCBoYXMgYSBzaW1wbGUgcHJvdG9jb2w6IHQwID0g
MCA9PiBubyBlcnJvciwgdDAgIT0gMCA9PiBlcnJvcgorICAgIGJ0aXogcjAsIC5ub0Vycm9yCisg
ICAgbW92ZSByMSwgY2ZyICAgIyByMSBjb250YWlucyBjYWxsZXIgZnJhbWUKICAgICBqbXAgX2xs
aW50X3Rocm93X2Zyb21fc2xvd19wYXRoX3RyYW1wb2xpbmUKIAogLm5vRXJyb3I6Ci0gICAgIyB0
MSBwb2ludHMgdG8gQXJpdHlDaGVja0RhdGEuCi0gICAgbG9hZHAgQ29tbW9uU2xvd1BhdGhzOjpB
cml0eUNoZWNrRGF0YTo6dGh1bmtUb0NhbGxbdDFdLCB0MgotICAgIGJ0cHogdDIsIC5wcm9jZWVk
SW5saW5lCisgICAgIyByMSBwb2ludHMgdG8gQXJpdHlDaGVja0RhdGEuCisgICAgbG9hZHAgQ29t
bW9uU2xvd1BhdGhzOjpBcml0eUNoZWNrRGF0YTo6dGh1bmtUb0NhbGxbcjFdLCB0MworICAgIGJ0
cHogdDMsIC5wcm9jZWVkSW5saW5lCiAgICAgCi0gICAgbG9hZHAgQ29tbW9uU2xvd1BhdGhzOjpB
cml0eUNoZWNrRGF0YTo6cmV0dXJuUENbdDFdLCB0NQotICAgIGxvYWRwIENvbW1vblNsb3dQYXRo
czo6QXJpdHlDaGVja0RhdGE6OnBhZGRlZFN0YWNrU3BhY2VbdDFdLCB0MAotICAgIGNhbGwgdDIK
KyAgICBsb2FkcCBDb21tb25TbG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRhOjpwYWRkZWRTdGFja1Nw
YWNlW3IxXSwgYTAKKyAgICBsb2FkcCBDb21tb25TbG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRhOjpy
ZXR1cm5QQ1tyMV0sIGExCisgICAgY2FsbCB0MwogICAgIGlmIEFTU0VSVF9FTkFCTEVECiAgICAg
ICAgIGxvYWRwIFJldHVyblBDW2Nmcl0sIHQwCiAgICAgICAgIGxvYWRwIFt0MF0sIHQwCkBAIC02
NTIsNyArNTgzLDcgQEAgbWFjcm8gZnVuY3Rpb25Bcml0eUNoZWNrKGRvbmVMYWJlbCwgc2xvd1Bh
dGgpCiAgICAgam1wIC5jb250aW51ZQogCiAucHJvY2VlZElubGluZToKLSAgICBsb2FkaSBDb21t
b25TbG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRhOjpwYWRkZWRTdGFja1NwYWNlW3QxXSwgdDEKKyAg
ICBsb2FkaSBDb21tb25TbG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRhOjpwYWRkZWRTdGFja1NwYWNl
W3IxXSwgdDEKICAgICBidGl6IHQxLCAuY29udGludWUKIAogICAgIC8vIE1vdmUgZnJhbWUgdXAg
InQxICogMiIgc2xvdHMKQEAgLTIwMDUsOCArMTkzNiw4IEBAIG1hY3JvIG5hdGl2ZUNhbGxUcmFt
cG9saW5lKGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uKQogICAgICAgICBhbmRwIE1hcmtlZEJs
b2NrTWFzaywgdDEKICAgICAgICAgbG9hZHAgTWFya2VkQmxvY2s6Om1fd2Vha1NldCArIFdlYWtT
ZXQ6Om1fdm1bdDFdLCB0MwogICAgICAgICBzdG9yZXAgY2ZyLCBWTTo6dG9wQ2FsbEZyYW1lW3Qz
XQotICAgICAgICBtb3ZlIGNmciwgdDIgICMgdDIgPSBlY3gKLSAgICAgICAgc3RvcmVwIHQyLCBb
c3BdCisgICAgICAgIG1vdmUgY2ZyLCBhMCAgIyBhMCA9IGVjeAorICAgICAgICBzdG9yZXAgYTAs
IFtzcF0KICAgICAgICAgbG9hZGkgQ2FsbGVlICsgUGF5bG9hZE9mZnNldFtjZnJdLCB0MQogICAg
ICAgICBsb2FkcCBKU0Z1bmN0aW9uOjptX2V4ZWN1dGFibGVbdDFdLCB0MQogICAgICAgICBjaGVj
a1N0YWNrUG9pbnRlckFsaWdubWVudCh0MywgMHhkZWFkMDAwMSkKQEAgLTIwMjEsMTEgKzE5NTIs
NyBAQCBtYWNybyBuYXRpdmVDYWxsVHJhbXBvbGluZShleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlv
bikKICAgICAgICAgYW5kcCBNYXJrZWRCbG9ja01hc2ssIHQxCiAgICAgICAgIGxvYWRwIE1hcmtl
ZEJsb2NrOjptX3dlYWtTZXQgKyBXZWFrU2V0OjptX3ZtW3QxXSwgdDEKICAgICAgICAgc3RvcmVw
IGNmciwgVk06OnRvcENhbGxGcmFtZVt0MV0KLSAgICAgICAgaWYgTUlQUyBvciBTSDQKLSAgICAg
ICAgICAgIG1vdmUgY2ZyLCBhMAotICAgICAgICBlbHNlCi0gICAgICAgICAgICBtb3ZlIGNmciwg
dDAKLSAgICAgICAgZW5kCisgICAgICAgIG1vdmUgY2ZyLCBhMAogICAgICAgICBsb2FkaSBDYWxs
ZWUgKyBQYXlsb2FkT2Zmc2V0W2Nmcl0sIHQxCiAgICAgICAgIGxvYWRwIEpTRnVuY3Rpb246Om1f
ZXhlY3V0YWJsZVt0MV0sIHQxCiAgICAgICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KHQz
LCAweGRlYWQwMDAxKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xv
d0xldmVsSW50ZXJwcmV0ZXI2NC5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93
TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQppbmRleCA0M2U5OTdiLi44ZWY1ZjZjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFz
bQpAQCAtNDYsMTc3ICs0NiwxMjcgQEAgbWFjcm8gZGlzcGF0Y2hBZnRlckNhbGwoKQogICAgIGxv
YWRwIENvZGVCbG9ja1tjZnJdLCBQQgogICAgIGxvYWRwIENvZGVCbG9jazo6bV9pbnN0cnVjdGlv
bnNbUEJdLCBQQgogICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbigxLCB0MSkKLSAgICBzdG9yZXEg
dDAsIFtjZnIsIHQxLCA4XQotICAgIHZhbHVlUHJvZmlsZSh0MCwgKENhbGxPcENvZGVTaXplIC0g
MSksIHQyKQorICAgIHN0b3JlcSByMCwgW2NmciwgdDEsIDhdCisgICAgdmFsdWVQcm9maWxlKHIw
LCAoQ2FsbE9wQ29kZVNpemUgLSAxKSwgdDMpCiAgICAgZGlzcGF0Y2goQ2FsbE9wQ29kZVNpemUp
CiBlbmQKIAotbWFjcm8gY0NhbGwyKGZ1bmN0aW9uLCBhcmcxLCBhcmcyKQorbWFjcm8gY0NhbGwy
KGZ1bmN0aW9uKQogICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KHQ0LCAweGJhZDBjMDAy
KQotICAgIGlmIFg4Nl82NAotICAgICAgICBtb3ZlIGFyZzEsIHQ0Ci0gICAgICAgIG1vdmUgYXJn
MiwgdDUKKyAgICBpZiBYODZfNjQgb3IgQVJNNjQKICAgICAgICAgY2FsbCBmdW5jdGlvbgogICAg
IGVsc2lmIFg4Nl82NF9XSU4KICAgICAgICAgIyBOb3RlOiB0aGlzIGltcGxlbWVudGF0aW9uIGlz
IG9ubHkgY29ycmVjdCBpZiB0aGUgcmV0dXJuIHR5cGUgc2l6ZSBpcyA+IDggYnl0ZXMuCiAgICAg
ICAgICMgU2VlIG1hY3JvIGNDYWxsMlZvaWQgZm9yIGFuIGltcGxlbWVudGF0aW9uIHdoZW4gdGhl
IHJldHVybiB0eXBlIDw9IDggYnl0ZXMuCiAgICAgICAgICMgT24gV2luNjQsIHdoZW4gdGhlIHJl
dHVybiB0eXBlIGlzIGxhcmdlciB0aGFuIDggYnl0ZXMsIHdlIG5lZWQgdG8gYWxsb2NhdGUgc3Bh
Y2Ugb24gdGhlIHN0YWNrIGZvciB0aGUgcmV0dXJuIHZhbHVlLgotICAgICAgICAjIE9uIGVudHJ5
IHJjeCAodDIpLCBzaG91bGQgY29udGFpbiBhIHBvaW50ZXIgdG8gdGhpcyBzdGFjayBzcGFjZS4g
VGhlIG90aGVyIHBhcmFtZXRlcnMgYXJlIHNoaWZ0ZWQgdG8gdGhlIHJpZ2h0LAotICAgICAgICAj
IHJkeCAodDEpIHNob3VsZCBjb250YWluIHRoZSBmaXJzdCBhcmd1bWVudCwgYW5kIHI4ICh0Nikg
c2hvdWxkIGNvbnRhaW4gdGhlIHNlY29uZCBhcmd1bWVudC4KLSAgICAgICAgIyBPbiByZXR1cm4s
IHJheCBjb250YWlucyBhIHBvaW50ZXIgdG8gdGhpcyBzdGFjayB2YWx1ZSwgYW5kIHdlIHRoZW4g
bmVlZCB0byBjb3B5IHRoZSAxNiBieXRlIHJldHVybiB2YWx1ZSBpbnRvIHJheCAodDApIGFuZCBy
ZHggKHQxKQorICAgICAgICAjIE9uIGVudHJ5IHJjeCAoYTApLCBzaG91bGQgY29udGFpbiBhIHBv
aW50ZXIgdG8gdGhpcyBzdGFjayBzcGFjZS4gVGhlIG90aGVyIHBhcmFtZXRlcnMgYXJlIHNoaWZ0
ZWQgdG8gdGhlIHJpZ2h0LAorICAgICAgICAjIHJkeCAoYTEpIHNob3VsZCBjb250YWluIHRoZSBm
aXJzdCBhcmd1bWVudCwgYW5kIHI4IChhMikgc2hvdWxkIGNvbnRhaW4gdGhlIHNlY29uZCBhcmd1
bWVudC4KKyAgICAgICAgIyBPbiByZXR1cm4sIHJheCBjb250YWlucyBhIHBvaW50ZXIgdG8gdGhp
cyBzdGFjayB2YWx1ZSwgYW5kIHdlIHRoZW4gbmVlZCB0byBjb3B5IHRoZSAxNiBieXRlIHJldHVy
biB2YWx1ZSBpbnRvIHJheCAocjApIGFuZCByZHggKHIxKQogICAgICAgICAjIHNpbmNlIHRoZSBy
ZXR1cm4gdmFsdWUgaXMgZXhwZWN0ZWQgdG8gYmUgc3BsaXQgYmV0d2VlbiB0aGUgdHdvLgogICAg
ICAgICAjIFNlZSBodHRwOi8vbXNkbi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvNzU3Mnp0
ejQuYXNweAotICAgICAgICBtb3ZlIGFyZzEsIHQxCi0gICAgICAgIG1vdmUgYXJnMiwgdDYKKyAg
ICAgICAgbW92ZSBhMSwgYTIKKyAgICAgICAgbW92ZSBhMCwgYTEKICAgICAgICAgc3VicCA0OCwg
c3AKLSAgICAgICAgbW92ZSBzcCwgdDIKLSAgICAgICAgYWRkcCAzMiwgdDIKKyAgICAgICAgbW92
ZSBzcCwgYTAKKyAgICAgICAgYWRkcCAzMiwgYTAKICAgICAgICAgY2FsbCBmdW5jdGlvbgogICAg
ICAgICBhZGRwIDQ4LCBzcAotICAgICAgICBtb3ZlIDhbdDBdLCB0MQotICAgICAgICBtb3ZlIFt0
MF0sIHQwCi0gICAgZWxzaWYgQVJNNjQKLSAgICAgICAgbW92ZSBhcmcxLCB0MAotICAgICAgICBt
b3ZlIGFyZzIsIHQxCi0gICAgICAgIGNhbGwgZnVuY3Rpb24KKyAgICAgICAgbW92ZSA4W3IwXSwg
cjEKKyAgICAgICAgbW92ZSBbcjBdLCByMAogICAgIGVsc2lmIENfTE9PUAotICAgICAgICBjbG9v
cENhbGxTbG93UGF0aCBmdW5jdGlvbiwgYXJnMSwgYXJnMgorICAgICAgICBjbG9vcENhbGxTbG93
UGF0aCBmdW5jdGlvbiwgYTAsIGExCiAgICAgZWxzZQogICAgICAgICBlcnJvcgogICAgIGVuZAog
ZW5kCiAKLW1hY3JvIGNDYWxsMlZvaWQoZnVuY3Rpb24sIGFyZzEsIGFyZzIpCittYWNybyBjQ2Fs
bDJWb2lkKGZ1bmN0aW9uKQogICAgIGlmIENfTE9PUAotICAgICAgICBjbG9vcENhbGxTbG93UGF0
aFZvaWQgZnVuY3Rpb24sIGFyZzEsIGFyZzIKKyAgICAgICAgY2xvb3BDYWxsU2xvd1BhdGhWb2lk
IGZ1bmN0aW9uLCBhMCwgYTEKICAgICBlbHNpZiBYODZfNjRfV0lOCiAgICAgICAgICMgTm90ZTog
d2UgY2Fubm90IHVzZSB0aGUgY0NhbGwyIG1hY3JvIGZvciBXaW42NCBpbiB0aGlzIGNhc2UsCiAg
ICAgICAgICMgYXMgdGhlIFdpbjY0IGNDYWxsMiBpbXBsZW1lbmF0aW9uIGlzIG9ubHkgY29ycmVj
dCB3aGVuIHRoZSByZXR1cm4gdHlwZSBzaXplIGlzID4gOCBieXRlcy4KICAgICAgICAgIyBPbiBX
aW42NCwgcmN4IGFuZCByZHggYXJlIHVzZWQgZm9yIHBhc3NpbmcgdGhlIGZpcnN0IHR3byBwYXJh
bWV0ZXJzLgogICAgICAgICAjIFdlIGFsc28gbmVlZCB0byBtYWtlIHJvb20gb24gdGhlIHN0YWNr
IGZvciBhbGwgZm91ciBwYXJhbWV0ZXIgcmVnaXN0ZXJzLgogICAgICAgICAjIFNlZSBodHRwOi8v
bXNkbi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvbXMyMzUyODYuYXNweAotICAgICAgICBt
b3ZlIGFyZzIsIHQxCi0gICAgICAgIG1vdmUgYXJnMSwgdDIKICAgICAgICAgc3VicCAzMiwgc3Ag
CiAgICAgICAgIGNhbGwgZnVuY3Rpb24KICAgICAgICAgYWRkcCAzMiwgc3AgCiAgICAgZWxzZQot
ICAgICAgICBjQ2FsbDIoZnVuY3Rpb24sIGFyZzEsIGFyZzIpCisgICAgICAgIGNDYWxsMihmdW5j
dGlvbikKICAgICBlbmQKIGVuZAogCiAjIFRoaXMgYmFyZWx5IHdvcmtzLiBhcmczIGFuZCBhcmc0
IHNob3VsZCBwcm9iYWJseSBiZSBpbW1lZGlhdGVzLgotbWFjcm8gY0NhbGw0KGZ1bmN0aW9uLCBh
cmcxLCBhcmcyLCBhcmczLCBhcmc0KQorbWFjcm8gY0NhbGw0KGZ1bmN0aW9uKQogICAgIGNoZWNr
U3RhY2tQb2ludGVyQWxpZ25tZW50KHQ0LCAweGJhZDBjMDA0KQotICAgIGlmIFg4Nl82NAotICAg
ICAgICBtb3ZlIGFyZzEsIHQ0Ci0gICAgICAgIG1vdmUgYXJnMiwgdDUKLSAgICAgICAgbW92ZSBh
cmczLCB0MQotICAgICAgICBtb3ZlIGFyZzQsIHQyCisgICAgaWYgWDg2XzY0IG9yIEFSTTY0CiAg
ICAgICAgIGNhbGwgZnVuY3Rpb24KICAgICBlbHNpZiBYODZfNjRfV0lOCiAgICAgICAgICMgT24g
V2luNjQsIHJjeCwgcmR4LCByOCwgYW5kIHI5IGFyZSB1c2VkIGZvciBwYXNzaW5nIHRoZSBmaXJz
dCBmb3VyIHBhcmFtZXRlcnMuCiAgICAgICAgICMgV2UgYWxzbyBuZWVkIHRvIG1ha2Ugcm9vbSBv
biB0aGUgc3RhY2sgZm9yIGFsbCBmb3VyIHBhcmFtZXRlciByZWdpc3RlcnMuCiAgICAgICAgICMg
U2VlIGh0dHA6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS9tczIzNTI4Ni5hc3B4
Ci0gICAgICAgIG1vdmUgYXJnMSwgdDIKLSAgICAgICAgbW92ZSBhcmcyLCB0MQotICAgICAgICBt
b3ZlIGFyZzMsIHQ2Ci0gICAgICAgIG1vdmUgYXJnNCwgdDcKLSAgICAgICAgc3VicCAzMiwgc3Ag
CisgICAgICAgIHN1YnAgNjQsIHNwCiAgICAgICAgIGNhbGwgZnVuY3Rpb24KLSAgICAgICAgYWRk
cCAzMiwgc3AgCi0gICAgZWxzaWYgQVJNNjQKLSAgICAgICAgbW92ZSBhcmcxLCB0MAotICAgICAg
ICBtb3ZlIGFyZzIsIHQxCi0gICAgICAgIG1vdmUgYXJnMywgdDIKLSAgICAgICAgbW92ZSBhcmc0
LCB0MwotICAgICAgICBjYWxsIGZ1bmN0aW9uCi0gICAgZWxzaWYgQ19MT09QCi0gICAgICAgIGVy
cm9yCisgICAgICAgIGFkZHAgNjQsIHNwCiAgICAgZWxzZQogICAgICAgICBlcnJvcgogICAgIGVu
ZAogZW5kCiAKIG1hY3JvIGRvVk1FbnRyeShtYWtlQ2FsbCkKLSAgICBpZiBYODZfNjQKLSAgICAg
ICAgY29uc3QgZW50cnkgPSB0NAotICAgICAgICBjb25zdCB2bSA9IHQ1Ci0gICAgICAgIGNvbnN0
IHByb3RvQ2FsbEZyYW1lID0gdDEKLQotICAgICAgICBjb25zdCBwcmV2aW91c0NGUiA9IHQwCi0g
ICAgICAgIGNvbnN0IHByZXZpb3VzUEMgPSB0NgotICAgICAgICBjb25zdCB0ZW1wMSA9IHQwCi0g
ICAgICAgIGNvbnN0IHRlbXAyID0gdDMKLSAgICAgICAgY29uc3QgdGVtcDMgPSB0NgotICAgIGVs
c2lmIFg4Nl82NF9XSU4KLSAgICAgICAgY29uc3QgZW50cnkgPSB0MgotICAgICAgICBjb25zdCB2
bSA9IHQxCi0gICAgICAgIGNvbnN0IHByb3RvQ2FsbEZyYW1lID0gdDYKLQotICAgICAgICBjb25z
dCBwcmV2aW91c0NGUiA9IHQwCi0gICAgICAgIGNvbnN0IHByZXZpb3VzUEMgPSB0NAotICAgICAg
ICBjb25zdCB0ZW1wMSA9IHQwCi0gICAgICAgIGNvbnN0IHRlbXAyID0gdDMKLSAgICAgICAgY29u
c3QgdGVtcDMgPSB0NwotICAgIGVsc2lmIEFSTTY0IG9yIENfTE9PUAotICAgICAgICBjb25zdCBl
bnRyeSA9IGEwCi0gICAgICAgIGNvbnN0IHZtID0gYTEKLSAgICAgICAgY29uc3QgcHJvdG9DYWxs
RnJhbWUgPSBhMgotCi0gICAgICAgIGNvbnN0IHByZXZpb3VzQ0ZSID0gdDUKLSAgICAgICAgY29u
c3QgcHJldmlvdXNQQyA9IGxyCi0gICAgICAgIGNvbnN0IHRlbXAxID0gdDMKLSAgICAgICAgY29u
c3QgdGVtcDIgPSB0NAotICAgICAgICBjb25zdCB0ZW1wMyA9IHQ2Ci0gICAgZW5kCi0KICAgICBm
dW5jdGlvblByb2xvZ3VlKCkKICAgICBwdXNoQ2FsbGVlU2F2ZXMoKQogCisgICAgY29uc3QgZW50
cnkgPSBhMAorICAgIGNvbnN0IHZtID0gYTEKKyAgICBjb25zdCBwcm90b0NhbGxGcmFtZSA9IGEy
CisKICAgICB2bUVudHJ5UmVjb3JkKGNmciwgc3ApCiAKLSAgICBjaGVja1N0YWNrUG9pbnRlckFs
aWdubWVudCh0ZW1wMiwgMHhiYWQwZGMwMSkKKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVu
dCh0NCwgMHhiYWQwZGMwMSkKIAogICAgIHN0b3JlcCB2bSwgVk1FbnRyeVJlY29yZDo6bV92bVtz
cF0KLSAgICBsb2FkcCBWTTo6dG9wQ2FsbEZyYW1lW3ZtXSwgdGVtcDIKLSAgICBzdG9yZXAgdGVt
cDIsIFZNRW50cnlSZWNvcmQ6Om1fcHJldlRvcENhbGxGcmFtZVtzcF0KLSAgICBsb2FkcCBWTTo6
dG9wVk1FbnRyeUZyYW1lW3ZtXSwgdGVtcDIKLSAgICBzdG9yZXAgdGVtcDIsIFZNRW50cnlSZWNv
cmQ6Om1fcHJldlRvcFZNRW50cnlGcmFtZVtzcF0KKyAgICBsb2FkcCBWTTo6dG9wQ2FsbEZyYW1l
W3ZtXSwgdDQKKyAgICBzdG9yZXAgdDQsIFZNRW50cnlSZWNvcmQ6Om1fcHJldlRvcENhbGxGcmFt
ZVtzcF0KKyAgICBsb2FkcCBWTTo6dG9wVk1FbnRyeUZyYW1lW3ZtXSwgdDQKKyAgICBzdG9yZXAg
dDQsIFZNRW50cnlSZWNvcmQ6Om1fcHJldlRvcFZNRW50cnlGcmFtZVtzcF0KIAotICAgIGxvYWRp
IFByb3RvQ2FsbEZyYW1lOjpwYWRkZWRBcmdDb3VudFtwcm90b0NhbGxGcmFtZV0sIHRlbXAyCi0g
ICAgYWRkcCBDYWxsRnJhbWVIZWFkZXJTbG90cywgdGVtcDIsIHRlbXAyCi0gICAgbHNoaWZ0cCAz
LCB0ZW1wMgotICAgIHN1YnAgc3AsIHRlbXAyLCB0ZW1wMQorICAgIGxvYWRpIFByb3RvQ2FsbEZy
YW1lOjpwYWRkZWRBcmdDb3VudFtwcm90b0NhbGxGcmFtZV0sIHQ0CisgICAgYWRkcCBDYWxsRnJh
bWVIZWFkZXJTbG90cywgdDQsIHQ0CisgICAgbHNoaWZ0cCAzLCB0NAorICAgIHN1YnAgc3AsIHQ0
LCB0MwogCiAgICAgIyBFbnN1cmUgdGhhdCB3ZSBoYXZlIGVub3VnaCBhZGRpdGlvbmFsIHN0YWNr
IGNhcGFjaXR5IGZvciB0aGUgaW5jb21pbmcgYXJncywKICAgICAjIGFuZCB0aGUgZnJhbWUgZm9y
IHRoZSBKUyBjb2RlIHdlJ3JlIGV4ZWN1dGluZy4gV2UgbmVlZCB0byBkbyB0aGlzIGNoZWNrCiAg
ICAgIyBiZWZvcmUgd2Ugc3RhcnQgY29weWluZyB0aGUgYXJncyBmcm9tIHRoZSBwcm90b0NhbGxG
cmFtZSBiZWxvdy4KLSAgICBicGFlcSB0ZW1wMSwgVk06Om1fanNTdGFja0xpbWl0W3ZtXSwgLnN0
YWNrSGVpZ2h0T0sKKyAgICBicGFlcSB0MywgVk06Om1fanNTdGFja0xpbWl0W3ZtXSwgLnN0YWNr
SGVpZ2h0T0sKIAogICAgIGlmIENfTE9PUAotICAgICAgICBtb3ZlIGVudHJ5LCB0ZW1wMgotICAg
ICAgICBtb3ZlIHZtLCB0ZW1wMwotICAgICAgICBjbG9vcENhbGxTbG93UGF0aCBfbGxpbnRfc3Rh
Y2tfY2hlY2tfYXRfdm1fZW50cnksIHZtLCB0ZW1wMQorICAgICAgICBtb3ZlIGVudHJ5LCB0NAor
ICAgICAgICBtb3ZlIHZtLCB0NQorICAgICAgICBjbG9vcENhbGxTbG93UGF0aCBfbGxpbnRfc3Rh
Y2tfY2hlY2tfYXRfdm1fZW50cnksIHZtLCB0MwogICAgICAgICBicGVxIHQwLCAwLCAuc3RhY2tD
aGVja0ZhaWxlZAotICAgICAgICBtb3ZlIHRlbXAyLCBlbnRyeQotICAgICAgICBtb3ZlIHRlbXAz
LCB2bQorICAgICAgICBtb3ZlIHQ0LCBlbnRyeQorICAgICAgICBtb3ZlIHQ1LCB2bQogICAgICAg
ICBqbXAgLnN0YWNrSGVpZ2h0T0sKIAogLnN0YWNrQ2hlY2tGYWlsZWQ6Ci0gICAgICAgIG1vdmUg
dGVtcDIsIGVudHJ5Ci0gICAgICAgIG1vdmUgdGVtcDMsIHZtCisgICAgICAgIG1vdmUgdDQsIGVu
dHJ5CisgICAgICAgIG1vdmUgdDUsIHZtCiAgICAgZW5kCiAKLSAgICBjQ2FsbDIoX2xsaW50X3Ro
cm93X3N0YWNrX292ZXJmbG93X2Vycm9yLCB2bSwgcHJvdG9DYWxsRnJhbWUpCisgICAgbW92ZSB2
bSwgYTAKKyAgICBtb3ZlIHByb3RvQ2FsbEZyYW1lLCBhMQorICAgIGNDYWxsMihfbGxpbnRfdGhy
b3dfc3RhY2tfb3ZlcmZsb3dfZXJyb3IpCiAKLSAgICB2bUVudHJ5UmVjb3JkKGNmciwgdGVtcDIp
CisgICAgdm1FbnRyeVJlY29yZChjZnIsIHQ0KQogCi0gICAgbG9hZHAgVk1FbnRyeVJlY29yZDo6
bV92bVt0ZW1wMl0sIHZtCi0gICAgbG9hZHAgVk1FbnRyeVJlY29yZDo6bV9wcmV2VG9wQ2FsbEZy
YW1lW3RlbXAyXSwgdGVtcDMKLSAgICBzdG9yZXAgdGVtcDMsIFZNOjp0b3BDYWxsRnJhbWVbdm1d
Ci0gICAgbG9hZHAgVk1FbnRyeVJlY29yZDo6bV9wcmV2VG9wVk1FbnRyeUZyYW1lW3RlbXAyXSwg
dGVtcDMKLSAgICBzdG9yZXAgdGVtcDMsIFZNOjp0b3BWTUVudHJ5RnJhbWVbdm1dCisgICAgbG9h
ZHAgVk1FbnRyeVJlY29yZDo6bV92bVt0NF0sIHZtCisgICAgbG9hZHAgVk1FbnRyeVJlY29yZDo6
bV9wcmV2VG9wQ2FsbEZyYW1lW3Q0XSwgdDUKKyAgICBzdG9yZXAgdDUsIFZNOjp0b3BDYWxsRnJh
bWVbdm1dCisgICAgbG9hZHAgVk1FbnRyeVJlY29yZDo6bV9wcmV2VG9wVk1FbnRyeUZyYW1lW3Q0
XSwgdDUKKyAgICBzdG9yZXAgdDUsIFZNOjp0b3BWTUVudHJ5RnJhbWVbdm1dCiAKICAgICBzdWJw
IGNmciwgQ2FsbGVlUmVnaXN0ZXJTYXZlU2l6ZSwgc3AKIApAQCAtMjI1LDYyICsxNzUsNjUgQEAg
bWFjcm8gZG9WTUVudHJ5KG1ha2VDYWxsKQogICAgIHJldAogCiAuc3RhY2tIZWlnaHRPSzoKLSAg
ICBtb3ZlIHRlbXAxLCBzcAotICAgIG1vdmUgNCwgdGVtcDEKKyAgICBtb3ZlIHQzLCBzcAorICAg
IG1vdmUgNCwgdDMKIAogLmNvcHlIZWFkZXJMb29wOgotICAgIHN1YmkgMSwgdGVtcDEKLSAgICBs
b2FkcSBbcHJvdG9DYWxsRnJhbWUsIHRlbXAxLCA4XSwgdGVtcDMKLSAgICBzdG9yZXEgdGVtcDMs
IENvZGVCbG9ja1tzcCwgdGVtcDEsIDhdCi0gICAgYnRpbnogdGVtcDEsIC5jb3B5SGVhZGVyTG9v
cAotCi0gICAgbG9hZGkgUGF5bG9hZE9mZnNldCArIFByb3RvQ2FsbEZyYW1lOjphcmdDb3VudEFu
ZENvZGVPcmlnaW5WYWx1ZVtwcm90b0NhbGxGcmFtZV0sIHRlbXAyCi0gICAgc3ViaSAxLCB0ZW1w
MgotICAgIGxvYWRpIFByb3RvQ2FsbEZyYW1lOjpwYWRkZWRBcmdDb3VudFtwcm90b0NhbGxGcmFt
ZV0sIHRlbXAzCi0gICAgc3ViaSAxLCB0ZW1wMwotCi0gICAgYmllcSB0ZW1wMiwgdGVtcDMsIC5j
b3B5QXJncwotICAgIG1vdmUgVmFsdWVVbmRlZmluZWQsIHRlbXAxCisgICAgc3ViaSAxLCB0Mwor
ICAgIGxvYWRxIFtwcm90b0NhbGxGcmFtZSwgdDMsIDhdLCB0NQorICAgIHN0b3JlcSB0NSwgQ29k
ZUJsb2NrW3NwLCB0MywgOF0KKyAgICBidGlueiB0MywgLmNvcHlIZWFkZXJMb29wCisKKyAgICBs
b2FkaSBQYXlsb2FkT2Zmc2V0ICsgUHJvdG9DYWxsRnJhbWU6OmFyZ0NvdW50QW5kQ29kZU9yaWdp
blZhbHVlW3Byb3RvQ2FsbEZyYW1lXSwgdDQKKyAgICBzdWJpIDEsIHQ0CisgICAgbG9hZGkgUHJv
dG9DYWxsRnJhbWU6OnBhZGRlZEFyZ0NvdW50W3Byb3RvQ2FsbEZyYW1lXSwgdDUKKyAgICBzdWJp
IDEsIHQ1CisKKyAgICBiaWVxIHQ0LCB0NSwgLmNvcHlBcmdzCisgICAgbW92ZSBWYWx1ZVVuZGVm
aW5lZCwgdDMKIC5maWxsRXh0cmFBcmdzTG9vcDoKLSAgICBzdWJpIDEsIHRlbXAzCi0gICAgc3Rv
cmVxIHRlbXAxLCBUaGlzQXJndW1lbnRPZmZzZXQgKyA4W3NwLCB0ZW1wMywgOF0KLSAgICBiaW5l
cSB0ZW1wMiwgdGVtcDMsIC5maWxsRXh0cmFBcmdzTG9vcAorICAgIHN1YmkgMSwgdDUKKyAgICBz
dG9yZXEgdDMsIFRoaXNBcmd1bWVudE9mZnNldCArIDhbc3AsIHQ1LCA4XQorICAgIGJpbmVxIHQ0
LCB0NSwgLmZpbGxFeHRyYUFyZ3NMb29wCiAKIC5jb3B5QXJnczoKLSAgICBsb2FkcCBQcm90b0Nh
bGxGcmFtZTo6YXJnc1twcm90b0NhbGxGcmFtZV0sIHRlbXAxCisgICAgbG9hZHAgUHJvdG9DYWxs
RnJhbWU6OmFyZ3NbcHJvdG9DYWxsRnJhbWVdLCB0MwogCiAuY29weUFyZ3NMb29wOgotICAgIGJ0
aXogdGVtcDIsIC5jb3B5QXJnc0RvbmUKLSAgICBzdWJpIDEsIHRlbXAyCi0gICAgbG9hZHEgW3Rl
bXAxLCB0ZW1wMiwgOF0sIHRlbXAzCi0gICAgc3RvcmVxIHRlbXAzLCBUaGlzQXJndW1lbnRPZmZz
ZXQgKyA4W3NwLCB0ZW1wMiwgOF0KKyAgICBidGl6IHQ0LCAuY29weUFyZ3NEb25lCisgICAgc3Vi
aSAxLCB0NAorICAgIGxvYWRxIFt0MywgdDQsIDhdLCB0NQorICAgIHN0b3JlcSB0NSwgVGhpc0Fy
Z3VtZW50T2Zmc2V0ICsgOFtzcCwgdDQsIDhdCiAgICAgam1wIC5jb3B5QXJnc0xvb3AKIAogLmNv
cHlBcmdzRG9uZToKICAgICBpZiBBUk02NAotICAgICAgICBtb3ZlIHNwLCB0ZW1wMgotICAgICAg
ICBzdG9yZXAgdGVtcDIsIFZNOjp0b3BDYWxsRnJhbWVbdm1dCisgICAgICAgIG1vdmUgc3AsIHQ0
CisgICAgICAgIHN0b3JlcCB0NCwgVk06OnRvcENhbGxGcmFtZVt2bV0KICAgICBlbHNlCiAgICAg
ICAgIHN0b3JlcCBzcCwgVk06OnRvcENhbGxGcmFtZVt2bV0KICAgICBlbmQKICAgICBzdG9yZXAg
Y2ZyLCBWTTo6dG9wVk1FbnRyeUZyYW1lW3ZtXQogCi0gICAgbW92ZSAweGZmZmYwMDAwMDAwMDAw
MDAsIGNzcjEKLSAgICBhZGRwIDIsIGNzcjEsIGNzcjIKKyAgICBtb3ZlIFRhZ1R5cGVOdW1iZXIs
IHRhZ1R5cGVOdW1iZXIKKyAgICBhZGRwIFRhZ0JpdFR5cGVPdGhlciwgdGFnVHlwZU51bWJlciwg
dGFnTWFzawogCi0gICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodGVtcDMsIDB4YmFkMGRj
MDIpCisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodDUsIDB4YmFkMGRjMDIpCiAKLSAg
ICBtYWtlQ2FsbChlbnRyeSwgdGVtcDEpCisgICAgbWFrZUNhbGwoZW50cnksIHQzKQogCi0gICAg
Y2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodGVtcDMsIDB4YmFkMGRjMDMpCisgICAgIyBXZSBt
YXkgaGF2ZSBqdXN0IG1hZGUgYSBjYWxsIGludG8gYSBKUyBmdW5jdGlvbiwgc28gd2UgY2FuJ3Qg
cmVseSBvbiBzcAorICAgICMgZm9yIGFueXRoaW5nIGJ1dCB0aGUgZmFjdCB0aGF0IG91ciBvd24g
bG9jYWxzIChpZSB0aGUgVk1FbnRyeVJlY29yZCkgYXJlCisgICAgIyBub3QgYmVsb3cgaXQuIEl0
IGFsc28gc3RpbGwgaGFzIHRvIGJlIGFsaWduZWQsIHRob3VnaC4KKyAgICBjaGVja1N0YWNrUG9p
bnRlckFsaWdubWVudCh0NSwgMHhiYWQwZGMwMykKIAotICAgIHZtRW50cnlSZWNvcmQoY2ZyLCB0
ZW1wMikKKyAgICB2bUVudHJ5UmVjb3JkKGNmciwgdDQpCiAKLSAgICBsb2FkcCBWTUVudHJ5UmVj
b3JkOjptX3ZtW3RlbXAyXSwgdm0KLSAgICBsb2FkcCBWTUVudHJ5UmVjb3JkOjptX3ByZXZUb3BD
YWxsRnJhbWVbdGVtcDJdLCB0ZW1wMwotICAgIHN0b3JlcCB0ZW1wMywgVk06OnRvcENhbGxGcmFt
ZVt2bV0KLSAgICBsb2FkcCBWTUVudHJ5UmVjb3JkOjptX3ByZXZUb3BWTUVudHJ5RnJhbWVbdGVt
cDJdLCB0ZW1wMwotICAgIHN0b3JlcCB0ZW1wMywgVk06OnRvcFZNRW50cnlGcmFtZVt2bV0KKyAg
ICBsb2FkcCBWTUVudHJ5UmVjb3JkOjptX3ZtW3Q0XSwgdm0KKyAgICBsb2FkcCBWTUVudHJ5UmVj
b3JkOjptX3ByZXZUb3BDYWxsRnJhbWVbdDRdLCB0NQorICAgIHN0b3JlcCB0NSwgVk06OnRvcENh
bGxGcmFtZVt2bV0KKyAgICBsb2FkcCBWTUVudHJ5UmVjb3JkOjptX3ByZXZUb3BWTUVudHJ5RnJh
bWVbdDRdLCB0NQorICAgIHN0b3JlcCB0NSwgVk06OnRvcFZNRW50cnlGcmFtZVt2bV0KIAogICAg
IHN1YnAgY2ZyLCBDYWxsZWVSZWdpc3RlclNhdmVTaXplLCBzcAogCkBAIC0zMDUsMTMgKzI1OCw3
IEBAIGVuZAogbWFjcm8gbWFrZUhvc3RGdW5jdGlvbkNhbGwoZW50cnksIHRlbXApCiAgICAgbW92
ZSBlbnRyeSwgdGVtcAogICAgIHN0b3JlcCBjZnIsIFtzcF0KLSAgICBpZiBYODZfNjQKLSAgICAg
ICAgbW92ZSBzcCwgdDQKLSAgICBlbHNpZiBYODZfNjRfV0lOCi0gICAgICAgIG1vdmUgc3AsIHQy
Ci0gICAgZWxzaWYgQVJNNjQgb3IgQ19MT09QCi0gICAgICAgIG1vdmUgc3AsIGEwCi0gICAgZW5k
CisgICAgbW92ZSBzcCwgYTAKICAgICBpZiBDX0xPT1AKICAgICAgICAgc3RvcmVwIGxyLCA4W3Nw
XQogICAgICAgICBjbG9vcENhbGxOYXRpdmUgdGVtcApAQCAtMzUwLDMxICsyOTcsMzkgQEAgX2hh
bmRsZVVuY2F1Z2h0RXhjZXB0aW9uOgogCiBtYWNybyBwcmVwYXJlU3RhdGVGb3JDQ2FsbCgpCiAg
ICAgbGVhcCBbUEIsIFBDLCA4XSwgUEMKLSAgICBtb3ZlIFBCLCB0MwogZW5kCiAKIG1hY3JvIHJl
c3RvcmVTdGF0ZUFmdGVyQ0NhbGwoKQotICAgIG1vdmUgdDAsIFBDCi0gICAgbW92ZSB0MywgUEIK
KyAgICBtb3ZlIHIwLCBQQwogICAgIHN1YnAgUEIsIFBDCiAgICAgcnNoaWZ0cCAzLCBQQwogZW5k
CiAKIG1hY3JvIGNhbGxTbG93UGF0aChzbG93UGF0aCkKICAgICBwcmVwYXJlU3RhdGVGb3JDQ2Fs
bCgpCi0gICAgY0NhbGwyKHNsb3dQYXRoLCBjZnIsIFBDKQorICAgIG1vdmUgY2ZyLCBhMAorICAg
IG1vdmUgUEMsIGExCisgICAgY0NhbGwyKHNsb3dQYXRoKQogICAgIHJlc3RvcmVTdGF0ZUFmdGVy
Q0NhbGwoKQogZW5kCiAKIG1hY3JvIHRyYWNlT3BlcmFuZChmcm9tV2hlcmUsIG9wZXJhbmQpCiAg
ICAgcHJlcGFyZVN0YXRlRm9yQ0NhbGwoKQotICAgIGNDYWxsNChfbGxpbnRfdHJhY2Vfb3BlcmFu
ZCwgY2ZyLCBQQywgZnJvbVdoZXJlLCBvcGVyYW5kKQorICAgIG1vdmUgZnJvbVdoZXJlLCBhMgor
ICAgIG1vdmUgb3BlcmFuZCwgYTMKKyAgICBtb3ZlIGNmciwgYTAKKyAgICBtb3ZlIFBDLCBhMQor
ICAgIGNDYWxsNChfbGxpbnRfdHJhY2Vfb3BlcmFuZCkKICAgICByZXN0b3JlU3RhdGVBZnRlckND
YWxsKCkKIGVuZAogCiBtYWNybyB0cmFjZVZhbHVlKGZyb21XaGVyZSwgb3BlcmFuZCkKICAgICBw
cmVwYXJlU3RhdGVGb3JDQ2FsbCgpCi0gICAgY0NhbGw0KF9sbGludF90cmFjZV92YWx1ZSwgY2Zy
LCBQQywgZnJvbVdoZXJlLCBvcGVyYW5kKQorICAgIG1vdmUgZnJvbVdoZXJlLCBhMgorICAgIG1v
dmUgb3BlcmFuZCwgYTMKKyAgICBtb3ZlIGNmciwgYTAKKyAgICBtb3ZlIFBDLCBhMQorICAgIGND
YWxsNChfbGxpbnRfdHJhY2VfdmFsdWUpCiAgICAgcmVzdG9yZVN0YXRlQWZ0ZXJDQ2FsbCgpCiBl
bmQKIApAQCAtMzgyLDE2ICszMzcsMTkgQEAgZW5kCiBtYWNybyBjYWxsQ2FsbFNsb3dQYXRoKHNs
b3dQYXRoLCBhY3Rpb24pCiAgICAgc3RvcmVpIFBDLCBBcmd1bWVudENvdW50ICsgVGFnT2Zmc2V0
W2Nmcl0KICAgICBwcmVwYXJlU3RhdGVGb3JDQ2FsbCgpCi0gICAgY0NhbGwyKHNsb3dQYXRoLCBj
ZnIsIFBDKQotICAgIGFjdGlvbih0MCkKKyAgICBtb3ZlIGNmciwgYTAKKyAgICBtb3ZlIFBDLCBh
MQorICAgIGNDYWxsMihzbG93UGF0aCkKKyAgICBhY3Rpb24ocjAsIHIxKQogZW5kCiAKIG1hY3Jv
IGNhbGxXYXRjaGRvZ1RpbWVySGFuZGxlcih0aHJvd0hhbmRsZXIpCiAgICAgc3RvcmVpIFBDLCBB
cmd1bWVudENvdW50ICsgVGFnT2Zmc2V0W2Nmcl0KICAgICBwcmVwYXJlU3RhdGVGb3JDQ2FsbCgp
Ci0gICAgY0NhbGwyKF9sbGludF9zbG93X3BhdGhfaGFuZGxlX3dhdGNoZG9nX3RpbWVyLCBjZnIs
IFBDKQotICAgIGJ0cG56IHQwLCB0aHJvd0hhbmRsZXIKLSAgICBtb3ZlIHQzLCBQQgorICAgIG1v
dmUgY2ZyLCBhMAorICAgIG1vdmUgUEMsIGExCisgICAgY0NhbGwyKF9sbGludF9zbG93X3BhdGhf
aGFuZGxlX3dhdGNoZG9nX3RpbWVyKQorICAgIGJ0cG56IHIwLCB0aHJvd0hhbmRsZXIKICAgICBs
b2FkaSBBcmd1bWVudENvdW50ICsgVGFnT2Zmc2V0W2Nmcl0sIFBDCiBlbmQKIApAQCAtNDAxLDEy
ICszNTksMTMgQEAgbWFjcm8gY2hlY2tTd2l0Y2hUb0pJVEZvckxvb3AoKQogICAgICAgICBtYWNy
bygpCiAgICAgICAgICAgICBzdG9yZWkgUEMsIEFyZ3VtZW50Q291bnQgKyBUYWdPZmZzZXRbY2Zy
XQogICAgICAgICAgICAgcHJlcGFyZVN0YXRlRm9yQ0NhbGwoKQotICAgICAgICAgICAgY0NhbGwy
KF9sbGludF9sb29wX29zciwgY2ZyLCBQQykKLSAgICAgICAgICAgIGJ0cHogdDAsIC5yZWNvdmVy
Ci0gICAgICAgICAgICBtb3ZlIHQxLCBzcAotICAgICAgICAgICAgam1wIHQwCisgICAgICAgICAg
ICBtb3ZlIGNmciwgYTAKKyAgICAgICAgICAgIG1vdmUgUEMsIGExCisgICAgICAgICAgICBjQ2Fs
bDIoX2xsaW50X2xvb3Bfb3NyKQorICAgICAgICAgICAgYnRweiByMCwgLnJlY292ZXIKKyAgICAg
ICAgICAgIG1vdmUgcjEsIHNwCisgICAgICAgICAgICBqbXAgcjAKICAgICAgICAgLnJlY292ZXI6
Ci0gICAgICAgICAgICBtb3ZlIHQzLCBQQgogICAgICAgICAgICAgbG9hZGkgQXJndW1lbnRDb3Vu
dCArIFRhZ09mZnNldFtjZnJdLCBQQwogICAgICAgICBlbmQpCiBlbmQKQEAgLTQ0Nyw3ICs0MDYs
OSBAQCBtYWNybyB3cml0ZUJhcnJpZXJPbk9wZXJhbmQoY2VsbE9wZXJhbmQpCiAgICAgICAgICAg
ICBtYWNybyhnY0RhdGEpCiAgICAgICAgICAgICAgICAgYnRibnogZ2NEYXRhLCAud3JpdGVCYXJy
aWVyRG9uZQogICAgICAgICAgICAgICAgIHB1c2ggUEIsIFBDCi0gICAgICAgICAgICAgICAgY0Nh
bGwyVm9pZChfbGxpbnRfd3JpdGVfYmFycmllcl9zbG93LCBjZnIsIHQyKQorICAgICAgICAgICAg
ICAgIG1vdmUgdDIsIGExICMgdDIgY2FuIGJlIGEwIChub3Qgb24gNjQgYml0cywgYnV0IGJldHRl
ciBzYWZlIHRoYW4gc29ycnkpCisgICAgICAgICAgICAgICAgbW92ZSBjZnIsIGEwCisgICAgICAg
ICAgICAgICAgY0NhbGwyVm9pZChfbGxpbnRfd3JpdGVfYmFycmllcl9zbG93KQogICAgICAgICAg
ICAgICAgIHBvcCBQQywgUEIKICAgICAgICAgICAgIGVuZAogICAgICAgICApCkBAIC00NzgsNyAr
NDM5LDkgQEAgbWFjcm8gd3JpdGVCYXJyaWVyT25HbG9iYWxPYmplY3QodmFsdWVPcGVyYW5kKQog
ICAgICAgICAgICAgbWFjcm8oZ2NEYXRhKQogICAgICAgICAgICAgICAgIGJ0Ym56IGdjRGF0YSwg
LndyaXRlQmFycmllckRvbmUKICAgICAgICAgICAgICAgICBwdXNoIFBCLCBQQwotICAgICAgICAg
ICAgICAgIGNDYWxsMlZvaWQoX2xsaW50X3dyaXRlX2JhcnJpZXJfc2xvdywgY2ZyLCB0MykKKyAg
ICAgICAgICAgICAgICBtb3ZlIGNmciwgYTAKKyAgICAgICAgICAgICAgICBtb3ZlIHQzLCBhMQor
ICAgICAgICAgICAgICAgIGNDYWxsMlZvaWQoX2xsaW50X3dyaXRlX2JhcnJpZXJfc2xvdykKICAg
ICAgICAgICAgICAgICBwb3AgUEMsIFBCCiAgICAgICAgICAgICBlbmQKICAgICAgICAgKQpAQCAt
NTIyLDE5ICs0ODUsMjEgQEAgbWFjcm8gZnVuY3Rpb25Bcml0eUNoZWNrKGRvbmVMYWJlbCwgc2xv
d1BhdGgpCiAgICAgbG9hZGkgUGF5bG9hZE9mZnNldCArIEFyZ3VtZW50Q291bnRbY2ZyXSwgdDAK
ICAgICBiaWFlcSB0MCwgQ29kZUJsb2NrOjptX251bVBhcmFtZXRlcnNbdDFdLCBkb25lTGFiZWwK
ICAgICBwcmVwYXJlU3RhdGVGb3JDQ2FsbCgpCi0gICAgY0NhbGwyKHNsb3dQYXRoLCBjZnIsIFBD
KSAgICMgVGhpcyBzbG93UGF0aCBoYXMgdGhlIHByb3RvY29sOiB0MCA9IDAgPT4gbm8gZXJyb3Is
IHQwICE9IDAgPT4gZXJyb3IKLSAgICBidGl6IHQwLCAubm9FcnJvcgotICAgIG1vdmUgdDEsIGNm
ciAgICMgdDEgY29udGFpbnMgY2FsbGVyIGZyYW1lCisgICAgbW92ZSBjZnIsIGEwCisgICAgbW92
ZSBQQywgYTEKKyAgICBjQ2FsbDIoc2xvd1BhdGgpICAgIyBUaGlzIHNsb3dQYXRoIGhhcyB0aGUg
cHJvdG9jb2w6IHIwID0gMCA9PiBubyBlcnJvciwgcjAgIT0gMCA9PiBlcnJvcgorICAgIGJ0aXog
cjAsIC5ub0Vycm9yCisgICAgbW92ZSByMSwgY2ZyICAgIyByMSBjb250YWlucyBjYWxsZXIgZnJh
bWUKICAgICBqbXAgX2xsaW50X3Rocm93X2Zyb21fc2xvd19wYXRoX3RyYW1wb2xpbmUKIAogLm5v
RXJyb3I6Ci0gICAgIyB0MSBwb2ludHMgdG8gQXJpdHlDaGVja0RhdGEuCi0gICAgbG9hZHAgQ29t
bW9uU2xvd1BhdGhzOjpBcml0eUNoZWNrRGF0YTo6dGh1bmtUb0NhbGxbdDFdLCB0MgotICAgIGJ0
cHogdDIsIC5wcm9jZWVkSW5saW5lCisgICAgIyByMSBwb2ludHMgdG8gQXJpdHlDaGVja0RhdGEu
CisgICAgbG9hZHAgQ29tbW9uU2xvd1BhdGhzOjpBcml0eUNoZWNrRGF0YTo6dGh1bmtUb0NhbGxb
cjFdLCB0MworICAgIGJ0cHogdDMsIC5wcm9jZWVkSW5saW5lCiAgICAgCi0gICAgbG9hZHAgQ29t
bW9uU2xvd1BhdGhzOjpBcml0eUNoZWNrRGF0YTo6cmV0dXJuUENbdDFdLCB0NwotICAgIGxvYWRw
IENvbW1vblNsb3dQYXRoczo6QXJpdHlDaGVja0RhdGE6OnBhZGRlZFN0YWNrU3BhY2VbdDFdLCB0
MAotICAgIGNhbGwgdDIKKyAgICBsb2FkcCBDb21tb25TbG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRh
OjpwYWRkZWRTdGFja1NwYWNlW3IxXSwgYTAKKyAgICBsb2FkcCBDb21tb25TbG93UGF0aHM6OkFy
aXR5Q2hlY2tEYXRhOjpyZXR1cm5QQ1tyMV0sIGExCisgICAgY2FsbCB0MwogICAgIGlmIEFTU0VS
VF9FTkFCTEVECiAgICAgICAgIGxvYWRwIFJldHVyblBDW2Nmcl0sIHQwCiAgICAgICAgIGxvYWRw
IFt0MF0sIHQwCkBAIC01NDIsNyArNTA3LDcgQEAgbWFjcm8gZnVuY3Rpb25Bcml0eUNoZWNrKGRv
bmVMYWJlbCwgc2xvd1BhdGgpCiAgICAgam1wIC5jb250aW51ZQogCiAucHJvY2VlZElubGluZToK
LSAgICBsb2FkaSBDb21tb25TbG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRhOjpwYWRkZWRTdGFja1Nw
YWNlW3QxXSwgdDEKKyAgICBsb2FkaSBDb21tb25TbG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRhOjpw
YWRkZWRTdGFja1NwYWNlW3IxXSwgdDEKICAgICBidGl6IHQxLCAuY29udGludWUKIAogICAgIC8v
IE1vdmUgZnJhbWUgdXAgInQxICogMiIgc2xvdHMKQEAgLTU4OCw3ICs1NTMsNiBAQCBlbmQKIAog
CiAjIEluc3RydWN0aW9uIGltcGxlbWVudGF0aW9ucwotCiBfbGxpbnRfb3BfZW50ZXI6CiAgICAg
dHJhY2VFeGVjdXRpb24oKQogICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KHQyLCAweGRl
YWQwMGUxKQpAQCAtMTI4Miw2ICsxMjQ2LDcgQEAgbWFjcm8gZ2V0QnlJZChnZXRQcm9wZXJ0eVN0
b3JhZ2UpCiBlbmQKIAogX2xsaW50X29wX2dldF9ieV9pZDoKKyAgICBicmVhawogICAgIGdldEJ5
SWQod2l0aElubGluZVN0b3JhZ2UpCiAKIApAQCAtMTc3Niw3ICsxNzQxLDcgQEAgX2xsaW50X29w
X3JldDoKICAgICB0cmFjZUV4ZWN1dGlvbigpCiAgICAgY2hlY2tTd2l0Y2hUb0pJVEZvckVwaWxv
Z3VlKCkKICAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oMSwgdDIpCi0gICAgbG9hZENvbnN0YW50
T3JWYXJpYWJsZSh0MiwgdDApCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MiwgcjApCiAg
ICAgZG9SZXR1cm4oKQogCiAKQEAgLTE4MzksNyArMTgwNCw3IEBAIF9sbGludF9vcF9lbmQ6CiAg
ICAgY2hlY2tTd2l0Y2hUb0pJVEZvckVwaWxvZ3VlKCkKICAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rp
b24oMSwgdDApCiAgICAgYXNzZXJ0Tm90Q29uc3RhbnQodDApCi0gICAgbG9hZHEgW2NmciwgdDAs
IDhdLCB0MAorICAgIGxvYWRxIFtjZnIsIHQwLCA4XSwgcjAKICAgICBkb1JldHVybigpCiAKIApA
QCAtMTg2NCw1NiArMTgyOSwzNSBAQCBtYWNybyBuYXRpdmVDYWxsVHJhbXBvbGluZShleGVjdXRh
YmxlT2Zmc2V0VG9GdW5jdGlvbikKIAogICAgIGZ1bmN0aW9uUHJvbG9ndWUoKQogICAgIHN0b3Jl
cCAwLCBDb2RlQmxvY2tbY2ZyXQotICAgIGlmIFg4Nl82NCBvciBYODZfNjRfV0lOCi0gICAgICAg
IGlmIFg4Nl82NAotICAgICAgICAgICAgY29uc3QgYXJnMSA9IHQ0ICAjIHQ0ID0gcmRpCi0gICAg
ICAgICAgICBjb25zdCBhcmcyID0gdDUgICMgdDUgPSByc2kKLSAgICAgICAgICAgIGNvbnN0IHRl
bXAgPSB0MQotICAgICAgICBlbHNpZiBYODZfNjRfV0lOCi0gICAgICAgICAgICBjb25zdCBhcmcx
ID0gdDIgICMgdDIgPSByY3gKLSAgICAgICAgICAgIGNvbnN0IGFyZzIgPSB0MSAgIyB0MSA9IHJk
eAotICAgICAgICAgICAgY29uc3QgdGVtcCA9IHQwCi0gICAgICAgIGVuZAotICAgICAgICBsb2Fk
cCBDYWxsZWVbY2ZyXSwgdDAKLSAgICAgICAgYW5kcCBNYXJrZWRCbG9ja01hc2ssIHQwLCB0MQot
ICAgICAgICBsb2FkcCBNYXJrZWRCbG9jazo6bV93ZWFrU2V0ICsgV2Vha1NldDo6bV92bVt0MV0s
IHQxCi0gICAgICAgIHN0b3JlcCBjZnIsIFZNOjp0b3BDYWxsRnJhbWVbdDFdCi0gICAgICAgIG1v
dmUgY2ZyLCBhcmcxCi0gICAgICAgIGxvYWRwIENhbGxlZVtjZnJdLCBhcmcyCi0gICAgICAgIGxv
YWRwIEpTRnVuY3Rpb246Om1fZXhlY3V0YWJsZVthcmcyXSwgdGVtcAotICAgICAgICBjaGVja1N0
YWNrUG9pbnRlckFsaWdubWVudCh0MywgMHhkZWFkMDAwMSkKKyAgICBsb2FkcCBDYWxsZWVbY2Zy
XSwgdDAKKyAgICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDAsIHQxCisgICAgbG9hZHAgTWFya2Vk
QmxvY2s6Om1fd2Vha1NldCArIFdlYWtTZXQ6Om1fdm1bdDFdLCB0MQorICAgIHN0b3JlcCBjZnIs
IFZNOjp0b3BDYWxsRnJhbWVbdDFdCisgICAgaWYgQVJNNjQgb3IgQ19MT09QCisgICAgICAgIG1v
dmUgbHIsIGNzcjAKKyAgICAgICAgc3RvcmVwIGxyLCBSZXR1cm5QQ1tjZnJdCisgICAgZW5kCisg
ICAgbW92ZSBjZnIsIGEwCisgICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHQxCisgICAgbG9hZHAgSlNG
dW5jdGlvbjo6bV9leGVjdXRhYmxlW3QxXSwgdDEKKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdu
bWVudCh0MywgMHhkZWFkMDAwMSkKKyAgICBpZiBDX0xPT1AKKyAgICAgICAgY2xvb3BDYWxsTmF0
aXZlIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uW3QxXQorICAgIGVsc2UKICAgICAgICAgaWYg
WDg2XzY0X1dJTgogICAgICAgICAgICAgc3VicCAzMiwgc3AKICAgICAgICAgZW5kCi0gICAgICAg
IGNhbGwgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb25bdGVtcF0KKyAgICAgICAgY2FsbCBleGVj
dXRhYmxlT2Zmc2V0VG9GdW5jdGlvblt0MV0KICAgICAgICAgaWYgWDg2XzY0X1dJTgogICAgICAg
ICAgICAgYWRkcCAzMiwgc3AKICAgICAgICAgZW5kCi0gICAgICAgIGxvYWRwIENhbGxlZVtjZnJd
LCB0MwotICAgICAgICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDMKLSAgICAgICAgbG9hZHAgTWFy
a2VkQmxvY2s6Om1fd2Vha1NldCArIFdlYWtTZXQ6Om1fdm1bdDNdLCB0MwotICAgIGVsc2lmIEFS
TTY0IG9yIENfTE9PUAotICAgICAgICBsb2FkcCBDYWxsZWVbY2ZyXSwgdDAKLSAgICAgICAgYW5k
cCBNYXJrZWRCbG9ja01hc2ssIHQwLCB0MQotICAgICAgICBsb2FkcCBNYXJrZWRCbG9jazo6bV93
ZWFrU2V0ICsgV2Vha1NldDo6bV92bVt0MV0sIHQxCi0gICAgICAgIHN0b3JlcCBjZnIsIFZNOjp0
b3BDYWxsRnJhbWVbdDFdCi0gICAgICAgIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbCh0
MykKLSAgICAgICAgc3RvcmVwIHQzLCBSZXR1cm5QQ1tjZnJdCi0gICAgICAgIG1vdmUgY2ZyLCB0
MAotICAgICAgICBsb2FkcCBDYWxsZWVbY2ZyXSwgdDEKLSAgICAgICAgbG9hZHAgSlNGdW5jdGlv
bjo6bV9leGVjdXRhYmxlW3QxXSwgdDEKLSAgICAgICAgaWYgQ19MT09QCi0gICAgICAgICAgICBj
bG9vcENhbGxOYXRpdmUgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb25bdDFdCi0gICAgICAgIGVs
c2UKLSAgICAgICAgICAgIGNhbGwgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb25bdDFdCi0gICAg
ICAgIGVuZAotICAgICAgICByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybih0MykKLSAg
ICAgICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHQzCi0gICAgICAgIGFuZHAgTWFya2VkQmxvY2tNYXNr
LCB0MwotICAgICAgICBsb2FkcCBNYXJrZWRCbG9jazo6bV93ZWFrU2V0ICsgV2Vha1NldDo6bV92
bVt0M10sIHQzCi0gICAgZWxzZQotICAgICAgICBlcnJvcgogICAgIGVuZAorICAgIGlmIEFSTTY0
IG9yIENfTE9PUAorICAgICAgICBtb3ZlIGNzcjAsIGxyCisgICAgZW5kCisgICAgbG9hZHAgQ2Fs
bGVlW2Nmcl0sIHQzCisgICAgYW5kcCBNYXJrZWRCbG9ja01hc2ssIHQzCisgICAgbG9hZHAgTWFy
a2VkQmxvY2s6Om1fd2Vha1NldCArIFdlYWtTZXQ6Om1fdm1bdDNdLCB0MwogCiAgICAgZnVuY3Rp
b25FcGlsb2d1ZSgpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5l
YXNtL2FybS5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybS5yYgppbmRl
eCA0NGNmYmU1Li5hMGFiM2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2Zm
bGluZWFzbS9hcm0ucmIKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJt
LnJiCkBAIC0yNyw2ICsyNywzNCBAQCByZXF1aXJlICJhc3QiCiByZXF1aXJlICJvcHQiCiByZXF1
aXJlICJyaXNjIgogCisjIEdQUiBjb252ZW50aW9ucywgdG8gbWF0Y2ggdGhlIGJhc2VsaW5lIEpJ
VAorIworIyAgeDAgPT4gdDAsIGEwLCByMAorIyAgeDEgPT4gdDEsIGExLCByMQorIyAgeDIgPT4g
dDIsIGEyLCByMgorIyAgeDMgPT4gdDMsIGEzLCByMworIyAgeDYgPT4gICAgICAgICAgICAoY2Fs
bGVlLXNhdmUgc2NyYXRjaCkKKyMgIHg3ID0+IGNmciAgICAgICAgKEFSTXY3IG9ubHkpCisjICB4
OCA9PiB0NCAgICAgICAgIChjYWxsZWUtc2F2ZSkKKyMgIHg5ID0+IHQ1ICAgICAgICAgKGNhbGxl
ZS1zYXZlKQorIyB4MTAgPT4gICAgICAgICAgICAoY2FsbGVlLXNhdmUgc2NyYXRjaCkKKyMgeDEx
ID0+IGNmciAgICAgICAgKEFSTSBhbmQgQVJNdjcgdHJhZGl0aW9uYWwpCisjIHgxMiA9PiAgICAg
ICAgICAgIChjYWxsZWUtc2F2ZSBzY3JhdGNoKQorIyAgbHIgPT4gbHIKKyMgIHNwID0+IHNwCisj
ICBwYyA9PiBwYworIworIyBGUFIgY29udmVudGlvbnMsIHRvIG1hdGNoIHRoZSBiYXNlbGluZSBK
SVQKKyMKKyMgZDAgPT4gZnQwLCBmYTAsIGZyCisjIGQxID0+IGZ0MSwgZmExCisjIGQyID0+IGZ0
MgorIyBkMyA9PiBmdDMKKyMgZDQgPT4gZnQ0CisjIGQ1ID0+IGZ0NQorIyBkNiA9PiAgICAgICAg
ICAgICAgKHNjcmF0Y2gpCisjIGQ3ID0+ICAgICAgICAgICAgICAoc2NyYXRjaCkKKwogZGVmIGlz
QVJNdjcKICAgICBjYXNlICRhY3RpdmVCYWNrZW5kCiAgICAgd2hlbiAiQVJNdjciCkBAIC0xMTks
OSArMTQ3LDkgQEAgZW5kCiBjbGFzcyBGUFJlZ2lzdGVySUQKICAgICBkZWYgYXJtT3BlcmFuZAog
ICAgICAgICBjYXNlIG5hbWUKLSAgICAgICAgd2hlbiAiZnQwIiwgImZyIgorICAgICAgICB3aGVu
ICJmdDAiLCAiZnIiLCAiZmEwIgogICAgICAgICAgICAgImQwIgotICAgICAgICB3aGVuICJmdDEi
CisgICAgICAgIHdoZW4gImZ0MSIsICJmYTEiCiAgICAgICAgICAgICAiZDEiCiAgICAgICAgIHdo
ZW4gImZ0MiIKICAgICAgICAgICAgICJkMiIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9vZmZsaW5lYXNtL2FybTY0LnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVh
c20vYXJtNjQucmIKaW5kZXggM2EwZDc4Ni4uMTExMDYyMiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtNjQucmIKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL29mZmxpbmVhc20vYXJtNjQucmIKQEAgLTM3LDMyICszNywzMCBAQCByZXF1aXJlICJyaXNj
IgogIwogIyBHUFIgY29udmVudGlvbnMsIHRvIG1hdGNoIHRoZSBiYXNlbGluZSBKSVQ6CiAjCi0j
ICB4MCAgPT4gcmV0dXJuIHZhbHVlLCBjYWNoZWQgcmVzdWx0LCBmaXJzdCBhcmd1bWVudCwgdDAs
IGEwLCByMAorIyAgeDAgID0+IHQwLCBhMCwgcjAKICMgIHgxICA9PiB0MSwgYTEsIHIxCiAjICB4
MiAgPT4gdDIsIGEyCi0jICB4MyAgPT4gYTMKLSMgIHg1ICA9PiB0NAotIyAgeDYgID0+IHQ2Ci0j
ICB4OSAgPT4gKG5vbkFyZ0dQUjEgaW4gYmFzZWxpbmUpCi0jIHgxMyAgPT4gc2NyYXRjaCAodW51
c2VkIGluIGJhc2VsaW5lKQotIyB4MTYgID0+IHNjcmF0Y2gKLSMgeDE3ICA9PiBzY3JhdGNoCi0j
IHgyMyAgPT4gdDMKLSMgeDI0ICA9PiB0NQotIyB4MjcgID0+IGNzcjEgKHRhZ1R5cGVOdW1iZXIp
Ci0jIHgyOCAgPT4gY3NyMiAodGFnTWFzaykKKyMgIHgzICA9PiB0MywgYTMKKyMgIHg0ICA9PiB0
NAorIyAgeDUgID0+IHQ1CisjIHgxMyAgPT4gICAgICAgICAgICAgICAgICAoc2NyYXRjaCkKKyMg
eDE2ICA9PiAgICAgICAgICAgICAgICAgIChzY3JhdGNoKQorIyB4MTcgID0+ICAgICAgICAgICAg
ICAgICAgKHNjcmF0Y2gpCisjIHgyNiAgPT4gICAgICAgICAgICAgY3NyMCAoUEIpCisjIHgyNyAg
PT4gICAgICAgICAgICAgY3NyMSAodGFnVHlwZU51bWJlcikKKyMgeDI4ICA9PiAgICAgICAgICAg
ICBjc3IyICh0YWdNYXNrKQogIyB4MjkgID0+IGNmcgogIyAgc3AgID0+IHNwCiAjICBsciAgPT4g
bHIKICMKLSMgRlBSIGNvbmVudGlvbnMsIHRvIG1hdGNoIHRoZSBiYXNlbGluZSBKSVQ6CisjIEZQ
UiBjb252ZW50aW9ucywgdG8gbWF0Y2ggdGhlIGJhc2VsaW5lIEpJVDoKICMKLSMgIHEwICA9PiBm
dDAKLSMgIHExICA9PiBmdDEKLSMgIHEyICA9PiBmdDIKLSMgIHEzICA9PiBmdDMKLSMgIHE0ICA9
PiBmdDQgKHVudXNlZCBpbiBiYXNlbGluZSkKLSMgIHE1ICA9PiBmdDUgKHVudXNlZCBpbiBiYXNl
bGluZSkKKyMgIHEwICA9PiBmdDAsIGZhMCwgZnIKKyMgIHExICA9PiBmdDEsIGZhMQorIyAgcTIg
ID0+IGZ0MiwgZmEyCisjICBxMyAgPT4gZnQzLCBmYTMKKyMgIHE0ICA9PiBmdDQgICAgICAgICAg
KHVudXNlZCBpbiBiYXNlbGluZSkKKyMgIHE1ICA9PiBmdDUgICAgICAgICAgKHVudXNlZCBpbiBi
YXNlbGluZSkKICMgcTMxICA9PiBzY3JhdGNoCiAKIGRlZiBhcm02NEdQUk5hbWUobmFtZSwga2lu
ZCkKQEAgLTEwOSwyMCArMTA3LDE2IEBAIGNsYXNzIFJlZ2lzdGVySUQKICAgICAgICAgICAgIGFy
bTY0R1BSTmFtZSgneDEnLCBraW5kKQogICAgICAgICB3aGVuICd0MicsICdhMicKICAgICAgICAg
ICAgIGFybTY0R1BSTmFtZSgneDInLCBraW5kKQotICAgICAgICB3aGVuICdhMycKKyAgICAgICAg
d2hlbiAndDMnLCAnYTMnCiAgICAgICAgICAgICBhcm02NEdQUk5hbWUoJ3gzJywga2luZCkKLSAg
ICAgICAgd2hlbiAndDMnCi0gICAgICAgICAgICBhcm02NEdQUk5hbWUoJ3gyMycsIGtpbmQpCiAg
ICAgICAgIHdoZW4gJ3Q0JwotICAgICAgICAgICAgYXJtNjRHUFJOYW1lKCd4NScsIGtpbmQpCisg
ICAgICAgICAgICBhcm02NEdQUk5hbWUoJ3g0Jywga2luZCkKICAgICAgICAgd2hlbiAndDUnCi0g
ICAgICAgICAgICBhcm02NEdQUk5hbWUoJ3gyNCcsIGtpbmQpCi0gICAgICAgIHdoZW4gJ3Q2Jwot
ICAgICAgICAgICAgYXJtNjRHUFJOYW1lKCd4NicsIGtpbmQpCi0gICAgICAgIHdoZW4gJ3Q3Jwot
ICAgICAgICAgICAgYXJtNjRHUFJOYW1lKCd4NycsIGtpbmQpCisgICAgICAgICAgICBhcm02NEdQ
Uk5hbWUoJ3g1Jywga2luZCkKICAgICAgICAgd2hlbiAnY2ZyJwogICAgICAgICAgICAgYXJtNjRH
UFJOYW1lKCd4MjknLCBraW5kKQorICAgICAgICB3aGVuICdjc3IwJworICAgICAgICAgICAgYXJt
NjRHUFJOYW1lKCd4MjYnLCBraW5kKQogICAgICAgICB3aGVuICdjc3IxJwogICAgICAgICAgICAg
YXJtNjRHUFJOYW1lKCd4MjcnLCBraW5kKQogICAgICAgICB3aGVuICdjc3IyJwpAQCAtMTQwLDEz
ICsxMzQsMTMgQEAgZW5kCiBjbGFzcyBGUFJlZ2lzdGVySUQKICAgICBkZWYgYXJtNjRPcGVyYW5k
KGtpbmQpCiAgICAgICAgIGNhc2UgQG5hbWUKLSAgICAgICAgd2hlbiAnZnQwJworICAgICAgICB3
aGVuICdmdDAnLCAnZnInLCAnZmEwJwogICAgICAgICAgICAgYXJtNjRGUFJOYW1lKCdxMCcsIGtp
bmQpCi0gICAgICAgIHdoZW4gJ2Z0MScKKyAgICAgICAgd2hlbiAnZnQxJywgJ2ZhMScKICAgICAg
ICAgICAgIGFybTY0RlBSTmFtZSgncTEnLCBraW5kKQotICAgICAgICB3aGVuICdmdDInCisgICAg
ICAgIHdoZW4gJ2Z0MicsICdmYTInCiAgICAgICAgICAgICBhcm02NEZQUk5hbWUoJ3EyJywga2lu
ZCkKLSAgICAgICAgd2hlbiAnZnQzJworICAgICAgICB3aGVuICdmdDMnLCAnZmEzJwogICAgICAg
ICAgICAgYXJtNjRGUFJOYW1lKCdxMycsIGtpbmQpCiAgICAgICAgIHdoZW4gJ2Z0NCcKICAgICAg
ICAgICAgIGFybTY0RlBSTmFtZSgncTQnLCBraW5kKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL29mZmxpbmVhc20vY2xvb3AucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2Zm
bGluZWFzbS9jbG9vcC5yYgppbmRleCAwNGE2OTk4Li4xODZkMjQ3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9jbG9vcC5yYgorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvb2ZmbGluZWFzbS9jbG9vcC5yYgpAQCAtNzAsOSArNzAsOSBAQCBjbGFzcyBSZWdp
c3RlcklECiAgICAgICAgIGNhc2UgbmFtZQogICAgICAgICAjIFRoZSBjbG9vcCBpcyBtb2RlbGxl
ZCBvbiB0aGUgQVJNIGltcGxlbWVudGF0aW9uLiBIZW5jZSwgdGhlIGEwLWEzCiAgICAgICAgICMg
cmVnaXN0ZXJzIGFyZSBhbGlhc2VzIGZvciByMC1yMyBpLmUuIHQwLXQzIGluIG91ciBjYXNlLgot
ICAgICAgICB3aGVuICJ0MCIsICJhMCIKKyAgICAgICAgd2hlbiAidDAiLCAiYTAiLCAicjAiCiAg
ICAgICAgICAgICAidDAiCi0gICAgICAgIHdoZW4gInQxIiwgImExIgorICAgICAgICB3aGVuICJ0
MSIsICJhMSIsICJyMSIKICAgICAgICAgICAgICJ0MSIKICAgICAgICAgd2hlbiAidDIiLCAiYTIi
CiAgICAgICAgICAgICAidDIiCkBAIC04MiwxMCArODIsOCBAQCBjbGFzcyBSZWdpc3RlcklECiAg
ICAgICAgICAgICAicGMiCiAgICAgICAgIHdoZW4gInQ1IgogICAgICAgICAgICAgInQ1IgotICAg
ICAgICB3aGVuICJ0NiIKKyAgICAgICAgd2hlbiAiY3NyMCIKICAgICAgICAgICAgICJwY0Jhc2Ui
Ci0gICAgICAgIHdoZW4gInQ3IgotICAgICAgICAgICAgInQ3IgogICAgICAgICB3aGVuICJjc3Ix
IgogICAgICAgICAgICAgInRhZ1R5cGVOdW1iZXIiCiAgICAgICAgIHdoZW4gImNzcjIiCkBAIC04
NjgsNyArODY2LDggQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgd2hlbiAiY2FsbCIKICAg
ICAgICAgICAgICRhc20ucHV0YyAiQ1JBU0goKTsgLy8gZ2VuZXJpYyBjYWxsIGluc3RydWN0aW9u
IG5vdCBzdXBwb3J0ZWQgYnkgZGVzaWduISIKICAgICAgICAgd2hlbiAiYnJlYWsiCi0gICAgICAg
ICAgICAkYXNtLnB1dGMgIkNSQVNIKCk7IC8vIGJyZWFrIGluc3RydWN0aW9uIG5vdCBpbXBsZW1l
bnRlZC4iCisgICAgICAgICAgICAkYXNtLnB1dGMgJ19fYXNtX18oImludDMiKTsnOworICAgICAg
ICAgICAgIyAkYXNtLnB1dGMgIkNSQVNIKCk7IC8vIGJyZWFrIGluc3RydWN0aW9uIG5vdCBpbXBs
ZW1lbnRlZC4iCiAgICAgICAgIHdoZW4gInJldCIKICAgICAgICAgICAgICRhc20ucHV0YyAib3Bj
b2RlID0gbHIub3Bjb2RlOyIKICAgICAgICAgICAgICRhc20ucHV0YyAiRElTUEFUQ0hfT1BDT0RF
KCk7IgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vbWlwcy5y
YiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL21pcHMucmIKaW5kZXggY2MxMDdl
Yy4uMzA1MmRjYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20v
bWlwcy5yYgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9taXBzLnJiCkBA
IC0yNCw2ICsyNCw0MSBAQAogCiByZXF1aXJlICdyaXNjJwogCisjIEdQUiBjb252ZW50aW9ucywg
dG8gbWF0Y2ggdGhlIGJhc2VsaW5lIEpJVAorIworIyAkYTAgPT4gYTAKKyMgJGExID0+IGExCisj
ICRhMiA9PiBhMgorIyAkYTMgPT4gYTMKKyMgJHYwID0+IHQwLCByMAorIyAkdjEgPT4gdDEsIHIx
CisjICR0MiA9PiAgICAgICAgIHQyCisjICR0MyA9PiAgICAgICAgIHQzCisjICR0NCA9PiAgICAg
ICAgIHQ0CisjICR0NSA9PiAgICAgICAgIHQ1CisjICR0NiA9PiAgICAgICAgICAgIChzY3JhdGNo
KQorIyAkdDcgPT4gICAgICAgICAgICAoc2NyYXRjaCkKKyMgJHQ4ID0+ICAgICAgICAgICAgKHNj
cmF0Y2gpCisjICR0OSA9PiAgICAgICAgICAgIChzdG9yZXMgdGhlIGNhbGxlZSBvZiBhIGNhbGwg
b3Bjb2RlKQorIyAkZ3AgPT4gICAgICAgICAgICAoZ2xvYmFscykKKyMgJHM0ID0+ICAgICAgICAg
ICAgKGNhbGxlZS1zYXZlIHVzZWQgdG8gcHJlc2VydmUgJGdwIGFjcm9zcyBjYWxscykKKyMgJHJh
ID0+IGxyCisjICRzcCA9PiBzcAorIyAkZnAgPT4gY2ZyCisjCisjIEZQUiBjb252ZW50aW9ucywg
dG8gbWF0Y2ggdGhlIGJhc2VsaW5lIEpJVAorIyBXZSBkb24ndCBoYXZlIGZhMiBvciBmYTMhCisj
ICAkZjAgPT4gZnQwLCBmcgorIyAgJGYyID0+IGZ0MQorIyAgJGY0ID0+IGZ0MgorIyAgJGY2ID0+
IGZ0MworIyAgJGY4ID0+IGZ0NAorIyAkZjEwID0+IGZ0NQorIyAkZjEyID0+ICAgICAgICBmYTAK
KyMgJGYxNCA9PiAgICAgICAgZmExCisjICRmMTYgPT4gICAgICAgICAgICAoc2NyYXRjaCkKKyMg
JGYxOCA9PiAgICAgICAgICAgIChzY3JhdGNoKQorCiBjbGFzcyBBc3NlbWJsZXIKICAgICBkZWYg
cHV0U3RyKHN0cikKICAgICAgICAgQG91dHAucHV0cyBzdHIKQEAgLTU3LDggKzkyLDcgQEAgY2xh
c3MgU3BlY2lhbFJlZ2lzdGVyIDwgTm9DaGlsZHJlbgogICAgIGVuZAogZW5kCiAKLU1JUFNfVEVN
UF9HUFJTID0gW1NwZWNpYWxSZWdpc3Rlci5uZXcoIiR0NSIpLCBTcGVjaWFsUmVnaXN0ZXIubmV3
KCIkdDYiKSwgU3BlY2lhbFJlZ2lzdGVyLm5ldygiJHQ3IiksCi0gICAgICAgICAgICAgICAgICAg
IFNwZWNpYWxSZWdpc3Rlci5uZXcoIiR0OCIpXQorTUlQU19URU1QX0dQUlMgPSBbU3BlY2lhbFJl
Z2lzdGVyLm5ldygiJHQ2IiksIFNwZWNpYWxSZWdpc3Rlci5uZXcoIiR0NyIpLCBTcGVjaWFsUmVn
aXN0ZXIubmV3KCIkdDgiKV0KIE1JUFNfWkVST19SRUcgPSBTcGVjaWFsUmVnaXN0ZXIubmV3KCIk
emVybyIpCiBNSVBTX0dQX1JFRyA9IFNwZWNpYWxSZWdpc3Rlci5uZXcoIiRncCIpCiBNSVBTX0dQ
U0FWRV9SRUcgPSBTcGVjaWFsUmVnaXN0ZXIubmV3KCIkczQiKQpAQCAtODUsMjQgKzExOSwxOCBA
QCBjbGFzcyBSZWdpc3RlcklECiAgICAgICAgICAgICAiJGEyIgogICAgICAgICB3aGVuICJhMyIK
ICAgICAgICAgICAgICIkYTMiCi0gICAgICAgIHdoZW4gInIwIiwgInQwIgorICAgICAgICB3aGVu
ICJ0MCIsICJyMCIKICAgICAgICAgICAgICIkdjAiCi0gICAgICAgIHdoZW4gInIxIiwgInQxIgor
ICAgICAgICB3aGVuICJ0MSIsICJyMSIKICAgICAgICAgICAgICIkdjEiCiAgICAgICAgIHdoZW4g
InQyIgogICAgICAgICAgICAgIiR0MiIKICAgICAgICAgd2hlbiAidDMiCi0gICAgICAgICAgICAi
JHMzIgotICAgICAgICB3aGVuICJ0NCIgICAjIFBDIHJlZyBpbiBsbGludAotICAgICAgICAgICAg
IiRzMiIKKyAgICAgICAgICAgICIkdDMiCisgICAgICAgIHdoZW4gInQ0IgorICAgICAgICAgICAg
IiR0NCIKICAgICAgICAgd2hlbiAidDUiCiAgICAgICAgICAgICAiJHQ1IgotICAgICAgICB3aGVu
ICJ0NiIKLSAgICAgICAgICAgICIkdDYiCi0gICAgICAgIHdoZW4gInQ3IgotICAgICAgICAgICAg
IiR0NyIKLSAgICAgICAgd2hlbiAidDgiCi0gICAgICAgICAgICAiJHQ4IgogICAgICAgICB3aGVu
ICJjZnIiCiAgICAgICAgICAgICAiJGZwIgogICAgICAgICB3aGVuICJsciIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3JlZ2lzdGVycy5yYiBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3JlZ2lzdGVycy5yYgppbmRleCAxNjg2NjdlLi42ZTNm
MDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yZWdpc3Rl
cnMucmIKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcmVnaXN0ZXJzLnJi
CkBAIC0zMSwxMCArMzEsNiBAQCBHUFJTID0KICAgICAgInQzIiwKICAgICAgInQ0IiwKICAgICAg
InQ1IiwKLSAgICAgInQ2IiwKLSAgICAgInQ3IiwKLSAgICAgInQ4IiwKLSAgICAgInQ5IiwKICAg
ICAgImNmciIsCiAgICAgICJhMCIsCiAgICAgICJhMSIsCkBAIC00Niw2ICs0Miw3IEBAIEdQUlMg
PQogICAgICAibHIiLAogICAgICAicGMiLAogICAgICAjIDY0LWJpdCBvbmx5IHJlZ2lzdGVyczoK
KyAgICAgImNzcjAiLAogICAgICAiY3NyMSIsICAjIHRhZyB0eXBlIG51bWJlciByZWdpc3Rlcgog
ICAgICAiY3NyMiIgICAjIHRhZyBtYXNrIHJlZ2lzdGVyCiAgICAgXQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vc2g0LnJiIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL29mZmxpbmVhc20vc2g0LnJiCmluZGV4IDAyNDFmMzguLmM4NDdkNTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3NoNC5yYgorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9zaDQucmIKQEAgLTI0LDYgKzI0LDMzIEBACiAKIHJlcXVp
cmUgJ3Jpc2MnCiAKKyMgR1BSIGNvbnZlbnRpb25zLCB0byBtYXRjaCB0aGUgYmFzZWxpbmUgSklU
CisjCisjICByMCA9PiB0MCwgcjAKKyMgIHIxID0+IHQxLCByMQorIyAgcjIgPT4gdDQKKyMgIHIz
ID0+IHQ1CisjICByNCA9PiAgICAgICAgIGEwCisjICByNSA9PiAgICAgICAgIGExCisjICByNiA9
PiB0MiwgICAgIGEyCisjICByNyA9PiB0MywgICAgIGEzCisjIHIxMCA9PiAgICAgICAgICAgIChz
Y3JhdGNoKQorIyByMTEgPT4gICAgICAgICAgICAoc2NyYXRjaCkKKyMgcjEzID0+ICAgICAgICAg
ICAgKHNjcmF0Y2gpCisjIHIxNCA9PiBjZnIKKyMgcjE1ID0+IHNwCisjICBwciA9PiBscgorCisj
IEZQUiBjb252ZW50aW9ucywgdG8gbWF0Y2ggdGhlIGJhc2VsaW5lIEpJVAorIyBXZSBkb24ndCBo
YXZlIGZhMiBvciBmYTMhCisjICBkcjAgPT4gZnQwLCBmcgorIyAgZHIyID0+IGZ0MQorIyAgZHI0
ID0+IGZ0MiwgICBmYTAKKyMgIGRyNiA9PiBmdDMsICAgZmExCisjICBkcjggPT4gZnQ0CisjIGRy
MTAgPT4gZnQ1CisjIGRyMTIgPT4gICAgICAgICAgICAgKHNjcmF0Y2gpCisKIGNsYXNzIE5vZGUK
ICAgICBkZWYgc2g0U2luZ2xlSGkKICAgICAgICAgZG91YmxlT3BlcmFuZCA9IHNoNE9wZXJhbmQK
QEAgLTUxLDMyICs3OCwyOCBAQCBjbGFzcyBTcGVjaWFsUmVnaXN0ZXIgPCBOb0NoaWxkcmVuCiAg
ICAgZW5kCiBlbmQKIAotU0g0X1RNUF9HUFJTID0gWyBTcGVjaWFsUmVnaXN0ZXIubmV3KCJyMyIp
LCBTcGVjaWFsUmVnaXN0ZXIubmV3KCJyMTEiKSwgU3BlY2lhbFJlZ2lzdGVyLm5ldygicjEzIikg
XQotU0g0X1RNUF9GUFJTID0gWyBTcGVjaWFsUmVnaXN0ZXIubmV3KCJkcjEwIikgXQorU0g0X1RN
UF9HUFJTID0gWyBTcGVjaWFsUmVnaXN0ZXIubmV3KCJyMTAiKSwgU3BlY2lhbFJlZ2lzdGVyLm5l
dygicjExIiksIFNwZWNpYWxSZWdpc3Rlci5uZXcoInIxMyIpIF0KK1NINF9UTVBfRlBSUyA9IFsg
U3BlY2lhbFJlZ2lzdGVyLm5ldygiZHIxMiIpIF0KIAogY2xhc3MgUmVnaXN0ZXJJRAogICAgIGRl
ZiBzaDRPcGVyYW5kCiAgICAgICAgIGNhc2UgbmFtZQotICAgICAgICB3aGVuICJ0MCIKLSAgICAg
ICAgICAgICJyMCIKLSAgICAgICAgd2hlbiAidDEiCi0gICAgICAgICAgICAicjEiCi0gICAgICAg
IHdoZW4gInQyIgotICAgICAgICAgICAgInIyIgotICAgICAgICB3aGVuICJ0MyIKLSAgICAgICAg
ICAgICJyMTAiCi0gICAgICAgIHdoZW4gInQ0IiwgImEwIgorICAgICAgICB3aGVuICJhMCIKICAg
ICAgICAgICAgICJyNCIKLSAgICAgICAgd2hlbiAidDUiLCAiYTEiCisgICAgICAgIHdoZW4gImEx
IgogICAgICAgICAgICAgInI1IgotICAgICAgICB3aGVuICJ0NiIsICJhMiIKKyAgICAgICAgd2hl
biAicjAiLCAidDAiCisgICAgICAgICAgICAicjAiCisgICAgICAgIHdoZW4gInIxIiwgInQxIgor
ICAgICAgICAgICAgInIxIgorICAgICAgICB3aGVuICJhMiIsICJ0MiIKICAgICAgICAgICAgICJy
NiIKLSAgICAgICAgd2hlbiAidDciLCAiYTMiCisgICAgICAgIHdoZW4gImEzIiwgInQzIgogICAg
ICAgICAgICAgInI3IgotICAgICAgICB3aGVuICJ0OCIKLSAgICAgICAgICAgICJyOCIKLSAgICAg
ICAgd2hlbiAidDkiCi0gICAgICAgICAgICAicjkiCisgICAgICAgIHdoZW4gInQ0IgorICAgICAg
ICAgICAgInIyIgorICAgICAgICB3aGVuICJ0NSIKKyAgICAgICAgICAgICJyMyIKICAgICAgICAg
d2hlbiAiY2ZyIgogICAgICAgICAgICAgInIxNCIKICAgICAgICAgd2hlbiAic3AiCkBAIC05Niwx
NCArMTE5LDE0IEBAIGNsYXNzIEZQUmVnaXN0ZXJJRAogICAgICAgICAgICAgImRyMCIKICAgICAg
ICAgd2hlbiAiZnQxIgogICAgICAgICAgICAgImRyMiIKLSAgICAgICAgd2hlbiAiZnQyIgorICAg
ICAgICB3aGVuICJmdDIiLCAiZmEwIgogICAgICAgICAgICAgImRyNCIKLSAgICAgICAgd2hlbiAi
ZnQzIgorICAgICAgICB3aGVuICJmdDMiLCAiZmExIgogICAgICAgICAgICAgImRyNiIKICAgICAg
ICAgd2hlbiAiZnQ0IgogICAgICAgICAgICAgImRyOCIKLSAgICAgICAgd2hlbiAiZmEwIgotICAg
ICAgICAgICAgImRyMTIiCisgICAgICAgIHdoZW4gImZ0NSIKKyAgICAgICAgICAgICJkcjEwIgog
ICAgICAgICBlbHNlCiAgICAgICAgICAgICByYWlzZSAiQmFkIHJlZ2lzdGVyICN7bmFtZX0gZm9y
IFNINCBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IgogICAgICAgICBlbmQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3g4Ni5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9vZmZsaW5lYXNtL3g4Ni5yYgppbmRleCA4ODMwZTNkLi5hMjc0MDY3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS94ODYucmIKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL29mZmxpbmVhc20veDg2LnJiCkBAIC0yNCw2ICsyNCw2MiBAQAogCiByZXF1
aXJlICJjb25maWciCiAKKyMgR1BSIGNvbnZlbnRpb25zLCB0byBtYXRjaCB0aGUgYmFzZWxpbmUg
SklUOgorIworIworIyBPbiB4ODYtMzIgYml0cyAod2luZG93cyBhbmQgbm9uLXdpbmRvd3MpCisj
IGEwLCBhMSwgYTIsIGEzIGFyZSBvbmx5IHRoZXJlIGZvciBlYXNlLW9mLXVzZSBvZiBvZmZsaW5l
YXNtOyB0aGV5IGFyZSBub3QKKyMgYWN0dWFsbHkgY29uc2lkZXJlZCBhcyBzdWNoIGJ5IHRoZSBB
QkkgYW5kIHdlIG5lZWQgdG8gcHVzaC9wb3Agb3VyIGFyZ3VtZW50cworIyBvbiB0aGUgc3RhY2su
IGEwIGFuZCBhMSBhcmUgZWN4IGFuZCBlZHggdG8gZm9sbG93IGZhc3RjYWxsLgorIworIyBlYXgg
PT4gdDAsIGEyLCByMAorIyBlZHggPT4gdDEsIGExLCByMQorIyBlY3ggPT4gdDIsIGEwCisjIGVi
eCA9PiB0MywgYTMgICAgIChjYWxsZWUtc2F2ZSkKKyMgZXNpID0+IHQ0ICAgICAgICAgKGNhbGxl
ZS1zYXZlKQorIyBlZGkgPT4gdDUgICAgICAgICAoY2FsbGVlLXNhdmUpCisjIGVicCA9PiBjZnIK
KyMgZXNwID0+IHNwCisjCisjIE9uIHg4Ni02NCBub24td2luZG93cworIworIyByYXggPT4gdDAs
ICAgICByMAorIyByZGkgPT4gICAgIGEwCisjIHJzaSA9PiB0MSwgYTEKKyMgcmR4ID0+IHQyLCBh
MiwgcjEKKyMgcmN4ID0+IHQzLCBhMworIyAgcjggPT4gdDQKKyMgcjEwID0+IHQ1CisjIHJieCA9
PiAgICAgICAgICAgICBjc3IwIChjYWxsZWUtc2F2ZSwgUEIsIHVudXNlZCBpbiBiYXNlbGluZSkK
KyMgcjEyID0+ICAgICAgICAgICAgICAgICAgKGNhbGxlZS1zYXZlKQorIyByMTMgPT4gICAgICAg
ICAgICAgICAgICAoY2FsbGVlLXNhdmUpCisjIHIxNCA9PiAgICAgICAgICAgICBjc3IxIChjYWxs
ZWUtc2F2ZSwgdGFnVHlwZU51bWJlcikKKyMgcjE1ID0+ICAgICAgICAgICAgIGNzcjIgKGNhbGxl
ZS1zYXZlLCB0YWdNYXNrKQorIyByc3AgPT4gc3AKKyMgcmJwID0+IGNmcgorIyByMTEgPT4gICAg
ICAgICAgICAgICAgICAoc2NyYXRjaCkKKyMKKyMgT24geDg2LTY0IHdpbmRvd3MKKyMgQXJndW1l
bnRzIG5lZWQgdG8gYmUgcHVzaC9wb3AnZCBvbiB0aGUgc3RhY2sgaW4gYWRkaXRpb24gdG8gYmVp
bmcgc3RvcmVkIGluCisjIHRoZSByZWdpc3RlcnMuIEFsc28sID44IHJldHVybiB0eXBlcyBhcmUg
cmV0dXJuZWQgaW4gYSB3ZWlyZCB3YXkuCisjCisjIHJheCA9PiB0MCwgICAgIHIwCisjIHJjeCA9
PiAgICAgYTAKKyMgcmR4ID0+IHQxLCBhMSwgcjEKKyMgIHI4ID0+IHQyLCBhMgorIyAgcjkgPT4g
dDMsIGEzCisjIHJkaSA9PiB0NCwgICAgICAgICAgICAgIChjYWxsZWUtc2F2ZSkKKyMgcjEwID0+
IHQ1CisjIHJzaSA9PiAgICAgICAgICAgICAgICAgIChjYWxsZWUtc2F2ZSkKKyMgcmJ4ID0+ICAg
ICAgICAgICAgIGNzcjAgKGNhbGxlZS1zYXZlLCBQQiwgdW51c2VkIGluIGJhc2VsaW5lKQorIyBy
MTIgPT4gICAgICAgICAgICAgICAgICAoY2FsbGVlLXNhdmUpCisjIHIxMyA9PiAgICAgICAgICAg
ICAgICAgIChjYWxsZWUtc2F2ZSkKKyMgcjE0ID0+ICAgICAgICAgICAgIGNzcjEgKGNhbGxlZS1z
YXZlLCB0YWdUeXBlTnVtYmVyKQorIyByMTUgPT4gICAgICAgICAgICAgY3NyMiAoY2FsbGVlLXNh
dmUsIHRhZ01hc2spCisjIHJzcCA9PiBzcAorIyByYnAgPT4gY2ZyCisjIHIxMSA9PiAgICAgICAg
ICAgICAgICAgIChzY3JhdGNoKQorCiBkZWYgaXNYNjQKICAgICBjYXNlICRhY3RpdmVCYWNrZW5k
CiAgICAgd2hlbiAiWDg2IgpAQCAtMzksNiArOTUsMjEgQEAgZGVmIGlzWDY0CiAgICAgZW5kCiBl
bmQKIAorZGVmIGlzV2luCisgICAgY2FzZSAkYWN0aXZlQmFja2VuZAorICAgIHdoZW4gIlg4NiIK
KyAgICAgICAgZmFsc2UKKyAgICB3aGVuICJYODZfV0lOIgorICAgICAgICB0cnVlCisgICAgd2hl
biAiWDg2XzY0IgorICAgICAgICBmYWxzZQorICAgIHdoZW4gIlg4Nl82NF9XSU4iCisgICAgICAg
IHRydWUKKyAgICBlbHNlCisgICAgICAgIHJhaXNlICJiYWQgdmFsdWUgZm9yICRhY3RpdmVCYWNr
ZW5kOiAjeyRhY3RpdmVCYWNrZW5kfSIKKyAgICBlbmQKK2VuZAorCiBkZWYgdXNlWDg3CiAgICAg
Y2FzZSAkYWN0aXZlQmFja2VuZAogICAgIHdoZW4gIlg4NiIKQEAgLTU0LDIwICsxMjUsMjAgQEAg
ZGVmIHVzZVg4NwogICAgIGVuZAogZW5kCiAKLWRlZiBpc1dpbmRvd3MKK2RlZiBpc0NvbXBpbGlu
Z09uV2luZG93cwogICAgIEVOVlsnT1MnXSA9PSAnV2luZG93c19OVCcKIGVuZAogCiBkZWYgaXNH
Q0MKLSAgICAhaXNXaW5kb3dzCisgICAgIWlzQ29tcGlsaW5nT25XaW5kb3dzCiBlbmQKIAogZGVm
IGlzTVNWQwotICAgIGlzV2luZG93cworICAgIGlzQ29tcGlsaW5nT25XaW5kb3dzCiBlbmQKIAog
ZGVmIGlzSW50ZWxTeW50YXgKLSAgICBpc1dpbmRvd3MKKyAgICBpc0NvbXBpbGluZ09uV2luZG93
cwogZW5kCiAKIGRlZiByZWdpc3RlcihuYW1lKQpAQCAtMTQxLDIwNSArMjEyLDEyMSBAQCBlbmQK
IAogWDY0X1NDUkFUQ0hfUkVHSVNURVIgPSBTcGVjaWFsUmVnaXN0ZXIubmV3KCJyMTEiKQogCitk
ZWYgeDg2R1BSTmFtZShuYW1lLCBraW5kKQorICAgIGNhc2UgbmFtZQorICAgIHdoZW4gImVheCIs
ICJlYngiLCAiZWN4IiwgImVkeCIKKyAgICAgICAgbmFtZTggPSBuYW1lWzFdICsgJ2wnCisgICAg
ICAgIG5hbWUxNiA9IG5hbWVbMS4uMl0KKyAgICB3aGVuICJlc2kiLCAiZWRpIiwgImVicCIsICJl
c3AiCisgICAgICAgIG5hbWUxNiA9IG5hbWVbMS4uMl0KKyAgICAgICAgbmFtZTggPSBuYW1lMTYg
KyAnbCcKKyAgICB3aGVuICJyYXgiLCAicmJ4IiwgInJjeCIsICJyZHgiCisgICAgICAgIHJhaXNl
ICJiYWQgR1BSIG5hbWUgI3tuYW1lfSBpbiAzMi1iaXQgWDg2IiB1bmxlc3MgaXNYNjQKKyAgICAg
ICAgbmFtZTggPSBuYW1lWzFdICsgJ2wnCisgICAgICAgIG5hbWUxNiA9IG5hbWVbMS4uMl0KKyAg
ICB3aGVuICJyOCIsICJyOSIsICJyMTAiLCAicjEyIiwgInIxMyIsICJyMTQiLCAicjE1IgorICAg
ICAgICByYWlzZSAiYmFkIEdQUiBuYW1lICN7bmFtZX0gaW4gMzItYml0IFg4NiIgdW5sZXNzIGlz
WDY0CisgICAgICAgIGNhc2Uga2luZAorICAgICAgICB3aGVuIDpoYWxmCisgICAgICAgICAgICBy
ZXR1cm4gcmVnaXN0ZXIobmFtZSArICJ3IikKKyAgICAgICAgd2hlbiA6aW50CisgICAgICAgICAg
ICByZXR1cm4gcmVnaXN0ZXIobmFtZSArICJkIikKKyAgICAgICAgd2hlbiA6cHRyCisgICAgICAg
ICAgICByZXR1cm4gcmVnaXN0ZXIobmFtZSkKKyAgICAgICAgd2hlbiA6cXVhZAorICAgICAgICAg
ICAgcmV0dXJuIHJlZ2lzdGVyKG5hbWUpCisgICAgICAgIGVuZAorICAgIGVsc2UKKyAgICAgICAg
cmFpc2UgImJhZCBHUFIgbmFtZSAje25hbWV9IgorICAgIGVuZAorICAgIGNhc2Uga2luZAorICAg
IHdoZW4gOmJ5dGUKKyAgICAgICAgcmVnaXN0ZXIobmFtZTgpCisgICAgd2hlbiA6aGFsZgorICAg
ICAgICByZWdpc3RlcihuYW1lMTYpCisgICAgd2hlbiA6aW50CisgICAgICAgIHJlZ2lzdGVyKCJl
IiArIG5hbWUxNikKKyAgICB3aGVuIDpwdHIKKyAgICAgICAgcmVnaXN0ZXIoKGlzWDY0ID8gInIi
IDogImUiKSArIG5hbWUxNikKKyAgICB3aGVuIDpxdWFkCisgICAgICAgIGlzWDY0ID8gcmVnaXN0
ZXIoInIiICsgbmFtZTE2KSA6IHJhaXNlCisgICAgZWxzZQorICAgICAgICByYWlzZSAiaW52YWxp
ZCBraW5kICN7a2luZH0gZm9yIEdQUiAje25hbWV9IGluIFg4NiIKKyAgICBlbmQKK2VuZAorCiBj
bGFzcyBSZWdpc3RlcklECiAgICAgZGVmIHN1cHBvcnRzOEJpdE9uWDg2Ci0gICAgICAgIGNhc2Ug
bmFtZQotICAgICAgICB3aGVuICJ0MCIsICJhMCIsICJyMCIsICJ0MSIsICJhMSIsICJyMSIsICJ0
MiIsICJ0MyIsICJ0NCIsICJ0NSIKKyAgICAgICAgY2FzZSB4ODZHUFIKKyAgICAgICAgd2hlbiAi
ZWF4IiwgImVieCIsICJlY3giLCAiZWR4IiwgImVkaSIsICJlc2kiLCAiZWJwIiwgImVzcCIKICAg
ICAgICAgICAgIHRydWUKLSAgICAgICAgd2hlbiAiY2ZyIiwgInR0bnIiLCAidG1yIgorICAgICAg
ICB3aGVuICJyOCIsICJyOSIsICJyMTAiLCAicjEyIiwgInIxMyIsICJyMTQiLCAicjE1IgogICAg
ICAgICAgICAgZmFsc2UKLSAgICAgICAgd2hlbiAidDYiCi0gICAgICAgICAgICBpc1g2NAogICAg
ICAgICBlbHNlCiAgICAgICAgICAgICByYWlzZQogICAgICAgICBlbmQKICAgICBlbmQKLSAgICAK
LSAgICBkZWYgeDg2T3BlcmFuZChraW5kKQotICAgICAgICBjYXNlIG5hbWUKLSAgICAgICAgd2hl
biAidDAiLCAiYTAiLCAicjAiCi0gICAgICAgICAgICBjYXNlIGtpbmQKLSAgICAgICAgICAgIHdo
ZW4gOmJ5dGUKLSAgICAgICAgICAgICAgICByZWdpc3RlcigiYWwiKQotICAgICAgICAgICAgd2hl
biA6aGFsZgotICAgICAgICAgICAgICAgIHJlZ2lzdGVyKCJheCIpCi0gICAgICAgICAgICB3aGVu
IDppbnQKLSAgICAgICAgICAgICAgICByZWdpc3RlcigiZWF4IikKLSAgICAgICAgICAgIHdoZW4g
OnB0cgotICAgICAgICAgICAgICAgIGlzWDY0ID8gcmVnaXN0ZXIoInJheCIpIDogcmVnaXN0ZXIo
ImVheCIpCi0gICAgICAgICAgICB3aGVuIDpxdWFkCi0gICAgICAgICAgICAgICAgaXNYNjQgPyBy
ZWdpc3RlcigicmF4IikgOiByYWlzZQotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAg
IHJhaXNlICJJbnZhbGlkIGtpbmQgI3traW5kfSBmb3IgbmFtZSAje25hbWV9IgotICAgICAgICAg
ICAgZW5kCi0gICAgICAgIHdoZW4gInQxIiwgImExIiwgInIxIgotICAgICAgICAgICAgY2FzZSBr
aW5kCi0gICAgICAgICAgICB3aGVuIDpieXRlCi0gICAgICAgICAgICAgICAgcmVnaXN0ZXIoImRs
IikKLSAgICAgICAgICAgIHdoZW4gOmhhbGYKLSAgICAgICAgICAgICAgICByZWdpc3RlcigiZHgi
KQotICAgICAgICAgICAgd2hlbiA6aW50Ci0gICAgICAgICAgICAgICAgcmVnaXN0ZXIoImVkeCIp
Ci0gICAgICAgICAgICB3aGVuIDpwdHIKLSAgICAgICAgICAgICAgICBpc1g2NCA/IHJlZ2lzdGVy
KCJyZHgiKSA6IHJlZ2lzdGVyKCJlZHgiKQotICAgICAgICAgICAgd2hlbiA6cXVhZAotICAgICAg
ICAgICAgICAgIGlzWDY0ID8gcmVnaXN0ZXIoInJkeCIpIDogcmFpc2UKLSAgICAgICAgICAgIGVs
c2UKLSAgICAgICAgICAgICAgICByYWlzZQotICAgICAgICAgICAgZW5kCi0gICAgICAgIHdoZW4g
InQyIgotICAgICAgICAgICAgY2FzZSBraW5kCi0gICAgICAgICAgICB3aGVuIDpieXRlCi0gICAg
ICAgICAgICAgICAgcmVnaXN0ZXIoImNsIikKLSAgICAgICAgICAgIHdoZW4gOmhhbGYKLSAgICAg
ICAgICAgICAgICByZWdpc3RlcigiY3giKQotICAgICAgICAgICAgd2hlbiA6aW50Ci0gICAgICAg
ICAgICAgICAgcmVnaXN0ZXIoImVjeCIpCi0gICAgICAgICAgICB3aGVuIDpwdHIKLSAgICAgICAg
ICAgICAgICBpc1g2NCA/IHJlZ2lzdGVyKCJyY3giKSA6IHJlZ2lzdGVyKCJlY3giKQotICAgICAg
ICAgICAgd2hlbiA6cXVhZAotICAgICAgICAgICAgICAgIGlzWDY0ID8gcmVnaXN0ZXIoInJjeCIp
IDogcmFpc2UKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICByYWlzZQotICAgICAg
ICAgICAgZW5kCi0gICAgICAgIHdoZW4gInQzIgotICAgICAgICAgICAgY2FzZSBraW5kCi0gICAg
ICAgICAgICB3aGVuIDpieXRlCi0gICAgICAgICAgICAgICAgcmVnaXN0ZXIoImJsIikKLSAgICAg
ICAgICAgIHdoZW4gOmhhbGYKLSAgICAgICAgICAgICAgICByZWdpc3RlcigiYngiKQotICAgICAg
ICAgICAgd2hlbiA6aW50Ci0gICAgICAgICAgICAgICAgcmVnaXN0ZXIoImVieCIpCi0gICAgICAg
ICAgICB3aGVuIDpwdHIKLSAgICAgICAgICAgICAgICBpc1g2NCA/IHJlZ2lzdGVyKCJyYngiKSA6
IHJlZ2lzdGVyKCJlYngiKQotICAgICAgICAgICAgd2hlbiA6cXVhZAotICAgICAgICAgICAgICAg
IGlzWDY0ID8gcmVnaXN0ZXIoInJieCIpIDogcmFpc2UKLSAgICAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgICAgICByYWlzZQotICAgICAgICAgICAgZW5kCi0gICAgICAgIHdoZW4gInQ0IgotICAg
ICAgICAgICAgY2FzZSBraW5kCi0gICAgICAgICAgICB3aGVuIDpieXRlCi0gICAgICAgICAgICAg
ICAgcmVnaXN0ZXIoImRpbCIpCi0gICAgICAgICAgICB3aGVuIDpoYWxmCi0gICAgICAgICAgICAg
ICAgcmVnaXN0ZXIoImRpIikKLSAgICAgICAgICAgIHdoZW4gOmludAotICAgICAgICAgICAgICAg
IHJlZ2lzdGVyKCJlZGkiKQotICAgICAgICAgICAgd2hlbiA6cHRyCi0gICAgICAgICAgICAgICAg
aXNYNjQgPyByZWdpc3RlcigicmRpIikgOiByZWdpc3RlcigiZWRpIikKLSAgICAgICAgICAgIHdo
ZW4gOnF1YWQKLSAgICAgICAgICAgICAgICBpc1g2NCA/IHJlZ2lzdGVyKCJyZGkiKSA6IHJhaXNl
Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgcmFpc2UKLSAgICAgICAgICAgIGVu
ZAotICAgICAgICB3aGVuICJjZnIiCi0gICAgICAgICAgICBpZiBpc1g2NAotICAgICAgICAgICAg
ICAgIGNhc2Uga2luZAotICAgICAgICAgICAgICAgIHdoZW4gOmhhbGYKLSAgICAgICAgICAgICAg
ICAgICAgcmVnaXN0ZXIoImJwIikKLSAgICAgICAgICAgICAgICB3aGVuIDppbnQKLSAgICAgICAg
ICAgICAgICAgICAgcmVnaXN0ZXIoImVicCIpCi0gICAgICAgICAgICAgICAgd2hlbiA6cHRyCi0g
ICAgICAgICAgICAgICAgICAgIHJlZ2lzdGVyKCJyYnAiKQotICAgICAgICAgICAgICAgIHdoZW4g
OnF1YWQKLSAgICAgICAgICAgICAgICAgICAgcmVnaXN0ZXIoInJicCIpCi0gICAgICAgICAgICAg
ICAgZWxzZQotICAgICAgICAgICAgICAgICAgICByYWlzZQotICAgICAgICAgICAgICAgIGVuZAot
ICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGNhc2Uga2luZAotICAgICAgICAgICAg
ICAgIHdoZW4gOmhhbGYKLSAgICAgICAgICAgICAgICAgICAgcmVnaXN0ZXIoImJwIikKLSAgICAg
ICAgICAgICAgICB3aGVuIDppbnQKLSAgICAgICAgICAgICAgICAgICAgcmVnaXN0ZXIoImVicCIp
Ci0gICAgICAgICAgICAgICAgd2hlbiA6cHRyCi0gICAgICAgICAgICAgICAgICAgIHJlZ2lzdGVy
KCJlYnAiKQotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UK
LSAgICAgICAgICAgICAgICBlbmQKLSAgICAgICAgICAgIGVuZAotICAgICAgICB3aGVuICJzcCIK
LSAgICAgICAgICAgIGNhc2Uga2luZAotICAgICAgICAgICAgd2hlbiA6Ynl0ZQotICAgICAgICAg
ICAgICAgIHJlZ2lzdGVyKCJzcGwiKQotICAgICAgICAgICAgd2hlbiA6aGFsZgotICAgICAgICAg
ICAgICAgIHJlZ2lzdGVyKCJzcCIpCi0gICAgICAgICAgICB3aGVuIDppbnQKLSAgICAgICAgICAg
ICAgICByZWdpc3RlcigiZXNwIikKLSAgICAgICAgICAgIHdoZW4gOnB0cgotICAgICAgICAgICAg
ICAgIGlzWDY0ID8gcmVnaXN0ZXIoInJzcCIpIDogcmVnaXN0ZXIoImVzcCIpCi0gICAgICAgICAg
ICB3aGVuIDpxdWFkCi0gICAgICAgICAgICAgICAgaXNYNjQgPyByZWdpc3RlcigicnNwIikgOiBy
YWlzZQorCisgICAgZGVmIHg4NkdQUgorICAgICAgICBpZiBpc1g2NAorICAgICAgICAgICAgY2Fz
ZSBuYW1lCisgICAgICAgICAgICB3aGVuICJ0MCIsICJyMCIKKyAgICAgICAgICAgICAgICAiZWF4
IgorICAgICAgICAgICAgd2hlbiAicjEiCisgICAgICAgICAgICAgICAgImVkeCIgIyB0MSA9IGEx
IHdoZW4gaXNXaW4sIHQyID0gYTIgb3RoZXJ3aXNlCisgICAgICAgICAgICB3aGVuICJhMCIKKyAg
ICAgICAgICAgICAgICBpc1dpbiA/ICJlY3giIDogImVkaSIKKyAgICAgICAgICAgIHdoZW4gInQx
IiwgImExIgorICAgICAgICAgICAgICAgIGlzV2luID8gImVkeCIgOiAiZXNpIgorICAgICAgICAg
ICAgd2hlbiAidDIiLCAiYTIiCisgICAgICAgICAgICAgICAgaXNXaW4gPyAicjgiIDogImVkeCIK
KyAgICAgICAgICAgIHdoZW4gInQzIiwgImEzIgorICAgICAgICAgICAgICAgIGlzV2luID8gInI5
IiA6ICJlY3giCisgICAgICAgICAgICB3aGVuICJ0NCIKKyAgICAgICAgICAgICAgICBpc1dpbiA/
ICJlZGkiIDogInI4IgorICAgICAgICAgICAgd2hlbiAidDUiCisgICAgICAgICAgICAgICAgInIx
MCIKKyAgICAgICAgICAgIHdoZW4gImNzcjAiCisgICAgICAgICAgICAgICAgImVieCIKKyAgICAg
ICAgICAgIHdoZW4gImNzcjEiCisgICAgICAgICAgICAgICAgInIxNCIKKyAgICAgICAgICAgIHdo
ZW4gImNzcjIiCisgICAgICAgICAgICAgICAgInIxNSIKKyAgICAgICAgICAgIHdoZW4gImNmciIK
KyAgICAgICAgICAgICAgICAiZWJwIgorICAgICAgICAgICAgd2hlbiAic3AiCisgICAgICAgICAg
ICAgICAgImVzcCIKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICByYWlzZQotICAg
ICAgICAgICAgZW5kCi0gICAgICAgIHdoZW4gInQ1IgotICAgICAgICAgICAgY2FzZSBraW5kCi0g
ICAgICAgICAgICB3aGVuIDpieXRlCi0gICAgICAgICAgICAgICAgcmVnaXN0ZXIoInNpbCIpCi0g
ICAgICAgICAgICB3aGVuIDpoYWxmCi0gICAgICAgICAgICAgICAgcmVnaXN0ZXIoInNpIikKLSAg
ICAgICAgICAgIHdoZW4gOmludAotICAgICAgICAgICAgICAgIHJlZ2lzdGVyKCJlc2kiKQotICAg
ICAgICAgICAgd2hlbiA6cHRyCi0gICAgICAgICAgICAgICAgaXNYNjQgPyByZWdpc3RlcigicnNp
IikgOiByZWdpc3RlcigiZXNpIikKLSAgICAgICAgICAgIHdoZW4gOnF1YWQKLSAgICAgICAgICAg
ICAgICBpc1g2NCA/IHJlZ2lzdGVyKCJyc2kiKSA6IHJhaXNlCi0gICAgICAgICAgICBlbmQKLSAg
ICAgICAgd2hlbiAidDYiCi0gICAgICAgICAgICByYWlzZSAiQ2Fubm90IHVzZSAje25hbWV9IGlu
IDMyLWJpdCBYODYgYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIgdW5sZXNzIGlzWDY0Ci0gICAgICAg
ICAgICBjYXNlIGtpbmQKLSAgICAgICAgICAgIHdoZW4gOmhhbGYKLSAgICAgICAgICAgICAgICBy
ZWdpc3Rlcigicjh3IikKLSAgICAgICAgICAgIHdoZW4gOmludAotICAgICAgICAgICAgICAgIHJl
Z2lzdGVyKCJyOGQiKQotICAgICAgICAgICAgd2hlbiA6cHRyCi0gICAgICAgICAgICAgICAgcmVn
aXN0ZXIoInI4IikKLSAgICAgICAgICAgIHdoZW4gOnF1YWQKLSAgICAgICAgICAgICAgICByZWdp
c3RlcigicjgiKQotICAgICAgICAgICAgZW5kCi0gICAgICAgIHdoZW4gInQ3IgotICAgICAgICAg
ICAgcmFpc2UgIkNhbm5vdCB1c2UgI3tuYW1lfSBpbiAzMi1iaXQgWDg2IGF0ICN7Y29kZU9yaWdp
blN0cmluZ30iIHVubGVzcyBpc1g2NAotICAgICAgICAgICAgY2FzZSBraW5kCi0gICAgICAgICAg
ICB3aGVuIDpoYWxmCi0gICAgICAgICAgICAgICAgcmVnaXN0ZXIoInI5dyIpCi0gICAgICAgICAg
ICB3aGVuIDppbnQKLSAgICAgICAgICAgICAgICByZWdpc3RlcigicjlkIikKLSAgICAgICAgICAg
IHdoZW4gOnB0cgotICAgICAgICAgICAgICAgIHJlZ2lzdGVyKCJyOSIpCi0gICAgICAgICAgICB3
aGVuIDpxdWFkCi0gICAgICAgICAgICAgICAgcmVnaXN0ZXIoInI5IikKLSAgICAgICAgICAgIGVu
ZAotICAgICAgICB3aGVuICJjc3IxIgotICAgICAgICAgICAgcmFpc2UgIkNhbm5vdCB1c2UgI3tu
YW1lfSBpbiAzMi1iaXQgWDg2IGF0ICN7Y29kZU9yaWdpblN0cmluZ30iIHVubGVzcyBpc1g2NAot
ICAgICAgICAgICAgY2FzZSBraW5kCi0gICAgICAgICAgICB3aGVuIDpoYWxmCi0gICAgICAgICAg
ICAgICAgcmVnaXN0ZXIoInIxNHciKQotICAgICAgICAgICAgd2hlbiA6aW50Ci0gICAgICAgICAg
ICAgICAgcmVnaXN0ZXIoInIxNGQiKQotICAgICAgICAgICAgd2hlbiA6cHRyCi0gICAgICAgICAg
ICAgICAgcmVnaXN0ZXIoInIxNCIpCi0gICAgICAgICAgICB3aGVuIDpxdWFkCi0gICAgICAgICAg
ICAgICAgcmVnaXN0ZXIoInIxNCIpCi0gICAgICAgICAgICBlbmQKLSAgICAgICAgd2hlbiAiY3Ny
MiIKLSAgICAgICAgICAgIHJhaXNlICJDYW5ub3QgdXNlICN7bmFtZX0gaW4gMzItYml0IFg4NiBh
dCAje2NvZGVPcmlnaW5TdHJpbmd9IiB1bmxlc3MgaXNYNjQKLSAgICAgICAgICAgIGNhc2Uga2lu
ZAotICAgICAgICAgICAgd2hlbiA6aGFsZgotICAgICAgICAgICAgICAgIHJlZ2lzdGVyKCJyMTV3
IikKLSAgICAgICAgICAgIHdoZW4gOmludAotICAgICAgICAgICAgICAgIHJlZ2lzdGVyKCJyMTVk
IikKLSAgICAgICAgICAgIHdoZW4gOnB0cgotICAgICAgICAgICAgICAgIHJlZ2lzdGVyKCJyMTUi
KQotICAgICAgICAgICAgd2hlbiA6cXVhZAotICAgICAgICAgICAgICAgIHJlZ2lzdGVyKCJyMTUi
KQorICAgICAgICAgICAgICAgIHJhaXNlICJjYW5ub3QgdXNlIHJlZ2lzdGVyICN7bmFtZX0gb24g
WDg2IgogICAgICAgICAgICAgZW5kCiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJhaXNlICJC
YWQgcmVnaXN0ZXIgI3tuYW1lfSBmb3IgWDg2IGF0ICN7Y29kZU9yaWdpblN0cmluZ30iCisgICAg
ICAgICAgICBjYXNlIG5hbWUKKyAgICAgICAgICAgIHdoZW4gInQwIiwgInIwIiwgImEyIgorICAg
ICAgICAgICAgICAgICJlYXgiCisgICAgICAgICAgICB3aGVuICJ0MSIsICJyMSIsICJhMSIKKyAg
ICAgICAgICAgICAgICAiZWR4IgorICAgICAgICAgICAgd2hlbiAidDIiLCAiYTAiCisgICAgICAg
ICAgICAgICAgImVjeCIKKyAgICAgICAgICAgIHdoZW4gInQzIiwgImEzIgorICAgICAgICAgICAg
ICAgICJlYngiCisgICAgICAgICAgICB3aGVuICJ0NCIKKyAgICAgICAgICAgICAgICAiZXNpIgor
ICAgICAgICAgICAgd2hlbiAidDUiCisgICAgICAgICAgICAgICAgImVkaSIKKyAgICAgICAgICAg
IHdoZW4gImNmciIKKyAgICAgICAgICAgICAgICAiZWJwIgorICAgICAgICAgICAgd2hlbiAic3Ai
CisgICAgICAgICAgICAgICAgImVzcCIKKyAgICAgICAgICAgIGVuZAogICAgICAgICBlbmQKICAg
ICBlbmQKKworICAgIGRlZiB4ODZPcGVyYW5kKGtpbmQpCisgICAgICAgIHg4NkdQUk5hbWUoeDg2
R1BSLCBraW5kKQorICAgIGVuZAorCiAgICAgZGVmIHg4NkNhbGxPcGVyYW5kKGtpbmQpCi0gICAg
ICAgIGlzWDY0ID8gIiN7Y2FsbFByZWZpeH0je3g4Nk9wZXJhbmQoOnF1YWQpfSIgOiAiI3tjYWxs
UHJlZml4fSN7eDg2T3BlcmFuZCg6cHRyKX0iCisgICAgICAgICIje2NhbGxQcmVmaXh9I3t4ODZP
cGVyYW5kKDpwdHIpfSIKICAgICBlbmQKIGVuZAogCkBAIC01OTcsMTMgKzU4NCwxMiBAQCBjbGFz
cyBJbnN0cnVjdGlvbgogICAgIGVuZAogICAgIAogICAgIGRlZiBoYW5kbGVYODZTaGlmdChvcGNv
ZGUsIGtpbmQpCi0gICAgICAgIGlmIG9wZXJhbmRzWzBdLmlzX2E/IEltbWVkaWF0ZSBvciBvcGVy
YW5kc1swXSA9PSBSZWdpc3RlcklELmZvck5hbWUobmlsLCAidDIiKQorICAgICAgICBpZiBvcGVy
YW5kc1swXS5pc19hPyBJbW1lZGlhdGUgb3Igb3BlcmFuZHNbMF0ueDg2R1BSID09ICJlY3giCiAg
ICAgICAgICAgICAkYXNtLnB1dHMgIiN7b3Bjb2RlfSAje29yZGVyT3BlcmFuZHMob3BlcmFuZHNb
MF0ueDg2T3BlcmFuZCg6Ynl0ZSksIG9wZXJhbmRzWzFdLng4Nk9wZXJhbmQoa2luZCkpfSIKICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgY3ggPSBSZWdpc3RlcklELmZvck5hbWUobmlsLCAidDIi
KQotICAgICAgICAgICAgJGFzbS5wdXRzICJ4Y2hnI3t4ODZTdWZmaXgoOnB0cil9ICN7b3BlcmFu
ZHNbMF0ueDg2T3BlcmFuZCg6cHRyKX0sICN7Y3gueDg2T3BlcmFuZCg6cHRyKX0iCisgICAgICAg
ICAgICAkYXNtLnB1dHMgInhjaGcje3g4NlN1ZmZpeCg6cHRyKX0gI3tvcGVyYW5kc1swXS54ODZP
cGVyYW5kKDpwdHIpfSwgI3t4ODZHUFJOYW1lKCJlY3giLCA6cHRyKX0iCiAgICAgICAgICAgICAk
YXNtLnB1dHMgIiN7b3Bjb2RlfSAje29yZGVyT3BlcmFuZHMocmVnaXN0ZXIoImNsIiksIG9wZXJh
bmRzWzFdLng4Nk9wZXJhbmQoa2luZCkpfSIKLSAgICAgICAgICAgICRhc20ucHV0cyAieGNoZyN7
eDg2U3VmZml4KDpwdHIpfSAje29wZXJhbmRzWzBdLng4Nk9wZXJhbmQoOnB0cil9LCAje2N4Lng4
Nk9wZXJhbmQoOnB0cil9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJ4Y2hnI3t4ODZTdWZmaXgo
OnB0cil9ICN7b3BlcmFuZHNbMF0ueDg2T3BlcmFuZCg6cHRyKX0sICN7eDg2R1BSTmFtZSgiZWN4
IiwgOnB0cil9IgogICAgICAgICBlbmQKICAgICBlbmQKICAgICAKQEAgLTY0Nyw3ICs2MzMsNyBA
QCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAgICAgICAgICAgICRhc20ucHV0cyAibW92enggI3tv
cmRlck9wZXJhbmRzKG9wZXJhbmQueDg2T3BlcmFuZCg6Ynl0ZSksIG9wZXJhbmQueDg2T3BlcmFu
ZCg6aW50KSl9IgogICAgICAgICAgICAgZW5kCiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGF4
ID0gUmVnaXN0ZXJJRC5uZXcobmlsLCAidDAiKQorICAgICAgICAgICAgYXggPSBSZWdpc3RlcklE
Lm5ldyhuaWwsICJyMCIpCiAgICAgICAgICAgICAkYXNtLnB1dHMgInhjaGcje3g4NlN1ZmZpeCg6
cHRyKX0gI3tvcGVyYW5kLng4Nk9wZXJhbmQoOnB0cil9LCAje2F4Lng4Nk9wZXJhbmQoOnB0cil9
IgogICAgICAgICAgICAgJGFzbS5wdXRzICIje3NldE9wY29kZX0gJWFsIgogICAgICAgICAgICAg
JGFzbS5wdXRzICJtb3Z6YmwgJWFsLCAlZWF4Igo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256720</attachid>
            <date>2015-07-13 13:54:52 -0700</date>
            <delta_ts>2015-09-14 10:56:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146849-20150713135346.patch</filename>
            <type>text/plain</type>
            <size>129345</size>
            <attacher name="Basile Clement">basile_clement</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg2NjM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
NjVmZmUyYTEwYWVlZjIzZDM0YmZlZDZjNmMzMjE0NmY1ZjA3MzBiLi42MWQwYTllMjQ5NDM0YThj
NDVkNDMzM2E0NjExNjY1NWQxY2IxYWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MyBAQAorMjAxNS0wNy0xMyAgQmFzaWxlIENsZW1lbnQgIDxiYXNpbGVfY2xlbWVudEBh
cHBsZS5jb20+CisKKyAgICAgICAganNjLXRhaWxjYWxsOiBDbGVhbiB1cCByZWdpc3RlciBuYW1p
bmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0Njg0
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMg
Y2hhbmdlcyByZWdpc3RlciBuYW1pbmcgY29udmVudGlvbnMgaW4gdGhlIGxsaW50IGFuZCBiYXNl
bGluZSBKSVQKKyAgICAgICAgaW4gb3JkZXIgdG8gdXNlIGFzIGZldyAobmF0aXZlKSBjYWxsZWUt
c2F2ZSByZWdpc3RlcnMgYXMgcG9zc2libGUgb24KKyAgICAgICAgNjQtYml0cyBwbGF0Zm9ybXMu
IEl0IGFsc28gaW50cm9kdWNlcyBzaWduaWZpY2FudCBjaGFuZ2VzIGluIHRoZSB3YXkKKyAgICAg
ICAgcmVnaXN0ZXJzIG5hbWVzIGFyZSBkZWZpbmVkIGluIHRoZSBMTGludCBhbmQgYmFzZWxpbmUg
SklUIGluIG9yZGVyIHRvCisgICAgICAgIGVuYWJsZSBhIHNpbXBsZXIgY29udmVudGlvbiBhYm91
dCB3aGljaCByZWdpc3RlcnMgY2FuIGJlIGFsaWFzZWQgdGhhdAorICAgICAgICBpcyB2YWxpZCBh
Y3Jvc3MgYWxsIGFyY2hpdGVjdHVyZSwgYW5kIGRlc2NyaWJlZCBpbgorICAgICAgICBsbGludC9M
b3dMZXZlbEludGVycHJldGVyLmFzbS4KKworICAgICAgICAqIGRmZy9ERkdKSVRDb21waWxlci5j
cHA6CisgICAgICAgIChKU0M6OkRGRzo6SklUQ29tcGlsZXI6OmNvbXBpbGVGdW5jdGlvbik6Cisg
ICAgICAgICogZnRsL0ZUTExpbmsuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OmxpbmspOgorICAg
ICAgICAqIGppdC9GUFJJbmZvLmg6CisgICAgICAgIChKU0M6OkZQUkluZm86OnRvUmVnaXN0ZXIp
OgorICAgICAgICAoSlNDOjpGUFJJbmZvOjp0b0luZGV4KToKKyAgICAgICAgKiBqaXQvR1BSSW5m
by5oOgorICAgICAgICAoSlNDOjpHUFJJbmZvOjp0b0luZGV4KToKKyAgICAgICAgKEpTQzo6R1BS
SW5mbzo6dG9SZWdpc3Rlcik6CisgICAgICAgICogaml0L0pJVC5jcHA6CisgICAgICAgIChKU0M6
OkpJVDo6cHJpdmF0ZUNvbXBpbGUpOgorICAgICAgICAqIGppdC9KSVRBcml0aG1ldGljLmNwcDoK
KyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX21vZCk6CisgICAgICAgICogaml0L0pJVE9wY29k
ZXMuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX2xvb3BfaGludCk6CisgICAg
ICAgICogaml0L0pJVE9wY29kZXMzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9v
cF9lbmQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfbmV3X29iamVjdCk6CisgICAgICAg
ICogaml0L1JlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRvci5jcHA6CisgICAgICAg
IChKU0M6OmdlbmVyYXRlUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyKToKKyAgICAgICAgKEpT
Qzo6Z2VuZXJhdGVSZWdpc3RlclJlc3RvcmF0aW9uKToKKyAgICAgICAgKiBqaXQvVGh1bmtHZW5l
cmF0b3JzLmNwcDoKKyAgICAgICAgKEpTQzo6YXJpdHlGaXh1cEdlbmVyYXRvcik6CisgICAgICAg
ICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc206CisgICAgICAgICogbGxpbnQvTG93TGV2
ZWxJbnRlcnByZXRlcjMyXzY0LmFzbToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJl
dGVyNjQuYXNtOgorICAgICAgICAqIG9mZmxpbmVhc20vYXJtLnJiOgorICAgICAgICAqIG9mZmxp
bmVhc20vYXJtNjQucmI6CisgICAgICAgICogb2ZmbGluZWFzbS9jbG9vcC5yYjoKKyAgICAgICAg
KiBvZmZsaW5lYXNtL21pcHMucmI6CisgICAgICAgICogb2ZmbGluZWFzbS9yZWdpc3RlcnMucmI6
CisgICAgICAgICogb2ZmbGluZWFzbS9zaDQucmI6CisgICAgICAgICogb2ZmbGluZWFzbS94ODYu
cmI6CisKIDIwMTUtMDctMDkgIE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CiAK
ICAgICAgICAgUkVHUkVTU0lPTiAocjE4MDI0OCk6IFJlcHJvIENyYXNoOiBjb20uYXBwbGUuV2Vi
S2l0LldlYkNvbnRlbnQgYXQgY29tLmFwcGxlLkphdmFTY3JpcHRDb3JlOiBKU0M6OmNyZWF0ZVJh
bmdlRXJyb3IgKyAyMApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdK
SVRDb21waWxlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVy
LmNwcAppbmRleCBhZWJjMGUyN2U3ODI0ZTQwOTUxZmZmOTQ0ZmQyNDFiYTE3ZjgwNDVhLi42N2I5
NjRhMjFmOGE0ZGY2MTJmNWQ5NzBhNjNhYTEwMjllYmM2NDFmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcApAQCAtMzk4LDE4ICszOTgsMTUgQEAgdm9p
ZCBKSVRDb21waWxlcjo6Y29tcGlsZUZ1bmN0aW9uKCkKICAgICBtX3NwZWN1bGF0aXZlLT5jYWxs
T3BlcmF0aW9uV2l0aENhbGxGcmFtZVJvbGxiYWNrT25FeGNlcHRpb24obV9jb2RlQmxvY2stPm1f
aXNDb25zdHJ1Y3RvciA/IG9wZXJhdGlvbkNvbnN0cnVjdEFyaXR5Q2hlY2sgOiBvcGVyYXRpb25D
YWxsQXJpdHlDaGVjaywgR1BSSW5mbzo6cmVnVDApOwogICAgIGlmIChtYXhGcmFtZUV4dGVudEZv
clNsb3dQYXRoQ2FsbCkKICAgICAgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihtYXhGcmFtZUV4dGVu
dEZvclNsb3dQYXRoQ2FsbCksIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKLSAgICBicmFuY2hUZXN0
MzIoWmVybywgR1BSSW5mbzo6cmVnVDApLmxpbmtUbyhmcm9tQXJpdHlDaGVjaywgdGhpcyk7Cisg
ICAgYnJhbmNoVGVzdDMyKFplcm8sIEdQUkluZm86OnJldHVyblZhbHVlR1BSKS5saW5rVG8oZnJv
bUFyaXR5Q2hlY2ssIHRoaXMpOwogICAgIGVtaXRTdG9yZUNvZGVPcmlnaW4oQ29kZU9yaWdpbigw
KSk7Ci0gICAgR1BSUmVnIHRodW5rUmVnOwotI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgdGh1bmtS
ZWcgPSBHUFJJbmZvOjpyZWdUNzsKLSNlbHNlCi0gICAgdGh1bmtSZWcgPSBHUFJJbmZvOjpyZWdU
NTsKLSNlbmRpZgorICAgIEdQUlJlZyB0aHVua1JlZyA9IEdQUkluZm86OmFyZ3VtZW50R1BSMTsK
ICAgICBDb2RlTG9jYXRpb25MYWJlbCogYXJpdHlUaHVua0xhYmVscyA9CiAgICAgICAgIG1fdm0t
PmFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLT5yZXR1cm5QQ3NGb3IoKm1fdm0sIG1fY29kZUJs
b2NrLT5udW1QYXJhbWV0ZXJzKCkpOwogICAgIG1vdmUoVHJ1c3RlZEltbVB0cihhcml0eVRodW5r
TGFiZWxzKSwgdGh1bmtSZWcpOwotICAgIGxvYWRQdHIoQmFzZUluZGV4KHRodW5rUmVnLCBHUFJJ
bmZvOjpyZWdUMCwgdGltZXNQdHIoKSksIHRodW5rUmVnKTsKKyAgICBsb2FkUHRyKEJhc2VJbmRl
eCh0aHVua1JlZywgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIHRpbWVzUHRyKCkpLCB0aHVua1Jl
Zyk7CisgICAgaWYgKEdQUkluZm86OnJldHVyblZhbHVlR1BSICE9IEdQUkluZm86OmFyZ3VtZW50
R1BSMCkKKyAgICAgICAgbW92ZShHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIwKTsKICAgICBtX2NhbGxBcml0eUZpeHVwID0gY2FsbCgpOwogICAgIGp1bXAoZnJv
bUFyaXR5Q2hlY2spOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExMaW5rLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTGluay5jcHAKaW5k
ZXggMTg4YWZlNWYwYzY3NGI2M2MzM2FjYjNkNzMwNDQ1NTgzNTIxZjZmYi4uOTI5ZjUwZmQ5MzE4
M2IyNDcxOTkwMGZmZjI4MDgyZTI1YjU3YmZiOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExMaW5rLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TExpbmsuY3BwCkBAIC0xNjUsMTQgKzE2NSwxNCBAQCB2b2lkIGxpbmsoU3RhdGUmIHN0YXRlKQog
ICAgICAgICBqaXQubG9hZDY0KHZtLmFkZHJlc3NPZkV4Y2VwdGlvbigpLCBHUFJJbmZvOjpyZWdU
MSk7CiAgICAgICAgIGppdC5qaXRBc3NlcnRJc051bGwoR1BSSW5mbzo6cmVnVDEpOwogI2VuZGlm
Ci0gICAgICAgIGppdC5tb3ZlKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBHUFJJbmZvOjpyZWdU
MCk7CisgICAgICAgIGppdC5tb3ZlKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBHUFJJbmZvOjph
cmd1bWVudEdQUjApOwogICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKLSAgICAg
ICAgbWFpblBhdGhKdW1wcy5hcHBlbmQoaml0LmJyYW5jaFRlc3QzMihDQ2FsbEhlbHBlcnM6Olpl
cm8sIEdQUkluZm86OnJlZ1QwKSk7CisgICAgICAgIG1haW5QYXRoSnVtcHMuYXBwZW5kKGppdC5i
cmFuY2hUZXN0MzIoQ0NhbGxIZWxwZXJzOjpaZXJvLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsK
ICAgICAgICAgaml0LmVtaXRGdW5jdGlvblByb2xvZ3VlKCk7CiAgICAgICAgIENvZGVMb2NhdGlv
bkxhYmVsKiBhcml0eVRodW5rTGFiZWxzID0KICAgICAgICAgICAgIHZtLmFyaXR5Q2hlY2tGYWls
UmV0dXJuVGh1bmtzLT5yZXR1cm5QQ3NGb3Iodm0sIGNvZGVCbG9jay0+bnVtUGFyYW1ldGVycygp
KTsKLSAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGFyaXR5VGh1
bmtMYWJlbHMpLCBHUFJJbmZvOjpyZWdUNyk7Ci0gICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVs
cGVyczo6QmFzZUluZGV4KEdQUkluZm86OnJlZ1Q3LCBHUFJJbmZvOjpyZWdUMCwgQ0NhbGxIZWxw
ZXJzOjp0aW1lc1B0cigpKSwgR1BSSW5mbzo6cmVnVDcpOworICAgICAgICBqaXQubW92ZShDQ2Fs
bEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoYXJpdHlUaHVua0xhYmVscyksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMSk7CisgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QmFzZUluZGV4KEdQ
UkluZm86OmFyZ3VtZW50R1BSMSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwLCBDQ2FsbEhlbHBlcnM6
OnRpbWVzUHRyKCkpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwogICAgICAgICBDQ2FsbEhlbHBl
cnM6OkNhbGwgY2FsbEFyaXR5Rml4dXAgPSBqaXQuY2FsbCgpOwogICAgICAgICBqaXQuZW1pdEZ1
bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgbWFpblBhdGhKdW1wcy5hcHBlbmQoaml0Lmp1bXAo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0ZQUkluZm8uaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRlBSSW5mby5oCmluZGV4IGYwNmIxN2MwZGQ1YTU3Njc2
ZjlmN2U0MmI5MGVhZmM4ZmVjMjkyOWQuLjZlY2RhMjA1OWE3MmNhYTIzNjljZmI2Zjk0ODhhMTdl
NjhiZTVmMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRlBSSW5mby5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRlBSSW5mby5oCkBAIC0yNjgsMTQgKzI2
OCwxNSBAQCBwdWJsaWM6CiBjbGFzcyBGUFJJbmZvIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEZQ
UlJlZyBSZWdpc3RlclR5cGU7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG51bWJlck9mUmVn
aXN0ZXJzID0gNjsKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbnVtYmVyT2ZSZWdpc3RlcnMg
PSA3OwogCiAgICAgLy8gVGVtcG9yYXJ5IHJlZ2lzdGVycy4KICAgICBzdGF0aWMgY29uc3QgRlBS
UmVnIGZwUmVnVDAgPSBNSVBTUmVnaXN0ZXJzOjpmMDsKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVn
IGZwUmVnVDEgPSBNSVBTUmVnaXN0ZXJzOjpmNDsKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVnIGZw
UmVnVDIgPSBNSVBTUmVnaXN0ZXJzOjpmNjsKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVnIGZwUmVn
VDMgPSBNSVBTUmVnaXN0ZXJzOjpmODsKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVnIGZwUmVnVDQg
PSBNSVBTUmVnaXN0ZXJzOjpmMTA7CisgICAgc3RhdGljIGNvbnN0IEZQUlJlZyBmcFJlZ1QxID0g
TUlQU1JlZ2lzdGVyczo6ZjI7CisgICAgc3RhdGljIGNvbnN0IEZQUlJlZyBmcFJlZ1QyID0gTUlQ
U1JlZ2lzdGVyczo6ZjQ7CisgICAgc3RhdGljIGNvbnN0IEZQUlJlZyBmcFJlZ1QzID0gTUlQU1Jl
Z2lzdGVyczo6ZjY7CisgICAgc3RhdGljIGNvbnN0IEZQUlJlZyBmcFJlZ1Q0ID0gTUlQU1JlZ2lz
dGVyczo6Zjg7CisgICAgc3RhdGljIGNvbnN0IEZQUlJlZyBmcFJlZ1Q1ID0gTUlQU1JlZ2lzdGVy
czo6ZjEwOwogICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgZnBSZWdUNSA9IE1JUFNSZWdpc3RlcnM6
OmYxODsKIAogICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgcmV0dXJuVmFsdWVGUFIgPSBNSVBTUmVn
aXN0ZXJzOjpmMDsKQEAgLTI4Niw3ICsyODcsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEZQUlJl
ZyB0b1JlZ2lzdGVyKHVuc2lnbmVkIGluZGV4KQogICAgIHsKICAgICAgICAgc3RhdGljIGNvbnN0
IEZQUlJlZyByZWdpc3RlckZvckluZGV4W251bWJlck9mUmVnaXN0ZXJzXSA9IHsKLSAgICAgICAg
ICAgIGZwUmVnVDAsIGZwUmVnVDEsIGZwUmVnVDIsIGZwUmVnVDMsIGZwUmVnVDQsIGZwUmVnVDUg
fTsKKyAgICAgICAgICAgIGZwUmVnVDAsIGZwUmVnVDEsIGZwUmVnVDIsIGZwUmVnVDMsIGZwUmVn
VDQsIGZwUmVnVDUsIGZwUmVnVDYgfTsKIAogICAgICAgICBBU1NFUlQoaW5kZXggPCBudW1iZXJP
ZlJlZ2lzdGVycyk7CiAgICAgICAgIHJldHVybiByZWdpc3RlckZvckluZGV4W2luZGV4XTsKQEAg
LTI5NywxMSArMjk4LDExIEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKHJlZyAhPSBJbnZhbGlk
RlBSUmVnKTsKICAgICAgICAgQVNTRVJUKHJlZyA8IDIwKTsKICAgICAgICAgc3RhdGljIGNvbnN0
IHVuc2lnbmVkIGluZGV4Rm9yUmVnaXN0ZXJbMjBdID0gewotICAgICAgICAgICAgMCwgSW52YWxp
ZEluZGV4LCBJbnZhbGlkSW5kZXgsIEludmFsaWRJbmRleCwKLSAgICAgICAgICAgIDEsIEludmFs
aWRJbmRleCwgMiwgSW52YWxpZEluZGV4LAotICAgICAgICAgICAgMywgSW52YWxpZEluZGV4LCA0
LCBJbnZhbGlkSW5kZXgsCisgICAgICAgICAgICAwLCBJbnZhbGlkSW5kZXgsIDEsIEludmFsaWRJ
bmRleCwKKyAgICAgICAgICAgIDIsIEludmFsaWRJbmRleCwgMywgSW52YWxpZEluZGV4LAorICAg
ICAgICAgICAgNCwgSW52YWxpZEluZGV4LCA1LCBJbnZhbGlkSW5kZXgsCiAgICAgICAgICAgICBJ
bnZhbGlkSW5kZXgsIEludmFsaWRJbmRleCwgSW52YWxpZEluZGV4LCBJbnZhbGlkSW5kZXgsCi0g
ICAgICAgICAgICBJbnZhbGlkSW5kZXgsIEludmFsaWRJbmRleCwgNSwgSW52YWxpZEluZGV4LAor
ICAgICAgICAgICAgSW52YWxpZEluZGV4LCBJbnZhbGlkSW5kZXgsIDYsIEludmFsaWRJbmRleCwK
ICAgICAgICAgfTsKICAgICAgICAgdW5zaWduZWQgcmVzdWx0ID0gaW5kZXhGb3JSZWdpc3Rlclty
ZWddOwogICAgICAgICByZXR1cm4gcmVzdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9HUFJJbmZvLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0dQUkluZm8u
aAppbmRleCBhNWUzMDFiZDQ4MTBiZTNhZWVlZGQyMDllNTZjZGE4MTg2ZjMxZTI4Li5iYWFhNzhj
ODRiZTEyMzIwMzlhYTUyMWI5ZjY2ODVlMjQyNWQ3NGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0dQUkluZm8uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0dQUkluZm8uaApAQCAtMzEsNiArMzEsMTEgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKKy8vIFdl
IHVzZSB0aGUgc2FtZSBjb252ZW50aW9ucyBpbiB0aGUgYmFzbGluZSBKSVQgYXMgaW4gdGhlIExM
aW50LiBJZiB5b3UKKy8vIGNoYW5nZSBtYXBwaW5ncyBpbiB0aGUgR1BSSW5mbywgeW91IHNob3Vs
ZCBjaGFuZ2UgdGhlbSBpbiB0aGUgb2ZmbGluZWFzbQorLy8gY29tcGlsZXIgYWRlcXVhdGVseS4g
VGhlIHJlZ2lzdGVyIG5hbWluZyBjb252ZW50aW9ucyBhcmUgZGVzY3JpYmVkIGF0IHRoZQorLy8g
dG9wIG9mIHRoZSBMb3dMZXZlbEludGVycHJldGVyLmFzbSBmaWxlLgorCiB0eXBlZGVmIE1hY3Jv
QXNzZW1ibGVyOjpSZWdpc3RlcklEIEdQUlJlZzsKICNkZWZpbmUgSW52YWxpZEdQUlJlZyAoKDo6
SlNDOjpHUFJSZWcpLTEpCiAKQEAgLTI5NCw4ICsyOTksNiBAQCBwcml2YXRlOgogfTsKICNlbmRp
ZiAvLyBVU0UoSlNWQUxVRTMyXzY0KQogCi0vLyBUaGUgYmFzZWxpbmUgSklUIHJlcXVpcmVzIHRo
YXQgcmVnVDMgYmUgY2FsbGVlLXByZXNlcnZlZC4KLQogI2lmIENQVShYODYpCiAjZGVmaW5lIE5V
TUJFUl9PRl9BUkdVTUVOVF9SRUdJU1RFUlMgMHUKIApAQCAtMzA1LDI1ICszMDgsMjEgQEAgcHVi
bGljOgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBudW1iZXJPZlJlZ2lzdGVycyA9IDY7CiAg
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG51bWJlck9mQXJndW1lbnRSZWdpc3RlcnMgPSBOVU1C
RVJfT0ZfQVJHVU1FTlRfUkVHSVNURVJTOwogCi0gICAgLy8gTm90ZTogcmVnVDMgaXMgcmVxdWly
ZWQgdG8gYmUgY2FsbGVlLXByZXNlcnZlZC4KLQogICAgIC8vIFRlbXBvcmFyeSByZWdpc3RlcnMu
CiAgICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUMCA9IFg4NlJlZ2lzdGVyczo6ZWF4OwogICAg
IHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDEgPSBYODZSZWdpc3RlcnM6OmVkeDsKICAgICBzdGF0
aWMgY29uc3QgR1BSUmVnIHJlZ1QyID0gWDg2UmVnaXN0ZXJzOjplY3g7Ci0gICAgc3RhdGljIGNv
bnN0IEdQUlJlZyByZWdUMyA9IFg4NlJlZ2lzdGVyczo6ZWJ4OwotICAgIHN0YXRpYyBjb25zdCBH
UFJSZWcgcmVnVDQgPSBYODZSZWdpc3RlcnM6OmVkaTsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVn
IHJlZ1Q1ID0gWDg2UmVnaXN0ZXJzOjplc2k7Ci0gICAgLy8gVGhlc2UgcmVnaXN0ZXJzIG1hdGNo
IHRoZSBiYXNlbGluZSBKSVQuCi0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBjYWNoZWRSZXN1bHRS
ZWdpc3RlciA9IHJlZ1QwOwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgY2FjaGVkUmVzdWx0UmVn
aXN0ZXIyID0gcmVnVDE7CisgICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUMyA9IFg4NlJlZ2lz
dGVyczo6ZWJ4OyAvLyBDYWxsZWUtc2F2ZQorICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDQg
PSBYODZSZWdpc3RlcnM6OmVzaTsgLy8gQ2FsbGVlLXNhdmUKKyAgICBzdGF0aWMgY29uc3QgR1BS
UmVnIHJlZ1Q1ID0gWDg2UmVnaXN0ZXJzOjplZGk7IC8vIENhbGxlZS1zYXZlCiAgICAgc3RhdGlj
IGNvbnN0IEdQUlJlZyBjYWxsRnJhbWVSZWdpc3RlciA9IFg4NlJlZ2lzdGVyczo6ZWJwOwogICAg
IC8vIFRoZXNlIGNvbnN0YW50cyBwcm92aWRlIHRoZSBuYW1lcyBmb3IgdGhlIGdlbmVyYWwgcHVy
cG9zZSBhcmd1bWVudCAmIHJldHVybiB2YWx1ZSByZWdpc3RlcnMuCiAgICAgc3RhdGljIGNvbnN0
IEdQUlJlZyBhcmd1bWVudEdQUjAgPSBYODZSZWdpc3RlcnM6OmVjeDsgLy8gcmVnVDIKICAgICBz
dGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSMSA9IFg4NlJlZ2lzdGVyczo6ZWR4OyAvLyBy
ZWdUMQorICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgYXJndW1lbnRHUFIyID0gWDg2UmVnaXN0ZXJz
OjplYXg7IC8vIHJlZ1QwCisgICAgc3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjMgPSBY
ODZSZWdpc3RlcnM6OmVieDsgLy8gcmVnVDMKICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIG5vbkFy
Z0dQUjAgPSBYODZSZWdpc3RlcnM6OmVzaTsgLy8gcmVnVDQKLSAgICBzdGF0aWMgY29uc3QgR1BS
UmVnIG5vbkFyZ0dQUjEgPSBYODZSZWdpc3RlcnM6OmVheDsgLy8gcmVnVDAKLSAgICBzdGF0aWMg
Y29uc3QgR1BSUmVnIG5vbkFyZ0dQUjIgPSBYODZSZWdpc3RlcnM6OmVieDsgLy8gcmVnVDMKKyAg
ICBzdGF0aWMgY29uc3QgR1BSUmVnIG5vbkFyZ0dQUjEgPSBYODZSZWdpc3RlcnM6OmVkaTsgLy8g
cmVnVDUKICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJldHVyblZhbHVlR1BSID0gWDg2UmVnaXN0
ZXJzOjplYXg7IC8vIHJlZ1QwCiAgICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZXR1cm5WYWx1ZUdQ
UjIgPSBYODZSZWdpc3RlcnM6OmVkeDsgLy8gcmVnVDEKICAgICBzdGF0aWMgY29uc3QgR1BSUmVn
IG5vblByZXNlcnZlZE5vblJldHVybkdQUiA9IFg4NlJlZ2lzdGVyczo6ZWN4OwpAQCAtMzQ1LDcg
KzM0NCw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIEFTU0VSVChyZWcgIT0gSW52YWxpZEdQ
UlJlZyk7CiAgICAgICAgIEFTU0VSVChzdGF0aWNfY2FzdDxpbnQ+KHJlZykgPCA4KTsKLSAgICAg
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGluZGV4Rm9yUmVnaXN0ZXJbOF0gPSB7IDAsIDIsIDEs
IDMsIEludmFsaWRJbmRleCwgSW52YWxpZEluZGV4LCA1LCA0IH07CisgICAgICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBpbmRleEZvclJlZ2lzdGVyWzhdID0geyAwLCAyLCAxLCAzLCBJbnZhbGlk
SW5kZXgsIEludmFsaWRJbmRleCwgNCwgNSB9OwogICAgICAgICB1bnNpZ25lZCByZXN1bHQgPSBp
bmRleEZvclJlZ2lzdGVyW3JlZ107CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQpAQCAt
Mzc5LDUyICszNzgsNzMgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBudW1i
ZXJPZlJlZ2lzdGVycyA9IDExOwogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBudW1iZXJPZkFy
Z3VtZW50UmVnaXN0ZXJzID0gTlVNQkVSX09GX0FSR1VNRU5UX1JFR0lTVEVSUzsKIAotICAgIC8v
IE5vdGU6IHJlZ1QzIGlzIHJlcXVpcmVkIHRvIGJlIGNhbGxlZS1wcmVzZXJ2ZWQuCi0KICAgICAv
LyBUaGVzZSByZWdpc3RlcnMgbWF0Y2ggdGhlIGJhc2VsaW5lIEpJVC4KLSAgICBzdGF0aWMgY29u
c3QgR1BSUmVnIGNhY2hlZFJlc3VsdFJlZ2lzdGVyID0gWDg2UmVnaXN0ZXJzOjplYXg7CiAgICAg
c3RhdGljIGNvbnN0IEdQUlJlZyBjYWxsRnJhbWVSZWdpc3RlciA9IFg4NlJlZ2lzdGVyczo6ZWJw
OwogICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgdGFnVHlwZU51bWJlclJlZ2lzdGVyID0gWDg2UmVn
aXN0ZXJzOjpyMTQ7CiAgICAgc3RhdGljIGNvbnN0IEdQUlJlZyB0YWdNYXNrUmVnaXN0ZXIgPSBY
ODZSZWdpc3RlcnM6OnIxNTsKICAgICAvLyBUZW1wb3JhcnkgcmVnaXN0ZXJzLgogICAgIHN0YXRp
YyBjb25zdCBHUFJSZWcgcmVnVDAgPSBYODZSZWdpc3RlcnM6OmVheDsKLSAgICBzdGF0aWMgY29u
c3QgR1BSUmVnIHJlZ1QxID0gWDg2UmVnaXN0ZXJzOjplZHg7Ci0gICAgc3RhdGljIGNvbnN0IEdQ
UlJlZyByZWdUMiA9IFg4NlJlZ2lzdGVyczo6ZWN4OwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcg
cmVnVDMgPSBYODZSZWdpc3RlcnM6OmVieDsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Q0
ID0gWDg2UmVnaXN0ZXJzOjplZGk7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUNSA9IFg4
NlJlZ2lzdGVyczo6ZXNpOwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDYgPSBYODZSZWdp
c3RlcnM6OnI4OworI2lmICFPUyhXSU5ET1dTKQorICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVn
VDEgPSBYODZSZWdpc3RlcnM6OmVzaTsKKyAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1QyID0g
WDg2UmVnaXN0ZXJzOjplZHg7CisgICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUMyA9IFg4NlJl
Z2lzdGVyczo6ZWN4OworICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDQgPSBYODZSZWdpc3Rl
cnM6OnI4OworICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDUgPSBYODZSZWdpc3RlcnM6OnIx
MDsKKyAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Q2ID0gWDg2UmVnaXN0ZXJzOjplZGk7CiAg
ICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUNyA9IFg4NlJlZ2lzdGVyczo6cjk7Ci0gICAgc3Rh
dGljIGNvbnN0IEdQUlJlZyByZWdUOCA9IFg4NlJlZ2lzdGVyczo6cjEwOwotICAgIHN0YXRpYyBj
b25zdCBHUFJSZWcgcmVnVDkgPSBYODZSZWdpc3RlcnM6OnIxMjsKLSAgICBzdGF0aWMgY29uc3Qg
R1BSUmVnIHJlZ1QxMCA9IFg4NlJlZ2lzdGVyczo6cjEzOwotICAgIC8vIFRoZXNlIGNvbnN0YW50
cyBwcm92aWRlIHRoZSBuYW1lcyBmb3IgdGhlIGdlbmVyYWwgcHVycG9zZSBhcmd1bWVudCAmIHJl
dHVybiB2YWx1ZSByZWdpc3RlcnMuCisjZWxzZQorICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVn
VDEgPSBYODZSZWdpc3RlcnM6OmVkeDsKKyAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1QyID0g
WDg2UmVnaXN0ZXJzOjpyODsKKyAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1QzID0gWDg2UmVn
aXN0ZXJzOjpyOTsKKyAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Q0ID0gWDg2UmVnaXN0ZXJz
OjplZGk7IC8vIFRoaXMgb25lIGlzIGFjdHVhbGx5IGNhbGxlZS1zYXZlCisgICAgc3RhdGljIGNv
bnN0IEdQUlJlZyByZWdUNSA9IFg4NlJlZ2lzdGVyczo6cjEwOworICAgIHN0YXRpYyBjb25zdCBH
UFJSZWcgcmVnVDYgPSBYODZSZWdpc3RlcnM6OmVjeDsKKyNlbmRpZgorCisgICAgc3RhdGljIGNv
bnN0IEdQUlJlZyByZWdDMCA9IFg4NlJlZ2lzdGVyczo6ZWJ4OworICAgIHN0YXRpYyBjb25zdCBH
UFJSZWcgcmVnQzEgPSBYODZSZWdpc3RlcnM6OnIxMjsKKyAgICBzdGF0aWMgY29uc3QgR1BSUmVn
IHJlZ0MyID0gWDg2UmVnaXN0ZXJzOjpyMTM7CisKICNpZiAhT1MoV0lORE9XUykKLSAgICBzdGF0
aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSMCA9IFg4NlJlZ2lzdGVyczo6ZWRpOyAvLyByZWdU
NAotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgYXJndW1lbnRHUFIxID0gWDg2UmVnaXN0ZXJzOjpl
c2k7IC8vIHJlZ1Q1Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjIgPSBYODZS
ZWdpc3RlcnM6OmVkeDsgLy8gcmVnVDEKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50
R1BSMyA9IFg4NlJlZ2lzdGVyczo6ZWN4OyAvLyByZWdUMgotICAgIHN0YXRpYyBjb25zdCBHUFJS
ZWcgYXJndW1lbnRHUFI0ID0gWDg2UmVnaXN0ZXJzOjpyODsgIC8vIHJlZ1Q2Ci0gICAgc3RhdGlj
IGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjUgPSBYODZSZWdpc3RlcnM6OnI5OyAgLy8gcmVnVDcK
KyAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ0MzID0gWDg2UmVnaXN0ZXJzOjpyMTQ7CisgICAg
c3RhdGljIGNvbnN0IEdQUlJlZyByZWdDNCA9IFg4NlJlZ2lzdGVyczo6cjE1OwogI2Vsc2UKLSAg
ICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSMCA9IFg4NlJlZ2lzdGVyczo6ZWN4Owot
ICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgYXJndW1lbnRHUFIxID0gWDg2UmVnaXN0ZXJzOjplZHg7
Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjIgPSBYODZSZWdpc3RlcnM6OnI4
OyAvLyByZWdUNgotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgYXJndW1lbnRHUFIzID0gWDg2UmVn
aXN0ZXJzOjpyOTsgLy8gcmVnVDcKKyAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ0MzID0gWDg2
UmVnaXN0ZXJzOjplc2k7CisgICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdDNCA9IFg4NlJlZ2lz
dGVyczo6ZWRpOyAvLyByZWdUNAorICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnQzUgPSBYODZS
ZWdpc3RlcnM6OnIxNDsKKyAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ0M2ID0gWDg2UmVnaXN0
ZXJzOjpyMTU7CiAjZW5kaWYKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIG5vbkFyZ0dQUjAgPSBY
ODZSZWdpc3RlcnM6OnIxMDsgLy8gcmVnVDgKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIG5vbkFy
Z0dQUjEgPSBYODZSZWdpc3RlcnM6OmVieDsgLy8gcmVnVDMKLSAgICBzdGF0aWMgY29uc3QgR1BS
UmVnIG5vbkFyZ0dQUjIgPSBYODZSZWdpc3RlcnM6OnIxMjsgLy8gcmVnVDkKKworICAgIC8vIFRo
ZXNlIGNvbnN0YW50cyBwcm92aWRlIHRoZSBuYW1lcyBmb3IgdGhlIGdlbmVyYWwgcHVycG9zZSBh
cmd1bWVudCAmIHJldHVybiB2YWx1ZSByZWdpc3RlcnMuCisjaWYgT1MoV0lORE9XUykKKyAgICBz
dGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSMCA9IFg4NlJlZ2lzdGVyczo6ZWN4OyAvLyBy
ZWdUNgorICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgYXJndW1lbnRHUFIxID0gWDg2UmVnaXN0ZXJz
OjplZHg7IC8vIHJlZ1QxCisgICAgc3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjIgPSBY
ODZSZWdpc3RlcnM6OnI4OyAvLyByZWdUMgorICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgYXJndW1l
bnRHUFIzID0gWDg2UmVnaXN0ZXJzOjpyOTsgLy8gcmVnVDMKKyNlbHNlCisgICAgc3RhdGljIGNv
bnN0IEdQUlJlZyBhcmd1bWVudEdQUjAgPSBYODZSZWdpc3RlcnM6OmVkaTsgLy8gcmVnVDYKKyAg
ICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSMSA9IFg4NlJlZ2lzdGVyczo6ZXNpOyAv
LyByZWdUMQorICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgYXJndW1lbnRHUFIyID0gWDg2UmVnaXN0
ZXJzOjplZHg7IC8vIHJlZ1QyCisgICAgc3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjMg
PSBYODZSZWdpc3RlcnM6OmVjeDsgLy8gcmVnVDMKKyAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFy
Z3VtZW50R1BSNCA9IFg4NlJlZ2lzdGVyczo6cjg7ICAvLyByZWdUNAorICAgIHN0YXRpYyBjb25z
dCBHUFJSZWcgYXJndW1lbnRHUFI1ID0gWDg2UmVnaXN0ZXJzOjpyOTsgLy8gcmVnVDcKKyNlbmRp
ZgorICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgbm9uQXJnR1BSMCA9IFg4NlJlZ2lzdGVyczo6cjEw
OyAvLyByZWdUNQorICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgbm9uQXJnR1BSMSA9IFg4NlJlZ2lz
dGVyczo6ZWJ4OwogICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmV0dXJuVmFsdWVHUFIgPSBYODZS
ZWdpc3RlcnM6OmVheDsgLy8gcmVnVDAKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJldHVyblZh
bHVlR1BSMiA9IFg4NlJlZ2lzdGVyczo6ZWR4OyAvLyByZWdUMQotICAgIHN0YXRpYyBjb25zdCBH
UFJSZWcgbm9uUHJlc2VydmVkTm9uUmV0dXJuR1BSID0gWDg2UmVnaXN0ZXJzOjplc2k7Ci0gICAg
c3RhdGljIGNvbnN0IEdQUlJlZyBub25QcmVzZXJ2ZWROb25Bcmd1bWVudEdQUiA9IFg4NlJlZ2lz
dGVyczo6cjEwOworICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmV0dXJuVmFsdWVHUFIyID0gWDg2
UmVnaXN0ZXJzOjplZHg7IC8vIHJlZ1QxIG9yIHJlZ1QyCisgICAgc3RhdGljIGNvbnN0IEdQUlJl
ZyBub25QcmVzZXJ2ZWROb25SZXR1cm5HUFIgPSBYODZSZWdpc3RlcnM6OnIxMDsgLy8gcmVnVDUK
KyAgICBzdGF0aWMgY29uc3QgR1BSUmVnIG5vblByZXNlcnZlZE5vbkFyZ3VtZW50R1BSID0gWDg2
UmVnaXN0ZXJzOjpyMTA7IC8vIHJlZ1Q1CiAgICAgc3RhdGljIGNvbnN0IEdQUlJlZyBwYXRjaHBv
aW50U2NyYXRjaFJlZ2lzdGVyID0gTWFjcm9Bc3NlbWJsZXI6OnNjcmF0Y2hSZWdpc3RlcjsKIAog
ICAgIHN0YXRpYyBHUFJSZWcgdG9SZWdpc3Rlcih1bnNpZ25lZCBpbmRleCkKICAgICB7CiAgICAg
ICAgIEFTU0VSVChpbmRleCA8IG51bWJlck9mUmVnaXN0ZXJzKTsKLSAgICAgICAgc3RhdGljIGNv
bnN0IEdQUlJlZyByZWdpc3RlckZvckluZGV4W251bWJlck9mUmVnaXN0ZXJzXSA9IHsgcmVnVDAs
IHJlZ1QxLCByZWdUMiwgcmVnVDMsIHJlZ1Q0LCByZWdUNSwgcmVnVDYsIHJlZ1Q3LCByZWdUOCwg
cmVnVDksIHJlZ1QxMCB9OworI2lmICFPUyhXSU5ET1dTKQorICAgICAgICBzdGF0aWMgY29uc3Qg
R1BSUmVnIHJlZ2lzdGVyRm9ySW5kZXhbbnVtYmVyT2ZSZWdpc3RlcnNdID0geyByZWdUMCwgcmVn
VDEsIHJlZ1QyLCByZWdUMywgcmVnVDQsIHJlZ1Q1LCByZWdUNiwgcmVnVDcsIHJlZ0MwLCByZWdD
MSwgcmVnQzIgfTsKKyNlbHNlCisgICAgICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnaXN0ZXJG
b3JJbmRleFtudW1iZXJPZlJlZ2lzdGVyc10gPSB7IHJlZ1QwLCByZWdUMSwgcmVnVDIsIHJlZ1Qz
LCByZWdUNCwgcmVnVDUsIHJlZ1Q2LCByZWdDMCwgcmVnQzEsIHJlZ0MyLCByZWdDMyB9OworI2Vu
ZGlmCiAgICAgICAgIHJldHVybiByZWdpc3RlckZvckluZGV4W2luZGV4XTsKICAgICB9CiAgICAg
CkBAIC00NDMsNyArNDYzLDExIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIEFTU0VSVChyZWcg
IT0gSW52YWxpZEdQUlJlZyk7CiAgICAgICAgIEFTU0VSVChzdGF0aWNfY2FzdDxpbnQ+KHJlZykg
PCAxNik7Ci0gICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbmRleEZvclJlZ2lzdGVyWzE2
XSA9IHsgMCwgMiwgMSwgMywgSW52YWxpZEluZGV4LCBJbnZhbGlkSW5kZXgsIDUsIDQsIDYsIDcs
IDgsIEludmFsaWRJbmRleCwgOSwgMTAsIEludmFsaWRJbmRleCwgSW52YWxpZEluZGV4IH07Cisj
aWYgIU9TKFdJTkRPV1MpCisgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbmRleEZvclJl
Z2lzdGVyWzE2XSA9IHsgMCwgMywgMiwgOCwgSW52YWxpZEluZGV4LCBJbnZhbGlkSW5kZXgsIDEs
IDYsIDQsIDcsIDUsIEludmFsaWRJbmRleCwgOSwgMTAsIEludmFsaWRJbmRleCwgSW52YWxpZElu
ZGV4IH07CisjZWxzZQorICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgaW5kZXhGb3JSZWdp
c3RlclsxNl0gPSB7IDAsIDYsIDEsIDcsIEludmFsaWRJbmRleCwgSW52YWxpZEluZGV4LCAxMCwg
NCwgMiwgMywgNSwgSW52YWxpZEluZGV4LCA4LCA5LCBJbnZhbGlkSW5kZXgsIEludmFsaWRJbmRl
eCB9OworI2VuZGlmCiAgICAgICAgIHJldHVybiBpbmRleEZvclJlZ2lzdGVyW3JlZ107CiAgICAg
fQogCkBAIC00NzQsMTMgKzQ5OCwxMSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IHVuc2ln
bmVkIG51bWJlck9mUmVnaXN0ZXJzID0gOTsKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbnVt
YmVyT2ZBcmd1bWVudFJlZ2lzdGVycyA9IE5VTUJFUl9PRl9BUkdVTUVOVF9SRUdJU1RFUlM7CiAK
LSAgICAvLyBOb3RlOiByZWdUMyBpcyByZXF1aXJlZCB0byBiZSBjYWxsZWUtcHJlc2VydmVkLgot
CiAgICAgLy8gVGVtcG9yYXJ5IHJlZ2lzdGVycy4KICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJl
Z1QwID0gQVJNUmVnaXN0ZXJzOjpyMDsKICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1QxID0g
QVJNUmVnaXN0ZXJzOjpyMTsKICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1QyID0gQVJNUmVn
aXN0ZXJzOjpyMjsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1QzID0gQVJNUmVnaXN0ZXJz
OjpyNDsKKyAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1QzID0gQVJNUmVnaXN0ZXJzOjpyMzsK
ICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Q0ID0gQVJNUmVnaXN0ZXJzOjpyODsKICAgICBz
dGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Q1ID0gQVJNUmVnaXN0ZXJzOjpyOTsKICAgICBzdGF0aWMg
Y29uc3QgR1BSUmVnIHJlZ1Q2ID0gQVJNUmVnaXN0ZXJzOjpyMTA7CkBAIC00ODksMjIgKzUxMSwy
MCBAQCBwdWJsaWM6CiAjZWxzZSAKICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Q3ID0gQVJN
UmVnaXN0ZXJzOjpyNzsKICNlbmRpZgotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDggPSBB
Uk1SZWdpc3RlcnM6OnIzOworICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDggPSBBUk1SZWdp
c3RlcnM6OnI0OwogICAgIC8vIFRoZXNlIHJlZ2lzdGVycyBtYXRjaCB0aGUgYmFzZWxpbmUgSklU
LgotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgY2FjaGVkUmVzdWx0UmVnaXN0ZXIgPSByZWdUMDsK
LSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGNhY2hlZFJlc3VsdFJlZ2lzdGVyMiA9IHJlZ1QxOwog
ICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIgPSBBUk1SZWdpc3RlcnM6
OmZwOwogICAgIC8vIFRoZXNlIGNvbnN0YW50cyBwcm92aWRlIHRoZSBuYW1lcyBmb3IgdGhlIGdl
bmVyYWwgcHVycG9zZSBhcmd1bWVudCAmIHJldHVybiB2YWx1ZSByZWdpc3RlcnMuCiAgICAgc3Rh
dGljIGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjAgPSBBUk1SZWdpc3RlcnM6OnIwOyAvLyByZWdU
MAogICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgYXJndW1lbnRHUFIxID0gQVJNUmVnaXN0ZXJzOjpy
MTsgLy8gcmVnVDEKICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSMiA9IEFSTVJl
Z2lzdGVyczo6cjI7IC8vIHJlZ1QyCi0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQ
UjMgPSBBUk1SZWdpc3RlcnM6OnIzOyAvLyByZWdUOAotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcg
bm9uQXJnR1BSMCA9IEFSTVJlZ2lzdGVyczo6cjQ7IC8vIHJlZ1QzCisgICAgc3RhdGljIGNvbnN0
IEdQUlJlZyBhcmd1bWVudEdQUjMgPSBBUk1SZWdpc3RlcnM6OnIzOyAvLyByZWdUMworICAgIHN0
YXRpYyBjb25zdCBHUFJSZWcgbm9uQXJnR1BSMCA9IEFSTVJlZ2lzdGVyczo6cjQ7IC8vIHJlZ1Q4
CiAgICAgc3RhdGljIGNvbnN0IEdQUlJlZyBub25BcmdHUFIxID0gQVJNUmVnaXN0ZXJzOjpyODsg
Ly8gcmVnVDQKICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIG5vbkFyZ0dQUjIgPSBBUk1SZWdpc3Rl
cnM6OnI5OyAvLyByZWdUNQogICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmV0dXJuVmFsdWVHUFIg
PSBBUk1SZWdpc3RlcnM6OnIwOyAvLyByZWdUMAogICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmV0
dXJuVmFsdWVHUFIyID0gQVJNUmVnaXN0ZXJzOjpyMTsgLy8gcmVnVDEKLSAgICBzdGF0aWMgY29u
c3QgR1BSUmVnIG5vblByZXNlcnZlZE5vblJldHVybkdQUiA9IEFSTVJlZ2lzdGVyczo6cjU7IC8v
IHJlZ1Q3CisgICAgc3RhdGljIGNvbnN0IEdQUlJlZyBub25QcmVzZXJ2ZWROb25SZXR1cm5HUFIg
PSBBUk1SZWdpc3RlcnM6OnI1OwogCiAgICAgc3RhdGljIEdQUlJlZyB0b1JlZ2lzdGVyKHVuc2ln
bmVkIGluZGV4KQogICAgIHsKQEAgLTUyNiw5ICs1NDYsOSBAQCBwdWJsaWM6CiAgICAgICAgIEFT
U0VSVChzdGF0aWNfY2FzdDxpbnQ+KHJlZykgPCAxNik7CiAgICAgICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBpbmRleEZvclJlZ2lzdGVyWzE2XSA9CiAjaWYgQ1BVKEFSTV9USFVNQjIpCi0gICAg
ICAgICAgICB7IDAsIDEsIDIsIDgsIDMsIDksIEludmFsaWRJbmRleCwgSW52YWxpZEluZGV4LCA0
LCA1LCA2LCA3LCBJbnZhbGlkSW5kZXgsIEludmFsaWRJbmRleCwgSW52YWxpZEluZGV4LCBJbnZh
bGlkSW5kZXggfTsKKyAgICAgICAgICAgIHsgMCwgMSwgMiwgMywgOCwgSW52YWxpZEluZGV4LCBJ
bnZhbGlkSW5kZXgsIEludmFsaWRJbmRleCwgNCwgNSwgNiwgNywgSW52YWxpZEluZGV4LCBJbnZh
bGlkSW5kZXgsIEludmFsaWRJbmRleCwgSW52YWxpZEluZGV4IH07CiAjZWxzZQotICAgICAgICAg
ICAgeyAwLCAxLCAyLCA4LCAzLCA5LCBJbnZhbGlkSW5kZXgsIDcsIDQsIDUsIDYsIEludmFsaWRJ
bmRleCwgSW52YWxpZEluZGV4LCBJbnZhbGlkSW5kZXgsIEludmFsaWRJbmRleCwgSW52YWxpZElu
ZGV4IH07CisgICAgICAgICAgICB7IDAsIDEsIDIsIDMsIDgsIEludmFsaWRJbmRleCwgSW52YWxp
ZEluZGV4LCA3LCA0LCA1LCA2LCBJbnZhbGlkSW5kZXgsIEludmFsaWRJbmRleCwgSW52YWxpZElu
ZGV4LCBJbnZhbGlkSW5kZXgsIEludmFsaWRJbmRleCB9OwogI2VuZGlmCiAgICAgICAgIHVuc2ln
bmVkIHJlc3VsdCA9IGluZGV4Rm9yUmVnaXN0ZXJbcmVnXTsKICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKQEAgLTU2MSwxMSArNTgxLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBudW1iZXJPZlJlZ2lzdGVycyA9IDE2OwogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBudW1i
ZXJPZkFyZ3VtZW50UmVnaXN0ZXJzID0gODsKIAotICAgIC8vIE5vdGU6IHJlZ1QzIGlzIHJlcXVp
cmVkIHRvIGJlIGNhbGxlZS1wcmVzZXJ2ZWQuCi0KICAgICAvLyBUaGVzZSByZWdpc3RlcnMgbWF0
Y2ggdGhlIGJhc2VsaW5lIEpJVC4KLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGNhY2hlZFJlc3Vs
dFJlZ2lzdGVyID0gQVJNNjRSZWdpc3RlcnM6OngwOwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcg
dGltZW91dENoZWNrUmVnaXN0ZXIgPSBBUk02NFJlZ2lzdGVyczo6eDI2OwogICAgIHN0YXRpYyBj
b25zdCBHUFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIgPSBBUk02NFJlZ2lzdGVyczo6ZnA7CiAgICAg
c3RhdGljIGNvbnN0IEdQUlJlZyB0YWdUeXBlTnVtYmVyUmVnaXN0ZXIgPSBBUk02NFJlZ2lzdGVy
czo6eDI3OwogICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgdGFnTWFza1JlZ2lzdGVyID0gQVJNNjRS
ZWdpc3RlcnM6OngyODsKQEAgLTU3Myw5ICs1ODksOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNv
bnN0IEdQUlJlZyByZWdUMCA9IEFSTTY0UmVnaXN0ZXJzOjp4MDsKICAgICBzdGF0aWMgY29uc3Qg
R1BSUmVnIHJlZ1QxID0gQVJNNjRSZWdpc3RlcnM6OngxOwogICAgIHN0YXRpYyBjb25zdCBHUFJS
ZWcgcmVnVDIgPSBBUk02NFJlZ2lzdGVyczo6eDI7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBy
ZWdUMyA9IEFSTTY0UmVnaXN0ZXJzOjp4MjM7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdU
NCA9IEFSTTY0UmVnaXN0ZXJzOjp4NTsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Q1ID0g
QVJNNjRSZWdpc3RlcnM6OngyNDsKKyAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1QzID0gQVJN
NjRSZWdpc3RlcnM6OngzOworICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDQgPSBBUk02NFJl
Z2lzdGVyczo6eDQ7CisgICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUNSA9IEFSTTY0UmVnaXN0
ZXJzOjp4NTsKICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Q2ID0gQVJNNjRSZWdpc3RlcnM6
Ong2OwogICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDcgPSBBUk02NFJlZ2lzdGVyczo6eDc7
CiAgICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUOCA9IEFSTTY0UmVnaXN0ZXJzOjp4ODsKQEAg
LTU4NiwxOCArNjAyLDE5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Qx
MyA9IEFSTTY0UmVnaXN0ZXJzOjp4MTM7CiAgICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUMTQg
PSBBUk02NFJlZ2lzdGVyczo6eDE0OwogICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDE1ID0g
QVJNNjRSZWdpc3RlcnM6OngxNTsKKyAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ0MwID0gQVJN
NjRSZWdpc3RlcnM6OngyNzsgLy8gdGFnVHlwZU51bWJlcgorICAgIHN0YXRpYyBjb25zdCBHUFJS
ZWcgcmVnQzEgPSBBUk02NFJlZ2lzdGVyczo6eDI4OyAvLyB0YWdNYXNrCiAgICAgLy8gVGhlc2Ug
Y29uc3RhbnRzIHByb3ZpZGUgdGhlIG5hbWVzIGZvciB0aGUgZ2VuZXJhbCBwdXJwb3NlIGFyZ3Vt
ZW50ICYgcmV0dXJuIHZhbHVlIHJlZ2lzdGVycy4KICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFy
Z3VtZW50R1BSMCA9IEFSTTY0UmVnaXN0ZXJzOjp4MDsgLy8gcmVnVDAKICAgICBzdGF0aWMgY29u
c3QgR1BSUmVnIGFyZ3VtZW50R1BSMSA9IEFSTTY0UmVnaXN0ZXJzOjp4MTsgLy8gcmVnVDEKICAg
ICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSMiA9IEFSTTY0UmVnaXN0ZXJzOjp4Mjsg
Ly8gcmVnVDIKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSMyA9IEFSTTY0UmVn
aXN0ZXJzOjp4MzsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSNCA9IEFSTTY0
UmVnaXN0ZXJzOjp4NDsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSNSA9IEFS
TTY0UmVnaXN0ZXJzOjp4NTsgLy8gcmVnVDQKKyAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3Vt
ZW50R1BSMyA9IEFSTTY0UmVnaXN0ZXJzOjp4MzsgLy8gcmVnVDMKKyAgICBzdGF0aWMgY29uc3Qg
R1BSUmVnIGFyZ3VtZW50R1BSNCA9IEFSTTY0UmVnaXN0ZXJzOjp4NDsgLy8gcmVnVDQKKyAgICBz
dGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSNSA9IEFSTTY0UmVnaXN0ZXJzOjp4NTsgLy8g
cmVnVDUKICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSNiA9IEFSTTY0UmVnaXN0
ZXJzOjp4NjsgLy8gcmVnVDYKICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSNyA9
IEFSTTY0UmVnaXN0ZXJzOjp4NzsgLy8gcmVnVDcKICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIG5v
bkFyZ0dQUjAgPSBBUk02NFJlZ2lzdGVyczo6eDg7IC8vIHJlZ1Q4CiAgICAgc3RhdGljIGNvbnN0
IEdQUlJlZyBub25BcmdHUFIxID0gQVJNNjRSZWdpc3RlcnM6Ong5OyAvLyByZWdUOQotICAgIHN0
YXRpYyBjb25zdCBHUFJSZWcgbm9uQXJnR1BSMiA9IEFSTTY0UmVnaXN0ZXJzOjp4MTA7IC8vIHJl
Z1QxMAogICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmV0dXJuVmFsdWVHUFIgPSBBUk02NFJlZ2lz
dGVyczo6eDA7IC8vIHJlZ1QwCiAgICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZXR1cm5WYWx1ZUdQ
UjIgPSBBUk02NFJlZ2lzdGVyczo6eDE7IC8vIHJlZ1QxCiAgICAgc3RhdGljIGNvbnN0IEdQUlJl
ZyBub25QcmVzZXJ2ZWROb25SZXR1cm5HUFIgPSBBUk02NFJlZ2lzdGVyczo6eDI7CkBAIC02NjMs
NDEgKzY4MCwzOCBAQCBwdWJsaWM6CiBjbGFzcyBHUFJJbmZvIHsKIHB1YmxpYzoKICAgICB0eXBl
ZGVmIEdQUlJlZyBSZWdpc3RlclR5cGU7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG51bWJl
ck9mUmVnaXN0ZXJzID0gNzsKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbnVtYmVyT2ZSZWdp
c3RlcnMgPSA4OwogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBudW1iZXJPZkFyZ3VtZW50UmVn
aXN0ZXJzID0gTlVNQkVSX09GX0FSR1VNRU5UX1JFR0lTVEVSUzsKIAogICAgIC8vIHJlZ1QwIG11
c3QgYmUgdjAgZm9yIHJldHVybmluZyBhIDMyLWJpdCB2YWx1ZS4KICAgICAvLyByZWdUMSBtdXN0
IGJlIHYxIGZvciByZXR1cm5pbmcgYSBwYWlyIG9mIDMyLWJpdCB2YWx1ZS4KLSAgICAvLyByZWdU
MyBtdXN0IGJlIHNhdmVkIGluIHRoZSBjYWxsZWUsIHNvIHVzZSBhbiBTIHJlZ2lzdGVyLgogCiAg
ICAgLy8gVGVtcG9yYXJ5IHJlZ2lzdGVycy4KICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Qw
ID0gTUlQU1JlZ2lzdGVyczo6djA7CiAgICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUMSA9IE1J
UFNSZWdpc3RlcnM6OnYxOwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDIgPSBNSVBTUmVn
aXN0ZXJzOjp0NDsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1QzID0gTUlQU1JlZ2lzdGVy
czo6czI7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUNCA9IE1JUFNSZWdpc3RlcnM6OnQ1
OwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDUgPSBNSVBTUmVnaXN0ZXJzOjp0NjsKLSAg
ICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Q2ID0gTUlQU1JlZ2lzdGVyczo6czA7CisgICAgc3Rh
dGljIGNvbnN0IEdQUlJlZyByZWdUMiA9IE1JUFNSZWdpc3RlcnM6OnQyOworICAgIHN0YXRpYyBj
b25zdCBHUFJSZWcgcmVnVDMgPSBNSVBTUmVnaXN0ZXJzOjp0MzsKKyAgICBzdGF0aWMgY29uc3Qg
R1BSUmVnIHJlZ1Q0ID0gTUlQU1JlZ2lzdGVyczo6dDQ7CisgICAgc3RhdGljIGNvbnN0IEdQUlJl
ZyByZWdUNSA9IE1JUFNSZWdpc3RlcnM6OnQ1OworICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVn
VDYgPSBNSVBTUmVnaXN0ZXJzOjp0MDsKKyAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Q3ID0g
TUlQU1JlZ2lzdGVyczo6dDE7CiAgICAgLy8gVGhlc2UgcmVnaXN0ZXJzIG1hdGNoIHRoZSBiYXNl
bGluZSBKSVQuCi0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBjYWNoZWRSZXN1bHRSZWdpc3RlciA9
IHJlZ1QwOwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgY2FjaGVkUmVzdWx0UmVnaXN0ZXIyID0g
cmVnVDE7CiAgICAgc3RhdGljIGNvbnN0IEdQUlJlZyBjYWxsRnJhbWVSZWdpc3RlciA9IE1JUFNS
ZWdpc3RlcnM6OmZwOwogICAgIC8vIFRoZXNlIGNvbnN0YW50cyBwcm92aWRlIHRoZSBuYW1lcyBm
b3IgdGhlIGdlbmVyYWwgcHVycG9zZSBhcmd1bWVudCAmIHJldHVybiB2YWx1ZSByZWdpc3RlcnMu
CiAgICAgc3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjAgPSBNSVBTUmVnaXN0ZXJzOjph
MDsKICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSMSA9IE1JUFNSZWdpc3RlcnM6
OmExOwogICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgYXJndW1lbnRHUFIyID0gTUlQU1JlZ2lzdGVy
czo6YTI7CiAgICAgc3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjMgPSBNSVBTUmVnaXN0
ZXJzOjphMzsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIG5vbkFyZ0dQUjAgPSByZWdUMjsKLSAg
ICBzdGF0aWMgY29uc3QgR1BSUmVnIG5vbkFyZ0dQUjEgPSByZWdUMzsKLSAgICBzdGF0aWMgY29u
c3QgR1BSUmVnIG5vbkFyZ0dQUjIgPSByZWdUNDsKKyAgICBzdGF0aWMgY29uc3QgR1BSUmVnIG5v
bkFyZ0dQUjAgPSByZWdUMDsKKyAgICBzdGF0aWMgY29uc3QgR1BSUmVnIG5vbkFyZ0dQUjEgPSBy
ZWdUMTsKICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJldHVyblZhbHVlR1BSID0gcmVnVDA7CiAg
ICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZXR1cm5WYWx1ZUdQUjIgPSByZWdUMTsKLSAgICBzdGF0
aWMgY29uc3QgR1BSUmVnIG5vblByZXNlcnZlZE5vblJldHVybkdQUiA9IHJlZ1Q1OworICAgIHN0
YXRpYyBjb25zdCBHUFJSZWcgbm9uUHJlc2VydmVkTm9uUmV0dXJuR1BSID0gcmVnVDI7CiAKICAg
ICBzdGF0aWMgR1BSUmVnIHRvUmVnaXN0ZXIodW5zaWduZWQgaW5kZXgpCiAgICAgewogICAgICAg
ICBBU1NFUlQoaW5kZXggPCBudW1iZXJPZlJlZ2lzdGVycyk7Ci0gICAgICAgIHN0YXRpYyBjb25z
dCBHUFJSZWcgcmVnaXN0ZXJGb3JJbmRleFtudW1iZXJPZlJlZ2lzdGVyc10gPSB7IHJlZ1QwLCBy
ZWdUMSwgcmVnVDIsIHJlZ1QzLCByZWdUNCwgcmVnVDUsIHJlZ1Q2IH07CisgICAgICAgIHN0YXRp
YyBjb25zdCBHUFJSZWcgcmVnaXN0ZXJGb3JJbmRleFtudW1iZXJPZlJlZ2lzdGVyc10gPSB7IHJl
Z1QwLCByZWdUMSwgcmVnVDIsIHJlZ1QzLCByZWdUNCwgcmVnVDUsIHJlZ1Q2LCByZWdUNyB9Owog
ICAgICAgICByZXR1cm4gcmVnaXN0ZXJGb3JJbmRleFtpbmRleF07CiAgICAgfQogCkBAIC03MDcs
OCArNzIxLDggQEAgcHVibGljOgogICAgICAgICBBU1NFUlQocmVnIDwgMjQpOwogICAgICAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgaW5kZXhGb3JSZWdpc3RlclsyNF0gPSB7CiAgICAgICAgICAg
ICBJbnZhbGlkSW5kZXgsIEludmFsaWRJbmRleCwgMCwgMSwgSW52YWxpZEluZGV4LCBJbnZhbGlk
SW5kZXgsIEludmFsaWRJbmRleCwgSW52YWxpZEluZGV4LAotICAgICAgICAgICAgSW52YWxpZElu
ZGV4LCBJbnZhbGlkSW5kZXgsIEludmFsaWRJbmRleCwgSW52YWxpZEluZGV4LCAyLCA0LCA1LCBJ
bnZhbGlkSW5kZXgsCi0gICAgICAgICAgICA2LCBJbnZhbGlkSW5kZXgsIDMsIEludmFsaWRJbmRl
eCwgSW52YWxpZEluZGV4LCBJbnZhbGlkSW5kZXgsIEludmFsaWRJbmRleCwgSW52YWxpZEluZGV4
CisgICAgICAgICAgICA2LCA3LCAyLCAzLCA0LCA1LCBJbnZhbGlkSW5kZXgsIEludmFsaWRJbmRl
eCwKKyAgICAgICAgICAgIEludmFsaWRJbmRleCwgSW52YWxpZEluZGV4LCBJbnZhbGlkSW5kZXgs
IEludmFsaWRJbmRleCwgSW52YWxpZEluZGV4LCBJbnZhbGlkSW5kZXgsIEludmFsaWRJbmRleCwg
SW52YWxpZEluZGV4CiAgICAgICAgIH07CiAgICAgICAgIHVuc2lnbmVkIHJlc3VsdCA9IGluZGV4
Rm9yUmVnaXN0ZXJbcmVnXTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTc0NSwxMiArNzU5
LDEyIEBAIHB1YmxpYzoKICAgICAvLyBUZW1wb3JhcnkgcmVnaXN0ZXJzLgogICAgIHN0YXRpYyBj
b25zdCBHUFJSZWcgcmVnVDAgPSBTSDRSZWdpc3RlcnM6OnIwOwogICAgIHN0YXRpYyBjb25zdCBH
UFJSZWcgcmVnVDEgPSBTSDRSZWdpc3RlcnM6OnIxOwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcg
cmVnVDIgPSBTSDRSZWdpc3RlcnM6OnIyOwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDMg
PSBTSDRSZWdpc3RlcnM6OnIxMDsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Q0ID0gU0g0
UmVnaXN0ZXJzOjpyNDsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Q1ID0gU0g0UmVnaXN0
ZXJzOjpyNTsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Q2ID0gU0g0UmVnaXN0ZXJzOjpy
NjsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Q3ID0gU0g0UmVnaXN0ZXJzOjpyNzsKKyAg
ICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1QyID0gU0g0UmVnaXN0ZXJzOjpyNjsKKyAgICBzdGF0
aWMgY29uc3QgR1BSUmVnIHJlZ1QzID0gU0g0UmVnaXN0ZXJzOjpyNzsKKyAgICBzdGF0aWMgY29u
c3QgR1BSUmVnIHJlZ1Q0ID0gU0g0UmVnaXN0ZXJzOjpyMjsKKyAgICBzdGF0aWMgY29uc3QgR1BS
UmVnIHJlZ1Q1ID0gU0g0UmVnaXN0ZXJzOjpyMzsKKyAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJl
Z1Q2ID0gU0g0UmVnaXN0ZXJzOjpyNDsKKyAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Q3ID0g
U0g0UmVnaXN0ZXJzOjpyNTsKICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Q4ID0gU0g0UmVn
aXN0ZXJzOjpyODsKICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Q5ID0gU0g0UmVnaXN0ZXJz
OjpyOTsKICAgICAvLyBUaGVzZSByZWdpc3RlcnMgbWF0Y2ggdGhlIGJhc2VsaW5lIEpJVC4KQEAg
LTc1OCwxMyArNzcyLDEyIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGNhY2hl
ZFJlc3VsdFJlZ2lzdGVyMiA9IHJlZ1QxOwogICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgY2FsbEZy
YW1lUmVnaXN0ZXIgPSBTSDRSZWdpc3RlcnM6OmZwOwogICAgIC8vIFRoZXNlIGNvbnN0YW50cyBw
cm92aWRlIHRoZSBuYW1lcyBmb3IgdGhlIGdlbmVyYWwgcHVycG9zZSBhcmd1bWVudCAmIHJldHVy
biB2YWx1ZSByZWdpc3RlcnMuCi0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjAg
PSByZWdUNDsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSMSA9IHJlZ1Q1Owot
ICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgYXJndW1lbnRHUFIyID0gcmVnVDY7Ci0gICAgc3RhdGlj
IGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjMgPSByZWdUNzsKLSAgICBzdGF0aWMgY29uc3QgR1BS
UmVnIG5vbkFyZ0dQUjAgPSByZWdUMzsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIG5vbkFyZ0dQ
UjEgPSByZWdUODsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIG5vbkFyZ0dQUjIgPSByZWdUOTsK
KyAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSMCA9IFNINFJlZ2lzdGVyczo6cjQ7
IC8vIHJlZ1Q2CisgICAgc3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjEgPSBTSDRSZWdp
c3RlcnM6OnI1OyAvLyByZWdUNworICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgYXJndW1lbnRHUFIy
ID0gU0g0UmVnaXN0ZXJzOjpyNjsgLy8gcmVnVDIKKyAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFy
Z3VtZW50R1BSMyA9IFNINFJlZ2lzdGVyczo6cjc7IC8vIHJlZ1QzCisgICAgc3RhdGljIGNvbnN0
IEdQUlJlZyBub25BcmdHUFIwID0gcmVnVDQ7CisgICAgc3RhdGljIGNvbnN0IEdQUlJlZyBub25B
cmdHUFIxID0gcmVnVDU7CiAgICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZXR1cm5WYWx1ZUdQUiA9
IHJlZ1QwOwogICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmV0dXJuVmFsdWVHUFIyID0gcmVnVDE7
CiAgICAgc3RhdGljIGNvbnN0IEdQUlJlZyBub25QcmVzZXJ2ZWROb25SZXR1cm5HUFIgPSByZWdU
MjsKQEAgLTc4MCw3ICs3OTMsNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBBU1NFUlQocmVn
ICE9IEludmFsaWRHUFJSZWcpOwogICAgICAgICBBU1NFUlQocmVnIDwgMTQpOwotICAgICAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgaW5kZXhGb3JSZWdpc3RlclsxNF0gPSB7IDAsIDEsIDIsIElu
dmFsaWRJbmRleCwgNCwgNSwgNiwgNywgOCwgOSwgMywgSW52YWxpZEluZGV4LCBJbnZhbGlkSW5k
ZXgsIEludmFsaWRJbmRleCB9OworICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgaW5kZXhG
b3JSZWdpc3RlclsxNF0gPSB7IDAsIDEsIDQsIDUsIDYsIDcsIDIsIDMsIDgsIDksIEludmFsaWRJ
bmRleCwgSW52YWxpZEluZGV4LCBJbnZhbGlkSW5kZXgsIEludmFsaWRJbmRleCB9OwogICAgICAg
ICB1bnNpZ25lZCByZXN1bHQgPSBpbmRleEZvclJlZ2lzdGVyW3JlZ107CiAgICAgICAgIHJldHVy
biByZXN1bHQ7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCmluZGV4IDIzZDMxZGE1
NjM2MDg4OWZiODc2MzVhNWI5Mzk1MGIwMjMyZDI3YjQuLjQzMDQ4OTAzMGNmMzE0MTlhOTVjMGU4
NjRkYmI0ZDM3YTI0MTA0ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKQEAgLTU4NSwx
OSArNTg1LDE0IEBAIENvbXBpbGF0aW9uUmVzdWx0IEpJVDo6cHJpdmF0ZUNvbXBpbGUoSklUQ29t
cGlsYXRpb25FZmZvcnQgZWZmb3J0KQogICAgICAgICBjYWxsT3BlcmF0aW9uV2l0aENhbGxGcmFt
ZVJvbGxiYWNrT25FeGNlcHRpb24obV9jb2RlQmxvY2stPm1faXNDb25zdHJ1Y3RvciA/IG9wZXJh
dGlvbkNvbnN0cnVjdEFyaXR5Q2hlY2sgOiBvcGVyYXRpb25DYWxsQXJpdHlDaGVjayk7CiAgICAg
ICAgIGlmIChtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCkKICAgICAgICAgICAgIGFkZFB0
cihUcnVzdGVkSW1tMzIobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpLCBzdGFja1BvaW50
ZXJSZWdpc3Rlcik7Ci0gICAgICAgIGlmIChyZXR1cm5WYWx1ZUdQUiAhPSByZWdUMCkKLSAgICAg
ICAgICAgIG1vdmUocmV0dXJuVmFsdWVHUFIsIHJlZ1QwKTsKLSAgICAgICAgYnJhbmNoVGVzdDMy
KFplcm8sIHJlZ1QwKS5saW5rVG8oYmVnaW5MYWJlbCwgdGhpcyk7Ci0gICAgICAgIEdQUlJlZyB0
aHVua1JlZzsKLSNpZiBVU0UoSlNWQUxVRTY0KQotICAgICAgICB0aHVua1JlZyA9IEdQUkluZm86
OnJlZ1Q3OwotI2Vsc2UKLSAgICAgICAgdGh1bmtSZWcgPSBHUFJJbmZvOjpyZWdUNTsKLSNlbmRp
ZgorICAgICAgICBicmFuY2hUZXN0MzIoWmVybywgcmV0dXJuVmFsdWVHUFIpLmxpbmtUbyhiZWdp
bkxhYmVsLCB0aGlzKTsKKyAgICAgICAgR1BSUmVnIHRodW5rUmVnID0gR1BSSW5mbzo6YXJndW1l
bnRHUFIxOwogICAgICAgICBDb2RlTG9jYXRpb25MYWJlbCogZmFpbFRodW5rTGFiZWxzID0KICAg
ICAgICAgICAgIG1fdm0tPmFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLT5yZXR1cm5QQ3NGb3Io
Km1fdm0sIG1fY29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCkpOwogICAgICAgICBtb3ZlKFRydXN0
ZWRJbW1QdHIoZmFpbFRodW5rTGFiZWxzKSwgdGh1bmtSZWcpOwotICAgICAgICBsb2FkUHRyKEJh
c2VJbmRleCh0aHVua1JlZywgcmVnVDAsIHRpbWVzUHRyKCkpLCB0aHVua1JlZyk7CisgICAgICAg
IGxvYWRQdHIoQmFzZUluZGV4KHRodW5rUmVnLCByZXR1cm5WYWx1ZUdQUiwgdGltZXNQdHIoKSks
IHRodW5rUmVnKTsKKyAgICAgICAgaWYgKHJldHVyblZhbHVlR1BSICE9IEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCkKKyAgICAgICAgICAgIG1vdmUocmV0dXJuVmFsdWVHUFIsIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCk7CiAgICAgICAgIGVtaXROYWtlZENhbGwobV92bS0+Z2V0Q1RJU3R1Yihhcml0eUZp
eHVwR2VuZXJhdG9yKS5jb2RlKCkpOwogCiAjaWYgIUFTU0VSVF9ESVNBQkxFRApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBcml0aG1ldGljLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUQXJpdGhtZXRpYy5jcHAKaW5kZXggMTY3ZTQxMzAxNTljYTE4
NTYxOTJjNWU0ZWQxZWJmMGViY2VlMjZmNi4uNjE4OWU1NTgwZmRjMzg2OGM5Y2NkYzIyMWQ2NmFl
YTcyYzdiMDI0OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBcml0
aG1ldGljLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMu
Y3BwCkBAIC02MTEsMjUgKzYxMSwzMiBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9tb2QoSW5zdHJ1Y3Rp
b24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBpbnQgb3AyID0gY3VycmVudEluc3RydWN0aW9u
WzNdLnUub3BlcmFuZDsKIAogICAgIC8vIE1ha2Ugc3VyZSByZWdpc3RlcnMgYXJlIGNvcnJlY3Qg
Zm9yIHg4NiBJRElWIGluc3RydWN0aW9ucy4KKyNpZiBDUFUoWDg2KQorICAgIGF1dG8gZWR4ID0g
cmVnVDE7CisgICAgYXV0byBlY3ggPSByZWdUMjsKKyNlbHNlCisgICAgYXV0byBlZHggPSByZWdU
MjsKKyAgICBhdXRvIGVjeCA9IHJlZ1QzOworI2VuZGlmCiAgICAgQVNTRVJUKHJlZ1QwID09IFg4
NlJlZ2lzdGVyczo6ZWF4KTsKLSAgICBBU1NFUlQocmVnVDEgPT0gWDg2UmVnaXN0ZXJzOjplZHgp
OwotICAgIEFTU0VSVChyZWdUMiA9PSBYODZSZWdpc3RlcnM6OmVjeCk7CisgICAgQVNTRVJUKGVk
eCA9PSBYODZSZWdpc3RlcnM6OmVkeCk7CisgICAgQVNTRVJUKGVjeCA9PSBYODZSZWdpc3RlcnM6
OmVjeCk7CiAKLSAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVycyhvcDEsIHJlZ1QzLCBvcDIsIHJl
Z1QyKTsKLSAgICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RJbW1lZGlhdGVJbnRlZ2VyKHJlZ1QzKTsK
LSAgICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RJbW1lZGlhdGVJbnRlZ2VyKHJlZ1QyKTsKKyAgICBl
bWl0R2V0VmlydHVhbFJlZ2lzdGVycyhvcDEsIHJlZ1Q0LCBvcDIsIGVjeCk7CisgICAgZW1pdEp1
bXBTbG93Q2FzZUlmTm90SW1tZWRpYXRlSW50ZWdlcihyZWdUNCk7CisgICAgZW1pdEp1bXBTbG93
Q2FzZUlmTm90SW1tZWRpYXRlSW50ZWdlcihlY3gpOwogCi0gICAgbW92ZShyZWdUMywgcmVnVDAp
OwotICAgIGFkZFNsb3dDYXNlKGJyYW5jaFRlc3QzMihaZXJvLCByZWdUMikpOwotICAgIEp1bXAg
ZGVub21pbmF0b3JOb3ROZWcxID0gYnJhbmNoMzIoTm90RXF1YWwsIHJlZ1QyLCBUcnVzdGVkSW1t
MzIoLTEpKTsKKyAgICBtb3ZlKHJlZ1Q0LCByZWdUMCk7CisgICAgYWRkU2xvd0Nhc2UoYnJhbmNo
VGVzdDMyKFplcm8sIGVjeCkpOworICAgIEp1bXAgZGVub21pbmF0b3JOb3ROZWcxID0gYnJhbmNo
MzIoTm90RXF1YWwsIGVjeCwgVHJ1c3RlZEltbTMyKC0xKSk7CiAgICAgYWRkU2xvd0Nhc2UoYnJh
bmNoMzIoRXF1YWwsIHJlZ1QwLCBUcnVzdGVkSW1tMzIoLTIxNDc0ODM2NDctMSkpKTsKICAgICBk
ZW5vbWluYXRvck5vdE5lZzEubGluayh0aGlzKTsKICAgICBtX2Fzc2VtYmxlci5jZHEoKTsKLSAg
ICBtX2Fzc2VtYmxlci5pZGl2bF9yKHJlZ1QyKTsKLSAgICBKdW1wIG51bWVyYXRvclBvc2l0aXZl
ID0gYnJhbmNoMzIoR3JlYXRlclRoYW5PckVxdWFsLCByZWdUMywgVHJ1c3RlZEltbTMyKDApKTsK
LSAgICBhZGRTbG93Q2FzZShicmFuY2hUZXN0MzIoWmVybywgcmVnVDEpKTsKKyAgICBtX2Fzc2Vt
Ymxlci5pZGl2bF9yKGVjeCk7CisgICAgSnVtcCBudW1lcmF0b3JQb3NpdGl2ZSA9IGJyYW5jaDMy
KEdyZWF0ZXJUaGFuT3JFcXVhbCwgcmVnVDQsIFRydXN0ZWRJbW0zMigwKSk7CisgICAgYWRkU2xv
d0Nhc2UoYnJhbmNoVGVzdDMyKFplcm8sIGVkeCkpOwogICAgIG51bWVyYXRvclBvc2l0aXZlLmxp
bmsodGhpcyk7Ci0gICAgZW1pdEZhc3RBcml0aFJlVGFnSW1tZWRpYXRlKHJlZ1QxLCByZWdUMCk7
CisgICAgZW1pdEZhc3RBcml0aFJlVGFnSW1tZWRpYXRlKGVkeCwgcmVnVDApOwogICAgIGVtaXRQ
dXRWaXJ0dWFsUmVnaXN0ZXIocmVzdWx0KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUT3Bjb2Rlcy5jcHAKaW5kZXggMDgxM2IxNTU1YzgzZGFiYWI1YTA4NDNhZmY5ZWE0Njk5OGIy
ZjQzOS4uMzA3NDhmZTE4N2IxOTE2MzdlYzkyODhiODBmOGM0YWFkODYxN2Q0MCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCkBAIC05MzgsNyArOTM4LDcgQEAgdm9p
ZCBKSVQ6OmVtaXRTbG93X29wX2xvb3BfaGludChJbnN0cnVjdGlvbiosIFZlY3RvcjxTbG93Q2Fz
ZUVudHJ5Pjo6aXRlcmF0b3ImIGkKICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25PcHRp
bWl6ZSwgbV9ieXRlY29kZU9mZnNldCk7CiAgICAgICAgIEp1bXAgbm9PcHRpbWl6ZWRFbnRyeSA9
IGJyYW5jaFRlc3RQdHIoWmVybywgcmV0dXJuVmFsdWVHUFIpOwogICAgICAgICBpZiAoIUFTU0VS
VF9ESVNBQkxFRCkgewotICAgICAgICAgICAgSnVtcCBvayA9IGJyYW5jaFB0cihNYWNyb0Fzc2Vt
Ymxlcjo6QWJvdmUsIHJlZ1QwLCBUcnVzdGVkSW1tUHRyKGJpdHdpc2VfY2FzdDx2b2lkKj4oc3Rh
dGljX2Nhc3Q8aW50cHRyX3Q+KDEwMDApKSkpOworICAgICAgICAgICAgSnVtcCBvayA9IGJyYW5j
aFB0cihNYWNyb0Fzc2VtYmxlcjo6QWJvdmUsIHJldHVyblZhbHVlR1BSLCBUcnVzdGVkSW1tUHRy
KGJpdHdpc2VfY2FzdDx2b2lkKj4oc3RhdGljX2Nhc3Q8aW50cHRyX3Q+KDEwMDApKSkpOwogICAg
ICAgICAgICAgYWJvcnRXaXRoUmVhc29uKEpJVFVucmVhc29uYWJsZUxvb3BIaW50SnVtcFRhcmdl
dCk7CiAgICAgICAgICAgICBvay5saW5rKHRoaXMpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKaW5kZXggODc2NGNjMmNjYWExZmMw
MGU1YjU1MDBhNGZmMDI1YjRmNDRiNTM0Yy4uNWFiYzc2YmNmYzI4YmZiNTE1MzQxMjZlYTZjNjdh
NTcwODgwYjBmMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNv
ZGVzMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMy
XzY0LmNwcApAQCAtMTQ4LDcgKzE0OCw3IEBAIHZvaWQgSklUOjplbWl0X29wX21vdihJbnN0cnVj
dGlvbiogY3VycmVudEluc3RydWN0aW9uKQogdm9pZCBKSVQ6OmVtaXRfb3BfZW5kKEluc3RydWN0
aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7CiAgICAgQVNTRVJUKHJldHVyblZhbHVlR1BSICE9
IGNhbGxGcmFtZVJlZ2lzdGVyKTsKLSAgICBlbWl0TG9hZChjdXJyZW50SW5zdHJ1Y3Rpb25bMV0u
dS5vcGVyYW5kLCByZWdUMSwgcmVnVDApOworICAgIGVtaXRMb2FkKGN1cnJlbnRJbnN0cnVjdGlv
blsxXS51Lm9wZXJhbmQsIHJlZ1QxLCByZXR1cm5WYWx1ZUdQUik7CiAgICAgZW1pdEZ1bmN0aW9u
RXBpbG9ndWUoKTsKICAgICByZXQoKTsKIH0KQEAgLTE2NSw5ICsxNjUsOSBAQCB2b2lkIEpJVDo6
ZW1pdF9vcF9uZXdfb2JqZWN0KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAg
c2l6ZV90IGFsbG9jYXRpb25TaXplID0gSlNGaW5hbE9iamVjdDo6YWxsb2NhdGlvblNpemUoc3Ry
dWN0dXJlLT5pbmxpbmVDYXBhY2l0eSgpKTsKICAgICBNYXJrZWRBbGxvY2F0b3IqIGFsbG9jYXRv
ciA9ICZtX3ZtLT5oZWFwLmFsbG9jYXRvckZvck9iamVjdFdpdGhvdXREZXN0cnVjdG9yKGFsbG9j
YXRpb25TaXplKTsKIAotICAgIFJlZ2lzdGVySUQgcmVzdWx0UmVnID0gcmVnVDA7CisgICAgUmVn
aXN0ZXJJRCByZXN1bHRSZWcgPSByZXR1cm5WYWx1ZUdQUjsKICAgICBSZWdpc3RlcklEIGFsbG9j
YXRvclJlZyA9IHJlZ1QxOwotICAgIFJlZ2lzdGVySUQgc2NyYXRjaFJlZyA9IHJlZ1QyOworICAg
IFJlZ2lzdGVySUQgc2NyYXRjaFJlZyA9IHJlZ1QzOwogCiAgICAgbW92ZShUcnVzdGVkSW1tUHRy
KGFsbG9jYXRvciksIGFsbG9jYXRvclJlZyk7CiAgICAgZW1pdEFsbG9jYXRlSlNPYmplY3QoYWxs
b2NhdG9yUmVnLCBUcnVzdGVkSW1tUHRyKHN0cnVjdHVyZSksIHJlc3VsdFJlZywgc2NyYXRjaFJl
Zyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyUHJlc2Vy
dmF0aW9uV3JhcHBlckdlbmVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1Jl
Z2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRvci5jcHAKaW5kZXggMDcwYjVjYjI1Yjk1
MTAxNDAzMTVkNDViYTU1YWZhYmVmZjMwNDMzMi4uMTgwNzI1MTg1N2JmNmFlNzZlYTRlODFkYjY3
NjE4MzM3MzgxOWNjNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdp
c3RlclByZXNlcnZhdGlvbldyYXBwZXJHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmNwcApAQCAt
NjUsNiArNjUsMTAgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGdlbmVyYXRlUmVnaXN0ZXJQcmVz
ZXJ2YXRpb25XcmFwcGVyKFZNJiB2bSwgRXhlY3V0YWJsZUJhc2UKICAgICAvLyBXZSBzaG91bGRu
J3QgZXZlciBiZSBnZW5lcmF0aW5nIHdyYXBwZXJzIGZvciBuYXRpdmUgZnVuY3Rpb25zLgogICAg
IFJlZ2lzdGVyU2V0IHRvU2F2ZSA9IHJlZ2lzdGVyc1RvUHJlc2VydmUoKTsKICAgICBwdHJkaWZm
X3Qgb2Zmc2V0ID0gcmVnaXN0ZXJQcmVzZXJ2YXRpb25PZmZzZXQoKTsKKworICAgIEFTU0VSVCgh
dG9TYXZlLmdldChHUFJJbmZvOjpyZWdUMSkpOworICAgIEFTU0VSVCghdG9TYXZlLmdldChHUFJJ
bmZvOjpyZWdUMikpOworICAgIEFTU0VSVCghdG9TYXZlLmdldChHUFJJbmZvOjpyZWdUMykpOwog
ICAgIAogICAgIEFzc2VtYmx5SGVscGVycyBqaXQoJnZtLCAwKTsKICAgICAKQEAgLTg0LDMxICs4
OCwzMCBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgZ2VuZXJhdGVSZWdpc3RlclByZXNlcnZhdGlv
bldyYXBwZXIoVk0mIHZtLCBFeGVjdXRhYmxlQmFzZQogICAgICAgICAgICAgSlNTdGFjazo6Q2Fs
bEZyYW1lSGVhZGVyU2l6ZSAtIEpTU3RhY2s6OkNhbGxlckZyYW1lQW5kUENTaXplKSwKICAgICAg
ICAgR1BSSW5mbzo6cmVnVDIpOwogCi0gICAgQVNTRVJUKCF0b1NhdmUuZ2V0KEdQUkluZm86OnJl
Z1Q0KSk7Ci0gICAgaml0Lm1vdmUoQXNzZW1ibHlIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rl
ciwgR1BSSW5mbzo6cmVnVDQpOworICAgIGppdC5tb3ZlKEFzc2VtYmx5SGVscGVyczo6c3RhY2tQ
b2ludGVyUmVnaXN0ZXIsIEdQUkluZm86OnJlZ1QzKTsKICAgICAKICAgICBBc3NlbWJseUhlbHBl
cnM6OkxhYmVsIGxvb3AgPSBqaXQubGFiZWwoKTsKICAgICBqaXQuc3ViMzIoQXNzZW1ibHlIZWxw
ZXJzOjpUcnVzdGVkSW1tMzIoMSksIEdQUkluZm86OnJlZ1QyKTsKLSAgICBqaXQubG9hZDY0KEFz
c2VtYmx5SGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUNCwgb2Zmc2V0KSwgR1BSSW5mbzo6
cmVnVDApOwotICAgIGppdC5zdG9yZTY0KEdQUkluZm86OnJlZ1QwLCBHUFJJbmZvOjpyZWdUNCk7
Ci0gICAgaml0LmFkZFB0cihBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMihzaXplb2YoUmVn
aXN0ZXIpKSwgR1BSSW5mbzo6cmVnVDQpOworICAgIGppdC5sb2FkNjQoQXNzZW1ibHlIZWxwZXJz
OjpBZGRyZXNzKEdQUkluZm86OnJlZ1QzLCBvZmZzZXQpLCBHUFJJbmZvOjpyZWdUMCk7CisgICAg
aml0LnN0b3JlNjQoR1BSSW5mbzo6cmVnVDAsIEdQUkluZm86OnJlZ1QzKTsKKyAgICBqaXQuYWRk
UHRyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKHNpemVvZihSZWdpc3RlcikpLCBHUFJJ
bmZvOjpyZWdUMyk7CiAgICAgaml0LmJyYW5jaFRlc3QzMihBc3NlbWJseUhlbHBlcnM6Ok5vblpl
cm8sIEdQUkluZm86OnJlZ1QyKS5saW5rVG8obG9vcCwgJmppdCk7CiAKLSAgICAvLyBBdCB0aGlz
IHBvaW50IHJlZ1Q0ICsgb2Zmc2V0IHBvaW50cyB0byB3aGVyZSB3ZSBzYXZlIHRoaW5ncy4KKyAg
ICAvLyBBdCB0aGlzIHBvaW50IHJlZ1QzICsgb2Zmc2V0IHBvaW50cyB0byB3aGVyZSB3ZSBzYXZl
IHRoaW5ncy4KICAgICBwdHJkaWZmX3QgY3VycmVudE9mZnNldCA9IDA7Ci0gICAgaml0LnN0b3Jl
UHRyKEdQUkluZm86OnJlZ1QxLCBBc3NlbWJseUhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6cmVn
VDQsIGN1cnJlbnRPZmZzZXQpKTsKKyAgICBqaXQuc3RvcmVQdHIoR1BSSW5mbzo6cmVnVDEsIEFz
c2VtYmx5SGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMywgY3VycmVudE9mZnNldCkpOwog
ICAgIAogICAgIGZvciAoR1BSUmVnIGdwciA9IEFzc2VtYmx5SGVscGVyczo6Zmlyc3RSZWdpc3Rl
cigpOyBncHIgPD0gQXNzZW1ibHlIZWxwZXJzOjpsYXN0UmVnaXN0ZXIoKTsgZ3ByID0gc3RhdGlj
X2Nhc3Q8R1BSUmVnPihncHIgKyAxKSkgewogICAgICAgICBpZiAoIXRvU2F2ZS5nZXQoZ3ByKSkK
ICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBjdXJyZW50T2Zmc2V0ICs9IHNpemVvZihS
ZWdpc3Rlcik7Ci0gICAgICAgIGppdC5zdG9yZTY0KGdwciwgQXNzZW1ibHlIZWxwZXJzOjpBZGRy
ZXNzKEdQUkluZm86OnJlZ1Q0LCBjdXJyZW50T2Zmc2V0KSk7CisgICAgICAgIGppdC5zdG9yZTY0
KGdwciwgQXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OnJlZ1QzLCBjdXJyZW50T2Zm
c2V0KSk7CiAgICAgfQogICAgIGZvciAoRlBSUmVnIGZwciA9IEFzc2VtYmx5SGVscGVyczo6Zmly
c3RGUFJlZ2lzdGVyKCk7IGZwciA8PSBBc3NlbWJseUhlbHBlcnM6Omxhc3RGUFJlZ2lzdGVyKCk7
IGZwciA9IHN0YXRpY19jYXN0PEZQUlJlZz4oZnByICsgMSkpIHsKICAgICAgICAgaWYgKCF0b1Nh
dmUuZ2V0KGZwcikpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgY3VycmVudE9mZnNl
dCArPSBzaXplb2YoUmVnaXN0ZXIpOwotICAgICAgICBqaXQuc3RvcmVEb3VibGUoZnByLCBBc3Nl
bWJseUhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDQsIGN1cnJlbnRPZmZzZXQpKTsKKyAg
ICAgICAgaml0LnN0b3JlRG91YmxlKGZwciwgQXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNzKEdQUklu
Zm86OnJlZ1QzLCBjdXJyZW50T2Zmc2V0KSk7CiAgICAgfQogICAgIAogICAgIC8vIEFzc3VtZSB0
aGF0IHRoZXJlIGFyZW4ndCBhbnkgc2F2ZWQgRlAgcmVnaXN0ZXJzLgpAQCAtMTUxLDcgKzE1NCw5
IEBAIHN0YXRpYyB2b2lkIGdlbmVyYXRlUmVnaXN0ZXJSZXN0b3JhdGlvbihBc3NlbWJseUhlbHBl
cnMmIGppdCkKICAgICBSZWdpc3RlclNldCB0b1NhdmUgPSByZWdpc3RlcnNUb1ByZXNlcnZlKCk7
CiAgICAgcHRyZGlmZl90IG9mZnNldCA9IHJlZ2lzdGVyUHJlc2VydmF0aW9uT2Zmc2V0KCk7CiAg
ICAgCi0gICAgQVNTRVJUKCF0b1NhdmUuZ2V0KEdQUkluZm86OnJlZ1Q0KSk7CisgICAgQVNTRVJU
KCF0b1NhdmUuZ2V0KEdQUkluZm86OnJlZ1QxKSk7CisgICAgQVNTRVJUKCF0b1NhdmUuZ2V0KEdQ
UkluZm86OnJlZ1QyKSk7CisgICAgQVNTRVJUKCF0b1NhdmUuZ2V0KEdQUkluZm86OnJlZ1QzKSk7
CiAKICAgICAvLyBXZSBuZWVkIHRvIHBsYWNlIHRoZSBzdGFjayBwb2ludGVyIGJhY2sgdG8gd2hl
cmUgdGhlIGNhbGxlciB0aG91Z2h0IHRoZXkgbGVmdCBpdC4KICAgICAvLyBCdXQgYWxzbywgaW4g
b3JkZXIgdG8gcmVjb3ZlciB0aGUgcmVnaXN0ZXJzLCB3ZSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93
IGJpZyB0aGUKQEAgLTE2MSw5ICsxNjYsOSBAQCBzdGF0aWMgdm9pZCBnZW5lcmF0ZVJlZ2lzdGVy
UmVzdG9yYXRpb24oQXNzZW1ibHlIZWxwZXJzJiBqaXQpCiAgICAgICAgIEFzc2VtYmx5SGVscGVy
czo6QWRkcmVzcygKICAgICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6c3RhY2tQb2ludGVyUmVn
aXN0ZXIsCiAgICAgICAgICAgICAoSlNTdGFjazo6QXJndW1lbnRDb3VudCAtIEpTU3RhY2s6OkNh
bGxlckZyYW1lQW5kUENTaXplKSAqIHNpemVvZihSZWdpc3RlcikgKyBQYXlsb2FkT2Zmc2V0KSwK
LSAgICAgICAgR1BSSW5mbzo6cmVnVDQpOworICAgICAgICBHUFJJbmZvOjpyZWdUMyk7CiAgICAg
Ci0gICAgaml0Lm1vdmUoR1BSSW5mbzo6cmVnVDQsIEdQUkluZm86OnJlZ1QyKTsKKyAgICBqaXQu
bW92ZShHUFJJbmZvOjpyZWdUMywgR1BSSW5mbzo6cmVnVDIpOwogICAgIGppdC5sc2hpZnQzMihB
c3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMigzKSwgR1BSSW5mbzo6cmVnVDIpOwogICAgIAog
ICAgIGppdC5hZGRQdHIoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIob2Zmc2V0KSwgQXNz
ZW1ibHlIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CkBAIC0yMDMsNyArMjA4LDcgQEAg
c3RhdGljIHZvaWQgZ2VuZXJhdGVSZWdpc3RlclJlc3RvcmF0aW9uKEFzc2VtYmx5SGVscGVycyYg
aml0KQogICAgIAogICAgIC8vIFRodW5rcyBsaWtlIHRoaXMgcmVseSBvbiB0aGUgQXJndW1lbnRD
b3VudCBiZWluZyBpbnRhY3QuIFBheSBpdCBmb3J3YXJkLgogICAgIGppdC5zdG9yZTMyKAotICAg
ICAgICBHUFJJbmZvOjpyZWdUNCwKKyAgICAgICAgR1BSSW5mbzo6cmVnVDMsCiAgICAgICAgIEFz
c2VtYmx5SGVscGVyczo6QWRkcmVzcygKICAgICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6c3Rh
Y2tQb2ludGVyUmVnaXN0ZXIsCiAgICAgICAgICAgICAoSlNTdGFjazo6QXJndW1lbnRDb3VudCAt
IEpTU3RhY2s6OkNhbGxlckZyYW1lQW5kUENTaXplKSAqIHNpemVvZihSZWdpc3RlcikgKyBQYXls
b2FkT2Zmc2V0KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5r
R2VuZXJhdG9ycy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9y
cy5jcHAKaW5kZXggMTc1NDY3NjZmOWZhMjQ2ZTljY2M0MWZhYjlhNTRjYTFiNjQzZGI1NC4uNmI3
M2UyZmNhZmZkOTk0MzQ4NTJiZDNhNTg2NGRlZGFkMDNhODRjMSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmNwcApAQCAtMzA2LDggKzMwNiw2IEBAIHN0
YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlRm9yR2VuZXJhdG9yKFZNKiB2bSwgQ29k
ZVNwZWNpYWxpemF0aW9uS2luZCBrCiAjZW5kaWYKIAogI2VsaWYgQ1BVKEFSTTY0KQotICAgIENP
TVBJTEVfQVNTRVJUKEFSTTY0UmVnaXN0ZXJzOjp4MyAhPSBKU0ludGVyZmFjZUpJVDo6cmVnVDEs
IHByZXZfY2FsbGZyYW1lX25vdF90cmFtcGxlZF9ieV9UMSk7Ci0gICAgQ09NUElMRV9BU1NFUlQo
QVJNNjRSZWdpc3RlcnM6OngzICE9IEpTSW50ZXJmYWNlSklUOjpyZWdUMywgcHJldl9jYWxsZnJh
bWVfbm90X3RyYW1wbGVkX2J5X1QzKTsKICAgICBDT01QSUxFX0FTU0VSVChBUk02NFJlZ2lzdGVy
czo6eDAgIT0gSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzLCBUM19ub3RfdHJhbXBsZWRfYnlfYXJnXzAp
OwogICAgIENPTVBJTEVfQVNTRVJUKEFSTTY0UmVnaXN0ZXJzOjp4MSAhPSBKU0ludGVyZmFjZUpJ
VDo6cmVnVDMsIFQzX25vdF90cmFtcGxlZF9ieV9hcmdfMSk7CiAgICAgQ09NUElMRV9BU1NFUlQo
QVJNNjRSZWdpc3RlcnM6OngyICE9IEpTSW50ZXJmYWNlSklUOjpyZWdUMywgVDNfbm90X3RyYW1w
bGVkX2J5X2FyZ18yKTsKQEAgLTQwNiw0NiArNDA0LDQ2IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJl
ZiBhcml0eUZpeHVwR2VuZXJhdG9yKFZNKiB2bSkKIHsKICAgICBKU0ludGVyZmFjZUpJVCBqaXQo
dm0pOwogCi0gICAgLy8gV2UgZW50ZXIgd2l0aCBmaXh1cCBjb3VudCwgaW4gYWxpZ25lZCBzdGFj
ayB1bml0cywgaW4gcmVnVDAgYW5kIHRoZSByZXR1cm4gdGh1bmsgaW4KLSAgICAvLyByZWdUNSBv
biAzMi1iaXQgYW5kIHJlZ1Q3IG9uIDY0LWJpdC4KKyAgICAvLyBXZSBlbnRlciB3aXRoIGZpeHVw
IGNvdW50LCBpbiBhbGlnbmVkIHN0YWNrIHVuaXRzLCBpbiBhcmd1bWVudEdQUjAgYW5kIHRoZSBy
ZXR1cm4gdGh1bmsgaW4gYXJndW1lbnRHUFIxCisgICAgLy8gV2UgaGF2ZSB0aGUgZ3VhcmFudGVl
IHRoYXQgYTAsIGExLCBhMiwgdDMsIHQ0IGFuZCB0NSBhcmUgYWxsIGRpc3RpbmN0IDotKQogI2lm
IFVTRShKU1ZBTFVFNjQpCiAjICBpZiBDUFUoWDg2XzY0KQogICAgIGppdC5wb3AoSlNJbnRlcmZh
Y2VKSVQ6OnJlZ1Q0KTsKICMgIGVuZGlmCi0gICAgaml0LmxzaGlmdDMyKEpTSW50ZXJmYWNlSklU
OjpUcnVzdGVkSW1tMzIobG9nU3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSksIEpTSW50ZXJmYWNl
SklUOjpyZWdUMCk7Ci0gICAgaml0Lm5lZzY0KEpTSW50ZXJmYWNlSklUOjpyZWdUMCk7Ci0gICAg
aml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCBKU0ludGVyZmFjZUpJ
VDo6cmVnVDYpOwotICAgIGppdC5sb2FkMzIoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRl
cmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCBKU1N0YWNrOjpBcmd1bWVudENvdW50ICogc2l6
ZW9mKFJlZ2lzdGVyKSksIEpTSW50ZXJmYWNlSklUOjpyZWdUMik7Ci0gICAgaml0LmFkZDMyKEpT
SW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSks
IEpTSW50ZXJmYWNlSklUOjpyZWdUMik7CisgICAgaml0LmxzaGlmdDMyKEpTSW50ZXJmYWNlSklU
OjpUcnVzdGVkSW1tMzIobG9nU3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSksIEpTSW50ZXJmYWNl
SklUOjphcmd1bWVudEdQUjApOworICAgIGppdC5uZWc2NChKU0ludGVyZmFjZUpJVDo6YXJndW1l
bnRHUFIwKTsKKyAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIs
IEpTSW50ZXJmYWNlSklUOjpyZWdUMyk7CisgICAgaml0LmxvYWQzMihKU0ludGVyZmFjZUpJVDo6
QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEpTU3RhY2s6OkFyZ3Vt
ZW50Q291bnQgKiBzaXplb2YoUmVnaXN0ZXIpKSwgSlNJbnRlcmZhY2VKSVQ6OmFyZ3VtZW50R1BS
Mik7CisgICAgaml0LmFkZDMyKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoSlNTdGFjazo6
Q2FsbEZyYW1lSGVhZGVyU2l6ZSksIEpTSW50ZXJmYWNlSklUOjphcmd1bWVudEdQUjIpOwogCi0g
ICAgLy8gTW92ZSBjdXJyZW50IGZyYW1lIGRvd24gcmVnVDAgbnVtYmVyIG9mIHNsb3RzCisgICAg
Ly8gTW92ZSBjdXJyZW50IGZyYW1lIGRvd24gYXJndW1lbnRHUFIwIG51bWJlciBvZiBzbG90cwog
ICAgIEpTSW50ZXJmYWNlSklUOjpMYWJlbCBjb3B5TG9vcChqaXQubGFiZWwoKSk7Ci0gICAgaml0
LmxvYWQ2NChKU0ludGVyZmFjZUpJVDo6cmVnVDYsIEpTSW50ZXJmYWNlSklUOjpyZWdUMSk7Ci0g
ICAgaml0LnN0b3JlNjQoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxLCBNYWNyb0Fzc2VtYmxlcjo6QmFz
ZUluZGV4KEpTSW50ZXJmYWNlSklUOjpyZWdUNiwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwLCBKU0lu
dGVyZmFjZUpJVDo6VGltZXNFaWdodCkpOwotICAgIGppdC5hZGRQdHIoSlNJbnRlcmZhY2VKSVQ6
OlRydXN0ZWRJbW0zMig4KSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1Q2KTsKLSAgICBqaXQuYnJhbmNo
U3ViMzIoTWFjcm9Bc3NlbWJsZXI6Ok5vblplcm8sIEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1t
MzIoMSksIEpTSW50ZXJmYWNlSklUOjpyZWdUMikubGlua1RvKGNvcHlMb29wLCAmaml0KTsKLQot
ICAgIC8vIEZpbGwgaW4gcmVnVDAgLSAxIG1pc3NpbmcgYXJnIHNsb3RzIHdpdGggdW5kZWZpbmVk
Ci0gICAgaml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwLCBKU0ludGVyZmFjZUpJVDo6cmVn
VDIpOwotICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tNjQoVmFsdWVVbmRl
ZmluZWQpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDEpOwotICAgIGppdC5hZGQzMihKU0ludGVyZmFj
ZUpJVDo6VHJ1c3RlZEltbTMyKDEpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDIpOworICAgIGppdC5s
b2FkNjQoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzLCBKU0ludGVyZmFjZUpJVDo6cmVnVDUpOworICAg
IGppdC5zdG9yZTY0KEpTSW50ZXJmYWNlSklUOjpyZWdUNSwgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJ
bmRleChKU0ludGVyZmFjZUpJVDo6cmVnVDMsIEpTSW50ZXJmYWNlSklUOjphcmd1bWVudEdQUjAs
IEpTSW50ZXJmYWNlSklUOjpUaW1lc0VpZ2h0KSk7CisgICAgaml0LmFkZFB0cihKU0ludGVyZmFj
ZUpJVDo6VHJ1c3RlZEltbTMyKDgpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDMpOworICAgIGppdC5i
cmFuY2hTdWIzMihNYWNyb0Fzc2VtYmxlcjo6Tm9uWmVybywgSlNJbnRlcmZhY2VKSVQ6OlRydXN0
ZWRJbW0zMigxKSwgSlNJbnRlcmZhY2VKSVQ6OmFyZ3VtZW50R1BSMikubGlua1RvKGNvcHlMb29w
LCAmaml0KTsKKworICAgIC8vIEZpbGwgaW4gYXJndW1lbnRHUFIwIC0gMSBtaXNzaW5nIGFyZyBz
bG90cyB3aXRoIHVuZGVmaW5lZAorICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjphcmd1bWVu
dEdQUjAsIEpTSW50ZXJmYWNlSklUOjphcmd1bWVudEdQUjIpOworICAgIGppdC5tb3ZlKEpTSW50
ZXJmYWNlSklUOjpUcnVzdGVkSW1tNjQoVmFsdWVVbmRlZmluZWQpLCBKU0ludGVyZmFjZUpJVDo6
cmVnVDUpOworICAgIGppdC5hZGQzMihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDEpLCBK
U0ludGVyZmFjZUpJVDo6YXJndW1lbnRHUFIyKTsKICAgICBKU0ludGVyZmFjZUpJVDo6TGFiZWwg
ZmlsbFVuZGVmaW5lZExvb3Aoaml0LmxhYmVsKCkpOwotICAgIGppdC5zdG9yZTY0KEpTSW50ZXJm
YWNlSklUOjpyZWdUMSwgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChKU0ludGVyZmFjZUpJVDo6
cmVnVDYsIEpTSW50ZXJmYWNlSklUOjpyZWdUMCwgSlNJbnRlcmZhY2VKSVQ6OlRpbWVzRWlnaHQp
KTsKLSAgICBqaXQuYWRkUHRyKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoOCksIEpTSW50
ZXJmYWNlSklUOjpyZWdUNik7Ci0gICAgaml0LmJyYW5jaEFkZDMyKE1hY3JvQXNzZW1ibGVyOjpO
b25aZXJvLCBKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDEpLCBKU0ludGVyZmFjZUpJVDo6
cmVnVDIpLmxpbmtUbyhmaWxsVW5kZWZpbmVkTG9vcCwgJmppdCk7CisgICAgaml0LnN0b3JlNjQo
SlNJbnRlcmZhY2VKSVQ6OnJlZ1Q1LCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KEpTSW50ZXJm
YWNlSklUOjpyZWdUMywgSlNJbnRlcmZhY2VKSVQ6OmFyZ3VtZW50R1BSMCwgSlNJbnRlcmZhY2VK
SVQ6OlRpbWVzRWlnaHQpKTsKKyAgICBqaXQuYWRkUHRyKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVk
SW1tMzIoOCksIEpTSW50ZXJmYWNlSklUOjpyZWdUMyk7CisgICAgaml0LmJyYW5jaEFkZDMyKE1h
Y3JvQXNzZW1ibGVyOjpOb25aZXJvLCBKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDEpLCBK
U0ludGVyZmFjZUpJVDo6YXJndW1lbnRHUFIyKS5saW5rVG8oZmlsbFVuZGVmaW5lZExvb3AsICZq
aXQpOwogICAgIAogICAgIC8vIEFkanVzdCBjYWxsIGZyYW1lIHJlZ2lzdGVyIGFuZCBzdGFjayBw
b2ludGVyIHRvIGFjY291bnQgZm9yIG1pc3NpbmcgYXJncwotICAgIGppdC5tb3ZlKEpTSW50ZXJm
YWNlSklUOjpyZWdUMCwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxKTsKLSAgICBqaXQubHNoaWZ0NjQo
SlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigzKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxKTsK
LSAgICBqaXQuYWRkUHRyKEpTSW50ZXJmYWNlSklUOjpyZWdUMSwgSlNJbnRlcmZhY2VKSVQ6OmNh
bGxGcmFtZVJlZ2lzdGVyKTsKLSAgICBqaXQuYWRkUHRyKEpTSW50ZXJmYWNlSklUOjpyZWdUMSwg
SlNJbnRlcmZhY2VKSVQ6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICBqaXQubW92ZShKU0lu
dGVyZmFjZUpJVDo6YXJndW1lbnRHUFIwLCBKU0ludGVyZmFjZUpJVDo6cmVnVDUpOworICAgIGpp
dC5sc2hpZnQ2NChKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDMpLCBKU0ludGVyZmFjZUpJ
VDo6cmVnVDUpOworICAgIGppdC5hZGRQdHIoSlNJbnRlcmZhY2VKSVQ6OnJlZ1Q1LCBKU0ludGVy
ZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIpOworICAgIGppdC5hZGRQdHIoSlNJbnRlcmZhY2VK
SVQ6OnJlZ1Q1LCBKU0ludGVyZmFjZUpJVDo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogCiAgICAg
Ly8gU2F2ZSB0aGUgb3JpZ2luYWwgcmV0dXJuIFBDLgotICAgIGppdC5sb2FkUHRyKEpTSW50ZXJm
YWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3RlciwgQ2FsbEZy
YW1lOjpyZXR1cm5QQ09mZnNldCgpKSwgR1BSSW5mbzo6cmVnVDEpOwotICAgIGppdC5zdG9yZVB0
cihHUFJJbmZvOjpyZWdUMSwgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChKU0ludGVyZmFjZUpJ
VDo6cmVnVDYsIEpTSW50ZXJmYWNlSklUOjpyZWdUMCwgSlNJbnRlcmZhY2VKSVQ6OlRpbWVzRWln
aHQpKTsKKyAgICBqaXQubG9hZFB0cihKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFj
ZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxGcmFtZTo6cmV0dXJuUENPZmZzZXQoKSksIEdQ
UkluZm86OnJlZ1Q1KTsKKyAgICBqaXQuc3RvcmVQdHIoR1BSSW5mbzo6cmVnVDUsIE1hY3JvQXNz
ZW1ibGVyOjpCYXNlSW5kZXgoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzLCBKU0ludGVyZmFjZUpJVDo6
YXJndW1lbnRHUFIwLCBKU0ludGVyZmFjZUpJVDo6VGltZXNFaWdodCkpOwogICAgIAogICAgIC8v
IEluc3RhbGwgdGhlIG5ldyByZXR1cm4gUEMuCi0gICAgaml0LnN0b3JlUHRyKEdQUkluZm86OnJl
Z1Q3LCBKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVn
aXN0ZXIsIENhbGxGcmFtZTo6cmV0dXJuUENPZmZzZXQoKSkpOworICAgIGppdC5zdG9yZVB0cihH
UFJJbmZvOjphcmd1bWVudEdQUjEsIEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNl
SklUOjpjYWxsRnJhbWVSZWdpc3RlciwgQ2FsbEZyYW1lOjpyZXR1cm5QQ09mZnNldCgpKSk7CiAK
ICMgIGlmIENQVShYODZfNjQpCiAgICAgaml0LnB1c2goSlNJbnRlcmZhY2VKSVQ6OnJlZ1Q0KTsK
QEAgLTQ1NSw0NSArNDUzLDQ1IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBhcml0eUZpeHVwR2Vu
ZXJhdG9yKFZNKiB2bSkKICMgIGlmIENQVShYODYpCiAgICAgaml0LnBvcChKU0ludGVyZmFjZUpJ
VDo6cmVnVDQpOwogIyAgZW5kaWYKLSAgICBqaXQubHNoaWZ0MzIoSlNJbnRlcmZhY2VKSVQ6OlRy
dXN0ZWRJbW0zMihsb2dTdGFja0FsaWdubWVudFJlZ2lzdGVycygpKSwgSlNJbnRlcmZhY2VKSVQ6
OnJlZ1QwKTsKLSAgICBqaXQubmVnMzIoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwKTsKKyAgICBqaXQu
bHNoaWZ0MzIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMihsb2dTdGFja0FsaWdubWVudFJl
Z2lzdGVycygpKSwgSlNJbnRlcmZhY2VKSVQ6OmFyZ3VtZW50R1BSMCk7CisgICAgaml0Lm5lZzMy
KEpTSW50ZXJmYWNlSklUOjphcmd1bWVudEdQUjApOwogICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNl
SklUOjpjYWxsRnJhbWVSZWdpc3RlciwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzKTsKLSAgICBqaXQu
bG9hZDMyKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVS
ZWdpc3RlciwgSlNTdGFjazo6QXJndW1lbnRDb3VudCAqIHNpemVvZihSZWdpc3RlcikpLCBKU0lu
dGVyZmFjZUpJVDo6cmVnVDIpOwotICAgIGppdC5hZGQzMihKU0ludGVyZmFjZUpJVDo6VHJ1c3Rl
ZEltbTMyKEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUpLCBKU0ludGVyZmFjZUpJVDo6cmVn
VDIpOworICAgIGppdC5sb2FkMzIoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZhY2VK
SVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCBKU1N0YWNrOjpBcmd1bWVudENvdW50ICogc2l6ZW9mKFJl
Z2lzdGVyKSksIEpTSW50ZXJmYWNlSklUOjphcmd1bWVudEdQUjIpOworICAgIGppdC5hZGQzMihK
U0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUp
LCBKU0ludGVyZmFjZUpJVDo6YXJndW1lbnRHUFIyKTsKIAotICAgIC8vIE1vdmUgY3VycmVudCBm
cmFtZSBkb3duIHJlZ1QwIG51bWJlciBvZiBzbG90cworICAgIC8vIE1vdmUgY3VycmVudCBmcmFt
ZSBkb3duIGFyZ3VtZW50R1BSMCBudW1iZXIgb2Ygc2xvdHMKICAgICBKU0ludGVyZmFjZUpJVDo6
TGFiZWwgY29weUxvb3Aoaml0LmxhYmVsKCkpOwotICAgIGppdC5sb2FkMzIoSlNJbnRlcmZhY2VK
SVQ6OnJlZ1QzLCBKU0ludGVyZmFjZUpJVDo6cmVnVDEpOwotICAgIGppdC5zdG9yZTMyKEpTSW50
ZXJmYWNlSklUOjpyZWdUMSwgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChKU0ludGVyZmFjZUpJ
VDo6cmVnVDMsIEpTSW50ZXJmYWNlSklUOjpyZWdUMCwgSlNJbnRlcmZhY2VKSVQ6OlRpbWVzRWln
aHQpKTsKLSAgICBqaXQubG9hZDMyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKEpTSW50ZXJmYWNl
SklUOjpyZWdUMywgNCksIEpTSW50ZXJmYWNlSklUOjpyZWdUMSk7Ci0gICAgaml0LnN0b3JlMzIo
SlNJbnRlcmZhY2VKSVQ6OnJlZ1QxLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KEpTSW50ZXJm
YWNlSklUOjpyZWdUMywgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwLCBKU0ludGVyZmFjZUpJVDo6VGlt
ZXNFaWdodCwgNCkpOworICAgIGppdC5sb2FkMzIoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzLCBKU0lu
dGVyZmFjZUpJVDo6cmVnVDUpOworICAgIGppdC5zdG9yZTMyKEpTSW50ZXJmYWNlSklUOjpyZWdU
NSwgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChKU0ludGVyZmFjZUpJVDo6cmVnVDMsIEpTSW50
ZXJmYWNlSklUOjphcmd1bWVudEdQUjAsIEpTSW50ZXJmYWNlSklUOjpUaW1lc0VpZ2h0KSk7Cisg
ICAgaml0LmxvYWQzMihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6cmVn
VDMsIDQpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDUpOworICAgIGppdC5zdG9yZTMyKEpTSW50ZXJm
YWNlSklUOjpyZWdUNSwgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChKU0ludGVyZmFjZUpJVDo6
cmVnVDMsIEpTSW50ZXJmYWNlSklUOjphcmd1bWVudEdQUjAsIEpTSW50ZXJmYWNlSklUOjpUaW1l
c0VpZ2h0LCA0KSk7CiAgICAgaml0LmFkZFB0cihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMy
KDgpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDMpOwotICAgIGppdC5icmFuY2hTdWIzMihNYWNyb0Fz
c2VtYmxlcjo6Tm9uWmVybywgSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigxKSwgSlNJbnRl
cmZhY2VKSVQ6OnJlZ1QyKS5saW5rVG8oY29weUxvb3AsICZqaXQpOworICAgIGppdC5icmFuY2hT
dWIzMihNYWNyb0Fzc2VtYmxlcjo6Tm9uWmVybywgSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0z
MigxKSwgSlNJbnRlcmZhY2VKSVQ6OmFyZ3VtZW50R1BSMikubGlua1RvKGNvcHlMb29wLCAmaml0
KTsKIAotICAgIC8vIEZpbGwgaW4gcmVnVDAgLSAxIG1pc3NpbmcgYXJnIHNsb3RzIHdpdGggdW5k
ZWZpbmVkCi0gICAgaml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwLCBKU0ludGVyZmFjZUpJ
VDo6cmVnVDIpOwotICAgIGppdC5hZGQzMihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDEp
LCBKU0ludGVyZmFjZUpJVDo6cmVnVDIpOworICAgIC8vIEZpbGwgaW4gYXJndW1lbnRHUFIwIC0g
MSBtaXNzaW5nIGFyZyBzbG90cyB3aXRoIHVuZGVmaW5lZAorICAgIGppdC5tb3ZlKEpTSW50ZXJm
YWNlSklUOjphcmd1bWVudEdQUjAsIEpTSW50ZXJmYWNlSklUOjphcmd1bWVudEdQUjIpOworICAg
IGppdC5hZGQzMihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDEpLCBKU0ludGVyZmFjZUpJ
VDo6YXJndW1lbnRHUFIyKTsKICAgICBKU0ludGVyZmFjZUpJVDo6TGFiZWwgZmlsbFVuZGVmaW5l
ZExvb3Aoaml0LmxhYmVsKCkpOwotICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVk
SW1tMzIoMCksIEpTSW50ZXJmYWNlSklUOjpyZWdUMSk7Ci0gICAgaml0LnN0b3JlMzIoSlNJbnRl
cmZhY2VKSVQ6OnJlZ1QxLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KEpTSW50ZXJmYWNlSklU
OjpyZWdUMywgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwLCBKU0ludGVyZmFjZUpJVDo6VGltZXNFaWdo
dCkpOwotICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6
VW5kZWZpbmVkVGFnKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxKTsKLSAgICBqaXQuc3RvcmUzMihK
U0ludGVyZmFjZUpJVDo6cmVnVDEsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoSlNJbnRlcmZh
Y2VKSVQ6OnJlZ1QzLCBKU0ludGVyZmFjZUpJVDo6cmVnVDAsIEpTSW50ZXJmYWNlSklUOjpUaW1l
c0VpZ2h0LCA0KSk7CisgICAgaml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigw
KSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1Q1KTsKKyAgICBqaXQuc3RvcmUzMihKU0ludGVyZmFjZUpJ
VDo6cmVnVDUsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoSlNJbnRlcmZhY2VKSVQ6OnJlZ1Qz
LCBKU0ludGVyZmFjZUpJVDo6YXJndW1lbnRHUFIwLCBKU0ludGVyZmFjZUpJVDo6VGltZXNFaWdo
dCkpOworICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6
VW5kZWZpbmVkVGFnKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1Q1KTsKKyAgICBqaXQuc3RvcmUzMihK
U0ludGVyZmFjZUpJVDo6cmVnVDUsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoSlNJbnRlcmZh
Y2VKSVQ6OnJlZ1QzLCBKU0ludGVyZmFjZUpJVDo6YXJndW1lbnRHUFIwLCBKU0ludGVyZmFjZUpJ
VDo6VGltZXNFaWdodCwgNCkpOwogCiAgICAgaml0LmFkZFB0cihKU0ludGVyZmFjZUpJVDo6VHJ1
c3RlZEltbTMyKDgpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDMpOwotICAgIGppdC5icmFuY2hBZGQz
MihNYWNyb0Fzc2VtYmxlcjo6Tm9uWmVybywgSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigx
KSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKS5saW5rVG8oZmlsbFVuZGVmaW5lZExvb3AsICZqaXQp
OworICAgIGppdC5icmFuY2hBZGQzMihNYWNyb0Fzc2VtYmxlcjo6Tm9uWmVybywgSlNJbnRlcmZh
Y2VKSVQ6OlRydXN0ZWRJbW0zMigxKSwgSlNJbnRlcmZhY2VKSVQ6OmFyZ3VtZW50R1BSMikubGlu
a1RvKGZpbGxVbmRlZmluZWRMb29wLCAmaml0KTsKIAogICAgIC8vIEFkanVzdCBjYWxsIGZyYW1l
IHJlZ2lzdGVyIGFuZCBzdGFjayBwb2ludGVyIHRvIGFjY291bnQgZm9yIG1pc3NpbmcgYXJncwot
ICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpyZWdUMCwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1Qx
KTsKLSAgICBqaXQubHNoaWZ0MzIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigzKSwgSlNJ
bnRlcmZhY2VKSVQ6OnJlZ1QxKTsKLSAgICBqaXQuYWRkUHRyKEpTSW50ZXJmYWNlSklUOjpyZWdU
MSwgSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyKTsKLSAgICBqaXQuYWRkUHRyKEpT
SW50ZXJmYWNlSklUOjpyZWdUMSwgSlNJbnRlcmZhY2VKSVQ6OnN0YWNrUG9pbnRlclJlZ2lzdGVy
KTsKKyAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6YXJndW1lbnRHUFIwLCBKU0ludGVyZmFj
ZUpJVDo6cmVnVDUpOworICAgIGppdC5sc2hpZnQzMihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZElt
bTMyKDMpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDUpOworICAgIGppdC5hZGRQdHIoSlNJbnRlcmZh
Y2VKSVQ6OnJlZ1Q1LCBKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIpOworICAgIGpp
dC5hZGRQdHIoSlNJbnRlcmZhY2VKSVQ6OnJlZ1Q1LCBKU0ludGVyZmFjZUpJVDo6c3RhY2tQb2lu
dGVyUmVnaXN0ZXIpOwogCiAgICAgLy8gU2F2ZSB0aGUgb3JpZ2luYWwgcmV0dXJuIFBDLgotICAg
IGppdC5sb2FkUHRyKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpjYWxs
RnJhbWVSZWdpc3RlciwgQ2FsbEZyYW1lOjpyZXR1cm5QQ09mZnNldCgpKSwgR1BSSW5mbzo6cmVn
VDEpOwotICAgIGppdC5zdG9yZVB0cihHUFJJbmZvOjpyZWdUMSwgTWFjcm9Bc3NlbWJsZXI6OkJh
c2VJbmRleChKU0ludGVyZmFjZUpJVDo6cmVnVDMsIEpTSW50ZXJmYWNlSklUOjpyZWdUMCwgSlNJ
bnRlcmZhY2VKSVQ6OlRpbWVzRWlnaHQpKTsKKyAgICBqaXQubG9hZFB0cihKU0ludGVyZmFjZUpJ
VDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxGcmFtZTo6
cmV0dXJuUENPZmZzZXQoKSksIEdQUkluZm86OnJlZ1Q1KTsKKyAgICBqaXQuc3RvcmVQdHIoR1BS
SW5mbzo6cmVnVDUsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoSlNJbnRlcmZhY2VKSVQ6OnJl
Z1QzLCBKU0ludGVyZmFjZUpJVDo6YXJndW1lbnRHUFIwLCBKU0ludGVyZmFjZUpJVDo6VGltZXNF
aWdodCkpOwogICAgIAogICAgIC8vIEluc3RhbGwgdGhlIG5ldyByZXR1cm4gUEMuCi0gICAgaml0
LnN0b3JlUHRyKEdQUkluZm86OnJlZ1Q1LCBKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVy
ZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxGcmFtZTo6cmV0dXJuUENPZmZzZXQoKSkp
OworICAgIGppdC5zdG9yZVB0cihHUFJJbmZvOjphcmd1bWVudEdQUjEsIEpTSW50ZXJmYWNlSklU
OjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3RlciwgQ2FsbEZyYW1lOjpy
ZXR1cm5QQ09mZnNldCgpKSk7CiAgICAgCiAjICBpZiBDUFUoWDg2KQogICAgIGppdC5wdXNoKEpT
SW50ZXJmYWNlSklUOjpyZWdUNCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KaW5kZXggZDljZDAxYjUwYzg3ZmFkYzMwY2QzOGNh
ZWM1MTY3ODFkYTZiNGJmMi4uNGQ4ZjQyZDY0MjYyNTBkNzE3MWVjYzI5ZWZlNDhlN2JhZmJjN2Fm
MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJw
cmV0ZXIuYXNtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVy
cHJldGVyLmFzbQpAQCAtMjEsNiArMjEsMTI5IEBACiAjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKICMgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCisjIENyYXNoIGNvdXJzZSBvbiB0aGUgbGFuZ3Vh
Z2UgdGhhdCB0aGlzIGlzIHdyaXR0ZW4gaW4gKHdoaWNoIEkganVzdCBjYWxsCisjICJhc3NlbWJs
eSIgZXZlbiB0aG91Z2ggaXQncyBtb3JlIHRoYW4gdGhhdCk6CisjCisjIC0gTW9zdGx5IGdhcy1z
dHlsZSBvcGVyYW5kIG9yZGVyaW5nLiBUaGUgbGFzdCBvcGVyYW5kIHRlbmRzIHRvIGJlIHRoZQor
IyAgIGRlc3RpbmF0aW9uLiBTbyAiYSA6PSBiIiBpcyB3cml0dGVuIGFzICJtb3YgYiwgYSIuIEJ1
dCB1bmxpa2UgZ2FzLAorIyAgIGNvbXBhcmlzb25zIGFyZSBpbi1vcmRlciwgc28gImlmIChhIDwg
YikiIGlzIHdyaXR0ZW4gYXMKKyMgICAiYmlsdCBhLCBiLCAuLi4iLgorIworIyAtICJiIiA9IGJ5
dGUsICJoIiA9IDE2LWJpdCB3b3JkLCAiaSIgPSAzMi1iaXQgd29yZCwgInAiID0gcG9pbnRlci4K
KyMgICBDdXJyZW50bHkgdGhpcyBpcyBqdXN0IDMyLWJpdCBzbyAiaSIgYW5kICJwIiBhcmUgaW50
ZXJjaGFuZ2VhYmxlCisjICAgZXhjZXB0IHdoZW4gYW4gb3Agc3VwcG9ydHMgb25lIGJ1dCBub3Qg
dGhlIG90aGVyLgorIworIyAtIEluIGdlbmVyYWwsIHZhbGlkIG9wZXJhbmRzIGZvciBtYWNybyBp
bnZvY2F0aW9ucyBhbmQgaW5zdHJ1Y3Rpb25zIGFyZQorIyAgIHJlZ2lzdGVycyAoZWcgInQwIiks
IGFkZHJlc3NlcyAoZWcgIjRbdDBdIiksIGJhc2UtaW5kZXggYWRkcmVzc2VzCisjICAgKGVnICI3
W3QwLCB0MSwgMl0iKSwgYWJzb2x1dGUgYWRkcmVzc2VzIChlZyAiMHhhMDAwMDAwMFtdIiksIG9y
IGxhYmVscworIyAgIChlZyAiX2ZvbyIgb3IgIi5mb28iKS4gTWFjcm8gaW52b2NhdGlvbnMgY2Fu
IGFsc28gdGFrZSBhbm9ueW1vdXMKKyMgICBtYWNyb3MgYXMgb3BlcmFuZHMuIEluc3RydWN0aW9u
cyBjYW5ub3QgdGFrZSBhbm9ueW1vdXMgbWFjcm9zLgorIworIyAtIExhYmVscyBtdXN0IGhhdmUg
bmFtZXMgdGhhdCBiZWdpbiB3aXRoIGVpdGhlciAiXyIgb3IgIi4iLiAgQSAiLiIgbGFiZWwKKyMg
ICBpcyBsb2NhbCBhbmQgZ2V0cyByZW5hbWVkIGJlZm9yZSBjb2RlIGdlbiB0byBtaW5pbWl6ZSBu
YW1lc3BhY2UKKyMgICBwb2xsdXRpb24uIEEgIl8iIGxhYmVsIGlzIGFuIGV4dGVybiBzeW1ib2wg
KGkuZS4gIi5nbG9ibCIpLiBUaGUgIl8iCisjICAgbWF5IG9yIG1heSBub3QgYmUgcmVtb3ZlZCBk
dXJpbmcgY29kZSBnZW4gZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhlIGFzbQorIyAgIGNvbnZlbnRp
b25zIGZvciBDIG5hbWUgbWFuZ2xpbmcgb24gdGhlIHRhcmdldCBwbGF0Zm9ybSBtYW5kYXRlIGEg
Il8iCisjICAgcHJlZml4LgorIworIyAtIEEgIm1hY3JvIiBpcyBhIGxhbWJkYSBleHByZXNzaW9u
LCB3aGljaCBtYXkgYmUgZWl0aGVyIGFub255bW91cyBvcgorIyAgIG5hbWVkLiBCdXQgdGhpcyBo
YXMgY2F2ZWF0cy4gIm1hY3JvIiBjYW4gdGFrZSB6ZXJvIG9yIG1vcmUgYXJndW1lbnRzLAorIyAg
IHdoaWNoIG1heSBiZSBtYWNyb3Mgb3IgYW55IHZhbGlkIG9wZXJhbmRzLCBidXQgaXQgY2FuIG9u
bHkgcmV0dXJuCisjICAgY29kZS4gQnV0IHlvdSBjYW4gZG8gVHVyaW5nLWNvbXBsZXRlIHRoaW5n
cyB2aWEgY29udGludWF0aW9uIHBhc3NpbmcKKyMgICBzdHlsZTogIm1hY3JvIGZvbyAoYSwgYikg
YihhLCBhKSBlbmQgZm9vKGZvbywgZm9vKSIuIEFjdHVhbGx5LCBkb24ndCBkbworIyAgIHRoYXQs
IHNpbmNlIHlvdSdsbCBqdXN0IGNyYXNoIHRoZSBhc3NlbWJsZXIuCisjCisjIC0gQW4gImlmIiBp
cyBhIGNvbmRpdGlvbmFsIG9uIHNldHRpbmdzLiBBbnkgaWRlbnRpZmllciBzdXBwbGllZCBpbiB0
aGUKKyMgICBwcmVkaWNhdGUgb2YgYW4gImlmIiBpcyBhc3N1bWVkIHRvIGJlIGEgI2RlZmluZSB0
aGF0IGlzIGF2YWlsYWJsZQorIyAgIGR1cmluZyBjb2RlIGdlbi4gU28geW91IGNhbid0IHVzZSAi
aWYiIGZvciBjb21wdXRhdGlvbiBpbiBhIG1hY3JvLCBidXQKKyMgICB5b3UgY2FuIHVzZSBpdCB0
byBzZWxlY3QgZGlmZmVyZW50IHBpZWNlcyBvZiBjb2RlIGZvciBkaWZmZXJlbnQKKyMgICBwbGF0
Zm9ybXMuCisjCisjIC0gQXJndW1lbnRzIHRvIG1hY3JvcyBmb2xsb3cgbGV4aWNhbCBzY29waW5n
IHJhdGhlciB0aGFuIGR5bmFtaWMgc2NvcGluZy4KKyMgICBDb25zdCdzIGFsc28gZm9sbG93IGxl
eGljYWwgc2NvcGluZyBhbmQgbWF5IG92ZXJyaWRlIChoaWRlKSBhcmd1bWVudHMKKyMgICBvciBv
dGhlciBjb25zdHMuIEFsbCB2YXJpYWJsZXMgKGFyZ3VtZW50cyBhbmQgY29uc3RhbnRzKSBjYW4g
YmUgYm91bmQKKyMgICB0byBvcGVyYW5kcy4gQWRkaXRpb25hbGx5LCBhcmd1bWVudHMgKGJ1dCBu
b3QgY29uc3RhbnRzKSBjYW4gYmUgYm91bmQKKyMgICB0byBtYWNyb3MuCisKKyMgVGhlIGZvbGxv
d2luZyBnZW5lcmFsLXB1cnBvc2UgcmVnaXN0ZXJzIGFyZSBhdmFpbGFibGU6CisjCisjICAtIGNm
ciBhbmQgc3AgaG9sZCB0aGUgY2FsbCBmcmFtZSBhbmQgKG5hdGl2ZSkgc3RhY2sgcG9pbnRlciBy
ZXNwZWN0aXZlbHkuCisjICBUaGV5IGFyZSBjYWxsZWUtc2F2ZSByZWdpc3RlcnMsIGFuZCBndWFy
YW50ZWVkIHRvIGJlIGRpc3RpbmN0IGZyb20gYWxsIG90aGVyCisjICByZWdpc3RlcnMgb24gYWxs
IGFyY2hpdGVjdHVyZXMuCisjCisjICAtIGxyIGlzIGRlZmluZWQgb24gbm9uLVg4NiBhcmNoaXRl
Y3R1cmVzIChBUk02NCwgQVJNdjcsIEFSTSwKKyMgIEFSTXY3X1RSQURJVElPTkFMLCBNSVBTLCBT
SDQgYW5kIENMT09QKSBhbmQgaG9sZHMgdGhlIHJldHVybiBQQworIworIyAgLSBwYyBob2xkcyB0
aGUgKG5hdGl2ZSkgcHJvZ3JhbSBjb3VudGVyIG9uIDMyLWJpdHMgQVJNIGFyY2hpdGVjdHVyZXMg
KEFSTSwKKyMgIEFSTXY3LCBBUk12N19UUkFESVRJT05BTCkKKyMKKyMgIC0gdDAsIHQxLCB0Miwg
dDMsIHQ0IGFuZCB0NSBhcmUgdGVtcG9yYXJ5IHJlZ2lzdGVycyB0aGF0IGNhbiBnZXQgdHJhc2hl
ZCBvbgorIyAgY2FsbHMsIGFuZCBhcmUgcGFpcndpc2UgZGlzdGluY3QgcmVnaXN0ZXJzLiB0NSBo
b2xkcyB0aGUgSlMgcHJvZ3JhbSBjb3VudGVyLCBzbyB1c2UKKyMgIHdpdGggY2F1dGlvbiBpbiBv
cGNvZGVzIChhY3R1YWxseSwgZG9uJ3QgdXNlIGl0IGluIG9wY29kZXMgYXQgYWxsLCBleGNlcHQg
YXMgUEMpLgorIworIyAgLSByMCBhbmQgcjEgYXJlIHRoZSBwbGF0Zm9ybSdzIGN1c3RvbWFyeSBy
ZXR1cm4gcmVnaXN0ZXJzLCBhbmQgdGh1cyBhcmUKKyMgIHR3byBkaXN0aW5jdCByZWdpc3RlcnMK
KyMKKyMgIC0gYTAsIGExLCBhMiBhbmQgYTMgYXJlIHRoZSBwbGF0Zm9ybSdzIGN1c3RvbWFyeSBh
cmd1bWVudCByZWdpc3RlcnMsIGFuZAorIyAgdGh1cyBhcmUgcGFpcndpc2UgZGlzdGluY3QgcmVn
aXN0ZXJzLiBCZSBtaW5kZnVsIHRoYXQ6CisjICAgICsgT24gWDg2LCB0aGVyZSBhcmUgbm8gYWN0
dWFseSBhcmd1bWVudCByZWdpc3RlcnMuIGEwIGFuZCBhMSBhcmUgZWR4IGFuZAorIyAgICBlY3gg
Zm9sbG93aW5nIHRoZSBmYXN0Y2FsbCBjb252ZW50aW9uLCBidXQgeW91IHNob3VsZCBzdGlsbCB1
c2UgdGhlIHN0YWNrCisjICAgIHRvIHBhc3MgeW91ciBhcmd1bWVudHMuIFRoZSBjQ2FsbDIgYW5k
IGNDYWxsNCBtYWNyb3MgZG8gdGhpcyBmb3IgeW91LgorIyAgICArIE9uIFg4Nl82NF9XSU4sIHlv
dSBzaG91bGQgYWxsb2NhdGUgc3BhY2Ugb24gdGhlIHN0YWNrIGZvciB0aGUgYXJndW1lbnRzLAor
IyAgICBhbmQgdGhlIHJldHVybiBjb252ZW50aW9uIGlzIHdlaXJkIGZvciA+IDggYnl0ZXMgdHlw
ZXMuIFRoZSBvbmx5IHBsYWNlIHdlCisjICAgIHVzZSA+IDggYnl0ZXMgcmV0dXJuIHZhbHVlcyBp
cyBvbiBhIGNDYWxsLCBhbmQgY0NhbGwyIGFuZCBjQ2FsbDQgaGFuZGxlCisjICAgIHRoaXMgZm9y
IHlvdS4KKyMKKyMgIC0gVGhlIG9ubHkgcmVnaXN0ZXJzIGd1YXJhbnRlZWQgdG8gYmUgY2FsbGVy
LXNhdmVkIGFyZSByMCwgcjEsIGEwLCBhMSBhbmQgYTIsIGFuZAorIyAgeW91IHNob3VsZCBiZSBt
aW5kZnVsIG9mIHRoYXQgaW4gZnVuY3Rpb25zIHRoYXQgYXJlIGNhbGxlZCBkaXJlY3RseSBmcm9t
IEMuCisjICBJZiB5b3UgbmVlZCBtb3JlIHJlZ2lzdGVycywgeW91IHNob3VsZCBwdXNoIGFuZCBw
b3AgdGhlbSBsaWtlIGEgZ29vZAorIyAgYXNzZW1ibHkgY2l0aXplbiwgYmVjYXVzZSBhbnkgb3Ro
ZXIgcmVnaXN0ZXIgd2lsbCBiZSBjYWxsZWUtc2F2ZWQgb24gWDg2LgorIworIyBZb3UgY2FuIGFk
ZGl0aW9uYWxseSBhc3N1bWU6CisjCisjICAtIGEzLCB0MiwgdDMsIHQ0IGFuZCB0NSBhcmUgbmV2
ZXIgcmV0dXJuIHJlZ2lzdGVyczsgdDAsIHQxLCBhMCwgYTEgYW5kIGEyCisjICBjYW4gYmUgcmV0
dXJuIHJlZ2lzdGVycy4KKyMKKyMgIC0gdDQgYW5kIHQ1IGFyZSBuZXZlciBhcmd1bWVudCByZWdp
c3RlcnMsIHQzIGNhbiBvbmx5IGJlIGEzLCB0MSBjYW4gb25seSBiZQorIyAgYTE7IGJ1dCB0MCBh
bmQgdDIgY2FuIGJlIGVpdGhlciBhMCBvciBhMi4KKyMKKyMgIC0gT24gNjQgYml0cywgY3NyMCwg
Y3NyMSBhbmQgY3NyMiBhcmUgYXZhaWxhYmxlIGFzIGNhbGxlZS1zYXZlIHJlZ2lzdGVycy4KKyMg
IGNzcjAgaXMgdXNlZCB0byBzdG9yZSB0aGUgUEMgYmFzZSwgd2hpbGUgY3NyMSBhbmQgY3NyMiBh
cmUgdXNlZCB0byBzdG9yZQorIyAgc3BlY2lhbCB0YWcgdmFsdWVzLiBEb24ndCB1c2UgdGhlbSBm
b3IgYW55dGhpbmcgZWxzZS4KKyMKKyMgQWRkaXRpb25hbCBwbGF0Zm9ybS1zcGVjaWZpYyBkZXRh
aWxzICh5b3Ugc2hvdWxkbid0IHJlbHkgb24gdGhpcyByZW1haW5pbmcKKyMgdHJ1ZSk6CisjCisj
ICAtIEZvciBjb25zaXN0ZW5jeSB3aXRoIHRoZSBiYXNlbGluZSBKSVQsIHQwIGlzIGFsd2F5cyBy
MCAoYW5kIHQxIGlzIGFsd2F5cworIyAgcjEgb24gMzIgYml0cyBwbGF0Zm9ybXMpLiBZb3Ugc2hv
dWxkIHVzZSB0aGUgciB2ZXJzaW9uIHdoZW4geW91IG5lZWQgcmV0dXJuCisjICByZWdpc3RlcnMs
IGFuZCB0aGUgdCB2ZXJzaW9uIG90aGVyd2lzZTogY29kZSB1c2luZyB0MCAob3IgdDEpIHNob3Vs
ZCBzdGlsbAorIyAgd29yayBpZiBzd2FwcGVkIHdpdGggZS5nLiB0Mywgd2hpbGUgY29kZSB1c2lu
ZyByMCAob3IgcjEpIHNob3VsZCBub3QuIFRoZXJlCisjICAqbWF5KiBiZSBsZWdhY3kgY29kZSBy
ZWx5aW5nIG9uIHRoaXMuCisjCisjICAtIE9uIGFsbCBwbGF0Zm9ybXMgb3RoZXIgdGhhbiBYODYs
IHQwIGNhbiBvbmx5IGJlIGEwIGFuZCB0MiBjYW4gb25seSBiZSBhMi4KKyMKKyMgIC0gT24gYWxs
IHBsYXRmb3JtcyBvdGhlciB0aGFuIFg4NiBhbmQgWDg2XzY0LCBhMiBpcyBub3QgYSByZXR1cm4g
cmVnaXN0ZXIuCisjICBhMiBpcyByMCBvbiBYODYgKGJlY2F1c2Ugd2UgaGF2ZSBzbyBmZXcgcmVn
aXN0ZXJzKSBhbmQgcjEgb24gWDg2XzY0IChiZWNhdXNlCisjICB0aGUgQUJJIGVuZm9yY2VzIGl0
KS4KKyMKKyMgIC0gT24gWDg2XzY0X1dJTiwgdDQgaXMgYWN0dWFsbHkgY2FsbGVlLXNhdmUgKGJl
Y2F1c2Ugd2UgaGF2ZSBzbyBmZXcKKyMgIGNhbGxlci1zYXZlIHJlZ2lzdGVycykuCisjCisKKyMg
VGhlIGZvbGxvd2luZyBmbG9hdGluZy1wb2ludCByZWdpc3RlcnMgYXJlIGF2YWlsYWJsZToKKyMK
KyMgIC0gZnQwLWZ0NSBhcmUgdGVtcG9yYXJ5IGZsb2F0aW5nLXBvaW50IHJlZ2lzdGVycyB0aGF0
IGdldCB0cmFzaGVkIG9uIGNhbGxzLAorIyAgYW5kIGFyZSBwYWlyd2lzZSBkaXN0aW5jdC4KKyMK
KyMgIC0gZmEwIGFuZCBmYTEgYXJlIHRoZSBwbGF0Zm9ybSdzIGN1c3RvbWFyeSBmbG9hdGluZy1w
b2ludCBhcmd1bWVudAorIyAgcmVnaXN0ZXJzLCBhbmQgYXJlIGJvdGggZGlzdGluY3QuIE9uIDY0
LWJpdHMgcGxhdGZvcm1zLCBmYTIgYW5kIGZhMyBhcmUKKyMgIGFkZGl0aW9uYWwgZmxvYXRpbmct
cG9pbnQgYXJndW1lbnQgcmVnaXN0ZXJzLgorIworIyAgLSBmciBpcyB0aGUgcGxhdGZvcm0ncyBj
dXN0b21hcnkgZmxvYXRpbmctcG9pbnQgcmV0dXJuIHJlZ2lzdGVyCisjCisjIFlvdSBjYW4gYXNz
dW1lIHRoYXQgZnQxLWZ0NSBvciBmYTEtZmEzIGFyZSBuZXZlciBmciwgYW5kIHRoYXQgZnRYIGlz
IG5ldmVyCisjIGZhWSBpZiBYICE9IFkuCisKICMgRmlyc3QgY29tZSB0aGUgY29tbW9uIHByb3Rv
Y29scyB0aGF0IGJvdGggaW50ZXJwcmV0ZXJzIHVzZS4gTm90ZSB0aGF0IGVhY2gKICMgb2YgdGhl
c2UgbXVzdCBoYXZlIGFuIEFTU0VSVCgpIGluIExMSW50RGF0YS5jcHAKIApAQCAtMTA3LDEzICsy
MzAsMTEgQEAgY29uc3QgSXNJbnZhbGlkYXRlZCA9IDIKIGlmIEpTVkFMVUU2NAogICAgICMgLSBV
c2UgYSBwYWlyIG9mIHJlZ2lzdGVycyB0byByZXByZXNlbnQgdGhlIFBDOiBvbmUgcmVnaXN0ZXIg
Zm9yIHRoZQogICAgICMgICBiYXNlIG9mIHRoZSBieXRlY29kZXMsIGFuZCBvbmUgcmVnaXN0ZXIg
Zm9yIHRoZSBpbmRleC4KLSAgICAjIC0gVGhlIFBDIGJhc2UgKG9yIFBCIGZvciBzaG9ydCkgc2hv
dWxkIGJlIHN0b3JlZCBpbiB0aGUgY3NyLiBJdCB3aWxsCi0gICAgIyAgIGdldCBjbG9iYmVyZWQg
b24gY2FsbHMgdG8gb3RoZXIgSlMgY29kZSwgYnV0IHdpbGwgZ2V0IHNhdmVkIG9uIGNhbGxzCi0g
ICAgIyAgIHRvIEMgZnVuY3Rpb25zLgorICAgICMgLSBUaGUgUEMgYmFzZSAob3IgUEIgZm9yIHNo
b3J0KSBtdXN0IGJlIHN0b3JlZCBpbiBhIGNhbGxlZS1zYXZlIHJlZ2lzdGVyLgogICAgICMgLSBD
IGNhbGxzIGFyZSBzdGlsbCBnaXZlbiB0aGUgSW5zdHJ1Y3Rpb24qIHJhdGhlciB0aGFuIHRoZSBQ
QyBpbmRleC4KICAgICAjICAgVGhpcyByZXF1aXJlcyBhbiBhZGQgYmVmb3JlIHRoZSBjYWxsLCBh
bmQgYSBzdWIgYWZ0ZXIuCiAgICAgY29uc3QgUEMgPSB0NQotICAgIGNvbnN0IFBCID0gdDYKKyAg
ICBjb25zdCBQQiA9IGNzcjAKICAgICBjb25zdCB0YWdUeXBlTnVtYmVyID0gY3NyMQogICAgIGNv
bnN0IHRhZ01hc2sgPSBjc3IyCiAgICAgCkBAIC00ODksMTMgKzYxMCwxMyBAQCBlbmQKIG1hY3Jv
IHNsb3dQYXRoRm9yQ2FsbChzbG93UGF0aCkKICAgICBjYWxsQ2FsbFNsb3dQYXRoKAogICAgICAg
ICBzbG93UGF0aCwKLSAgICAgICAgbWFjcm8gKGNhbGxlZSkKLSAgICAgICAgICAgIGJ0cHogdDEs
IC5kb250VXBkYXRlU1AKKyAgICAgICAgbWFjcm8gKGNhbGxlZSwgY2FsbGVlRnJhbWUpCisgICAg
ICAgICAgICBidHB6IGNhbGxlZUZyYW1lLCAuZG9udFVwZGF0ZVNQCiAgICAgICAgICAgICBpZiBB
Uk12NwotICAgICAgICAgICAgICAgIGFkZHAgQ2FsbGVyRnJhbWVBbmRQQ1NpemUsIHQxLCB0MQot
ICAgICAgICAgICAgICAgIG1vdmUgdDEsIHNwCisgICAgICAgICAgICAgICAgYWRkcCBDYWxsZXJG
cmFtZUFuZFBDU2l6ZSwgY2FsbGVlRnJhbWUsIGNhbGxlZUZyYW1lCisgICAgICAgICAgICAgICAg
bW92ZSBjYWxsZWVGcmFtZSwgc3AKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBh
ZGRwIENhbGxlckZyYW1lQW5kUENTaXplLCB0MSwgc3AKKyAgICAgICAgICAgICAgICBhZGRwIENh
bGxlckZyYW1lQW5kUENTaXplLCBjYWxsZWVGcmFtZSwgc3AKICAgICAgICAgICAgIGVuZAogICAg
ICAgICAuZG9udFVwZGF0ZVNQOgogICAgICAgICAgICAgaWYgQ19MT09QCkBAIC01OTEsMTUgKzcx
MiwxOSBAQCBtYWNybyBwcm9sb2d1ZShjb2RlQmxvY2tHZXR0ZXIsIGNvZGVCbG9ja1NldHRlciwg
b3NyU2xvd1BhdGgsIHRyYWNlU2xvd1BhdGgpCiAgICAgaWYgbm90IENfTE9PUAogICAgICAgICBi
YWRkaXMgNSwgQ29kZUJsb2NrOjptX2xsaW50RXhlY3V0ZUNvdW50ZXIgKyBCYXNlbGluZUV4ZWN1
dGlvbkNvdW50ZXI6Om1fY291bnRlclt0MV0sIC5jb250aW51ZQogICAgICAgICBpZiBKU1ZBTFVF
NjQKLSAgICAgICAgICAgIGNDYWxsMihvc3JTbG93UGF0aCwgY2ZyLCBQQykKKyAgICAgICAgICAg
IG1vdmUgY2ZyLCBhMAorICAgICAgICAgICAgbW92ZSBQQywgYTEKKyAgICAgICAgICAgIGNDYWxs
Mihvc3JTbG93UGF0aCkKICAgICAgICAgZWxzZQogICAgICAgICAgICAgIyBXZSBhcmUgYWZ0ZXIg
dGhlIGZ1bmN0aW9uIHByb2xvZ3VlLCBidXQgYmVmb3JlIHdlIGhhdmUgc2V0IHVwIHNwIGZyb20g
dGhlIENvZGVCbG9jay4KICAgICAgICAgICAgICMgVGVtcG9yYXJpbHkgYWxpZ24gc3RhY2sgcG9p
bnRlciBmb3IgdGhpcyBjYWxsLgogICAgICAgICAgICAgc3VicCA4LCBzcAotICAgICAgICAgICAg
Y0NhbGwyKG9zclNsb3dQYXRoLCBjZnIsIFBDKQorICAgICAgICAgICAgbW92ZSBjZnIsIGEwCisg
ICAgICAgICAgICBtb3ZlIFBDLCBhMQorICAgICAgICAgICAgY0NhbGwyKG9zclNsb3dQYXRoKQog
ICAgICAgICAgICAgYWRkcCA4LCBzcAogICAgICAgICBlbmQKLSAgICAgICAgYnRweiB0MCwgLnJl
Y292ZXIKKyAgICAgICAgYnRweiByMCwgLnJlY292ZXIKICAgICAgICAgbW92ZSBjZnIsIHNwICMg
cmVzdG9yZSB0aGUgcHJldmlvdXMgc3AKICAgICAgICAgIyBwb3AgdGhlIGNhbGxlckZyYW1lIHNp
bmNlIHdlIHdpbGwganVtcCB0byBhIGZ1bmN0aW9uIHRoYXQgd2FudHMgdG8gc2F2ZSBpdAogICAg
ICAgICBpZiBBUk02NApAQCAtNjEwLDcgKzczNSw3IEBAIG1hY3JvIHByb2xvZ3VlKGNvZGVCbG9j
a0dldHRlciwgY29kZUJsb2NrU2V0dGVyLCBvc3JTbG93UGF0aCwgdHJhY2VTbG93UGF0aCkKICAg
ICAgICAgZWxzZQogICAgICAgICAgICAgcG9wIGNmcgogICAgICAgICBlbmQKLSAgICAgICAgam1w
IHQwCisgICAgICAgIGptcCByMAogICAgIC5yZWNvdmVyOgogICAgICAgICBjb2RlQmxvY2tHZXR0
ZXIodDEpCiAgICAgLmNvbnRpbnVlOgpAQCAtNjM1LDggKzc2MCw4IEBAIG1hY3JvIHByb2xvZ3Vl
KGNvZGVCbG9ja0dldHRlciwgY29kZUJsb2NrU2V0dGVyLCBvc3JTbG93UGF0aCwgdHJhY2VTbG93
UGF0aCkKICAgICAjIFN0YWNrIGhlaWdodCBjaGVjayBmYWlsZWQgLSBuZWVkIHRvIGNhbGwgYSBz
bG93X3BhdGguCiAgICAgc3VicCBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCwgc3AgIyBT
ZXQgdXAgdGVtcG9yYXJ5IHN0YWNrIHBvaW50ZXIgZm9yIGNhbGwKICAgICBjYWxsU2xvd1BhdGgo
X2xsaW50X3N0YWNrX2NoZWNrKQotICAgIGJwZXEgdDEsIDAsIC5zdGFja0hlaWdodE9LR2V0Q29k
ZUJsb2NrCi0gICAgbW92ZSB0MSwgY2ZyCisgICAgYnBlcSByMSwgMCwgLnN0YWNrSGVpZ2h0T0tH
ZXRDb2RlQmxvY2sKKyAgICBtb3ZlIHIxLCBjZnIKICAgICBkaXNwYXRjaCgwKSAjIEdvIHRvIGV4
Y2VwdGlvbiBoYW5kbGVyIGluIFBDCiAKIC5zdGFja0hlaWdodE9LR2V0Q29kZUJsb2NrOgpAQCAt
NzMzLDI5ICs4NTgsMTUgQEAgaWYgbm90IENfTE9PUAogICAgICMgdm9pZCBzYW5pdGl6ZVN0YWNr
Rm9yVk1JbXBsKFZNKiB2bSkKICAgICBnbG9iYWwgX3Nhbml0aXplU3RhY2tGb3JWTUltcGwKICAg
ICBfc2FuaXRpemVTdGFja0ZvclZNSW1wbDoKLSAgICAgICAgaWYgWDg2XzY0Ci0gICAgICAgICAg
ICBjb25zdCB2bSA9IHQ0Ci0gICAgICAgICAgICBjb25zdCBhZGRyZXNzID0gdDEKLSAgICAgICAg
ICAgIGNvbnN0IHplcm9WYWx1ZSA9IHQwCi0gICAgICAgIGVsc2lmIFg4Nl82NF9XSU4KLSAgICAg
ICAgICAgIGNvbnN0IHZtID0gdDIKLSAgICAgICAgICAgIGNvbnN0IGFkZHJlc3MgPSB0MQotICAg
ICAgICAgICAgY29uc3QgemVyb1ZhbHVlID0gdDAKLSAgICAgICAgZWxzaWYgWDg2IG9yIFg4Nl9X
SU4KLSAgICAgICAgICAgIGNvbnN0IHZtID0gdDIKLSAgICAgICAgICAgIGNvbnN0IGFkZHJlc3Mg
PSB0MQotICAgICAgICAgICAgY29uc3QgemVyb1ZhbHVlID0gdDAKLSAgICAgICAgZWxzZQotICAg
ICAgICAgICAgY29uc3Qgdm0gPSBhMAotICAgICAgICAgICAgY29uc3QgYWRkcmVzcyA9IHQxCi0g
ICAgICAgICAgICBjb25zdCB6ZXJvVmFsdWUgPSB0MgotICAgICAgICBlbmQKLSAgICAKKyAgICAg
ICAgIyBXZSBuZWVkIHRocmVlIG5vbi1hbGlhc2VkIGNhbGxlci1zYXZlIHJlZ2lzdGVycy4gV2Ug
YXJlIGd1YXJhbnRlZWQKKyAgICAgICAgIyB0aGlzIGZvciBhMCwgYTEgYW5kIGEyIG9uIGFsbCBh
cmNoaXRlY3R1cmVzLgogICAgICAgICBpZiBYODYgb3IgWDg2X1dJTgotICAgICAgICAgICAgbG9h
ZHAgNFtzcF0sIHZtCisgICAgICAgICAgICBsb2FkcCA0W3NwXSwgYTAKICAgICAgICAgZW5kCisg
ICAgICAgIGNvbnN0IGFkZHJlc3MgPSBhMQorICAgICAgICBjb25zdCB6ZXJvVmFsdWUgPSBhMgog
ICAgIAotICAgICAgICBsb2FkcCBWTTo6bV9sYXN0U3RhY2tUb3Bbdm1dLCBhZGRyZXNzCisgICAg
ICAgIGxvYWRwIFZNOjptX2xhc3RTdGFja1RvcFthMF0sIGFkZHJlc3MKICAgICAgICAgYnBiZXEg
c3AsIGFkZHJlc3MsIC56ZXJvRmlsbERvbmUKICAgICAKICAgICAgICAgbW92ZSAwLCB6ZXJvVmFs
dWUKQEAgLTc2NiwyOCArODc3LDE3IEBAIGlmIG5vdCBDX0xPT1AKICAgICAKICAgICAuemVyb0Zp
bGxEb25lOgogICAgICAgICBtb3ZlIHNwLCBhZGRyZXNzCi0gICAgICAgIHN0b3JlcCBhZGRyZXNz
LCBWTTo6bV9sYXN0U3RhY2tUb3Bbdm1dCisgICAgICAgIHN0b3JlcCBhZGRyZXNzLCBWTTo6bV9s
YXN0U3RhY2tUb3BbYTBdCiAgICAgICAgIHJldAogICAgIAogICAgICMgVk1FbnRyeVJlY29yZCog
dm1FbnRyeVJlY29yZChjb25zdCBWTUVudHJ5RnJhbWUqIGVudHJ5RnJhbWUpCiAgICAgZ2xvYmFs
IF92bUVudHJ5UmVjb3JkCiAgICAgX3ZtRW50cnlSZWNvcmQ6Ci0gICAgICAgIGlmIFg4Nl82NAot
ICAgICAgICAgICAgY29uc3QgZW50cnlGcmFtZSA9IHQ0Ci0gICAgICAgICAgICBjb25zdCByZXN1
bHQgPSB0MAotICAgICAgICBlbHNpZiBYODYgb3IgWDg2X1dJTiBvciBYODZfNjRfV0lOCi0gICAg
ICAgICAgICBjb25zdCBlbnRyeUZyYW1lID0gdDIKLSAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9
IHQwCi0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbnN0IGVudHJ5RnJhbWUgPSBhMAotICAg
ICAgICAgICAgY29uc3QgcmVzdWx0ID0gdDAKLSAgICAgICAgZW5kCi0gICAgCiAgICAgICAgIGlm
IFg4NiBvciBYODZfV0lOCi0gICAgICAgICAgICBsb2FkcCA0W3NwXSwgZW50cnlGcmFtZQorICAg
ICAgICAgICAgbG9hZHAgNFtzcF0sIGEwCiAgICAgICAgIGVuZAotICAgIAotICAgICAgICB2bUVu
dHJ5UmVjb3JkKGVudHJ5RnJhbWUsIHJlc3VsdCkKKworICAgICAgICB2bUVudHJ5UmVjb3JkKGEw
LCByMCkKICAgICAgICAgcmV0CiBlbmQKIApAQCAtNzk1LDE3ICs4OTUsMTIgQEAgaWYgQ19MT09Q
CiAgICAgIyBEdW1teSBlbnRyeSBwb2ludCB0aGUgQyBMb29wIHVzZXMgdG8gaW5pdGlhbGl6ZS4K
ICAgICBfbGxpbnRfZW50cnk6CiAgICAgICAgIGNyYXNoKCkKLSAgICBlbHNlCitlbHNlCiAgICAg
bWFjcm8gaW5pdFBDUmVsYXRpdmUocGNCYXNlKQotICAgICAgICBpZiBYODZfNjQgb3IgWDg2XzY0
X1dJTgotICAgICAgICAgICAgY2FsbCBfcmVsYXRpdmVQQ0Jhc2UKLSAgICAgICAgX3JlbGF0aXZl
UENCYXNlOgotICAgICAgICAgICAgcG9wIHBjQmFzZQotICAgICAgICBlbHNpZiBYODYgb3IgWDg2
X1dJTgorICAgICAgICBpZiBYODZfNjQgb3IgWDg2XzY0X1dJTiBvciBYODYgb3IgWDg2X1dJTgog
ICAgICAgICAgICAgY2FsbCBfcmVsYXRpdmVQQ0Jhc2UKICAgICAgICAgX3JlbGF0aXZlUENCYXNl
OgogICAgICAgICAgICAgcG9wIHBjQmFzZQotICAgICAgICAgICAgbG9hZHAgMjBbc3BdLCB0NAog
ICAgICAgICBlbHNpZiBBUk02NAogICAgICAgICBlbHNpZiBBUk12NwogICAgICAgICBfcmVsYXRp
dmVQQ0Jhc2U6CkBAIC04MjYsNDEgKzkyMSw0MyBAQCBpZiBDX0xPT1AKICAgICAgICAgZW5kCiBl
bmQKIAorIyBUaGUgUEMgYmFzZSBpcyBpbiB0MSwgYXMgdGhpcyBpcyB3aGF0IF9sbGludF9lbnRy
eSBsZWF2ZXMgYmVoaW5kIHRocm91Z2gKKyMgaW5pdFBDUmVsYXRpdmUodDEpCiBtYWNybyBzZXRF
bnRyeUFkZHJlc3MoaW5kZXgsIGxhYmVsKQogICAgIGlmIFg4Nl82NAotICAgICAgICBsZWFwIChs
YWJlbCAtIF9yZWxhdGl2ZVBDQmFzZSlbdDFdLCB0MAotICAgICAgICBtb3ZlIGluZGV4LCB0Mgot
ICAgICAgICBzdG9yZXAgdDAsIFt0NCwgdDIsIDhdCisgICAgICAgIGxlYXAgKGxhYmVsIC0gX3Jl
bGF0aXZlUENCYXNlKVt0MV0sIHQzCisgICAgICAgIG1vdmUgaW5kZXgsIHQ0CisgICAgICAgIHN0
b3JlcCB0MywgW2EwLCB0NCwgOF0KICAgICBlbHNpZiBYODZfNjRfV0lOCi0gICAgICAgIGxlYXAg
KGxhYmVsIC0gX3JlbGF0aXZlUENCYXNlKVt0MV0sIHQwCisgICAgICAgIGxlYXAgKGxhYmVsIC0g
X3JlbGF0aXZlUENCYXNlKVt0MV0sIHQzCiAgICAgICAgIG1vdmUgaW5kZXgsIHQ0Ci0gICAgICAg
IHN0b3JlcCB0MCwgW3QyLCB0NCwgOF0KKyAgICAgICAgc3RvcmVwIHQzLCBbYTAsIHQ0LCA4XQog
ICAgIGVsc2lmIFg4NiBvciBYODZfV0lOCi0gICAgICAgIGxlYXAgKGxhYmVsIC0gX3JlbGF0aXZl
UENCYXNlKVt0MV0sIHQwCi0gICAgICAgIG1vdmUgaW5kZXgsIHQyCi0gICAgICAgIHN0b3JlcCB0
MCwgW3Q0LCB0MiwgNF0KKyAgICAgICAgbGVhcCAobGFiZWwgLSBfcmVsYXRpdmVQQ0Jhc2UpW3Qx
XSwgdDMKKyAgICAgICAgbW92ZSBpbmRleCwgdDQKKyAgICAgICAgc3RvcmVwIHQzLCBbYTAsIHQ0
LCA0XQogICAgIGVsc2lmIEFSTTY0CiAgICAgICAgIHBjcnRvYWRkciBsYWJlbCwgdDEKLSAgICAg
ICAgbW92ZSBpbmRleCwgdDIKLSAgICAgICAgc3RvcmVwIHQxLCBbYTAsIHQyLCA4XQorICAgICAg
ICBtb3ZlIGluZGV4LCB0NAorICAgICAgICBzdG9yZXAgdDEsIFthMCwgdDQsIDhdCiAgICAgZWxz
aWYgQVJNIG9yIEFSTXY3IG9yIEFSTXY3X1RSQURJVElPTkFMCi0gICAgICAgIG12bGJsIChsYWJl
bCAtIF9yZWxhdGl2ZVBDQmFzZSksIHQyCi0gICAgICAgIGFkZHAgdDIsIHQxLCB0MgorICAgICAg
ICBtdmxibCAobGFiZWwgLSBfcmVsYXRpdmVQQ0Jhc2UpLCB0NAorICAgICAgICBhZGRwIHQ0LCB0
MSwgdDQKICAgICAgICAgbW92ZSBpbmRleCwgdDMKLSAgICAgICAgc3RvcmVwIHQyLCBbYTAsIHQz
LCA0XQorICAgICAgICBzdG9yZXAgdDQsIFthMCwgdDMsIDRdCiAgICAgZWxzaWYgU0g0Ci0gICAg
ICAgIG1vdmUgKGxhYmVsIC0gX3JlbGF0aXZlUENCYXNlKSwgdDIKLSAgICAgICAgYWRkcCB0Miwg
dDEsIHQyCisgICAgICAgIG1vdmUgKGxhYmVsIC0gX3JlbGF0aXZlUENCYXNlKSwgdDQKKyAgICAg
ICAgYWRkcCB0NCwgdDEsIHQ0CiAgICAgICAgIG1vdmUgaW5kZXgsIHQzCi0gICAgICAgIHN0b3Jl
cCB0MiwgW2EwLCB0MywgNF0KKyAgICAgICAgc3RvcmVwIHQ0LCBbYTAsIHQzLCA0XQogICAgICAg
ICBmbHVzaGNwICMgRm9yY2UgY29uc3RhbnQgcG9vbCBmbHVzaCB0byBhdm9pZCAicGNyZWwgdG9v
IGZhciIgbGluayBlcnJvci4KICAgICBlbHNpZiBNSVBTCi0gICAgICAgIGxhIGxhYmVsLCB0Mgor
ICAgICAgICBsYSBsYWJlbCwgdDQKICAgICAgICAgbGEgX3JlbGF0aXZlUENCYXNlLCB0MwotICAg
ICAgICBzdWJwIHQzLCB0MgotICAgICAgICBhZGRwIHQyLCB0MSwgdDIKKyAgICAgICAgc3VicCB0
MywgdDQKKyAgICAgICAgYWRkcCB0NCwgdDEsIHQ0CiAgICAgICAgIG1vdmUgaW5kZXgsIHQzCi0g
ICAgICAgIHN0b3JlcCB0MiwgW2EwLCB0MywgNF0KKyAgICAgICAgc3RvcmVwIHQ0LCBbYTAsIHQz
LCA0XQogICAgIGVuZAogZW5kCiAKQEAgLTg2OSw2ICs5NjYsOSBAQCBnbG9iYWwgX2xsaW50X2Vu
dHJ5CiBfbGxpbnRfZW50cnk6CiAgICAgZnVuY3Rpb25Qcm9sb2d1ZSgpCiAgICAgcHVzaENhbGxl
ZVNhdmVzKCkKKyAgICBpZiBYODYgb3IgWDg2X1dJTgorICAgICAgICBsb2FkcCAyMFtzcF0sIGEw
CisgICAgZW5kCiAgICAgaW5pdFBDUmVsYXRpdmUodDEpCiAKICAgICAjIEluY2x1ZGUgZ2VuZXJh
dGVkIGJ5dGVjb2RlIGluaXRpYWxpemF0aW9uIGZpbGUuCkBAIC0xMTk5LDE2ICsxMjk5LDE2IEBA
IF9sbGludF9vcF9jYWxsX3ZhcmFyZ3M6CiAgICAgdHJhY2VFeGVjdXRpb24oKQogICAgIGNhbGxT
bG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3NpemVfZnJhbWVfZm9yX3ZhcmFyZ3MpCiAgICAgYnJh
bmNoSWZFeGNlcHRpb24oX2xsaW50X3Rocm93X2Zyb21fc2xvd19wYXRoX3RyYW1wb2xpbmUpCi0g
ICAgIyBjYWxsZWVGcmFtZSBpbiB0MQorICAgICMgY2FsbGVlRnJhbWUgaW4gcjEKICAgICBpZiBK
U1ZBTFVFNjQKLSAgICAgICAgbW92ZSB0MSwgc3AKKyAgICAgICAgbW92ZSByMSwgc3AKICAgICBl
bHNlCiAgICAgICAgICMgVGhlIGNhbGxlZUZyYW1lIGlzIG5vdCBzdGFjayBhbGlnbmVkLCBtb3Zl
IGRvd24gYnkgQ2FsbGVyRnJhbWVBbmRQQ1NpemUgdG8gYWxpZ24KICAgICAgICAgaWYgQVJNdjcK
LSAgICAgICAgICAgIHN1YnAgdDEsIENhbGxlckZyYW1lQW5kUENTaXplLCB0MgorICAgICAgICAg
ICAgc3VicCByMSwgQ2FsbGVyRnJhbWVBbmRQQ1NpemUsIHQyCiAgICAgICAgICAgICBtb3ZlIHQy
LCBzcAogICAgICAgICBlbHNlCi0gICAgICAgICAgICBzdWJwIHQxLCBDYWxsZXJGcmFtZUFuZFBD
U2l6ZSwgc3AKKyAgICAgICAgICAgIHN1YnAgcjEsIENhbGxlckZyYW1lQW5kUENTaXplLCBzcAog
ICAgICAgICBlbmQKICAgICBlbmQKICAgICBzbG93UGF0aEZvckNhbGwoX2xsaW50X3Nsb3dfcGF0
aF9jYWxsX3ZhcmFyZ3MpCkBAIC0xMjE3LDE2ICsxMzE3LDE2IEBAIF9sbGludF9vcF9jb25zdHJ1
Y3RfdmFyYXJnczoKICAgICB0cmFjZUV4ZWN1dGlvbigpCiAgICAgY2FsbFNsb3dQYXRoKF9sbGlu
dF9zbG93X3BhdGhfc2l6ZV9mcmFtZV9mb3JfdmFyYXJncykKICAgICBicmFuY2hJZkV4Y2VwdGlv
bihfbGxpbnRfdGhyb3dfZnJvbV9zbG93X3BhdGhfdHJhbXBvbGluZSkKLSAgICAjIGNhbGxlZUZy
YW1lIGluIHQxCisgICAgIyBjYWxsZWVGcmFtZSBpbiByMQogICAgIGlmIEpTVkFMVUU2NAotICAg
ICAgICBtb3ZlIHQxLCBzcAorICAgICAgICBtb3ZlIHIxLCBzcAogICAgIGVsc2UKICAgICAgICAg
IyBUaGUgY2FsbGVlRnJhbWUgaXMgbm90IHN0YWNrIGFsaWduZWQsIG1vdmUgZG93biBieSBDYWxs
ZXJGcmFtZUFuZFBDU2l6ZSB0byBhbGlnbgogICAgICAgICBpZiBBUk12NwotICAgICAgICAgICAg
c3VicCB0MSwgQ2FsbGVyRnJhbWVBbmRQQ1NpemUsIHQyCisgICAgICAgICAgICBzdWJwIHIxLCBD
YWxsZXJGcmFtZUFuZFBDU2l6ZSwgdDIKICAgICAgICAgICAgIG1vdmUgdDIsIHNwCiAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgIHN1YnAgdDEsIENhbGxlckZyYW1lQW5kUENTaXplLCBzcAorICAg
ICAgICAgICAgc3VicCByMSwgQ2FsbGVyRnJhbWVBbmRQQ1NpemUsIHNwCiAgICAgICAgIGVuZAog
ICAgIGVuZAogICAgIHNsb3dQYXRoRm9yQ2FsbChfbGxpbnRfc2xvd19wYXRoX2NvbnN0cnVjdF92
YXJhcmdzKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVs
SW50ZXJwcmV0ZXIzMl82NC5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2
ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQppbmRleCAxMTliODlhMjBhNjUwMGUyMTdiZWQzNTMyMzc4
OGVhNGY0OTExY2NkLi5lYmUwZGExNGUzMGYxNWViYTIxMDU4OTI0ZWNmZTM3N2VjZmQ3NDQ4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRl
cjMyXzY0LmFzbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRl
cnByZXRlcjMyXzY0LmFzbQpAQCAtMjIsNTQgKzIyLDYgQEAKICMgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgogCiAKLSMgQ3Jhc2ggY291cnNlIG9uIHRoZSBsYW5ndWFnZSB0aGF0IHRo
aXMgaXMgd3JpdHRlbiBpbiAod2hpY2ggSSBqdXN0IGNhbGwKLSMgImFzc2VtYmx5IiBldmVuIHRo
b3VnaCBpdCdzIG1vcmUgdGhhbiB0aGF0KToKLSMKLSMgLSBNb3N0bHkgZ2FzLXN0eWxlIG9wZXJh
bmQgb3JkZXJpbmcuIFRoZSBsYXN0IG9wZXJhbmQgdGVuZHMgdG8gYmUgdGhlCi0jICAgZGVzdGlu
YXRpb24uIFNvICJhIDo9IGIiIGlzIHdyaXR0ZW4gYXMgIm1vdiBiLCBhIi4gQnV0IHVubGlrZSBn
YXMsCi0jICAgY29tcGFyaXNvbnMgYXJlIGluLW9yZGVyLCBzbyAiaWYgKGEgPCBiKSIgaXMgd3Jp
dHRlbiBhcwotIyAgICJiaWx0IGEsIGIsIC4uLiIuCi0jCi0jIC0gImIiID0gYnl0ZSwgImgiID0g
MTYtYml0IHdvcmQsICJpIiA9IDMyLWJpdCB3b3JkLCAicCIgPSBwb2ludGVyLgotIyAgIEN1cnJl
bnRseSB0aGlzIGlzIGp1c3QgMzItYml0IHNvICJpIiBhbmQgInAiIGFyZSBpbnRlcmNoYW5nZWFi
bGUKLSMgICBleGNlcHQgd2hlbiBhbiBvcCBzdXBwb3J0cyBvbmUgYnV0IG5vdCB0aGUgb3RoZXIu
Ci0jCi0jIC0gSW4gZ2VuZXJhbCwgdmFsaWQgb3BlcmFuZHMgZm9yIG1hY3JvIGludm9jYXRpb25z
IGFuZCBpbnN0cnVjdGlvbnMgYXJlCi0jICAgcmVnaXN0ZXJzIChlZyAidDAiKSwgYWRkcmVzc2Vz
IChlZyAiNFt0MF0iKSwgYmFzZS1pbmRleCBhZGRyZXNzZXMKLSMgICAoZWcgIjdbdDAsIHQxLCAy
XSIpLCBhYnNvbHV0ZSBhZGRyZXNzZXMgKGVnICIweGEwMDAwMDAwW10iKSwgb3IgbGFiZWxzCi0j
ICAgKGVnICJfZm9vIiBvciAiLmZvbyIpLiBNYWNybyBpbnZvY2F0aW9ucyBjYW4gYWxzbyB0YWtl
IGFub255bW91cwotIyAgIG1hY3JvcyBhcyBvcGVyYW5kcy4gSW5zdHJ1Y3Rpb25zIGNhbm5vdCB0
YWtlIGFub255bW91cyBtYWNyb3MuCi0jCi0jIC0gTGFiZWxzIG11c3QgaGF2ZSBuYW1lcyB0aGF0
IGJlZ2luIHdpdGggZWl0aGVyICJfIiBvciAiLiIuICBBICIuIiBsYWJlbAotIyAgIGlzIGxvY2Fs
IGFuZCBnZXRzIHJlbmFtZWQgYmVmb3JlIGNvZGUgZ2VuIHRvIG1pbmltaXplIG5hbWVzcGFjZQot
IyAgIHBvbGx1dGlvbi4gQSAiXyIgbGFiZWwgaXMgYW4gZXh0ZXJuIHN5bWJvbCAoaS5lLiAiLmds
b2JsIikuIFRoZSAiXyIKLSMgICBtYXkgb3IgbWF5IG5vdCBiZSByZW1vdmVkIGR1cmluZyBjb2Rl
IGdlbiBkZXBlbmRpbmcgb24gd2hldGhlciB0aGUgYXNtCi0jICAgY29udmVudGlvbnMgZm9yIEMg
bmFtZSBtYW5nbGluZyBvbiB0aGUgdGFyZ2V0IHBsYXRmb3JtIG1hbmRhdGUgYSAiXyIKLSMgICBw
cmVmaXguCi0jCi0jIC0gQSAibWFjcm8iIGlzIGEgbGFtYmRhIGV4cHJlc3Npb24sIHdoaWNoIG1h
eSBiZSBlaXRoZXIgYW5vbnltb3VzIG9yCi0jICAgbmFtZWQuIEJ1dCB0aGlzIGhhcyBjYXZlYXRz
LiAibWFjcm8iIGNhbiB0YWtlIHplcm8gb3IgbW9yZSBhcmd1bWVudHMsCi0jICAgd2hpY2ggbWF5
IGJlIG1hY3JvcyBvciBhbnkgdmFsaWQgb3BlcmFuZHMsIGJ1dCBpdCBjYW4gb25seSByZXR1cm4K
LSMgICBjb2RlLiBCdXQgeW91IGNhbiBkbyBUdXJpbmctY29tcGxldGUgdGhpbmdzIHZpYSBjb250
aW51YXRpb24gcGFzc2luZwotIyAgIHN0eWxlOiAibWFjcm8gZm9vIChhLCBiKSBiKGEpIGVuZCBm
b28oZm9vLCBmb28pIi4gQWN0dWFsbHksIGRvbid0IGRvCi0jICAgdGhhdCwgc2luY2UgeW91J2xs
IGp1c3QgY3Jhc2ggdGhlIGFzc2VtYmxlci4KLSMKLSMgLSBBbiAiaWYiIGlzIGEgY29uZGl0aW9u
YWwgb24gc2V0dGluZ3MuIEFueSBpZGVudGlmaWVyIHN1cHBsaWVkIGluIHRoZQotIyAgIHByZWRp
Y2F0ZSBvZiBhbiAiaWYiIGlzIGFzc3VtZWQgdG8gYmUgYSAjZGVmaW5lIHRoYXQgaXMgYXZhaWxh
YmxlCi0jICAgZHVyaW5nIGNvZGUgZ2VuLiBTbyB5b3UgY2FuJ3QgdXNlICJpZiIgZm9yIGNvbXB1
dGF0aW9uIGluIGEgbWFjcm8sIGJ1dAotIyAgIHlvdSBjYW4gdXNlIGl0IHRvIHNlbGVjdCBkaWZm
ZXJlbnQgcGllY2VzIG9mIGNvZGUgZm9yIGRpZmZlcmVudAotIyAgIHBsYXRmb3Jtcy4KLSMKLSMg
LSBBcmd1bWVudHMgdG8gbWFjcm9zIGZvbGxvdyBsZXhpY2FsIHNjb3BpbmcgcmF0aGVyIHRoYW4g
ZHluYW1pYyBzY29waW5nLgotIyAgIENvbnN0J3MgYWxzbyBmb2xsb3cgbGV4aWNhbCBzY29waW5n
IGFuZCBtYXkgb3ZlcnJpZGUgKGhpZGUpIGFyZ3VtZW50cwotIyAgIG9yIG90aGVyIGNvbnN0cy4g
QWxsIHZhcmlhYmxlcyAoYXJndW1lbnRzIGFuZCBjb25zdGFudHMpIGNhbiBiZSBib3VuZAotIyAg
IHRvIG9wZXJhbmRzLiBBZGRpdGlvbmFsbHksIGFyZ3VtZW50cyAoYnV0IG5vdCBjb25zdGFudHMp
IGNhbiBiZSBib3VuZAotIyAgIHRvIG1hY3Jvcy4KLQotCi0jIEJlbG93IHdlIGhhdmUgYSBidW5j
aCBvZiBjb25zdGFudCBkZWNsYXJhdGlvbnMuIEVhY2ggY29uc3RhbnQgbXVzdCBoYXZlCi0jIGEg
Y29ycmVzcG9uZGluZyBBU1NFUlQoKSBpbiBMTEludERhdGEuY3BwLgotCiAjIFV0aWxpdGllcwog
bWFjcm8gZGlzcGF0Y2goYWR2YW5jZSkKICAgICBhZGRwIGFkdmFuY2UgKiA0LCBQQwpAQCAtODks
NjAgKzQxLDQ3IEBAIGVuZAogCiBtYWNybyBkaXNwYXRjaEFmdGVyQ2FsbCgpCiAgICAgbG9hZGkg
QXJndW1lbnRDb3VudCArIFRhZ09mZnNldFtjZnJdLCBQQwotICAgIGxvYWRpIDRbUENdLCB0Mgot
ICAgIHN0b3JlaSB0MSwgVGFnT2Zmc2V0W2NmciwgdDIsIDhdCi0gICAgc3RvcmVpIHQwLCBQYXls
b2FkT2Zmc2V0W2NmciwgdDIsIDhdCi0gICAgdmFsdWVQcm9maWxlKHQxLCB0MCwgNCAqIChDYWxs
T3BDb2RlU2l6ZSAtIDEpLCB0MykKKyAgICBsb2FkaSA0W1BDXSwgdDMKKyAgICBzdG9yZWkgcjEs
IFRhZ09mZnNldFtjZnIsIHQzLCA4XQorICAgIHN0b3JlaSByMCwgUGF5bG9hZE9mZnNldFtjZnIs
IHQzLCA4XQorICAgIHZhbHVlUHJvZmlsZShyMSwgcjAsIDQgKiAoQ2FsbE9wQ29kZVNpemUgLSAx
KSwgdDMpCiAgICAgZGlzcGF0Y2goQ2FsbE9wQ29kZVNpemUpCiBlbmQKIAotbWFjcm8gY0NhbGwy
KGZ1bmN0aW9uLCBhcmcxLCBhcmcyKQotICAgIGlmIEFSTSBvciBBUk12NyBvciBBUk12N19UUkFE
SVRJT05BTCBvciBNSVBTCi0gICAgICAgIG1vdmUgYXJnMSwgYTAKLSAgICAgICAgbW92ZSBhcmcy
LCBhMQorbWFjcm8gY0NhbGwyKGZ1bmN0aW9uKQorICAgIGlmIEFSTSBvciBBUk12NyBvciBBUk12
N19UUkFESVRJT05BTCBvciBNSVBTIG9yIFNINAogICAgICAgICBjYWxsIGZ1bmN0aW9uCiAgICAg
ZWxzaWYgWDg2IG9yIFg4Nl9XSU4KICAgICAgICAgc3VicCA4LCBzcAotICAgICAgICBwdXNoIGFy
ZzIKLSAgICAgICAgcHVzaCBhcmcxCisgICAgICAgIHB1c2ggYTEKKyAgICAgICAgcHVzaCBhMAog
ICAgICAgICBjYWxsIGZ1bmN0aW9uCiAgICAgICAgIGFkZHAgMTYsIHNwCi0gICAgZWxzaWYgU0g0
Ci0gICAgICAgIHNldGFyZ3MgYXJnMSwgYXJnMgotICAgICAgICBjYWxsIGZ1bmN0aW9uCiAgICAg
ZWxzaWYgQ19MT09QCi0gICAgICAgIGNsb29wQ2FsbFNsb3dQYXRoIGZ1bmN0aW9uLCBhcmcxLCBh
cmcyCisgICAgICAgIGNsb29wQ2FsbFNsb3dQYXRoIGZ1bmN0aW9uLCBhMCwgYTEKICAgICBlbHNl
CiAgICAgICAgIGVycm9yCiAgICAgZW5kCiBlbmQKIAotbWFjcm8gY0NhbGwyVm9pZChmdW5jdGlv
biwgYXJnMSwgYXJnMikKK21hY3JvIGNDYWxsMlZvaWQoZnVuY3Rpb24pCiAgICAgaWYgQ19MT09Q
Ci0gICAgICAgIGNsb29wQ2FsbFNsb3dQYXRoVm9pZCBmdW5jdGlvbiwgYXJnMSwgYXJnMgorICAg
ICAgICBjbG9vcENhbGxTbG93UGF0aFZvaWQgZnVuY3Rpb24sIGEwLCBhMQogICAgIGVsc2UKLSAg
ICAgICAgY0NhbGwyKGZ1bmN0aW9uLCBhcmcxLCBhcmcyKQorICAgICAgICBjQ2FsbDIoZnVuY3Rp
b24pCiAgICAgZW5kCiBlbmQKIAotIyBUaGlzIGJhcmVseSB3b3Jrcy4gYXJnMyBhbmQgYXJnNCBz
aG91bGQgcHJvYmFibHkgYmUgaW1tZWRpYXRlcy4KLW1hY3JvIGNDYWxsNChmdW5jdGlvbiwgYXJn
MSwgYXJnMiwgYXJnMywgYXJnNCkKLSAgICBpZiBBUk0gb3IgQVJNdjcgb3IgQVJNdjdfVFJBRElU
SU9OQUwgb3IgTUlQUwotICAgICAgICBtb3ZlIGFyZzEsIGEwCi0gICAgICAgIG1vdmUgYXJnMiwg
YTEKLSAgICAgICAgbW92ZSBhcmczLCBhMgotICAgICAgICBtb3ZlIGFyZzQsIGEzCittYWNybyBj
Q2FsbDQoZnVuY3Rpb24pCisgICAgaWYgQVJNIG9yIEFSTXY3IG9yIEFSTXY3X1RSQURJVElPTkFM
IG9yIE1JUFMgb3IgU0g0CiAgICAgICAgIGNhbGwgZnVuY3Rpb24KICAgICBlbHNpZiBYODYgb3Ig
WDg2X1dJTgotICAgICAgICBwdXNoIGFyZzQKLSAgICAgICAgcHVzaCBhcmczCi0gICAgICAgIHB1
c2ggYXJnMgotICAgICAgICBwdXNoIGFyZzEKKyAgICAgICAgcHVzaCBhMworICAgICAgICBwdXNo
IGEyCisgICAgICAgIHB1c2ggYTEKKyAgICAgICAgcHVzaCBhMAogICAgICAgICBjYWxsIGZ1bmN0
aW9uCiAgICAgICAgIGFkZHAgMTYsIHNwCi0gICAgZWxzaWYgU0g0Ci0gICAgICAgIHNldGFyZ3Mg
YXJnMSwgYXJnMiwgYXJnMywgYXJnNAotICAgICAgICBjYWxsIGZ1bmN0aW9uCiAgICAgZWxzaWYg
Q19MT09QCiAgICAgICAgIGVycm9yCiAgICAgZWxzZQpAQCAtMTUxLDEzMyArOTAsMTA1IEBAIG1h
Y3JvIGNDYWxsNChmdW5jdGlvbiwgYXJnMSwgYXJnMiwgYXJnMywgYXJnNCkKIGVuZAogCiBtYWNy
byBjYWxsU2xvd1BhdGgoc2xvd1BhdGgpCi0gICAgY0NhbGwyKHNsb3dQYXRoLCBjZnIsIFBDKQot
ICAgIG1vdmUgdDAsIFBDCisgICAgbW92ZSBjZnIsIGEwCisgICAgbW92ZSBQQywgYTEKKyAgICBj
Q2FsbDIoc2xvd1BhdGgpCisgICAgbW92ZSByMCwgUEMKIGVuZAogCiBtYWNybyBkb1ZNRW50cnko
bWFrZUNhbGwpCi0gICAgaWYgWDg2IG9yIFg4Nl9XSU4KLSAgICAgICAgY29uc3QgZW50cnkgPSB0
NAotICAgICAgICBjb25zdCB2bSA9IHQzCi0gICAgICAgIGNvbnN0IHByb3RvQ2FsbEZyYW1lID0g
dDUKLQotICAgICAgICBjb25zdCB0ZW1wMSA9IHQwCi0gICAgICAgIGNvbnN0IHRlbXAyID0gdDEK
LSAgICAgICAgY29uc3QgdGVtcDMgPSB0MgotICAgICAgICBjb25zdCB0ZW1wNCA9IHQzICMgc2Ft
ZSBhcyB2bQotICAgIGVsc2lmIEFSTSBvciBBUk12NyBvciBBUk12N19UUkFESVRJT05BTCBvciBD
X0xPT1AKLSAgICAgICAgY29uc3QgZW50cnkgPSBhMAotICAgICAgICBjb25zdCB2bSA9IGExCi0g
ICAgICAgIGNvbnN0IHByb3RvQ2FsbEZyYW1lID0gYTIKLQotICAgICAgICBjb25zdCB0ZW1wMSA9
IHQzCi0gICAgICAgIGNvbnN0IHRlbXAyID0gdDQKLSAgICAgICAgY29uc3QgdGVtcDMgPSB0NQot
ICAgICAgICBjb25zdCB0ZW1wNCA9IHQ0ICMgU2FtZSBhcyB0ZW1wMgotICAgIGVsc2lmIE1JUFMK
LSAgICAgICAgY29uc3QgZW50cnkgPSBhMAotICAgICAgICBjb25zdCB2bSA9IGExCi0gICAgICAg
IGNvbnN0IHByb3RvQ2FsbEZyYW1lID0gYTIKLQotICAgICAgICBjb25zdCB0ZW1wMSA9IHQzCi0g
ICAgICAgIGNvbnN0IHRlbXAyID0gdDUKLSAgICAgICAgY29uc3QgdGVtcDMgPSB0NAotICAgICAg
ICBjb25zdCB0ZW1wNCA9IHQ2Ci0gICAgZWxzaWYgU0g0Ci0gICAgICAgIGNvbnN0IGVudHJ5ID0g
YTAKLSAgICAgICAgY29uc3Qgdm0gPSBhMQotICAgICAgICBjb25zdCBwcm90b0NhbGxGcmFtZSA9
IGEyCi0KLSAgICAgICAgY29uc3QgdGVtcDEgPSB0MwotICAgICAgICBjb25zdCB0ZW1wMiA9IGEz
Ci0gICAgICAgIGNvbnN0IHRlbXAzID0gdDgKLSAgICAgICAgY29uc3QgdGVtcDQgPSB0OQotICAg
IGVuZAotCiAgICAgZnVuY3Rpb25Qcm9sb2d1ZSgpCiAgICAgcHVzaENhbGxlZVNhdmVzKCkKIAor
ICAgICMgeDg2IG5lZWRzIHRvIGxvYWQgYXJndW1lbnRzIGZyb20gdGhlIHN0YWNrCiAgICAgaWYg
WDg2IG9yIFg4Nl9XSU4KLSAgICAgICAgbG9hZHAgMTJbY2ZyXSwgdm0KLSAgICAgICAgbG9hZHAg
OFtjZnJdLCBlbnRyeQorICAgICAgICBsb2FkcCAxNltjZnJdLCBhMgorICAgICAgICBsb2FkcCAx
MltjZnJdLCBhMQorICAgICAgICBsb2FkcCA4W2Nmcl0sIGEwCiAgICAgZW5kCiAKKyAgICBjb25z
dCBlbnRyeSA9IGEwCisgICAgY29uc3Qgdm0gPSBhMQorICAgIGNvbnN0IHByb3RvQ2FsbEZyYW1l
ID0gYTIKKworICAgICMgV2UgYXJlIHVzaW5nIHQzLCB0NCBhbmQgdDUgYXMgdGVtcG9yYXJpZXMg
dGhyb3VnaCB0aGUgZnVuY3Rpb24uCisgICAgIyBTaW5jZSB3ZSBoYXZlIHRoZSBndWFyYW50ZWUg
dGhhdCB0WCAhPSBhWSB3aGVuIFggIT0gWSwgd2UgYXJlIHNhZmUgZnJvbQorICAgICMgYWxpYXNp
bmcgcHJvYmxlbXMgd2l0aCBvdXIgYXJndW1lbnRzLgorCiAgICAgaWYgQVJNdjcKLSAgICAgICAg
dm1FbnRyeVJlY29yZChjZnIsIHRlbXAxKQotICAgICAgICBtb3ZlIHRlbXAxLCBzcAorICAgICAg
ICB2bUVudHJ5UmVjb3JkKGNmciwgdDMpCisgICAgICAgIG1vdmUgdDMsIHNwCiAgICAgZWxzZQog
ICAgICAgICB2bUVudHJ5UmVjb3JkKGNmciwgc3ApCiAgICAgZW5kCiAKICAgICBzdG9yZXAgdm0s
IFZNRW50cnlSZWNvcmQ6Om1fdm1bc3BdCi0gICAgbG9hZHAgVk06OnRvcENhbGxGcmFtZVt2bV0s
IHRlbXAyCi0gICAgc3RvcmVwIHRlbXAyLCBWTUVudHJ5UmVjb3JkOjptX3ByZXZUb3BDYWxsRnJh
bWVbc3BdCi0gICAgbG9hZHAgVk06OnRvcFZNRW50cnlGcmFtZVt2bV0sIHRlbXAyCi0gICAgc3Rv
cmVwIHRlbXAyLCBWTUVudHJ5UmVjb3JkOjptX3ByZXZUb3BWTUVudHJ5RnJhbWVbc3BdCisgICAg
bG9hZHAgVk06OnRvcENhbGxGcmFtZVt2bV0sIHQ0CisgICAgc3RvcmVwIHQ0LCBWTUVudHJ5UmVj
b3JkOjptX3ByZXZUb3BDYWxsRnJhbWVbc3BdCisgICAgbG9hZHAgVk06OnRvcFZNRW50cnlGcmFt
ZVt2bV0sIHQ0CisgICAgc3RvcmVwIHQ0LCBWTUVudHJ5UmVjb3JkOjptX3ByZXZUb3BWTUVudHJ5
RnJhbWVbc3BdCiAKICAgICAjIEFsaWduIHN0YWNrIHBvaW50ZXIKICAgICBpZiBYODZfV0lOCi0g
ICAgICAgIGFkZHAgQ2FsbEZyYW1lQWxpZ25TbG90cyAqIFNsb3RTaXplLCBzcCwgdGVtcDEKLSAg
ICAgICAgYW5kcCB+U3RhY2tBbGlnbm1lbnRNYXNrLCB0ZW1wMQotICAgICAgICBzdWJwIHRlbXAx
LCBDYWxsRnJhbWVBbGlnblNsb3RzICogU2xvdFNpemUsIHNwCisgICAgICAgIGFkZHAgQ2FsbEZy
YW1lQWxpZ25TbG90cyAqIFNsb3RTaXplLCBzcCwgdDMKKyAgICAgICAgYW5kcCB+U3RhY2tBbGln
bm1lbnRNYXNrLCB0MworICAgICAgICBzdWJwIHQzLCBDYWxsRnJhbWVBbGlnblNsb3RzICogU2xv
dFNpemUsIHNwCiAgICAgZWxzaWYgQVJNIG9yIEFSTXY3IG9yIEFSTXY3X1RSQURJVElPTkFMCi0g
ICAgICAgIGFkZHAgQ2FsbEZyYW1lQWxpZ25TbG90cyAqIFNsb3RTaXplLCBzcCwgdGVtcDEKLSAg
ICAgICAgY2xyYnAgdGVtcDEsIFN0YWNrQWxpZ25tZW50TWFzaywgdGVtcDEKKyAgICAgICAgYWRk
cCBDYWxsRnJhbWVBbGlnblNsb3RzICogU2xvdFNpemUsIHNwLCB0MworICAgICAgICBjbHJicCB0
MywgU3RhY2tBbGlnbm1lbnRNYXNrLCB0MwogICAgICAgICBpZiBBUk12NwotICAgICAgICAgICAg
c3VicCB0ZW1wMSwgQ2FsbEZyYW1lQWxpZ25TbG90cyAqIFNsb3RTaXplLCB0ZW1wMQotICAgICAg
ICAgICAgbW92ZSB0ZW1wMSwgc3AKKyAgICAgICAgICAgIHN1YnAgdDMsIENhbGxGcmFtZUFsaWdu
U2xvdHMgKiBTbG90U2l6ZSwgdDMKKyAgICAgICAgICAgIG1vdmUgdDMsIHNwCiAgICAgICAgIGVs
c2UKLSAgICAgICAgICAgIHN1YnAgdGVtcDEsIENhbGxGcmFtZUFsaWduU2xvdHMgKiBTbG90U2l6
ZSwgc3AKKyAgICAgICAgICAgIHN1YnAgdDMsIENhbGxGcmFtZUFsaWduU2xvdHMgKiBTbG90U2l6
ZSwgc3AKICAgICAgICAgZW5kCiAgICAgZW5kCiAKLSAgICBpZiBYODYgb3IgWDg2X1dJTgotICAg
ICAgICBsb2FkcCAxNltjZnJdLCBwcm90b0NhbGxGcmFtZQotICAgIGVuZAotCi0gICAgbG9hZGkg
UHJvdG9DYWxsRnJhbWU6OnBhZGRlZEFyZ0NvdW50W3Byb3RvQ2FsbEZyYW1lXSwgdGVtcDIKLSAg
ICBhZGRwIENhbGxGcmFtZUhlYWRlclNsb3RzLCB0ZW1wMiwgdGVtcDIKLSAgICBsc2hpZnRwIDMs
IHRlbXAyCi0gICAgc3VicCBzcCwgdGVtcDIsIHRlbXAxCisgICAgbG9hZGkgUHJvdG9DYWxsRnJh
bWU6OnBhZGRlZEFyZ0NvdW50W3Byb3RvQ2FsbEZyYW1lXSwgdDQKKyAgICBhZGRwIENhbGxGcmFt
ZUhlYWRlclNsb3RzLCB0NCwgdDQKKyAgICBsc2hpZnRwIDMsIHQ0CisgICAgc3VicCBzcCwgdDQs
IHQzCiAKICAgICAjIEVuc3VyZSB0aGF0IHdlIGhhdmUgZW5vdWdoIGFkZGl0aW9uYWwgc3RhY2sg
Y2FwYWNpdHkgZm9yIHRoZSBpbmNvbWluZyBhcmdzLAogICAgICMgYW5kIHRoZSBmcmFtZSBmb3Ig
dGhlIEpTIGNvZGUgd2UncmUgZXhlY3V0aW5nLiBXZSBuZWVkIHRvIGRvIHRoaXMgY2hlY2sKICAg
ICAjIGJlZm9yZSB3ZSBzdGFydCBjb3B5aW5nIHRoZSBhcmdzIGZyb20gdGhlIHByb3RvQ2FsbEZy
YW1lIGJlbG93LgotICAgIGJwYWVxIHRlbXAxLCBWTTo6bV9qc1N0YWNrTGltaXRbdm1dLCAuc3Rh
Y2tIZWlnaHRPSworICAgIGJwYWVxIHQzLCBWTTo6bV9qc1N0YWNrTGltaXRbdm1dLCAuc3RhY2tI
ZWlnaHRPSwogCiAgICAgaWYgQ19MT09QCi0gICAgICAgIG1vdmUgZW50cnksIHRlbXAyCi0gICAg
ICAgIG1vdmUgdm0sIHRlbXAzCi0gICAgICAgIGNsb29wQ2FsbFNsb3dQYXRoIF9sbGludF9zdGFj
a19jaGVja19hdF92bV9lbnRyeSwgdm0sIHRlbXAxCisgICAgICAgIG1vdmUgZW50cnksIHQ0Cisg
ICAgICAgIG1vdmUgdm0sIHQ1CisgICAgICAgIGNsb29wQ2FsbFNsb3dQYXRoIF9sbGludF9zdGFj
a19jaGVja19hdF92bV9lbnRyeSwgdm0sIHQzCiAgICAgICAgIGJwZXEgdDAsIDAsIC5zdGFja0No
ZWNrRmFpbGVkCi0gICAgICAgIG1vdmUgdGVtcDIsIGVudHJ5Ci0gICAgICAgIG1vdmUgdGVtcDMs
IHZtCisgICAgICAgIG1vdmUgdDQsIGVudHJ5CisgICAgICAgIG1vdmUgdDUsIHZtCiAgICAgICAg
IGptcCAuc3RhY2tIZWlnaHRPSwogCiAuc3RhY2tDaGVja0ZhaWxlZDoKLSAgICAgICAgbW92ZSB0
ZW1wMiwgZW50cnkKLSAgICAgICAgbW92ZSB0ZW1wMywgdm0KKyAgICAgICAgbW92ZSB0NCwgZW50
cnkKKyAgICAgICAgbW92ZSB0NSwgdm0KICAgICBlbmQKIAogICAgIHN1YnAgOCwgc3AgIyBBbGln
biBzdGFjayBmb3IgY0NhbGwyKCkgdG8gbWFrZSBhIGNhbGwuCi0gICAgY0NhbGwyKF9sbGludF90
aHJvd19zdGFja19vdmVyZmxvd19lcnJvciwgdm0sIHByb3RvQ2FsbEZyYW1lKQorICAgIG1vdmUg
dm0sIGEwCisgICAgbW92ZSBwcm90b0NhbGxGcmFtZSwgYTEKKyAgICBjQ2FsbDIoX2xsaW50X3Ro
cm93X3N0YWNrX292ZXJmbG93X2Vycm9yKQogCiAgICAgaWYgQVJNdjcKLSAgICAgICAgdm1FbnRy
eVJlY29yZChjZnIsIHRlbXAxKQotICAgICAgICBtb3ZlIHRlbXAxLCBzcAorICAgICAgICB2bUVu
dHJ5UmVjb3JkKGNmciwgdDMpCisgICAgICAgIG1vdmUgdDMsIHNwCiAgICAgZWxzZQogICAgICAg
ICB2bUVudHJ5UmVjb3JkKGNmciwgc3ApCiAgICAgZW5kCiAKLSAgICBsb2FkcCBWTUVudHJ5UmVj
b3JkOjptX3ZtW3NwXSwgdGVtcDMKLSAgICBsb2FkcCBWTUVudHJ5UmVjb3JkOjptX3ByZXZUb3BD
YWxsRnJhbWVbc3BdLCB0ZW1wNAotICAgIHN0b3JlcCB0ZW1wNCwgVk06OnRvcENhbGxGcmFtZVt0
ZW1wM10KLSAgICBsb2FkcCBWTUVudHJ5UmVjb3JkOjptX3ByZXZUb3BWTUVudHJ5RnJhbWVbc3Bd
LCB0ZW1wNAotICAgIHN0b3JlcCB0ZW1wNCwgVk06OnRvcFZNRW50cnlGcmFtZVt0ZW1wM10KKyAg
ICBsb2FkcCBWTUVudHJ5UmVjb3JkOjptX3ZtW3NwXSwgdDUKKyAgICBsb2FkcCBWTUVudHJ5UmVj
b3JkOjptX3ByZXZUb3BDYWxsRnJhbWVbc3BdLCB0NAorICAgIHN0b3JlcCB0NCwgVk06OnRvcENh
bGxGcmFtZVt0NV0KKyAgICBsb2FkcCBWTUVudHJ5UmVjb3JkOjptX3ByZXZUb3BWTUVudHJ5RnJh
bWVbc3BdLCB0NAorICAgIHN0b3JlcCB0NCwgVk06OnRvcFZNRW50cnlGcmFtZVt0NV0KIAogICAg
IGlmIEFSTXY3Ci0gICAgICAgIHN1YnAgY2ZyLCBDYWxsZWVSZWdpc3RlclNhdmVTaXplLCB0ZW1w
MwotICAgICAgICBtb3ZlIHRlbXAzLCBzcAorICAgICAgICBzdWJwIGNmciwgQ2FsbGVlUmVnaXN0
ZXJTYXZlU2l6ZSwgdDUKKyAgICAgICAgbW92ZSB0NSwgc3AKICAgICBlbHNlCiAgICAgICAgIHN1
YnAgY2ZyLCBDYWxsZWVSZWdpc3RlclNhdmVTaXplLCBzcAogICAgIGVuZApAQCAtMjg3LDYzICsx
OTgsNjMgQEAgbWFjcm8gZG9WTUVudHJ5KG1ha2VDYWxsKQogICAgIHJldAogCiAuc3RhY2tIZWln
aHRPSzoKLSAgICBtb3ZlIHRlbXAxLCBzcAotICAgIG1vdmUgNCwgdGVtcDEKKyAgICBtb3ZlIHQz
LCBzcAorICAgIG1vdmUgNCwgdDMKIAogLmNvcHlIZWFkZXJMb29wOgotICAgIHN1YmkgMSwgdGVt
cDEKLSAgICBsb2FkaSBUYWdPZmZzZXRbcHJvdG9DYWxsRnJhbWUsIHRlbXAxLCA4XSwgdGVtcDMK
LSAgICBzdG9yZWkgdGVtcDMsIFRhZ09mZnNldCArIENvZGVCbG9ja1tzcCwgdGVtcDEsIDhdCi0g
ICAgbG9hZGkgUGF5bG9hZE9mZnNldFtwcm90b0NhbGxGcmFtZSwgdGVtcDEsIDhdLCB0ZW1wMwot
ICAgIHN0b3JlaSB0ZW1wMywgUGF5bG9hZE9mZnNldCArIENvZGVCbG9ja1tzcCwgdGVtcDEsIDhd
Ci0gICAgYnRpbnogdGVtcDEsIC5jb3B5SGVhZGVyTG9vcAotCi0gICAgbG9hZGkgUGF5bG9hZE9m
ZnNldCArIFByb3RvQ2FsbEZyYW1lOjphcmdDb3VudEFuZENvZGVPcmlnaW5WYWx1ZVtwcm90b0Nh
bGxGcmFtZV0sIHRlbXAyCi0gICAgc3ViaSAxLCB0ZW1wMgotICAgIGxvYWRpIFByb3RvQ2FsbEZy
YW1lOjpwYWRkZWRBcmdDb3VudFtwcm90b0NhbGxGcmFtZV0sIHRlbXAzCi0gICAgc3ViaSAxLCB0
ZW1wMwotCi0gICAgYmllcSB0ZW1wMiwgdGVtcDMsIC5jb3B5QXJncworICAgIHN1YmkgMSwgdDMK
KyAgICBsb2FkaSBUYWdPZmZzZXRbcHJvdG9DYWxsRnJhbWUsIHQzLCA4XSwgdDUKKyAgICBzdG9y
ZWkgdDUsIFRhZ09mZnNldCArIENvZGVCbG9ja1tzcCwgdDMsIDhdCisgICAgbG9hZGkgUGF5bG9h
ZE9mZnNldFtwcm90b0NhbGxGcmFtZSwgdDMsIDhdLCB0NQorICAgIHN0b3JlaSB0NSwgUGF5bG9h
ZE9mZnNldCArIENvZGVCbG9ja1tzcCwgdDMsIDhdCisgICAgYnRpbnogdDMsIC5jb3B5SGVhZGVy
TG9vcAorCisgICAgbG9hZGkgUGF5bG9hZE9mZnNldCArIFByb3RvQ2FsbEZyYW1lOjphcmdDb3Vu
dEFuZENvZGVPcmlnaW5WYWx1ZVtwcm90b0NhbGxGcmFtZV0sIHQ0CisgICAgc3ViaSAxLCB0NAor
ICAgIGxvYWRpIFByb3RvQ2FsbEZyYW1lOjpwYWRkZWRBcmdDb3VudFtwcm90b0NhbGxGcmFtZV0s
IHQ1CisgICAgc3ViaSAxLCB0NQorCisgICAgYmllcSB0NCwgdDUsIC5jb3B5QXJncwogLmZpbGxF
eHRyYUFyZ3NMb29wOgotICAgIHN1YmkgMSwgdGVtcDMKLSAgICBzdG9yZWkgVW5kZWZpbmVkVGFn
LCBUaGlzQXJndW1lbnRPZmZzZXQgKyA4ICsgVGFnT2Zmc2V0W3NwLCB0ZW1wMywgOF0KLSAgICBz
dG9yZWkgMCwgVGhpc0FyZ3VtZW50T2Zmc2V0ICsgOCArIFBheWxvYWRPZmZzZXRbc3AsIHRlbXAz
LCA4XQotICAgIGJpbmVxIHRlbXAyLCB0ZW1wMywgLmZpbGxFeHRyYUFyZ3NMb29wCisgICAgc3Vi
aSAxLCB0NQorICAgIHN0b3JlaSBVbmRlZmluZWRUYWcsIFRoaXNBcmd1bWVudE9mZnNldCArIDgg
KyBUYWdPZmZzZXRbc3AsIHQ1LCA4XQorICAgIHN0b3JlaSAwLCBUaGlzQXJndW1lbnRPZmZzZXQg
KyA4ICsgUGF5bG9hZE9mZnNldFtzcCwgdDUsIDhdCisgICAgYmluZXEgdDQsIHQ1LCAuZmlsbEV4
dHJhQXJnc0xvb3AKIAogLmNvcHlBcmdzOgotICAgIGxvYWRwIFByb3RvQ2FsbEZyYW1lOjphcmdz
W3Byb3RvQ2FsbEZyYW1lXSwgdGVtcDEKKyAgICBsb2FkcCBQcm90b0NhbGxGcmFtZTo6YXJnc1tw
cm90b0NhbGxGcmFtZV0sIHQzCiAKIC5jb3B5QXJnc0xvb3A6Ci0gICAgYnRpeiB0ZW1wMiwgLmNv
cHlBcmdzRG9uZQotICAgIHN1YmkgMSwgdGVtcDIKLSAgICBsb2FkaSBUYWdPZmZzZXRbdGVtcDEs
IHRlbXAyLCA4XSwgdGVtcDMKLSAgICBzdG9yZWkgdGVtcDMsIFRoaXNBcmd1bWVudE9mZnNldCAr
IDggKyBUYWdPZmZzZXRbc3AsIHRlbXAyLCA4XQotICAgIGxvYWRpIFBheWxvYWRPZmZzZXRbdGVt
cDEsIHRlbXAyLCA4XSwgdGVtcDMKLSAgICBzdG9yZWkgdGVtcDMsIFRoaXNBcmd1bWVudE9mZnNl
dCArIDggKyBQYXlsb2FkT2Zmc2V0W3NwLCB0ZW1wMiwgOF0KKyAgICBidGl6IHQ0LCAuY29weUFy
Z3NEb25lCisgICAgc3ViaSAxLCB0NAorICAgIGxvYWRpIFRhZ09mZnNldFt0MywgdDQsIDhdLCB0
NQorICAgIHN0b3JlaSB0NSwgVGhpc0FyZ3VtZW50T2Zmc2V0ICsgOCArIFRhZ09mZnNldFtzcCwg
dDQsIDhdCisgICAgbG9hZGkgUGF5bG9hZE9mZnNldFt0MywgdDQsIDhdLCB0NQorICAgIHN0b3Jl
aSB0NSwgVGhpc0FyZ3VtZW50T2Zmc2V0ICsgOCArIFBheWxvYWRPZmZzZXRbc3AsIHQ0LCA4XQog
ICAgIGptcCAuY29weUFyZ3NMb29wCiAKIC5jb3B5QXJnc0RvbmU6CiAgICAgc3RvcmVwIHNwLCBW
TTo6dG9wQ2FsbEZyYW1lW3ZtXQogICAgIHN0b3JlcCBjZnIsIFZNOjp0b3BWTUVudHJ5RnJhbWVb
dm1dCiAKLSAgICBtYWtlQ2FsbChlbnRyeSwgdGVtcDEsIHRlbXAyKQorICAgIG1ha2VDYWxsKGVu
dHJ5LCB0MywgdDQpCiAKICAgICBpZiBBUk12NwotICAgICAgICB2bUVudHJ5UmVjb3JkKGNmciwg
dGVtcDEpCi0gICAgICAgIG1vdmUgdGVtcDEsIHNwCisgICAgICAgIHZtRW50cnlSZWNvcmQoY2Zy
LCB0MykKKyAgICAgICAgbW92ZSB0Mywgc3AKICAgICBlbHNlCiAgICAgICAgIHZtRW50cnlSZWNv
cmQoY2ZyLCBzcCkKICAgICBlbmQKIAotICAgIGxvYWRwIFZNRW50cnlSZWNvcmQ6Om1fdm1bc3Bd
LCB0ZW1wMwotICAgIGxvYWRwIFZNRW50cnlSZWNvcmQ6Om1fcHJldlRvcENhbGxGcmFtZVtzcF0s
IHRlbXA0Ci0gICAgc3RvcmVwIHRlbXA0LCBWTTo6dG9wQ2FsbEZyYW1lW3RlbXAzXQotICAgIGxv
YWRwIFZNRW50cnlSZWNvcmQ6Om1fcHJldlRvcFZNRW50cnlGcmFtZVtzcF0sIHRlbXA0Ci0gICAg
c3RvcmVwIHRlbXA0LCBWTTo6dG9wVk1FbnRyeUZyYW1lW3RlbXAzXQorICAgIGxvYWRwIFZNRW50
cnlSZWNvcmQ6Om1fdm1bc3BdLCB0NQorICAgIGxvYWRwIFZNRW50cnlSZWNvcmQ6Om1fcHJldlRv
cENhbGxGcmFtZVtzcF0sIHQ0CisgICAgc3RvcmVwIHQ0LCBWTTo6dG9wQ2FsbEZyYW1lW3Q1XQor
ICAgIGxvYWRwIFZNRW50cnlSZWNvcmQ6Om1fcHJldlRvcFZNRW50cnlGcmFtZVtzcF0sIHQ0Cisg
ICAgc3RvcmVwIHQ0LCBWTTo6dG9wVk1FbnRyeUZyYW1lW3Q1XQogCiAgICAgaWYgQVJNdjcKLSAg
ICAgICAgc3VicCBjZnIsIENhbGxlZVJlZ2lzdGVyU2F2ZVNpemUsIHRlbXAzCi0gICAgICAgIG1v
dmUgdGVtcDMsIHNwCisgICAgICAgIHN1YnAgY2ZyLCBDYWxsZWVSZWdpc3RlclNhdmVTaXplLCB0
NQorICAgICAgICBtb3ZlIHQ1LCBzcAogICAgIGVsc2UKICAgICAgICAgc3VicCBjZnIsIENhbGxl
ZVJlZ2lzdGVyU2F2ZVNpemUsIHNwCiAgICAgZW5kCkBAIC0zNTUsMTMgKzI2NiwxMyBAQCBlbmQK
IAogbWFjcm8gbWFrZUphdmFTY3JpcHRDYWxsKGVudHJ5LCB0ZW1wLCB1bnVzZWQpCiAgICAgYWRk
cCBDYWxsZXJGcmFtZUFuZFBDU2l6ZSwgc3AKLSAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVu
dCh0MiwgMHhiYWQwZGMwMikKKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCh0ZW1wLCAw
eGJhZDBkYzAyKQogICAgIGlmIENfTE9PUAogICAgICAgICBjbG9vcENhbGxKU0Z1bmN0aW9uIGVu
dHJ5CiAgICAgZWxzZQogICAgICAgICBjYWxsIGVudHJ5CiAgICAgZW5kCi0gICAgY2hlY2tTdGFj
a1BvaW50ZXJBbGlnbm1lbnQodDIsIDB4YmFkMGRjMDMpCisgICAgY2hlY2tTdGFja1BvaW50ZXJB
bGlnbm1lbnQodGVtcCwgMHhiYWQwZGMwMykKICAgICBzdWJwIENhbGxlckZyYW1lQW5kUENTaXpl
LCBzcAogZW5kCiAKQEAgLTM3Niw5ICsyODcsOSBAQCBtYWNybyBtYWtlSG9zdEZ1bmN0aW9uQ2Fs
bChlbnRyeSwgdGVtcDEsIHRlbXAyKQogICAgICAgICAjIFB1dCBjYWxsZWUgZnJhbWUgcG9pbnRl
ciBvbiBzdGFjayBhcyBhcmcwLCBhbHNvIHB1dCBpdCBpbiBlY3ggZm9yICJmYXN0Y2FsbCIgdGFy
Z2V0cwogICAgICAgICBtb3ZlIDAsIHRlbXAyCiAgICAgICAgIG1vdmUgdGVtcDIsIDRbc3BdICMg
cHV0IDAgaW4gUmV0dXJuUEMKLSAgICAgICAgbW92ZSBzcCwgdDIgIyB0MiBpcyBlY3gKKyAgICAg
ICAgbW92ZSBzcCwgYTAgIyBhMCBpcyBlY3gKICAgICAgICAgcHVzaCB0ZW1wMiAjIFB1c2ggZHVt
bXkgYXJnMQotICAgICAgICBwdXNoIHQyCisgICAgICAgIHB1c2ggYTAKICAgICAgICAgY2FsbCB0
ZW1wMQogICAgICAgICBhZGRwIDgsIHNwCiAgICAgZWxzZQpAQCAtNDI5LDMxICszNDAsNDMgQEAg
ZW5kCiAjIGRlYnVnZ2luZyBmcm9tLiBvcGVyYW5kIHNob3VsZCBsaWtld2lzZSBiZSBhbiBpbW1l
ZGlhdGUsIGFuZCBzaG91bGQgaWRlbnRpZnkgdGhlIG9wZXJhbmQKICMgaW4gdGhlIGluc3RydWN0
aW9uIHN0cmVhbSB5b3UnZCBsaWtlIHRvIHByaW50IG91dC4KIG1hY3JvIHRyYWNlT3BlcmFuZChm
cm9tV2hlcmUsIG9wZXJhbmQpCi0gICAgY0NhbGw0KF9sbGludF90cmFjZV9vcGVyYW5kLCBjZnIs
IFBDLCBmcm9tV2hlcmUsIG9wZXJhbmQpCi0gICAgbW92ZSB0MCwgUEMKLSAgICBtb3ZlIHQxLCBj
ZnIKKyAgICBtb3ZlIGZyb21XaGVyZSwgYTIKKyAgICBtb3ZlIG9wZXJhbmQsIGEzCisgICAgbW92
ZSBjZnIsIGEwCisgICAgbW92ZSBQQywgYTEKKyAgICBjQ2FsbDQoX2xsaW50X3RyYWNlX29wZXJh
bmQpCisgICAgbW92ZSByMCwgUEMKKyAgICBtb3ZlIHIxLCBjZnIKIGVuZAogCiAjIERlYnVnZ2lu
ZyBvcGVyYXRpb24gaWYgeW91J2QgbGlrZSB0byBwcmludCB0aGUgdmFsdWUgb2YgYW4gb3BlcmFu
ZCBpbiB0aGUgaW5zdHJ1Y3Rpb24KICMgc3RyZWFtLiBTYW1lIGFzIHRyYWNlT3BlcmFuZCgpLCBi
dXQgYXNzdW1lcyB0aGF0IHRoZSBvcGVyYW5kIGlzIGEgcmVnaXN0ZXIsIGFuZCBwcmludHMgaXRz
CiAjIHZhbHVlLgogbWFjcm8gdHJhY2VWYWx1ZShmcm9tV2hlcmUsIG9wZXJhbmQpCi0gICAgY0Nh
bGw0KF9sbGludF90cmFjZV92YWx1ZSwgY2ZyLCBQQywgZnJvbVdoZXJlLCBvcGVyYW5kKQotICAg
IG1vdmUgdDAsIFBDCi0gICAgbW92ZSB0MSwgY2ZyCisgICAgbW92ZSBmcm9tV2hlcmUsIGEyCisg
ICAgbW92ZSBvcGVyYW5kLCBhMworICAgIG1vdmUgY2ZyLCBhMAorICAgIG1vdmUgUEMsIGExCisg
ICAgY0NhbGw0KF9sbGludF90cmFjZV92YWx1ZSkKKyAgICBtb3ZlIHIwLCBQQworICAgIG1vdmUg
cjEsIGNmcgogZW5kCiAKICMgQ2FsbCBhIHNsb3dQYXRoIGZvciBjYWxsIG9wY29kZXMuCiBtYWNy
byBjYWxsQ2FsbFNsb3dQYXRoKHNsb3dQYXRoLCBhY3Rpb24pCiAgICAgc3RvcmVwIFBDLCBBcmd1
bWVudENvdW50ICsgVGFnT2Zmc2V0W2Nmcl0KLSAgICBjQ2FsbDIoc2xvd1BhdGgsIGNmciwgUEMp
Ci0gICAgYWN0aW9uKHQwKQorICAgIG1vdmUgY2ZyLCBhMAorICAgIG1vdmUgUEMsIGExCisgICAg
Y0NhbGwyKHNsb3dQYXRoKQorICAgIGFjdGlvbihyMCwgcjEpCiBlbmQKIAogbWFjcm8gY2FsbFdh
dGNoZG9nVGltZXJIYW5kbGVyKHRocm93SGFuZGxlcikKICAgICBzdG9yZWkgUEMsIEFyZ3VtZW50
Q291bnQgKyBUYWdPZmZzZXRbY2ZyXQotICAgIGNDYWxsMihfbGxpbnRfc2xvd19wYXRoX2hhbmRs
ZV93YXRjaGRvZ190aW1lciwgY2ZyLCBQQykKLSAgICBidHBueiB0MCwgdGhyb3dIYW5kbGVyCisg
ICAgbW92ZSBjZnIsIGEwCisgICAgbW92ZSBQQywgYTEKKyAgICBjQ2FsbDIoX2xsaW50X3Nsb3df
cGF0aF9oYW5kbGVfd2F0Y2hkb2dfdGltZXIpCisgICAgYnRwbnogcjAsIHRocm93SGFuZGxlcgog
ICAgIGxvYWRpIEFyZ3VtZW50Q291bnQgKyBUYWdPZmZzZXRbY2ZyXSwgUEMKIGVuZAogCkBAIC00
NjIsMTAgKzM4NSwxMiBAQCBtYWNybyBjaGVja1N3aXRjaFRvSklURm9yTG9vcCgpCiAgICAgICAg
IDEsCiAgICAgICAgIG1hY3JvICgpCiAgICAgICAgICAgICBzdG9yZWkgUEMsIEFyZ3VtZW50Q291
bnQgKyBUYWdPZmZzZXRbY2ZyXQotICAgICAgICAgICAgY0NhbGwyKF9sbGludF9sb29wX29zciwg
Y2ZyLCBQQykKLSAgICAgICAgICAgIGJ0cHogdDAsIC5yZWNvdmVyCi0gICAgICAgICAgICBtb3Zl
IHQxLCBzcAotICAgICAgICAgICAgam1wIHQwCisgICAgICAgICAgICBtb3ZlIGNmciwgYTAKKyAg
ICAgICAgICAgIG1vdmUgUEMsIGExCisgICAgICAgICAgICBjQ2FsbDIoX2xsaW50X2xvb3Bfb3Ny
KQorICAgICAgICAgICAgYnRweiByMCwgLnJlY292ZXIKKyAgICAgICAgICAgIG1vdmUgcjEsIHNw
CisgICAgICAgICAgICBqbXAgcjAKICAgICAgICAgLnJlY292ZXI6CiAgICAgICAgICAgICBsb2Fk
aSBBcmd1bWVudENvdW50ICsgVGFnT2Zmc2V0W2Nmcl0sIFBDCiAgICAgICAgIGVuZCkKQEAgLTU3
Niw3ICs1MDEsOSBAQCBtYWNybyB3cml0ZUJhcnJpZXJPbk9wZXJhbmQoY2VsbE9wZXJhbmQpCiAg
ICAgICAgICAgICAgICAgcHVzaCBjZnIsIFBDCiAgICAgICAgICAgICAgICAgIyBXZSBtYWtlIHR3
byBleHRyYSBzbG90cyBiZWNhdXNlIGNDYWxsMiB3aWxsIHBva2UuCiAgICAgICAgICAgICAgICAg
c3VicCA4LCBzcAotICAgICAgICAgICAgICAgIGNDYWxsMlZvaWQoX2xsaW50X3dyaXRlX2JhcnJp
ZXJfc2xvdywgY2ZyLCB0MikKKyAgICAgICAgICAgICAgICBtb3ZlIHQyLCBhMSAjIHQyIGNhbiBi
ZSBhMCBvbiB4ODYKKyAgICAgICAgICAgICAgICBtb3ZlIGNmciwgYTAKKyAgICAgICAgICAgICAg
ICBjQ2FsbDJWb2lkKF9sbGludF93cml0ZV9iYXJyaWVyX3Nsb3cpCiAgICAgICAgICAgICAgICAg
YWRkcCA4LCBzcAogICAgICAgICAgICAgICAgIHBvcCBQQywgY2ZyCiAgICAgICAgICAgICBlbmQK
QEAgLTYxMCw3ICs1MzcsOSBAQCBtYWNybyB3cml0ZUJhcnJpZXJPbkdsb2JhbE9iamVjdCh2YWx1
ZU9wZXJhbmQpCiAgICAgICAgICAgICAgICAgcHVzaCBjZnIsIFBDCiAgICAgICAgICAgICAgICAg
IyBXZSBtYWtlIHR3byBleHRyYSBzbG90cyBiZWNhdXNlIGNDYWxsMiB3aWxsIHBva2UuCiAgICAg
ICAgICAgICAgICAgc3VicCA4LCBzcAotICAgICAgICAgICAgICAgIGNDYWxsMlZvaWQoX2xsaW50
X3dyaXRlX2JhcnJpZXJfc2xvdywgY2ZyLCB0MykKKyAgICAgICAgICAgICAgICBtb3ZlIGNmciwg
YTAKKyAgICAgICAgICAgICAgICBtb3ZlIHQzLCBhMQorICAgICAgICAgICAgICAgIGNDYWxsMlZv
aWQoX2xsaW50X3dyaXRlX2JhcnJpZXJfc2xvdykKICAgICAgICAgICAgICAgICBhZGRwIDgsIHNw
CiAgICAgICAgICAgICAgICAgcG9wIFBDLCBjZnIKICAgICAgICAgICAgIGVuZApAQCAtNjMyLDE5
ICs1NjEsMjEgQEAgZW5kCiBtYWNybyBmdW5jdGlvbkFyaXR5Q2hlY2soZG9uZUxhYmVsLCBzbG93
UGF0aCkKICAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0ICsgQXJndW1lbnRDb3VudFtjZnJdLCB0MAog
ICAgIGJpYWVxIHQwLCBDb2RlQmxvY2s6Om1fbnVtUGFyYW1ldGVyc1t0MV0sIGRvbmVMYWJlbAot
ICAgIGNDYWxsMihzbG93UGF0aCwgY2ZyLCBQQykgICAjIFRoaXMgc2xvd1BhdGggaGFzIGEgc2lt
cGxlIHByb3RvY29sOiB0MCA9IDAgPT4gbm8gZXJyb3IsIHQwICE9IDAgPT4gZXJyb3IKLSAgICBi
dGl6IHQwLCAubm9FcnJvcgotICAgIG1vdmUgdDEsIGNmciAgICMgdDEgY29udGFpbnMgY2FsbGVy
IGZyYW1lCisgICAgbW92ZSBjZnIsIGEwCisgICAgbW92ZSBQQywgYTEKKyAgICBjQ2FsbDIoc2xv
d1BhdGgpICAgIyBUaGlzIHNsb3dQYXRoIGhhcyBhIHNpbXBsZSBwcm90b2NvbDogdDAgPSAwID0+
IG5vIGVycm9yLCB0MCAhPSAwID0+IGVycm9yCisgICAgYnRpeiByMCwgLm5vRXJyb3IKKyAgICBt
b3ZlIHIxLCBjZnIgICAjIHIxIGNvbnRhaW5zIGNhbGxlciBmcmFtZQogICAgIGptcCBfbGxpbnRf
dGhyb3dfZnJvbV9zbG93X3BhdGhfdHJhbXBvbGluZQogCiAubm9FcnJvcjoKLSAgICAjIHQxIHBv
aW50cyB0byBBcml0eUNoZWNrRGF0YS4KLSAgICBsb2FkcCBDb21tb25TbG93UGF0aHM6OkFyaXR5
Q2hlY2tEYXRhOjp0aHVua1RvQ2FsbFt0MV0sIHQyCi0gICAgYnRweiB0MiwgLnByb2NlZWRJbmxp
bmUKKyAgICAjIHIxIHBvaW50cyB0byBBcml0eUNoZWNrRGF0YS4KKyAgICBsb2FkcCBDb21tb25T
bG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRhOjp0aHVua1RvQ2FsbFtyMV0sIHQzCisgICAgYnRweiB0
MywgLnByb2NlZWRJbmxpbmUKICAgICAKLSAgICBsb2FkcCBDb21tb25TbG93UGF0aHM6OkFyaXR5
Q2hlY2tEYXRhOjpyZXR1cm5QQ1t0MV0sIHQ1Ci0gICAgbG9hZHAgQ29tbW9uU2xvd1BhdGhzOjpB
cml0eUNoZWNrRGF0YTo6cGFkZGVkU3RhY2tTcGFjZVt0MV0sIHQwCi0gICAgY2FsbCB0MgorICAg
IGxvYWRwIENvbW1vblNsb3dQYXRoczo6QXJpdHlDaGVja0RhdGE6OnBhZGRlZFN0YWNrU3BhY2Vb
cjFdLCBhMAorICAgIGxvYWRwIENvbW1vblNsb3dQYXRoczo6QXJpdHlDaGVja0RhdGE6OnJldHVy
blBDW3IxXSwgYTEKKyAgICBjYWxsIHQzCiAgICAgaWYgQVNTRVJUX0VOQUJMRUQKICAgICAgICAg
bG9hZHAgUmV0dXJuUENbY2ZyXSwgdDAKICAgICAgICAgbG9hZHAgW3QwXSwgdDAKQEAgLTY1Miw3
ICs1ODMsNyBAQCBtYWNybyBmdW5jdGlvbkFyaXR5Q2hlY2soZG9uZUxhYmVsLCBzbG93UGF0aCkK
ICAgICBqbXAgLmNvbnRpbnVlCiAKIC5wcm9jZWVkSW5saW5lOgotICAgIGxvYWRpIENvbW1vblNs
b3dQYXRoczo6QXJpdHlDaGVja0RhdGE6OnBhZGRlZFN0YWNrU3BhY2VbdDFdLCB0MQorICAgIGxv
YWRpIENvbW1vblNsb3dQYXRoczo6QXJpdHlDaGVja0RhdGE6OnBhZGRlZFN0YWNrU3BhY2VbcjFd
LCB0MQogICAgIGJ0aXogdDEsIC5jb250aW51ZQogCiAgICAgLy8gTW92ZSBmcmFtZSB1cCAidDEg
KiAyIiBzbG90cwpAQCAtMjAwNSw4ICsxOTM2LDggQEAgbWFjcm8gbmF0aXZlQ2FsbFRyYW1wb2xp
bmUoZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb24pCiAgICAgICAgIGFuZHAgTWFya2VkQmxvY2tN
YXNrLCB0MQogICAgICAgICBsb2FkcCBNYXJrZWRCbG9jazo6bV93ZWFrU2V0ICsgV2Vha1NldDo6
bV92bVt0MV0sIHQzCiAgICAgICAgIHN0b3JlcCBjZnIsIFZNOjp0b3BDYWxsRnJhbWVbdDNdCi0g
ICAgICAgIG1vdmUgY2ZyLCB0MiAgIyB0MiA9IGVjeAotICAgICAgICBzdG9yZXAgdDIsIFtzcF0K
KyAgICAgICAgbW92ZSBjZnIsIGEwICAjIGEwID0gZWN4CisgICAgICAgIHN0b3JlcCBhMCwgW3Nw
XQogICAgICAgICBsb2FkaSBDYWxsZWUgKyBQYXlsb2FkT2Zmc2V0W2Nmcl0sIHQxCiAgICAgICAg
IGxvYWRwIEpTRnVuY3Rpb246Om1fZXhlY3V0YWJsZVt0MV0sIHQxCiAgICAgICAgIGNoZWNrU3Rh
Y2tQb2ludGVyQWxpZ25tZW50KHQzLCAweGRlYWQwMDAxKQpAQCAtMjAyMSwxMSArMTk1Miw3IEBA
IG1hY3JvIG5hdGl2ZUNhbGxUcmFtcG9saW5lKGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uKQog
ICAgICAgICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDEKICAgICAgICAgbG9hZHAgTWFya2VkQmxv
Y2s6Om1fd2Vha1NldCArIFdlYWtTZXQ6Om1fdm1bdDFdLCB0MQogICAgICAgICBzdG9yZXAgY2Zy
LCBWTTo6dG9wQ2FsbEZyYW1lW3QxXQotICAgICAgICBpZiBNSVBTIG9yIFNINAotICAgICAgICAg
ICAgbW92ZSBjZnIsIGEwCi0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1vdmUgY2ZyLCB0MAot
ICAgICAgICBlbmQKKyAgICAgICAgbW92ZSBjZnIsIGEwCiAgICAgICAgIGxvYWRpIENhbGxlZSAr
IFBheWxvYWRPZmZzZXRbY2ZyXSwgdDEKICAgICAgICAgbG9hZHAgSlNGdW5jdGlvbjo6bV9leGVj
dXRhYmxlW3QxXSwgdDEKICAgICAgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodDMsIDB4
ZGVhZDAwMDEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2
ZWxJbnRlcnByZXRlcjY0LmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZl
bEludGVycHJldGVyNjQuYXNtCmluZGV4IDQzZTk5N2I5MWI1MDE5ODgyMWIxZjk5Zjk2ZjU2ZjY2
YjkwYzMyNWYuLmJhMDJlMWI5OTk5OGY2NGUyNzkyMzFmMGM0MmE5YjcyZGJlZjk0M2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQu
YXNtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVy
NjQuYXNtCkBAIC00NiwxNzcgKzQ2LDEyNyBAQCBtYWNybyBkaXNwYXRjaEFmdGVyQ2FsbCgpCiAg
ICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIFBCCiAgICAgbG9hZHAgQ29kZUJsb2NrOjptX2luc3Ry
dWN0aW9uc1tQQl0sIFBCCiAgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDEsIHQxKQotICAgIHN0
b3JlcSB0MCwgW2NmciwgdDEsIDhdCi0gICAgdmFsdWVQcm9maWxlKHQwLCAoQ2FsbE9wQ29kZVNp
emUgLSAxKSwgdDIpCisgICAgc3RvcmVxIHIwLCBbY2ZyLCB0MSwgOF0KKyAgICB2YWx1ZVByb2Zp
bGUocjAsIChDYWxsT3BDb2RlU2l6ZSAtIDEpLCB0MykKICAgICBkaXNwYXRjaChDYWxsT3BDb2Rl
U2l6ZSkKIGVuZAogCi1tYWNybyBjQ2FsbDIoZnVuY3Rpb24sIGFyZzEsIGFyZzIpCittYWNybyBj
Q2FsbDIoZnVuY3Rpb24pCiAgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodDQsIDB4YmFk
MGMwMDIpCi0gICAgaWYgWDg2XzY0Ci0gICAgICAgIG1vdmUgYXJnMSwgdDQKLSAgICAgICAgbW92
ZSBhcmcyLCB0NQorICAgIGlmIFg4Nl82NCBvciBBUk02NAogICAgICAgICBjYWxsIGZ1bmN0aW9u
CiAgICAgZWxzaWYgWDg2XzY0X1dJTgogICAgICAgICAjIE5vdGU6IHRoaXMgaW1wbGVtZW50YXRp
b24gaXMgb25seSBjb3JyZWN0IGlmIHRoZSByZXR1cm4gdHlwZSBzaXplIGlzID4gOCBieXRlcy4K
ICAgICAgICAgIyBTZWUgbWFjcm8gY0NhbGwyVm9pZCBmb3IgYW4gaW1wbGVtZW50YXRpb24gd2hl
biB0aGUgcmV0dXJuIHR5cGUgPD0gOCBieXRlcy4KICAgICAgICAgIyBPbiBXaW42NCwgd2hlbiB0
aGUgcmV0dXJuIHR5cGUgaXMgbGFyZ2VyIHRoYW4gOCBieXRlcywgd2UgbmVlZCB0byBhbGxvY2F0
ZSBzcGFjZSBvbiB0aGUgc3RhY2sgZm9yIHRoZSByZXR1cm4gdmFsdWUuCi0gICAgICAgICMgT24g
ZW50cnkgcmN4ICh0MiksIHNob3VsZCBjb250YWluIGEgcG9pbnRlciB0byB0aGlzIHN0YWNrIHNw
YWNlLiBUaGUgb3RoZXIgcGFyYW1ldGVycyBhcmUgc2hpZnRlZCB0byB0aGUgcmlnaHQsCi0gICAg
ICAgICMgcmR4ICh0MSkgc2hvdWxkIGNvbnRhaW4gdGhlIGZpcnN0IGFyZ3VtZW50LCBhbmQgcjgg
KHQ2KSBzaG91bGQgY29udGFpbiB0aGUgc2Vjb25kIGFyZ3VtZW50LgotICAgICAgICAjIE9uIHJl
dHVybiwgcmF4IGNvbnRhaW5zIGEgcG9pbnRlciB0byB0aGlzIHN0YWNrIHZhbHVlLCBhbmQgd2Ug
dGhlbiBuZWVkIHRvIGNvcHkgdGhlIDE2IGJ5dGUgcmV0dXJuIHZhbHVlIGludG8gcmF4ICh0MCkg
YW5kIHJkeCAodDEpCisgICAgICAgICMgT24gZW50cnkgcmN4IChhMCksIHNob3VsZCBjb250YWlu
IGEgcG9pbnRlciB0byB0aGlzIHN0YWNrIHNwYWNlLiBUaGUgb3RoZXIgcGFyYW1ldGVycyBhcmUg
c2hpZnRlZCB0byB0aGUgcmlnaHQsCisgICAgICAgICMgcmR4IChhMSkgc2hvdWxkIGNvbnRhaW4g
dGhlIGZpcnN0IGFyZ3VtZW50LCBhbmQgcjggKGEyKSBzaG91bGQgY29udGFpbiB0aGUgc2Vjb25k
IGFyZ3VtZW50LgorICAgICAgICAjIE9uIHJldHVybiwgcmF4IGNvbnRhaW5zIGEgcG9pbnRlciB0
byB0aGlzIHN0YWNrIHZhbHVlLCBhbmQgd2UgdGhlbiBuZWVkIHRvIGNvcHkgdGhlIDE2IGJ5dGUg
cmV0dXJuIHZhbHVlIGludG8gcmF4IChyMCkgYW5kIHJkeCAocjEpCiAgICAgICAgICMgc2luY2Ug
dGhlIHJldHVybiB2YWx1ZSBpcyBleHBlY3RlZCB0byBiZSBzcGxpdCBiZXR3ZWVuIHRoZSB0d28u
CiAgICAgICAgICMgU2VlIGh0dHA6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS83
NTcyenR6NC5hc3B4Ci0gICAgICAgIG1vdmUgYXJnMSwgdDEKLSAgICAgICAgbW92ZSBhcmcyLCB0
NgorICAgICAgICBtb3ZlIGExLCBhMgorICAgICAgICBtb3ZlIGEwLCBhMQogICAgICAgICBzdWJw
IDQ4LCBzcAotICAgICAgICBtb3ZlIHNwLCB0MgotICAgICAgICBhZGRwIDMyLCB0MgorICAgICAg
ICBtb3ZlIHNwLCBhMAorICAgICAgICBhZGRwIDMyLCBhMAogICAgICAgICBjYWxsIGZ1bmN0aW9u
CiAgICAgICAgIGFkZHAgNDgsIHNwCi0gICAgICAgIG1vdmUgOFt0MF0sIHQxCi0gICAgICAgIG1v
dmUgW3QwXSwgdDAKLSAgICBlbHNpZiBBUk02NAotICAgICAgICBtb3ZlIGFyZzEsIHQwCi0gICAg
ICAgIG1vdmUgYXJnMiwgdDEKLSAgICAgICAgY2FsbCBmdW5jdGlvbgorICAgICAgICBtb3ZlIDhb
cjBdLCByMQorICAgICAgICBtb3ZlIFtyMF0sIHIwCiAgICAgZWxzaWYgQ19MT09QCi0gICAgICAg
IGNsb29wQ2FsbFNsb3dQYXRoIGZ1bmN0aW9uLCBhcmcxLCBhcmcyCisgICAgICAgIGNsb29wQ2Fs
bFNsb3dQYXRoIGZ1bmN0aW9uLCBhMCwgYTEKICAgICBlbHNlCiAgICAgICAgIGVycm9yCiAgICAg
ZW5kCiBlbmQKIAotbWFjcm8gY0NhbGwyVm9pZChmdW5jdGlvbiwgYXJnMSwgYXJnMikKK21hY3Jv
IGNDYWxsMlZvaWQoZnVuY3Rpb24pCiAgICAgaWYgQ19MT09QCi0gICAgICAgIGNsb29wQ2FsbFNs
b3dQYXRoVm9pZCBmdW5jdGlvbiwgYXJnMSwgYXJnMgorICAgICAgICBjbG9vcENhbGxTbG93UGF0
aFZvaWQgZnVuY3Rpb24sIGEwLCBhMQogICAgIGVsc2lmIFg4Nl82NF9XSU4KICAgICAgICAgIyBO
b3RlOiB3ZSBjYW5ub3QgdXNlIHRoZSBjQ2FsbDIgbWFjcm8gZm9yIFdpbjY0IGluIHRoaXMgY2Fz
ZSwKICAgICAgICAgIyBhcyB0aGUgV2luNjQgY0NhbGwyIGltcGxlbWVuYXRpb24gaXMgb25seSBj
b3JyZWN0IHdoZW4gdGhlIHJldHVybiB0eXBlIHNpemUgaXMgPiA4IGJ5dGVzLgogICAgICAgICAj
IE9uIFdpbjY0LCByY3ggYW5kIHJkeCBhcmUgdXNlZCBmb3IgcGFzc2luZyB0aGUgZmlyc3QgdHdv
IHBhcmFtZXRlcnMuCiAgICAgICAgICMgV2UgYWxzbyBuZWVkIHRvIG1ha2Ugcm9vbSBvbiB0aGUg
c3RhY2sgZm9yIGFsbCBmb3VyIHBhcmFtZXRlciByZWdpc3RlcnMuCiAgICAgICAgICMgU2VlIGh0
dHA6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS9tczIzNTI4Ni5hc3B4Ci0gICAg
ICAgIG1vdmUgYXJnMiwgdDEKLSAgICAgICAgbW92ZSBhcmcxLCB0MgogICAgICAgICBzdWJwIDMy
LCBzcCAKICAgICAgICAgY2FsbCBmdW5jdGlvbgogICAgICAgICBhZGRwIDMyLCBzcCAKICAgICBl
bHNlCi0gICAgICAgIGNDYWxsMihmdW5jdGlvbiwgYXJnMSwgYXJnMikKKyAgICAgICAgY0NhbGwy
KGZ1bmN0aW9uKQogICAgIGVuZAogZW5kCiAKICMgVGhpcyBiYXJlbHkgd29ya3MuIGFyZzMgYW5k
IGFyZzQgc2hvdWxkIHByb2JhYmx5IGJlIGltbWVkaWF0ZXMuCi1tYWNybyBjQ2FsbDQoZnVuY3Rp
b24sIGFyZzEsIGFyZzIsIGFyZzMsIGFyZzQpCittYWNybyBjQ2FsbDQoZnVuY3Rpb24pCiAgICAg
Y2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodDQsIDB4YmFkMGMwMDQpCi0gICAgaWYgWDg2XzY0
Ci0gICAgICAgIG1vdmUgYXJnMSwgdDQKLSAgICAgICAgbW92ZSBhcmcyLCB0NQotICAgICAgICBt
b3ZlIGFyZzMsIHQxCi0gICAgICAgIG1vdmUgYXJnNCwgdDIKKyAgICBpZiBYODZfNjQgb3IgQVJN
NjQKICAgICAgICAgY2FsbCBmdW5jdGlvbgogICAgIGVsc2lmIFg4Nl82NF9XSU4KICAgICAgICAg
IyBPbiBXaW42NCwgcmN4LCByZHgsIHI4LCBhbmQgcjkgYXJlIHVzZWQgZm9yIHBhc3NpbmcgdGhl
IGZpcnN0IGZvdXIgcGFyYW1ldGVycy4KICAgICAgICAgIyBXZSBhbHNvIG5lZWQgdG8gbWFrZSBy
b29tIG9uIHRoZSBzdGFjayBmb3IgYWxsIGZvdXIgcGFyYW1ldGVyIHJlZ2lzdGVycy4KICAgICAg
ICAgIyBTZWUgaHR0cDovL21zZG4ubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L21zMjM1Mjg2
LmFzcHgKLSAgICAgICAgbW92ZSBhcmcxLCB0MgotICAgICAgICBtb3ZlIGFyZzIsIHQxCi0gICAg
ICAgIG1vdmUgYXJnMywgdDYKLSAgICAgICAgbW92ZSBhcmc0LCB0NwotICAgICAgICBzdWJwIDMy
LCBzcCAKKyAgICAgICAgc3VicCA2NCwgc3AKICAgICAgICAgY2FsbCBmdW5jdGlvbgotICAgICAg
ICBhZGRwIDMyLCBzcCAKLSAgICBlbHNpZiBBUk02NAotICAgICAgICBtb3ZlIGFyZzEsIHQwCi0g
ICAgICAgIG1vdmUgYXJnMiwgdDEKLSAgICAgICAgbW92ZSBhcmczLCB0MgotICAgICAgICBtb3Zl
IGFyZzQsIHQzCi0gICAgICAgIGNhbGwgZnVuY3Rpb24KLSAgICBlbHNpZiBDX0xPT1AKLSAgICAg
ICAgZXJyb3IKKyAgICAgICAgYWRkcCA2NCwgc3AKICAgICBlbHNlCiAgICAgICAgIGVycm9yCiAg
ICAgZW5kCiBlbmQKIAogbWFjcm8gZG9WTUVudHJ5KG1ha2VDYWxsKQotICAgIGlmIFg4Nl82NAot
ICAgICAgICBjb25zdCBlbnRyeSA9IHQ0Ci0gICAgICAgIGNvbnN0IHZtID0gdDUKLSAgICAgICAg
Y29uc3QgcHJvdG9DYWxsRnJhbWUgPSB0MQotCi0gICAgICAgIGNvbnN0IHByZXZpb3VzQ0ZSID0g
dDAKLSAgICAgICAgY29uc3QgcHJldmlvdXNQQyA9IHQ2Ci0gICAgICAgIGNvbnN0IHRlbXAxID0g
dDAKLSAgICAgICAgY29uc3QgdGVtcDIgPSB0MwotICAgICAgICBjb25zdCB0ZW1wMyA9IHQ2Ci0g
ICAgZWxzaWYgWDg2XzY0X1dJTgotICAgICAgICBjb25zdCBlbnRyeSA9IHQyCi0gICAgICAgIGNv
bnN0IHZtID0gdDEKLSAgICAgICAgY29uc3QgcHJvdG9DYWxsRnJhbWUgPSB0NgotCi0gICAgICAg
IGNvbnN0IHByZXZpb3VzQ0ZSID0gdDAKLSAgICAgICAgY29uc3QgcHJldmlvdXNQQyA9IHQ0Ci0g
ICAgICAgIGNvbnN0IHRlbXAxID0gdDAKLSAgICAgICAgY29uc3QgdGVtcDIgPSB0MwotICAgICAg
ICBjb25zdCB0ZW1wMyA9IHQ3Ci0gICAgZWxzaWYgQVJNNjQgb3IgQ19MT09QCi0gICAgICAgIGNv
bnN0IGVudHJ5ID0gYTAKLSAgICAgICAgY29uc3Qgdm0gPSBhMQotICAgICAgICBjb25zdCBwcm90
b0NhbGxGcmFtZSA9IGEyCi0KLSAgICAgICAgY29uc3QgcHJldmlvdXNDRlIgPSB0NQotICAgICAg
ICBjb25zdCBwcmV2aW91c1BDID0gbHIKLSAgICAgICAgY29uc3QgdGVtcDEgPSB0MwotICAgICAg
ICBjb25zdCB0ZW1wMiA9IHQ0Ci0gICAgICAgIGNvbnN0IHRlbXAzID0gdDYKLSAgICBlbmQKLQog
ICAgIGZ1bmN0aW9uUHJvbG9ndWUoKQogICAgIHB1c2hDYWxsZWVTYXZlcygpCiAKKyAgICBjb25z
dCBlbnRyeSA9IGEwCisgICAgY29uc3Qgdm0gPSBhMQorICAgIGNvbnN0IHByb3RvQ2FsbEZyYW1l
ID0gYTIKKwogICAgIHZtRW50cnlSZWNvcmQoY2ZyLCBzcCkKIAotICAgIGNoZWNrU3RhY2tQb2lu
dGVyQWxpZ25tZW50KHRlbXAyLCAweGJhZDBkYzAxKQorICAgIGNoZWNrU3RhY2tQb2ludGVyQWxp
Z25tZW50KHQ0LCAweGJhZDBkYzAxKQogCiAgICAgc3RvcmVwIHZtLCBWTUVudHJ5UmVjb3JkOjpt
X3ZtW3NwXQotICAgIGxvYWRwIFZNOjp0b3BDYWxsRnJhbWVbdm1dLCB0ZW1wMgotICAgIHN0b3Jl
cCB0ZW1wMiwgVk1FbnRyeVJlY29yZDo6bV9wcmV2VG9wQ2FsbEZyYW1lW3NwXQotICAgIGxvYWRw
IFZNOjp0b3BWTUVudHJ5RnJhbWVbdm1dLCB0ZW1wMgotICAgIHN0b3JlcCB0ZW1wMiwgVk1FbnRy
eVJlY29yZDo6bV9wcmV2VG9wVk1FbnRyeUZyYW1lW3NwXQorICAgIGxvYWRwIFZNOjp0b3BDYWxs
RnJhbWVbdm1dLCB0NAorICAgIHN0b3JlcCB0NCwgVk1FbnRyeVJlY29yZDo6bV9wcmV2VG9wQ2Fs
bEZyYW1lW3NwXQorICAgIGxvYWRwIFZNOjp0b3BWTUVudHJ5RnJhbWVbdm1dLCB0NAorICAgIHN0
b3JlcCB0NCwgVk1FbnRyeVJlY29yZDo6bV9wcmV2VG9wVk1FbnRyeUZyYW1lW3NwXQogCi0gICAg
bG9hZGkgUHJvdG9DYWxsRnJhbWU6OnBhZGRlZEFyZ0NvdW50W3Byb3RvQ2FsbEZyYW1lXSwgdGVt
cDIKLSAgICBhZGRwIENhbGxGcmFtZUhlYWRlclNsb3RzLCB0ZW1wMiwgdGVtcDIKLSAgICBsc2hp
ZnRwIDMsIHRlbXAyCi0gICAgc3VicCBzcCwgdGVtcDIsIHRlbXAxCisgICAgbG9hZGkgUHJvdG9D
YWxsRnJhbWU6OnBhZGRlZEFyZ0NvdW50W3Byb3RvQ2FsbEZyYW1lXSwgdDQKKyAgICBhZGRwIENh
bGxGcmFtZUhlYWRlclNsb3RzLCB0NCwgdDQKKyAgICBsc2hpZnRwIDMsIHQ0CisgICAgc3VicCBz
cCwgdDQsIHQzCiAKICAgICAjIEVuc3VyZSB0aGF0IHdlIGhhdmUgZW5vdWdoIGFkZGl0aW9uYWwg
c3RhY2sgY2FwYWNpdHkgZm9yIHRoZSBpbmNvbWluZyBhcmdzLAogICAgICMgYW5kIHRoZSBmcmFt
ZSBmb3IgdGhlIEpTIGNvZGUgd2UncmUgZXhlY3V0aW5nLiBXZSBuZWVkIHRvIGRvIHRoaXMgY2hl
Y2sKICAgICAjIGJlZm9yZSB3ZSBzdGFydCBjb3B5aW5nIHRoZSBhcmdzIGZyb20gdGhlIHByb3Rv
Q2FsbEZyYW1lIGJlbG93LgotICAgIGJwYWVxIHRlbXAxLCBWTTo6bV9qc1N0YWNrTGltaXRbdm1d
LCAuc3RhY2tIZWlnaHRPSworICAgIGJwYWVxIHQzLCBWTTo6bV9qc1N0YWNrTGltaXRbdm1dLCAu
c3RhY2tIZWlnaHRPSwogCiAgICAgaWYgQ19MT09QCi0gICAgICAgIG1vdmUgZW50cnksIHRlbXAy
Ci0gICAgICAgIG1vdmUgdm0sIHRlbXAzCi0gICAgICAgIGNsb29wQ2FsbFNsb3dQYXRoIF9sbGlu
dF9zdGFja19jaGVja19hdF92bV9lbnRyeSwgdm0sIHRlbXAxCisgICAgICAgIG1vdmUgZW50cnks
IHQ0CisgICAgICAgIG1vdmUgdm0sIHQ1CisgICAgICAgIGNsb29wQ2FsbFNsb3dQYXRoIF9sbGlu
dF9zdGFja19jaGVja19hdF92bV9lbnRyeSwgdm0sIHQzCiAgICAgICAgIGJwZXEgdDAsIDAsIC5z
dGFja0NoZWNrRmFpbGVkCi0gICAgICAgIG1vdmUgdGVtcDIsIGVudHJ5Ci0gICAgICAgIG1vdmUg
dGVtcDMsIHZtCisgICAgICAgIG1vdmUgdDQsIGVudHJ5CisgICAgICAgIG1vdmUgdDUsIHZtCiAg
ICAgICAgIGptcCAuc3RhY2tIZWlnaHRPSwogCiAuc3RhY2tDaGVja0ZhaWxlZDoKLSAgICAgICAg
bW92ZSB0ZW1wMiwgZW50cnkKLSAgICAgICAgbW92ZSB0ZW1wMywgdm0KKyAgICAgICAgbW92ZSB0
NCwgZW50cnkKKyAgICAgICAgbW92ZSB0NSwgdm0KICAgICBlbmQKIAotICAgIGNDYWxsMihfbGxp
bnRfdGhyb3dfc3RhY2tfb3ZlcmZsb3dfZXJyb3IsIHZtLCBwcm90b0NhbGxGcmFtZSkKKyAgICBt
b3ZlIHZtLCBhMAorICAgIG1vdmUgcHJvdG9DYWxsRnJhbWUsIGExCisgICAgY0NhbGwyKF9sbGlu
dF90aHJvd19zdGFja19vdmVyZmxvd19lcnJvcikKIAotICAgIHZtRW50cnlSZWNvcmQoY2ZyLCB0
ZW1wMikKKyAgICB2bUVudHJ5UmVjb3JkKGNmciwgdDQpCiAKLSAgICBsb2FkcCBWTUVudHJ5UmVj
b3JkOjptX3ZtW3RlbXAyXSwgdm0KLSAgICBsb2FkcCBWTUVudHJ5UmVjb3JkOjptX3ByZXZUb3BD
YWxsRnJhbWVbdGVtcDJdLCB0ZW1wMwotICAgIHN0b3JlcCB0ZW1wMywgVk06OnRvcENhbGxGcmFt
ZVt2bV0KLSAgICBsb2FkcCBWTUVudHJ5UmVjb3JkOjptX3ByZXZUb3BWTUVudHJ5RnJhbWVbdGVt
cDJdLCB0ZW1wMwotICAgIHN0b3JlcCB0ZW1wMywgVk06OnRvcFZNRW50cnlGcmFtZVt2bV0KKyAg
ICBsb2FkcCBWTUVudHJ5UmVjb3JkOjptX3ZtW3Q0XSwgdm0KKyAgICBsb2FkcCBWTUVudHJ5UmVj
b3JkOjptX3ByZXZUb3BDYWxsRnJhbWVbdDRdLCB0NQorICAgIHN0b3JlcCB0NSwgVk06OnRvcENh
bGxGcmFtZVt2bV0KKyAgICBsb2FkcCBWTUVudHJ5UmVjb3JkOjptX3ByZXZUb3BWTUVudHJ5RnJh
bWVbdDRdLCB0NQorICAgIHN0b3JlcCB0NSwgVk06OnRvcFZNRW50cnlGcmFtZVt2bV0KIAogICAg
IHN1YnAgY2ZyLCBDYWxsZWVSZWdpc3RlclNhdmVTaXplLCBzcAogCkBAIC0yMjUsNjIgKzE3NSw2
NSBAQCBtYWNybyBkb1ZNRW50cnkobWFrZUNhbGwpCiAgICAgcmV0CiAKIC5zdGFja0hlaWdodE9L
OgotICAgIG1vdmUgdGVtcDEsIHNwCi0gICAgbW92ZSA0LCB0ZW1wMQorICAgIG1vdmUgdDMsIHNw
CisgICAgbW92ZSA0LCB0MwogCiAuY29weUhlYWRlckxvb3A6Ci0gICAgc3ViaSAxLCB0ZW1wMQot
ICAgIGxvYWRxIFtwcm90b0NhbGxGcmFtZSwgdGVtcDEsIDhdLCB0ZW1wMwotICAgIHN0b3JlcSB0
ZW1wMywgQ29kZUJsb2NrW3NwLCB0ZW1wMSwgOF0KLSAgICBidGlueiB0ZW1wMSwgLmNvcHlIZWFk
ZXJMb29wCi0KLSAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0ICsgUHJvdG9DYWxsRnJhbWU6OmFyZ0Nv
dW50QW5kQ29kZU9yaWdpblZhbHVlW3Byb3RvQ2FsbEZyYW1lXSwgdGVtcDIKLSAgICBzdWJpIDEs
IHRlbXAyCi0gICAgbG9hZGkgUHJvdG9DYWxsRnJhbWU6OnBhZGRlZEFyZ0NvdW50W3Byb3RvQ2Fs
bEZyYW1lXSwgdGVtcDMKLSAgICBzdWJpIDEsIHRlbXAzCi0KLSAgICBiaWVxIHRlbXAyLCB0ZW1w
MywgLmNvcHlBcmdzCi0gICAgbW92ZSBWYWx1ZVVuZGVmaW5lZCwgdGVtcDEKKyAgICBzdWJpIDEs
IHQzCisgICAgbG9hZHEgW3Byb3RvQ2FsbEZyYW1lLCB0MywgOF0sIHQ1CisgICAgc3RvcmVxIHQ1
LCBDb2RlQmxvY2tbc3AsIHQzLCA4XQorICAgIGJ0aW56IHQzLCAuY29weUhlYWRlckxvb3AKKwor
ICAgIGxvYWRpIFBheWxvYWRPZmZzZXQgKyBQcm90b0NhbGxGcmFtZTo6YXJnQ291bnRBbmRDb2Rl
T3JpZ2luVmFsdWVbcHJvdG9DYWxsRnJhbWVdLCB0NAorICAgIHN1YmkgMSwgdDQKKyAgICBsb2Fk
aSBQcm90b0NhbGxGcmFtZTo6cGFkZGVkQXJnQ291bnRbcHJvdG9DYWxsRnJhbWVdLCB0NQorICAg
IHN1YmkgMSwgdDUKKworICAgIGJpZXEgdDQsIHQ1LCAuY29weUFyZ3MKKyAgICBtb3ZlIFZhbHVl
VW5kZWZpbmVkLCB0MwogLmZpbGxFeHRyYUFyZ3NMb29wOgotICAgIHN1YmkgMSwgdGVtcDMKLSAg
ICBzdG9yZXEgdGVtcDEsIFRoaXNBcmd1bWVudE9mZnNldCArIDhbc3AsIHRlbXAzLCA4XQotICAg
IGJpbmVxIHRlbXAyLCB0ZW1wMywgLmZpbGxFeHRyYUFyZ3NMb29wCisgICAgc3ViaSAxLCB0NQor
ICAgIHN0b3JlcSB0MywgVGhpc0FyZ3VtZW50T2Zmc2V0ICsgOFtzcCwgdDUsIDhdCisgICAgYmlu
ZXEgdDQsIHQ1LCAuZmlsbEV4dHJhQXJnc0xvb3AKIAogLmNvcHlBcmdzOgotICAgIGxvYWRwIFBy
b3RvQ2FsbEZyYW1lOjphcmdzW3Byb3RvQ2FsbEZyYW1lXSwgdGVtcDEKKyAgICBsb2FkcCBQcm90
b0NhbGxGcmFtZTo6YXJnc1twcm90b0NhbGxGcmFtZV0sIHQzCiAKIC5jb3B5QXJnc0xvb3A6Ci0g
ICAgYnRpeiB0ZW1wMiwgLmNvcHlBcmdzRG9uZQotICAgIHN1YmkgMSwgdGVtcDIKLSAgICBsb2Fk
cSBbdGVtcDEsIHRlbXAyLCA4XSwgdGVtcDMKLSAgICBzdG9yZXEgdGVtcDMsIFRoaXNBcmd1bWVu
dE9mZnNldCArIDhbc3AsIHRlbXAyLCA4XQorICAgIGJ0aXogdDQsIC5jb3B5QXJnc0RvbmUKKyAg
ICBzdWJpIDEsIHQ0CisgICAgbG9hZHEgW3QzLCB0NCwgOF0sIHQ1CisgICAgc3RvcmVxIHQ1LCBU
aGlzQXJndW1lbnRPZmZzZXQgKyA4W3NwLCB0NCwgOF0KICAgICBqbXAgLmNvcHlBcmdzTG9vcAog
CiAuY29weUFyZ3NEb25lOgogICAgIGlmIEFSTTY0Ci0gICAgICAgIG1vdmUgc3AsIHRlbXAyCi0g
ICAgICAgIHN0b3JlcCB0ZW1wMiwgVk06OnRvcENhbGxGcmFtZVt2bV0KKyAgICAgICAgbW92ZSBz
cCwgdDQKKyAgICAgICAgc3RvcmVwIHQ0LCBWTTo6dG9wQ2FsbEZyYW1lW3ZtXQogICAgIGVsc2UK
ICAgICAgICAgc3RvcmVwIHNwLCBWTTo6dG9wQ2FsbEZyYW1lW3ZtXQogICAgIGVuZAogICAgIHN0
b3JlcCBjZnIsIFZNOjp0b3BWTUVudHJ5RnJhbWVbdm1dCiAKLSAgICBtb3ZlIDB4ZmZmZjAwMDAw
MDAwMDAwMCwgY3NyMQotICAgIGFkZHAgMiwgY3NyMSwgY3NyMgorICAgIG1vdmUgVGFnVHlwZU51
bWJlciwgdGFnVHlwZU51bWJlcgorICAgIGFkZHAgVGFnQml0VHlwZU90aGVyLCB0YWdUeXBlTnVt
YmVyLCB0YWdNYXNrCiAKLSAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCh0ZW1wMywgMHhi
YWQwZGMwMikKKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCh0NSwgMHhiYWQwZGMwMikK
IAotICAgIG1ha2VDYWxsKGVudHJ5LCB0ZW1wMSkKKyAgICBtYWtlQ2FsbChlbnRyeSwgdDMpCiAK
LSAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCh0ZW1wMywgMHhiYWQwZGMwMykKKyAgICAj
IFdlIG1heSBoYXZlIGp1c3QgbWFkZSBhIGNhbGwgaW50byBhIEpTIGZ1bmN0aW9uLCBzbyB3ZSBj
YW4ndCByZWx5IG9uIHNwCisgICAgIyBmb3IgYW55dGhpbmcgYnV0IHRoZSBmYWN0IHRoYXQgb3Vy
IG93biBsb2NhbHMgKGllIHRoZSBWTUVudHJ5UmVjb3JkKSBhcmUKKyAgICAjIG5vdCBiZWxvdyBp
dC4gSXQgYWxzbyBzdGlsbCBoYXMgdG8gYmUgYWxpZ25lZCwgdGhvdWdoLgorICAgIGNoZWNrU3Rh
Y2tQb2ludGVyQWxpZ25tZW50KHQ1LCAweGJhZDBkYzAzKQogCi0gICAgdm1FbnRyeVJlY29yZChj
ZnIsIHRlbXAyKQorICAgIHZtRW50cnlSZWNvcmQoY2ZyLCB0NCkKIAotICAgIGxvYWRwIFZNRW50
cnlSZWNvcmQ6Om1fdm1bdGVtcDJdLCB2bQotICAgIGxvYWRwIFZNRW50cnlSZWNvcmQ6Om1fcHJl
dlRvcENhbGxGcmFtZVt0ZW1wMl0sIHRlbXAzCi0gICAgc3RvcmVwIHRlbXAzLCBWTTo6dG9wQ2Fs
bEZyYW1lW3ZtXQotICAgIGxvYWRwIFZNRW50cnlSZWNvcmQ6Om1fcHJldlRvcFZNRW50cnlGcmFt
ZVt0ZW1wMl0sIHRlbXAzCi0gICAgc3RvcmVwIHRlbXAzLCBWTTo6dG9wVk1FbnRyeUZyYW1lW3Zt
XQorICAgIGxvYWRwIFZNRW50cnlSZWNvcmQ6Om1fdm1bdDRdLCB2bQorICAgIGxvYWRwIFZNRW50
cnlSZWNvcmQ6Om1fcHJldlRvcENhbGxGcmFtZVt0NF0sIHQ1CisgICAgc3RvcmVwIHQ1LCBWTTo6
dG9wQ2FsbEZyYW1lW3ZtXQorICAgIGxvYWRwIFZNRW50cnlSZWNvcmQ6Om1fcHJldlRvcFZNRW50
cnlGcmFtZVt0NF0sIHQ1CisgICAgc3RvcmVwIHQ1LCBWTTo6dG9wVk1FbnRyeUZyYW1lW3ZtXQog
CiAgICAgc3VicCBjZnIsIENhbGxlZVJlZ2lzdGVyU2F2ZVNpemUsIHNwCiAKQEAgLTMwNSwxMyAr
MjU4LDcgQEAgZW5kCiBtYWNybyBtYWtlSG9zdEZ1bmN0aW9uQ2FsbChlbnRyeSwgdGVtcCkKICAg
ICBtb3ZlIGVudHJ5LCB0ZW1wCiAgICAgc3RvcmVwIGNmciwgW3NwXQotICAgIGlmIFg4Nl82NAot
ICAgICAgICBtb3ZlIHNwLCB0NAotICAgIGVsc2lmIFg4Nl82NF9XSU4KLSAgICAgICAgbW92ZSBz
cCwgdDIKLSAgICBlbHNpZiBBUk02NCBvciBDX0xPT1AKLSAgICAgICAgbW92ZSBzcCwgYTAKLSAg
ICBlbmQKKyAgICBtb3ZlIHNwLCBhMAogICAgIGlmIENfTE9PUAogICAgICAgICBzdG9yZXAgbHIs
IDhbc3BdCiAgICAgICAgIGNsb29wQ2FsbE5hdGl2ZSB0ZW1wCkBAIC0zNTAsMzEgKzI5NywzOSBA
QCBfaGFuZGxlVW5jYXVnaHRFeGNlcHRpb246CiAKIG1hY3JvIHByZXBhcmVTdGF0ZUZvckNDYWxs
KCkKICAgICBsZWFwIFtQQiwgUEMsIDhdLCBQQwotICAgIG1vdmUgUEIsIHQzCiBlbmQKIAogbWFj
cm8gcmVzdG9yZVN0YXRlQWZ0ZXJDQ2FsbCgpCi0gICAgbW92ZSB0MCwgUEMKLSAgICBtb3ZlIHQz
LCBQQgorICAgIG1vdmUgcjAsIFBDCiAgICAgc3VicCBQQiwgUEMKICAgICByc2hpZnRwIDMsIFBD
CiBlbmQKIAogbWFjcm8gY2FsbFNsb3dQYXRoKHNsb3dQYXRoKQogICAgIHByZXBhcmVTdGF0ZUZv
ckNDYWxsKCkKLSAgICBjQ2FsbDIoc2xvd1BhdGgsIGNmciwgUEMpCisgICAgbW92ZSBjZnIsIGEw
CisgICAgbW92ZSBQQywgYTEKKyAgICBjQ2FsbDIoc2xvd1BhdGgpCiAgICAgcmVzdG9yZVN0YXRl
QWZ0ZXJDQ2FsbCgpCiBlbmQKIAogbWFjcm8gdHJhY2VPcGVyYW5kKGZyb21XaGVyZSwgb3BlcmFu
ZCkKICAgICBwcmVwYXJlU3RhdGVGb3JDQ2FsbCgpCi0gICAgY0NhbGw0KF9sbGludF90cmFjZV9v
cGVyYW5kLCBjZnIsIFBDLCBmcm9tV2hlcmUsIG9wZXJhbmQpCisgICAgbW92ZSBmcm9tV2hlcmUs
IGEyCisgICAgbW92ZSBvcGVyYW5kLCBhMworICAgIG1vdmUgY2ZyLCBhMAorICAgIG1vdmUgUEMs
IGExCisgICAgY0NhbGw0KF9sbGludF90cmFjZV9vcGVyYW5kKQogICAgIHJlc3RvcmVTdGF0ZUFm
dGVyQ0NhbGwoKQogZW5kCiAKIG1hY3JvIHRyYWNlVmFsdWUoZnJvbVdoZXJlLCBvcGVyYW5kKQog
ICAgIHByZXBhcmVTdGF0ZUZvckNDYWxsKCkKLSAgICBjQ2FsbDQoX2xsaW50X3RyYWNlX3ZhbHVl
LCBjZnIsIFBDLCBmcm9tV2hlcmUsIG9wZXJhbmQpCisgICAgbW92ZSBmcm9tV2hlcmUsIGEyCisg
ICAgbW92ZSBvcGVyYW5kLCBhMworICAgIG1vdmUgY2ZyLCBhMAorICAgIG1vdmUgUEMsIGExCisg
ICAgY0NhbGw0KF9sbGludF90cmFjZV92YWx1ZSkKICAgICByZXN0b3JlU3RhdGVBZnRlckNDYWxs
KCkKIGVuZAogCkBAIC0zODIsMTYgKzMzNywxOSBAQCBlbmQKIG1hY3JvIGNhbGxDYWxsU2xvd1Bh
dGgoc2xvd1BhdGgsIGFjdGlvbikKICAgICBzdG9yZWkgUEMsIEFyZ3VtZW50Q291bnQgKyBUYWdP
ZmZzZXRbY2ZyXQogICAgIHByZXBhcmVTdGF0ZUZvckNDYWxsKCkKLSAgICBjQ2FsbDIoc2xvd1Bh
dGgsIGNmciwgUEMpCi0gICAgYWN0aW9uKHQwKQorICAgIG1vdmUgY2ZyLCBhMAorICAgIG1vdmUg
UEMsIGExCisgICAgY0NhbGwyKHNsb3dQYXRoKQorICAgIGFjdGlvbihyMCwgcjEpCiBlbmQKIAog
bWFjcm8gY2FsbFdhdGNoZG9nVGltZXJIYW5kbGVyKHRocm93SGFuZGxlcikKICAgICBzdG9yZWkg
UEMsIEFyZ3VtZW50Q291bnQgKyBUYWdPZmZzZXRbY2ZyXQogICAgIHByZXBhcmVTdGF0ZUZvckND
YWxsKCkKLSAgICBjQ2FsbDIoX2xsaW50X3Nsb3dfcGF0aF9oYW5kbGVfd2F0Y2hkb2dfdGltZXIs
IGNmciwgUEMpCi0gICAgYnRwbnogdDAsIHRocm93SGFuZGxlcgotICAgIG1vdmUgdDMsIFBCCisg
ICAgbW92ZSBjZnIsIGEwCisgICAgbW92ZSBQQywgYTEKKyAgICBjQ2FsbDIoX2xsaW50X3Nsb3df
cGF0aF9oYW5kbGVfd2F0Y2hkb2dfdGltZXIpCisgICAgYnRwbnogcjAsIHRocm93SGFuZGxlcgog
ICAgIGxvYWRpIEFyZ3VtZW50Q291bnQgKyBUYWdPZmZzZXRbY2ZyXSwgUEMKIGVuZAogCkBAIC00
MDEsMTIgKzM1OSwxMyBAQCBtYWNybyBjaGVja1N3aXRjaFRvSklURm9yTG9vcCgpCiAgICAgICAg
IG1hY3JvKCkKICAgICAgICAgICAgIHN0b3JlaSBQQywgQXJndW1lbnRDb3VudCArIFRhZ09mZnNl
dFtjZnJdCiAgICAgICAgICAgICBwcmVwYXJlU3RhdGVGb3JDQ2FsbCgpCi0gICAgICAgICAgICBj
Q2FsbDIoX2xsaW50X2xvb3Bfb3NyLCBjZnIsIFBDKQotICAgICAgICAgICAgYnRweiB0MCwgLnJl
Y292ZXIKLSAgICAgICAgICAgIG1vdmUgdDEsIHNwCi0gICAgICAgICAgICBqbXAgdDAKKyAgICAg
ICAgICAgIG1vdmUgY2ZyLCBhMAorICAgICAgICAgICAgbW92ZSBQQywgYTEKKyAgICAgICAgICAg
IGNDYWxsMihfbGxpbnRfbG9vcF9vc3IpCisgICAgICAgICAgICBidHB6IHIwLCAucmVjb3Zlcgor
ICAgICAgICAgICAgbW92ZSByMSwgc3AKKyAgICAgICAgICAgIGptcCByMAogICAgICAgICAucmVj
b3ZlcjoKLSAgICAgICAgICAgIG1vdmUgdDMsIFBCCiAgICAgICAgICAgICBsb2FkaSBBcmd1bWVu
dENvdW50ICsgVGFnT2Zmc2V0W2Nmcl0sIFBDCiAgICAgICAgIGVuZCkKIGVuZApAQCAtNDQ3LDcg
KzQwNiw5IEBAIG1hY3JvIHdyaXRlQmFycmllck9uT3BlcmFuZChjZWxsT3BlcmFuZCkKICAgICAg
ICAgICAgIG1hY3JvKGdjRGF0YSkKICAgICAgICAgICAgICAgICBidGJueiBnY0RhdGEsIC53cml0
ZUJhcnJpZXJEb25lCiAgICAgICAgICAgICAgICAgcHVzaCBQQiwgUEMKLSAgICAgICAgICAgICAg
ICBjQ2FsbDJWb2lkKF9sbGludF93cml0ZV9iYXJyaWVyX3Nsb3csIGNmciwgdDIpCisgICAgICAg
ICAgICAgICAgbW92ZSB0MiwgYTEgIyB0MiBjYW4gYmUgYTAgKG5vdCBvbiA2NCBiaXRzLCBidXQg
YmV0dGVyIHNhZmUgdGhhbiBzb3JyeSkKKyAgICAgICAgICAgICAgICBtb3ZlIGNmciwgYTAKKyAg
ICAgICAgICAgICAgICBjQ2FsbDJWb2lkKF9sbGludF93cml0ZV9iYXJyaWVyX3Nsb3cpCiAgICAg
ICAgICAgICAgICAgcG9wIFBDLCBQQgogICAgICAgICAgICAgZW5kCiAgICAgICAgICkKQEAgLTQ3
OCw3ICs0MzksOSBAQCBtYWNybyB3cml0ZUJhcnJpZXJPbkdsb2JhbE9iamVjdCh2YWx1ZU9wZXJh
bmQpCiAgICAgICAgICAgICBtYWNybyhnY0RhdGEpCiAgICAgICAgICAgICAgICAgYnRibnogZ2NE
YXRhLCAud3JpdGVCYXJyaWVyRG9uZQogICAgICAgICAgICAgICAgIHB1c2ggUEIsIFBDCi0gICAg
ICAgICAgICAgICAgY0NhbGwyVm9pZChfbGxpbnRfd3JpdGVfYmFycmllcl9zbG93LCBjZnIsIHQz
KQorICAgICAgICAgICAgICAgIG1vdmUgY2ZyLCBhMAorICAgICAgICAgICAgICAgIG1vdmUgdDMs
IGExCisgICAgICAgICAgICAgICAgY0NhbGwyVm9pZChfbGxpbnRfd3JpdGVfYmFycmllcl9zbG93
KQogICAgICAgICAgICAgICAgIHBvcCBQQywgUEIKICAgICAgICAgICAgIGVuZAogICAgICAgICAp
CkBAIC01MjIsMTkgKzQ4NSwyMSBAQCBtYWNybyBmdW5jdGlvbkFyaXR5Q2hlY2soZG9uZUxhYmVs
LCBzbG93UGF0aCkKICAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0ICsgQXJndW1lbnRDb3VudFtjZnJd
LCB0MAogICAgIGJpYWVxIHQwLCBDb2RlQmxvY2s6Om1fbnVtUGFyYW1ldGVyc1t0MV0sIGRvbmVM
YWJlbAogICAgIHByZXBhcmVTdGF0ZUZvckNDYWxsKCkKLSAgICBjQ2FsbDIoc2xvd1BhdGgsIGNm
ciwgUEMpICAgIyBUaGlzIHNsb3dQYXRoIGhhcyB0aGUgcHJvdG9jb2w6IHQwID0gMCA9PiBubyBl
cnJvciwgdDAgIT0gMCA9PiBlcnJvcgotICAgIGJ0aXogdDAsIC5ub0Vycm9yCi0gICAgbW92ZSB0
MSwgY2ZyICAgIyB0MSBjb250YWlucyBjYWxsZXIgZnJhbWUKKyAgICBtb3ZlIGNmciwgYTAKKyAg
ICBtb3ZlIFBDLCBhMQorICAgIGNDYWxsMihzbG93UGF0aCkgICAjIFRoaXMgc2xvd1BhdGggaGFz
IHRoZSBwcm90b2NvbDogcjAgPSAwID0+IG5vIGVycm9yLCByMCAhPSAwID0+IGVycm9yCisgICAg
YnRpeiByMCwgLm5vRXJyb3IKKyAgICBtb3ZlIHIxLCBjZnIgICAjIHIxIGNvbnRhaW5zIGNhbGxl
ciBmcmFtZQogICAgIGptcCBfbGxpbnRfdGhyb3dfZnJvbV9zbG93X3BhdGhfdHJhbXBvbGluZQog
CiAubm9FcnJvcjoKLSAgICAjIHQxIHBvaW50cyB0byBBcml0eUNoZWNrRGF0YS4KLSAgICBsb2Fk
cCBDb21tb25TbG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRhOjp0aHVua1RvQ2FsbFt0MV0sIHQyCi0g
ICAgYnRweiB0MiwgLnByb2NlZWRJbmxpbmUKKyAgICAjIHIxIHBvaW50cyB0byBBcml0eUNoZWNr
RGF0YS4KKyAgICBsb2FkcCBDb21tb25TbG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRhOjp0aHVua1Rv
Q2FsbFtyMV0sIHQzCisgICAgYnRweiB0MywgLnByb2NlZWRJbmxpbmUKICAgICAKLSAgICBsb2Fk
cCBDb21tb25TbG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRhOjpyZXR1cm5QQ1t0MV0sIHQ3Ci0gICAg
bG9hZHAgQ29tbW9uU2xvd1BhdGhzOjpBcml0eUNoZWNrRGF0YTo6cGFkZGVkU3RhY2tTcGFjZVt0
MV0sIHQwCi0gICAgY2FsbCB0MgorICAgIGxvYWRwIENvbW1vblNsb3dQYXRoczo6QXJpdHlDaGVj
a0RhdGE6OnBhZGRlZFN0YWNrU3BhY2VbcjFdLCBhMAorICAgIGxvYWRwIENvbW1vblNsb3dQYXRo
czo6QXJpdHlDaGVja0RhdGE6OnJldHVyblBDW3IxXSwgYTEKKyAgICBjYWxsIHQzCiAgICAgaWYg
QVNTRVJUX0VOQUJMRUQKICAgICAgICAgbG9hZHAgUmV0dXJuUENbY2ZyXSwgdDAKICAgICAgICAg
bG9hZHAgW3QwXSwgdDAKQEAgLTU0Miw3ICs1MDcsNyBAQCBtYWNybyBmdW5jdGlvbkFyaXR5Q2hl
Y2soZG9uZUxhYmVsLCBzbG93UGF0aCkKICAgICBqbXAgLmNvbnRpbnVlCiAKIC5wcm9jZWVkSW5s
aW5lOgotICAgIGxvYWRpIENvbW1vblNsb3dQYXRoczo6QXJpdHlDaGVja0RhdGE6OnBhZGRlZFN0
YWNrU3BhY2VbdDFdLCB0MQorICAgIGxvYWRpIENvbW1vblNsb3dQYXRoczo6QXJpdHlDaGVja0Rh
dGE6OnBhZGRlZFN0YWNrU3BhY2VbcjFdLCB0MQogICAgIGJ0aXogdDEsIC5jb250aW51ZQogCiAg
ICAgLy8gTW92ZSBmcmFtZSB1cCAidDEgKiAyIiBzbG90cwpAQCAtNTg4LDcgKzU1Myw2IEBAIGVu
ZAogCiAKICMgSW5zdHJ1Y3Rpb24gaW1wbGVtZW50YXRpb25zCi0KIF9sbGludF9vcF9lbnRlcjoK
ICAgICB0cmFjZUV4ZWN1dGlvbigpCiAgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodDIs
IDB4ZGVhZDAwZTEpCkBAIC0xNzc2LDcgKzE3NDAsNyBAQCBfbGxpbnRfb3BfcmV0OgogICAgIHRy
YWNlRXhlY3V0aW9uKCkKICAgICBjaGVja1N3aXRjaFRvSklURm9yRXBpbG9ndWUoKQogICAgIGxv
YWRpc0Zyb21JbnN0cnVjdGlvbigxLCB0MikKLSAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQy
LCB0MCkKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQyLCByMCkKICAgICBkb1JldHVybigp
CiAKIApAQCAtMTgzOSw3ICsxODAzLDcgQEAgX2xsaW50X29wX2VuZDoKICAgICBjaGVja1N3aXRj
aFRvSklURm9yRXBpbG9ndWUoKQogICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbigxLCB0MCkKICAg
ICBhc3NlcnROb3RDb25zdGFudCh0MCkKLSAgICBsb2FkcSBbY2ZyLCB0MCwgOF0sIHQwCisgICAg
bG9hZHEgW2NmciwgdDAsIDhdLCByMAogICAgIGRvUmV0dXJuKCkKIAogCkBAIC0xODY0LDU2ICsx
ODI4LDM1IEBAIG1hY3JvIG5hdGl2ZUNhbGxUcmFtcG9saW5lKGV4ZWN1dGFibGVPZmZzZXRUb0Z1
bmN0aW9uKQogCiAgICAgZnVuY3Rpb25Qcm9sb2d1ZSgpCiAgICAgc3RvcmVwIDAsIENvZGVCbG9j
a1tjZnJdCi0gICAgaWYgWDg2XzY0IG9yIFg4Nl82NF9XSU4KLSAgICAgICAgaWYgWDg2XzY0Ci0g
ICAgICAgICAgICBjb25zdCBhcmcxID0gdDQgICMgdDQgPSByZGkKLSAgICAgICAgICAgIGNvbnN0
IGFyZzIgPSB0NSAgIyB0NSA9IHJzaQotICAgICAgICAgICAgY29uc3QgdGVtcCA9IHQxCi0gICAg
ICAgIGVsc2lmIFg4Nl82NF9XSU4KLSAgICAgICAgICAgIGNvbnN0IGFyZzEgPSB0MiAgIyB0MiA9
IHJjeAotICAgICAgICAgICAgY29uc3QgYXJnMiA9IHQxICAjIHQxID0gcmR4Ci0gICAgICAgICAg
ICBjb25zdCB0ZW1wID0gdDAKLSAgICAgICAgZW5kCi0gICAgICAgIGxvYWRwIENhbGxlZVtjZnJd
LCB0MAotICAgICAgICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDAsIHQxCi0gICAgICAgIGxvYWRw
IE1hcmtlZEJsb2NrOjptX3dlYWtTZXQgKyBXZWFrU2V0OjptX3ZtW3QxXSwgdDEKLSAgICAgICAg
c3RvcmVwIGNmciwgVk06OnRvcENhbGxGcmFtZVt0MV0KLSAgICAgICAgbW92ZSBjZnIsIGFyZzEK
LSAgICAgICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIGFyZzIKLSAgICAgICAgbG9hZHAgSlNGdW5jdGlv
bjo6bV9leGVjdXRhYmxlW2FyZzJdLCB0ZW1wCi0gICAgICAgIGNoZWNrU3RhY2tQb2ludGVyQWxp
Z25tZW50KHQzLCAweGRlYWQwMDAxKQorICAgIGxvYWRwIENhbGxlZVtjZnJdLCB0MAorICAgIGFu
ZHAgTWFya2VkQmxvY2tNYXNrLCB0MCwgdDEKKyAgICBsb2FkcCBNYXJrZWRCbG9jazo6bV93ZWFr
U2V0ICsgV2Vha1NldDo6bV92bVt0MV0sIHQxCisgICAgc3RvcmVwIGNmciwgVk06OnRvcENhbGxG
cmFtZVt0MV0KKyAgICBpZiBBUk02NCBvciBDX0xPT1AKKyAgICAgICAgbW92ZSBsciwgY3NyMAor
ICAgICAgICBzdG9yZXAgbHIsIFJldHVyblBDW2Nmcl0KKyAgICBlbmQKKyAgICBtb3ZlIGNmciwg
YTAKKyAgICBsb2FkcCBDYWxsZWVbY2ZyXSwgdDEKKyAgICBsb2FkcCBKU0Z1bmN0aW9uOjptX2V4
ZWN1dGFibGVbdDFdLCB0MQorICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KHQzLCAweGRl
YWQwMDAxKQorICAgIGlmIENfTE9PUAorICAgICAgICBjbG9vcENhbGxOYXRpdmUgZXhlY3V0YWJs
ZU9mZnNldFRvRnVuY3Rpb25bdDFdCisgICAgZWxzZQogICAgICAgICBpZiBYODZfNjRfV0lOCiAg
ICAgICAgICAgICBzdWJwIDMyLCBzcAogICAgICAgICBlbmQKLSAgICAgICAgY2FsbCBleGVjdXRh
YmxlT2Zmc2V0VG9GdW5jdGlvblt0ZW1wXQorICAgICAgICBjYWxsIGV4ZWN1dGFibGVPZmZzZXRU
b0Z1bmN0aW9uW3QxXQogICAgICAgICBpZiBYODZfNjRfV0lOCiAgICAgICAgICAgICBhZGRwIDMy
LCBzcAogICAgICAgICBlbmQKLSAgICAgICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHQzCi0gICAgICAg
IGFuZHAgTWFya2VkQmxvY2tNYXNrLCB0MwotICAgICAgICBsb2FkcCBNYXJrZWRCbG9jazo6bV93
ZWFrU2V0ICsgV2Vha1NldDo6bV92bVt0M10sIHQzCi0gICAgZWxzaWYgQVJNNjQgb3IgQ19MT09Q
Ci0gICAgICAgIGxvYWRwIENhbGxlZVtjZnJdLCB0MAotICAgICAgICBhbmRwIE1hcmtlZEJsb2Nr
TWFzaywgdDAsIHQxCi0gICAgICAgIGxvYWRwIE1hcmtlZEJsb2NrOjptX3dlYWtTZXQgKyBXZWFr
U2V0OjptX3ZtW3QxXSwgdDEKLSAgICAgICAgc3RvcmVwIGNmciwgVk06OnRvcENhbGxGcmFtZVt0
MV0KLSAgICAgICAgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKHQzKQotICAgICAgICBz
dG9yZXAgdDMsIFJldHVyblBDW2Nmcl0KLSAgICAgICAgbW92ZSBjZnIsIHQwCi0gICAgICAgIGxv
YWRwIENhbGxlZVtjZnJdLCB0MQotICAgICAgICBsb2FkcCBKU0Z1bmN0aW9uOjptX2V4ZWN1dGFi
bGVbdDFdLCB0MQotICAgICAgICBpZiBDX0xPT1AKLSAgICAgICAgICAgIGNsb29wQ2FsbE5hdGl2
ZSBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvblt0MV0KLSAgICAgICAgZWxzZQotICAgICAgICAg
ICAgY2FsbCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvblt0MV0KLSAgICAgICAgZW5kCi0gICAg
ICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHQzKQotICAgICAgICBsb2FkcCBD
YWxsZWVbY2ZyXSwgdDMKLSAgICAgICAgYW5kcCBNYXJrZWRCbG9ja01hc2ssIHQzCi0gICAgICAg
IGxvYWRwIE1hcmtlZEJsb2NrOjptX3dlYWtTZXQgKyBXZWFrU2V0OjptX3ZtW3QzXSwgdDMKLSAg
ICBlbHNlCi0gICAgICAgIGVycm9yCiAgICAgZW5kCisgICAgaWYgQVJNNjQgb3IgQ19MT09QCisg
ICAgICAgIG1vdmUgY3NyMCwgbHIKKyAgICBlbmQKKyAgICBsb2FkcCBDYWxsZWVbY2ZyXSwgdDMK
KyAgICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDMKKyAgICBsb2FkcCBNYXJrZWRCbG9jazo6bV93
ZWFrU2V0ICsgV2Vha1NldDo6bV92bVt0M10sIHQzCiAKICAgICBmdW5jdGlvbkVwaWxvZ3VlKCkK
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtLnJiIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtLnJiCmluZGV4IDQ0Y2ZiZTVjOTA2
ZWM4MmI1ZDAwMjQ2ZDdkMTgzMGI3ZTgwMDA0NjguLmEwYWIzZGRlNWE1NzJlMDVhOGNmNGM1NzVl
MTk1Njc0OTE1YTEyNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5l
YXNtL2FybS5yYgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm0ucmIK
QEAgLTI3LDYgKzI3LDM0IEBAIHJlcXVpcmUgImFzdCIKIHJlcXVpcmUgIm9wdCIKIHJlcXVpcmUg
InJpc2MiCiAKKyMgR1BSIGNvbnZlbnRpb25zLCB0byBtYXRjaCB0aGUgYmFzZWxpbmUgSklUCisj
CisjICB4MCA9PiB0MCwgYTAsIHIwCisjICB4MSA9PiB0MSwgYTEsIHIxCisjICB4MiA9PiB0Miwg
YTIsIHIyCisjICB4MyA9PiB0MywgYTMsIHIzCisjICB4NiA9PiAgICAgICAgICAgIChjYWxsZWUt
c2F2ZSBzY3JhdGNoKQorIyAgeDcgPT4gY2ZyICAgICAgICAoQVJNdjcgb25seSkKKyMgIHg4ID0+
IHQ0ICAgICAgICAgKGNhbGxlZS1zYXZlKQorIyAgeDkgPT4gdDUgICAgICAgICAoY2FsbGVlLXNh
dmUpCisjIHgxMCA9PiAgICAgICAgICAgIChjYWxsZWUtc2F2ZSBzY3JhdGNoKQorIyB4MTEgPT4g
Y2ZyICAgICAgICAoQVJNIGFuZCBBUk12NyB0cmFkaXRpb25hbCkKKyMgeDEyID0+ICAgICAgICAg
ICAgKGNhbGxlZS1zYXZlIHNjcmF0Y2gpCisjICBsciA9PiBscgorIyAgc3AgPT4gc3AKKyMgIHBj
ID0+IHBjCisjCisjIEZQUiBjb252ZW50aW9ucywgdG8gbWF0Y2ggdGhlIGJhc2VsaW5lIEpJVAor
IworIyBkMCA9PiBmdDAsIGZhMCwgZnIKKyMgZDEgPT4gZnQxLCBmYTEKKyMgZDIgPT4gZnQyCisj
IGQzID0+IGZ0MworIyBkNCA9PiBmdDQKKyMgZDUgPT4gZnQ1CisjIGQ2ID0+ICAgICAgICAgICAg
ICAoc2NyYXRjaCkKKyMgZDcgPT4gICAgICAgICAgICAgIChzY3JhdGNoKQorCiBkZWYgaXNBUk12
NwogICAgIGNhc2UgJGFjdGl2ZUJhY2tlbmQKICAgICB3aGVuICJBUk12NyIKQEAgLTExOSw5ICsx
NDcsOSBAQCBlbmQKIGNsYXNzIEZQUmVnaXN0ZXJJRAogICAgIGRlZiBhcm1PcGVyYW5kCiAgICAg
ICAgIGNhc2UgbmFtZQotICAgICAgICB3aGVuICJmdDAiLCAiZnIiCisgICAgICAgIHdoZW4gImZ0
MCIsICJmciIsICJmYTAiCiAgICAgICAgICAgICAiZDAiCi0gICAgICAgIHdoZW4gImZ0MSIKKyAg
ICAgICAgd2hlbiAiZnQxIiwgImZhMSIKICAgICAgICAgICAgICJkMSIKICAgICAgICAgd2hlbiAi
ZnQyIgogICAgICAgICAgICAgImQyIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L29mZmxpbmVhc20vYXJtNjQucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9h
cm02NC5yYgppbmRleCAzYTBkNzg2YzhmODQ5OGEwMTc4ZGYzMzkyMjNiNzk0ZTFlOTE4YjEwLi4x
MTEwNjIyZWMwMDA3ZDBmMzUzNjFkYzg4NzIxMmRiYjQ5MWYxZGU3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm02NC5yYgorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvb2ZmbGluZWFzbS9hcm02NC5yYgpAQCAtMzcsMzIgKzM3LDMwIEBAIHJlcXVpcmUg
InJpc2MiCiAjCiAjIEdQUiBjb252ZW50aW9ucywgdG8gbWF0Y2ggdGhlIGJhc2VsaW5lIEpJVDoK
ICMKLSMgIHgwICA9PiByZXR1cm4gdmFsdWUsIGNhY2hlZCByZXN1bHQsIGZpcnN0IGFyZ3VtZW50
LCB0MCwgYTAsIHIwCisjICB4MCAgPT4gdDAsIGEwLCByMAogIyAgeDEgID0+IHQxLCBhMSwgcjEK
ICMgIHgyICA9PiB0MiwgYTIKLSMgIHgzICA9PiBhMwotIyAgeDUgID0+IHQ0Ci0jICB4NiAgPT4g
dDYKLSMgIHg5ICA9PiAobm9uQXJnR1BSMSBpbiBiYXNlbGluZSkKLSMgeDEzICA9PiBzY3JhdGNo
ICh1bnVzZWQgaW4gYmFzZWxpbmUpCi0jIHgxNiAgPT4gc2NyYXRjaAotIyB4MTcgID0+IHNjcmF0
Y2gKLSMgeDIzICA9PiB0MwotIyB4MjQgID0+IHQ1Ci0jIHgyNyAgPT4gY3NyMSAodGFnVHlwZU51
bWJlcikKLSMgeDI4ICA9PiBjc3IyICh0YWdNYXNrKQorIyAgeDMgID0+IHQzLCBhMworIyAgeDQg
ID0+IHQ0CisjICB4NSAgPT4gdDUKKyMgeDEzICA9PiAgICAgICAgICAgICAgICAgIChzY3JhdGNo
KQorIyB4MTYgID0+ICAgICAgICAgICAgICAgICAgKHNjcmF0Y2gpCisjIHgxNyAgPT4gICAgICAg
ICAgICAgICAgICAoc2NyYXRjaCkKKyMgeDI2ICA9PiAgICAgICAgICAgICBjc3IwIChQQikKKyMg
eDI3ICA9PiAgICAgICAgICAgICBjc3IxICh0YWdUeXBlTnVtYmVyKQorIyB4MjggID0+ICAgICAg
ICAgICAgIGNzcjIgKHRhZ01hc2spCiAjIHgyOSAgPT4gY2ZyCiAjICBzcCAgPT4gc3AKICMgIGxy
ICA9PiBscgogIwotIyBGUFIgY29uZW50aW9ucywgdG8gbWF0Y2ggdGhlIGJhc2VsaW5lIEpJVDoK
KyMgRlBSIGNvbnZlbnRpb25zLCB0byBtYXRjaCB0aGUgYmFzZWxpbmUgSklUOgogIwotIyAgcTAg
ID0+IGZ0MAotIyAgcTEgID0+IGZ0MQotIyAgcTIgID0+IGZ0MgotIyAgcTMgID0+IGZ0MwotIyAg
cTQgID0+IGZ0NCAodW51c2VkIGluIGJhc2VsaW5lKQotIyAgcTUgID0+IGZ0NSAodW51c2VkIGlu
IGJhc2VsaW5lKQorIyAgcTAgID0+IGZ0MCwgZmEwLCBmcgorIyAgcTEgID0+IGZ0MSwgZmExCisj
ICBxMiAgPT4gZnQyLCBmYTIKKyMgIHEzICA9PiBmdDMsIGZhMworIyAgcTQgID0+IGZ0NCAgICAg
ICAgICAodW51c2VkIGluIGJhc2VsaW5lKQorIyAgcTUgID0+IGZ0NSAgICAgICAgICAodW51c2Vk
IGluIGJhc2VsaW5lKQogIyBxMzEgID0+IHNjcmF0Y2gKIAogZGVmIGFybTY0R1BSTmFtZShuYW1l
LCBraW5kKQpAQCAtMTA5LDIwICsxMDcsMTYgQEAgY2xhc3MgUmVnaXN0ZXJJRAogICAgICAgICAg
ICAgYXJtNjRHUFJOYW1lKCd4MScsIGtpbmQpCiAgICAgICAgIHdoZW4gJ3QyJywgJ2EyJwogICAg
ICAgICAgICAgYXJtNjRHUFJOYW1lKCd4MicsIGtpbmQpCi0gICAgICAgIHdoZW4gJ2EzJworICAg
ICAgICB3aGVuICd0MycsICdhMycKICAgICAgICAgICAgIGFybTY0R1BSTmFtZSgneDMnLCBraW5k
KQotICAgICAgICB3aGVuICd0MycKLSAgICAgICAgICAgIGFybTY0R1BSTmFtZSgneDIzJywga2lu
ZCkKICAgICAgICAgd2hlbiAndDQnCi0gICAgICAgICAgICBhcm02NEdQUk5hbWUoJ3g1Jywga2lu
ZCkKKyAgICAgICAgICAgIGFybTY0R1BSTmFtZSgneDQnLCBraW5kKQogICAgICAgICB3aGVuICd0
NScKLSAgICAgICAgICAgIGFybTY0R1BSTmFtZSgneDI0Jywga2luZCkKLSAgICAgICAgd2hlbiAn
dDYnCi0gICAgICAgICAgICBhcm02NEdQUk5hbWUoJ3g2Jywga2luZCkKLSAgICAgICAgd2hlbiAn
dDcnCi0gICAgICAgICAgICBhcm02NEdQUk5hbWUoJ3g3Jywga2luZCkKKyAgICAgICAgICAgIGFy
bTY0R1BSTmFtZSgneDUnLCBraW5kKQogICAgICAgICB3aGVuICdjZnInCiAgICAgICAgICAgICBh
cm02NEdQUk5hbWUoJ3gyOScsIGtpbmQpCisgICAgICAgIHdoZW4gJ2NzcjAnCisgICAgICAgICAg
ICBhcm02NEdQUk5hbWUoJ3gyNicsIGtpbmQpCiAgICAgICAgIHdoZW4gJ2NzcjEnCiAgICAgICAg
ICAgICBhcm02NEdQUk5hbWUoJ3gyNycsIGtpbmQpCiAgICAgICAgIHdoZW4gJ2NzcjInCkBAIC0x
NDAsMTMgKzEzNCwxMyBAQCBlbmQKIGNsYXNzIEZQUmVnaXN0ZXJJRAogICAgIGRlZiBhcm02NE9w
ZXJhbmQoa2luZCkKICAgICAgICAgY2FzZSBAbmFtZQotICAgICAgICB3aGVuICdmdDAnCisgICAg
ICAgIHdoZW4gJ2Z0MCcsICdmcicsICdmYTAnCiAgICAgICAgICAgICBhcm02NEZQUk5hbWUoJ3Ew
Jywga2luZCkKLSAgICAgICAgd2hlbiAnZnQxJworICAgICAgICB3aGVuICdmdDEnLCAnZmExJwog
ICAgICAgICAgICAgYXJtNjRGUFJOYW1lKCdxMScsIGtpbmQpCi0gICAgICAgIHdoZW4gJ2Z0MicK
KyAgICAgICAgd2hlbiAnZnQyJywgJ2ZhMicKICAgICAgICAgICAgIGFybTY0RlBSTmFtZSgncTIn
LCBraW5kKQotICAgICAgICB3aGVuICdmdDMnCisgICAgICAgIHdoZW4gJ2Z0MycsICdmYTMnCiAg
ICAgICAgICAgICBhcm02NEZQUk5hbWUoJ3EzJywga2luZCkKICAgICAgICAgd2hlbiAnZnQ0Jwog
ICAgICAgICAgICAgYXJtNjRGUFJOYW1lKCdxNCcsIGtpbmQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9jbG9vcC5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9vZmZsaW5lYXNtL2Nsb29wLnJiCmluZGV4IDA0YTY5OTgxNDQ3ODZkZWM1NWM0MzZmNmI5OTE1
NGZkMTZiMDdiMmYuLjdlOTM5NDgwZTc4NDc4MDg0YWYyMDE2NzQ3NTY3MDZkNWNmMDJhMGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2Nsb29wLnJiCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2Nsb29wLnJiCkBAIC03MCw5ICs3MCw5
IEBAIGNsYXNzIFJlZ2lzdGVySUQKICAgICAgICAgY2FzZSBuYW1lCiAgICAgICAgICMgVGhlIGNs
b29wIGlzIG1vZGVsbGVkIG9uIHRoZSBBUk0gaW1wbGVtZW50YXRpb24uIEhlbmNlLCB0aGUgYTAt
YTMKICAgICAgICAgIyByZWdpc3RlcnMgYXJlIGFsaWFzZXMgZm9yIHIwLXIzIGkuZS4gdDAtdDMg
aW4gb3VyIGNhc2UuCi0gICAgICAgIHdoZW4gInQwIiwgImEwIgorICAgICAgICB3aGVuICJ0MCIs
ICJhMCIsICJyMCIKICAgICAgICAgICAgICJ0MCIKLSAgICAgICAgd2hlbiAidDEiLCAiYTEiCisg
ICAgICAgIHdoZW4gInQxIiwgImExIiwgInIxIgogICAgICAgICAgICAgInQxIgogICAgICAgICB3
aGVuICJ0MiIsICJhMiIKICAgICAgICAgICAgICJ0MiIKQEAgLTgyLDEwICs4Miw4IEBAIGNsYXNz
IFJlZ2lzdGVySUQKICAgICAgICAgICAgICJwYyIKICAgICAgICAgd2hlbiAidDUiCiAgICAgICAg
ICAgICAidDUiCi0gICAgICAgIHdoZW4gInQ2IgorICAgICAgICB3aGVuICJjc3IwIgogICAgICAg
ICAgICAgInBjQmFzZSIKLSAgICAgICAgd2hlbiAidDciCi0gICAgICAgICAgICAidDciCiAgICAg
ICAgIHdoZW4gImNzcjEiCiAgICAgICAgICAgICAidGFnVHlwZU51bWJlciIKICAgICAgICAgd2hl
biAiY3NyMiIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL21p
cHMucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9taXBzLnJiCmluZGV4IGNj
MTA3ZWMzNzUwYjYyNDU0N2VjZmU3NDVmYzJhOGY2M2M5MzJmYzcuLjMwNTJkY2E0NjUyMWJiMjAz
M2E3MTY5ODg5Njk4YzZhYjkwMDYwYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9vZmZsaW5lYXNtL21pcHMucmIKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVh
c20vbWlwcy5yYgpAQCAtMjQsNiArMjQsNDEgQEAKIAogcmVxdWlyZSAncmlzYycKIAorIyBHUFIg
Y29udmVudGlvbnMsIHRvIG1hdGNoIHRoZSBiYXNlbGluZSBKSVQKKyMKKyMgJGEwID0+IGEwCisj
ICRhMSA9PiBhMQorIyAkYTIgPT4gYTIKKyMgJGEzID0+IGEzCisjICR2MCA9PiB0MCwgcjAKKyMg
JHYxID0+IHQxLCByMQorIyAkdDIgPT4gICAgICAgICB0MgorIyAkdDMgPT4gICAgICAgICB0Mwor
IyAkdDQgPT4gICAgICAgICB0NAorIyAkdDUgPT4gICAgICAgICB0NQorIyAkdDYgPT4gICAgICAg
ICAgICAoc2NyYXRjaCkKKyMgJHQ3ID0+ICAgICAgICAgICAgKHNjcmF0Y2gpCisjICR0OCA9PiAg
ICAgICAgICAgIChzY3JhdGNoKQorIyAkdDkgPT4gICAgICAgICAgICAoc3RvcmVzIHRoZSBjYWxs
ZWUgb2YgYSBjYWxsIG9wY29kZSkKKyMgJGdwID0+ICAgICAgICAgICAgKGdsb2JhbHMpCisjICRz
NCA9PiAgICAgICAgICAgIChjYWxsZWUtc2F2ZSB1c2VkIHRvIHByZXNlcnZlICRncCBhY3Jvc3Mg
Y2FsbHMpCisjICRyYSA9PiBscgorIyAkc3AgPT4gc3AKKyMgJGZwID0+IGNmcgorIworIyBGUFIg
Y29udmVudGlvbnMsIHRvIG1hdGNoIHRoZSBiYXNlbGluZSBKSVQKKyMgV2UgZG9uJ3QgaGF2ZSBm
YTIgb3IgZmEzIQorIyAgJGYwID0+IGZ0MCwgZnIKKyMgICRmMiA9PiBmdDEKKyMgICRmNCA9PiBm
dDIKKyMgICRmNiA9PiBmdDMKKyMgICRmOCA9PiBmdDQKKyMgJGYxMCA9PiBmdDUKKyMgJGYxMiA9
PiAgICAgICAgZmEwCisjICRmMTQgPT4gICAgICAgIGZhMQorIyAkZjE2ID0+ICAgICAgICAgICAg
KHNjcmF0Y2gpCisjICRmMTggPT4gICAgICAgICAgICAoc2NyYXRjaCkKKwogY2xhc3MgQXNzZW1i
bGVyCiAgICAgZGVmIHB1dFN0cihzdHIpCiAgICAgICAgIEBvdXRwLnB1dHMgc3RyCkBAIC01Nyw4
ICs5Miw3IEBAIGNsYXNzIFNwZWNpYWxSZWdpc3RlciA8IE5vQ2hpbGRyZW4KICAgICBlbmQKIGVu
ZAogCi1NSVBTX1RFTVBfR1BSUyA9IFtTcGVjaWFsUmVnaXN0ZXIubmV3KCIkdDUiKSwgU3BlY2lh
bFJlZ2lzdGVyLm5ldygiJHQ2IiksIFNwZWNpYWxSZWdpc3Rlci5uZXcoIiR0NyIpLAotICAgICAg
ICAgICAgICAgICAgICBTcGVjaWFsUmVnaXN0ZXIubmV3KCIkdDgiKV0KK01JUFNfVEVNUF9HUFJT
ID0gW1NwZWNpYWxSZWdpc3Rlci5uZXcoIiR0NiIpLCBTcGVjaWFsUmVnaXN0ZXIubmV3KCIkdDci
KSwgU3BlY2lhbFJlZ2lzdGVyLm5ldygiJHQ4IildCiBNSVBTX1pFUk9fUkVHID0gU3BlY2lhbFJl
Z2lzdGVyLm5ldygiJHplcm8iKQogTUlQU19HUF9SRUcgPSBTcGVjaWFsUmVnaXN0ZXIubmV3KCIk
Z3AiKQogTUlQU19HUFNBVkVfUkVHID0gU3BlY2lhbFJlZ2lzdGVyLm5ldygiJHM0IikKQEAgLTg1
LDI0ICsxMTksMTggQEAgY2xhc3MgUmVnaXN0ZXJJRAogICAgICAgICAgICAgIiRhMiIKICAgICAg
ICAgd2hlbiAiYTMiCiAgICAgICAgICAgICAiJGEzIgotICAgICAgICB3aGVuICJyMCIsICJ0MCIK
KyAgICAgICAgd2hlbiAidDAiLCAicjAiCiAgICAgICAgICAgICAiJHYwIgotICAgICAgICB3aGVu
ICJyMSIsICJ0MSIKKyAgICAgICAgd2hlbiAidDEiLCAicjEiCiAgICAgICAgICAgICAiJHYxIgog
ICAgICAgICB3aGVuICJ0MiIKICAgICAgICAgICAgICIkdDIiCiAgICAgICAgIHdoZW4gInQzIgot
ICAgICAgICAgICAgIiRzMyIKLSAgICAgICAgd2hlbiAidDQiICAgIyBQQyByZWcgaW4gbGxpbnQK
LSAgICAgICAgICAgICIkczIiCisgICAgICAgICAgICAiJHQzIgorICAgICAgICB3aGVuICJ0NCIK
KyAgICAgICAgICAgICIkdDQiCiAgICAgICAgIHdoZW4gInQ1IgogICAgICAgICAgICAgIiR0NSIK
LSAgICAgICAgd2hlbiAidDYiCi0gICAgICAgICAgICAiJHQ2IgotICAgICAgICB3aGVuICJ0NyIK
LSAgICAgICAgICAgICIkdDciCi0gICAgICAgIHdoZW4gInQ4IgotICAgICAgICAgICAgIiR0OCIK
ICAgICAgICAgd2hlbiAiY2ZyIgogICAgICAgICAgICAgIiRmcCIKICAgICAgICAgd2hlbiAibHIi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yZWdpc3RlcnMu
cmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yZWdpc3RlcnMucmIKaW5kZXgg
MTY4NjY3ZTBjYmYxZGUyMTc2ZDA2MDdkMDI4ZjY2ZjljYWU4NmQzMy4uNmUzZjAwNDY5ZDE3Njhm
NzA4NjI0N2ZjYjQ2M2YwODQwZDIxNGY0ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL29mZmxpbmVhc20vcmVnaXN0ZXJzLnJiCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9v
ZmZsaW5lYXNtL3JlZ2lzdGVycy5yYgpAQCAtMzEsMTAgKzMxLDYgQEAgR1BSUyA9CiAgICAgICJ0
MyIsCiAgICAgICJ0NCIsCiAgICAgICJ0NSIsCi0gICAgICJ0NiIsCi0gICAgICJ0NyIsCi0gICAg
ICJ0OCIsCi0gICAgICJ0OSIsCiAgICAgICJjZnIiLAogICAgICAiYTAiLAogICAgICAiYTEiLApA
QCAtNDYsNiArNDIsNyBAQCBHUFJTID0KICAgICAgImxyIiwKICAgICAgInBjIiwKICAgICAgIyA2
NC1iaXQgb25seSByZWdpc3RlcnM6CisgICAgICJjc3IwIiwKICAgICAgImNzcjEiLCAgIyB0YWcg
dHlwZSBudW1iZXIgcmVnaXN0ZXIKICAgICAgImNzcjIiICAgIyB0YWcgbWFzayByZWdpc3Rlcgog
ICAgIF0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3NoNC5y
YiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3NoNC5yYgppbmRleCAwMjQxZjM4
ZDg5ZWJkYjI4ZTNmNDBlYmQ3OTc5MzNmMTQ2Yzc3MDY0Li5jODQ3ZDU2NGEwZDBjMjU1OGYzMDZk
YTc1MWM2OWU1YjQxNTZlY2UxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2Zm
bGluZWFzbS9zaDQucmIKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vc2g0
LnJiCkBAIC0yNCw2ICsyNCwzMyBAQAogCiByZXF1aXJlICdyaXNjJwogCisjIEdQUiBjb252ZW50
aW9ucywgdG8gbWF0Y2ggdGhlIGJhc2VsaW5lIEpJVAorIworIyAgcjAgPT4gdDAsIHIwCisjICBy
MSA9PiB0MSwgcjEKKyMgIHIyID0+IHQ0CisjICByMyA9PiB0NQorIyAgcjQgPT4gICAgICAgICBh
MAorIyAgcjUgPT4gICAgICAgICBhMQorIyAgcjYgPT4gdDIsICAgICBhMgorIyAgcjcgPT4gdDMs
ICAgICBhMworIyByMTAgPT4gICAgICAgICAgICAoc2NyYXRjaCkKKyMgcjExID0+ICAgICAgICAg
ICAgKHNjcmF0Y2gpCisjIHIxMyA9PiAgICAgICAgICAgIChzY3JhdGNoKQorIyByMTQgPT4gY2Zy
CisjIHIxNSA9PiBzcAorIyAgcHIgPT4gbHIKKworIyBGUFIgY29udmVudGlvbnMsIHRvIG1hdGNo
IHRoZSBiYXNlbGluZSBKSVQKKyMgV2UgZG9uJ3QgaGF2ZSBmYTIgb3IgZmEzIQorIyAgZHIwID0+
IGZ0MCwgZnIKKyMgIGRyMiA9PiBmdDEKKyMgIGRyNCA9PiBmdDIsICAgZmEwCisjICBkcjYgPT4g
ZnQzLCAgIGZhMQorIyAgZHI4ID0+IGZ0NAorIyBkcjEwID0+IGZ0NQorIyBkcjEyID0+ICAgICAg
ICAgICAgIChzY3JhdGNoKQorCiBjbGFzcyBOb2RlCiAgICAgZGVmIHNoNFNpbmdsZUhpCiAgICAg
ICAgIGRvdWJsZU9wZXJhbmQgPSBzaDRPcGVyYW5kCkBAIC01MSwzMiArNzgsMjggQEAgY2xhc3Mg
U3BlY2lhbFJlZ2lzdGVyIDwgTm9DaGlsZHJlbgogICAgIGVuZAogZW5kCiAKLVNINF9UTVBfR1BS
UyA9IFsgU3BlY2lhbFJlZ2lzdGVyLm5ldygicjMiKSwgU3BlY2lhbFJlZ2lzdGVyLm5ldygicjEx
IiksIFNwZWNpYWxSZWdpc3Rlci5uZXcoInIxMyIpIF0KLVNINF9UTVBfRlBSUyA9IFsgU3BlY2lh
bFJlZ2lzdGVyLm5ldygiZHIxMCIpIF0KK1NINF9UTVBfR1BSUyA9IFsgU3BlY2lhbFJlZ2lzdGVy
Lm5ldygicjEwIiksIFNwZWNpYWxSZWdpc3Rlci5uZXcoInIxMSIpLCBTcGVjaWFsUmVnaXN0ZXIu
bmV3KCJyMTMiKSBdCitTSDRfVE1QX0ZQUlMgPSBbIFNwZWNpYWxSZWdpc3Rlci5uZXcoImRyMTIi
KSBdCiAKIGNsYXNzIFJlZ2lzdGVySUQKICAgICBkZWYgc2g0T3BlcmFuZAogICAgICAgICBjYXNl
IG5hbWUKLSAgICAgICAgd2hlbiAidDAiCi0gICAgICAgICAgICAicjAiCi0gICAgICAgIHdoZW4g
InQxIgotICAgICAgICAgICAgInIxIgotICAgICAgICB3aGVuICJ0MiIKLSAgICAgICAgICAgICJy
MiIKLSAgICAgICAgd2hlbiAidDMiCi0gICAgICAgICAgICAicjEwIgotICAgICAgICB3aGVuICJ0
NCIsICJhMCIKKyAgICAgICAgd2hlbiAiYTAiCiAgICAgICAgICAgICAicjQiCi0gICAgICAgIHdo
ZW4gInQ1IiwgImExIgorICAgICAgICB3aGVuICJhMSIKICAgICAgICAgICAgICJyNSIKLSAgICAg
ICAgd2hlbiAidDYiLCAiYTIiCisgICAgICAgIHdoZW4gInIwIiwgInQwIgorICAgICAgICAgICAg
InIwIgorICAgICAgICB3aGVuICJyMSIsICJ0MSIKKyAgICAgICAgICAgICJyMSIKKyAgICAgICAg
d2hlbiAiYTIiLCAidDIiCiAgICAgICAgICAgICAicjYiCi0gICAgICAgIHdoZW4gInQ3IiwgImEz
IgorICAgICAgICB3aGVuICJhMyIsICJ0MyIKICAgICAgICAgICAgICJyNyIKLSAgICAgICAgd2hl
biAidDgiCi0gICAgICAgICAgICAicjgiCi0gICAgICAgIHdoZW4gInQ5IgotICAgICAgICAgICAg
InI5IgorICAgICAgICB3aGVuICJ0NCIKKyAgICAgICAgICAgICJyMiIKKyAgICAgICAgd2hlbiAi
dDUiCisgICAgICAgICAgICAicjMiCiAgICAgICAgIHdoZW4gImNmciIKICAgICAgICAgICAgICJy
MTQiCiAgICAgICAgIHdoZW4gInNwIgpAQCAtOTYsMTQgKzExOSwxNCBAQCBjbGFzcyBGUFJlZ2lz
dGVySUQKICAgICAgICAgICAgICJkcjAiCiAgICAgICAgIHdoZW4gImZ0MSIKICAgICAgICAgICAg
ICJkcjIiCi0gICAgICAgIHdoZW4gImZ0MiIKKyAgICAgICAgd2hlbiAiZnQyIiwgImZhMCIKICAg
ICAgICAgICAgICJkcjQiCi0gICAgICAgIHdoZW4gImZ0MyIKKyAgICAgICAgd2hlbiAiZnQzIiwg
ImZhMSIKICAgICAgICAgICAgICJkcjYiCiAgICAgICAgIHdoZW4gImZ0NCIKICAgICAgICAgICAg
ICJkcjgiCi0gICAgICAgIHdoZW4gImZhMCIKLSAgICAgICAgICAgICJkcjEyIgorICAgICAgICB3
aGVuICJmdDUiCisgICAgICAgICAgICAiZHIxMCIKICAgICAgICAgZWxzZQogICAgICAgICAgICAg
cmFpc2UgIkJhZCByZWdpc3RlciAje25hbWV9IGZvciBTSDQgYXQgI3tjb2RlT3JpZ2luU3RyaW5n
fSIKICAgICAgICAgZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGlu
ZWFzbS94ODYucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS94ODYucmIKaW5k
ZXggODgzMGUzZDQxZDJhYjA5NDMyYTJhNDdkNjkzNWMwOGM0ZjhjZjNhMS4uYTI3NDA2N2MwNTkw
YzI3MTE0MzQxMmFkMzQxMjA1Y2U4ZGQwNTMwZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL29mZmxpbmVhc20veDg2LnJiCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZs
aW5lYXNtL3g4Ni5yYgpAQCAtMjQsNiArMjQsNjIgQEAKIAogcmVxdWlyZSAiY29uZmlnIgogCisj
IEdQUiBjb252ZW50aW9ucywgdG8gbWF0Y2ggdGhlIGJhc2VsaW5lIEpJVDoKKyMKKyMKKyMgT24g
eDg2LTMyIGJpdHMgKHdpbmRvd3MgYW5kIG5vbi13aW5kb3dzKQorIyBhMCwgYTEsIGEyLCBhMyBh
cmUgb25seSB0aGVyZSBmb3IgZWFzZS1vZi11c2Ugb2Ygb2ZmbGluZWFzbTsgdGhleSBhcmUgbm90
CisjIGFjdHVhbGx5IGNvbnNpZGVyZWQgYXMgc3VjaCBieSB0aGUgQUJJIGFuZCB3ZSBuZWVkIHRv
IHB1c2gvcG9wIG91ciBhcmd1bWVudHMKKyMgb24gdGhlIHN0YWNrLiBhMCBhbmQgYTEgYXJlIGVj
eCBhbmQgZWR4IHRvIGZvbGxvdyBmYXN0Y2FsbC4KKyMKKyMgZWF4ID0+IHQwLCBhMiwgcjAKKyMg
ZWR4ID0+IHQxLCBhMSwgcjEKKyMgZWN4ID0+IHQyLCBhMAorIyBlYnggPT4gdDMsIGEzICAgICAo
Y2FsbGVlLXNhdmUpCisjIGVzaSA9PiB0NCAgICAgICAgIChjYWxsZWUtc2F2ZSkKKyMgZWRpID0+
IHQ1ICAgICAgICAgKGNhbGxlZS1zYXZlKQorIyBlYnAgPT4gY2ZyCisjIGVzcCA9PiBzcAorIwor
IyBPbiB4ODYtNjQgbm9uLXdpbmRvd3MKKyMKKyMgcmF4ID0+IHQwLCAgICAgcjAKKyMgcmRpID0+
ICAgICBhMAorIyByc2kgPT4gdDEsIGExCisjIHJkeCA9PiB0MiwgYTIsIHIxCisjIHJjeCA9PiB0
MywgYTMKKyMgIHI4ID0+IHQ0CisjIHIxMCA9PiB0NQorIyByYnggPT4gICAgICAgICAgICAgY3Ny
MCAoY2FsbGVlLXNhdmUsIFBCLCB1bnVzZWQgaW4gYmFzZWxpbmUpCisjIHIxMiA9PiAgICAgICAg
ICAgICAgICAgIChjYWxsZWUtc2F2ZSkKKyMgcjEzID0+ICAgICAgICAgICAgICAgICAgKGNhbGxl
ZS1zYXZlKQorIyByMTQgPT4gICAgICAgICAgICAgY3NyMSAoY2FsbGVlLXNhdmUsIHRhZ1R5cGVO
dW1iZXIpCisjIHIxNSA9PiAgICAgICAgICAgICBjc3IyIChjYWxsZWUtc2F2ZSwgdGFnTWFzaykK
KyMgcnNwID0+IHNwCisjIHJicCA9PiBjZnIKKyMgcjExID0+ICAgICAgICAgICAgICAgICAgKHNj
cmF0Y2gpCisjCisjIE9uIHg4Ni02NCB3aW5kb3dzCisjIEFyZ3VtZW50cyBuZWVkIHRvIGJlIHB1
c2gvcG9wJ2Qgb24gdGhlIHN0YWNrIGluIGFkZGl0aW9uIHRvIGJlaW5nIHN0b3JlZCBpbgorIyB0
aGUgcmVnaXN0ZXJzLiBBbHNvLCA+OCByZXR1cm4gdHlwZXMgYXJlIHJldHVybmVkIGluIGEgd2Vp
cmQgd2F5LgorIworIyByYXggPT4gdDAsICAgICByMAorIyByY3ggPT4gICAgIGEwCisjIHJkeCA9
PiB0MSwgYTEsIHIxCisjICByOCA9PiB0MiwgYTIKKyMgIHI5ID0+IHQzLCBhMworIyByZGkgPT4g
dDQsICAgICAgICAgICAgICAoY2FsbGVlLXNhdmUpCisjIHIxMCA9PiB0NQorIyByc2kgPT4gICAg
ICAgICAgICAgICAgICAoY2FsbGVlLXNhdmUpCisjIHJieCA9PiAgICAgICAgICAgICBjc3IwIChj
YWxsZWUtc2F2ZSwgUEIsIHVudXNlZCBpbiBiYXNlbGluZSkKKyMgcjEyID0+ICAgICAgICAgICAg
ICAgICAgKGNhbGxlZS1zYXZlKQorIyByMTMgPT4gICAgICAgICAgICAgICAgICAoY2FsbGVlLXNh
dmUpCisjIHIxNCA9PiAgICAgICAgICAgICBjc3IxIChjYWxsZWUtc2F2ZSwgdGFnVHlwZU51bWJl
cikKKyMgcjE1ID0+ICAgICAgICAgICAgIGNzcjIgKGNhbGxlZS1zYXZlLCB0YWdNYXNrKQorIyBy
c3AgPT4gc3AKKyMgcmJwID0+IGNmcgorIyByMTEgPT4gICAgICAgICAgICAgICAgICAoc2NyYXRj
aCkKKwogZGVmIGlzWDY0CiAgICAgY2FzZSAkYWN0aXZlQmFja2VuZAogICAgIHdoZW4gIlg4NiIK
QEAgLTM5LDYgKzk1LDIxIEBAIGRlZiBpc1g2NAogICAgIGVuZAogZW5kCiAKK2RlZiBpc1dpbgor
ICAgIGNhc2UgJGFjdGl2ZUJhY2tlbmQKKyAgICB3aGVuICJYODYiCisgICAgICAgIGZhbHNlCisg
ICAgd2hlbiAiWDg2X1dJTiIKKyAgICAgICAgdHJ1ZQorICAgIHdoZW4gIlg4Nl82NCIKKyAgICAg
ICAgZmFsc2UKKyAgICB3aGVuICJYODZfNjRfV0lOIgorICAgICAgICB0cnVlCisgICAgZWxzZQor
ICAgICAgICByYWlzZSAiYmFkIHZhbHVlIGZvciAkYWN0aXZlQmFja2VuZDogI3skYWN0aXZlQmFj
a2VuZH0iCisgICAgZW5kCitlbmQKKwogZGVmIHVzZVg4NwogICAgIGNhc2UgJGFjdGl2ZUJhY2tl
bmQKICAgICB3aGVuICJYODYiCkBAIC01NCwyMCArMTI1LDIwIEBAIGRlZiB1c2VYODcKICAgICBl
bmQKIGVuZAogCi1kZWYgaXNXaW5kb3dzCitkZWYgaXNDb21waWxpbmdPbldpbmRvd3MKICAgICBF
TlZbJ09TJ10gPT0gJ1dpbmRvd3NfTlQnCiBlbmQKIAogZGVmIGlzR0NDCi0gICAgIWlzV2luZG93
cworICAgICFpc0NvbXBpbGluZ09uV2luZG93cwogZW5kCiAKIGRlZiBpc01TVkMKLSAgICBpc1dp
bmRvd3MKKyAgICBpc0NvbXBpbGluZ09uV2luZG93cwogZW5kCiAKIGRlZiBpc0ludGVsU3ludGF4
Ci0gICAgaXNXaW5kb3dzCisgICAgaXNDb21waWxpbmdPbldpbmRvd3MKIGVuZAogCiBkZWYgcmVn
aXN0ZXIobmFtZSkKQEAgLTE0MSwyMDUgKzIxMiwxMjEgQEAgZW5kCiAKIFg2NF9TQ1JBVENIX1JF
R0lTVEVSID0gU3BlY2lhbFJlZ2lzdGVyLm5ldygicjExIikKIAorZGVmIHg4NkdQUk5hbWUobmFt
ZSwga2luZCkKKyAgICBjYXNlIG5hbWUKKyAgICB3aGVuICJlYXgiLCAiZWJ4IiwgImVjeCIsICJl
ZHgiCisgICAgICAgIG5hbWU4ID0gbmFtZVsxXSArICdsJworICAgICAgICBuYW1lMTYgPSBuYW1l
WzEuLjJdCisgICAgd2hlbiAiZXNpIiwgImVkaSIsICJlYnAiLCAiZXNwIgorICAgICAgICBuYW1l
MTYgPSBuYW1lWzEuLjJdCisgICAgICAgIG5hbWU4ID0gbmFtZTE2ICsgJ2wnCisgICAgd2hlbiAi
cmF4IiwgInJieCIsICJyY3giLCAicmR4IgorICAgICAgICByYWlzZSAiYmFkIEdQUiBuYW1lICN7
bmFtZX0gaW4gMzItYml0IFg4NiIgdW5sZXNzIGlzWDY0CisgICAgICAgIG5hbWU4ID0gbmFtZVsx
XSArICdsJworICAgICAgICBuYW1lMTYgPSBuYW1lWzEuLjJdCisgICAgd2hlbiAicjgiLCAicjki
LCAicjEwIiwgInIxMiIsICJyMTMiLCAicjE0IiwgInIxNSIKKyAgICAgICAgcmFpc2UgImJhZCBH
UFIgbmFtZSAje25hbWV9IGluIDMyLWJpdCBYODYiIHVubGVzcyBpc1g2NAorICAgICAgICBjYXNl
IGtpbmQKKyAgICAgICAgd2hlbiA6aGFsZgorICAgICAgICAgICAgcmV0dXJuIHJlZ2lzdGVyKG5h
bWUgKyAidyIpCisgICAgICAgIHdoZW4gOmludAorICAgICAgICAgICAgcmV0dXJuIHJlZ2lzdGVy
KG5hbWUgKyAiZCIpCisgICAgICAgIHdoZW4gOnB0cgorICAgICAgICAgICAgcmV0dXJuIHJlZ2lz
dGVyKG5hbWUpCisgICAgICAgIHdoZW4gOnF1YWQKKyAgICAgICAgICAgIHJldHVybiByZWdpc3Rl
cihuYW1lKQorICAgICAgICBlbmQKKyAgICBlbHNlCisgICAgICAgIHJhaXNlICJiYWQgR1BSIG5h
bWUgI3tuYW1lfSIKKyAgICBlbmQKKyAgICBjYXNlIGtpbmQKKyAgICB3aGVuIDpieXRlCisgICAg
ICAgIHJlZ2lzdGVyKG5hbWU4KQorICAgIHdoZW4gOmhhbGYKKyAgICAgICAgcmVnaXN0ZXIobmFt
ZTE2KQorICAgIHdoZW4gOmludAorICAgICAgICByZWdpc3RlcigiZSIgKyBuYW1lMTYpCisgICAg
d2hlbiA6cHRyCisgICAgICAgIHJlZ2lzdGVyKChpc1g2NCA/ICJyIiA6ICJlIikgKyBuYW1lMTYp
CisgICAgd2hlbiA6cXVhZAorICAgICAgICBpc1g2NCA/IHJlZ2lzdGVyKCJyIiArIG5hbWUxNikg
OiByYWlzZQorICAgIGVsc2UKKyAgICAgICAgcmFpc2UgImludmFsaWQga2luZCAje2tpbmR9IGZv
ciBHUFIgI3tuYW1lfSBpbiBYODYiCisgICAgZW5kCitlbmQKKwogY2xhc3MgUmVnaXN0ZXJJRAog
ICAgIGRlZiBzdXBwb3J0czhCaXRPblg4NgotICAgICAgICBjYXNlIG5hbWUKLSAgICAgICAgd2hl
biAidDAiLCAiYTAiLCAicjAiLCAidDEiLCAiYTEiLCAicjEiLCAidDIiLCAidDMiLCAidDQiLCAi
dDUiCisgICAgICAgIGNhc2UgeDg2R1BSCisgICAgICAgIHdoZW4gImVheCIsICJlYngiLCAiZWN4
IiwgImVkeCIsICJlZGkiLCAiZXNpIiwgImVicCIsICJlc3AiCiAgICAgICAgICAgICB0cnVlCi0g
ICAgICAgIHdoZW4gImNmciIsICJ0dG5yIiwgInRtciIKKyAgICAgICAgd2hlbiAicjgiLCAicjki
LCAicjEwIiwgInIxMiIsICJyMTMiLCAicjE0IiwgInIxNSIKICAgICAgICAgICAgIGZhbHNlCi0g
ICAgICAgIHdoZW4gInQ2IgotICAgICAgICAgICAgaXNYNjQKICAgICAgICAgZWxzZQogICAgICAg
ICAgICAgcmFpc2UKICAgICAgICAgZW5kCiAgICAgZW5kCi0gICAgCi0gICAgZGVmIHg4Nk9wZXJh
bmQoa2luZCkKLSAgICAgICAgY2FzZSBuYW1lCi0gICAgICAgIHdoZW4gInQwIiwgImEwIiwgInIw
IgotICAgICAgICAgICAgY2FzZSBraW5kCi0gICAgICAgICAgICB3aGVuIDpieXRlCi0gICAgICAg
ICAgICAgICAgcmVnaXN0ZXIoImFsIikKLSAgICAgICAgICAgIHdoZW4gOmhhbGYKLSAgICAgICAg
ICAgICAgICByZWdpc3RlcigiYXgiKQotICAgICAgICAgICAgd2hlbiA6aW50Ci0gICAgICAgICAg
ICAgICAgcmVnaXN0ZXIoImVheCIpCi0gICAgICAgICAgICB3aGVuIDpwdHIKLSAgICAgICAgICAg
ICAgICBpc1g2NCA/IHJlZ2lzdGVyKCJyYXgiKSA6IHJlZ2lzdGVyKCJlYXgiKQotICAgICAgICAg
ICAgd2hlbiA6cXVhZAotICAgICAgICAgICAgICAgIGlzWDY0ID8gcmVnaXN0ZXIoInJheCIpIDog
cmFpc2UKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICByYWlzZSAiSW52YWxpZCBr
aW5kICN7a2luZH0gZm9yIG5hbWUgI3tuYW1lfSIKLSAgICAgICAgICAgIGVuZAotICAgICAgICB3
aGVuICJ0MSIsICJhMSIsICJyMSIKLSAgICAgICAgICAgIGNhc2Uga2luZAotICAgICAgICAgICAg
d2hlbiA6Ynl0ZQotICAgICAgICAgICAgICAgIHJlZ2lzdGVyKCJkbCIpCi0gICAgICAgICAgICB3
aGVuIDpoYWxmCi0gICAgICAgICAgICAgICAgcmVnaXN0ZXIoImR4IikKLSAgICAgICAgICAgIHdo
ZW4gOmludAotICAgICAgICAgICAgICAgIHJlZ2lzdGVyKCJlZHgiKQotICAgICAgICAgICAgd2hl
biA6cHRyCi0gICAgICAgICAgICAgICAgaXNYNjQgPyByZWdpc3RlcigicmR4IikgOiByZWdpc3Rl
cigiZWR4IikKLSAgICAgICAgICAgIHdoZW4gOnF1YWQKLSAgICAgICAgICAgICAgICBpc1g2NCA/
IHJlZ2lzdGVyKCJyZHgiKSA6IHJhaXNlCi0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAg
ICAgcmFpc2UKLSAgICAgICAgICAgIGVuZAotICAgICAgICB3aGVuICJ0MiIKLSAgICAgICAgICAg
IGNhc2Uga2luZAotICAgICAgICAgICAgd2hlbiA6Ynl0ZQotICAgICAgICAgICAgICAgIHJlZ2lz
dGVyKCJjbCIpCi0gICAgICAgICAgICB3aGVuIDpoYWxmCi0gICAgICAgICAgICAgICAgcmVnaXN0
ZXIoImN4IikKLSAgICAgICAgICAgIHdoZW4gOmludAotICAgICAgICAgICAgICAgIHJlZ2lzdGVy
KCJlY3giKQotICAgICAgICAgICAgd2hlbiA6cHRyCi0gICAgICAgICAgICAgICAgaXNYNjQgPyBy
ZWdpc3RlcigicmN4IikgOiByZWdpc3RlcigiZWN4IikKLSAgICAgICAgICAgIHdoZW4gOnF1YWQK
LSAgICAgICAgICAgICAgICBpc1g2NCA/IHJlZ2lzdGVyKCJyY3giKSA6IHJhaXNlCi0gICAgICAg
ICAgICBlbHNlCi0gICAgICAgICAgICAgICAgcmFpc2UKLSAgICAgICAgICAgIGVuZAotICAgICAg
ICB3aGVuICJ0MyIKLSAgICAgICAgICAgIGNhc2Uga2luZAotICAgICAgICAgICAgd2hlbiA6Ynl0
ZQotICAgICAgICAgICAgICAgIHJlZ2lzdGVyKCJibCIpCi0gICAgICAgICAgICB3aGVuIDpoYWxm
Ci0gICAgICAgICAgICAgICAgcmVnaXN0ZXIoImJ4IikKLSAgICAgICAgICAgIHdoZW4gOmludAot
ICAgICAgICAgICAgICAgIHJlZ2lzdGVyKCJlYngiKQotICAgICAgICAgICAgd2hlbiA6cHRyCi0g
ICAgICAgICAgICAgICAgaXNYNjQgPyByZWdpc3RlcigicmJ4IikgOiByZWdpc3RlcigiZWJ4IikK
LSAgICAgICAgICAgIHdoZW4gOnF1YWQKLSAgICAgICAgICAgICAgICBpc1g2NCA/IHJlZ2lzdGVy
KCJyYngiKSA6IHJhaXNlCi0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgcmFpc2UK
LSAgICAgICAgICAgIGVuZAotICAgICAgICB3aGVuICJ0NCIKLSAgICAgICAgICAgIGNhc2Uga2lu
ZAotICAgICAgICAgICAgd2hlbiA6Ynl0ZQotICAgICAgICAgICAgICAgIHJlZ2lzdGVyKCJkaWwi
KQotICAgICAgICAgICAgd2hlbiA6aGFsZgotICAgICAgICAgICAgICAgIHJlZ2lzdGVyKCJkaSIp
Ci0gICAgICAgICAgICB3aGVuIDppbnQKLSAgICAgICAgICAgICAgICByZWdpc3RlcigiZWRpIikK
LSAgICAgICAgICAgIHdoZW4gOnB0cgotICAgICAgICAgICAgICAgIGlzWDY0ID8gcmVnaXN0ZXIo
InJkaSIpIDogcmVnaXN0ZXIoImVkaSIpCi0gICAgICAgICAgICB3aGVuIDpxdWFkCi0gICAgICAg
ICAgICAgICAgaXNYNjQgPyByZWdpc3RlcigicmRpIikgOiByYWlzZQotICAgICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgICAgIHJhaXNlCi0gICAgICAgICAgICBlbmQKLSAgICAgICAgd2hlbiAi
Y2ZyIgotICAgICAgICAgICAgaWYgaXNYNjQKLSAgICAgICAgICAgICAgICBjYXNlIGtpbmQKLSAg
ICAgICAgICAgICAgICB3aGVuIDpoYWxmCi0gICAgICAgICAgICAgICAgICAgIHJlZ2lzdGVyKCJi
cCIpCi0gICAgICAgICAgICAgICAgd2hlbiA6aW50Ci0gICAgICAgICAgICAgICAgICAgIHJlZ2lz
dGVyKCJlYnAiKQotICAgICAgICAgICAgICAgIHdoZW4gOnB0cgotICAgICAgICAgICAgICAgICAg
ICByZWdpc3RlcigicmJwIikKLSAgICAgICAgICAgICAgICB3aGVuIDpxdWFkCi0gICAgICAgICAg
ICAgICAgICAgIHJlZ2lzdGVyKCJyYnAiKQotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAg
ICAgICAgICAgICAgcmFpc2UKLSAgICAgICAgICAgICAgICBlbmQKLSAgICAgICAgICAgIGVsc2UK
LSAgICAgICAgICAgICAgICBjYXNlIGtpbmQKLSAgICAgICAgICAgICAgICB3aGVuIDpoYWxmCi0g
ICAgICAgICAgICAgICAgICAgIHJlZ2lzdGVyKCJicCIpCi0gICAgICAgICAgICAgICAgd2hlbiA6
aW50Ci0gICAgICAgICAgICAgICAgICAgIHJlZ2lzdGVyKCJlYnAiKQotICAgICAgICAgICAgICAg
IHdoZW4gOnB0cgotICAgICAgICAgICAgICAgICAgICByZWdpc3RlcigiZWJwIikKLSAgICAgICAg
ICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIHJhaXNlCi0gICAgICAgICAgICAgICAg
ZW5kCi0gICAgICAgICAgICBlbmQKLSAgICAgICAgd2hlbiAic3AiCi0gICAgICAgICAgICBjYXNl
IGtpbmQKLSAgICAgICAgICAgIHdoZW4gOmJ5dGUKLSAgICAgICAgICAgICAgICByZWdpc3Rlcigi
c3BsIikKLSAgICAgICAgICAgIHdoZW4gOmhhbGYKLSAgICAgICAgICAgICAgICByZWdpc3Rlcigi
c3AiKQotICAgICAgICAgICAgd2hlbiA6aW50Ci0gICAgICAgICAgICAgICAgcmVnaXN0ZXIoImVz
cCIpCi0gICAgICAgICAgICB3aGVuIDpwdHIKLSAgICAgICAgICAgICAgICBpc1g2NCA/IHJlZ2lz
dGVyKCJyc3AiKSA6IHJlZ2lzdGVyKCJlc3AiKQotICAgICAgICAgICAgd2hlbiA6cXVhZAotICAg
ICAgICAgICAgICAgIGlzWDY0ID8gcmVnaXN0ZXIoInJzcCIpIDogcmFpc2UKKworICAgIGRlZiB4
ODZHUFIKKyAgICAgICAgaWYgaXNYNjQKKyAgICAgICAgICAgIGNhc2UgbmFtZQorICAgICAgICAg
ICAgd2hlbiAidDAiLCAicjAiCisgICAgICAgICAgICAgICAgImVheCIKKyAgICAgICAgICAgIHdo
ZW4gInIxIgorICAgICAgICAgICAgICAgICJlZHgiICMgdDEgPSBhMSB3aGVuIGlzV2luLCB0MiA9
IGEyIG90aGVyd2lzZQorICAgICAgICAgICAgd2hlbiAiYTAiCisgICAgICAgICAgICAgICAgaXNX
aW4gPyAiZWN4IiA6ICJlZGkiCisgICAgICAgICAgICB3aGVuICJ0MSIsICJhMSIKKyAgICAgICAg
ICAgICAgICBpc1dpbiA/ICJlZHgiIDogImVzaSIKKyAgICAgICAgICAgIHdoZW4gInQyIiwgImEy
IgorICAgICAgICAgICAgICAgIGlzV2luID8gInI4IiA6ICJlZHgiCisgICAgICAgICAgICB3aGVu
ICJ0MyIsICJhMyIKKyAgICAgICAgICAgICAgICBpc1dpbiA/ICJyOSIgOiAiZWN4IgorICAgICAg
ICAgICAgd2hlbiAidDQiCisgICAgICAgICAgICAgICAgaXNXaW4gPyAiZWRpIiA6ICJyOCIKKyAg
ICAgICAgICAgIHdoZW4gInQ1IgorICAgICAgICAgICAgICAgICJyMTAiCisgICAgICAgICAgICB3
aGVuICJjc3IwIgorICAgICAgICAgICAgICAgICJlYngiCisgICAgICAgICAgICB3aGVuICJjc3Ix
IgorICAgICAgICAgICAgICAgICJyMTQiCisgICAgICAgICAgICB3aGVuICJjc3IyIgorICAgICAg
ICAgICAgICAgICJyMTUiCisgICAgICAgICAgICB3aGVuICJjZnIiCisgICAgICAgICAgICAgICAg
ImVicCIKKyAgICAgICAgICAgIHdoZW4gInNwIgorICAgICAgICAgICAgICAgICJlc3AiCiAgICAg
ICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgcmFpc2UKLSAgICAgICAgICAgIGVuZAotICAg
ICAgICB3aGVuICJ0NSIKLSAgICAgICAgICAgIGNhc2Uga2luZAotICAgICAgICAgICAgd2hlbiA6
Ynl0ZQotICAgICAgICAgICAgICAgIHJlZ2lzdGVyKCJzaWwiKQotICAgICAgICAgICAgd2hlbiA6
aGFsZgotICAgICAgICAgICAgICAgIHJlZ2lzdGVyKCJzaSIpCi0gICAgICAgICAgICB3aGVuIDpp
bnQKLSAgICAgICAgICAgICAgICByZWdpc3RlcigiZXNpIikKLSAgICAgICAgICAgIHdoZW4gOnB0
cgotICAgICAgICAgICAgICAgIGlzWDY0ID8gcmVnaXN0ZXIoInJzaSIpIDogcmVnaXN0ZXIoImVz
aSIpCi0gICAgICAgICAgICB3aGVuIDpxdWFkCi0gICAgICAgICAgICAgICAgaXNYNjQgPyByZWdp
c3RlcigicnNpIikgOiByYWlzZQotICAgICAgICAgICAgZW5kCi0gICAgICAgIHdoZW4gInQ2Igot
ICAgICAgICAgICAgcmFpc2UgIkNhbm5vdCB1c2UgI3tuYW1lfSBpbiAzMi1iaXQgWDg2IGF0ICN7
Y29kZU9yaWdpblN0cmluZ30iIHVubGVzcyBpc1g2NAotICAgICAgICAgICAgY2FzZSBraW5kCi0g
ICAgICAgICAgICB3aGVuIDpoYWxmCi0gICAgICAgICAgICAgICAgcmVnaXN0ZXIoInI4dyIpCi0g
ICAgICAgICAgICB3aGVuIDppbnQKLSAgICAgICAgICAgICAgICByZWdpc3RlcigicjhkIikKLSAg
ICAgICAgICAgIHdoZW4gOnB0cgotICAgICAgICAgICAgICAgIHJlZ2lzdGVyKCJyOCIpCi0gICAg
ICAgICAgICB3aGVuIDpxdWFkCi0gICAgICAgICAgICAgICAgcmVnaXN0ZXIoInI4IikKLSAgICAg
ICAgICAgIGVuZAotICAgICAgICB3aGVuICJ0NyIKLSAgICAgICAgICAgIHJhaXNlICJDYW5ub3Qg
dXNlICN7bmFtZX0gaW4gMzItYml0IFg4NiBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IiB1bmxlc3Mg
aXNYNjQKLSAgICAgICAgICAgIGNhc2Uga2luZAotICAgICAgICAgICAgd2hlbiA6aGFsZgotICAg
ICAgICAgICAgICAgIHJlZ2lzdGVyKCJyOXciKQotICAgICAgICAgICAgd2hlbiA6aW50Ci0gICAg
ICAgICAgICAgICAgcmVnaXN0ZXIoInI5ZCIpCi0gICAgICAgICAgICB3aGVuIDpwdHIKLSAgICAg
ICAgICAgICAgICByZWdpc3RlcigicjkiKQotICAgICAgICAgICAgd2hlbiA6cXVhZAotICAgICAg
ICAgICAgICAgIHJlZ2lzdGVyKCJyOSIpCi0gICAgICAgICAgICBlbmQKLSAgICAgICAgd2hlbiAi
Y3NyMSIKLSAgICAgICAgICAgIHJhaXNlICJDYW5ub3QgdXNlICN7bmFtZX0gaW4gMzItYml0IFg4
NiBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IiB1bmxlc3MgaXNYNjQKLSAgICAgICAgICAgIGNhc2Ug
a2luZAotICAgICAgICAgICAgd2hlbiA6aGFsZgotICAgICAgICAgICAgICAgIHJlZ2lzdGVyKCJy
MTR3IikKLSAgICAgICAgICAgIHdoZW4gOmludAotICAgICAgICAgICAgICAgIHJlZ2lzdGVyKCJy
MTRkIikKLSAgICAgICAgICAgIHdoZW4gOnB0cgotICAgICAgICAgICAgICAgIHJlZ2lzdGVyKCJy
MTQiKQotICAgICAgICAgICAgd2hlbiA6cXVhZAotICAgICAgICAgICAgICAgIHJlZ2lzdGVyKCJy
MTQiKQotICAgICAgICAgICAgZW5kCi0gICAgICAgIHdoZW4gImNzcjIiCi0gICAgICAgICAgICBy
YWlzZSAiQ2Fubm90IHVzZSAje25hbWV9IGluIDMyLWJpdCBYODYgYXQgI3tjb2RlT3JpZ2luU3Ry
aW5nfSIgdW5sZXNzIGlzWDY0Ci0gICAgICAgICAgICBjYXNlIGtpbmQKLSAgICAgICAgICAgIHdo
ZW4gOmhhbGYKLSAgICAgICAgICAgICAgICByZWdpc3RlcigicjE1dyIpCi0gICAgICAgICAgICB3
aGVuIDppbnQKLSAgICAgICAgICAgICAgICByZWdpc3RlcigicjE1ZCIpCi0gICAgICAgICAgICB3
aGVuIDpwdHIKLSAgICAgICAgICAgICAgICByZWdpc3RlcigicjE1IikKLSAgICAgICAgICAgIHdo
ZW4gOnF1YWQKLSAgICAgICAgICAgICAgICByZWdpc3RlcigicjE1IikKKyAgICAgICAgICAgICAg
ICByYWlzZSAiY2Fubm90IHVzZSByZWdpc3RlciAje25hbWV9IG9uIFg4NiIKICAgICAgICAgICAg
IGVuZAogICAgICAgICBlbHNlCi0gICAgICAgICAgICByYWlzZSAiQmFkIHJlZ2lzdGVyICN7bmFt
ZX0gZm9yIFg4NiBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IgorICAgICAgICAgICAgY2FzZSBuYW1l
CisgICAgICAgICAgICB3aGVuICJ0MCIsICJyMCIsICJhMiIKKyAgICAgICAgICAgICAgICAiZWF4
IgorICAgICAgICAgICAgd2hlbiAidDEiLCAicjEiLCAiYTEiCisgICAgICAgICAgICAgICAgImVk
eCIKKyAgICAgICAgICAgIHdoZW4gInQyIiwgImEwIgorICAgICAgICAgICAgICAgICJlY3giCisg
ICAgICAgICAgICB3aGVuICJ0MyIsICJhMyIKKyAgICAgICAgICAgICAgICAiZWJ4IgorICAgICAg
ICAgICAgd2hlbiAidDQiCisgICAgICAgICAgICAgICAgImVzaSIKKyAgICAgICAgICAgIHdoZW4g
InQ1IgorICAgICAgICAgICAgICAgICJlZGkiCisgICAgICAgICAgICB3aGVuICJjZnIiCisgICAg
ICAgICAgICAgICAgImVicCIKKyAgICAgICAgICAgIHdoZW4gInNwIgorICAgICAgICAgICAgICAg
ICJlc3AiCisgICAgICAgICAgICBlbmQKICAgICAgICAgZW5kCiAgICAgZW5kCisKKyAgICBkZWYg
eDg2T3BlcmFuZChraW5kKQorICAgICAgICB4ODZHUFJOYW1lKHg4NkdQUiwga2luZCkKKyAgICBl
bmQKKwogICAgIGRlZiB4ODZDYWxsT3BlcmFuZChraW5kKQotICAgICAgICBpc1g2NCA/ICIje2Nh
bGxQcmVmaXh9I3t4ODZPcGVyYW5kKDpxdWFkKX0iIDogIiN7Y2FsbFByZWZpeH0je3g4Nk9wZXJh
bmQoOnB0cil9IgorICAgICAgICAiI3tjYWxsUHJlZml4fSN7eDg2T3BlcmFuZCg6cHRyKX0iCiAg
ICAgZW5kCiBlbmQKIApAQCAtNTk3LDEzICs1ODQsMTIgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAg
ICBlbmQKICAgICAKICAgICBkZWYgaGFuZGxlWDg2U2hpZnQob3Bjb2RlLCBraW5kKQotICAgICAg
ICBpZiBvcGVyYW5kc1swXS5pc19hPyBJbW1lZGlhdGUgb3Igb3BlcmFuZHNbMF0gPT0gUmVnaXN0
ZXJJRC5mb3JOYW1lKG5pbCwgInQyIikKKyAgICAgICAgaWYgb3BlcmFuZHNbMF0uaXNfYT8gSW1t
ZWRpYXRlIG9yIG9wZXJhbmRzWzBdLng4NkdQUiA9PSAiZWN4IgogICAgICAgICAgICAgJGFzbS5w
dXRzICIje29wY29kZX0gI3tvcmRlck9wZXJhbmRzKG9wZXJhbmRzWzBdLng4Nk9wZXJhbmQoOmJ5
dGUpLCBvcGVyYW5kc1sxXS54ODZPcGVyYW5kKGtpbmQpKX0iCiAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgIGN4ID0gUmVnaXN0ZXJJRC5mb3JOYW1lKG5pbCwgInQyIikKLSAgICAgICAgICAgICRh
c20ucHV0cyAieGNoZyN7eDg2U3VmZml4KDpwdHIpfSAje29wZXJhbmRzWzBdLng4Nk9wZXJhbmQo
OnB0cil9LCAje2N4Lng4Nk9wZXJhbmQoOnB0cil9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJ4
Y2hnI3t4ODZTdWZmaXgoOnB0cil9ICN7b3BlcmFuZHNbMF0ueDg2T3BlcmFuZCg6cHRyKX0sICN7
eDg2R1BSTmFtZSgiZWN4IiwgOnB0cil9IgogICAgICAgICAgICAgJGFzbS5wdXRzICIje29wY29k
ZX0gI3tvcmRlck9wZXJhbmRzKHJlZ2lzdGVyKCJjbCIpLCBvcGVyYW5kc1sxXS54ODZPcGVyYW5k
KGtpbmQpKX0iCi0gICAgICAgICAgICAkYXNtLnB1dHMgInhjaGcje3g4NlN1ZmZpeCg6cHRyKX0g
I3tvcGVyYW5kc1swXS54ODZPcGVyYW5kKDpwdHIpfSwgI3tjeC54ODZPcGVyYW5kKDpwdHIpfSIK
KyAgICAgICAgICAgICRhc20ucHV0cyAieGNoZyN7eDg2U3VmZml4KDpwdHIpfSAje29wZXJhbmRz
WzBdLng4Nk9wZXJhbmQoOnB0cil9LCAje3g4NkdQUk5hbWUoImVjeCIsIDpwdHIpfSIKICAgICAg
ICAgZW5kCiAgICAgZW5kCiAgICAgCkBAIC02NDcsNyArNjMzLDcgQEAgY2xhc3MgSW5zdHJ1Y3Rp
b24KICAgICAgICAgICAgICAgICAkYXNtLnB1dHMgIm1vdnp4ICN7b3JkZXJPcGVyYW5kcyhvcGVy
YW5kLng4Nk9wZXJhbmQoOmJ5dGUpLCBvcGVyYW5kLng4Nk9wZXJhbmQoOmludCkpfSIKICAgICAg
ICAgICAgIGVuZAogICAgICAgICBlbHNlCi0gICAgICAgICAgICBheCA9IFJlZ2lzdGVySUQubmV3
KG5pbCwgInQwIikKKyAgICAgICAgICAgIGF4ID0gUmVnaXN0ZXJJRC5uZXcobmlsLCAicjAiKQog
ICAgICAgICAgICAgJGFzbS5wdXRzICJ4Y2hnI3t4ODZTdWZmaXgoOnB0cil9ICN7b3BlcmFuZC54
ODZPcGVyYW5kKDpwdHIpfSwgI3theC54ODZPcGVyYW5kKDpwdHIpfSIKICAgICAgICAgICAgICRh
c20ucHV0cyAiI3tzZXRPcGNvZGV9ICVhbCIKICAgICAgICAgICAgICRhc20ucHV0cyAibW92emJs
ICVhbCwgJWVheCIK
</data>

          </attachment>
      

    </bug>

</bugzilla>