<?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>41156</bug_id>
          
          <creation_ts>2010-06-24 07:08:33 -0700</creation_ts>
          <short_desc>Cross origin XMLHttpRequest should log the reason why connection failed</short_desc>
          <delta_ts>2010-07-07 11:25:56 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Stuart Ng">sng</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>mike</cc>
    
    <cc>ossy</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>242496</commentid>
    <comment_count>0</comment_count>
      <attachid>59652</attachid>
    <who name="Stuart Ng">sng</who>
    <bug_when>2010-06-24 07:08:33 -0700</bug_when>
    <thetext>Created attachment 59652
Actual Packet Capture - Can open with Microsoft Network Monitor or WireShark

Send a Cross Origin XHR Post method, and call send with actual data (Tried String and ByteArray)
Get a XHR Status of 0, and eventually get XML Network Error DOM 101.

Cross Origin POST with no data works fine. GET, HEAD Cross Origin also works.

I have reproduced this on Chrome and Safari.

From the packet capture I see HTTP Option being sent with requested method of POST
And we get a response back with Accept-Method of POST as well, but nothing else afterwards

NOte: For POST with no data you never see the Preflight request being sent</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243130</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-06-25 12:29:19 -0700</bug_when>
    <thetext>&gt; Access-Control-Request-Headers: X-Requested-With, Content-Type
&lt; Access-Control-Allow-Headers: X-Requested-With

Is this perhaps the problem?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243144</commentid>
    <comment_count>2</comment_count>
    <who name="Stuart Ng">sng</who>
    <bug_when>2010-06-25 12:45:21 -0700</bug_when>
    <thetext>Yes this is it! The bug can be closed.

I added &quot;Content-Type to allow-header&quot; and things work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243157</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-06-25 13:09:16 -0700</bug_when>
    <thetext>Let&apos;s track this as a developer tools issue then. It&apos;s really hard to figure out problems like this with WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246172</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-07-02 17:29:08 -0700</bug_when>
    <thetext>*** Bug 41217 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246178</commentid>
    <comment_count>5</comment_count>
      <attachid>60425</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-07-02 17:54:08 -0700</bug_when>
    <thetext>Created attachment 60425
