<?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>44641</bug_id>
          
          <creation_ts>2010-08-25 15:41:29 -0700</creation_ts>
          <short_desc>Implement Base64 HTML entities</short_desc>
          <delta_ts>2011-05-23 10:16:34 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>ap</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>eric</cc>
    
    <cc>mjs</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>269553</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-08-25 15:41:29 -0700</bug_when>
    <thetext>Implement Base64 HTML entities</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269554</commentid>
    <comment_count>1</comment_count>
      <attachid>65484</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-08-25 15:42:49 -0700</bug_when>
    <thetext>Created attachment 65484
Work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269584</commentid>
    <comment_count>2</comment_count>
      <attachid>65495</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-08-25 16:23:15 -0700</bug_when>
    <thetext>Created attachment 65495
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269590</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-25 16:33:03 -0700</bug_when>
    <thetext>Attachment 65495 did not build on mac:
Build output: http://queues.webkit.org/results/3755634</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269591</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-08-25 16:33:39 -0700</bug_when>
    <thetext>I got curious, and found this explanation: &lt;http://www.mail-archive.com/whatwg@lists.whatwg.org/msg23193.html&gt;. The idea seems to be that it will be slightly easier to use this new mechanism to escape untrusted content (but one would still have to remember to escape, and forgetting to do that is the most common issue AFAIK). An obvious downside is that inserted untrusted content will be unreadable by humans.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269599</commentid>
    <comment_count>5</comment_count>
      <attachid>65499</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-08-25 16:40:38 -0700</bug_when>
    <thetext>Created attachment 65499
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269605</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-08-25 16:46:33 -0700</bug_when>
    <thetext>Yep.  This is not a part of HTML5 (yet).  The goal is to make it easier for folks to add untrusted content to their document while avoiding cross-site scripting.

Here&apos;s a design document that shows some of the thinking that lead to this design:

https://docs.google.com/document/edit?id=1Uye7FCE7sIouru_9ayiyYRDP_ibjY6ZcOeImWH1pFrE&amp;hl=en&amp;authkey=CLO4uYIN

The design in this patch is simpler than some of the other ideas in that document.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269608</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-08-25 16:55:36 -0700</bug_when>
    <thetext>Here&apos;s the summary from the email if you don&apos;t want to click through.

== Summary ==

HTML should support Base64-encoded entities to make it easier for
authors to include untrusted content in their documents without
risking XSS.  For example,

&amp;%SFRNTDUncyA8Y2FudmFzPiBlbGVtZW50IGlzIGF3ZXNvbWUuCg==;

would decode to &quot;HTML5&apos;s &lt;canvas&gt; element is awesome.&quot;  Notice that
the &lt; and &gt; characters get emitted by the parser as character tokens.
That means they can&apos;t be used by an attacker for XSS.  These entities
can be used safely both in intertag content as well as in attribute
values.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274528</commentid>
    <comment_count>8</comment_count>
      <attachid>66617</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-06 03:20:40 -0700</bug_when>
    <thetext>Created attachment 66617
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274727</commentid>
    <comment_count>9</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-09-06 11:30:07 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Here&apos;s the summary from the email if you don&apos;t want to click through.
&gt; 
&gt; == Summary ==
&gt; 
&gt; HTML should support Base64-encoded entities to make it easier for
&gt; authors to include untrusted content in their documents without
&gt; risking XSS.  For example,
&gt; 
&gt; &amp;%SFRNTDUncyA8Y2FudmFzPiBlbGVtZW50IGlzIGF3ZXNvbWUuCg==;
&gt; 
&gt; would decode to &quot;HTML5&apos;s &lt;canvas&gt; element is awesome.&quot;  Notice that
&gt; the &lt; and &gt; characters get emitted by the parser as character tokens.
&gt; That means they can&apos;t be used by an attacker for XSS.  These entities
&gt; can be used safely both in intertag content as well as in attribute
&gt; values.

What use cases does this solve that aren&apos;t already solved by innerText and/or innerStaticHTML ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274730</commentid>
    <comment_count>10</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-06 11:37:23 -0700</bug_when>
    <thetext>&gt; What use cases does this solve that aren&apos;t already solved by innerText and/or innerStaticHTML ?

They solve different problems.  innerText/innerStaticHTML let you modify a DOM node safely where as base64 entities give you a safe way of transmitting untrusted data from the server to the client.

Put another way, if you want to use innerText/innerStaticHTML, you still need a safe way of getting the untrusted content you want to assign to those properties from the server to the client.  That&apos;s the problem that base64 entities solve.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274734</commentid>
    <comment_count>11</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-09-06 11:40:55 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; &gt; What use cases does this solve that aren&apos;t already solved by innerText and/or innerStaticHTML ?
&gt; 
&gt; They solve different problems.  innerText/innerStaticHTML let you modify a DOM node safely where as base64 entities give you a safe way of transmitting untrusted data from the server to the client.
&gt; 
&gt; Put another way, if you want to use innerText/innerStaticHTML, you still need a safe way of getting the untrusted content you want to assign to those properties from the server to the client.  That&apos;s the problem that base64 entities solve.

there&apos;s already base64 decode support in JS (through btoa)

Also what encoding is used in base64?  based on atob/btoa behaviour base64 doesn&apos;t support multibyte characters, so this needs to be specified.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274744</commentid>
    <comment_count>12</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-06 12:16:46 -0700</bug_when>
    <thetext>&gt; there&apos;s already base64 decode support in JS (through btoa)

Imagine a PHP script that wants to send an untrusted string to the client at a particular point in the output stream.  They can&apos;t do the following:

&lt;?php echo &quot;&lt;script&gt;document.write(btoa(&apos;&quot;.base64_encode($untrusted_string).&quot;&apos;));&lt;/script&gt;&quot; ?&gt;

because that&apos;s XSS.  However, they can do:

&lt;?php echo &quot;&amp;%&apos;&quot;.base64_encode($untrusted_string).&quot;&apos;;&quot; ?&gt;

That&apos;s safe.

&gt; Also what encoding is used in base64?

UTF8.

&gt; based on atob/btoa behaviour base64 doesn&apos;t support multibyte characters, so this needs to be specified.

The btoa behavior is really nutty and also needs to be specified.  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274746</commentid>
    <comment_count>13</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-06 12:18:08 -0700</bug_when>
    <thetext>Rather:

&lt;?php echo &quot;&amp;%&quot;.base64_encode($untrusted_string).&quot;;&quot; ?&gt;

(removed extra &apos; characters that snuck in).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309333</commentid>
    <comment_count>14</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-11-15 10:19:39 -0800</bug_when>
    <thetext>&gt; &gt; Also what encoding is used in base64?
&gt; UTF8.

I think that this needs to explicitly mention what happens to bad UTF-8 (unpaired surrogates, misplaced BOMs, overlong sequences etc). With tests!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309400</commentid>
    <comment_count>15</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-11-15 13:02:52 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; &gt; &gt; Also what encoding is used in base64?
&gt; &gt; UTF8.
&gt; 
&gt; I think that this needs to explicitly mention what happens to bad UTF-8 (unpaired surrogates, misplaced BOMs, overlong sequences etc). With tests!

Sure.  It should probably do the same thing as http://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html#preprocessing-the-input-stream without the CR/LF magic (and possibly without the null byte magic).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324914</commentid>
    <comment_count>16</comment_count>
      <attachid>66617</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-12-21 01:17:35 -0800</bug_when>
    <thetext>Comment on attachment 66617
Patch

No love for this patch, apparently.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408029</commentid>
    <comment_count>17</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-05-23 10:16:34 -0700</bug_when>
    <thetext>This idea never got enough traction.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65484</attachid>
            <date>2010-08-25 15:42:49 -0700</date>
            <delta_ts>2010-08-25 16:23:12 -0700</delta_ts>
            <desc>Work in progress</desc>
            <filename>bug-44641-20100825154248.patch</filename>
            <type>text/plain</type>
            <size>14892</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
