<?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>109753</bug_id>
          
          <creation_ts>2013-02-13 14:56:51 -0800</creation_ts>
          <short_desc>CORS preflight broken with NetworkProcess</short_desc>
          <delta_ts>2013-02-14 16:31:01 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Page Loading</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>beidson</cc>
    
    <cc>dglazkov</cc>
    
    <cc>japhet</cc>
    
    <cc>pfeldman</cc>
    
    <cc>vsevik</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>832383</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-02-13 14:56:51 -0800</bug_when>
    <thetext>NetworkProcess needs all loaders to have identifiers. But we don&apos;t currently assign an identifier if we don&apos;t plan to make FrameLoaderClient calls, such as with CORS preflight requests.

&lt;rdar://problem/13210723&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832427</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-02-13 15:42:42 -0800</bug_when>
    <thetext>One way to reproduce is with http/tests/xmlhttprequest/access-control-basic-non-simple-allow-async.html

This is a bit tricky, because there is a lot of code written to work around the current behavior instead of fixing it. DocumentThreadableLoader::loadRequest second-guesses what a lower level would do, and preemptively generates a fake identifier (it also has an incorrect comment explaining why it does that):

#if ENABLE(INSPECTOR)
        if (m_actualRequest) {
            // Because willSendRequest only gets called during redirects, we initialize the identifier and the first willSendRequest here.
            m_preflightRequestIdentifier = m_document-&gt;frame()-&gt;page()-&gt;progress()-&gt;createUniqueIdentifier();
            ResourceResponse redirectResponse = ResourceResponse();
            InspectorInstrumentation::willSendRequest(m_document-&gt;frame(), m_preflightRequestIdentifier, m_document-&gt;frame()-&gt;loader()-&gt;documentLoader(), newRequest.mutableResourceRequest(), redirectResponse);
        }
#endif

It&apos;s not true that willSendRequest only gets called during redirects - this function gets called unconditionally. So we should get rid of m_preflightRequestIdentifier, and just always generate a real ResourceLoader identifier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832460</commentid>
    <comment_count>2</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-02-13 16:05:23 -0800</bug_when>
    <thetext>Yes, please, do this.  I have a related bug.  Please let me know when the patch is ready I&apos;ll review asap :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832689</commentid>
    <comment_count>3</comment_count>
      <attachid>188253</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-02-13 20:07:23 -0800</bug_when>
    <thetext>Created attachment 188253
WIP patch

This breaks at least one inspector test, let&apos;s see what EWS thinks about other tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832712</commentid>
    <comment_count>4</comment_count>
      <attachid>188253</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-13 21:22:37 -0800</bug_when>
    <thetext>Comment on attachment 188253
WIP patch

Attachment 188253 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16514485

New failing tests:
http/tests/inspector/network-preflight-options.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832737</commentid>
    <comment_count>5</comment_count>
      <attachid>188253</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-13 22:28:32 -0800</bug_when>
    <thetext>Comment on attachment 188253
WIP patch

Attachment 188253 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16537467

New failing tests:
http/tests/inspector/network-preflight-options.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832876</commentid>
    <comment_count>6</comment_count>
      <attachid>188253</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2013-02-14 02:15:45 -0800</bug_when>
    <thetext>Comment on attachment 188253
WIP patch

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

&gt; Source/WebCore/loader/DocumentThreadableLoader.cpp:315
&gt; +    if (m_actualRequest) {

m_actualRequest is reset to nullptr in preflightFailure(). This is the reason inspector does not receive didFinishLoading/didFailLoading events in case of failed asynchronous preflight request and the test fails.

&gt; Source/WebCore/loader/DocumentThreadableLoader.cpp:329
&gt; +    if (m_actualRequest)

Ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833285</commentid>
    <comment_count>7</comment_count>
      <attachid>188393</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-02-14 11:50:22 -0800</bug_when>
    <thetext>Created attachment 188393
proposed fix

This doesn&apos;t make everything beautiful, but should be an improvement overall, in addition to fixing the bug. One thing that should improve a little is that Inspector should be getting an accurate error when CORS check fails now (it used to be a cancellation error instead).

Perhaps it would now be possible to move all InspectorInstrumentation calls to ResourceLoader now, whether it&apos;s doing preflight or not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833289</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-14 11:52:59 -0800</bug_when>
    <thetext>Attachment 188393 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/loader/DocumentThreadableLoader.cpp&apos;, u&apos;Source/WebCore/loader/DocumentThreadableLoader.h&apos;, u&apos;Source/WebCore/loader/ResourceLoader.cpp&apos;, u&apos;Source/WebCore/loader/TextTrackLoader.cpp&apos;, u&apos;Source/WebCore/loader/TextTrackLoader.h&apos;, u&apos;Source/WebCore/loader/cache/CachedResourceClient.h&apos;, u&apos;Source/WebCore/loader/cache/CachedTextTrack.cpp&apos;]&quot; exit_code: 1
Source/WebCore/loader/DocumentThreadableLoader.cpp:356:  One line control clauses should not use braces.  [whitespace/braces] [4]
Total errors found: 1 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833526</commentid>
    <comment_count>9</comment_count>
      <attachid>188393</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-02-14 16:17:15 -0800</bug_when>
    <thetext>Comment on attachment 188393
proposed fix

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

&gt;&gt; Source/WebCore/loader/DocumentThreadableLoader.cpp:356
&gt;&gt; +    if (m_actualRequest) {
&gt;&gt; +        InspectorInstrumentation::didFailLoading(m_document-&gt;frame(), m_document-&gt;frame()-&gt;loader()-&gt;documentLoader(), identifier, error);
&gt;&gt; +    }
&gt; 
&gt; One line control clauses should not use braces.  [whitespace/braces] [4]

Listen to style-bot here</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833542</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-02-14 16:31:01 -0800</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/changeset/142936&gt;.

&gt; Perhaps it would now be possible to move all InspectorInstrumentation calls to ResourceLoader now, whether it&apos;s doing preflight or not.

The more I think about it, the more it seems to me that this would greatly simplify things. And we&apos;d be able to remove those identifier parameters that I just added.

Vsevolod, would you be willing to explore this idea?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188253</attachid>
            <date>2013-02-13 20:07:23 -0800</date>
            <delta_ts>2013-02-14 11:50:22 -0800</delta_ts>
            <desc>WIP patch</desc>
            <filename>WIP.txt</filename>
            <type>text/plain</type>
            <size>10520</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVM
b2FkZXIuY3BwCShyZXZpc2lvbiAxNDI3NjQpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9j
dW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzgsOSArNzgsNiBA
QCBEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6OkRvY3VtZW50VGhyZWFkCiAgICAgLCBtX3NhbWVP
cmlnaW5SZXF1ZXN0KHNlY3VyaXR5T3JpZ2luKCktPmNhblJlcXVlc3QocmVxdWVzdC51cmwoKSkp
CiAgICAgLCBtX3NpbXBsZVJlcXVlc3QodHJ1ZSkKICAgICAsIG1fYXN5bmMoYmxvY2tpbmdCZWhh
dmlvciA9PSBMb2FkQXN5bmNocm9ub3VzbHkpCi0jaWYgRU5BQkxFKElOU1BFQ1RPUikKLSAgICAs
IG1fcHJlZmxpZ2h0UmVxdWVzdElkZW50aWZpZXIoMCkKLSNlbmRpZgogewogICAgIEFTU0VSVChk
b2N1bWVudCk7CiAgICAgQVNTRVJUKGNsaWVudCk7CkBAIC0yNDcsMTYgKzI0NCwxNCBAQCB2b2lk
IERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6ZGlkUmVjZWl2CiB7CiAgICAgQVNTRVJUKG1fY2xp
ZW50KTsKIAorICAgIFN0cmluZyBhY2Nlc3NDb250cm9sRXJyb3JEZXNjcmlwdGlvbjsKKyAgICBp
ZiAobV9hY3R1YWxSZXF1ZXN0KSB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKLSAgICBpZiAobV9w
cmVmbGlnaHRSZXF1ZXN0SWRlbnRpZmllcikgewogICAgICAgICBEb2N1bWVudExvYWRlciogbG9h
ZGVyID0gbV9kb2N1bWVudC0+ZnJhbWUoKS0+bG9hZGVyKCktPmRvY3VtZW50TG9hZGVyKCk7Ci0g
ICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBjb29raWUgPSBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OndpbGxSZWNlaXZlUmVzb3VyY2VSZXNwb25zZShtX2RvY3VtZW50LT5m
cmFtZSgpLCBtX3ByZWZsaWdodFJlcXVlc3RJZGVudGlmaWVyLCByZXNwb25zZSk7Ci0gICAgICAg
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZVJlc291cmNlUmVzcG9uc2UoY29v
a2llLCBtX3ByZWZsaWdodFJlcXVlc3RJZGVudGlmaWVyLCBsb2FkZXIsIHJlc3BvbnNlLCAwKTsK
LSAgICB9CisgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBjb29raWUgPSBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxSZWNlaXZlUmVzb3VyY2VSZXNwb25zZShtX2Rv
Y3VtZW50LT5mcmFtZSgpLCBpZGVudGlmaWVyLCByZXNwb25zZSk7CisgICAgICAgIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZVJlc291cmNlUmVzcG9uc2UoY29va2llLCBpZGVu
dGlmaWVyLCBsb2FkZXIsIHJlc3BvbnNlLCAwKTsKICNlbmRpZgogCi0gICAgU3RyaW5nIGFjY2Vz
c0NvbnRyb2xFcnJvckRlc2NyaXB0aW9uOwotICAgIGlmIChtX2FjdHVhbFJlcXVlc3QpIHsKICAg
ICAgICAgaWYgKCFwYXNzZXNBY2Nlc3NDb250cm9sQ2hlY2socmVzcG9uc2UsIG1fb3B0aW9ucy5h
bGxvd0NyZWRlbnRpYWxzLCBzZWN1cml0eU9yaWdpbigpLCBhY2Nlc3NDb250cm9sRXJyb3JEZXNj
cmlwdGlvbikpIHsKICAgICAgICAgICAgIHByZWZsaWdodEZhaWx1cmUocmVzcG9uc2UudXJsKCks
IGFjY2Vzc0NvbnRyb2xFcnJvckRlc2NyaXB0aW9uKTsKICAgICAgICAgICAgIHJldHVybjsKQEAg
LTI4NSwxNyArMjgwLDIxIEBAIHZvaWQgRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpkaWRSZWNl
aXYKIAogdm9pZCBEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6OmRhdGFSZWNlaXZlZChDYWNoZWRS
ZXNvdXJjZSogcmVzb3VyY2UsIGNvbnN0IGNoYXIqIGRhdGEsIGludCBkYXRhTGVuZ3RoKQogewot
ICAgIEFTU0VSVChtX2NsaWVudCk7CiAgICAgQVNTRVJUX1VOVVNFRChyZXNvdXJjZSwgcmVzb3Vy
Y2UgPT0gbV9yZXNvdXJjZSk7CisgICAgZGlkUmVjZWl2ZURhdGEobV9yZXNvdXJjZS0+aWRlbnRp
ZmllcigpLCBkYXRhLCBkYXRhTGVuZ3RoKTsKK30KIAotI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0g
ICAgaWYgKG1fcHJlZmxpZ2h0UmVxdWVzdElkZW50aWZpZXIpCi0gICAgICAgIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZURhdGEobV9kb2N1bWVudC0+ZnJhbWUoKSwgbV9wcmVm
bGlnaHRSZXF1ZXN0SWRlbnRpZmllciwgMCwgMCwgZGF0YUxlbmd0aCk7Ci0jZW5kaWYKK3ZvaWQg
RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpkaWRSZWNlaXZlRGF0YSh1bnNpZ25lZCBsb25nIGlk
ZW50aWZpZXIsIGNvbnN0IGNoYXIqIGRhdGEsIGludCBkYXRhTGVuZ3RoKQoreworICAgIEFTU0VS
VChtX2NsaWVudCk7CiAKICAgICAvLyBQcmVmbGlnaHQgZGF0YSBzaG91bGQgYmUgaW52aXNpYmxl
IHRvIGNsaWVudHMuCi0gICAgaWYgKG1fYWN0dWFsUmVxdWVzdCkKKyAgICBpZiAobV9hY3R1YWxS
ZXF1ZXN0KSB7CisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKyAgICAgICAgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpkaWRSZWNlaXZlRGF0YShtX2RvY3VtZW50LT5mcmFtZSgpLCBpZGVudGlmaWVy
LCAwLCAwLCBkYXRhTGVuZ3RoKTsKKyNlbmRpZgogICAgICAgICByZXR1cm47CisgICAgfQogCiAg
ICAgbV9jbGllbnQtPmRpZFJlY2VpdmVEYXRhKGRhdGEsIGRhdGFMZW5ndGgpOwogfQpAQCAtMzEz
LDEyICszMTIsMTAgQEAgdm9pZCBEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6Om5vdGlmeUZpbgog
CiB2b2lkIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyh1bnNpZ25l
ZCBsb25nIGlkZW50aWZpZXIsIGRvdWJsZSBmaW5pc2hUaW1lKQogeworICAgIGlmIChtX2FjdHVh
bFJlcXVlc3QpIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgIGlmIChtX3ByZWZsaWdodFJl
cXVlc3RJZGVudGlmaWVyKQotICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEZp
bmlzaExvYWRpbmcobV9kb2N1bWVudC0+ZnJhbWUoKSwgbV9kb2N1bWVudC0+ZnJhbWUoKS0+bG9h
ZGVyKCktPmRvY3VtZW50TG9hZGVyKCksIG1fcHJlZmxpZ2h0UmVxdWVzdElkZW50aWZpZXIsIGZp
bmlzaFRpbWUpOworICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEZpbmlzaExv
YWRpbmcobV9kb2N1bWVudC0+ZnJhbWUoKSwgbV9kb2N1bWVudC0+ZnJhbWUoKS0+bG9hZGVyKCkt
PmRvY3VtZW50TG9hZGVyKCksIGlkZW50aWZpZXIsIGZpbmlzaFRpbWUpOwogI2VuZGlmCi0KLSAg
ICBpZiAobV9hY3R1YWxSZXF1ZXN0KSB7CiAgICAgICAgIEFTU0VSVCghbV9zYW1lT3JpZ2luUmVx
dWVzdCk7CiAgICAgICAgIEFTU0VSVChtX29wdGlvbnMuY3Jvc3NPcmlnaW5SZXF1ZXN0UG9saWN5
ID09IFVzZUFjY2Vzc0NvbnRyb2wpOwogICAgICAgICBwcmVmbGlnaHRTdWNjZXNzKCk7CkBAIC0z
MjksOCArMzI2LDggQEAgdm9pZCBEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6OmRpZEZpbmlzaAog
dm9pZCBEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6OmRpZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJv
ciYgZXJyb3IpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKLSAgICBpZiAobV9wcmVmbGlnaHRS
ZXF1ZXN0SWRlbnRpZmllcikKLSAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRG
YWlsTG9hZGluZyhtX2RvY3VtZW50LT5mcmFtZSgpLCBtX2RvY3VtZW50LT5mcmFtZSgpLT5sb2Fk
ZXIoKS0+ZG9jdW1lbnRMb2FkZXIoKSwgbV9wcmVmbGlnaHRSZXF1ZXN0SWRlbnRpZmllciwgZXJy
b3IpOworICAgIGlmIChtX2FjdHVhbFJlcXVlc3QpCisgICAgICAgIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6ZGlkRmFpbExvYWRpbmcobV9kb2N1bWVudC0+ZnJhbWUoKSwgbV9kb2N1bWVudC0+
ZnJhbWUoKS0+bG9hZGVyKCktPmRvY3VtZW50TG9hZGVyKCksIG1fcmVzb3VyY2UtPmxvYWRlcigp
LT5pZGVudGlmaWVyKCksIGVycm9yKTsKICNlbmRpZgogCiAgICAgbV9jbGllbnQtPmRpZEZhaWwo
ZXJyb3IpOwpAQCAtMzc4LDIwICszNzUsMTIgQEAgdm9pZCBEb2N1bWVudFRocmVhZGFibGVMb2Fk
ZXI6OmxvYWRSZXF1ZQogI2lmIEVOQUJMRShSRVNPVVJDRV9USU1JTkcpCiAgICAgICAgIG5ld1Jl
cXVlc3Quc2V0SW5pdGlhdG9yKG1fb3B0aW9ucy5pbml0aWF0b3IpOwogI2VuZGlmCi0jaWYgRU5B
QkxFKElOU1BFQ1RPUikKLSAgICAgICAgaWYgKG1fYWN0dWFsUmVxdWVzdCkgewotICAgICAgICAg
ICAgLy8gQmVjYXVzZSB3aWxsU2VuZFJlcXVlc3Qgb25seSBnZXRzIGNhbGxlZCBkdXJpbmcgcmVk
aXJlY3RzLCB3ZSBpbml0aWFsaXplIHRoZSBpZGVudGlmaWVyIGFuZCB0aGUgZmlyc3Qgd2lsbFNl
bmRSZXF1ZXN0IGhlcmUuCi0gICAgICAgICAgICBtX3ByZWZsaWdodFJlcXVlc3RJZGVudGlmaWVy
ID0gbV9kb2N1bWVudC0+ZnJhbWUoKS0+cGFnZSgpLT5wcm9ncmVzcygpLT5jcmVhdGVVbmlxdWVJ
ZGVudGlmaWVyKCk7Ci0gICAgICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlZGlyZWN0UmVzcG9u
c2UgPSBSZXNvdXJjZVJlc3BvbnNlKCk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OndpbGxTZW5kUmVxdWVzdChtX2RvY3VtZW50LT5mcmFtZSgpLCBtX3ByZWZsaWdodFJl
cXVlc3RJZGVudGlmaWVyLCBtX2RvY3VtZW50LT5mcmFtZSgpLT5sb2FkZXIoKS0+ZG9jdW1lbnRM
b2FkZXIoKSwgbmV3UmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCksIHJlZGlyZWN0UmVz
cG9uc2UpOwotICAgICAgICB9Ci0jZW5kaWYKICAgICAgICAgQVNTRVJUKCFtX3Jlc291cmNlKTsK
ICAgICAgICAgbV9yZXNvdXJjZSA9IG1fZG9jdW1lbnQtPmNhY2hlZFJlc291cmNlTG9hZGVyKCkt
PnJlcXVlc3RSYXdSZXNvdXJjZShuZXdSZXF1ZXN0KTsKICAgICAgICAgaWYgKG1fcmVzb3VyY2Up
IHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgICAgICAgICAgaWYgKG1fcmVzb3VyY2UtPmxv
YWRlcigpKSB7Ci0gICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyID0gbV9h
Y3R1YWxSZXF1ZXN0ID8gbV9wcmVmbGlnaHRSZXF1ZXN0SWRlbnRpZmllciA6IG1fcmVzb3VyY2Ut
PmxvYWRlcigpLT5pZGVudGlmaWVyKCk7CisgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBp
ZGVudGlmaWVyID0gbV9yZXNvdXJjZS0+bG9hZGVyKCktPmlkZW50aWZpZXIoKTsKICAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRvY3VtZW50VGhyZWFkYWJsZUxvYWRl
clN0YXJ0ZWRMb2FkaW5nRm9yQ2xpZW50KG1fZG9jdW1lbnQsIGlkZW50aWZpZXIsIG1fY2xpZW50
KTsKICAgICAgICAgICAgIH0KICNlbmRpZgpAQCAtNDI5LDcgKzQxOCw3IEBAIHZvaWQgRG9jdW1l
bnRUaHJlYWRhYmxlTG9hZGVyOjpsb2FkUmVxdWUKIAogICAgIGNvbnN0IGNoYXIqIGJ5dGVzID0g
c3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEuZGF0YSgpKTsKICAgICBpbnQgbGVuID0gc3Rh
dGljX2Nhc3Q8aW50PihkYXRhLnNpemUoKSk7Ci0gICAgZGF0YVJlY2VpdmVkKDAsIGJ5dGVzLCBs
ZW4pOworICAgIGRpZFJlY2VpdmVEYXRhKGlkZW50aWZpZXIsIGJ5dGVzLCBsZW4pOwogCiAgICAg
ZGlkRmluaXNoTG9hZGluZyhpZGVudGlmaWVyLCAwLjApOwogfQpJbmRleDogU291cmNlL1dlYkNv
cmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuaAkocmV2aXNpb24gMTQy
NzY0KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5o
CSh3b3JraW5nIGNvcHkpCkBAIC04Nyw2ICs4Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNl
bmRpZgogCiAgICAgICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRl
bnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOworICAgICAgICB2b2lkIGRpZFJlY2Vp
dmVEYXRhKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgY2hhciogZGF0YSwgaW50IGRh
dGFMZW5ndGgpOwogICAgICAgICB2b2lkIGRpZEZpbmlzaExvYWRpbmcodW5zaWduZWQgbG9uZyBp
ZGVudGlmaWVyLCBkb3VibGUgZmluaXNoVGltZSk7CiAgICAgICAgIHZvaWQgZGlkRmFpbChjb25z
dCBSZXNvdXJjZUVycm9yJik7CiAgICAgICAgIHZvaWQgbWFrZUNyb3NzT3JpZ2luQWNjZXNzUmVx
dWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKQEAgLTEwOCwxMCArMTA5LDYgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICBib29sIG1fc2ltcGxlUmVxdWVzdDsKICAgICAgICAgYm9v
bCBtX2FzeW5jOwogICAgICAgICBPd25QdHI8UmVzb3VyY2VSZXF1ZXN0PiBtX2FjdHVhbFJlcXVl
c3Q7ICAvLyBub24tbnVsbCBkdXJpbmcgQWNjZXNzIENvbnRyb2wgcHJlZmxpZ2h0IGNoZWNrcwot
Ci0jaWYgRU5BQkxFKElOU1BFQ1RPUikKLSAgICAgICAgdW5zaWduZWQgbG9uZyBtX3ByZWZsaWdo
dFJlcXVlc3RJZGVudGlmaWVyOwotI2VuZGlmCiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCShyZXZp
c2lvbiAxNDI3NjQpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yMzUsMTQgKzIzNSwyMyBAQCB2b2lkIFJlc291cmNlTG9hZGVy
Ojp3aWxsU2VuZFJlcXVlc3QoUmVzCiAKICAgICBBU1NFUlQoIW1fcmVhY2hlZFRlcm1pbmFsU3Rh
dGUpOwogCisgICAgLy8gV2UgbmVlZCBhIHJlc291cmNlIGlkZW50aWZpZXIgZm9yIGFsbCByZXF1
ZXN0cywgZXZlbiBpZiBGcmFtZUxvYWRlciBpcyBuZXZlciBnb2luZyB0byBzZWUgaXQgKHN1Y2gg
YXMgd2l0aCBDT1JTIHByZWZsaWdodCByZXF1ZXN0cykuCisgICAgYm9vbCBjcmVhdGVkUmVzb3Vy
Y2VJZGVudGlmaWVyID0gZmFsc2U7CisgICAgaWYgKCFtX2lkZW50aWZpZXIpIHsKKyAgICAgICAg
bV9pZGVudGlmaWVyID0gbV9mcmFtZS0+cGFnZSgpLT5wcm9ncmVzcygpLT5jcmVhdGVVbmlxdWVJ
ZGVudGlmaWVyKCk7CisgICAgICAgIGNyZWF0ZWRSZXNvdXJjZUlkZW50aWZpZXIgPSB0cnVlOwor
ICAgIH0KKwogICAgIGlmIChtX29wdGlvbnMuc2VuZExvYWRDYWxsYmFja3MgPT0gU2VuZENhbGxi
YWNrcykgewotICAgICAgICBpZiAoIW1faWRlbnRpZmllcikgewotICAgICAgICAgICAgbV9pZGVu
dGlmaWVyID0gbV9mcmFtZS0+cGFnZSgpLT5wcm9ncmVzcygpLT5jcmVhdGVVbmlxdWVJZGVudGlm
aWVyKCk7CisgICAgICAgIGlmIChjcmVhdGVkUmVzb3VyY2VJZGVudGlmaWVyKQogICAgICAgICAg
ICAgZnJhbWVMb2FkZXIoKS0+bm90aWZpZXIoKS0+YXNzaWduSWRlbnRpZmllclRvSW5pdGlhbFJl
cXVlc3QobV9pZGVudGlmaWVyLCBkb2N1bWVudExvYWRlcigpLCByZXF1ZXN0KTsKLSAgICAgICAg
fQogCiAgICAgICAgIGZyYW1lTG9hZGVyKCktPm5vdGlmaWVyKCktPndpbGxTZW5kUmVxdWVzdCh0
aGlzLCByZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsKICAgICB9CisjaWYgRU5BQkxFKElOU1BF
Q1RPUikKKyAgICBlbHNlCisgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFNl
bmRSZXF1ZXN0KG1fZnJhbWUuZ2V0KCksIG1faWRlbnRpZmllciwgbV9mcmFtZS0+bG9hZGVyKCkt
PmRvY3VtZW50TG9hZGVyKCksIHJlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UpOworI2VuZGlmCiAK
ICAgICBpZiAoIXJlZGlyZWN0UmVzcG9uc2UuaXNOdWxsKCkpIHsKICNpZiBVU0UoUExBVEZPUk1f
U1RSQVRFR0lFUykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9UZXh0VHJhY2tMb2FkZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9UZXh0VHJhY2tMb2FkZXIu
Y3BwCShyZXZpc2lvbiAxNDI3NjQpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNr
TG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAzLDcgKzEwMyw4IEBAIHZvaWQgVGV4dFRy
YWNrTG9hZGVyOjpwcm9jZXNzTmV3Q3VlRGF0YSgKICAgICB9CiB9CiAKLXZvaWQgVGV4dFRyYWNr
TG9hZGVyOjpkaWRSZWNlaXZlRGF0YShDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UpCisvLyBGSVhN
RTogVGhpcyBpcyBhIHZlcnkgdW51c3VhbCBwYXR0ZXJuLCBubyBvdGhlciBDYWNoZWRSZXNvdXJj
ZUNsaWVudCBkb2VzIHRoaXMuIFJlZmFjdG9yIHRvIHVzZSBub3RpZnlGaW5pc2hlZCgpIGluc3Rl
YWQuCit2b2lkIFRleHRUcmFja0xvYWRlcjo6ZGVwcmVjYXRlZERpZFJlY2VpdmVDYWNoZWRSZXNv
dXJjZShDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UpCiB7CiAgICAgQVNTRVJUKG1fY2FjaGVkQ3Vl
RGF0YSA9PSByZXNvdXJjZSk7CiAgICAgCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4
dFRyYWNrTG9hZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRU
cmFja0xvYWRlci5oCShyZXZpc2lvbiAxNDI3NjQpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIv
VGV4dFRyYWNrTG9hZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTY5LDcgKzY5LDcgQEAgcHJpdmF0
ZToKIAogICAgIC8vIENhY2hlZFJlc291cmNlQ2xpZW50CiAgICAgdmlydHVhbCB2b2lkIG5vdGlm
eUZpbmlzaGVkKENhY2hlZFJlc291cmNlKik7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVE
YXRhKENhY2hlZFJlc291cmNlKik7CisgICAgdmlydHVhbCB2b2lkIGRlcHJlY2F0ZWREaWRSZWNl
aXZlQ2FjaGVkUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2UqKTsKICAgICAKICAgICAvLyBXZWJWVFRQ
YXJzZXJDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQgbmV3Q3Vlc1BhcnNlZCgpOwpJbmRleDogU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlQ2xpZW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlQ2xpZW50LmgJ
KHJldmlzaW9uIDE0Mjc2NCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoK
IAogICAgIHZpcnR1YWwgfkNhY2hlZFJlc291cmNlQ2xpZW50KCkgeyB9CiAgICAgdmlydHVhbCB2
b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKikgeyB9Ci0gICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVEYXRhKENhY2hlZFJlc291cmNlKikgeyB9OworICAgIHZpcnR1YWwgdm9pZCBk
ZXByZWNhdGVkRGlkUmVjZWl2ZUNhY2hlZFJlc291cmNlKENhY2hlZFJlc291cmNlKikgeyB9CiAg
ICAgCiAgICAgc3RhdGljIENhY2hlZFJlc291cmNlQ2xpZW50VHlwZSBleHBlY3RlZFR5cGUoKSB7
IHJldHVybiBCYXNlUmVzb3VyY2VUeXBlOyB9CiAgICAgdmlydHVhbCBDYWNoZWRSZXNvdXJjZUNs
aWVudFR5cGUgcmVzb3VyY2VDbGllbnRUeXBlKCkgY29uc3QgeyByZXR1cm4gZXhwZWN0ZWRUeXBl
KCk7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRUZXh0VHJhY2su
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRUZXh0
VHJhY2suY3BwCShyZXZpc2lvbiAxNDI3NjQpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkVGV4dFRyYWNrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTUsNyArNTUsNyBAQCB2
b2lkIENhY2hlZFRleHRUcmFjazo6ZGF0YShQYXNzUmVmUHRyPFJlCiAKICAgICBDYWNoZWRSZXNv
dXJjZUNsaWVudFdhbGtlcjxDYWNoZWRSZXNvdXJjZUNsaWVudD4gd2Fsa2VyKG1fY2xpZW50cyk7
CiAgICAgd2hpbGUgKENhY2hlZFJlc291cmNlQ2xpZW50ICpjbGllbnQgPSB3YWxrZXIubmV4dCgp
KQotICAgICAgICBjbGllbnQtPmRpZFJlY2VpdmVEYXRhKHRoaXMpOworICAgICAgICBjbGllbnQt
PmRlcHJlY2F0ZWREaWRSZWNlaXZlQ2FjaGVkUmVzb3VyY2UodGhpcyk7CiAKICAgICBpZiAoIWFs
bERhdGFSZWNlaXZlZCkKICAgICAgICAgcmV0dXJuOwo=
</data>
<flag name="commit-queue"
          id="208322"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188393</attachid>
            <date>2013-02-14 11:50:22 -0800</date>
            <delta_ts>2013-02-14 16:17:15 -0800</delta_ts>
            <desc>proposed fix</desc>
            <filename>CORSIdentifier.txt</filename>
            <type>text/plain</type>
            <size>16423</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0Mjg5MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQxIEBACisyMDEzLTAyLTE0ICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8x
