<?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>185670</bug_id>
          
          <creation_ts>2018-05-15 17:49:29 -0700</creation_ts>
          <short_desc>Constant fold CheckTypeInfoFlags on ImplementsDefaultHasInstance</short_desc>
          <delta_ts>2018-05-16 23:41:15 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>Safari Technology Preview</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>gskachkov</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>rmorisset</cc>
    
    <cc>ticaiolima</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1424201</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-05-15 17:49:29 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1424226</commentid>
    <comment_count>1</comment_count>
      <attachid>340466</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-05-15 20:09:26 -0700</bug_when>
    <thetext>Created attachment 340466
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1424228</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-05-15 20:12:16 -0700</bug_when>
    <thetext>Attachment 340466 did not pass style-queue:


ERROR: Source/JavaScriptCore/bytecode/SpeculatedType.cpp:37:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 12 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>1424246</commentid>
    <comment_count>3</comment_count>
      <attachid>340466</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-05-15 22:43:10 -0700</bug_when>
    <thetext>Comment on attachment 340466
patch

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

r=me with comments

&gt; JSTests/ChangeLog:35
&gt; +2018-05-15  Saam Barati  &lt;sbarati@apple.com&gt;
&gt; +
&gt; +        OverridesHasInstance should not rely on OSR exit information and should be in ConstantFoldingPhase
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=154832
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        * microbenchmarks/constant-fold-check-type-info-flags.js: Added.
&gt; +        (clobber):
&gt; +        (C):
&gt; +        (D):
&gt; +        (foo):
&gt; +        (access):
&gt; +        (theClass):
&gt; +        * stress/dont-constant-fold-check-type-info-on-bound-function.js: Added.
&gt; +        (C):
&gt; +        (foo):

This is not related to this patch.

&gt; Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:3449
&gt; +        if (node-&gt;typeInfoOperand() != ImplementsDefaultHasInstance)

While CheckTypeInfoFlags is used only for ImplementsDefaultHasInstance right now, this folding rules can be applied to the other TypeInfoFlags (except for speculated type based folding).
Can we relax this check? Or can we have FIXME for that?

&gt; Source/JavaScriptCore/dfg/DFGConstantFoldingPhase.cpp:812
&gt; +                if (node-&gt;typeInfoOperand() != ImplementsDefaultHasInstance)
&gt; +                    break;

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1424358</commentid>
    <comment_count>4</comment_count>
      <attachid>340466</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-05-16 09:52:39 -0700</bug_when>
    <thetext>Comment on attachment 340466
patch

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

&gt;&gt; JSTests/ChangeLog:35
&gt;&gt; +        (foo):
&gt; 
&gt; This is not related to this patch.

How so?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1424360</commentid>
    <comment_count>5</comment_count>
      <attachid>340466</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-05-16 09:55:15 -0700</bug_when>
    <thetext>Comment on attachment 340466
patch

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

&gt;&gt;&gt; JSTests/ChangeLog:35
&gt;&gt;&gt; +        (foo):
&gt;&gt; 
&gt;&gt; This is not related to this patch.
&gt; 
&gt; How so?

I think this &quot;OverridesHasInstance should not rely on OSR exit information and should be in ConstantFoldingPhase&quot; ChangeLog is accidentally included since this patch includes two entries in JSTests/ChangeLog right now, correct?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1424374</commentid>
    <comment_count>6</comment_count>
      <attachid>340466</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-05-16 10:26:46 -0700</bug_when>
    <thetext>Comment on attachment 340466
patch

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

&gt;&gt;&gt;&gt; JSTests/ChangeLog:35
&gt;&gt;&gt;&gt; +        (foo):
&gt;&gt;&gt; 
&gt;&gt;&gt; This is not related to this patch.
&gt;&gt; 
&gt;&gt; How so?
&gt; 
&gt; I think this &quot;OverridesHasInstance should not rely on OSR exit information and should be in ConstantFoldingPhase&quot; ChangeLog is accidentally included since this patch includes two entries in JSTests/ChangeLog right now, correct?

Oh i missed that. Yeah I’ll clean that up :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1424377</commentid>
    <comment_count>7</comment_count>
      <attachid>340466</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-05-16 10:27:53 -0700</bug_when>
    <thetext>Comment on attachment 340466
patch

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

&gt;&gt; Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:3449
&gt;&gt; +        if (node-&gt;typeInfoOperand() != ImplementsDefaultHasInstance)
&gt; 
&gt; While CheckTypeInfoFlags is used only for ImplementsDefaultHasInstance right now, this folding rules can be applied to the other TypeInfoFlags (except for speculated type based folding).
&gt; Can we relax this check? Or can we have FIXME for that?

I’ll just write the more general version now and special case the SpeculatedType based check</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1424556</commentid>
    <comment_count>8</comment_count>
      <attachid>340543</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-05-16 17:33:27 -0700</bug_when>
    <thetext>Created attachment 340543
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1424576</commentid>
    <comment_count>9</comment_count>
      <attachid>340543</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-05-16 18:49:29 -0700</bug_when>
    <thetext>Comment on attachment 340543
patch for landing

Clearing flags on attachment: 340543

Committed r231882: &lt;https://trac.webkit.org/changeset/231882&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1424577</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-05-16 18:49:31 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1424578</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-05-16 18:51:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/40318037&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1424624</commentid>
    <comment_count>12</comment_count>
      <attachid>340543</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2018-05-16 23:13:35 -0700</bug_when>
    <thetext>Comment on attachment 340543
patch for landing

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

&gt; Source/JavaScriptCore/ChangeLog:13
&gt; +        - When the incoming value is a constant, we just look at its inline type
&gt; +        flags. Since those flags never change after an object is created, this
&gt; +        is sound.