Y2QxNDFkZTc5MjFmZTIyMjYwODlhMzUxZWUyNzUzMTljNDQ0N2E1YS4uNzFlN2YwNDVjNzRjMzM0
ZTg4OGYwODRkYmNkMjcwNTE4YjI2OGRhYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMC0wOC0yNSAgQWRh
bSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBCYXNlNjQgSFRNTCBlbnRpdGllcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ2NDEKKworICAg
ICAgICBObyBuZXcgdGVzdHMuIChPT1BTISkKKworICAgICAgICAqIGh0bWwvSFRNTEVudGl0eVBh
cnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjopOgorICAgICAgICAoV2ViQ29yZTo6Y29uc3Vt
ZUhUTUxFbnRpdHkpOgorICAgICAgICAqIGh0bWwvSFRNTEVudGl0eVBhcnNlci5oOgorICAgICAg
ICAqIGh0bWwvSFRNTFRva2VuaXplci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVG9rZW5p
emVyOjpwcm9jZXNzRW50aXR5KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUb2tlbml6ZXI6Om5l
eHRUb2tlbik6CisgICAgICAgICogcGFnZS9YU1NBdWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlhTU0F1ZGl0b3I6OmRlY29kZUhUTUxFbnRpdGllcyk6CisKIDIwMTAtMDgtMjUgIEFuZHJl
YXMgS2xpbmcgIDxhbmRyZWFzLmtsaW5nQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBBcml5YSBIaWRheWF0LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxFbnRpdHlQYXJz
ZXIuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxFbnRpdHlQYXJzZXIuY3BwCmluZGV4IGY2NzU4NDRh
ZGUwNGU5YThmOWU3NTRhNzUzMzRjZmVlYmJhMDJjZmQuLmM5MTQ2Mjg5MmZmZmE2ODAzZmQ1NTU4
OTc4MDdlMjEyYzM5ODY1N2QgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRW50aXR5UGFy
c2VyLmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEVudGl0eVBhcnNlci5jcHAKQEAgLTI4LDgg
KzI4LDEwIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSFRNTEVudGl0eVBhcnNl
ci5oIgogCisjaW5jbHVkZSAiQmFzZTY0LmgiCiAjaW5jbHVkZSAiSFRNTEVudGl0eVNlYXJjaC5o
IgogI2luY2x1ZGUgIkhUTUxFbnRpdHlUYWJsZS5oIgorI2luY2x1ZGUgIlRleHRFbmNvZGluZy5o
IgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdURjsKQEAgLTYy
LDYgKzY0LDE5IEBAIGlubGluZSB1bnNpZ25lZCBsZWdhbEVudGl0eUZvcih1bnNpZ25lZCB2YWx1
ZSkKICAgICByZXR1cm4gdmFsdWU7CiB9CiAKK2lubGluZSBib29sIGNvbnZlcnRUb0NoYXJhY3Rl
cnModW5zaWduZWQgdmFsdWUsIFZlY3RvcjxVQ2hhcj4mIGRlY29kZWRFbnRpdHkpCit7CisgICAg
aWYgKHZhbHVlIDwgMHhGRkZGKSB7CisgICAgICAgIFVDaGFyIGNoYXJhY3RlciA9IHN0YXRpY19j
YXN0PFVDaGFyPih2YWx1ZSk7CisgICAgICAgIEFTU0VSVChjaGFyYWN0ZXIgPT0gdmFsdWUpOwor
ICAgICAgICBkZWNvZGVkRW50aXR5LmFwcGVuZChjaGFyYWN0ZXIpOworICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICB9CisgICAgZGVjb2RlZEVudGl0eS5hcHBlbmQoVTE2X0xFQUQodmFsdWUpKTsK
KyAgICBkZWNvZGVkRW50aXR5LmFwcGVuZChVMTZfVFJBSUwodmFsdWUpKTsKKyAgICByZXR1cm4g
dHJ1ZTsKK30KKwogaW5saW5lIGJvb2wgaXNIZXhEaWdpdChVQ2hhciBjYykKIHsKICAgICByZXR1
cm4gKGNjID49ICcwJyAmJiBjYyA8PSAnOScpIHx8IChjYyA+PSAnYScgJiYgY2MgPD0gJ2YnKSB8
fCAoY2MgPj0gJ0EnICYmIGNjIDw9ICdGJyk7CkBAIC03Miw2ICs4NywxMSBAQCBpbmxpbmUgYm9v
bCBpc0FscGhhTnVtZXJpYyhVQ2hhciBjYykKICAgICByZXR1cm4gKGNjID49ICcwJyAmJiBjYyA8
PSAnOScpIHx8IChjYyA+PSAnYScgJiYgY2MgPD0gJ3onKSB8fCAoY2MgPj0gJ0EnICYmIGNjIDw9
ICdaJyk7CiB9CiAKK2lubGluZSBib29sIGlzQmFzZTY0Q2hhcmFjdGVyKFVDaGFyIGNjKQorewor
ICAgIHJldHVybiBpc0FscGhhTnVtZXJpYyhjYykgfHwgY2MgPT0gJysnIHx8IGNjID09ICcvJyB8
fCBjYyA9PSAnPSc7Cit9CisKIHZvaWQgdW5jb25zdW1lQ2hhcmFjdGVycyhTZWdtZW50ZWRTdHJp
bmcmIHNvdXJjZSwgY29uc3QgVmVjdG9yPFVDaGFyLCAxMD4mIGNvbnN1bWVkQ2hhcmFjdGVycykK
IHsKICAgICBpZiAoY29uc3VtZWRDaGFyYWN0ZXJzLnNpemUoKSA9PSAxKQpAQCAtODUsMTggKzEw
NSwyMCBAQCB2b2lkIHVuY29uc3VtZUNoYXJhY3RlcnMoU2VnbWVudGVkU3RyaW5nJiBzb3VyY2Us
IGNvbnN0IFZlY3RvcjxVQ2hhciwgMTA+JiBjb25zdQogCiB9CiAKLXVuc2lnbmVkIGNvbnN1bWVI
VE1MRW50aXR5KFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBib29sJiBub3RFbm91Z2hDaGFyYWN0
ZXJzLCBVQ2hhciBhZGRpdGlvbmFsQWxsb3dlZENoYXJhY3RlcikKK2Jvb2wgY29uc3VtZUhUTUxF
bnRpdHkoU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIFZlY3RvcjxVQ2hhcj4mIGRlY29kZWRFbnRp
dHksIGJvb2wmIG5vdEVub3VnaENoYXJhY3RlcnMsIFVDaGFyIGFkZGl0aW9uYWxBbGxvd2VkQ2hh
cmFjdGVyKQogewogICAgIEFTU0VSVCghYWRkaXRpb25hbEFsbG93ZWRDaGFyYWN0ZXIgfHwgYWRk
aXRpb25hbEFsbG93ZWRDaGFyYWN0ZXIgPT0gJyInIHx8IGFkZGl0aW9uYWxBbGxvd2VkQ2hhcmFj
dGVyID09ICdcJycgfHwgYWRkaXRpb25hbEFsbG93ZWRDaGFyYWN0ZXIgPT0gJz4nKTsKICAgICBB
U1NFUlQoIW5vdEVub3VnaENoYXJhY3RlcnMpOworICAgIEFTU0VSVChkZWNvZGVkRW50aXR5Lmlz
RW1wdHkoKSk7CiAKICAgICBlbnVtIEVudGl0eVN0YXRlIHsKICAgICAgICAgSW5pdGlhbCwKLSAg
ICAgICAgTnVtYmVyVHlwZSwKKyAgICAgICAgTnVtYmVyLAogICAgICAgICBNYXliZUhleExvd2Vy
Q2FzZVgsCiAgICAgICAgIE1heWJlSGV4VXBwZXJDYXNlWCwKICAgICAgICAgSGV4LAogICAgICAg
ICBEZWNpbWFsLAorICAgICAgICBCYXNlNjQsCiAgICAgICAgIE5hbWVkCiAgICAgfTsKICAgICBF
bnRpdHlTdGF0ZSBlbnRpdHlTdGF0ZSA9IEluaXRpYWw7CkBAIC0xMDgsMjAgKzEzMCwyNCBAQCB1
bnNpZ25lZCBjb25zdW1lSFRNTEVudGl0eShTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgYm9vbCYg
bm90RW5vdWdoQ2hhcmFjdGVycywgVQogICAgICAgICBzd2l0Y2ggKGVudGl0eVN0YXRlKSB7CiAg
ICAgICAgIGNhc2UgSW5pdGlhbDogewogICAgICAgICAgICAgaWYgKGNjID09ICdceDA5JyB8fCBj
YyA9PSAnXHgwQScgfHwgY2MgPT0gJ1x4MEMnIHx8IGNjID09ICcgJyB8fCBjYyA9PSAnPCcgfHwg
Y2MgPT0gJyYnKQotICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAgICAgICAgIGlmIChhZGRpdGlvbmFsQWxsb3dlZENoYXJhY3RlciAm
JiBjYyA9PSBhZGRpdGlvbmFsQWxsb3dlZENoYXJhY3RlcikKLSAgICAgICAgICAgICAgICByZXR1
cm4gMDsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBpZiAoY2Mg
PT0gJyMnKSB7Ci0gICAgICAgICAgICAgICAgZW50aXR5U3RhdGUgPSBOdW1iZXJUeXBlOworICAg
ICAgICAgICAgICAgIGVudGl0eVN0YXRlID0gTnVtYmVyOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGNjID09ICclJykgeworICAgICAgICAg
ICAgICAgIGVudGl0eVN0YXRlID0gQmFzZTY0OwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgfQogICAgICAgICAgICAgaWYgKChjYyA+PSAnYScgJiYgY2MgPD0gJ3onKSB8fCAo
Y2MgPj0gJ0EnICYmIGNjIDw9ICdaJykpIHsKICAgICAgICAgICAgICAgICBlbnRpdHlTdGF0ZSA9
IE5hbWVkOwogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgfQotICAgICAg
ICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KLSAg
ICAgICAgY2FzZSBOdW1iZXJUeXBlOiB7CisgICAgICAgIGNhc2UgTnVtYmVyOiB7CiAgICAgICAg
ICAgICBpZiAoY2MgPT0gJ3gnKSB7CiAgICAgICAgICAgICAgICAgZW50aXR5U3RhdGUgPSBNYXli
ZUhleExvd2VyQ2FzZVg7CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0xMzUsNyArMTYxLDcg
QEAgdW5zaWduZWQgY29uc3VtZUhUTUxFbnRpdHkoU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIGJv
b2wmIG5vdEVub3VnaENoYXJhY3RlcnMsIFUKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIHNvdXJjZS5wdXNoKCcjJyk7Ci0gICAgICAgICAgICBy
ZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBj
YXNlIE1heWJlSGV4TG93ZXJDYXNlWDogewogICAgICAgICAgICAgaWYgKGlzSGV4RGlnaXQoY2Mp
KSB7CkBAIC0xNDQsNyArMTcwLDcgQEAgdW5zaWduZWQgY29uc3VtZUhUTUxFbnRpdHkoU2VnbWVu
dGVkU3RyaW5nJiBzb3VyY2UsIGJvb2wmIG5vdEVub3VnaENoYXJhY3RlcnMsIFUKICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIHNvdXJjZS5wdXNoKCcjJyk7CiAgICAgICAgICAgICBzb3VyY2Uu
cHVzaCgneCcpOwotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBNYXliZUhleFVwcGVyQ2FzZVg6IHsKICAgICAg
ICAgICAgIGlmIChpc0hleERpZ2l0KGNjKSkgewpAQCAtMTUzLDcgKzE3OSw3IEBAIHVuc2lnbmVk
IGNvbnN1bWVIVE1MRW50aXR5KFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBib29sJiBub3RFbm91
Z2hDaGFyYWN0ZXJzLCBVCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBzb3VyY2UucHVzaCgn
IycpOwogICAgICAgICAgICAgc291cmNlLnB1c2goJ1gnKTsKLSAgICAgICAgICAgIHJldHVybiAw
OworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgSGV4
OiB7CiAgICAgICAgICAgICBpZiAoY2MgPj0gJzAnICYmIGNjIDw9ICc5JykKQEAgLTE2MiwyMyAr
MTg4LDU3IEBAIHVuc2lnbmVkIGNvbnN1bWVIVE1MRW50aXR5KFNlZ21lbnRlZFN0cmluZyYgc291
cmNlLCBib29sJiBub3RFbm91Z2hDaGFyYWN0ZXJzLCBVCiAgICAgICAgICAgICAgICAgcmVzdWx0
ID0gcmVzdWx0ICogMTYgKyAxMCArIGNjIC0gJ2EnOwogICAgICAgICAgICAgZWxzZSBpZiAoY2Mg
Pj0gJ0EnICYmIGNjIDw9ICdGJykKICAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQgKiAx
NiArIDEwICsgY2MgLSAnQSc7Ci0gICAgICAgICAgICBlbHNlIGlmIChjYyA9PSAnOycpIHsKLSAg
ICAgICAgICAgICAgICBzb3VyY2UuYWR2YW5jZVBhc3ROb25OZXdsaW5lKCk7Ci0gICAgICAgICAg
ICAgICAgcmV0dXJuIGxlZ2FsRW50aXR5Rm9yKHJlc3VsdCk7Ci0gICAgICAgICAgICB9IGVsc2UK
LSAgICAgICAgICAgICAgICByZXR1cm4gbGVnYWxFbnRpdHlGb3IocmVzdWx0KTsKKyAgICAgICAg
ICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChjYyA9PSAnOycpCisgICAgICAgICAgICAg
ICAgICAgIHNvdXJjZS5hZHZhbmNlQW5kQVNTRVJUKGNjKTsKKyAgICAgICAgICAgICAgICByZXR1
cm4gY29udmVydFRvQ2hhcmFjdGVycyhsZWdhbEVudGl0eUZvcihyZXN1bHQpLCBkZWNvZGVkRW50
aXR5KTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAg
ICAgIGNhc2UgRGVjaW1hbDogewogICAgICAgICAgICAgaWYgKGNjID49ICcwJyAmJiBjYyA8PSAn
OScpCiAgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICogMTAgKyBjYyAtICcwJzsKLSAg
ICAgICAgICAgIGVsc2UgaWYgKGNjID09ICc7JykgewotICAgICAgICAgICAgICAgIHNvdXJjZS5h
ZHZhbmNlUGFzdE5vbk5ld2xpbmUoKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gbGVnYWxFbnRp
dHlGb3IocmVzdWx0KTsKLSAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAgIHJldHVy
biBsZWdhbEVudGl0eUZvcihyZXN1bHQpOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAg
ICAgICAgaWYgKGNjID09ICc7JykKKyAgICAgICAgICAgICAgICAgICAgc291cmNlLmFkdmFuY2VB
bmRBU1NFUlQoY2MpOworICAgICAgICAgICAgICAgIHJldHVybiBjb252ZXJ0VG9DaGFyYWN0ZXJz
KGxlZ2FsRW50aXR5Rm9yKHJlc3VsdCksIGRlY29kZWRFbnRpdHkpOworICAgICAgICAgICAgfQog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KKyAgICAgICAgY2FzZSBCYXNlNjQ6IHsKKyAg
ICAgICAgICAgIFZlY3RvcjxjaGFyPiBhc2NpaVZhbHVlOworCisgICAgICAgICAgICBjb25zdW1l
ZENoYXJhY3RlcnMuYXBwZW5kKGNjKTsKKyAgICAgICAgICAgIHNvdXJjZS5hZHZhbmNlQW5kQVNT
RVJUKCclJyk7CisgICAgICAgICAgICB3aGlsZSAoIXNvdXJjZS5pc0VtcHR5KCkpIHsKKyAgICAg
ICAgICAgICAgICBjYyA9ICpzb3VyY2U7CisgICAgICAgICAgICAgICAgaWYgKCFpc0Jhc2U2NENo
YXJhY3RlcihjYykpCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg
IGNoYXIgbGV0dGVyID0gc3RhdGljX2Nhc3Q8Y2hhcj4oY2MpOworICAgICAgICAgICAgICAgIEFT
U0VSVChsZXR0ZXIgPT0gY2MpOworICAgICAgICAgICAgICAgIGFzY2lpVmFsdWUuYXBwZW5kKGxl
dHRlcik7CisgICAgICAgICAgICAgICAgY29uc3VtZWRDaGFyYWN0ZXJzLmFwcGVuZChjYyk7Cisg
ICAgICAgICAgICAgICAgc291cmNlLmFkdmFuY2VBbmRBU1NFUlQoY2MpOworICAgICAgICAgICAg
fQorICAgICAgICAgICAgbm90RW5vdWdoQ2hhcmFjdGVycyA9IHNvdXJjZS5pc0VtcHR5KCk7Cisg
ICAgICAgICAgICBpZiAobm90RW5vdWdoQ2hhcmFjdGVycykgeworICAgICAgICAgICAgICAgIHVu
Y29uc3VtZUNoYXJhY3RlcnMoc291cmNlLCBjb25zdW1lZENoYXJhY3RlcnMpOworICAgICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChjYyA9
PSAnOycpIHsKKyAgICAgICAgICAgICAgICBzb3VyY2UuYWR2YW5jZUFuZEFTU0VSVChjYyk7Cisg
ICAgICAgICAgICAgICAgVmVjdG9yPGNoYXI+IGJpbmFyeVZhbHVlOworICAgICAgICAgICAgICAg
IGJvb2wgc3VjY2VzcyA9IGJhc2U2NERlY29kZShhc2NpaVZhbHVlLCBiaW5hcnlWYWx1ZSk7Cisg
ICAgICAgICAgICAgICAgLy8gYmFzZTY0RGVjb2RlIG9ubHkgZmFpbHMgaWYgYXNjaWlWYWx1ZSBj
b250YWlucyBpbGxlZ2FsCisgICAgICAgICAgICAgICAgLy8gY2hhcmFjdGVycywgYnV0IHdlIGZp
bHRlciB0aGVtIG91dCBhYm92ZS4KKyAgICAgICAgICAgICAgICBBU1NFUlQoc3VjY2Vzcyk7Cisg
ICAgICAgICAgICAgICAgU3RyaW5nIGNoYXJhY3RlcnMgPSBVVEY4RW5jb2RpbmcoKS5kZWNvZGUo
YmluYXJ5VmFsdWUuZGF0YSgpLCBiaW5hcnlWYWx1ZS5zaXplKCkpOworICAgICAgICAgICAgICAg
IGFwcGVuZChkZWNvZGVkRW50aXR5LCBjaGFyYWN0ZXJzKTsKKyAgICAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHVuY29uc3VtZUNoYXJhY3RlcnMo
c291cmNlLCBjb25zdW1lZENoYXJhY3RlcnMpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICB9CiAgICAgICAgIGNhc2UgTmFtZWQ6IHsKICAgICAgICAgICAgIEhUTUxFbnRpdHlT
ZWFyY2ggZW50aXR5U2VhcmNoOwogICAgICAgICAgICAgd2hpbGUgKCFzb3VyY2UuaXNFbXB0eSgp
KSB7CkBAIC0xOTQsMTIgKzI1NCwxMiBAQCB1bnNpZ25lZCBjb25zdW1lSFRNTEVudGl0eShTZWdt
ZW50ZWRTdHJpbmcmIHNvdXJjZSwgYm9vbCYgbm90RW5vdWdoQ2hhcmFjdGVycywgVQogICAgICAg
ICAgICAgICAgIC8vIFdlIGNhbid0IGFuIGVudGl0eSBiZWNhdXNlIHRoZXJlIG1pZ2h0IGJlIGEg
bG9uZ2VyIGVudGl0eQogICAgICAgICAgICAgICAgIC8vIHRoYXQgd2UgY291bGQgbWF0Y2ggaWYg
d2UgaGFkIG1vcmUgZGF0YS4KICAgICAgICAgICAgICAgICB1bmNvbnN1bWVDaGFyYWN0ZXJzKHNv
dXJjZSwgY29uc3VtZWRDaGFyYWN0ZXJzKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBp
ZiAoIWVudGl0eVNlYXJjaC5tb3N0UmVjZW50TWF0Y2goKSkgewogICAgICAgICAgICAgICAgIEFT
U0VSVCghZW50aXR5U2VhcmNoLmN1cnJlbnRWYWx1ZSgpKTsKICAgICAgICAgICAgICAgICB1bmNv
bnN1bWVDaGFyYWN0ZXJzKHNvdXJjZSwgY29uc3VtZWRDaGFyYWN0ZXJzKTsKLSAgICAgICAgICAg
ICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICBpZiAoZW50aXR5U2VhcmNoLm1vc3RSZWNlbnRNYXRjaCgpLT5sZW5n
dGggIT0gZW50aXR5U2VhcmNoLmN1cnJlbnRMZW5ndGgoKSkgewogICAgICAgICAgICAgICAgIC8v
IFdlJ3ZlIGNvbnN1bWVkIHRvbyBtYW55IGNoYXJhY3RlcnMuICBXZSBuZWVkIHRvIHdhbGsgdGhl
CkBAIC0yMTgsMjEgKzI3OCwyMiBAQCB1bnNpZ25lZCBjb25zdW1lSFRNTEVudGl0eShTZWdtZW50
ZWRTdHJpbmcmIHNvdXJjZSwgYm9vbCYgbm90RW5vdWdoQ2hhcmFjdGVycywgVQogICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICBjYyA9ICpzb3VyY2U7CiAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICBpZiAoZW50aXR5U2VhcmNoLm1vc3RSZWNlbnRNYXRjaCgpLT5sYXN0Q2hhcmFj
dGVyKCkgPT0gJzsnKQotICAgICAgICAgICAgICAgIHJldHVybiBlbnRpdHlTZWFyY2gubW9zdFJl
Y2VudE1hdGNoKCktPnZhbHVlOwotICAgICAgICAgICAgaWYgKCFhZGRpdGlvbmFsQWxsb3dlZENo
YXJhY3RlciB8fCAhKGlzQWxwaGFOdW1lcmljKGNjKSB8fCBjYyA9PSAnPScpKQotICAgICAgICAg
ICAgICAgIHJldHVybiBlbnRpdHlTZWFyY2gubW9zdFJlY2VudE1hdGNoKCktPnZhbHVlOworICAg
ICAgICAgICAgaWYgKGVudGl0eVNlYXJjaC5tb3N0UmVjZW50TWF0Y2goKS0+bGFzdENoYXJhY3Rl
cigpID09ICc7JworICAgICAgICAgICAgICAgIHx8ICFhZGRpdGlvbmFsQWxsb3dlZENoYXJhY3Rl
cgorICAgICAgICAgICAgICAgIHx8ICEoaXNBbHBoYU51bWVyaWMoY2MpIHx8IGNjID09ICc9Jykp
IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gY29udmVydFRvQ2hhcmFjdGVycyhlbnRpdHlTZWFy
Y2gubW9zdFJlY2VudE1hdGNoKCktPnZhbHVlLCBkZWNvZGVkRW50aXR5KTsKKyAgICAgICAgICAg
IH0KICAgICAgICAgICAgIHVuY29uc3VtZUNoYXJhY3RlcnMoc291cmNlLCBjb25zdW1lZENoYXJh
Y3RlcnMpOwotICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIH0KKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBjb25zdW1lZENoYXJhY3RlcnMuYXBwZW5k
KGNjKTsKICAgICAgICAgc291cmNlLmFkdmFuY2VBbmRBU1NFUlQoY2MpOwogICAgIH0KKyAgICB9
CiAgICAgQVNTRVJUKHNvdXJjZS5pc0VtcHR5KCkpOwogICAgIG5vdEVub3VnaENoYXJhY3RlcnMg
PSB0cnVlOwogICAgIHVuY29uc3VtZUNoYXJhY3RlcnMoc291cmNlLCBjb25zdW1lZENoYXJhY3Rl
cnMpOwotICAgIHJldHVybiAwOworICAgIHJldHVybiBmYWxzZTsKIH0KIAogVUNoYXIgZGVjb2Rl
TmFtZWRFbnRpdHkoY29uc3QgY2hhciogbmFtZSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9I
VE1MRW50aXR5UGFyc2VyLmggYi9XZWJDb3JlL2h0bWwvSFRNTEVudGl0eVBhcnNlci5oCmluZGV4
IDEwNTliMjQ5NWE4MGU4MDA2ODc2Y2U2MTM5NWFmODc1Njc4ZGIwOTMuLmFkMjZjNWMxZDMxYjcy
N2YxYzhmZjZiMjQzNjRlZjdjODUzYzkxNTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1M
RW50aXR5UGFyc2VyLmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxFbnRpdHlQYXJzZXIuaApAQCAt
MzEsNyArMzEsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXVuc2lnbmVkIGNvbnN1bWVI
VE1MRW50aXR5KFNlZ21lbnRlZFN0cmluZyYsIGJvb2wmIG5vdEVub3VnaENoYXJhY3RlcnMsIFVD
aGFyIGFkZGl0aW9uYWxBbGxvd2VkQ2hhcmFjdGVyID0gJ1wwJyk7Citib29sIGNvbnN1bWVIVE1M
RW50aXR5KFNlZ21lbnRlZFN0cmluZyYsIFZlY3RvcjxVQ2hhcj4mIGRlY29kZWRFbnRpdHksIGJv
b2wmIG5vdEVub3VnaENoYXJhY3RlcnMsIFVDaGFyIGFkZGl0aW9uYWxBbGxvd2VkQ2hhcmFjdGVy
ID0gJ1wwJyk7CiAKIC8vIFVzZWQgYnkgdGhlIFhNTCBwYXJzZXIuICBOb3Qgc3VpdGFibGUgZm9y
IHVzZSBpbiBIVE1MIHBhcnNpbmcuICBVc2UgY29uc3VtZUhUTUxFbnRpdHkgaW5zdGVhZC4KIFVD
aGFyIGRlY29kZU5hbWVkRW50aXR5KGNvbnN0IGNoYXIqKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aHRtbC9IVE1MVG9rZW5pemVyLmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MVG9rZW5pemVyLmNwcApp
bmRleCBhMTg3MDFhOWMzMWJmMmViNDQyNjNiYTIxNTZlMmYxNWMxNzg4ZDgzLi5jOTExY2Q0YWEy
N2E5NDgyMDIyNmI3ZTIxOGUzNmY2NzI0OWEyZDgzIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwv
SFRNTFRva2VuaXplci5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxUb2tlbml6ZXIuY3BwCkBA
IC0xMTksMTMgKzExOSwxOCBAQCB2b2lkIEhUTUxUb2tlbml6ZXI6OnJlc2V0KCkKIGlubGluZSBi
b29sIEhUTUxUb2tlbml6ZXI6OnByb2Nlc3NFbnRpdHkoU2VnbWVudGVkU3RyaW5nJiBzb3VyY2Up
CiB7CiAgICAgYm9vbCBub3RFbm91Z2hDaGFyYWN0ZXJzID0gZmFsc2U7Ci0gICAgdW5zaWduZWQg
dmFsdWUgPSBjb25zdW1lSFRNTEVudGl0eShzb3VyY2UsIG5vdEVub3VnaENoYXJhY3RlcnMpOwor
ICAgIFZlY3RvcjxVQ2hhcj4gZGVjb2RlZEVudGl0eTsKKyAgICBib29sIHN1Y2Nlc3MgPSBjb25z
dW1lSFRNTEVudGl0eShzb3VyY2UsIGRlY29kZWRFbnRpdHksIG5vdEVub3VnaENoYXJhY3RlcnMp
OwogICAgIGlmIChub3RFbm91Z2hDaGFyYWN0ZXJzKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgaWYgKCF2YWx1ZSkKKyAgICBpZiAoIXN1Y2Nlc3MpIHsKKyAgICAgICAgQVNTRVJUKGRlY29k
ZWRFbnRpdHkuaXNFbXB0eSgpKTsKICAgICAgICAgYnVmZmVyQ2hhcmFjdGVyKCcmJyk7Ci0gICAg
ZWxzZQotICAgICAgICBidWZmZXJDb2RlUG9pbnQodmFsdWUpOworICAgIH0gZWxzZSB7CisgICAg
ICAgIFZlY3RvcjxVQ2hhcj46OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSBkZWNvZGVkRW50aXR5LmJl
Z2luKCk7CisgICAgICAgIGZvciAoOyBpdGVyICE9IGRlY29kZWRFbnRpdHkuZW5kKCk7ICsraXRl
cikKKyAgICAgICAgICAgIGJ1ZmZlckNoYXJhY3RlcigqaXRlcik7CisgICAgfQogICAgIHJldHVy
biB0cnVlOwogfQogCkBAIC0xMDI3LDE2ICsxMDMyLDE3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6
bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogCiAg
ICAgQkVHSU5fU1RBVEUoQ2hhcmFjdGVyUmVmZXJlbmNlSW5BdHRyaWJ1dGVWYWx1ZVN0YXRlKSB7
CiAgICAgICAgIGJvb2wgbm90RW5vdWdoQ2hhcmFjdGVycyA9IGZhbHNlOwotICAgICAgICB1bnNp
Z25lZCB2YWx1ZSA9IGNvbnN1bWVIVE1MRW50aXR5KHNvdXJjZSwgbm90RW5vdWdoQ2hhcmFjdGVy
cywgbV9hZGRpdGlvbmFsQWxsb3dlZENoYXJhY3Rlcik7CisgICAgICAgIFZlY3RvcjxVQ2hhcj4g
ZGVjb2RlZEVudGl0eTsKKyAgICAgICAgYm9vbCBzdWNjZXNzID0gY29uc3VtZUhUTUxFbnRpdHko
c291cmNlLCBkZWNvZGVkRW50aXR5LCBub3RFbm91Z2hDaGFyYWN0ZXJzLCBtX2FkZGl0aW9uYWxB
bGxvd2VkQ2hhcmFjdGVyKTsKICAgICAgICAgaWYgKG5vdEVub3VnaENoYXJhY3RlcnMpCiAgICAg
ICAgICAgICByZXR1cm4gaGF2ZUJ1ZmZlcmVkQ2hhcmFjdGVyVG9rZW4oKTsKLSAgICAgICAgaWYg
KCF2YWx1ZSkKKyAgICAgICAgaWYgKCFzdWNjZXNzKSB7CisgICAgICAgICAgICBBU1NFUlQoZGVj
b2RlZEVudGl0eS5pc0VtcHR5KCkpOwogICAgICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9BdHRy
aWJ1dGVWYWx1ZSgnJicpOwotICAgICAgICBlbHNlIGlmICh2YWx1ZSA8IDB4RkZGRikKLSAgICAg
ICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvQXR0cmlidXRlVmFsdWUodmFsdWUpOwotICAgICAgICBl
bHNlIHsKLSAgICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvQXR0cmlidXRlVmFsdWUoVTE2X0xF
QUQodmFsdWUpKTsKLSAgICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvQXR0cmlidXRlVmFsdWUo
VTE2X1RSQUlMKHZhbHVlKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBWZWN0b3I8
VUNoYXI+Ojpjb25zdF9pdGVyYXRvciBpdGVyID0gZGVjb2RlZEVudGl0eS5iZWdpbigpOworICAg
ICAgICAgICAgZm9yICg7IGl0ZXIgIT0gZGVjb2RlZEVudGl0eS5lbmQoKTsgKytpdGVyKQorICAg
ICAgICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvQXR0cmlidXRlVmFsdWUoKml0ZXIpOwogICAg
ICAgICB9CiAgICAgICAgIC8vIFdlJ3JlIHN1cHBvc2VkIHRvIHN3aXRjaCBiYWNrIHRvIHRoZSBh
dHRyaWJ1dGUgdmFsdWUgc3RhdGUgdGhhdAogICAgICAgICAvLyB3ZSB3ZXJlIGluIHdoZW4gd2Ug
d2VyZSBzd2l0Y2hlZCBpbnRvIHRoaXMgc3RhdGUuICBSYXRoZXIgdGhhbgpAQCAtMTYzNCwxNiAr
MTY0MCw2IEBAIGlubGluZSB2b2lkIEhUTUxUb2tlbml6ZXI6OmJ1ZmZlckNoYXJhY3RlcihVQ2hh
ciBjaGFyYWN0ZXIpCiAgICAgbV90b2tlbi0+YXBwZW5kVG9DaGFyYWN0ZXIoY2hhcmFjdGVyKTsK
IH0KIAotaW5saW5lIHZvaWQgSFRNTFRva2VuaXplcjo6YnVmZmVyQ29kZVBvaW50KHVuc2lnbmVk
IHZhbHVlKQotewotICAgIGlmICh2YWx1ZSA8IDB4RkZGRikgewotICAgICAgICBidWZmZXJDaGFy
YWN0ZXIodmFsdWUpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIGJ1ZmZlckNoYXJhY3Rl
cihVMTZfTEVBRCh2YWx1ZSkpOwotICAgIGJ1ZmZlckNoYXJhY3RlcihVMTZfVFJBSUwodmFsdWUp
KTsKLX0KLQogaW5saW5lIHZvaWQgSFRNTFRva2VuaXplcjo6cGFyc2VFcnJvcigpCiB7CiAgICAg
bm90SW1wbGVtZW50ZWQoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9YU1NBdWRpdG9yLmNw
cCBiL1dlYkNvcmUvcGFnZS9YU1NBdWRpdG9yLmNwcAppbmRleCBmYjBlMWMwOTRmYjc0YWZmNzMw
NzI0ZDI5ODU3NjgxNGViMmM5YjdkLi4xODk1OGZiZTY5MjA4ZjM5Y2M3MmQ2MmY4ZTRiY2Q0N2Iy
NDE2NGJlIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvWFNTQXVkaXRvci5jcHAKKysrIGIvV2Vi
Q29yZS9wYWdlL1hTU0F1ZGl0b3IuY3BwCkBAIC0yNzcsMTkgKzI3NywxOCBAQCBTdHJpbmcgWFNT
QXVkaXRvcjo6ZGVjb2RlSFRNTEVudGl0aWVzKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBib29sIGxl
YXZlVW5kZWNvZGFibAogICAgICAgICBpZiAobGVhdmVVbmRlY29kYWJsZUVudGl0aWVzVW50b3Vj
aGVkKQogICAgICAgICAgICAgc291cmNlU2hhZG93ID0gc291cmNlOwogICAgICAgICBib29sIG5v
dEVub3VnaENoYXJhY3RlcnMgPSBmYWxzZTsKLSAgICAgICAgdW5zaWduZWQgZW50aXR5ID0gY29u
c3VtZUhUTUxFbnRpdHkoc291cmNlLCBub3RFbm91Z2hDaGFyYWN0ZXJzKTsKKyAgICAgICAgVmVj
dG9yPFVDaGFyPiBkZWNvZGVkRW50aXR5OworICAgICAgICBib29sIHN1Y2Nlc3MgPSBjb25zdW1l
SFRNTEVudGl0eShzb3VyY2UsIGRlY29kZWRFbnRpdHksIG5vdEVub3VnaENoYXJhY3RlcnMpOwog
ICAgICAgICAvLyBXZSBpZ25vcmUgbm90RW5vdWdoQ2hhcmFjdGVycyBiZWNhdXNlIHdlIG1pZ2h0
IGFzIHdlbGwgdXNlIHRoaXMgbG9vcAogICAgICAgICAvLyB0byBjb3B5IHRoZSByZW1haW5pbmcg
Y2hhcmFjdGVycyBpbnRvIHxyZXN1bHR8LgotCi0gICAgICAgIGlmIChlbnRpdHkgPiAweEZGRkYp
IHsKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoVTE2X0xFQUQoZW50aXR5KSk7Ci0gICAgICAg
ICAgICByZXN1bHQuYXBwZW5kKFUxNl9UUkFJTChlbnRpdHkpKTsKLSAgICAgICAgfSBlbHNlIGlm
IChlbnRpdHkgJiYgKCFsZWF2ZVVuZGVjb2RhYmxlRW50aXRpZXNVbnRvdWNoZWQgfHwgZW50aXR5
ICE9IDB4RkZGRCkpewotICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChlbnRpdHkpOwotICAgICAg
ICB9IGVsc2UgeworICAgICAgICBpZiAoIXN1Y2Nlc3MgfHwgKCFsZWF2ZVVuZGVjb2RhYmxlRW50
aXRpZXNVbnRvdWNoZWQgJiYgZGVjb2RlZEVudGl0eS5zaXplKCkgPT0gMSAmJiBkZWNvZGVkRW50
aXR5WzBdID09IDB4RkZGRCkpIHsKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyYnKTsKICAg
ICAgICAgICAgIGlmIChsZWF2ZVVuZGVjb2RhYmxlRW50aXRpZXNVbnRvdWNoZWQpCiAgICAgICAg
ICAgICAgICAgc291cmNlID0gc291cmNlU2hhZG93OworICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgVmVjdG9yPFVDaGFyPjo6Y29uc3RfaXRlcmF0b3IgaXRlciA9IGRlY29kZWRFbnRpdHku
YmVnaW4oKTsKKyAgICAgICAgICAgIGZvciAoOyBpdGVyICE9IGRlY29kZWRFbnRpdHkuZW5kKCk7
ICsraXRlcikKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCppdGVyKTsKICAgICAgICAg
fQogICAgIH0KICAgICAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65495</attachid>
            <date>2010-08-25 16:23:15 -0700</date>
            <delta_ts>2010-08-25 16:40:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44641-20100825162313.patch</filename>
            <type>text/plain</type>
            <size>24236</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjNTY1YTRmMWM2YjFhZTA2ZjY0MGI2MjVmYmQyNDAwZWU3N2Q4OWQ5Li40MTY1MGI2