first iteration</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247168</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-07-06 12:11:19 -0700</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/changeset/62576&gt;. This actually affected a number of tests!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247202</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-07-06 13:52:47 -0700</bug_when>
    <thetext>+        if (!m_headers.contains(it-&gt;first) &amp;&amp; !isOnAccessControlSimpleRequestHeaderWhitelist(it-&gt;first, it-&gt;second)) {
+            errorDescription = &quot;Request header field &quot; + it-&gt;first + &quot; is not allowed by Access-Control-Allow-Methods response header field.&quot;;

Oops, that&apos;s &quot;Access-Control-Allow-Headers&quot;. Corrected in r62592.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247218</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-06 15:31:25 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/62576 might have broken Leopard Intel Debug (Tests)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247352</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-07-06 23:57:06 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; http://trac.webkit.org/changeset/62576 might have broken Leopard Intel Debug (Tests)

11 hours later and the tree is still busted from this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247359</commentid>
    <comment_count>10</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-07-07 00:14:51 -0700</bug_when>
    <thetext>I attempted to clean up your mess in http://trac.webkit.org/changeset/62576

If those expectations are not right, please correct them.

Insert nasty gram about running the tests before committing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247363</commentid>
    <comment_count>11</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2010-07-07 00:37:18 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Committed &lt;http://trac.webkit.org/changeset/62576&gt;. This actually affected a number of tests!

Qt needed a fix after that, it landed in http://trac.webkit.org/changeset/62602</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247592</commentid>
    <comment_count>12</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-07-07 09:05:22 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; I attempted to clean up your mess in http://trac.webkit.org/changeset/62576

That was &lt;http://trac.webkit.org/changeset/62629&gt;.

Tiger is still broken, I&apos;ll investigate ASAP.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247652</commentid>
    <comment_count>13</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-07-07 11:25:56 -0700</bug_when>
    <thetext>Fixed Tiger results in &lt;http://trac.webkit.org/changeset/62684&gt; (they are wrong, but not terribly so, and we can&apos;t do anything about that anyway).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>59652</attachid>
            <date>2010-06-24 07:08:33 -0700</date>
            <delta_ts>2010-06-24 07:08:33 -0700</delta_ts>
            <desc>Actual Packet Capture - Can open with Microsoft Network Monitor or WireShark</desc>
            <filename>postdata.cap</filename>
            <type>application/octet-stream</type>
            <size>1649</size>
            <attacher name="Stuart Ng">sng</attacher>
            
              <data encoding="base64">R01CVQICAQDaBwYABAAYAAkAOQAJAJoBYQYAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAErgdMQAAAACIAAAAiAAAAAABAAAAAQADAAMGaQAAQwA6AFwAUAByAG8A
ZwByAGEAbQAgAEYAaQBsAGUAcwBcAE0AaQBjAHIAbwBzAG8AZgB0ACAATgBlAHQAdwBvAHIAawAg
AE0AbwBuAGkAdABvAHIAIAAzAFwAbgBlAHQAbQBvAG4ALgBlAHgAZQAAAEgAVABUAFAAAAD/////
//8SuB0xAAAAADIBAAAyAQAAAAEAAQAATABvAGMAYQBsACAAQQByAGUAYQAgAEMAbwBuAG4AZQBj
AHQAaQBvAG4AAABWAE0AdwBhAHIAZQAgAEEAYwBjAGUAbABlAHIAYQB0AGUAZAAgAEEATQBEACAA
UABDAE4AZQB0ACAAQQBkAGEAcAB0AGUAcgAgAC0AIABUAGUAZQBmAGUAcgAyACAATQBpAG4AaQBw
AG8AcgB0AAAAewAzAEEAOAA2AEEAMgBCADYALQA1ADcAMwAyAC0ANAA3AEUAMwAtADkAMAA1AEEA
LQA5ADYANwA3ADIAMwBFADUANQAwADYAOQB9AAAAAAAABgAAAAAAAAAAO5rKAABQVo0fqAABAAAA
AQABAAQAAAqHzRj///8ACofNAQqHZGQKhmRkCoZkFQpmZGQKQB9k+///////FYaDMQAAAABdAgAA
XQIAAABQVo0fqAAiVcdLfwgARQACT8qBQAB9BibOCokoMQqHzRgFoQBQPewlDb6lMsJQGP//Ho0A
AE9QVElPTlMgL0NPUlMvR2V0UG9zdEhlYWRUZXN0LnBocCBIVFRQLzEuMQ0KSG9zdDogYmR0MTEt
dm15eXoubGFieXl6LnRlc3RuZXQucmltLm5ldA0KUmVmZXJlcjogaHR0cDovL2F0ZzA1LXl5ei5y
aW0ubmV0L2h0bWw1L3hocmFzeW5jL3RoaXJkdGVzdC5odG0NCkFjY2VwdDogKi8qDQpBY2NlcHQt
TGFuZ3VhZ2U6IGVuLVVTDQpBY2Nlc3MtQ29udHJvbC1SZXF1ZXN0LU1ldGhvZDogUE9TVA0KT3Jp
Z2luOiBodHRwOi8vYXRnMDUteXl6LnJpbS5uZXQNCkNhY2hlLUNvbnRyb2w6IG1heC1hZ2U9MA0K
VXNlci1BZ2VudDogTW96aWxsYS81LjAgKFdpbmRvd3M7IFU7IFdpbmRvd3MgTlQgNS4xOyBlbi1V
UykgQXBwbGVXZWJLaXQvNTMzLjE2IChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi81LjAgU2Fm
YXJpLzUzMy4xNg0KQWNjZXB0LUVuY29kaW5nOiBnemlwLCBkZWZsYXRlDQpBY2Nlc3MtQ29udHJv
bC1SZXF1ZXN0LUhlYWRlcnM6IFgtUmVxdWVzdGVkLVdpdGgsIENvbnRlbnQtVHlwZQ0KQ29udGVu
dC1MZW5ndGg6IDANCkNvbm5lY3Rpb246IGtlZXAtYWxpdmUNCg0KAQD/////JwCEMQAAAACqAQAA
qgEAAAAADAeszQBQVo0fqAgARQABnHG0QACABn1OCofNGAqJKDEAUAWhvqUywj3sJzRQGPjJC+gA
AEhUVFAvMS4xIDIwMCBPSw0KQ29ubmVjdGlvbjogY2xvc2UNCkRhdGU6IFRodSwgMjQgSnVuIDIw
MTAgMTQ6MTA6NTkgR01UDQpTZXJ2ZXI6IE1pY3Jvc29mdC1JSVMvNi4wDQpNaWNyb3NvZnRPZmZp
Y2VXZWJTZXJ2ZXI6IDUuMF9QdWINClgtUG93ZXJlZC1CeTogQVNQLk5FVA0KWC1Qb3dlcmVkLUJ5
OiBQSFAvNS4yLjEzDQpBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW46ICoNCkFjY2Vzcy1Db250
cm9sLUFsbG93LU1ldGhvZHM6IEdFVCwgUE9TVCwgT1BUSU9OUw0KQWNjZXNzLUNvbnRyb2wtQWxs
b3ctSGVhZGVyczogWC1SZXF1ZXN0ZWQtV2l0aA0KQWNjZXNzLUNvbnRyb2wtTWF4LUFnZTogODY0
MDANCkNvbnRlbnQtdHlwZTogdGV4dC9odG1sDQoNCgEA/////0gAAADmAAAALgIAAKEEAAA=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60425</attachid>
            <date>2010-07-02 17:54:08 -0700</date>
            <delta_ts>2010-07-06 11:09:22 -0700</delta_ts>
            <desc>first iteration</desc>
            <filename>XHRReportError.txt</filename>
            <type>text/plain</type>
            <size>16355</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MjQxOSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDQgQEAKKzIwMTAtMDctMDIgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxMTU2CisgICAgICAgIENy
b3NzIG9yaWdpbiBYTUxIdHRwUmVxdWVzdCBzaG91bGQgbG9nIHRoZSByZWFzb24gd2h5IGNvbm5l
Y3Rpb24gZmFpbGVkCisKKyAgICAgICAgTm8gbmV3IFdlYi1mYWNpbmcgZnVuY3Rpb25hbGl0eSwg
c28gbm8gdGVzdHMuCisKKyAgICAgICAgKiBsb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9s
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBhc3Nlc0FjY2Vzc0NvbnRyb2xDaGVjayk6CisgICAg
ICAgICogbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5oOgorICAgICAgICAqIGxvYWRl
ci9Dcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGVJdGVtOjpwYXJzZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlSXRlbTo6YWxsb3dzQ3Jvc3NP
cmlnaW5NZXRob2QpOgorICAgICAgICAoV2ViQ29yZTo6Q3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1
bHRDYWNoZUl0ZW06OmFsbG93c0Nyb3NzT3JpZ2luSGVhZGVycyk6CisgICAgICAgIChXZWJDb3Jl
OjpDcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlSXRlbTo6YWxsb3dzUmVxdWVzdCk6Cisg
ICAgICAgICogbG9hZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuaDoKKyAgICAg
ICAgRnVuY3Rpb25zIHRoYXQgY2hlY2sgcmVxdWVzdHMgbm93IHRha2UgYSBzdHJpbmcgYXJndW1l
bnQgZm9yIGVycm9yIGV4cGxhbmF0aW9uLgorCisgICAgICAgICogbG9hZGVyL0RvY3VtZW50VGhy
ZWFkYWJsZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRocmVhZGFibGVM
b2FkZXI6OkRvY3VtZW50VGhyZWFkYWJsZUxvYWRlcik6IE1ha2UgYW4gaW5mb3JtYXRpdmUgZXJy
b3IKKyAgICAgICAgaWYgY3Jvc3NPcmlnaW5SZXF1ZXN0UG9saWN5IGlzIERlbnlDcm9zc09yaWdp
blJlcXVlc3RzLiBUaGlzIGRvZXNuJ3QgY3VycmVudGx5IGdvIGFueXdoZXJlLAorICAgICAgICBz
aW5jZSBYTUxIdHRwUmVxdWVzdCBpcyB0aGUgb25seSBjbGllbnQgdGhhdCBsb2dzIGZyb20gZGlk
RmFpbCgpLCBhbmQgaXQgb2YgY291cnNlIHN1cHBvcnRzCisgICAgICAgIGNyb3NzIG9yaWdpbiBy
ZXF1ZXN0cy4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6bWFr
ZVNpbXBsZUNyb3NzT3JpZ2luQWNjZXNzUmVxdWVzdCk6IE1ha2UgYW4gaW5mb3JtYXRpdmUKKyAg
ICAgICAgZXJyb3Igd2hlbiB0cnlpbmcgdG8gZS5nLiBzZW5kIGEgY3Jvc3Mgb3JpZ2luIFhNTEh0
dHBSZXF1ZXN0IHRvIGZ0cDovLy4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGhyZWFkYWJs
ZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKTogUGFzcyBlcnJvciBleHBsYW5hdGlvbiBmcm9t
IGNyb3NzCisgICAgICAgIG9yaWdpbiBhY2Nlc3MgY29udHJvbCBjb2RlLgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpwcmVmbGlnaHRGYWlsdXJlKTogRGl0dG8u
CisKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmg6IHByZWZsaWdo
dEZhaWx1cmUoKSBub3cgdGFrZXMgYXJndW1lbnRzLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZUVycm9yQmFzZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZUVycm9yQmFzZS5oOgorICAgICAgICBBZGRlZCBhIGNvbnN0YW50IGZvciBXZWJLaXQg
ZXJyb3IgZG9tYWluLgorCisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDogKFdlYkNv
cmU6OlhNTEh0dHBSZXF1ZXN0OjpkaWRGYWlsKTogUmVwb3J0IHRoZSBlcnJvciB0byBjb25zb2xl
LgorICAgICAgICBPbmUgZGF5IHdlJ2xsIGJlIGFibGUgdG8gYWxzbyBwcm92aWRlIHNjcmlwdCBm
aWxlIGFuZCBsaW5lIG51bWJlciBoZXJlLCBzbyBpdCdzIGJlc3QgdG8KKyAgICAgICAgcGFzcyBl
cnJvciBhbGwgdGhlIHdheSBkb3duIHRvIFhIUiBmb3IgcmVwb3J0aW5nLgorCiAyMDEwLTA3LTAy
ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJl
dmlld2VkLgpJbmRleDogV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wu
Y3BwCShyZXZpc2lvbiA2MjMwMCkKKysrIFdlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNz
Q29udHJvbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkyLDcgKzkyLDcgQEAgYm9vbCBpc09uQWNj
ZXNzQ29udHJvbFJlc3BvbnNlSGVhZGVyV2hpdAogICAgIHJldHVybiBhbGxvd2VkQ3Jvc3NPcmln
aW5SZXNwb25zZUhlYWRlcnMtPmNvbnRhaW5zKG5hbWUpOwogfQogCi1ib29sIHBhc3Nlc0FjY2Vz
c0NvbnRyb2xDaGVjayhjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgYm9vbCBpbmNs
dWRlQ3JlZGVudGlhbHMsIFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbikKK2Jvb2wgcGFz
c2VzQWNjZXNzQ29udHJvbENoZWNrKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBi
b29sIGluY2x1ZGVDcmVkZW50aWFscywgU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luLCBT
dHJpbmcmIGVycm9yRGVzY3JpcHRpb24pCiB7CiAgICAgLy8gQSB3aWxkY2FyZCBBY2Nlc3MtQ29u
dHJvbC1BbGxvdy1PcmlnaW4gY2FuIG5vdCBiZSB1c2VkIGlmIGNyZWRlbnRpYWxzIGFyZSB0byBi
ZSBzZW50LAogICAgIC8vIGV2ZW4gd2l0aCBBY2Nlc3MtQ29udHJvbC1BbGxvdy1DcmVkZW50aWFs
cyBzZXQgdG8gdHJ1ZS4KQEAgLTEwMCwxNyArMTAwLDI1IEBAIGJvb2wgcGFzc2VzQWNjZXNzQ29u
dHJvbENoZWNrKGNvbnN0IFJlc28KICAgICBpZiAoYWNjZXNzQ29udHJvbE9yaWdpblN0cmluZyA9
PSAiKiIgJiYgIWluY2x1ZGVDcmVkZW50aWFscykKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAg
ICBpZiAoc2VjdXJpdHlPcmlnaW4tPmlzVW5pcXVlKCkpCisgICAgaWYgKHNlY3VyaXR5T3JpZ2lu
LT5pc1VuaXF1ZSgpKSB7CisgICAgICAgIGVycm9yRGVzY3JpcHRpb24gPSAiQ2Fubm90IG1ha2Ug
YW55IHJlcXVlc3RzIGZyb20gIiArIHNlY3VyaXR5T3JpZ2luLT50b1N0cmluZygpICsgIi4iOwog
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogCisgICAgLy8gRklYTUU6IEFjY2Vzcy1Db250
cm9sLUFsbG93LU9yaWdpbiBjYW4gY29udGFpbiBhIGxpc3Qgb2Ygb3JpZ2lucy4KICAgICBSZWZQ
dHI8U2VjdXJpdHlPcmlnaW4+IGFjY2Vzc0NvbnRyb2xPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6
Y3JlYXRlRnJvbVN0cmluZyhhY2Nlc3NDb250cm9sT3JpZ2luU3RyaW5nKTsKLSAgICBpZiAoIWFj
Y2Vzc0NvbnRyb2xPcmlnaW4tPmlzU2FtZVNjaGVtZUhvc3RQb3J0KHNlY3VyaXR5T3JpZ2luKSkK
KyAgICBpZiAoIWFjY2Vzc0NvbnRyb2xPcmlnaW4tPmlzU2FtZVNjaGVtZUhvc3RQb3J0KHNlY3Vy
aXR5T3JpZ2luKSkgeworICAgICAgICBlcnJvckRlc2NyaXB0aW9uID0gKGFjY2Vzc0NvbnRyb2xP
cmlnaW5TdHJpbmcgPT0gIioiKSA/ICJDYW5ub3QgdXNlIHdpbGRjYXJkIGluIEFjY2Vzcy1Db250
cm9sLUFsbG93LU9yaWdpbiB3aGVuIGNyZWRlbnRpYWxzIGZsYWcgaXMgdHJ1ZS4iCisgICAgICAg
ICAgICA6ICJPcmlnaW4gIiArIHNlY3VyaXR5T3JpZ2luLT50b1N0cmluZygpICsgIiBpcyBub3Qg
YWxsb3dlZCBieSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4gcmVzcG9uc2UgaGVhZGVyLiI7
CiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAKICAgICBpZiAoaW5jbHVkZUNyZWRlbnRp
YWxzKSB7CiAgICAgICAgIGNvbnN0IFN0cmluZyYgYWNjZXNzQ29udHJvbENyZWRlbnRpYWxzU3Ry
aW5nID0gcmVzcG9uc2UuaHR0cEhlYWRlckZpZWxkKCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1DcmVk
ZW50aWFscyIpOwotICAgICAgICBpZiAoYWNjZXNzQ29udHJvbENyZWRlbnRpYWxzU3RyaW5nICE9
ICJ0cnVlIikKKyAgICAgICAgaWYgKGFjY2Vzc0NvbnRyb2xDcmVkZW50aWFsc1N0cmluZyAhPSAi
dHJ1ZSIpIHsKKyAgICAgICAgICAgIGVycm9yRGVzY3JpcHRpb24gPSAiQ3JlZGVudGlhbHMgZmxh
ZyBpcyB0cnVlLCBidXQgQWNjZXNzLUNvbnRyb2wtQWxsb3ctQ3JlZGVudGlhbHMgcmVzcG9uc2Ug
aGVhZGVyIGlzIG5vdCBcInRydWVcIi4iOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICB9CiAgICAgfQogCiAgICAgcmV0dXJuIHRydWU7CkluZGV4OiBXZWJDb3JlL2xvYWRlci9D
cm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9D
cm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaAkocmV2aXNpb24gNjIzMDApCisrKyBXZWJDb3JlL2xv
YWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiAr
MzYsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgYm9vbCBpc09uQWNjZXNzQ29udHJvbFNp
bXBsZVJlcXVlc3RIZWFkZXJXaGl0ZWxpc3QoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJp
bmcmIHZhbHVlKTsKICAgICBib29sIGlzT25BY2Nlc3NDb250cm9sUmVzcG9uc2VIZWFkZXJXaGl0
ZWxpc3QoY29uc3QgU3RyaW5nJik7CiAKLSAgICBib29sIHBhc3Nlc0FjY2Vzc0NvbnRyb2xDaGVj
ayhjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgYm9vbCBpbmNsdWRlQ3JlZGVudGlhbHMsIFNlY3Vy
aXR5T3JpZ2luKik7CisgICAgYm9vbCBwYXNzZXNBY2Nlc3NDb250cm9sQ2hlY2soY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYsIGJvb2wgaW5jbHVkZUNyZWRlbnRpYWxzLCBTZWN1cml0eU9yaWdpbios
IFN0cmluZyYgZXJyb3JEZXNjcmlwdGlvbik7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5k
ZXg6IFdlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2Fj
aGUuY3BwCShyZXZpc2lvbiA2MjMwMCkKKysrIFdlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luUHJl
ZmxpZ2h0UmVzdWx0Q2FjaGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NywxNSArODcsMTkgQEAg
c3RhdGljIGJvb2wgcGFyc2VBY2Nlc3NDb250cm9sQWxsb3dMaXN0KAogICAgIHJldHVybiB0cnVl
OwogfQogCi1ib29sIENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGVJdGVtOjpwYXJzZShj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK2Jvb2wgQ3Jvc3NPcmlnaW5QcmVmbGln
aHRSZXN1bHRDYWNoZUl0ZW06OnBhcnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNl
LCBTdHJpbmcmIGVycm9yRGVzY3JpcHRpb24pCiB7CiAgICAgbV9tZXRob2RzLmNsZWFyKCk7Ci0g
ICAgaWYgKCFwYXJzZUFjY2Vzc0NvbnRyb2xBbGxvd0xpc3QocmVzcG9uc2UuaHR0cEhlYWRlckZp
ZWxkKCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1NZXRob2RzIiksIG1fbWV0aG9kcykpCisgICAgaWYg
KCFwYXJzZUFjY2Vzc0NvbnRyb2xBbGxvd0xpc3QocmVzcG9uc2UuaHR0cEhlYWRlckZpZWxkKCJB
Y2Nlc3MtQ29udHJvbC1BbGxvdy1NZXRob2RzIiksIG1fbWV0aG9kcykpIHsKKyAgICAgICAgZXJy
b3JEZXNjcmlwdGlvbiA9ICJDYW5ub3QgcGFyc2UgQWNjZXNzLUNvbnRyb2wtQWxsb3ctTWV0aG9k
cyByZXNwb25zZSBoZWFkZXIgZmllbGQuIjsKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0K
IAogICAgIG1faGVhZGVycy5jbGVhcigpOwotICAgIGlmICghcGFyc2VBY2Nlc3NDb250cm9sQWxs
b3dMaXN0KHJlc3BvbnNlLmh0dHBIZWFkZXJGaWVsZCgiQWNjZXNzLUNvbnRyb2wtQWxsb3ctSGVh
ZGVycyIpLCBtX2hlYWRlcnMpKQorICAgIGlmICghcGFyc2VBY2Nlc3NDb250cm9sQWxsb3dMaXN0
KHJlc3BvbnNlLmh0dHBIZWFkZXJGaWVsZCgiQWNjZXNzLUNvbnRyb2wtQWxsb3ctSGVhZGVycyIp
LCBtX2hlYWRlcnMpKSB7CisgICAgICAgIGVycm9yRGVzY3JpcHRpb24gPSAiQ2Fubm90IHBhcnNl
IEFjY2Vzcy1Db250cm9sLUFsbG93LUhlYWRlcnMgcmVzcG9uc2UgaGVhZGVyIGZpZWxkLiI7CiAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAKICAgICB1bnNpZ25lZCBleHBpcnlEZWx0YTsK
ICAgICBpZiAocGFyc2VBY2Nlc3NDb250cm9sTWF4QWdlKHJlc3BvbnNlLmh0dHBIZWFkZXJGaWVs
ZCgiQWNjZXNzLUNvbnRyb2wtTWF4LUFnZSIpLCBleHBpcnlEZWx0YSkpIHsKQEAgLTEwOCwzMCAr
MTEyLDM3IEBAIGJvb2wgQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZUl0ZW0KICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBDcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlSXRl
bTo6YWxsb3dzQ3Jvc3NPcmlnaW5NZXRob2QoY29uc3QgU3RyaW5nJiBtZXRob2QpIGNvbnN0Citi
b29sIENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGVJdGVtOjphbGxvd3NDcm9zc09yaWdp
bk1ldGhvZChjb25zdCBTdHJpbmcmIG1ldGhvZCwgU3RyaW5nJiBlcnJvckRlc2NyaXB0aW9uKSBj
b25zdAogewotICAgIHJldHVybiBtX21ldGhvZHMuY29udGFpbnMobWV0aG9kKSB8fCBpc09uQWNj
ZXNzQ29udHJvbFNpbXBsZVJlcXVlc3RNZXRob2RXaGl0ZWxpc3QobWV0aG9kKTsKKyAgICBpZiAo
bV9tZXRob2RzLmNvbnRhaW5zKG1ldGhvZCkgfHwgaXNPbkFjY2Vzc0NvbnRyb2xTaW1wbGVSZXF1
ZXN0TWV0aG9kV2hpdGVsaXN0KG1ldGhvZCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAg
ZXJyb3JEZXNjcmlwdGlvbiA9ICJNZXRob2QgIiArIG1ldGhvZCArICIgaXMgbm90IGFsbG93ZWQg
YnkgQWNjZXNzLUNvbnRyb2wtQWxsb3ctTWV0aG9kcyByZXNwb25zZSBoZWFkZXIgZmllbGQuIjsK
KyAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRD
YWNoZUl0ZW06OmFsbG93c0Nyb3NzT3JpZ2luSGVhZGVycyhjb25zdCBIVFRQSGVhZGVyTWFwJiBy
ZXF1ZXN0SGVhZGVycykgY29uc3QKK2Jvb2wgQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNo
ZUl0ZW06OmFsbG93c0Nyb3NzT3JpZ2luSGVhZGVycyhjb25zdCBIVFRQSGVhZGVyTWFwJiByZXF1
ZXN0SGVhZGVycywgU3RyaW5nJiBlcnJvckRlc2NyaXB0aW9uKSBjb25zdAogewogICAgIEhUVFBI
ZWFkZXJNYXA6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IHJlcXVlc3RIZWFkZXJzLmVuZCgpOwogICAg
IGZvciAoSFRUUEhlYWRlck1hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSByZXF1ZXN0SGVhZGVycy5i
ZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKLSAgICAgICAgaWYgKCFtX2hlYWRlcnMuY29udGFp
bnMoaXQtPmZpcnN0KSAmJiAhaXNPbkFjY2Vzc0NvbnRyb2xTaW1wbGVSZXF1ZXN0SGVhZGVyV2hp
dGVsaXN0KGl0LT5maXJzdCwgaXQtPnNlY29uZCkpCisgICAgICAgIGlmICghbV9oZWFkZXJzLmNv
bnRhaW5zKGl0LT5maXJzdCkgJiYgIWlzT25BY2Nlc3NDb250cm9sU2ltcGxlUmVxdWVzdEhlYWRl
cldoaXRlbGlzdChpdC0+Zmlyc3QsIGl0LT5zZWNvbmQpKSB7CisgICAgICAgICAgICBlcnJvckRl
c2NyaXB0aW9uID0gIlJlcXVlc3QgaGVhZGVyIGZpZWxkICIgKyBpdC0+Zmlyc3QgKyAiIGlzIG5v
dCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU1ldGhvZHMgcmVzcG9uc2UgaGVhZGVy
IGZpZWxkLiI7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KICAgICB9CiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKIGJvb2wgQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNo
ZUl0ZW06OmFsbG93c1JlcXVlc3QoYm9vbCBpbmNsdWRlQ3JlZGVudGlhbHMsIGNvbnN0IFN0cmlu
ZyYgbWV0aG9kLCBjb25zdCBIVFRQSGVhZGVyTWFwJiByZXF1ZXN0SGVhZGVycykgY29uc3QKIHsK
KyAgICBTdHJpbmcgaWdub3JlZEV4cGxhbmF0aW9uOwogICAgIGlmIChtX2Fic29sdXRlRXhwaXJ5
VGltZSA8IGN1cnJlbnRUaW1lKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoaW5j
bHVkZUNyZWRlbnRpYWxzICYmICFtX2NyZWRlbnRpYWxzKQogICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgaWYgKCFhbGxvd3NDcm9zc09yaWdpbk1ldGhvZChtZXRob2QpKQorICAgIGlmICghYWxs
b3dzQ3Jvc3NPcmlnaW5NZXRob2QobWV0aG9kLCBpZ25vcmVkRXhwbGFuYXRpb24pKQogICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFhbGxvd3NDcm9zc09yaWdpbkhlYWRlcnMocmVxdWVz
dEhlYWRlcnMpKQorICAgIGlmICghYWxsb3dzQ3Jvc3NPcmlnaW5IZWFkZXJzKHJlcXVlc3RIZWFk
ZXJzLCBpZ25vcmVkRXhwbGFuYXRpb24pKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgcmV0
dXJuIHRydWU7CiB9CkluZGV4OiBXZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodFJl
c3VsdENhY2hlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5QcmVm
bGlnaHRSZXN1bHRDYWNoZS5oCShyZXZpc2lvbiA2MjMwMCkKKysrIFdlYkNvcmUvbG9hZGVyL0Ny
b3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuaAkod29ya2luZyBjb3B5KQpAQCAtNDUsOSAr
NDUsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHsKICAgICAgICAgfQogCi0gICAg
ICAgIGJvb2wgcGFyc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwotICAgICAgICBib29sIGFs
bG93c0Nyb3NzT3JpZ2luTWV0aG9kKGNvbnN0IFN0cmluZyYpIGNvbnN0OwotICAgICAgICBib29s
IGFsbG93c0Nyb3NzT3JpZ2luSGVhZGVycyhjb25zdCBIVFRQSGVhZGVyTWFwJikgY29uc3Q7Cisg
ICAgICAgIGJvb2wgcGFyc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIFN0cmluZyYgZXJyb3JE
ZXNjcmlwdGlvbik7CisgICAgICAgIGJvb2wgYWxsb3dzQ3Jvc3NPcmlnaW5NZXRob2QoY29uc3Qg
U3RyaW5nJiwgU3RyaW5nJiBlcnJvckRlc2NyaXB0aW9uKSBjb25zdDsKKyAgICAgICAgYm9vbCBh
bGxvd3NDcm9zc09yaWdpbkhlYWRlcnMoY29uc3QgSFRUUEhlYWRlck1hcCYsIFN0cmluZyYgZXJy
b3JEZXNjcmlwdGlvbikgY29uc3Q7CiAgICAgICAgIGJvb2wgYWxsb3dzUmVxdWVzdChib29sIGlu
Y2x1ZGVDcmVkZW50aWFscywgY29uc3QgU3RyaW5nJiBtZXRob2QsIGNvbnN0IEhUVFBIZWFkZXJN
YXAmIHJlcXVlc3RIZWFkZXJzKSBjb25zdDsKIAogICAgIHByaXZhdGU6CkluZGV4OiBXZWJDb3Jl
L2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAJKHJldmlzaW9uIDYyMzAwKQor
KysgV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNzUsNyArNzUsNyBAQCBEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6OkRvY3VtZW50
VGhyZWFkCiAgICAgfQogCiAgICAgaWYgKG1fb3B0aW9ucy5jcm9zc09yaWdpblJlcXVlc3RQb2xp
Y3kgPT0gRGVueUNyb3NzT3JpZ2luUmVxdWVzdHMpIHsKLSAgICAgICAgbV9jbGllbnQtPmRpZEZh
aWwoUmVzb3VyY2VFcnJvcigpKTsKKyAgICAgICAgbV9jbGllbnQtPmRpZEZhaWwoUmVzb3VyY2VF
cnJvcihlcnJvckRvbWFpbldlYktpdCwgMCwgcmVxdWVzdC51cmwoKS5zdHJpbmcoKSwgIkNyb3Nz
IG9yaWdpbiByZXF1ZXN0cyBhcmUgbm90IHN1cHBvcnRlZC4iKSk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAgICAgCkBAIC0xMDMsNyArMTAzLDcgQEAgdm9pZCBEb2N1bWVudFRocmVhZGFibGVM
b2FkZXI6Om1ha2VTaW1wbAogCiAgICAgLy8gQ3Jvc3Mtb3JpZ2luIHJlcXVlc3RzIGFyZSBvbmx5
IGRlZmluZWQgZm9yIEhUVFAuIFdlIHdvdWxkIGNhdGNoIHRoaXMgd2hlbiBjaGVja2luZyByZXNw
b25zZSBoZWFkZXJzIGxhdGVyLCBidXQgdGhlcmUgaXMgbm8gcmVhc29uIHRvIHNlbmQgYSByZXF1
ZXN0IHRoYXQncyBndWFyYW50ZWVkIHRvIGJlIGRlbmllZC4KICAgICBpZiAoIXJlcXVlc3QudXJs
KCkucHJvdG9jb2xJbkhUVFBGYW1pbHkoKSkgewotICAgICAgICBtX2NsaWVudC0+ZGlkRmFpbChS
ZXNvdXJjZUVycm9yKCkpOworICAgICAgICBtX2NsaWVudC0+ZGlkRmFpbChSZXNvdXJjZUVycm9y
KGVycm9yRG9tYWluV2ViS2l0LCAwLCByZXF1ZXN0LnVybCgpLnN0cmluZygpLCAiQ3Jvc3Mgb3Jp
Z2luIHJlcXVlc3RzIGFyZSBvbmx5IHN1cHBvcnRlZCBmb3IgSFRUUC4iKSk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKQEAgLTE4NiwyNSArMTg2LDI2IEBAIHZvaWQgRG9jdW1lbnRUaHJlYWRh
YmxlTG9hZGVyOjpkaWRSZWNlaXYKICAgICBBU1NFUlQobV9jbGllbnQpOwogICAgIEFTU0VSVF9V
TlVTRUQobG9hZGVyLCBsb2FkZXIgPT0gbV9sb2FkZXIpOwogCisgICAgU3RyaW5nIGFjY2Vzc0Nv
bnRyb2xFcnJvckRlc2NyaXB0aW9uOwogICAgIGlmIChtX2FjdHVhbFJlcXVlc3QpIHsKLSAgICAg
ICAgaWYgKCFwYXNzZXNBY2Nlc3NDb250cm9sQ2hlY2socmVzcG9uc2UsIG1fb3B0aW9ucy5hbGxv
d0NyZWRlbnRpYWxzLCBtX2RvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpKSkgewotICAgICAgICAg
ICAgcHJlZmxpZ2h0RmFpbHVyZSgpOworICAgICAgICBpZiAoIXBhc3Nlc0FjY2Vzc0NvbnRyb2xD
aGVjayhyZXNwb25zZSwgbV9vcHRpb25zLmFsbG93Q3JlZGVudGlhbHMsIG1fZG9jdW1lbnQtPnNl
Y3VyaXR5T3JpZ2luKCksIGFjY2Vzc0NvbnRyb2xFcnJvckRlc2NyaXB0aW9uKSkgeworICAgICAg
ICAgICAgcHJlZmxpZ2h0RmFpbHVyZShyZXNwb25zZS51cmwoKSwgYWNjZXNzQ29udHJvbEVycm9y
RGVzY3JpcHRpb24pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKICAgICAgICAg
T3duUHRyPENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGVJdGVtPiBwcmVmbGlnaHRSZXN1
bHQobmV3IENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGVJdGVtKG1fb3B0aW9ucy5hbGxv
d0NyZWRlbnRpYWxzKSk7Ci0gICAgICAgIGlmICghcHJlZmxpZ2h0UmVzdWx0LT5wYXJzZShyZXNw
b25zZSkKLSAgICAgICAgICAgIHx8ICFwcmVmbGlnaHRSZXN1bHQtPmFsbG93c0Nyb3NzT3JpZ2lu
TWV0aG9kKG1fYWN0dWFsUmVxdWVzdC0+aHR0cE1ldGhvZCgpKQotICAgICAgICAgICAgfHwgIXBy
ZWZsaWdodFJlc3VsdC0+YWxsb3dzQ3Jvc3NPcmlnaW5IZWFkZXJzKG1fYWN0dWFsUmVxdWVzdC0+
aHR0cEhlYWRlckZpZWxkcygpKSkgewotICAgICAgICAgICAgcHJlZmxpZ2h0RmFpbHVyZSgpOwor
ICAgICAgICBpZiAoIXByZWZsaWdodFJlc3VsdC0+cGFyc2UocmVzcG9uc2UsIGFjY2Vzc0NvbnRy
b2xFcnJvckRlc2NyaXB0aW9uKQorICAgICAgICAgICAgfHwgIXByZWZsaWdodFJlc3VsdC0+YWxs
b3dzQ3Jvc3NPcmlnaW5NZXRob2QobV9hY3R1YWxSZXF1ZXN0LT5odHRwTWV0aG9kKCksIGFjY2Vz
c0NvbnRyb2xFcnJvckRlc2NyaXB0aW9uKQorICAgICAgICAgICAgfHwgIXByZWZsaWdodFJlc3Vs
dC0+YWxsb3dzQ3Jvc3NPcmlnaW5IZWFkZXJzKG1fYWN0dWFsUmVxdWVzdC0+aHR0cEhlYWRlckZp
ZWxkcygpLCBhY2Nlc3NDb250cm9sRXJyb3JEZXNjcmlwdGlvbikpIHsKKyAgICAgICAgICAgIHBy
ZWZsaWdodEZhaWx1cmUocmVzcG9uc2UudXJsKCksIGFjY2Vzc0NvbnRyb2xFcnJvckRlc2NyaXB0
aW9uKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCiAgICAgICAgIENyb3NzT3Jp
Z2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGU6OnNoYXJlZCgpLmFwcGVuZEVudHJ5KG1fZG9jdW1lbnQt
PnNlY3VyaXR5T3JpZ2luKCktPnRvU3RyaW5nKCksIG1fYWN0dWFsUmVxdWVzdC0+dXJsKCksIHBy
ZWZsaWdodFJlc3VsdC5yZWxlYXNlKCkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGlmICghbV9z
YW1lT3JpZ2luUmVxdWVzdCAmJiBtX29wdGlvbnMuY3Jvc3NPcmlnaW5SZXF1ZXN0UG9saWN5ID09
IFVzZUFjY2Vzc0NvbnRyb2wpIHsKLSAgICAgICAgICAgIGlmICghcGFzc2VzQWNjZXNzQ29udHJv
bENoZWNrKHJlc3BvbnNlLCBtX29wdGlvbnMuYWxsb3dDcmVkZW50aWFscywgbV9kb2N1bWVudC0+
c2VjdXJpdHlPcmlnaW4oKSkpIHsKLSAgICAgICAgICAgICAgICBtX2NsaWVudC0+ZGlkRmFpbChS
ZXNvdXJjZUVycm9yKCkpOworICAgICAgICAgICAgaWYgKCFwYXNzZXNBY2Nlc3NDb250cm9sQ2hl
Y2socmVzcG9uc2UsIG1fb3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxzLCBtX2RvY3VtZW50LT5zZWN1
cml0eU9yaWdpbigpLCBhY2Nlc3NDb250cm9sRXJyb3JEZXNjcmlwdGlvbikpIHsKKyAgICAgICAg
ICAgICAgICBtX2NsaWVudC0+ZGlkRmFpbChSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluV2ViS2l0
LCAwLCByZXNwb25zZS51cmwoKS5zdHJpbmcoKSwgYWNjZXNzQ29udHJvbEVycm9yRGVzY3JpcHRp
b24pKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAgICAgICAgIH0K
QEAgLTI5MCwxMCArMjkxLDEwIEBAIHZvaWQgRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpwcmVm
bGlnaHQKICAgICBsb2FkUmVxdWVzdCgqYWN0dWFsUmVxdWVzdCwgU2tpcFNlY3VyaXR5Q2hlY2sp
OwogfQogCi12b2lkIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6cHJlZmxpZ2h0RmFpbHVyZSgp
Cit2b2lkIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6cHJlZmxpZ2h0RmFpbHVyZShjb25zdCBT
dHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBlcnJvckRlc2NyaXB0aW9uKQogewogICAgIG1fYWN0
dWFsUmVxdWVzdCA9IDA7IC8vIFByZXZlbnQgZGlkRmluaXNoTG9hZGluZygpIGZyb20gYnlwYXNz
aW5nIGFjY2VzcyBjaGVjay4KLSAgICBtX2NsaWVudC0+ZGlkRmFpbChSZXNvdXJjZUVycm9yKCkp
OworICAgIG1fY2xpZW50LT5kaWRGYWlsKFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5XZWJLaXQs
IDAsIHVybCwgZXJyb3JEZXNjcmlwdGlvbikpOwogfQogCiB2b2lkIERvY3VtZW50VGhyZWFkYWJs
ZUxvYWRlcjo6bG9hZFJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTZWN1
cml0eUNoZWNrUG9saWN5IHNlY3VyaXR5Q2hlY2spCkluZGV4OiBXZWJDb3JlL2xvYWRlci9Eb2N1
bWVudFRocmVhZGFibGVMb2FkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9Eb2N1
bWVudFRocmVhZGFibGVMb2FkZXIuaAkocmV2aXNpb24gNjIzMDApCisrKyBXZWJDb3JlL2xvYWRl
ci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNDMsNiArNDMs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgRG9jdW1lbnQ7CiAgICAgY2xhc3Mg
S1VSTDsKICAgICBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CisgICAgY2xhc3MgU3RyaW5nOwogICAg
IGNsYXNzIFRocmVhZGFibGVMb2FkZXJDbGllbnQ7CiAKICAgICBjbGFzcyBEb2N1bWVudFRocmVh
ZGFibGVMb2FkZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxEb2N1bWVudFRocmVhZGFibGVMb2FkZXI+
LCBwdWJsaWMgVGhyZWFkYWJsZUxvYWRlciwgcHJpdmF0ZSBTdWJyZXNvdXJjZUxvYWRlckNsaWVu
dCAgewpAQCAtODQsNyArODUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQg
bWFrZVNpbXBsZUNyb3NzT3JpZ2luQWNjZXNzUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QpOwogICAgICAgICB2b2lkIG1ha2VDcm9zc09yaWdpbkFjY2Vzc1JlcXVlc3RXaXRo
UHJlZmxpZ2h0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCk7CiAgICAgICAgIHZvaWQg
cHJlZmxpZ2h0U3VjY2VzcygpOwotICAgICAgICB2b2lkIHByZWZsaWdodEZhaWx1cmUoKTsKKyAg
ICAgICAgdm9pZCBwcmVmbGlnaHRGYWlsdXJlKGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJp
bmcmIGVycm9yRGVzY3JpcHRpb24pOwogCiAgICAgICAgIHZvaWQgbG9hZFJlcXVlc3QoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiwgU2VjdXJpdHlDaGVja1BvbGljeSk7CiAgICAgICAgIGJvb2wgaXNB
bGxvd2VkUmVkaXJlY3QoY29uc3QgS1VSTCYpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL1Jlc291cmNlRXJyb3JCYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VFcnJvckJhc2UuY3BwCShyZXZpc2lvbiA2MjMwMCkKKysrIFdlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUVycm9yQmFzZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI5LDYgKzI5LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjb25zdCBjaGFyKiBj
b25zdCBlcnJvckRvbWFpbldlYktpdCA9ICJXZWJLaXQiOworCiBSZXNvdXJjZUVycm9yIFJlc291
cmNlRXJyb3JCYXNlOjpjb3B5KCkgY29uc3QKIHsKICAgICBsYXp5SW5pdCgpOwpJbmRleDogV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlRXJyb3JCYXNlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlRXJyb3JCYXNlLmgJKHJldmlzaW9uIDYy
MzAwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlRXJyb3JCYXNlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBSZXNvdXJjZUVycm9yOwogCitleHRlcm4gY29uc3QgY2hhciogY29uc3QgZXJyb3JEb21haW5X
ZWJLaXQ7CisKIGNsYXNzIFJlc291cmNlRXJyb3JCYXNlIHsKIHB1YmxpYzoKICAgICAvLyBNYWtl
cyBhIGRlZXAgY29weS4gVXNlZnVsIGZvciB3aGVuIHlvdSBuZWVkIHRvIHVzZSBhIFJlc291cmNl
RXJyb3Igb24gYW5vdGhlciB0aHJlYWQuCkluZGV4OiBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVz
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCShyZXZp
c2lvbiA2MjMwMCkKKysrIFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtODcyLDYgKzg3MiwxMCBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpkaWRGYWlsKGNv
bnN0IFJlc291CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICAvLyBOZXR3b3JrIGZhaWx1
cmVzIGFyZSBhbHJlYWR5IHJlcG9ydGVkIHRvIFdlYiBJbnNwZWN0b3IgYnkgUmVzb3VyY2VMb2Fk
ZXIuCisgICAgaWYgKGVycm9yLmRvbWFpbigpID09IGVycm9yRG9tYWluV2ViS2l0KQorICAgICAg
ICByZXBvcnRVbnNhZmVVc2FnZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksICJYTUxIdHRwUmVx
dWVzdCBjYW5ub3QgbG9hZCAiICsgZXJyb3IuZmFpbGluZ1VSTCgpICsgIi4gIiArIGVycm9yLmxv
Y2FsaXplZERlc2NyaXB0aW9uKCkpOworCiAgICAgbV9leGNlcHRpb25Db2RlID0gWE1MSHR0cFJl
cXVlc3RFeGNlcHRpb246Ok5FVFdPUktfRVJSOwogICAgIG5ldHdvcmtFcnJvcigpOwogfQo=
</data>
<flag name="review"
          id="47909"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>