MzIxMDcyMz4gQ09SUyBwcmVmbGlnaHQgYnJva2VuIHdpdGggTmV0d29ya1Byb2Nlc3MKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTc1MworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogbG9hZGVyL0RvY3Vt
ZW50VGhyZWFkYWJsZUxvYWRlci5oOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudFRocmVhZGFi
bGVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVy
OjpEb2N1bWVudFRocmVhZGFibGVMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRU
aHJlYWRhYmxlTG9hZGVyOjpjYW5jZWwpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRUaHJl
YWRhYmxlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpkYXRhUmVjZWl2ZWQpOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6OmRpZEZhaWwpOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpwcmVmbGlnaHRGYWlsdXJl
KTogTm90aWZ5IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbgorICAgICAgICBpbW1lZGlhdGVseS4g
SW4gYWRkaXRpb24gdG8ga2VlcGluZyB1cCBlaXRoIG90aGVyIGNoYW5nZXMsIHRoaXMgbWVhbnMg
dGhhdCBhbiBhY2N1cmF0ZQorICAgICAgICBlcnJvciB3aWxsIGJlIHBhc3NlZCBub3csIG5vdCBh
IGNhbmNlbGxhdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGhyZWFkYWJsZUxvYWRl
cjo6bG9hZFJlcXVlc3QpOgorICAgICAgICBHZXQgcmlkIG9mIG1fcHJlZmxpZ2h0UmVxdWVzdElk
ZW50aWZpZXIuIEV2ZXJ5IGxvYWRlciBoYXMgYW4gaWRlbnRpZmllciwgYW5kIHRyYWNraW5nCisg
ICAgICAgIGlkZW50aWZpZXJzIHR3aWNlIGlzIHdyb25nLgorICAgICAgICBQYXNzIGlkZW50aWZp
ZXIgZXhwbGljaXRseSB0byBtb3JlIGludGVybmFsIGZ1bmN0aW9ucywgc28gdGhhdCB0aGV5IHdv
dWxkIG5vdCBoYXZlIHRvCisgICAgICAgIHNlY29uZC1ndWVzcyBjYWxsZXJzLgorCisgICAgICAg
ICogbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcDogKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjp3
aWxsU2VuZFJlcXVlc3QpOgorICAgICAgICBDcmVhdGUgYW4gaWRlbnRpZmllciBmb3IgYWxsIGxv
YWRlcnMsIG5vdCBqdXN0IHRob3NlIHRoYXQgd2UgZXhwZWN0IHRvIGhhdmUgY2xpZW50CisgICAg
ICAgIGNhbGxiYWNrcyBhYm91dC4gQm90aCBJbnNwZWN0b3IgYW5kIE5ldHdvcmtQcm9jZXNzIG5l
ZWQgaWRlbnRpZmllcnMgZXZlcnl3aGVyZS4KKworICAgICAgICAqIGxvYWRlci9UZXh0VHJhY2tM
b2FkZXIuY3BwOiAoV2ViQ29yZTo6VGV4dFRyYWNrTG9hZGVyOjpkZXByZWNhdGVkRGlkUmVjZWl2
ZUNhY2hlZFJlc291cmNlKToKKyAgICAgICAgKiBsb2FkZXIvVGV4dFRyYWNrTG9hZGVyLmg6Cisg
ICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlQ2xpZW50Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUNsaWVudDo6ZGVwcmVjYXRlZERpZFJlY2VpdmVDYWNoZWRS
ZXNvdXJjZSk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5jcHA6IChX
ZWJDb3JlOjpDYWNoZWRUZXh0VHJhY2s6OmRhdGEpOgorICAgICAgICBSZW5hbWVkIGRpZFJlY2Vp
dmVEYXRhIHRvIGF2b2lkIGNvbmZsaWN0IHdpdGggdGhlIG5ldyBEb2N1bWVudFRocmVhZGFibGVM
b2FkZXI6OmRpZFJlY2VpdmVEYXRhLgorICAgICAgICBBbmQgd2Ugc2hvdWxkIHJlYWxseSBnZXQg
cmlkIG9mIHRoaXMgQ2FjaGVkUmVzb3VyY2VDbGllbnQgZnVuY3Rpb24gYW55d2F5LgorCiAyMDEz
LTAyLTE0ICBCZWFyIFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KIAogICAgICAgICBNYWtl
IG91dHNpZGUtc2hhcGUgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHNoYXBlLWluc2lkZQpJbmRleDog
U291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5j
cHAJKHJldmlzaW9uIDE0Mjc2NCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRo
cmVhZGFibGVMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03OCw5ICs3OCw2IEBAIERvY3Vt
ZW50VGhyZWFkYWJsZUxvYWRlcjo6RG9jdW1lbnRUaHJlYWQKICAgICAsIG1fc2FtZU9yaWdpblJl
cXVlc3Qoc2VjdXJpdHlPcmlnaW4oKS0+Y2FuUmVxdWVzdChyZXF1ZXN0LnVybCgpKSkKICAgICAs
IG1fc2ltcGxlUmVxdWVzdCh0cnVlKQogICAgICwgbV9hc3luYyhibG9ja2luZ0JlaGF2aW9yID09
IExvYWRBc3luY2hyb25vdXNseSkKLSNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgICwgbV9wcmVm
bGlnaHRSZXF1ZXN0SWRlbnRpZmllcigwKQotI2VuZGlmCiB7CiAgICAgQVNTRVJUKGRvY3VtZW50
KTsKICAgICBBU1NFUlQoY2xpZW50KTsKQEAgLTE1Miw5ICsxNDksMTAgQEAgdm9pZCBEb2N1bWVu
dFRocmVhZGFibGVMb2FkZXI6OmNhbmNlbCgpCiAKICAgICAvLyBDYW5jZWwgY2FuIHJlLWVudGVy
IGFuZCBtX3Jlc291cmNlIG1pZ2h0IGJlIG51bGwgaGVyZSBhcyBhIHJlc3VsdC4KICAgICBpZiAo
bV9jbGllbnQgJiYgbV9yZXNvdXJjZSkgeworICAgICAgICAvLyBGSVhNRTogVGhpcyBlcnJvciBp
cyBzZW50IHRvIHRoZSBjbGllbnQgaW4gZGlkRmFpbCgpLCBzbyBpdCBzaG91bGQgbm90IGJlIGFu
IGludGVybmFsIG9uZS4gVXNlIEZyYW1lTG9hZGVyQ2xpZW50OjpjYW5jZWxsZWRFcnJvcigpIGlu
c3RlYWQuCiAgICAgICAgIFJlc291cmNlRXJyb3IgZXJyb3IoZXJyb3JEb21haW5XZWJLaXRJbnRl
cm5hbCwgMCwgbV9yZXNvdXJjZS0+dXJsKCksICJMb2FkIGNhbmNlbGxlZCIpOwogICAgICAgICBl
cnJvci5zZXRJc0NhbmNlbGxhdGlvbih0cnVlKTsKLSAgICAgICAgZGlkRmFpbChlcnJvcik7Cisg
ICAgICAgIGRpZEZhaWwobV9yZXNvdXJjZS0+aWRlbnRpZmllcigpLCBlcnJvcik7CiAgICAgfQog
ICAgIGNsZWFyUmVzb3VyY2UoKTsKICAgICBtX2NsaWVudCA9IDA7CkBAIC0yNDcsMTggKzI0NSwx
NiBAQCB2b2lkIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6ZGlkUmVjZWl2CiB7CiAgICAgQVNT
RVJUKG1fY2xpZW50KTsKIAorICAgIFN0cmluZyBhY2Nlc3NDb250cm9sRXJyb3JEZXNjcmlwdGlv
bjsKKyAgICBpZiAobV9hY3R1YWxSZXF1ZXN0KSB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKLSAg
ICBpZiAobV9wcmVmbGlnaHRSZXF1ZXN0SWRlbnRpZmllcikgewogICAgICAgICBEb2N1bWVudExv
YWRlciogbG9hZGVyID0gbV9kb2N1bWVudC0+ZnJhbWUoKS0+bG9hZGVyKCktPmRvY3VtZW50TG9h
ZGVyKCk7Ci0gICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBjb29raWUgPSBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxSZWNlaXZlUmVzb3VyY2VSZXNwb25zZShtX2Rv
Y3VtZW50LT5mcmFtZSgpLCBtX3ByZWZsaWdodFJlcXVlc3RJZGVudGlmaWVyLCByZXNwb25zZSk7
Ci0gICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZVJlc291cmNlUmVz
cG9uc2UoY29va2llLCBtX3ByZWZsaWdodFJlcXVlc3RJZGVudGlmaWVyLCBsb2FkZXIsIHJlc3Bv
bnNlLCAwKTsKLSAgICB9CisgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBj
b29raWUgPSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxSZWNlaXZlUmVzb3VyY2VSZXNw
b25zZShtX2RvY3VtZW50LT5mcmFtZSgpLCBpZGVudGlmaWVyLCByZXNwb25zZSk7CisgICAgICAg
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZVJlc291cmNlUmVzcG9uc2UoY29v
a2llLCBpZGVudGlmaWVyLCBsb2FkZXIsIHJlc3BvbnNlLCAwKTsKICNlbmRpZgogCi0gICAgU3Ry
aW5nIGFjY2Vzc0NvbnRyb2xFcnJvckRlc2NyaXB0aW9uOwotICAgIGlmIChtX2FjdHVhbFJlcXVl
c3QpIHsKICAgICAgICAgaWYgKCFwYXNzZXNBY2Nlc3NDb250cm9sQ2hlY2socmVzcG9uc2UsIG1f
b3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxzLCBzZWN1cml0eU9yaWdpbigpLCBhY2Nlc3NDb250cm9s
RXJyb3JEZXNjcmlwdGlvbikpIHsKLSAgICAgICAgICAgIHByZWZsaWdodEZhaWx1cmUocmVzcG9u
c2UudXJsKCksIGFjY2Vzc0NvbnRyb2xFcnJvckRlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgIHBy
ZWZsaWdodEZhaWx1cmUoaWRlbnRpZmllciwgcmVzcG9uc2UudXJsKCksIGFjY2Vzc0NvbnRyb2xF
cnJvckRlc2NyaXB0aW9uKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCkBAIC0y
NjYsNyArMjYyLDcgQEAgdm9pZCBEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6OmRpZFJlY2Vpdgog
ICAgICAgICBpZiAoIXByZWZsaWdodFJlc3VsdC0+cGFyc2UocmVzcG9uc2UsIGFjY2Vzc0NvbnRy
b2xFcnJvckRlc2NyaXB0aW9uKQogICAgICAgICAgICAgfHwgIXByZWZsaWdodFJlc3VsdC0+YWxs
b3dzQ3Jvc3NPcmlnaW5NZXRob2QobV9hY3R1YWxSZXF1ZXN0LT5odHRwTWV0aG9kKCksIGFjY2Vz
c0NvbnRyb2xFcnJvckRlc2NyaXB0aW9uKQogICAgICAgICAgICAgfHwgIXByZWZsaWdodFJlc3Vs
dC0+YWxsb3dzQ3Jvc3NPcmlnaW5IZWFkZXJzKG1fYWN0dWFsUmVxdWVzdC0+aHR0cEhlYWRlckZp
ZWxkcygpLCBhY2Nlc3NDb250cm9sRXJyb3JEZXNjcmlwdGlvbikpIHsKLSAgICAgICAgICAgIHBy
ZWZsaWdodEZhaWx1cmUocmVzcG9uc2UudXJsKCksIGFjY2Vzc0NvbnRyb2xFcnJvckRlc2NyaXB0
aW9uKTsKKyAgICAgICAgICAgIHByZWZsaWdodEZhaWx1cmUoaWRlbnRpZmllciwgcmVzcG9uc2Uu
dXJsKCksIGFjY2Vzc0NvbnRyb2xFcnJvckRlc2NyaXB0aW9uKTsKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQogCkBAIC0yODUsMTcgKzI4MSwyMSBAQCB2b2lkIERvY3VtZW50VGhyZWFk
YWJsZUxvYWRlcjo6ZGlkUmVjZWl2CiAKIHZvaWQgRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpk
YXRhUmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlLCBjb25zdCBjaGFyKiBkYXRhLCBp
bnQgZGF0YUxlbmd0aCkKIHsKLSAgICBBU1NFUlQobV9jbGllbnQpOwogICAgIEFTU0VSVF9VTlVT
RUQocmVzb3VyY2UsIHJlc291cmNlID09IG1fcmVzb3VyY2UpOworICAgIGRpZFJlY2VpdmVEYXRh
KG1fcmVzb3VyY2UtPmlkZW50aWZpZXIoKSwgZGF0YSwgZGF0YUxlbmd0aCk7Cit9CiAKLSNpZiBF
TkFCTEUoSU5TUEVDVE9SKQotICAgIGlmIChtX3ByZWZsaWdodFJlcXVlc3RJZGVudGlmaWVyKQot
ICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVEYXRhKG1fZG9jdW1l
bnQtPmZyYW1lKCksIG1fcHJlZmxpZ2h0UmVxdWVzdElkZW50aWZpZXIsIDAsIDAsIGRhdGFMZW5n
dGgpOwotI2VuZGlmCit2b2lkIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6ZGlkUmVjZWl2ZURh
dGEodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgZGF0YUxl
bmd0aCkKK3sKKyAgICBBU1NFUlQobV9jbGllbnQpOwogCiAgICAgLy8gUHJlZmxpZ2h0IGRhdGEg
c2hvdWxkIGJlIGludmlzaWJsZSB0byBjbGllbnRzLgotICAgIGlmIChtX2FjdHVhbFJlcXVlc3Qp
CisgICAgaWYgKG1fYWN0dWFsUmVxdWVzdCkgeworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisgICAg
ICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZURhdGEobV9kb2N1bWVudC0+
ZnJhbWUoKSwgaWRlbnRpZmllciwgMCwgMCwgZGF0YUxlbmd0aCk7CisjZW5kaWYKICAgICAgICAg
cmV0dXJuOworICAgIH0KIAogICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlRGF0YShkYXRhLCBkYXRh
TGVuZ3RoKTsKIH0KQEAgLTMwNSwyMCArMzA1LDE4IEBAIHZvaWQgRG9jdW1lbnRUaHJlYWRhYmxl
TG9hZGVyOjpub3RpZnlGaW4KICAgICBBU1NFUlQobV9jbGllbnQpOwogICAgIEFTU0VSVF9VTlVT
RUQocmVzb3VyY2UsIHJlc291cmNlID09IG1fcmVzb3VyY2UpOwogICAgICAgICAKLSAgICBpZiAo
bV9yZXNvdXJjZSAmJiBtX3Jlc291cmNlLT5lcnJvck9jY3VycmVkKCkpCi0gICAgICAgIGRpZEZh
aWwobV9yZXNvdXJjZS0+cmVzb3VyY2VFcnJvcigpKTsKKyAgICBpZiAobV9yZXNvdXJjZS0+ZXJy
b3JPY2N1cnJlZCgpKQorICAgICAgICBkaWRGYWlsKG1fcmVzb3VyY2UtPmlkZW50aWZpZXIoKSwg
bV9yZXNvdXJjZS0+cmVzb3VyY2VFcnJvcigpKTsKICAgICBlbHNlCiAgICAgICAgIGRpZEZpbmlz
aExvYWRpbmcobV9yZXNvdXJjZS0+aWRlbnRpZmllcigpLCBtX3Jlc291cmNlLT5sb2FkRmluaXNo
VGltZSgpKTsKIH0KIAogdm9pZCBEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6OmRpZEZpbmlzaExv
YWRpbmcodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBkb3VibGUgZmluaXNoVGltZSkKIHsKKyAg
ICBpZiAobV9hY3R1YWxSZXF1ZXN0KSB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKLSAgICBpZiAo
bV9wcmVmbGlnaHRSZXF1ZXN0SWRlbnRpZmllcikKLSAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpkaWRGaW5pc2hMb2FkaW5nKG1fZG9jdW1lbnQtPmZyYW1lKCksIG1fZG9jdW1lbnQt
PmZyYW1lKCktPmxvYWRlcigpLT5kb2N1bWVudExvYWRlcigpLCBtX3ByZWZsaWdodFJlcXVlc3RJ
ZGVudGlmaWVyLCBmaW5pc2hUaW1lKTsKKyAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpkaWRGaW5pc2hMb2FkaW5nKG1fZG9jdW1lbnQtPmZyYW1lKCksIG1fZG9jdW1lbnQtPmZyYW1l
KCktPmxvYWRlcigpLT5kb2N1bWVudExvYWRlcigpLCBpZGVudGlmaWVyLCBmaW5pc2hUaW1lKTsK
ICNlbmRpZgotCi0gICAgaWYgKG1fYWN0dWFsUmVxdWVzdCkgewogICAgICAgICBBU1NFUlQoIW1f
c2FtZU9yaWdpblJlcXVlc3QpOwogICAgICAgICBBU1NFUlQobV9vcHRpb25zLmNyb3NzT3JpZ2lu
UmVxdWVzdFBvbGljeSA9PSBVc2VBY2Nlc3NDb250cm9sKTsKICAgICAgICAgcHJlZmxpZ2h0U3Vj
Y2VzcygpOwpAQCAtMzI2LDExICszMjQsMTEgQEAgdm9pZCBEb2N1bWVudFRocmVhZGFibGVMb2Fk
ZXI6OmRpZEZpbmlzaAogICAgICAgICBtX2NsaWVudC0+ZGlkRmluaXNoTG9hZGluZyhpZGVudGlm
aWVyLCBmaW5pc2hUaW1lKTsKIH0KIAotdm9pZCBEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6OmRp
ZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCit2b2lkIERvY3VtZW50VGhyZWFkYWJs
ZUxvYWRlcjo6ZGlkRmFpbCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNl
RXJyb3ImIGVycm9yKQogewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAgaWYgKG1fcHJlZmxp
Z2h0UmVxdWVzdElkZW50aWZpZXIpCi0gICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
ZGlkRmFpbExvYWRpbmcobV9kb2N1bWVudC0+ZnJhbWUoKSwgbV9kb2N1bWVudC0+ZnJhbWUoKS0+
bG9hZGVyKCktPmRvY3VtZW50TG9hZGVyKCksIG1fcHJlZmxpZ2h0UmVxdWVzdElkZW50aWZpZXIs
IGVycm9yKTsKKyAgICBpZiAobV9hY3R1YWxSZXF1ZXN0KQorICAgICAgICBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmRpZEZhaWxMb2FkaW5nKG1fZG9jdW1lbnQtPmZyYW1lKCksIG1fZG9jdW1l
bnQtPmZyYW1lKCktPmxvYWRlcigpLT5kb2N1bWVudExvYWRlcigpLCBpZGVudGlmaWVyLCBlcnJv
cik7CiAjZW5kaWYKIAogICAgIG1fY2xpZW50LT5kaWRGYWlsKGVycm9yKTsKQEAgLTM0OSwxMCAr
MzQ3LDE2IEBAIHZvaWQgRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpwcmVmbGlnaHQKICAgICBs
b2FkUmVxdWVzdCgqYWN0dWFsUmVxdWVzdCwgU2tpcFNlY3VyaXR5Q2hlY2spOwogfQogCi12b2lk
IERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6cHJlZmxpZ2h0RmFpbHVyZShjb25zdCBTdHJpbmcm
IHVybCwgY29uc3QgU3RyaW5nJiBlcnJvckRlc2NyaXB0aW9uKQordm9pZCBEb2N1bWVudFRocmVh
ZGFibGVMb2FkZXI6OnByZWZsaWdodEZhaWx1cmUodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBlcnJvckRlc2NyaXB0aW9uKQogeworICAg
IFJlc291cmNlRXJyb3IgZXJyb3IoZXJyb3JEb21haW5XZWJLaXRJbnRlcm5hbCwgMCwgdXJsLCBl
cnJvckRlc2NyaXB0aW9uKTsKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorICAgIGlmIChtX2FjdHVh
bFJlcXVlc3QpIHsKKyAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRGYWlsTG9h
ZGluZyhtX2RvY3VtZW50LT5mcmFtZSgpLCBtX2RvY3VtZW50LT5mcmFtZSgpLT5sb2FkZXIoKS0+
ZG9jdW1lbnRMb2FkZXIoKSwgaWRlbnRpZmllciwgZXJyb3IpOworICAgIH0KKyNlbmRpZgogICAg
IG1fYWN0dWFsUmVxdWVzdCA9IG51bGxwdHI7IC8vIFByZXZlbnQgZGlkRmluaXNoTG9hZGluZygp
IGZyb20gYnlwYXNzaW5nIGFjY2VzcyBjaGVjay4KLSAgICBtX2NsaWVudC0+ZGlkRmFpbEFjY2Vz
c0NvbnRyb2xDaGVjayhSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluV2ViS2l0SW50ZXJuYWwsIDAs
IHVybCwgZXJyb3JEZXNjcmlwdGlvbikpOworICAgIG1fY2xpZW50LT5kaWRGYWlsQWNjZXNzQ29u
dHJvbENoZWNrKGVycm9yKTsKIH0KIAogdm9pZCBEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6Omxv
YWRSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU2VjdXJpdHlDaGVja1Bv
bGljeSBzZWN1cml0eUNoZWNrKQpAQCAtMzc4LDIwICszODIsMTIgQEAgdm9pZCBEb2N1bWVudFRo
cmVhZGFibGVMb2FkZXI6OmxvYWRSZXF1ZQogI2lmIEVOQUJMRShSRVNPVVJDRV9USU1JTkcpCiAg
ICAgICAgIG5ld1JlcXVlc3Quc2V0SW5pdGlhdG9yKG1fb3B0aW9ucy5pbml0aWF0b3IpOwogI2Vu
ZGlmCi0jaWYgRU5BQkxFKElOU1BFQ1RPUikKLSAgICAgICAgaWYgKG1fYWN0dWFsUmVxdWVzdCkg
ewotICAgICAgICAgICAgLy8gQmVjYXVzZSB3aWxsU2VuZFJlcXVlc3Qgb25seSBnZXRzIGNhbGxl
ZCBkdXJpbmcgcmVkaXJlY3RzLCB3ZSBpbml0aWFsaXplIHRoZSBpZGVudGlmaWVyIGFuZCB0aGUg
Zmlyc3Qgd2lsbFNlbmRSZXF1ZXN0IGhlcmUuCi0gICAgICAgICAgICBtX3ByZWZsaWdodFJlcXVl
c3RJZGVudGlmaWVyID0gbV9kb2N1bWVudC0+ZnJhbWUoKS0+cGFnZSgpLT5wcm9ncmVzcygpLT5j
cmVhdGVVbmlxdWVJZGVudGlmaWVyKCk7Ci0gICAgICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIHJl
ZGlyZWN0UmVzcG9uc2UgPSBSZXNvdXJjZVJlc3BvbnNlKCk7Ci0gICAgICAgICAgICBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OndpbGxTZW5kUmVxdWVzdChtX2RvY3VtZW50LT5mcmFtZSgpLCBt
X3ByZWZsaWdodFJlcXVlc3RJZGVudGlmaWVyLCBtX2RvY3VtZW50LT5mcmFtZSgpLT5sb2FkZXIo
KS0+ZG9jdW1lbnRMb2FkZXIoKSwgbmV3UmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCks
IHJlZGlyZWN0UmVzcG9uc2UpOwotICAgICAgICB9Ci0jZW5kaWYKICAgICAgICAgQVNTRVJUKCFt
X3Jlc291cmNlKTsKICAgICAgICAgbV9yZXNvdXJjZSA9IG1fZG9jdW1lbnQtPmNhY2hlZFJlc291
cmNlTG9hZGVyKCktPnJlcXVlc3RSYXdSZXNvdXJjZShuZXdSZXF1ZXN0KTsKICAgICAgICAgaWYg
KG1fcmVzb3VyY2UpIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgICAgICAgICAgaWYgKG1f
cmVzb3VyY2UtPmxvYWRlcigpKSB7Ci0gICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBpZGVu
dGlmaWVyID0gbV9hY3R1YWxSZXF1ZXN0ID8gbV9wcmVmbGlnaHRSZXF1ZXN0SWRlbnRpZmllciA6
IG1fcmVzb3VyY2UtPmxvYWRlcigpLT5pZGVudGlmaWVyKCk7CisgICAgICAgICAgICAgICAgdW5z
aWduZWQgbG9uZyBpZGVudGlmaWVyID0gbV9yZXNvdXJjZS0+bG9hZGVyKCktPmlkZW50aWZpZXIo
KTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRvY3VtZW50VGhy
ZWFkYWJsZUxvYWRlclN0YXJ0ZWRMb2FkaW5nRm9yQ2xpZW50KG1fZG9jdW1lbnQsIGlkZW50aWZp
ZXIsIG1fY2xpZW50KTsKICAgICAgICAgICAgIH0KICNlbmRpZgpAQCAtNDI5LDcgKzQyNSw3IEBA
IHZvaWQgRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpsb2FkUmVxdWUKIAogICAgIGNvbnN0IGNo
YXIqIGJ5dGVzID0gc3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEuZGF0YSgpKTsKICAgICBp
bnQgbGVuID0gc3RhdGljX2Nhc3Q8aW50PihkYXRhLnNpemUoKSk7Ci0gICAgZGF0YVJlY2VpdmVk
KDAsIGJ5dGVzLCBsZW4pOworICAgIGRpZFJlY2VpdmVEYXRhKGlkZW50aWZpZXIsIGJ5dGVzLCBs
ZW4pOwogCiAgICAgZGlkRmluaXNoTG9hZGluZyhpZGVudGlmaWVyLCAwLjApOwogfQpJbmRleDog
U291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuaAko
cmV2aXNpb24gMTQyNzY0KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFk
YWJsZUxvYWRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC04NywxMyArODcsMTQgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogI2VuZGlmCiAKICAgICAgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UodW5z
aWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CisgICAgICAg
IHZvaWQgZGlkUmVjZWl2ZURhdGEodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBjaGFy
KiBkYXRhLCBpbnQgZGF0YUxlbmd0aCk7CiAgICAgICAgIHZvaWQgZGlkRmluaXNoTG9hZGluZyh1
bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGRvdWJsZSBmaW5pc2hUaW1lKTsKLSAgICAgICAgdm9p
ZCBkaWRGYWlsKGNvbnN0IFJlc291cmNlRXJyb3ImKTsKKyAgICAgICAgdm9pZCBkaWRGYWlsKHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwogICAgICAgICB2
b2lkIG1ha2VDcm9zc09yaWdpbkFjY2Vzc1JlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7
CiAgICAgICAgIHZvaWQgbWFrZVNpbXBsZUNyb3NzT3JpZ2luQWNjZXNzUmVxdWVzdChjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpOwogICAgICAgICB2b2lkIG1ha2VDcm9zc09yaWdpbkFj
Y2Vzc1JlcXVlc3RXaXRoUHJlZmxpZ2h0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCk7
CiAgICAgICAgIHZvaWQgcHJlZmxpZ2h0U3VjY2VzcygpOwotICAgICAgICB2b2lkIHByZWZsaWdo
dEZhaWx1cmUoY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgZXJyb3JEZXNjcmlwdGlv
bik7CisgICAgICAgIHZvaWQgcHJlZmxpZ2h0RmFpbHVyZSh1bnNpZ25lZCBsb25nIGlkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIGVycm9yRGVzY3JpcHRpb24pOwog
CiAgICAgICAgIHZvaWQgbG9hZFJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgU2VjdXJp
dHlDaGVja1BvbGljeSk7CiAgICAgICAgIGJvb2wgaXNBbGxvd2VkUmVkaXJlY3QoY29uc3QgS1VS
TCYpOwpAQCAtMTA4LDEwICsxMDksNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJv
b2wgbV9zaW1wbGVSZXF1ZXN0OwogICAgICAgICBib29sIG1fYXN5bmM7CiAgICAgICAgIE93blB0
cjxSZXNvdXJjZVJlcXVlc3Q+IG1fYWN0dWFsUmVxdWVzdDsgIC8vIG5vbi1udWxsIGR1cmluZyBB
Y2Nlc3MgQ29udHJvbCBwcmVmbGlnaHQgY2hlY2tzCi0KLSNpZiBFTkFCTEUoSU5TUEVDVE9SKQot
ICAgICAgICB1bnNpZ25lZCBsb25nIG1fcHJlZmxpZ2h0UmVxdWVzdElkZW50aWZpZXI7Ci0jZW5k
aWYKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAJKHJldmlzaW9uIDE0Mjc2NCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzNSwx
NCArMjM1LDIzIEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdChSZXMKIAog
ICAgIEFTU0VSVCghbV9yZWFjaGVkVGVybWluYWxTdGF0ZSk7CiAKKyAgICAvLyBXZSBuZWVkIGEg
cmVzb3VyY2UgaWRlbnRpZmllciBmb3IgYWxsIHJlcXVlc3RzLCBldmVuIGlmIEZyYW1lTG9hZGVy
IGlzIG5ldmVyIGdvaW5nIHRvIHNlZSBpdCAoc3VjaCBhcyB3aXRoIENPUlMgcHJlZmxpZ2h0IHJl
cXVlc3RzKS4KKyAgICBib29sIGNyZWF0ZWRSZXNvdXJjZUlkZW50aWZpZXIgPSBmYWxzZTsKKyAg
ICBpZiAoIW1faWRlbnRpZmllcikgeworICAgICAgICBtX2lkZW50aWZpZXIgPSBtX2ZyYW1lLT5w
YWdlKCktPnByb2dyZXNzKCktPmNyZWF0ZVVuaXF1ZUlkZW50aWZpZXIoKTsKKyAgICAgICAgY3Jl
YXRlZFJlc291cmNlSWRlbnRpZmllciA9IHRydWU7CisgICAgfQorCiAgICAgaWYgKG1fb3B0aW9u
cy5zZW5kTG9hZENhbGxiYWNrcyA9PSBTZW5kQ2FsbGJhY2tzKSB7Ci0gICAgICAgIGlmICghbV9p
ZGVudGlmaWVyKSB7Ci0gICAgICAgICAgICBtX2lkZW50aWZpZXIgPSBtX2ZyYW1lLT5wYWdlKCkt
PnByb2dyZXNzKCktPmNyZWF0ZVVuaXF1ZUlkZW50aWZpZXIoKTsKKyAgICAgICAgaWYgKGNyZWF0
ZWRSZXNvdXJjZUlkZW50aWZpZXIpCiAgICAgICAgICAgICBmcmFtZUxvYWRlcigpLT5ub3RpZmll
cigpLT5hc3NpZ25JZGVudGlmaWVyVG9Jbml0aWFsUmVxdWVzdChtX2lkZW50aWZpZXIsIGRvY3Vt
ZW50TG9hZGVyKCksIHJlcXVlc3QpOwotICAgICAgICB9CiAKICAgICAgICAgZnJhbWVMb2FkZXIo
KS0+bm90aWZpZXIoKS0+d2lsbFNlbmRSZXF1ZXN0KHRoaXMsIHJlcXVlc3QsIHJlZGlyZWN0UmVz
cG9uc2UpOwogICAgIH0KKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorICAgIGVsc2UKKyAgICAgICAg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsU2VuZFJlcXVlc3QobV9mcmFtZS5nZXQoKSwg
bV9pZGVudGlmaWVyLCBtX2ZyYW1lLT5sb2FkZXIoKS0+ZG9jdW1lbnRMb2FkZXIoKSwgcmVxdWVz
dCwgcmVkaXJlY3RSZXNwb25zZSk7CisjZW5kaWYKIAogICAgIGlmICghcmVkaXJlY3RSZXNwb25z
ZS5pc051bGwoKSkgewogI2lmIFVTRShQTEFURk9STV9TVFJBVEVHSUVTKQpJbmRleDogU291cmNl
L1dlYkNvcmUvbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHAJKHJldmlzaW9uIDE0Mjc2NCkKKysr
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9UZXh0VHJhY2tMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMDMsNyArMTAzLDggQEAgdm9pZCBUZXh0VHJhY2tMb2FkZXI6OnByb2Nlc3NOZXdDdWVE
YXRhKAogICAgIH0KIH0KIAotdm9pZCBUZXh0VHJhY2tMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKENh
Y2hlZFJlc291cmNlKiByZXNvdXJjZSkKKy8vIEZJWE1FOiBUaGlzIGlzIGEgdmVyeSB1bnVzdWFs
IHBhdHRlcm4sIG5vIG90aGVyIENhY2hlZFJlc291cmNlQ2xpZW50IGRvZXMgdGhpcy4gUmVmYWN0
b3IgdG8gdXNlIG5vdGlmeUZpbmlzaGVkKCkgaW5zdGVhZC4KK3ZvaWQgVGV4dFRyYWNrTG9hZGVy
OjpkZXByZWNhdGVkRGlkUmVjZWl2ZUNhY2hlZFJlc291cmNlKENhY2hlZFJlc291cmNlKiByZXNv
dXJjZSkKIHsKICAgICBBU1NFUlQobV9jYWNoZWRDdWVEYXRhID09IHJlc291cmNlKTsKICAgICAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9UZXh0VHJhY2tMb2FkZXIuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNrTG9hZGVyLmgJKHJldmlzaW9uIDE0
Mjc2NCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9UZXh0VHJhY2tMb2FkZXIuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNjksNyArNjksNyBAQCBwcml2YXRlOgogCiAgICAgLy8gQ2FjaGVkUmVzb3Vy
Y2VDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2Uq
KTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoQ2FjaGVkUmVzb3VyY2UqKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGVwcmVjYXRlZERpZFJlY2VpdmVDYWNoZWRSZXNvdXJjZShDYWNoZWRS
ZXNvdXJjZSopOwogICAgIAogICAgIC8vIFdlYlZUVFBhcnNlckNsaWVudAogICAgIHZpcnR1YWwg
dm9pZCBuZXdDdWVzUGFyc2VkKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkUmVzb3VyY2VDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VDbGllbnQuaAkocmV2aXNpb24gMTQyNzY0KQorKysgU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlQ2xpZW50LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+Q2FjaGVkUmVz
b3VyY2VDbGllbnQoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVk
UmVzb3VyY2UqKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoQ2FjaGVkUmVz
b3VyY2UqKSB7IH07CisgICAgdmlydHVhbCB2b2lkIGRlcHJlY2F0ZWREaWRSZWNlaXZlQ2FjaGVk
UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2UqKSB7IH0KICAgICAKICAgICBzdGF0aWMgQ2FjaGVkUmVz
b3VyY2VDbGllbnRUeXBlIGV4cGVjdGVkVHlwZSgpIHsgcmV0dXJuIEJhc2VSZXNvdXJjZVR5cGU7
IH0KICAgICB2aXJ0dWFsIENhY2hlZFJlc291cmNlQ2xpZW50VHlwZSByZXNvdXJjZUNsaWVudFR5
cGUoKSBjb25zdCB7IHJldHVybiBleHBlY3RlZFR5cGUoKTsgfQpJbmRleDogU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5jcHAJKHJldmlzaW9uIDE0Mjc2
NCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRUZXh0VHJhY2suY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC01NSw3ICs1NSw3IEBAIHZvaWQgQ2FjaGVkVGV4dFRyYWNrOjpkYXRh
KFBhc3NSZWZQdHI8UmUKIAogICAgIENhY2hlZFJlc291cmNlQ2xpZW50V2Fsa2VyPENhY2hlZFJl
c291cmNlQ2xpZW50PiB3YWxrZXIobV9jbGllbnRzKTsKICAgICB3aGlsZSAoQ2FjaGVkUmVzb3Vy
Y2VDbGllbnQgKmNsaWVudCA9IHdhbGtlci5uZXh0KCkpCi0gICAgICAgIGNsaWVudC0+ZGlkUmVj
ZWl2ZURhdGEodGhpcyk7CisgICAgICAgIGNsaWVudC0+ZGVwcmVjYXRlZERpZFJlY2VpdmVDYWNo
ZWRSZXNvdXJjZSh0aGlzKTsKIAogICAgIGlmICghYWxsRGF0YVJlY2VpdmVkKQogICAgICAgICBy
ZXR1cm47Cg==
</data>
<flag name="review"
          id="208491"
          type_id="1"
          status="+"
          setter="beidson"
    />
          </attachment>
      

    </bug>

</bugzilla>