NzdjMTc1MmI3OWQyNjVmODEzMDg4YTRjOWUwNWQ4MGFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAK
KzIwMTAtMDgtMjUgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgQmFzZTY0IEhU
TUwgZW50aXRpZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQ0NjQxCisKKyAgICAgICAgVGVzdCBjb3ZlcmFnZSBmb3IgYmFzZTY0IGVudGl0aWVzLgor
CisgICAgICAgICogZmFzdC90b2tlbml6ZXIvYmFzZTY0LWVudGl0aWVzLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC90b2tlbml6ZXIvYmFzZTY0LWVudGl0aWVzLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9qYXZhc2NyaXB0
LWxpbmstSFRNTC1lbnRpdGllcy1udWxsLWNoYXItZXhwZWN0ZWQudHh0OgorICAgICAgICAgICAg
LSBXZSBub3cgYmxvY2sgdGhpcyBhdHRhY2suCisKIDIwMTAtMDgtMjUgIEFuZHJlYXMgS2xpbmcg
IDxhbmRyZWFzLmtsaW5nQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBcml5YSBI
aWRheWF0LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90b2tlbml6ZXIvYmFzZTY0LWVu
dGl0aWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvdG9rZW5pemVyL2Jhc2U2NC1l
bnRpdGllcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTdjNjNmNGRjNDg0MDNmNDFlZDU3ZTM3
NmJlNjdmZGViNzFhMWVlNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdG9r
ZW5pemVyL2Jhc2U2NC1lbnRpdGllcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5NyBAQAorfCA8
aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgIHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2R1bXAtYXMtbWFya3VwLmpzIgorfCAgICAgIgorIgorfCAgIDxib2R5PgorfCAgICAg
IiZTRlJOVENBOFpHbDJQaUFpSUc5dVpYSnliM0k5SjJGc1pYSjBLQzlZVTFNdktTY2c1cGF3Nlpl
NzU3MlI2YUcxNDRDQTZMUzA1WkNuNDRDQTU1K2w2WUdUNDRDQVRWQXo1WnUrNTRtSDZLZUdJT21p
a2VPQWdPV2NzT1didmlFaElTRWtWU1lvS1ZFcUppTXBVVWc2S1E9OworJlNGUk5UQ0E4WkdsMlBp
QWlJRzl1WlhKeWIzSTlKMkZzWlhKMEtDOVlVMU12S1NjZzVwYXc2WmU3NTcyUjZhRzEKKzQ0Q0E2
TFMwNVpDbjQ0Q0E1NStsNllHVDQ0Q0FUVkF6NVp1KzU0bUg2S2VHSU9taWtlT0FnT1djc09XYnZp
RWgKK0lTRWtWU1lvS1ZFcUppTXBVVWc2S1E9PTsKKyYjI1NGUk5UQ0E4WkdsMlBpQWlJRzl1WlhK
eWIzSTlKMkZzWlhKMEtDOVlVMU12S1NjZzVwYXc2WmU3NTcyUjZhRzE0NENBNkxTMDVaQ240NENB
NTUrbDZZR1Q0NENBVFZBejVadSs1NG1INktlR0lPbWlrZU9BZ09XY3NPV2J2aUVoSVNFa1ZTWW9L
VkVxSmlNcFVVZzZLUT07CismIyNTRlJOVENBOFpHbDJQaUFpSUc5dVpYSnliM0k5SjJGc1pYSjBL
QzlZVTFNdktTY2c1cGF3NlplNzU3MlI2YUcxCis0NENBNkxTMDVaQ240NENBNTUrbDZZR1Q0NENB
VFZBejVadSs1NG1INktlR0lPbWlrZU9BZ09XY3NPV2J2aUVoCitJU0VrVlNZb0tWRXFKaU1wVVVn
NktRPT07CitIVE1MIDxkaXY+ICIgb25lcnJvcj0nYWxlcnQoL1hTUy8pJyDmlrDpl7vnvZHpobXj
gIDotLTlkKfjgIDnn6XpgZPjgIBNUDPlm77niYfop4Yg6aKR44CA5Zyw5Zu+ISEhISRVJigpUSom
IylRSDopCismJVNGUk5UQ0E4WkdsMlBpQWlJRzl1WlhKeWIzSTlKMkZzWlhKMEtDOVlVMU12S1Nj
ZzVwYXc2WmU3NTcyUjZhRzEKKzQ0Q0E2TFMwNVpDbjQ0Q0E1NStsNllHVDQ0Q0FUVkF6NVp1KzU0
bUg2S2VHSU9taWtlT0FnT1djc09XYnZpRWgKK0lTRWtWU1lvS1ZFcUppTXBVVWc2S1E9PTsKKyYl
U0ZSTlRDQThaR2wyUGlBaUlHOXVaWEp5YjNJOUoyRnNaWEowS0M5WVUxTXZLU2NnNXBhdzZaZTc1
NzJSNmFHMTQ0Q0E2TFMwNVpDbjQ0Q0E1NStsNllHVDQ0Q0FUVkF6NVp1KzU0bUg2S2VHSU9taWtl
T0FnT1djc09XYnZpRWhJU0VrVlNZb0tWRXFKaU1wVVVnNktRPQorJiVTRlJOVENBOFpHbDJQaUFp
SUc5dVpYSnliM0k5SjJGc1pYSjBLQzlZVTFNdktTY2c1cGF3NlplNzU3MlI2YUcxCis0NENBNkxT
MDVaQ240NENBNTUrbDZZR1Q0NENBVFZBejVadSs1NG1INktlR0lPbWlrZU9BZ09XY3NPV2J2aUVo
CitJU0VrVlNZb0tWRXFKaU1wVVVnNktRPQorIgorfCAgICAgPGltZz4KK3wgICAgICAgYWx0PSJI
VE1MIDxkaXY+ICIgb25lcnJvcj0nYWxlcnQoL1hTUy8pJyDmlrDpl7vnvZHpobXjgIDotLTlkKfj
gIDnn6XpgZPjgIBNUDPlm77niYfop4Yg6aKR44CA5Zyw5Zu+ISEhISRVJigpUSomIylRSDopIgor
fCAgICAgICBzcmM9ImFib3V0OmJsYW5rIgorfCAgICAgIgorIgorfCAgICAgPGltZz4KK3wgICAg
ICAgYWx0PSJIVE1MIDxkaXY+ICIgb25lcnJvcj0nYWxlcnQoL1hTUy8pJyDmlrDpl7vnvZHpobXj
gIDotLTlkKfjgIDnn6XpgZPjgIBNUDPlm77niYfop4Yg6aKR44CA5Zyw5Zu+ISEhISRVJigpUSom
IylRSDopIgorfCAgICAgICBzcmM9ImFib3V0OmJsYW5rIgorfCAgICAgIgorIgorfCAgICAgPGlt
Zz4KK3wgICAgICAgYWx0PSJIVE1MIDxkaXY+ICIgb25lcnJvcj0nYWxlcnQoL1hTUy8pJyDmlrDp
l7vnvZHpobXjgIDotLTlkKfjgIDnn6XpgZPjgIBNUDPlm77niYfop4Yg6aKR44CA5Zyw5Zu+ISEh
ISRVJigpUSomIylRSDopIgorfCAgICAgICBzcmM9ImFib3V0OmJsYW5rIgorfCAgICAgIgorIgor
fCAgICAgPGltZz4KK3wgICAgICAgJiVzZnJudGNhOHpnbDJwaWFpaWc5dXp4anliM2k5ajJmc3p4
ajBrYzl5dTFtdmtzY2c1cGF3NnplNzU3MnI2YWcxNDRjYTZsczA1emNuNDRjYTU1K2w2eWd0NDRj
YXR2YXo1enUrNTRtaDZrZWdpb21pa2VvYWdvd2Nzb3didmllaGlzZWt2c3lva3ZlcWppbXB1dWc2
a3E9IjsiCit8ICAgICAiCitWR2hwY3lCcGN5QThiMjVsUGlBaUp5Qm9ZWE1nWkdsbVptVnlaVzUw
SUNabmREc2djR0ZrWkdsdVp5NHUKKyZWR2hwY3lCcGN5QThiMjVsUGlBaUp5Qm9ZWE1nWkdsbVpt
VnlaVzUwSUNabmREc2djR0ZrWkdsdVp5NHU7CismIyNWR2hwY3lCcGN5QThiMjVsUGlBaUp5Qm9Z
WE1nWkdsbVptVnlaVzUwSUNabmREc2djR0ZrWkdsdVp5NHU7CitUaGlzIGlzIDxvbmU+ICInIGhh
cyBkaWZmZXJlbnQgJmd0OyBwYWRkaW5nLi4KKyYlVkdocGN5QnBjeUE4YjI1bFBpQWlKeUJvWVhN
Z1pHbG1abVZ5Wlc1MElDWm5kRHNnY0dGa1pHbHVaeTR1CisiCit8ICAgICA8aW1nPgorfCAgICAg
ICBhbHQ9IlRoaXMgaXMgPG9uZT4gIicgaGFzIGRpZmZlcmVudCAmZ3Q7IHBhZGRpbmcuLiIKK3wg
ICAgICAgc3JjPSJhYm91dDpibGFuayIKK3wgICAgICIKKyIKK3wgICAgIDxpbWc+Cit8ICAgICAg
IGFsdD0iVGhpcyBpcyA8b25lPiAiJyBoYXMgZGlmZmVyZW50ICZndDsgcGFkZGluZy4uIgorfCAg
ICAgICBzcmM9ImFib3V0OmJsYW5rIgorfCAgICAgIgorIgorfCAgICAgPGltZz4KK3wgICAgICAg
YWx0PSJUaGlzIGlzIDxvbmU+ICInIGhhcyBkaWZmZXJlbnQgJmd0OyBwYWRkaW5nLi4iCit8ICAg
ICAgIHNyYz0iYWJvdXQ6YmxhbmsiCit8ICAgICAiCisiCit8ICAgICA8aW1nPgorfCAgICAgICAm
JXZnaHBjeWJwY3lhOGIyNWxwaWFpanlib3l4bWd6Z2xtem12eXp3NTBpY3puZGRzZ2NnZmt6Z2x1
enk0dTs9IiIKK3wgICAgICIKKyIKK3wgICAgIDxkaXY+Cit8ICAgICAgICJGdW4gd2l0aCBlbXB0
eXZhbHVlcyIKK3wgICAgICIKKyIKK3wgICAgIDxkaXY+Cit8ICAgICAgICJGdW4gd2l0aCBlbXB0
eSYldmFsdWVzIgorfCAgICAgIgorIgorfCAgICAgPGRpdj4KK3wgICAgICAgIkZ1biB3aXRoIGVt
cHR5Jjt2YWx1ZXMiCit8ICAgICAiCisiCit8ICAgICA8ZGl2PgorfCAgICAgICAiRnVuIHdpdGgg
ZW1wdHkmdmFsdWVzIgorfCAgICAgIgorIgorfCAgICAgPGRpdj4KK3wgICAgICAgIkZ1biB3aXRo
IGVtcHR5JTt2YWx1ZXMiCit8ICAgICAiCisiCit8ICAgICA8ZGl2PgorfCAgICAgICAiRnVuIHdp
dGggZW1wdHkldmFsdWVzIgorfCAgICAgIgorIgorfCAgICAgPGRpdj4KK3wgICAgICAgIu+/vVBO
Rw0KKxoKK++/ve+/ve+/vQ1JSERS77+977+977+9EO+/ve+/ve+/vRABA++/ve+/ve+/vSU9bSLv
v73vv73vv70GUExURe+/ve+/ve+/ve+/ve+/ve+/ve+/vdmf77+977+977+977+9M0lEQVR477+9
Y++/ve+/ve+/ve+/ve+/vV/vv73vv73vv70ZDu+/vTPvv70/77+9cH8y77+977+977+9DDfvv70Z
77+9FO+/vdC977+9DO+/vVLvv70MD++/ve+/ve+/vX/vv71R77+9Fyjvv71d77+9UO+/ve+/ve+/
ve+/vUlFTkTvv71CYO+/vSIKK3wgICAgICIKKyIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvdG9rZW5pemVyL2Jhc2U2NC1lbnRpdGllcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90b2tl
bml6ZXIvYmFzZTY0LWVudGl0aWVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGNlN2E3YjY4YWVhZjNjYjA2
MTQ3NmZiNjUwNzdhZDk5YWM1MzIwMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvdG9rZW5pemVyL2Jhc2U2NC1lbnRpdGllcy5odG1sCkBAIC0wLDAgKzEsNDMgQEAKKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanMiPjwvc2NyaXB0PgorJlNG
Uk5UQ0E4WkdsMlBpQWlJRzl1WlhKeWIzSTlKMkZzWlhKMEtDOVlVMU12S1NjZzVwYXc2WmU3NTcy
UjZhRzE0NENBNkxTMDVaQ240NENBNTUrbDZZR1Q0NENBVFZBejVadSs1NG1INktlR0lPbWlrZU9B
Z09XY3NPV2J2aUVoSVNFa1ZTWW9LVkVxSmlNcFVVZzZLUT07CismU0ZSTlRDQThaR2wyUGlBaUlH
OXVaWEp5YjNJOUoyRnNaWEowS0M5WVUxTXZLU2NnNXBhdzZaZTc1NzJSNmFHMQorNDRDQTZMUzA1
WkNuNDRDQTU1K2w2WUdUNDRDQVRWQXo1WnUrNTRtSDZLZUdJT21pa2VPQWdPV2NzT1didmlFaAor
SVNFa1ZTWW9LVkVxSmlNcFVVZzZLUT09OworJiNTRlJOVENBOFpHbDJQaUFpSUc5dVpYSnliM0k5
SjJGc1pYSjBLQzlZVTFNdktTY2c1cGF3NlplNzU3MlI2YUcxNDRDQTZMUzA1WkNuNDRDQTU1K2w2
WUdUNDRDQVRWQXo1WnUrNTRtSDZLZUdJT21pa2VPQWdPV2NzT1didmlFaElTRWtWU1lvS1ZFcUpp
TXBVVWc2S1E9OworJiNTRlJOVENBOFpHbDJQaUFpSUc5dVpYSnliM0k5SjJGc1pYSjBLQzlZVTFN
dktTY2c1cGF3NlplNzU3MlI2YUcxCis0NENBNkxTMDVaQ240NENBNTUrbDZZR1Q0NENBVFZBejVa
dSs1NG1INktlR0lPbWlrZU9BZ09XY3NPV2J2aUVoCitJU0VrVlNZb0tWRXFKaU1wVVVnNktRPT07
CismJVNGUk5UQ0E4WkdsMlBpQWlJRzl1WlhKeWIzSTlKMkZzWlhKMEtDOVlVMU12S1NjZzVwYXc2
WmU3NTcyUjZhRzE0NENBNkxTMDVaQ240NENBNTUrbDZZR1Q0NENBVFZBejVadSs1NG1INktlR0lP
bWlrZU9BZ09XY3NPV2J2aUVoSVNFa1ZTWW9LVkVxSmlNcFVVZzZLUT07CismJVNGUk5UQ0E4Wkds
MlBpQWlJRzl1WlhKeWIzSTlKMkZzWlhKMEtDOVlVMU12S1NjZzVwYXc2WmU3NTcyUjZhRzEKKzQ0
Q0E2TFMwNVpDbjQ0Q0E1NStsNllHVDQ0Q0FUVkF6NVp1KzU0bUg2S2VHSU9taWtlT0FnT1djc09X
YnZpRWgKK0lTRWtWU1lvS1ZFcUppTXBVVWc2S1E9PTsKKyYlU0ZSTlRDQThaR2wyUGlBaUlHOXVa
WEp5YjNJOUoyRnNaWEowS0M5WVUxTXZLU2NnNXBhdzZaZTc1NzJSNmFHMTQ0Q0E2TFMwNVpDbjQ0
Q0E1NStsNllHVDQ0Q0FUVkF6NVp1KzU0bUg2S2VHSU9taWtlT0FnT1djc09XYnZpRWhJU0VrVlNZ
b0tWRXFKaU1wVVVnNktRPQorJiVTRlJOVENBOFpHbDJQaUFpSUc5dVpYSnliM0k5SjJGc1pYSjBL
QzlZVTFNdktTY2c1cGF3NlplNzU3MlI2YUcxCis0NENBNkxTMDVaQ240NENBNTUrbDZZR1Q0NENB
VFZBejVadSs1NG1INktlR0lPbWlrZU9BZ09XY3NPV2J2aUVoCitJU0VrVlNZb0tWRXFKaU1wVVVn
NktRPQorPGltZyBhbHQ9IiYlU0ZSTlRDQThaR2wyUGlBaUlHOXVaWEp5YjNJOUoyRnNaWEowS0M5
WVUxTXZLU2NnNXBhdzZaZTc1NzJSNmFHMTQ0Q0E2TFMwNVpDbjQ0Q0E1NStsNllHVDQ0Q0FUVkF6
NVp1KzU0bUg2S2VHSU9taWtlT0FnT1djc09XYnZpRWhJU0VrVlNZb0tWRXFKaU1wVVVnNktRPTsi
CisgICAgIHNyYz0iYWJvdXQ6YmxhbmsiPgorPGltZyBhbHQ9JiVTRlJOVENBOFpHbDJQaUFpSUc5
dVpYSnliM0k5SjJGc1pYSjBLQzlZVTFNdktTY2c1cGF3NlplNzU3MlI2YUcxNDRDQTZMUzA1WkNu
NDRDQTU1K2w2WUdUNDRDQVRWQXo1WnUrNTRtSDZLZUdJT21pa2VPQWdPV2NzT1didmlFaElTRWtW
U1lvS1ZFcUppTXBVVWc2S1E9OworICAgICBzcmM9ImFib3V0OmJsYW5rIj4KKzxpbWcgYWx0PScm
JVNGUk5UQ0E4WkdsMlBpQWlJRzl1WlhKeWIzSTlKMkZzWlhKMEtDOVlVMU12S1NjZzVwYXc2WmU3
NTcyUjZhRzE0NENBNkxTMDVaQ240NENBNTUrbDZZR1Q0NENBVFZBejVadSs1NG1INktlR0lPbWlr
ZU9BZ09XY3NPV2J2aUVoSVNFa1ZTWW9LVkVxSmlNcFVVZzZLUT07JworICAgICBzcmM9ImFib3V0
OmJsYW5rIj4KKzxpbWcgJiVTRlJOVENBOFpHbDJQaUFpSUc5dVpYSnliM0k5SjJGc1pYSjBLQzlZ
VTFNdktTY2c1cGF3NlplNzU3MlI2YUcxNDRDQTZMUzA1WkNuNDRDQTU1K2w2WUdUNDRDQVRWQXo1
WnUrNTRtSDZLZUdJT21pa2VPQWdPV2NzT1didmlFaElTRWtWU1lvS1ZFcUppTXBVVWc2S1E9OyA+
CitWR2hwY3lCcGN5QThiMjVsUGlBaUp5Qm9ZWE1nWkdsbVptVnlaVzUwSUNabmREc2djR0ZrWkds
dVp5NHUKKyZWR2hwY3lCcGN5QThiMjVsUGlBaUp5Qm9ZWE1nWkdsbVptVnlaVzUwSUNabmREc2dj
R0ZrWkdsdVp5NHU7CismI1ZHaHBjeUJwY3lBOGIyNWxQaUFpSnlCb1lYTWdaR2xtWm1WeVpXNTBJ
Q1puZERzZ2NHRmtaR2x1Wnk0dTsKKyYlVkdocGN5QnBjeUE4YjI1bFBpQWlKeUJvWVhNZ1pHbG1a
bVZ5Wlc1MElDWm5kRHNnY0dGa1pHbHVaeTR1OworJiVWR2hwY3lCcGN5QThiMjVsUGlBaUp5Qm9Z
WE1nWkdsbVptVnlaVzUwSUNabmREc2djR0ZrWkdsdVp5NHUKKzxpbWcgYWx0PSImJVZHaHBjeUJw
Y3lBOGIyNWxQaUFpSnlCb1lYTWdaR2xtWm1WeVpXNTBJQ1puZERzZ2NHRmtaR2x1Wnk0dTsiCisg
ICAgIHNyYz0iYWJvdXQ6YmxhbmsiPgorPGltZyBhbHQ9JiVWR2hwY3lCcGN5QThiMjVsUGlBaUp5
Qm9ZWE1nWkdsbVptVnlaVzUwSUNabmREc2djR0ZrWkdsdVp5NHU7CisgICAgIHNyYz0iYWJvdXQ6
YmxhbmsiPgorPGltZyBhbHQ9JyYlVkdocGN5QnBjeUE4YjI1bFBpQWlKeUJvWVhNZ1pHbG1abVZ5
Wlc1MElDWm5kRHNnY0dGa1pHbHVaeTR1OycKKyAgICAgc3JjPSJhYm91dDpibGFuayI+Cis8aW1n
ICYlVkdocGN5QnBjeUE4YjI1bFBpQWlKeUJvWVhNZ1pHbG1abVZ5Wlc1MElDWm5kRHNnY0dGa1pH
bHVaeTR1OyA+Cis8ZGl2PkZ1biB3aXRoIGVtcHR5JiU7dmFsdWVzPC9kaXY+Cis8ZGl2PkZ1biB3
aXRoIGVtcHR5JiV2YWx1ZXM8L2Rpdj4KKzxkaXY+RnVuIHdpdGggZW1wdHkmO3ZhbHVlczwvZGl2
PgorPGRpdj5GdW4gd2l0aCBlbXB0eSZ2YWx1ZXM8L2Rpdj4KKzxkaXY+RnVuIHdpdGggZW1wdHkl
O3ZhbHVlczwvZGl2PgorPGRpdj5GdW4gd2l0aCBlbXB0eSV2YWx1ZXM8L2Rpdj4KKzxkaXY+JiVp
VkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQkFBQUFBUUFRTUFBQUFsUFcwaUFBQUFCbEJNVkVVQUFB
RC8vLytsMlovZEFBQUFNMGxFUVZSNG5HUDQvNS9oLzErRy81OFpEckF6M0QvTWNIOHl3ODNORERl
TkdlNFVnOUM5end6M2dWTE1EQS9BNlA5L0FGR0dGeWpPWFp0UUFBQUFBRWxGVGtTdVFtQ0M7PC9k
aXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0
b3IvamF2YXNjcmlwdC1saW5rLUhUTUwtZW50aXRpZXMtbnVsbC1jaGFyLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9qYXZhc2NyaXB0LWxp
bmstSFRNTC1lbnRpdGllcy1udWxsLWNoYXItZXhwZWN0ZWQudHh0CmluZGV4IGQyMzQ5YzRiZGE2
NGRhOTA1NDkzMTQ3NGFiZWQ4OGI1MmFkMTRlYzQuLjUxM2UyZjhkMDNmNzQyMDNhMzVlMGJlZWQx
ZmQ0M2I0MzI5MmRjMmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkveHNzQXVkaXRvci9qYXZhc2NyaXB0LWxpbmstSFRNTC1lbnRpdGllcy1udWxsLWNoYXItZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRv
ci9qYXZhc2NyaXB0LWxpbmstSFRNTC1lbnRpdGllcy1udWxsLWNoYXItZXhwZWN0ZWQudHh0CkBA
IC0xLDIgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFN5bnRheEVycm9yOiBQYXJz
ZSBlcnJvcgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFJlZnVzZWQgdG8gZXhlY3V0ZSBhIEph
dmFTY3JpcHQgc2NyaXB0LiBTb3VyY2UgY29kZSBvZiBzY3JpcHQgZm91bmQgd2l0aGluIHJlcXVl
c3QuCisKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCBjZDE0MWRlNzkyMWZlMjIyNjA4OWEzNTFlZTI3NTMxOWM0NDQ3YTVhLi5jNWNiODBl
ZDJlMzg1YWVjMDUzMDNlMzY5MmVlYjQ2ZDFlZTllZGU0IDEwMDY0NAotLS0gYS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEwLTA4
LTI1ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IEJhc2U2NCBIVE1MIGVudGl0
aWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDY0
MQorCisgICAgICAgIEF1dGhvcnMgY2FuIHVzZSBiYXNlNjQgZW50aXRpZXMgdG8gaGVscCBwcm90
ZWN0IGFnYWluc3QgY3Jvc3Mtc2l0ZQorICAgICAgICBzY3JpcHRpbmcgYnkgZW5jb2RpbmcgdW50
cnVzdGVkIGNvbnRlbnQgaW4gYmFzZTY0LiAgRm9yIG1vcmUgZGV0YWlscywKKyAgICAgICAgc2Vl
IHRoaXMgdGhyZWFkOgorCisgICAgICAgIGh0dHA6Ly9saXN0cy53aGF0d2cub3JnL2h0ZGlnLmNn
aS93aGF0d2ctd2hhdHdnLm9yZy8yMDEwLUF1Z3VzdC8wMjgxNTQuaHRtbAorCisgICAgICAgIFRo
aXMgZmVhdHVyZSBpcyBub3QgcGFydCBwYXJ0IG9mIEhUTUw1IHlldCwgYnV0IHRoZSBlZGl0b3Ig
b2YgdGhlIHNwZWMKKyAgICAgICAgZW5jb3VyYWdlcyB1cyB0byBleHBlcmltZW50IHdpdGggdGhp
cyBmZWF0dXJlLgorCisgICAgICAgIFRlc3Q6IGZhc3QvdG9rZW5pemVyL2Jhc2U2NC1lbnRpdGll
cy5odG1sCisKKyAgICAgICAgKiBodG1sL0hUTUxFbnRpdHlQYXJzZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnN1bWVIVE1MRW50aXR5KToKKyAgICAg
ICAgKiBodG1sL0hUTUxFbnRpdHlQYXJzZXIuaDoKKyAgICAgICAgKiBodG1sL0hUTUxUb2tlbml6
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRva2VuaXplcjo6cHJvY2Vzc0VudGl0eSk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4pOgorICAgICAgICAq
IHBhZ2UvWFNTQXVkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYU1NBdWRpdG9yOjpkZWNv
ZGVIVE1MRW50aXRpZXMpOgorCiAyMDEwLTA4LTI1ICBBbmRyZWFzIEtsaW5nICA8YW5kcmVhcy5r
bGluZ0Bub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQXJpeWEgSGlkYXlhdC4KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRW50aXR5UGFyc2VyLmNwcCBiL1dlYkNvcmUvaHRt
bC9IVE1MRW50aXR5UGFyc2VyLmNwcAppbmRleCBmNjc1ODQ0YWRlMDRlOWE4ZjllNzU0YTc1MzM0
Y2ZlZWJiYTAyY2ZkLi5iNTY2OThlOTY1OTU3MjI2YzE2NTgzY2RlMDQ5MTk0ODI1Y2IzNTE4IDEw
MDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEVudGl0eVBhcnNlci5jcHAKKysrIGIvV2ViQ29y
ZS9odG1sL0hUTUxFbnRpdHlQYXJzZXIuY3BwCkBAIC0yOCw4ICsyOCwxMCBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIkhUTUxFbnRpdHlQYXJzZXIuaCIKIAorI2luY2x1ZGUgIkJh
c2U2NC5oIgogI2luY2x1ZGUgIkhUTUxFbnRpdHlTZWFyY2guaCIKICNpbmNsdWRlICJIVE1MRW50
aXR5VGFibGUuaCIKKyNpbmNsdWRlICJUZXh0RW5jb2RpbmcuaCIKICNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXVEY7CkBAIC02Miw2ICs2NCwxOSBAQCBpbmxpbmUg
dW5zaWduZWQgbGVnYWxFbnRpdHlGb3IodW5zaWduZWQgdmFsdWUpCiAgICAgcmV0dXJuIHZhbHVl
OwogfQogCitpbmxpbmUgYm9vbCBjb252ZXJ0VG9DaGFyYWN0ZXJzKHVuc2lnbmVkIHZhbHVlLCBW
ZWN0b3I8VUNoYXI+JiBkZWNvZGVkRW50aXR5KQoreworICAgIGlmICh2YWx1ZSA8IDB4RkZGRikg
eworICAgICAgICBVQ2hhciBjaGFyYWN0ZXIgPSBzdGF0aWNfY2FzdDxVQ2hhcj4odmFsdWUpOwor
ICAgICAgICBBU1NFUlQoY2hhcmFjdGVyID09IHZhbHVlKTsKKyAgICAgICAgZGVjb2RlZEVudGl0
eS5hcHBlbmQoY2hhcmFjdGVyKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIGRl
Y29kZWRFbnRpdHkuYXBwZW5kKFUxNl9MRUFEKHZhbHVlKSk7CisgICAgZGVjb2RlZEVudGl0eS5h
cHBlbmQoVTE2X1RSQUlMKHZhbHVlKSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIGlubGluZSBi
b29sIGlzSGV4RGlnaXQoVUNoYXIgY2MpCiB7CiAgICAgcmV0dXJuIChjYyA+PSAnMCcgJiYgY2Mg
PD0gJzknKSB8fCAoY2MgPj0gJ2EnICYmIGNjIDw9ICdmJykgfHwgKGNjID49ICdBJyAmJiBjYyA8
PSAnRicpOwpAQCAtNzIsNiArODcsMTEgQEAgaW5saW5lIGJvb2wgaXNBbHBoYU51bWVyaWMoVUNo
YXIgY2MpCiAgICAgcmV0dXJuIChjYyA+PSAnMCcgJiYgY2MgPD0gJzknKSB8fCAoY2MgPj0gJ2En
ICYmIGNjIDw9ICd6JykgfHwgKGNjID49ICdBJyAmJiBjYyA8PSAnWicpOwogfQogCitpbmxpbmUg
Ym9vbCBpc0Jhc2U2NENoYXJhY3RlcihVQ2hhciBjYykKK3sKKyAgICByZXR1cm4gaXNBbHBoYU51
bWVyaWMoY2MpIHx8IGNjID09ICcrJyB8fCBjYyA9PSAnLycgfHwgY2MgPT0gJz0nOworfQorCiB2
b2lkIHVuY29uc3VtZUNoYXJhY3RlcnMoU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIGNvbnN0IFZl
Y3RvcjxVQ2hhciwgMTA+JiBjb25zdW1lZENoYXJhY3RlcnMpCiB7CiAgICAgaWYgKGNvbnN1bWVk
Q2hhcmFjdGVycy5zaXplKCkgPT0gMSkKQEAgLTg1LDE4ICsxMDUsMjAgQEAgdm9pZCB1bmNvbnN1
bWVDaGFyYWN0ZXJzKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBjb25zdCBWZWN0b3I8VUNoYXIs
IDEwPiYgY29uc3UKIAogfQogCi11bnNpZ25lZCBjb25zdW1lSFRNTEVudGl0eShTZWdtZW50ZWRT
dHJpbmcmIHNvdXJjZSwgYm9vbCYgbm90RW5vdWdoQ2hhcmFjdGVycywgVUNoYXIgYWRkaXRpb25h
bEFsbG93ZWRDaGFyYWN0ZXIpCitib29sIGNvbnN1bWVIVE1MRW50aXR5KFNlZ21lbnRlZFN0cmlu
ZyYgc291cmNlLCBWZWN0b3I8VUNoYXI+JiBkZWNvZGVkRW50aXR5LCBib29sJiBub3RFbm91Z2hD
aGFyYWN0ZXJzLCBVQ2hhciBhZGRpdGlvbmFsQWxsb3dlZENoYXJhY3RlcikKIHsKICAgICBBU1NF
UlQoIWFkZGl0aW9uYWxBbGxvd2VkQ2hhcmFjdGVyIHx8IGFkZGl0aW9uYWxBbGxvd2VkQ2hhcmFj
dGVyID09ICciJyB8fCBhZGRpdGlvbmFsQWxsb3dlZENoYXJhY3RlciA9PSAnXCcnIHx8IGFkZGl0
aW9uYWxBbGxvd2VkQ2hhcmFjdGVyID09ICc+Jyk7CiAgICAgQVNTRVJUKCFub3RFbm91Z2hDaGFy
YWN0ZXJzKTsKKyAgICBBU1NFUlQoZGVjb2RlZEVudGl0eS5pc0VtcHR5KCkpOwogCiAgICAgZW51
bSBFbnRpdHlTdGF0ZSB7CiAgICAgICAgIEluaXRpYWwsCi0gICAgICAgIE51bWJlclR5cGUsCisg
ICAgICAgIE51bWJlciwKICAgICAgICAgTWF5YmVIZXhMb3dlckNhc2VYLAogICAgICAgICBNYXli
ZUhleFVwcGVyQ2FzZVgsCiAgICAgICAgIEhleCwKICAgICAgICAgRGVjaW1hbCwKKyAgICAgICAg
QmFzZTY0LAogICAgICAgICBOYW1lZAogICAgIH07CiAgICAgRW50aXR5U3RhdGUgZW50aXR5U3Rh
dGUgPSBJbml0aWFsOwpAQCAtMTA4LDIwICsxMzAsMjQgQEAgdW5zaWduZWQgY29uc3VtZUhUTUxF
bnRpdHkoU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIGJvb2wmIG5vdEVub3VnaENoYXJhY3RlcnMs
IFUKICAgICAgICAgc3dpdGNoIChlbnRpdHlTdGF0ZSkgewogICAgICAgICBjYXNlIEluaXRpYWw6
IHsKICAgICAgICAgICAgIGlmIChjYyA9PSAnXHgwOScgfHwgY2MgPT0gJ1x4MEEnIHx8IGNjID09
ICdceDBDJyB8fCBjYyA9PSAnICcgfHwgY2MgPT0gJzwnIHx8IGNjID09ICcmJykKLSAgICAgICAg
ICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAg
ICAgICBpZiAoYWRkaXRpb25hbEFsbG93ZWRDaGFyYWN0ZXIgJiYgY2MgPT0gYWRkaXRpb25hbEFs
bG93ZWRDaGFyYWN0ZXIpCi0gICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgaWYgKGNjID09ICcjJykgewotICAgICAgICAg
ICAgICAgIGVudGl0eVN0YXRlID0gTnVtYmVyVHlwZTsKKyAgICAgICAgICAgICAgICBlbnRpdHlT
dGF0ZSA9IE51bWJlcjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIGlmIChjYyA9PSAnJScpIHsKKyAgICAgICAgICAgICAgICBlbnRpdHlTdGF0ZSA9
IEJhc2U2NDsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIGlmICgoY2MgPj0gJ2EnICYmIGNjIDw9ICd6JykgfHwgKGNjID49ICdBJyAmJiBjYyA8PSAn
WicpKSB7CiAgICAgICAgICAgICAgICAgZW50aXR5U3RhdGUgPSBOYW1lZDsKICAgICAgICAgICAg
ICAgICBjb250aW51ZTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiAwOworICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9Ci0gICAgICAgIGNhc2UgTnVtYmVyVHlw
ZTogeworICAgICAgICBjYXNlIE51bWJlcjogewogICAgICAgICAgICAgaWYgKGNjID09ICd4Jykg
ewogICAgICAgICAgICAgICAgIGVudGl0eVN0YXRlID0gTWF5YmVIZXhMb3dlckNhc2VYOwogICAg
ICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTM1LDcgKzE2MSw3IEBAIHVuc2lnbmVkIGNvbnN1bWVI
VE1MRW50aXR5KFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBib29sJiBub3RFbm91Z2hDaGFyYWN0
ZXJzLCBVCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICBzb3VyY2UucHVzaCgnIycpOwotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBNYXliZUhleExvd2VyQ2Fz
ZVg6IHsKICAgICAgICAgICAgIGlmIChpc0hleERpZ2l0KGNjKSkgewpAQCAtMTQ0LDcgKzE3MCw3
IEBAIHVuc2lnbmVkIGNvbnN1bWVIVE1MRW50aXR5KFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBi
b29sJiBub3RFbm91Z2hDaGFyYWN0ZXJzLCBVCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBz
b3VyY2UucHVzaCgnIycpOwogICAgICAgICAgICAgc291cmNlLnB1c2goJ3gnKTsKLSAgICAgICAg
ICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAg
ICAgIGNhc2UgTWF5YmVIZXhVcHBlckNhc2VYOiB7CiAgICAgICAgICAgICBpZiAoaXNIZXhEaWdp
dChjYykpIHsKQEAgLTE1Myw3ICsxNzksNyBAQCB1bnNpZ25lZCBjb25zdW1lSFRNTEVudGl0eShT
ZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgYm9vbCYgbm90RW5vdWdoQ2hhcmFjdGVycywgVQogICAg
ICAgICAgICAgfQogICAgICAgICAgICAgc291cmNlLnB1c2goJyMnKTsKICAgICAgICAgICAgIHNv
dXJjZS5wdXNoKCdYJyk7Ci0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBjYXNlIEhleDogewogICAgICAgICAgICAgaWYg
KGNjID49ICcwJyAmJiBjYyA8PSAnOScpCkBAIC0xNjIsMjMgKzE4OCw1OSBAQCB1bnNpZ25lZCBj
b25zdW1lSFRNTEVudGl0eShTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgYm9vbCYgbm90RW5vdWdo
Q2hhcmFjdGVycywgVQogICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAqIDE2ICsgMTAg
KyBjYyAtICdhJzsKICAgICAgICAgICAgIGVsc2UgaWYgKGNjID49ICdBJyAmJiBjYyA8PSAnRicp
CiAgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICogMTYgKyAxMCArIGNjIC0gJ0EnOwot
ICAgICAgICAgICAgZWxzZSBpZiAoY2MgPT0gJzsnKSB7Ci0gICAgICAgICAgICAgICAgc291cmNl
LmFkdmFuY2VQYXN0Tm9uTmV3bGluZSgpOwotICAgICAgICAgICAgICAgIHJldHVybiBsZWdhbEVu
dGl0eUZvcihyZXN1bHQpOwotICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgcmV0
dXJuIGxlZ2FsRW50aXR5Rm9yKHJlc3VsdCk7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAg
ICAgICAgICBpZiAoY2MgPT0gJzsnKQorICAgICAgICAgICAgICAgICAgICBzb3VyY2UuYWR2YW5j
ZUFuZEFTU0VSVChjYyk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnZlcnRUb0NoYXJhY3Rl
cnMobGVnYWxFbnRpdHlGb3IocmVzdWx0KSwgZGVjb2RlZEVudGl0eSk7CisgICAgICAgICAgICB9
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIERlY2ltYWw6IHsK
ICAgICAgICAgICAgIGlmIChjYyA+PSAnMCcgJiYgY2MgPD0gJzknKQogICAgICAgICAgICAgICAg
IHJlc3VsdCA9IHJlc3VsdCAqIDEwICsgY2MgLSAnMCc7Ci0gICAgICAgICAgICBlbHNlIGlmIChj
YyA9PSAnOycpIHsKLSAgICAgICAgICAgICAgICBzb3VyY2UuYWR2YW5jZVBhc3ROb25OZXdsaW5l
KCk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGxlZ2FsRW50aXR5Rm9yKHJlc3VsdCk7Ci0gICAg
ICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICByZXR1cm4gbGVnYWxFbnRpdHlGb3IocmVz
dWx0KTsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChjYyA9PSAnOycp
CisgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5hZHZhbmNlQW5kQVNTRVJUKGNjKTsKKyAgICAg
ICAgICAgICAgICByZXR1cm4gY29udmVydFRvQ2hhcmFjdGVycyhsZWdhbEVudGl0eUZvcihyZXN1
bHQpLCBkZWNvZGVkRW50aXR5KTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CisgICAgICAgIGNhc2UgQmFzZTY0OiB7CisgICAgICAgICAgICBWZWN0b3I8Y2hh
cj4gYXNjaWlWYWx1ZTsKKyAgICAgICAgICAgIHdoaWxlICghc291cmNlLmlzRW1wdHkoKSkgewor
ICAgICAgICAgICAgICAgIGNjID0gKnNvdXJjZTsKKyAgICAgICAgICAgICAgICBpZiAoIWlzQmFz
ZTY0Q2hhcmFjdGVyKGNjKSkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICAgICAgY2hhciBsZXR0ZXIgPSBzdGF0aWNfY2FzdDxjaGFyPihjYyk7CisgICAgICAgICAgICAg
ICAgQVNTRVJUKGxldHRlciA9PSBjYyk7CisgICAgICAgICAgICAgICAgYXNjaWlWYWx1ZS5hcHBl
bmQobGV0dGVyKTsKKyAgICAgICAgICAgICAgICBjb25zdW1lZENoYXJhY3RlcnMuYXBwZW5kKGNj
KTsKKyAgICAgICAgICAgICAgICBzb3VyY2UuYWR2YW5jZUFuZEFTU0VSVChjYyk7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICBub3RFbm91Z2hDaGFyYWN0ZXJzID0gc291cmNlLmlzRW1wdHko
KTsKKyAgICAgICAgICAgIGlmIChub3RFbm91Z2hDaGFyYWN0ZXJzKSB7CisgICAgICAgICAgICAg
ICAgdW5jb25zdW1lQ2hhcmFjdGVycyhzb3VyY2UsIGNvbnN1bWVkQ2hhcmFjdGVycyk7CisgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYg
KGNjID09ICc7JykgeworICAgICAgICAgICAgICAgIHNvdXJjZS5hZHZhbmNlQW5kQVNTRVJUKGNj
KTsKKyAgICAgICAgICAgICAgICBWZWN0b3I8Y2hhcj4gYmluYXJ5VmFsdWU7CisgICAgICAgICAg
ICAgICAgYm9vbCBzdWNjZXNzID0gYmFzZTY0RGVjb2RlKGFzY2lpVmFsdWUsIGJpbmFyeVZhbHVl
KTsKKyAgICAgICAgICAgICAgICAvLyBiYXNlNjREZWNvZGUgb25seSBmYWlscyBpZiBhc2NpaVZh
bHVlIGNvbnRhaW5zIGlsbGVnYWwKKyAgICAgICAgICAgICAgICAvLyBjaGFyYWN0ZXJzLCBidXQg
d2UgZmlsdGVyIHRoZW0gb3V0IGFib3ZlLgorICAgICAgICAgICAgICAgIEFTU0VSVChzdWNjZXNz
KTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgY2hhcmFjdGVycyA9IFVURjhFbmNvZGluZygpLmRl
Y29kZShiaW5hcnlWYWx1ZS5kYXRhKCksIGJpbmFyeVZhbHVlLnNpemUoKSk7CisgICAgICAgICAg
ICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGNoYXJhY3RlcnMubGVuZ3RoKCk7ICsraSkg
eworICAgICAgICAgICAgICAgICAgICBVQ2hhciBjaGFyYWN0ZXIgPSBjaGFyYWN0ZXJzW2ldOwor
ICAgICAgICAgICAgICAgICAgICBpZiAoIWNoYXJhY3RlcikKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGNoYXJhY3RlciA9IDB4RkZGRDsKKyAgICAgICAgICAgICAgICAgICAgZGVjb2RlZEVudGl0
eS5hcHBlbmQoY2hhcmFjdGVyKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB1bmNvbnN1bWVDaGFyYWN0
ZXJzKHNvdXJjZSwgY29uc3VtZWRDaGFyYWN0ZXJzKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgfQogICAgICAgICBjYXNlIE5hbWVkOiB7CiAgICAgICAgICAgICBIVE1MRW50
aXR5U2VhcmNoIGVudGl0eVNlYXJjaDsKICAgICAgICAgICAgIHdoaWxlICghc291cmNlLmlzRW1w
dHkoKSkgewpAQCAtMTk0LDEyICsyNTYsMTIgQEAgdW5zaWduZWQgY29uc3VtZUhUTUxFbnRpdHko
U2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIGJvb2wmIG5vdEVub3VnaENoYXJhY3RlcnMsIFUKICAg
ICAgICAgICAgICAgICAvLyBXZSBjYW4ndCBhbiBlbnRpdHkgYmVjYXVzZSB0aGVyZSBtaWdodCBi
ZSBhIGxvbmdlciBlbnRpdHkKICAgICAgICAgICAgICAgICAvLyB0aGF0IHdlIGNvdWxkIG1hdGNo
IGlmIHdlIGhhZCBtb3JlIGRhdGEuCiAgICAgICAgICAgICAgICAgdW5jb25zdW1lQ2hhcmFjdGVy
cyhzb3VyY2UsIGNvbnN1bWVkQ2hhcmFjdGVycyk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIDA7
CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgfQogICAgICAgICAg
ICAgaWYgKCFlbnRpdHlTZWFyY2gubW9zdFJlY2VudE1hdGNoKCkpIHsKICAgICAgICAgICAgICAg
ICBBU1NFUlQoIWVudGl0eVNlYXJjaC5jdXJyZW50VmFsdWUoKSk7CiAgICAgICAgICAgICAgICAg
dW5jb25zdW1lQ2hhcmFjdGVycyhzb3VyY2UsIGNvbnN1bWVkQ2hhcmFjdGVycyk7Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAg
ICAgICAgfQogICAgICAgICAgICAgaWYgKGVudGl0eVNlYXJjaC5tb3N0UmVjZW50TWF0Y2goKS0+
bGVuZ3RoICE9IGVudGl0eVNlYXJjaC5jdXJyZW50TGVuZ3RoKCkpIHsKICAgICAgICAgICAgICAg
ICAvLyBXZSd2ZSBjb25zdW1lZCB0b28gbWFueSBjaGFyYWN0ZXJzLiAgV2UgbmVlZCB0byB3YWxr
IHRoZQpAQCAtMjE4LDEyICsyODAsMTMgQEAgdW5zaWduZWQgY29uc3VtZUhUTUxFbnRpdHkoU2Vn
bWVudGVkU3RyaW5nJiBzb3VyY2UsIGJvb2wmIG5vdEVub3VnaENoYXJhY3RlcnMsIFUKICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgY2MgPSAqc291cmNlOwogICAgICAgICAgICAg
fQotICAgICAgICAgICAgaWYgKGVudGl0eVNlYXJjaC5tb3N0UmVjZW50TWF0Y2goKS0+bGFzdENo
YXJhY3RlcigpID09ICc7JykKLSAgICAgICAgICAgICAgICByZXR1cm4gZW50aXR5U2VhcmNoLm1v
c3RSZWNlbnRNYXRjaCgpLT52YWx1ZTsKLSAgICAgICAgICAgIGlmICghYWRkaXRpb25hbEFsbG93
ZWRDaGFyYWN0ZXIgfHwgIShpc0FscGhhTnVtZXJpYyhjYykgfHwgY2MgPT0gJz0nKSkKLSAgICAg
ICAgICAgICAgICByZXR1cm4gZW50aXR5U2VhcmNoLm1vc3RSZWNlbnRNYXRjaCgpLT52YWx1ZTsK
KyAgICAgICAgICAgIGlmIChlbnRpdHlTZWFyY2gubW9zdFJlY2VudE1hdGNoKCktPmxhc3RDaGFy
YWN0ZXIoKSA9PSAnOycKKyAgICAgICAgICAgICAgICB8fCAhYWRkaXRpb25hbEFsbG93ZWRDaGFy
YWN0ZXIKKyAgICAgICAgICAgICAgICB8fCAhKGlzQWxwaGFOdW1lcmljKGNjKSB8fCBjYyA9PSAn
PScpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnZlcnRUb0NoYXJhY3RlcnMoZW50aXR5
U2VhcmNoLm1vc3RSZWNlbnRNYXRjaCgpLT52YWx1ZSwgZGVjb2RlZEVudGl0eSk7CisgICAgICAg
ICAgICB9CiAgICAgICAgICAgICB1bmNvbnN1bWVDaGFyYWN0ZXJzKHNvdXJjZSwgY29uc3VtZWRD
aGFyYWN0ZXJzKTsKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgY29uc3VtZWRDaGFyYWN0ZXJzLmFw
cGVuZChjYyk7CkBAIC0yMzIsNyArMjk1LDcgQEAgdW5zaWduZWQgY29uc3VtZUhUTUxFbnRpdHko
U2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIGJvb2wmIG5vdEVub3VnaENoYXJhY3RlcnMsIFUKICAg
ICBBU1NFUlQoc291cmNlLmlzRW1wdHkoKSk7CiAgICAgbm90RW5vdWdoQ2hhcmFjdGVycyA9IHRy
dWU7CiAgICAgdW5jb25zdW1lQ2hhcmFjdGVycyhzb3VyY2UsIGNvbnN1bWVkQ2hhcmFjdGVycyk7
Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiBVQ2hhciBkZWNvZGVOYW1l
ZEVudGl0eShjb25zdCBjaGFyKiBuYW1lKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxF
bnRpdHlQYXJzZXIuaCBiL1dlYkNvcmUvaHRtbC9IVE1MRW50aXR5UGFyc2VyLmgKaW5kZXggMTA1
OWIyNDk1YTgwZTgwMDY4NzZjZTYxMzk1YWY4NzU2NzhkYjA5My4uYWQyNmM1YzFkMzFiNzI3ZjFj
OGZmNmIyNDM2NGVmN2M4NTNjOTE1OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxFbnRp
dHlQYXJzZXIuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEVudGl0eVBhcnNlci5oCkBAIC0zMSw3
ICszMSw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdW5zaWduZWQgY29uc3VtZUhUTUxF
bnRpdHkoU2VnbWVudGVkU3RyaW5nJiwgYm9vbCYgbm90RW5vdWdoQ2hhcmFjdGVycywgVUNoYXIg
YWRkaXRpb25hbEFsbG93ZWRDaGFyYWN0ZXIgPSAnXDAnKTsKK2Jvb2wgY29uc3VtZUhUTUxFbnRp
dHkoU2VnbWVudGVkU3RyaW5nJiwgVmVjdG9yPFVDaGFyPiYgZGVjb2RlZEVudGl0eSwgYm9vbCYg
bm90RW5vdWdoQ2hhcmFjdGVycywgVUNoYXIgYWRkaXRpb25hbEFsbG93ZWRDaGFyYWN0ZXIgPSAn
XDAnKTsKIAogLy8gVXNlZCBieSB0aGUgWE1MIHBhcnNlci4gIE5vdCBzdWl0YWJsZSBmb3IgdXNl
IGluIEhUTUwgcGFyc2luZy4gIFVzZSBjb25zdW1lSFRNTEVudGl0eSBpbnN0ZWFkLgogVUNoYXIg
ZGVjb2RlTmFtZWRFbnRpdHkoY29uc3QgY2hhciopOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1s
L0hUTUxUb2tlbml6ZXIuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxUb2tlbml6ZXIuY3BwCmluZGV4
IGExODcwMWE5YzMxYmYyZWI0NDI2M2JhMjE1NmUyZjE1YzE3ODhkODMuLmM5MTFjZDRhYTI3YTk0
ODIwMjI2YjdlMjE4ZTM2ZjY3MjQ5YTJkODMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1M
VG9rZW5pemVyLmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTFRva2VuaXplci5jcHAKQEAgLTEx
OSwxMyArMTE5LDE4IEBAIHZvaWQgSFRNTFRva2VuaXplcjo6cmVzZXQoKQogaW5saW5lIGJvb2wg
SFRNTFRva2VuaXplcjo6cHJvY2Vzc0VudGl0eShTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSkKIHsK
ICAgICBib29sIG5vdEVub3VnaENoYXJhY3RlcnMgPSBmYWxzZTsKLSAgICB1bnNpZ25lZCB2YWx1
ZSA9IGNvbnN1bWVIVE1MRW50aXR5KHNvdXJjZSwgbm90RW5vdWdoQ2hhcmFjdGVycyk7CisgICAg
VmVjdG9yPFVDaGFyPiBkZWNvZGVkRW50aXR5OworICAgIGJvb2wgc3VjY2VzcyA9IGNvbnN1bWVI
VE1MRW50aXR5KHNvdXJjZSwgZGVjb2RlZEVudGl0eSwgbm90RW5vdWdoQ2hhcmFjdGVycyk7CiAg
ICAgaWYgKG5vdEVub3VnaENoYXJhY3RlcnMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBp
ZiAoIXZhbHVlKQorICAgIGlmICghc3VjY2VzcykgeworICAgICAgICBBU1NFUlQoZGVjb2RlZEVu
dGl0eS5pc0VtcHR5KCkpOwogICAgICAgICBidWZmZXJDaGFyYWN0ZXIoJyYnKTsKLSAgICBlbHNl
Ci0gICAgICAgIGJ1ZmZlckNvZGVQb2ludCh2YWx1ZSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAg
VmVjdG9yPFVDaGFyPjo6Y29uc3RfaXRlcmF0b3IgaXRlciA9IGRlY29kZWRFbnRpdHkuYmVnaW4o
KTsKKyAgICAgICAgZm9yICg7IGl0ZXIgIT0gZGVjb2RlZEVudGl0eS5lbmQoKTsgKytpdGVyKQor
ICAgICAgICAgICAgYnVmZmVyQ2hhcmFjdGVyKCppdGVyKTsKKyAgICB9CiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKQEAgLTEwMjcsMTYgKzEwMzIsMTcgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0
VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAKICAgICBC
RUdJTl9TVEFURShDaGFyYWN0ZXJSZWZlcmVuY2VJbkF0dHJpYnV0ZVZhbHVlU3RhdGUpIHsKICAg
ICAgICAgYm9vbCBub3RFbm91Z2hDaGFyYWN0ZXJzID0gZmFsc2U7Ci0gICAgICAgIHVuc2lnbmVk
IHZhbHVlID0gY29uc3VtZUhUTUxFbnRpdHkoc291cmNlLCBub3RFbm91Z2hDaGFyYWN0ZXJzLCBt
X2FkZGl0aW9uYWxBbGxvd2VkQ2hhcmFjdGVyKTsKKyAgICAgICAgVmVjdG9yPFVDaGFyPiBkZWNv
ZGVkRW50aXR5OworICAgICAgICBib29sIHN1Y2Nlc3MgPSBjb25zdW1lSFRNTEVudGl0eShzb3Vy
Y2UsIGRlY29kZWRFbnRpdHksIG5vdEVub3VnaENoYXJhY3RlcnMsIG1fYWRkaXRpb25hbEFsbG93
ZWRDaGFyYWN0ZXIpOwogICAgICAgICBpZiAobm90RW5vdWdoQ2hhcmFjdGVycykKICAgICAgICAg
ICAgIHJldHVybiBoYXZlQnVmZmVyZWRDaGFyYWN0ZXJUb2tlbigpOwotICAgICAgICBpZiAoIXZh
bHVlKQorICAgICAgICBpZiAoIXN1Y2Nlc3MpIHsKKyAgICAgICAgICAgIEFTU0VSVChkZWNvZGVk
RW50aXR5LmlzRW1wdHkoKSk7CiAgICAgICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb0F0dHJpYnV0
ZVZhbHVlKCcmJyk7Ci0gICAgICAgIGVsc2UgaWYgKHZhbHVlIDwgMHhGRkZGKQotICAgICAgICAg
ICAgbV90b2tlbi0+YXBwZW5kVG9BdHRyaWJ1dGVWYWx1ZSh2YWx1ZSk7Ci0gICAgICAgIGVsc2Ug
ewotICAgICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9BdHRyaWJ1dGVWYWx1ZShVMTZfTEVBRCh2
YWx1ZSkpOwotICAgICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9BdHRyaWJ1dGVWYWx1ZShVMTZf
VFJBSUwodmFsdWUpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFZlY3RvcjxVQ2hh
cj46OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSBkZWNvZGVkRW50aXR5LmJlZ2luKCk7CisgICAgICAg
ICAgICBmb3IgKDsgaXRlciAhPSBkZWNvZGVkRW50aXR5LmVuZCgpOyArK2l0ZXIpCisgICAgICAg
ICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9BdHRyaWJ1dGVWYWx1ZSgqaXRlcik7CiAgICAgICAg
IH0KICAgICAgICAgLy8gV2UncmUgc3VwcG9zZWQgdG8gc3dpdGNoIGJhY2sgdG8gdGhlIGF0dHJp
YnV0ZSB2YWx1ZSBzdGF0ZSB0aGF0CiAgICAgICAgIC8vIHdlIHdlcmUgaW4gd2hlbiB3ZSB3ZXJl
IHN3aXRjaGVkIGludG8gdGhpcyBzdGF0ZS4gIFJhdGhlciB0aGFuCkBAIC0xNjM0LDE2ICsxNjQw
LDYgQEAgaW5saW5lIHZvaWQgSFRNTFRva2VuaXplcjo6YnVmZmVyQ2hhcmFjdGVyKFVDaGFyIGNo
YXJhY3RlcikKICAgICBtX3Rva2VuLT5hcHBlbmRUb0NoYXJhY3RlcihjaGFyYWN0ZXIpOwogfQog
Ci1pbmxpbmUgdm9pZCBIVE1MVG9rZW5pemVyOjpidWZmZXJDb2RlUG9pbnQodW5zaWduZWQgdmFs
dWUpCi17Ci0gICAgaWYgKHZhbHVlIDwgMHhGRkZGKSB7Ci0gICAgICAgIGJ1ZmZlckNoYXJhY3Rl
cih2YWx1ZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgYnVmZmVyQ2hhcmFjdGVyKFUx
Nl9MRUFEKHZhbHVlKSk7Ci0gICAgYnVmZmVyQ2hhcmFjdGVyKFUxNl9UUkFJTCh2YWx1ZSkpOwot
fQotCiBpbmxpbmUgdm9pZCBIVE1MVG9rZW5pemVyOjpwYXJzZUVycm9yKCkKIHsKICAgICBub3RJ
bXBsZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1hTU0F1ZGl0b3IuY3BwIGIv
V2ViQ29yZS9wYWdlL1hTU0F1ZGl0b3IuY3BwCmluZGV4IGZiMGUxYzA5NGZiNzRhZmY3MzA3MjRk
Mjk4NTc2ODE0ZWIyYzliN2QuLjE4OTU4ZmJlNjkyMDhmMzljYzcyZDYyZjhlNGJjZDQ3YjI0MTY0
YmUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9YU1NBdWRpdG9yLmNwcAorKysgYi9XZWJDb3Jl
L3BhZ2UvWFNTQXVkaXRvci5jcHAKQEAgLTI3NywxOSArMjc3LDE4IEBAIFN0cmluZyBYU1NBdWRp
dG9yOjpkZWNvZGVIVE1MRW50aXRpZXMoY29uc3QgU3RyaW5nJiBzdHJpbmcsIGJvb2wgbGVhdmVV
bmRlY29kYWJsCiAgICAgICAgIGlmIChsZWF2ZVVuZGVjb2RhYmxlRW50aXRpZXNVbnRvdWNoZWQp
CiAgICAgICAgICAgICBzb3VyY2VTaGFkb3cgPSBzb3VyY2U7CiAgICAgICAgIGJvb2wgbm90RW5v
dWdoQ2hhcmFjdGVycyA9IGZhbHNlOwotICAgICAgICB1bnNpZ25lZCBlbnRpdHkgPSBjb25zdW1l
SFRNTEVudGl0eShzb3VyY2UsIG5vdEVub3VnaENoYXJhY3RlcnMpOworICAgICAgICBWZWN0b3I8
VUNoYXI+IGRlY29kZWRFbnRpdHk7CisgICAgICAgIGJvb2wgc3VjY2VzcyA9IGNvbnN1bWVIVE1M
RW50aXR5KHNvdXJjZSwgZGVjb2RlZEVudGl0eSwgbm90RW5vdWdoQ2hhcmFjdGVycyk7CiAgICAg
ICAgIC8vIFdlIGlnbm9yZSBub3RFbm91Z2hDaGFyYWN0ZXJzIGJlY2F1c2Ugd2UgbWlnaHQgYXMg
d2VsbCB1c2UgdGhpcyBsb29wCiAgICAgICAgIC8vIHRvIGNvcHkgdGhlIHJlbWFpbmluZyBjaGFy
YWN0ZXJzIGludG8gfHJlc3VsdHwuCi0KLSAgICAgICAgaWYgKGVudGl0eSA+IDB4RkZGRikgewot
ICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChVMTZfTEVBRChlbnRpdHkpKTsKLSAgICAgICAgICAg
IHJlc3VsdC5hcHBlbmQoVTE2X1RSQUlMKGVudGl0eSkpOwotICAgICAgICB9IGVsc2UgaWYgKGVu
dGl0eSAmJiAoIWxlYXZlVW5kZWNvZGFibGVFbnRpdGllc1VudG91Y2hlZCB8fCBlbnRpdHkgIT0g
MHhGRkZEKSl7Ci0gICAgICAgICAgICByZXN1bHQuYXBwZW5kKGVudGl0eSk7Ci0gICAgICAgIH0g
ZWxzZSB7CisgICAgICAgIGlmICghc3VjY2VzcyB8fCAoIWxlYXZlVW5kZWNvZGFibGVFbnRpdGll
c1VudG91Y2hlZCAmJiBkZWNvZGVkRW50aXR5LnNpemUoKSA9PSAxICYmIGRlY29kZWRFbnRpdHlb
MF0gPT0gMHhGRkZEKSkgewogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnJicpOwogICAgICAg
ICAgICAgaWYgKGxlYXZlVW5kZWNvZGFibGVFbnRpdGllc1VudG91Y2hlZCkKICAgICAgICAgICAg
ICAgICBzb3VyY2UgPSBzb3VyY2VTaGFkb3c7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICBWZWN0b3I8VUNoYXI+Ojpjb25zdF9pdGVyYXRvciBpdGVyID0gZGVjb2RlZEVudGl0eS5iZWdp
bigpOworICAgICAgICAgICAgZm9yICg7IGl0ZXIgIT0gZGVjb2RlZEVudGl0eS5lbmQoKTsgKytp
dGVyKQorICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoKml0ZXIpOwogICAgICAgICB9CiAg
ICAgfQogICAgIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65499</attachid>
            <date>2010-08-25 16:40:38 -0700</date>
            <delta_ts>2010-09-06 03:20:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44641-20100825164036.patch</filename>
            <type>text/plain</type>
            <size>24546</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjNTY1YTRmMWM2YjFhZTA2ZjY0MGI2MjVmYmQyNDAwZWU3N2Q4OWQ5Li40MTY1MGI2
