<?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>76361</bug_id>
          
          <creation_ts>2012-01-15 21:14:37 -0800</creation_ts>
          <short_desc>DFG should be able to do JS and custom getter caching</short_desc>
          <delta_ts>2012-02-27 05:17:59 -0800</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>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>76430</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>barraclough</cc>
    
    <cc>ggaren</cc>
    
    <cc>loki</cc>
    
    <cc>oliver</cc>
    
    <cc>ossy</cc>
    
    <cc>pvarga</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zherczeg</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>536351</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-01-15 21:14:37 -0800</bug_when>
    <thetext>Patch forthcoming</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536352</commentid>
    <comment_count>1</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-01-15 21:14:49 -0800</bug_when>
    <thetext>&lt;rdar://problem/10698060&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536354</commentid>
    <comment_count>2</comment_count>
      <attachid>122589</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-01-15 21:17:02 -0800</bug_when>
    <thetext>Created attachment 122589
work in progress

Getting there.  Not there yet though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536357</commentid>
    <comment_count>3</comment_count>
      <attachid>122591</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-01-15 21:41:25 -0800</bug_when>
    <thetext>Created attachment 122591
work in progress

It&apos;s starting to work, but it needs quite a bit more testing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536358</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-15 21:43:55 -0800</bug_when>
    <thetext>Attachment 122591 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1

Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h:877:  The parameter name &quot;codeOrigin&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h:878:  The parameter name &quot;codeOrigin&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h:880:  The parameter name &quot;codeOrigin&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h:881:  The parameter name &quot;codeOrigin&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 4 in 16 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>536359</commentid>
    <comment_count>5</comment_count>
      <attachid>122591</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-01-15 21:48:06 -0800</bug_when>
    <thetext>Comment on attachment 122591
work in progress

Attachment 122591 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/11113970</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536739</commentid>
    <comment_count>6</comment_count>
      <attachid>122678</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-01-16 13:43:39 -0800</bug_when>
    <thetext>Created attachment 122678
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536753</commentid>
    <comment_count>7</comment_count>
      <attachid>122678</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-01-16 14:03:10 -0800</bug_when>
    <thetext>Comment on attachment 122678
the patch

Attachment 122678 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/11254305</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536768</commentid>
    <comment_count>8</comment_count>
      <attachid>122678</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-01-16 14:39:31 -0800</bug_when>
    <thetext>Comment on attachment 122678
the patch

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

r=me

Qt build not happy.

&gt; Source/JavaScriptCore/dfg/DFGJITCompiler.cpp:131
&gt; +            // FIXME: this is absurdly wrong.

(1) Yikes.

(2) Why don&apos;t you file a bug about what&apos;s wrong, and remove the FIXME.

&gt; Source/JavaScriptCore/dfg/DFGOperations.cpp:835
&gt; +    CodeOrigin codeOrigin = stubInfo-&gt;codeOrigin;
&gt; +    while (codeOrigin.inlineCallFrame)
&gt; +        codeOrigin = codeOrigin.inlineCallFrame-&gt;caller;

Is this loop also absurdly wrong, as the loop above is?

&gt; Source/JavaScriptCore/dfg/DFGRepatch.cpp:283
&gt; +        // Need extra checks.

A &quot;why&quot; comment would be better here, explaining that non-flushing gets must be trivial values, because non-trivial values might call to C++ code and stomp on our non-flushed registers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536797</commentid>
    <comment_count>9</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-01-16 16:26:02 -0800</bug_when>
    <thetext>This is perf-neutral on the major benchmarks.



Benchmark report for SunSpider, V8, and Kraken on bigmac (MacPro5,1).

VMs tested:
&quot;TipOfTree&quot; at /Volumes/Data/pizlo/secondary/OpenSource/WebKitBuild/Release/DumpRenderTree (r105082)
&quot;OldJIT&quot; at /Volumes/Data/pizlo/tertiary/OpenSource/WebKitBuild/Release/DumpRenderTree (r105082)
&quot;GetterCache&quot; at /Volumes/Data/pizlo/quartary/OpenSource/WebKitBuild/Release/DumpRenderTree (r105082)

Collected 12 samples per benchmark/VM, with 4 VM invocations per benchmark. Emitted a call to gc() between sample measurements. Used 1
benchmark iteration per VM invocation for warm-up. Used the portable Date.now() method to get millisecond-level timing. Reporting
benchmark execution times with 95% confidence intervals in milliseconds.

                                            TipOfTree                 OldJIT               GetterCache          GetterCache v. TipOfTree 
SunSpider:
   3d-cube                                7.0833+-0.8332    !     9.5833+-0.6885    ^     7.2500+-0.7722       ? might be 1.0235x slower
   3d-morph                               8.8333+-0.2473          8.3333+-0.3128    ?     8.7500+-0.2874       
   3d-raytrace                            8.5833+-0.5720    ?     9.5000+-0.5069          8.2500+-0.7722         might be 1.0404x faster
   access-binary-trees                    2.5000+-0.6354    ?     3.0833+-0.6330          2.4167+-0.4248         might be 1.0345x faster
   access-fannkuch                        7.5833+-0.4248    !    13.5833+-0.4248    ^     7.6667+-0.4138       ? might be 1.0110x slower
   access-nbody                           4.0833+-0.1834    !     7.5833+-0.3272    ^     4.2500+-0.2874       ? might be 1.0408x slower
   access-nsieve                          3.3333+-0.3128    ?     3.9167+-0.3272          3.4167+-0.3272       ? might be 1.0250x slower
   bitops-3bit-bits-in-byte               1.2500+-0.2874    !     2.5833+-0.3272    ^     1.4167+-0.3272       ? might be 1.1333x slower
   bitops-bits-in-byte                    5.5833+-0.3272    !     6.0000+-0.0000    ^     5.6667+-0.3128       ? might be 1.0149x slower
   bitops-bitwise-and                     3.3333+-0.3128    !     4.0833+-0.1834    ^     3.2500+-0.2874         might be 1.0256x faster
   bitops-nsieve-bits                     5.7500+-0.2874    ?     5.8333+-0.2473          5.7500+-0.2874       
   controlflow-recursive                  2.5833+-0.3272          2.2500+-0.2874    ?     2.5000+-0.3318         might be 1.0333x faster
   crypto-aes                             8.5000+-0.8779          7.5000+-0.7420    ?     8.1667+-1.0076         might be 1.0408x faster
   crypto-md5                             2.5000+-0.3318    !     3.0000+-0.0000          2.7500+-0.2874       ? might be 1.1000x slower
   crypto-sha1                            2.2500+-0.2874    ?     2.6667+-0.3128          2.4167+-0.3272       ? might be 1.0741x slower
   date-format-tofte                     13.0000+-1.4336    ?    13.6667+-1.3636         12.9167+-1.4704       
   date-format-xparb                     12.1667+-1.4798         11.5000+-1.3133    ?    11.9167+-1.4704         might be 1.0210x faster
   math-cordic                            7.4167+-0.3272          7.3333+-0.3128          7.3333+-0.3128         might be 1.0114x faster
   math-partial-sums                     10.6667+-0.3128         10.6667+-0.3128         10.6667+-0.3128       
   math-spectral-norm                     2.6667+-0.3128    !     4.7500+-0.2874    ^     2.6667+-0.3128       
   regexp-dna                             9.8333+-0.5956    ?     9.9167+-0.5038          9.9167+-0.5720       ?
   string-base64                          5.6667+-0.9121          5.6667+-0.9121    ?     5.7500+-0.9815       ? might be 1.0147x slower
   string-fasta                           8.0000+-0.7663    ?     8.2500+-0.7722          8.0000+-0.8567       
   string-tagcloud                       13.2500+-0.3949         13.1667+-0.4560    ?    13.5833+-0.5720       ? might be 1.0252x slower
   string-unpack-code                    23.0000+-1.3272         22.3333+-1.2513    ?    23.1667+-1.2366       ?
   string-validate-input                  7.0833+-1.0991          7.0833+-0.9171          7.0000+-0.9385         might be 1.0119x faster

   &lt;arithmetic&gt; *                         7.1731+-0.4415    ?     7.8397+-0.4109          7.1859+-0.4386       ? might be 1.0018x slower
   &lt;geometric&gt;                            5.7494+-0.3382    !     6.6279+-0.3450    ^     5.8054+-0.3348       ? might be 1.0097x slower
   &lt;harmonic&gt;                             4.4182+-0.2477    !     5.5129+-0.2933    ^     4.5538+-0.2810       ? might be 1.0307x slower

                                            TipOfTree                 OldJIT               GetterCache          GetterCache v. TipOfTree 
V8:
   crypto                                77.5000+-0.8779    !   200.5833+-0.5038    ^    77.5833+-0.7399       ?
   deltablue                            174.9167+-2.2416    !   280.5000+-3.4958    ^   174.4167+-2.9858       
   earley-boyer                          98.3333+-1.3364    !   122.2500+-1.0182    ^    98.2500+-1.3848       
   raytrace                              53.5833+-0.8332    !    71.3333+-0.7821    ^    53.2500+-0.9815       
   regexp                               102.0833+-0.8761    ?   102.1667+-0.5956        101.5000+-0.5069       
   richards                             141.4167+-1.8664    !   274.7500+-2.0832    ^   139.5000+-0.8350         might be 1.0137x faster
   splay                                121.1667+-45.3339   ?   131.9167+-45.9184       121.5833+-43.9626      ?

   &lt;arithmetic&gt;                         109.8571+-7.1039    !   169.0714+-7.3637    ^   109.4405+-7.0731         might be 1.0038x faster
   &lt;geometric&gt; *                        101.4766+-5.7549    !   149.0634+-7.4459    ^   101.2528+-5.7107         might be 1.0022x faster
   &lt;harmonic&gt;                            93.7618+-4.4638    !   131.1242+-6.4855    ^    93.6635+-4.4156         might be 1.0010x faster

                                            TipOfTree                 OldJIT               GetterCache          GetterCache v. TipOfTree 
Kraken:
   ai-astar                             820.7500+-12.3355   !  2011.6667+-26.5260   ^   820.0833+-12.2019      
   audio-beat-detection                 202.0000+-2.7761    !   555.0000+-3.5634    ^   204.2500+-1.5356       ? might be 1.0111x slower
   audio-dft                            276.6667+-1.5165    !   447.5833+-2.3690    ^   278.6667+-1.6554       ?
   audio-fft                            123.0833+-0.8761    !   426.4167+-2.5481    ^   122.2500+-0.5502       
   audio-oscillator                     279.7500+-2.5720    !   383.2500+-1.4870    ^   279.5833+-0.9939       
   imaging-darkroom                     308.5000+-0.6907    !   593.6667+-11.0526   ^   308.1667+-1.1757       
   imaging-desaturate                   230.7500+-0.2874    !   614.0000+-1.1170    ^   230.3333+-0.3128       
   imaging-gaussian-blur                507.5000+-2.6197    !  2127.9167+-3.4425    ^   506.8333+-2.6103       
   json-parse-financial                  73.2500+-5.0476         72.8333+-5.1321         72.6667+-5.4612       
   json-stringify-tinderbox              84.5833+-0.5720    ^    83.0000+-0.3831    !    84.0833+-0.6330       
   stanford-crypto-aes                  118.9167+-2.1066    !   166.5833+-1.3936    ^   119.8333+-1.5759       ?
   stanford-crypto-ccm                  122.8333+-1.2946        121.0833+-0.9563    !   123.5000+-0.9579       ?
   stanford-crypto-pbkdf2               227.2500+-2.0832    !   415.5833+-2.9611    ^   226.0833+-1.1951       
   stanford-crypto-sha256-iterative     103.3333+-3.1517    !   161.9167+-3.5784    ^   104.0833+-3.1532       ?

   &lt;arithmetic&gt; *                       248.5119+-1.0005    !   584.3214+-1.6714    ^   248.6012+-1.2898       ? might be 1.0004x slower
   &lt;geometric&gt;                          195.6625+-1.9151    !   355.5735+-2.1038    ^   195.7577+-1.9882       ? might be 1.0005x slower
   &lt;harmonic&gt;                           160.4673+-2.7914    !   225.7891+-4.0986    ^   160.4073+-2.8873         might be 1.0004x faster

                                            TipOfTree                 OldJIT               GetterCache          GetterCache v. TipOfTree 
All benchmarks:
   &lt;arithmetic&gt;                          94.3546+-1.5450    !   203.5709+-1.3371    ^    94.3262+-1.5735         might be 1.0003x faster
   &lt;geometric&gt;                           25.1982+-1.0981    !    34.4913+-1.3017    ^    25.3294+-1.0832       ? might be 1.0052x slower
   &lt;harmonic&gt;                             7.7723+-0.4299    !     9.7273+-0.5124    ^     8.0038+-0.4855       ? might be 1.0298x slower

                                            TipOfTree                 OldJIT               GetterCache          GetterCache v. TipOfTree 
Geomean of preferred means:
   &lt;scaled-result&gt;                       56.5109+-2.2661    !    88.0008+-2.9640    ^    56.5109+-2.2584       ? might be 1.0000x slower</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536798</commentid>
    <comment_count>10</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-01-16 16:29:00 -0800</bug_when>
    <thetext>Performance on Dromaeo DOM Traversal nextSibling:

Old JIT ToT: 644.40runs/s ±7.18%
DFG ToT: 377.60runs/s ±0.50%
DFG ToT + this patch: 767.80runs/s ±6.80%

So a 2x speed-up in the DFG alone, and a 20% speed-up over where we would have been pre-DFG.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536804</commentid>
    <comment_count>11</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-01-16 16:54:04 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/105107</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536806</commentid>
    <comment_count>12</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-01-16 16:55:03 -0800</bug_when>
    <thetext>&gt; Qt build not happy.

Should be fixed.  Turns out that the 32-bit build was not happy in general.

&gt; 
&gt; &gt; Source/JavaScriptCore/dfg/DFGJITCompiler.cpp:131
&gt; &gt; +            // FIXME: this is absurdly wrong.
&gt; 
&gt; (1) Yikes.
&gt; 
&gt; (2) Why don&apos;t you file a bug about what&apos;s wrong, and remove the FIXME.

Filed a radar.

&gt; 
&gt; &gt; Source/JavaScriptCore/dfg/DFGOperations.cpp:835
&gt; &gt; +    CodeOrigin codeOrigin = stubInfo-&gt;codeOrigin;
&gt; &gt; +    while (codeOrigin.inlineCallFrame)
&gt; &gt; +        codeOrigin = codeOrigin.inlineCallFrame-&gt;caller;
&gt; 
&gt; Is this loop also absurdly wrong, as the loop above is?

Yup.

&gt; 
&gt; &gt; Source/JavaScriptCore/dfg/DFGRepatch.cpp:283
&gt; &gt; +        // Need extra checks.
&gt; 
&gt; A &quot;why&quot; comment would be better here, explaining that non-flushing gets must be trivial values, because non-trivial values might call to C++ code and stomp on our non-flushed registers.

Added a better comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536911</commentid>
    <comment_count>13</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-01-17 00:00:44 -0800</bug_when>
    <thetext>Reopen, because it broke many tests on 32 bit:
http://build.webkit.org/results/Qt%20Linux%20Release/r105107%20%2842168%29/results.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536922</commentid>
    <comment_count>14</comment_count>
      <attachid>122724</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-01-17 00:18:29 -0800</bug_when>
    <thetext>Created attachment 122724
the patch to fix 32-bit

Fixed JSVALUE32_64 reversal of tag and payload when handling stub call return.

Fixed double use of GPRResult.  (Second use should always use the GPRResult2 class.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536929</commentid>
    <comment_count>15</comment_count>
      <attachid>122724</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-01-17 00:35:37 -0800</bug_when>
    <thetext>Comment on attachment 122724
the patch to fix 32-bit

r=me, I tested on 32 bit Qt and it works.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536931</commentid>
    <comment_count>16</comment_count>
      <attachid>122724</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-01-17 00:37:07 -0800</bug_when>
    <thetext>Comment on attachment 122724
the patch to fix 32-bit

Clearing flags because I just landed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536932</commentid>
    <comment_count>17</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-01-17 00:37:52 -0800</bug_when>
    <thetext>Landed a fix for 32-bit in http://trac.webkit.org/changeset/105131</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565588</commentid>
    <comment_count>18</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-02-27 05:17:59 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; Landed a fix for 32-bit in http://trac.webkit.org/changeset/105131</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122589</attachid>
            <date>2012-01-15 21:17:02 -0800</date>
            <delta_ts>2012-01-15 21:41:25 -0800</delta_ts>
            <desc>work in progress</desc>
            <filename>gettercache_patch_1.diff</filename>
            <type>text/plain</type>
            <size>39046</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTA1MDM1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ3IEBA
CisyMDEyLTAxLTE1ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
REZHIHNob3VsZCBiZSBhYmxlIHRvIGRvIEpTIGFuZCBjdXN0b20gZ2V0dGVyIGNhY2hpbmcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2MzYxCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS8xMDY5ODA2MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFdPUksgSU4gUFJPR1JFU1MuCisKKyAgICAg
ICAgKiBieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oOgorICAgICAgICAqIGRmZy9ERkdBYnN0
cmFjdFN0YXRlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFjdFN0YXRlOjpleGVjdXRl
KToKKyAgICAgICAgKiBkZmcvREZHQXNzZW1ibHlIZWxwZXJzLmg6CisgICAgICAgIChKU0M6OkRG
Rzo6QXNzZW1ibHlIZWxwZXJzOjplbWl0RXhjZXB0aW9uQ2hlY2spOgorICAgICAgICAqIGRmZy9E
RkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6
OndpbGxOZWVkRmx1c2gpOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpwYXJz
ZUJsb2NrKToKKyAgICAgICAgKiBkZmcvREZHQ0NhbGxIZWxwZXJzLmg6CisgICAgICAgIChKU0M6
OkRGRzo6Q0NhbGxIZWxwZXJzOjpzZXR1cFJlc3VsdHMpOgorICAgICAgICAqIGRmZy9ERkdKSVRD
b21waWxlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6SklUQ29tcGlsZXI6OmxpbmspOgorICAg
ICAgICAqIGRmZy9ERkdKSVRDb21waWxlci5oOgorICAgICAgICAoSlNDOjpERkc6OlByb3BlcnR5
QWNjZXNzUmVjb3JkOjpQcm9wZXJ0eUFjY2Vzc1JlY29yZCk6CisgICAgICAgIChKU0M6OkRGRzo6
SklUQ29tcGlsZXI6OmFkZEV4Y2VwdGlvbkNoZWNrKToKKyAgICAgICAgKiBkZmcvREZHTm9kZS5o
OgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6Omhhc0lkZW50aWZpZXIpOgorICAgICAgICAoSlND
OjpERkc6Ok5vZGU6Omhhc0hlYXBQcmVkaWN0aW9uKToKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0
aW9ucy5jcHA6CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuaDoKKyAgICAgICAgKiBkZmcv
REZHUHJvcGFnYXRvci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6UHJvcGFnYXRvcjo6cHJvcGFn
YXRlTm9kZVByZWRpY3Rpb25zKToKKyAgICAgICAgKiBkZmcvREZHUmVwYXRjaC5jcHA6CisgICAg
ICAgIChKU0M6OkRGRzo6dHJ5Q2FjaGVHZXRCeUlEKToKKyAgICAgICAgKEpTQzo6REZHOjp0cnlC
dWlsZEdldEJ5SURMaXN0KToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuaDoKKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6YXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25D
aGVja1NldFJlc3VsdCk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3Bw
OgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlkKToKKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZn
L0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpjYWNoZWRHZXRCeUlkKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZSk6CisKIDIwMTItMDEtMTUgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4K
IAogICAgICAgICBUaGUgQyBjYWxsaW5nIGNvbnZlbnRpb24gbG9naWMgaW4gREZHOjpTcGVjdWxh
dGl2ZUpJVCBzaG91bGQgYmUgYXZhaWxhYmxlIGV2ZW4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oCShyZXZpc2lvbiAxMDUw
MzUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8u
aAkod29ya2luZyBjb3B5KQpAQCAtMTc1LDYgKzE3NSw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICBpbnQ4X3Qgc2VlbjsKICAgICAgICAgCiAjaWYgRU5BQkxFKERGR19KSVQpCisgICAgICAg
IENvZGVPcmlnaW4gY29kZU9yaWdpbjsKKyAgICAgICAgaW50OF90IHJlZ2lzdGVyc0ZsdXNoZWQ7
CiAgICAgICAgIGludDhfdCBiYXNlR1BSOwogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCiAgICAgICAg
IGludDhfdCB2YWx1ZVRhZ0dQUjsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
QWJzdHJhY3RTdGF0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdBYnN0cmFjdFN0YXRlLmNwcAkocmV2aXNpb24gMTA1MDM1KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdFN0YXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjg4
LDYgKzY4OCw3IEBAIGJvb2wgQWJzdHJhY3RTdGF0ZTo6ZXhlY3V0ZShOb2RlSW5kZXggbm8KICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKICAgICBjYXNlIEdldEJ5SWQ6CisgICAgY2FzZSBH
ZXRCeUlkRmx1c2g6CiAgICAgICAgIGlmICghbm9kZS5wcmVkaWN0aW9uKCkpIHsKICAgICAgICAg
ICAgIG1faXNWYWxpZCA9IGZhbHNlOwogICAgICAgICAgICAgYnJlYWs7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fzc2VtYmx5SGVscGVycy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXNzZW1ibHlIZWxwZXJzLmgJKHJldmlzaW9uIDEw
NTAzNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXNzZW1ibHlIZWxwZXJzLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI0Niw2ICsyNDYsMTYgQEAgcHVibGljOgogICAgICAgICBtX2Fz
c2VtYmxlci52bW92KGZwciwgcGF5bG9hZEdQUiwgdGFnR1BSKTsKICAgICB9CiAjZW5kaWYKKyAg
ICAKKyAgICBlbnVtIEV4Y2VwdGlvbkNoZWNrS2luZCB7IE5vcm1hbEV4Y2VwdGlvbkNoZWNrLCBJ
bnZlcnRlZEV4Y2VwdGlvbkNoZWNrIH07CisgICAgSnVtcCBlbWl0RXhjZXB0aW9uQ2hlY2soRXhj
ZXB0aW9uQ2hlY2tLaW5kIGtpbmQgPSBOb3JtYWxFeGNlcHRpb25DaGVjaykKKyAgICB7CisjaWYg
VVNFKEpTVkFMVUU2NCkKKyAgICAgICAgcmV0dXJuIGJyYW5jaFRlc3RQdHIoa2luZCA9PSBOb3Jt
YWxFeGNlcHRpb25DaGVjayA/IE5vblplcm8gOiBaZXJvLCBBYnNvbHV0ZUFkZHJlc3MoJmdsb2Jh
bERhdGEoKS0+ZXhjZXB0aW9uKSk7CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICBy
ZXR1cm4gYnJhbmNoMzIoa2luZCA9PSBOb3JtYWxFeGNlcHRpb25DaGVjayA/IE5vdEVxdWFsIDog
RXF1YWwsIEFic29sdXRlQWRkcmVzcyhyZWludGVycHJldF9jYXN0PGNoYXIqPigmZ2xvYmFsRGF0
YSgpLT5leGNlcHRpb24pICsgT0JKRUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnRhZykp
LCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6RW1wdHlWYWx1ZVRhZykpOworI2VuZGlmCisgICAgfQog
CiAjaWYgRU5BQkxFKFNBTVBMSU5HX0NPVU5URVJTKQogICAgIHN0YXRpYyB2b2lkIGVtaXRDb3Vu
dChNYWNyb0Fzc2VtYmxlciYgaml0LCBBYnN0cmFjdFNhbXBsaW5nQ291bnRlciYgY291bnRlciwg
aW50MzJfdCBpbmNyZW1lbnQgPSAxKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdCeXRlQ29kZVBhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHJldmlzaW9uIDEwNTAzNSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC03MTYsNiArNzE2LDI5IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0K
ICAgICAKKyAgICBib29sIHdpbGxOZWVkRmx1c2goU3RydWN0dXJlU3R1YkluZm8mIHN0dWJJbmZv
KQorICAgIHsKKyAgICAgICAgUG9seW1vcnBoaWNBY2Nlc3NTdHJ1Y3R1cmVMaXN0KiBsaXN0Owor
ICAgICAgICBpbnQgbGlzdFNpemU7CisgICAgICAgIHN3aXRjaCAoc3R1YkluZm8uYWNjZXNzVHlw
ZSkgeworICAgICAgICBjYXNlIGFjY2Vzc19nZXRfYnlfaWRfc2VsZl9saXN0OgorICAgICAgICAg
ICAgbGlzdCA9IHN0dWJJbmZvLmdldEJ5SWRTZWxmTGlzdC5zdHJ1Y3R1cmVMaXN0OworICAgICAg
ICAgICAgbGlzdFNpemUgPSBzdHViSW5mby5nZXRCeUlkU2VsZkxpc3QubGlzdFNpemU7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBhY2Nlc3NfZ2V0X2J5X2lkX3Byb3RvX2xpc3Q6
CisgICAgICAgICAgICBsaXN0ID0gc3R1YkluZm8uZ2V0QnlJZFByb3RvTGlzdC5zdHJ1Y3R1cmVM
aXN0OworICAgICAgICAgICAgbGlzdFNpemUgPSBzdHViSW5mby5nZXRCeUlkUHJvdG9MaXN0Lmxp
c3RTaXplOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IGxpc3RTaXplOyArK2kpIHsKKyAgICAgICAgICAgIGlmICghbGlzdC0+bGlzdFtpXS5pc0Rp
cmVjdCkKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgfQorICAgIAogICAgIHZvaWQgYnVpbGRPcGVyYW5kTWFwc0lmTmVj
ZXNzYXJ5KCk7CiAgICAgCiAgICAgSlNHbG9iYWxEYXRhKiBtX2dsb2JhbERhdGE7CkBAIC0xNzA3
LDcgKzE3MzAsNyBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKHVuc2lnbmVkCiAg
ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgc2V0KGdldEluc3RydWN0aW9uWzFdLnUu
b3BlcmFuZCwgY2VsbENvbnN0YW50KG1ldGhvZENhbGwuY2FjaGVkRnVuY3Rpb24uZ2V0KCkpKTsK
ICAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAgIHNldChnZXRJbnN0cnVjdGlvblsx
XS51Lm9wZXJhbmQsIGFkZFRvR3JhcGgoR2V0QnlJZCwgT3BJbmZvKGlkZW50aWZpZXIpLCBPcElu
Zm8ocHJlZGljdGlvbiksIGJhc2UpKTsKKyAgICAgICAgICAgICAgICBzZXQoZ2V0SW5zdHJ1Y3Rp
b25bMV0udS5vcGVyYW5kLCBhZGRUb0dyYXBoKHdpbGxOZWVkRmx1c2goc3R1YkluZm8pID8gR2V0
QnlJZEZsdXNoIDogR2V0QnlJZCwgT3BJbmZvKGlkZW50aWZpZXIpLCBPcEluZm8ocHJlZGljdGlv
biksIGJhc2UpKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgbV9jdXJyZW50SW5kZXggKz0g
T1BDT0RFX0xFTkdUSChvcF9tZXRob2RfY2hlY2spICsgT1BDT0RFX0xFTkdUSChvcF9nZXRfYnlf
aWQpOwogICAgICAgICAgICAgY29udGludWU7CkBAIC0xODE4LDcgKzE4NDEsNyBAQCBib29sIEJ5
dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKHVuc2lnbmVkCiAgICAgICAgICAgICAgICAgc3RvcmFn
ZUFjY2Vzc0RhdGEuaWRlbnRpZmllck51bWJlciA9IGlkZW50aWZpZXJOdW1iZXI7CiAgICAgICAg
ICAgICAgICAgbV9ncmFwaC5tX3N0b3JhZ2VBY2Nlc3NEYXRhLmFwcGVuZChzdG9yYWdlQWNjZXNz
RGF0YSk7CiAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICBzZXQoY3VycmVudElu
c3RydWN0aW9uWzFdLnUub3BlcmFuZCwgYWRkVG9HcmFwaChHZXRCeUlkLCBPcEluZm8oaWRlbnRp
Zmllck51bWJlciksIE9wSW5mbyhwcmVkaWN0aW9uKSwgYmFzZSkpOworICAgICAgICAgICAgICAg
IHNldChjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCBhZGRUb0dyYXBoKHdpbGxOZWVk
Rmx1c2goc3R1YkluZm8pID8gR2V0QnlJZEZsdXNoIDogR2V0QnlJZCwgT3BJbmZvKGlkZW50aWZp
ZXJOdW1iZXIpLCBPcEluZm8ocHJlZGljdGlvbiksIGJhc2UpKTsKIAogICAgICAgICAgICAgTkVY
VF9PUENPREUob3BfZ2V0X2J5X2lkKTsKICAgICAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdDQ2FsbEhlbHBlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0NDYWxsSGVscGVycy5oCShyZXZpc2lvbiAxMDUwMzUpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NDYWxsSGVscGVycy5oCSh3b3JraW5nIGNvcHkpCkBA
IC00OTIsNiArNDkyLDIzIEBAIHB1YmxpYzoKICAgICAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhl
Y1N0YXRlKGFyZzEsIGFyZzIsIGFyZzMpOwogICAgIH0KICNlbmRpZiAvLyBOVU1CRVJfT0ZfQVJH
VU1FTlRfUkVHSVNURVJTID09IDQKKworICAgIHZvaWQgc2V0dXBSZXN1bHRzKEdQUlJlZyBkZXN0
QSwgR1BSUmVnIGRlc3RCKQorICAgIHsKKyAgICAgICAgR1BSUmVnIHNyY0EgPSBHUFJJbmZvOjpy
ZXR1cm5WYWx1ZUdQUjsKKyAgICAgICAgR1BSUmVnIHNyY0IgPSBHUFJJbmZvOjpyZXR1cm5WYWx1
ZUdQUjI7CisKKyAgICAgICAgaWYgKHNyY0IgIT0gZGVzdEEpIHsKKyAgICAgICAgICAgIC8vIEhh
bmRsZSB0aGUgZWFzeSBjYXNlcyAtIHR3byBzaW1wbGUgbW92ZXMuCisgICAgICAgICAgICBtX2pp
dC5tb3ZlKHNyY0EsIGRlc3RBKTsKKyAgICAgICAgICAgIG1faml0Lm1vdmUoc3JjQiwgZGVzdEIp
OworICAgICAgICB9IGVsc2UgaWYgKHNyY0EgIT0gZGVzdEIpIHsKKyAgICAgICAgICAgIC8vIEhh
bmRsZSB0aGUgbm9uLXN3YXAgY2FzZSAtIGp1c3QgcHV0IHNyY0IgaW4gcGxhY2UgZmlyc3QuCisg
ICAgICAgICAgICBtX2ppdC5tb3ZlKHNyY0IsIGRlc3RCKTsKKyAgICAgICAgICAgIG1faml0Lm1v
dmUoc3JjQSwgZGVzdEEpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIG1faml0LnN3YXAo
ZGVzdEEsIGRlc3RCKTsKKyAgICB9CiB9OwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcAkocmV2
aXNpb24gMTA1MDM1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxl
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyOCw2ICsxMjgsNyBAQCB2b2lkIEpJVENvbXBpbGVy
OjpsaW5rKExpbmtCdWZmZXImIGxpbmtCCiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBtX2V4Y2VwdGlvbkNoZWNrcy5zaXplKCk7ICsraSkgewogICAgICAgICAgICAgdW5zaWduZWQg
cmV0dXJuQWRkcmVzc09mZnNldCA9IGxpbmtCdWZmZXIucmV0dXJuQWRkcmVzc09mZnNldChtX2V4
Y2VwdGlvbkNoZWNrc1tpXS5tX2NhbGwpOwogICAgICAgICAgICAgQ29kZU9yaWdpbiBjb2RlT3Jp
Z2luID0gbV9leGNlcHRpb25DaGVja3NbaV0ubV9jb2RlT3JpZ2luOworICAgICAgICAgICAgLy8g
RklYTUU6IHRoaXMgaXMgYWJzdXJkbHkgd3JvbmcuCiAgICAgICAgICAgICB3aGlsZSAoY29kZU9y
aWdpbi5pbmxpbmVDYWxsRnJhbWUpCiAgICAgICAgICAgICAgICAgY29kZU9yaWdpbiA9IGNvZGVP
cmlnaW4uaW5saW5lQ2FsbEZyYW1lLT5jYWxsZXI7CiAgICAgICAgICAgICB1bnNpZ25lZCBleGNl
cHRpb25JbmZvID0gY29kZU9yaWdpbi5ieXRlY29kZUluZGV4OwpAQCAtMTYwLDYgKzE2MSw3IEBA
IHZvaWQgSklUQ29tcGlsZXI6OmxpbmsoTGlua0J1ZmZlciYgbGlua0IKICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgbV9wcm9wZXJ0eUFjY2Vzc2VzLnNpemUoKTsgKytpKSB7CiAgICAgICAg
IFN0cnVjdHVyZVN0dWJJbmZvJiBpbmZvID0gbV9jb2RlQmxvY2stPnN0cnVjdHVyZVN0dWJJbmZv
KGkpOwogICAgICAgICBDb2RlTG9jYXRpb25DYWxsIGNhbGxSZXR1cm5Mb2NhdGlvbiA9IGxpbmtC
dWZmZXIubG9jYXRpb25PZihtX3Byb3BlcnR5QWNjZXNzZXNbaV0ubV9mdW5jdGlvbkNhbGwpOwor
ICAgICAgICBpbmZvLmNvZGVPcmlnaW4gPSBtX3Byb3BlcnR5QWNjZXNzZXNbaV0ubV9jb2RlT3Jp
Z2luOwogICAgICAgICBpbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbiA9IGNhbGxSZXR1cm5Mb2NhdGlv
bjsKICAgICAgICAgaW5mby5kZWx0YUNoZWNrSW1tVG9DYWxsID0gZGlmZmVyZW5jZUJldHdlZW5D
b2RlUHRyKGxpbmtCdWZmZXIubG9jYXRpb25PZihtX3Byb3BlcnR5QWNjZXNzZXNbaV0ubV9kZWx0
YUNoZWNrSW1tVG9DYWxsKSwgY2FsbFJldHVybkxvY2F0aW9uKTsKICAgICAgICAgaW5mby5kZWx0
YUNhbGxUb1N0cnVjdENoZWNrID0gZGlmZmVyZW5jZUJldHdlZW5Db2RlUHRyKGNhbGxSZXR1cm5M
b2NhdGlvbiwgbGlua0J1ZmZlci5sb2NhdGlvbk9mKG1fcHJvcGVydHlBY2Nlc3Nlc1tpXS5tX2Rl
bHRhQ2FsbFRvU3RydWN0Q2hlY2spKTsKQEAgLTE3OSw2ICsxODEsNyBAQCB2b2lkIEpJVENvbXBp
bGVyOjpsaW5rKExpbmtCdWZmZXImIGxpbmtCCiAgICAgICAgIGluZm8udmFsdWVHUFIgPSBtX3By
b3BlcnR5QWNjZXNzZXNbaV0ubV92YWx1ZUdQUjsKICNlbmRpZgogICAgICAgICBpbmZvLnNjcmF0
Y2hHUFIgPSBtX3Byb3BlcnR5QWNjZXNzZXNbaV0ubV9zY3JhdGNoR1BSOworICAgICAgICBpbmZv
LnJlZ2lzdGVyc0ZsdXNoZWQgPSBtX3Byb2VwcnR5QWNjZXNzZXNbaV0ubV9yZWdpc3Rlck1vZGUg
PT0gUmVnaXN0ZXJzRmx1c2hlZDsKICAgICB9CiAgICAgCiAgICAgbV9jb2RlQmxvY2stPnNldE51
bWJlck9mQ2FsbExpbmtJbmZvcyhtX2pzQ2FsbHMuc2l6ZSgpKTsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmgJKHJldmlzaW9uIDEwNTAzNSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuaAkod29ya2luZyBjb3B5KQpA
QCAtOTUsMTIgKzk1LDE1IEBAIHN0cnVjdCBDYWxsRXhjZXB0aW9uUmVjb3JkIHsKIH07CiAKIHN0
cnVjdCBQcm9wZXJ0eUFjY2Vzc1JlY29yZCB7CisgICAgZW51bSBSZWdpc3Rlck1vZGUgeyBSZWdp
c3RlcnNGbHVzaGVkLCBSZWdpc3RlcnNJblVzZSB9OworICAgIAogI2lmIFVTRShKU1ZBTFVFNjQp
Ci0gICAgUHJvcGVydHlBY2Nlc3NSZWNvcmQoTWFjcm9Bc3NlbWJsZXI6OkRhdGFMYWJlbFB0ciBk
ZWx0YUNoZWNrSW1tVG9DYWxsLCBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBmdW5jdGlvbkNhbGwsIE1h
Y3JvQXNzZW1ibGVyOjpKdW1wIGRlbHRhQ2FsbFRvU3RydWN0Q2hlY2ssIE1hY3JvQXNzZW1ibGVy
OjpEYXRhTGFiZWxDb21wYWN0IGRlbHRhQ2FsbFRvTG9hZE9yU3RvcmUsIE1hY3JvQXNzZW1ibGVy
OjpMYWJlbCBkZWx0YUNhbGxUb1Nsb3dDYXNlLCBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgZGVsdGFD
YWxsVG9Eb25lLCBpbnQ4X3QgYmFzZUdQUiwgaW50OF90IHZhbHVlR1BSLCBpbnQ4X3Qgc2NyYXRj
aEdQUikKKyAgICBQcm9wZXJ0eUFjY2Vzc1JlY29yZChDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIE1h
Y3JvQXNzZW1ibGVyOjpEYXRhTGFiZWxQdHIgZGVsdGFDaGVja0ltbVRvQ2FsbCwgTWFjcm9Bc3Nl
bWJsZXI6OkNhbGwgZnVuY3Rpb25DYWxsLCBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBkZWx0YUNhbGxU
b1N0cnVjdENoZWNrLCBNYWNyb0Fzc2VtYmxlcjo6RGF0YUxhYmVsQ29tcGFjdCBkZWx0YUNhbGxU
b0xvYWRPclN0b3JlLCBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgZGVsdGFDYWxsVG9TbG93Q2FzZSwg
TWFjcm9Bc3NlbWJsZXI6OkxhYmVsIGRlbHRhQ2FsbFRvRG9uZSwgaW50OF90IGJhc2VHUFIsIGlu
dDhfdCB2YWx1ZUdQUiwgaW50OF90IHNjcmF0Y2hHUFIsIFJlZ2lzdGVyTW9kZSByZWdpc3Rlck1v
ZGUgPSBSZWdpc3RlcnNJblVzZSkKICNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgUHJvcGVy
dHlBY2Nlc3NSZWNvcmQoTWFjcm9Bc3NlbWJsZXI6OkRhdGFMYWJlbFB0ciBkZWx0YUNoZWNrSW1t
VG9DYWxsLCBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBmdW5jdGlvbkNhbGwsIE1hY3JvQXNzZW1ibGVy
OjpKdW1wIGRlbHRhQ2FsbFRvU3RydWN0Q2hlY2ssIE1hY3JvQXNzZW1ibGVyOjpEYXRhTGFiZWxD
b21wYWN0IGRlbHRhQ2FsbFRvVGFnTG9hZE9yU3RvcmUsIE1hY3JvQXNzZW1ibGVyOjpEYXRhTGFi
ZWxDb21wYWN0IGRlbHRhQ2FsbFRvUGF5bG9hZExvYWRPclN0b3JlLCBNYWNyb0Fzc2VtYmxlcjo6
TGFiZWwgZGVsdGFDYWxsVG9TbG93Q2FzZSwgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIGRlbHRhQ2Fs
bFRvRG9uZSwgaW50OF90IGJhc2VHUFIsIGludDhfdCB2YWx1ZVRhZ0dQUiwgaW50OF90IHZhbHVl
R1BSLCBpbnQ4X3Qgc2NyYXRjaEdQUikKKyAgICBQcm9wZXJ0eUFjY2Vzc1JlY29yZChDb2RlT3Jp
Z2luIGNvZGVPcmlnaW4sIE1hY3JvQXNzZW1ibGVyOjpEYXRhTGFiZWxQdHIgZGVsdGFDaGVja0lt
bVRvQ2FsbCwgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgZnVuY3Rpb25DYWxsLCBNYWNyb0Fzc2VtYmxl
cjo6SnVtcCBkZWx0YUNhbGxUb1N0cnVjdENoZWNrLCBNYWNyb0Fzc2VtYmxlcjo6RGF0YUxhYmVs
Q29tcGFjdCBkZWx0YUNhbGxUb1RhZ0xvYWRPclN0b3JlLCBNYWNyb0Fzc2VtYmxlcjo6RGF0YUxh
YmVsQ29tcGFjdCBkZWx0YUNhbGxUb1BheWxvYWRMb2FkT3JTdG9yZSwgTWFjcm9Bc3NlbWJsZXI6
OkxhYmVsIGRlbHRhQ2FsbFRvU2xvd0Nhc2UsIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBkZWx0YUNh
bGxUb0RvbmUsIGludDhfdCBiYXNlR1BSLCBpbnQ4X3QgdmFsdWVUYWdHUFIsIGludDhfdCB2YWx1
ZUdQUiwgaW50OF90IHNjcmF0Y2hHUFIsIFJlZ2lzdGVyTW9kZSByZWdpc3Rlck1vZGUgPSBSZWdp
c3RlcnNJblVzZSkKICNlbmRpZgotICAgICAgICA6IG1fZGVsdGFDaGVja0ltbVRvQ2FsbChkZWx0
YUNoZWNrSW1tVG9DYWxsKQorICAgICAgICA6IG1fY29kZU9yaWdpbihjb2RlT3JpZ2luKQorICAg
ICAgICAsIG1fZGVsdGFDaGVja0ltbVRvQ2FsbChkZWx0YUNoZWNrSW1tVG9DYWxsKQogICAgICAg
ICAsIG1fZnVuY3Rpb25DYWxsKGZ1bmN0aW9uQ2FsbCkKICAgICAgICAgLCBtX2RlbHRhQ2FsbFRv
U3RydWN0Q2hlY2soZGVsdGFDYWxsVG9TdHJ1Y3RDaGVjaykKICNpZiBVU0UoSlNWQUxVRTY0KQpA
QCAtMTE3LDkgKzEyMCwxMSBAQCBzdHJ1Y3QgUHJvcGVydHlBY2Nlc3NSZWNvcmQgewogI2VuZGlm
CiAgICAgICAgICwgbV92YWx1ZUdQUih2YWx1ZUdQUikKICAgICAgICAgLCBtX3NjcmF0Y2hHUFIo
c2NyYXRjaEdQUikKKyAgICAgICAgLCBtX3JlZ2lzdGVyTW9kZShyZWdpc3Rlck1vZGUpCiAgICAg
ewogICAgIH0KIAorICAgIENvZGVPcmlnaW4gbV9jb2RlT3JpZ2luOwogICAgIE1hY3JvQXNzZW1i
bGVyOjpEYXRhTGFiZWxQdHIgbV9kZWx0YUNoZWNrSW1tVG9DYWxsOwogICAgIE1hY3JvQXNzZW1i
bGVyOjpDYWxsIG1fZnVuY3Rpb25DYWxsOwogICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIG1fZGVs
dGFDYWxsVG9TdHJ1Y3RDaGVjazsKQEAgLTEzNyw2ICsxNDIsNyBAQCBzdHJ1Y3QgUHJvcGVydHlB
Y2Nlc3NSZWNvcmQgewogI2VuZGlmCiAgICAgaW50OF90IG1fdmFsdWVHUFI7CiAgICAgaW50OF90
IG1fc2NyYXRjaEdQUjsKKyAgICBSZWdpc3Rlck1vZGUgbV9yZWdpc3Rlck1vZGU7CiB9OwogCiAv
LyA9PT0gSklUQ29tcGlsZXIgPT09CkBAIC0xNzksMTIgKzE4NSw3IEBAIHB1YmxpYzoKICAgICBD
YWxsIGFkZEV4Y2VwdGlvbkNoZWNrKENhbGwgZnVuY3Rpb25DYWxsLCBDb2RlT3JpZ2luIGNvZGVP
cmlnaW4pCiAgICAgewogICAgICAgICBtb3ZlKFRydXN0ZWRJbW0zMihtX2V4Y2VwdGlvbkNoZWNr
cy5zaXplKCkpLCBHUFJJbmZvOjpub25QcmVzZXJ2ZWROb25SZXR1cm5HUFIpOwotI2lmIFVTRShK
U1ZBTFVFNjQpCi0gICAgICAgIEp1bXAgZXhjZXB0aW9uQ2hlY2sgPSBicmFuY2hUZXN0UHRyKE5v
blplcm8sIEFic29sdXRlQWRkcmVzcygmZ2xvYmFsRGF0YSgpLT5leGNlcHRpb24pKTsKLSNlbGlm
IFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgICAgIEp1bXAgZXhjZXB0aW9uQ2hlY2sgPSBicmFuY2gz
MihOb3RFcXVhbCwgQWJzb2x1dGVBZGRyZXNzKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KCZnbG9i
YWxEYXRhKCktPmV4Y2VwdGlvbikgKyBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0JpdHMu
dGFnKSksIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpFbXB0eVZhbHVlVGFnKSk7Ci0jZW5kaWYKLSAg
ICAgICAgbV9leGNlcHRpb25DaGVja3MuYXBwZW5kKENhbGxFeGNlcHRpb25SZWNvcmQoZnVuY3Rp
b25DYWxsLCBleGNlcHRpb25DaGVjaywgY29kZU9yaWdpbikpOworICAgICAgICBtX2V4Y2VwdGlv
bkNoZWNrcy5hcHBlbmQoQ2FsbEV4Y2VwdGlvblJlY29yZChmdW5jdGlvbkNhbGwsIGVtaXRFeGNl
cHRpb25DaGVjaygpLCBjb2RlT3JpZ2luKSk7CiAgICAgICAgIHJldHVybiBmdW5jdGlvbkNhbGw7
CiAgICAgfQogICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgJKHJldmlz
aW9uIDEwNTAzNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMjksNiArMjI5LDcgQEAgc3RhdGljIGlubGluZSBjb25zdCBjaGFyKiBh
cml0aE5vZGVGbGFncwogICAgIG1hY3JvKFB1dEJ5VmFsLCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9k
ZUNsb2JiZXJzV29ybGQpIFwKICAgICBtYWNybyhQdXRCeVZhbEFsaWFzLCBOb2RlTXVzdEdlbmVy
YXRlIHwgTm9kZUNsb2JiZXJzV29ybGQpIFwKICAgICBtYWNybyhHZXRCeUlkLCBOb2RlUmVzdWx0
SlMgfCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZUNsb2JiZXJzV29ybGQpIFwKKyAgICBtYWNybyhH
ZXRCeUlkRmx1c2gsIE5vZGVSZXN1bHRKUyB8IE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlQ2xvYmJl
cnNXb3JsZCkgXAogICAgIG1hY3JvKFB1dEJ5SWQsIE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlQ2xv
YmJlcnNXb3JsZCkgXAogICAgIG1hY3JvKFB1dEJ5SWREaXJlY3QsIE5vZGVNdXN0R2VuZXJhdGUg
fCBOb2RlQ2xvYmJlcnNXb3JsZCkgXAogICAgIG1hY3JvKENoZWNrU3RydWN0dXJlLCBOb2RlTXVz
dEdlbmVyYXRlKSBcCkBAIC01MDIsNiArNTAzLDcgQEAgc3RydWN0IE5vZGUgewogICAgIHsKICAg
ICAgICAgc3dpdGNoIChvcCkgewogICAgICAgICBjYXNlIEdldEJ5SWQ6CisgICAgICAgIGNhc2Ug
R2V0QnlJZEZsdXNoOgogICAgICAgICBjYXNlIFB1dEJ5SWQ6CiAgICAgICAgIGNhc2UgUHV0QnlJ
ZERpcmVjdDoKICAgICAgICAgY2FzZSBSZXNvbHZlOgpAQCAtNzE4LDYgKzcyMCw3IEBAIHN0cnVj
dCBOb2RlIHsKICAgICB7CiAgICAgICAgIHN3aXRjaCAob3ApIHsKICAgICAgICAgY2FzZSBHZXRC
eUlkOgorICAgICAgICBjYXNlIEdldEJ5SWRGbHVzaDoKICAgICAgICAgY2FzZSBHZXRCeVZhbDoK
ICAgICAgICAgY2FzZSBDYWxsOgogICAgICAgICBjYXNlIENvbnN0cnVjdDoKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAkocmV2aXNpb24gMTA1MDM1
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzc4LDYgKzM3OCwyMiBAQCBFbmNvZGVkSlNWYWx1ZSBERkdfT1BFUkFUSU9O
IG9wZXJhdGlvbkdlCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCitF
bmNvZGVkSlNWYWx1ZSBERkdfT1BFUkFUSU9OIG9wZXJhdGlvbkNhbGxDdXN0b21HZXR0ZXIoRXhl
Y1N0YXRlKiBleGVjLCBKU0NlbGwqIGJhc2UsIFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jIGZ1
bmN0aW9uLCBJZGVudGlmaWVyKiBpZGVudCkKK3sKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGZ1bmN0aW9uKGV4ZWMsIGFzT2JqZWN0KGJhc2UpLCAqaWRlbnQpKTsKK30KKworRW5jb2RlZEpT
VmFsdWUgREZHX09QRVJBVElPTiBvcGVyYXRpb25DYWxsR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywg
SlNDZWxsKiBiYXNlLCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSkKK3sKKyAgICBHZXR0ZXJTZXR0ZXIq
IGdldHRlclNldHRlciA9IGFzR2V0dGVyU2V0dGVyKEpTVmFsdWU6OmRlY29kZSh2YWx1ZSkuYXNP
YmplY3QoKSk7CisgICAgSlNPYmplY3QqIGdldHRlciA9IGdldHRlclNldHRlci0+Z2V0dGVyKCk7
CisgICAgaWYgKCFnZXR0ZXIpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CisgICAgQ2FsbERhdGEgY2FsbERhdGE7CisgICAgQ2FsbFR5cGUgY2FsbFR5cGUg
PSBnZXR0ZXItPm1ldGhvZFRhYmxlKCktPmdldENhbGxEYXRhKGdldHRlciwgY2FsbERhdGEpOwor
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY2FsbChleGVjLCBnZXR0ZXIsIGNhbGxUeXBlLCBj
YWxsRGF0YSwgYXNPYmplY3QoYmFzZSksIEFyZ0xpc3QoKSkpOworfQorCiB2b2lkIERGR19PUEVS
QVRJT04gb3BlcmF0aW9uUHV0QnlWYWxTdHJpY3QoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFByb3BlcnR5LCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgb3BlcmF0aW9uUHV0QnlWYWxJbnRlcm5hbDx0
cnVlPihleGVjLCBlbmNvZGVkQmFzZSwgZW5jb2RlZFByb3BlcnR5LCBlbmNvZGVkVmFsdWUpOwpA
QCAtODA4LDYgKzgyNCwyMiBAQCBERkdIYW5kbGVyRW5jb2RlZCBERkdfT1BFUkFUSU9OIGxvb2t1
cEV4CiAgICAgcmV0dXJuIGRmZ0hhbmRsZXJFbmNvZGVkKGV4ZWMsIGNhdGNoUm91dGluZSk7CiB9
CiAKK0RGR0hhbmRsZXJFbmNvZGVkIERGR19PUEVSQVRJT04gbG9va3VwRXhjZXB0aW9uSGFuZGxl
ckluU3R1YihFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbykKK3sK
KyAgICBKU1ZhbHVlIGV4Y2VwdGlvblZhbHVlID0gZXhlYy0+ZXhjZXB0aW9uKCk7CisgICAgQVNT
RVJUKGV4Y2VwdGlvblZhbHVlKTsKKyAgICAKKyAgICBDb2RlT3JpZ2luIGNvZGVPcmlnaW4gPSBz
dHViSW5mby0+Y29kZU9yaWdpbjsKKyAgICB3aGlsZSAoY29kZU9yaWdpbi5pbmxpbmVDYWxsRnJh
bWUpCisgICAgICAgIGNvZGVPcmlnaW4gPSBjb2RlT3JpZ2luLmlubGluZUNhbGxGcmFtZS0+Y2Fs
bGVyOworCisgICAgSGFuZGxlckluZm8qIGhhbmRsZXIgPSBleGVjLT5nbG9iYWxEYXRhKCkuaW50
ZXJwcmV0ZXItPnRocm93RXhjZXB0aW9uKGV4ZWMsIGV4Y2VwdGlvblZhbHVlLCBjb2RlT3JpZ2lu
LmJ5dGVjb2RlSW5kZXgpOworCisgICAgdm9pZCogY2F0Y2hSb3V0aW5lID0gaGFuZGxlciA/IGhh
bmRsZXItPm5hdGl2ZUNvZGUuZXhlY3V0YWJsZUFkZHJlc3MoKSA6ICh2b2lkKiljdGlPcFRocm93
Tm90Q2F1Z2h0OworICAgIEFTU0VSVChjYXRjaFJvdXRpbmUpOworICAgIHJldHVybiBkZmdIYW5k
bGVyRW5jb2RlZChleGVjLCBjYXRjaFJvdXRpbmUpOworfQorCiBkb3VibGUgREZHX09QRVJBVElP
TiBkZmdDb252ZXJ0SlNWYWx1ZVRvTnVtYmVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFs
dWUgdmFsdWUpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmRlY29kZSh2YWx1ZSkudG9OdW1iZXIo
ZXhlYyk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaAko
cmV2aXNpb24gMTA1MDM1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRp
b25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwNCw3ICsxMDQsOCBAQCBFbmNvZGVkSlNWYWx1ZSBE
RkdfT1BFUkFUSU9OIG9wZXJhdGlvbkdlCiBFbmNvZGVkSlNWYWx1ZSBERkdfT1BFUkFUSU9OIG9w
ZXJhdGlvbkdldEJ5SWRCdWlsZExpc3QoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIElkZW50
aWZpZXIqKTsKIEVuY29kZWRKU1ZhbHVlIERGR19PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlJZFBy
b3RvQnVpbGRMaXN0KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBJZGVudGlmaWVyKik7CiBF
bmNvZGVkSlNWYWx1ZSBERkdfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5SWRPcHRpbWl6ZShFeGVj
U3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgSWRlbnRpZmllciopOwotRW5jb2RlZEpTVmFsdWUgREZH
X09QRVJBVElPTiBvcGVyYXRpb25HZXRNZXRob2RPcHRpbWl6ZShFeGVjU3RhdGUqLCBFbmNvZGVk
SlNWYWx1ZSwgSWRlbnRpZmllciopOworRW5jb2RlZEpTVmFsdWUgREZHX09QRVJBVElPTiBvcGVy
YXRpb25DYWxsQ3VzdG9tR2V0dGVyKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIFByb3BlcnR5U2xvdDo6
R2V0VmFsdWVGdW5jLCBJZGVudGlmaWVyKik7CitFbmNvZGVkSlNWYWx1ZSBERkdfT1BFUkFUSU9O
IG9wZXJhdGlvbkNhbGxHZXR0ZXIoRXhlY1N0YXRlKiwgSlNDZWxsKiwgRW5jb2RlZEpTVmFsdWUp
OwogRW5jb2RlZEpTVmFsdWUgREZHX09QRVJBVElPTiBvcGVyYXRpb25SZXNvbHZlKEV4ZWNTdGF0
ZSosIElkZW50aWZpZXIqKTsKIEVuY29kZWRKU1ZhbHVlIERGR19PUEVSQVRJT04gb3BlcmF0aW9u
UmVzb2x2ZUJhc2UoRXhlY1N0YXRlKiwgSWRlbnRpZmllciopOwogRW5jb2RlZEpTVmFsdWUgREZH
X09QRVJBVElPTiBvcGVyYXRpb25SZXNvbHZlQmFzZVN0cmljdFB1dChFeGVjU3RhdGUqLCBJZGVu
dGlmaWVyKik7CkBAIC0xODEsNiArMTgyLDcgQEAgaW5saW5lIERGR0hhbmRsZXJFbmNvZGVkIGRm
Z0hhbmRsZXJFbmNvZAogfQogI2VuZGlmCiBERkdIYW5kbGVyRW5jb2RlZCBERkdfT1BFUkFUSU9O
IGxvb2t1cEV4Y2VwdGlvbkhhbmRsZXIoRXhlY1N0YXRlKiwgdWludDMyX3QpOworREZHSGFuZGxl
ckVuY29kZWQgREZHX09QRVJBVElPTiBsb29rdXBFeGNlcHRpb25IYW5kbGVySW5TdHViKEV4ZWNT
dGF0ZSosIFN0cnVjdHVyZVN0dWJJbmZvKik7CiAKIC8vIFRoZXNlIG9wZXJhdGlvbnMgaW1wbGVt
ZW50IHRoZSBpbXBsaWNpdGx5IGNhbGxlZCBUb0ludDMyLCBUb051bWJlciwgYW5kIFRvQm9vbGVh
biBjb252ZXJzaW9ucyBmcm9tIEVTNS4KIGRvdWJsZSBERkdfT1BFUkFUSU9OIGRmZ0NvbnZlcnRK
U1ZhbHVlVG9OdW1iZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUpOwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcm9wYWdhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Byb3BhZ2F0b3IuY3BwCShyZXZpc2lvbiAxMDUwMzUp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Byb3BhZ2F0b3IuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00NjQsNiArNDY0LDExIEBAIHByaXZhdGU6CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQogICAgICAgICAgICAgCisgICAgICAgIGNhc2UgR2V0QnlJZEZsdXNoOgorICAg
ICAgICAgICAgaWYgKG5vZGUuZ2V0SGVhcFByZWRpY3Rpb24oKSkKKyAgICAgICAgICAgICAgICBj
aGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihub2RlLmdldEhlYXBQcmVkaWN0aW9uKCkpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAKICAgICAgICAgY2FzZSBHZXRCeVZhbDogewog
ICAgICAgICAgICAgaWYgKG1fZ3JhcGhbbm9kZS5jaGlsZDEoKV0uc2hvdWxkU3BlY3VsYXRlVWlu
dDMyQXJyYXkoKSB8fCBtX2dyYXBoW25vZGUuY2hpbGQxKCldLnNob3VsZFNwZWN1bGF0ZUZsb2F0
MzJBcnJheSgpIHx8IG1fZ3JhcGhbbm9kZS5jaGlsZDEoKV0uc2hvdWxkU3BlY3VsYXRlRmxvYXQ2
NEFycmF5KCkpCiAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oUHJl
ZGljdERvdWJsZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1JlcGF0Y2gu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUmVwYXRjaC5j
cHAJKHJldmlzaW9uIDEwNTAzNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUmVw
YXRjaC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShE
RkdfSklUKQogCisjaW5jbHVkZSAiREZHQ0NhbGxIZWxwZXIuaCIKICNpbmNsdWRlICJERkdTcGVj
dWxhdGl2ZUpJVC5oIgogI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKICNpbmNsdWRlICJPcGVyYXRp
b25zLmgiCkBAIC0yMjcsOCArMjI4LDEwIEBAIHN0YXRpYyBib29sIHRyeUNhY2hlR2V0QnlJRChF
eGVjU3RhdGUqIGUKIAogICAgIC8vIE9wdGltaXplIHNlbGYgYWNjZXNzLgogICAgIGlmIChzbG90
LnNsb3RCYXNlKCkgPT0gYmFzZVZhbHVlKSB7Ci0gICAgICAgIGlmICgoc2xvdC5jYWNoZWRQcm9w
ZXJ0eVR5cGUoKSAhPSBQcm9wZXJ0eVNsb3Q6OlZhbHVlKSB8fCAoKHNsb3QuY2FjaGVkT2Zmc2V0
KCkgKiBzaXplb2YoSlNWYWx1ZSkpID4gKHVuc2lnbmVkKU1hY3JvQXNzZW1ibGVyOjpNYXhpbXVt
Q29tcGFjdFB0ckFsaWduZWRBZGRyZXNzT2Zmc2V0KSkKKyAgICAgICAgaWYgKChzbG90LmNhY2hl
ZFByb3BlcnR5VHlwZSgpICE9IFByb3BlcnR5U2xvdDo6VmFsdWUpIHx8ICgoc2xvdC5jYWNoZWRP
ZmZzZXQoKSAqIHNpemVvZihKU1ZhbHVlKSkgPiAodW5zaWduZWQpTWFjcm9Bc3NlbWJsZXI6Ok1h
eGltdW1Db21wYWN0UHRyQWxpZ25lZEFkZHJlc3NPZmZzZXQpKSB7CisgICAgICAgICAgICBkZmdS
ZXBhdGNoQ2FsbChjb2RlQmxvY2ssIHN0dWJJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbiwgb3BlcmF0
aW9uR2V0QnlJZEJ1aWxkTGlzdCk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IH0KIAogICAgICAgICBkZmdSZXBhdGNoQnlJZFNlbGZBY2Nlc3MoY29kZUJsb2NrLCBzdHViSW5m
bywgc3RydWN0dXJlLCBzbG90LmNhY2hlZE9mZnNldCgpLCBvcGVyYXRpb25HZXRCeUlkQnVpbGRM
aXN0LCB0cnVlKTsKICAgICAgICAgc3R1YkluZm8uaW5pdEdldEJ5SWRTZWxmKCpnbG9iYWxEYXRh
LCBjb2RlQmxvY2stPm93bmVyRXhlY3V0YWJsZSgpLCBzdHJ1Y3R1cmUpOwpAQCAtMjY4LDE2ICsy
NzEsMjAgQEAgdm9pZCBkZmdSZXBhdGNoR2V0QnlJRChFeGVjU3RhdGUqIGV4ZWMsIAogICAgICAg
ICBkZmdSZXBhdGNoQ2FsbChleGVjLT5jb2RlQmxvY2soKSwgc3R1YkluZm8uY2FsbFJldHVybkxv
Y2F0aW9uLCBvcGVyYXRpb25HZXRCeUlkKTsKIH0KIAotc3RhdGljIGJvb2wgdHJ5QnVpbGRHZXRC
eUlETGlzdChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgYmFzZVZhbHVlLCBjb25zdCBJZGVudGlm
aWVyJiwgY29uc3QgUHJvcGVydHlTbG90JiBzbG90LCBTdHJ1Y3R1cmVTdHViSW5mbyYgc3R1Yklu
Zm8pCitzdGF0aWMgYm9vbCB0cnlCdWlsZEdldEJ5SURMaXN0KEV4ZWNTdGF0ZSogZXhlYywgSlNW
YWx1ZSBiYXNlVmFsdWUsIGNvbnN0IElkZW50aWZpZXImIGlkZW50LCBjb25zdCBQcm9wZXJ0eVNs
b3QmIHNsb3QsIFN0cnVjdHVyZVN0dWJJbmZvJiBzdHViSW5mbykKIHsKICAgICBpZiAoIWJhc2VW
YWx1ZS5pc0NlbGwoKQogICAgICAgICB8fCAhc2xvdC5pc0NhY2hlYWJsZSgpCiAgICAgICAgIHx8
IGJhc2VWYWx1ZS5hc0NlbGwoKS0+c3RydWN0dXJlKCktPmlzVW5jYWNoZWFibGVEaWN0aW9uYXJ5
KCkKLSAgICAgICAgfHwgc2xvdC5zbG90QmFzZSgpICE9IGJhc2VWYWx1ZQotICAgICAgICB8fCBz
bG90LmNhY2hlZFByb3BlcnR5VHlwZSgpICE9IFByb3BlcnR5U2xvdDo6VmFsdWUKLSAgICAgICAg
fHwgKHNsb3QuY2FjaGVkT2Zmc2V0KCkgKiBzaXplb2YoSlNWYWx1ZSkpID4gKHVuc2lnbmVkKU1h
Y3JvQXNzZW1ibGVyOjpNYXhpbXVtQ29tcGFjdFB0ckFsaWduZWRBZGRyZXNzT2Zmc2V0KQorICAg
ICAgICB8fCBzbG90LnNsb3RCYXNlKCkgIT0gYmFzZVZhbHVlKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgCisgICAgaWYgKCFzdHViSW5mby5yZWdpc3RlcnNGbHVzaGVkKSB7CisgICAgICAg
IC8vIE5lZWQgZXh0cmEgY2hlY2tzLgorICAgICAgICBpZiAoc2xvdC5jYWNoZWRQcm9wZXJ0eVR5
cGUoKSAhPSBQcm9wZXJ0eVNsb3Q6OlZhbHVlKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIH0KKyAgICAKICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGV4ZWMtPmNvZGVCbG9jaygp
OwogICAgIEpTQ2VsbCogYmFzZUNlbGwgPSBiYXNlVmFsdWUuYXNDZWxsKCk7CiAgICAgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUgPSBiYXNlQ2VsbC0+c3RydWN0dXJlKCk7CkBAIC0zMDYsMjAgKzMxMyw2
OCBAQCBzdGF0aWMgYm9vbCB0cnlCdWlsZEdldEJ5SURMaXN0KEV4ZWNTdGF0CiAjZW5kaWYKICAg
ICAgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHN0YXRpY19jYXN0PEdQUlJlZz4oc3R1YkluZm8udmFs
dWVHUFIpOwogICAgICAgICAKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXIgc3R1YkppdDsKKyAgICAg
ICAgQ0NhbGxIZWxwZXJzIHN0dWJKaXQ7CiAgICAgICAgIAogICAgICAgICBNYWNyb0Fzc2VtYmxl
cjo6SnVtcCB3cm9uZ1N0cnVjdCA9IHN0dWJKaXQuYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpO
b3RFcXVhbCwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZUdQUiwgSlNDZWxsOjpzdHJ1Y3R1
cmVPZmZzZXQoKSksIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHN0cnVjdHVyZSkpOwot
Ci0gICAgICAgIHN0dWJKaXQubG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlR1BS
LCBKU09iamVjdDo6b2Zmc2V0T2ZQcm9wZXJ0eVN0b3JhZ2UoKSksIHJlc3VsdEdQUik7CisgICAg
ICAgIAorICAgICAgICAvLyBUaGUgc3RyYXRlZ3kgd2UgdXNlIGZvciBzdHVicyBpcyBhcyBmb2xs
b3dzOgorICAgICAgICAvLyAxKSBDYWxsIERGRyBoZWxwZXIgdGhhdCBjYWxscyB0aGUgZ2V0dGVy
LgorICAgICAgICAvLyAyKSBDaGVjayBpZiB0aGVyZSB3YXMgYW4gZXhjZXB0aW9uLCBhbmQgaWYg
dGhlcmUgd2FzLCBjYWxsIHlldCBhbm90aGVyCisgICAgICAgIC8vICAgIGhlbHBlci4KKyAgICAg
ICAgCisgICAgICAgIGJvb2wgaXNEaXJlY3QgPSBmYWxzZTsKKyAgICAgICAgTWFjcm9Bc3NlbWJs
ZXI6OkNhbGwgb3BlcmF0aW9uQ2FsbDsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgaGFu
ZGxlckNhbGw7CisgICAgICAgIEZ1bmN0aW9uUHRyIG9wZXJhdGlvbkZ1bmN0aW9uOworICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBzdWNjZXNzOworICAgICAgICAKKyAgICAgICAgaWYgKHNs
b3QuY2FjaGVkUHJvcGVydHlUeXBlKCkgPT0gUHJvcGVydHlTbG90OjpHZXR0ZXIKKyAgICAgICAg
ICAgIHx8IHNsb3QuY2FjaGVkUHJvcGVydHlUeXBlKCkgPT0gUHJvcGVydHlTbG90OjpWYWx1ZSkg
eworICAgICAgICAgICAgc3R1YkppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJh
c2VHUFIsIEpTT2JqZWN0OjpvZmZzZXRPZlByb3BlcnR5U3RvcmFnZSgpKSwgcmVzdWx0R1BSKTsK
ICNpZiBVU0UoSlNWQUxVRTY0KQotICAgICAgICBzdHViSml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJs
ZXI6OkFkZHJlc3MocmVzdWx0R1BSLCBzbG90LmNhY2hlZE9mZnNldCgpICogc2l6ZW9mKEpTVmFs
dWUpKSwgcmVzdWx0R1BSKTsKKyAgICAgICAgICAgIHN0dWJKaXQubG9hZFB0cihNYWNyb0Fzc2Vt
Ymxlcjo6QWRkcmVzcyhyZXN1bHRHUFIsIHNsb3QuY2FjaGVkT2Zmc2V0KCkgKiBzaXplb2YoSlNW
YWx1ZSkpLCByZXN1bHRHUFIpOwogI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKLSAgICAgICAgc3R1
YkppdC5sb2FkMzIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MocmVzdWx0R1BSLCBzbG90LmNhY2hl
ZE9mZnNldCgpICogc2l6ZW9mKEpTVmFsdWUpICsgT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1
ZURlc2NyaXB0b3IsIGFzQml0cy50YWcpKSwgcmVzdWx0VGFnR1BSKTsKLSAgICAgICAgc3R1Ykpp
dC5sb2FkMzIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MocmVzdWx0R1BSLCBzbG90LmNhY2hlZE9m
ZnNldCgpICogc2l6ZW9mKEpTVmFsdWUpICsgT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURl
c2NyaXB0b3IsIGFzQml0cy5wYXlsb2FkKSksIHJlc3VsdEdQUik7CisgICAgICAgICAgICBzdHVi
Sml0LmxvYWQzMihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhyZXN1bHRHUFIsIHNsb3QuY2FjaGVk
T2Zmc2V0KCkgKiBzaXplb2YoSlNWYWx1ZSkgKyBPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVl
RGVzY3JpcHRvciwgYXNCaXRzLnRhZykpLCByZXN1bHRUYWdHUFIpOworICAgICAgICAgICAgc3R1
YkppdC5sb2FkMzIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MocmVzdWx0R1BSLCBzbG90LmNhY2hl
ZE9mZnNldCgpICogc2l6ZW9mKEpTVmFsdWUpICsgT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1
ZURlc2NyaXB0b3IsIGFzQml0cy5wYXlsb2FkKSksIHJlc3VsdEdQUik7CiAjZW5kaWYKLQotICAg
ICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBzdWNjZXNzID0gc3R1YkppdC5qdW1wKCk7CisgICAg
ICAgIH0KICAgICAgICAgCisgICAgICAgIGlmIChzbG90LmNhY2hlZFByb3BlcnR5VHlwZSgpID09
IFByb3BlcnR5U2xvdDo6R2V0dGVyCisgICAgICAgICAgICB8fCBzbG90LmNhY2hlZFByb3BlcnR5
VHlwZSgpID09IFByb3BlcnR5U2xvdDo6Q3VzdG9tKSB7CisgICAgICAgICAgICBpZiAoc2xvdC5j
YWNoZWRQcm9wZXJ0eVR5cGUoKSA9PSBQcm9wZXJ0eVNsb3Q6OkdldHRlcikgeworICAgICAgICAg
ICAgICAgIEFTU0VSVChiYXNlR1BSICE9IHJlc3VsdEdQUik7CisjaWYgVVNFKEpTVkFMVUU2NCkK
KyAgICAgICAgICAgICAgICBzdHViSml0LnNldHVwQXJndW1lbnRzKGJhc2VHUFIsIHJlc3VsdEdQ
Uik7CisjZWxzZQorICAgICAgICAgICAgICAgIHN0dWJKaXQuc2V0dXBBcmd1bWVudHMoYmFzZUdQ
UiwgcmVzdWx0VGFnLCByZXN1bHRHUFIpOworICAgICAgICAgICAgICAgIEFTU0VSVChiYXNlR1BS
ICE9IHJlc3VsdFRhZ0dQUik7CisgICAgICAgICAgICAgICAgQVNTRVJUKHJlc3VsdEdQUiAhPSBy
ZXN1bHRUYWdHUFIpOworI2VuZGlmCisgICAgICAgICAgICAgICAgb3BlcmF0aW9uRnVuY3Rpb24g
PSBvcGVyYXRpb25DYWxsR2V0dGVyOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
ICAgICBzdHViSml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZSgKKyAgICAgICAgICAgICAg
ICAgICAgYmFzZUdQUiwKKyAgICAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0
ZWRJbW1QdHIoRnVuY3Rpb25QdHIoc2xvdC5jdXN0b21HZXR0ZXIoKSkuZXhlY3V0YWJsZUFkZHJl
c3MoKSksCisgICAgICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRy
KGNvbnN0X2Nhc3Q8SWRlbnRpZmllcio+KCZpZGVudCkpKTsKKyAgICAgICAgICAgICAgICBvcGVy
YXRpb25GdW5jdGlvbiA9IG9wZXJhdGlvbkNhbGxDdXN0b21HZXR0ZXI7CisgICAgICAgICAgICB9
CisgICAgICAgICAgICBvcGVyYXRpb25DYWxsID0gc3R1YkppdC5jYWxsKCk7CisjaWYgVVNFKEpT
VkFMVUU2NCkKKyAgICAgICAgICAgIHN0dWJKaXQubW92ZShHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQ
UiwgcmVzdWx0R1BSKTsKKyNlbHNlCisgICAgICAgICAgICBzdHViSml0LnNldHVwUmVzdWx0cyhy
ZXN1bHRUYWdHUFIsIHJlc3VsdEdQUik7CisjZW5kaWYKKyAgICAgICAgICAgIHN1Y2Nlc3MgPSBz
dHViSml0LmV4Y2VwdGlvbkNoZWNrKENDYWxsSGVscGVyczo6SW52ZXJ0ZWRFeGNlcHRpb25DaGVj
ayk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHN0dWJKaXQuc2V0dXBBcmd1bWVudHNXaXRo
RXhlY1N0YXRlKAorICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRy
KCZzdHViSW5mbykpOworICAgICAgICAgICAgaGFuZGxlckNhbGwgPSBzdHViSml0LmNhbGwoKTsK
KyAgICAgICAgICAgIHN0dWJKaXQuanVtcChHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUjIpOworICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgc3VjY2VzcyA9IHN0dWJKaXQuanVtcCgpOworICAg
ICAgICAgICAgaXNEaXJlY3QgPSB0cnVlOworICAgICAgICB9CisKICAgICAgICAgTGlua0J1ZmZl
ciBwYXRjaEJ1ZmZlcigqZ2xvYmFsRGF0YSwgJnN0dWJKaXQpOwogICAgICAgICAKICAgICAgICAg
Q29kZUxvY2F0aW9uTGFiZWwgbGFzdFByb3RvQmVnaW4gPSBDb2RlTG9jYXRpb25MYWJlbChwb2x5
bW9ycGhpY1N0cnVjdHVyZUxpc3QtPmxpc3RbbGlzdEluZGV4IC0gMV0uc3R1YlJvdXRpbmUuY29k
ZSgpKTsKQEAgLTMyNywxMCArMzgyLDE0IEBAIHN0YXRpYyBib29sIHRyeUJ1aWxkR2V0QnlJRExp
c3QoRXhlY1N0YXQKICAgICAgICAgCiAgICAgICAgIHBhdGNoQnVmZmVyLmxpbmsod3JvbmdTdHJ1
Y3QsIGxhc3RQcm90b0JlZ2luKTsKICAgICAgICAgcGF0Y2hCdWZmZXIubGluayhzdWNjZXNzLCBz
dHViSW5mby5jYWxsUmV0dXJuTG9jYXRpb24ubGFiZWxBdE9mZnNldChzdHViSW5mby5kZWx0YUNh
bGxUb0RvbmUpKTsKKyAgICAgICAgaWYgKCFpc0RpcmVjdCkgeworICAgICAgICAgICAgcGF0Y2hC
dWZmZXIubGluayhvcGVyYXRpb25DYWxsLCBvcGVyYXRpb25GdW5jdGlvbik7CisgICAgICAgICAg
ICBwYXRjaEJ1ZmZlci5saW5rKGhhbmRsZXJDYWxsLCBsb29rdXBFeGNlcHRpb25IYW5kbGVySW5T
dHViKTsKKyAgICAgICAgfQogICAgICAgICAKICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVm
IHN0dWJSb3V0aW5lID0gcGF0Y2hCdWZmZXIuZmluYWxpemVDb2RlKCk7CiAgICAgICAgIAotICAg
ICAgICBwb2x5bW9ycGhpY1N0cnVjdHVyZUxpc3QtPmxpc3RbbGlzdEluZGV4XS5zZXQoKmdsb2Jh
bERhdGEsIGNvZGVCbG9jay0+b3duZXJFeGVjdXRhYmxlKCksIHN0dWJSb3V0aW5lLCBzdHJ1Y3R1
cmUsIHRydWUpOworICAgICAgICBwb2x5bW9ycGhpY1N0cnVjdHVyZUxpc3QtPmxpc3RbbGlzdElu
ZGV4XS5zZXQoKmdsb2JhbERhdGEsIGNvZGVCbG9jay0+b3duZXJFeGVjdXRhYmxlKCksIHN0dWJS
b3V0aW5lLCBzdHJ1Y3R1cmUsIGlzRGlyZWN0KTsKICAgICAgICAgCiAgICAgICAgIENvZGVMb2Nh
dGlvbkp1bXAganVtcExvY2F0aW9uID0gc3R1YkluZm8uY2FsbFJldHVybkxvY2F0aW9uLmp1bXBB
dE9mZnNldChzdHViSW5mby5kZWx0YUNhbGxUb1N0cnVjdENoZWNrKTsKICAgICAgICAgUmVwYXRj
aEJ1ZmZlciByZXBhdGNoQnVmZmVyKGNvZGVCbG9jayk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAJKHJldmlzaW9u
IDEwNTAzNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQz
Ml82NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5Myw3ICs0OTMsNyBAQCB2b2lkIFNwZWN1bGF0
aXZlSklUOjpub25TcGVjdWxhdGl2ZVVJbnQzCiAgICAganNWYWx1ZVJlc3VsdChyZXN1bHRUYWcu
Z3ByKCksIHJlc3VsdFBheWxvYWQuZ3ByKCksIG1fY29tcGlsZUluZGV4KTsKIH0KIAotSklUQ29t
cGlsZXI6OkNhbGwgU3BlY3VsYXRpdmVKSVQ6OmNhY2hlZEdldEJ5SWQoR1BSUmVnIGJhc2VUYWdH
UFJPck5vbmUsIEdQUlJlZyBiYXNlUGF5bG9hZEdQUiwgR1BSUmVnIHJlc3VsdFRhZ0dQUiwgR1BS
UmVnIHJlc3VsdFBheWxvYWRHUFIsIEdQUlJlZyBzY3JhdGNoR1BSLCB1bnNpZ25lZCBpZGVudGlm
aWVyTnVtYmVyLCBKSVRDb21waWxlcjo6SnVtcCBzbG93UGF0aFRhcmdldCkKK0pJVENvbXBpbGVy
OjpDYWxsIFNwZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlkKEdQUlJlZyBiYXNlVGFnR1BST3JO
b25lLCBHUFJSZWcgYmFzZVBheWxvYWRHUFIsIEdQUlJlZyByZXN1bHRUYWdHUFIsIEdQUlJlZyBy
ZXN1bHRQYXlsb2FkR1BSLCBHUFJSZWcgc2NyYXRjaEdQUiwgdW5zaWduZWQgaWRlbnRpZmllck51
bWJlciwgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQsIFNwaWxsUmVnaXN0ZXJzTW9k
ZSBzcGlsbE1vZGUpCiB7CiAgICAgbV9qaXQuYmVnaW5VbmludGVycnVwdGVkU2VxdWVuY2UoKTsK
ICAgICBKSVRDb21waWxlcjo6RGF0YUxhYmVsUHRyIHN0cnVjdHVyZVRvQ29tcGFyZTsKQEAgLTUx
MywxOSArNTEzLDIxIEBAIEpJVENvbXBpbGVyOjpDYWxsIFNwZWN1bGF0aXZlSklUOjpjYWNoZWQK
ICAgICAKICAgICBKSVRDb21waWxlcjo6TGFiZWwgc2xvd0Nhc2UgPSBtX2ppdC5sYWJlbCgpOwog
Ci0gICAgc2lsZW50U3BpbGxBbGxSZWdpc3RlcnMocmVzdWx0VGFnR1BSLCByZXN1bHRQYXlsb2Fk
R1BSKTsKKyAgICBpZiAoc3BpbGxNb2RlID09IE5lZWRUb1NwaWxsKQorICAgICAgICBzaWxlbnRT
cGlsbEFsbFJlZ2lzdGVycyhyZXN1bHRUYWdHUFIsIHJlc3VsdFBheWxvYWRHUFIpOwogICAgIEpJ
VENvbXBpbGVyOjpDYWxsIGZ1bmN0aW9uQ2FsbDsKICAgICBpZiAoYmFzZVRhZ0dQUk9yTm9uZSA9
PSBJbnZhbGlkR1BSUmVnKQogICAgICAgICBmdW5jdGlvbkNhbGwgPSBjYWxsT3BlcmF0aW9uKG9w
ZXJhdGlvbkdldEJ5SWRPcHRpbWl6ZSwgcmVzdWx0VGFnR1BSLCByZXN1bHRQYXlsb2FkR1BSLCBK
U1ZhbHVlOjpDZWxsVGFnLCBiYXNlUGF5bG9hZEdQUiwgaWRlbnRpZmllcihpZGVudGlmaWVyTnVt
YmVyKSk7CiAgICAgZWxzZQogICAgICAgICBmdW5jdGlvbkNhbGwgPSBjYWxsT3BlcmF0aW9uKG9w
ZXJhdGlvbkdldEJ5SWRPcHRpbWl6ZSwgcmVzdWx0VGFnR1BSLCByZXN1bHRQYXlsb2FkR1BSLCBi
YXNlVGFnR1BST3JOb25lLCBiYXNlUGF5bG9hZEdQUiwgaWRlbnRpZmllcihpZGVudGlmaWVyTnVt
YmVyKSk7Ci0gICAgc2lsZW50RmlsbEFsbFJlZ2lzdGVycyhyZXN1bHRUYWdHUFIsIHJlc3VsdFBh
eWxvYWRHUFIpOworICAgIGlmIChzcGlsbE1vZGUgPT0gTmVlZFRvU3BpbGwpCisgICAgICAgIHNp
bGVudEZpbGxBbGxSZWdpc3RlcnMocmVzdWx0VGFnR1BSLCByZXN1bHRQYXlsb2FkR1BSKTsKICAg
ICAKICAgICBkb25lLmxpbmsoJm1faml0KTsKICAgICAKICAgICBKSVRDb21waWxlcjo6TGFiZWwg
ZG9uZUxhYmVsID0gbV9qaXQubGFiZWwoKTsKIAotICAgIG1faml0LmFkZFByb3BlcnR5QWNjZXNz
KFByb3BlcnR5QWNjZXNzUmVjb3JkKHN0cnVjdHVyZVRvQ29tcGFyZSwgZnVuY3Rpb25DYWxsLCBz
dHJ1Y3R1cmVDaGVjaywgdGFnTG9hZFdpdGhQYXRjaCwgcGF5bG9hZExvYWRXaXRoUGF0Y2gsIHNs
b3dDYXNlLCBkb25lTGFiZWwsIHNhZmVDYXN0PGludDhfdD4oYmFzZVBheWxvYWRHUFIpLCBzYWZl
Q2FzdDxpbnQ4X3Q+KHJlc3VsdFRhZ0dQUiksIHNhZmVDYXN0PGludDhfdD4ocmVzdWx0UGF5bG9h
ZEdQUiksIHNhZmVDYXN0PGludDhfdD4oc2NyYXRjaEdQUikpKTsKKyAgICBtX2ppdC5hZGRQcm9w
ZXJ0eUFjY2VzcyhQcm9wZXJ0eUFjY2Vzc1JlY29yZChzdHJ1Y3R1cmVUb0NvbXBhcmUsIGZ1bmN0
aW9uQ2FsbCwgc3RydWN0dXJlQ2hlY2ssIHRhZ0xvYWRXaXRoUGF0Y2gsIHBheWxvYWRMb2FkV2l0
aFBhdGNoLCBzbG93Q2FzZSwgZG9uZUxhYmVsLCBzYWZlQ2FzdDxpbnQ4X3Q+KGJhc2VQYXlsb2Fk
R1BSKSwgc2FmZUNhc3Q8aW50OF90PihyZXN1bHRUYWdHUFIpLCBzYWZlQ2FzdDxpbnQ4X3Q+KHJl
c3VsdFBheWxvYWRHUFIpLCBzYWZlQ2FzdDxpbnQ4X3Q+KHNjcmF0Y2hHUFIpLCBzcGlsbE1vZGUg
PT0gTmVlZFRvU3BpbGwgPyBQcm9wZXJ0eUFjY2Vzc1JlY29yZDo6UmVnaXN0ZXJzSW5Vc2UgOiBQ
cm9wZXJ0eUFjY2Vzc1JlY29yZDo6UmVnaXN0ZXJzRmx1c2hlZCkpOwogICAgIAogICAgIHJldHVy
biBmdW5jdGlvbkNhbGw7CiB9CkBAIC0zMTU3LDYgKzMxNTksNjQgQEAgdm9pZCBTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZShOb2RlJiBub2RlKQogICAgICAgICBicmVhazsKICAgICB9CiAKKyAgICBj
YXNlIEdldEJ5SWRGbHVzaDogeworICAgICAgICBpZiAoIW5vZGUucHJlZGljdGlvbigpKSB7Cisg
ICAgICAgICAgICB0ZXJtaW5hdGVTcGVjdWxhdGl2ZUV4ZWN1dGlvbihVbmNvdW50YWJsZSwgSlNW
YWx1ZVJlZ3MoKSwgTm9Ob2RlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg
ICAgIAorICAgICAgICBpZiAoaXNDZWxsUHJlZGljdGlvbihhdChub2RlLmNoaWxkMSgpKS5wcmVk
aWN0aW9uKCkpKSB7CisgICAgICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMs
IG5vZGUuY2hpbGQxKCkpOworICAgICAgICAgICAgR1BSUmVzdWx0IHJlc3VsdFRhZyh0aGlzKTsK
KyAgICAgICAgICAgIEdQUlJlc3VsdDIgcmVzdWx0UGF5bG9hZCh0aGlzKTsKKyAgICAgICAgICAg
IAorICAgICAgICAgICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNlLmdwcigpOworICAgICAgICAgICAg
R1BSUmVnIHJlc3VsdFRhZ0dQUiA9IHJlc3VsdFRhZy5ncHIoKTsKKyAgICAgICAgICAgIEdQUlJl
ZyByZXN1bHRQYXlsb2FkR1BSID0gcmVzdWx0UGF5bG9hZC5ncHIoKTsKKyAgICAgICAgICAgIEdQ
UlJlZyBzY3JhdGNoR1BSOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAocmVzdWx0VGFn
R1BSID09IGJhc2VHUFIpCisgICAgICAgICAgICAgICAgc2NyYXRjaEdQUiA9IHJlc3VsdFBheWxv
YWRHUFI7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgc2NyYXRjaEdQUiA9IHJl
c3VsdFRhZ0dQUjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgYmFzZS51c2UoKTsKKyAgICAg
ICAgICAgIAorICAgICAgICAgICAgZmx1c2hSZWdpc3RlcnMoKTsKKyAgICAgICAgICAgIAorICAg
ICAgICAgICAgY2FjaGVkR2V0QnlJZChJbnZhbGlkR1BSUmVnLCBiYXNlR1BSLCByZXN1bHRUYWdH
UFIsIHJlc3VsdFBheWxvYWRHUFIsIHNjcmF0Y2hHUFIsIG5vZGUuaWRlbnRpZmllck51bWJlcigp
LCBKSVRDb21waWxlcjo6SnVtcCgpLCBKSVRDb21waWxlcjo6RG9udFNwaWxsKTsKKyAgICAgICAg
ICAgIAorICAgICAgICAgICAganNWYWx1ZVJlc3VsdChyZXN1bHRUYWdHUFIsIHJlc3VsdFBheWxv
YWRHUFIsIG1fY29tcGlsZUluZGV4LCBVc2VDaGlsZHJlbkNhbGxlZEV4cGxpY2l0bHkpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIEpTVmFsdWVPcGVy
YW5kIGJhc2UodGhpcywgbm9kZS5jaGlsZDEoKSk7CisgICAgICAgIEdQUlJlc3VsdCByZXN1bHRU
YWcodGhpcyk7CisgICAgICAgIEdQUlJlc3VsdCByZXN1bHRQYXlsb2FkKHRoaXMpOworICAgICAg
ICAKKyAgICAgICAgR1BSUmVnIGJhc2VUYWdHUFIgPSBiYXNlLnRhZ0dQUigpOworICAgICAgICBH
UFJSZWcgYmFzZVBheWxvYWRHUFIgPSBiYXNlLnBheWxvYWRHUFIoKTsKKyAgICAgICAgR1BSUmVn
IHJlc3VsdFRhZ0dQUiA9IHJlc3VsdFRhZy5ncHIoKTsKKyAgICAgICAgR1BSUmVnIHJlc3VsdFBh
eWxvYWRHUFIgPSByZXN1bHRQYXlsb2FkLmdwcigpOworICAgICAgICBHUFJSZWcgc2NyYXRjaEdQ
UjsKKworICAgICAgICBpZiAocmVzdWx0VGFnR1BSID09IGJhc2VQYXlsb2FkR1BSKQorICAgICAg
ICAgICAgc2NyYXRjaEdQUiA9IHJlc3VsdFBheWxvYWRHUFI7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIHNjcmF0Y2hHUFIgPSByZXN1bHRUYWdHUFI7CisgICAgICAgIAorICAgICAgICBiYXNl
LnVzZSgpOworICAgICAgICAKKyAgICAgICAgZmx1c2hSZWdpc3RlcnMoKTsKKyAgICAgICAgCisg
ICAgICAgIEpJVENvbXBpbGVyOjpKdW1wIG5vdENlbGwgPSBtX2ppdC5icmFuY2gzMihKSVRDb21w
aWxlcjo6Tm90RXF1YWwsIGJhc2VUYWdHUFIsIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFn
KSk7CisgICAgICAgIAorICAgICAgICBjYWNoZWRHZXRCeUlkKGJhc2VUYWdHUFIsIGJhc2VQYXls
b2FkR1BSLCByZXN1bHRUYWdHUFIsIHJlc3VsdFBheWxvYWRHUFIsIHNjcmF0Y2hHUFIsIG5vZGUu
aWRlbnRpZmllck51bWJlcigpLCBub3RDZWxsLCBKSVRDb21waWxlcjo6RG9udFNwaWxsKTsKKyAg
ICAgICAgCisgICAgICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0VGFnR1BSLCByZXN1bHRQYXlsb2Fk
R1BSLCBtX2NvbXBpbGVJbmRleCwgVXNlQ2hpbGRyZW5DYWxsZWRFeHBsaWNpdGx5KTsKKyAgICAg
ICAgYnJlYWs7CisgICAgfQorCiAgICAgY2FzZSBHZXRBcnJheUxlbmd0aDogewogICAgICAgICBT
cGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUuY2hpbGQxKCkpOwogICAgICAgICBH
UFJSZWcgYmFzZUdQUiA9IGJhc2UuZ3ByKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHJldmlzaW9uIDEwNTAzNSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQ3Nyw3ICs0NzcsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpub25TcGVj
dWxhdGl2ZVVJbnQzCiAgICAganNWYWx1ZVJlc3VsdChyZXN1bHQuZ3ByKCksIG1fY29tcGlsZUlu
ZGV4KTsKIH0KIAotSklUQ29tcGlsZXI6OkNhbGwgU3BlY3VsYXRpdmVKSVQ6OmNhY2hlZEdldEJ5
SWQoR1BSUmVnIGJhc2VHUFIsIEdQUlJlZyByZXN1bHRHUFIsIEdQUlJlZyBzY3JhdGNoR1BSLCB1
bnNpZ25lZCBpZGVudGlmaWVyTnVtYmVyLCBKSVRDb21waWxlcjo6SnVtcCBzbG93UGF0aFRhcmdl
dCkKK0pJVENvbXBpbGVyOjpDYWxsIFNwZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlkKENvZGVP
cmlnaW4gY29kZU9yaWdpbiwgR1BSUmVnIGJhc2VHUFIsIEdQUlJlZyByZXN1bHRHUFIsIEdQUlJl
ZyBzY3JhdGNoR1BSLCB1bnNpZ25lZCBpZGVudGlmaWVyTnVtYmVyLCBKSVRDb21waWxlcjo6SnVt
cCBzbG93UGF0aFRhcmdldCwgU3BpbGxSZWdpc3RlcnNNb2RlIHNwaWxsTW9kZSkKIHsKICAgICBK
SVRDb21waWxlcjo6RGF0YUxhYmVsUHRyIHN0cnVjdHVyZVRvQ29tcGFyZTsKICAgICBKSVRDb21w
aWxlcjo6SnVtcCBzdHJ1Y3R1cmVDaGVjayA9IG1faml0LmJyYW5jaFB0cldpdGhQYXRjaChKSVRD
b21waWxlcjo6Tm90RXF1YWwsIEpJVENvbXBpbGVyOjpBZGRyZXNzKGJhc2VHUFIsIEpTQ2VsbDo6
c3RydWN0dXJlT2Zmc2V0KCkpLCBzdHJ1Y3R1cmVUb0NvbXBhcmUsIEpJVENvbXBpbGVyOjpUcnVz
dGVkSW1tUHRyKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KC0xKSkpOwpAQCAtNDk0LDE1ICs0OTQs
MTcgQEAgSklUQ29tcGlsZXI6OkNhbGwgU3BlY3VsYXRpdmVKSVQ6OmNhY2hlZAogICAgIAogICAg
IEpJVENvbXBpbGVyOjpMYWJlbCBzbG93Q2FzZSA9IG1faml0LmxhYmVsKCk7CiAKLSAgICBzaWxl
bnRTcGlsbEFsbFJlZ2lzdGVycyhyZXN1bHRHUFIpOworICAgIGlmIChzcGlsbE1vZGUgPT0gTmVl
ZFRvU3BpbGwpCisgICAgICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzKHJlc3VsdEdQUik7CiAg
ICAgSklUQ29tcGlsZXI6OkNhbGwgZnVuY3Rpb25DYWxsID0gY2FsbE9wZXJhdGlvbihvcGVyYXRp
b25HZXRCeUlkT3B0aW1pemUsIHJlc3VsdEdQUiwgYmFzZUdQUiwgaWRlbnRpZmllcihpZGVudGlm
aWVyTnVtYmVyKSk7Ci0gICAgc2lsZW50RmlsbEFsbFJlZ2lzdGVycyhyZXN1bHRHUFIpOworICAg
IGlmIChzcGlsbE1vZGUgPT0gTmVlZFRvU3BpbGwpCisgICAgICAgIHNpbGVudEZpbGxBbGxSZWdp
c3RlcnMocmVzdWx0R1BSKTsKICAgICAKICAgICBkb25lLmxpbmsoJm1faml0KTsKICAgICAKICAg
ICBKSVRDb21waWxlcjo6TGFiZWwgZG9uZUxhYmVsID0gbV9qaXQubGFiZWwoKTsKIAotICAgIG1f
aml0LmFkZFByb3BlcnR5QWNjZXNzKFByb3BlcnR5QWNjZXNzUmVjb3JkKHN0cnVjdHVyZVRvQ29t
cGFyZSwgZnVuY3Rpb25DYWxsLCBzdHJ1Y3R1cmVDaGVjaywgbG9hZFdpdGhQYXRjaCwgc2xvd0Nh
c2UsIGRvbmVMYWJlbCwgc2FmZUNhc3Q8aW50OF90PihiYXNlR1BSKSwgc2FmZUNhc3Q8aW50OF90
PihyZXN1bHRHUFIpLCBzYWZlQ2FzdDxpbnQ4X3Q+KHNjcmF0Y2hHUFIpKSk7CisgICAgbV9qaXQu
YWRkUHJvcGVydHlBY2Nlc3MoUHJvcGVydHlBY2Nlc3NSZWNvcmQoY29kZU9yaWdpbiwgc3RydWN0
dXJlVG9Db21wYXJlLCBmdW5jdGlvbkNhbGwsIHN0cnVjdHVyZUNoZWNrLCBsb2FkV2l0aFBhdGNo
LCBzbG93Q2FzZSwgZG9uZUxhYmVsLCBzYWZlQ2FzdDxpbnQ4X3Q+KGJhc2VHUFIpLCBzYWZlQ2Fz
dDxpbnQ4X3Q+KHJlc3VsdEdQUiksIHNhZmVDYXN0PGludDhfdD4oc2NyYXRjaEdQUiksIHNwaWxs
TW9kZSA9PSBOZWVkVG9TcGlsbCA/IFByb3BlcnR5QWNjZXNzUmVjb3JkOjpSZWdpc3RlcnNJblVz
ZSA6IFByb3BlcnR5QWNjZXNzUmVjb3JkOjpSZWdpc3RlcnNGbHVzaGVkKSk7CiAgICAgCiAgICAg
aWYgKHNjcmF0Y2hHUFIgIT0gcmVzdWx0R1BSICYmIHNjcmF0Y2hHUFIgIT0gSW52YWxpZEdQUlJl
ZykKICAgICAgICAgdW5sb2NrKHNjcmF0Y2hHUFIpOwpAQCAtMzEyMyw3ICszMTI1LDcgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlJiBub2RlKQogICAgICAgICAgICAgCiAgICAg
ICAgICAgICBiYXNlLnVzZSgpOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBjYWNoZWRHZXRC
eUlkKGJhc2VHUFIsIHJlc3VsdEdQUiwgc2NyYXRjaEdQUiwgbm9kZS5pZGVudGlmaWVyTnVtYmVy
KCkpOworICAgICAgICAgICAgY2FjaGVkR2V0QnlJZChjb2RlT3JpZ2luLCBiYXNlR1BSLCByZXN1
bHRHUFIsIHNjcmF0Y2hHUFIsIG5vZGUuaWRlbnRpZmllck51bWJlcigpKTsKICAgICAgICAgICAg
IAogICAgICAgICAgICAganNWYWx1ZVJlc3VsdChyZXN1bHRHUFIsIG1fY29tcGlsZUluZGV4LCBV
c2VDaGlsZHJlbkNhbGxlZEV4cGxpY2l0bHkpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0zMTQ1
LDcgKzMxNDcsNjAgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlJiBub2RlKQog
ICAgICAgICAKICAgICAgICAgSklUQ29tcGlsZXI6Okp1bXAgbm90Q2VsbCA9IG1faml0LmJyYW5j
aFRlc3RQdHIoSklUQ29tcGlsZXI6Ok5vblplcm8sIGJhc2VHUFIsIEdQUkluZm86OnRhZ01hc2tS
ZWdpc3Rlcik7CiAgICAgICAgIAotICAgICAgICBjYWNoZWRHZXRCeUlkKGJhc2VHUFIsIHJlc3Vs
dEdQUiwgc2NyYXRjaEdQUiwgbm9kZS5pZGVudGlmaWVyTnVtYmVyKCksIG5vdENlbGwpOworICAg
ICAgICBjYWNoZWRHZXRCeUlkKGNvZGVPcmlnaW4sIGJhc2VHUFIsIHJlc3VsdEdQUiwgc2NyYXRj
aEdQUiwgbm9kZS5pZGVudGlmaWVyTnVtYmVyKCksIG5vdENlbGwpOworICAgICAgICAKKyAgICAg
ICAganNWYWx1ZVJlc3VsdChyZXN1bHRHUFIsIG1fY29tcGlsZUluZGV4LCBVc2VDaGlsZHJlbkNh
bGxlZEV4cGxpY2l0bHkpOworICAgICAgICAKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAg
Y2FzZSBHZXRCeUlkRmx1c2g6IHsKKyAgICAgICAgaWYgKCFub2RlLnByZWRpY3Rpb24oKSkgewor
ICAgICAgICAgICAgdGVybWluYXRlU3BlY3VsYXRpdmVFeGVjdXRpb24oVW5jb3VudGFibGUsIEpT
VmFsdWVSZWdzKCksIE5vTm9kZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAg
ICAgICAKKyAgICAgICAgaWYgKGlzQ2VsbFByZWRpY3Rpb24oYXQobm9kZS5jaGlsZDEoKSkucHJl
ZGljdGlvbigpKSkgeworICAgICAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlz
LCBub2RlLmNoaWxkMSgpKTsKKyAgICAgICAgICAgIEdQUlJlc3VsdCByZXN1bHQodGhpcyk7Cisg
ICAgICAgICAgICAKKyAgICAgICAgICAgIEdQUlJlZyBiYXNlR1BSID0gYmFzZS5ncHIoKTsKKyAg
ICAgICAgICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7CisgICAgICAgICAgICBH
UFJSZWcgc2NyYXRjaEdQUjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHJlc3VsdEdQ
UiA9PSBiYXNlR1BSKQorICAgICAgICAgICAgICAgIHNjcmF0Y2hHUFIgPSB0cnlBbGxvY2F0ZSgp
OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHNjcmF0Y2hHUFIgPSByZXN1bHRH
UFI7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGJhc2UudXNlKCk7CisgICAgICAgICAgICAK
KyAgICAgICAgICAgIGZsdXNoUmVnaXN0ZXJzKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAg
IGNhY2hlZEdldEJ5SWQoY29kZU9yaWdpbiwgYmFzZUdQUiwgcmVzdWx0R1BSLCBzY3JhdGNoR1BS
LCBub2RlLmlkZW50aWZpZXJOdW1iZXIoKSwgSklUQ29tcGlsZXI6Okp1bXAoKSwgSklUQ29tcGls
ZXI6OkRvbnRTcGlsbCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGpzVmFsdWVSZXN1bHQo
cmVzdWx0R1BSLCBtX2NvbXBpbGVJbmRleCwgVXNlQ2hpbGRyZW5DYWxsZWRFeHBsaWNpdGx5KTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBKU1ZhbHVl
T3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUuY2hpbGQxKCkpOworICAgICAgICBHUFJSZXN1bHQgcmVz
dWx0KHRoaXMpOworICAgICAgICAKKyAgICAgICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNlLmdwcigp
OworICAgICAgICBHUFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOworICAgICAgICBHUFJS
ZWcgc2NyYXRjaEdQUjsKKyAgICAgICAgCisgICAgICAgIGlmIChyZXN1bHRHUFIgPT0gYmFzZUdQ
UikKKyAgICAgICAgICAgIHNjcmF0Y2hHUFIgPSB0cnlBbGxvY2F0ZSgpOworICAgICAgICBlbHNl
CisgICAgICAgICAgICBzY3JhdGNoR1BSID0gcmVzdWx0R1BSOworICAgICAgICAKKyAgICAgICAg
YmFzZS51c2UoKTsKKyAgICAgICAgZmx1c2hSZWdpc3RlcnMoKTsKKyAgICAgICAgCisgICAgICAg
IEpJVENvbXBpbGVyOjpKdW1wIG5vdENlbGwgPSBtX2ppdC5icmFuY2hUZXN0UHRyKEpJVENvbXBp
bGVyOjpOb25aZXJvLCBiYXNlR1BSLCBHUFJJbmZvOjp0YWdNYXNrUmVnaXN0ZXIpOworICAgICAg
ICAKKyAgICAgICAgY2FjaGVkR2V0QnlJZChjb2RlT3JpZ2luLCBiYXNlR1BSLCByZXN1bHRHUFIs
IHNjcmF0Y2hHUFIsIG5vZGUuaWRlbnRpZmllck51bWJlcigpLCBub3RDZWxsLCBKSVRDb21waWxl
cjo6RG9udFNwaWxsKTsKICAgICAgICAgCiAgICAgICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0R1BS
LCBtX2NvbXBpbGVJbmRleCwgVXNlQ2hpbGRyZW5DYWxsZWRFeHBsaWNpdGx5KTsKICAgICAgICAg
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5o
CShyZXZpc2lvbiAxMDUwMzUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklULmgJKHdvcmtpbmcgY29weSkKQEAgLTg3MiwxMSArODcyLDEyIEBAIHByaXZhdGU6
CiAgICAgdm9pZCBub25TcGVjdWxhdGl2ZVZhbHVlVG9JbnQzMihOb2RlJik7CiAgICAgdm9pZCBu
b25TcGVjdWxhdGl2ZVVJbnQzMlRvTnVtYmVyKE5vZGUmKTsKIAorICAgIGVudW0gU3BpbGxSZWdp
c3RlcnNNb2RlIHsgTmVlZFRvU3BpbGwsIERvbnRTcGlsbCB9OwogI2lmIFVTRShKU1ZBTFVFNjQp
Ci0gICAgSklUQ29tcGlsZXI6OkNhbGwgY2FjaGVkR2V0QnlJZChHUFJSZWcgYmFzZUdQUiwgR1BS
UmVnIHJlc3VsdEdQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIHVuc2lnbmVkIGlkZW50aWZpZXJOdW1i
ZXIsIEpJVENvbXBpbGVyOjpKdW1wIHNsb3dQYXRoVGFyZ2V0ID0gSklUQ29tcGlsZXI6Okp1bXAo
KSk7CisgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FjaGVkR2V0QnlJZChDb2RlT3JpZ2luIGNvZGVP
cmlnaW4sIEdQUlJlZyBiYXNlR1BSLCBHUFJSZWcgcmVzdWx0R1BSLCBHUFJSZWcgc2NyYXRjaEdQ
UiwgdW5zaWduZWQgaWRlbnRpZmllck51bWJlciwgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGhU
YXJnZXQgPSBKSVRDb21waWxlcjo6SnVtcCgpLCBTcGlsbFJlZ2lzdGVyc01vZGUgPSBOZWVkVG9T
cGlsbCk7CiAgICAgdm9pZCBjYWNoZWRQdXRCeUlkKEdQUlJlZyBiYXNlLCBHUFJSZWcgdmFsdWUs
IE5vZGVJbmRleCB2YWx1ZUluZGV4LCBHUFJSZWcgc2NyYXRjaEdQUiwgdW5zaWduZWQgaWRlbnRp
Zmllck51bWJlciwgUHV0S2luZCwgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQgPSBK
SVRDb21waWxlcjo6SnVtcCgpKTsKICNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgSklUQ29t
cGlsZXI6OkNhbGwgY2FjaGVkR2V0QnlJZChHUFJSZWcgYmFzZVRhZ0dQUk9yTm9uZSwgR1BSUmVn
IGJhc2VQYXlsb2FkR1BSLCBHUFJSZWcgcmVzdWx0VGFnR1BSLCBHUFJSZWcgcmVzdWx0UGF5bG9h
ZEdQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIsIEpJVENv
bXBpbGVyOjpKdW1wIHNsb3dQYXRoVGFyZ2V0ID0gSklUQ29tcGlsZXI6Okp1bXAoKSk7CisgICAg
SklUQ29tcGlsZXI6OkNhbGwgY2FjaGVkR2V0QnlJZChDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIEdQ
UlJlZyBiYXNlVGFnR1BST3JOb25lLCBHUFJSZWcgYmFzZVBheWxvYWRHUFIsIEdQUlJlZyByZXN1
bHRUYWdHUFIsIEdQUlJlZyByZXN1bHRQYXlsb2FkR1BSLCBHUFJSZWcgc2NyYXRjaEdQUiwgdW5z
aWduZWQgaWRlbnRpZmllck51bWJlciwgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQg
PSBKSVRDb21waWxlcjo6SnVtcCgpLCBTcGlsbFJlZ2lzdGVyc01vZGUgPSBOZWVkVG9TcGlsbCk7
CiAgICAgdm9pZCBjYWNoZWRQdXRCeUlkKEdQUlJlZyBiYXNlUGF5bG9hZEdQUiwgR1BSUmVnIHZh
bHVlVGFnR1BSLCBHUFJSZWcgdmFsdWVQYXlsb2FkR1BSLCBOb2RlSW5kZXggdmFsdWVJbmRleCwg
R1BSUmVnIHNjcmF0Y2hHUFIsIHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIsIFB1dEtpbmQsIEpJ
VENvbXBpbGVyOjpKdW1wIHNsb3dQYXRoVGFyZ2V0ID0gSklUQ29tcGlsZXI6Okp1bXAoKSk7CiAj
ZW5kaWYKIApAQCAtMTM5MSwyNiArMTM5MiwxMCBAQCBwcml2YXRlOgogICAgICAgICBtX2ppdC5t
b3ZlKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCByZXN1bHQpOwogICAgICAgICByZXR1cm4gY2Fs
bDsKICAgICB9Ci0gICAgdm9pZCBzZXR1cFJlc3VsdHMoR1BSUmVnIGRlc3RBLCBHUFJSZWcgZGVz
dEIpCi0gICAgewotICAgICAgICBHUFJSZWcgc3JjQSA9IEdQUkluZm86OnJldHVyblZhbHVlR1BS
OwotICAgICAgICBHUFJSZWcgc3JjQiA9IEdQUkluZm86OnJldHVyblZhbHVlR1BSMjsKLQotICAg
ICAgICBpZiAoc3JjQiAhPSBkZXN0QSkgewotICAgICAgICAgICAgLy8gSGFuZGxlIHRoZSBlYXN5
IGNhc2VzIC0gdHdvIHNpbXBsZSBtb3Zlcy4KLSAgICAgICAgICAgIG1faml0Lm1vdmUoc3JjQSwg
ZGVzdEEpOwotICAgICAgICAgICAgbV9qaXQubW92ZShzcmNCLCBkZXN0Qik7Ci0gICAgICAgIH0g
ZWxzZSBpZiAoc3JjQSAhPSBkZXN0QikgewotICAgICAgICAgICAgLy8gSGFuZGxlIHRoZSBub24t
c3dhcCBjYXNlIC0ganVzdCBwdXQgc3JjQiBpbiBwbGFjZSBmaXJzdC4KLSAgICAgICAgICAgIG1f
aml0Lm1vdmUoc3JjQiwgZGVzdEIpOwotICAgICAgICAgICAgbV9qaXQubW92ZShzcmNBLCBkZXN0
QSk7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgbV9qaXQuc3dhcChkZXN0QSwgZGVzdEIp
OwotICAgIH0KICAgICBKSVRDb21waWxlcjo6Q2FsbCBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNo
ZWNrU2V0UmVzdWx0KGNvbnN0IEZ1bmN0aW9uUHRyJiBmdW5jdGlvbiwgR1BSUmVnIHJlc3VsdDEs
IEdQUlJlZyByZXN1bHQyKQogICAgIHsKICAgICAgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbCA9
IGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2soZnVuY3Rpb24pOwotICAgICAgICBzZXR1cFJl
c3VsdHMocmVzdWx0MSwgcmVzdWx0Mik7CisgICAgICAgIG1faml0LnNldHVwUmVzdWx0cyhyZXN1
bHQxLCByZXN1bHQyKTsKICAgICAgICAgcmV0dXJuIGNhbGw7CiAgICAgfQogI2lmIENQVShYODYp
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122591</attachid>
            <date>2012-01-15 21:41:25 -0800</date>
            <delta_ts>2012-01-16 13:43:39 -0800</delta_ts>
            <desc>work in progress</desc>
            <filename>gettercache_patch_2.diff</filename>
            <type>text/plain</type>
            <size>44440</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTA1MDM1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU3IEBA
CisyMDEyLTAxLTE1ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
REZHIHNob3VsZCBiZSBhYmxlIHRvIGRvIEpTIGFuZCBjdXN0b20gZ2V0dGVyIGNhY2hpbmcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2MzYxCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS8xMDY5ODA2MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIEFkZGVkIHRoZSBhYmlsaXR5IHRvIGNhY2hl
IEpTIGdldHRlciBjYWxscyBhbmQgY3VzdG9tIGdldHRlciBjYWxscyBpbiB0aGUgREZHLgorICAg
ICAgICBNb3N0IG9mIHRoaXMgaXMgcHJldHR5IG11bmRhbmUsIHNpbmNlIHRoZSBvbGQgSklUIHN1
cHBvcnRlZCB0aGlzIGZ1bmN0aW9uYWxpdHkKKyAgICAgICAgYXMgd2VsbC4gQnV0IGEgY291cGxl
IGludGVyZXN0aW5nIHRoaW5ncyBoYWQgdG8gaGFwcGVuOgorICAgICAgICAKKyAgICAgICAgLSBU
aGVyZSBhcmUgbm93IHR3byB2YXJpYW50cyBvZiBHZXRCeUlkOiBHZXRCeUlkLCB3aGljaCB3b3Jr
cyBhcyBiZWZvcmUsIGFuZAorICAgICAgICAgIEdldEJ5SWRGbHVzaCwgd2hpY2ggZmx1c2hlcyBy
ZWdpc3RlcnMgcHJpb3IgdG8gZG9pbmcgdGhlIEdldEJ5SWQuIE9ubHkKKyAgICAgICAgICBHZXRC
eUlkRmx1c2ggY2FuIGJlIHVzZWQgZm9yIGNhY2hpbmcgZ2V0dGVycy4gV2UgZGV0ZWN0IHdoaWNo
IEdldEJ5SWQgc3R5bGUKKyAgICAgICAgICB0byB1c2UgYnkgbG9va2luZyBhdCB0aGUgaW5saW5l
IGNhY2hlcyBvZiB0aGUgb2xkIEpJVC4KKyAgICAgICAgCisgICAgICAgIC0gRXhjZXB0aW9uIGhh
bmRsaW5nIGZvciBnZXR0ZXIgY2FsbHMgcGxhbnRlZCBpbiBzdHVicyB1c2VzIGEgc2VwYXJhdGUg
bG9va3VwCisgICAgICAgICAgaGFuZGxlciByb3V0aW5lLCB3aGljaCB1c2VzIHRoZSBDb2RlT3Jp
Z2luIHN0b3JlZCBpbiB0aGUgU3RydWN0dXJlU3R1YkluZm8uCisKKyAgICAgICAgKiBieXRlY29k
ZS9TdHJ1Y3R1cmVTdHViSW5mby5oOgorICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdFN0YXRlLmNw
cDoKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFjdFN0YXRlOjpleGVjdXRlKToKKyAgICAgICAg
KiBkZmcvREZHQXNzZW1ibHlIZWxwZXJzLmg6CisgICAgICAgIChKU0M6OkRGRzo6QXNzZW1ibHlI
ZWxwZXJzOjplbWl0RXhjZXB0aW9uQ2hlY2spOgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBh
cnNlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OndpbGxOZWVkRmx1
c2gpOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKToKKyAg
ICAgICAgKiBkZmcvREZHQ0NhbGxIZWxwZXJzLmg6CisgICAgICAgIChKU0M6OkRGRzo6Q0NhbGxI
ZWxwZXJzOjpzZXR1cFJlc3VsdHMpOgorICAgICAgICAqIGRmZy9ERkdKSVRDb21waWxlci5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6SklUQ29tcGlsZXI6OmxpbmspOgorICAgICAgICAqIGRmZy9E
RkdKSVRDb21waWxlci5oOgorICAgICAgICAoSlNDOjpERkc6OlByb3BlcnR5QWNjZXNzUmVjb3Jk
OjpQcm9wZXJ0eUFjY2Vzc1JlY29yZCk6CisgICAgICAgIChKU0M6OkRGRzo6SklUQ29tcGlsZXI6
OmFkZEV4Y2VwdGlvbkNoZWNrKToKKyAgICAgICAgKiBkZmcvREZHTm9kZS5oOgorICAgICAgICAo
SlNDOjpERkc6Ok5vZGU6Omhhc0lkZW50aWZpZXIpOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6
Omhhc0hlYXBQcmVkaWN0aW9uKToKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5jcHA6Cisg
ICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuaDoKKyAgICAgICAgKiBkZmcvREZHUHJvcGFnYXRv
ci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6UHJvcGFnYXRvcjo6cHJvcGFnYXRlTm9kZVByZWRp
Y3Rpb25zKToKKyAgICAgICAgKiBkZmcvREZHUmVwYXRjaC5jcHA6CisgICAgICAgIChKU0M6OkRG
Rzo6dHJ5Q2FjaGVHZXRCeUlEKToKKyAgICAgICAgKEpTQzo6REZHOjp0cnlCdWlsZEdldEJ5SURM
aXN0KToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuaDoKKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6YXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVja1NldFJlc3Vs
dCk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwOgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlkKToKKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0
aXZlSklUNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjYWNoZWRH
ZXRCeUlkKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisK
IDIwMTItMDEtMTUgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBU
aGUgQyBjYWxsaW5nIGNvbnZlbnRpb24gbG9naWMgaW4gREZHOjpTcGVjdWxhdGl2ZUpJVCBzaG91
bGQgYmUgYXZhaWxhYmxlIGV2ZW4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9TdHJ1Y3R1cmVTdHViSW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oCShyZXZpc2lvbiAxMDUwMzUpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaAkod29ya2luZyBj
b3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKEpJVCkKIAorI2luY2x1ZGUgIkNv
ZGVPcmlnaW4uaCIKICNpbmNsdWRlICJJbnN0cnVjdGlvbi5oIgogI2luY2x1ZGUgIk1hY3JvQXNz
ZW1ibGVyLmgiCiAjaW5jbHVkZSAiT3Bjb2RlLmgiCkBAIC0xNzUsNiArMTc2LDggQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIGludDhfdCBzZWVuOwogICAgICAgICAKICNpZiBFTkFCTEUoREZH
X0pJVCkKKyAgICAgICAgQ29kZU9yaWdpbiBjb2RlT3JpZ2luOworICAgICAgICBpbnQ4X3QgcmVn
aXN0ZXJzRmx1c2hlZDsKICAgICAgICAgaW50OF90IGJhc2VHUFI7CiAjaWYgVVNFKEpTVkFMVUUz
Ml82NCkKICAgICAgICAgaW50OF90IHZhbHVlVGFnR1BSOwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdBYnN0cmFjdFN0YXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0U3RhdGUuY3BwCShyZXZpc2lvbiAxMDUwMzUpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0U3RhdGUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC02ODgsNiArNjg4LDcgQEAgYm9vbCBBYnN0cmFjdFN0YXRlOjpleGVjdXRlKE5v
ZGVJbmRleCBubwogICAgICAgICBicmVhazsKICAgICAgICAgICAgIAogICAgIGNhc2UgR2V0QnlJ
ZDoKKyAgICBjYXNlIEdldEJ5SWRGbHVzaDoKICAgICAgICAgaWYgKCFub2RlLnByZWRpY3Rpb24o
KSkgewogICAgICAgICAgICAgbV9pc1ZhbGlkID0gZmFsc2U7CiAgICAgICAgICAgICBicmVhazsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXNzZW1ibHlIZWxwZXJzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBc3NlbWJseUhlbHBlcnMu
aAkocmV2aXNpb24gMTA1MDM1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBc3Nl
bWJseUhlbHBlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtMjQ2LDYgKzI0NiwxNiBAQCBwdWJsaWM6
CiAgICAgICAgIG1fYXNzZW1ibGVyLnZtb3YoZnByLCBwYXlsb2FkR1BSLCB0YWdHUFIpOwogICAg
IH0KICNlbmRpZgorICAgIAorICAgIGVudW0gRXhjZXB0aW9uQ2hlY2tLaW5kIHsgTm9ybWFsRXhj
ZXB0aW9uQ2hlY2ssIEludmVydGVkRXhjZXB0aW9uQ2hlY2sgfTsKKyAgICBKdW1wIGVtaXRFeGNl
cHRpb25DaGVjayhFeGNlcHRpb25DaGVja0tpbmQga2luZCA9IE5vcm1hbEV4Y2VwdGlvbkNoZWNr
KQorICAgIHsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICByZXR1cm4gYnJhbmNoVGVzdFB0
cihraW5kID09IE5vcm1hbEV4Y2VwdGlvbkNoZWNrID8gTm9uWmVybyA6IFplcm8sIEFic29sdXRl
QWRkcmVzcygmZ2xvYmFsRGF0YSgpLT5leGNlcHRpb24pKTsKKyNlbGlmIFVTRShKU1ZBTFVFMzJf
NjQpCisgICAgICAgIHJldHVybiBicmFuY2gzMihraW5kID09IE5vcm1hbEV4Y2VwdGlvbkNoZWNr
ID8gTm90RXF1YWwgOiBFcXVhbCwgQWJzb2x1dGVBZGRyZXNzKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hh
cio+KCZnbG9iYWxEYXRhKCktPmV4Y2VwdGlvbikgKyBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwg
dS5hc0JpdHMudGFnKSksIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpFbXB0eVZhbHVlVGFnKSk7Cisj
ZW5kaWYKKyAgICB9CiAKICNpZiBFTkFCTEUoU0FNUExJTkdfQ09VTlRFUlMpCiAgICAgc3RhdGlj
IHZvaWQgZW1pdENvdW50KE1hY3JvQXNzZW1ibGVyJiBqaXQsIEFic3RyYWN0U2FtcGxpbmdDb3Vu
dGVyJiBjb3VudGVyLCBpbnQzMl90IGluY3JlbWVudCA9IDEpCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAkocmV2aXNpb24gMTA1MDM1
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTcxNiw2ICs3MTYsMjkgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQogICAgIAorICAgIGJvb2wgd2lsbE5lZWRGbHVzaChTdHJ1Y3R1cmVTdHVi
SW5mbyYgc3R1YkluZm8pCisgICAgeworICAgICAgICBQb2x5bW9ycGhpY0FjY2Vzc1N0cnVjdHVy
ZUxpc3QqIGxpc3Q7CisgICAgICAgIGludCBsaXN0U2l6ZTsKKyAgICAgICAgc3dpdGNoIChzdHVi
SW5mby5hY2Nlc3NUeXBlKSB7CisgICAgICAgIGNhc2UgYWNjZXNzX2dldF9ieV9pZF9zZWxmX2xp
c3Q6CisgICAgICAgICAgICBsaXN0ID0gc3R1YkluZm8udS5nZXRCeUlkU2VsZkxpc3Quc3RydWN0
dXJlTGlzdDsKKyAgICAgICAgICAgIGxpc3RTaXplID0gc3R1YkluZm8udS5nZXRCeUlkU2VsZkxp
c3QubGlzdFNpemU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBhY2Nlc3NfZ2V0
X2J5X2lkX3Byb3RvX2xpc3Q6CisgICAgICAgICAgICBsaXN0ID0gc3R1YkluZm8udS5nZXRCeUlk
UHJvdG9MaXN0LnN0cnVjdHVyZUxpc3Q7CisgICAgICAgICAgICBsaXN0U2l6ZSA9IHN0dWJJbmZv
LnUuZ2V0QnlJZFByb3RvTGlzdC5saXN0U2l6ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAg
IGZvciAoaW50IGkgPSAwOyBpIDwgbGlzdFNpemU7ICsraSkgeworICAgICAgICAgICAgaWYgKCFs
aXN0LT5saXN0W2ldLmlzRGlyZWN0KQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgCiAgICAgdm9pZCBidWls
ZE9wZXJhbmRNYXBzSWZOZWNlc3NhcnkoKTsKICAgICAKICAgICBKU0dsb2JhbERhdGEqIG1fZ2xv
YmFsRGF0YTsKQEAgLTE3MDcsNyArMTczMCw3IEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OnBhcnNl
QmxvY2sodW5zaWduZWQKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBzZXQoZ2V0
SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCBjZWxsQ29uc3RhbnQobWV0aG9kQ2FsbC5jYWNoZWRG
dW5jdGlvbi5nZXQoKSkpOwogICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgc2V0
KGdldEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCwgYWRkVG9HcmFwaChHZXRCeUlkLCBPcEluZm8o
aWRlbnRpZmllciksIE9wSW5mbyhwcmVkaWN0aW9uKSwgYmFzZSkpOworICAgICAgICAgICAgICAg
IHNldChnZXRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQsIGFkZFRvR3JhcGgod2lsbE5lZWRGbHVz
aChzdHViSW5mbykgPyBHZXRCeUlkRmx1c2ggOiBHZXRCeUlkLCBPcEluZm8oaWRlbnRpZmllciks
IE9wSW5mbyhwcmVkaWN0aW9uKSwgYmFzZSkpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBt
X2N1cnJlbnRJbmRleCArPSBPUENPREVfTEVOR1RIKG9wX21ldGhvZF9jaGVjaykgKyBPUENPREVf
TEVOR1RIKG9wX2dldF9ieV9pZCk7CiAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTE4MTgsNyAr
MTg0MSw3IEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2sodW5zaWduZWQKICAgICAg
ICAgICAgICAgICBzdG9yYWdlQWNjZXNzRGF0YS5pZGVudGlmaWVyTnVtYmVyID0gaWRlbnRpZmll
ck51bWJlcjsKICAgICAgICAgICAgICAgICBtX2dyYXBoLm1fc3RvcmFnZUFjY2Vzc0RhdGEuYXBw
ZW5kKHN0b3JhZ2VBY2Nlc3NEYXRhKTsKICAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAg
ICAgIHNldChjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCBhZGRUb0dyYXBoKEdldEJ5
SWQsIE9wSW5mbyhpZGVudGlmaWVyTnVtYmVyKSwgT3BJbmZvKHByZWRpY3Rpb24pLCBiYXNlKSk7
CisgICAgICAgICAgICAgICAgc2V0KGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQsIGFk
ZFRvR3JhcGgod2lsbE5lZWRGbHVzaChzdHViSW5mbykgPyBHZXRCeUlkRmx1c2ggOiBHZXRCeUlk
LCBPcEluZm8oaWRlbnRpZmllck51bWJlciksIE9wSW5mbyhwcmVkaWN0aW9uKSwgYmFzZSkpOwog
CiAgICAgICAgICAgICBORVhUX09QQ09ERShvcF9nZXRfYnlfaWQpOwogICAgICAgICB9CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NDYWxsSGVscGVycy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ0NhbGxIZWxwZXJzLmgJKHJldmlzaW9u
IDEwNTAzNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ0NhbGxIZWxwZXJzLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTgyLDYgKzgyLDEzIEBAIHB1YmxpYzoKICAgICAgICAgYWRkQ2Fs
bEFyZ3VtZW50KGFyZzIpOwogICAgIH0KIAorICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXR1cEFy
Z3VtZW50cyhHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIpCisgICAgeworICAgICAgICByZXNldENh
bGxBcmd1bWVudHMoKTsKKyAgICAgICAgYWRkQ2FsbEFyZ3VtZW50KGFyZzEpOworICAgICAgICBh
ZGRDYWxsQXJndW1lbnQoYXJnMik7CisgICAgfQorCiAgICAgQUxXQVlTX0lOTElORSB2b2lkIHNl
dHVwQXJndW1lbnRzRXhlY1N0YXRlKCkKICAgICB7CiAgICAgICAgIHJlc2V0Q2FsbEFyZ3VtZW50
cygpOwpAQCAtMTYxLDYgKzE2OCwxNSBAQCBwdWJsaWM6CiAgICAgICAgIGFkZENhbGxBcmd1bWVu
dChhcmczKTsKICAgICB9CiAKKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNX
aXRoRXhlY1N0YXRlKEdQUlJlZyBhcmcxLCBUcnVzdGVkSW1tUHRyIGFyZzIsIFRydXN0ZWRJbW1Q
dHIgYXJnMykKKyAgICB7CisgICAgICAgIHJlc2V0Q2FsbEFyZ3VtZW50cygpOworICAgICAgICBh
ZGRDYWxsQXJndW1lbnQoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIpOworICAgICAgICBhZGRD
YWxsQXJndW1lbnQoYXJnMSk7CisgICAgICAgIGFkZENhbGxBcmd1bWVudChhcmcyKTsKKyAgICAg
ICAgYWRkQ2FsbEFyZ3VtZW50KGFyZzMpOworICAgIH0KKwogICAgIEFMV0FZU19JTkxJTkUgdm9p
ZCBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyLCBH
UFJSZWcgYXJnMywgR1BSUmVnIGFyZzQpCiAgICAgewogICAgICAgICByZXNldENhbGxBcmd1bWVu
dHMoKTsKQEAgLTM3MCw2ICszODYsMTEgQEAgcHVibGljOgogICAgIH0KICNlbmRpZgogCisgICAg
QUxXQVlTX0lOTElORSB2b2lkIHNldHVwQXJndW1lbnRzKEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJn
MikKKyAgICB7CisgICAgICAgIHNldHVwVHdvU3R1YkFyZ3M8R1BSSW5mbzo6YXJndW1lbnRHUFIw
LCBHUFJJbmZvOjphcmd1bWVudEdQUjE+KGFyZzEsIGFyZzIpOworICAgIH0KKwogICAgIEFMV0FZ
U19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50c0V4ZWNTdGF0ZSgpCiAgICAgewogICAgICAgICBt
b3ZlKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwpA
QCAtNDQyLDYgKzQ2MywxNCBAQCBwdWJsaWM6CiAgICAgICAgIG1vdmUoR1BSSW5mbzo6Y2FsbEZy
YW1lUmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgfQogCisgICAgQUxXQVlT
X0lOTElORSB2b2lkIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShHUFJSZWcgYXJnMSwgVHJ1
c3RlZEltbVB0ciBhcmcyLCBUcnVzdGVkSW1tUHRyIGFyZzMpCisgICAgeworICAgICAgICBtb3Zl
KGFyZzEsIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CisgICAgICAgIG1vdmUoYXJnMiwgR1BSSW5m
bzo6YXJndW1lbnRHUFIyKTsKKyAgICAgICAgbW92ZShhcmczLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjMpOworICAgICAgICBtb3ZlKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjph
cmd1bWVudEdQUjApOworICAgIH0KKwogICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXR1cEFyZ3Vt
ZW50c1dpdGhFeGVjU3RhdGUoR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyLCBUcnVzdGVkSW1tUHRy
IGFyZzMpCiAgICAgewogICAgICAgICBzZXR1cFN0dWJBcmd1bWVudHMoYXJnMSwgYXJnMik7CkBA
IC00OTIsNiArNTIxLDIzIEBAIHB1YmxpYzoKICAgICAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhl
Y1N0YXRlKGFyZzEsIGFyZzIsIGFyZzMpOwogICAgIH0KICNlbmRpZiAvLyBOVU1CRVJfT0ZfQVJH
VU1FTlRfUkVHSVNURVJTID09IDQKKworICAgIHZvaWQgc2V0dXBSZXN1bHRzKEdQUlJlZyBkZXN0
QSwgR1BSUmVnIGRlc3RCKQorICAgIHsKKyAgICAgICAgR1BSUmVnIHNyY0EgPSBHUFJJbmZvOjpy
ZXR1cm5WYWx1ZUdQUjsKKyAgICAgICAgR1BSUmVnIHNyY0IgPSBHUFJJbmZvOjpyZXR1cm5WYWx1
ZUdQUjI7CisKKyAgICAgICAgaWYgKHNyY0IgIT0gZGVzdEEpIHsKKyAgICAgICAgICAgIC8vIEhh
bmRsZSB0aGUgZWFzeSBjYXNlcyAtIHR3byBzaW1wbGUgbW92ZXMuCisgICAgICAgICAgICBtb3Zl
KHNyY0EsIGRlc3RBKTsKKyAgICAgICAgICAgIG1vdmUoc3JjQiwgZGVzdEIpOworICAgICAgICB9
IGVsc2UgaWYgKHNyY0EgIT0gZGVzdEIpIHsKKyAgICAgICAgICAgIC8vIEhhbmRsZSB0aGUgbm9u
LXN3YXAgY2FzZSAtIGp1c3QgcHV0IHNyY0IgaW4gcGxhY2UgZmlyc3QuCisgICAgICAgICAgICBt
b3ZlKHNyY0IsIGRlc3RCKTsKKyAgICAgICAgICAgIG1vdmUoc3JjQSwgZGVzdEEpOworICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgIHN3YXAoZGVzdEEsIGRlc3RCKTsKKyAgICB9CiB9OwogCiB9
IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0pJVENvbXBpbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0pJVENvbXBpbGVyLmNwcAkocmV2aXNpb24gMTA1MDM1KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyOCw2
ICsxMjgsNyBAQCB2b2lkIEpJVENvbXBpbGVyOjpsaW5rKExpbmtCdWZmZXImIGxpbmtCCiAgICAg
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2V4Y2VwdGlvbkNoZWNrcy5zaXplKCk7ICsr
aSkgewogICAgICAgICAgICAgdW5zaWduZWQgcmV0dXJuQWRkcmVzc09mZnNldCA9IGxpbmtCdWZm
ZXIucmV0dXJuQWRkcmVzc09mZnNldChtX2V4Y2VwdGlvbkNoZWNrc1tpXS5tX2NhbGwpOwogICAg
ICAgICAgICAgQ29kZU9yaWdpbiBjb2RlT3JpZ2luID0gbV9leGNlcHRpb25DaGVja3NbaV0ubV9j
b2RlT3JpZ2luOworICAgICAgICAgICAgLy8gRklYTUU6IHRoaXMgaXMgYWJzdXJkbHkgd3Jvbmcu
CiAgICAgICAgICAgICB3aGlsZSAoY29kZU9yaWdpbi5pbmxpbmVDYWxsRnJhbWUpCiAgICAgICAg
ICAgICAgICAgY29kZU9yaWdpbiA9IGNvZGVPcmlnaW4uaW5saW5lQ2FsbEZyYW1lLT5jYWxsZXI7
CiAgICAgICAgICAgICB1bnNpZ25lZCBleGNlcHRpb25JbmZvID0gY29kZU9yaWdpbi5ieXRlY29k
ZUluZGV4OwpAQCAtMTYwLDYgKzE2MSw3IEBAIHZvaWQgSklUQ29tcGlsZXI6OmxpbmsoTGlua0J1
ZmZlciYgbGlua0IKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9wcm9wZXJ0eUFjY2Vz
c2VzLnNpemUoKTsgKytpKSB7CiAgICAgICAgIFN0cnVjdHVyZVN0dWJJbmZvJiBpbmZvID0gbV9j
b2RlQmxvY2stPnN0cnVjdHVyZVN0dWJJbmZvKGkpOwogICAgICAgICBDb2RlTG9jYXRpb25DYWxs
IGNhbGxSZXR1cm5Mb2NhdGlvbiA9IGxpbmtCdWZmZXIubG9jYXRpb25PZihtX3Byb3BlcnR5QWNj
ZXNzZXNbaV0ubV9mdW5jdGlvbkNhbGwpOworICAgICAgICBpbmZvLmNvZGVPcmlnaW4gPSBtX3By
b3BlcnR5QWNjZXNzZXNbaV0ubV9jb2RlT3JpZ2luOwogICAgICAgICBpbmZvLmNhbGxSZXR1cm5M
b2NhdGlvbiA9IGNhbGxSZXR1cm5Mb2NhdGlvbjsKICAgICAgICAgaW5mby5kZWx0YUNoZWNrSW1t
VG9DYWxsID0gZGlmZmVyZW5jZUJldHdlZW5Db2RlUHRyKGxpbmtCdWZmZXIubG9jYXRpb25PZiht
X3Byb3BlcnR5QWNjZXNzZXNbaV0ubV9kZWx0YUNoZWNrSW1tVG9DYWxsKSwgY2FsbFJldHVybkxv
Y2F0aW9uKTsKICAgICAgICAgaW5mby5kZWx0YUNhbGxUb1N0cnVjdENoZWNrID0gZGlmZmVyZW5j
ZUJldHdlZW5Db2RlUHRyKGNhbGxSZXR1cm5Mb2NhdGlvbiwgbGlua0J1ZmZlci5sb2NhdGlvbk9m
KG1fcHJvcGVydHlBY2Nlc3Nlc1tpXS5tX2RlbHRhQ2FsbFRvU3RydWN0Q2hlY2spKTsKQEAgLTE3
OSw2ICsxODEsNyBAQCB2b2lkIEpJVENvbXBpbGVyOjpsaW5rKExpbmtCdWZmZXImIGxpbmtCCiAg
ICAgICAgIGluZm8udmFsdWVHUFIgPSBtX3Byb3BlcnR5QWNjZXNzZXNbaV0ubV92YWx1ZUdQUjsK
ICNlbmRpZgogICAgICAgICBpbmZvLnNjcmF0Y2hHUFIgPSBtX3Byb3BlcnR5QWNjZXNzZXNbaV0u
bV9zY3JhdGNoR1BSOworICAgICAgICBpbmZvLnJlZ2lzdGVyc0ZsdXNoZWQgPSBtX3Byb3BlcnR5
QWNjZXNzZXNbaV0ubV9yZWdpc3Rlck1vZGUgPT0gUHJvcGVydHlBY2Nlc3NSZWNvcmQ6OlJlZ2lz
dGVyc0ZsdXNoZWQ7CiAgICAgfQogICAgIAogICAgIG1fY29kZUJsb2NrLT5zZXROdW1iZXJPZkNh
bGxMaW5rSW5mb3MobV9qc0NhbGxzLnNpemUoKSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0pJVENvbXBpbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdKSVRDb21waWxlci5oCShyZXZpc2lvbiAxMDUwMzUpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTk1LDEy
ICs5NSwxNSBAQCBzdHJ1Y3QgQ2FsbEV4Y2VwdGlvblJlY29yZCB7CiB9OwogCiBzdHJ1Y3QgUHJv
cGVydHlBY2Nlc3NSZWNvcmQgeworICAgIGVudW0gUmVnaXN0ZXJNb2RlIHsgUmVnaXN0ZXJzRmx1
c2hlZCwgUmVnaXN0ZXJzSW5Vc2UgfTsKKyAgICAKICNpZiBVU0UoSlNWQUxVRTY0KQotICAgIFBy
b3BlcnR5QWNjZXNzUmVjb3JkKE1hY3JvQXNzZW1ibGVyOjpEYXRhTGFiZWxQdHIgZGVsdGFDaGVj
a0ltbVRvQ2FsbCwgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgZnVuY3Rpb25DYWxsLCBNYWNyb0Fzc2Vt
Ymxlcjo6SnVtcCBkZWx0YUNhbGxUb1N0cnVjdENoZWNrLCBNYWNyb0Fzc2VtYmxlcjo6RGF0YUxh
YmVsQ29tcGFjdCBkZWx0YUNhbGxUb0xvYWRPclN0b3JlLCBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwg
ZGVsdGFDYWxsVG9TbG93Q2FzZSwgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIGRlbHRhQ2FsbFRvRG9u
ZSwgaW50OF90IGJhc2VHUFIsIGludDhfdCB2YWx1ZUdQUiwgaW50OF90IHNjcmF0Y2hHUFIpCisg
ICAgUHJvcGVydHlBY2Nlc3NSZWNvcmQoQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBNYWNyb0Fzc2Vt
Ymxlcjo6RGF0YUxhYmVsUHRyIGRlbHRhQ2hlY2tJbW1Ub0NhbGwsIE1hY3JvQXNzZW1ibGVyOjpD
YWxsIGZ1bmN0aW9uQ2FsbCwgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgZGVsdGFDYWxsVG9TdHJ1Y3RD
aGVjaywgTWFjcm9Bc3NlbWJsZXI6OkRhdGFMYWJlbENvbXBhY3QgZGVsdGFDYWxsVG9Mb2FkT3JT
dG9yZSwgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIGRlbHRhQ2FsbFRvU2xvd0Nhc2UsIE1hY3JvQXNz
ZW1ibGVyOjpMYWJlbCBkZWx0YUNhbGxUb0RvbmUsIGludDhfdCBiYXNlR1BSLCBpbnQ4X3QgdmFs
dWVHUFIsIGludDhfdCBzY3JhdGNoR1BSLCBSZWdpc3Rlck1vZGUgcmVnaXN0ZXJNb2RlID0gUmVn
aXN0ZXJzSW5Vc2UpCiAjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQotICAgIFByb3BlcnR5QWNjZXNz
UmVjb3JkKE1hY3JvQXNzZW1ibGVyOjpEYXRhTGFiZWxQdHIgZGVsdGFDaGVja0ltbVRvQ2FsbCwg
TWFjcm9Bc3NlbWJsZXI6OkNhbGwgZnVuY3Rpb25DYWxsLCBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBk
ZWx0YUNhbGxUb1N0cnVjdENoZWNrLCBNYWNyb0Fzc2VtYmxlcjo6RGF0YUxhYmVsQ29tcGFjdCBk
ZWx0YUNhbGxUb1RhZ0xvYWRPclN0b3JlLCBNYWNyb0Fzc2VtYmxlcjo6RGF0YUxhYmVsQ29tcGFj
dCBkZWx0YUNhbGxUb1BheWxvYWRMb2FkT3JTdG9yZSwgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIGRl
bHRhQ2FsbFRvU2xvd0Nhc2UsIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBkZWx0YUNhbGxUb0RvbmUs
IGludDhfdCBiYXNlR1BSLCBpbnQ4X3QgdmFsdWVUYWdHUFIsIGludDhfdCB2YWx1ZUdQUiwgaW50
OF90IHNjcmF0Y2hHUFIpCisgICAgUHJvcGVydHlBY2Nlc3NSZWNvcmQoQ29kZU9yaWdpbiBjb2Rl
T3JpZ2luLCBNYWNyb0Fzc2VtYmxlcjo6RGF0YUxhYmVsUHRyIGRlbHRhQ2hlY2tJbW1Ub0NhbGws
IE1hY3JvQXNzZW1ibGVyOjpDYWxsIGZ1bmN0aW9uQ2FsbCwgTWFjcm9Bc3NlbWJsZXI6Okp1bXAg
ZGVsdGFDYWxsVG9TdHJ1Y3RDaGVjaywgTWFjcm9Bc3NlbWJsZXI6OkRhdGFMYWJlbENvbXBhY3Qg
ZGVsdGFDYWxsVG9UYWdMb2FkT3JTdG9yZSwgTWFjcm9Bc3NlbWJsZXI6OkRhdGFMYWJlbENvbXBh
Y3QgZGVsdGFDYWxsVG9QYXlsb2FkTG9hZE9yU3RvcmUsIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBk
ZWx0YUNhbGxUb1Nsb3dDYXNlLCBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgZGVsdGFDYWxsVG9Eb25l
LCBpbnQ4X3QgYmFzZUdQUiwgaW50OF90IHZhbHVlVGFnR1BSLCBpbnQ4X3QgdmFsdWVHUFIsIGlu
dDhfdCBzY3JhdGNoR1BSLCBSZWdpc3Rlck1vZGUgcmVnaXN0ZXJNb2RlID0gUmVnaXN0ZXJzSW5V
c2UpCiAjZW5kaWYKLSAgICAgICAgOiBtX2RlbHRhQ2hlY2tJbW1Ub0NhbGwoZGVsdGFDaGVja0lt
bVRvQ2FsbCkKKyAgICAgICAgOiBtX2NvZGVPcmlnaW4oY29kZU9yaWdpbikKKyAgICAgICAgLCBt
X2RlbHRhQ2hlY2tJbW1Ub0NhbGwoZGVsdGFDaGVja0ltbVRvQ2FsbCkKICAgICAgICAgLCBtX2Z1
bmN0aW9uQ2FsbChmdW5jdGlvbkNhbGwpCiAgICAgICAgICwgbV9kZWx0YUNhbGxUb1N0cnVjdENo
ZWNrKGRlbHRhQ2FsbFRvU3RydWN0Q2hlY2spCiAjaWYgVVNFKEpTVkFMVUU2NCkKQEAgLTExNyw5
ICsxMjAsMTEgQEAgc3RydWN0IFByb3BlcnR5QWNjZXNzUmVjb3JkIHsKICNlbmRpZgogICAgICAg
ICAsIG1fdmFsdWVHUFIodmFsdWVHUFIpCiAgICAgICAgICwgbV9zY3JhdGNoR1BSKHNjcmF0Y2hH
UFIpCisgICAgICAgICwgbV9yZWdpc3Rlck1vZGUocmVnaXN0ZXJNb2RlKQogICAgIHsKICAgICB9
CiAKKyAgICBDb2RlT3JpZ2luIG1fY29kZU9yaWdpbjsKICAgICBNYWNyb0Fzc2VtYmxlcjo6RGF0
YUxhYmVsUHRyIG1fZGVsdGFDaGVja0ltbVRvQ2FsbDsKICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2Fs
bCBtX2Z1bmN0aW9uQ2FsbDsKICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBtX2RlbHRhQ2FsbFRv
U3RydWN0Q2hlY2s7CkBAIC0xMzcsNiArMTQyLDcgQEAgc3RydWN0IFByb3BlcnR5QWNjZXNzUmVj
b3JkIHsKICNlbmRpZgogICAgIGludDhfdCBtX3ZhbHVlR1BSOwogICAgIGludDhfdCBtX3NjcmF0
Y2hHUFI7CisgICAgUmVnaXN0ZXJNb2RlIG1fcmVnaXN0ZXJNb2RlOwogfTsKIAogLy8gPT09IEpJ
VENvbXBpbGVyID09PQpAQCAtMTc5LDEyICsxODUsNyBAQCBwdWJsaWM6CiAgICAgQ2FsbCBhZGRF
eGNlcHRpb25DaGVjayhDYWxsIGZ1bmN0aW9uQ2FsbCwgQ29kZU9yaWdpbiBjb2RlT3JpZ2luKQog
ICAgIHsKICAgICAgICAgbW92ZShUcnVzdGVkSW1tMzIobV9leGNlcHRpb25DaGVja3Muc2l6ZSgp
KSwgR1BSSW5mbzo6bm9uUHJlc2VydmVkTm9uUmV0dXJuR1BSKTsKLSNpZiBVU0UoSlNWQUxVRTY0
KQotICAgICAgICBKdW1wIGV4Y2VwdGlvbkNoZWNrID0gYnJhbmNoVGVzdFB0cihOb25aZXJvLCBB
YnNvbHV0ZUFkZHJlc3MoJmdsb2JhbERhdGEoKS0+ZXhjZXB0aW9uKSk7Ci0jZWxpZiBVU0UoSlNW
QUxVRTMyXzY0KQotICAgICAgICBKdW1wIGV4Y2VwdGlvbkNoZWNrID0gYnJhbmNoMzIoTm90RXF1
YWwsIEFic29sdXRlQWRkcmVzcyhyZWludGVycHJldF9jYXN0PGNoYXIqPigmZ2xvYmFsRGF0YSgp
LT5leGNlcHRpb24pICsgT0JKRUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnRhZykpLCBU
cnVzdGVkSW1tMzIoSlNWYWx1ZTo6RW1wdHlWYWx1ZVRhZykpOwotI2VuZGlmCi0gICAgICAgIG1f
ZXhjZXB0aW9uQ2hlY2tzLmFwcGVuZChDYWxsRXhjZXB0aW9uUmVjb3JkKGZ1bmN0aW9uQ2FsbCwg
ZXhjZXB0aW9uQ2hlY2ssIGNvZGVPcmlnaW4pKTsKKyAgICAgICAgbV9leGNlcHRpb25DaGVja3Mu
YXBwZW5kKENhbGxFeGNlcHRpb25SZWNvcmQoZnVuY3Rpb25DYWxsLCBlbWl0RXhjZXB0aW9uQ2hl
Y2soKSwgY29kZU9yaWdpbikpOwogICAgICAgICByZXR1cm4gZnVuY3Rpb25DYWxsOwogICAgIH0K
ICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCShyZXZpc2lvbiAxMDUw
MzUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAkod29ya2luZyBjb3B5
KQpAQCAtMjI5LDYgKzIyOSw3IEBAIHN0YXRpYyBpbmxpbmUgY29uc3QgY2hhciogYXJpdGhOb2Rl
RmxhZ3MKICAgICBtYWNybyhQdXRCeVZhbCwgTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVDbG9iYmVy
c1dvcmxkKSBcCiAgICAgbWFjcm8oUHV0QnlWYWxBbGlhcywgTm9kZU11c3RHZW5lcmF0ZSB8IE5v
ZGVDbG9iYmVyc1dvcmxkKSBcCiAgICAgbWFjcm8oR2V0QnlJZCwgTm9kZVJlc3VsdEpTIHwgTm9k
ZU11c3RHZW5lcmF0ZSB8IE5vZGVDbG9iYmVyc1dvcmxkKSBcCisgICAgbWFjcm8oR2V0QnlJZEZs
dXNoLCBOb2RlUmVzdWx0SlMgfCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZUNsb2JiZXJzV29ybGQp
IFwKICAgICBtYWNybyhQdXRCeUlkLCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZUNsb2JiZXJzV29y
bGQpIFwKICAgICBtYWNybyhQdXRCeUlkRGlyZWN0LCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZUNs
b2JiZXJzV29ybGQpIFwKICAgICBtYWNybyhDaGVja1N0cnVjdHVyZSwgTm9kZU11c3RHZW5lcmF0
ZSkgXApAQCAtNTAyLDYgKzUwMyw3IEBAIHN0cnVjdCBOb2RlIHsKICAgICB7CiAgICAgICAgIHN3
aXRjaCAob3ApIHsKICAgICAgICAgY2FzZSBHZXRCeUlkOgorICAgICAgICBjYXNlIEdldEJ5SWRG
bHVzaDoKICAgICAgICAgY2FzZSBQdXRCeUlkOgogICAgICAgICBjYXNlIFB1dEJ5SWREaXJlY3Q6
CiAgICAgICAgIGNhc2UgUmVzb2x2ZToKQEAgLTcxOCw2ICs3MjAsNyBAQCBzdHJ1Y3QgTm9kZSB7
CiAgICAgewogICAgICAgICBzd2l0Y2ggKG9wKSB7CiAgICAgICAgIGNhc2UgR2V0QnlJZDoKKyAg
ICAgICAgY2FzZSBHZXRCeUlkRmx1c2g6CiAgICAgICAgIGNhc2UgR2V0QnlWYWw6CiAgICAgICAg
IGNhc2UgQ2FsbDoKICAgICAgICAgY2FzZSBDb25zdHJ1Y3Q6CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAJKHJldmlzaW9uIDEwNTAzNSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJERkdP
U1JFeGl0LmgiCiAjaW5jbHVkZSAiREZHUmVwYXRjaC5oIgorI2luY2x1ZGUgIkdldHRlclNldHRl
ci5oIgogI2luY2x1ZGUgIklubGluZUFTTS5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAj
aW5jbHVkZSAiSlNCeXRlQXJyYXkuaCIKQEAgLTM3OCw2ICszNzksMjIgQEAgRW5jb2RlZEpTVmFs
dWUgREZHX09QRVJBVElPTiBvcGVyYXRpb25HZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
cmVzdWx0KTsKIH0KIAorRW5jb2RlZEpTVmFsdWUgREZHX09QRVJBVElPTiBvcGVyYXRpb25DYWxs
Q3VzdG9tR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNDZWxsKiBiYXNlLCBQcm9wZXJ0eVNsb3Q6
OkdldFZhbHVlRnVuYyBmdW5jdGlvbiwgSWRlbnRpZmllciogaWRlbnQpCit7CisgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShmdW5jdGlvbihleGVjLCBhc09iamVjdChiYXNlKSwgKmlkZW50KSk7
Cit9CisKK0VuY29kZWRKU1ZhbHVlIERGR19PUEVSQVRJT04gb3BlcmF0aW9uQ2FsbEdldHRlcihF
eGVjU3RhdGUqIGV4ZWMsIEpTQ2VsbCogYmFzZSwgSlNDZWxsKiB2YWx1ZSkKK3sKKyAgICBHZXR0
ZXJTZXR0ZXIqIGdldHRlclNldHRlciA9IGFzR2V0dGVyU2V0dGVyKGFzT2JqZWN0KEpTVmFsdWU6
OmRlY29kZSh2YWx1ZSkuYXNDZWxsKCkpKTsKKyAgICBKU09iamVjdCogZ2V0dGVyID0gZ2V0dGVy
U2V0dGVyLT5nZXR0ZXIoKTsKKyAgICBpZiAoIWdldHRlcikKKyAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICBDYWxsRGF0YSBjYWxsRGF0YTsKKyAgICBD
YWxsVHlwZSBjYWxsVHlwZSA9IGdldHRlci0+bWV0aG9kVGFibGUoKS0+Z2V0Q2FsbERhdGEoZ2V0
dGVyLCBjYWxsRGF0YSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjYWxsKGV4ZWMsIGdl
dHRlciwgY2FsbFR5cGUsIGNhbGxEYXRhLCBhc09iamVjdChiYXNlKSwgQXJnTGlzdCgpKSk7Cit9
CisKIHZvaWQgREZHX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbFN0cmljdChFeGVjU3RhdGUq
IGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
UHJvcGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBvcGVyYXRpb25Q
dXRCeVZhbEludGVybmFsPHRydWU+KGV4ZWMsIGVuY29kZWRCYXNlLCBlbmNvZGVkUHJvcGVydHks
IGVuY29kZWRWYWx1ZSk7CkBAIC04MDgsNiArODI1LDIyIEBAIERGR0hhbmRsZXJFbmNvZGVkIERG
R19PUEVSQVRJT04gbG9va3VwRXgKICAgICByZXR1cm4gZGZnSGFuZGxlckVuY29kZWQoZXhlYywg
Y2F0Y2hSb3V0aW5lKTsKIH0KIAorREZHSGFuZGxlckVuY29kZWQgREZHX09QRVJBVElPTiBsb29r
dXBFeGNlcHRpb25IYW5kbGVySW5TdHViKEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlU3R1Yklu
Zm8qIHN0dWJJbmZvKQoreworICAgIEpTVmFsdWUgZXhjZXB0aW9uVmFsdWUgPSBleGVjLT5leGNl
cHRpb24oKTsKKyAgICBBU1NFUlQoZXhjZXB0aW9uVmFsdWUpOworICAgIAorICAgIENvZGVPcmln
aW4gY29kZU9yaWdpbiA9IHN0dWJJbmZvLT5jb2RlT3JpZ2luOworICAgIHdoaWxlIChjb2RlT3Jp
Z2luLmlubGluZUNhbGxGcmFtZSkKKyAgICAgICAgY29kZU9yaWdpbiA9IGNvZGVPcmlnaW4uaW5s
aW5lQ2FsbEZyYW1lLT5jYWxsZXI7CisKKyAgICBIYW5kbGVySW5mbyogaGFuZGxlciA9IGV4ZWMt
Pmdsb2JhbERhdGEoKS5pbnRlcnByZXRlci0+dGhyb3dFeGNlcHRpb24oZXhlYywgZXhjZXB0aW9u
VmFsdWUsIGNvZGVPcmlnaW4uYnl0ZWNvZGVJbmRleCk7CisKKyAgICB2b2lkKiBjYXRjaFJvdXRp
bmUgPSBoYW5kbGVyID8gaGFuZGxlci0+bmF0aXZlQ29kZS5leGVjdXRhYmxlQWRkcmVzcygpIDog
KHZvaWQqKWN0aU9wVGhyb3dOb3RDYXVnaHQ7CisgICAgQVNTRVJUKGNhdGNoUm91dGluZSk7Cisg
ICAgcmV0dXJuIGRmZ0hhbmRsZXJFbmNvZGVkKGV4ZWMsIGNhdGNoUm91dGluZSk7Cit9CisKIGRv
dWJsZSBERkdfT1BFUkFUSU9OIGRmZ0NvbnZlcnRKU1ZhbHVlVG9OdW1iZXIoRXhlY1N0YXRlKiBl
eGVjLCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZGVjb2Rl
KHZhbHVlKS50b051bWJlcihleGVjKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHT3BlcmF0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHT3BlcmF0aW9ucy5oCShyZXZpc2lvbiAxMDUwMzUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR09wZXJhdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtMTA0LDcgKzEwNCw4IEBA
IEVuY29kZWRKU1ZhbHVlIERGR19PUEVSQVRJT04gb3BlcmF0aW9uR2UKIEVuY29kZWRKU1ZhbHVl
IERGR19PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlJZEJ1aWxkTGlzdChFeGVjU3RhdGUqLCBFbmNv
ZGVkSlNWYWx1ZSwgSWRlbnRpZmllciopOwogRW5jb2RlZEpTVmFsdWUgREZHX09QRVJBVElPTiBv
cGVyYXRpb25HZXRCeUlkUHJvdG9CdWlsZExpc3QoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUs
IElkZW50aWZpZXIqKTsKIEVuY29kZWRKU1ZhbHVlIERGR19PUEVSQVRJT04gb3BlcmF0aW9uR2V0
QnlJZE9wdGltaXplKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBJZGVudGlmaWVyKik7Ci1F
bmNvZGVkSlNWYWx1ZSBERkdfT1BFUkFUSU9OIG9wZXJhdGlvbkdldE1ldGhvZE9wdGltaXplKEV4
ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBJZGVudGlmaWVyKik7CitFbmNvZGVkSlNWYWx1ZSBE
RkdfT1BFUkFUSU9OIG9wZXJhdGlvbkNhbGxDdXN0b21HZXR0ZXIoRXhlY1N0YXRlKiwgSlNDZWxs
KiwgUHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmMsIElkZW50aWZpZXIqKTsKK0VuY29kZWRKU1Zh
bHVlIERGR19PUEVSQVRJT04gb3BlcmF0aW9uQ2FsbEdldHRlcihFeGVjU3RhdGUqLCBKU0NlbGwq
LCBKU0NlbGwqKTsKIEVuY29kZWRKU1ZhbHVlIERGR19PUEVSQVRJT04gb3BlcmF0aW9uUmVzb2x2
ZShFeGVjU3RhdGUqLCBJZGVudGlmaWVyKik7CiBFbmNvZGVkSlNWYWx1ZSBERkdfT1BFUkFUSU9O
IG9wZXJhdGlvblJlc29sdmVCYXNlKEV4ZWNTdGF0ZSosIElkZW50aWZpZXIqKTsKIEVuY29kZWRK
U1ZhbHVlIERGR19PUEVSQVRJT04gb3BlcmF0aW9uUmVzb2x2ZUJhc2VTdHJpY3RQdXQoRXhlY1N0
YXRlKiwgSWRlbnRpZmllciopOwpAQCAtMTgxLDYgKzE4Miw3IEBAIGlubGluZSBERkdIYW5kbGVy
RW5jb2RlZCBkZmdIYW5kbGVyRW5jb2QKIH0KICNlbmRpZgogREZHSGFuZGxlckVuY29kZWQgREZH
X09QRVJBVElPTiBsb29rdXBFeGNlcHRpb25IYW5kbGVyKEV4ZWNTdGF0ZSosIHVpbnQzMl90KTsK
K0RGR0hhbmRsZXJFbmNvZGVkIERGR19PUEVSQVRJT04gbG9va3VwRXhjZXB0aW9uSGFuZGxlcklu
U3R1YihFeGVjU3RhdGUqLCBTdHJ1Y3R1cmVTdHViSW5mbyopOwogCiAvLyBUaGVzZSBvcGVyYXRp
b25zIGltcGxlbWVudCB0aGUgaW1wbGljaXRseSBjYWxsZWQgVG9JbnQzMiwgVG9OdW1iZXIsIGFu
ZCBUb0Jvb2xlYW4gY29udmVyc2lvbnMgZnJvbSBFUzUuCiBkb3VibGUgREZHX09QRVJBVElPTiBk
ZmdDb252ZXJ0SlNWYWx1ZVRvTnVtYmVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlKTsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJvcGFnYXRvci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcm9wYWdhdG9yLmNwcAkocmV2aXNp
b24gMTA1MDM1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcm9wYWdhdG9yLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDY0LDYgKzQ2NCwxMSBAQCBwcml2YXRlOgogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgICAgIAorICAgICAgICBjYXNlIEdldEJ5SWRG
bHVzaDoKKyAgICAgICAgICAgIGlmIChub2RlLmdldEhlYXBQcmVkaWN0aW9uKCkpCisgICAgICAg
ICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24obm9kZS5nZXRIZWFwUHJlZGljdGlv
bigpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgR2V0
QnlWYWw6IHsKICAgICAgICAgICAgIGlmIChtX2dyYXBoW25vZGUuY2hpbGQxKCldLnNob3VsZFNw
ZWN1bGF0ZVVpbnQzMkFycmF5KCkgfHwgbV9ncmFwaFtub2RlLmNoaWxkMSgpXS5zaG91bGRTcGVj
dWxhdGVGbG9hdDMyQXJyYXkoKSB8fCBtX2dyYXBoW25vZGUuY2hpbGQxKCldLnNob3VsZFNwZWN1
bGF0ZUZsb2F0NjRBcnJheSgpKQogICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVk
aWN0aW9uKFByZWRpY3REb3VibGUpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdSZXBhdGNoLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1JlcGF0Y2guY3BwCShyZXZpc2lvbiAxMDUwMzUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1JlcGF0Y2guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNp
ZiBFTkFCTEUoREZHX0pJVCkKIAorI2luY2x1ZGUgIkRGR0NDYWxsSGVscGVycy5oIgogI2luY2x1
ZGUgIkRGR1NwZWN1bGF0aXZlSklULmgiCiAjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgogI2luY2x1
ZGUgIk9wZXJhdGlvbnMuaCIKQEAgLTIyNyw4ICsyMjgsMTAgQEAgc3RhdGljIGJvb2wgdHJ5Q2Fj
aGVHZXRCeUlEKEV4ZWNTdGF0ZSogZQogCiAgICAgLy8gT3B0aW1pemUgc2VsZiBhY2Nlc3MuCiAg
ICAgaWYgKHNsb3Quc2xvdEJhc2UoKSA9PSBiYXNlVmFsdWUpIHsKLSAgICAgICAgaWYgKChzbG90
LmNhY2hlZFByb3BlcnR5VHlwZSgpICE9IFByb3BlcnR5U2xvdDo6VmFsdWUpIHx8ICgoc2xvdC5j
YWNoZWRPZmZzZXQoKSAqIHNpemVvZihKU1ZhbHVlKSkgPiAodW5zaWduZWQpTWFjcm9Bc3NlbWJs
ZXI6Ok1heGltdW1Db21wYWN0UHRyQWxpZ25lZEFkZHJlc3NPZmZzZXQpKQorICAgICAgICBpZiAo
KHNsb3QuY2FjaGVkUHJvcGVydHlUeXBlKCkgIT0gUHJvcGVydHlTbG90OjpWYWx1ZSkgfHwgKChz
bG90LmNhY2hlZE9mZnNldCgpICogc2l6ZW9mKEpTVmFsdWUpKSA+ICh1bnNpZ25lZClNYWNyb0Fz
c2VtYmxlcjo6TWF4aW11bUNvbXBhY3RQdHJBbGlnbmVkQWRkcmVzc09mZnNldCkpIHsKKyAgICAg
ICAgICAgIGRmZ1JlcGF0Y2hDYWxsKGNvZGVCbG9jaywgc3R1YkluZm8uY2FsbFJldHVybkxvY2F0
aW9uLCBvcGVyYXRpb25HZXRCeUlkQnVpbGRMaXN0KTsKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgfQogCiAgICAgICAgIGRmZ1JlcGF0Y2hCeUlkU2VsZkFjY2Vzcyhjb2RlQmxv
Y2ssIHN0dWJJbmZvLCBzdHJ1Y3R1cmUsIHNsb3QuY2FjaGVkT2Zmc2V0KCksIG9wZXJhdGlvbkdl
dEJ5SWRCdWlsZExpc3QsIHRydWUpOwogICAgICAgICBzdHViSW5mby5pbml0R2V0QnlJZFNlbGYo
Kmdsb2JhbERhdGEsIGNvZGVCbG9jay0+b3duZXJFeGVjdXRhYmxlKCksIHN0cnVjdHVyZSk7CkBA
IC0yNjgsMTYgKzI3MSwyMCBAQCB2b2lkIGRmZ1JlcGF0Y2hHZXRCeUlEKEV4ZWNTdGF0ZSogZXhl
YywgCiAgICAgICAgIGRmZ1JlcGF0Y2hDYWxsKGV4ZWMtPmNvZGVCbG9jaygpLCBzdHViSW5mby5j
YWxsUmV0dXJuTG9jYXRpb24sIG9wZXJhdGlvbkdldEJ5SWQpOwogfQogCi1zdGF0aWMgYm9vbCB0
cnlCdWlsZEdldEJ5SURMaXN0KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBiYXNlVmFsdWUsIGNv
bnN0IElkZW50aWZpZXImLCBjb25zdCBQcm9wZXJ0eVNsb3QmIHNsb3QsIFN0cnVjdHVyZVN0dWJJ
bmZvJiBzdHViSW5mbykKK3N0YXRpYyBib29sIHRyeUJ1aWxkR2V0QnlJRExpc3QoRXhlY1N0YXRl
KiBleGVjLCBKU1ZhbHVlIGJhc2VWYWx1ZSwgY29uc3QgSWRlbnRpZmllciYgaWRlbnQsIGNvbnN0
IFByb3BlcnR5U2xvdCYgc2xvdCwgU3RydWN0dXJlU3R1YkluZm8mIHN0dWJJbmZvKQogewogICAg
IGlmICghYmFzZVZhbHVlLmlzQ2VsbCgpCiAgICAgICAgIHx8ICFzbG90LmlzQ2FjaGVhYmxlKCkK
ICAgICAgICAgfHwgYmFzZVZhbHVlLmFzQ2VsbCgpLT5zdHJ1Y3R1cmUoKS0+aXNVbmNhY2hlYWJs
ZURpY3Rpb25hcnkoKQotICAgICAgICB8fCBzbG90LnNsb3RCYXNlKCkgIT0gYmFzZVZhbHVlCi0g
ICAgICAgIHx8IHNsb3QuY2FjaGVkUHJvcGVydHlUeXBlKCkgIT0gUHJvcGVydHlTbG90OjpWYWx1
ZQotICAgICAgICB8fCAoc2xvdC5jYWNoZWRPZmZzZXQoKSAqIHNpemVvZihKU1ZhbHVlKSkgPiAo
dW5zaWduZWQpTWFjcm9Bc3NlbWJsZXI6Ok1heGltdW1Db21wYWN0UHRyQWxpZ25lZEFkZHJlc3NP
ZmZzZXQpCisgICAgICAgIHx8IHNsb3Quc2xvdEJhc2UoKSAhPSBiYXNlVmFsdWUpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAKKyAgICBpZiAoIXN0dWJJbmZvLnJlZ2lzdGVyc0ZsdXNoZWQp
IHsKKyAgICAgICAgLy8gTmVlZCBleHRyYSBjaGVja3MuCisgICAgICAgIGlmIChzbG90LmNhY2hl
ZFByb3BlcnR5VHlwZSgpICE9IFByb3BlcnR5U2xvdDo6VmFsdWUpCisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgfQorICAgIAogICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gZXhlYy0+
Y29kZUJsb2NrKCk7CiAgICAgSlNDZWxsKiBiYXNlQ2VsbCA9IGJhc2VWYWx1ZS5hc0NlbGwoKTsK
ICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IGJhc2VDZWxsLT5zdHJ1Y3R1cmUoKTsKQEAgLTMw
NiwyMCArMzEzLDYzIEBAIHN0YXRpYyBib29sIHRyeUJ1aWxkR2V0QnlJRExpc3QoRXhlY1N0YXQK
ICNlbmRpZgogICAgICAgICBHUFJSZWcgcmVzdWx0R1BSID0gc3RhdGljX2Nhc3Q8R1BSUmVnPihz
dHViSW5mby52YWx1ZUdQUik7CiAgICAgICAgIAotICAgICAgICBNYWNyb0Fzc2VtYmxlciBzdHVi
Sml0OworICAgICAgICBDQ2FsbEhlbHBlcnMgc3R1YkppdChnbG9iYWxEYXRhLCBjb2RlQmxvY2sp
OwogICAgICAgICAKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgd3JvbmdTdHJ1Y3QgPSBz
dHViSml0LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIE1hY3JvQXNzZW1ibGVy
OjpBZGRyZXNzKGJhc2VHUFIsIEpTQ2VsbDo6c3RydWN0dXJlT2Zmc2V0KCkpLCBNYWNyb0Fzc2Vt
Ymxlcjo6VHJ1c3RlZEltbVB0cihzdHJ1Y3R1cmUpKTsKLQotICAgICAgICBzdHViSml0LmxvYWRQ
dHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZUdQUiwgSlNPYmplY3Q6Om9mZnNldE9mUHJv
cGVydHlTdG9yYWdlKCkpLCByZXN1bHRHUFIpOworICAgICAgICAKKyAgICAgICAgLy8gVGhlIHN0
cmF0ZWd5IHdlIHVzZSBmb3Igc3R1YnMgaXMgYXMgZm9sbG93czoKKyAgICAgICAgLy8gMSkgQ2Fs
bCBERkcgaGVscGVyIHRoYXQgY2FsbHMgdGhlIGdldHRlci4KKyAgICAgICAgLy8gMikgQ2hlY2sg
aWYgdGhlcmUgd2FzIGFuIGV4Y2VwdGlvbiwgYW5kIGlmIHRoZXJlIHdhcywgY2FsbCB5ZXQgYW5v
dGhlcgorICAgICAgICAvLyAgICBoZWxwZXIuCisgICAgICAgIAorICAgICAgICBib29sIGlzRGly
ZWN0ID0gZmFsc2U7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIG9wZXJhdGlvbkNhbGw7
CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGhhbmRsZXJDYWxsOworICAgICAgICBGdW5j
dGlvblB0ciBvcGVyYXRpb25GdW5jdGlvbjsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAg
c3VjY2VzczsKKyAgICAgICAgCisgICAgICAgIGlmIChzbG90LmNhY2hlZFByb3BlcnR5VHlwZSgp
ID09IFByb3BlcnR5U2xvdDo6R2V0dGVyCisgICAgICAgICAgICB8fCBzbG90LmNhY2hlZFByb3Bl
cnR5VHlwZSgpID09IFByb3BlcnR5U2xvdDo6VmFsdWUpIHsKKyAgICAgICAgICAgIHN0dWJKaXQu
bG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlR1BSLCBKU09iamVjdDo6b2Zmc2V0
T2ZQcm9wZXJ0eVN0b3JhZ2UoKSksIHJlc3VsdEdQUik7CiAjaWYgVVNFKEpTVkFMVUU2NCkKLSAg
ICAgICAgc3R1YkppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHJlc3VsdEdQUiwg
c2xvdC5jYWNoZWRPZmZzZXQoKSAqIHNpemVvZihKU1ZhbHVlKSksIHJlc3VsdEdQUik7CisgICAg
ICAgICAgICBzdHViSml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MocmVzdWx0R1BS
LCBzbG90LmNhY2hlZE9mZnNldCgpICogc2l6ZW9mKEpTVmFsdWUpKSwgcmVzdWx0R1BSKTsKICNl
bGlmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgICAgIHN0dWJKaXQubG9hZDMyKE1hY3JvQXNzZW1i
bGVyOjpBZGRyZXNzKHJlc3VsdEdQUiwgc2xvdC5jYWNoZWRPZmZzZXQoKSAqIHNpemVvZihKU1Zh
bHVlKSArIE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMudGFn
KSksIHJlc3VsdFRhZ0dQUik7Ci0gICAgICAgIHN0dWJKaXQubG9hZDMyKE1hY3JvQXNzZW1ibGVy
OjpBZGRyZXNzKHJlc3VsdEdQUiwgc2xvdC5jYWNoZWRPZmZzZXQoKSAqIHNpemVvZihKU1ZhbHVl
KSArIE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMucGF5bG9h
ZCkpLCByZXN1bHRHUFIpOworICAgICAgICAgICAgaWYgKHNsb3QuY2FjaGVkUHJvcGVydHlUeXBl
KCkgPT0gUHJvcGVydHlTbG90OjpWYWx1ZSkKKyAgICAgICAgICAgICAgICBzdHViSml0LmxvYWQz
MihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhyZXN1bHRHUFIsIHNsb3QuY2FjaGVkT2Zmc2V0KCkg
KiBzaXplb2YoSlNWYWx1ZSkgKyBPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRv
ciwgYXNCaXRzLnRhZykpLCByZXN1bHRUYWdHUFIpOworICAgICAgICAgICAgc3R1YkppdC5sb2Fk
MzIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MocmVzdWx0R1BSLCBzbG90LmNhY2hlZE9mZnNldCgp
ICogc2l6ZW9mKEpTVmFsdWUpICsgT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0
b3IsIGFzQml0cy5wYXlsb2FkKSksIHJlc3VsdEdQUik7CiAjZW5kaWYKLQotICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6SnVtcCBzdWNjZXNzID0gc3R1YkppdC5qdW1wKCk7CisgICAgICAgIH0KICAg
ICAgICAgCisgICAgICAgIGlmIChzbG90LmNhY2hlZFByb3BlcnR5VHlwZSgpID09IFByb3BlcnR5
U2xvdDo6R2V0dGVyCisgICAgICAgICAgICB8fCBzbG90LmNhY2hlZFByb3BlcnR5VHlwZSgpID09
IFByb3BlcnR5U2xvdDo6Q3VzdG9tKSB7CisgICAgICAgICAgICBpZiAoc2xvdC5jYWNoZWRQcm9w
ZXJ0eVR5cGUoKSA9PSBQcm9wZXJ0eVNsb3Q6OkdldHRlcikgeworICAgICAgICAgICAgICAgIEFT
U0VSVChiYXNlR1BSICE9IHJlc3VsdEdQUik7CisgICAgICAgICAgICAgICAgc3R1YkppdC5zZXR1
cEFyZ3VtZW50cyhiYXNlR1BSLCByZXN1bHRHUFIpOworICAgICAgICAgICAgICAgIG9wZXJhdGlv
bkZ1bmN0aW9uID0gb3BlcmF0aW9uQ2FsbEdldHRlcjsKKyAgICAgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICAgICAgc3R1YkppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoCisgICAg
ICAgICAgICAgICAgICAgIGJhc2VHUFIsCisgICAgICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1i
bGVyOjpUcnVzdGVkSW1tUHRyKEZ1bmN0aW9uUHRyKHNsb3QuY3VzdG9tR2V0dGVyKCkpLmV4ZWN1
dGFibGVBZGRyZXNzKCkpLAorICAgICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6VHJ1
c3RlZEltbVB0cihjb25zdF9jYXN0PElkZW50aWZpZXIqPigmaWRlbnQpKSk7CisgICAgICAgICAg
ICAgICAgb3BlcmF0aW9uRnVuY3Rpb24gPSBvcGVyYXRpb25DYWxsQ3VzdG9tR2V0dGVyOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgb3BlcmF0aW9uQ2FsbCA9IHN0dWJKaXQuY2FsbCgpOwor
I2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgICAgICBzdHViSml0Lm1vdmUoR1BSSW5mbzo6cmV0
dXJuVmFsdWVHUFIsIHJlc3VsdEdQUik7CisjZWxzZQorICAgICAgICAgICAgc3R1YkppdC5zZXR1
cFJlc3VsdHMocmVzdWx0VGFnR1BSLCByZXN1bHRHUFIpOworI2VuZGlmCisgICAgICAgICAgICBz
dWNjZXNzID0gc3R1YkppdC5lbWl0RXhjZXB0aW9uQ2hlY2soQ0NhbGxIZWxwZXJzOjpJbnZlcnRl
ZEV4Y2VwdGlvbkNoZWNrKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgc3R1YkppdC5zZXR1
cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoCisgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6
OlRydXN0ZWRJbW1QdHIoJnN0dWJJbmZvKSk7CisgICAgICAgICAgICBoYW5kbGVyQ2FsbCA9IHN0
dWJKaXQuY2FsbCgpOworICAgICAgICAgICAgc3R1YkppdC5qdW1wKEdQUkluZm86OnJldHVyblZh
bHVlR1BSMik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBzdWNjZXNzID0gc3R1Ykpp
dC5qdW1wKCk7CisgICAgICAgICAgICBpc0RpcmVjdCA9IHRydWU7CisgICAgICAgIH0KKwogICAg
ICAgICBMaW5rQnVmZmVyIHBhdGNoQnVmZmVyKCpnbG9iYWxEYXRhLCAmc3R1YkppdCk7CiAgICAg
ICAgIAogICAgICAgICBDb2RlTG9jYXRpb25MYWJlbCBsYXN0UHJvdG9CZWdpbiA9IENvZGVMb2Nh
dGlvbkxhYmVsKHBvbHltb3JwaGljU3RydWN0dXJlTGlzdC0+bGlzdFtsaXN0SW5kZXggLSAxXS5z
dHViUm91dGluZS5jb2RlKCkpOwpAQCAtMzI3LDEwICszNzcsMTQgQEAgc3RhdGljIGJvb2wgdHJ5
QnVpbGRHZXRCeUlETGlzdChFeGVjU3RhdAogICAgICAgICAKICAgICAgICAgcGF0Y2hCdWZmZXIu
bGluayh3cm9uZ1N0cnVjdCwgbGFzdFByb3RvQmVnaW4pOwogICAgICAgICBwYXRjaEJ1ZmZlci5s
aW5rKHN1Y2Nlc3MsIHN0dWJJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbi5sYWJlbEF0T2Zmc2V0KHN0
dWJJbmZvLmRlbHRhQ2FsbFRvRG9uZSkpOworICAgICAgICBpZiAoIWlzRGlyZWN0KSB7CisgICAg
ICAgICAgICBwYXRjaEJ1ZmZlci5saW5rKG9wZXJhdGlvbkNhbGwsIG9wZXJhdGlvbkZ1bmN0aW9u
KTsKKyAgICAgICAgICAgIHBhdGNoQnVmZmVyLmxpbmsoaGFuZGxlckNhbGwsIGxvb2t1cEV4Y2Vw
dGlvbkhhbmRsZXJJblN0dWIpOworICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBNYWNyb0Fz
c2VtYmxlckNvZGVSZWYgc3R1YlJvdXRpbmUgPSBwYXRjaEJ1ZmZlci5maW5hbGl6ZUNvZGUoKTsK
ICAgICAgICAgCi0gICAgICAgIHBvbHltb3JwaGljU3RydWN0dXJlTGlzdC0+bGlzdFtsaXN0SW5k
ZXhdLnNldCgqZ2xvYmFsRGF0YSwgY29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUoKSwgc3R1YlJv
dXRpbmUsIHN0cnVjdHVyZSwgdHJ1ZSk7CisgICAgICAgIHBvbHltb3JwaGljU3RydWN0dXJlTGlz
dC0+bGlzdFtsaXN0SW5kZXhdLnNldCgqZ2xvYmFsRGF0YSwgY29kZUJsb2NrLT5vd25lckV4ZWN1
dGFibGUoKSwgc3R1YlJvdXRpbmUsIHN0cnVjdHVyZSwgaXNEaXJlY3QpOwogICAgICAgICAKICAg
ICAgICAgQ29kZUxvY2F0aW9uSnVtcCBqdW1wTG9jYXRpb24gPSBzdHViSW5mby5jYWxsUmV0dXJu
TG9jYXRpb24uanVtcEF0T2Zmc2V0KHN0dWJJbmZvLmRlbHRhQ2FsbFRvU3RydWN0Q2hlY2spOwog
ICAgICAgICBSZXBhdGNoQnVmZmVyIHJlcGF0Y2hCdWZmZXIoY29kZUJsb2NrKTsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0
LmNwcAkocmV2aXNpb24gMTA1MDM1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDkzLDcgKzQ5Myw3IEBA
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6Om5vblNwZWN1bGF0aXZlVUludDMKICAgICBqc1ZhbHVlUmVz
dWx0KHJlc3VsdFRhZy5ncHIoKSwgcmVzdWx0UGF5bG9hZC5ncHIoKSwgbV9jb21waWxlSW5kZXgp
OwogfQogCi1KSVRDb21waWxlcjo6Q2FsbCBTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVkR2V0QnlJZChH
UFJSZWcgYmFzZVRhZ0dQUk9yTm9uZSwgR1BSUmVnIGJhc2VQYXlsb2FkR1BSLCBHUFJSZWcgcmVz
dWx0VGFnR1BSLCBHUFJSZWcgcmVzdWx0UGF5bG9hZEdQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIHVu
c2lnbmVkIGlkZW50aWZpZXJOdW1iZXIsIEpJVENvbXBpbGVyOjpKdW1wIHNsb3dQYXRoVGFyZ2V0
KQorSklUQ29tcGlsZXI6OkNhbGwgU3BlY3VsYXRpdmVKSVQ6OmNhY2hlZEdldEJ5SWQoR1BSUmVn
IGJhc2VUYWdHUFJPck5vbmUsIEdQUlJlZyBiYXNlUGF5bG9hZEdQUiwgR1BSUmVnIHJlc3VsdFRh
Z0dQUiwgR1BSUmVnIHJlc3VsdFBheWxvYWRHUFIsIEdQUlJlZyBzY3JhdGNoR1BSLCB1bnNpZ25l
ZCBpZGVudGlmaWVyTnVtYmVyLCBKSVRDb21waWxlcjo6SnVtcCBzbG93UGF0aFRhcmdldCwgU3Bp
bGxSZWdpc3RlcnNNb2RlIHNwaWxsTW9kZSkKIHsKICAgICBtX2ppdC5iZWdpblVuaW50ZXJydXB0
ZWRTZXF1ZW5jZSgpOwogICAgIEpJVENvbXBpbGVyOjpEYXRhTGFiZWxQdHIgc3RydWN0dXJlVG9D
b21wYXJlOwpAQCAtNTEzLDE5ICs1MTMsMjEgQEAgSklUQ29tcGlsZXI6OkNhbGwgU3BlY3VsYXRp
dmVKSVQ6OmNhY2hlZAogICAgIAogICAgIEpJVENvbXBpbGVyOjpMYWJlbCBzbG93Q2FzZSA9IG1f
aml0LmxhYmVsKCk7CiAKLSAgICBzaWxlbnRTcGlsbEFsbFJlZ2lzdGVycyhyZXN1bHRUYWdHUFIs
IHJlc3VsdFBheWxvYWRHUFIpOworICAgIGlmIChzcGlsbE1vZGUgPT0gTmVlZFRvU3BpbGwpCisg
ICAgICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzKHJlc3VsdFRhZ0dQUiwgcmVzdWx0UGF5bG9h
ZEdQUik7CiAgICAgSklUQ29tcGlsZXI6OkNhbGwgZnVuY3Rpb25DYWxsOwogICAgIGlmIChiYXNl
VGFnR1BST3JOb25lID09IEludmFsaWRHUFJSZWcpCiAgICAgICAgIGZ1bmN0aW9uQ2FsbCA9IGNh
bGxPcGVyYXRpb24ob3BlcmF0aW9uR2V0QnlJZE9wdGltaXplLCByZXN1bHRUYWdHUFIsIHJlc3Vs
dFBheWxvYWRHUFIsIEpTVmFsdWU6OkNlbGxUYWcsIGJhc2VQYXlsb2FkR1BSLCBpZGVudGlmaWVy
KGlkZW50aWZpZXJOdW1iZXIpKTsKICAgICBlbHNlCiAgICAgICAgIGZ1bmN0aW9uQ2FsbCA9IGNh
bGxPcGVyYXRpb24ob3BlcmF0aW9uR2V0QnlJZE9wdGltaXplLCByZXN1bHRUYWdHUFIsIHJlc3Vs
dFBheWxvYWRHUFIsIGJhc2VUYWdHUFJPck5vbmUsIGJhc2VQYXlsb2FkR1BSLCBpZGVudGlmaWVy
KGlkZW50aWZpZXJOdW1iZXIpKTsKLSAgICBzaWxlbnRGaWxsQWxsUmVnaXN0ZXJzKHJlc3VsdFRh
Z0dQUiwgcmVzdWx0UGF5bG9hZEdQUik7CisgICAgaWYgKHNwaWxsTW9kZSA9PSBOZWVkVG9TcGls
bCkKKyAgICAgICAgc2lsZW50RmlsbEFsbFJlZ2lzdGVycyhyZXN1bHRUYWdHUFIsIHJlc3VsdFBh
eWxvYWRHUFIpOwogICAgIAogICAgIGRvbmUubGluaygmbV9qaXQpOwogICAgIAogICAgIEpJVENv
bXBpbGVyOjpMYWJlbCBkb25lTGFiZWwgPSBtX2ppdC5sYWJlbCgpOwogCi0gICAgbV9qaXQuYWRk
UHJvcGVydHlBY2Nlc3MoUHJvcGVydHlBY2Nlc3NSZWNvcmQoc3RydWN0dXJlVG9Db21wYXJlLCBm
dW5jdGlvbkNhbGwsIHN0cnVjdHVyZUNoZWNrLCB0YWdMb2FkV2l0aFBhdGNoLCBwYXlsb2FkTG9h
ZFdpdGhQYXRjaCwgc2xvd0Nhc2UsIGRvbmVMYWJlbCwgc2FmZUNhc3Q8aW50OF90PihiYXNlUGF5
bG9hZEdQUiksIHNhZmVDYXN0PGludDhfdD4ocmVzdWx0VGFnR1BSKSwgc2FmZUNhc3Q8aW50OF90
PihyZXN1bHRQYXlsb2FkR1BSKSwgc2FmZUNhc3Q8aW50OF90PihzY3JhdGNoR1BSKSkpOworICAg
IG1faml0LmFkZFByb3BlcnR5QWNjZXNzKFByb3BlcnR5QWNjZXNzUmVjb3JkKHN0cnVjdHVyZVRv
Q29tcGFyZSwgZnVuY3Rpb25DYWxsLCBzdHJ1Y3R1cmVDaGVjaywgdGFnTG9hZFdpdGhQYXRjaCwg
cGF5bG9hZExvYWRXaXRoUGF0Y2gsIHNsb3dDYXNlLCBkb25lTGFiZWwsIHNhZmVDYXN0PGludDhf
dD4oYmFzZVBheWxvYWRHUFIpLCBzYWZlQ2FzdDxpbnQ4X3Q+KHJlc3VsdFRhZ0dQUiksIHNhZmVD
YXN0PGludDhfdD4ocmVzdWx0UGF5bG9hZEdQUiksIHNhZmVDYXN0PGludDhfdD4oc2NyYXRjaEdQ
UiksIHNwaWxsTW9kZSA9PSBOZWVkVG9TcGlsbCA/IFByb3BlcnR5QWNjZXNzUmVjb3JkOjpSZWdp
c3RlcnNJblVzZSA6IFByb3BlcnR5QWNjZXNzUmVjb3JkOjpSZWdpc3RlcnNGbHVzaGVkKSk7CiAg
ICAgCiAgICAgcmV0dXJuIGZ1bmN0aW9uQ2FsbDsKIH0KQEAgLTMxNTcsNiArMzE1OSw2NCBAQCB2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUmIG5vZGUpCiAgICAgICAgIGJyZWFrOwog
ICAgIH0KIAorICAgIGNhc2UgR2V0QnlJZEZsdXNoOiB7CisgICAgICAgIGlmICghbm9kZS5wcmVk
aWN0aW9uKCkpIHsKKyAgICAgICAgICAgIHRlcm1pbmF0ZVNwZWN1bGF0aXZlRXhlY3V0aW9uKFVu
Y291bnRhYmxlLCBKU1ZhbHVlUmVncygpLCBOb05vZGUpOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChpc0NlbGxQcmVkaWN0aW9uKGF0KG5vZGUu
Y2hpbGQxKCkpLnByZWRpY3Rpb24oKSkpIHsKKyAgICAgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVy
YW5kIGJhc2UodGhpcywgbm9kZS5jaGlsZDEoKSk7CisgICAgICAgICAgICBHUFJSZXN1bHQgcmVz
dWx0VGFnKHRoaXMpOworICAgICAgICAgICAgR1BSUmVzdWx0MiByZXN1bHRQYXlsb2FkKHRoaXMp
OworICAgICAgICAgICAgCisgICAgICAgICAgICBHUFJSZWcgYmFzZUdQUiA9IGJhc2UuZ3ByKCk7
CisgICAgICAgICAgICBHUFJSZWcgcmVzdWx0VGFnR1BSID0gcmVzdWx0VGFnLmdwcigpOworICAg
ICAgICAgICAgR1BSUmVnIHJlc3VsdFBheWxvYWRHUFIgPSByZXN1bHRQYXlsb2FkLmdwcigpOwor
ICAgICAgICAgICAgR1BSUmVnIHNjcmF0Y2hHUFI7CisgICAgICAgICAgICAKKyAgICAgICAgICAg
IGlmIChyZXN1bHRUYWdHUFIgPT0gYmFzZUdQUikKKyAgICAgICAgICAgICAgICBzY3JhdGNoR1BS
ID0gcmVzdWx0UGF5bG9hZEdQUjsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBz
Y3JhdGNoR1BSID0gcmVzdWx0VGFnR1BSOworICAgICAgICAgICAgCisgICAgICAgICAgICBiYXNl
LnVzZSgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBmbHVzaFJlZ2lzdGVycygpOworICAg
ICAgICAgICAgCisgICAgICAgICAgICBjYWNoZWRHZXRCeUlkKEludmFsaWRHUFJSZWcsIGJhc2VH
UFIsIHJlc3VsdFRhZ0dQUiwgcmVzdWx0UGF5bG9hZEdQUiwgc2NyYXRjaEdQUiwgbm9kZS5pZGVu
dGlmaWVyTnVtYmVyKCksIEpJVENvbXBpbGVyOjpKdW1wKCksIEpJVENvbXBpbGVyOjpEb250U3Bp
bGwpOworICAgICAgICAgICAgCisgICAgICAgICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFRhZ0dQ
UiwgcmVzdWx0UGF5bG9hZEdQUiwgbV9jb21waWxlSW5kZXgsIFVzZUNoaWxkcmVuQ2FsbGVkRXhw
bGljaXRseSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAg
ICAgSlNWYWx1ZU9wZXJhbmQgYmFzZSh0aGlzLCBub2RlLmNoaWxkMSgpKTsKKyAgICAgICAgR1BS
UmVzdWx0IHJlc3VsdFRhZyh0aGlzKTsKKyAgICAgICAgR1BSUmVzdWx0IHJlc3VsdFBheWxvYWQo
dGhpcyk7CisgICAgICAgIAorICAgICAgICBHUFJSZWcgYmFzZVRhZ0dQUiA9IGJhc2UudGFnR1BS
KCk7CisgICAgICAgIEdQUlJlZyBiYXNlUGF5bG9hZEdQUiA9IGJhc2UucGF5bG9hZEdQUigpOwor
ICAgICAgICBHUFJSZWcgcmVzdWx0VGFnR1BSID0gcmVzdWx0VGFnLmdwcigpOworICAgICAgICBH
UFJSZWcgcmVzdWx0UGF5bG9hZEdQUiA9IHJlc3VsdFBheWxvYWQuZ3ByKCk7CisgICAgICAgIEdQ
UlJlZyBzY3JhdGNoR1BSOworCisgICAgICAgIGlmIChyZXN1bHRUYWdHUFIgPT0gYmFzZVBheWxv
YWRHUFIpCisgICAgICAgICAgICBzY3JhdGNoR1BSID0gcmVzdWx0UGF5bG9hZEdQUjsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgc2NyYXRjaEdQUiA9IHJlc3VsdFRhZ0dQUjsKKyAgICAgICAg
CisgICAgICAgIGJhc2UudXNlKCk7CisgICAgICAgIAorICAgICAgICBmbHVzaFJlZ2lzdGVycygp
OworICAgICAgICAKKyAgICAgICAgSklUQ29tcGlsZXI6Okp1bXAgbm90Q2VsbCA9IG1faml0LmJy
YW5jaDMyKEpJVENvbXBpbGVyOjpOb3RFcXVhbCwgYmFzZVRhZ0dQUiwgVHJ1c3RlZEltbTMyKEpT
VmFsdWU6OkNlbGxUYWcpKTsKKyAgICAgICAgCisgICAgICAgIGNhY2hlZEdldEJ5SWQoYmFzZVRh
Z0dQUiwgYmFzZVBheWxvYWRHUFIsIHJlc3VsdFRhZ0dQUiwgcmVzdWx0UGF5bG9hZEdQUiwgc2Ny
YXRjaEdQUiwgbm9kZS5pZGVudGlmaWVyTnVtYmVyKCksIG5vdENlbGwsIEpJVENvbXBpbGVyOjpE
b250U3BpbGwpOworICAgICAgICAKKyAgICAgICAganNWYWx1ZVJlc3VsdChyZXN1bHRUYWdHUFIs
IHJlc3VsdFBheWxvYWRHUFIsIG1fY29tcGlsZUluZGV4LCBVc2VDaGlsZHJlbkNhbGxlZEV4cGxp
Y2l0bHkpOworICAgICAgICBicmVhazsKKyAgICB9CisKICAgICBjYXNlIEdldEFycmF5TGVuZ3Ro
OiB7CiAgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgbm9kZS5jaGlsZDEo
KSk7CiAgICAgICAgIEdQUlJlZyBiYXNlR1BSID0gYmFzZS5ncHIoKTsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAkocmV2aXNp
b24gMTA1MDM1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VDY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDc3LDcgKzQ3Nyw3IEBAIHZvaWQgU3BlY3VsYXRp
dmVKSVQ6Om5vblNwZWN1bGF0aXZlVUludDMKICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdC5ncHIo
KSwgbV9jb21waWxlSW5kZXgpOwogfQogCi1KSVRDb21waWxlcjo6Q2FsbCBTcGVjdWxhdGl2ZUpJ
VDo6Y2FjaGVkR2V0QnlJZChHUFJSZWcgYmFzZUdQUiwgR1BSUmVnIHJlc3VsdEdQUiwgR1BSUmVn
IHNjcmF0Y2hHUFIsIHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIsIEpJVENvbXBpbGVyOjpKdW1w
IHNsb3dQYXRoVGFyZ2V0KQorSklUQ29tcGlsZXI6OkNhbGwgU3BlY3VsYXRpdmVKSVQ6OmNhY2hl
ZEdldEJ5SWQoQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBHUFJSZWcgYmFzZUdQUiwgR1BSUmVnIHJl
c3VsdEdQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIsIEpJ
VENvbXBpbGVyOjpKdW1wIHNsb3dQYXRoVGFyZ2V0LCBTcGlsbFJlZ2lzdGVyc01vZGUgc3BpbGxN
b2RlKQogewogICAgIEpJVENvbXBpbGVyOjpEYXRhTGFiZWxQdHIgc3RydWN0dXJlVG9Db21wYXJl
OwogICAgIEpJVENvbXBpbGVyOjpKdW1wIHN0cnVjdHVyZUNoZWNrID0gbV9qaXQuYnJhbmNoUHRy
V2l0aFBhdGNoKEpJVENvbXBpbGVyOjpOb3RFcXVhbCwgSklUQ29tcGlsZXI6OkFkZHJlc3MoYmFz
ZUdQUiwgSlNDZWxsOjpzdHJ1Y3R1cmVPZmZzZXQoKSksIHN0cnVjdHVyZVRvQ29tcGFyZSwgSklU
Q29tcGlsZXI6OlRydXN0ZWRJbW1QdHIocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oLTEpKSk7CkBA
IC00OTQsMTUgKzQ5NCwxNyBAQCBKSVRDb21waWxlcjo6Q2FsbCBTcGVjdWxhdGl2ZUpJVDo6Y2Fj
aGVkCiAgICAgCiAgICAgSklUQ29tcGlsZXI6OkxhYmVsIHNsb3dDYXNlID0gbV9qaXQubGFiZWwo
KTsKIAotICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzKHJlc3VsdEdQUik7CisgICAgaWYgKHNw
aWxsTW9kZSA9PSBOZWVkVG9TcGlsbCkKKyAgICAgICAgc2lsZW50U3BpbGxBbGxSZWdpc3RlcnMo
cmVzdWx0R1BSKTsKICAgICBKSVRDb21waWxlcjo6Q2FsbCBmdW5jdGlvbkNhbGwgPSBjYWxsT3Bl
cmF0aW9uKG9wZXJhdGlvbkdldEJ5SWRPcHRpbWl6ZSwgcmVzdWx0R1BSLCBiYXNlR1BSLCBpZGVu
dGlmaWVyKGlkZW50aWZpZXJOdW1iZXIpKTsKLSAgICBzaWxlbnRGaWxsQWxsUmVnaXN0ZXJzKHJl
c3VsdEdQUik7CisgICAgaWYgKHNwaWxsTW9kZSA9PSBOZWVkVG9TcGlsbCkKKyAgICAgICAgc2ls
ZW50RmlsbEFsbFJlZ2lzdGVycyhyZXN1bHRHUFIpOwogICAgIAogICAgIGRvbmUubGluaygmbV9q
aXQpOwogICAgIAogICAgIEpJVENvbXBpbGVyOjpMYWJlbCBkb25lTGFiZWwgPSBtX2ppdC5sYWJl
bCgpOwogCi0gICAgbV9qaXQuYWRkUHJvcGVydHlBY2Nlc3MoUHJvcGVydHlBY2Nlc3NSZWNvcmQo
c3RydWN0dXJlVG9Db21wYXJlLCBmdW5jdGlvbkNhbGwsIHN0cnVjdHVyZUNoZWNrLCBsb2FkV2l0
aFBhdGNoLCBzbG93Q2FzZSwgZG9uZUxhYmVsLCBzYWZlQ2FzdDxpbnQ4X3Q+KGJhc2VHUFIpLCBz
YWZlQ2FzdDxpbnQ4X3Q+KHJlc3VsdEdQUiksIHNhZmVDYXN0PGludDhfdD4oc2NyYXRjaEdQUikp
KTsKKyAgICBtX2ppdC5hZGRQcm9wZXJ0eUFjY2VzcyhQcm9wZXJ0eUFjY2Vzc1JlY29yZChjb2Rl
T3JpZ2luLCBzdHJ1Y3R1cmVUb0NvbXBhcmUsIGZ1bmN0aW9uQ2FsbCwgc3RydWN0dXJlQ2hlY2ss
IGxvYWRXaXRoUGF0Y2gsIHNsb3dDYXNlLCBkb25lTGFiZWwsIHNhZmVDYXN0PGludDhfdD4oYmFz
ZUdQUiksIHNhZmVDYXN0PGludDhfdD4ocmVzdWx0R1BSKSwgc2FmZUNhc3Q8aW50OF90PihzY3Jh
dGNoR1BSKSwgc3BpbGxNb2RlID09IE5lZWRUb1NwaWxsID8gUHJvcGVydHlBY2Nlc3NSZWNvcmQ6
OlJlZ2lzdGVyc0luVXNlIDogUHJvcGVydHlBY2Nlc3NSZWNvcmQ6OlJlZ2lzdGVyc0ZsdXNoZWQp
KTsKICAgICAKICAgICBpZiAoc2NyYXRjaEdQUiAhPSByZXN1bHRHUFIgJiYgc2NyYXRjaEdQUiAh
PSBJbnZhbGlkR1BSUmVnKQogICAgICAgICB1bmxvY2soc2NyYXRjaEdQUik7CkBAIC01MTAsNyAr
NTEyLDcgQEAgSklUQ29tcGlsZXI6OkNhbGwgU3BlY3VsYXRpdmVKSVQ6OmNhY2hlZAogICAgIHJl
dHVybiBmdW5jdGlvbkNhbGw7CiB9CiAKLXZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNhY2hlZFB1dEJ5
SWQoR1BSUmVnIGJhc2VHUFIsIEdQUlJlZyB2YWx1ZUdQUiwgTm9kZUluZGV4IHZhbHVlSW5kZXgs
IEdQUlJlZyBzY3JhdGNoR1BSLCB1bnNpZ25lZCBpZGVudGlmaWVyTnVtYmVyLCBQdXRLaW5kIHB1
dEtpbmQsIEpJVENvbXBpbGVyOjpKdW1wIHNsb3dQYXRoVGFyZ2V0KQordm9pZCBTcGVjdWxhdGl2
ZUpJVDo6Y2FjaGVkUHV0QnlJZChDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIEdQUlJlZyBiYXNlR1BS
LCBHUFJSZWcgdmFsdWVHUFIsIE5vZGVJbmRleCB2YWx1ZUluZGV4LCBHUFJSZWcgc2NyYXRjaEdQ
UiwgdW5zaWduZWQgaWRlbnRpZmllck51bWJlciwgUHV0S2luZCBwdXRLaW5kLCBKSVRDb21waWxl
cjo6SnVtcCBzbG93UGF0aFRhcmdldCkKIHsKICAgICAKICAgICBKSVRDb21waWxlcjo6RGF0YUxh
YmVsUHRyIHN0cnVjdHVyZVRvQ29tcGFyZTsKQEAgLTU0OSw3ICs1NTEsNyBAQCB2b2lkIFNwZWN1
bGF0aXZlSklUOjpjYWNoZWRQdXRCeUlkKEdQUlJlCiAgICAgZG9uZS5saW5rKCZtX2ppdCk7CiAg
ICAgSklUQ29tcGlsZXI6OkxhYmVsIGRvbmVMYWJlbCA9IG1faml0LmxhYmVsKCk7CiAKLSAgICBt
X2ppdC5hZGRQcm9wZXJ0eUFjY2VzcyhQcm9wZXJ0eUFjY2Vzc1JlY29yZChzdHJ1Y3R1cmVUb0Nv
bXBhcmUsIGZ1bmN0aW9uQ2FsbCwgc3RydWN0dXJlQ2hlY2ssIEpJVENvbXBpbGVyOjpEYXRhTGFi
ZWxDb21wYWN0KHN0b3JlV2l0aFBhdGNoLmxhYmVsKCkpLCBzbG93Q2FzZSwgZG9uZUxhYmVsLCBz
YWZlQ2FzdDxpbnQ4X3Q+KGJhc2VHUFIpLCBzYWZlQ2FzdDxpbnQ4X3Q+KHZhbHVlR1BSKSwgc2Fm
ZUNhc3Q8aW50OF90PihzY3JhdGNoR1BSKSkpOworICAgIG1faml0LmFkZFByb3BlcnR5QWNjZXNz
KFByb3BlcnR5QWNjZXNzUmVjb3JkKGNvZGVPcmlnaW4sIHN0cnVjdHVyZVRvQ29tcGFyZSwgZnVu
Y3Rpb25DYWxsLCBzdHJ1Y3R1cmVDaGVjaywgSklUQ29tcGlsZXI6OkRhdGFMYWJlbENvbXBhY3Qo
c3RvcmVXaXRoUGF0Y2gubGFiZWwoKSksIHNsb3dDYXNlLCBkb25lTGFiZWwsIHNhZmVDYXN0PGlu
dDhfdD4oYmFzZUdQUiksIHNhZmVDYXN0PGludDhfdD4odmFsdWVHUFIpLCBzYWZlQ2FzdDxpbnQ4
X3Q+KHNjcmF0Y2hHUFIpKSk7CiB9CiAKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6Om5vblNwZWN1bGF0
aXZlTm9uUGVlcGhvbGVDb21wYXJlTnVsbChOb2RlSW5kZXggb3BlcmFuZCwgYm9vbCBpbnZlcnQp
CkBAIC0zMTIzLDcgKzMxMjUsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUm
IG5vZGUpCiAgICAgICAgICAgICAKICAgICAgICAgICAgIGJhc2UudXNlKCk7CiAgICAgICAgICAg
ICAKLSAgICAgICAgICAgIGNhY2hlZEdldEJ5SWQoYmFzZUdQUiwgcmVzdWx0R1BSLCBzY3JhdGNo
R1BSLCBub2RlLmlkZW50aWZpZXJOdW1iZXIoKSk7CisgICAgICAgICAgICBjYWNoZWRHZXRCeUlk
KG5vZGUuY29kZU9yaWdpbiwgYmFzZUdQUiwgcmVzdWx0R1BSLCBzY3JhdGNoR1BSLCBub2RlLmlk
ZW50aWZpZXJOdW1iZXIoKSk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGpzVmFsdWVSZXN1
bHQocmVzdWx0R1BSLCBtX2NvbXBpbGVJbmRleCwgVXNlQ2hpbGRyZW5DYWxsZWRFeHBsaWNpdGx5
KTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMzE0NSw3ICszMTQ3LDYwIEBAIHZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSYgbm9kZSkKICAgICAgICAgCiAgICAgICAgIEpJVENvbXBp
bGVyOjpKdW1wIG5vdENlbGwgPSBtX2ppdC5icmFuY2hUZXN0UHRyKEpJVENvbXBpbGVyOjpOb25a
ZXJvLCBiYXNlR1BSLCBHUFJJbmZvOjp0YWdNYXNrUmVnaXN0ZXIpOwogICAgICAgICAKLSAgICAg
ICAgY2FjaGVkR2V0QnlJZChiYXNlR1BSLCByZXN1bHRHUFIsIHNjcmF0Y2hHUFIsIG5vZGUuaWRl
bnRpZmllck51bWJlcigpLCBub3RDZWxsKTsKKyAgICAgICAgY2FjaGVkR2V0QnlJZChub2RlLmNv
ZGVPcmlnaW4sIGJhc2VHUFIsIHJlc3VsdEdQUiwgc2NyYXRjaEdQUiwgbm9kZS5pZGVudGlmaWVy
TnVtYmVyKCksIG5vdENlbGwpOworICAgICAgICAKKyAgICAgICAganNWYWx1ZVJlc3VsdChyZXN1
bHRHUFIsIG1fY29tcGlsZUluZGV4LCBVc2VDaGlsZHJlbkNhbGxlZEV4cGxpY2l0bHkpOworICAg
ICAgICAKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgY2FzZSBHZXRCeUlkRmx1c2g6IHsK
KyAgICAgICAgaWYgKCFub2RlLnByZWRpY3Rpb24oKSkgeworICAgICAgICAgICAgdGVybWluYXRl
U3BlY3VsYXRpdmVFeGVjdXRpb24oVW5jb3VudGFibGUsIEpTVmFsdWVSZWdzKCksIE5vTm9kZSk7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKGlz
Q2VsbFByZWRpY3Rpb24oYXQobm9kZS5jaGlsZDEoKSkucHJlZGljdGlvbigpKSkgeworICAgICAg
ICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBub2RlLmNoaWxkMSgpKTsKKyAg
ICAgICAgICAgIEdQUlJlc3VsdCByZXN1bHQodGhpcyk7CisgICAgICAgICAgICAKKyAgICAgICAg
ICAgIEdQUlJlZyBiYXNlR1BSID0gYmFzZS5ncHIoKTsKKyAgICAgICAgICAgIEdQUlJlZyByZXN1
bHRHUFIgPSByZXN1bHQuZ3ByKCk7CisgICAgICAgICAgICBHUFJSZWcgc2NyYXRjaEdQUjsKKyAg
ICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHJlc3VsdEdQUiA9PSBiYXNlR1BSKQorICAgICAg
ICAgICAgICAgIHNjcmF0Y2hHUFIgPSB0cnlBbGxvY2F0ZSgpOworICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgIHNjcmF0Y2hHUFIgPSByZXN1bHRHUFI7CisgICAgICAgICAgICAKKyAg
ICAgICAgICAgIGJhc2UudXNlKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZsdXNoUmVn
aXN0ZXJzKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhY2hlZEdldEJ5SWQobm9kZS5j
b2RlT3JpZ2luLCBiYXNlR1BSLCByZXN1bHRHUFIsIHNjcmF0Y2hHUFIsIG5vZGUuaWRlbnRpZmll
ck51bWJlcigpLCBKSVRDb21waWxlcjo6SnVtcCgpLCBEb250U3BpbGwpOworICAgICAgICAgICAg
CisgICAgICAgICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdEdQUiwgbV9jb21waWxlSW5kZXgsIFVz
ZUNoaWxkcmVuQ2FsbGVkRXhwbGljaXRseSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
fQorICAgICAgICAKKyAgICAgICAgSlNWYWx1ZU9wZXJhbmQgYmFzZSh0aGlzLCBub2RlLmNoaWxk
MSgpKTsKKyAgICAgICAgR1BSUmVzdWx0IHJlc3VsdCh0aGlzKTsKKyAgICAgICAgCisgICAgICAg
IEdQUlJlZyBiYXNlR1BSID0gYmFzZS5ncHIoKTsKKyAgICAgICAgR1BSUmVnIHJlc3VsdEdQUiA9
IHJlc3VsdC5ncHIoKTsKKyAgICAgICAgR1BSUmVnIHNjcmF0Y2hHUFI7CisgICAgICAgIAorICAg
ICAgICBpZiAocmVzdWx0R1BSID09IGJhc2VHUFIpCisgICAgICAgICAgICBzY3JhdGNoR1BSID0g
dHJ5QWxsb2NhdGUoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc2NyYXRjaEdQUiA9IHJl
c3VsdEdQUjsKKyAgICAgICAgCisgICAgICAgIGJhc2UudXNlKCk7CisgICAgICAgIGZsdXNoUmVn
aXN0ZXJzKCk7CisgICAgICAgIAorICAgICAgICBKSVRDb21waWxlcjo6SnVtcCBub3RDZWxsID0g
bV9qaXQuYnJhbmNoVGVzdFB0cihKSVRDb21waWxlcjo6Tm9uWmVybywgYmFzZUdQUiwgR1BSSW5m
bzo6dGFnTWFza1JlZ2lzdGVyKTsKKyAgICAgICAgCisgICAgICAgIGNhY2hlZEdldEJ5SWQobm9k
ZS5jb2RlT3JpZ2luLCBiYXNlR1BSLCByZXN1bHRHUFIsIHNjcmF0Y2hHUFIsIG5vZGUuaWRlbnRp
Zmllck51bWJlcigpLCBub3RDZWxsLCBEb250U3BpbGwpOwogICAgICAgICAKICAgICAgICAganNW
YWx1ZVJlc3VsdChyZXN1bHRHUFIsIG1fY29tcGlsZUluZGV4LCBVc2VDaGlsZHJlbkNhbGxlZEV4
cGxpY2l0bHkpOwogICAgICAgICAKQEAgLTMzNTksNyArMzQxNCw3IEBAIHZvaWQgU3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGUoTm9kZSYgbm9kZSkKICAgICAgICAgYmFzZS51c2UoKTsKICAgICAgICAg
dmFsdWUudXNlKCk7CiAKLSAgICAgICAgY2FjaGVkUHV0QnlJZChiYXNlR1BSLCB2YWx1ZUdQUiwg
bm9kZS5jaGlsZDIoKSwgc2NyYXRjaEdQUiwgbm9kZS5pZGVudGlmaWVyTnVtYmVyKCksIE5vdERp
cmVjdCk7CisgICAgICAgIGNhY2hlZFB1dEJ5SWQobm9kZS5jb2RlT3JpZ2luLCBiYXNlR1BSLCB2
YWx1ZUdQUiwgbm9kZS5jaGlsZDIoKSwgc2NyYXRjaEdQUiwgbm9kZS5pZGVudGlmaWVyTnVtYmVy
KCksIE5vdERpcmVjdCk7CiAgICAgICAgIAogICAgICAgICBub1Jlc3VsdChtX2NvbXBpbGVJbmRl
eCwgVXNlQ2hpbGRyZW5DYWxsZWRFeHBsaWNpdGx5KTsKICAgICAgICAgYnJlYWs7CkBAIC0zMzc3
LDcgKzM0MzIsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUmIG5vZGUpCiAg
ICAgICAgIGJhc2UudXNlKCk7CiAgICAgICAgIHZhbHVlLnVzZSgpOwogCi0gICAgICAgIGNhY2hl
ZFB1dEJ5SWQoYmFzZUdQUiwgdmFsdWVHUFIsIG5vZGUuY2hpbGQyKCksIHNjcmF0Y2hHUFIsIG5v
ZGUuaWRlbnRpZmllck51bWJlcigpLCBEaXJlY3QpOworICAgICAgICBjYWNoZWRQdXRCeUlkKG5v
ZGUuY29kZU9yaWdpbiwgYmFzZUdQUiwgdmFsdWVHUFIsIG5vZGUuY2hpbGQyKCksIHNjcmF0Y2hH
UFIsIG5vZGUuaWRlbnRpZmllck51bWJlcigpLCBEaXJlY3QpOwogCiAgICAgICAgIG5vUmVzdWx0
KG1fY29tcGlsZUluZGV4LCBVc2VDaGlsZHJlbkNhbGxlZEV4cGxpY2l0bHkpOwogICAgICAgICBi
cmVhazsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklULmgJKHJldmlzaW9uIDEwNTAzNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQuaAkod29ya2luZyBjb3B5KQpAQCAtODcyLDEyICs4NzIsMTMgQEAgcHJp
dmF0ZToKICAgICB2b2lkIG5vblNwZWN1bGF0aXZlVmFsdWVUb0ludDMyKE5vZGUmKTsKICAgICB2
b2lkIG5vblNwZWN1bGF0aXZlVUludDMyVG9OdW1iZXIoTm9kZSYpOwogCisgICAgZW51bSBTcGls
bFJlZ2lzdGVyc01vZGUgeyBOZWVkVG9TcGlsbCwgRG9udFNwaWxsIH07CiAjaWYgVVNFKEpTVkFM
VUU2NCkKLSAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWNoZWRHZXRCeUlkKEdQUlJlZyBiYXNlR1BS
LCBHUFJSZWcgcmVzdWx0R1BSLCBHUFJSZWcgc2NyYXRjaEdQUiwgdW5zaWduZWQgaWRlbnRpZmll
ck51bWJlciwgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQgPSBKSVRDb21waWxlcjo6
SnVtcCgpKTsKLSAgICB2b2lkIGNhY2hlZFB1dEJ5SWQoR1BSUmVnIGJhc2UsIEdQUlJlZyB2YWx1
ZSwgTm9kZUluZGV4IHZhbHVlSW5kZXgsIEdQUlJlZyBzY3JhdGNoR1BSLCB1bnNpZ25lZCBpZGVu
dGlmaWVyTnVtYmVyLCBQdXRLaW5kLCBKSVRDb21waWxlcjo6SnVtcCBzbG93UGF0aFRhcmdldCA9
IEpJVENvbXBpbGVyOjpKdW1wKCkpOworICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhY2hlZEdldEJ5
SWQoQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBHUFJSZWcgYmFzZUdQUiwgR1BSUmVnIHJlc3VsdEdQ
UiwgR1BSUmVnIHNjcmF0Y2hHUFIsIHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIsIEpJVENvbXBp
bGVyOjpKdW1wIHNsb3dQYXRoVGFyZ2V0ID0gSklUQ29tcGlsZXI6Okp1bXAoKSwgU3BpbGxSZWdp
c3RlcnNNb2RlID0gTmVlZFRvU3BpbGwpOworICAgIHZvaWQgY2FjaGVkUHV0QnlJZChDb2RlT3Jp
Z2luIGNvZGVPcmlnaW4sIEdQUlJlZyBiYXNlLCBHUFJSZWcgdmFsdWUsIE5vZGVJbmRleCB2YWx1
ZUluZGV4LCBHUFJSZWcgc2NyYXRjaEdQUiwgdW5zaWduZWQgaWRlbnRpZmllck51bWJlciwgUHV0
S2luZCwgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQgPSBKSVRDb21waWxlcjo6SnVt
cCgpKTsKICNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgSklUQ29tcGlsZXI6OkNhbGwgY2Fj
aGVkR2V0QnlJZChHUFJSZWcgYmFzZVRhZ0dQUk9yTm9uZSwgR1BSUmVnIGJhc2VQYXlsb2FkR1BS
LCBHUFJSZWcgcmVzdWx0VGFnR1BSLCBHUFJSZWcgcmVzdWx0UGF5bG9hZEdQUiwgR1BSUmVnIHNj
cmF0Y2hHUFIsIHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIsIEpJVENvbXBpbGVyOjpKdW1wIHNs
b3dQYXRoVGFyZ2V0ID0gSklUQ29tcGlsZXI6Okp1bXAoKSk7Ci0gICAgdm9pZCBjYWNoZWRQdXRC
eUlkKEdQUlJlZyBiYXNlUGF5bG9hZEdQUiwgR1BSUmVnIHZhbHVlVGFnR1BSLCBHUFJSZWcgdmFs
dWVQYXlsb2FkR1BSLCBOb2RlSW5kZXggdmFsdWVJbmRleCwgR1BSUmVnIHNjcmF0Y2hHUFIsIHVu
c2lnbmVkIGlkZW50aWZpZXJOdW1iZXIsIFB1dEtpbmQsIEpJVENvbXBpbGVyOjpKdW1wIHNsb3dQ
YXRoVGFyZ2V0ID0gSklUQ29tcGlsZXI6Okp1bXAoKSk7CisgICAgSklUQ29tcGlsZXI6OkNhbGwg
Y2FjaGVkR2V0QnlJZChDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIEdQUlJlZyBiYXNlVGFnR1BST3JO
b25lLCBHUFJSZWcgYmFzZVBheWxvYWRHUFIsIEdQUlJlZyByZXN1bHRUYWdHUFIsIEdQUlJlZyBy
ZXN1bHRQYXlsb2FkR1BSLCBHUFJSZWcgc2NyYXRjaEdQUiwgdW5zaWduZWQgaWRlbnRpZmllck51
bWJlciwgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQgPSBKSVRDb21waWxlcjo6SnVt
cCgpLCBTcGlsbFJlZ2lzdGVyc01vZGUgPSBOZWVkVG9TcGlsbCk7CisgICAgdm9pZCBjYWNoZWRQ
dXRCeUlkKENvZGVPcmlnaW4gY29kZU9yaWdpbiwgR1BSUmVnIGJhc2VQYXlsb2FkR1BSLCBHUFJS
ZWcgdmFsdWVUYWdHUFIsIEdQUlJlZyB2YWx1ZVBheWxvYWRHUFIsIE5vZGVJbmRleCB2YWx1ZUlu
ZGV4LCBHUFJSZWcgc2NyYXRjaEdQUiwgdW5zaWduZWQgaWRlbnRpZmllck51bWJlciwgUHV0S2lu
ZCwgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQgPSBKSVRDb21waWxlcjo6SnVtcCgp
KTsKICNlbmRpZgogCiAgICAgdm9pZCBub25TcGVjdWxhdGl2ZU5vblBlZXBob2xlQ29tcGFyZU51
bGwoTm9kZUluZGV4IG9wZXJhbmQsIGJvb2wgaW52ZXJ0ID0gZmFsc2UpOwpAQCAtMTM5MSwyNiAr
MTM5MiwxMCBAQCBwcml2YXRlOgogICAgICAgICBtX2ppdC5tb3ZlKEdQUkluZm86OnJldHVyblZh
bHVlR1BSLCByZXN1bHQpOwogICAgICAgICByZXR1cm4gY2FsbDsKICAgICB9Ci0gICAgdm9pZCBz
ZXR1cFJlc3VsdHMoR1BSUmVnIGRlc3RBLCBHUFJSZWcgZGVzdEIpCi0gICAgewotICAgICAgICBH
UFJSZWcgc3JjQSA9IEdQUkluZm86OnJldHVyblZhbHVlR1BSOwotICAgICAgICBHUFJSZWcgc3Jj
QiA9IEdQUkluZm86OnJldHVyblZhbHVlR1BSMjsKLQotICAgICAgICBpZiAoc3JjQiAhPSBkZXN0
QSkgewotICAgICAgICAgICAgLy8gSGFuZGxlIHRoZSBlYXN5IGNhc2VzIC0gdHdvIHNpbXBsZSBt
b3Zlcy4KLSAgICAgICAgICAgIG1faml0Lm1vdmUoc3JjQSwgZGVzdEEpOwotICAgICAgICAgICAg
bV9qaXQubW92ZShzcmNCLCBkZXN0Qik7Ci0gICAgICAgIH0gZWxzZSBpZiAoc3JjQSAhPSBkZXN0
QikgewotICAgICAgICAgICAgLy8gSGFuZGxlIHRoZSBub24tc3dhcCBjYXNlIC0ganVzdCBwdXQg
c3JjQiBpbiBwbGFjZSBmaXJzdC4KLSAgICAgICAgICAgIG1faml0Lm1vdmUoc3JjQiwgZGVzdEIp
OwotICAgICAgICAgICAgbV9qaXQubW92ZShzcmNBLCBkZXN0QSk7Ci0gICAgICAgIH0gZWxzZQot
ICAgICAgICAgICAgbV9qaXQuc3dhcChkZXN0QSwgZGVzdEIpOwotICAgIH0KICAgICBKSVRDb21w
aWxlcjo6Q2FsbCBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrU2V0UmVzdWx0KGNvbnN0IEZ1
bmN0aW9uUHRyJiBmdW5jdGlvbiwgR1BSUmVnIHJlc3VsdDEsIEdQUlJlZyByZXN1bHQyKQogICAg
IHsKICAgICAgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbCA9IGFwcGVuZENhbGxXaXRoRXhjZXB0
aW9uQ2hlY2soZnVuY3Rpb24pOwotICAgICAgICBzZXR1cFJlc3VsdHMocmVzdWx0MSwgcmVzdWx0
Mik7CisgICAgICAgIG1faml0LnNldHVwUmVzdWx0cyhyZXN1bHQxLCByZXN1bHQyKTsKICAgICAg
ICAgcmV0dXJuIGNhbGw7CiAgICAgfQogI2lmIENQVShYODYpCg==
</data>
<flag name="commit-queue"
          id="123425"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122678</attachid>
            <date>2012-01-16 13:43:39 -0800</date>
            <delta_ts>2012-01-17 00:33:25 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>dfggetter_patch_1.diff</filename>
            <type>text/plain</type>
            <size>107142</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTA1MDgyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU3IEBA
CisyMDEyLTAxLTE1ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
REZHIHNob3VsZCBiZSBhYmxlIHRvIGRvIEpTIGFuZCBjdXN0b20gZ2V0dGVyIGNhY2hpbmcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2MzYxCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS8xMDY5ODA2MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIEFkZGVkIHRoZSBhYmlsaXR5IHRvIGNhY2hl
IEpTIGdldHRlciBjYWxscyBhbmQgY3VzdG9tIGdldHRlciBjYWxscyBpbiB0aGUgREZHLgorICAg
ICAgICBNb3N0IG9mIHRoaXMgaXMgcHJldHR5IG11bmRhbmUsIHNpbmNlIHRoZSBvbGQgSklUIHN1
cHBvcnRlZCB0aGlzIGZ1bmN0aW9uYWxpdHkKKyAgICAgICAgYXMgd2VsbC4gQnV0IGEgY291cGxl
IGludGVyZXN0aW5nIHRoaW5ncyBoYWQgdG8gaGFwcGVuOgorICAgICAgICAKKyAgICAgICAgLSBU
aGVyZSBhcmUgbm93IHR3byB2YXJpYW50cyBvZiBHZXRCeUlkOiBHZXRCeUlkLCB3aGljaCB3b3Jr
cyBhcyBiZWZvcmUsIGFuZAorICAgICAgICAgIEdldEJ5SWRGbHVzaCwgd2hpY2ggZmx1c2hlcyBy
ZWdpc3RlcnMgcHJpb3IgdG8gZG9pbmcgdGhlIEdldEJ5SWQuIE9ubHkKKyAgICAgICAgICBHZXRC
eUlkRmx1c2ggY2FuIGJlIHVzZWQgZm9yIGNhY2hpbmcgZ2V0dGVycy4gV2UgZGV0ZWN0IHdoaWNo
IEdldEJ5SWQgc3R5bGUKKyAgICAgICAgICB0byB1c2UgYnkgbG9va2luZyBhdCB0aGUgaW5saW5l
IGNhY2hlcyBvZiB0aGUgb2xkIEpJVC4KKyAgICAgICAgCisgICAgICAgIC0gRXhjZXB0aW9uIGhh
bmRsaW5nIGZvciBnZXR0ZXIgY2FsbHMgcGxhbnRlZCBpbiBzdHVicyB1c2VzIGEgc2VwYXJhdGUg
bG9va3VwCisgICAgICAgICAgaGFuZGxlciByb3V0aW5lLCB3aGljaCB1c2VzIHRoZSBDb2RlT3Jp
Z2luIHN0b3JlZCBpbiB0aGUgU3RydWN0dXJlU3R1YkluZm8uCisKKyAgICAgICAgKiBieXRlY29k
ZS9TdHJ1Y3R1cmVTdHViSW5mby5oOgorICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdFN0YXRlLmNw
cDoKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFjdFN0YXRlOjpleGVjdXRlKToKKyAgICAgICAg
KiBkZmcvREZHQXNzZW1ibHlIZWxwZXJzLmg6CisgICAgICAgIChKU0M6OkRGRzo6QXNzZW1ibHlI
ZWxwZXJzOjplbWl0RXhjZXB0aW9uQ2hlY2spOgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBh
cnNlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OndpbGxOZWVkRmx1
c2gpOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKToKKyAg
ICAgICAgKiBkZmcvREZHQ0NhbGxIZWxwZXJzLmg6CisgICAgICAgIChKU0M6OkRGRzo6Q0NhbGxI
ZWxwZXJzOjpzZXR1cFJlc3VsdHMpOgorICAgICAgICAqIGRmZy9ERkdKSVRDb21waWxlci5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6SklUQ29tcGlsZXI6OmxpbmspOgorICAgICAgICAqIGRmZy9E
RkdKSVRDb21waWxlci5oOgorICAgICAgICAoSlNDOjpERkc6OlByb3BlcnR5QWNjZXNzUmVjb3Jk
OjpQcm9wZXJ0eUFjY2Vzc1JlY29yZCk6CisgICAgICAgIChKU0M6OkRGRzo6SklUQ29tcGlsZXI6
OmFkZEV4Y2VwdGlvbkNoZWNrKToKKyAgICAgICAgKiBkZmcvREZHTm9kZS5oOgorICAgICAgICAo
SlNDOjpERkc6Ok5vZGU6Omhhc0lkZW50aWZpZXIpOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6
Omhhc0hlYXBQcmVkaWN0aW9uKToKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5jcHA6Cisg
ICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuaDoKKyAgICAgICAgKiBkZmcvREZHUHJvcGFnYXRv
ci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6UHJvcGFnYXRvcjo6cHJvcGFnYXRlTm9kZVByZWRp
Y3Rpb25zKToKKyAgICAgICAgKiBkZmcvREZHUmVwYXRjaC5jcHA6CisgICAgICAgIChKU0M6OkRG
Rzo6dHJ5Q2FjaGVHZXRCeUlEKToKKyAgICAgICAgKEpTQzo6REZHOjp0cnlCdWlsZEdldEJ5SURM
aXN0KToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuaDoKKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6YXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVja1NldFJlc3Vs
dCk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwOgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlkKToKKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0
aXZlSklUNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjYWNoZWRH
ZXRCeUlkKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisK
IDIwMTItMDEtMTYgIFplbm8gQWxiaXNzZXIgIDx6ZW5vQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
W1F0XSBGaXggUVRfVkVSU0lPTiByZWxhdGVkIHdhcm5pbmdzIHdoZW4gYnVpbGRpbmcgb24gTWFj
IE9TIFgKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9JbnN0cnVjdGlvbi5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9JbnN0cnVjdGlv
bi5oCShyZXZpc2lvbiAxMDUwODIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
SW5zdHJ1Y3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAtOTksNiArOTksMTAgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gbGlzdFtQT0xZTU9SUEhJQ19MSVNUX0NB
Q0hFX1NJWkVdOwogICAgICAgICAKKyAgICAgICAgUG9seW1vcnBoaWNBY2Nlc3NTdHJ1Y3R1cmVM
aXN0KCkKKyAgICAgICAgeworICAgICAgICB9CisgICAgICAgIAogICAgICAgICBQb2x5bW9ycGhp
Y0FjY2Vzc1N0cnVjdHVyZUxpc3QoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0NlbGwqIG93
bmVyLCBQb2x5bW9ycGhpY0FjY2Vzc1N0cnVjdHVyZUxpc3RTdHViUm91dGluZVR5cGUgc3R1YlJv
dXRpbmUsIFN0cnVjdHVyZSogZmlyc3RCYXNlLCBib29sIGlzRGlyZWN0KQogICAgICAgICB7CiAg
ICAgICAgICAgICBsaXN0WzBdLnNldChnbG9iYWxEYXRhLCBvd25lciwgc3R1YlJvdXRpbmUsIGZp
cnN0QmFzZSwgaXNEaXJlY3QpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L1N0cnVjdHVyZVN0dWJJbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmgJKHJldmlzaW9uIDEwNTA4MikKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoSklUKQogCisjaW5jbHVkZSAiQ29k
ZU9yaWdpbi5oIgogI2luY2x1ZGUgIkluc3RydWN0aW9uLmgiCiAjaW5jbHVkZSAiTWFjcm9Bc3Nl
bWJsZXIuaCIKICNpbmNsdWRlICJPcGNvZGUuaCIKQEAgLTE3NSw2ICsxNzYsOCBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgaW50OF90IHNlZW47CiAgICAgICAgIAogI2lmIEVOQUJMRShERkdf
SklUKQorICAgICAgICBDb2RlT3JpZ2luIGNvZGVPcmlnaW47CisgICAgICAgIGludDhfdCByZWdp
c3RlcnNGbHVzaGVkOwogICAgICAgICBpbnQ4X3QgYmFzZUdQUjsKICNpZiBVU0UoSlNWQUxVRTMy
XzY0KQogICAgICAgICBpbnQ4X3QgdmFsdWVUYWdHUFI7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0Fic3RyYWN0U3RhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RTdGF0ZS5jcHAJKHJldmlzaW9uIDEwNTA4MikKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RTdGF0ZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTY4OCw2ICs2ODgsNyBAQCBib29sIEFic3RyYWN0U3RhdGU6OmV4ZWN1dGUoTm9k
ZUluZGV4IG5vCiAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCiAgICAgY2FzZSBHZXRCeUlk
OgorICAgIGNhc2UgR2V0QnlJZEZsdXNoOgogICAgICAgICBpZiAoIW5vZGUucHJlZGljdGlvbigp
KSB7CiAgICAgICAgICAgICBtX2lzVmFsaWQgPSBmYWxzZTsKICAgICAgICAgICAgIGJyZWFrOwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBc3NlbWJseUhlbHBlcnMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fzc2VtYmx5SGVscGVycy5o
CShyZXZpc2lvbiAxMDUwODIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fzc2Vt
Ymx5SGVscGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNDYsNiArMjQ2LDE2IEBAIHB1YmxpYzoK
ICAgICAgICAgbV9hc3NlbWJsZXIudm1vdihmcHIsIHBheWxvYWRHUFIsIHRhZ0dQUik7CiAgICAg
fQogI2VuZGlmCisgICAgCisgICAgZW51bSBFeGNlcHRpb25DaGVja0tpbmQgeyBOb3JtYWxFeGNl
cHRpb25DaGVjaywgSW52ZXJ0ZWRFeGNlcHRpb25DaGVjayB9OworICAgIEp1bXAgZW1pdEV4Y2Vw
dGlvbkNoZWNrKEV4Y2VwdGlvbkNoZWNrS2luZCBraW5kID0gTm9ybWFsRXhjZXB0aW9uQ2hlY2sp
CisgICAgeworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgIHJldHVybiBicmFuY2hUZXN0UHRy
KGtpbmQgPT0gTm9ybWFsRXhjZXB0aW9uQ2hlY2sgPyBOb25aZXJvIDogWmVybywgQWJzb2x1dGVB
ZGRyZXNzKCZnbG9iYWxEYXRhKCktPmV4Y2VwdGlvbikpOworI2VsaWYgVVNFKEpTVkFMVUUzMl82
NCkKKyAgICAgICAgcmV0dXJuIGJyYW5jaDMyKGtpbmQgPT0gTm9ybWFsRXhjZXB0aW9uQ2hlY2sg
PyBOb3RFcXVhbCA6IEVxdWFsLCBBYnNvbHV0ZUFkZHJlc3MocmVpbnRlcnByZXRfY2FzdDxjaGFy
Kj4oJmdsb2JhbERhdGEoKS0+ZXhjZXB0aW9uKSArIE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1
LmFzQml0cy50YWcpKSwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkVtcHR5VmFsdWVUYWcpKTsKKyNl
bmRpZgorICAgIH0KIAogI2lmIEVOQUJMRShTQU1QTElOR19DT1VOVEVSUykKICAgICBzdGF0aWMg
dm9pZCBlbWl0Q291bnQoTWFjcm9Bc3NlbWJsZXImIGppdCwgQWJzdHJhY3RTYW1wbGluZ0NvdW50
ZXImIGNvdW50ZXIsIGludDMyX3QgaW5jcmVtZW50ID0gMSkKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCShyZXZpc2lvbiAxMDUwODIp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNzE2LDYgKzcxNiwyOSBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICB9CiAgICAgCisgICAgYm9vbCB3aWxsTmVlZEZsdXNoKFN0cnVjdHVyZVN0dWJJ
bmZvJiBzdHViSW5mbykKKyAgICB7CisgICAgICAgIFBvbHltb3JwaGljQWNjZXNzU3RydWN0dXJl
TGlzdCogbGlzdDsKKyAgICAgICAgaW50IGxpc3RTaXplOworICAgICAgICBzd2l0Y2ggKHN0dWJJ
bmZvLmFjY2Vzc1R5cGUpIHsKKyAgICAgICAgY2FzZSBhY2Nlc3NfZ2V0X2J5X2lkX3NlbGZfbGlz
dDoKKyAgICAgICAgICAgIGxpc3QgPSBzdHViSW5mby51LmdldEJ5SWRTZWxmTGlzdC5zdHJ1Y3R1
cmVMaXN0OworICAgICAgICAgICAgbGlzdFNpemUgPSBzdHViSW5mby51LmdldEJ5SWRTZWxmTGlz
dC5saXN0U2l6ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIGFjY2Vzc19nZXRf
YnlfaWRfcHJvdG9fbGlzdDoKKyAgICAgICAgICAgIGxpc3QgPSBzdHViSW5mby51LmdldEJ5SWRQ
cm90b0xpc3Quc3RydWN0dXJlTGlzdDsKKyAgICAgICAgICAgIGxpc3RTaXplID0gc3R1YkluZm8u
dS5nZXRCeUlkUHJvdG9MaXN0Lmxpc3RTaXplOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAg
Zm9yIChpbnQgaSA9IDA7IGkgPCBsaXN0U2l6ZTsgKytpKSB7CisgICAgICAgICAgICBpZiAoIWxp
c3QtPmxpc3RbaV0uaXNEaXJlY3QpCisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
ICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICAKICAgICB2b2lkIGJ1aWxk
T3BlcmFuZE1hcHNJZk5lY2Vzc2FyeSgpOwogICAgIAogICAgIEpTR2xvYmFsRGF0YSogbV9nbG9i
YWxEYXRhOwpAQCAtMTcwNyw3ICsxNzMwLDcgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VC
bG9jayh1bnNpZ25lZAogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIHNldChnZXRJ
bnN0cnVjdGlvblsxXS51Lm9wZXJhbmQsIGNlbGxDb25zdGFudChtZXRob2RDYWxsLmNhY2hlZEZ1
bmN0aW9uLmdldCgpKSk7CiAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICBzZXQo
Z2V0SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCBhZGRUb0dyYXBoKEdldEJ5SWQsIE9wSW5mbyhp
ZGVudGlmaWVyKSwgT3BJbmZvKHByZWRpY3Rpb24pLCBiYXNlKSk7CisgICAgICAgICAgICAgICAg
c2V0KGdldEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCwgYWRkVG9HcmFwaCh3aWxsTmVlZEZsdXNo
KHN0dWJJbmZvKSA/IEdldEJ5SWRGbHVzaCA6IEdldEJ5SWQsIE9wSW5mbyhpZGVudGlmaWVyKSwg
T3BJbmZvKHByZWRpY3Rpb24pLCBiYXNlKSk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIG1f
Y3VycmVudEluZGV4ICs9IE9QQ09ERV9MRU5HVEgob3BfbWV0aG9kX2NoZWNrKSArIE9QQ09ERV9M
RU5HVEgob3BfZ2V0X2J5X2lkKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtMTgxOCw3ICsx
ODQxLDcgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNpZ25lZAogICAgICAg
ICAgICAgICAgIHN0b3JhZ2VBY2Nlc3NEYXRhLmlkZW50aWZpZXJOdW1iZXIgPSBpZGVudGlmaWVy
TnVtYmVyOwogICAgICAgICAgICAgICAgIG1fZ3JhcGgubV9zdG9yYWdlQWNjZXNzRGF0YS5hcHBl
bmQoc3RvcmFnZUFjY2Vzc0RhdGEpOwogICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAg
ICAgc2V0KGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQsIGFkZFRvR3JhcGgoR2V0QnlJ
ZCwgT3BJbmZvKGlkZW50aWZpZXJOdW1iZXIpLCBPcEluZm8ocHJlZGljdGlvbiksIGJhc2UpKTsK
KyAgICAgICAgICAgICAgICBzZXQoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCwgYWRk
VG9HcmFwaCh3aWxsTmVlZEZsdXNoKHN0dWJJbmZvKSA/IEdldEJ5SWRGbHVzaCA6IEdldEJ5SWQs
IE9wSW5mbyhpZGVudGlmaWVyTnVtYmVyKSwgT3BJbmZvKHByZWRpY3Rpb24pLCBiYXNlKSk7CiAK
ICAgICAgICAgICAgIE5FWFRfT1BDT0RFKG9wX2dldF9ieV9pZCk7CiAgICAgICAgIH0KSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ0NhbGxIZWxwZXJzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDQ2FsbEhlbHBlcnMuaAkocmV2aXNpb24g
MTA1MDgyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDQ2FsbEhlbHBlcnMuaAko
d29ya2luZyBjb3B5KQpAQCAtODIsNiArODIsMTMgQEAgcHVibGljOgogICAgICAgICBhZGRDYWxs
QXJndW1lbnQoYXJnMik7CiAgICAgfQogCisgICAgQUxXQVlTX0lOTElORSB2b2lkIHNldHVwQXJn
dW1lbnRzKEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMikKKyAgICB7CisgICAgICAgIHJlc2V0Q2Fs
bEFyZ3VtZW50cygpOworICAgICAgICBhZGRDYWxsQXJndW1lbnQoYXJnMSk7CisgICAgICAgIGFk
ZENhbGxBcmd1bWVudChhcmcyKTsKKyAgICB9CisKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0
dXBBcmd1bWVudHNFeGVjU3RhdGUoKQogICAgIHsKICAgICAgICAgcmVzZXRDYWxsQXJndW1lbnRz
KCk7CkBAIC0xNjEsNiArMTY4LDE1IEBAIHB1YmxpYzoKICAgICAgICAgYWRkQ2FsbEFyZ3VtZW50
KGFyZzMpOwogICAgIH0KIAorICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50c1dp
dGhFeGVjU3RhdGUoR1BSUmVnIGFyZzEsIFRydXN0ZWRJbW1QdHIgYXJnMiwgVHJ1c3RlZEltbVB0
ciBhcmczKQorICAgIHsKKyAgICAgICAgcmVzZXRDYWxsQXJndW1lbnRzKCk7CisgICAgICAgIGFk
ZENhbGxBcmd1bWVudChHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlcik7CisgICAgICAgIGFkZENh
bGxBcmd1bWVudChhcmcxKTsKKyAgICAgICAgYWRkQ2FsbEFyZ3VtZW50KGFyZzIpOworICAgICAg
ICBhZGRDYWxsQXJndW1lbnQoYXJnMyk7CisgICAgfQorCiAgICAgQUxXQVlTX0lOTElORSB2b2lk
IHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIsIEdQ
UlJlZyBhcmczLCBHUFJSZWcgYXJnNCkKICAgICB7CiAgICAgICAgIHJlc2V0Q2FsbEFyZ3VtZW50
cygpOwpAQCAtMzcwLDYgKzM4NiwxMSBAQCBwdWJsaWM6CiAgICAgfQogI2VuZGlmCiAKKyAgICBB
TFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHMoR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcy
KQorICAgIHsKKyAgICAgICAgc2V0dXBUd29TdHViQXJnczxHUFJJbmZvOjphcmd1bWVudEdQUjAs
IEdQUkluZm86OmFyZ3VtZW50R1BSMT4oYXJnMSwgYXJnMik7CisgICAgfQorCiAgICAgQUxXQVlT
X0lOTElORSB2b2lkIHNldHVwQXJndW1lbnRzRXhlY1N0YXRlKCkKICAgICB7CiAgICAgICAgIG1v
dmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CkBA
IC00NDIsNiArNDYzLDE0IEBAIHB1YmxpYzoKICAgICAgICAgbW92ZShHUFJJbmZvOjpjYWxsRnJh
bWVSZWdpc3RlciwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICB9CiAKKyAgICBBTFdBWVNf
SU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEdQUlJlZyBhcmcxLCBUcnVz
dGVkSW1tUHRyIGFyZzIsIFRydXN0ZWRJbW1QdHIgYXJnMykKKyAgICB7CisgICAgICAgIG1vdmUo
YXJnMSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKKyAgICAgICAgbW92ZShhcmcyLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjIpOworICAgICAgICBtb3ZlKGFyZzMsIEdQUkluZm86OmFyZ3VtZW50R1BS
Myk7CisgICAgICAgIG1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OmFy
Z3VtZW50R1BSMCk7CisgICAgfQorCiAgICAgQUxXQVlTX0lOTElORSB2b2lkIHNldHVwQXJndW1l
bnRzV2l0aEV4ZWNTdGF0ZShHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIsIFRydXN0ZWRJbW1QdHIg
YXJnMykKICAgICB7CiAgICAgICAgIHNldHVwU3R1YkFyZ3VtZW50cyhhcmcxLCBhcmcyKTsKQEAg
LTQ5Miw2ICs1MjEsMjMgQEAgcHVibGljOgogICAgICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVj
U3RhdGUoYXJnMSwgYXJnMiwgYXJnMyk7CiAgICAgfQogI2VuZGlmIC8vIE5VTUJFUl9PRl9BUkdV
TUVOVF9SRUdJU1RFUlMgPT0gNAorCisgICAgdm9pZCBzZXR1cFJlc3VsdHMoR1BSUmVnIGRlc3RB
LCBHUFJSZWcgZGVzdEIpCisgICAgeworICAgICAgICBHUFJSZWcgc3JjQSA9IEdQUkluZm86OnJl
dHVyblZhbHVlR1BSOworICAgICAgICBHUFJSZWcgc3JjQiA9IEdQUkluZm86OnJldHVyblZhbHVl
R1BSMjsKKworICAgICAgICBpZiAoc3JjQiAhPSBkZXN0QSkgeworICAgICAgICAgICAgLy8gSGFu
ZGxlIHRoZSBlYXN5IGNhc2VzIC0gdHdvIHNpbXBsZSBtb3Zlcy4KKyAgICAgICAgICAgIG1vdmUo
c3JjQSwgZGVzdEEpOworICAgICAgICAgICAgbW92ZShzcmNCLCBkZXN0Qik7CisgICAgICAgIH0g
ZWxzZSBpZiAoc3JjQSAhPSBkZXN0QikgeworICAgICAgICAgICAgLy8gSGFuZGxlIHRoZSBub24t
c3dhcCBjYXNlIC0ganVzdCBwdXQgc3JjQiBpbiBwbGFjZSBmaXJzdC4KKyAgICAgICAgICAgIG1v
dmUoc3JjQiwgZGVzdEIpOworICAgICAgICAgICAgbW92ZShzcmNBLCBkZXN0QSk7CisgICAgICAg
IH0gZWxzZQorICAgICAgICAgICAgc3dhcChkZXN0QSwgZGVzdEIpOworICAgIH0KIH07CiAKIH0g
fSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHSklUQ29tcGlsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHSklUQ29tcGlsZXIuY3BwCShyZXZpc2lvbiAxMDUwODIpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI4LDYg
KzEyOCw3IEBAIHZvaWQgSklUQ29tcGlsZXI6OmxpbmsoTGlua0J1ZmZlciYgbGlua0IKICAgICAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fZXhjZXB0aW9uQ2hlY2tzLnNpemUoKTsgKytp
KSB7CiAgICAgICAgICAgICB1bnNpZ25lZCByZXR1cm5BZGRyZXNzT2Zmc2V0ID0gbGlua0J1ZmZl
ci5yZXR1cm5BZGRyZXNzT2Zmc2V0KG1fZXhjZXB0aW9uQ2hlY2tzW2ldLm1fY2FsbCk7CiAgICAg
ICAgICAgICBDb2RlT3JpZ2luIGNvZGVPcmlnaW4gPSBtX2V4Y2VwdGlvbkNoZWNrc1tpXS5tX2Nv
ZGVPcmlnaW47CisgICAgICAgICAgICAvLyBGSVhNRTogdGhpcyBpcyBhYnN1cmRseSB3cm9uZy4K
ICAgICAgICAgICAgIHdoaWxlIChjb2RlT3JpZ2luLmlubGluZUNhbGxGcmFtZSkKICAgICAgICAg
ICAgICAgICBjb2RlT3JpZ2luID0gY29kZU9yaWdpbi5pbmxpbmVDYWxsRnJhbWUtPmNhbGxlcjsK
ICAgICAgICAgICAgIHVuc2lnbmVkIGV4Y2VwdGlvbkluZm8gPSBjb2RlT3JpZ2luLmJ5dGVjb2Rl
SW5kZXg7CkBAIC0xNjAsNiArMTYxLDcgQEAgdm9pZCBKSVRDb21waWxlcjo6bGluayhMaW5rQnVm
ZmVyJiBsaW5rQgogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX3Byb3BlcnR5QWNjZXNz
ZXMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgU3RydWN0dXJlU3R1YkluZm8mIGluZm8gPSBtX2Nv
ZGVCbG9jay0+c3RydWN0dXJlU3R1YkluZm8oaSk7CiAgICAgICAgIENvZGVMb2NhdGlvbkNhbGwg
Y2FsbFJldHVybkxvY2F0aW9uID0gbGlua0J1ZmZlci5sb2NhdGlvbk9mKG1fcHJvcGVydHlBY2Nl
c3Nlc1tpXS5tX2Z1bmN0aW9uQ2FsbCk7CisgICAgICAgIGluZm8uY29kZU9yaWdpbiA9IG1fcHJv
cGVydHlBY2Nlc3Nlc1tpXS5tX2NvZGVPcmlnaW47CiAgICAgICAgIGluZm8uY2FsbFJldHVybkxv
Y2F0aW9uID0gY2FsbFJldHVybkxvY2F0aW9uOwogICAgICAgICBpbmZvLmRlbHRhQ2hlY2tJbW1U
b0NhbGwgPSBkaWZmZXJlbmNlQmV0d2VlbkNvZGVQdHIobGlua0J1ZmZlci5sb2NhdGlvbk9mKG1f
cHJvcGVydHlBY2Nlc3Nlc1tpXS5tX2RlbHRhQ2hlY2tJbW1Ub0NhbGwpLCBjYWxsUmV0dXJuTG9j
YXRpb24pOwogICAgICAgICBpbmZvLmRlbHRhQ2FsbFRvU3RydWN0Q2hlY2sgPSBkaWZmZXJlbmNl
QmV0d2VlbkNvZGVQdHIoY2FsbFJldHVybkxvY2F0aW9uLCBsaW5rQnVmZmVyLmxvY2F0aW9uT2Yo
bV9wcm9wZXJ0eUFjY2Vzc2VzW2ldLm1fZGVsdGFDYWxsVG9TdHJ1Y3RDaGVjaykpOwpAQCAtMTc5
LDYgKzE4MSw3IEBAIHZvaWQgSklUQ29tcGlsZXI6OmxpbmsoTGlua0J1ZmZlciYgbGlua0IKICAg
ICAgICAgaW5mby52YWx1ZUdQUiA9IG1fcHJvcGVydHlBY2Nlc3Nlc1tpXS5tX3ZhbHVlR1BSOwog
I2VuZGlmCiAgICAgICAgIGluZm8uc2NyYXRjaEdQUiA9IG1fcHJvcGVydHlBY2Nlc3Nlc1tpXS5t
X3NjcmF0Y2hHUFI7CisgICAgICAgIGluZm8ucmVnaXN0ZXJzRmx1c2hlZCA9IG1fcHJvcGVydHlB
Y2Nlc3Nlc1tpXS5tX3JlZ2lzdGVyTW9kZSA9PSBQcm9wZXJ0eUFjY2Vzc1JlY29yZDo6UmVnaXN0
ZXJzRmx1c2hlZDsKICAgICB9CiAgICAgCiAgICAgbV9jb2RlQmxvY2stPnNldE51bWJlck9mQ2Fs
bExpbmtJbmZvcyhtX2pzQ2FsbHMuc2l6ZSgpKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHSklUQ29tcGlsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0pJVENvbXBpbGVyLmgJKHJldmlzaW9uIDEwNTA4MikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtOTUsMTIg
Kzk1LDE1IEBAIHN0cnVjdCBDYWxsRXhjZXB0aW9uUmVjb3JkIHsKIH07CiAKIHN0cnVjdCBQcm9w
ZXJ0eUFjY2Vzc1JlY29yZCB7CisgICAgZW51bSBSZWdpc3Rlck1vZGUgeyBSZWdpc3RlcnNGbHVz
aGVkLCBSZWdpc3RlcnNJblVzZSB9OworICAgIAogI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgUHJv
cGVydHlBY2Nlc3NSZWNvcmQoTWFjcm9Bc3NlbWJsZXI6OkRhdGFMYWJlbFB0ciBkZWx0YUNoZWNr
SW1tVG9DYWxsLCBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBmdW5jdGlvbkNhbGwsIE1hY3JvQXNzZW1i
bGVyOjpKdW1wIGRlbHRhQ2FsbFRvU3RydWN0Q2hlY2ssIE1hY3JvQXNzZW1ibGVyOjpEYXRhTGFi
ZWxDb21wYWN0IGRlbHRhQ2FsbFRvTG9hZE9yU3RvcmUsIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBk
ZWx0YUNhbGxUb1Nsb3dDYXNlLCBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgZGVsdGFDYWxsVG9Eb25l
LCBpbnQ4X3QgYmFzZUdQUiwgaW50OF90IHZhbHVlR1BSLCBpbnQ4X3Qgc2NyYXRjaEdQUikKKyAg
ICBQcm9wZXJ0eUFjY2Vzc1JlY29yZChDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIE1hY3JvQXNzZW1i
bGVyOjpEYXRhTGFiZWxQdHIgZGVsdGFDaGVja0ltbVRvQ2FsbCwgTWFjcm9Bc3NlbWJsZXI6OkNh
bGwgZnVuY3Rpb25DYWxsLCBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBkZWx0YUNhbGxUb1N0cnVjdENo
ZWNrLCBNYWNyb0Fzc2VtYmxlcjo6RGF0YUxhYmVsQ29tcGFjdCBkZWx0YUNhbGxUb0xvYWRPclN0
b3JlLCBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgZGVsdGFDYWxsVG9TbG93Q2FzZSwgTWFjcm9Bc3Nl
bWJsZXI6OkxhYmVsIGRlbHRhQ2FsbFRvRG9uZSwgaW50OF90IGJhc2VHUFIsIGludDhfdCB2YWx1
ZUdQUiwgaW50OF90IHNjcmF0Y2hHUFIsIFJlZ2lzdGVyTW9kZSByZWdpc3Rlck1vZGUgPSBSZWdp
c3RlcnNJblVzZSkKICNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgUHJvcGVydHlBY2Nlc3NS
ZWNvcmQoTWFjcm9Bc3NlbWJsZXI6OkRhdGFMYWJlbFB0ciBkZWx0YUNoZWNrSW1tVG9DYWxsLCBN
YWNyb0Fzc2VtYmxlcjo6Q2FsbCBmdW5jdGlvbkNhbGwsIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGRl
bHRhQ2FsbFRvU3RydWN0Q2hlY2ssIE1hY3JvQXNzZW1ibGVyOjpEYXRhTGFiZWxDb21wYWN0IGRl
bHRhQ2FsbFRvVGFnTG9hZE9yU3RvcmUsIE1hY3JvQXNzZW1ibGVyOjpEYXRhTGFiZWxDb21wYWN0
IGRlbHRhQ2FsbFRvUGF5bG9hZExvYWRPclN0b3JlLCBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgZGVs
dGFDYWxsVG9TbG93Q2FzZSwgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIGRlbHRhQ2FsbFRvRG9uZSwg
aW50OF90IGJhc2VHUFIsIGludDhfdCB2YWx1ZVRhZ0dQUiwgaW50OF90IHZhbHVlR1BSLCBpbnQ4
X3Qgc2NyYXRjaEdQUikKKyAgICBQcm9wZXJ0eUFjY2Vzc1JlY29yZChDb2RlT3JpZ2luIGNvZGVP
cmlnaW4sIE1hY3JvQXNzZW1ibGVyOjpEYXRhTGFiZWxQdHIgZGVsdGFDaGVja0ltbVRvQ2FsbCwg
TWFjcm9Bc3NlbWJsZXI6OkNhbGwgZnVuY3Rpb25DYWxsLCBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBk
ZWx0YUNhbGxUb1N0cnVjdENoZWNrLCBNYWNyb0Fzc2VtYmxlcjo6RGF0YUxhYmVsQ29tcGFjdCBk
ZWx0YUNhbGxUb1RhZ0xvYWRPclN0b3JlLCBNYWNyb0Fzc2VtYmxlcjo6RGF0YUxhYmVsQ29tcGFj
dCBkZWx0YUNhbGxUb1BheWxvYWRMb2FkT3JTdG9yZSwgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIGRl
bHRhQ2FsbFRvU2xvd0Nhc2UsIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBkZWx0YUNhbGxUb0RvbmUs
IGludDhfdCBiYXNlR1BSLCBpbnQ4X3QgdmFsdWVUYWdHUFIsIGludDhfdCB2YWx1ZUdQUiwgaW50
OF90IHNjcmF0Y2hHUFIsIFJlZ2lzdGVyTW9kZSByZWdpc3Rlck1vZGUgPSBSZWdpc3RlcnNJblVz
ZSkKICNlbmRpZgotICAgICAgICA6IG1fZGVsdGFDaGVja0ltbVRvQ2FsbChkZWx0YUNoZWNrSW1t
VG9DYWxsKQorICAgICAgICA6IG1fY29kZU9yaWdpbihjb2RlT3JpZ2luKQorICAgICAgICAsIG1f
ZGVsdGFDaGVja0ltbVRvQ2FsbChkZWx0YUNoZWNrSW1tVG9DYWxsKQogICAgICAgICAsIG1fZnVu
Y3Rpb25DYWxsKGZ1bmN0aW9uQ2FsbCkKICAgICAgICAgLCBtX2RlbHRhQ2FsbFRvU3RydWN0Q2hl
Y2soZGVsdGFDYWxsVG9TdHJ1Y3RDaGVjaykKICNpZiBVU0UoSlNWQUxVRTY0KQpAQCAtMTE3LDkg
KzEyMCwxMSBAQCBzdHJ1Y3QgUHJvcGVydHlBY2Nlc3NSZWNvcmQgewogI2VuZGlmCiAgICAgICAg
ICwgbV92YWx1ZUdQUih2YWx1ZUdQUikKICAgICAgICAgLCBtX3NjcmF0Y2hHUFIoc2NyYXRjaEdQ
UikKKyAgICAgICAgLCBtX3JlZ2lzdGVyTW9kZShyZWdpc3Rlck1vZGUpCiAgICAgewogICAgIH0K
IAorICAgIENvZGVPcmlnaW4gbV9jb2RlT3JpZ2luOwogICAgIE1hY3JvQXNzZW1ibGVyOjpEYXRh
TGFiZWxQdHIgbV9kZWx0YUNoZWNrSW1tVG9DYWxsOwogICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxs
IG1fZnVuY3Rpb25DYWxsOwogICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIG1fZGVsdGFDYWxsVG9T
dHJ1Y3RDaGVjazsKQEAgLTEzNyw2ICsxNDIsNyBAQCBzdHJ1Y3QgUHJvcGVydHlBY2Nlc3NSZWNv
cmQgewogI2VuZGlmCiAgICAgaW50OF90IG1fdmFsdWVHUFI7CiAgICAgaW50OF90IG1fc2NyYXRj
aEdQUjsKKyAgICBSZWdpc3Rlck1vZGUgbV9yZWdpc3Rlck1vZGU7CiB9OwogCiAvLyA9PT0gSklU
Q29tcGlsZXIgPT09CkBAIC0xNzksMTIgKzE4NSw3IEBAIHB1YmxpYzoKICAgICBDYWxsIGFkZEV4
Y2VwdGlvbkNoZWNrKENhbGwgZnVuY3Rpb25DYWxsLCBDb2RlT3JpZ2luIGNvZGVPcmlnaW4pCiAg
ICAgewogICAgICAgICBtb3ZlKFRydXN0ZWRJbW0zMihtX2V4Y2VwdGlvbkNoZWNrcy5zaXplKCkp
LCBHUFJJbmZvOjpub25QcmVzZXJ2ZWROb25SZXR1cm5HUFIpOwotI2lmIFVTRShKU1ZBTFVFNjQp
Ci0gICAgICAgIEp1bXAgZXhjZXB0aW9uQ2hlY2sgPSBicmFuY2hUZXN0UHRyKE5vblplcm8sIEFi
c29sdXRlQWRkcmVzcygmZ2xvYmFsRGF0YSgpLT5leGNlcHRpb24pKTsKLSNlbGlmIFVTRShKU1ZB
TFVFMzJfNjQpCi0gICAgICAgIEp1bXAgZXhjZXB0aW9uQ2hlY2sgPSBicmFuY2gzMihOb3RFcXVh
bCwgQWJzb2x1dGVBZGRyZXNzKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KCZnbG9iYWxEYXRhKCkt
PmV4Y2VwdGlvbikgKyBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0JpdHMudGFnKSksIFRy
dXN0ZWRJbW0zMihKU1ZhbHVlOjpFbXB0eVZhbHVlVGFnKSk7Ci0jZW5kaWYKLSAgICAgICAgbV9l
eGNlcHRpb25DaGVja3MuYXBwZW5kKENhbGxFeGNlcHRpb25SZWNvcmQoZnVuY3Rpb25DYWxsLCBl
eGNlcHRpb25DaGVjaywgY29kZU9yaWdpbikpOworICAgICAgICBtX2V4Y2VwdGlvbkNoZWNrcy5h
cHBlbmQoQ2FsbEV4Y2VwdGlvblJlY29yZChmdW5jdGlvbkNhbGwsIGVtaXRFeGNlcHRpb25DaGVj
aygpLCBjb2RlT3JpZ2luKSk7CiAgICAgICAgIHJldHVybiBmdW5jdGlvbkNhbGw7CiAgICAgfQog
ICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgJKHJldmlzaW9uIDEwNTA4
MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yMjksNiArMjI5LDcgQEAgc3RhdGljIGlubGluZSBjb25zdCBjaGFyKiBhcml0aE5vZGVG
bGFncwogICAgIG1hY3JvKFB1dEJ5VmFsLCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZUNsb2JiZXJz
V29ybGQpIFwKICAgICBtYWNybyhQdXRCeVZhbEFsaWFzLCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9k
ZUNsb2JiZXJzV29ybGQpIFwKICAgICBtYWNybyhHZXRCeUlkLCBOb2RlUmVzdWx0SlMgfCBOb2Rl
TXVzdEdlbmVyYXRlIHwgTm9kZUNsb2JiZXJzV29ybGQpIFwKKyAgICBtYWNybyhHZXRCeUlkRmx1
c2gsIE5vZGVSZXN1bHRKUyB8IE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlQ2xvYmJlcnNXb3JsZCkg
XAogICAgIG1hY3JvKFB1dEJ5SWQsIE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlQ2xvYmJlcnNXb3Js
ZCkgXAogICAgIG1hY3JvKFB1dEJ5SWREaXJlY3QsIE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlQ2xv
YmJlcnNXb3JsZCkgXAogICAgIG1hY3JvKENoZWNrU3RydWN0dXJlLCBOb2RlTXVzdEdlbmVyYXRl
KSBcCkBAIC01MDIsNiArNTAzLDcgQEAgc3RydWN0IE5vZGUgewogICAgIHsKICAgICAgICAgc3dp
dGNoIChvcCkgewogICAgICAgICBjYXNlIEdldEJ5SWQ6CisgICAgICAgIGNhc2UgR2V0QnlJZEZs
dXNoOgogICAgICAgICBjYXNlIFB1dEJ5SWQ6CiAgICAgICAgIGNhc2UgUHV0QnlJZERpcmVjdDoK
ICAgICAgICAgY2FzZSBSZXNvbHZlOgpAQCAtNzE4LDYgKzcyMCw3IEBAIHN0cnVjdCBOb2RlIHsK
ICAgICB7CiAgICAgICAgIHN3aXRjaCAob3ApIHsKICAgICAgICAgY2FzZSBHZXRCeUlkOgorICAg
ICAgICBjYXNlIEdldEJ5SWRGbHVzaDoKICAgICAgICAgY2FzZSBHZXRCeVZhbDoKICAgICAgICAg
Y2FzZSBDYWxsOgogICAgICAgICBjYXNlIENvbnN0cnVjdDoKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAkocmV2aXNpb24gMTA1MDgyKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkRGR09T
UkV4aXQuaCIKICNpbmNsdWRlICJERkdSZXBhdGNoLmgiCisjaW5jbHVkZSAiR2V0dGVyU2V0dGVy
LmgiCiAjaW5jbHVkZSAiSW5saW5lQVNNLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKICNp
bmNsdWRlICJKU0J5dGVBcnJheS5oIgpAQCAtMzc4LDYgKzM3OSwyMiBAQCBFbmNvZGVkSlNWYWx1
ZSBERkdfT1BFUkFUSU9OIG9wZXJhdGlvbkdlCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShy
ZXN1bHQpOwogfQogCitFbmNvZGVkSlNWYWx1ZSBERkdfT1BFUkFUSU9OIG9wZXJhdGlvbkNhbGxD
dXN0b21HZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU0NlbGwqIGJhc2UsIFByb3BlcnR5U2xvdDo6
R2V0VmFsdWVGdW5jIGZ1bmN0aW9uLCBJZGVudGlmaWVyKiBpZGVudCkKK3sKKyAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGZ1bmN0aW9uKGV4ZWMsIGFzT2JqZWN0KGJhc2UpLCAqaWRlbnQpKTsK
K30KKworRW5jb2RlZEpTVmFsdWUgREZHX09QRVJBVElPTiBvcGVyYXRpb25DYWxsR2V0dGVyKEV4
ZWNTdGF0ZSogZXhlYywgSlNDZWxsKiBiYXNlLCBKU0NlbGwqIHZhbHVlKQoreworICAgIEdldHRl
clNldHRlciogZ2V0dGVyU2V0dGVyID0gYXNHZXR0ZXJTZXR0ZXIodmFsdWUpOworICAgIEpTT2Jq
ZWN0KiBnZXR0ZXIgPSBnZXR0ZXJTZXR0ZXItPmdldHRlcigpOworICAgIGlmICghZ2V0dGVyKQor
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgIENhbGxE
YXRhIGNhbGxEYXRhOworICAgIENhbGxUeXBlIGNhbGxUeXBlID0gZ2V0dGVyLT5tZXRob2RUYWJs
ZSgpLT5nZXRDYWxsRGF0YShnZXR0ZXIsIGNhbGxEYXRhKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGNhbGwoZXhlYywgZ2V0dGVyLCBjYWxsVHlwZSwgY2FsbERhdGEsIGFzT2JqZWN0KGJh
c2UpLCBBcmdMaXN0KCkpKTsKK30KKwogdm9pZCBERkdfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5
VmFsU3RyaWN0KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQogewogICAgIG9wZXJhdGlvblB1dEJ5VmFsSW50ZXJuYWw8dHJ1ZT4oZXhlYywgZW5jb2RlZEJh
c2UsIGVuY29kZWRQcm9wZXJ0eSwgZW5jb2RlZFZhbHVlKTsKQEAgLTgwOCw2ICs4MjUsMjIgQEAg
REZHSGFuZGxlckVuY29kZWQgREZHX09QRVJBVElPTiBsb29rdXBFeAogICAgIHJldHVybiBkZmdI
YW5kbGVyRW5jb2RlZChleGVjLCBjYXRjaFJvdXRpbmUpOwogfQogCitERkdIYW5kbGVyRW5jb2Rl
ZCBERkdfT1BFUkFUSU9OIGxvb2t1cEV4Y2VwdGlvbkhhbmRsZXJJblN0dWIoRXhlY1N0YXRlKiBl
eGVjLCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8pCit7CisgICAgSlNWYWx1ZSBleGNlcHRp
b25WYWx1ZSA9IGV4ZWMtPmV4Y2VwdGlvbigpOworICAgIEFTU0VSVChleGNlcHRpb25WYWx1ZSk7
CisgICAgCisgICAgQ29kZU9yaWdpbiBjb2RlT3JpZ2luID0gc3R1YkluZm8tPmNvZGVPcmlnaW47
CisgICAgd2hpbGUgKGNvZGVPcmlnaW4uaW5saW5lQ2FsbEZyYW1lKQorICAgICAgICBjb2RlT3Jp
Z2luID0gY29kZU9yaWdpbi5pbmxpbmVDYWxsRnJhbWUtPmNhbGxlcjsKKworICAgIEhhbmRsZXJJ
bmZvKiBoYW5kbGVyID0gZXhlYy0+Z2xvYmFsRGF0YSgpLmludGVycHJldGVyLT50aHJvd0V4Y2Vw
dGlvbihleGVjLCBleGNlcHRpb25WYWx1ZSwgY29kZU9yaWdpbi5ieXRlY29kZUluZGV4KTsKKwor
ICAgIHZvaWQqIGNhdGNoUm91dGluZSA9IGhhbmRsZXIgPyBoYW5kbGVyLT5uYXRpdmVDb2RlLmV4
ZWN1dGFibGVBZGRyZXNzKCkgOiAodm9pZCopY3RpT3BUaHJvd05vdENhdWdodDsKKyAgICBBU1NF
UlQoY2F0Y2hSb3V0aW5lKTsKKyAgICByZXR1cm4gZGZnSGFuZGxlckVuY29kZWQoZXhlYywgY2F0
Y2hSb3V0aW5lKTsKK30KKwogZG91YmxlIERGR19PUEVSQVRJT04gZGZnQ29udmVydEpTVmFsdWVU
b051bWJlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHZhbHVlKQogewogICAgIHJl
dHVybiBKU1ZhbHVlOjpkZWNvZGUodmFsdWUpLnRvTnVtYmVyKGV4ZWMpOwpAQCAtODMwLDcgKzg2
Myw3IEBAIHZvaWQgREZHX09QRVJBVElPTiBkZWJ1Z09wZXJhdGlvblByaW50U3AKICAgICBTcGVj
dWxhdGlvbkZhaWx1cmVEZWJ1Z0luZm8qIGRlYnVnSW5mbyA9IHN0YXRpY19jYXN0PFNwZWN1bGF0
aW9uRmFpbHVyZURlYnVnSW5mbyo+KGRlYnVnSW5mb1Jhdyk7CiAgICAgQ29kZUJsb2NrKiBjb2Rl
QmxvY2sgPSBkZWJ1Z0luZm8tPmNvZGVCbG9jazsKICAgICBDb2RlQmxvY2sqIGFsdGVybmF0aXZl
ID0gY29kZUJsb2NrLT5hbHRlcm5hdGl2ZSgpOwotICAgIHByaW50ZigiU3BlY3VsYXRpb24gZmFp
bHVyZSBpbiAlcCBhdCBAJXUgd2l0aCBleGVjdXRlQ291bnRlciA9ICVkLCByZW9wdGltaXphdGlv
blJldHJ5Q291bnRlciA9ICV1LCBvcHRpbWl6YXRpb25EZWxheUNvdW50ZXIgPSAldSwgc3VjY2Vz
cy9mYWlsICV1LyV1XG4iLCBjb2RlQmxvY2ssIGRlYnVnSW5mby0+bm9kZUluZGV4LCBhbHRlcm5h
dGl2ZSA/IGFsdGVybmF0aXZlLT5leGVjdXRlQ291bnRlcigpIDogMCwgYWx0ZXJuYXRpdmUgPyBh
bHRlcm5hdGl2ZS0+cmVvcHRpbWl6YXRpb25SZXRyeUNvdW50ZXIoKSA6IDAsIGFsdGVybmF0aXZl
ID8gYWx0ZXJuYXRpdmUtPm9wdGltaXphdGlvbkRlbGF5Q291bnRlcigpIDogMCwgY29kZUJsb2Nr
LT5zcGVjdWxhdGl2ZVN1Y2Nlc3NDb3VudGVyKCksIGNvZGVCbG9jay0+c3BlY3VsYXRpdmVGYWls
Q291bnRlcigpKTsKKyAgICBwcmludGYoIlNwZWN1bGF0aW9uIGZhaWx1cmUgaW4gJXAgYXQgQCV1
IHdpdGggZXhlY3V0ZUNvdW50ZXIgPSAlZCwgcmVvcHRpbWl6YXRpb25SZXRyeUNvdW50ZXIgPSAl
dSwgb3B0aW1pemF0aW9uRGVsYXlDb3VudGVyID0gJXUsIHN1Y2Nlc3MvZmFpbCAldS8ldVxuIiwg
Y29kZUJsb2NrLCBkZWJ1Z0luZm8tPm5vZGVJbmRleCwgYWx0ZXJuYXRpdmUgPyBhbHRlcm5hdGl2
ZS0+aml0RXhlY3V0ZUNvdW50ZXIoKSA6IDAsIGFsdGVybmF0aXZlID8gYWx0ZXJuYXRpdmUtPnJl
b3B0aW1pemF0aW9uUmV0cnlDb3VudGVyKCkgOiAwLCBhbHRlcm5hdGl2ZSA/IGFsdGVybmF0aXZl
LT5vcHRpbWl6YXRpb25EZWxheUNvdW50ZXIoKSA6IDAsIGNvZGVCbG9jay0+c3BlY3VsYXRpdmVT
dWNjZXNzQ291bnRlcigpLCBjb2RlQmxvY2stPnNwZWN1bGF0aXZlRmFpbENvdW50ZXIoKSk7CiB9
CiAjZW5kaWYKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25z
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25z
LmgJKHJldmlzaW9uIDEwNTA4MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3Bl
cmF0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDQsNyArMTA0LDggQEAgRW5jb2RlZEpTVmFs
dWUgREZHX09QRVJBVElPTiBvcGVyYXRpb25HZQogRW5jb2RlZEpTVmFsdWUgREZHX09QRVJBVElP
TiBvcGVyYXRpb25HZXRCeUlkQnVpbGRMaXN0KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBJ
ZGVudGlmaWVyKik7CiBFbmNvZGVkSlNWYWx1ZSBERkdfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5
SWRQcm90b0J1aWxkTGlzdChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgSWRlbnRpZmllciop
OwogRW5jb2RlZEpTVmFsdWUgREZHX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeUlkT3B0aW1pemUo
RXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIElkZW50aWZpZXIqKTsKLUVuY29kZWRKU1ZhbHVl
IERGR19PUEVSQVRJT04gb3BlcmF0aW9uR2V0TWV0aG9kT3B0aW1pemUoRXhlY1N0YXRlKiwgRW5j
b2RlZEpTVmFsdWUsIElkZW50aWZpZXIqKTsKK0VuY29kZWRKU1ZhbHVlIERGR19PUEVSQVRJT04g
b3BlcmF0aW9uQ2FsbEN1c3RvbUdldHRlcihFeGVjU3RhdGUqLCBKU0NlbGwqLCBQcm9wZXJ0eVNs
b3Q6OkdldFZhbHVlRnVuYywgSWRlbnRpZmllciopOworRW5jb2RlZEpTVmFsdWUgREZHX09QRVJB
VElPTiBvcGVyYXRpb25DYWxsR2V0dGVyKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIEpTQ2VsbCopOwog
RW5jb2RlZEpTVmFsdWUgREZHX09QRVJBVElPTiBvcGVyYXRpb25SZXNvbHZlKEV4ZWNTdGF0ZSos
IElkZW50aWZpZXIqKTsKIEVuY29kZWRKU1ZhbHVlIERGR19PUEVSQVRJT04gb3BlcmF0aW9uUmVz
b2x2ZUJhc2UoRXhlY1N0YXRlKiwgSWRlbnRpZmllciopOwogRW5jb2RlZEpTVmFsdWUgREZHX09Q
RVJBVElPTiBvcGVyYXRpb25SZXNvbHZlQmFzZVN0cmljdFB1dChFeGVjU3RhdGUqLCBJZGVudGlm
aWVyKik7CkBAIC0xODEsNiArMTgyLDcgQEAgaW5saW5lIERGR0hhbmRsZXJFbmNvZGVkIGRmZ0hh
bmRsZXJFbmNvZAogfQogI2VuZGlmCiBERkdIYW5kbGVyRW5jb2RlZCBERkdfT1BFUkFUSU9OIGxv
b2t1cEV4Y2VwdGlvbkhhbmRsZXIoRXhlY1N0YXRlKiwgdWludDMyX3QpOworREZHSGFuZGxlckVu
Y29kZWQgREZHX09QRVJBVElPTiBsb29rdXBFeGNlcHRpb25IYW5kbGVySW5TdHViKEV4ZWNTdGF0
ZSosIFN0cnVjdHVyZVN0dWJJbmZvKik7CiAKIC8vIFRoZXNlIG9wZXJhdGlvbnMgaW1wbGVtZW50
IHRoZSBpbXBsaWNpdGx5IGNhbGxlZCBUb0ludDMyLCBUb051bWJlciwgYW5kIFRvQm9vbGVhbiBj
b252ZXJzaW9ucyBmcm9tIEVTNS4KIGRvdWJsZSBERkdfT1BFUkFUSU9OIGRmZ0NvbnZlcnRKU1Zh
bHVlVG9OdW1iZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUpOwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdQcm9wYWdhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1Byb3BhZ2F0b3IuY3BwCShyZXZpc2lvbiAxMDUwODIpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Byb3BhZ2F0b3IuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00NjQsNiArNDY0LDExIEBAIHByaXZhdGU6CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQogICAgICAgICAgICAgCisgICAgICAgIGNhc2UgR2V0QnlJZEZsdXNoOgorICAgICAg
ICAgICAgaWYgKG5vZGUuZ2V0SGVhcFByZWRpY3Rpb24oKSkKKyAgICAgICAgICAgICAgICBjaGFu
Z2VkIHw9IG1lcmdlUHJlZGljdGlvbihub2RlLmdldEhlYXBQcmVkaWN0aW9uKCkpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAKICAgICAgICAgY2FzZSBHZXRCeVZhbDogewogICAg
ICAgICAgICAgaWYgKG1fZ3JhcGhbbm9kZS5jaGlsZDEoKV0uc2hvdWxkU3BlY3VsYXRlVWludDMy
QXJyYXkoKSB8fCBtX2dyYXBoW25vZGUuY2hpbGQxKCldLnNob3VsZFNwZWN1bGF0ZUZsb2F0MzJB
cnJheSgpIHx8IG1fZ3JhcGhbbm9kZS5jaGlsZDEoKV0uc2hvdWxkU3BlY3VsYXRlRmxvYXQ2NEFy
cmF5KCkpCiAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oUHJlZGlj
dERvdWJsZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1JlcGF0Y2guY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUmVwYXRjaC5jcHAJ
KHJldmlzaW9uIDEwNTA4MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUmVwYXRj
aC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShERkdf
SklUKQogCisjaW5jbHVkZSAiREZHQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiREZHU3BlY3Vs
YXRpdmVKSVQuaCIKICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAjaW5jbHVkZSAiT3BlcmF0aW9u
cy5oIgpAQCAtMjI3LDggKzIyOCwxMCBAQCBzdGF0aWMgYm9vbCB0cnlDYWNoZUdldEJ5SUQoRXhl
Y1N0YXRlKiBlCiAKICAgICAvLyBPcHRpbWl6ZSBzZWxmIGFjY2Vzcy4KICAgICBpZiAoc2xvdC5z
bG90QmFzZSgpID09IGJhc2VWYWx1ZSkgewotICAgICAgICBpZiAoKHNsb3QuY2FjaGVkUHJvcGVy
dHlUeXBlKCkgIT0gUHJvcGVydHlTbG90OjpWYWx1ZSkgfHwgKChzbG90LmNhY2hlZE9mZnNldCgp
ICogc2l6ZW9mKEpTVmFsdWUpKSA+ICh1bnNpZ25lZClNYWNyb0Fzc2VtYmxlcjo6TWF4aW11bUNv
bXBhY3RQdHJBbGlnbmVkQWRkcmVzc09mZnNldCkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgIGlmICgoc2xvdC5jYWNoZWRQcm9wZXJ0eVR5cGUoKSAhPSBQcm9wZXJ0eVNsb3Q6
OlZhbHVlKSB8fCAoKHNsb3QuY2FjaGVkT2Zmc2V0KCkgKiBzaXplb2YoSlNWYWx1ZSkpID4gKHVu
c2lnbmVkKU1hY3JvQXNzZW1ibGVyOjpNYXhpbXVtQ29tcGFjdFB0ckFsaWduZWRBZGRyZXNzT2Zm
c2V0KSkgeworICAgICAgICAgICAgZGZnUmVwYXRjaENhbGwoY29kZUJsb2NrLCBzdHViSW5mby5j
YWxsUmV0dXJuTG9jYXRpb24sIG9wZXJhdGlvbkdldEJ5SWRCdWlsZExpc3QpOworICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KIAogICAgICAgICBkZmdSZXBhdGNoQnlJZFNlbGZB
Y2Nlc3MoY29kZUJsb2NrLCBzdHViSW5mbywgc3RydWN0dXJlLCBzbG90LmNhY2hlZE9mZnNldCgp
LCBvcGVyYXRpb25HZXRCeUlkQnVpbGRMaXN0LCB0cnVlKTsKICAgICAgICAgc3R1YkluZm8uaW5p
dEdldEJ5SWRTZWxmKCpnbG9iYWxEYXRhLCBjb2RlQmxvY2stPm93bmVyRXhlY3V0YWJsZSgpLCBz
dHJ1Y3R1cmUpOwpAQCAtMjY4LDE2ICsyNzEsMjAgQEAgdm9pZCBkZmdSZXBhdGNoR2V0QnlJRChF
eGVjU3RhdGUqIGV4ZWMsIAogICAgICAgICBkZmdSZXBhdGNoQ2FsbChleGVjLT5jb2RlQmxvY2so
KSwgc3R1YkluZm8uY2FsbFJldHVybkxvY2F0aW9uLCBvcGVyYXRpb25HZXRCeUlkKTsKIH0KIAot
c3RhdGljIGJvb2wgdHJ5QnVpbGRHZXRCeUlETGlzdChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUg
YmFzZVZhbHVlLCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3QgUHJvcGVydHlTbG90JiBzbG90LCBT
dHJ1Y3R1cmVTdHViSW5mbyYgc3R1YkluZm8pCitzdGF0aWMgYm9vbCB0cnlCdWlsZEdldEJ5SURM
aXN0KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBiYXNlVmFsdWUsIGNvbnN0IElkZW50aWZpZXIm
IGlkZW50LCBjb25zdCBQcm9wZXJ0eVNsb3QmIHNsb3QsIFN0cnVjdHVyZVN0dWJJbmZvJiBzdHVi
SW5mbykKIHsKICAgICBpZiAoIWJhc2VWYWx1ZS5pc0NlbGwoKQogICAgICAgICB8fCAhc2xvdC5p
c0NhY2hlYWJsZSgpCiAgICAgICAgIHx8IGJhc2VWYWx1ZS5hc0NlbGwoKS0+c3RydWN0dXJlKCkt
PmlzVW5jYWNoZWFibGVEaWN0aW9uYXJ5KCkKLSAgICAgICAgfHwgc2xvdC5zbG90QmFzZSgpICE9
IGJhc2VWYWx1ZQotICAgICAgICB8fCBzbG90LmNhY2hlZFByb3BlcnR5VHlwZSgpICE9IFByb3Bl
cnR5U2xvdDo6VmFsdWUKLSAgICAgICAgfHwgKHNsb3QuY2FjaGVkT2Zmc2V0KCkgKiBzaXplb2Yo
SlNWYWx1ZSkpID4gKHVuc2lnbmVkKU1hY3JvQXNzZW1ibGVyOjpNYXhpbXVtQ29tcGFjdFB0ckFs
aWduZWRBZGRyZXNzT2Zmc2V0KQorICAgICAgICB8fCBzbG90LnNsb3RCYXNlKCkgIT0gYmFzZVZh
bHVlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgCisgICAgaWYgKCFzdHViSW5mby5yZWdp
c3RlcnNGbHVzaGVkKSB7CisgICAgICAgIC8vIE5lZWQgZXh0cmEgY2hlY2tzLgorICAgICAgICBp
ZiAoc2xvdC5jYWNoZWRQcm9wZXJ0eVR5cGUoKSAhPSBQcm9wZXJ0eVNsb3Q6OlZhbHVlKQorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICAKICAgICBDb2RlQmxvY2sqIGNvZGVC
bG9jayA9IGV4ZWMtPmNvZGVCbG9jaygpOwogICAgIEpTQ2VsbCogYmFzZUNlbGwgPSBiYXNlVmFs
dWUuYXNDZWxsKCk7CiAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBiYXNlQ2VsbC0+c3RydWN0
dXJlKCk7CkBAIC0yODYsMTIgKzI5MywxOCBAQCBzdGF0aWMgYm9vbCB0cnlCdWlsZEdldEJ5SURM
aXN0KEV4ZWNTdGF0CiAgICAgQVNTRVJUKHNsb3Quc2xvdEJhc2UoKS5pc09iamVjdCgpKTsKICAg
ICAKICAgICBQb2x5bW9ycGhpY0FjY2Vzc1N0cnVjdHVyZUxpc3QqIHBvbHltb3JwaGljU3RydWN0
dXJlTGlzdDsKLSAgICBpbnQgbGlzdEluZGV4ID0gMTsKKyAgICBpbnQgbGlzdEluZGV4OwogICAg
IAotICAgIGlmIChzdHViSW5mby5hY2Nlc3NUeXBlID09IGFjY2Vzc19nZXRfYnlfaWRfc2VsZikg
eworICAgIGlmIChzdHViSW5mby5hY2Nlc3NUeXBlID09IGFjY2Vzc191bnNldCkgeworICAgICAg
ICBBU1NFUlQoIXN0dWJJbmZvLnN0dWJSb3V0aW5lKTsKKyAgICAgICAgcG9seW1vcnBoaWNTdHJ1
Y3R1cmVMaXN0ID0gbmV3IFBvbHltb3JwaGljQWNjZXNzU3RydWN0dXJlTGlzdCgpOworICAgICAg
ICBzdHViSW5mby5pbml0R2V0QnlJZFNlbGZMaXN0KHBvbHltb3JwaGljU3RydWN0dXJlTGlzdCwg
MCk7CisgICAgICAgIGxpc3RJbmRleCA9IDA7CisgICAgfSBlbHNlIGlmIChzdHViSW5mby5hY2Nl
c3NUeXBlID09IGFjY2Vzc19nZXRfYnlfaWRfc2VsZikgewogICAgICAgICBBU1NFUlQoIXN0dWJJ
bmZvLnN0dWJSb3V0aW5lKTsKICAgICAgICAgcG9seW1vcnBoaWNTdHJ1Y3R1cmVMaXN0ID0gbmV3
IFBvbHltb3JwaGljQWNjZXNzU3RydWN0dXJlTGlzdCgqZ2xvYmFsRGF0YSwgY29kZUJsb2NrLT5v
d25lckV4ZWN1dGFibGUoKSwgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVTZWxmTWFuYWdl
ZENvZGVSZWYoc3R1YkluZm8uY2FsbFJldHVybkxvY2F0aW9uLmxhYmVsQXRPZmZzZXQoc3R1Yklu
Zm8uZGVsdGFDYWxsVG9TbG93Q2FzZSkpLCBzdHViSW5mby51LmdldEJ5SWRTZWxmLmJhc2VPYmpl
Y3RTdHJ1Y3R1cmUuZ2V0KCksIHRydWUpOwogICAgICAgICBzdHViSW5mby5pbml0R2V0QnlJZFNl
bGZMaXN0KHBvbHltb3JwaGljU3RydWN0dXJlTGlzdCwgMSk7CisgICAgICAgIGxpc3RJbmRleCA9
IDE7CiAgICAgfSBlbHNlIHsKICAgICAgICAgcG9seW1vcnBoaWNTdHJ1Y3R1cmVMaXN0ID0gc3R1
YkluZm8udS5nZXRCeUlkU2VsZkxpc3Quc3RydWN0dXJlTGlzdDsKICAgICAgICAgbGlzdEluZGV4
ID0gc3R1YkluZm8udS5nZXRCeUlkU2VsZkxpc3QubGlzdFNpemU7CkBAIC0zMDUsMzIgKzMxOCw4
NSBAQCBzdGF0aWMgYm9vbCB0cnlCdWlsZEdldEJ5SURMaXN0KEV4ZWNTdGF0CiAgICAgICAgIEdQ
UlJlZyByZXN1bHRUYWdHUFIgPSBzdGF0aWNfY2FzdDxHUFJSZWc+KHN0dWJJbmZvLnZhbHVlVGFn
R1BSKTsKICNlbmRpZgogICAgICAgICBHUFJSZWcgcmVzdWx0R1BSID0gc3RhdGljX2Nhc3Q8R1BS
UmVnPihzdHViSW5mby52YWx1ZUdQUik7CisgICAgICAgIEdQUlJlZyBzY3JhdGNoR1BSID0gc3Rh
dGljX2Nhc3Q8R1BSUmVnPihzdHViSW5mby5zY3JhdGNoR1BSKTsKICAgICAgICAgCi0gICAgICAg
IE1hY3JvQXNzZW1ibGVyIHN0dWJKaXQ7CisgICAgICAgIENDYWxsSGVscGVycyBzdHViSml0KGds
b2JhbERhdGEsIGNvZGVCbG9jayk7CiAgICAgICAgIAogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6
SnVtcCB3cm9uZ1N0cnVjdCA9IHN0dWJKaXQuYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpOb3RF
cXVhbCwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZUdQUiwgSlNDZWxsOjpzdHJ1Y3R1cmVP
ZmZzZXQoKSksIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHN0cnVjdHVyZSkpOwotCi0g
ICAgICAgIHN0dWJKaXQubG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlR1BSLCBK
U09iamVjdDo6b2Zmc2V0T2ZQcm9wZXJ0eVN0b3JhZ2UoKSksIHJlc3VsdEdQUik7CisgICAgICAg
IAorICAgICAgICAvLyBUaGUgc3RyYXRlZ3kgd2UgdXNlIGZvciBzdHVicyBpcyBhcyBmb2xsb3dz
OgorICAgICAgICAvLyAxKSBDYWxsIERGRyBoZWxwZXIgdGhhdCBjYWxscyB0aGUgZ2V0dGVyLgor
ICAgICAgICAvLyAyKSBDaGVjayBpZiB0aGVyZSB3YXMgYW4gZXhjZXB0aW9uLCBhbmQgaWYgdGhl
cmUgd2FzLCBjYWxsIHlldCBhbm90aGVyCisgICAgICAgIC8vICAgIGhlbHBlci4KKyAgICAgICAg
CisgICAgICAgIGJvb2wgaXNEaXJlY3QgPSBmYWxzZTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6
OkNhbGwgb3BlcmF0aW9uQ2FsbDsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgaGFuZGxl
ckNhbGw7CisgICAgICAgIEZ1bmN0aW9uUHRyIG9wZXJhdGlvbkZ1bmN0aW9uOworICAgICAgICBN
YWNyb0Fzc2VtYmxlcjo6SnVtcCBzdWNjZXNzOworICAgICAgICAKKyAgICAgICAgaWYgKHNsb3Qu
Y2FjaGVkUHJvcGVydHlUeXBlKCkgPT0gUHJvcGVydHlTbG90OjpHZXR0ZXIKKyAgICAgICAgICAg
IHx8IHNsb3QuY2FjaGVkUHJvcGVydHlUeXBlKCkgPT0gUHJvcGVydHlTbG90OjpDdXN0b20pIHsK
KyAgICAgICAgICAgIGlmIChzbG90LmNhY2hlZFByb3BlcnR5VHlwZSgpID09IFByb3BlcnR5U2xv
dDo6R2V0dGVyKSB7CisgICAgICAgICAgICAgICAgQVNTRVJUKGJhc2VHUFIgIT0gc2NyYXRjaEdQ
Uik7CisgICAgICAgICAgICAgICAgc3R1YkppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRy
ZXNzKGJhc2VHUFIsIEpTT2JqZWN0OjpvZmZzZXRPZlByb3BlcnR5U3RvcmFnZSgpKSwgc2NyYXRj
aEdQUik7CiAjaWYgVVNFKEpTVkFMVUU2NCkKLSAgICAgICAgc3R1YkppdC5sb2FkUHRyKE1hY3Jv
QXNzZW1ibGVyOjpBZGRyZXNzKHJlc3VsdEdQUiwgc2xvdC5jYWNoZWRPZmZzZXQoKSAqIHNpemVv
ZihKU1ZhbHVlKSksIHJlc3VsdEdQUik7CisgICAgICAgICAgICAgICAgc3R1YkppdC5sb2FkUHRy
KE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHNjcmF0Y2hHUFIsIHNsb3QuY2FjaGVkT2Zmc2V0KCkg
KiBzaXplb2YoSlNWYWx1ZSkpLCBzY3JhdGNoR1BSKTsKICNlbGlmIFVTRShKU1ZBTFVFMzJfNjQp
Ci0gICAgICAgIHN0dWJKaXQubG9hZDMyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHJlc3VsdEdQ
Uiwgc2xvdC5jYWNoZWRPZmZzZXQoKSAqIHNpemVvZihKU1ZhbHVlKSArIE9CSkVDVF9PRkZTRVRP
RihFbmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMudGFnKSksIHJlc3VsdFRhZ0dQUik7Ci0g
ICAgICAgIHN0dWJKaXQubG9hZDMyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHJlc3VsdEdQUiwg
c2xvdC5jYWNoZWRPZmZzZXQoKSAqIHNpemVvZihKU1ZhbHVlKSArIE9CSkVDVF9PRkZTRVRPRihF
bmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMucGF5bG9hZCkpLCByZXN1bHRHUFIpOworICAg
ICAgICAgICAgICAgIHN0dWJKaXQubG9hZDMyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHNjcmF0
Y2hHUFIsIHNsb3QuY2FjaGVkT2Zmc2V0KCkgKiBzaXplb2YoSlNWYWx1ZSkgKyBPQkpFQ1RfT0ZG
U0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnBheWxvYWQpKSwgc2NyYXRjaEdQ
Uik7CiAjZW5kaWYKKyAgICAgICAgICAgICAgICBzdHViSml0LnNldHVwQXJndW1lbnRzV2l0aEV4
ZWNTdGF0ZShiYXNlR1BSLCBzY3JhdGNoR1BSKTsKKyAgICAgICAgICAgICAgICBvcGVyYXRpb25G
dW5jdGlvbiA9IG9wZXJhdGlvbkNhbGxHZXR0ZXI7CisgICAgICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgICAgIHN0dWJKaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKAorICAgICAg
ICAgICAgICAgICAgICBiYXNlR1BSLAorICAgICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxl
cjo6VHJ1c3RlZEltbVB0cihGdW5jdGlvblB0cihzbG90LmN1c3RvbUdldHRlcigpKS5leGVjdXRh
YmxlQWRkcmVzcygpKSwKKyAgICAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0
ZWRJbW1QdHIoY29uc3RfY2FzdDxJZGVudGlmaWVyKj4oJmlkZW50KSkpOworICAgICAgICAgICAg
ICAgIG9wZXJhdGlvbkZ1bmN0aW9uID0gb3BlcmF0aW9uQ2FsbEN1c3RvbUdldHRlcjsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIG9wZXJhdGlvbkNhbGwgPSBzdHViSml0LmNhbGwoKTsKKyNp
ZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICAgICAgc3R1YkppdC5tb3ZlKEdQUkluZm86OnJldHVy
blZhbHVlR1BSLCByZXN1bHRHUFIpOworI2Vsc2UKKyAgICAgICAgICAgIHN0dWJKaXQuc2V0dXBS
ZXN1bHRzKHJlc3VsdFRhZ0dQUiwgcmVzdWx0R1BSKTsKKyNlbmRpZgorICAgICAgICAgICAgc3Vj
Y2VzcyA9IHN0dWJKaXQuZW1pdEV4Y2VwdGlvbkNoZWNrKENDYWxsSGVscGVyczo6SW52ZXJ0ZWRF
eGNlcHRpb25DaGVjayk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHN0dWJKaXQuc2V0dXBB
cmd1bWVudHNXaXRoRXhlY1N0YXRlKAorICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpU
cnVzdGVkSW1tUHRyKCZzdHViSW5mbykpOworICAgICAgICAgICAgaGFuZGxlckNhbGwgPSBzdHVi
Sml0LmNhbGwoKTsKKyAgICAgICAgICAgIHN0dWJKaXQuanVtcChHUFJJbmZvOjpyZXR1cm5WYWx1
ZUdQUjIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgc3R1YkppdC5sb2FkUHRyKE1h
Y3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VHUFIsIEpTT2JqZWN0OjpvZmZzZXRPZlByb3BlcnR5
U3RvcmFnZSgpKSwgcmVzdWx0R1BSKTsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICAgICAg
c3R1YkppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHJlc3VsdEdQUiwgc2xvdC5j
YWNoZWRPZmZzZXQoKSAqIHNpemVvZihKU1ZhbHVlKSksIHJlc3VsdEdQUik7CisjZWxpZiBVU0Uo
SlNWQUxVRTMyXzY0KQorICAgICAgICAgICAgc3R1YkppdC5sb2FkMzIoTWFjcm9Bc3NlbWJsZXI6
OkFkZHJlc3MocmVzdWx0R1BSLCBzbG90LmNhY2hlZE9mZnNldCgpICogc2l6ZW9mKEpTVmFsdWUp
ICsgT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy50YWcpKSwg
cmVzdWx0VGFnR1BSKTsKKyAgICAgICAgICAgIHN0dWJKaXQubG9hZDMyKE1hY3JvQXNzZW1ibGVy
OjpBZGRyZXNzKHJlc3VsdEdQUiwgc2xvdC5jYWNoZWRPZmZzZXQoKSAqIHNpemVvZihKU1ZhbHVl
KSArIE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMucGF5bG9h
ZCkpLCByZXN1bHRHUFIpOworI2VuZGlmCisgICAgICAgICAgICBzdWNjZXNzID0gc3R1YkppdC5q
dW1wKCk7CisgICAgICAgICAgICBpc0RpcmVjdCA9IHRydWU7CisgICAgICAgIH0KIAotICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBzdWNjZXNzID0gc3R1YkppdC5qdW1wKCk7Ci0gICAgICAg
IAogICAgICAgICBMaW5rQnVmZmVyIHBhdGNoQnVmZmVyKCpnbG9iYWxEYXRhLCAmc3R1YkppdCk7
CiAgICAgICAgIAotICAgICAgICBDb2RlTG9jYXRpb25MYWJlbCBsYXN0UHJvdG9CZWdpbiA9IENv
ZGVMb2NhdGlvbkxhYmVsKHBvbHltb3JwaGljU3RydWN0dXJlTGlzdC0+bGlzdFtsaXN0SW5kZXgg
LSAxXS5zdHViUm91dGluZS5jb2RlKCkpOworICAgICAgICBDb2RlTG9jYXRpb25MYWJlbCBsYXN0
UHJvdG9CZWdpbjsKKyAgICAgICAgaWYgKGxpc3RJbmRleCkKKyAgICAgICAgICAgIGxhc3RQcm90
b0JlZ2luID0gQ29kZUxvY2F0aW9uTGFiZWwocG9seW1vcnBoaWNTdHJ1Y3R1cmVMaXN0LT5saXN0
W2xpc3RJbmRleCAtIDFdLnN0dWJSb3V0aW5lLmNvZGUoKSk7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIGxhc3RQcm90b0JlZ2luID0gc3R1YkluZm8uY2FsbFJldHVybkxvY2F0aW9uLmxhYmVs
QXRPZmZzZXQoc3R1YkluZm8uZGVsdGFDYWxsVG9TbG93Q2FzZSk7CiAgICAgICAgIEFTU0VSVCgh
IWxhc3RQcm90b0JlZ2luKTsKICAgICAgICAgCiAgICAgICAgIHBhdGNoQnVmZmVyLmxpbmsod3Jv
bmdTdHJ1Y3QsIGxhc3RQcm90b0JlZ2luKTsKICAgICAgICAgcGF0Y2hCdWZmZXIubGluayhzdWNj
ZXNzLCBzdHViSW5mby5jYWxsUmV0dXJuTG9jYXRpb24ubGFiZWxBdE9mZnNldChzdHViSW5mby5k
ZWx0YUNhbGxUb0RvbmUpKTsKKyAgICAgICAgaWYgKCFpc0RpcmVjdCkgeworICAgICAgICAgICAg
cGF0Y2hCdWZmZXIubGluayhvcGVyYXRpb25DYWxsLCBvcGVyYXRpb25GdW5jdGlvbik7CisgICAg
ICAgICAgICBwYXRjaEJ1ZmZlci5saW5rKGhhbmRsZXJDYWxsLCBsb29rdXBFeGNlcHRpb25IYW5k
bGVySW5TdHViKTsKKyAgICAgICAgfQogICAgICAgICAKICAgICAgICAgTWFjcm9Bc3NlbWJsZXJD
b2RlUmVmIHN0dWJSb3V0aW5lID0gcGF0Y2hCdWZmZXIuZmluYWxpemVDb2RlKCk7CiAgICAgICAg
IAotICAgICAgICBwb2x5bW9ycGhpY1N0cnVjdHVyZUxpc3QtPmxpc3RbbGlzdEluZGV4XS5zZXQo
Kmdsb2JhbERhdGEsIGNvZGVCbG9jay0+b3duZXJFeGVjdXRhYmxlKCksIHN0dWJSb3V0aW5lLCBz
dHJ1Y3R1cmUsIHRydWUpOworICAgICAgICBwb2x5bW9ycGhpY1N0cnVjdHVyZUxpc3QtPmxpc3Rb
bGlzdEluZGV4XS5zZXQoKmdsb2JhbERhdGEsIGNvZGVCbG9jay0+b3duZXJFeGVjdXRhYmxlKCks
IHN0dWJSb3V0aW5lLCBzdHJ1Y3R1cmUsIGlzRGlyZWN0KTsKICAgICAgICAgCiAgICAgICAgIENv
ZGVMb2NhdGlvbkp1bXAganVtcExvY2F0aW9uID0gc3R1YkluZm8uY2FsbFJldHVybkxvY2F0aW9u
Lmp1bXBBdE9mZnNldChzdHViSW5mby5kZWx0YUNhbGxUb1N0cnVjdENoZWNrKTsKICAgICAgICAg
UmVwYXRjaEJ1ZmZlciByZXBhdGNoQnVmZmVyKGNvZGVCbG9jayk7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAJKHJl
dmlzaW9uIDEwNTA4MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQzMl82NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5Myw3ICs0OTMsNyBAQCB2b2lkIFNw
ZWN1bGF0aXZlSklUOjpub25TcGVjdWxhdGl2ZVVJbnQzCiAgICAganNWYWx1ZVJlc3VsdChyZXN1
bHRUYWcuZ3ByKCksIHJlc3VsdFBheWxvYWQuZ3ByKCksIG1fY29tcGlsZUluZGV4KTsKIH0KIAot
SklUQ29tcGlsZXI6OkNhbGwgU3BlY3VsYXRpdmVKSVQ6OmNhY2hlZEdldEJ5SWQoR1BSUmVnIGJh
c2VUYWdHUFJPck5vbmUsIEdQUlJlZyBiYXNlUGF5bG9hZEdQUiwgR1BSUmVnIHJlc3VsdFRhZ0dQ
UiwgR1BSUmVnIHJlc3VsdFBheWxvYWRHUFIsIEdQUlJlZyBzY3JhdGNoR1BSLCB1bnNpZ25lZCBp
ZGVudGlmaWVyTnVtYmVyLCBKSVRDb21waWxlcjo6SnVtcCBzbG93UGF0aFRhcmdldCkKK0pJVENv
bXBpbGVyOjpDYWxsIFNwZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlkKEdQUlJlZyBiYXNlVGFn
R1BST3JOb25lLCBHUFJSZWcgYmFzZVBheWxvYWRHUFIsIEdQUlJlZyByZXN1bHRUYWdHUFIsIEdQ
UlJlZyByZXN1bHRQYXlsb2FkR1BSLCBHUFJSZWcgc2NyYXRjaEdQUiwgdW5zaWduZWQgaWRlbnRp
Zmllck51bWJlciwgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQsIFNwaWxsUmVnaXN0
ZXJzTW9kZSBzcGlsbE1vZGUpCiB7CiAgICAgbV9qaXQuYmVnaW5VbmludGVycnVwdGVkU2VxdWVu
Y2UoKTsKICAgICBKSVRDb21waWxlcjo6RGF0YUxhYmVsUHRyIHN0cnVjdHVyZVRvQ29tcGFyZTsK
QEAgLTUxMywxOSArNTEzLDIxIEBAIEpJVENvbXBpbGVyOjpDYWxsIFNwZWN1bGF0aXZlSklUOjpj
YWNoZWQKICAgICAKICAgICBKSVRDb21waWxlcjo6TGFiZWwgc2xvd0Nhc2UgPSBtX2ppdC5sYWJl
bCgpOwogCi0gICAgc2lsZW50U3BpbGxBbGxSZWdpc3RlcnMocmVzdWx0VGFnR1BSLCByZXN1bHRQ
YXlsb2FkR1BSKTsKKyAgICBpZiAoc3BpbGxNb2RlID09IE5lZWRUb1NwaWxsKQorICAgICAgICBz
aWxlbnRTcGlsbEFsbFJlZ2lzdGVycyhyZXN1bHRUYWdHUFIsIHJlc3VsdFBheWxvYWRHUFIpOwog
ICAgIEpJVENvbXBpbGVyOjpDYWxsIGZ1bmN0aW9uQ2FsbDsKICAgICBpZiAoYmFzZVRhZ0dQUk9y
Tm9uZSA9PSBJbnZhbGlkR1BSUmVnKQogICAgICAgICBmdW5jdGlvbkNhbGwgPSBjYWxsT3BlcmF0
aW9uKG9wZXJhdGlvbkdldEJ5SWRPcHRpbWl6ZSwgcmVzdWx0VGFnR1BSLCByZXN1bHRQYXlsb2Fk
R1BSLCBKU1ZhbHVlOjpDZWxsVGFnLCBiYXNlUGF5bG9hZEdQUiwgaWRlbnRpZmllcihpZGVudGlm
aWVyTnVtYmVyKSk7CiAgICAgZWxzZQogICAgICAgICBmdW5jdGlvbkNhbGwgPSBjYWxsT3BlcmF0
aW9uKG9wZXJhdGlvbkdldEJ5SWRPcHRpbWl6ZSwgcmVzdWx0VGFnR1BSLCByZXN1bHRQYXlsb2Fk
R1BSLCBiYXNlVGFnR1BST3JOb25lLCBiYXNlUGF5bG9hZEdQUiwgaWRlbnRpZmllcihpZGVudGlm
aWVyTnVtYmVyKSk7Ci0gICAgc2lsZW50RmlsbEFsbFJlZ2lzdGVycyhyZXN1bHRUYWdHUFIsIHJl
c3VsdFBheWxvYWRHUFIpOworICAgIGlmIChzcGlsbE1vZGUgPT0gTmVlZFRvU3BpbGwpCisgICAg
ICAgIHNpbGVudEZpbGxBbGxSZWdpc3RlcnMocmVzdWx0VGFnR1BSLCByZXN1bHRQYXlsb2FkR1BS
KTsKICAgICAKICAgICBkb25lLmxpbmsoJm1faml0KTsKICAgICAKICAgICBKSVRDb21waWxlcjo6
TGFiZWwgZG9uZUxhYmVsID0gbV9qaXQubGFiZWwoKTsKIAotICAgIG1faml0LmFkZFByb3BlcnR5
QWNjZXNzKFByb3BlcnR5QWNjZXNzUmVjb3JkKHN0cnVjdHVyZVRvQ29tcGFyZSwgZnVuY3Rpb25D
YWxsLCBzdHJ1Y3R1cmVDaGVjaywgdGFnTG9hZFdpdGhQYXRjaCwgcGF5bG9hZExvYWRXaXRoUGF0
Y2gsIHNsb3dDYXNlLCBkb25lTGFiZWwsIHNhZmVDYXN0PGludDhfdD4oYmFzZVBheWxvYWRHUFIp
LCBzYWZlQ2FzdDxpbnQ4X3Q+KHJlc3VsdFRhZ0dQUiksIHNhZmVDYXN0PGludDhfdD4ocmVzdWx0
UGF5bG9hZEdQUiksIHNhZmVDYXN0PGludDhfdD4oc2NyYXRjaEdQUikpKTsKKyAgICBtX2ppdC5h
ZGRQcm9wZXJ0eUFjY2VzcyhQcm9wZXJ0eUFjY2Vzc1JlY29yZChzdHJ1Y3R1cmVUb0NvbXBhcmUs
IGZ1bmN0aW9uQ2FsbCwgc3RydWN0dXJlQ2hlY2ssIHRhZ0xvYWRXaXRoUGF0Y2gsIHBheWxvYWRM
b2FkV2l0aFBhdGNoLCBzbG93Q2FzZSwgZG9uZUxhYmVsLCBzYWZlQ2FzdDxpbnQ4X3Q+KGJhc2VQ
YXlsb2FkR1BSKSwgc2FmZUNhc3Q8aW50OF90PihyZXN1bHRUYWdHUFIpLCBzYWZlQ2FzdDxpbnQ4
X3Q+KHJlc3VsdFBheWxvYWRHUFIpLCBzYWZlQ2FzdDxpbnQ4X3Q+KHNjcmF0Y2hHUFIpLCBzcGls
bE1vZGUgPT0gTmVlZFRvU3BpbGwgPyBQcm9wZXJ0eUFjY2Vzc1JlY29yZDo6UmVnaXN0ZXJzSW5V
c2UgOiBQcm9wZXJ0eUFjY2Vzc1JlY29yZDo6UmVnaXN0ZXJzRmx1c2hlZCkpOwogICAgIAogICAg
IHJldHVybiBmdW5jdGlvbkNhbGw7CiB9CkBAIC0zMTU3LDYgKzMxNTksNTcgQEAgdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlJiBub2RlKQogICAgICAgICBicmVhazsKICAgICB9CiAK
KyAgICBjYXNlIEdldEJ5SWRGbHVzaDogeworICAgICAgICBpZiAoIW5vZGUucHJlZGljdGlvbigp
KSB7CisgICAgICAgICAgICB0ZXJtaW5hdGVTcGVjdWxhdGl2ZUV4ZWN1dGlvbihVbmNvdW50YWJs
ZSwgSlNWYWx1ZVJlZ3MoKSwgTm9Ob2RlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9
CisgICAgICAgIAorICAgICAgICBpZiAoaXNDZWxsUHJlZGljdGlvbihhdChub2RlLmNoaWxkMSgp
KS5wcmVkaWN0aW9uKCkpKSB7CisgICAgICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNl
KHRoaXMsIG5vZGUuY2hpbGQxKCkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBHUFJSZWcg
YmFzZUdQUiA9IGJhc2UuZ3ByKCk7CisKKyAgICAgICAgICAgIEdQUlJlc3VsdCByZXN1bHRUYWco
dGhpcyk7CisgICAgICAgICAgICBHUFJSZXN1bHQyIHJlc3VsdFBheWxvYWQodGhpcyk7CisgICAg
ICAgICAgICBHUFJSZWcgcmVzdWx0VGFnR1BSID0gcmVzdWx0VGFnLmdwcigpOworICAgICAgICAg
ICAgR1BSUmVnIHJlc3VsdFBheWxvYWRHUFIgPSByZXN1bHRQYXlsb2FkLmdwcigpOworCisgICAg
ICAgICAgICBHUFJSZWcgc2NyYXRjaEdQUiA9IHNlbGVjdFNjcmF0Y2hHUFIoYmFzZUdQUiwgcmVz
dWx0VGFnR1BSLCByZXN1bHRQYXlsb2FkR1BSKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAg
YmFzZS51c2UoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZmx1c2hSZWdpc3RlcnMoKTsK
KyAgICAgICAgICAgIAorICAgICAgICAgICAgY2FjaGVkR2V0QnlJZChJbnZhbGlkR1BSUmVnLCBi
YXNlR1BSLCByZXN1bHRUYWdHUFIsIHJlc3VsdFBheWxvYWRHUFIsIHNjcmF0Y2hHUFIsIG5vZGUu
aWRlbnRpZmllck51bWJlcigpLCBKSVRDb21waWxlcjo6SnVtcCgpLCBKSVRDb21waWxlcjo6RG9u
dFNwaWxsKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAganNWYWx1ZVJlc3VsdChyZXN1bHRU
YWdHUFIsIHJlc3VsdFBheWxvYWRHUFIsIG1fY29tcGlsZUluZGV4LCBVc2VDaGlsZHJlbkNhbGxl
ZEV4cGxpY2l0bHkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgCisg
ICAgICAgIEpTVmFsdWVPcGVyYW5kIGJhc2UodGhpcywgbm9kZS5jaGlsZDEoKSk7CisgICAgICAg
IEdQUlJlZyBiYXNlVGFnR1BSID0gYmFzZS50YWdHUFIoKTsKKyAgICAgICAgR1BSUmVnIGJhc2VQ
YXlsb2FkR1BSID0gYmFzZS5wYXlsb2FkR1BSKCk7CisKKyAgICAgICAgR1BSUmVzdWx0IHJlc3Vs
dFRhZyh0aGlzKTsKKyAgICAgICAgR1BSUmVzdWx0IHJlc3VsdFBheWxvYWQodGhpcyk7CisgICAg
ICAgIEdQUlJlZyByZXN1bHRUYWdHUFIgPSByZXN1bHRUYWcuZ3ByKCk7CisgICAgICAgIEdQUlJl
ZyByZXN1bHRQYXlsb2FkR1BSID0gcmVzdWx0UGF5bG9hZC5ncHIoKTsKKworICAgICAgICBHUFJS
ZWcgc2NyYXRjaEdQUiA9IHNlbGVjdFNjcmF0Y2hHUFIoYmFzZUdQUiwgcmVzdWx0VGFnR1BSLCBy
ZXN1bHRQYXlsb2FkR1BSKTsKKyAgICAgICAgCisgICAgICAgIGJhc2UudXNlKCk7CisgICAgICAg
IAorICAgICAgICBmbHVzaFJlZ2lzdGVycygpOworICAgICAgICAKKyAgICAgICAgSklUQ29tcGls
ZXI6Okp1bXAgbm90Q2VsbCA9IG1faml0LmJyYW5jaDMyKEpJVENvbXBpbGVyOjpOb3RFcXVhbCwg
YmFzZVRhZ0dQUiwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpKTsKKyAgICAgICAgCisg
ICAgICAgIGNhY2hlZEdldEJ5SWQoYmFzZVRhZ0dQUiwgYmFzZVBheWxvYWRHUFIsIHJlc3VsdFRh
Z0dQUiwgcmVzdWx0UGF5bG9hZEdQUiwgc2NyYXRjaEdQUiwgbm9kZS5pZGVudGlmaWVyTnVtYmVy
KCksIG5vdENlbGwsIEpJVENvbXBpbGVyOjpEb250U3BpbGwpOworICAgICAgICAKKyAgICAgICAg
anNWYWx1ZVJlc3VsdChyZXN1bHRUYWdHUFIsIHJlc3VsdFBheWxvYWRHUFIsIG1fY29tcGlsZUlu
ZGV4LCBVc2VDaGlsZHJlbkNhbGxlZEV4cGxpY2l0bHkpOworICAgICAgICBicmVhazsKKyAgICB9
CisKICAgICBjYXNlIEdldEFycmF5TGVuZ3RoOiB7CiAgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVy
YW5kIGJhc2UodGhpcywgbm9kZS5jaGlsZDEoKSk7CiAgICAgICAgIEdQUlJlZyBiYXNlR1BSID0g
YmFzZS5ncHIoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQ2NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVDY0LmNwcAkocmV2aXNpb24gMTA1MDgyKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDc3
LDcgKzQ3Nyw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6Om5vblNwZWN1bGF0aXZlVUludDMKICAg
ICBqc1ZhbHVlUmVzdWx0KHJlc3VsdC5ncHIoKSwgbV9jb21waWxlSW5kZXgpOwogfQogCi1KSVRD
b21waWxlcjo6Q2FsbCBTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVkR2V0QnlJZChHUFJSZWcgYmFzZUdQ
UiwgR1BSUmVnIHJlc3VsdEdQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIHVuc2lnbmVkIGlkZW50aWZp
ZXJOdW1iZXIsIEpJVENvbXBpbGVyOjpKdW1wIHNsb3dQYXRoVGFyZ2V0KQorSklUQ29tcGlsZXI6
OkNhbGwgU3BlY3VsYXRpdmVKSVQ6OmNhY2hlZEdldEJ5SWQoQ29kZU9yaWdpbiBjb2RlT3JpZ2lu
LCBHUFJSZWcgYmFzZUdQUiwgR1BSUmVnIHJlc3VsdEdQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIHVu
c2lnbmVkIGlkZW50aWZpZXJOdW1iZXIsIEpJVENvbXBpbGVyOjpKdW1wIHNsb3dQYXRoVGFyZ2V0
LCBTcGlsbFJlZ2lzdGVyc01vZGUgc3BpbGxNb2RlKQogewogICAgIEpJVENvbXBpbGVyOjpEYXRh
TGFiZWxQdHIgc3RydWN0dXJlVG9Db21wYXJlOwogICAgIEpJVENvbXBpbGVyOjpKdW1wIHN0cnVj
dHVyZUNoZWNrID0gbV9qaXQuYnJhbmNoUHRyV2l0aFBhdGNoKEpJVENvbXBpbGVyOjpOb3RFcXVh
bCwgSklUQ29tcGlsZXI6OkFkZHJlc3MoYmFzZUdQUiwgSlNDZWxsOjpzdHJ1Y3R1cmVPZmZzZXQo
KSksIHN0cnVjdHVyZVRvQ29tcGFyZSwgSklUQ29tcGlsZXI6OlRydXN0ZWRJbW1QdHIocmVpbnRl
cnByZXRfY2FzdDx2b2lkKj4oLTEpKSk7CkBAIC00OTQsMjMgKzQ5NCwyNSBAQCBKSVRDb21waWxl
cjo6Q2FsbCBTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVkCiAgICAgCiAgICAgSklUQ29tcGlsZXI6Okxh
YmVsIHNsb3dDYXNlID0gbV9qaXQubGFiZWwoKTsKIAotICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0
ZXJzKHJlc3VsdEdQUik7CisgICAgaWYgKHNwaWxsTW9kZSA9PSBOZWVkVG9TcGlsbCkKKyAgICAg
ICAgc2lsZW50U3BpbGxBbGxSZWdpc3RlcnMocmVzdWx0R1BSKTsKICAgICBKSVRDb21waWxlcjo6
Q2FsbCBmdW5jdGlvbkNhbGwgPSBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkdldEJ5SWRPcHRpbWl6
ZSwgcmVzdWx0R1BSLCBiYXNlR1BSLCBpZGVudGlmaWVyKGlkZW50aWZpZXJOdW1iZXIpKTsKLSAg
ICBzaWxlbnRGaWxsQWxsUmVnaXN0ZXJzKHJlc3VsdEdQUik7CisgICAgaWYgKHNwaWxsTW9kZSA9
PSBOZWVkVG9TcGlsbCkKKyAgICAgICAgc2lsZW50RmlsbEFsbFJlZ2lzdGVycyhyZXN1bHRHUFIp
OwogICAgIAogICAgIGRvbmUubGluaygmbV9qaXQpOwogICAgIAogICAgIEpJVENvbXBpbGVyOjpM
YWJlbCBkb25lTGFiZWwgPSBtX2ppdC5sYWJlbCgpOwogCi0gICAgbV9qaXQuYWRkUHJvcGVydHlB
Y2Nlc3MoUHJvcGVydHlBY2Nlc3NSZWNvcmQoc3RydWN0dXJlVG9Db21wYXJlLCBmdW5jdGlvbkNh
bGwsIHN0cnVjdHVyZUNoZWNrLCBsb2FkV2l0aFBhdGNoLCBzbG93Q2FzZSwgZG9uZUxhYmVsLCBz
YWZlQ2FzdDxpbnQ4X3Q+KGJhc2VHUFIpLCBzYWZlQ2FzdDxpbnQ4X3Q+KHJlc3VsdEdQUiksIHNh
ZmVDYXN0PGludDhfdD4oc2NyYXRjaEdQUikpKTsKKyAgICBtX2ppdC5hZGRQcm9wZXJ0eUFjY2Vz
cyhQcm9wZXJ0eUFjY2Vzc1JlY29yZChjb2RlT3JpZ2luLCBzdHJ1Y3R1cmVUb0NvbXBhcmUsIGZ1
bmN0aW9uQ2FsbCwgc3RydWN0dXJlQ2hlY2ssIGxvYWRXaXRoUGF0Y2gsIHNsb3dDYXNlLCBkb25l
TGFiZWwsIHNhZmVDYXN0PGludDhfdD4oYmFzZUdQUiksIHNhZmVDYXN0PGludDhfdD4ocmVzdWx0
R1BSKSwgc2FmZUNhc3Q8aW50OF90PihzY3JhdGNoR1BSKSwgc3BpbGxNb2RlID09IE5lZWRUb1Nw
aWxsID8gUHJvcGVydHlBY2Nlc3NSZWNvcmQ6OlJlZ2lzdGVyc0luVXNlIDogUHJvcGVydHlBY2Nl
c3NSZWNvcmQ6OlJlZ2lzdGVyc0ZsdXNoZWQpKTsKICAgICAKLSAgICBpZiAoc2NyYXRjaEdQUiAh
PSByZXN1bHRHUFIgJiYgc2NyYXRjaEdQUiAhPSBJbnZhbGlkR1BSUmVnKQorICAgIGlmIChzY3Jh
dGNoR1BSICE9IHJlc3VsdEdQUiAmJiBzY3JhdGNoR1BSICE9IEludmFsaWRHUFJSZWcgJiYgc3Bp
bGxNb2RlID09IE5lZWRUb1NwaWxsKQogICAgICAgICB1bmxvY2soc2NyYXRjaEdQUik7CiAgICAg
CiAgICAgcmV0dXJuIGZ1bmN0aW9uQ2FsbDsKIH0KIAotdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y2Fj
aGVkUHV0QnlJZChHUFJSZWcgYmFzZUdQUiwgR1BSUmVnIHZhbHVlR1BSLCBOb2RlSW5kZXggdmFs
dWVJbmRleCwgR1BSUmVnIHNjcmF0Y2hHUFIsIHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIsIFB1
dEtpbmQgcHV0S2luZCwgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQpCit2b2lkIFNw
ZWN1bGF0aXZlSklUOjpjYWNoZWRQdXRCeUlkKENvZGVPcmlnaW4gY29kZU9yaWdpbiwgR1BSUmVn
IGJhc2VHUFIsIEdQUlJlZyB2YWx1ZUdQUiwgTm9kZUluZGV4IHZhbHVlSW5kZXgsIEdQUlJlZyBz
Y3JhdGNoR1BSLCB1bnNpZ25lZCBpZGVudGlmaWVyTnVtYmVyLCBQdXRLaW5kIHB1dEtpbmQsIEpJ
VENvbXBpbGVyOjpKdW1wIHNsb3dQYXRoVGFyZ2V0KQogewogICAgIAogICAgIEpJVENvbXBpbGVy
OjpEYXRhTGFiZWxQdHIgc3RydWN0dXJlVG9Db21wYXJlOwpAQCAtNTQ5LDcgKzU1MSw3IEBAIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNhY2hlZFB1dEJ5SWQoR1BSUmUKICAgICBkb25lLmxpbmsoJm1f
aml0KTsKICAgICBKSVRDb21waWxlcjo6TGFiZWwgZG9uZUxhYmVsID0gbV9qaXQubGFiZWwoKTsK
IAotICAgIG1faml0LmFkZFByb3BlcnR5QWNjZXNzKFByb3BlcnR5QWNjZXNzUmVjb3JkKHN0cnVj
dHVyZVRvQ29tcGFyZSwgZnVuY3Rpb25DYWxsLCBzdHJ1Y3R1cmVDaGVjaywgSklUQ29tcGlsZXI6
OkRhdGFMYWJlbENvbXBhY3Qoc3RvcmVXaXRoUGF0Y2gubGFiZWwoKSksIHNsb3dDYXNlLCBkb25l
TGFiZWwsIHNhZmVDYXN0PGludDhfdD4oYmFzZUdQUiksIHNhZmVDYXN0PGludDhfdD4odmFsdWVH
UFIpLCBzYWZlQ2FzdDxpbnQ4X3Q+KHNjcmF0Y2hHUFIpKSk7CisgICAgbV9qaXQuYWRkUHJvcGVy
dHlBY2Nlc3MoUHJvcGVydHlBY2Nlc3NSZWNvcmQoY29kZU9yaWdpbiwgc3RydWN0dXJlVG9Db21w
YXJlLCBmdW5jdGlvbkNhbGwsIHN0cnVjdHVyZUNoZWNrLCBKSVRDb21waWxlcjo6RGF0YUxhYmVs
Q29tcGFjdChzdG9yZVdpdGhQYXRjaC5sYWJlbCgpKSwgc2xvd0Nhc2UsIGRvbmVMYWJlbCwgc2Fm
ZUNhc3Q8aW50OF90PihiYXNlR1BSKSwgc2FmZUNhc3Q8aW50OF90Pih2YWx1ZUdQUiksIHNhZmVD
YXN0PGludDhfdD4oc2NyYXRjaEdQUikpKTsKIH0KIAogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6bm9u
U3BlY3VsYXRpdmVOb25QZWVwaG9sZUNvbXBhcmVOdWxsKE5vZGVJbmRleCBvcGVyYW5kLCBib29s
IGludmVydCkKQEAgLTMxMjMsNyArMzEyNSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGUoTm9kZSYgbm9kZSkKICAgICAgICAgICAgIAogICAgICAgICAgICAgYmFzZS51c2UoKTsKICAg
ICAgICAgICAgIAotICAgICAgICAgICAgY2FjaGVkR2V0QnlJZChiYXNlR1BSLCByZXN1bHRHUFIs
IHNjcmF0Y2hHUFIsIG5vZGUuaWRlbnRpZmllck51bWJlcigpKTsKKyAgICAgICAgICAgIGNhY2hl
ZEdldEJ5SWQobm9kZS5jb2RlT3JpZ2luLCBiYXNlR1BSLCByZXN1bHRHUFIsIHNjcmF0Y2hHUFIs
IG5vZGUuaWRlbnRpZmllck51bWJlcigpKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAganNW
YWx1ZVJlc3VsdChyZXN1bHRHUFIsIG1fY29tcGlsZUluZGV4LCBVc2VDaGlsZHJlbkNhbGxlZEV4
cGxpY2l0bHkpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0zMTQ1LDcgKzMxNDcsNTMgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlJiBub2RlKQogICAgICAgICAKICAgICAgICAg
SklUQ29tcGlsZXI6Okp1bXAgbm90Q2VsbCA9IG1faml0LmJyYW5jaFRlc3RQdHIoSklUQ29tcGls
ZXI6Ok5vblplcm8sIGJhc2VHUFIsIEdQUkluZm86OnRhZ01hc2tSZWdpc3Rlcik7CiAgICAgICAg
IAotICAgICAgICBjYWNoZWRHZXRCeUlkKGJhc2VHUFIsIHJlc3VsdEdQUiwgc2NyYXRjaEdQUiwg
bm9kZS5pZGVudGlmaWVyTnVtYmVyKCksIG5vdENlbGwpOworICAgICAgICBjYWNoZWRHZXRCeUlk
KG5vZGUuY29kZU9yaWdpbiwgYmFzZUdQUiwgcmVzdWx0R1BSLCBzY3JhdGNoR1BSLCBub2RlLmlk
ZW50aWZpZXJOdW1iZXIoKSwgbm90Q2VsbCk7CisgICAgICAgIAorICAgICAgICBqc1ZhbHVlUmVz
dWx0KHJlc3VsdEdQUiwgbV9jb21waWxlSW5kZXgsIFVzZUNoaWxkcmVuQ2FsbGVkRXhwbGljaXRs
eSk7CisgICAgICAgIAorICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBjYXNlIEdldEJ5SWRG
bHVzaDogeworICAgICAgICBpZiAoIW5vZGUucHJlZGljdGlvbigpKSB7CisgICAgICAgICAgICB0
ZXJtaW5hdGVTcGVjdWxhdGl2ZUV4ZWN1dGlvbihVbmNvdW50YWJsZSwgSlNWYWx1ZVJlZ3MoKSwg
Tm9Ob2RlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIAorICAgICAg
ICBpZiAoaXNDZWxsUHJlZGljdGlvbihhdChub2RlLmNoaWxkMSgpKS5wcmVkaWN0aW9uKCkpKSB7
CisgICAgICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUuY2hpbGQx
KCkpOworICAgICAgICAgICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNlLmdwcigpOworCisgICAgICAg
ICAgICBHUFJSZXN1bHQgcmVzdWx0KHRoaXMpOworICAgICAgICAgICAgCisgICAgICAgICAgICBH
UFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOworICAgICAgICAgICAgCisgICAgICAgICAg
ICBHUFJSZWcgc2NyYXRjaEdQUiA9IHNlbGVjdFNjcmF0Y2hHUFIoYmFzZUdQUiwgcmVzdWx0R1BS
KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgYmFzZS51c2UoKTsKKyAgICAgICAgICAgIAor
ICAgICAgICAgICAgZmx1c2hSZWdpc3RlcnMoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAg
Y2FjaGVkR2V0QnlJZChub2RlLmNvZGVPcmlnaW4sIGJhc2VHUFIsIHJlc3VsdEdQUiwgc2NyYXRj
aEdQUiwgbm9kZS5pZGVudGlmaWVyTnVtYmVyKCksIEpJVENvbXBpbGVyOjpKdW1wKCksIERvbnRT
cGlsbCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0R1BS
LCBtX2NvbXBpbGVJbmRleCwgVXNlQ2hpbGRyZW5DYWxsZWRFeHBsaWNpdGx5KTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBKU1ZhbHVlT3BlcmFuZCBi
YXNlKHRoaXMsIG5vZGUuY2hpbGQxKCkpOworICAgICAgICBHUFJSZWcgYmFzZUdQUiA9IGJhc2Uu
Z3ByKCk7CisKKyAgICAgICAgR1BSUmVzdWx0IHJlc3VsdCh0aGlzKTsKKyAgICAgICAgR1BSUmVn
IHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKKyAgICAgICAgCisgICAgICAgIEdQUlJlZyBzY3Jh
dGNoR1BSID0gc2VsZWN0U2NyYXRjaEdQUihiYXNlR1BSLCByZXN1bHRHUFIpOworICAgICAgICAK
KyAgICAgICAgYmFzZS51c2UoKTsKKyAgICAgICAgZmx1c2hSZWdpc3RlcnMoKTsKKyAgICAgICAg
CisgICAgICAgIEpJVENvbXBpbGVyOjpKdW1wIG5vdENlbGwgPSBtX2ppdC5icmFuY2hUZXN0UHRy
KEpJVENvbXBpbGVyOjpOb25aZXJvLCBiYXNlR1BSLCBHUFJJbmZvOjp0YWdNYXNrUmVnaXN0ZXIp
OworICAgICAgICAKKyAgICAgICAgY2FjaGVkR2V0QnlJZChub2RlLmNvZGVPcmlnaW4sIGJhc2VH
UFIsIHJlc3VsdEdQUiwgc2NyYXRjaEdQUiwgbm9kZS5pZGVudGlmaWVyTnVtYmVyKCksIG5vdENl
bGwsIERvbnRTcGlsbCk7CiAgICAgICAgIAogICAgICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdEdQ
UiwgbV9jb21waWxlSW5kZXgsIFVzZUNoaWxkcmVuQ2FsbGVkRXhwbGljaXRseSk7CiAgICAgICAg
IApAQCAtMzM1OSw3ICszNDA3LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2Rl
JiBub2RlKQogICAgICAgICBiYXNlLnVzZSgpOwogICAgICAgICB2YWx1ZS51c2UoKTsKIAotICAg
ICAgICBjYWNoZWRQdXRCeUlkKGJhc2VHUFIsIHZhbHVlR1BSLCBub2RlLmNoaWxkMigpLCBzY3Jh
dGNoR1BSLCBub2RlLmlkZW50aWZpZXJOdW1iZXIoKSwgTm90RGlyZWN0KTsKKyAgICAgICAgY2Fj
aGVkUHV0QnlJZChub2RlLmNvZGVPcmlnaW4sIGJhc2VHUFIsIHZhbHVlR1BSLCBub2RlLmNoaWxk
MigpLCBzY3JhdGNoR1BSLCBub2RlLmlkZW50aWZpZXJOdW1iZXIoKSwgTm90RGlyZWN0KTsKICAg
ICAgICAgCiAgICAgICAgIG5vUmVzdWx0KG1fY29tcGlsZUluZGV4LCBVc2VDaGlsZHJlbkNhbGxl
ZEV4cGxpY2l0bHkpOwogICAgICAgICBicmVhazsKQEAgLTMzNzcsNyArMzQyNSw3IEBAIHZvaWQg
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSYgbm9kZSkKICAgICAgICAgYmFzZS51c2UoKTsK
ICAgICAgICAgdmFsdWUudXNlKCk7CiAKLSAgICAgICAgY2FjaGVkUHV0QnlJZChiYXNlR1BSLCB2
YWx1ZUdQUiwgbm9kZS5jaGlsZDIoKSwgc2NyYXRjaEdQUiwgbm9kZS5pZGVudGlmaWVyTnVtYmVy
KCksIERpcmVjdCk7CisgICAgICAgIGNhY2hlZFB1dEJ5SWQobm9kZS5jb2RlT3JpZ2luLCBiYXNl
R1BSLCB2YWx1ZUdQUiwgbm9kZS5jaGlsZDIoKSwgc2NyYXRjaEdQUiwgbm9kZS5pZGVudGlmaWVy
TnVtYmVyKCksIERpcmVjdCk7CiAKICAgICAgICAgbm9SZXN1bHQobV9jb21waWxlSW5kZXgsIFVz
ZUNoaWxkcmVuQ2FsbGVkRXhwbGljaXRseSk7CiAgICAgICAgIGJyZWFrOwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAkocmV2aXNpb24gMTA1
MDgyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCSh3
b3JraW5nIGNvcHkpCkBAIC04NzIsMTIgKzg3MiwxMyBAQCBwcml2YXRlOgogICAgIHZvaWQgbm9u
U3BlY3VsYXRpdmVWYWx1ZVRvSW50MzIoTm9kZSYpOwogICAgIHZvaWQgbm9uU3BlY3VsYXRpdmVV
SW50MzJUb051bWJlcihOb2RlJik7CiAKKyAgICBlbnVtIFNwaWxsUmVnaXN0ZXJzTW9kZSB7IE5l
ZWRUb1NwaWxsLCBEb250U3BpbGwgfTsKICNpZiBVU0UoSlNWQUxVRTY0KQotICAgIEpJVENvbXBp
bGVyOjpDYWxsIGNhY2hlZEdldEJ5SWQoR1BSUmVnIGJhc2VHUFIsIEdQUlJlZyByZXN1bHRHUFIs
IEdQUlJlZyBzY3JhdGNoR1BSLCB1bnNpZ25lZCBpZGVudGlmaWVyTnVtYmVyLCBKSVRDb21waWxl
cjo6SnVtcCBzbG93UGF0aFRhcmdldCA9IEpJVENvbXBpbGVyOjpKdW1wKCkpOwotICAgIHZvaWQg
Y2FjaGVkUHV0QnlJZChHUFJSZWcgYmFzZSwgR1BSUmVnIHZhbHVlLCBOb2RlSW5kZXggdmFsdWVJ
bmRleCwgR1BSUmVnIHNjcmF0Y2hHUFIsIHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIsIFB1dEtp
bmQsIEpJVENvbXBpbGVyOjpKdW1wIHNsb3dQYXRoVGFyZ2V0ID0gSklUQ29tcGlsZXI6Okp1bXAo
KSk7CisgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FjaGVkR2V0QnlJZChDb2RlT3JpZ2luLCBHUFJS
ZWcgYmFzZUdQUiwgR1BSUmVnIHJlc3VsdEdQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIHVuc2lnbmVk
IGlkZW50aWZpZXJOdW1iZXIsIEpJVENvbXBpbGVyOjpKdW1wIHNsb3dQYXRoVGFyZ2V0ID0gSklU
Q29tcGlsZXI6Okp1bXAoKSwgU3BpbGxSZWdpc3RlcnNNb2RlID0gTmVlZFRvU3BpbGwpOworICAg
IHZvaWQgY2FjaGVkUHV0QnlJZChDb2RlT3JpZ2luLCBHUFJSZWcgYmFzZSwgR1BSUmVnIHZhbHVl
LCBOb2RlSW5kZXggdmFsdWVJbmRleCwgR1BSUmVnIHNjcmF0Y2hHUFIsIHVuc2lnbmVkIGlkZW50
aWZpZXJOdW1iZXIsIFB1dEtpbmQsIEpJVENvbXBpbGVyOjpKdW1wIHNsb3dQYXRoVGFyZ2V0ID0g
SklUQ29tcGlsZXI6Okp1bXAoKSk7CiAjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQotICAgIEpJVENv
bXBpbGVyOjpDYWxsIGNhY2hlZEdldEJ5SWQoR1BSUmVnIGJhc2VUYWdHUFJPck5vbmUsIEdQUlJl
ZyBiYXNlUGF5bG9hZEdQUiwgR1BSUmVnIHJlc3VsdFRhZ0dQUiwgR1BSUmVnIHJlc3VsdFBheWxv
YWRHUFIsIEdQUlJlZyBzY3JhdGNoR1BSLCB1bnNpZ25lZCBpZGVudGlmaWVyTnVtYmVyLCBKSVRD
b21waWxlcjo6SnVtcCBzbG93UGF0aFRhcmdldCA9IEpJVENvbXBpbGVyOjpKdW1wKCkpOwotICAg
IHZvaWQgY2FjaGVkUHV0QnlJZChHUFJSZWcgYmFzZVBheWxvYWRHUFIsIEdQUlJlZyB2YWx1ZVRh
Z0dQUiwgR1BSUmVnIHZhbHVlUGF5bG9hZEdQUiwgTm9kZUluZGV4IHZhbHVlSW5kZXgsIEdQUlJl
ZyBzY3JhdGNoR1BSLCB1bnNpZ25lZCBpZGVudGlmaWVyTnVtYmVyLCBQdXRLaW5kLCBKSVRDb21w
aWxlcjo6SnVtcCBzbG93UGF0aFRhcmdldCA9IEpJVENvbXBpbGVyOjpKdW1wKCkpOworICAgIEpJ
VENvbXBpbGVyOjpDYWxsIGNhY2hlZEdldEJ5SWQoQ29kZU9yaWdpbiwgR1BSUmVnIGJhc2VUYWdH
UFJPck5vbmUsIEdQUlJlZyBiYXNlUGF5bG9hZEdQUiwgR1BSUmVnIHJlc3VsdFRhZ0dQUiwgR1BS
UmVnIHJlc3VsdFBheWxvYWRHUFIsIEdQUlJlZyBzY3JhdGNoR1BSLCB1bnNpZ25lZCBpZGVudGlm
aWVyTnVtYmVyLCBKSVRDb21waWxlcjo6SnVtcCBzbG93UGF0aFRhcmdldCA9IEpJVENvbXBpbGVy
OjpKdW1wKCksIFNwaWxsUmVnaXN0ZXJzTW9kZSA9IE5lZWRUb1NwaWxsKTsKKyAgICB2b2lkIGNh
Y2hlZFB1dEJ5SWQoQ29kZU9yaWdpbiwgR1BSUmVnIGJhc2VQYXlsb2FkR1BSLCBHUFJSZWcgdmFs
dWVUYWdHUFIsIEdQUlJlZyB2YWx1ZVBheWxvYWRHUFIsIE5vZGVJbmRleCB2YWx1ZUluZGV4LCBH
UFJSZWcgc2NyYXRjaEdQUiwgdW5zaWduZWQgaWRlbnRpZmllck51bWJlciwgUHV0S2luZCwgSklU
Q29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQgPSBKSVRDb21waWxlcjo6SnVtcCgpKTsKICNl
bmRpZgogCiAgICAgdm9pZCBub25TcGVjdWxhdGl2ZU5vblBlZXBob2xlQ29tcGFyZU51bGwoTm9k
ZUluZGV4IG9wZXJhbmQsIGJvb2wgaW52ZXJ0ID0gZmFsc2UpOwpAQCAtMTM5MSwyNiArMTM5Miwx
MCBAQCBwcml2YXRlOgogICAgICAgICBtX2ppdC5tb3ZlKEdQUkluZm86OnJldHVyblZhbHVlR1BS
LCByZXN1bHQpOwogICAgICAgICByZXR1cm4gY2FsbDsKICAgICB9Ci0gICAgdm9pZCBzZXR1cFJl
c3VsdHMoR1BSUmVnIGRlc3RBLCBHUFJSZWcgZGVzdEIpCi0gICAgewotICAgICAgICBHUFJSZWcg
c3JjQSA9IEdQUkluZm86OnJldHVyblZhbHVlR1BSOwotICAgICAgICBHUFJSZWcgc3JjQiA9IEdQ
UkluZm86OnJldHVyblZhbHVlR1BSMjsKLQotICAgICAgICBpZiAoc3JjQiAhPSBkZXN0QSkgewot
ICAgICAgICAgICAgLy8gSGFuZGxlIHRoZSBlYXN5IGNhc2VzIC0gdHdvIHNpbXBsZSBtb3Zlcy4K
LSAgICAgICAgICAgIG1faml0Lm1vdmUoc3JjQSwgZGVzdEEpOwotICAgICAgICAgICAgbV9qaXQu
bW92ZShzcmNCLCBkZXN0Qik7Ci0gICAgICAgIH0gZWxzZSBpZiAoc3JjQSAhPSBkZXN0Qikgewot
ICAgICAgICAgICAgLy8gSGFuZGxlIHRoZSBub24tc3dhcCBjYXNlIC0ganVzdCBwdXQgc3JjQiBp
biBwbGFjZSBmaXJzdC4KLSAgICAgICAgICAgIG1faml0Lm1vdmUoc3JjQiwgZGVzdEIpOwotICAg
ICAgICAgICAgbV9qaXQubW92ZShzcmNBLCBkZXN0QSk7Ci0gICAgICAgIH0gZWxzZQotICAgICAg
ICAgICAgbV9qaXQuc3dhcChkZXN0QSwgZGVzdEIpOwotICAgIH0KICAgICBKSVRDb21waWxlcjo6
Q2FsbCBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrU2V0UmVzdWx0KGNvbnN0IEZ1bmN0aW9u
UHRyJiBmdW5jdGlvbiwgR1BSUmVnIHJlc3VsdDEsIEdQUlJlZyByZXN1bHQyKQogICAgIHsKICAg
ICAgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbCA9IGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hl
Y2soZnVuY3Rpb24pOwotICAgICAgICBzZXR1cFJlc3VsdHMocmVzdWx0MSwgcmVzdWx0Mik7Cisg
ICAgICAgIG1faml0LnNldHVwUmVzdWx0cyhyZXN1bHQxLCByZXN1bHQyKTsKICAgICAgICAgcmV0
dXJuIGNhbGw7CiAgICAgfQogI2lmIENQVShYODYpCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMDUwODgp
CisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzNiBA
QAorMjAxMi0wMS0xNiAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IERGRyBzaG91bGQgYmUgYWJsZSB0byBkbyBKUyBhbmQgY3VzdG9tIGdldHRlciBjYWNoaW5nCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjM2MQorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vMTA2OTgwNjA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICAqIGZhc3QvanMvZGZnLWN1c3RvbS1nZXR0
ZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pzL2RmZy1jdXN0b20tZ2V0
dGVyLXRocm93LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9qcy9kZmctY3Vz
dG9tLWdldHRlci10aHJvdy1pbmxpbmVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9qcy9kZmctY3VzdG9tLWdldHRlci10aHJvdy1pbmxpbmVkLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvanMvZGZnLWN1c3RvbS1nZXR0ZXItdGhyb3cuaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9qcy9kZmctY3VzdG9tLWdldHRlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2pzL2RmZy1nZXR0ZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pz
L2RmZy1nZXR0ZXItdGhyb3ctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pz
L2RmZy1nZXR0ZXItdGhyb3cuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9qcy9kZmctZ2V0
dGVyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvanMvc2NyaXB0LXRlc3RzL2RmZy1jdXN0
b20tZ2V0dGVyLXRocm93LWlubGluZWQuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAg
ICAgKGJheik6CisgICAgICAgIChiYXIpOgorICAgICAgICAqIGZhc3QvanMvc2NyaXB0LXRlc3Rz
L2RmZy1jdXN0b20tZ2V0dGVyLXRocm93LmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisgICAg
ICAgIChiYXIpOgorICAgICAgICAqIGZhc3QvanMvc2NyaXB0LXRlc3RzL2RmZy1jdXN0b20tZ2V0
dGVyLmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisgICAgICAgICogZmFzdC9qcy9zY3JpcHQt
dGVzdHMvZGZnLWdldHRlci10aHJvdy5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAg
ICAoYmFyKToKKyAgICAgICAgKiBmYXN0L2pzL3NjcmlwdC10ZXN0cy9kZmctZ2V0dGVyLmpzOiBB
ZGRlZC4KKyAgICAgICAgKGZvbyk6CisKIDIwMTItMDEtMTYgIHh1ZXFpbmcgaHVhbmcgIDxodWFu
Z3h1ZXFpbmdAYmFpZHUuY29tPgogCiAgICAgICAgIEFkZCBvZmZsaW5lIHdlYiBhcHBsaWNhdGlv
bnMgQVBJIGFwcGxpY2F0aW9uQ2FjaGUuYWJvcnQuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pz
L2RmZy1jdXN0b20tZ2V0dGVyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2pzL2RmZy1jdXN0b20tZ2V0dGVyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2Zhc3QvanMvZGZnLWN1c3RvbS1nZXR0ZXItZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDIxMCBAQAorVGVzdHMgdGhhdCBERkcgY3VzdG9tIGdldHRlciBj
YWNoaW5nIGRvZXMgbm90IGJyZWFrIHRoZSB3b3JsZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BB
U1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMg
IiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQg
RElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFND
UklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1Mg
Zm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBE
SVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElW
ICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQ
VCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9v
KCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYg
I3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0
ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIK
K1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkg
aXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3Rl
eHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0
IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BB
U1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMg
IiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQg
RElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFND
UklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1Mg
Zm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBE
SVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElW
ICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQ
VCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9v
KCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYg
I3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0
ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIK
K1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkg
aXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3Rl
eHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0
IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BB
U1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMg
IiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQg
RElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFND
UklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1Mg
Zm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBE
SVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElW
ICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQ
VCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9v
KCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYg
I3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0
ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIK
K1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkg
aXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3Rl
eHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0
IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BB
U1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMg
IiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQg
RElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFND
UklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1Mg
Zm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBE
SVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElW
ICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQ
VCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9v
KCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYg
I3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0
ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIK
K1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkg
aXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3Rl
eHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0
IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BB
U1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMg
IiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQg
RElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFND
UklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1Mg
Zm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBE
SVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElW
ICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQ
VCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9v
KCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYg
I3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0
ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIK
K1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkg
aXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3Rl
eHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0
IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BB
U1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMg
IiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQg
RElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFND
UklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1Mg
Zm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBE
SVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElW
ICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQ
VCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9v
KCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYg
I3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0
ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIK
K1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkg
aXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3Rl
eHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0
IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BB
U1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMg
IiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQg
RElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFND
UklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1Mg
Zm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBE
SVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElW
ICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQ
VCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9v
KCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYg
I3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0
ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIK
K1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkg
aXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3Rl
eHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0
IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BB
U1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMg
IiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQg
RElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFND
UklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1Mg
Zm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBE
SVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElW
ICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQ
VCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9v
KCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYg
I3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0
ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIK
K1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkg
aXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3Rl
eHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0
IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BB
U1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMg
IiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQg
RElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFND
UklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1Mg
Zm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBE
SVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElW
ICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQ
VCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9v
KCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYg
I3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0
ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIK
K1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkg
aXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3Rl
eHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0
IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BB
U1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMg
IiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQg
RElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFND
UklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1Mg
Zm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBE
SVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElW
ICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQ
VCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9v
KCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYg
I3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0
ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIK
K1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkg
aXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3Rl
eHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0
IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BB
U1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMg
IiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQg
RElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFND
UklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1Mg
Zm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBE
SVYgI3RleHQgRElWICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElW
ICN0ZXh0IFNDUklQVCIKK1BBU1MgZm9vKCkgaXMgIiBESVYgI3RleHQgRElWICN0ZXh0IFNDUklQ
VCIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorU29t
ZSBzdHVmZgorTW9yZSBzdHVmZgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9kZmctY3VzdG9t
LWdldHRlci10aHJvdy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9qcy9kZmctY3VzdG9tLWdldHRlci10aHJvdy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2pzL2RmZy1jdXN0b20tZ2V0dGVyLXRocm93LWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyMDkgQEAKK1Rlc3RzIHRoYXQgREZHIGN1c3RvbSBn
ZXR0ZXIgY2FjaGluZyBkb2VzIG5vdCBicmVhayB0aGUgd29ybGQgaWYgdGhlIGdldHRlciB0aHJv
d3MgYW4gZXhjZXB0aW9uLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBi
YXIoaSA+PSAxMDApIGlzICJSZXR1cm5lZCByZXN1bHQ6IDAiCitQQVNTIGJhcihpID49IDEwMCkg
aXMgIlJldHVybmVkIHJlc3VsdDogMCIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiUmV0dXJuZWQg
cmVzdWx0OiAwIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJSZXR1cm5lZCByZXN1bHQ6IDAiCitQ
QVNTIGJhcihpID49IDEwMCkgaXMgIlJldHVybmVkIHJlc3VsdDogMCIKK1BBU1MgYmFyKGkgPj0g
MTAwKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiAwIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJSZXR1
cm5lZCByZXN1bHQ6IDAiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlJldHVybmVkIHJlc3VsdDog
MCIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiAwIgorUEFTUyBiYXIo
aSA+PSAxMDApIGlzICJSZXR1cm5lZCByZXN1bHQ6IDAiCitQQVNTIGJhcihpID49IDEwMCkgaXMg
IlJldHVybmVkIHJlc3VsdDogMCIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiUmV0dXJuZWQgcmVz
dWx0OiAwIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJSZXR1cm5lZCByZXN1bHQ6IDAiCitQQVNT
IGJhcihpID49IDEwMCkgaXMgIlJldHVybmVkIHJlc3VsdDogMCIKK1BBU1MgYmFyKGkgPj0gMTAw
KSBpcyAiUmV0dXJuZWQgcmVzdWx0OiAwIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJSZXR1cm5l
ZCByZXN1bHQ6IDAiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlJldHVybmVkIHJlc3VsdDogMCIK
K1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiAwIgorUEFTUyBiYXIoaSA+
PSAxMDApIGlzICJSZXR1cm5lZCByZXN1bHQ6IDAiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlJl
dHVybmVkIHJlc3VsdDogMCIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiUmV0dXJuZWQgcmVzdWx0
OiAwIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJSZXR1cm5lZCByZXN1bHQ6IDAiCitQQVNTIGJh
cihpID49IDEwMCkgaXMgIlJldHVybmVkIHJlc3VsdDogMCIKK1BBU1MgYmFyKGkgPj0gMTAwKSBp
cyAiUmV0dXJuZWQgcmVzdWx0OiAwIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJSZXR1cm5lZCBy
ZXN1bHQ6IDAiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlJldHVybmVkIHJlc3VsdDogMCIKK1BB
U1MgYmFyKGkgPj0gMTAwKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiAwIgorUEFTUyBiYXIoaSA+PSAx
MDApIGlzICJSZXR1cm5lZCByZXN1bHQ6IDAiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlJldHVy
bmVkIHJlc3VsdDogMCIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiAw
IgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJSZXR1cm5lZCByZXN1bHQ6IDAiCitQQVNTIGJhcihp
ID49IDEwMCkgaXMgIlJldHVybmVkIHJlc3VsdDogMCIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAi
UmV0dXJuZWQgcmVzdWx0OiAwIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJSZXR1cm5lZCByZXN1
bHQ6IDAiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlJldHVybmVkIHJlc3VsdDogMCIKK1BBU1Mg
YmFyKGkgPj0gMTAwKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiAwIgorUEFTUyBiYXIoaSA+PSAxMDAp
IGlzICJSZXR1cm5lZCByZXN1bHQ6IDAiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlJldHVybmVk
IHJlc3VsdDogMCIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiAwIgor
UEFTUyBiYXIoaSA+PSAxMDApIGlzICJSZXR1cm5lZCByZXN1bHQ6IDAiCitQQVNTIGJhcihpID49
IDEwMCkgaXMgIlJldHVybmVkIHJlc3VsdDogMCIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiUmV0
dXJuZWQgcmVzdWx0OiAwIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJSZXR1cm5lZCByZXN1bHQ6
IDAiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlJldHVybmVkIHJlc3VsdDogMCIKK1BBU1MgYmFy
KGkgPj0gMTAwKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiAwIgorUEFTUyBiYXIoaSA+PSAxMDApIGlz
ICJSZXR1cm5lZCByZXN1bHQ6IDAiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlJldHVybmVkIHJl
c3VsdDogMCIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiAwIgorUEFT
UyBiYXIoaSA+PSAxMDApIGlzICJSZXR1cm5lZCByZXN1bHQ6IDAiCitQQVNTIGJhcihpID49IDEw
MCkgaXMgIlJldHVybmVkIHJlc3VsdDogMCIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiUmV0dXJu
ZWQgcmVzdWx0OiAwIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJSZXR1cm5lZCByZXN1bHQ6IDAi
CitQQVNTIGJhcihpID49IDEwMCkgaXMgIlJldHVybmVkIHJlc3VsdDogMCIKK1BBU1MgYmFyKGkg
Pj0gMTAwKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiAwIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJS
ZXR1cm5lZCByZXN1bHQ6IDAiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlJldHVybmVkIHJlc3Vs
dDogMCIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiAwIgorUEFTUyBi
YXIoaSA+PSAxMDApIGlzICJSZXR1cm5lZCByZXN1bHQ6IDAiCitQQVNTIGJhcihpID49IDEwMCkg
aXMgIlJldHVybmVkIHJlc3VsdDogMCIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiUmV0dXJuZWQg
cmVzdWx0OiAwIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJSZXR1cm5lZCByZXN1bHQ6IDAiCitQ
QVNTIGJhcihpID49IDEwMCkgaXMgIlJldHVybmVkIHJlc3VsdDogMCIKK1BBU1MgYmFyKGkgPj0g
MTAwKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiAwIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJSZXR1
cm5lZCByZXN1bHQ6IDAiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlJldHVybmVkIHJlc3VsdDog
MCIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiAwIgorUEFTUyBiYXIo
aSA+PSAxMDApIGlzICJSZXR1cm5lZCByZXN1bHQ6IDAiCitQQVNTIGJhcihpID49IDEwMCkgaXMg
IlJldHVybmVkIHJlc3VsdDogMCIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiUmV0dXJuZWQgcmVz
dWx0OiAwIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJSZXR1cm5lZCByZXN1bHQ6IDAiCitQQVNT
IGJhcihpID49IDEwMCkgaXMgIlJldHVybmVkIHJlc3VsdDogMCIKK1BBU1MgYmFyKGkgPj0gMTAw
KSBpcyAiUmV0dXJuZWQgcmVzdWx0OiAwIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJSZXR1cm5l
ZCByZXN1bHQ6IDAiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlJldHVybmVkIHJlc3VsdDogMCIK
K1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiAwIgorUEFTUyBiYXIoaSA+
PSAxMDApIGlzICJSZXR1cm5lZCByZXN1bHQ6IDAiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlJl
dHVybmVkIHJlc3VsdDogMCIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiUmV0dXJuZWQgcmVzdWx0
OiAwIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJSZXR1cm5lZCByZXN1bHQ6IDAiCitQQVNTIGJh
cihpID49IDEwMCkgaXMgIlJldHVybmVkIHJlc3VsdDogMCIKK1BBU1MgYmFyKGkgPj0gMTAwKSBp
cyAiUmV0dXJuZWQgcmVzdWx0OiAwIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJSZXR1cm5lZCBy
ZXN1bHQ6IDAiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlJldHVybmVkIHJlc3VsdDogMCIKK1BB
U1MgYmFyKGkgPj0gMTAwKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiAwIgorUEFTUyBiYXIoaSA+PSAx
MDApIGlzICJSZXR1cm5lZCByZXN1bHQ6IDAiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlJldHVy
bmVkIHJlc3VsdDogMCIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiAw
IgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJSZXR1cm5lZCByZXN1bHQ6IDAiCitQQVNTIGJhcihp
ID49IDEwMCkgaXMgIlJldHVybmVkIHJlc3VsdDogMCIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAi
UmV0dXJuZWQgcmVzdWx0OiAwIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJSZXR1cm5lZCByZXN1
bHQ6IDAiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlJldHVybmVkIHJlc3VsdDogMCIKK1BBU1Mg
YmFyKGkgPj0gMTAwKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiAwIgorUEFTUyBiYXIoaSA+PSAxMDAp
IGlzICJSZXR1cm5lZCByZXN1bHQ6IDAiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlJldHVybmVk
IHJlc3VsdDogMCIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiAwIgor
UEFTUyBiYXIoaSA+PSAxMDApIGlzICJSZXR1cm5lZCByZXN1bHQ6IDAiCitQQVNTIGJhcihpID49
IDEwMCkgaXMgIlJldHVybmVkIHJlc3VsdDogMCIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiUmV0
dXJuZWQgcmVzdWx0OiAwIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJSZXR1cm5lZCByZXN1bHQ6
IDAiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlRocmV3IGV4Y2VwdGlvbjogRXJyb3I6IElOVkFM
SURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJU
aHJldyBleGNlcHRpb246IEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAx
MSIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBFcnJvcjogSU5WQUxJ
RF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlRo
cmV3IGV4Y2VwdGlvbjogRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDEx
IgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJUaHJldyBleGNlcHRpb246IEVycm9yOiBJTlZBTElE
X1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiVGhy
ZXcgZXhjZXB0aW9uOiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEi
CitQQVNTIGJhcihpID49IDEwMCkgaXMgIlRocmV3IGV4Y2VwdGlvbjogRXJyb3I6IElOVkFMSURf
U1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJUaHJl
dyBleGNlcHRpb246IEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSIK
K1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBFcnJvcjogSU5WQUxJRF9T
VEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlRocmV3
IGV4Y2VwdGlvbjogRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExIgor
UEFTUyBiYXIoaSA+PSAxMDApIGlzICJUaHJldyBleGNlcHRpb246IEVycm9yOiBJTlZBTElEX1NU
QVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiVGhyZXcg
ZXhjZXB0aW9uOiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiCitQ
QVNTIGJhcihpID49IDEwMCkgaXMgIlRocmV3IGV4Y2VwdGlvbjogRXJyb3I6IElOVkFMSURfU1RB
VEVfRVJSOiBET00gRXhjZXB0aW9uIDExIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJUaHJldyBl
eGNlcHRpb246IEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSIKK1BB
U1MgYmFyKGkgPj0gMTAwKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBFcnJvcjogSU5WQUxJRF9TVEFU
RV9FUlI6IERPTSBFeGNlcHRpb24gMTEiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlRocmV3IGV4
Y2VwdGlvbjogRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExIgorUEFT
UyBiYXIoaSA+PSAxMDApIGlzICJUaHJldyBleGNlcHRpb246IEVycm9yOiBJTlZBTElEX1NUQVRF
X0VSUjogRE9NIEV4Y2VwdGlvbiAxMSIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiVGhyZXcgZXhj
ZXB0aW9uOiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiCitQQVNT
IGJhcihpID49IDEwMCkgaXMgIlRocmV3IGV4Y2VwdGlvbjogRXJyb3I6IElOVkFMSURfU1RBVEVf
RVJSOiBET00gRXhjZXB0aW9uIDExIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJUaHJldyBleGNl
cHRpb246IEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSIKK1BBU1Mg
YmFyKGkgPj0gMTAwKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBFcnJvcjogSU5WQUxJRF9TVEFURV9F
UlI6IERPTSBFeGNlcHRpb24gMTEiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlRocmV3IGV4Y2Vw
dGlvbjogRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExIgorUEFTUyBi
YXIoaSA+PSAxMDApIGlzICJUaHJldyBleGNlcHRpb246IEVycm9yOiBJTlZBTElEX1NUQVRFX0VS
UjogRE9NIEV4Y2VwdGlvbiAxMSIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiVGhyZXcgZXhjZXB0
aW9uOiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiCitQQVNTIGJh
cihpID49IDEwMCkgaXMgIlRocmV3IGV4Y2VwdGlvbjogRXJyb3I6IElOVkFMSURfU1RBVEVfRVJS
OiBET00gRXhjZXB0aW9uIDExIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJUaHJldyBleGNlcHRp
b246IEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSIKK1BBU1MgYmFy
KGkgPj0gMTAwKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6
IERPTSBFeGNlcHRpb24gMTEiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlRocmV3IGV4Y2VwdGlv
bjogRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExIgorUEFTUyBiYXIo
aSA+PSAxMDApIGlzICJUaHJldyBleGNlcHRpb246IEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjog
RE9NIEV4Y2VwdGlvbiAxMSIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiVGhyZXcgZXhjZXB0aW9u
OiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiCitQQVNTIGJhcihp
ID49IDEwMCkgaXMgIlRocmV3IGV4Y2VwdGlvbjogRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBE
T00gRXhjZXB0aW9uIDExIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJUaHJldyBleGNlcHRpb246
IEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSIKK1BBU1MgYmFyKGkg
Pj0gMTAwKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERP
TSBFeGNlcHRpb24gMTEiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlRocmV3IGV4Y2VwdGlvbjog
RXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExIgorUEFTUyBiYXIoaSA+
PSAxMDApIGlzICJUaHJldyBleGNlcHRpb246IEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9N
IEV4Y2VwdGlvbiAxMSIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBF
cnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiCitQQVNTIGJhcihpID49
IDEwMCkgaXMgIlRocmV3IGV4Y2VwdGlvbjogRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00g
RXhjZXB0aW9uIDExIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJUaHJldyBleGNlcHRpb246IEVy
cm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSIKK1BBU1MgYmFyKGkgPj0g
MTAwKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBF
eGNlcHRpb24gMTEiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlRocmV3IGV4Y2VwdGlvbjogRXJy
b3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExIgorUEFTUyBiYXIoaSA+PSAx
MDApIGlzICJUaHJldyBleGNlcHRpb246IEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4
Y2VwdGlvbiAxMSIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBFcnJv
cjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiCitQQVNTIGJhcihpID49IDEw
MCkgaXMgIlRocmV3IGV4Y2VwdGlvbjogRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhj
ZXB0aW9uIDExIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJUaHJldyBleGNlcHRpb246IEVycm9y
OiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSIKK1BBU1MgYmFyKGkgPj0gMTAw
KSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNl
cHRpb24gMTEiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlRocmV3IGV4Y2VwdGlvbjogRXJyb3I6
IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExIgorUEFTUyBiYXIoaSA+PSAxMDAp
IGlzICJUaHJldyBleGNlcHRpb246IEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2Vw
dGlvbiAxMSIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBFcnJvcjog
SU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiCitQQVNTIGJhcihpID49IDEwMCkg
aXMgIlRocmV3IGV4Y2VwdGlvbjogRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0
aW9uIDExIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJUaHJldyBleGNlcHRpb246IEVycm9yOiBJ
TlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSIKK1BBU1MgYmFyKGkgPj0gMTAwKSBp
cyAiVGhyZXcgZXhjZXB0aW9uOiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRp
b24gMTEiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlRocmV3IGV4Y2VwdGlvbjogRXJyb3I6IElO
VkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExIgorUEFTUyBiYXIoaSA+PSAxMDApIGlz
ICJUaHJldyBleGNlcHRpb246IEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlv
biAxMSIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBFcnJvcjogSU5W
QUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiCitQQVNTIGJhcihpID49IDEwMCkgaXMg
IlRocmV3IGV4Y2VwdGlvbjogRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9u
IDExIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJUaHJldyBleGNlcHRpb246IEVycm9yOiBJTlZB
TElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAi
VGhyZXcgZXhjZXB0aW9uOiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24g
MTEiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlRocmV3IGV4Y2VwdGlvbjogRXJyb3I6IElOVkFM
SURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJU
aHJldyBleGNlcHRpb246IEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAx
MSIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBFcnJvcjogSU5WQUxJ
RF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlRo
cmV3IGV4Y2VwdGlvbjogRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDEx
IgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJUaHJldyBleGNlcHRpb246IEVycm9yOiBJTlZBTElE
X1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiVGhy
ZXcgZXhjZXB0aW9uOiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEi
CitQQVNTIGJhcihpID49IDEwMCkgaXMgIlRocmV3IGV4Y2VwdGlvbjogRXJyb3I6IElOVkFMSURf
U1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJUaHJl
dyBleGNlcHRpb246IEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSIK
K1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBFcnJvcjogSU5WQUxJRF9T
VEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlRocmV3
IGV4Y2VwdGlvbjogRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExIgor
UEFTUyBiYXIoaSA+PSAxMDApIGlzICJUaHJldyBleGNlcHRpb246IEVycm9yOiBJTlZBTElEX1NU
QVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiVGhyZXcg
ZXhjZXB0aW9uOiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiCitQ
QVNTIGJhcihpID49IDEwMCkgaXMgIlRocmV3IGV4Y2VwdGlvbjogRXJyb3I6IElOVkFMSURfU1RB
VEVfRVJSOiBET00gRXhjZXB0aW9uIDExIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJUaHJldyBl
eGNlcHRpb246IEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSIKK1BB
U1MgYmFyKGkgPj0gMTAwKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBFcnJvcjogSU5WQUxJRF9TVEFU
RV9FUlI6IERPTSBFeGNlcHRpb24gMTEiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlRocmV3IGV4
Y2VwdGlvbjogRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExIgorUEFT
UyBiYXIoaSA+PSAxMDApIGlzICJUaHJldyBleGNlcHRpb246IEVycm9yOiBJTlZBTElEX1NUQVRF
X0VSUjogRE9NIEV4Y2VwdGlvbiAxMSIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiVGhyZXcgZXhj
ZXB0aW9uOiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiCitQQVNT
IGJhcihpID49IDEwMCkgaXMgIlRocmV3IGV4Y2VwdGlvbjogRXJyb3I6IElOVkFMSURfU1RBVEVf
RVJSOiBET00gRXhjZXB0aW9uIDExIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJUaHJldyBleGNl
cHRpb246IEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSIKK1BBU1Mg
YmFyKGkgPj0gMTAwKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBFcnJvcjogSU5WQUxJRF9TVEFURV9F
UlI6IERPTSBFeGNlcHRpb24gMTEiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlRocmV3IGV4Y2Vw
dGlvbjogRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExIgorUEFTUyBi
YXIoaSA+PSAxMDApIGlzICJUaHJldyBleGNlcHRpb246IEVycm9yOiBJTlZBTElEX1NUQVRFX0VS
UjogRE9NIEV4Y2VwdGlvbiAxMSIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiVGhyZXcgZXhjZXB0
aW9uOiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiCitQQVNTIGJh
cihpID49IDEwMCkgaXMgIlRocmV3IGV4Y2VwdGlvbjogRXJyb3I6IElOVkFMSURfU1RBVEVfRVJS
OiBET00gRXhjZXB0aW9uIDExIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJUaHJldyBleGNlcHRp
b246IEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSIKK1BBU1MgYmFy
KGkgPj0gMTAwKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6
IERPTSBFeGNlcHRpb24gMTEiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlRocmV3IGV4Y2VwdGlv
bjogRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExIgorUEFTUyBiYXIo
aSA+PSAxMDApIGlzICJUaHJldyBleGNlcHRpb246IEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjog
RE9NIEV4Y2VwdGlvbiAxMSIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiVGhyZXcgZXhjZXB0aW9u
OiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiCitQQVNTIGJhcihp
ID49IDEwMCkgaXMgIlRocmV3IGV4Y2VwdGlvbjogRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBE
T00gRXhjZXB0aW9uIDExIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJUaHJldyBleGNlcHRpb246
IEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSIKK1BBU1MgYmFyKGkg
Pj0gMTAwKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERP
TSBFeGNlcHRpb24gMTEiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlRocmV3IGV4Y2VwdGlvbjog
RXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExIgorUEFTUyBiYXIoaSA+
PSAxMDApIGlzICJUaHJldyBleGNlcHRpb246IEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9N
IEV4Y2VwdGlvbiAxMSIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBF
cnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiCitQQVNTIGJhcihpID49
IDEwMCkgaXMgIlRocmV3IGV4Y2VwdGlvbjogRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00g
RXhjZXB0aW9uIDExIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJUaHJldyBleGNlcHRpb246IEVy
cm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSIKK1BBU1MgYmFyKGkgPj0g
MTAwKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBF
eGNlcHRpb24gMTEiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlRocmV3IGV4Y2VwdGlvbjogRXJy
b3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExIgorUEFTUyBiYXIoaSA+PSAx
MDApIGlzICJUaHJldyBleGNlcHRpb246IEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4
Y2VwdGlvbiAxMSIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBFcnJv
cjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiCitQQVNTIGJhcihpID49IDEw
MCkgaXMgIlRocmV3IGV4Y2VwdGlvbjogRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhj
ZXB0aW9uIDExIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvZGZnLWN1c3RvbS1nZXR0ZXItdGhyb3ct
aW5saW5lZC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9k
ZmctY3VzdG9tLWdldHRlci10aHJvdy1pbmxpbmVkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2Zhc3QvanMvZGZnLWN1c3RvbS1nZXR0ZXItdGhyb3ctaW5saW5lZC1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjA5IEBACitUZXN0cyB0aGF0IERG
RyBjdXN0b20gZ2V0dGVyIGNhY2hpbmcgZG9lcyBub3QgYnJlYWsgdGhlIHdvcmxkIGlmIHRoZSBn
ZXR0ZXIgdGhyb3dzIGFuIGV4Y2VwdGlvbiBmcm9tIGlubGluZWQgY29kZS4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiUmV0dXJuZWQgcmVz
dWx0OiAwIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJSZXR1cm5lZCByZXN1bHQ6IDAiCitQQVNT
IGJhcihpID49IDEwMCkgaXMgIlJldHVybmVkIHJlc3VsdDogMCIKK1BBU1MgYmFyKGkgPj0gMTAw
KSBpcyAiUmV0dXJuZWQgcmVzdWx0OiAwIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJSZXR1cm5l
ZCByZXN1bHQ6IDAiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlJldHVybmVkIHJlc3VsdDogMCIK
K1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiAwIgorUEFTUyBiYXIoaSA+
PSAxMDApIGlzICJSZXR1cm5lZCByZXN1bHQ6IDAiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlJl
dHVybmVkIHJlc3VsdDogMCIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiUmV0dXJuZWQgcmVzdWx0
OiAwIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJSZXR1cm5lZCByZXN1bHQ6IDAiCitQQVNTIGJh
cihpID49IDEwMCkgaXMgIlJldHVybmVkIHJlc3VsdDogMCIKK1BBU1MgYmFyKGkgPj0gMTAwKSBp
cyAiUmV0dXJuZWQgcmVzdWx0OiAwIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJSZXR1cm5lZCBy
ZXN1bHQ6IDAiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlJldHVybmVkIHJlc3VsdDogMCIKK1BB
U1MgYmFyKGkgPj0gMTAwKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiAwIgorUEFTUyBiYXIoaSA+PSAx
MDApIGlzICJSZXR1cm5lZCByZXN1bHQ6IDAiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlJldHVy
bmVkIHJlc3VsdDogMCIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiAw
IgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJSZXR1cm5lZCByZXN1bHQ6IDAiCitQQVNTIGJhcihp
ID49IDEwMCkgaXMgIlJldHVybmVkIHJlc3VsdDogMCIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAi
UmV0dXJuZWQgcmVzdWx0OiAwIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJSZXR1cm5lZCByZXN1
bHQ6IDAiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlJldHVybmVkIHJlc3VsdDogMCIKK1BBU1Mg
YmFyKGkgPj0gMTAwKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiAwIgorUEFTUyBiYXIoaSA+PSAxMDAp
IGlzICJSZXR1cm5lZCByZXN1bHQ6IDAiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlJldHVybmVk
IHJlc3VsdDogMCIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiAwIgor
UEFTUyBiYXIoaSA+PSAxMDApIGlzICJSZXR1cm5lZCByZXN1bHQ6IDAiCitQQVNTIGJhcihpID49
IDEwMCkgaXMgIlJldHVybmVkIHJlc3VsdDogMCIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiUmV0
dXJuZWQgcmVzdWx0OiAwIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJSZXR1cm5lZCByZXN1bHQ6
IDAiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlJldHVybmVkIHJlc3VsdDogMCIKK1BBU1MgYmFy
KGkgPj0gMTAwKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiAwIgorUEFTUyBiYXIoaSA+PSAxMDApIGlz
ICJSZXR1cm5lZCByZXN1bHQ6IDAiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlJldHVybmVkIHJl
c3VsdDogMCIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiAwIgorUEFT
UyBiYXIoaSA+PSAxMDApIGlzICJSZXR1cm5lZCByZXN1bHQ6IDAiCitQQVNTIGJhcihpID49IDEw
MCkgaXMgIlJldHVybmVkIHJlc3VsdDogMCIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiUmV0dXJu
ZWQgcmVzdWx0OiAwIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJSZXR1cm5lZCByZXN1bHQ6IDAi
CitQQVNTIGJhcihpID49IDEwMCkgaXMgIlJldHVybmVkIHJlc3VsdDogMCIKK1BBU1MgYmFyKGkg
Pj0gMTAwKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiAwIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJS
ZXR1cm5lZCByZXN1bHQ6IDAiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlJldHVybmVkIHJlc3Vs
dDogMCIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiAwIgorUEFTUyBi
YXIoaSA+PSAxMDApIGlzICJSZXR1cm5lZCByZXN1bHQ6IDAiCitQQVNTIGJhcihpID49IDEwMCkg
aXMgIlJldHVybmVkIHJlc3VsdDogMCIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiUmV0dXJuZWQg
cmVzdWx0OiAwIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJSZXR1cm5lZCByZXN1bHQ6IDAiCitQ
QVNTIGJhcihpID49IDEwMCkgaXMgIlJldHVybmVkIHJlc3VsdDogMCIKK1BBU1MgYmFyKGkgPj0g
MTAwKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiAwIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJSZXR1
cm5lZCByZXN1bHQ6IDAiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlJldHVybmVkIHJlc3VsdDog
MCIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiAwIgorUEFTUyBiYXIo
aSA+PSAxMDApIGlzICJSZXR1cm5lZCByZXN1bHQ6IDAiCitQQVNTIGJhcihpID49IDEwMCkgaXMg
IlJldHVybmVkIHJlc3VsdDogMCIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiUmV0dXJuZWQgcmVz
dWx0OiAwIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJSZXR1cm5lZCByZXN1bHQ6IDAiCitQQVNT
IGJhcihpID49IDEwMCkgaXMgIlJldHVybmVkIHJlc3VsdDogMCIKK1BBU1MgYmFyKGkgPj0gMTAw
KSBpcyAiUmV0dXJuZWQgcmVzdWx0OiAwIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJSZXR1cm5l
ZCByZXN1bHQ6IDAiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlJldHVybmVkIHJlc3VsdDogMCIK
K1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiAwIgorUEFTUyBiYXIoaSA+
PSAxMDApIGlzICJSZXR1cm5lZCByZXN1bHQ6IDAiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlJl
dHVybmVkIHJlc3VsdDogMCIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiUmV0dXJuZWQgcmVzdWx0
OiAwIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJSZXR1cm5lZCByZXN1bHQ6IDAiCitQQVNTIGJh
cihpID49IDEwMCkgaXMgIlJldHVybmVkIHJlc3VsdDogMCIKK1BBU1MgYmFyKGkgPj0gMTAwKSBp
cyAiUmV0dXJuZWQgcmVzdWx0OiAwIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJSZXR1cm5lZCBy
ZXN1bHQ6IDAiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlJldHVybmVkIHJlc3VsdDogMCIKK1BB
U1MgYmFyKGkgPj0gMTAwKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiAwIgorUEFTUyBiYXIoaSA+PSAx
MDApIGlzICJSZXR1cm5lZCByZXN1bHQ6IDAiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlJldHVy
bmVkIHJlc3VsdDogMCIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiAw
IgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJSZXR1cm5lZCByZXN1bHQ6IDAiCitQQVNTIGJhcihp
ID49IDEwMCkgaXMgIlJldHVybmVkIHJlc3VsdDogMCIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAi
UmV0dXJuZWQgcmVzdWx0OiAwIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJSZXR1cm5lZCByZXN1
bHQ6IDAiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlJldHVybmVkIHJlc3VsdDogMCIKK1BBU1Mg
YmFyKGkgPj0gMTAwKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiAwIgorUEFTUyBiYXIoaSA+PSAxMDAp
IGlzICJSZXR1cm5lZCByZXN1bHQ6IDAiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlJldHVybmVk
IHJlc3VsdDogMCIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiAwIgor
UEFTUyBiYXIoaSA+PSAxMDApIGlzICJSZXR1cm5lZCByZXN1bHQ6IDAiCitQQVNTIGJhcihpID49
IDEwMCkgaXMgIlJldHVybmVkIHJlc3VsdDogMCIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiUmV0
dXJuZWQgcmVzdWx0OiAwIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJSZXR1cm5lZCByZXN1bHQ6
IDAiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlJldHVybmVkIHJlc3VsdDogMCIKK1BBU1MgYmFy
KGkgPj0gMTAwKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiAwIgorUEFTUyBiYXIoaSA+PSAxMDApIGlz
ICJSZXR1cm5lZCByZXN1bHQ6IDAiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlJldHVybmVkIHJl
c3VsdDogMCIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiAwIgorUEFT
UyBiYXIoaSA+PSAxMDApIGlzICJSZXR1cm5lZCByZXN1bHQ6IDAiCitQQVNTIGJhcihpID49IDEw
MCkgaXMgIlJldHVybmVkIHJlc3VsdDogMCIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiUmV0dXJu
ZWQgcmVzdWx0OiAwIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJSZXR1cm5lZCByZXN1bHQ6IDAi
CitQQVNTIGJhcihpID49IDEwMCkgaXMgIlJldHVybmVkIHJlc3VsdDogMCIKK1BBU1MgYmFyKGkg
Pj0gMTAwKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiAwIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJU
aHJldyBleGNlcHRpb246IEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAx
MSIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBFcnJvcjogSU5WQUxJ
RF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlRo
cmV3IGV4Y2VwdGlvbjogRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDEx
IgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJUaHJldyBleGNlcHRpb246IEVycm9yOiBJTlZBTElE
X1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiVGhy
ZXcgZXhjZXB0aW9uOiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEi
CitQQVNTIGJhcihpID49IDEwMCkgaXMgIlRocmV3IGV4Y2VwdGlvbjogRXJyb3I6IElOVkFMSURf
U1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJUaHJl
dyBleGNlcHRpb246IEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSIK
K1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBFcnJvcjogSU5WQUxJRF9T
VEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlRocmV3
IGV4Y2VwdGlvbjogRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExIgor
UEFTUyBiYXIoaSA+PSAxMDApIGlzICJUaHJldyBleGNlcHRpb246IEVycm9yOiBJTlZBTElEX1NU
QVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiVGhyZXcg
ZXhjZXB0aW9uOiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiCitQ
QVNTIGJhcihpID49IDEwMCkgaXMgIlRocmV3IGV4Y2VwdGlvbjogRXJyb3I6IElOVkFMSURfU1RB
VEVfRVJSOiBET00gRXhjZXB0aW9uIDExIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJUaHJldyBl
eGNlcHRpb246IEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSIKK1BB
U1MgYmFyKGkgPj0gMTAwKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBFcnJvcjogSU5WQUxJRF9TVEFU
RV9FUlI6IERPTSBFeGNlcHRpb24gMTEiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlRocmV3IGV4
Y2VwdGlvbjogRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExIgorUEFT
UyBiYXIoaSA+PSAxMDApIGlzICJUaHJldyBleGNlcHRpb246IEVycm9yOiBJTlZBTElEX1NUQVRF
X0VSUjogRE9NIEV4Y2VwdGlvbiAxMSIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiVGhyZXcgZXhj
ZXB0aW9uOiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiCitQQVNT
IGJhcihpID49IDEwMCkgaXMgIlRocmV3IGV4Y2VwdGlvbjogRXJyb3I6IElOVkFMSURfU1RBVEVf
RVJSOiBET00gRXhjZXB0aW9uIDExIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJUaHJldyBleGNl
cHRpb246IEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSIKK1BBU1Mg
YmFyKGkgPj0gMTAwKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBFcnJvcjogSU5WQUxJRF9TVEFURV9F
UlI6IERPTSBFeGNlcHRpb24gMTEiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlRocmV3IGV4Y2Vw
dGlvbjogRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExIgorUEFTUyBi
YXIoaSA+PSAxMDApIGlzICJUaHJldyBleGNlcHRpb246IEVycm9yOiBJTlZBTElEX1NUQVRFX0VS
UjogRE9NIEV4Y2VwdGlvbiAxMSIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiVGhyZXcgZXhjZXB0
aW9uOiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiCitQQVNTIGJh
cihpID49IDEwMCkgaXMgIlRocmV3IGV4Y2VwdGlvbjogRXJyb3I6IElOVkFMSURfU1RBVEVfRVJS
OiBET00gRXhjZXB0aW9uIDExIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJUaHJldyBleGNlcHRp
b246IEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSIKK1BBU1MgYmFy
KGkgPj0gMTAwKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6
IERPTSBFeGNlcHRpb24gMTEiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlRocmV3IGV4Y2VwdGlv
bjogRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExIgorUEFTUyBiYXIo
aSA+PSAxMDApIGlzICJUaHJldyBleGNlcHRpb246IEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjog
RE9NIEV4Y2VwdGlvbiAxMSIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiVGhyZXcgZXhjZXB0aW9u
OiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiCitQQVNTIGJhcihp
ID49IDEwMCkgaXMgIlRocmV3IGV4Y2VwdGlvbjogRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBE
T00gRXhjZXB0aW9uIDExIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJUaHJldyBleGNlcHRpb246
IEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSIKK1BBU1MgYmFyKGkg
Pj0gMTAwKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERP
TSBFeGNlcHRpb24gMTEiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlRocmV3IGV4Y2VwdGlvbjog
RXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExIgorUEFTUyBiYXIoaSA+
PSAxMDApIGlzICJUaHJldyBleGNlcHRpb246IEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9N
IEV4Y2VwdGlvbiAxMSIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBF
cnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiCitQQVNTIGJhcihpID49
IDEwMCkgaXMgIlRocmV3IGV4Y2VwdGlvbjogRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00g
RXhjZXB0aW9uIDExIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJUaHJldyBleGNlcHRpb246IEVy
cm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSIKK1BBU1MgYmFyKGkgPj0g
MTAwKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBF
eGNlcHRpb24gMTEiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlRocmV3IGV4Y2VwdGlvbjogRXJy
b3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExIgorUEFTUyBiYXIoaSA+PSAx
MDApIGlzICJUaHJldyBleGNlcHRpb246IEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4
Y2VwdGlvbiAxMSIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBFcnJv
cjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiCitQQVNTIGJhcihpID49IDEw
MCkgaXMgIlRocmV3IGV4Y2VwdGlvbjogRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhj
ZXB0aW9uIDExIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJUaHJldyBleGNlcHRpb246IEVycm9y
OiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSIKK1BBU1MgYmFyKGkgPj0gMTAw
KSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNl
cHRpb24gMTEiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlRocmV3IGV4Y2VwdGlvbjogRXJyb3I6
IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExIgorUEFTUyBiYXIoaSA+PSAxMDAp
IGlzICJUaHJldyBleGNlcHRpb246IEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2Vw
dGlvbiAxMSIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBFcnJvcjog
SU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiCitQQVNTIGJhcihpID49IDEwMCkg
aXMgIlRocmV3IGV4Y2VwdGlvbjogRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0
aW9uIDExIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJUaHJldyBleGNlcHRpb246IEVycm9yOiBJ
TlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSIKK1BBU1MgYmFyKGkgPj0gMTAwKSBp
cyAiVGhyZXcgZXhjZXB0aW9uOiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRp
b24gMTEiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlRocmV3IGV4Y2VwdGlvbjogRXJyb3I6IElO
VkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExIgorUEFTUyBiYXIoaSA+PSAxMDApIGlz
ICJUaHJldyBleGNlcHRpb246IEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlv
biAxMSIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBFcnJvcjogSU5W
QUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiCitQQVNTIGJhcihpID49IDEwMCkgaXMg
IlRocmV3IGV4Y2VwdGlvbjogRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9u
IDExIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJUaHJldyBleGNlcHRpb246IEVycm9yOiBJTlZB
TElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAi
VGhyZXcgZXhjZXB0aW9uOiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24g
MTEiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlRocmV3IGV4Y2VwdGlvbjogRXJyb3I6IElOVkFM
SURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJU
aHJldyBleGNlcHRpb246IEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAx
MSIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBFcnJvcjogSU5WQUxJ
RF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlRo
cmV3IGV4Y2VwdGlvbjogRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDEx
IgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJUaHJldyBleGNlcHRpb246IEVycm9yOiBJTlZBTElE
X1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiVGhy
ZXcgZXhjZXB0aW9uOiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEi
CitQQVNTIGJhcihpID49IDEwMCkgaXMgIlRocmV3IGV4Y2VwdGlvbjogRXJyb3I6IElOVkFMSURf
U1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJUaHJl
dyBleGNlcHRpb246IEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSIK
K1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBFcnJvcjogSU5WQUxJRF9T
VEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlRocmV3
IGV4Y2VwdGlvbjogRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExIgor
UEFTUyBiYXIoaSA+PSAxMDApIGlzICJUaHJldyBleGNlcHRpb246IEVycm9yOiBJTlZBTElEX1NU
QVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiVGhyZXcg
ZXhjZXB0aW9uOiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiCitQ
QVNTIGJhcihpID49IDEwMCkgaXMgIlRocmV3IGV4Y2VwdGlvbjogRXJyb3I6IElOVkFMSURfU1RB
VEVfRVJSOiBET00gRXhjZXB0aW9uIDExIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJUaHJldyBl
eGNlcHRpb246IEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSIKK1BB
U1MgYmFyKGkgPj0gMTAwKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBFcnJvcjogSU5WQUxJRF9TVEFU
RV9FUlI6IERPTSBFeGNlcHRpb24gMTEiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlRocmV3IGV4
Y2VwdGlvbjogRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExIgorUEFT
UyBiYXIoaSA+PSAxMDApIGlzICJUaHJldyBleGNlcHRpb246IEVycm9yOiBJTlZBTElEX1NUQVRF
X0VSUjogRE9NIEV4Y2VwdGlvbiAxMSIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiVGhyZXcgZXhj
ZXB0aW9uOiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiCitQQVNT
IGJhcihpID49IDEwMCkgaXMgIlRocmV3IGV4Y2VwdGlvbjogRXJyb3I6IElOVkFMSURfU1RBVEVf
RVJSOiBET00gRXhjZXB0aW9uIDExIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJUaHJldyBleGNl
cHRpb246IEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSIKK1BBU1Mg
YmFyKGkgPj0gMTAwKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBFcnJvcjogSU5WQUxJRF9TVEFURV9F
UlI6IERPTSBFeGNlcHRpb24gMTEiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlRocmV3IGV4Y2Vw
dGlvbjogRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExIgorUEFTUyBi
YXIoaSA+PSAxMDApIGlzICJUaHJldyBleGNlcHRpb246IEVycm9yOiBJTlZBTElEX1NUQVRFX0VS
UjogRE9NIEV4Y2VwdGlvbiAxMSIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiVGhyZXcgZXhjZXB0
aW9uOiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiCitQQVNTIGJh
cihpID49IDEwMCkgaXMgIlRocmV3IGV4Y2VwdGlvbjogRXJyb3I6IElOVkFMSURfU1RBVEVfRVJS
OiBET00gRXhjZXB0aW9uIDExIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJUaHJldyBleGNlcHRp
b246IEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSIKK1BBU1MgYmFy
KGkgPj0gMTAwKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6
IERPTSBFeGNlcHRpb24gMTEiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlRocmV3IGV4Y2VwdGlv
bjogRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExIgorUEFTUyBiYXIo
aSA+PSAxMDApIGlzICJUaHJldyBleGNlcHRpb246IEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjog
RE9NIEV4Y2VwdGlvbiAxMSIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiVGhyZXcgZXhjZXB0aW9u
OiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiCitQQVNTIGJhcihp
ID49IDEwMCkgaXMgIlRocmV3IGV4Y2VwdGlvbjogRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBE
T00gRXhjZXB0aW9uIDExIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJUaHJldyBleGNlcHRpb246
IEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSIKK1BBU1MgYmFyKGkg
Pj0gMTAwKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERP
TSBFeGNlcHRpb24gMTEiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlRocmV3IGV4Y2VwdGlvbjog
RXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExIgorUEFTUyBiYXIoaSA+
PSAxMDApIGlzICJUaHJldyBleGNlcHRpb246IEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9N
IEV4Y2VwdGlvbiAxMSIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBF
cnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiCitQQVNTIGJhcihpID49
IDEwMCkgaXMgIlRocmV3IGV4Y2VwdGlvbjogRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00g
RXhjZXB0aW9uIDExIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJUaHJldyBleGNlcHRpb246IEVy
cm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSIKK1BBU1MgYmFyKGkgPj0g
MTAwKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBF
eGNlcHRpb24gMTEiCitQQVNTIGJhcihpID49IDEwMCkgaXMgIlRocmV3IGV4Y2VwdGlvbjogRXJy
b3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExIgorUEFTUyBiYXIoaSA+PSAx
MDApIGlzICJUaHJldyBleGNlcHRpb246IEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4
Y2VwdGlvbiAxMSIKK1BBU1MgYmFyKGkgPj0gMTAwKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBFcnJv
cjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiCitQQVNTIGJhcihpID49IDEw
MCkgaXMgIlRocmV3IGV4Y2VwdGlvbjogRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhj
ZXB0aW9uIDExIgorUEFTUyBiYXIoaSA+PSAxMDApIGlzICJUaHJldyBleGNlcHRpb246IEVycm9y
OiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2pzL2RmZy1jdXN0b20tZ2V0dGVyLXRocm93LWlubGluZWQuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2pzL2RmZy1jdXN0b20tZ2V0dGVyLXRocm93LWlubGluZWQuaHRtbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvanMvZGZnLWN1c3RvbS1nZXR0ZXItdGhy
b3ctaW5saW5lZC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEwIEBACis8IURPQ1RZUEUg
SFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZGZnLWN1c3RvbS1nZXR0ZXItdGhyb3ct
aW5saW5lZC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2pzL2RmZy1jdXN0b20tZ2V0dGVyLXRocm93Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9qcy9kZmctY3VzdG9tLWdldHRlci10aHJvdy5odG1sCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9qcy9kZmctY3VzdG9tLWdldHRlci10aHJvdy5odG1sCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDEwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RU
RCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJzY3Jp
cHQtdGVzdHMvZGZnLWN1c3RvbS1nZXR0ZXItdGhyb3cuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9kZmctY3VzdG9tLWdldHRlci5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvZGZnLWN1c3RvbS1nZXR0ZXIuaHRtbAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvanMvZGZnLWN1c3RvbS1nZXR0ZXIuaHRtbAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9J
RVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJt
eUZpcnN0RGl2Ij5Tb21lIHN0dWZmPC9kaXY+Cis8ZGl2IGlkPSJhbm90aGVyRGl2Ij5Nb3JlIHN0
dWZmPC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2RmZy1jdXN0b20tZ2V0dGVyLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvZGZnLWdl
dHRlci1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9kZmct
Z2V0dGVyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvanMv
ZGZnLWdldHRlci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjA5IEBACitU
ZXN0cyB0aGF0IERGRyBnZXR0ZXIgY2FjaGluZyBkb2VzIG5vdCBicmVhayB0aGUgd29ybGQuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGZvbyhvKSBpcyAwCitQQVNTIGZv
byhvKSBpcyAxCitQQVNTIGZvbyhvKSBpcyAyCitQQVNTIGZvbyhvKSBpcyAzCitQQVNTIGZvbyhv
KSBpcyA0CitQQVNTIGZvbyhvKSBpcyA1CitQQVNTIGZvbyhvKSBpcyA2CitQQVNTIGZvbyhvKSBp
cyA3CitQQVNTIGZvbyhvKSBpcyA4CitQQVNTIGZvbyhvKSBpcyA5CitQQVNTIGZvbyhvKSBpcyAx
MAorUEFTUyBmb28obykgaXMgMTEKK1BBU1MgZm9vKG8pIGlzIDEyCitQQVNTIGZvbyhvKSBpcyAx
MworUEFTUyBmb28obykgaXMgMTQKK1BBU1MgZm9vKG8pIGlzIDE1CitQQVNTIGZvbyhvKSBpcyAx
NgorUEFTUyBmb28obykgaXMgMTcKK1BBU1MgZm9vKG8pIGlzIDE4CitQQVNTIGZvbyhvKSBpcyAx
OQorUEFTUyBmb28obykgaXMgMjAKK1BBU1MgZm9vKG8pIGlzIDIxCitQQVNTIGZvbyhvKSBpcyAy
MgorUEFTUyBmb28obykgaXMgMjMKK1BBU1MgZm9vKG8pIGlzIDI0CitQQVNTIGZvbyhvKSBpcyAy
NQorUEFTUyBmb28obykgaXMgMjYKK1BBU1MgZm9vKG8pIGlzIDI3CitQQVNTIGZvbyhvKSBpcyAy
OAorUEFTUyBmb28obykgaXMgMjkKK1BBU1MgZm9vKG8pIGlzIDMwCitQQVNTIGZvbyhvKSBpcyAz
MQorUEFTUyBmb28obykgaXMgMzIKK1BBU1MgZm9vKG8pIGlzIDMzCitQQVNTIGZvbyhvKSBpcyAz
NAorUEFTUyBmb28obykgaXMgMzUKK1BBU1MgZm9vKG8pIGlzIDM2CitQQVNTIGZvbyhvKSBpcyAz
NworUEFTUyBmb28obykgaXMgMzgKK1BBU1MgZm9vKG8pIGlzIDM5CitQQVNTIGZvbyhvKSBpcyA0
MAorUEFTUyBmb28obykgaXMgNDEKK1BBU1MgZm9vKG8pIGlzIDQyCitQQVNTIGZvbyhvKSBpcyA0
MworUEFTUyBmb28obykgaXMgNDQKK1BBU1MgZm9vKG8pIGlzIDQ1CitQQVNTIGZvbyhvKSBpcyA0
NgorUEFTUyBmb28obykgaXMgNDcKK1BBU1MgZm9vKG8pIGlzIDQ4CitQQVNTIGZvbyhvKSBpcyA0
OQorUEFTUyBmb28obykgaXMgNTAKK1BBU1MgZm9vKG8pIGlzIDUxCitQQVNTIGZvbyhvKSBpcyA1
MgorUEFTUyBmb28obykgaXMgNTMKK1BBU1MgZm9vKG8pIGlzIDU0CitQQVNTIGZvbyhvKSBpcyA1
NQorUEFTUyBmb28obykgaXMgNTYKK1BBU1MgZm9vKG8pIGlzIDU3CitQQVNTIGZvbyhvKSBpcyA1
OAorUEFTUyBmb28obykgaXMgNTkKK1BBU1MgZm9vKG8pIGlzIDYwCitQQVNTIGZvbyhvKSBpcyA2
MQorUEFTUyBmb28obykgaXMgNjIKK1BBU1MgZm9vKG8pIGlzIDYzCitQQVNTIGZvbyhvKSBpcyA2
NAorUEFTUyBmb28obykgaXMgNjUKK1BBU1MgZm9vKG8pIGlzIDY2CitQQVNTIGZvbyhvKSBpcyA2
NworUEFTUyBmb28obykgaXMgNjgKK1BBU1MgZm9vKG8pIGlzIDY5CitQQVNTIGZvbyhvKSBpcyA3
MAorUEFTUyBmb28obykgaXMgNzEKK1BBU1MgZm9vKG8pIGlzIDcyCitQQVNTIGZvbyhvKSBpcyA3
MworUEFTUyBmb28obykgaXMgNzQKK1BBU1MgZm9vKG8pIGlzIDc1CitQQVNTIGZvbyhvKSBpcyA3
NgorUEFTUyBmb28obykgaXMgNzcKK1BBU1MgZm9vKG8pIGlzIDc4CitQQVNTIGZvbyhvKSBpcyA3
OQorUEFTUyBmb28obykgaXMgODAKK1BBU1MgZm9vKG8pIGlzIDgxCitQQVNTIGZvbyhvKSBpcyA4
MgorUEFTUyBmb28obykgaXMgODMKK1BBU1MgZm9vKG8pIGlzIDg0CitQQVNTIGZvbyhvKSBpcyA4
NQorUEFTUyBmb28obykgaXMgODYKK1BBU1MgZm9vKG8pIGlzIDg3CitQQVNTIGZvbyhvKSBpcyA4
OAorUEFTUyBmb28obykgaXMgODkKK1BBU1MgZm9vKG8pIGlzIDkwCitQQVNTIGZvbyhvKSBpcyA5
MQorUEFTUyBmb28obykgaXMgOTIKK1BBU1MgZm9vKG8pIGlzIDkzCitQQVNTIGZvbyhvKSBpcyA5
NAorUEFTUyBmb28obykgaXMgOTUKK1BBU1MgZm9vKG8pIGlzIDk2CitQQVNTIGZvbyhvKSBpcyA5
NworUEFTUyBmb28obykgaXMgOTgKK1BBU1MgZm9vKG8pIGlzIDk5CitQQVNTIGZvbyhvKSBpcyAx
MDAKK1BBU1MgZm9vKG8pIGlzIDEwMQorUEFTUyBmb28obykgaXMgMTAyCitQQVNTIGZvbyhvKSBp
cyAxMDMKK1BBU1MgZm9vKG8pIGlzIDEwNAorUEFTUyBmb28obykgaXMgMTA1CitQQVNTIGZvbyhv
KSBpcyAxMDYKK1BBU1MgZm9vKG8pIGlzIDEwNworUEFTUyBmb28obykgaXMgMTA4CitQQVNTIGZv
byhvKSBpcyAxMDkKK1BBU1MgZm9vKG8pIGlzIDExMAorUEFTUyBmb28obykgaXMgMTExCitQQVNT
IGZvbyhvKSBpcyAxMTIKK1BBU1MgZm9vKG8pIGlzIDExMworUEFTUyBmb28obykgaXMgMTE0CitQ
QVNTIGZvbyhvKSBpcyAxMTUKK1BBU1MgZm9vKG8pIGlzIDExNgorUEFTUyBmb28obykgaXMgMTE3
CitQQVNTIGZvbyhvKSBpcyAxMTgKK1BBU1MgZm9vKG8pIGlzIDExOQorUEFTUyBmb28obykgaXMg
MTIwCitQQVNTIGZvbyhvKSBpcyAxMjEKK1BBU1MgZm9vKG8pIGlzIDEyMgorUEFTUyBmb28obykg
aXMgMTIzCitQQVNTIGZvbyhvKSBpcyAxMjQKK1BBU1MgZm9vKG8pIGlzIDEyNQorUEFTUyBmb28o
bykgaXMgMTI2CitQQVNTIGZvbyhvKSBpcyAxMjcKK1BBU1MgZm9vKG8pIGlzIDEyOAorUEFTUyBm
b28obykgaXMgMTI5CitQQVNTIGZvbyhvKSBpcyAxMzAKK1BBU1MgZm9vKG8pIGlzIDEzMQorUEFT
UyBmb28obykgaXMgMTMyCitQQVNTIGZvbyhvKSBpcyAxMzMKK1BBU1MgZm9vKG8pIGlzIDEzNAor
UEFTUyBmb28obykgaXMgMTM1CitQQVNTIGZvbyhvKSBpcyAxMzYKK1BBU1MgZm9vKG8pIGlzIDEz
NworUEFTUyBmb28obykgaXMgMTM4CitQQVNTIGZvbyhvKSBpcyAxMzkKK1BBU1MgZm9vKG8pIGlz
IDE0MAorUEFTUyBmb28obykgaXMgMTQxCitQQVNTIGZvbyhvKSBpcyAxNDIKK1BBU1MgZm9vKG8p
IGlzIDE0MworUEFTUyBmb28obykgaXMgMTQ0CitQQVNTIGZvbyhvKSBpcyAxNDUKK1BBU1MgZm9v
KG8pIGlzIDE0NgorUEFTUyBmb28obykgaXMgMTQ3CitQQVNTIGZvbyhvKSBpcyAxNDgKK1BBU1Mg
Zm9vKG8pIGlzIDE0OQorUEFTUyBmb28obykgaXMgMTUwCitQQVNTIGZvbyhvKSBpcyAxNTEKK1BB
U1MgZm9vKG8pIGlzIDE1MgorUEFTUyBmb28obykgaXMgMTUzCitQQVNTIGZvbyhvKSBpcyAxNTQK
K1BBU1MgZm9vKG8pIGlzIDE1NQorUEFTUyBmb28obykgaXMgMTU2CitQQVNTIGZvbyhvKSBpcyAx
NTcKK1BBU1MgZm9vKG8pIGlzIDE1OAorUEFTUyBmb28obykgaXMgMTU5CitQQVNTIGZvbyhvKSBp
cyAxNjAKK1BBU1MgZm9vKG8pIGlzIDE2MQorUEFTUyBmb28obykgaXMgMTYyCitQQVNTIGZvbyhv
KSBpcyAxNjMKK1BBU1MgZm9vKG8pIGlzIDE2NAorUEFTUyBmb28obykgaXMgMTY1CitQQVNTIGZv
byhvKSBpcyAxNjYKK1BBU1MgZm9vKG8pIGlzIDE2NworUEFTUyBmb28obykgaXMgMTY4CitQQVNT
IGZvbyhvKSBpcyAxNjkKK1BBU1MgZm9vKG8pIGlzIDE3MAorUEFTUyBmb28obykgaXMgMTcxCitQ
QVNTIGZvbyhvKSBpcyAxNzIKK1BBU1MgZm9vKG8pIGlzIDE3MworUEFTUyBmb28obykgaXMgMTc0
CitQQVNTIGZvbyhvKSBpcyAxNzUKK1BBU1MgZm9vKG8pIGlzIDE3NgorUEFTUyBmb28obykgaXMg
MTc3CitQQVNTIGZvbyhvKSBpcyAxNzgKK1BBU1MgZm9vKG8pIGlzIDE3OQorUEFTUyBmb28obykg
aXMgMTgwCitQQVNTIGZvbyhvKSBpcyAxODEKK1BBU1MgZm9vKG8pIGlzIDE4MgorUEFTUyBmb28o
bykgaXMgMTgzCitQQVNTIGZvbyhvKSBpcyAxODQKK1BBU1MgZm9vKG8pIGlzIDE4NQorUEFTUyBm
b28obykgaXMgMTg2CitQQVNTIGZvbyhvKSBpcyAxODcKK1BBU1MgZm9vKG8pIGlzIDE4OAorUEFT
UyBmb28obykgaXMgMTg5CitQQVNTIGZvbyhvKSBpcyAxOTAKK1BBU1MgZm9vKG8pIGlzIDE5MQor
UEFTUyBmb28obykgaXMgMTkyCitQQVNTIGZvbyhvKSBpcyAxOTMKK1BBU1MgZm9vKG8pIGlzIDE5
NAorUEFTUyBmb28obykgaXMgMTk1CitQQVNTIGZvbyhvKSBpcyAxOTYKK1BBU1MgZm9vKG8pIGlz
IDE5NworUEFTUyBmb28obykgaXMgMTk4CitQQVNTIGZvbyhvKSBpcyAxOTkKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2pzL2RmZy1nZXR0ZXItdGhyb3ctZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvanMvZGZnLWdldHRlci10aHJvdy1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL2RmZy1nZXR0ZXItdGhyb3ctZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIwOSBAQAorVGVzdHMgdGhhdCBERkcgZ2V0dGVyIGNh
Y2hpbmcgZG9lcyBub3QgYnJlYWsgdGhlIHdvcmxkIGlmIHRoZSBnZXR0ZXIgdGhyb3dzIGFuIGV4
Y2VwdGlvbi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgYmFyKG8pIGlz
ICJSZXR1cm5lZCByZXN1bHQ6IDAiCitQQVNTIGJhcihvKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiAx
IgorUEFTUyBiYXIobykgaXMgIlJldHVybmVkIHJlc3VsdDogMiIKK1BBU1MgYmFyKG8pIGlzICJS
ZXR1cm5lZCByZXN1bHQ6IDMiCitQQVNTIGJhcihvKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiA0Igor
UEFTUyBiYXIobykgaXMgIlJldHVybmVkIHJlc3VsdDogNSIKK1BBU1MgYmFyKG8pIGlzICJSZXR1
cm5lZCByZXN1bHQ6IDYiCitQQVNTIGJhcihvKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiA3IgorUEFT
UyBiYXIobykgaXMgIlJldHVybmVkIHJlc3VsdDogOCIKK1BBU1MgYmFyKG8pIGlzICJSZXR1cm5l
ZCByZXN1bHQ6IDkiCitQQVNTIGJhcihvKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiAxMCIKK1BBU1Mg
YmFyKG8pIGlzICJSZXR1cm5lZCByZXN1bHQ6IDExIgorUEFTUyBiYXIobykgaXMgIlJldHVybmVk
IHJlc3VsdDogMTIiCitQQVNTIGJhcihvKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiAxMyIKK1BBU1Mg
YmFyKG8pIGlzICJSZXR1cm5lZCByZXN1bHQ6IDE0IgorUEFTUyBiYXIobykgaXMgIlJldHVybmVk
IHJlc3VsdDogMTUiCitQQVNTIGJhcihvKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiAxNiIKK1BBU1Mg
YmFyKG8pIGlzICJSZXR1cm5lZCByZXN1bHQ6IDE3IgorUEFTUyBiYXIobykgaXMgIlJldHVybmVk
IHJlc3VsdDogMTgiCitQQVNTIGJhcihvKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiAxOSIKK1BBU1Mg
YmFyKG8pIGlzICJSZXR1cm5lZCByZXN1bHQ6IDIwIgorUEFTUyBiYXIobykgaXMgIlJldHVybmVk
IHJlc3VsdDogMjEiCitQQVNTIGJhcihvKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiAyMiIKK1BBU1Mg
YmFyKG8pIGlzICJSZXR1cm5lZCByZXN1bHQ6IDIzIgorUEFTUyBiYXIobykgaXMgIlJldHVybmVk
IHJlc3VsdDogMjQiCitQQVNTIGJhcihvKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiAyNSIKK1BBU1Mg
YmFyKG8pIGlzICJSZXR1cm5lZCByZXN1bHQ6IDI2IgorUEFTUyBiYXIobykgaXMgIlJldHVybmVk
IHJlc3VsdDogMjciCitQQVNTIGJhcihvKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiAyOCIKK1BBU1Mg
YmFyKG8pIGlzICJSZXR1cm5lZCByZXN1bHQ6IDI5IgorUEFTUyBiYXIobykgaXMgIlJldHVybmVk
IHJlc3VsdDogMzAiCitQQVNTIGJhcihvKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiAzMSIKK1BBU1Mg
YmFyKG8pIGlzICJSZXR1cm5lZCByZXN1bHQ6IDMyIgorUEFTUyBiYXIobykgaXMgIlJldHVybmVk
IHJlc3VsdDogMzMiCitQQVNTIGJhcihvKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiAzNCIKK1BBU1Mg
YmFyKG8pIGlzICJSZXR1cm5lZCByZXN1bHQ6IDM1IgorUEFTUyBiYXIobykgaXMgIlJldHVybmVk
IHJlc3VsdDogMzYiCitQQVNTIGJhcihvKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiAzNyIKK1BBU1Mg
YmFyKG8pIGlzICJSZXR1cm5lZCByZXN1bHQ6IDM4IgorUEFTUyBiYXIobykgaXMgIlJldHVybmVk
IHJlc3VsdDogMzkiCitQQVNTIGJhcihvKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiA0MCIKK1BBU1Mg
YmFyKG8pIGlzICJSZXR1cm5lZCByZXN1bHQ6IDQxIgorUEFTUyBiYXIobykgaXMgIlJldHVybmVk
IHJlc3VsdDogNDIiCitQQVNTIGJhcihvKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiA0MyIKK1BBU1Mg
YmFyKG8pIGlzICJSZXR1cm5lZCByZXN1bHQ6IDQ0IgorUEFTUyBiYXIobykgaXMgIlJldHVybmVk
IHJlc3VsdDogNDUiCitQQVNTIGJhcihvKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiA0NiIKK1BBU1Mg
YmFyKG8pIGlzICJSZXR1cm5lZCByZXN1bHQ6IDQ3IgorUEFTUyBiYXIobykgaXMgIlJldHVybmVk
IHJlc3VsdDogNDgiCitQQVNTIGJhcihvKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiA0OSIKK1BBU1Mg
YmFyKG8pIGlzICJSZXR1cm5lZCByZXN1bHQ6IDUwIgorUEFTUyBiYXIobykgaXMgIlJldHVybmVk
IHJlc3VsdDogNTEiCitQQVNTIGJhcihvKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiA1MiIKK1BBU1Mg
YmFyKG8pIGlzICJSZXR1cm5lZCByZXN1bHQ6IDUzIgorUEFTUyBiYXIobykgaXMgIlJldHVybmVk
IHJlc3VsdDogNTQiCitQQVNTIGJhcihvKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiA1NSIKK1BBU1Mg
YmFyKG8pIGlzICJSZXR1cm5lZCByZXN1bHQ6IDU2IgorUEFTUyBiYXIobykgaXMgIlJldHVybmVk
IHJlc3VsdDogNTciCitQQVNTIGJhcihvKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiA1OCIKK1BBU1Mg
YmFyKG8pIGlzICJSZXR1cm5lZCByZXN1bHQ6IDU5IgorUEFTUyBiYXIobykgaXMgIlJldHVybmVk
IHJlc3VsdDogNjAiCitQQVNTIGJhcihvKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiA2MSIKK1BBU1Mg
YmFyKG8pIGlzICJSZXR1cm5lZCByZXN1bHQ6IDYyIgorUEFTUyBiYXIobykgaXMgIlJldHVybmVk
IHJlc3VsdDogNjMiCitQQVNTIGJhcihvKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiA2NCIKK1BBU1Mg
YmFyKG8pIGlzICJSZXR1cm5lZCByZXN1bHQ6IDY1IgorUEFTUyBiYXIobykgaXMgIlJldHVybmVk
IHJlc3VsdDogNjYiCitQQVNTIGJhcihvKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiA2NyIKK1BBU1Mg
YmFyKG8pIGlzICJSZXR1cm5lZCByZXN1bHQ6IDY4IgorUEFTUyBiYXIobykgaXMgIlJldHVybmVk
IHJlc3VsdDogNjkiCitQQVNTIGJhcihvKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiA3MCIKK1BBU1Mg
YmFyKG8pIGlzICJSZXR1cm5lZCByZXN1bHQ6IDcxIgorUEFTUyBiYXIobykgaXMgIlJldHVybmVk
IHJlc3VsdDogNzIiCitQQVNTIGJhcihvKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiA3MyIKK1BBU1Mg
YmFyKG8pIGlzICJSZXR1cm5lZCByZXN1bHQ6IDc0IgorUEFTUyBiYXIobykgaXMgIlJldHVybmVk
IHJlc3VsdDogNzUiCitQQVNTIGJhcihvKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiA3NiIKK1BBU1Mg
YmFyKG8pIGlzICJSZXR1cm5lZCByZXN1bHQ6IDc3IgorUEFTUyBiYXIobykgaXMgIlJldHVybmVk
IHJlc3VsdDogNzgiCitQQVNTIGJhcihvKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiA3OSIKK1BBU1Mg
YmFyKG8pIGlzICJSZXR1cm5lZCByZXN1bHQ6IDgwIgorUEFTUyBiYXIobykgaXMgIlJldHVybmVk
IHJlc3VsdDogODEiCitQQVNTIGJhcihvKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiA4MiIKK1BBU1Mg
YmFyKG8pIGlzICJSZXR1cm5lZCByZXN1bHQ6IDgzIgorUEFTUyBiYXIobykgaXMgIlJldHVybmVk
IHJlc3VsdDogODQiCitQQVNTIGJhcihvKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiA4NSIKK1BBU1Mg
YmFyKG8pIGlzICJSZXR1cm5lZCByZXN1bHQ6IDg2IgorUEFTUyBiYXIobykgaXMgIlJldHVybmVk
IHJlc3VsdDogODciCitQQVNTIGJhcihvKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiA4OCIKK1BBU1Mg
YmFyKG8pIGlzICJSZXR1cm5lZCByZXN1bHQ6IDg5IgorUEFTUyBiYXIobykgaXMgIlJldHVybmVk
IHJlc3VsdDogOTAiCitQQVNTIGJhcihvKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiA5MSIKK1BBU1Mg
YmFyKG8pIGlzICJSZXR1cm5lZCByZXN1bHQ6IDkyIgorUEFTUyBiYXIobykgaXMgIlJldHVybmVk
IHJlc3VsdDogOTMiCitQQVNTIGJhcihvKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiA5NCIKK1BBU1Mg
YmFyKG8pIGlzICJSZXR1cm5lZCByZXN1bHQ6IDk1IgorUEFTUyBiYXIobykgaXMgIlJldHVybmVk
IHJlc3VsdDogOTYiCitQQVNTIGJhcihvKSBpcyAiUmV0dXJuZWQgcmVzdWx0OiA5NyIKK1BBU1Mg
YmFyKG8pIGlzICJSZXR1cm5lZCByZXN1bHQ6IDk4IgorUEFTUyBiYXIobykgaXMgIlJldHVybmVk
IHJlc3VsdDogOTkiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdt
IGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwg
SSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBo
aSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBP
aCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9u
OiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0
aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhj
ZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcg
ZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhy
ZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAi
VGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBp
cyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihv
KSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJh
cihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNT
IGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQ
QVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEi
CitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlv
biEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2Vw
dGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4
Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFu
IGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdt
IGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwg
SSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBo
aSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBP
aCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9u
OiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0
aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhj
ZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcg
ZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhy
ZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAi
VGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBp
cyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihv
KSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJh
cihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNT
IGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQ
QVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEi
CitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlv
biEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2Vw
dGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4
Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFu
IGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdt
IGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwg
SSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBo
aSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBP
aCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9u
OiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0
aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhj
ZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcg
ZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhy
ZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAi
VGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBp
cyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihv
KSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJh
cihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNT
IGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQ
QVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEi
CitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlv
biEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2Vw
dGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4
Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFu
IGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdt
IGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwg
SSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBo
aSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBP
aCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9u
OiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0
aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhj
ZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcg
ZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhy
ZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAi
VGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBp
cyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihv
KSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJh
cihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNT
IGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQ
QVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEi
CitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlv
biEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2Vw
dGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4
Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFu
IGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdt
IGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwg
SSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBo
aSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBP
aCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9u
OiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0
aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhj
ZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcg
ZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhy
ZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAi
VGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBp
cyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihv
KSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJh
cihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNT
IGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQ
QVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEi
CitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlv
biEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4Y2Vw
dGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFuIGV4
Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdtIGFu
IGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwgSSdt
IGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBoaSwg
SSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBPaCBo
aSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9uOiBP
aCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIGJhcihvKSBpcyAiVGhyZXcgZXhjZXB0aW9u
OiBPaCBoaSwgSSdtIGFuIGV4Y2VwdGlvbiEiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9kZmctZ2V0
dGVyLXRocm93Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9kZmctZ2V0
dGVyLXRocm93Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL2RmZy1n
ZXR0ZXItdGhyb3cuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMCBAQAorPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2RmZy1nZXR0ZXItdGhyb3cuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9kZmctZ2V0dGVy
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9kZmctZ2V0dGVyLmh0bWwJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL2RmZy1nZXR0ZXIuaHRtbAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwxMCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRG
Ly9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0i
c2NyaXB0LXRlc3RzL2RmZy1nZXR0ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvZGZnLWN1c3RvbS1nZXR0ZXItdGhyb3ct
aW5saW5lZC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0
cy9kZmctY3VzdG9tLWdldHRlci10aHJvdy1pbmxpbmVkLmpzCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvZGZnLWN1c3RvbS1nZXR0ZXItdGhyb3ctaW5s
aW5lZC5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyOCBAQAorZGVzY3JpcHRpb24oCisiVGVz
dHMgdGhhdCBERkcgY3VzdG9tIGdldHRlciBjYWNoaW5nIGRvZXMgbm90IGJyZWFrIHRoZSB3b3Js
ZCBpZiB0aGUgZ2V0dGVyIHRocm93cyBhbiBleGNlcHRpb24gZnJvbSBpbmxpbmVkIGNvZGUuIgor
KTsKKworZnVuY3Rpb24gZm9vKHgpIHsKKyAgICByZXR1cm4geC5zdGF0dXM7Cit9CisKK2Z1bmN0
aW9uIGJheih4KSB7CisgICAgcmV0dXJuIGZvbyh4KTsKK30KKworZnVuY3Rpb24gYmFyKGRvT3Bl
bikgeworICAgIHZhciB4ID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CisgICAgaWYgKGRvT3BlbikK
KyAgICAgICAgeC5vcGVuKCJHRVQiLCAiaHR0cDovL2Zvby5iYXIuY29tLyIpOworICAgIHRyeSB7
CisgICAgICAgIHJldHVybiAiUmV0dXJuZWQgcmVzdWx0OiAiICsgYmF6KHgpOworICAgIH0gY2F0
Y2ggKGUpIHsKKyAgICAgICAgcmV0dXJuICJUaHJldyBleGNlcHRpb246ICIgKyBlOworICAgIH0K
K30KKworZm9yICh2YXIgaSA9IDA7IGkgPCAyMDA7ICsraSkgeworICAgIHNob3VsZEJlKCJiYXIo
aSA+PSAxMDApIiwgaSA+PSAxMDAgPyAiXCJUaHJldyBleGNlcHRpb246IEVycm9yOiBJTlZBTElE
X1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMVwiIiA6ICJcIlJldHVybmVkIHJlc3VsdDogMFwi
Iik7Cit9CisKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvZGZnLWN1
c3RvbS1nZXR0ZXItdGhyb3cuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9z
Y3JpcHQtdGVzdHMvZGZnLWN1c3RvbS1nZXR0ZXItdGhyb3cuanMJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9kZmctY3VzdG9tLWdldHRlci10aHJvdy5q
cwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNCBAQAorZGVzY3JpcHRpb24oCisiVGVzdHMgdGhh
dCBERkcgY3VzdG9tIGdldHRlciBjYWNoaW5nIGRvZXMgbm90IGJyZWFrIHRoZSB3b3JsZCBpZiB0
aGUgZ2V0dGVyIHRocm93cyBhbiBleGNlcHRpb24uIgorKTsKKworZnVuY3Rpb24gZm9vKHgpIHsK
KyAgICByZXR1cm4geC5zdGF0dXM7Cit9CisKK2Z1bmN0aW9uIGJhcihkb09wZW4pIHsKKyAgICB2
YXIgeCA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICAgIGlmIChkb09wZW4pCisgICAgICAgIHgu
b3BlbigiR0VUIiwgImh0dHA6Ly9mb28uYmFyLmNvbS8iKTsKKyAgICB0cnkgeworICAgICAgICBy
ZXR1cm4gIlJldHVybmVkIHJlc3VsdDogIiArIGZvbyh4KTsKKyAgICB9IGNhdGNoIChlKSB7Cisg
ICAgICAgIHJldHVybiAiVGhyZXcgZXhjZXB0aW9uOiAiICsgZTsKKyAgICB9Cit9CisKK2ZvciAo
dmFyIGkgPSAwOyBpIDwgMjAwOyArK2kpIHsKKyAgICBzaG91bGRCZSgiYmFyKGkgPj0gMTAwKSIs
IGkgPj0gMTAwID8gIlwiVGhyZXcgZXhjZXB0aW9uOiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6
IERPTSBFeGNlcHRpb24gMTFcIiIgOiAiXCJSZXR1cm5lZCByZXN1bHQ6IDBcIiIpOworfQorCisK
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL2RmZy1jdXN0b20tZ2V0dGVy
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL2RmZy1j
dXN0b20tZ2V0dGVyLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3Jp
cHQtdGVzdHMvZGZnLWN1c3RvbS1nZXR0ZXIuanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTQg
QEAKK2Rlc2NyaXB0aW9uKAorIlRlc3RzIHRoYXQgREZHIGN1c3RvbSBnZXR0ZXIgY2FjaGluZyBk
b2VzIG5vdCBicmVhayB0aGUgd29ybGQuIgorKTsKKworZnVuY3Rpb24gZm9vKCkgeworICAgIHZh
ciByZXN1bHQgPSAnJzsKKyAgICBmb3IgKHZhciBjdXJyZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ215Rmlyc3REaXYnKTsgY3VycmVudDsgY3VycmVudCA9IGN1cnJlbnQubmV4dFNpYmxp
bmcpCisgICAgICAgIHJlc3VsdCArPSAnICcgKyBjdXJyZW50Lm5vZGVOYW1lOworICAgIHJldHVy
biByZXN1bHQ7Cit9CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMjAwOyArK2kpCisgICAgc2hvdWxk
QmUoImZvbygpIiwgIlwiIERJViAjdGV4dCBESVYgI3RleHQgU0NSSVBUXCIiKTsKKwpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvZGZnLWdldHRlci10aHJvdy5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9kZmctZ2V0dGVyLXRo
cm93LmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMv
ZGZnLWdldHRlci10aHJvdy5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyOCBAQAorZGVzY3Jp
cHRpb24oCisiVGVzdHMgdGhhdCBERkcgZ2V0dGVyIGNhY2hpbmcgZG9lcyBub3QgYnJlYWsgdGhl
IHdvcmxkIGlmIHRoZSBnZXR0ZXIgdGhyb3dzIGFuIGV4Y2VwdGlvbi4iCispOworCitmdW5jdGlv
biBmb28obykgeworICAgIHJldHVybiBvLmY7Cit9CisKK2Z1bmN0aW9uIGJhcihvKSB7CisgICAg
dHJ5IHsKKyAgICAgICAgcmV0dXJuICJSZXR1cm5lZCByZXN1bHQ6ICIgKyBmb28obyk7CisgICAg
fSBjYXRjaCAoZSkgeworICAgICAgICByZXR1cm4gIlRocmV3IGV4Y2VwdGlvbjogIiArIGU7Cisg
ICAgfQorfQorCitmb3IgKHZhciBpID0gMDsgaSA8IDIwMDsgKytpKSB7CisgICAgdmFyIG8gPSBu
ZXcgT2JqZWN0KCk7CisgICAgby5fX2RlZmluZUdldHRlcl9fKCJmIiwgZnVuY3Rpb24oKXsKKyAg
ICAgICAgaWYgKGkgPCAxMDApCisgICAgICAgICAgICByZXR1cm4gaTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgdGhyb3cgIk9oIGhpLCBJJ20gYW4gZXhjZXB0aW9uISI7CisgICAgfSk7Cisg
ICAgc2hvdWxkQmUoImJhcihvKSIsIGkgPCAxMDAgPyAiXCJSZXR1cm5lZCByZXN1bHQ6ICIgKyBp
ICsgIlwiIiA6ICJcIlRocmV3IGV4Y2VwdGlvbjogT2ggaGksIEknbSBhbiBleGNlcHRpb24hXCIi
KTsKK30KKworCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9kZmctZ2V0
dGVyLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL2Rm
Zy1nZXR0ZXIuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10
ZXN0cy9kZmctZ2V0dGVyLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1IEBACitkZXNjcmlw
dGlvbigKKyJUZXN0cyB0aGF0IERGRyBnZXR0ZXIgY2FjaGluZyBkb2VzIG5vdCBicmVhayB0aGUg
d29ybGQuIgorKTsKKworZnVuY3Rpb24gZm9vKG8pIHsKKyAgICByZXR1cm4gby5mOworfQorCitm
b3IgKHZhciBpID0gMDsgaSA8IDIwMDsgKytpKSB7CisgICAgdmFyIG8gPSBuZXcgT2JqZWN0KCk7
CisgICAgby5fX2RlZmluZUdldHRlcl9fKCJmIiwgZnVuY3Rpb24oKXsgcmV0dXJuIGk7IH0pOwor
ICAgIHNob3VsZEJlKCJmb28obykiLCAiIiArIGkpOworfQorCisK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122724</attachid>
            <date>2012-01-17 00:18:29 -0800</date>
            <delta_ts>2012-01-17 00:37:07 -0800</delta_ts>
            <desc>the patch to fix 32-bit</desc>
            <filename>getter32_patch_1.diff</filename>
            <type>text/plain</type>
            <size>1980</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTA1MTI3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBA
CisyMDEyLTAxLTE3ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
REZHIHNob3VsZCBiZSBhYmxlIHRvIGRvIEpTIGFuZCBjdXN0b20gZ2V0dGVyIGNhY2hpbmcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2MzYxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBGaXgg
Zm9yIDMyLWJpdC4KKworICAgICAgICAqIGRmZy9ERkdSZXBhdGNoLmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjp0cnlCdWlsZEdldEJ5SURMaXN0KToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRp
dmVKSVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGUpOgorCiAyMDEyLTAxLTE1ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAg
ICAgICAgREZHIHNob3VsZCBiZSBhYmxlIHRvIGRvIEpTIGFuZCBjdXN0b20gZ2V0dGVyIGNhY2hp
bmcKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUmVwYXRjaC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdSZXBhdGNoLmNwcAkocmV2aXNp
b24gMTA1MTA3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdSZXBhdGNoLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzYwLDcgKzM2MCw3IEBAIHN0YXRpYyBib29sIHRyeUJ1aWxkR2V0
QnlJRExpc3QoRXhlY1N0YXQKICNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICAgICAgc3R1Ykpp
dC5tb3ZlKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCByZXN1bHRHUFIpOwogI2Vsc2UKLSAgICAg
ICAgICAgIHN0dWJKaXQuc2V0dXBSZXN1bHRzKHJlc3VsdFRhZ0dQUiwgcmVzdWx0R1BSKTsKKyAg
ICAgICAgICAgIHN0dWJKaXQuc2V0dXBSZXN1bHRzKHJlc3VsdEdQUiwgcmVzdWx0VGFnR1BSKTsK
ICNlbmRpZgogICAgICAgICAgICAgc3VjY2VzcyA9IHN0dWJKaXQuZW1pdEV4Y2VwdGlvbkNoZWNr
KENDYWxsSGVscGVyczo6SW52ZXJ0ZWRFeGNlcHRpb25DaGVjayk7CiAgICAgICAgICAgICAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VDMyXzY0LmNwcAkocmV2aXNpb24gMTA1MTA3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzE5Miw3ICsz
MTkyLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlJiBub2RlKQogICAgICAg
ICBHUFJSZWcgYmFzZVBheWxvYWRHUFIgPSBiYXNlLnBheWxvYWRHUFIoKTsKIAogICAgICAgICBH
UFJSZXN1bHQgcmVzdWx0VGFnKHRoaXMpOwotICAgICAgICBHUFJSZXN1bHQgcmVzdWx0UGF5bG9h
ZCh0aGlzKTsKKyAgICAgICAgR1BSUmVzdWx0MiByZXN1bHRQYXlsb2FkKHRoaXMpOwogICAgICAg
ICBHUFJSZWcgcmVzdWx0VGFnR1BSID0gcmVzdWx0VGFnLmdwcigpOwogICAgICAgICBHUFJSZWcg
cmVzdWx0UGF5bG9hZEdQUiA9IHJlc3VsdFBheWxvYWQuZ3ByKCk7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>