Well other than the isPrototype bit. :P</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1424629</commentid>
    <comment_count>13</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-05-16 23:38:02 -0700</bug_when>
    <thetext>(In reply to Keith Miller from comment #12)
&gt; Comment on attachment 340543 [details]
&gt; patch for landing
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=340543&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/ChangeLog:13
&gt; &gt; +        - When the incoming value is a constant, we just look at its inline type
&gt; &gt; +        flags. Since those flags never change after an object is created, this
&gt; &gt; +        is sound.
&gt; 
&gt; Well other than the isPrototype bit. :P

Forgot about that one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1424630</commentid>
    <comment_count>14</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-05-16 23:41:15 -0700</bug_when>
    <thetext>(In reply to Saam Barati from comment #13)
&gt; (In reply to Keith Miller from comment #12)
&gt; &gt; Comment on attachment 340543 [details]
&gt; &gt; patch for landing
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=340543&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/JavaScriptCore/ChangeLog:13
&gt; &gt; &gt; +        - When the incoming value is a constant, we just look at its inline type
&gt; &gt; &gt; +        flags. Since those flags never change after an object is created, this
&gt; &gt; &gt; +        is sound.
&gt; &gt; 
&gt; &gt; Well other than the isPrototype bit. :P
&gt; 
&gt; Forgot about that one.

That said, I actually feel like we need to not even consider this bit as part of the type info. I think it should logically be like:
InlineTypeFlags flags : 7
bool isPrototype : 1

Since setting this bit happens irrespective of structure</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>340466</attachid>
            <date>2018-05-15 20:09:26 -0700</date>
            <delta_ts>2018-05-16 17:33:27 -0700</delta_ts>
            <desc>patch</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>30764</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMzE4MzQpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDM5IEBACisyMDE4LTA1LTE1ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUu
Y29tPgorCisgICAgICAgIENvbnN0YW50IGZvbGQgQ2hlY2tUeXBlSW5mb0ZsYWdzIG9uIEltcGxl
bWVudHNEZWZhdWx0SGFzSW5zdGFuY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE4NTY3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogbWljcm9iZW5jaG1hcmtzL2NvbnN0YW50LWZvbGQtY2hlY2stdHlw
ZS1pbmZvLWZsYWdzLmpzOiBBZGRlZC4KKyAgICAgICAgKGNsb2JiZXIpOgorICAgICAgICAoQyk6
CisgICAgICAgIChEKToKKyAgICAgICAgKGZvbyk6CisgICAgICAgIChhY2Nlc3MpOgorICAgICAg
ICAodGhlQ2xhc3MpOgorICAgICAgICAqIHN0cmVzcy9kb250LWNvbnN0YW50LWZvbGQtY2hlY2st
dHlwZS1pbmZvLW9uLWJvdW5kLWZ1bmN0aW9uLmpzOiBBZGRlZC4KKyAgICAgICAgKEMpOgorICAg
ICAgICAoZm9vKToKKworMjAxOC0wNS0xNSAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNv
bT4KKworICAgICAgICBPdmVycmlkZXNIYXNJbnN0YW5jZSBzaG91bGQgbm90IHJlbHkgb24gT1NS
IGV4aXQgaW5mb3JtYXRpb24gYW5kIHNob3VsZCBiZSBpbiBDb25zdGFudEZvbGRpbmdQaGFzZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0ODMyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBtaWNyb2Jl
bmNobWFya3MvY29uc3RhbnQtZm9sZC1jaGVjay10eXBlLWluZm8tZmxhZ3MuanM6IEFkZGVkLgor
ICAgICAgICAoY2xvYmJlcik6CisgICAgICAgIChDKToKKyAgICAgICAgKEQpOgorICAgICAgICAo
Zm9vKToKKyAgICAgICAgKGFjY2Vzcyk6CisgICAgICAgICh0aGVDbGFzcyk6CisgICAgICAgICog
c3RyZXNzL2RvbnQtY29uc3RhbnQtZm9sZC1jaGVjay10eXBlLWluZm8tb24tYm91bmQtZnVuY3Rp
b24uanM6IEFkZGVkLgorICAgICAgICAoQyk6CisgICAgICAgIChmb28pOgorCiAyMDE4LTA1LTE0
ICBMZW8gQmFsdGVyICA8bGVvbmFyZG8uYmFsdGVyQGdtYWlsLmNvbT4KIAogICAgICAgICBGaXgg
YSBsZWdhY3kgQ1JMRiBlb2wgZnJvbSBUZXN0MjYyCkluZGV4OiBKU1Rlc3RzL21pY3JvYmVuY2ht
YXJrcy9jb25zdGFudC1mb2xkLWNoZWNrLXR5cGUtaW5mby1mbGFncy5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBKU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9jb25zdGFudC1mb2xkLWNoZWNrLXR5cGUtaW5mby1m
bGFncy5qcwkobm9uZXhpc3RlbnQpCisrKyBKU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9jb25zdGFu
dC1mb2xkLWNoZWNrLXR5cGUtaW5mby1mbGFncy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDQxIEBACisidXNlIHN0cmljdCI7CisKK2Z1bmN0aW9uIGNsb2JiZXIoKSB7IH0KK25vSW5saW5l
KGNsb2JiZXIpOworCitjbGFzcyBDIHsgfQorY2xhc3MgRCB7IH0KKworZnVuY3Rpb24gZm9vKHgs
IEMpIHsKKyAgICBjbG9iYmVyKCk7CisgICAgcmV0dXJuIHggaW5zdGFuY2VvZiBDOworfQorbm9J
bmxpbmUoZm9vKTsKKworZnVuY3Rpb24gYWNjZXNzKG8pIHsKKyAgICByZXR1cm4gby5mb28wOwor
fQorbm9JbmxpbmUoYWNjZXNzKTsKKworZnVuY3Rpb24gdGhlQ2xhc3MoaSkgeworICAgIGlmIChp
ICYgMSkKKyAgICAgICAgcmV0dXJuIEM7CisgICAgcmV0dXJuIEQ7Cit9Citub0lubGluZSh0aGVD
bGFzcyk7CisKK2xldCB4ID0gbmV3IEM7Citmb3IgKGxldCBpID0gMDsgaSA8IDEwMDA7ICsraSkg
eworICAgIGxldCBrID0gdGhlQ2xhc3MoaSk7CisgICAgaWYgKGkgPCAyMCkKKyAgICAgICAga1si
Zm9vIiArIGldID0gaTsKKyAgICBpZiAoaSA+PSAyMCkKKyAgICAgICAgYWNjZXNzKGspOworICAg
IGlmIChpID09PSAxMDApCisgICAgICAgIGtbImZvbyIgKyBpXSA9IGk7CisgICAgbGV0IHJlc3Vs
dCA9IGZvbyh4LCBrKTsKKyAgICBpZiAoayA9PT0gQyAmJiByZXN1bHQgIT09IHRydWUpCisgICAg
ICAgIHRocm93IG5ldyBFcnJvcigiQmFkIikKKyAgICBpZiAoayAhPT0gQyAmJiByZXN1bHQgIT09
IGZhbHNlKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCIpCit9CkluZGV4OiBKU1Rlc3Rz
L3N0cmVzcy9kb250LWNvbnN0YW50LWZvbGQtY2hlY2stdHlwZS1pbmZvLW9uLWJvdW5kLWZ1bmN0
aW9uLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvc3RyZXNzL2RvbnQtY29uc3RhbnQtZm9sZC1j
aGVjay10eXBlLWluZm8tb24tYm91bmQtZnVuY3Rpb24uanMJKG5vbmV4aXN0ZW50KQorKysgSlNU
ZXN0cy9zdHJlc3MvZG9udC1jb25zdGFudC1mb2xkLWNoZWNrLXR5cGUtaW5mby1vbi1ib3VuZC1m
dW5jdGlvbi5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE3IEBACisidXNlIHN0cmljdCI7
CisKK2NsYXNzIEMgeyB9CitsZXQgeCA9IG5ldyBDOworQyA9IEMuYmluZCh0aGlzKTsKKworZnVu
Y3Rpb24gZm9vKHgpIHsKKyAgICB4LmZvbzsKKyAgICByZXR1cm4geCBpbnN0YW5jZW9mIEM7Cit9
Citub0lubGluZShmb28pOworCitmb3IgKGxldCBpID0gMDsgaSA8IDEwMDA7ICsraSkgeworICAg
IGxldCByID0gZm9vKHgpOworICAgIGlmIChyICE9PSB0cnVlKQorICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoIkJhZCIpCit9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIz
MTgxOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSw0MSBAQAorMjAxOC0wNS0xNSAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxl
LmNvbT4KKworICAgICAgICBDb25zdGFudCBmb2xkIENoZWNrVHlwZUluZm9GbGFncyBvbiBJbXBs
ZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xODU2NzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIG1ha2VzIGl0IHNvIHRoYXQgd2UgY29uc3RhbnQg
Zm9sZCBDaGVja1R5cGVJbmZvRmxhZ3MgZm9yCisgICAgICAgIEltcGxlbWVudHNEZWZhdWx0SGFz
SW5zdGFuY2UgaW5zaWRlIG9mIEFJL2NvbnN0YW50IGZvbGRpbmcuIFdlIGNvbnN0YW50CisgICAg
ICAgIGZvbGQgaW4gdGhyZWUgd2F5czoKKyAgICAgICAgLSBXaGVuIHRoZSBpbmNvbWluZyB2YWx1
ZSBpcyBhIGNvbnN0YW50LCB3ZSBqdXN0IGxvb2sgYXQgaXRzIGlubGluZSB0eXBlCisgICAgICAg
IGZsYWdzLiBTaW5jZSB0aG9zZSBmbGFncyBuZXZlciBjaGFuZ2UgYWZ0ZXIgYW4gb2JqZWN0IGlz
IGNyZWF0ZWQsIHRoaXMKKyAgICAgICAgaXMgc291bmQuCisgICAgICAgIC0gQmFzZWQgb24gdGhl
IGluY29taW5nIHZhbHVlIGhhdmluZyBhIGZpbml0ZSBzdHJ1Y3R1cmUgc2V0LiBXZSBqdXN0IGl0
ZXJhdGUKKyAgICAgICAgYWxsIHN0cnVjdHVyZXMgYW5kIGVuc3VyZSB0aGV5IGhhdmUgdGhlIGJp
dCBzZXQuCisgICAgICAgIC0gQmFzZWQgb24gc3BlY3VsYXRlZCB0eXBlLiBUbyBkbyB0aGlzLCBJ
IHNwbGl0IHVwIFNwZWNGdW5jdGlvbiBpbnRvIHR3bworICAgICAgICBzdWJoZWFwcyB3aGVyZSBv
bmUgaXMgZm9yIGZ1bmN0aW9ucyB0aGF0IGhhdmUgdGhlIGJpdCBzZXQsIGFuZCBvbmUgZm9yCisg
ICAgICAgIGZ1bmN0aW9ucyB0aGF0IGRvbid0IGhhdmUgdGhlIGJpdCBzZXQuIFRoZSBsYXR0ZXIg
aXMgY3VycmVudGx5IG9ubHkgY29tcHJpc2VkCisgICAgICAgIG9mIEpTQm91bmRGdW5jdGlvbnMu
IFRvIGNvbnN0YW50IGZvbGQsIHdlIGNoZWNrIHRoYXQgdGhlIGluY29taW5nCisgICAgICAgIHZh
bHVlIG9ubHkgaGFzIHRoZSBTcGVjRnVuY3Rpb24gdHlwZSB3aXRoIEltcGxlbWVudHNEZWZhdWx0
SGFzSW5zdGFuY2Ugc2V0LgorCisgICAgICAgICogYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuY3Bw
OgorICAgICAgICAoSlNDOjpzcGVjdWxhdGlvbkZyb21DbGFzc0luZm8pOgorICAgICAgICAqIGJ5
dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmg6CisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0SW50ZXJw
cmV0ZXJJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJbnRlcnByZXRlcjxB
YnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKToKKyAgICAgICAgKiBkZmcvREZHQ29u
c3RhbnRGb2xkaW5nUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkNvbnN0YW50Rm9sZGlu
Z1BoYXNlOjpmb2xkQ29uc3RhbnRzKToKKyAgICAgICAgKiBkZmcvREZHU3RyZW5ndGhSZWR1Y3Rp
b25QaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3RyZW5ndGhSZWR1Y3Rpb25QaGFzZTo6
aGFuZGxlTm9kZSk6CisgICAgICAgICogcnVudGltZS9KU0Z1bmN0aW9uLmNwcDoKKyAgICAgICAg
KEpTQzo6SlNGdW5jdGlvbjo6SlNGdW5jdGlvbik6CisgICAgICAgIChKU0M6OkpTRnVuY3Rpb246
OmFzc2VydFR5cGVJbmZvRmxhZ0ludmFyaWFudHMpOgorICAgICAgICAqIHJ1bnRpbWUvSlNGdW5j
dGlvbi5oOgorICAgICAgICAoSlNDOjpKU0Z1bmN0aW9uOjphc3NlcnRUeXBlSW5mb0ZsYWdJbnZh
cmlhbnRzKToKKyAgICAgICAgKiBydW50aW1lL0pTRnVuY3Rpb25JbmxpbmVzLmg6CisgICAgICAg
IChKU0M6OkpTRnVuY3Rpb246OkpTRnVuY3Rpb24pOgorCiAyMDE4LTA1LTE1ICBEZXZpbiBSb3Vz
c28gIDx3ZWJraXRAZGV2aW5yb3Vzc28uY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEFk
ZCBydWxlcnMgYW5kIGd1aWRlcwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L1NwZWN1bGF0ZWRUeXBlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuY3BwCShyZXZpc2lvbiAyMzE4MTMpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiSlNCaWdJbnQuaCIKICNpbmNsdWRlICJKU0NJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgorI2luY2x1ZGUgIkpTQm91bmRGdW5j
dGlvbi5oIgogI2luY2x1ZGUgIkpTTWFwLmgiCiAjaW5jbHVkZSAiSlNTZXQuaCIKICNpbmNsdWRl
ICJKU1dlYWtNYXAuaCIKQEAgLTQzMiw4ICs0MzMsMTEgQEAgU3BlY3VsYXRlZFR5cGUgc3BlY3Vs
YXRpb25Gcm9tQ2xhc3NJbmZvKAogICAgIGlmIChjbGFzc0luZm8gPT0gUHJveHlPYmplY3Q6Omlu
Zm8oKSkKICAgICAgICAgcmV0dXJuIFNwZWNQcm94eU9iamVjdDsKICAgICAKLSAgICBpZiAoY2xh
c3NJbmZvLT5pc1N1YkNsYXNzT2YoSlNGdW5jdGlvbjo6aW5mbygpKSkKLSAgICAgICAgcmV0dXJu
IFNwZWNGdW5jdGlvbjsKKyAgICBpZiAoY2xhc3NJbmZvLT5pc1N1YkNsYXNzT2YoSlNGdW5jdGlv
bjo6aW5mbygpKSkgeworICAgICAgICBpZiAoY2xhc3NJbmZvID09IEpTQm91bmRGdW5jdGlvbjo6
aW5mbygpKQorICAgICAgICAgICAgcmV0dXJuIFNwZWNGdW5jdGlvbldpdGhOb25EZWZhdWx0SGFz
SW5zdGFuY2U7CisgICAgICAgIHJldHVybiBTcGVjRnVuY3Rpb25XaXRoRGVmYXVsdEhhc0luc3Rh
bmNlOworICAgIH0KICAgICAKICAgICBpZiAoaXNUeXBlZFZpZXcoY2xhc3NJbmZvLT50eXBlZEFy
cmF5U3RvcmFnZVR5cGUpKQogICAgICAgICByZXR1cm4gc3BlY3VsYXRpb25Gcm9tVHlwZWRBcnJh
eVR5cGUoY2xhc3NJbmZvLT50eXBlZEFycmF5U3RvcmFnZVR5cGUpOwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmgJKHJldmlzaW9uIDIz
MTgxMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zOCw2NCArMzgsNjYgQEAgbmFtZXNwYWNlIEpTQyB7CiBjbGFz
cyBTdHJ1Y3R1cmU7CiAKIHR5cGVkZWYgdWludDY0X3QgU3BlY3VsYXRlZFR5cGU7Ci1zdGF0aWMg
Y29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY05vbmUgICAgICAgICAgICAgICA9IDA7IC8vIFdlIGRv
bid0IGtub3cgYW55dGhpbmcgeWV0Lgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNG
aW5hbE9iamVjdCAgICAgICAgPSAxdWxsIDw8IDA7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTRmlu
YWxPYmplY3QuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0FycmF5ICAgICAgICAg
ICAgICA9IDF1bGwgPDwgMTsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNBcnJheS4KLXN0YXRpYyBj
b25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRnVuY3Rpb24gICAgICAgICAgID0gMXVsbCA8PCAyOyAv
LyBJdCdzIGRlZmluaXRlbHkgYSBKU0Z1bmN0aW9uLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRU
eXBlIFNwZWNJbnQ4QXJyYXkgICAgICAgICAgPSAxdWxsIDw8IDM7IC8vIEl0J3MgZGVmaW5pdGVs
eSBhbiBJbnQ4QXJyYXkgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgotc3RhdGljIGNvbnN0IFNw
ZWN1bGF0ZWRUeXBlIFNwZWNJbnQxNkFycmF5ICAgICAgICAgPSAxdWxsIDw8IDQ7IC8vIEl0J3Mg
ZGVmaW5pdGVseSBhbiBJbnQxNkFycmF5IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KLXN0YXRp
YyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjSW50MzJBcnJheSAgICAgICAgID0gMXVsbCA8PCA1
OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50MzJBcnJheSBvciBvbmUgb2YgaXRzIHN1YmNsYXNz
ZXMuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1VpbnQ4QXJyYXkgICAgICAgICA9
IDF1bGwgPDwgNjsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIFVpbnQ4QXJyYXkgb3Igb25lIG9mIGl0
cyBzdWJjbGFzc2VzLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNVaW50OENsYW1w
ZWRBcnJheSAgPSAxdWxsIDw8IDc7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBVaW50OENsYW1wZWRB
cnJheSBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5
cGUgU3BlY1VpbnQxNkFycmF5ICAgICAgICA9IDF1bGwgPDwgODsgLy8gSXQncyBkZWZpbml0ZWx5
IGFuIFVpbnQxNkFycmF5IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KLXN0YXRpYyBjb25zdCBT
cGVjdWxhdGVkVHlwZSBTcGVjVWludDMyQXJyYXkgICAgICAgID0gMXVsbCA8PCA5OyAvLyBJdCdz
IGRlZmluaXRlbHkgYW4gVWludDMyQXJyYXkgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgotc3Rh
dGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNGbG9hdDMyQXJyYXkgICAgICAgPSAxdWxsIDw8
IDEwOyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gVWludDE2QXJyYXkgb3Igb25lIG9mIGl0cyBzdWJj
bGFzc2VzLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNGbG9hdDY0QXJyYXkgICAg
ICAgPSAxdWxsIDw8IDExOyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gVWludDE2QXJyYXkgb3Igb25l
IG9mIGl0cyBzdWJjbGFzc2VzLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNUeXBl
ZEFycmF5VmlldyAgICAgPSBTcGVjSW50OEFycmF5IHwgU3BlY0ludDE2QXJyYXkgfCBTcGVjSW50
MzJBcnJheSB8IFNwZWNVaW50OEFycmF5IHwgU3BlY1VpbnQ4Q2xhbXBlZEFycmF5IHwgU3BlY1Vp
bnQxNkFycmF5IHwgU3BlY1VpbnQzMkFycmF5IHwgU3BlY0Zsb2F0MzJBcnJheSB8IFNwZWNGbG9h
dDY0QXJyYXk7Ci1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0RpcmVjdEFyZ3VtZW50
cyAgICA9IDF1bGwgPDwgMTI7IC8vIEl0J3MgZGVmaW5pdGVseSBhIERpcmVjdEFyZ3VtZW50cyBv
YmplY3QuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1Njb3BlZEFyZ3VtZW50cyAg
ICA9IDF1bGwgPDwgMTM7IC8vIEl0J3MgZGVmaW5pdGVseSBhIFNjb3BlZEFyZ3VtZW50cyBvYmpl
Y3QuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1N0cmluZ09iamVjdCAgICAgICA9
IDF1bGwgPDwgMTQ7IC8vIEl0J3MgZGVmaW5pdGVseSBhIFN0cmluZ09iamVjdC4KLXN0YXRpYyBj
b25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjUmVnRXhwT2JqZWN0ICAgICAgID0gMXVsbCA8PCAxNTsg
Ly8gSXQncyBkZWZpbml0ZWx5IGEgUmVnRXhwT2JqZWN0IChhbmQgbm90IGFueSBzdWJjbGFzcyBv
ZiBSZWdFeHBPYmplY3QpLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNNYXBPYmpl
Y3QgICAgICAgICAgPSAxdWxsIDw8IDE2OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBNYXAgb2JqZWN0
IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBT
cGVjU2V0T2JqZWN0ICAgICAgICAgID0gMXVsbCA8PCAxNzsgLy8gSXQncyBkZWZpbml0ZWx5IGEg
U2V0IG9iamVjdCBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCi1zdGF0aWMgY29uc3QgU3BlY3Vs
YXRlZFR5cGUgU3BlY1dlYWtNYXBPYmplY3QgICAgICA9IDF1bGwgPDwgMTg7IC8vIEl0J3MgZGVm
aW5pdGVseSBhIFdlYWtNYXAgb2JqZWN0IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KLXN0YXRp
YyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjV2Vha1NldE9iamVjdCAgICAgID0gMXVsbCA8PCAx
OTsgLy8gSXQncyBkZWZpbml0ZWx5IGEgV2Vha1NldCBvYmplY3Qgb3Igb25lIG9mIGl0cyBzdWJj
bGFzc2VzLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNQcm94eU9iamVjdCAgICAg
ICAgPSAxdWxsIDw8IDIwOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBQcm94eSBvYmplY3Qgb3Igb25l
IG9mIGl0cyBzdWJjbGFzc2VzLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNEZXJp
dmVkQXJyYXkgICAgICAgPSAxdWxsIDw8IDIxOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBEZXJpdmVk
QXJyYXkgb2JqZWN0Lgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNPYmplY3RPdGhl
ciAgICAgICAgPSAxdWxsIDw8IDIyOyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gb2JqZWN0IGJ1dCBu
b3QgSlNGaW5hbE9iamVjdCwgSlNBcnJheSwgb3IgSlNGdW5jdGlvbi4KLXN0YXRpYyBjb25zdCBT
cGVjdWxhdGVkVHlwZSBTcGVjT2JqZWN0ICAgICAgICAgICAgID0gU3BlY0ZpbmFsT2JqZWN0IHwg
U3BlY0FycmF5IHwgU3BlY0Z1bmN0aW9uIHwgU3BlY1R5cGVkQXJyYXlWaWV3IHwgU3BlY0RpcmVj
dEFyZ3VtZW50cyB8IFNwZWNTY29wZWRBcmd1bWVudHMgfCBTcGVjU3RyaW5nT2JqZWN0IHwgU3Bl
Y1JlZ0V4cE9iamVjdCB8IFNwZWNNYXBPYmplY3QgfCBTcGVjU2V0T2JqZWN0IHwgU3BlY1dlYWtN
YXBPYmplY3QgfCBTcGVjV2Vha1NldE9iamVjdCB8IFNwZWNQcm94eU9iamVjdCB8IFNwZWNEZXJp
dmVkQXJyYXkgfCBTcGVjT2JqZWN0T3RoZXI7IC8vIEJpdG1hc2sgdXNlZCBmb3IgdGVzdGluZyBm
b3IgYW55IGtpbmQgb2Ygb2JqZWN0IHByZWRpY3Rpb24uCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRl
ZFR5cGUgU3BlY1N0cmluZ0lkZW50ICAgICAgICA9IDF1bGwgPDwgMjM7IC8vIEl0J3MgZGVmaW5p
dGVseSBhIEpTU3RyaW5nLCBhbmQgaXQncyBhbiBpZGVudGlmaWVyLgotc3RhdGljIGNvbnN0IFNw
ZWN1bGF0ZWRUeXBlIFNwZWNTdHJpbmdWYXIgICAgICAgICAgPSAxdWxsIDw8IDI0OyAvLyBJdCdz
IGRlZmluaXRlbHkgYSBKU1N0cmluZywgYW5kIGl0J3Mgbm90IGFuIGlkZW50aWZpZXIuCi1zdGF0
aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1N0cmluZyAgICAgICAgICAgICA9IFNwZWNTdHJp
bmdJZGVudCB8IFNwZWNTdHJpbmdWYXI7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTU3RyaW5nLgot
c3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNTeW1ib2wgICAgICAgICAgICAgPSAxdWxs
IDw8IDI1OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBTeW1ib2wuCi1zdGF0aWMgY29uc3QgU3BlY3Vs
YXRlZFR5cGUgU3BlY0NlbGxPdGhlciAgICAgICAgICA9IDF1bGwgPDwgMjY7IC8vIEl0J3MgZGVm
aW5pdGVseSBhIEpTQ2VsbCBidXQgbm90IGEgc3ViY2xhc3Mgb2YgSlNPYmplY3QgYW5kIGRlZmlu
aXRlbHkgbm90IGEgSlNTdHJpbmcsIEJpZ0ludCwgb3IgU3ltYm9sLgotc3RhdGljIGNvbnN0IFNw
ZWN1bGF0ZWRUeXBlIFNwZWNCb29sSW50MzIgICAgICAgICAgPSAxdWxsIDw8IDI3OyAvLyBJdCdz
IGRlZmluaXRlbHkgYW4gSW50MzIgd2l0aCB2YWx1ZSAwIG9yIDEuCi1zdGF0aWMgY29uc3QgU3Bl
Y3VsYXRlZFR5cGUgU3BlY05vbkJvb2xJbnQzMiAgICAgICA9IDF1bGwgPDwgMjg7IC8vIEl0J3Mg
ZGVmaW5pdGVseSBhbiBJbnQzMiB3aXRoIHZhbHVlIG90aGVyIHRoYW4gMCBvciAxLgotc3RhdGlj
IGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNJbnQzMk9ubHkgICAgICAgICAgPSBTcGVjQm9vbElu
dDMyIHwgU3BlY05vbkJvb2xJbnQzMjsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDMyLgotc3Rh
dGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNJbnQ1Mk9ubHkgICAgICAgICAgPSAxdWxsIDw8
IDI5OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50NTIgYW5kIHdlIGludGVuZCBpdCB0byB1bmJv
eCBpdC4gSXQncyBhbHNvIGRlZmluaXRlbHkgbm90IGFuIEludDMyLgotc3RhdGljIGNvbnN0IFNw
ZWN1bGF0ZWRUeXBlIFNwZWNBbnlJbnQgICAgICAgICAgICAgPSBTcGVjSW50MzJPbmx5IHwgU3Bl
Y0ludDUyT25seTsgLy8gSXQncyBzb21ldGhpbmcgdGhhdCB3ZSBjYW4gZG8gbWFjaGluZSBpbnQg
YXJpdGhtZXRpYyBvbi4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQW55SW50QXNE
b3VibGUgICAgID0gMXVsbCA8PCAzMDsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDUyIGFuZCBp
dCdzIGluc2lkZSBhIGRvdWJsZS4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjTm9u
SW50QXNEb3VibGUgICAgID0gMXVsbCA8PCAzMTsgLy8gSXQncyBkZWZpbml0ZWx5IG5vdCBhbiBJ
bnQ1MiBidXQgaXQncyBhIHJlYWwgbnVtYmVyIGFuZCBpdCdzIGEgZG91YmxlLgotc3RhdGljIGNv
bnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNEb3VibGVSZWFsICAgICAgICAgPSBTcGVjTm9uSW50QXNE
b3VibGUgfCBTcGVjQW55SW50QXNEb3VibGU7IC8vIEl0J3MgZGVmaW5pdGVseSBhIG5vbi1OYU4g
ZG91YmxlLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNEb3VibGVQdXJlTmFOICAg
ICAgPSAxdWxsIDw8IDMyOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBOYU4gdGhhdCBpcyBzYWZlIHRv
IHRhZyAoaS5lLiBwdXJlKS4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRG91Ymxl
SW1wdXJlTmFOICAgID0gMXVsbCA8PCAzMzsgLy8gSXQncyBkZWZpbml0ZWx5IGEgTmFOIHRoYXQg
aXMgdW5zYWZlIHRvIHRhZyAoaS5lLiBpbXB1cmUpLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRU
eXBlIFNwZWNEb3VibGVOYU4gICAgICAgICAgPSBTcGVjRG91YmxlUHVyZU5hTiB8IFNwZWNEb3Vi
bGVJbXB1cmVOYU47IC8vIEl0J3MgZGVmaW5pdGVseSBzb21lIGtpbmQgb2YgTmFOLgotc3RhdGlj
IGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNCeXRlY29kZURvdWJsZSAgICAgPSBTcGVjRG91Ymxl
UmVhbCB8IFNwZWNEb3VibGVQdXJlTmFOOyAvLyBJdCdzIGVpdGhlciBhIG5vbi1OYU4gb3IgYSBO
YU4gZG91YmxlLCBidXQgaXQncyBkZWZpbml0ZWx5IG5vdCBpbXB1cmUgTmFOLgotc3RhdGljIGNv
bnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNGdWxsRG91YmxlICAgICAgICAgPSBTcGVjRG91YmxlUmVh
bCB8IFNwZWNEb3VibGVOYU47IC8vIEl0J3MgZWl0aGVyIGEgbm9uLU5hTiBvciBhIE5hTiBkb3Vi
bGUuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0J5dGVjb2RlUmVhbE51bWJlciA9
IFNwZWNJbnQzMk9ubHkgfCBTcGVjRG91YmxlUmVhbDsgLy8gSXQncyBlaXRoZXIgYW4gSW50MzIg
b3IgYSBEb3VibGVSZWFsLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNGdWxsUmVh
bE51bWJlciAgICAgPSBTcGVjQW55SW50IHwgU3BlY0RvdWJsZVJlYWw7IC8vIEl0J3MgZWl0aGVy
IGFuIEludDMyIG9yIGEgRG91YmxlUmVhbCwgb3IgYSBJbnQ1Mi4KLXN0YXRpYyBjb25zdCBTcGVj
dWxhdGVkVHlwZSBTcGVjQnl0ZWNvZGVOdW1iZXIgICAgID0gU3BlY0ludDMyT25seSB8IFNwZWNC
eXRlY29kZURvdWJsZTsgLy8gSXQncyBlaXRoZXIgYW4gSW50MzIgb3IgYSBEb3VibGUsIGFuZCB0
aGUgRG91YmxlIGNhbm5vdCBiZSBhbiBpbXB1cmUgTmFOLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0
ZWRUeXBlIFNwZWNGdWxsTnVtYmVyICAgICAgICAgPSBTcGVjQW55SW50IHwgU3BlY0Z1bGxEb3Vi
bGU7IC8vIEl0J3MgZWl0aGVyIGFuIEludDMyLCBJbnQ1Miwgb3IgYSBEb3VibGUsIGFuZCB0aGUg
RG91YmxlIGNhbiBiZSBpbXB1cmUgTmFOLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNw
ZWNCb29sZWFuICAgICAgICAgICAgPSAxdWxsIDw8IDM0OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBC
b29sZWFuLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNPdGhlciAgICAgICAgICAg
ICAgPSAxdWxsIDw8IDM1OyAvLyBJdCdzIGRlZmluaXRlbHkgZWl0aGVyIE51bGwgb3IgVW5kZWZp
bmVkLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNNaXNjICAgICAgICAgICAgICAg
PSBTcGVjQm9vbGVhbiB8IFNwZWNPdGhlcjsgLy8gSXQncyBkZWZpbml0ZWx5IGVpdGhlciBhIGJv
b2xlYW4sIE51bGwsIG9yIFVuZGVmaW5lZC4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBT
cGVjRW1wdHkgICAgICAgICAgICAgID0gMXVsbCA8PCAzNjsgLy8gSXQncyBkZWZpbml0ZWx5IGFu
IGVtcHR5IHZhbHVlIG1hcmtlci4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQmln
SW50ICAgICAgICAgICAgID0gMXVsbCA8PCAzNzsgLy8gSXQncyBkZWZpbml0ZWx5IGEgQmlnSW50
Lgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNQcmltaXRpdmUgICAgICAgICAgPSBT
cGVjU3RyaW5nIHwgU3BlY1N5bWJvbCB8IFNwZWNCeXRlY29kZU51bWJlciB8IFNwZWNNaXNjIHwg
U3BlY0JpZ0ludDsgLy8gSXQncyBhbnkgbm9uLU9iamVjdCBKU1ZhbHVlLgotc3RhdGljIGNvbnN0
IFNwZWN1bGF0ZWRUeXBlIFNwZWNDZWxsICAgICAgICAgICAgICAgPSBTcGVjT2JqZWN0IHwgU3Bl
Y1N0cmluZyB8IFNwZWNTeW1ib2wgfCBTcGVjQ2VsbE90aGVyIHwgU3BlY0JpZ0ludDsgLy8gSXQn
cyBkZWZpbml0ZWx5IGEgSlNDZWxsLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNI
ZWFwVG9wICAgICAgICAgICAgPSBTcGVjQ2VsbCB8IFNwZWNCeXRlY29kZU51bWJlciB8IFNwZWNN
aXNjOyAvLyBJdCBjYW4gYmUgYW55IG9mIHRoZSBhYm92ZSwgZXhjZXB0IGZvciBTcGVjSW50NTJP
bmx5IGFuZCBTcGVjRG91YmxlSW1wdXJlTmFOLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBl
IFNwZWNCeXRlY29kZVRvcCAgICAgICAgPSBTcGVjSGVhcFRvcCB8IFNwZWNFbXB0eTsgLy8gSXQg
Y2FuIGJlIGFueSBvZiB0aGUgYWJvdmUsIGV4Y2VwdCBmb3IgU3BlY0ludDUyT25seSBhbmQgU3Bl
Y0RvdWJsZUltcHVyZU5hTi4gQ29ycmVzcG9uZHMgdG8gd2hhdCBjb3VsZCBiZSBmb3VuZCBpbiBh
IGJ5dGVjb2RlIGxvY2FsLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNGdWxsVG9w
ICAgICAgICAgICAgPSBTcGVjQnl0ZWNvZGVUb3AgfCBTcGVjRnVsbE51bWJlcjsgLy8gSXQgY2Fu
IGJlIGFueXRoaW5nIHRoYXQgYnl0ZWNvZGUgY291bGQgc2VlIHBsdXMgZXhvdGljIGVuY29kaW5n
cyBvZiBudW1iZXJzLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNOb25lICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAwOyAvLyBXZSBkb24ndCBrbm93IGFueXRoaW5nIHll
dC4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRmluYWxPYmplY3QgICAgICAgICAg
ICAgICAgICAgICAgID0gMXVsbCA8PCAwOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU0ZpbmFsT2Jq
ZWN0Lgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNBcnJheSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSAxdWxsIDw8IDE7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTQXJyYXku
CitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0Z1bmN0aW9uV2l0aERlZmF1bHRIYXNJ
bnN0YW5jZSAgICA9IDF1bGwgPDwgMjsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNGdW5jdGlvbiB0
aGF0IGhhcyBpdHMgSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSB0eXBlIGluZm8gZmxhZ3Mg
Yml0IHNldC4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRnVuY3Rpb25XaXRoTm9u
RGVmYXVsdEhhc0luc3RhbmNlID0gMXVsbCA8PCAzOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU0Z1
bmN0aW9uIHRoYXQgaGFzIGRvZXMgbm90IGhhdmUgaXRzIEltcGxlbWVudHNEZWZhdWx0SGFzSW5z
dGFuY2UgYml0IHNldC4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRnVuY3Rpb24g
ICAgICAgICAgICAgICAgICAgICAgICAgID0gU3BlY0Z1bmN0aW9uV2l0aERlZmF1bHRIYXNJbnN0
YW5jZSB8IFNwZWNGdW5jdGlvbldpdGhOb25EZWZhdWx0SGFzSW5zdGFuY2U7IC8vIEl0J3MgZGVm
aW5pdGVseSBhIEpTRnVuY3Rpb24uCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0lu
dDhBcnJheSAgICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgNDsgLy8gSXQncyBkZWZp
bml0ZWx5IGFuIEludDhBcnJheSBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCitzdGF0aWMgY29u
c3QgU3BlY3VsYXRlZFR5cGUgU3BlY0ludDE2QXJyYXkgICAgICAgICAgICAgICAgICAgICAgICA9
IDF1bGwgPDwgNTsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDE2QXJyYXkgb3Igb25lIG9mIGl0
cyBzdWJjbGFzc2VzLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNJbnQzMkFycmF5
ICAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDY7IC8vIEl0J3MgZGVmaW5pdGVseSBh
biBJbnQzMkFycmF5IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KK3N0YXRpYyBjb25zdCBTcGVj
dWxhdGVkVHlwZSBTcGVjVWludDhBcnJheSAgICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8
PCA3OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gVWludDhBcnJheSBvciBvbmUgb2YgaXRzIHN1YmNs
YXNzZXMuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1VpbnQ4Q2xhbXBlZEFycmF5
ICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgODsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIFVpbnQ4
Q2xhbXBlZEFycmF5IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KK3N0YXRpYyBjb25zdCBTcGVj
dWxhdGVkVHlwZSBTcGVjVWludDE2QXJyYXkgICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8
PCA5OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gVWludDE2QXJyYXkgb3Igb25lIG9mIGl0cyBzdWJj
bGFzc2VzLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNVaW50MzJBcnJheSAgICAg
ICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDEwOyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gVWlu
dDMyQXJyYXkgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0
ZWRUeXBlIFNwZWNGbG9hdDMyQXJyYXkgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDEx
OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gVWludDE2QXJyYXkgb3Igb25lIG9mIGl0cyBzdWJjbGFz
c2VzLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNGbG9hdDY0QXJyYXkgICAgICAg
ICAgICAgICAgICAgICAgPSAxdWxsIDw8IDEyOyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gVWludDE2
QXJyYXkgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRU
eXBlIFNwZWNUeXBlZEFycmF5VmlldyAgICAgICAgICAgICAgICAgICAgPSBTcGVjSW50OEFycmF5
IHwgU3BlY0ludDE2QXJyYXkgfCBTcGVjSW50MzJBcnJheSB8IFNwZWNVaW50OEFycmF5IHwgU3Bl
Y1VpbnQ4Q2xhbXBlZEFycmF5IHwgU3BlY1VpbnQxNkFycmF5IHwgU3BlY1VpbnQzMkFycmF5IHwg
U3BlY0Zsb2F0MzJBcnJheSB8IFNwZWNGbG9hdDY0QXJyYXk7CitzdGF0aWMgY29uc3QgU3BlY3Vs
YXRlZFR5cGUgU3BlY0RpcmVjdEFyZ3VtZW50cyAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwg
MTM7IC8vIEl0J3MgZGVmaW5pdGVseSBhIERpcmVjdEFyZ3VtZW50cyBvYmplY3QuCitzdGF0aWMg
Y29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1Njb3BlZEFyZ3VtZW50cyAgICAgICAgICAgICAgICAg
ICA9IDF1bGwgPDwgMTQ7IC8vIEl0J3MgZGVmaW5pdGVseSBhIFNjb3BlZEFyZ3VtZW50cyBvYmpl
Y3QuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1N0cmluZ09iamVjdCAgICAgICAg
ICAgICAgICAgICAgICA9IDF1bGwgPDwgMTU7IC8vIEl0J3MgZGVmaW5pdGVseSBhIFN0cmluZ09i
amVjdC4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjUmVnRXhwT2JqZWN0ICAgICAg
ICAgICAgICAgICAgICAgID0gMXVsbCA8PCAxNjsgLy8gSXQncyBkZWZpbml0ZWx5IGEgUmVnRXhw
T2JqZWN0IChhbmQgbm90IGFueSBzdWJjbGFzcyBvZiBSZWdFeHBPYmplY3QpLgorc3RhdGljIGNv
bnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNNYXBPYmplY3QgICAgICAgICAgICAgICAgICAgICAgICAg
PSAxdWxsIDw8IDE3OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBNYXAgb2JqZWN0IG9yIG9uZSBvZiBp
dHMgc3ViY2xhc3Nlcy4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjU2V0T2JqZWN0
ICAgICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAxODsgLy8gSXQncyBkZWZpbml0ZWx5
IGEgU2V0IG9iamVjdCBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCitzdGF0aWMgY29uc3QgU3Bl
Y3VsYXRlZFR5cGUgU3BlY1dlYWtNYXBPYmplY3QgICAgICAgICAgICAgICAgICAgICA9IDF1bGwg
PDwgMTk7IC8vIEl0J3MgZGVmaW5pdGVseSBhIFdlYWtNYXAgb2JqZWN0IG9yIG9uZSBvZiBpdHMg
c3ViY2xhc3Nlcy4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjV2Vha1NldE9iamVj
dCAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAyMDsgLy8gSXQncyBkZWZpbml0ZWx5IGEg
V2Vha1NldCBvYmplY3Qgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgorc3RhdGljIGNvbnN0IFNw
ZWN1bGF0ZWRUeXBlIFNwZWNQcm94eU9iamVjdCAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxs
IDw8IDIxOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBQcm94eSBvYmplY3Qgb3Igb25lIG9mIGl0cyBz
dWJjbGFzc2VzLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNEZXJpdmVkQXJyYXkg
ICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDIyOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBE
ZXJpdmVkQXJyYXkgb2JqZWN0Lgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNPYmpl
Y3RPdGhlciAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDIzOyAvLyBJdCdzIGRlZmlu
aXRlbHkgYW4gb2JqZWN0IGJ1dCBub3QgSlNGaW5hbE9iamVjdCwgSlNBcnJheSwgb3IgSlNGdW5j
dGlvbi4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjT2JqZWN0ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gU3BlY0ZpbmFsT2JqZWN0IHwgU3BlY0FycmF5IHwgU3BlY0Z1bmN0
aW9uIHwgU3BlY1R5cGVkQXJyYXlWaWV3IHwgU3BlY0RpcmVjdEFyZ3VtZW50cyB8IFNwZWNTY29w
ZWRBcmd1bWVudHMgfCBTcGVjU3RyaW5nT2JqZWN0IHwgU3BlY1JlZ0V4cE9iamVjdCB8IFNwZWNN
YXBPYmplY3QgfCBTcGVjU2V0T2JqZWN0IHwgU3BlY1dlYWtNYXBPYmplY3QgfCBTcGVjV2Vha1Nl
dE9iamVjdCB8IFNwZWNQcm94eU9iamVjdCB8IFNwZWNEZXJpdmVkQXJyYXkgfCBTcGVjT2JqZWN0
T3RoZXI7IC8vIEJpdG1hc2sgdXNlZCBmb3IgdGVzdGluZyBmb3IgYW55IGtpbmQgb2Ygb2JqZWN0
IHByZWRpY3Rpb24uCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1N0cmluZ0lkZW50
ICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMjQ7IC8vIEl0J3MgZGVmaW5pdGVseSBh
IEpTU3RyaW5nLCBhbmQgaXQncyBhbiBpZGVudGlmaWVyLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0
ZWRUeXBlIFNwZWNTdHJpbmdWYXIgICAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDI1
OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU1N0cmluZywgYW5kIGl0J3Mgbm90IGFuIGlkZW50aWZp
ZXIuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1N0cmluZyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IFNwZWNTdHJpbmdJZGVudCB8IFNwZWNTdHJpbmdWYXI7IC8vIEl0J3Mg
ZGVmaW5pdGVseSBhIEpTU3RyaW5nLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNT
eW1ib2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDI2OyAvLyBJdCdzIGRl
ZmluaXRlbHkgYSBTeW1ib2wuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0NlbGxP
dGhlciAgICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMjc7IC8vIEl0J3MgZGVmaW5p
dGVseSBhIEpTQ2VsbCBidXQgbm90IGEgc3ViY2xhc3Mgb2YgSlNPYmplY3QgYW5kIGRlZmluaXRl
bHkgbm90IGEgSlNTdHJpbmcsIEJpZ0ludCwgb3IgU3ltYm9sLgorc3RhdGljIGNvbnN0IFNwZWN1
bGF0ZWRUeXBlIFNwZWNCb29sSW50MzIgICAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8
IDI4OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50MzIgd2l0aCB2YWx1ZSAwIG9yIDEuCitzdGF0
aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY05vbkJvb2xJbnQzMiAgICAgICAgICAgICAgICAg
ICAgICA9IDF1bGwgPDwgMjk7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQzMiB3aXRoIHZhbHVl
IG90aGVyIHRoYW4gMCBvciAxLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNJbnQz
Mk9ubHkgICAgICAgICAgICAgICAgICAgICAgICAgPSBTcGVjQm9vbEludDMyIHwgU3BlY05vbkJv
b2xJbnQzMjsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDMyLgorc3RhdGljIGNvbnN0IFNwZWN1
bGF0ZWRUeXBlIFNwZWNJbnQ1Mk9ubHkgICAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8
IDMwOyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50NTIgYW5kIHdlIGludGVuZCBpdCB0byB1bmJv
eCBpdC4gSXQncyBhbHNvIGRlZmluaXRlbHkgbm90IGFuIEludDMyLgorc3RhdGljIGNvbnN0IFNw
ZWN1bGF0ZWRUeXBlIFNwZWNBbnlJbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBTcGVj
SW50MzJPbmx5IHwgU3BlY0ludDUyT25seTsgLy8gSXQncyBzb21ldGhpbmcgdGhhdCB3ZSBjYW4g
ZG8gbWFjaGluZSBpbnQgYXJpdGhtZXRpYyBvbi4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlw
ZSBTcGVjQW55SW50QXNEb3VibGUgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAzMTsgLy8g
SXQncyBkZWZpbml0ZWx5IGFuIEludDUyIGFuZCBpdCdzIGluc2lkZSBhIGRvdWJsZS4KK3N0YXRp
YyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjTm9uSW50QXNEb3VibGUgICAgICAgICAgICAgICAg
ICAgID0gMXVsbCA8PCAzMjsgLy8gSXQncyBkZWZpbml0ZWx5IG5vdCBhbiBJbnQ1MiBidXQgaXQn
cyBhIHJlYWwgbnVtYmVyIGFuZCBpdCdzIGEgZG91YmxlLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0
ZWRUeXBlIFNwZWNEb3VibGVSZWFsICAgICAgICAgICAgICAgICAgICAgICAgPSBTcGVjTm9uSW50
QXNEb3VibGUgfCBTcGVjQW55SW50QXNEb3VibGU7IC8vIEl0J3MgZGVmaW5pdGVseSBhIG5vbi1O
YU4gZG91YmxlLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNEb3VibGVQdXJlTmFO
ICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDMzOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBO
YU4gdGhhdCBpcyBzYWZlIHRvIHRhZyAoaS5lLiBwdXJlKS4KK3N0YXRpYyBjb25zdCBTcGVjdWxh
dGVkVHlwZSBTcGVjRG91YmxlSW1wdXJlTmFOICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAz
NDsgLy8gSXQncyBkZWZpbml0ZWx5IGEgTmFOIHRoYXQgaXMgdW5zYWZlIHRvIHRhZyAoaS5lLiBp
bXB1cmUpLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNEb3VibGVOYU4gICAgICAg
ICAgICAgICAgICAgICAgICAgPSBTcGVjRG91YmxlUHVyZU5hTiB8IFNwZWNEb3VibGVJbXB1cmVO
YU47IC8vIEl0J3MgZGVmaW5pdGVseSBzb21lIGtpbmQgb2YgTmFOLgorc3RhdGljIGNvbnN0IFNw
ZWN1bGF0ZWRUeXBlIFNwZWNCeXRlY29kZURvdWJsZSAgICAgICAgICAgICAgICAgICAgPSBTcGVj
RG91YmxlUmVhbCB8IFNwZWNEb3VibGVQdXJlTmFOOyAvLyBJdCdzIGVpdGhlciBhIG5vbi1OYU4g
b3IgYSBOYU4gZG91YmxlLCBidXQgaXQncyBkZWZpbml0ZWx5IG5vdCBpbXB1cmUgTmFOLgorc3Rh
dGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNGdWxsRG91YmxlICAgICAgICAgICAgICAgICAg
ICAgICAgPSBTcGVjRG91YmxlUmVhbCB8IFNwZWNEb3VibGVOYU47IC8vIEl0J3MgZWl0aGVyIGEg
bm9uLU5hTiBvciBhIE5hTiBkb3VibGUuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3Bl
Y0J5dGVjb2RlUmVhbE51bWJlciAgICAgICAgICAgICAgICA9IFNwZWNJbnQzMk9ubHkgfCBTcGVj
RG91YmxlUmVhbDsgLy8gSXQncyBlaXRoZXIgYW4gSW50MzIgb3IgYSBEb3VibGVSZWFsLgorc3Rh
dGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNGdWxsUmVhbE51bWJlciAgICAgICAgICAgICAg
ICAgICAgPSBTcGVjQW55SW50IHwgU3BlY0RvdWJsZVJlYWw7IC8vIEl0J3MgZWl0aGVyIGFuIElu
dDMyIG9yIGEgRG91YmxlUmVhbCwgb3IgYSBJbnQ1Mi4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVk
VHlwZSBTcGVjQnl0ZWNvZGVOdW1iZXIgICAgICAgICAgICAgICAgICAgID0gU3BlY0ludDMyT25s
eSB8IFNwZWNCeXRlY29kZURvdWJsZTsgLy8gSXQncyBlaXRoZXIgYW4gSW50MzIgb3IgYSBEb3Vi
bGUsIGFuZCB0aGUgRG91YmxlIGNhbm5vdCBiZSBhbiBpbXB1cmUgTmFOLgorc3RhdGljIGNvbnN0
IFNwZWN1bGF0ZWRUeXBlIFNwZWNGdWxsTnVtYmVyICAgICAgICAgICAgICAgICAgICAgICAgPSBT
cGVjQW55SW50IHwgU3BlY0Z1bGxEb3VibGU7IC8vIEl0J3MgZWl0aGVyIGFuIEludDMyLCBJbnQ1
Miwgb3IgYSBEb3VibGUsIGFuZCB0aGUgRG91YmxlIGNhbiBiZSBpbXB1cmUgTmFOLgorc3RhdGlj
IGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNCb29sZWFuICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSAxdWxsIDw8IDM1OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBCb29sZWFuLgorc3RhdGljIGNv
bnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNPdGhlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSAxdWxsIDw8IDM2OyAvLyBJdCdzIGRlZmluaXRlbHkgZWl0aGVyIE51bGwgb3IgVW5kZWZpbmVk
Lgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNNaXNjICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSBTcGVjQm9vbGVhbiB8IFNwZWNPdGhlcjsgLy8gSXQncyBkZWZpbml0ZWx5
IGVpdGhlciBhIGJvb2xlYW4sIE51bGwsIG9yIFVuZGVmaW5lZC4KK3N0YXRpYyBjb25zdCBTcGVj
dWxhdGVkVHlwZSBTcGVjRW1wdHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8
PCAzNzsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIGVtcHR5IHZhbHVlIG1hcmtlci4KK3N0YXRpYyBj
b25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQmlnSW50ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMXVsbCA8PCAzODsgLy8gSXQncyBkZWZpbml0ZWx5IGEgQmlnSW50Lgorc3RhdGljIGNvbnN0
IFNwZWN1bGF0ZWRUeXBlIFNwZWNQcmltaXRpdmUgICAgICAgICAgICAgICAgICAgICAgICAgPSBT
cGVjU3RyaW5nIHwgU3BlY1N5bWJvbCB8IFNwZWNCeXRlY29kZU51bWJlciB8IFNwZWNNaXNjIHwg
U3BlY0JpZ0ludDsgLy8gSXQncyBhbnkgbm9uLU9iamVjdCBKU1ZhbHVlLgorc3RhdGljIGNvbnN0
IFNwZWN1bGF0ZWRUeXBlIFNwZWNDZWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBT
cGVjT2JqZWN0IHwgU3BlY1N0cmluZyB8IFNwZWNTeW1ib2wgfCBTcGVjQ2VsbE90aGVyIHwgU3Bl
Y0JpZ0ludDsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNDZWxsLgorc3RhdGljIGNvbnN0IFNwZWN1
bGF0ZWRUeXBlIFNwZWNIZWFwVG9wICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBTcGVjQ2Vs
bCB8IFNwZWNCeXRlY29kZU51bWJlciB8IFNwZWNNaXNjOyAvLyBJdCBjYW4gYmUgYW55IG9mIHRo
ZSBhYm92ZSwgZXhjZXB0IGZvciBTcGVjSW50NTJPbmx5IGFuZCBTcGVjRG91YmxlSW1wdXJlTmFO
Lgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNCeXRlY29kZVRvcCAgICAgICAgICAg
ICAgICAgICAgICAgPSBTcGVjSGVhcFRvcCB8IFNwZWNFbXB0eTsgLy8gSXQgY2FuIGJlIGFueSBv
ZiB0aGUgYWJvdmUsIGV4Y2VwdCBmb3IgU3BlY0ludDUyT25seSBhbmQgU3BlY0RvdWJsZUltcHVy
ZU5hTi4gQ29ycmVzcG9uZHMgdG8gd2hhdCBjb3VsZCBiZSBmb3VuZCBpbiBhIGJ5dGVjb2RlIGxv
Y2FsLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNGdWxsVG9wICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSBTcGVjQnl0ZWNvZGVUb3AgfCBTcGVjRnVsbE51bWJlcjsgLy8gSXQg
Y2FuIGJlIGFueXRoaW5nIHRoYXQgYnl0ZWNvZGUgY291bGQgc2VlIHBsdXMgZXhvdGljIGVuY29k
aW5ncyBvZiBudW1iZXJzLgogCiAvLyBTcGVjQ2VsbENoZWNrIGlzIHRoZSB0eXBlIHNldCByZXBy
ZXNlbnRpbmcgdGhlIHZhbHVlcyB0aGF0IGNhbiBmbG93IHRocm91Z2ggYSBjZWxsIGNoZWNrLgog
Ly8gT24gNjQtYml0IHBsYXRmb3JtcywgdGhlIGVtcHR5IHZhbHVlIHBhc3NlcyBhIGNlbGwgY2hl
Y2suIEFsc28sIH5TcGVjQ2VsbENoZWNrIGlzIHRoZSB0eXBlCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5l
cy5oCShyZXZpc2lvbiAyMzE4MTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fi
c3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0MzcsNyArMzQz
Nyw2IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHkKICAgICBjYXNl
IENvdW50RXhlY3V0aW9uOgogICAgIGNhc2UgQ2hlY2tUaWVyVXBJbkxvb3A6CiAgICAgY2FzZSBD
aGVja1RpZXJVcEF0UmV0dXJuOgotICAgIGNhc2UgQ2hlY2tUeXBlSW5mb0ZsYWdzOgogICAgIGNh
c2UgU3VwZXJTYW1wbGVyQmVnaW46CiAgICAgY2FzZSBTdXBlclNhbXBsZXJFbmQ6CiAgICAgY2Fz
ZSBDaGVja1RpZXJVcEFuZE9TUkVudGVyOgpAQCAtMzQ0Niw2ICszNDQ1LDQwIEBAIGJvb2wgQWJz
dHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHkKICAgICBjYXNlIEV4aXRPSzoKICAgICAg
ICAgYnJlYWs7CiAKKyAgICBjYXNlIENoZWNrVHlwZUluZm9GbGFnczogeworICAgICAgICBpZiAo
bm9kZS0+dHlwZUluZm9PcGVyYW5kKCkgIT0gSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSkK
KyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNvbnN0IEFic3RyYWN0VmFsdWUmIGFic3Ry
YWN0VmFsdWUgPSBmb3JOb2RlKG5vZGUtPmNoaWxkMSgpKTsKKworICAgICAgICBpZiAoYWJzdHJh
Y3RWYWx1ZS5tX3R5cGUgPT0gU3BlY0Z1bmN0aW9uV2l0aERlZmF1bHRIYXNJbnN0YW5jZSkgewor
ICAgICAgICAgICAgbV9zdGF0ZS5zZXRGb3VuZENvbnN0YW50cyh0cnVlKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgaWYgKEpTVmFsdWUgdmFsdWUgPSBhYnN0cmFj
dFZhbHVlLnZhbHVlKCkpIHsKKyAgICAgICAgICAgIGlmICh2YWx1ZS5pc0NlbGwoKSkgeworICAg
ICAgICAgICAgICAgIC8vIFRoaXMgd29ya3MgYmVjYXVzZSBpZiB3ZSBzZWUgYSBjZWxsIGhlcmUs
IHdlIGtub3cgaXQncyBmdWxseSBjb25zdHJ1Y3RlZAorICAgICAgICAgICAgICAgIC8vIGFuZCB3
ZSBjYW4gcmVhZCBpdHMgaW5saW5lIHR5cGUgaW5mbyBmbGFncy4gVGhlc2UgZmxhZ3MgZG9uJ3Qg
Y2hhbmdlIG92ZXIgdGhlCisgICAgICAgICAgICAgICAgLy8gb2JqZWN0J3MgbGlmZXRpbWUuCisg
ICAgICAgICAgICAgICAgaWYgKHZhbHVlLmFzQ2VsbCgpLT5pbmxpbmVUeXBlRmxhZ3MoKSAmIElt
cGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UpIHsKKyAgICAgICAgICAgICAgICAgICAgbV9zdGF0
ZS5zZXRGb3VuZENvbnN0YW50cyh0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYg
KGFic3RyYWN0VmFsdWUubV9zdHJ1Y3R1cmUuaXNGaW5pdGUoKSkgeworICAgICAgICAgICAgYm9v
bCBvayA9IHRydWU7CisgICAgICAgICAgICBhYnN0cmFjdFZhbHVlLm1fc3RydWN0dXJlLmZvckVh
Y2goWyZdIChSZWdpc3RlcmVkU3RydWN0dXJlIHN0cnVjdHVyZSkgeworICAgICAgICAgICAgICAg
IG9rICY9IHN0cnVjdHVyZS0+dHlwZUluZm8oKS5pbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNl
KCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGlmIChvaykKKyAgICAgICAgICAgICAg
ICBtX3N0YXRlLnNldEZvdW5kQ29uc3RhbnRzKHRydWUpOworICAgICAgICB9CisgICAgICAgIGJy
ZWFrOworICAgIH0KKwogICAgIGNhc2UgUGFyc2VJbnQ6IHsKICAgICAgICAgQWJzdHJhY3RWYWx1
ZSB2YWx1ZSA9IGZvck5vZGUobm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICBpZiAodmFsdWUubV90
eXBlICYmICEodmFsdWUubV90eXBlICYgflNwZWNJbnQzMk9ubHkpKSB7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNw
cAkocmV2aXNpb24gMjMxODEzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25z
dGFudEZvbGRpbmdQaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgwNiw2ICs4MDYsNDYgQEAg
cHJpdmF0ZToKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgIGNhc2UgQ2hlY2tUeXBlSW5mb0ZsYWdzOiB7CisgICAg
ICAgICAgICAgICAgaWYgKG5vZGUtPnR5cGVJbmZvT3BlcmFuZCgpICE9IEltcGxlbWVudHNEZWZh
dWx0SGFzSW5zdGFuY2UpCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAg
ICAgICAgY29uc3QgQWJzdHJhY3RWYWx1ZSYgYWJzdHJhY3RWYWx1ZSA9IG1fc3RhdGUuZm9yTm9k
ZShub2RlLT5jaGlsZDEoKSk7CisKKyAgICAgICAgICAgICAgICBpZiAoYWJzdHJhY3RWYWx1ZS5t
X3R5cGUgPT0gU3BlY0Z1bmN0aW9uV2l0aERlZmF1bHRIYXNJbnN0YW5jZSkgeworICAgICAgICAg
ICAgICAgICAgICBub2RlLT5yZW1vdmUobV9ncmFwaCk7CisgICAgICAgICAgICAgICAgICAgIGNo
YW5nZWQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgICAgICBpZiAoSlNWYWx1ZSB2YWx1ZSA9IGFic3RyYWN0VmFsdWUu
dmFsdWUoKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUuaXNDZWxsKCkpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgd29ya3MgYmVjYXVzZSBpZiB3ZSBzZWUgYSBj
ZWxsIGhlcmUsIHdlIGtub3cgaXQncyBmdWxseSBjb25zdHJ1Y3RlZAorICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gYW5kIHdlIGNhbiByZWFkIGl0cyBpbmxpbmUgdHlwZSBpbmZvIGZsYWdzLiBU
aGVzZSBmbGFncyBkb24ndCBjaGFuZ2Ugb3ZlciB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAg
IC8vIG9iamVjdCdzIGxpZmV0aW1lLgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVl
LmFzQ2VsbCgpLT5pbmxpbmVUeXBlRmxhZ3MoKSAmIEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFu
Y2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlLT5yZW1vdmUobV9ncmFwaCk7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCA9IHRydWU7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBp
ZiAoYWJzdHJhY3RWYWx1ZS5tX3N0cnVjdHVyZS5pc0Zpbml0ZSgpKSB7CisgICAgICAgICAgICAg
ICAgICAgIGJvb2wgb2sgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBhYnN0cmFjdFZhbHVl
Lm1fc3RydWN0dXJlLmZvckVhY2goWyZdIChSZWdpc3RlcmVkU3RydWN0dXJlIHN0cnVjdHVyZSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgb2sgJj0gc3RydWN0dXJlLT50eXBlSW5mbygpLmlt
cGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UoKTsKKyAgICAgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgICAgIGlmIChvaykgeworICAgICAgICAgICAgICAgICAgICAgICAgbm9k
ZS0+cmVtb3ZlKG1fZ3JhcGgpOworICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCA9IHRy
dWU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgY2FzZSBQaGFudG9tTmV3T2JqZWN0
OgogICAgICAgICAgICAgY2FzZSBQaGFudG9tTmV3RnVuY3Rpb246CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2UuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5j
cHAJKHJldmlzaW9uIDIzMTgxMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Ry
ZW5ndGhSZWR1Y3Rpb25QaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwMyw3ICszMDMsNyBA
QCBwcml2YXRlOgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAotICAgICAgICAvLyBG
SVhNRTogd2Ugc2hvdWxkIHByb2JhYmx5IGRvIHRoaXMgaW4gY29uc3RhbnQgZm9sZGluZyBidXQg
dGhpcyBjdXJyZW50bHkgcmVsaWVzIG9uIGFuIE9TUiBleGl0IHJ1bGUuCisgICAgICAgIC8vIEZJ
WE1FOiB3ZSBzaG91bGQgcHJvYmFibHkgZG8gdGhpcyBpbiBjb25zdGFudCBmb2xkaW5nIGJ1dCB0
aGlzIGN1cnJlbnRseSByZWxpZXMgb24gT1NSIGV4aXQgaGlzdG9yeToKICAgICAgICAgLy8gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDgzMgogICAgICAgICBjYXNl
IE92ZXJyaWRlc0hhc0luc3RhbmNlOiB7CiAgICAgICAgICAgICBpZiAoIW1fbm9kZS0+Y2hpbGQy
KCkubm9kZSgpLT5pc0NlbGxDb25zdGFudCgpKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAJKHJldmlzaW9uIDIzMTgxMykKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
MDAsNiArMTAwLDcgQEAgSlNGdW5jdGlvbjo6SlNGdW5jdGlvbihWTSYgdm0sIEpTR2xvYmFsTwog
ICAgIDogQmFzZSh2bSwgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpCiAgICAgLCBtX2V4ZWN1dGFi
bGUoKQogeworICAgIGFzc2VydFR5cGVJbmZvRmxhZ0ludmFyaWFudHMoKTsKIH0KIAogCkBAIC03
ODksNCArNzkwLDE2IEBAIEpTRnVuY3Rpb246OlByb3BlcnR5U3RhdHVzIEpTRnVuY3Rpb246OnIK
ICAgICByZXR1cm4gUHJvcGVydHlTdGF0dXM6OlJlaWZpZWQ7CiB9CiAKKyNpZiAhQVNTRVJUX0RJ
U0FCTEVECit2b2lkIEpTRnVuY3Rpb246OmFzc2VydFR5cGVJbmZvRmxhZ0ludmFyaWFudHMoKQor
eworICAgIC8vIElmIHlvdSBjaGFuZ2UgdGhpcywgeW91J2xsIG5lZWQgdG8gdXBkYXRlIHNwZWN1
bGF0aW9uRnJvbUNsYXNzSW5mby4KKyAgICBjb25zdCBDbGFzc0luZm8qIGluZm8gPSBjbGFzc0lu
Zm8oKnZtKCkpOworICAgIGlmICghKGlubGluZVR5cGVGbGFncygpICYgSW1wbGVtZW50c0RlZmF1
bHRIYXNJbnN0YW5jZSkpCisgICAgICAgIFJFTEVBU0VfQVNTRVJUKGluZm8gPT0gSlNCb3VuZEZ1
bmN0aW9uOjppbmZvKCkpOworICAgIGVsc2UKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQoaW5mbyAh
PSBKU0JvdW5kRnVuY3Rpb246OmluZm8oKSk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2Ug
SlNDCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCShy
ZXZpc2lvbiAyMzE4MTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0
aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTIwOCw2ICsyMDgsMTIgQEAgcHJpdmF0ZToKICAgICBQ
cm9wZXJ0eVN0YXR1cyByZWlmeUxhenlOYW1lSWZOZWVkZWQoVk0mLCBFeGVjU3RhdGUqLCBQcm9w
ZXJ0eU5hbWUpOwogICAgIFByb3BlcnR5U3RhdHVzIHJlaWZ5TGF6eUJvdW5kTmFtZUlmTmVlZGVk
KFZNJiwgRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lKTsKIAorI2lmIEFTU0VSVF9ESVNBQkxFRAor
ICAgIHZvaWQgYXNzZXJ0VHlwZUluZm9GbGFnSW52YXJpYW50cygpIHsgfQorI2Vsc2UKKyAgICB2
b2lkIGFzc2VydFR5cGVJbmZvRmxhZ0ludmFyaWFudHMoKTsKKyNlbmRpZgorCiAgICAgZnJpZW5k
IGNsYXNzIExMSW50T2Zmc2V0c0V4dHJhY3RvcjsKIAogICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBhcmd1bWVudHNHZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFt
ZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uSW5saW5l
cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rp
b25JbmxpbmVzLmgJKHJldmlzaW9uIDIzMTgxMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTRnVuY3Rpb25JbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTQzLDYgKzQzLDcg
QEAgaW5saW5lIEpTRnVuY3Rpb246OkpTRnVuY3Rpb24oVk0mIHZtLCBGdQogICAgICwgbV9leGVj
dXRhYmxlKHZtLCB0aGlzLCBleGVjdXRhYmxlKQogICAgICwgbV9yYXJlRGF0YSgpCiB7CisgICAg
YXNzZXJ0VHlwZUluZm9GbGFnSW52YXJpYW50cygpOwogfQogCiBpbmxpbmUgRnVuY3Rpb25FeGVj
dXRhYmxlKiBKU0Z1bmN0aW9uOjpqc0V4ZWN1dGFibGUoKSBjb25zdAo=
</data>
<flag name="review"
          id="358720"
          type_id="1"
          status="+"
          setter="ysuzuki"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>340543</attachid>
            <date>2018-05-16 17:33:27 -0700</date>
            <delta_ts>2018-05-16 18:49:29 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>31170</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMzE4NzgpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDEzIEBACisyMDE4LTA1LTE2ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUu
Y29tPgorCisgICAgICAgIENvbnN0YW50IGZvbGQgQ2hlY2tUeXBlSW5mb0ZsYWdzIG9uIEltcGxl
bWVudHNEZWZhdWx0SGFzSW5zdGFuY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE4NTY3MAorCisgICAgICAgIFJldmlld2VkIGJ5IFl1c3VrZSBTdXp1
a2kuCisKKyAgICAgICAgKiBtaWNyb2JlbmNobWFya3MvY29uc3RhbnQtZm9sZC1jaGVjay10eXBl
LWluZm8tZmxhZ3MuanM6IEFkZGVkLgorICAgICAgICAqIHN0cmVzcy9kb250LWNvbnN0YW50LWZv
bGQtY2hlY2stdHlwZS1pbmZvLW9uLWJvdW5kLWZ1bmN0aW9uLmpzOiBBZGRlZC4KKwogMjAxOC0w
NS0xNiAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIzMTg0NS4KSW5kZXg6IEpTVGVzdHMvbWljcm9iZW5j
aG1hcmtzL2NvbnN0YW50LWZvbGQtY2hlY2stdHlwZS1pbmZvLWZsYWdzLmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIEpTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2NvbnN0YW50LWZvbGQtY2hlY2stdHlwZS1pbmZv
LWZsYWdzLmpzCShub25leGlzdGVudCkKKysrIEpTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2NvbnN0
YW50LWZvbGQtY2hlY2stdHlwZS1pbmZvLWZsYWdzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsNDEgQEAKKyJ1c2Ugc3RyaWN0IjsKKworZnVuY3Rpb24gY2xvYmJlcigpIHsgfQorbm9Jbmxp
bmUoY2xvYmJlcik7CisKK2NsYXNzIEMgeyB9CitjbGFzcyBEIHsgfQorCitmdW5jdGlvbiBmb28o
eCwgQykgeworICAgIGNsb2JiZXIoKTsKKyAgICByZXR1cm4geCBpbnN0YW5jZW9mIEM7Cit9Citu
b0lubGluZShmb28pOworCitmdW5jdGlvbiBhY2Nlc3MobykgeworICAgIHJldHVybiBvLmZvbzA7
Cit9Citub0lubGluZShhY2Nlc3MpOworCitmdW5jdGlvbiB0aGVDbGFzcyhpKSB7CisgICAgaWYg
KGkgJiAxKQorICAgICAgICByZXR1cm4gQzsKKyAgICByZXR1cm4gRDsKK30KK25vSW5saW5lKHRo
ZUNsYXNzKTsKKworbGV0IHggPSBuZXcgQzsKK2ZvciAobGV0IGkgPSAwOyBpIDwgMTAwMDsgKytp
KSB7CisgICAgbGV0IGsgPSB0aGVDbGFzcyhpKTsKKyAgICBpZiAoaSA8IDIwKQorICAgICAgICBr
WyJmb28iICsgaV0gPSBpOworICAgIGlmIChpID49IDIwKQorICAgICAgICBhY2Nlc3Moayk7Cisg
ICAgaWYgKGkgPT09IDEwMCkKKyAgICAgICAga1siZm9vIiArIGldID0gaTsKKyAgICBsZXQgcmVz
dWx0ID0gZm9vKHgsIGspOworICAgIGlmIChrID09PSBDICYmIHJlc3VsdCAhPT0gdHJ1ZSkKKyAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQiKQorICAgIGlmIChrICE9PSBDICYmIHJlc3VsdCAh
PT0gZmFsc2UpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIikKK30KSW5kZXg6IEpTVGVz
dHMvc3RyZXNzL2RvbnQtY29uc3RhbnQtZm9sZC1jaGVjay10eXBlLWluZm8tb24tYm91bmQtZnVu
Y3Rpb24uanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy9zdHJlc3MvZG9udC1jb25zdGFudC1mb2xk
LWNoZWNrLXR5cGUtaW5mby1vbi1ib3VuZC1mdW5jdGlvbi5qcwkobm9uZXhpc3RlbnQpCisrKyBK
U1Rlc3RzL3N0cmVzcy9kb250LWNvbnN0YW50LWZvbGQtY2hlY2stdHlwZS1pbmZvLW9uLWJvdW5k
LWZ1bmN0aW9uLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTcgQEAKKyJ1c2Ugc3RyaWN0
IjsKKworY2xhc3MgQyB7IH0KK2xldCB4ID0gbmV3IEM7CitDID0gQy5iaW5kKHRoaXMpOworCitm
dW5jdGlvbiBmb28oeCkgeworICAgIHguZm9vOworICAgIHJldHVybiB4IGluc3RhbmNlb2YgQzsK
K30KK25vSW5saW5lKGZvbyk7CisKK2ZvciAobGV0IGkgPSAwOyBpIDwgMTAwMDsgKytpKSB7Cisg
ICAgbGV0IHIgPSBmb28oeCk7CisgICAgaWYgKHIgIT09IHRydWUpCisgICAgICAgIHRocm93IG5l
dyBFcnJvcigiQmFkIikKK30KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24g
MjMxODE5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDQzIEBACisyMDE4LTA1LTE2ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBw
bGUuY29tPgorCisgICAgICAgIENvbnN0YW50IGZvbGQgQ2hlY2tUeXBlSW5mb0ZsYWdzIG9uIElt
cGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE4NTY3MAorCisgICAgICAgIFJldmlld2VkIGJ5IFl1c3VrZSBT
dXp1a2kuCisKKyAgICAgICAgVGhpcyBwYXRjaCBtYWtlcyBpdCBzbyB0aGF0IHdlIGNvbnN0YW50
IGZvbGQgQ2hlY2tUeXBlSW5mb0ZsYWdzIGZvcgorICAgICAgICBJbXBsZW1lbnRzRGVmYXVsdEhh
c0luc3RhbmNlIGluc2lkZSBvZiBBSS9jb25zdGFudCBmb2xkaW5nLiBXZSBjb25zdGFudAorICAg
ICAgICBmb2xkIGluIHRocmVlIHdheXM6CisgICAgICAgIC0gV2hlbiB0aGUgaW5jb21pbmcgdmFs
dWUgaXMgYSBjb25zdGFudCwgd2UganVzdCBsb29rIGF0IGl0cyBpbmxpbmUgdHlwZQorICAgICAg
ICBmbGFncy4gU2luY2UgdGhvc2UgZmxhZ3MgbmV2ZXIgY2hhbmdlIGFmdGVyIGFuIG9iamVjdCBp
cyBjcmVhdGVkLCB0aGlzCisgICAgICAgIGlzIHNvdW5kLgorICAgICAgICAtIEJhc2VkIG9uIHRo
ZSBpbmNvbWluZyB2YWx1ZSBoYXZpbmcgYSBmaW5pdGUgc3RydWN0dXJlIHNldC4gV2UganVzdCBp
dGVyYXRlCisgICAgICAgIGFsbCBzdHJ1Y3R1cmVzIGFuZCBlbnN1cmUgdGhleSBoYXZlIHRoZSBi
aXQgc2V0LgorICAgICAgICAtIEJhc2VkIG9uIHNwZWN1bGF0ZWQgdHlwZS4gVG8gZG8gdGhpcywg
SSBzcGxpdCB1cCBTcGVjRnVuY3Rpb24gaW50byB0d28KKyAgICAgICAgc3ViaGVhcHMgd2hlcmUg
b25lIGlzIGZvciBmdW5jdGlvbnMgdGhhdCBoYXZlIHRoZSBiaXQgc2V0LCBhbmQgb25lIGZvcgor
ICAgICAgICBmdW5jdGlvbnMgdGhhdCBkb24ndCBoYXZlIHRoZSBiaXQgc2V0LiBUaGUgbGF0dGVy
IGlzIGN1cnJlbnRseSBvbmx5IGNvbXByaXNlZAorICAgICAgICBvZiBKU0JvdW5kRnVuY3Rpb25z
LiBUbyBjb25zdGFudCBmb2xkLCB3ZSBjaGVjayB0aGF0IHRoZSBpbmNvbWluZworICAgICAgICB2
YWx1ZSBvbmx5IGhhcyB0aGUgU3BlY0Z1bmN0aW9uIHR5cGUgd2l0aCBJbXBsZW1lbnRzRGVmYXVs
dEhhc0luc3RhbmNlIHNldC4KKworICAgICAgICAqIGJ5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmNw
cDoKKyAgICAgICAgKEpTQzo6c3BlY3VsYXRpb25Gcm9tQ2xhc3NJbmZvKToKKyAgICAgICAgKiBi
eXRlY29kZS9TcGVjdWxhdGVkVHlwZS5oOgorICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdEludGVy
cHJldGVySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0SW50ZXJwcmV0ZXI8
QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyk6CisgICAgICAgICogZGZnL0RGR0Nv
bnN0YW50Rm9sZGluZ1BoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpDb25zdGFudEZvbGRp
bmdQaGFzZTo6Zm9sZENvbnN0YW50cyk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklU
LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNoZWNrVHlw
ZUluZm9GbGFncyk6CisgICAgICAgICogZGZnL0RGR1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2UuY3Bw
OgorICAgICAgICAoSlNDOjpERkc6OlN0cmVuZ3RoUmVkdWN0aW9uUGhhc2U6OmhhbmRsZU5vZGUp
OgorICAgICAgICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkpTRnVu
Y3Rpb246OkpTRnVuY3Rpb24pOgorICAgICAgICAoSlNDOjpKU0Z1bmN0aW9uOjphc3NlcnRUeXBl
SW5mb0ZsYWdJbnZhcmlhbnRzKToKKyAgICAgICAgKiBydW50aW1lL0pTRnVuY3Rpb24uaDoKKyAg
ICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6YXNzZXJ0VHlwZUluZm9GbGFnSW52YXJpYW50cyk6Cisg
ICAgICAgICogcnVudGltZS9KU0Z1bmN0aW9uSW5saW5lcy5oOgorICAgICAgICAoSlNDOjpKU0Z1
bmN0aW9uOjpKU0Z1bmN0aW9uKToKKwogMjAxOC0wNS0xNSAgRGV2aW4gUm91c3NvICA8d2Via2l0
QGRldmlucm91c3NvLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBBZGQgcnVsZXJzIGFu
ZCBndWlkZXMKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVk
VHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Nw
ZWN1bGF0ZWRUeXBlLmNwcAkocmV2aXNpb24gMjMxODEzKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiAr
MzIsNyBAQAogI2luY2x1ZGUgIkRpcmVjdEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIkpTQXJyYXku
aCIKICNpbmNsdWRlICJKU0JpZ0ludC5oIgorI2luY2x1ZGUgIkpTQm91bmRGdW5jdGlvbi5oIgog
I2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCiAjaW5jbHVk
ZSAiSlNNYXAuaCIKQEAgLTQzMiw4ICs0MzMsMTEgQEAgU3BlY3VsYXRlZFR5cGUgc3BlY3VsYXRp
b25Gcm9tQ2xhc3NJbmZvKAogICAgIGlmIChjbGFzc0luZm8gPT0gUHJveHlPYmplY3Q6OmluZm8o
KSkKICAgICAgICAgcmV0dXJuIFNwZWNQcm94eU9iamVjdDsKICAgICAKLSAgICBpZiAoY2xhc3NJ
bmZvLT5pc1N1YkNsYXNzT2YoSlNGdW5jdGlvbjo6aW5mbygpKSkKLSAgICAgICAgcmV0dXJuIFNw
ZWNGdW5jdGlvbjsKKyAgICBpZiAoY2xhc3NJbmZvLT5pc1N1YkNsYXNzT2YoSlNGdW5jdGlvbjo6
aW5mbygpKSkgeworICAgICAgICBpZiAoY2xhc3NJbmZvID09IEpTQm91bmRGdW5jdGlvbjo6aW5m
bygpKQorICAgICAgICAgICAgcmV0dXJuIFNwZWNGdW5jdGlvbldpdGhOb25EZWZhdWx0SGFzSW5z
dGFuY2U7CisgICAgICAgIHJldHVybiBTcGVjRnVuY3Rpb25XaXRoRGVmYXVsdEhhc0luc3RhbmNl
OworICAgIH0KICAgICAKICAgICBpZiAoaXNUeXBlZFZpZXcoY2xhc3NJbmZvLT50eXBlZEFycmF5
U3RvcmFnZVR5cGUpKQogICAgICAgICByZXR1cm4gc3BlY3VsYXRpb25Gcm9tVHlwZWRBcnJheVR5
cGUoY2xhc3NJbmZvLT50eXBlZEFycmF5U3RvcmFnZVR5cGUpOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmgJKHJldmlzaW9uIDIzMTgx
MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zOCw2NCArMzgsNjYgQEAgbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBT
dHJ1Y3R1cmU7CiAKIHR5cGVkZWYgdWludDY0X3QgU3BlY3VsYXRlZFR5cGU7Ci1zdGF0aWMgY29u
c3QgU3BlY3VsYXRlZFR5cGUgU3BlY05vbmUgICAgICAgICAgICAgICA9IDA7IC8vIFdlIGRvbid0
IGtub3cgYW55dGhpbmcgeWV0Lgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNGaW5h
bE9iamVjdCAgICAgICAgPSAxdWxsIDw8IDA7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTRmluYWxP
YmplY3QuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0FycmF5ICAgICAgICAgICAg
ICA9IDF1bGwgPDwgMTsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNBcnJheS4KLXN0YXRpYyBjb25z
dCBTcGVjdWxhdGVkVHlwZSBTcGVjRnVuY3Rpb24gICAgICAgICAgID0gMXVsbCA8PCAyOyAvLyBJ
dCdzIGRlZmluaXRlbHkgYSBKU0Z1bmN0aW9uLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBl
IFNwZWNJbnQ4QXJyYXkgICAgICAgICAgPSAxdWxsIDw8IDM7IC8vIEl0J3MgZGVmaW5pdGVseSBh
biBJbnQ4QXJyYXkgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgotc3RhdGljIGNvbnN0IFNwZWN1
bGF0ZWRUeXBlIFNwZWNJbnQxNkFycmF5ICAgICAgICAgPSAxdWxsIDw8IDQ7IC8vIEl0J3MgZGVm
aW5pdGVseSBhbiBJbnQxNkFycmF5IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KLXN0YXRpYyBj
b25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjSW50MzJBcnJheSAgICAgICAgID0gMXVsbCA8PCA1OyAv
LyBJdCdzIGRlZmluaXRlbHkgYW4gSW50MzJBcnJheSBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMu
Ci1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1VpbnQ4QXJyYXkgICAgICAgICA9IDF1
bGwgPDwgNjsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIFVpbnQ4QXJyYXkgb3Igb25lIG9mIGl0cyBz
dWJjbGFzc2VzLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNVaW50OENsYW1wZWRB
cnJheSAgPSAxdWxsIDw8IDc7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBVaW50OENsYW1wZWRBcnJh
eSBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUg
U3BlY1VpbnQxNkFycmF5ICAgICAgICA9IDF1bGwgPDwgODsgLy8gSXQncyBkZWZpbml0ZWx5IGFu
IFVpbnQxNkFycmF5IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KLXN0YXRpYyBjb25zdCBTcGVj
dWxhdGVkVHlwZSBTcGVjVWludDMyQXJyYXkgICAgICAgID0gMXVsbCA8PCA5OyAvLyBJdCdzIGRl
ZmluaXRlbHkgYW4gVWludDMyQXJyYXkgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgotc3RhdGlj
IGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNGbG9hdDMyQXJyYXkgICAgICAgPSAxdWxsIDw8IDEw
OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gVWludDE2QXJyYXkgb3Igb25lIG9mIGl0cyBzdWJjbGFz
c2VzLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNGbG9hdDY0QXJyYXkgICAgICAg
PSAxdWxsIDw8IDExOyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gVWludDE2QXJyYXkgb3Igb25lIG9m
IGl0cyBzdWJjbGFzc2VzLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNUeXBlZEFy
cmF5VmlldyAgICAgPSBTcGVjSW50OEFycmF5IHwgU3BlY0ludDE2QXJyYXkgfCBTcGVjSW50MzJB
cnJheSB8IFNwZWNVaW50OEFycmF5IHwgU3BlY1VpbnQ4Q2xhbXBlZEFycmF5IHwgU3BlY1VpbnQx
NkFycmF5IHwgU3BlY1VpbnQzMkFycmF5IHwgU3BlY0Zsb2F0MzJBcnJheSB8IFNwZWNGbG9hdDY0
QXJyYXk7Ci1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0RpcmVjdEFyZ3VtZW50cyAg
ICA9IDF1bGwgPDwgMTI7IC8vIEl0J3MgZGVmaW5pdGVseSBhIERpcmVjdEFyZ3VtZW50cyBvYmpl
Y3QuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1Njb3BlZEFyZ3VtZW50cyAgICA9
IDF1bGwgPDwgMTM7IC8vIEl0J3MgZGVmaW5pdGVseSBhIFNjb3BlZEFyZ3VtZW50cyBvYmplY3Qu
Ci1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1N0cmluZ09iamVjdCAgICAgICA9IDF1
bGwgPDwgMTQ7IC8vIEl0J3MgZGVmaW5pdGVseSBhIFN0cmluZ09iamVjdC4KLXN0YXRpYyBjb25z
dCBTcGVjdWxhdGVkVHlwZSBTcGVjUmVnRXhwT2JqZWN0ICAgICAgID0gMXVsbCA8PCAxNTsgLy8g
SXQncyBkZWZpbml0ZWx5IGEgUmVnRXhwT2JqZWN0IChhbmQgbm90IGFueSBzdWJjbGFzcyBvZiBS
ZWdFeHBPYmplY3QpLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNNYXBPYmplY3Qg
ICAgICAgICAgPSAxdWxsIDw8IDE2OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBNYXAgb2JqZWN0IG9y
IG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVj
U2V0T2JqZWN0ICAgICAgICAgID0gMXVsbCA8PCAxNzsgLy8gSXQncyBkZWZpbml0ZWx5IGEgU2V0
IG9iamVjdCBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRl
ZFR5cGUgU3BlY1dlYWtNYXBPYmplY3QgICAgICA9IDF1bGwgPDwgMTg7IC8vIEl0J3MgZGVmaW5p
dGVseSBhIFdlYWtNYXAgb2JqZWN0IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KLXN0YXRpYyBj
b25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjV2Vha1NldE9iamVjdCAgICAgID0gMXVsbCA8PCAxOTsg
Ly8gSXQncyBkZWZpbml0ZWx5IGEgV2Vha1NldCBvYmplY3Qgb3Igb25lIG9mIGl0cyBzdWJjbGFz
c2VzLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNQcm94eU9iamVjdCAgICAgICAg
PSAxdWxsIDw8IDIwOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBQcm94eSBvYmplY3Qgb3Igb25lIG9m
IGl0cyBzdWJjbGFzc2VzLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNEZXJpdmVk
QXJyYXkgICAgICAgPSAxdWxsIDw8IDIxOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBEZXJpdmVkQXJy
YXkgb2JqZWN0Lgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNPYmplY3RPdGhlciAg
ICAgICAgPSAxdWxsIDw8IDIyOyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gb2JqZWN0IGJ1dCBub3Qg
SlNGaW5hbE9iamVjdCwgSlNBcnJheSwgb3IgSlNGdW5jdGlvbi4KLXN0YXRpYyBjb25zdCBTcGVj
dWxhdGVkVHlwZSBTcGVjT2JqZWN0ICAgICAgICAgICAgID0gU3BlY0ZpbmFsT2JqZWN0IHwgU3Bl
Y0FycmF5IHwgU3BlY0Z1bmN0aW9uIHwgU3BlY1R5cGVkQXJyYXlWaWV3IHwgU3BlY0RpcmVjdEFy
Z3VtZW50cyB8IFNwZWNTY29wZWRBcmd1bWVudHMgfCBTcGVjU3RyaW5nT2JqZWN0IHwgU3BlY1Jl
Z0V4cE9iamVjdCB8IFNwZWNNYXBPYmplY3QgfCBTcGVjU2V0T2JqZWN0IHwgU3BlY1dlYWtNYXBP
YmplY3QgfCBTcGVjV2Vha1NldE9iamVjdCB8IFNwZWNQcm94eU9iamVjdCB8IFNwZWNEZXJpdmVk
QXJyYXkgfCBTcGVjT2JqZWN0T3RoZXI7IC8vIEJpdG1hc2sgdXNlZCBmb3IgdGVzdGluZyBmb3Ig
YW55IGtpbmQgb2Ygb2JqZWN0IHByZWRpY3Rpb24uCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5
cGUgU3BlY1N0cmluZ0lkZW50ICAgICAgICA9IDF1bGwgPDwgMjM7IC8vIEl0J3MgZGVmaW5pdGVs
eSBhIEpTU3RyaW5nLCBhbmQgaXQncyBhbiBpZGVudGlmaWVyLgotc3RhdGljIGNvbnN0IFNwZWN1
bGF0ZWRUeXBlIFNwZWNTdHJpbmdWYXIgICAgICAgICAgPSAxdWxsIDw8IDI0OyAvLyBJdCdzIGRl
ZmluaXRlbHkgYSBKU1N0cmluZywgYW5kIGl0J3Mgbm90IGFuIGlkZW50aWZpZXIuCi1zdGF0aWMg
Y29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1N0cmluZyAgICAgICAgICAgICA9IFNwZWNTdHJpbmdJ
ZGVudCB8IFNwZWNTdHJpbmdWYXI7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTU3RyaW5nLgotc3Rh
dGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNTeW1ib2wgICAgICAgICAgICAgPSAxdWxsIDw8
IDI1OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBTeW1ib2wuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRl
ZFR5cGUgU3BlY0NlbGxPdGhlciAgICAgICAgICA9IDF1bGwgPDwgMjY7IC8vIEl0J3MgZGVmaW5p
dGVseSBhIEpTQ2VsbCBidXQgbm90IGEgc3ViY2xhc3Mgb2YgSlNPYmplY3QgYW5kIGRlZmluaXRl
bHkgbm90IGEgSlNTdHJpbmcsIEJpZ0ludCwgb3IgU3ltYm9sLgotc3RhdGljIGNvbnN0IFNwZWN1
bGF0ZWRUeXBlIFNwZWNCb29sSW50MzIgICAgICAgICAgPSAxdWxsIDw8IDI3OyAvLyBJdCdzIGRl
ZmluaXRlbHkgYW4gSW50MzIgd2l0aCB2YWx1ZSAwIG9yIDEuCi1zdGF0aWMgY29uc3QgU3BlY3Vs
YXRlZFR5cGUgU3BlY05vbkJvb2xJbnQzMiAgICAgICA9IDF1bGwgPDwgMjg7IC8vIEl0J3MgZGVm
aW5pdGVseSBhbiBJbnQzMiB3aXRoIHZhbHVlIG90aGVyIHRoYW4gMCBvciAxLgotc3RhdGljIGNv
bnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNJbnQzMk9ubHkgICAgICAgICAgPSBTcGVjQm9vbEludDMy
IHwgU3BlY05vbkJvb2xJbnQzMjsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDMyLgotc3RhdGlj
IGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNJbnQ1Mk9ubHkgICAgICAgICAgPSAxdWxsIDw8IDI5
OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50NTIgYW5kIHdlIGludGVuZCBpdCB0byB1bmJveCBp
dC4gSXQncyBhbHNvIGRlZmluaXRlbHkgbm90IGFuIEludDMyLgotc3RhdGljIGNvbnN0IFNwZWN1
bGF0ZWRUeXBlIFNwZWNBbnlJbnQgICAgICAgICAgICAgPSBTcGVjSW50MzJPbmx5IHwgU3BlY0lu
dDUyT25seTsgLy8gSXQncyBzb21ldGhpbmcgdGhhdCB3ZSBjYW4gZG8gbWFjaGluZSBpbnQgYXJp
dGhtZXRpYyBvbi4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQW55SW50QXNEb3Vi
bGUgICAgID0gMXVsbCA8PCAzMDsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDUyIGFuZCBpdCdz
IGluc2lkZSBhIGRvdWJsZS4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjTm9uSW50
QXNEb3VibGUgICAgID0gMXVsbCA8PCAzMTsgLy8gSXQncyBkZWZpbml0ZWx5IG5vdCBhbiBJbnQ1
MiBidXQgaXQncyBhIHJlYWwgbnVtYmVyIGFuZCBpdCdzIGEgZG91YmxlLgotc3RhdGljIGNvbnN0
IFNwZWN1bGF0ZWRUeXBlIFNwZWNEb3VibGVSZWFsICAgICAgICAgPSBTcGVjTm9uSW50QXNEb3Vi
bGUgfCBTcGVjQW55SW50QXNEb3VibGU7IC8vIEl0J3MgZGVmaW5pdGVseSBhIG5vbi1OYU4gZG91
YmxlLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNEb3VibGVQdXJlTmFOICAgICAg
PSAxdWxsIDw8IDMyOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBOYU4gdGhhdCBpcyBzYWZlIHRvIHRh
ZyAoaS5lLiBwdXJlKS4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRG91YmxlSW1w
dXJlTmFOICAgID0gMXVsbCA8PCAzMzsgLy8gSXQncyBkZWZpbml0ZWx5IGEgTmFOIHRoYXQgaXMg
dW5zYWZlIHRvIHRhZyAoaS5lLiBpbXB1cmUpLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBl
IFNwZWNEb3VibGVOYU4gICAgICAgICAgPSBTcGVjRG91YmxlUHVyZU5hTiB8IFNwZWNEb3VibGVJ
bXB1cmVOYU47IC8vIEl0J3MgZGVmaW5pdGVseSBzb21lIGtpbmQgb2YgTmFOLgotc3RhdGljIGNv
bnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNCeXRlY29kZURvdWJsZSAgICAgPSBTcGVjRG91YmxlUmVh
bCB8IFNwZWNEb3VibGVQdXJlTmFOOyAvLyBJdCdzIGVpdGhlciBhIG5vbi1OYU4gb3IgYSBOYU4g
ZG91YmxlLCBidXQgaXQncyBkZWZpbml0ZWx5IG5vdCBpbXB1cmUgTmFOLgotc3RhdGljIGNvbnN0
IFNwZWN1bGF0ZWRUeXBlIFNwZWNGdWxsRG91YmxlICAgICAgICAgPSBTcGVjRG91YmxlUmVhbCB8
IFNwZWNEb3VibGVOYU47IC8vIEl0J3MgZWl0aGVyIGEgbm9uLU5hTiBvciBhIE5hTiBkb3VibGUu
Ci1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0J5dGVjb2RlUmVhbE51bWJlciA9IFNw
ZWNJbnQzMk9ubHkgfCBTcGVjRG91YmxlUmVhbDsgLy8gSXQncyBlaXRoZXIgYW4gSW50MzIgb3Ig
YSBEb3VibGVSZWFsLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNGdWxsUmVhbE51
bWJlciAgICAgPSBTcGVjQW55SW50IHwgU3BlY0RvdWJsZVJlYWw7IC8vIEl0J3MgZWl0aGVyIGFu
IEludDMyIG9yIGEgRG91YmxlUmVhbCwgb3IgYSBJbnQ1Mi4KLXN0YXRpYyBjb25zdCBTcGVjdWxh
dGVkVHlwZSBTcGVjQnl0ZWNvZGVOdW1iZXIgICAgID0gU3BlY0ludDMyT25seSB8IFNwZWNCeXRl
Y29kZURvdWJsZTsgLy8gSXQncyBlaXRoZXIgYW4gSW50MzIgb3IgYSBEb3VibGUsIGFuZCB0aGUg
RG91YmxlIGNhbm5vdCBiZSBhbiBpbXB1cmUgTmFOLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRU
eXBlIFNwZWNGdWxsTnVtYmVyICAgICAgICAgPSBTcGVjQW55SW50IHwgU3BlY0Z1bGxEb3VibGU7
IC8vIEl0J3MgZWl0aGVyIGFuIEludDMyLCBJbnQ1Miwgb3IgYSBEb3VibGUsIGFuZCB0aGUgRG91
YmxlIGNhbiBiZSBpbXB1cmUgTmFOLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNC
b29sZWFuICAgICAgICAgICAgPSAxdWxsIDw8IDM0OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBCb29s
ZWFuLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNPdGhlciAgICAgICAgICAgICAg
PSAxdWxsIDw8IDM1OyAvLyBJdCdzIGRlZmluaXRlbHkgZWl0aGVyIE51bGwgb3IgVW5kZWZpbmVk
Lgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNNaXNjICAgICAgICAgICAgICAgPSBT
cGVjQm9vbGVhbiB8IFNwZWNPdGhlcjsgLy8gSXQncyBkZWZpbml0ZWx5IGVpdGhlciBhIGJvb2xl
YW4sIE51bGwsIG9yIFVuZGVmaW5lZC4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVj
RW1wdHkgICAgICAgICAgICAgID0gMXVsbCA8PCAzNjsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIGVt
cHR5IHZhbHVlIG1hcmtlci4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQmlnSW50
ICAgICAgICAgICAgID0gMXVsbCA8PCAzNzsgLy8gSXQncyBkZWZpbml0ZWx5IGEgQmlnSW50Lgot
c3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNQcmltaXRpdmUgICAgICAgICAgPSBTcGVj
U3RyaW5nIHwgU3BlY1N5bWJvbCB8IFNwZWNCeXRlY29kZU51bWJlciB8IFNwZWNNaXNjIHwgU3Bl
Y0JpZ0ludDsgLy8gSXQncyBhbnkgbm9uLU9iamVjdCBKU1ZhbHVlLgotc3RhdGljIGNvbnN0IFNw
ZWN1bGF0ZWRUeXBlIFNwZWNDZWxsICAgICAgICAgICAgICAgPSBTcGVjT2JqZWN0IHwgU3BlY1N0
cmluZyB8IFNwZWNTeW1ib2wgfCBTcGVjQ2VsbE90aGVyIHwgU3BlY0JpZ0ludDsgLy8gSXQncyBk
ZWZpbml0ZWx5IGEgSlNDZWxsLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNIZWFw
VG9wICAgICAgICAgICAgPSBTcGVjQ2VsbCB8IFNwZWNCeXRlY29kZU51bWJlciB8IFNwZWNNaXNj
OyAvLyBJdCBjYW4gYmUgYW55IG9mIHRoZSBhYm92ZSwgZXhjZXB0IGZvciBTcGVjSW50NTJPbmx5
IGFuZCBTcGVjRG91YmxlSW1wdXJlTmFOLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNw
ZWNCeXRlY29kZVRvcCAgICAgICAgPSBTcGVjSGVhcFRvcCB8IFNwZWNFbXB0eTsgLy8gSXQgY2Fu
IGJlIGFueSBvZiB0aGUgYWJvdmUsIGV4Y2VwdCBmb3IgU3BlY0ludDUyT25seSBhbmQgU3BlY0Rv
dWJsZUltcHVyZU5hTi4gQ29ycmVzcG9uZHMgdG8gd2hhdCBjb3VsZCBiZSBmb3VuZCBpbiBhIGJ5
dGVjb2RlIGxvY2FsLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNGdWxsVG9wICAg
ICAgICAgICAgPSBTcGVjQnl0ZWNvZGVUb3AgfCBTcGVjRnVsbE51bWJlcjsgLy8gSXQgY2FuIGJl
IGFueXRoaW5nIHRoYXQgYnl0ZWNvZGUgY291bGQgc2VlIHBsdXMgZXhvdGljIGVuY29kaW5ncyBv
ZiBudW1iZXJzLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNOb25lICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAwOyAvLyBXZSBkb24ndCBrbm93IGFueXRoaW5nIHlldC4K
K3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRmluYWxPYmplY3QgICAgICAgICAgICAg
ICAgICAgICAgID0gMXVsbCA8PCAwOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU0ZpbmFsT2JqZWN0
Lgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNBcnJheSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSAxdWxsIDw8IDE7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTQXJyYXkuCitz
dGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0Z1bmN0aW9uV2l0aERlZmF1bHRIYXNJbnN0
YW5jZSAgICA9IDF1bGwgPDwgMjsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNGdW5jdGlvbiB0aGF0
IGhhcyBpdHMgSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSB0eXBlIGluZm8gZmxhZ3MgYml0
IHNldC4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRnVuY3Rpb25XaXRoTm9uRGVm
YXVsdEhhc0luc3RhbmNlID0gMXVsbCA8PCAzOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU0Z1bmN0
aW9uIHRoYXQgZG9lcyBub3QgaGF2ZSBpdHMgSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSB0
eXBlIGluZm8gZmxhZ3MgYml0IHNldC4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVj
RnVuY3Rpb24gICAgICAgICAgICAgICAgICAgICAgICAgID0gU3BlY0Z1bmN0aW9uV2l0aERlZmF1
bHRIYXNJbnN0YW5jZSB8IFNwZWNGdW5jdGlvbldpdGhOb25EZWZhdWx0SGFzSW5zdGFuY2U7IC8v
IEl0J3MgZGVmaW5pdGVseSBhIEpTRnVuY3Rpb24uCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5
cGUgU3BlY0ludDhBcnJheSAgICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgNDsgLy8g
SXQncyBkZWZpbml0ZWx5IGFuIEludDhBcnJheSBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCitz
dGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0ludDE2QXJyYXkgICAgICAgICAgICAgICAg
ICAgICAgICA9IDF1bGwgPDwgNTsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDE2QXJyYXkgb3Ig
b25lIG9mIGl0cyBzdWJjbGFzc2VzLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNJ
bnQzMkFycmF5ICAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDY7IC8vIEl0J3MgZGVm
aW5pdGVseSBhbiBJbnQzMkFycmF5IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KK3N0YXRpYyBj
b25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjVWludDhBcnJheSAgICAgICAgICAgICAgICAgICAgICAg
ID0gMXVsbCA8PCA3OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gVWludDhBcnJheSBvciBvbmUgb2Yg
aXRzIHN1YmNsYXNzZXMuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1VpbnQ4Q2xh
bXBlZEFycmF5ICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgODsgLy8gSXQncyBkZWZpbml0ZWx5
IGFuIFVpbnQ4Q2xhbXBlZEFycmF5IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KK3N0YXRpYyBj
b25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjVWludDE2QXJyYXkgICAgICAgICAgICAgICAgICAgICAg
ID0gMXVsbCA8PCA5OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gVWludDE2QXJyYXkgb3Igb25lIG9m
IGl0cyBzdWJjbGFzc2VzLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNVaW50MzJB
cnJheSAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDEwOyAvLyBJdCdzIGRlZmluaXRl
bHkgYW4gVWludDMyQXJyYXkgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgorc3RhdGljIGNvbnN0
IFNwZWN1bGF0ZWRUeXBlIFNwZWNGbG9hdDMyQXJyYXkgICAgICAgICAgICAgICAgICAgICAgPSAx
dWxsIDw8IDExOyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gVWludDE2QXJyYXkgb3Igb25lIG9mIGl0
cyBzdWJjbGFzc2VzLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNGbG9hdDY0QXJy
YXkgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDEyOyAvLyBJdCdzIGRlZmluaXRlbHkg
YW4gVWludDE2QXJyYXkgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgorc3RhdGljIGNvbnN0IFNw
ZWN1bGF0ZWRUeXBlIFNwZWNUeXBlZEFycmF5VmlldyAgICAgICAgICAgICAgICAgICAgPSBTcGVj
SW50OEFycmF5IHwgU3BlY0ludDE2QXJyYXkgfCBTcGVjSW50MzJBcnJheSB8IFNwZWNVaW50OEFy
cmF5IHwgU3BlY1VpbnQ4Q2xhbXBlZEFycmF5IHwgU3BlY1VpbnQxNkFycmF5IHwgU3BlY1VpbnQz
MkFycmF5IHwgU3BlY0Zsb2F0MzJBcnJheSB8IFNwZWNGbG9hdDY0QXJyYXk7CitzdGF0aWMgY29u
c3QgU3BlY3VsYXRlZFR5cGUgU3BlY0RpcmVjdEFyZ3VtZW50cyAgICAgICAgICAgICAgICAgICA9
IDF1bGwgPDwgMTM7IC8vIEl0J3MgZGVmaW5pdGVseSBhIERpcmVjdEFyZ3VtZW50cyBvYmplY3Qu
CitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1Njb3BlZEFyZ3VtZW50cyAgICAgICAg
ICAgICAgICAgICA9IDF1bGwgPDwgMTQ7IC8vIEl0J3MgZGVmaW5pdGVseSBhIFNjb3BlZEFyZ3Vt
ZW50cyBvYmplY3QuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1N0cmluZ09iamVj
dCAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMTU7IC8vIEl0J3MgZGVmaW5pdGVseSBh
IFN0cmluZ09iamVjdC4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjUmVnRXhwT2Jq
ZWN0ICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAxNjsgLy8gSXQncyBkZWZpbml0ZWx5
IGEgUmVnRXhwT2JqZWN0IChhbmQgbm90IGFueSBzdWJjbGFzcyBvZiBSZWdFeHBPYmplY3QpLgor
c3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNNYXBPYmplY3QgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAxdWxsIDw8IDE3OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBNYXAgb2JqZWN0IG9y
IG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVj
U2V0T2JqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAxODsgLy8gSXQncyBk
ZWZpbml0ZWx5IGEgU2V0IG9iamVjdCBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCitzdGF0aWMg
Y29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1dlYWtNYXBPYmplY3QgICAgICAgICAgICAgICAgICAg
ICA9IDF1bGwgPDwgMTk7IC8vIEl0J3MgZGVmaW5pdGVseSBhIFdlYWtNYXAgb2JqZWN0IG9yIG9u
ZSBvZiBpdHMgc3ViY2xhc3Nlcy4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjV2Vh
a1NldE9iamVjdCAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAyMDsgLy8gSXQncyBkZWZp
bml0ZWx5IGEgV2Vha1NldCBvYmplY3Qgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgorc3RhdGlj
IGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNQcm94eU9iamVjdCAgICAgICAgICAgICAgICAgICAg
ICAgPSAxdWxsIDw8IDIxOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBQcm94eSBvYmplY3Qgb3Igb25l
IG9mIGl0cyBzdWJjbGFzc2VzLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNEZXJp
dmVkQXJyYXkgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDIyOyAvLyBJdCdzIGRlZmlu
aXRlbHkgYSBEZXJpdmVkQXJyYXkgb2JqZWN0Lgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBl
IFNwZWNPYmplY3RPdGhlciAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDIzOyAvLyBJ
dCdzIGRlZmluaXRlbHkgYW4gb2JqZWN0IGJ1dCBub3QgSlNGaW5hbE9iamVjdCwgSlNBcnJheSwg
b3IgSlNGdW5jdGlvbi4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjT2JqZWN0ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gU3BlY0ZpbmFsT2JqZWN0IHwgU3BlY0FycmF5IHwg
U3BlY0Z1bmN0aW9uIHwgU3BlY1R5cGVkQXJyYXlWaWV3IHwgU3BlY0RpcmVjdEFyZ3VtZW50cyB8
IFNwZWNTY29wZWRBcmd1bWVudHMgfCBTcGVjU3RyaW5nT2JqZWN0IHwgU3BlY1JlZ0V4cE9iamVj
dCB8IFNwZWNNYXBPYmplY3QgfCBTcGVjU2V0T2JqZWN0IHwgU3BlY1dlYWtNYXBPYmplY3QgfCBT
cGVjV2Vha1NldE9iamVjdCB8IFNwZWNQcm94eU9iamVjdCB8IFNwZWNEZXJpdmVkQXJyYXkgfCBT
cGVjT2JqZWN0T3RoZXI7IC8vIEJpdG1hc2sgdXNlZCBmb3IgdGVzdGluZyBmb3IgYW55IGtpbmQg
b2Ygb2JqZWN0IHByZWRpY3Rpb24uCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1N0
cmluZ0lkZW50ICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMjQ7IC8vIEl0J3MgZGVm
aW5pdGVseSBhIEpTU3RyaW5nLCBhbmQgaXQncyBhbiBpZGVudGlmaWVyLgorc3RhdGljIGNvbnN0
IFNwZWN1bGF0ZWRUeXBlIFNwZWNTdHJpbmdWYXIgICAgICAgICAgICAgICAgICAgICAgICAgPSAx
dWxsIDw8IDI1OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU1N0cmluZywgYW5kIGl0J3Mgbm90IGFu
IGlkZW50aWZpZXIuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1N0cmluZyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IFNwZWNTdHJpbmdJZGVudCB8IFNwZWNTdHJpbmdWYXI7
IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTU3RyaW5nLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRU
eXBlIFNwZWNTeW1ib2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDI2OyAv
LyBJdCdzIGRlZmluaXRlbHkgYSBTeW1ib2wuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUg
U3BlY0NlbGxPdGhlciAgICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMjc7IC8vIEl0
J3MgZGVmaW5pdGVseSBhIEpTQ2VsbCBidXQgbm90IGEgc3ViY2xhc3Mgb2YgSlNPYmplY3QgYW5k
IGRlZmluaXRlbHkgbm90IGEgSlNTdHJpbmcsIEJpZ0ludCwgb3IgU3ltYm9sLgorc3RhdGljIGNv
bnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNCb29sSW50MzIgICAgICAgICAgICAgICAgICAgICAgICAg
PSAxdWxsIDw8IDI4OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50MzIgd2l0aCB2YWx1ZSAwIG9y
IDEuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY05vbkJvb2xJbnQzMiAgICAgICAg
ICAgICAgICAgICAgICA9IDF1bGwgPDwgMjk7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQzMiB3
aXRoIHZhbHVlIG90aGVyIHRoYW4gMCBvciAxLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBl
IFNwZWNJbnQzMk9ubHkgICAgICAgICAgICAgICAgICAgICAgICAgPSBTcGVjQm9vbEludDMyIHwg
U3BlY05vbkJvb2xJbnQzMjsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDMyLgorc3RhdGljIGNv
bnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNJbnQ1Mk9ubHkgICAgICAgICAgICAgICAgICAgICAgICAg
PSAxdWxsIDw8IDMwOyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50NTIgYW5kIHdlIGludGVuZCBp
dCB0byB1bmJveCBpdC4gSXQncyBhbHNvIGRlZmluaXRlbHkgbm90IGFuIEludDMyLgorc3RhdGlj
IGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNBbnlJbnQgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSBTcGVjSW50MzJPbmx5IHwgU3BlY0ludDUyT25seTsgLy8gSXQncyBzb21ldGhpbmcgdGhh
dCB3ZSBjYW4gZG8gbWFjaGluZSBpbnQgYXJpdGhtZXRpYyBvbi4KK3N0YXRpYyBjb25zdCBTcGVj
dWxhdGVkVHlwZSBTcGVjQW55SW50QXNEb3VibGUgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8
PCAzMTsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDUyIGFuZCBpdCdzIGluc2lkZSBhIGRvdWJs
ZS4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjTm9uSW50QXNEb3VibGUgICAgICAg
ICAgICAgICAgICAgID0gMXVsbCA8PCAzMjsgLy8gSXQncyBkZWZpbml0ZWx5IG5vdCBhbiBJbnQ1
MiBidXQgaXQncyBhIHJlYWwgbnVtYmVyIGFuZCBpdCdzIGEgZG91YmxlLgorc3RhdGljIGNvbnN0
IFNwZWN1bGF0ZWRUeXBlIFNwZWNEb3VibGVSZWFsICAgICAgICAgICAgICAgICAgICAgICAgPSBT
cGVjTm9uSW50QXNEb3VibGUgfCBTcGVjQW55SW50QXNEb3VibGU7IC8vIEl0J3MgZGVmaW5pdGVs
eSBhIG5vbi1OYU4gZG91YmxlLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNEb3Vi
bGVQdXJlTmFOICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDMzOyAvLyBJdCdzIGRlZmlu
aXRlbHkgYSBOYU4gdGhhdCBpcyBzYWZlIHRvIHRhZyAoaS5lLiBwdXJlKS4KK3N0YXRpYyBjb25z
dCBTcGVjdWxhdGVkVHlwZSBTcGVjRG91YmxlSW1wdXJlTmFOICAgICAgICAgICAgICAgICAgID0g
MXVsbCA8PCAzNDsgLy8gSXQncyBkZWZpbml0ZWx5IGEgTmFOIHRoYXQgaXMgdW5zYWZlIHRvIHRh
ZyAoaS5lLiBpbXB1cmUpLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNEb3VibGVO
YU4gICAgICAgICAgICAgICAgICAgICAgICAgPSBTcGVjRG91YmxlUHVyZU5hTiB8IFNwZWNEb3Vi
bGVJbXB1cmVOYU47IC8vIEl0J3MgZGVmaW5pdGVseSBzb21lIGtpbmQgb2YgTmFOLgorc3RhdGlj
IGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNCeXRlY29kZURvdWJsZSAgICAgICAgICAgICAgICAg
ICAgPSBTcGVjRG91YmxlUmVhbCB8IFNwZWNEb3VibGVQdXJlTmFOOyAvLyBJdCdzIGVpdGhlciBh
IG5vbi1OYU4gb3IgYSBOYU4gZG91YmxlLCBidXQgaXQncyBkZWZpbml0ZWx5IG5vdCBpbXB1cmUg
TmFOLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNGdWxsRG91YmxlICAgICAgICAg
ICAgICAgICAgICAgICAgPSBTcGVjRG91YmxlUmVhbCB8IFNwZWNEb3VibGVOYU47IC8vIEl0J3Mg
ZWl0aGVyIGEgbm9uLU5hTiBvciBhIE5hTiBkb3VibGUuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRl
ZFR5cGUgU3BlY0J5dGVjb2RlUmVhbE51bWJlciAgICAgICAgICAgICAgICA9IFNwZWNJbnQzMk9u
bHkgfCBTcGVjRG91YmxlUmVhbDsgLy8gSXQncyBlaXRoZXIgYW4gSW50MzIgb3IgYSBEb3VibGVS
ZWFsLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNGdWxsUmVhbE51bWJlciAgICAg
ICAgICAgICAgICAgICAgPSBTcGVjQW55SW50IHwgU3BlY0RvdWJsZVJlYWw7IC8vIEl0J3MgZWl0
aGVyIGFuIEludDMyIG9yIGEgRG91YmxlUmVhbCwgb3IgYSBJbnQ1Mi4KK3N0YXRpYyBjb25zdCBT
cGVjdWxhdGVkVHlwZSBTcGVjQnl0ZWNvZGVOdW1iZXIgICAgICAgICAgICAgICAgICAgID0gU3Bl
Y0ludDMyT25seSB8IFNwZWNCeXRlY29kZURvdWJsZTsgLy8gSXQncyBlaXRoZXIgYW4gSW50MzIg
b3IgYSBEb3VibGUsIGFuZCB0aGUgRG91YmxlIGNhbm5vdCBiZSBhbiBpbXB1cmUgTmFOLgorc3Rh
dGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNGdWxsTnVtYmVyICAgICAgICAgICAgICAgICAg
ICAgICAgPSBTcGVjQW55SW50IHwgU3BlY0Z1bGxEb3VibGU7IC8vIEl0J3MgZWl0aGVyIGFuIElu
dDMyLCBJbnQ1Miwgb3IgYSBEb3VibGUsIGFuZCB0aGUgRG91YmxlIGNhbiBiZSBpbXB1cmUgTmFO
Lgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNCb29sZWFuICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSAxdWxsIDw8IDM1OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBCb29sZWFuLgor
c3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNPdGhlciAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAxdWxsIDw8IDM2OyAvLyBJdCdzIGRlZmluaXRlbHkgZWl0aGVyIE51bGwgb3Ig
VW5kZWZpbmVkLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNNaXNjICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSBTcGVjQm9vbGVhbiB8IFNwZWNPdGhlcjsgLy8gSXQncyBk
ZWZpbml0ZWx5IGVpdGhlciBhIGJvb2xlYW4sIE51bGwsIG9yIFVuZGVmaW5lZC4KK3N0YXRpYyBj
b25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRW1wdHkgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMXVsbCA8PCAzNzsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIGVtcHR5IHZhbHVlIG1hcmtlci4K
K3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQmlnSW50ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgID0gMXVsbCA8PCAzODsgLy8gSXQncyBkZWZpbml0ZWx5IGEgQmlnSW50Lgorc3Rh
dGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNQcmltaXRpdmUgICAgICAgICAgICAgICAgICAg
ICAgICAgPSBTcGVjU3RyaW5nIHwgU3BlY1N5bWJvbCB8IFNwZWNCeXRlY29kZU51bWJlciB8IFNw
ZWNNaXNjIHwgU3BlY0JpZ0ludDsgLy8gSXQncyBhbnkgbm9uLU9iamVjdCBKU1ZhbHVlLgorc3Rh
dGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNDZWxsICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSBTcGVjT2JqZWN0IHwgU3BlY1N0cmluZyB8IFNwZWNTeW1ib2wgfCBTcGVjQ2VsbE90
aGVyIHwgU3BlY0JpZ0ludDsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNDZWxsLgorc3RhdGljIGNv
bnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNIZWFwVG9wICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSBTcGVjQ2VsbCB8IFNwZWNCeXRlY29kZU51bWJlciB8IFNwZWNNaXNjOyAvLyBJdCBjYW4gYmUg
YW55IG9mIHRoZSBhYm92ZSwgZXhjZXB0IGZvciBTcGVjSW50NTJPbmx5IGFuZCBTcGVjRG91Ymxl
SW1wdXJlTmFOLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNCeXRlY29kZVRvcCAg
ICAgICAgICAgICAgICAgICAgICAgPSBTcGVjSGVhcFRvcCB8IFNwZWNFbXB0eTsgLy8gSXQgY2Fu
IGJlIGFueSBvZiB0aGUgYWJvdmUsIGV4Y2VwdCBmb3IgU3BlY0ludDUyT25seSBhbmQgU3BlY0Rv
dWJsZUltcHVyZU5hTi4gQ29ycmVzcG9uZHMgdG8gd2hhdCBjb3VsZCBiZSBmb3VuZCBpbiBhIGJ5
dGVjb2RlIGxvY2FsLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNGdWxsVG9wICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSBTcGVjQnl0ZWNvZGVUb3AgfCBTcGVjRnVsbE51bWJl
cjsgLy8gSXQgY2FuIGJlIGFueXRoaW5nIHRoYXQgYnl0ZWNvZGUgY291bGQgc2VlIHBsdXMgZXhv
dGljIGVuY29kaW5ncyBvZiBudW1iZXJzLgogCiAvLyBTcGVjQ2VsbENoZWNrIGlzIHRoZSB0eXBl
IHNldCByZXByZXNlbnRpbmcgdGhlIHZhbHVlcyB0aGF0IGNhbiBmbG93IHRocm91Z2ggYSBjZWxs
IGNoZWNrLgogLy8gT24gNjQtYml0IHBsYXRmb3JtcywgdGhlIGVtcHR5IHZhbHVlIHBhc3NlcyBh
IGNlbGwgY2hlY2suIEFsc28sIH5TcGVjQ2VsbENoZWNrIGlzIHRoZSB0eXBlCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJl
dGVySW5saW5lcy5oCShyZXZpc2lvbiAyMzE4MTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0
MzcsNyArMzQzNyw2IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHkK
ICAgICBjYXNlIENvdW50RXhlY3V0aW9uOgogICAgIGNhc2UgQ2hlY2tUaWVyVXBJbkxvb3A6CiAg
ICAgY2FzZSBDaGVja1RpZXJVcEF0UmV0dXJuOgotICAgIGNhc2UgQ2hlY2tUeXBlSW5mb0ZsYWdz
OgogICAgIGNhc2UgU3VwZXJTYW1wbGVyQmVnaW46CiAgICAgY2FzZSBTdXBlclNhbXBsZXJFbmQ6
CiAgICAgY2FzZSBDaGVja1RpZXJVcEFuZE9TUkVudGVyOgpAQCAtMzQ0Niw2ICszNDQ1LDQzIEBA
IGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHkKICAgICBjYXNlIEV4aXRP
SzoKICAgICAgICAgYnJlYWs7CiAKKyAgICBjYXNlIENoZWNrVHlwZUluZm9GbGFnczogeworICAg
ICAgICBjb25zdCBBYnN0cmFjdFZhbHVlJiBhYnN0cmFjdFZhbHVlID0gZm9yTm9kZShub2RlLT5j
aGlsZDEoKSk7CisgICAgICAgIHVuc2lnbmVkIGJpdHMgPSBub2RlLT50eXBlSW5mb09wZXJhbmQo
KTsKKyAgICAgICAgQVNTRVJUKGJpdHMpOworICAgICAgICBpZiAoYml0cyA9PSBJbXBsZW1lbnRz
RGVmYXVsdEhhc0luc3RhbmNlKSB7CisgICAgICAgICAgICBpZiAoYWJzdHJhY3RWYWx1ZS5tX3R5
cGUgPT0gU3BlY0Z1bmN0aW9uV2l0aERlZmF1bHRIYXNJbnN0YW5jZSkgeworICAgICAgICAgICAg
ICAgIG1fc3RhdGUuc2V0Rm91bmRDb25zdGFudHModHJ1ZSk7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoSlNWYWx1ZSB2YWx1
ZSA9IGFic3RyYWN0VmFsdWUudmFsdWUoKSkgeworICAgICAgICAgICAgaWYgKHZhbHVlLmlzQ2Vs
bCgpKSB7CisgICAgICAgICAgICAgICAgLy8gVGhpcyB3b3JrcyBiZWNhdXNlIGlmIHdlIHNlZSBh
IGNlbGwgaGVyZSwgd2Uga25vdyBpdCdzIGZ1bGx5IGNvbnN0cnVjdGVkCisgICAgICAgICAgICAg
ICAgLy8gYW5kIHdlIGNhbiByZWFkIGl0cyBpbmxpbmUgdHlwZSBpbmZvIGZsYWdzLiBUaGVzZSBm
bGFncyBkb24ndCBjaGFuZ2Ugb3ZlciB0aGUKKyAgICAgICAgICAgICAgICAvLyBvYmplY3QncyBs
aWZldGltZS4KKyAgICAgICAgICAgICAgICBpZiAoKHZhbHVlLmFzQ2VsbCgpLT5pbmxpbmVUeXBl
RmxhZ3MoKSAmIGJpdHMpID09IGJpdHMpIHsKKyAgICAgICAgICAgICAgICAgICAgbV9zdGF0ZS5z
ZXRGb3VuZENvbnN0YW50cyh0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKGFi
c3RyYWN0VmFsdWUubV9zdHJ1Y3R1cmUuaXNGaW5pdGUoKSkgeworICAgICAgICAgICAgYm9vbCBv
ayA9IHRydWU7CisgICAgICAgICAgICBhYnN0cmFjdFZhbHVlLm1fc3RydWN0dXJlLmZvckVhY2go
WyZdIChSZWdpc3RlcmVkU3RydWN0dXJlIHN0cnVjdHVyZSkgeworICAgICAgICAgICAgICAgIG9r
ICY9IChzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkuaW5saW5lVHlwZUZsYWdzKCkgJiBiaXRzKSA9PSBi
aXRzOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBpZiAob2spIHsKKyAgICAgICAgICAg
ICAgICBtX3N0YXRlLnNldEZvdW5kQ29uc3RhbnRzKHRydWUpOworICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgYnJlYWs7CisgICAgfQor
CiAgICAgY2FzZSBQYXJzZUludDogewogICAgICAgICBBYnN0cmFjdFZhbHVlIHZhbHVlID0gZm9y
Tm9kZShub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgIGlmICh2YWx1ZS5tX3R5cGUgJiYgISh2YWx1
ZS5tX3R5cGUgJiB+U3BlY0ludDMyT25seSkpIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwCShyZXZpc2lvbiAy
MzE4MTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1Bo
YXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODA2LDYgKzgwNiw0NiBAQCBwcml2YXRlOgogICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgY2FzZSBDaGVja1R5cGVJbmZvRmxhZ3M6IHsKKyAgICAgICAgICAgICAgICBj
b25zdCBBYnN0cmFjdFZhbHVlJiBhYnN0cmFjdFZhbHVlID0gbV9zdGF0ZS5mb3JOb2RlKG5vZGUt
PmNoaWxkMSgpKTsKKyAgICAgICAgICAgICAgICB1bnNpZ25lZCBiaXRzID0gbm9kZS0+dHlwZUlu
Zm9PcGVyYW5kKCk7CisgICAgICAgICAgICAgICAgQVNTRVJUKGJpdHMpOworICAgICAgICAgICAg
ICAgIGlmIChiaXRzID09IEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UpIHsKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKGFic3RyYWN0VmFsdWUubV90eXBlID09IFNwZWNGdW5jdGlvbldpdGhE
ZWZhdWx0SGFzSW5zdGFuY2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgPSB0
cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS0+cmVtb3ZlKG1fZ3JhcGgpOworICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoSlNWYWx1ZSB2YWx1ZSA9IGFic3Ry
YWN0VmFsdWUudmFsdWUoKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUuaXNDZWxs
KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgd29ya3MgYmVjYXVzZSBpZiB3
ZSBzZWUgYSBjZWxsIGhlcmUsIHdlIGtub3cgaXQncyBmdWxseSBjb25zdHJ1Y3RlZAorICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gYW5kIHdlIGNhbiByZWFkIGl0cyBpbmxpbmUgdHlwZSBpbmZv
IGZsYWdzLiBUaGVzZSBmbGFncyBkb24ndCBjaGFuZ2Ugb3ZlciB0aGUKKyAgICAgICAgICAgICAg
ICAgICAgICAgIC8vIG9iamVjdCdzIGxpZmV0aW1lLgorICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKCh2YWx1ZS5hc0NlbGwoKS0+aW5saW5lVHlwZUZsYWdzKCkgJiBiaXRzKSA9PSBiaXRzKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCA9IHRydWU7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbm9kZS0+cmVtb3ZlKG1fZ3JhcGgpOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKGFi
c3RyYWN0VmFsdWUubV9zdHJ1Y3R1cmUuaXNGaW5pdGUoKSkgeworICAgICAgICAgICAgICAgICAg
ICBib29sIG9rID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgYWJzdHJhY3RWYWx1ZS5tX3N0
cnVjdHVyZS5mb3JFYWNoKFsmXSAoUmVnaXN0ZXJlZFN0cnVjdHVyZSBzdHJ1Y3R1cmUpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIG9rICY9IChzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkuaW5saW5l
VHlwZUZsYWdzKCkgJiBiaXRzKSA9PSBiaXRzOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKG9rKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjaGFu
Z2VkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUtPnJlbW92ZShtX2dyYXBo
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICBjYXNlIFBoYW50b21OZXdPYmplY3Q6
CiAgICAgICAgICAgICBjYXNlIFBoYW50b21OZXdGdW5jdGlvbjoKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCShyZXZpc2lvbiAyMzE4
MTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzM4OSw2ICszMzg5LDkgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZUNoZWNrVHlwZUluZgogCiAgICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNlLmdwcigpOwog
CisgICAgLy8gRklYTUU6IFRoaXMgb25seSB3b3JrcyBmb3IgY2hlY2tpbmcgaWYgYSBzaW5nbGUg
Yml0IGlzIHNldC4gSWYgd2Ugd2FudCB0byBjaGVjayBtb3JlCisgICAgLy8gdGhhbiBvbmUgYml0
IGF0IG9uY2UsIHdlJ2xsIG5lZWQgdG8gZml4IHRoaXM6CisgICAgLy8gaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NTcwNQogICAgIHNwZWN1bGF0aW9uQ2hlY2soQmFk
VHlwZUluZm9GbGFncywgSlNWYWx1ZVJlZ3MoKSwgMCwgbV9qaXQuYnJhbmNoVGVzdDgoTWFjcm9B
c3NlbWJsZXI6Olplcm8sIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VHUFIsIEpTQ2VsbDo6
dHlwZUluZm9GbGFnc09mZnNldCgpKSwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihub2Rl
LT50eXBlSW5mb09wZXJhbmQoKSkpKTsKIAogICAgIG5vUmVzdWx0KG5vZGUpOwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0cmVuZ3RoUmVkdWN0aW9u
UGhhc2UuY3BwCShyZXZpc2lvbiAyMzE4MTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMDMsNyAr
MzAzLDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKLSAgICAg
ICAgLy8gRklYTUU6IHdlIHNob3VsZCBwcm9iYWJseSBkbyB0aGlzIGluIGNvbnN0YW50IGZvbGRp
bmcgYnV0IHRoaXMgY3VycmVudGx5IHJlbGllcyBvbiBhbiBPU1IgZXhpdCBydWxlLgorICAgICAg
ICAvLyBGSVhNRTogd2Ugc2hvdWxkIHByb2JhYmx5IGRvIHRoaXMgaW4gY29uc3RhbnQgZm9sZGlu
ZyBidXQgdGhpcyBjdXJyZW50bHkgcmVsaWVzIG9uIE9TUiBleGl0IGhpc3Rvcnk6CiAgICAgICAg
IC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTQ4MzIKICAgICAg
ICAgY2FzZSBPdmVycmlkZXNIYXNJbnN0YW5jZTogewogICAgICAgICAgICAgaWYgKCFtX25vZGUt
PmNoaWxkMigpLm5vZGUoKS0+aXNDZWxsQ29uc3RhbnQoKSkKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCShyZXZpc2lvbiAyMzE4MTMpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTAwLDYgKzEwMCw3IEBAIEpTRnVuY3Rpb246OkpTRnVuY3Rpb24oVk0mIHZtLCBKU0ds
b2JhbE8KICAgICA6IEJhc2Uodm0sIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKQogICAgICwgbV9l
eGVjdXRhYmxlKCkKIHsKKyAgICBhc3NlcnRUeXBlSW5mb0ZsYWdJbnZhcmlhbnRzKCk7CiB9CiAK
IApAQCAtNzg5LDQgKzc5MCwxNiBAQCBKU0Z1bmN0aW9uOjpQcm9wZXJ0eVN0YXR1cyBKU0Z1bmN0
aW9uOjpyCiAgICAgcmV0dXJuIFByb3BlcnR5U3RhdHVzOjpSZWlmaWVkOwogfQogCisjaWYgIUFT
U0VSVF9ESVNBQkxFRAordm9pZCBKU0Z1bmN0aW9uOjphc3NlcnRUeXBlSW5mb0ZsYWdJbnZhcmlh
bnRzKCkKK3sKKyAgICAvLyBJZiB5b3UgY2hhbmdlIHRoaXMsIHlvdSdsbCBuZWVkIHRvIHVwZGF0
ZSBzcGVjdWxhdGlvbkZyb21DbGFzc0luZm8uCisgICAgY29uc3QgQ2xhc3NJbmZvKiBpbmZvID0g
Y2xhc3NJbmZvKCp2bSgpKTsKKyAgICBpZiAoIShpbmxpbmVUeXBlRmxhZ3MoKSAmIEltcGxlbWVu
dHNEZWZhdWx0SGFzSW5zdGFuY2UpKQorICAgICAgICBSRUxFQVNFX0FTU0VSVChpbmZvID09IEpT
Qm91bmRGdW5jdGlvbjo6aW5mbygpKTsKKyAgICBlbHNlCisgICAgICAgIFJFTEVBU0VfQVNTRVJU
KGluZm8gIT0gSlNCb3VuZEZ1bmN0aW9uOjppbmZvKCkpOworfQorI2VuZGlmCisKIH0gLy8gbmFt
ZXNwYWNlIEpTQwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlv
bi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rp
b24uaAkocmV2aXNpb24gMjMxODEzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNGdW5jdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMDgsNiArMjA4LDEyIEBAIHByaXZhdGU6
CiAgICAgUHJvcGVydHlTdGF0dXMgcmVpZnlMYXp5TmFtZUlmTmVlZGVkKFZNJiwgRXhlY1N0YXRl
KiwgUHJvcGVydHlOYW1lKTsKICAgICBQcm9wZXJ0eVN0YXR1cyByZWlmeUxhenlCb3VuZE5hbWVJ
Zk5lZWRlZChWTSYsIEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSk7CiAKKyNpZiBBU1NFUlRfRElT
QUJMRUQKKyAgICB2b2lkIGFzc2VydFR5cGVJbmZvRmxhZ0ludmFyaWFudHMoKSB7IH0KKyNlbHNl
CisgICAgdm9pZCBhc3NlcnRUeXBlSW5mb0ZsYWdJbnZhcmlhbnRzKCk7CisjZW5kaWYKKwogICAg
IGZyaWVuZCBjbGFzcyBMTEludE9mZnNldHNFeHRyYWN0b3I7CiAKICAgICBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgYXJndW1lbnRzR2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlv
bklubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0Z1bmN0aW9uSW5saW5lcy5oCShyZXZpc2lvbiAyMzE4MTMpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0Z1bmN0aW9uSW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC00Myw2
ICs0Myw3IEBAIGlubGluZSBKU0Z1bmN0aW9uOjpKU0Z1bmN0aW9uKFZNJiB2bSwgRnUKICAgICAs
IG1fZXhlY3V0YWJsZSh2bSwgdGhpcywgZXhlY3V0YWJsZSkKICAgICAsIG1fcmFyZURhdGEoKQog
eworICAgIGFzc2VydFR5cGVJbmZvRmxhZ0ludmFyaWFudHMoKTsKIH0KIAogaW5saW5lIEZ1bmN0
aW9uRXhlY3V0YWJsZSogSlNGdW5jdGlvbjo6anNFeGVjdXRhYmxlKCkgY29uc3QK
</data>

          </attachment>
      

    </bug>

</bugzilla>