NzdjMTc1MmI3OWQyNjVmODEzMDg4YTRjOWUwNWQ4MGFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAK
KzIwMTAtMDgtMjUgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgQmFzZTY0IEhU
TUwgZW50aXRpZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQ0NjQxCisKKyAgICAgICAgVGVzdCBjb3ZlcmFnZSBmb3IgYmFzZTY0IGVudGl0aWVzLgor
CisgICAgICAgICogZmFzdC90b2tlbml6ZXIvYmFzZTY0LWVudGl0aWVzLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC90b2tlbml6ZXIvYmFzZTY0LWVudGl0aWVzLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9qYXZhc2NyaXB0
LWxpbmstSFRNTC1lbnRpdGllcy1udWxsLWNoYXItZXhwZWN0ZWQudHh0OgorICAgICAgICAgICAg
LSBXZSBub3cgYmxvY2sgdGhpcyBhdHRhY2suCisKIDIwMTAtMDgtMjUgIEFuZHJlYXMgS2xpbmcg
IDxhbmRyZWFzLmtsaW5nQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBcml5YSBI
aWRheWF0LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90b2tlbml6ZXIvYmFzZTY0LWVu
dGl0aWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvdG9rZW5pemVyL2Jhc2U2NC1l
bnRpdGllcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmNjMTVkZWUzMzIwM2Q4NTQyZGU2MGY1
NGE4ZmI1YjliOTdjNmVhYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdG9r
ZW5pemVyL2Jhc2U2NC1lbnRpdGllcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMDkgQEAKK3wg
PGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c2NyaXB0PgorfCAgICAgICBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9kdW1wLWFzLW1hcmt1cC5qcyIKK3wgICAgICIKKyIKK3wgICA8Ym9keT4KK3wgICAg
ICImU0ZSTlRDQThaR2wyUGlBaUlHOXVaWEp5YjNJOUoyRnNaWEowS0M5WVUxTXZLU2NnNXBhdzZa
ZTc1NzJSNmFHMTQ0Q0E2TFMwNVpDbjQ0Q0E1NStsNllHVDQ0Q0FUVkF6NVp1KzU0bUg2S2VHSU9t
aWtlT0FnT1djc09XYnZpRWhJU0VrVlNZb0tWRXFKaU1wVVVnNktRPTsKKyZTRlJOVENBOFpHbDJQ
aUFpSUc5dVpYSnliM0k5SjJGc1pYSjBLQzlZVTFNdktTY2c1cGF3NlplNzU3MlI2YUcxCis0NENB
NkxTMDVaQ240NENBNTUrbDZZR1Q0NENBVFZBejVadSs1NG1INktlR0lPbWlrZU9BZ09XY3NPV2J2
aUVoCitJU0VrVlNZb0tWRXFKaU1wVVVnNktRPT07CismI1NGUk5UQ0E4WkdsMlBpQWlJRzl1WlhK
eWIzSTlKMkZzWlhKMEtDOVlVMU12S1NjZzVwYXc2WmU3NTcyUjZhRzE0NENBNkxTMDVaQ240NENB
NTUrbDZZR1Q0NENBVFZBejVadSs1NG1INktlR0lPbWlrZU9BZ09XY3NPV2J2aUVoSVNFa1ZTWW9L
VkVxSmlNcFVVZzZLUT07CismI1NGUk5UQ0E4WkdsMlBpQWlJRzl1WlhKeWIzSTlKMkZzWlhKMEtD
OVlVMU12S1NjZzVwYXc2WmU3NTcyUjZhRzEKKzQ0Q0E2TFMwNVpDbjQ0Q0E1NStsNllHVDQ0Q0FU
VkF6NVp1KzU0bUg2S2VHSU9taWtlT0FnT1djc09XYnZpRWgKK0lTRWtWU1lvS1ZFcUppTXBVVWc2
S1E9PTsKK0hUTUwgPGRpdj4gIiBvbmVycm9yPSdhbGVydCgvWFNTLyknIOaWsOmXu+e9kemhteOA
gOi0tOWQp+OAgOefpemBk+OAgE1QM+WbvueJh+inhiDpopHjgIDlnLDlm74hISEhJFUmKClRKiYj
KVFIOikKKyYlU0ZSTlRDQThaR2wyUGlBaUlHOXVaWEp5YjNJOUoyRnNaWEowS0M5WVUxTXZLU2Nn
NXBhdzZaZTc1NzJSNmFHMQorNDRDQTZMUzA1WkNuNDRDQTU1K2w2WUdUNDRDQVRWQXo1WnUrNTRt
SDZLZUdJT21pa2VPQWdPV2NzT1didmlFaAorSVNFa1ZTWW9LVkVxSmlNcFVVZzZLUT09OworJiVT
RlJOVENBOFpHbDJQaUFpSUc5dVpYSnliM0k5SjJGc1pYSjBLQzlZVTFNdktTY2c1cGF3NlplNzU3
MlI2YUcxNDRDQTZMUzA1WkNuNDRDQTU1K2w2WUdUNDRDQVRWQXo1WnUrNTRtSDZLZUdJT21pa2VP
QWdPV2NzT1didmlFaElTRWtWU1lvS1ZFcUppTXBVVWc2S1E9CismJVNGUk5UQ0E4WkdsMlBpQWlJ
Rzl1WlhKeWIzSTlKMkZzWlhKMEtDOVlVMU12S1NjZzVwYXc2WmU3NTcyUjZhRzEKKzQ0Q0E2TFMw
NVpDbjQ0Q0E1NStsNllHVDQ0Q0FUVkF6NVp1KzU0bUg2S2VHSU9taWtlT0FnT1djc09XYnZpRWgK
K0lTRWtWU1lvS1ZFcUppTXBVVWc2S1E9CisiCit8ICAgICA8aW1nPgorfCAgICAgICBhbHQ9IkhU
TUwgPGRpdj4gIiBvbmVycm9yPSdhbGVydCgvWFNTLyknIOaWsOmXu+e9kemhteOAgOi0tOWQp+OA
gOefpemBk+OAgE1QM+WbvueJh+inhiDpopHjgIDlnLDlm74hISEhJFUmKClRKiYjKVFIOikiCit8
ICAgICAgIHNyYz0iYWJvdXQ6YmxhbmsiCit8ICAgICAiCisiCit8ICAgICA8aW1nPgorfCAgICAg
ICBhbHQ9IkhUTUwgPGRpdj4gIiBvbmVycm9yPSdhbGVydCgvWFNTLyknIOaWsOmXu+e9kemhteOA
gOi0tOWQp+OAgOefpemBk+OAgE1QM+WbvueJh+inhiDpopHjgIDlnLDlm74hISEhJFUmKClRKiYj
KVFIOikiCit8ICAgICAgIHNyYz0iYWJvdXQ6YmxhbmsiCit8ICAgICAiCisiCit8ICAgICA8aW1n
PgorfCAgICAgICBhbHQ9IkhUTUwgPGRpdj4gIiBvbmVycm9yPSdhbGVydCgvWFNTLyknIOaWsOmX
u+e9kemhteOAgOi0tOWQp+OAgOefpemBk+OAgE1QM+WbvueJh+inhiDpopHjgIDlnLDlm74hISEh
JFUmKClRKiYjKVFIOikiCit8ICAgICAgIHNyYz0iYWJvdXQ6YmxhbmsiCit8ICAgICAiCisiCit8
ICAgICA8aW1nPgorfCAgICAgICAmJXNmcm50Y2E4emdsMnBpYWlpZzl1enhqeWIzaTlqMmZzenhq
MGtjOXl1MW12a3NjZzVwYXc2emU3NTcycjZhZzE0NGNhNmxzMDV6Y240NGNhNTUrbDZ5Z3Q0NGNh
dHZhejV6dSs1NG1oNmtlZ2lvbWlrZW9hZ293Y3Nvd2J2aWVoaXNla3ZzeW9rdmVxamltcHV1ZzZr
cT0iOyIKK3wgICAgICIKK1ZHaHBjeUJwY3lBOGIyNWxQaUFpSnlCb1lYTWdaR2xtWm1WeVpXNTBJ
Q1puZERzZ2NHRmtaR2x1Wnk0dQorJlZHaHBjeUJwY3lBOGIyNWxQaUFpSnlCb1lYTWdaR2xtWm1W
eVpXNTBJQ1puZERzZ2NHRmtaR2x1Wnk0dTsKKyYjVkdocGN5QnBjeUE4YjI1bFBpQWlKeUJvWVhN
Z1pHbG1abVZ5Wlc1MElDWm5kRHNnY0dGa1pHbHVaeTR1OworVGhpcyBpcyA8b25lPiAiJyBoYXMg
ZGlmZmVyZW50ICZndDsgcGFkZGluZy4uCismJVZHaHBjeUJwY3lBOGIyNWxQaUFpSnlCb1lYTWda
R2xtWm1WeVpXNTBJQ1puZERzZ2NHRmtaR2x1Wnk0dQorIgorfCAgICAgPGltZz4KK3wgICAgICAg
YWx0PSJUaGlzIGlzIDxvbmU+ICInIGhhcyBkaWZmZXJlbnQgJmd0OyBwYWRkaW5nLi4iCit8ICAg
ICAgIHNyYz0iYWJvdXQ6YmxhbmsiCit8ICAgICAiCisiCit8ICAgICA8aW1nPgorfCAgICAgICBh
bHQ9IlRoaXMgaXMgPG9uZT4gIicgaGFzIGRpZmZlcmVudCAmZ3Q7IHBhZGRpbmcuLiIKK3wgICAg
ICAgc3JjPSJhYm91dDpibGFuayIKK3wgICAgICIKKyIKK3wgICAgIDxpbWc+Cit8ICAgICAgIGFs
dD0iVGhpcyBpcyA8b25lPiAiJyBoYXMgZGlmZmVyZW50ICZndDsgcGFkZGluZy4uIgorfCAgICAg
ICBzcmM9ImFib3V0OmJsYW5rIgorfCAgICAgIgorIgorfCAgICAgPGltZz4KK3wgICAgICAgJiV2
Z2hwY3licGN5YThiMjVscGlhaWp5Ym95eG1nemdsbXptdnl6dzUwaWN6bmRkc2djZ2ZremdsdXp5
NHU7PSIiCit8ICAgICAiCisiCit8ICAgICA8ZGl2PgorfCAgICAgICAiRnVuIHdpdGggZW1wdHl2
YWx1ZXMiCit8ICAgICAiCisiCit8ICAgICA8ZGl2PgorfCAgICAgICAiRnVuIHdpdGggZW1wdHkm
JXZhbHVlcyIKK3wgICAgICIKKyIKK3wgICAgIDxkaXY+Cit8ICAgICAgICJGdW4gd2l0aCBlbXB0
eSY7dmFsdWVzIgorfCAgICAgIgorIgorfCAgICAgPGRpdj4KK3wgICAgICAgIkZ1biB3aXRoIGVt
cHR5JnZhbHVlcyIKK3wgICAgICIKKyIKK3wgICAgIDxkaXY+Cit8ICAgICAgICJGdW4gd2l0aCBl
bXB0eSU7dmFsdWVzIgorfCAgICAgIgorIgorfCAgICAgPGRpdj4KK3wgICAgICAgIkZ1biB3aXRo
IGVtcHR5JXZhbHVlcyIKK3wgICAgICIKKyIKK3wgICAgIDxkaXY+Cit8ICAgICAgICJGdW4gd2l0
aCBib3JrZWQmJWFhPWJiO3ZhbHVlcyIKK3wgICAgICIKKyIKK3wgICAgIDxkaXY+Cit8ICAgICAg
ICJGdW4gd2l0aCBib3JrZWRp77+977+9bXZhbHVlcyIKK3wgICAgICIKKyIKK3wgICAgIDxkaXY+
Cit8ICAgICAgICJGdW4gd2l0aCBib3JrZWRp77+977+9dmFsdWVzIgorfCAgICAgIgorIgorfCAg
ICAgPGRpdj4KK3wgICAgICAgIu+/vVBORw0KKxoKK++/ve+/ve+/vQ1JSERS77+977+977+9EO+/
ve+/ve+/vRABA++/ve+/ve+/vSU9bSLvv73vv73vv70GUExURe+/ve+/ve+/ve+/ve+/ve+/ve+/
vdmf77+977+977+977+9M0lEQVR477+9Y++/ve+/ve+/ve+/ve+/vV/vv73vv73vv70ZDu+/vTPv
v70/77+9cH8y77+977+977+9DDfvv70Z77+9FO+/vdC977+9DO+/vVLvv70MD++/ve+/ve+/vX/v
v71R77+9Fyjvv71d77+9UO+/ve+/ve+/ve+/vUlFTkTvv71CYO+/vSIKK3wgICAgICIKKyIKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdG9rZW5pemVyL2Jhc2U2NC1lbnRpdGllcy5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC90b2tlbml6ZXIvYmFzZTY0LWVudGl0aWVzLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNTg5MTY1ZDJlMDYzMWMzNDM1YTA0Y2FkZGQ0NjZmZTIyYWFkZGRhNAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdG9rZW5pemVyL2Jhc2U2NC1lbnRpdGllcy5odG1s
CkBAIC0wLDAgKzEsNDYgQEAKKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZHVtcC1hcy1t
YXJrdXAuanMiPjwvc2NyaXB0PgorJlNGUk5UQ0E4WkdsMlBpQWlJRzl1WlhKeWIzSTlKMkZzWlhK
MEtDOVlVMU12S1NjZzVwYXc2WmU3NTcyUjZhRzE0NENBNkxTMDVaQ240NENBNTUrbDZZR1Q0NENB
VFZBejVadSs1NG1INktlR0lPbWlrZU9BZ09XY3NPV2J2aUVoSVNFa1ZTWW9LVkVxSmlNcFVVZzZL
UT07CismU0ZSTlRDQThaR2wyUGlBaUlHOXVaWEp5YjNJOUoyRnNaWEowS0M5WVUxTXZLU2NnNXBh
dzZaZTc1NzJSNmFHMQorNDRDQTZMUzA1WkNuNDRDQTU1K2w2WUdUNDRDQVRWQXo1WnUrNTRtSDZL
ZUdJT21pa2VPQWdPV2NzT1didmlFaAorSVNFa1ZTWW9LVkVxSmlNcFVVZzZLUT09OworJiNTRlJO
VENBOFpHbDJQaUFpSUc5dVpYSnliM0k5SjJGc1pYSjBLQzlZVTFNdktTY2c1cGF3NlplNzU3MlI2
YUcxNDRDQTZMUzA1WkNuNDRDQTU1K2w2WUdUNDRDQVRWQXo1WnUrNTRtSDZLZUdJT21pa2VPQWdP
V2NzT1didmlFaElTRWtWU1lvS1ZFcUppTXBVVWc2S1E9OworJiNTRlJOVENBOFpHbDJQaUFpSUc5
dVpYSnliM0k5SjJGc1pYSjBLQzlZVTFNdktTY2c1cGF3NlplNzU3MlI2YUcxCis0NENBNkxTMDVa
Q240NENBNTUrbDZZR1Q0NENBVFZBejVadSs1NG1INktlR0lPbWlrZU9BZ09XY3NPV2J2aUVoCitJ
U0VrVlNZb0tWRXFKaU1wVVVnNktRPT07CismJVNGUk5UQ0E4WkdsMlBpQWlJRzl1WlhKeWIzSTlK
MkZzWlhKMEtDOVlVMU12S1NjZzVwYXc2WmU3NTcyUjZhRzE0NENBNkxTMDVaQ240NENBNTUrbDZZ
R1Q0NENBVFZBejVadSs1NG1INktlR0lPbWlrZU9BZ09XY3NPV2J2aUVoSVNFa1ZTWW9LVkVxSmlN
cFVVZzZLUT07CismJVNGUk5UQ0E4WkdsMlBpQWlJRzl1WlhKeWIzSTlKMkZzWlhKMEtDOVlVMU12
S1NjZzVwYXc2WmU3NTcyUjZhRzEKKzQ0Q0E2TFMwNVpDbjQ0Q0E1NStsNllHVDQ0Q0FUVkF6NVp1
KzU0bUg2S2VHSU9taWtlT0FnT1djc09XYnZpRWgKK0lTRWtWU1lvS1ZFcUppTXBVVWc2S1E9PTsK
KyYlU0ZSTlRDQThaR2wyUGlBaUlHOXVaWEp5YjNJOUoyRnNaWEowS0M5WVUxTXZLU2NnNXBhdzZa
ZTc1NzJSNmFHMTQ0Q0E2TFMwNVpDbjQ0Q0E1NStsNllHVDQ0Q0FUVkF6NVp1KzU0bUg2S2VHSU9t
aWtlT0FnT1djc09XYnZpRWhJU0VrVlNZb0tWRXFKaU1wVVVnNktRPQorJiVTRlJOVENBOFpHbDJQ
aUFpSUc5dVpYSnliM0k5SjJGc1pYSjBLQzlZVTFNdktTY2c1cGF3NlplNzU3MlI2YUcxCis0NENB
NkxTMDVaQ240NENBNTUrbDZZR1Q0NENBVFZBejVadSs1NG1INktlR0lPbWlrZU9BZ09XY3NPV2J2
aUVoCitJU0VrVlNZb0tWRXFKaU1wVVVnNktRPQorPGltZyBhbHQ9IiYlU0ZSTlRDQThaR2wyUGlB
aUlHOXVaWEp5YjNJOUoyRnNaWEowS0M5WVUxTXZLU2NnNXBhdzZaZTc1NzJSNmFHMTQ0Q0E2TFMw
NVpDbjQ0Q0E1NStsNllHVDQ0Q0FUVkF6NVp1KzU0bUg2S2VHSU9taWtlT0FnT1djc09XYnZpRWhJ
U0VrVlNZb0tWRXFKaU1wVVVnNktRPTsiCisgICAgIHNyYz0iYWJvdXQ6YmxhbmsiPgorPGltZyBh
bHQ9JiVTRlJOVENBOFpHbDJQaUFpSUc5dVpYSnliM0k5SjJGc1pYSjBLQzlZVTFNdktTY2c1cGF3
NlplNzU3MlI2YUcxNDRDQTZMUzA1WkNuNDRDQTU1K2w2WUdUNDRDQVRWQXo1WnUrNTRtSDZLZUdJ
T21pa2VPQWdPV2NzT1didmlFaElTRWtWU1lvS1ZFcUppTXBVVWc2S1E9OworICAgICBzcmM9ImFi
b3V0OmJsYW5rIj4KKzxpbWcgYWx0PScmJVNGUk5UQ0E4WkdsMlBpQWlJRzl1WlhKeWIzSTlKMkZz
WlhKMEtDOVlVMU12S1NjZzVwYXc2WmU3NTcyUjZhRzE0NENBNkxTMDVaQ240NENBNTUrbDZZR1Q0
NENBVFZBejVadSs1NG1INktlR0lPbWlrZU9BZ09XY3NPV2J2aUVoSVNFa1ZTWW9LVkVxSmlNcFVV
ZzZLUT07JworICAgICBzcmM9ImFib3V0OmJsYW5rIj4KKzxpbWcgJiVTRlJOVENBOFpHbDJQaUFp
SUc5dVpYSnliM0k5SjJGc1pYSjBLQzlZVTFNdktTY2c1cGF3NlplNzU3MlI2YUcxNDRDQTZMUzA1
WkNuNDRDQTU1K2w2WUdUNDRDQVRWQXo1WnUrNTRtSDZLZUdJT21pa2VPQWdPV2NzT1didmlFaElT
RWtWU1lvS1ZFcUppTXBVVWc2S1E9OyA+CitWR2hwY3lCcGN5QThiMjVsUGlBaUp5Qm9ZWE1nWkds
bVptVnlaVzUwSUNabmREc2djR0ZrWkdsdVp5NHUKKyZWR2hwY3lCcGN5QThiMjVsUGlBaUp5Qm9Z
WE1nWkdsbVptVnlaVzUwSUNabmREc2djR0ZrWkdsdVp5NHU7CismI1ZHaHBjeUJwY3lBOGIyNWxQ
aUFpSnlCb1lYTWdaR2xtWm1WeVpXNTBJQ1puZERzZ2NHRmtaR2x1Wnk0dTsKKyYlVkdocGN5QnBj
eUE4YjI1bFBpQWlKeUJvWVhNZ1pHbG1abVZ5Wlc1MElDWm5kRHNnY0dGa1pHbHVaeTR1OworJiVW
R2hwY3lCcGN5QThiMjVsUGlBaUp5Qm9ZWE1nWkdsbVptVnlaVzUwSUNabmREc2djR0ZrWkdsdVp5
NHUKKzxpbWcgYWx0PSImJVZHaHBjeUJwY3lBOGIyNWxQaUFpSnlCb1lYTWdaR2xtWm1WeVpXNTBJ
Q1puZERzZ2NHRmtaR2x1Wnk0dTsiCisgICAgIHNyYz0iYWJvdXQ6YmxhbmsiPgorPGltZyBhbHQ9
JiVWR2hwY3lCcGN5QThiMjVsUGlBaUp5Qm9ZWE1nWkdsbVptVnlaVzUwSUNabmREc2djR0ZrWkds
dVp5NHU7CisgICAgIHNyYz0iYWJvdXQ6YmxhbmsiPgorPGltZyBhbHQ9JyYlVkdocGN5QnBjeUE4
YjI1bFBpQWlKeUJvWVhNZ1pHbG1abVZ5Wlc1MElDWm5kRHNnY0dGa1pHbHVaeTR1OycKKyAgICAg
c3JjPSJhYm91dDpibGFuayI+Cis8aW1nICYlVkdocGN5QnBjeUE4YjI1bFBpQWlKeUJvWVhNZ1pH
bG1abVZ5Wlc1MElDWm5kRHNnY0dGa1pHbHVaeTR1OyA+Cis8ZGl2PkZ1biB3aXRoIGVtcHR5JiU7
dmFsdWVzPC9kaXY+Cis8ZGl2PkZ1biB3aXRoIGVtcHR5JiV2YWx1ZXM8L2Rpdj4KKzxkaXY+RnVu
IHdpdGggZW1wdHkmO3ZhbHVlczwvZGl2PgorPGRpdj5GdW4gd2l0aCBlbXB0eSZ2YWx1ZXM8L2Rp
dj4KKzxkaXY+RnVuIHdpdGggZW1wdHklO3ZhbHVlczwvZGl2PgorPGRpdj5GdW4gd2l0aCBlbXB0
eSV2YWx1ZXM8L2Rpdj4KKzxkaXY+RnVuIHdpdGggYm9ya2VkJiVhYT1iYjt2YWx1ZXM8L2Rpdj4K
KzxkaXY+RnVuIHdpdGggYm9ya2VkJiVhYT09YmI7dmFsdWVzPC9kaXY+Cis8ZGl2PkZ1biB3aXRo
IGJvcmtlZCYlYWFiYj09PTt2YWx1ZXM8L2Rpdj4KKzxkaXY+JiVpVkJPUncwS0dnb0FBQUFOU1Vo
RVVnQUFBQkFBQUFBUUFRTUFBQUFsUFcwaUFBQUFCbEJNVkVVQUFBRC8vLytsMlovZEFBQUFNMGxF
UVZSNG5HUDQvNS9oLzErRy81OFpEckF6M0QvTWNIOHl3ODNORERlTkdlNFVnOUM5end6M2dWTE1E
QS9BNlA5L0FGR0dGeWpPWFp0UUFBQUFBRWxGVGtTdVFtQ0M7PC9kaXY+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvamF2YXNjcmlwdC1saW5r
LUhUTUwtZW50aXRpZXMtbnVsbC1jaGFyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9qYXZhc2NyaXB0LWxpbmstSFRNTC1lbnRpdGllcy1u
dWxsLWNoYXItZXhwZWN0ZWQudHh0CmluZGV4IGQyMzQ5YzRiZGE2NGRhOTA1NDkzMTQ3NGFiZWQ4
OGI1MmFkMTRlYzQuLjUxM2UyZjhkMDNmNzQyMDNhMzVlMGJlZWQxZmQ0M2I0MzI5MmRjMmYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9qYXZh
c2NyaXB0LWxpbmstSFRNTC1lbnRpdGllcy1udWxsLWNoYXItZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9qYXZhc2NyaXB0LWxpbmst
SFRNTC1lbnRpdGllcy1udWxsLWNoYXItZXhwZWN0ZWQudHh0CkBAIC0xLDIgKzEsMyBAQAotQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDE6IFN5bnRheEVycm9yOiBQYXJzZSBlcnJvcgorQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDE6IFJlZnVzZWQgdG8gZXhlY3V0ZSBhIEphdmFTY3JpcHQgc2NyaXB0LiBT
b3VyY2UgY29kZSBvZiBzY3JpcHQgZm91bmQgd2l0aGluIHJlcXVlc3QuCisKIApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjZDE0MWRlNzky
MWZlMjIyNjA4OWEzNTFlZTI3NTMxOWM0NDQ3YTVhLi5jNWNiODBlZDJlMzg1YWVjMDUzMDNlMzY5
MmVlYjQ2ZDFlZTllZGU0IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEwLTA4LTI1ICBBZGFtIEJhcnRoICA8
YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgSW1wbGVtZW50IEJhc2U2NCBIVE1MIGVudGl0aWVzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDY0MQorCisgICAgICAgIEF1dGhv
cnMgY2FuIHVzZSBiYXNlNjQgZW50aXRpZXMgdG8gaGVscCBwcm90ZWN0IGFnYWluc3QgY3Jvc3Mt
c2l0ZQorICAgICAgICBzY3JpcHRpbmcgYnkgZW5jb2RpbmcgdW50cnVzdGVkIGNvbnRlbnQgaW4g
YmFzZTY0LiAgRm9yIG1vcmUgZGV0YWlscywKKyAgICAgICAgc2VlIHRoaXMgdGhyZWFkOgorCisg
ICAgICAgIGh0dHA6Ly9saXN0cy53aGF0d2cub3JnL2h0ZGlnLmNnaS93aGF0d2ctd2hhdHdnLm9y
Zy8yMDEwLUF1Z3VzdC8wMjgxNTQuaHRtbAorCisgICAgICAgIFRoaXMgZmVhdHVyZSBpcyBub3Qg
cGFydCBwYXJ0IG9mIEhUTUw1IHlldCwgYnV0IHRoZSBlZGl0b3Igb2YgdGhlIHNwZWMKKyAgICAg
ICAgZW5jb3VyYWdlcyB1cyB0byBleHBlcmltZW50IHdpdGggdGhpcyBmZWF0dXJlLgorCisgICAg
ICAgIFRlc3Q6IGZhc3QvdG9rZW5pemVyL2Jhc2U2NC1lbnRpdGllcy5odG1sCisKKyAgICAgICAg
KiBodG1sL0hUTUxFbnRpdHlQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6KToKKyAgICAg
ICAgKFdlYkNvcmU6OmNvbnN1bWVIVE1MRW50aXR5KToKKyAgICAgICAgKiBodG1sL0hUTUxFbnRp
dHlQYXJzZXIuaDoKKyAgICAgICAgKiBodG1sL0hUTUxUb2tlbml6ZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTFRva2VuaXplcjo6cHJvY2Vzc0VudGl0eSk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4pOgorICAgICAgICAqIHBhZ2UvWFNTQXVkaXRvci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpYU1NBdWRpdG9yOjpkZWNvZGVIVE1MRW50aXRpZXMpOgor
CiAyMDEwLTA4LTI1ICBBbmRyZWFzIEtsaW5nICA8YW5kcmVhcy5rbGluZ0Bub2tpYS5jb20+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgQXJpeWEgSGlkYXlhdC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aHRtbC9IVE1MRW50aXR5UGFyc2VyLmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MRW50aXR5UGFyc2Vy
LmNwcAppbmRleCBmNjc1ODQ0YWRlMDRlOWE4ZjllNzU0YTc1MzM0Y2ZlZWJiYTAyY2ZkLi5kMWJj
MTYyODcyYzExZmIzMzVhNjM5YWM1OThhOWQ1MDM5YWI0ZTA4IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2h0bWwvSFRNTEVudGl0eVBhcnNlci5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxFbnRpdHlQ
YXJzZXIuY3BwCkBAIC0yOCw4ICsyOCwxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIkhUTUxFbnRpdHlQYXJzZXIuaCIKIAorI2luY2x1ZGUgIkJhc2U2NC5oIgogI2luY2x1ZGUg
IkhUTUxFbnRpdHlTZWFyY2guaCIKICNpbmNsdWRlICJIVE1MRW50aXR5VGFibGUuaCIKKyNpbmNs
dWRlICJUZXh0RW5jb2RpbmcuaCIKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIHVzaW5nIG5h
bWVzcGFjZSBXVEY7CkBAIC02Miw2ICs2NCwxOSBAQCBpbmxpbmUgdW5zaWduZWQgbGVnYWxFbnRp
dHlGb3IodW5zaWduZWQgdmFsdWUpCiAgICAgcmV0dXJuIHZhbHVlOwogfQogCitpbmxpbmUgYm9v
bCBjb252ZXJ0VG9DaGFyYWN0ZXJzKHVuc2lnbmVkIHZhbHVlLCBWZWN0b3I8VUNoYXI+JiBkZWNv
ZGVkRW50aXR5KQoreworICAgIGlmICh2YWx1ZSA8IDB4RkZGRikgeworICAgICAgICBVQ2hhciBj
aGFyYWN0ZXIgPSBzdGF0aWNfY2FzdDxVQ2hhcj4odmFsdWUpOworICAgICAgICBBU1NFUlQoY2hh
cmFjdGVyID09IHZhbHVlKTsKKyAgICAgICAgZGVjb2RlZEVudGl0eS5hcHBlbmQoY2hhcmFjdGVy
KTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIGRlY29kZWRFbnRpdHkuYXBwZW5k
KFUxNl9MRUFEKHZhbHVlKSk7CisgICAgZGVjb2RlZEVudGl0eS5hcHBlbmQoVTE2X1RSQUlMKHZh
bHVlKSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIGlubGluZSBib29sIGlzSGV4RGlnaXQoVUNo
YXIgY2MpCiB7CiAgICAgcmV0dXJuIChjYyA+PSAnMCcgJiYgY2MgPD0gJzknKSB8fCAoY2MgPj0g
J2EnICYmIGNjIDw9ICdmJykgfHwgKGNjID49ICdBJyAmJiBjYyA8PSAnRicpOwpAQCAtNzIsNiAr
ODcsMTEgQEAgaW5saW5lIGJvb2wgaXNBbHBoYU51bWVyaWMoVUNoYXIgY2MpCiAgICAgcmV0dXJu
IChjYyA+PSAnMCcgJiYgY2MgPD0gJzknKSB8fCAoY2MgPj0gJ2EnICYmIGNjIDw9ICd6JykgfHwg
KGNjID49ICdBJyAmJiBjYyA8PSAnWicpOwogfQogCitpbmxpbmUgYm9vbCBpc0Jhc2U2NENoYXJh
Y3RlcihVQ2hhciBjYykKK3sKKyAgICByZXR1cm4gaXNBbHBoYU51bWVyaWMoY2MpIHx8IGNjID09
ICcrJyB8fCBjYyA9PSAnLycgfHwgY2MgPT0gJz0nOworfQorCiB2b2lkIHVuY29uc3VtZUNoYXJh
Y3RlcnMoU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIGNvbnN0IFZlY3RvcjxVQ2hhciwgMTA+JiBj
b25zdW1lZENoYXJhY3RlcnMpCiB7CiAgICAgaWYgKGNvbnN1bWVkQ2hhcmFjdGVycy5zaXplKCkg
PT0gMSkKQEAgLTg1LDE4ICsxMDUsMjAgQEAgdm9pZCB1bmNvbnN1bWVDaGFyYWN0ZXJzKFNlZ21l
bnRlZFN0cmluZyYgc291cmNlLCBjb25zdCBWZWN0b3I8VUNoYXIsIDEwPiYgY29uc3UKIAogfQog
Ci11bnNpZ25lZCBjb25zdW1lSFRNTEVudGl0eShTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgYm9v
bCYgbm90RW5vdWdoQ2hhcmFjdGVycywgVUNoYXIgYWRkaXRpb25hbEFsbG93ZWRDaGFyYWN0ZXIp
Citib29sIGNvbnN1bWVIVE1MRW50aXR5KFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBWZWN0b3I8
VUNoYXI+JiBkZWNvZGVkRW50aXR5LCBib29sJiBub3RFbm91Z2hDaGFyYWN0ZXJzLCBVQ2hhciBh
ZGRpdGlvbmFsQWxsb3dlZENoYXJhY3RlcikKIHsKICAgICBBU1NFUlQoIWFkZGl0aW9uYWxBbGxv
d2VkQ2hhcmFjdGVyIHx8IGFkZGl0aW9uYWxBbGxvd2VkQ2hhcmFjdGVyID09ICciJyB8fCBhZGRp
dGlvbmFsQWxsb3dlZENoYXJhY3RlciA9PSAnXCcnIHx8IGFkZGl0aW9uYWxBbGxvd2VkQ2hhcmFj
dGVyID09ICc+Jyk7CiAgICAgQVNTRVJUKCFub3RFbm91Z2hDaGFyYWN0ZXJzKTsKKyAgICBBU1NF
UlQoZGVjb2RlZEVudGl0eS5pc0VtcHR5KCkpOwogCiAgICAgZW51bSBFbnRpdHlTdGF0ZSB7CiAg
ICAgICAgIEluaXRpYWwsCi0gICAgICAgIE51bWJlclR5cGUsCisgICAgICAgIE51bWJlciwKICAg
ICAgICAgTWF5YmVIZXhMb3dlckNhc2VYLAogICAgICAgICBNYXliZUhleFVwcGVyQ2FzZVgsCiAg
ICAgICAgIEhleCwKICAgICAgICAgRGVjaW1hbCwKKyAgICAgICAgQmFzZTY0LAogICAgICAgICBO
YW1lZAogICAgIH07CiAgICAgRW50aXR5U3RhdGUgZW50aXR5U3RhdGUgPSBJbml0aWFsOwpAQCAt
MTA4LDIwICsxMzAsMjQgQEAgdW5zaWduZWQgY29uc3VtZUhUTUxFbnRpdHkoU2VnbWVudGVkU3Ry
aW5nJiBzb3VyY2UsIGJvb2wmIG5vdEVub3VnaENoYXJhY3RlcnMsIFUKICAgICAgICAgc3dpdGNo
IChlbnRpdHlTdGF0ZSkgewogICAgICAgICBjYXNlIEluaXRpYWw6IHsKICAgICAgICAgICAgIGlm
IChjYyA9PSAnXHgwOScgfHwgY2MgPT0gJ1x4MEEnIHx8IGNjID09ICdceDBDJyB8fCBjYyA9PSAn
ICcgfHwgY2MgPT0gJzwnIHx8IGNjID09ICcmJykKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsK
KyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBpZiAoYWRkaXRpb25h
bEFsbG93ZWRDaGFyYWN0ZXIgJiYgY2MgPT0gYWRkaXRpb25hbEFsbG93ZWRDaGFyYWN0ZXIpCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgICAgICAgICAgaWYgKGNjID09ICcjJykgewotICAgICAgICAgICAgICAgIGVudGl0eVN0YXRl
ID0gTnVtYmVyVHlwZTsKKyAgICAgICAgICAgICAgICBlbnRpdHlTdGF0ZSA9IE51bWJlcjsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChjYyA9
PSAnJScpIHsKKyAgICAgICAgICAgICAgICBlbnRpdHlTdGF0ZSA9IEJhc2U2NDsKICAgICAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmICgoY2MgPj0gJ2En
ICYmIGNjIDw9ICd6JykgfHwgKGNjID49ICdBJyAmJiBjYyA8PSAnWicpKSB7CiAgICAgICAgICAg
ICAgICAgZW50aXR5U3RhdGUgPSBOYW1lZDsKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgICAgICB9Ci0gICAgICAgIGNhc2UgTnVtYmVyVHlwZTogeworICAgICAgICBjYXNl
IE51bWJlcjogewogICAgICAgICAgICAgaWYgKGNjID09ICd4JykgewogICAgICAgICAgICAgICAg
IGVudGl0eVN0YXRlID0gTWF5YmVIZXhMb3dlckNhc2VYOwogICAgICAgICAgICAgICAgIGJyZWFr
OwpAQCAtMTM1LDcgKzE2MSw3IEBAIHVuc2lnbmVkIGNvbnN1bWVIVE1MRW50aXR5KFNlZ21lbnRl
ZFN0cmluZyYgc291cmNlLCBib29sJiBub3RFbm91Z2hDaGFyYWN0ZXJzLCBVCiAgICAgICAgICAg
ICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBzb3VyY2UucHVzaCgn
IycpOwotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgICAgIH0KICAgICAgICAgY2FzZSBNYXliZUhleExvd2VyQ2FzZVg6IHsKICAgICAgICAgICAg
IGlmIChpc0hleERpZ2l0KGNjKSkgewpAQCAtMTQ0LDcgKzE3MCw3IEBAIHVuc2lnbmVkIGNvbnN1
bWVIVE1MRW50aXR5KFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBib29sJiBub3RFbm91Z2hDaGFy
YWN0ZXJzLCBVCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBzb3VyY2UucHVzaCgnIycpOwog
ICAgICAgICAgICAgc291cmNlLnB1c2goJ3gnKTsKLSAgICAgICAgICAgIHJldHVybiAwOworICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgTWF5YmVIZXhV
cHBlckNhc2VYOiB7CiAgICAgICAgICAgICBpZiAoaXNIZXhEaWdpdChjYykpIHsKQEAgLTE1Myw3
ICsxNzksNyBAQCB1bnNpZ25lZCBjb25zdW1lSFRNTEVudGl0eShTZWdtZW50ZWRTdHJpbmcmIHNv
dXJjZSwgYm9vbCYgbm90RW5vdWdoQ2hhcmFjdGVycywgVQogICAgICAgICAgICAgfQogICAgICAg
ICAgICAgc291cmNlLnB1c2goJyMnKTsKICAgICAgICAgICAgIHNvdXJjZS5wdXNoKCdYJyk7Ci0g
ICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAg
fQogICAgICAgICBjYXNlIEhleDogewogICAgICAgICAgICAgaWYgKGNjID49ICcwJyAmJiBjYyA8
PSAnOScpCkBAIC0xNjIsMjMgKzE4OCw2MCBAQCB1bnNpZ25lZCBjb25zdW1lSFRNTEVudGl0eShT
ZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgYm9vbCYgbm90RW5vdWdoQ2hhcmFjdGVycywgVQogICAg
ICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAqIDE2ICsgMTAgKyBjYyAtICdhJzsKICAgICAg
ICAgICAgIGVsc2UgaWYgKGNjID49ICdBJyAmJiBjYyA8PSAnRicpCiAgICAgICAgICAgICAgICAg
cmVzdWx0ID0gcmVzdWx0ICogMTYgKyAxMCArIGNjIC0gJ0EnOwotICAgICAgICAgICAgZWxzZSBp
ZiAoY2MgPT0gJzsnKSB7Ci0gICAgICAgICAgICAgICAgc291cmNlLmFkdmFuY2VQYXN0Tm9uTmV3
bGluZSgpOwotICAgICAgICAgICAgICAgIHJldHVybiBsZWdhbEVudGl0eUZvcihyZXN1bHQpOwot
ICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgcmV0dXJuIGxlZ2FsRW50aXR5Rm9y
KHJlc3VsdCk7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAoY2MgPT0g
JzsnKQorICAgICAgICAgICAgICAgICAgICBzb3VyY2UuYWR2YW5jZUFuZEFTU0VSVChjYyk7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIGNvbnZlcnRUb0NoYXJhY3RlcnMobGVnYWxFbnRpdHlGb3Io
cmVzdWx0KSwgZGVjb2RlZEVudGl0eSk7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQogICAgICAgICBjYXNlIERlY2ltYWw6IHsKICAgICAgICAgICAgIGlmIChj
YyA+PSAnMCcgJiYgY2MgPD0gJzknKQogICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAq
IDEwICsgY2MgLSAnMCc7Ci0gICAgICAgICAgICBlbHNlIGlmIChjYyA9PSAnOycpIHsKLSAgICAg
ICAgICAgICAgICBzb3VyY2UuYWR2YW5jZVBhc3ROb25OZXdsaW5lKCk7Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuIGxlZ2FsRW50aXR5Rm9yKHJlc3VsdCk7Ci0gICAgICAgICAgICB9IGVsc2UKLSAg
ICAgICAgICAgICAgICByZXR1cm4gbGVnYWxFbnRpdHlGb3IocmVzdWx0KTsKKyAgICAgICAgICAg
IGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChjYyA9PSAnOycpCisgICAgICAgICAgICAgICAg
ICAgIHNvdXJjZS5hZHZhbmNlQW5kQVNTRVJUKGNjKTsKKyAgICAgICAgICAgICAgICByZXR1cm4g
Y29udmVydFRvQ2hhcmFjdGVycyhsZWdhbEVudGl0eUZvcihyZXN1bHQpLCBkZWNvZGVkRW50aXR5
KTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CisgICAgICAg
IGNhc2UgQmFzZTY0OiB7CisgICAgICAgICAgICBWZWN0b3I8Y2hhcj4gYXNjaWlWYWx1ZTsKKyAg
ICAgICAgICAgIHdoaWxlICghc291cmNlLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgICAgIGNj
ID0gKnNvdXJjZTsKKyAgICAgICAgICAgICAgICBpZiAoIWlzQmFzZTY0Q2hhcmFjdGVyKGNjKSkK
KyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2hhciBsZXR0ZXIg
PSBzdGF0aWNfY2FzdDxjaGFyPihjYyk7CisgICAgICAgICAgICAgICAgQVNTRVJUKGxldHRlciA9
PSBjYyk7CisgICAgICAgICAgICAgICAgYXNjaWlWYWx1ZS5hcHBlbmQobGV0dGVyKTsKKyAgICAg
ICAgICAgICAgICBjb25zdW1lZENoYXJhY3RlcnMuYXBwZW5kKGNjKTsKKyAgICAgICAgICAgICAg
ICBzb3VyY2UuYWR2YW5jZUFuZEFTU0VSVChjYyk7CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICBub3RFbm91Z2hDaGFyYWN0ZXJzID0gc291cmNlLmlzRW1wdHkoKTsKKyAgICAgICAgICAgIGlm
IChub3RFbm91Z2hDaGFyYWN0ZXJzKSB7CisgICAgICAgICAgICAgICAgdW5jb25zdW1lQ2hhcmFj
dGVycyhzb3VyY2UsIGNvbnN1bWVkQ2hhcmFjdGVycyk7CisgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGNjID09ICc7JykgeworICAg
ICAgICAgICAgICAgIFZlY3RvcjxjaGFyPiBiaW5hcnlWYWx1ZTsKKyAgICAgICAgICAgICAgICBi
b29sIHN1Y2Nlc3MgPSBiYXNlNjREZWNvZGUoYXNjaWlWYWx1ZSwgYmluYXJ5VmFsdWUpOworICAg
ICAgICAgICAgICAgIGlmICghc3VjY2VzcykgeworICAgICAgICAgICAgICAgICAgICB1bmNvbnN1
bWVDaGFyYWN0ZXJzKHNvdXJjZSwgY29uc3VtZWRDaGFyYWN0ZXJzKTsKKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBz
b3VyY2UuYWR2YW5jZUFuZEFTU0VSVChjYyk7CisgICAgICAgICAgICAgICAgU3RyaW5nIGNoYXJh
Y3RlcnMgPSBVVEY4RW5jb2RpbmcoKS5kZWNvZGUoYmluYXJ5VmFsdWUuZGF0YSgpLCBiaW5hcnlW
YWx1ZS5zaXplKCkpOworICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBj
aGFyYWN0ZXJzLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgVUNoYXIgY2hh
cmFjdGVyID0gY2hhcmFjdGVyc1tpXTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFjaGFyYWN0
ZXIpCisgICAgICAgICAgICAgICAgICAgICAgICBjaGFyYWN0ZXIgPSAweEZGRkQ7CisgICAgICAg
ICAgICAgICAgICAgIGRlY29kZWRFbnRpdHkuYXBwZW5kKGNoYXJhY3Rlcik7CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAg
ICAgICAgICAgdW5jb25zdW1lQ2hhcmFjdGVycyhzb3VyY2UsIGNvbnN1bWVkQ2hhcmFjdGVycyk7
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KICAgICAgICAgY2FzZSBOYW1l
ZDogewogICAgICAgICAgICAgSFRNTEVudGl0eVNlYXJjaCBlbnRpdHlTZWFyY2g7CiAgICAgICAg
ICAgICB3aGlsZSAoIXNvdXJjZS5pc0VtcHR5KCkpIHsKQEAgLTE5NCwxMiArMjU3LDEyIEBAIHVu
c2lnbmVkIGNvbnN1bWVIVE1MRW50aXR5KFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBib29sJiBu
b3RFbm91Z2hDaGFyYWN0ZXJzLCBVCiAgICAgICAgICAgICAgICAgLy8gV2UgY2FuJ3QgYW4gZW50
aXR5IGJlY2F1c2UgdGhlcmUgbWlnaHQgYmUgYSBsb25nZXIgZW50aXR5CiAgICAgICAgICAgICAg
ICAgLy8gdGhhdCB3ZSBjb3VsZCBtYXRjaCBpZiB3ZSBoYWQgbW9yZSBkYXRhLgogICAgICAgICAg
ICAgICAgIHVuY29uc3VtZUNoYXJhY3RlcnMoc291cmNlLCBjb25zdW1lZENoYXJhY3RlcnMpOwot
ICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmICghZW50aXR5U2VhcmNoLm1vc3RSZWNlbnRN
YXRjaCgpKSB7CiAgICAgICAgICAgICAgICAgQVNTRVJUKCFlbnRpdHlTZWFyY2guY3VycmVudFZh
bHVlKCkpOwogICAgICAgICAgICAgICAgIHVuY29uc3VtZUNoYXJhY3RlcnMoc291cmNlLCBjb25z
dW1lZENoYXJhY3RlcnMpOwotICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmIChlbnRpdHlT
ZWFyY2gubW9zdFJlY2VudE1hdGNoKCktPmxlbmd0aCAhPSBlbnRpdHlTZWFyY2guY3VycmVudExl
bmd0aCgpKSB7CiAgICAgICAgICAgICAgICAgLy8gV2UndmUgY29uc3VtZWQgdG9vIG1hbnkgY2hh
cmFjdGVycy4gIFdlIG5lZWQgdG8gd2FsayB0aGUKQEAgLTIxOCwxMiArMjgxLDEzIEBAIHVuc2ln
bmVkIGNvbnN1bWVIVE1MRW50aXR5KFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBib29sJiBub3RF
bm91Z2hDaGFyYWN0ZXJzLCBVCiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGNj
ID0gKnNvdXJjZTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChlbnRpdHlTZWFyY2gu
bW9zdFJlY2VudE1hdGNoKCktPmxhc3RDaGFyYWN0ZXIoKSA9PSAnOycpCi0gICAgICAgICAgICAg
ICAgcmV0dXJuIGVudGl0eVNlYXJjaC5tb3N0UmVjZW50TWF0Y2goKS0+dmFsdWU7Ci0gICAgICAg
ICAgICBpZiAoIWFkZGl0aW9uYWxBbGxvd2VkQ2hhcmFjdGVyIHx8ICEoaXNBbHBoYU51bWVyaWMo
Y2MpIHx8IGNjID09ICc9JykpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGVudGl0eVNlYXJjaC5t
b3N0UmVjZW50TWF0Y2goKS0+dmFsdWU7CisgICAgICAgICAgICBpZiAoZW50aXR5U2VhcmNoLm1v
c3RSZWNlbnRNYXRjaCgpLT5sYXN0Q2hhcmFjdGVyKCkgPT0gJzsnCisgICAgICAgICAgICAgICAg
fHwgIWFkZGl0aW9uYWxBbGxvd2VkQ2hhcmFjdGVyCisgICAgICAgICAgICAgICAgfHwgIShpc0Fs
cGhhTnVtZXJpYyhjYykgfHwgY2MgPT0gJz0nKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBj
b252ZXJ0VG9DaGFyYWN0ZXJzKGVudGl0eVNlYXJjaC5tb3N0UmVjZW50TWF0Y2goKS0+dmFsdWUs
IGRlY29kZWRFbnRpdHkpOworICAgICAgICAgICAgfQogICAgICAgICAgICAgdW5jb25zdW1lQ2hh
cmFjdGVycyhzb3VyY2UsIGNvbnN1bWVkQ2hhcmFjdGVycyk7Ci0gICAgICAgICAgICByZXR1cm4g
MDsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAgICB9CiAgICAg
ICAgIGNvbnN1bWVkQ2hhcmFjdGVycy5hcHBlbmQoY2MpOwpAQCAtMjMyLDcgKzI5Niw3IEBAIHVu
c2lnbmVkIGNvbnN1bWVIVE1MRW50aXR5KFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBib29sJiBu
b3RFbm91Z2hDaGFyYWN0ZXJzLCBVCiAgICAgQVNTRVJUKHNvdXJjZS5pc0VtcHR5KCkpOwogICAg
IG5vdEVub3VnaENoYXJhY3RlcnMgPSB0cnVlOwogICAgIHVuY29uc3VtZUNoYXJhY3RlcnMoc291
cmNlLCBjb25zdW1lZENoYXJhY3RlcnMpOwotICAgIHJldHVybiAwOworICAgIHJldHVybiBmYWxz
ZTsKIH0KIAogVUNoYXIgZGVjb2RlTmFtZWRFbnRpdHkoY29uc3QgY2hhciogbmFtZSkKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRW50aXR5UGFyc2VyLmggYi9XZWJDb3JlL2h0bWwvSFRN
TEVudGl0eVBhcnNlci5oCmluZGV4IDEwNTliMjQ5NWE4MGU4MDA2ODc2Y2U2MTM5NWFmODc1Njc4
ZGIwOTMuLmFkMjZjNWMxZDMxYjcyN2YxYzhmZjZiMjQzNjRlZjdjODUzYzkxNTkgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvaHRtbC9IVE1MRW50aXR5UGFyc2VyLmgKKysrIGIvV2ViQ29yZS9odG1sL0hU
TUxFbnRpdHlQYXJzZXIuaApAQCAtMzEsNyArMzEsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLXVuc2lnbmVkIGNvbnN1bWVIVE1MRW50aXR5KFNlZ21lbnRlZFN0cmluZyYsIGJvb2wmIG5v
dEVub3VnaENoYXJhY3RlcnMsIFVDaGFyIGFkZGl0aW9uYWxBbGxvd2VkQ2hhcmFjdGVyID0gJ1ww
Jyk7Citib29sIGNvbnN1bWVIVE1MRW50aXR5KFNlZ21lbnRlZFN0cmluZyYsIFZlY3RvcjxVQ2hh
cj4mIGRlY29kZWRFbnRpdHksIGJvb2wmIG5vdEVub3VnaENoYXJhY3RlcnMsIFVDaGFyIGFkZGl0
aW9uYWxBbGxvd2VkQ2hhcmFjdGVyID0gJ1wwJyk7CiAKIC8vIFVzZWQgYnkgdGhlIFhNTCBwYXJz
ZXIuICBOb3Qgc3VpdGFibGUgZm9yIHVzZSBpbiBIVE1MIHBhcnNpbmcuICBVc2UgY29uc3VtZUhU
TUxFbnRpdHkgaW5zdGVhZC4KIFVDaGFyIGRlY29kZU5hbWVkRW50aXR5KGNvbnN0IGNoYXIqKTsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MVG9rZW5pemVyLmNwcCBiL1dlYkNvcmUvaHRt
bC9IVE1MVG9rZW5pemVyLmNwcAppbmRleCBhMTg3MDFhOWMzMWJmMmViNDQyNjNiYTIxNTZlMmYx
NWMxNzg4ZDgzLi5jOTExY2Q0YWEyN2E5NDgyMDIyNmI3ZTIxOGUzNmY2NzI0OWEyZDgzIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTFRva2VuaXplci5jcHAKKysrIGIvV2ViQ29yZS9odG1s
L0hUTUxUb2tlbml6ZXIuY3BwCkBAIC0xMTksMTMgKzExOSwxOCBAQCB2b2lkIEhUTUxUb2tlbml6
ZXI6OnJlc2V0KCkKIGlubGluZSBib29sIEhUTUxUb2tlbml6ZXI6OnByb2Nlc3NFbnRpdHkoU2Vn
bWVudGVkU3RyaW5nJiBzb3VyY2UpCiB7CiAgICAgYm9vbCBub3RFbm91Z2hDaGFyYWN0ZXJzID0g
ZmFsc2U7Ci0gICAgdW5zaWduZWQgdmFsdWUgPSBjb25zdW1lSFRNTEVudGl0eShzb3VyY2UsIG5v
dEVub3VnaENoYXJhY3RlcnMpOworICAgIFZlY3RvcjxVQ2hhcj4gZGVjb2RlZEVudGl0eTsKKyAg
ICBib29sIHN1Y2Nlc3MgPSBjb25zdW1lSFRNTEVudGl0eShzb3VyY2UsIGRlY29kZWRFbnRpdHks
IG5vdEVub3VnaENoYXJhY3RlcnMpOwogICAgIGlmIChub3RFbm91Z2hDaGFyYWN0ZXJzKQogICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCF2YWx1ZSkKKyAgICBpZiAoIXN1Y2Nlc3MpIHsK
KyAgICAgICAgQVNTRVJUKGRlY29kZWRFbnRpdHkuaXNFbXB0eSgpKTsKICAgICAgICAgYnVmZmVy
Q2hhcmFjdGVyKCcmJyk7Ci0gICAgZWxzZQotICAgICAgICBidWZmZXJDb2RlUG9pbnQodmFsdWUp
OworICAgIH0gZWxzZSB7CisgICAgICAgIFZlY3RvcjxVQ2hhcj46OmNvbnN0X2l0ZXJhdG9yIGl0
ZXIgPSBkZWNvZGVkRW50aXR5LmJlZ2luKCk7CisgICAgICAgIGZvciAoOyBpdGVyICE9IGRlY29k
ZWRFbnRpdHkuZW5kKCk7ICsraXRlcikKKyAgICAgICAgICAgIGJ1ZmZlckNoYXJhY3RlcigqaXRl
cik7CisgICAgfQogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0xMDI3LDE2ICsxMDMyLDE3IEBA
IGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBI
VE1MVG9rZW4mIHRva2VuKQogCiAgICAgQkVHSU5fU1RBVEUoQ2hhcmFjdGVyUmVmZXJlbmNlSW5B
dHRyaWJ1dGVWYWx1ZVN0YXRlKSB7CiAgICAgICAgIGJvb2wgbm90RW5vdWdoQ2hhcmFjdGVycyA9
IGZhbHNlOwotICAgICAgICB1bnNpZ25lZCB2YWx1ZSA9IGNvbnN1bWVIVE1MRW50aXR5KHNvdXJj
ZSwgbm90RW5vdWdoQ2hhcmFjdGVycywgbV9hZGRpdGlvbmFsQWxsb3dlZENoYXJhY3Rlcik7Cisg
ICAgICAgIFZlY3RvcjxVQ2hhcj4gZGVjb2RlZEVudGl0eTsKKyAgICAgICAgYm9vbCBzdWNjZXNz
ID0gY29uc3VtZUhUTUxFbnRpdHkoc291cmNlLCBkZWNvZGVkRW50aXR5LCBub3RFbm91Z2hDaGFy
YWN0ZXJzLCBtX2FkZGl0aW9uYWxBbGxvd2VkQ2hhcmFjdGVyKTsKICAgICAgICAgaWYgKG5vdEVu
b3VnaENoYXJhY3RlcnMpCiAgICAgICAgICAgICByZXR1cm4gaGF2ZUJ1ZmZlcmVkQ2hhcmFjdGVy
VG9rZW4oKTsKLSAgICAgICAgaWYgKCF2YWx1ZSkKKyAgICAgICAgaWYgKCFzdWNjZXNzKSB7Cisg
ICAgICAgICAgICBBU1NFUlQoZGVjb2RlZEVudGl0eS5pc0VtcHR5KCkpOwogICAgICAgICAgICAg
bV90b2tlbi0+YXBwZW5kVG9BdHRyaWJ1dGVWYWx1ZSgnJicpOwotICAgICAgICBlbHNlIGlmICh2
YWx1ZSA8IDB4RkZGRikKLSAgICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvQXR0cmlidXRlVmFs
dWUodmFsdWUpOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRv
QXR0cmlidXRlVmFsdWUoVTE2X0xFQUQodmFsdWUpKTsKLSAgICAgICAgICAgIG1fdG9rZW4tPmFw
cGVuZFRvQXR0cmlidXRlVmFsdWUoVTE2X1RSQUlMKHZhbHVlKSk7CisgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICBWZWN0b3I8VUNoYXI+Ojpjb25zdF9pdGVyYXRvciBpdGVyID0gZGVjb2Rl
ZEVudGl0eS5iZWdpbigpOworICAgICAgICAgICAgZm9yICg7IGl0ZXIgIT0gZGVjb2RlZEVudGl0
eS5lbmQoKTsgKytpdGVyKQorICAgICAgICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvQXR0cmli
dXRlVmFsdWUoKml0ZXIpOwogICAgICAgICB9CiAgICAgICAgIC8vIFdlJ3JlIHN1cHBvc2VkIHRv
IHN3aXRjaCBiYWNrIHRvIHRoZSBhdHRyaWJ1dGUgdmFsdWUgc3RhdGUgdGhhdAogICAgICAgICAv
LyB3ZSB3ZXJlIGluIHdoZW4gd2Ugd2VyZSBzd2l0Y2hlZCBpbnRvIHRoaXMgc3RhdGUuICBSYXRo
ZXIgdGhhbgpAQCAtMTYzNCwxNiArMTY0MCw2IEBAIGlubGluZSB2b2lkIEhUTUxUb2tlbml6ZXI6
OmJ1ZmZlckNoYXJhY3RlcihVQ2hhciBjaGFyYWN0ZXIpCiAgICAgbV90b2tlbi0+YXBwZW5kVG9D
aGFyYWN0ZXIoY2hhcmFjdGVyKTsKIH0KIAotaW5saW5lIHZvaWQgSFRNTFRva2VuaXplcjo6YnVm
ZmVyQ29kZVBvaW50KHVuc2lnbmVkIHZhbHVlKQotewotICAgIGlmICh2YWx1ZSA8IDB4RkZGRikg
ewotICAgICAgICBidWZmZXJDaGFyYWN0ZXIodmFsdWUpOwotICAgICAgICByZXR1cm47Ci0gICAg
fQotICAgIGJ1ZmZlckNoYXJhY3RlcihVMTZfTEVBRCh2YWx1ZSkpOwotICAgIGJ1ZmZlckNoYXJh
Y3RlcihVMTZfVFJBSUwodmFsdWUpKTsKLX0KLQogaW5saW5lIHZvaWQgSFRNTFRva2VuaXplcjo6
cGFyc2VFcnJvcigpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGFnZS9YU1NBdWRpdG9yLmNwcCBiL1dlYkNvcmUvcGFnZS9YU1NBdWRpdG9yLmNwcAppbmRl
eCBmYjBlMWMwOTRmYjc0YWZmNzMwNzI0ZDI5ODU3NjgxNGViMmM5YjdkLi4xODk1OGZiZTY5MjA4
ZjM5Y2M3MmQ2MmY4ZTRiY2Q0N2IyNDE2NGJlIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvWFNT
QXVkaXRvci5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL1hTU0F1ZGl0b3IuY3BwCkBAIC0yNzcsMTkg
KzI3NywxOCBAQCBTdHJpbmcgWFNTQXVkaXRvcjo6ZGVjb2RlSFRNTEVudGl0aWVzKGNvbnN0IFN0
cmluZyYgc3RyaW5nLCBib29sIGxlYXZlVW5kZWNvZGFibAogICAgICAgICBpZiAobGVhdmVVbmRl
Y29kYWJsZUVudGl0aWVzVW50b3VjaGVkKQogICAgICAgICAgICAgc291cmNlU2hhZG93ID0gc291
cmNlOwogICAgICAgICBib29sIG5vdEVub3VnaENoYXJhY3RlcnMgPSBmYWxzZTsKLSAgICAgICAg
dW5zaWduZWQgZW50aXR5ID0gY29uc3VtZUhUTUxFbnRpdHkoc291cmNlLCBub3RFbm91Z2hDaGFy
YWN0ZXJzKTsKKyAgICAgICAgVmVjdG9yPFVDaGFyPiBkZWNvZGVkRW50aXR5OworICAgICAgICBi
b29sIHN1Y2Nlc3MgPSBjb25zdW1lSFRNTEVudGl0eShzb3VyY2UsIGRlY29kZWRFbnRpdHksIG5v
dEVub3VnaENoYXJhY3RlcnMpOwogICAgICAgICAvLyBXZSBpZ25vcmUgbm90RW5vdWdoQ2hhcmFj
dGVycyBiZWNhdXNlIHdlIG1pZ2h0IGFzIHdlbGwgdXNlIHRoaXMgbG9vcAogICAgICAgICAvLyB0
byBjb3B5IHRoZSByZW1haW5pbmcgY2hhcmFjdGVycyBpbnRvIHxyZXN1bHR8LgotCi0gICAgICAg
IGlmIChlbnRpdHkgPiAweEZGRkYpIHsKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoVTE2X0xF
QUQoZW50aXR5KSk7Ci0gICAgICAgICAgICByZXN1bHQuYXBwZW5kKFUxNl9UUkFJTChlbnRpdHkp
KTsKLSAgICAgICAgfSBlbHNlIGlmIChlbnRpdHkgJiYgKCFsZWF2ZVVuZGVjb2RhYmxlRW50aXRp
ZXNVbnRvdWNoZWQgfHwgZW50aXR5ICE9IDB4RkZGRCkpewotICAgICAgICAgICAgcmVzdWx0LmFw
cGVuZChlbnRpdHkpOwotICAgICAgICB9IGVsc2UgeworICAgICAgICBpZiAoIXN1Y2Nlc3MgfHwg
KCFsZWF2ZVVuZGVjb2RhYmxlRW50aXRpZXNVbnRvdWNoZWQgJiYgZGVjb2RlZEVudGl0eS5zaXpl
KCkgPT0gMSAmJiBkZWNvZGVkRW50aXR5WzBdID09IDB4RkZGRCkpIHsKICAgICAgICAgICAgIHJl
c3VsdC5hcHBlbmQoJyYnKTsKICAgICAgICAgICAgIGlmIChsZWF2ZVVuZGVjb2RhYmxlRW50aXRp
ZXNVbnRvdWNoZWQpCiAgICAgICAgICAgICAgICAgc291cmNlID0gc291cmNlU2hhZG93OworICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgVmVjdG9yPFVDaGFyPjo6Y29uc3RfaXRlcmF0b3Ig
aXRlciA9IGRlY29kZWRFbnRpdHkuYmVnaW4oKTsKKyAgICAgICAgICAgIGZvciAoOyBpdGVyICE9
IGRlY29kZWRFbnRpdHkuZW5kKCk7ICsraXRlcikKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBw
ZW5kKCppdGVyKTsKICAgICAgICAgfQogICAgIH0KICAgICAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66617</attachid>
            <date>2010-09-06 03:20:40 -0700</date>
            <delta_ts>2010-12-21 01:17:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44641-20100906032038.patch</filename>
            <type>text/plain</type>
            <size>13087</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NjgxOSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjQgQEAKKzIwMTAtMDktMDYgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBs
ZW1lbnQgQmFzZTY0IEhUTUwgZW50aXRpZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQ0NjQxCisKKyAgICAgICAgQXV0aG9ycyBjYW4gdXNlIGJhc2U2
NCBlbnRpdGllcyB0byBoZWxwIHByb3RlY3QgYWdhaW5zdCBjcm9zcy1zaXRlCisgICAgICAgIHNj
cmlwdGluZyBieSBlbmNvZGluZyB1bnRydXN0ZWQgY29udGVudCBpbiBiYXNlNjQuICBGb3IgbW9y
ZSBkZXRhaWxzLAorICAgICAgICBzZWUgdGhpcyB0aHJlYWQ6CisKKyAgICAgICAgaHR0cDovL2xp
c3RzLndoYXR3Zy5vcmcvaHRkaWcuY2dpL3doYXR3Zy13aGF0d2cub3JnLzIwMTAtQXVndXN0LzAy
ODE1NC5odG1sCisKKyAgICAgICAgVGhpcyBmZWF0dXJlIGlzIG5vdCBwYXJ0IHBhcnQgb2YgSFRN
TDUgeWV0LCBidXQgdGhlIGVkaXRvciBvZiB0aGUgc3BlYworICAgICAgICBlbmNvdXJhZ2VzIHVz
IHRvIGV4cGVyaW1lbnQgd2l0aCB0aGlzIGZlYXR1cmUuCisKKyAgICAgICAgVGVzdDogZmFzdC90
b2tlbml6ZXIvYmFzZTY0LWVudGl0aWVzLmh0bWwKKworICAgICAgICAqIGh0bWwvcGFyc2VyL0hU
TUxFbnRpdHlQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29uc3VtZUhUTUxFbnRpdHkp
OgorCiAyMDEwLTA5LTA2ICBBbnRvbiBNdWhpbiAgPGFudG9ubUBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KSW5kZXg6IFdlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTEVudGl0eVBhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL3BhcnNlci9I
VE1MRW50aXR5UGFyc2VyLmNwcAkocmV2aXNpb24gNjY4MTEpCisrKyBXZWJDb3JlL2h0bWwvcGFy
c2VyL0hUTUxFbnRpdHlQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw4ICsyOCwxMCBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkhUTUxFbnRpdHlQYXJzZXIuaCIKIAor
I2luY2x1ZGUgIkJhc2U2NC5oIgogI2luY2x1ZGUgIkhUTUxFbnRpdHlTZWFyY2guaCIKICNpbmNs
dWRlICJIVE1MRW50aXR5VGFibGUuaCIKKyNpbmNsdWRlICJUZXh0RW5jb2RpbmcuaCIKICNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXVEY7CkBAIC04NSw2ICs4Nywx
MSBAQCBpbmxpbmUgYm9vbCBpc0FscGhhTnVtZXJpYyhVQ2hhciBjYykKICAgICByZXR1cm4gKGNj
ID49ICcwJyAmJiBjYyA8PSAnOScpIHx8IChjYyA+PSAnYScgJiYgY2MgPD0gJ3onKSB8fCAoY2Mg
Pj0gJ0EnICYmIGNjIDw9ICdaJyk7CiB9CiAKK2lubGluZSBib29sIGlzQmFzZTY0Q2hhcmFjdGVy
KFVDaGFyIGNjKQoreworICAgIHJldHVybiBpc0FscGhhTnVtZXJpYyhjYykgfHwgY2MgPT0gJysn
IHx8IGNjID09ICcvJyB8fCBjYyA9PSAnPSc7Cit9CisKIHZvaWQgdW5jb25zdW1lQ2hhcmFjdGVy
cyhTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgY29uc3QgVmVjdG9yPFVDaGFyLCAxMD4mIGNvbnN1
bWVkQ2hhcmFjdGVycykKIHsKICAgICBpZiAoY29uc3VtZWRDaGFyYWN0ZXJzLnNpemUoKSA9PSAx
KQpAQCAtMTExLDYgKzExOCw3IEBAIGJvb2wgY29uc3VtZUhUTUxFbnRpdHkoU2VnbWVudGVkU3Ry
aW5nJiAKICAgICAgICAgTWF5YmVIZXhVcHBlckNhc2VYLAogICAgICAgICBIZXgsCiAgICAgICAg
IERlY2ltYWwsCisgICAgICAgIEJhc2U2NCwKICAgICAgICAgTmFtZWQKICAgICB9OwogICAgIEVu
dGl0eVN0YXRlIGVudGl0eVN0YXRlID0gSW5pdGlhbDsKQEAgLTEyOSw2ICsxMzcsMTAgQEAgYm9v
bCBjb25zdW1lSFRNTEVudGl0eShTZWdtZW50ZWRTdHJpbmcmIAogICAgICAgICAgICAgICAgIGVu
dGl0eVN0YXRlID0gTnVtYmVyOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
fQorICAgICAgICAgICAgaWYgKGNjID09ICclJykgeworICAgICAgICAgICAgICAgIGVudGl0eVN0
YXRlID0gQmFzZTY0OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQogICAg
ICAgICAgICAgaWYgKChjYyA+PSAnYScgJiYgY2MgPD0gJ3onKSB8fCAoY2MgPj0gJ0EnICYmIGNj
IDw9ICdaJykpIHsKICAgICAgICAgICAgICAgICBlbnRpdHlTdGF0ZSA9IE5hbWVkOwogICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOwpAQCAtMTkzLDYgKzIwNSw0MyBAQCBib29sIGNvbnN1bWVIVE1M
RW50aXR5KFNlZ21lbnRlZFN0cmluZyYgCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQorICAgICAgICBjYXNlIEJhc2U2NDogeworICAgICAgICAgICAgVmVjdG9y
PGNoYXI+IGFzY2lpVmFsdWU7CisgICAgICAgICAgICB3aGlsZSAoIXNvdXJjZS5pc0VtcHR5KCkp
IHsKKyAgICAgICAgICAgICAgICBjYyA9ICpzb3VyY2U7CisgICAgICAgICAgICAgICAgaWYgKCFp
c0Jhc2U2NENoYXJhY3RlcihjYykpCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgICAgIGNoYXIgbGV0dGVyID0gc3RhdGljX2Nhc3Q8Y2hhcj4oY2MpOworICAgICAgICAg
ICAgICAgIEFTU0VSVChsZXR0ZXIgPT0gY2MpOworICAgICAgICAgICAgICAgIGFzY2lpVmFsdWUu
YXBwZW5kKGxldHRlcik7CisgICAgICAgICAgICAgICAgY29uc3VtZWRDaGFyYWN0ZXJzLmFwcGVu
ZChjYyk7CisgICAgICAgICAgICAgICAgc291cmNlLmFkdmFuY2VBbmRBU1NFUlQoY2MpOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgbm90RW5vdWdoQ2hhcmFjdGVycyA9IHNvdXJjZS5pc0Vt
cHR5KCk7CisgICAgICAgICAgICBpZiAobm90RW5vdWdoQ2hhcmFjdGVycykgeworICAgICAgICAg
ICAgICAgIHVuY29uc3VtZUNoYXJhY3RlcnMoc291cmNlLCBjb25zdW1lZENoYXJhY3RlcnMpOwor
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IGlmIChjYyA9PSAnOycpIHsKKyAgICAgICAgICAgICAgICBWZWN0b3I8Y2hhcj4gYmluYXJ5VmFs
dWU7CisgICAgICAgICAgICAgICAgYm9vbCBzdWNjZXNzID0gYmFzZTY0RGVjb2RlKGFzY2lpVmFs
dWUsIGJpbmFyeVZhbHVlKTsKKyAgICAgICAgICAgICAgICBpZiAoIXN1Y2Nlc3MpIHsKKyAgICAg
ICAgICAgICAgICAgICAgdW5jb25zdW1lQ2hhcmFjdGVycyhzb3VyY2UsIGNvbnN1bWVkQ2hhcmFj
dGVycyk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgc291cmNlLmFkdmFuY2VBbmRBU1NFUlQoY2MpOworICAgICAg
ICAgICAgICAgIFN0cmluZyBjaGFyYWN0ZXJzID0gVVRGOEVuY29kaW5nKCkuZGVjb2RlKGJpbmFy
eVZhbHVlLmRhdGEoKSwgYmluYXJ5VmFsdWUuc2l6ZSgpKTsKKyAgICAgICAgICAgICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgY2hhcmFjdGVycy5sZW5ndGgoKTsgKytpKSB7CisgICAgICAg
ICAgICAgICAgICAgIFVDaGFyIGNoYXJhY3RlciA9IGNoYXJhY3RlcnNbaV07CisgICAgICAgICAg
ICAgICAgICAgIGlmICghY2hhcmFjdGVyKQorICAgICAgICAgICAgICAgICAgICAgICAgY2hhcmFj
dGVyID0gMHhGRkZEOworICAgICAgICAgICAgICAgICAgICBkZWNvZGVkRW50aXR5LmFwcGVuZChj
aGFyYWN0ZXIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHVuY29uc3VtZUNoYXJhY3RlcnMoc291cmNl
LCBjb25zdW1lZENoYXJhY3RlcnMpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICB9CiAgICAgICAgIGNhc2UgTmFtZWQ6IHsKICAgICAgICAgICAgIEhUTUxFbnRpdHlTZWFyY2gg
ZW50aXR5U2VhcmNoOwogICAgICAgICAgICAgd2hpbGUgKCFzb3VyY2UuaXNFbXB0eSgpKSB7Cklu
ZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCShyZXZpc2lvbiA2NjgxOSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEwLTA5LTA2ICBBZGFtIEJhcnRoICA8YWJhcnRo
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgSW1wbGVtZW50IEJhc2U2NCBIVE1MIGVudGl0aWVzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDY0MQorIAorICAgICAgICBUZXN0IGNvdmVy
YWdlIGZvciBiYXNlNjQgZW50aXRpZXMuCisKKyAgICAgICAgKiBmYXN0L3Rva2VuaXplci9iYXNl
NjQtZW50aXRpZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Rva2VuaXpl
ci9iYXNlNjQtZW50aXRpZXMuaHRtbDogQWRkZWQuCisKIDIwMTAtMDktMDYgIFBoaWxpcHBlIE5v
cm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHNraXBw
aW5nIGEgY3Jhc2hpbmcgbWVkaWEgdGVzdC4KQEAgLTE1LDYgKzI3LDIwIEBACiAKIDIwMTAtMDkt
MDYgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAorICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgQmFzZTY0IEhUTUwgZW50aXRp
ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0NjQx
CisKKyAgICAgICAgVGVzdCBjb3ZlcmFnZSBmb3IgYmFzZTY0IGVudGl0aWVzLgorCisgICAgICAg
ICogZmFzdC90b2tlbml6ZXIvYmFzZTY0LWVudGl0aWVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC90b2tlbml6ZXIvYmFzZTY0LWVudGl0aWVzLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9qYXZhc2NyaXB0LWxpbmstSFRN
TC1lbnRpdGllcy1udWxsLWNoYXItZXhwZWN0ZWQudHh0OgorICAgICAgICAgICAgLSBXZSBub3cg
YmxvY2sgdGhpcyBhdHRhY2suCisKKzIwMTAtMDktMDYgIEFkYW0gQmFydGggIDxhYmFydGhAd2Vi
a2l0Lm9yZz4KKwogICAgICAgICBVcGRhdGUgZXhwZWN0ZWQgcmVzdWx0cyB0byBtYXRjaCBjaGFu
Z2UgaW4gdGVzdC4gIFF0J3MgYmVoYXZpb3IgaXMKICAgICAgICAgdW5jaGFuZ2VkLiAgSXQncyBq
dXN0IHRoZSByZWR1bmRhbnQgZXhwZWN0YXRpb25zIGluIHRoZSB0ZXN0IHRoYXQgYXJlCiAgICAg
ICAgIGNoYW5naW5nLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90b2tlbml6ZXIvYmFzZTY0LWVu
dGl0aWVzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3Rva2Vu
aXplci9iYXNlNjQtZW50aXRpZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvZmFzdC90b2tlbml6ZXIvYmFzZTY0LWVudGl0aWVzLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwxMDkgQEAKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c2Ny
aXB0PgorfCAgICAgICBzcmM9Ii4uLy4uL3Jlc291cmNlcy9kdW1wLWFzLW1hcmt1cC5qcyIKK3wg
ICAgICIKKyIKK3wgICA8Ym9keT4KK3wgICAgICImU0ZSTlRDQThaR2wyUGlBaUlHOXVaWEp5YjNJ
OUoyRnNaWEowS0M5WVUxTXZLU2NnNXBhdzZaZTc1NzJSNmFHMTQ0Q0E2TFMwNVpDbjQ0Q0E1NSts
NllHVDQ0Q0FUVkF6NVp1KzU0bUg2S2VHSU9taWtlT0FnT1djc09XYnZpRWhJU0VrVlNZb0tWRXFK
aU1wVVVnNktRPTsKKyZTRlJOVENBOFpHbDJQaUFpSUc5dVpYSnliM0k5SjJGc1pYSjBLQzlZVTFN
dktTY2c1cGF3NlplNzU3MlI2YUcxCis0NENBNkxTMDVaQ240NENBNTUrbDZZR1Q0NENBVFZBejVa
dSs1NG1INktlR0lPbWlrZU9BZ09XY3NPV2J2aUVoCitJU0VrVlNZb0tWRXFKaU1wVVVnNktRPT07
CismI1NGUk5UQ0E4WkdsMlBpQWlJRzl1WlhKeWIzSTlKMkZzWlhKMEtDOVlVMU12S1NjZzVwYXc2
WmU3NTcyUjZhRzE0NENBNkxTMDVaQ240NENBNTUrbDZZR1Q0NENBVFZBejVadSs1NG1INktlR0lP
bWlrZU9BZ09XY3NPV2J2aUVoSVNFa1ZTWW9LVkVxSmlNcFVVZzZLUT07CismI1NGUk5UQ0E4Wkds
MlBpQWlJRzl1WlhKeWIzSTlKMkZzWlhKMEtDOVlVMU12S1NjZzVwYXc2WmU3NTcyUjZhRzEKKzQ0
Q0E2TFMwNVpDbjQ0Q0E1NStsNllHVDQ0Q0FUVkF6NVp1KzU0bUg2S2VHSU9taWtlT0FnT1djc09X
YnZpRWgKK0lTRWtWU1lvS1ZFcUppTXBVVWc2S1E9PTsKK0hUTUwgPGRpdj4gIiBvbmVycm9yPSdh
bGVydCgvWFNTLyknIOaWsOmXu+e9kemhteOAgOi0tOWQp+OAgOefpemBk+OAgE1QM+WbvueJh+in
hiDpopHjgIDlnLDlm74hISEhJFUmKClRKiYjKVFIOikKKyYlU0ZSTlRDQThaR2wyUGlBaUlHOXVa
WEp5YjNJOUoyRnNaWEowS0M5WVUxTXZLU2NnNXBhdzZaZTc1NzJSNmFHMQorNDRDQTZMUzA1WkNu
NDRDQTU1K2w2WUdUNDRDQVRWQXo1WnUrNTRtSDZLZUdJT21pa2VPQWdPV2NzT1didmlFaAorSVNF
a1ZTWW9LVkVxSmlNcFVVZzZLUT09OworJiVTRlJOVENBOFpHbDJQaUFpSUc5dVpYSnliM0k5SjJG
c1pYSjBLQzlZVTFNdktTY2c1cGF3NlplNzU3MlI2YUcxNDRDQTZMUzA1WkNuNDRDQTU1K2w2WUdU
NDRDQVRWQXo1WnUrNTRtSDZLZUdJT21pa2VPQWdPV2NzT1didmlFaElTRWtWU1lvS1ZFcUppTXBV
VWc2S1E9CismJVNGUk5UQ0E4WkdsMlBpQWlJRzl1WlhKeWIzSTlKMkZzWlhKMEtDOVlVMU12S1Nj
ZzVwYXc2WmU3NTcyUjZhRzEKKzQ0Q0E2TFMwNVpDbjQ0Q0E1NStsNllHVDQ0Q0FUVkF6NVp1KzU0
bUg2S2VHSU9taWtlT0FnT1djc09XYnZpRWgKK0lTRWtWU1lvS1ZFcUppTXBVVWc2S1E9CisiCit8
ICAgICA8aW1nPgorfCAgICAgICBhbHQ9IkhUTUwgPGRpdj4gIiBvbmVycm9yPSdhbGVydCgvWFNT
LyknIOaWsOmXu+e9kemhteOAgOi0tOWQp+OAgOefpemBk+OAgE1QM+WbvueJh+inhiDpopHjgIDl
nLDlm74hISEhJFUmKClRKiYjKVFIOikiCit8ICAgICAgIHNyYz0iYWJvdXQ6YmxhbmsiCit8ICAg
ICAiCisiCit8ICAgICA8aW1nPgorfCAgICAgICBhbHQ9IkhUTUwgPGRpdj4gIiBvbmVycm9yPSdh
bGVydCgvWFNTLyknIOaWsOmXu+e9kemhteOAgOi0tOWQp+OAgOefpemBk+OAgE1QM+WbvueJh+in
hiDpopHjgIDlnLDlm74hISEhJFUmKClRKiYjKVFIOikiCit8ICAgICAgIHNyYz0iYWJvdXQ6Ymxh
bmsiCit8ICAgICAiCisiCit8ICAgICA8aW1nPgorfCAgICAgICBhbHQ9IkhUTUwgPGRpdj4gIiBv
bmVycm9yPSdhbGVydCgvWFNTLyknIOaWsOmXu+e9kemhteOAgOi0tOWQp+OAgOefpemBk+OAgE1Q
M+WbvueJh+inhiDpopHjgIDlnLDlm74hISEhJFUmKClRKiYjKVFIOikiCit8ICAgICAgIHNyYz0i
YWJvdXQ6YmxhbmsiCit8ICAgICAiCisiCit8ICAgICA8aW1nPgorfCAgICAgICAmJXNmcm50Y2E4
emdsMnBpYWlpZzl1enhqeWIzaTlqMmZzenhqMGtjOXl1MW12a3NjZzVwYXc2emU3NTcycjZhZzE0
NGNhNmxzMDV6Y240NGNhNTUrbDZ5Z3Q0NGNhdHZhejV6dSs1NG1oNmtlZ2lvbWlrZW9hZ293Y3Nv
d2J2aWVoaXNla3ZzeW9rdmVxamltcHV1ZzZrcT0iOyIKK3wgICAgICIKK1ZHaHBjeUJwY3lBOGIy
NWxQaUFpSnlCb1lYTWdaR2xtWm1WeVpXNTBJQ1puZERzZ2NHRmtaR2x1Wnk0dQorJlZHaHBjeUJw
Y3lBOGIyNWxQaUFpSnlCb1lYTWdaR2xtWm1WeVpXNTBJQ1puZERzZ2NHRmtaR2x1Wnk0dTsKKyYj
VkdocGN5QnBjeUE4YjI1bFBpQWlKeUJvWVhNZ1pHbG1abVZ5Wlc1MElDWm5kRHNnY0dGa1pHbHVa
eTR1OworVGhpcyBpcyA8b25lPiAiJyBoYXMgZGlmZmVyZW50ICZndDsgcGFkZGluZy4uCismJVZH
aHBjeUJwY3lBOGIyNWxQaUFpSnlCb1lYTWdaR2xtWm1WeVpXNTBJQ1puZERzZ2NHRmtaR2x1Wnk0
dQorIgorfCAgICAgPGltZz4KK3wgICAgICAgYWx0PSJUaGlzIGlzIDxvbmU+ICInIGhhcyBkaWZm
ZXJlbnQgJmd0OyBwYWRkaW5nLi4iCit8ICAgICAgIHNyYz0iYWJvdXQ6YmxhbmsiCit8ICAgICAi
CisiCit8ICAgICA8aW1nPgorfCAgICAgICBhbHQ9IlRoaXMgaXMgPG9uZT4gIicgaGFzIGRpZmZl
cmVudCAmZ3Q7IHBhZGRpbmcuLiIKK3wgICAgICAgc3JjPSJhYm91dDpibGFuayIKK3wgICAgICIK
KyIKK3wgICAgIDxpbWc+Cit8ICAgICAgIGFsdD0iVGhpcyBpcyA8b25lPiAiJyBoYXMgZGlmZmVy
ZW50ICZndDsgcGFkZGluZy4uIgorfCAgICAgICBzcmM9ImFib3V0OmJsYW5rIgorfCAgICAgIgor
IgorfCAgICAgPGltZz4KK3wgICAgICAgJiV2Z2hwY3licGN5YThiMjVscGlhaWp5Ym95eG1nemds
bXptdnl6dzUwaWN6bmRkc2djZ2ZremdsdXp5NHU7PSIiCit8ICAgICAiCisiCit8ICAgICA8ZGl2
PgorfCAgICAgICAiRnVuIHdpdGggZW1wdHl2YWx1ZXMiCit8ICAgICAiCisiCit8ICAgICA8ZGl2
PgorfCAgICAgICAiRnVuIHdpdGggZW1wdHkmJXZhbHVlcyIKK3wgICAgICIKKyIKK3wgICAgIDxk
aXY+Cit8ICAgICAgICJGdW4gd2l0aCBlbXB0eSY7dmFsdWVzIgorfCAgICAgIgorIgorfCAgICAg
PGRpdj4KK3wgICAgICAgIkZ1biB3aXRoIGVtcHR5JnZhbHVlcyIKK3wgICAgICIKKyIKK3wgICAg
IDxkaXY+Cit8ICAgICAgICJGdW4gd2l0aCBlbXB0eSU7dmFsdWVzIgorfCAgICAgIgorIgorfCAg
ICAgPGRpdj4KK3wgICAgICAgIkZ1biB3aXRoIGVtcHR5JXZhbHVlcyIKK3wgICAgICIKKyIKK3wg
ICAgIDxkaXY+Cit8ICAgICAgICJGdW4gd2l0aCBib3JrZWQmJWFhPWJiO3ZhbHVlcyIKK3wgICAg
ICIKKyIKK3wgICAgIDxkaXY+Cit8ICAgICAgICJGdW4gd2l0aCBib3JrZWRp77+977+9bXZhbHVl
cyIKK3wgICAgICIKKyIKK3wgICAgIDxkaXY+Cit8ICAgICAgICJGdW4gd2l0aCBib3JrZWRp77+9
77+9dmFsdWVzIgorfCAgICAgIgorIgorfCAgICAgPGRpdj4KK3wgICAgICAgIu+/vVBORw0KKxoK
K++/ve+/ve+/vQ1JSERS77+977+977+9EO+/ve+/ve+/vRABA++/ve+/ve+/vSU9bSLvv73vv73v
v70GUExURe+/ve+/ve+/ve+/ve+/ve+/ve+/vdmf77+977+977+977+9M0lEQVR477+9Y++/ve+/
ve+/ve+/ve+/vV/vv73vv73vv70ZDu+/vTPvv70/77+9cH8y77+977+977+9DDfvv70Z77+9FO+/
vdC977+9DO+/vVLvv70MD++/ve+/ve+/vX/vv71R77+9Fyjvv71d77+9UO+/ve+/ve+/ve+/vUlF
TkTvv71CYO+/vSIKK3wgICAgICIKKyIKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvdG9rZW5pemVy
L2Jhc2U2NC1lbnRpdGllcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvdG9r
ZW5pemVyL2Jhc2U2NC1lbnRpdGllcy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC90b2tlbml6ZXIvYmFzZTY0LWVudGl0aWVzLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsNDYgQEAKKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanMi
Pjwvc2NyaXB0PgorJlNGUk5UQ0E4WkdsMlBpQWlJRzl1WlhKeWIzSTlKMkZzWlhKMEtDOVlVMU12
S1NjZzVwYXc2WmU3NTcyUjZhRzE0NENBNkxTMDVaQ240NENBNTUrbDZZR1Q0NENBVFZBejVadSs1
NG1INktlR0lPbWlrZU9BZ09XY3NPV2J2aUVoSVNFa1ZTWW9LVkVxSmlNcFVVZzZLUT07CismU0ZS
TlRDQThaR2wyUGlBaUlHOXVaWEp5YjNJOUoyRnNaWEowS0M5WVUxTXZLU2NnNXBhdzZaZTc1NzJS
NmFHMQorNDRDQTZMUzA1WkNuNDRDQTU1K2w2WUdUNDRDQVRWQXo1WnUrNTRtSDZLZUdJT21pa2VP
QWdPV2NzT1didmlFaAorSVNFa1ZTWW9LVkVxSmlNcFVVZzZLUT09OworJiNTRlJOVENBOFpHbDJQ
aUFpSUc5dVpYSnliM0k5SjJGc1pYSjBLQzlZVTFNdktTY2c1cGF3NlplNzU3MlI2YUcxNDRDQTZM
UzA1WkNuNDRDQTU1K2w2WUdUNDRDQVRWQXo1WnUrNTRtSDZLZUdJT21pa2VPQWdPV2NzT1didmlF
aElTRWtWU1lvS1ZFcUppTXBVVWc2S1E9OworJiNTRlJOVENBOFpHbDJQaUFpSUc5dVpYSnliM0k5
SjJGc1pYSjBLQzlZVTFNdktTY2c1cGF3NlplNzU3MlI2YUcxCis0NENBNkxTMDVaQ240NENBNTUr
bDZZR1Q0NENBVFZBejVadSs1NG1INktlR0lPbWlrZU9BZ09XY3NPV2J2aUVoCitJU0VrVlNZb0tW
RXFKaU1wVVVnNktRPT07CismJVNGUk5UQ0E4WkdsMlBpQWlJRzl1WlhKeWIzSTlKMkZzWlhKMEtD
OVlVMU12S1NjZzVwYXc2WmU3NTcyUjZhRzE0NENBNkxTMDVaQ240NENBNTUrbDZZR1Q0NENBVFZB
ejVadSs1NG1INktlR0lPbWlrZU9BZ09XY3NPV2J2aUVoSVNFa1ZTWW9LVkVxSmlNcFVVZzZLUT07
CismJVNGUk5UQ0E4WkdsMlBpQWlJRzl1WlhKeWIzSTlKMkZzWlhKMEtDOVlVMU12S1NjZzVwYXc2
WmU3NTcyUjZhRzEKKzQ0Q0E2TFMwNVpDbjQ0Q0E1NStsNllHVDQ0Q0FUVkF6NVp1KzU0bUg2S2VH
SU9taWtlT0FnT1djc09XYnZpRWgKK0lTRWtWU1lvS1ZFcUppTXBVVWc2S1E9PTsKKyYlU0ZSTlRD
QThaR2wyUGlBaUlHOXVaWEp5YjNJOUoyRnNaWEowS0M5WVUxTXZLU2NnNXBhdzZaZTc1NzJSNmFH
MTQ0Q0E2TFMwNVpDbjQ0Q0E1NStsNllHVDQ0Q0FUVkF6NVp1KzU0bUg2S2VHSU9taWtlT0FnT1dj
c09XYnZpRWhJU0VrVlNZb0tWRXFKaU1wVVVnNktRPQorJiVTRlJOVENBOFpHbDJQaUFpSUc5dVpY
SnliM0k5SjJGc1pYSjBLQzlZVTFNdktTY2c1cGF3NlplNzU3MlI2YUcxCis0NENBNkxTMDVaQ240
NENBNTUrbDZZR1Q0NENBVFZBejVadSs1NG1INktlR0lPbWlrZU9BZ09XY3NPV2J2aUVoCitJU0Vr
VlNZb0tWRXFKaU1wVVVnNktRPQorPGltZyBhbHQ9IiYlU0ZSTlRDQThaR2wyUGlBaUlHOXVaWEp5
YjNJOUoyRnNaWEowS0M5WVUxTXZLU2NnNXBhdzZaZTc1NzJSNmFHMTQ0Q0E2TFMwNVpDbjQ0Q0E1
NStsNllHVDQ0Q0FUVkF6NVp1KzU0bUg2S2VHSU9taWtlT0FnT1djc09XYnZpRWhJU0VrVlNZb0tW
RXFKaU1wVVVnNktRPTsiCisgICAgIHNyYz0iYWJvdXQ6YmxhbmsiPgorPGltZyBhbHQ9JiVTRlJO
VENBOFpHbDJQaUFpSUc5dVpYSnliM0k5SjJGc1pYSjBLQzlZVTFNdktTY2c1cGF3NlplNzU3MlI2
YUcxNDRDQTZMUzA1WkNuNDRDQTU1K2w2WUdUNDRDQVRWQXo1WnUrNTRtSDZLZUdJT21pa2VPQWdP
V2NzT1didmlFaElTRWtWU1lvS1ZFcUppTXBVVWc2S1E9OworICAgICBzcmM9ImFib3V0OmJsYW5r
Ij4KKzxpbWcgYWx0PScmJVNGUk5UQ0E4WkdsMlBpQWlJRzl1WlhKeWIzSTlKMkZzWlhKMEtDOVlV
MU12S1NjZzVwYXc2WmU3NTcyUjZhRzE0NENBNkxTMDVaQ240NENBNTUrbDZZR1Q0NENBVFZBejVa
dSs1NG1INktlR0lPbWlrZU9BZ09XY3NPV2J2aUVoSVNFa1ZTWW9LVkVxSmlNcFVVZzZLUT07Jwor
ICAgICBzcmM9ImFib3V0OmJsYW5rIj4KKzxpbWcgJiVTRlJOVENBOFpHbDJQaUFpSUc5dVpYSnli
M0k5SjJGc1pYSjBLQzlZVTFNdktTY2c1cGF3NlplNzU3MlI2YUcxNDRDQTZMUzA1WkNuNDRDQTU1
K2w2WUdUNDRDQVRWQXo1WnUrNTRtSDZLZUdJT21pa2VPQWdPV2NzT1didmlFaElTRWtWU1lvS1ZF
cUppTXBVVWc2S1E9OyA+CitWR2hwY3lCcGN5QThiMjVsUGlBaUp5Qm9ZWE1nWkdsbVptVnlaVzUw
SUNabmREc2djR0ZrWkdsdVp5NHUKKyZWR2hwY3lCcGN5QThiMjVsUGlBaUp5Qm9ZWE1nWkdsbVpt
VnlaVzUwSUNabmREc2djR0ZrWkdsdVp5NHU7CismI1ZHaHBjeUJwY3lBOGIyNWxQaUFpSnlCb1lY
TWdaR2xtWm1WeVpXNTBJQ1puZERzZ2NHRmtaR2x1Wnk0dTsKKyYlVkdocGN5QnBjeUE4YjI1bFBp
QWlKeUJvWVhNZ1pHbG1abVZ5Wlc1MElDWm5kRHNnY0dGa1pHbHVaeTR1OworJiVWR2hwY3lCcGN5
QThiMjVsUGlBaUp5Qm9ZWE1nWkdsbVptVnlaVzUwSUNabmREc2djR0ZrWkdsdVp5NHUKKzxpbWcg
YWx0PSImJVZHaHBjeUJwY3lBOGIyNWxQaUFpSnlCb1lYTWdaR2xtWm1WeVpXNTBJQ1puZERzZ2NH
RmtaR2x1Wnk0dTsiCisgICAgIHNyYz0iYWJvdXQ6YmxhbmsiPgorPGltZyBhbHQ9JiVWR2hwY3lC
cGN5QThiMjVsUGlBaUp5Qm9ZWE1nWkdsbVptVnlaVzUwSUNabmREc2djR0ZrWkdsdVp5NHU7Cisg
ICAgIHNyYz0iYWJvdXQ6YmxhbmsiPgorPGltZyBhbHQ9JyYlVkdocGN5QnBjeUE4YjI1bFBpQWlK
eUJvWVhNZ1pHbG1abVZ5Wlc1MElDWm5kRHNnY0dGa1pHbHVaeTR1OycKKyAgICAgc3JjPSJhYm91
dDpibGFuayI+Cis8aW1nICYlVkdocGN5QnBjeUE4YjI1bFBpQWlKeUJvWVhNZ1pHbG1abVZ5Wlc1
MElDWm5kRHNnY0dGa1pHbHVaeTR1OyA+Cis8ZGl2PkZ1biB3aXRoIGVtcHR5JiU7dmFsdWVzPC9k
aXY+Cis8ZGl2PkZ1biB3aXRoIGVtcHR5JiV2YWx1ZXM8L2Rpdj4KKzxkaXY+RnVuIHdpdGggZW1w
dHkmO3ZhbHVlczwvZGl2PgorPGRpdj5GdW4gd2l0aCBlbXB0eSZ2YWx1ZXM8L2Rpdj4KKzxkaXY+
RnVuIHdpdGggZW1wdHklO3ZhbHVlczwvZGl2PgorPGRpdj5GdW4gd2l0aCBlbXB0eSV2YWx1ZXM8
L2Rpdj4KKzxkaXY+RnVuIHdpdGggYm9ya2VkJiVhYT1iYjt2YWx1ZXM8L2Rpdj4KKzxkaXY+RnVu
IHdpdGggYm9ya2VkJiVhYT09YmI7dmFsdWVzPC9kaXY+Cis8ZGl2PkZ1biB3aXRoIGJvcmtlZCYl
YWFiYj09PTt2YWx1ZXM8L2Rpdj4KKzxkaXY+JiVpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQkFB
QUFBUUFRTUFBQUFsUFcwaUFBQUFCbEJNVkVVQUFBRC8vLytsMlovZEFBQUFNMGxFUVZSNG5HUDQv
NS9oLzErRy81OFpEckF6M0QvTWNIOHl3ODNORERlTkdlNFVnOUM5end6M2dWTE1EQS9BNlA5L0FG
R0dGeWpPWFp0UUFBQUFBRWxGVGtTdVFtQ0M7PC9kaXY+Cg==
</data>
<flag name="review"
          id="55676"
          type_id="1"
          status="-"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>