<?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>38633</bug_id>
          
          <creation_ts>2010-05-06 01:45:00 -0700</creation_ts>
          <short_desc>[WTFURL] Add Chromium front-end to the URL parser</short_desc>
          <delta_ts>2013-04-09 16:09:50 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>brettw</cc>
    
    <cc>fishd</cc>
    
    <cc>mjs</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>221570</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-06 01:45:00 -0700</bug_when>
    <thetext>[WTFURL] Add Chromium front-end to the URL parser</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221574</commentid>
    <comment_count>1</comment_count>
      <attachid>55218</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-06 01:49:42 -0700</bug_when>
    <thetext>Created attachment 55218
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221575</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-06 01:50:29 -0700</bug_when>
    <thetext>It&apos;s probably most productive for fishd to review this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221580</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-06 01:54:06 -0700</bug_when>
    <thetext>Attachment 55218 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
Last 3072 characters of output:
romium/parser.h:34:  Alphabetical sorting problem.  [build/include_order] [4]
JavaScriptCore/wtf/url/chromium/parser.h:57:  spec_len is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
JavaScriptCore/wtf/url/chromium/parser.h:58:  spec_len is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
JavaScriptCore/wtf/url/chromium/parser.h:64:  spec_len is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
JavaScriptCore/wtf/url/chromium/parser.h:65:  spec_len is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
JavaScriptCore/wtf/url/chromium/parser.h:69:  spec_len is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
JavaScriptCore/wtf/url/chromium/parser.h:70:  spec_len is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
JavaScriptCore/wtf/url/chromium/parser.h:73:  spec_len is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
JavaScriptCore/wtf/url/chromium/parser.h:74:  spec_len is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
JavaScriptCore/wtf/url/chromium/parser.h:98:  spec_len is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
JavaScriptCore/wtf/url/chromium/parser.h:99:  spec_len is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
JavaScriptCore/wtf/url/chromium/parser.h:112:  port_num is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
JavaScriptCore/wtf/url/chromium/parser.h:118:  port_num is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
JavaScriptCore/wtf/url/chromium/parser.h:141:  file_name is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
JavaScriptCore/wtf/url/chromium/parser.h:144:  file_name is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
JavaScriptCore/wtf/url/chromium/parser.h:192:  spec_len is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
JavaScriptCore/wtf/url/chromium/parser.h:193:  after_scheme is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
JavaScriptCore/wtf/url/chromium/parser.h:196:  spec_len is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
JavaScriptCore/wtf/url/chromium/parser.h:197:  after_scheme is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
JavaScriptCore/wtf/url/chromium/parser.h:200:  One space before end of line comments  [whitespace/comments] [5]
JavaScriptCore/wtf/url/chromium/parser.h:202:  One space before end of line comments  [whitespace/comments] [5]
Total errors found: 22 in 3 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>221845</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-05-06 11:34:08 -0700</bug_when>
    <thetext>It seems like this should live in the Chromium repository since it is not used by anything in WebKit.  It will also be easier to maintain in the Chromium repository since it uses Google C++ style, and it also digs into Chromium&apos;s base/ directory for headers and types.  I really like to avoid dependencies back onto the Chromium repository since it makes it hard to change things in Chromium.

What is the advantage to having this live in svn.webkit.org?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221871</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-06 12:03:49 -0700</bug_when>
    <thetext>Actually, we don&apos;t need the dependency on base.  I forgot to remove the include.  Discussing this patch with fishd on IRC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221937</commentid>
    <comment_count>6</comment_count>
      <attachid>55218</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-06 13:41:30 -0700</bug_when>
    <thetext>Comment on attachment 55218
Patch

I spoke to fishd on the phone.  We&apos;re going to do this in two layers:

1) A stable opaque interface in WebKit style in svn.webkit.org.
2) A re-syndication of that interface in Chromium style in svn.chromium.org.

By using inline functions, there shouldn&apos;t be any runtime impact of using two layers.  There&apos;s just a bit of complexity, but we get a clear definition of the dependencies in return.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222400</commentid>
    <comment_count>7</comment_count>
    <who name="Brett Wilson (Google)">brettw</who>
    <bug_when>2010-05-07 08:48:38 -0700</bug_when>
    <thetext>Thanks for the explanation in the other bug of the header file stuff. But won&apos;t we still get two copies of the code in the inlined templatized header file, one for this Chromium interface and one for the WebKit one?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222487</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-07 11:00:19 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Thanks for the explanation in the other bug of the header file stuff. But won&apos;t
&gt; we still get two copies of the code in the inlined templatized header file, one
&gt; for this Chromium interface and one for the WebKit one?

I&apos;m not sure how to avoid that given that the two want to instantiate the templates with different types (i.e., UChar versus char16).  These are both the same at the binary level, so maybe there&apos;s something nice we can do.  I need to see how this works today and see if we can replicate that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>872145</commentid>
    <comment_count>9</comment_count>
    <who name="Stephen Chenney">schenney</who>
    <bug_when>2013-04-09 16:09:50 -0700</bug_when>
    <thetext>LayoutTest failures for Chromium are being marked WontFix. The Bug is still accessible and referenced from TestExpectations.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55218</attachid>
            <date>2010-05-06 01:49:42 -0700</date>
            <delta_ts>2010-06-11 12:01:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-38633-20100506014941.patch</filename>
            <type>text/plain</type>
            <size>19585</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDU4ODcxKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTAtMDUtMDYgIEFkYW0gQmFy
dGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBbV1RGVVJMXSBBZGQgQ2hyb21pdW0gZnJvbnQtZW5kIHRvIHRoZSBV
UkwgcGFyc2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0zODYzMworCisgICAgICAgIFRoZXNlIGZpbGVzIHNlcnZlciBhcyBDaHJvbWl1bSdzIGludGVy
ZmFjZSB0byB0aGUgVVJMIHBhcnNpbmcgbGlicmFyeS4KKyAgICAgICAgVGhleSBjb3VsZCBiZSBo
b3VzZWQgaW4gZWl0aGVyIHN2bi53ZWJraXQub3JnIG9yIGluIHN2bi5jaHJvbWl1bS5vcmcuCisK
KyAgICAgICAgVGhlc2UgZmlsZXMgYXJlIGluIENocm9taXVtIHN0eWxlIGFuZCB1c2UgQ2hyb21p
dW0gdHlwZXMgKG11Y2ggdGhlIHdheQorICAgICAgICBXZWJLaXQvZ3RrIGlzIGluIEd0ayBzdHls
ZSBhbmQgdXNlcyBHdGsgdHlwZXMpLiAgVGhleSBhcmUgaW50ZW5kZWQgdG8KKyAgICAgICAgYmUg
dGhpbiB3cmFwcGVycyBhcm91bmQgdGhlIHRlbXBsYXRlZCBjb3JlIGxvZ2ljIG9mIHRoZSBwYXJz
ZXIuCisKKyAgICAgICAgKiB3dGYvdXJsL2Nocm9taXVtOiBBZGRlZC4KKyAgICAgICAgKiB3dGYv
dXJsL2Nocm9taXVtL3BhcnNlci5jYzogQWRkZWQuCisgICAgICAgICogd3RmL3VybC9jaHJvbWl1
bS9wYXJzZXIuaDogQWRkZWQuCisKIDIwMTAtMDUtMDUgIFRvbnkgR2VudGlsY29yZSAgPHRvbnln
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpJbmRleDog
SmF2YVNjcmlwdENvcmUvd3RmL3VybC9jaHJvbWl1bS9wYXJzZXIuY2MKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
SmF2YVNjcmlwdENvcmUvd3RmL3VybC9jaHJvbWl1bS9wYXJzZXIuY2MJKHJldmlzaW9uIDApCisr
KyBKYXZhU2NyaXB0Q29yZS93dGYvdXJsL2Nocm9taXVtL3BhcnNlci5jYwkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwyMDUgQEAKKy8vIENvcHlyaWdodCAyMDA3LCBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorLy8KKy8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorLy8gbWV0
OgorLy8KKy8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisvLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisvLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisvLyBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
CisvLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCisvLyBkaXN0cmlidXRpb24uCisvLyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisvLyBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorLy8gdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKy8v
CisvLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCisvLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisvLyBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAorLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCisvLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKy8vIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQorLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisvLyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorCisjaW5jbHVkZSAid3RmdXJsL2Nocm9taXVtL3BhcnNlci5oIgorCisjaW5jbHVkZSAiYmFz
ZS9sb2dnaW5nLmgiCisjaW5jbHVkZSAid3RmdXJsL3NyYy9GaWxlVVJMUGFyc2VyLmgiCisjaW5j
bHVkZSAid3RmdXJsL3NyYy9VUkxQYXJzZXIuaCIKKworbmFtZXNwYWNlIHVybF9wYXJzZSB7CisK
K2Jvb2wgRXh0cmFjdFNjaGVtZShjb25zdCBjaGFyKiBzcGVjLAorICAgICAgICAgICAgICAgICAg
IGludCBzcGVjX2xlbiwKKyAgICAgICAgICAgICAgICAgICBXVEY6OlVSTENvbXBvbmVudCogc2No
ZW1lKSB7CisgIHJldHVybiBXVEY6OlVSTFBhcnNlcjxjaGFyPjo6ZXh0cmFjdFNjaGVtZShzcGVj
LCBzcGVjX2xlbiwgKnNjaGVtZSk7Cit9CisKK2Jvb2wgRXh0cmFjdFNjaGVtZShjb25zdCBjaGFy
MTYqIHNwZWMsCisgICAgICAgICAgICAgICAgICAgaW50IHNwZWNfbGVuLAorICAgICAgICAgICAg
ICAgICAgIFdURjo6VVJMQ29tcG9uZW50KiBzY2hlbWUpIHsKKyAgcmV0dXJuIFdURjo6VVJMUGFy
c2VyPGNoYXIxNj46OmV4dHJhY3RTY2hlbWUoc3BlYywgc3BlY19sZW4sICpzY2hlbWUpOworfQor
Cit2b2lkIEV4dHJhY3RGaWxlTmFtZShjb25zdCBjaGFyKiBzcGVjLAorICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgV1RGOjpVUkxDb21wb25lbnQmIHBhdGgsCisgICAgICAgICAgICAgICAgICAg
ICBXVEY6OlVSTENvbXBvbmVudCogZmlsZV9uYW1lKSB7CisgIFdURjo6VVJMUGFyc2VyPGNoYXI+
OjpleHRyYWN0RmlsZU5hbWUoc3BlYywgcGF0aCwgKmZpbGVfbmFtZSk7Cit9CisKK3ZvaWQgRXh0
cmFjdEZpbGVOYW1lKGNvbnN0IGNoYXIxNiogc3BlYywKKyAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IFdURjo6VVJMQ29tcG9uZW50JiBwYXRoLAorICAgICAgICAgICAgICAgICAgICAgV1RGOjpV
UkxDb21wb25lbnQqIGZpbGVfbmFtZSkgeworICBXVEY6OlVSTFBhcnNlcjxjaGFyMTY+OjpleHRy
YWN0RmlsZU5hbWUoc3BlYywgcGF0aCwgKmZpbGVfbmFtZSk7Cit9CisKK2Jvb2wgRXh0cmFjdFF1
ZXJ5S2V5VmFsdWUoY29uc3QgY2hhciogc3BlYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
V1RGOjpVUkxDb21wb25lbnQqIHF1ZXJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgICBXVEY6
OlVSTENvbXBvbmVudCoga2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICBXVEY6OlVSTENv
bXBvbmVudCogdmFsdWUpIHsKKyAgcmV0dXJuIFdURjo6VVJMUGFyc2VyPGNoYXI+OjpleHRyYWN0
UXVlcnlLZXlWYWx1ZShzcGVjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICpxdWVyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAqa2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICp2YWx1ZSk7Cit9CisKK2Jvb2wgRXh0cmFjdFF1ZXJ5S2V5
VmFsdWUoY29uc3QgY2hhcjE2KiBzcGVjLAorICAgICAgICAgICAgICAgICAgICAgICAgICBXVEY6
OlVSTENvbXBvbmVudCogcXVlcnksCisgICAgICAgICAgICAgICAgICAgICAgICAgIFdURjo6VVJM
Q29tcG9uZW50KiBrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgIFdURjo6VVJMQ29tcG9u
ZW50KiB2YWx1ZSkgeworICByZXR1cm4gV1RGOjpVUkxQYXJzZXI8Y2hhcjE2Pjo6ZXh0cmFjdFF1
ZXJ5S2V5VmFsdWUoc3BlYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICpxdWVyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICprZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAqdmFsdWUpOworfQorCit2b2lkIFBhcnNlQXV0aG9y
aXR5KGNvbnN0IGNoYXIqIHNwZWMsCisgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdURjo6VVJM
Q29tcG9uZW50JiBhdXRoLAorICAgICAgICAgICAgICAgICAgICBXVEY6OlVSTENvbXBvbmVudCog
dXNlcm5hbWUsCisgICAgICAgICAgICAgICAgICAgIFdURjo6VVJMQ29tcG9uZW50KiBwYXNzd29y
ZCwKKyAgICAgICAgICAgICAgICAgICAgV1RGOjpVUkxDb21wb25lbnQqIGhvc3RuYW1lLAorICAg
ICAgICAgICAgICAgICAgICBXVEY6OlVSTENvbXBvbmVudCogcG9ydF9udW0pIHsKKyAgV1RGOjpV
UkxQYXJzZXI8Y2hhcj46OnBhcnNlQXV0aG9yaXR5KHNwZWMsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhdXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKnVzZXJuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKnBhc3N3b3JkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKmhv
c3RuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKnBvcnRfbnVt
KTsKK30KKwordm9pZCBQYXJzZUF1dGhvcml0eShjaGFyMTYqIHNwZWMsCisgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IFdURjo6VVJMQ29tcG9uZW50JiBhdXRoLAorICAgICAgICAgICAgICAgICAg
ICBXVEY6OlVSTENvbXBvbmVudCogdXNlcm5hbWUsCisgICAgICAgICAgICAgICAgICAgIFdURjo6
VVJMQ29tcG9uZW50KiBwYXNzd29yZCwKKyAgICAgICAgICAgICAgICAgICAgV1RGOjpVUkxDb21w
b25lbnQqIGhvc3RuYW1lLAorICAgICAgICAgICAgICAgICAgICBXVEY6OlVSTENvbXBvbmVudCog
cG9ydF9udW0pIHsKKyAgV1RGOjpVUkxQYXJzZXI8Y2hhcjE2Pjo6cGFyc2VBdXRob3JpdHkoc3Bl
YywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKnVzZXJuYW1lLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqcGFzc3dvcmQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICpob3N0bmFtZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKnBvcnRfbnVtKTsKK30KKworaW50IFBhcnNlUG9ydChj
b25zdCBjaGFyKiBzcGVjLCBjb25zdCBXVEY6OlVSTENvbXBvbmVudCYgcG9ydCkgeworICByZXR1
cm4gV1RGOjpVUkxQYXJzZXI8Y2hhcj46OnBhcnNlUG9ydChzcGVjLCBwb3J0KTsKK30KKworaW50
IFBhcnNlUG9ydChjb25zdCBjaGFyMTYqIHNwZWMsIGNvbnN0IFdURjo6VVJMQ29tcG9uZW50JiBw
b3J0KSB7CisgIHJldHVybiBXVEY6OlVSTFBhcnNlcjxjaGFyMTY+OjpwYXJzZVBvcnQoc3BlYywg
cG9ydCk7Cit9CisKK3ZvaWQgUGFyc2VTdGFuZGFyZFVSTChjb25zdCBjaGFyKiBzcGVjLAorICAg
ICAgICAgICAgICAgICAgICAgIGludCBzcGVjX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICBX
VEY6OlVSTFNlZ21lbnRzKiBwYXJzZWQpIHsKKyAgV1RGOjpVUkxQYXJzZXI8Y2hhcj46OnBhcnNl
U3RhbmRhcmRVUkwoc3BlYywgc3BlY19sZW4sICpwYXJzZWQpOworfQorCit2b2lkIFBhcnNlU3Rh
bmRhcmRVUkwoY29uc3QgY2hhcjE2KiBzcGVjLAorICAgICAgICAgICAgICAgICAgICAgIGludCBz
cGVjX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICBXVEY6OlVSTFNlZ21lbnRzKiBwYXJzZWQp
IHsKKyAgV1RGOjpVUkxQYXJzZXI8Y2hhcjE2Pjo6cGFyc2VTdGFuZGFyZFVSTChzcGVjLCBzcGVj
X2xlbiwgKnBhcnNlZCk7Cit9CisKK3ZvaWQgUGFyc2VQYXRoVVJMKGNvbnN0IGNoYXIqIHNwZWMs
CisgICAgICAgICAgICAgICAgICBpbnQgc3BlY19sZW4sCisgICAgICAgICAgICAgICAgICBXVEY6
OlVSTFNlZ21lbnRzKiBwYXJzZWQpIHsKKyAgV1RGOjpVUkxQYXJzZXI8Y2hhcj46OnBhcnNlUGF0
aFVSTChzcGVjLCBzcGVjX2xlbiwgKnBhcnNlZCk7Cit9CisKK3ZvaWQgUGFyc2VQYXRoVVJMKGNv
bnN0IGNoYXIxNiogc3BlYywKKyAgICAgICAgICAgICAgICAgIGludCBzcGVjX2xlbiwKKyAgICAg
ICAgICAgICAgICAgIFdURjo6VVJMU2VnbWVudHMqIHBhcnNlZCkgeworICBXVEY6OlVSTFBhcnNl
cjxjaGFyMTY+OjpwYXJzZVBhdGhVUkwoc3BlYywgc3BlY19sZW4sICpwYXJzZWQpOworfQorCit2
b2lkIFBhcnNlRmlsZVVSTChjb25zdCBjaGFyKiB1cmwsIGludCB1cmxfbGVuLCBXVEY6OlVSTFNl
Z21lbnRzKiBwYXJzZWQpIHsKKyAgV1RGOjpGaWxlVVJMUGFyc2VyPGNoYXI+OjpwYXJzZUZpbGVV
UkwodXJsLCB1cmxfbGVuLCAqcGFyc2VkKTsKK30KKwordm9pZCBQYXJzZUZpbGVVUkwoY29uc3Qg
Y2hhcjE2KiB1cmwsIGludCB1cmxfbGVuLCBXVEY6OlVSTFNlZ21lbnRzKiBwYXJzZWQpeworICBX
VEY6OkZpbGVVUkxQYXJzZXI8Y2hhcjE2Pjo6cGFyc2VGaWxlVVJMKHVybCwgdXJsX2xlbiwgKnBh
cnNlZCk7Cit9CisKK3ZvaWQgUGFyc2VNYWlsdG9VUkwoY29uc3QgY2hhciogc3BlYywKKyAgICAg
ICAgICAgICAgICAgICAgaW50IHNwZWNfbGVuLAorICAgICAgICAgICAgICAgICAgICBXVEY6OlVS
TFNlZ21lbnRzKiBwYXJzZWQpIHsKKyAgV1RGOjpVUkxQYXJzZXI8Y2hhcj46OnBhcnNlTWFpbHRv
VVJMKHNwZWMsIHNwZWNfbGVuLCAqcGFyc2VkKTsKK30KKwordm9pZCBQYXJzZU1haWx0b1VSTChj
b25zdCBjaGFyMTYqIHNwZWMsCisgICAgICAgICAgICAgICAgICAgIGludCBzcGVjX2xlbiwKKyAg
ICAgICAgICAgICAgICAgICAgV1RGOjpVUkxTZWdtZW50cyogcGFyc2VkKSB7CisgIFdURjo6VVJM
UGFyc2VyPGNoYXIxNj46OnBhcnNlTWFpbHRvVVJMKHNwZWMsIHNwZWNfbGVuLCAqcGFyc2VkKTsK
K30KKwordm9pZCBQYXJzZVBhdGhJbnRlcm5hbChjb25zdCBjaGFyKiBzcGVjLAorICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBXVEY6OlVSTENvbXBvbmVudCYgcGF0aCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgV1RGOjpVUkxDb21wb25lbnQqIGZpbGVwYXRoLAorICAgICAgICAgICAgICAg
ICAgICAgICBXVEY6OlVSTENvbXBvbmVudCogcXVlcnksCisgICAgICAgICAgICAgICAgICAgICAg
IFdURjo6VVJMQ29tcG9uZW50KiBmcmFnbWVudCkgeworICBXVEY6OlVSTFBhcnNlcjxjaGFyPjo6
cGFyc2VQYXRoKHNwZWMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqZmlsZXBhdGgsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKnF1ZXJ5LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICpmcmFnbWVudCk7Cit9CisKK3ZvaWQgUGFyc2VQYXRoSW50ZXJuYWwoY29uc3Qg
Y2hhcjE2KiBzcGVjLAorICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXVEY6OlVSTENvbXBv
bmVudCYgcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgV1RGOjpVUkxDb21wb25lbnQqIGZp
bGVwYXRoLAorICAgICAgICAgICAgICAgICAgICAgICBXVEY6OlVSTENvbXBvbmVudCogcXVlcnks
CisgICAgICAgICAgICAgICAgICAgICAgIFdURjo6VVJMQ29tcG9uZW50KiBmcmFnbWVudCkgewor
ICBXVEY6OlVSTFBhcnNlcjxjaGFyMTY+OjpwYXJzZVBhdGgoc3BlYywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAqZmlsZXBhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAq
cXVlcnksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqZnJhZ21lbnQpOwor
fQorCit2b2lkIFBhcnNlQWZ0ZXJTY2hlbWUoY29uc3QgY2hhciogc3BlYywKKyAgICAgICAgICAg
ICAgICAgICAgICBpbnQgc3BlY19sZW4sCisgICAgICAgICAgICAgICAgICAgICAgaW50IGFmdGVy
X3NjaGVtZSwKKyAgICAgICAgICAgICAgICAgICAgICBXVEY6OlVSTFNlZ21lbnRzKiBwYXJzZWQp
IHsKKyAgV1RGOjpVUkxQYXJzZXI8Y2hhcj46OnBhcnNlQWZ0ZXJTY2hlbWUoc3BlYywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BlY19sZW4sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFmdGVyX3NjaGVtZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKnBhcnNlZCk7Cit9CisKK3ZvaWQgUGFyc2VB
ZnRlclNjaGVtZShjb25zdCBjaGFyMTYqIHNwZWMsCisgICAgICAgICAgICAgICAgICAgICAgaW50
IHNwZWNfbGVuLAorICAgICAgICAgICAgICAgICAgICAgIGludCBhZnRlcl9zY2hlbWUsCisgICAg
ICAgICAgICAgICAgICAgICAgV1RGOjpVUkxTZWdtZW50cyogcGFyc2VkKSB7CisgIFdURjo6VVJM
UGFyc2VyPGNoYXIxNj46OnBhcnNlQWZ0ZXJTY2hlbWUoc3BlYywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzcGVjX2xlbiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBhZnRlcl9zY2hlbWUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKnBhcnNlZCk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSB1
cmxfcGFyc2UKSW5kZXg6IEphdmFTY3JpcHRDb3JlL3d0Zi91cmwvY2hyb21pdW0vcGFyc2VyLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvd3RmL3VybC9jaHJvbWl1bS9wYXJzZXIuaAko
cmV2aXNpb24gMCkKKysrIEphdmFTY3JpcHRDb3JlL3d0Zi91cmwvY2hyb21pdW0vcGFyc2VyLmgJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjAyIEBACisvLyBDb3B5cmlnaHQgMjAwNywgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vCisvLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKy8vIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKKy8vIG1ldDoKKy8vCisvLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8gICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorLy8g
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgorLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQorLy8gZGlzdHJpYnV0aW9uLgorLy8gICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworLy8gY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KKy8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCisvLworLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgorLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKKy8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorLy8gU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorLy8gTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCisvLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKy8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKy8vIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
Ly8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKworI2lmbmRlZiBXVEZVUkxfQ0hST01JVU1fUEFSU0VfSF9fCisjZGVm
aW5lIFdURlVSTF9DSFJPTUlVTV9QQVJTRV9IX18KKworI2luY2x1ZGUgPHN0cmluZz4KKworI2lu
Y2x1ZGUgImJhc2UvYmFzaWN0eXBlcy5oIgorI2luY2x1ZGUgImJhc2Uvc3RyaW5nMTYuaCIKKyNp
bmNsdWRlICJ3dGZ1cmwvc3JjL1VSTFNlZ21lbnRzLmgiCisKK25hbWVzcGFjZSB1cmxfcGFyc2Ug
eworCisvLyBJbml0aWFsaXphdGlvbiBmdW5jdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLworLy8gVGhlc2UgZnVuY3Rpb25zIHBhcnNl
IHRoZSBnaXZlbiBVUkwsIGZpbGxpbmcgaW4gYWxsIG9mIHRoZSBzdHJ1Y3R1cmUncworLy8gY29t
cG9uZW50cy4gVGhlc2UgZnVuY3Rpb25zIGNhbiBub3QgZmFpbCwgdGhleSB3aWxsIGFsd2F5cyBk
byB0aGVpciBiZXN0CisvLyBhdCBpbnRlcnByZXRpbmcgdGhlIGlucHV0IGdpdmVuLgorLy8KKy8v
IFRoZSBzdHJpbmcgbGVuZ3RoIG9mIHRoZSBVUkwgTVVTVCBiZSBzcGVjaWZpZWQsIHdlIGRvIG5v
dCBjaGVjayBmb3IgTlVMTHMKKy8vIGF0IGFueSBwb2ludCBpbiB0aGUgcHJvY2VzcywgYW5kIHdp
bGwgYWN0dWFsbHkgaGFuZGxlIGVtYmVkZGVkIE5VTExzLgorLy8KKy8vIElNUE9SVEFOVDogVGhl
c2UgZnVuY3Rpb25zIGRvIE5PVCBoYW5nIG9uIHRvIHRoZSBnaXZlbiBwb2ludGVyIG9yIGNvcHkg
aXQKKy8vIGluIGFueSB3YXkuIFNlZSB0aGUgY29tbWVudCBhYm92ZSB0aGUgc3RydWN0LgorLy8K
Ky8vIFRoZSA4LWJpdCB2ZXJzaW9ucyByZXF1aXJlIFVURi04IGVuY29kaW5nLgorCisvLyBTdGFu
ZGFyZFVSTCBpcyBmb3Igd2hlbiB0aGUgc2NoZW1lIGlzIGtub3duIHRvIGJlIG9uZSB0aGF0IGhh
cyBhbgorLy8gYXV0aG9yaXR5IChob3N0KSBsaWtlICJodHRwIi4gVGhpcyBmdW5jdGlvbiB3aWxs
IG5vdCBoYW5kbGUgd2VpcmQgb25lcworLy8gbGlrZSAiYWJvdXQ6IiBhbmQgImphdmFzY3JpcHQ6
Iiwgb3IgZG8gdGhlIHJpZ2h0IHRoaW5nIGZvciAiZmlsZToiIFVSTHMuCit2b2lkIFBhcnNlU3Rh
bmRhcmRVUkwoY29uc3QgY2hhciogc3BlYywgaW50IHNwZWNfbGVuLCBXVEY6OlVSTFNlZ21lbnRz
KiBwYXJzZWQpOwordm9pZCBQYXJzZVN0YW5kYXJkVVJMKGNvbnN0IGNoYXIxNiogc3BlYywgaW50
IHNwZWNfbGVuLCBXVEY6OlVSTFNlZ21lbnRzKiBwYXJzZWQpOworCisvLyBQYXRoVVJMIGlzIGZv
ciB3aGVuIHRoZSBzY2hlbWUgaXMga25vd24gbm90IHRvIGhhdmUgYW4gYXV0aG9yaXR5IChob3N0
KQorLy8gc2VjdGlvbiBidXQgdGhhdCBhcmVuJ3QgZmlsZSBVUkxzIGVpdGhlci4gVGhlIHNjaGVt
ZSBpcyBwYXJzZWQsIGFuZAorLy8gZXZlcnl0aGluZyBhZnRlciB0aGUgc2NoZW1lIGlzIGNvbnNp
ZGVyZWQgYXMgdGhlIHBhdGguIFRoaXMgaXMgdXNlZCBmb3IKKy8vIHRoaW5ncyBsaWtlICJhYm91
dDoiIGFuZCAiamF2YXNjcmlwdDoiCit2b2lkIFBhcnNlUGF0aFVSTChjb25zdCBjaGFyKiBzcGVj
LCBpbnQgc3BlY19sZW4sIFdURjo6VVJMU2VnbWVudHMqIHBhcnNlZCk7Cit2b2lkIFBhcnNlUGF0
aFVSTChjb25zdCBjaGFyMTYqIHNwZWMsIGludCBzcGVjX2xlbiwgV1RGOjpVUkxTZWdtZW50cyog
cGFyc2VkKTsKKworLy8gRmlsZVVSTCBpcyBmb3IgZmlsZSBVUkxzLiBUaGVyZSBhcmUgc29tZSBz
cGVjaWFsIHJ1bGVzIGZvciBpbnRlcnByZXRpbmcKKy8vIHRoZXNlLgordm9pZCBQYXJzZUZpbGVV
UkwoY29uc3QgY2hhciogc3BlYywgaW50IHNwZWNfbGVuLCBXVEY6OlVSTFNlZ21lbnRzKiBwYXJz
ZWQpOwordm9pZCBQYXJzZUZpbGVVUkwoY29uc3QgY2hhcjE2KiBzcGVjLCBpbnQgc3BlY19sZW4s
IFdURjo6VVJMU2VnbWVudHMqIHBhcnNlZCk7CisKKy8vIE1haWx0b1VSTCBpcyBmb3IgbWFpbHRv
OiB1cmxzLiBUaGV5IGFyZSBtYWRlIHVwIHNjaGVtZSxwYXRoLHF1ZXJ5Cit2b2lkIFBhcnNlTWFp
bHRvVVJMKGNvbnN0IGNoYXIqIHNwZWMsIGludCBzcGVjX2xlbiwgV1RGOjpVUkxTZWdtZW50cyog
cGFyc2VkKTsKK3ZvaWQgUGFyc2VNYWlsdG9VUkwoY29uc3QgY2hhcjE2KiBzcGVjLCBpbnQgc3Bl
Y19sZW4sIFdURjo6VVJMU2VnbWVudHMqIHBhcnNlZCk7CisKKy8vIEhlbHBlciBmdW5jdGlvbnMg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKworLy8gTG9jYXRlcyB0aGUgc2NoZW1lIGFjY29yZGluZyB0byB0aGUgVVJMICBwYXJzZXIn
cyBydWxlcy4gVGhpcyBmdW5jdGlvbiBpcworLy8gZGVzaWduZWQgc28gdGhlIGNhbGxlciBjYW4g
ZmluZCB0aGUgc2NoZW1lIGFuZCBjYWxsIHRoZSBjb3JyZWN0IEluaXQqCisvLyBmdW5jdGlvbiBh
Y2NvcmRpbmcgdG8gdGhlaXIga25vd24gc2NoZW1lIHR5cGVzLgorLy8KKy8vIEl0IGFsc28gZG9l
cyBub3QgcGVyZm9ybSBhbnkgdmFsaWRhdGlvbiBvbiB0aGUgc2NoZW1lLgorLy8KKy8vIFRoaXMg
ZnVuY3Rpb24gd2lsbCByZXR1cm4gdHJ1ZSBpZiB0aGUgc2NoZW1lIGlzIGZvdW5kIGFuZCB3aWxs
IHB1dCB0aGUKKy8vIHNjaGVtZSdzIHJhbmdlIGludG8gKnNjaGVtZS4gRmFsc2UgbWVhbnMgbm8g
c2NoZW1lIGNvdWxkIGJlIGZvdW5kLiBOb3RlCisvLyB0aGF0IGEgVVJMIGJlZ2lubmluZyB3aXRo
IGEgY29sb24gaGFzIGEgc2NoZW1lLCBidXQgaXQgaXMgZW1wdHksIHNvIHRoaXMKKy8vIGZ1bmN0
aW9uIHdpbGwgcmV0dXJuIHRydWUgYnV0ICpzY2hlbWUgd2lsbCA9ICgwLDApLgorLy8KKy8vIFRo
ZSBzY2hlbWUgaXMgZm91bmQgYnkgc2tpcHBpbmcgc3BhY2VzIGFuZCBjb250cm9sIGNoYXJhY3Rl
cnMgYXQgdGhlCisvLyBiZWdpbm5pbmcsIGFuZCB0YWtpbmcgZXZlcnl0aGluZyBmcm9tIHRoZXJl
IHRvIHRoZSBmaXJzdCBjb2xvbiB0byBiZSB0aGUKKy8vIHNjaGVtZS4gVGhlIGNoYXJhY3RlciBh
dCBzY2hlbWUuZW5kKCkgd2lsbCBiZSB0aGUgY29sb24gKHdlIG1heSBlbmhhbmNlCisvLyB0aGlz
IHRvIGhhbmRsZSBmdWxsIHdpZHRoIGNvbG9ucyBvciBzb21ldGhpbmcsIHNvIGRvbid0IGNvdW50
IG9uIHRoZQorLy8gYWN0dWFsIGNoYXJhY3RlciB2YWx1ZSkuIFRoZSBjaGFyYWN0ZXIgYXQgc2No
ZW1lLmVuZCgpKzEgd2lsbCBiZSB0aGUKKy8vIGJlZ2lubmluZyBvZiB0aGUgcmVzdCBvZiB0aGUg
VVJMLCBiZSBpdCB0aGUgYXV0aG9yaXR5IG9yIHRoZSBwYXRoIChvciB0aGUKKy8vIGVuZCBvZiB0
aGUgc3RyaW5nKS4KKy8vCisvLyBUaGUgOC1iaXQgdmVyc2lvbiByZXF1aXJlcyBVVEYtOCBlbmNv
ZGluZy4KK2Jvb2wgRXh0cmFjdFNjaGVtZShjb25zdCBjaGFyKiBzcGVjLCBpbnQgc3BlY19sZW4s
IFdURjo6VVJMQ29tcG9uZW50KiBzY2hlbWUpOworYm9vbCBFeHRyYWN0U2NoZW1lKGNvbnN0IGNo
YXIxNiogc3BlYywgaW50IHNwZWNfbGVuLCBXVEY6OlVSTENvbXBvbmVudCogc2NoZW1lKTsKKwor
Ly8gUmV0dXJucyB0cnVlIGlmIGNoIGlzIGEgY2hhcmFjdGVyIHRoYXQgdGVybWluYXRlcyB0aGUg
YXV0aG9yaXR5IHNlZ21lbnQKKy8vIG9mIGEgVVJMLgorYm9vbCBpc1Bvc3NpYmxlQXV0aG9yaXR5
VGVybWluYXRvcihjaGFyMTYgY2gpOworCisvLyBEb2VzIGEgYmVzdCBlZmZvcnQgcGFyc2Ugb2Yg
aW5wdXQgfHNwZWN8LCBpbiByYW5nZSB8YXV0aHwuIElmIGEgcGFydGljdWxhcgorLy8gY29tcG9u
ZW50IGlzIG5vdCBmb3VuZCwgaXQgd2lsbCBiZSBzZXQgdG8gaW52YWxpZC4KK3ZvaWQgUGFyc2VB
dXRob3JpdHkoY29uc3QgY2hhciogc3BlYywKKyAgICAgICAgICAgICAgICAgICAgY29uc3QgV1RG
OjpVUkxDb21wb25lbnQmIGF1dGgsCisgICAgICAgICAgICAgICAgICAgIFdURjo6VVJMQ29tcG9u
ZW50KiB1c2VybmFtZSwKKyAgICAgICAgICAgICAgICAgICAgV1RGOjpVUkxDb21wb25lbnQqIHBh
c3N3b3JkLAorICAgICAgICAgICAgICAgICAgICBXVEY6OlVSTENvbXBvbmVudCogaG9zdG5hbWUs
CisgICAgICAgICAgICAgICAgICAgIFdURjo6VVJMQ29tcG9uZW50KiBwb3J0X251bSk7Cit2b2lk
IFBhcnNlQXV0aG9yaXR5KGNoYXIxNiogc3BlYywKKyAgICAgICAgICAgICAgICAgICAgY29uc3Qg
V1RGOjpVUkxDb21wb25lbnQmIGF1dGgsCisgICAgICAgICAgICAgICAgICAgIFdURjo6VVJMQ29t
cG9uZW50KiB1c2VybmFtZSwKKyAgICAgICAgICAgICAgICAgICAgV1RGOjpVUkxDb21wb25lbnQq
IHBhc3N3b3JkLAorICAgICAgICAgICAgICAgICAgICBXVEY6OlVSTENvbXBvbmVudCogaG9zdG5h
bWUsCisgICAgICAgICAgICAgICAgICAgIFdURjo6VVJMQ29tcG9uZW50KiBwb3J0X251bSk7CisK
Ky8vIENvbXB1dGVzIHRoZSBpbnRlZ2VyIHBvcnQgdmFsdWUgZnJvbSB0aGUgZ2l2ZW4gcG9ydCBj
b21wb25lbnQuIFRoZSBwb3J0CisvLyBjb21wb25lbnQgc2hvdWxkIGhhdmUgYmVlbiBpZGVudGlm
aWVkIGJ5IG9uZSBvZiB0aGUgaW5pdCBmdW5jdGlvbnMgb24KKy8vIHxVUkxTZWdtZW50c3wgZm9y
IHRoZSBnaXZlbiBpbnB1dCBzcGVjLgorLy8KKy8vIFRoZSByZXR1cm4gdmFsdWUgd2lsbCBiZSBh
IHBvc2l0aXZlIGludGVnZXIgYmV0d2VlbiAwIGFuZCA2NEssIG9yIG9uZSBvZgorLy8gdGhlIHR3
byBzcGVjaWFsIHZhbHVlcyBiZWxvdy4KK2ludCBQYXJzZVBvcnQoY29uc3QgY2hhciogc3BlYywg
Y29uc3QgV1RGOjpVUkxDb21wb25lbnQmIHBvcnQpOworaW50IFBhcnNlUG9ydChjb25zdCBjaGFy
MTYqIHNwZWMsIGNvbnN0IFdURjo6VVJMQ29tcG9uZW50JiBwb3J0KTsKKworLy8gRXh0cmFjdHMg
dGhlIHJhbmdlIG9mIHRoZSBmaWxlIG5hbWUgaW4gdGhlIGdpdmVuIHNwZWMuIFRoZSBwYXRoIG11
c3QKKy8vIGFscmVhZHkgaGF2ZSBiZWVuIGNvbXB1dGVkIGJ5IHRoZSBwYXJzZSBmdW5jdGlvbiwg
YW5kIHRoZSBtYXRjaGluZyBVUkwKKy8vIGFuZCBleHRyYWN0ZWQgcGF0aCBhcmUgcHJvdmlkZWQg
dG8gdGhpcyBmdW5jdGlvbi4gVGhlIGZpbGVuYW1lIGlzCisvLyBkZWZpbmVkIGFzIGJlaW5nIGV2
ZXJ5dGhpbmcgZnJvbSB0aGUgbGFzdCBzbGFzaC9iYWNrc2xhc2ggb2YgdGhlIHBhdGgKKy8vIHRv
IHRoZSBlbmQgb2YgdGhlIHBhdGguCisvLworLy8gVGhlIGZpbGUgbmFtZSB3aWxsIGJlIGVtcHR5
IGlmIHRoZSBwYXRoIGlzIGVtcHR5IG9yIHRoZXJlIGlzIG5vdGhpbmcKKy8vIGZvbGxvd2luZyB0
aGUgbGFzdCBzbGFzaC4KKy8vCisvLyBUaGUgOC1iaXQgdmVyc2lvbiByZXF1aXJlcyBVVEYtOCBl
bmNvZGluZy4KK3ZvaWQgRXh0cmFjdEZpbGVOYW1lKGNvbnN0IGNoYXIqIHNwZWMsCisgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBXVEY6OlVSTENvbXBvbmVudCYgcGF0aCwKKyAgICAgICAgICAg
ICAgICAgICAgIFdURjo6VVJMQ29tcG9uZW50KiBmaWxlX25hbWUpOwordm9pZCBFeHRyYWN0Rmls
ZU5hbWUoY29uc3QgY2hhcjE2KiBzcGVjLAorICAgICAgICAgICAgICAgICAgICAgY29uc3QgV1RG
OjpVUkxDb21wb25lbnQmIHBhdGgsCisgICAgICAgICAgICAgICAgICAgICBXVEY6OlVSTENvbXBv
bmVudCogZmlsZV9uYW1lKTsKKworLy8gRXh0cmFjdCB0aGUgZmlyc3Qga2V5L3ZhbHVlIGZyb20g
dGhlIHJhbmdlIGRlZmluZWQgYnkgfCpxdWVyeXwuIFVwZGF0ZXMKKy8vIHwqcXVlcnl8IHRvIHN0
YXJ0IGF0IHRoZSBlbmQgb2YgdGhlIGV4dHJhY3RlZCBrZXkvdmFsdWUgcGFpci4gVGhpcyBpcwor
Ly8gZGVzaWduZWQgZm9yIHVzZSBpbiBhIGxvb3A6IHlvdSBjYW4ga2VlcCBjYWxsaW5nIGl0IHdp
dGggdGhlIHNhbWUgcXVlcnkKKy8vIG9iamVjdCBhbmQgaXQgd2lsbCBpdGVyYXRlIG92ZXIgYWxs
IGl0ZW1zIGluIHRoZSBxdWVyeS4KKy8vCisvLyBTb21lIGtleS92YWx1ZSBwYWlycyBtYXkgaGF2
ZSB0aGUga2V5LCB0aGUgdmFsdWUsIG9yIGJvdGggYmUgZW1wdHkgKGZvcgorLy8gZXhhbXBsZSwg
dGhlIHF1ZXJ5IHN0cmluZyAiPyYiKS4gVGhlc2Ugd2lsbCBiZSByZXR1cm5lZC4gTm90ZSB0aGF0
IGFuIGVtcHR5CisvLyBsYXN0IHBhcmFtZXRlciAiZm9vLmNvbT8iIG9yIGZvby5jb20/YSYiIHdp
bGwgbm90IGJlIHJldHVybmVkLCB0aGlzIGNhc2UKKy8vIGlzIHRoZSBzYW1lIGFzICJkb25lLiIK
Ky8vCisvLyBUaGUgaW5pdGlhbCBxdWVyeSBjb21wb25lbnQgc2hvdWxkIG5vdCBpbmNsdWRlIHRo
ZSAnPycgKHRoaXMgaXMgdGhlIGRlZmF1bHQKKy8vIGZvciBwYXJzZWQgVVJMcykuCisvLworLy8g
SWYgbm8ga2V5L3ZhbHVlIGFyZSBmb3VuZCB8KmtleXwgYW5kIHwqdmFsdWV8IHdpbGwgYmUgdW5j
aGFuZ2VkIGFuZCBpdCB3aWxsCisvLyByZXR1cm4gZmFsc2UuCitib29sIEV4dHJhY3RRdWVyeUtl
eVZhbHVlKGNvbnN0IGNoYXIqIHNwZWMsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFdURjo6
VVJMQ29tcG9uZW50KiBxdWVyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgV1RGOjpVUkxD
b21wb25lbnQqIGtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgV1RGOjpVUkxDb21wb25l
bnQqIHZhbHVlKTsKK2Jvb2wgRXh0cmFjdFF1ZXJ5S2V5VmFsdWUoY29uc3QgY2hhcjE2KiBzcGVj
LAorICAgICAgICAgICAgICAgICAgICAgICAgICBXVEY6OlVSTENvbXBvbmVudCogcXVlcnksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgIFdURjo6VVJMQ29tcG9uZW50KiBrZXksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgIFdURjo6VVJMQ29tcG9uZW50KiB2YWx1ZSk7CisKKy8vIEludGVy
bmFsIGZ1bmN0aW9ucyBpbiBwYXJzZXIuY2MgdGhhdCBwYXJzZSB0aGUgcGF0aCwgdGhhdCBpcywg
ZXZlcnl0aGluZworLy8gZm9sbG93aW5nIHRoZSBhdXRob3JpdHkgc2VjdGlvbi4gVGhlIGlucHV0
IGlzIHRoZSByYW5nZSBvZiBldmVyeXRoaW5nCisvLyBmb2xsb3dpbmcgdGhlIGF1dGhvcml0eSBz
ZWN0aW9uLCBhbmQgdGhlIG91dHB1dCBpcyB0aGUgaWRlbnRpZmllZCByYW5nZXMuCisvLworLy8g
VGhpcyBpcyBkZXNpZ25lZCBmb3IgdGhlIGZpbGUgVVJMIHBhcnNlciBvciBvdGhlciBjb25zdW1l
cnMgd2hvIG1heSBkbworLy8gc3BlY2lhbCBzdHVmZiBhdCB0aGUgYmVnaW5uaW5nLCBidXQgd2Fu
dCByZWd1bGFyIHBhdGggcGFyc2luZywgaXQganVzdAorLy8gbWFwcyB0byB0aGUgaW50ZXJuYWwg
cGFyc2luZyBmdW5jdGlvbiBmb3IgcGF0aHMuCit2b2lkIFBhcnNlUGF0aEludGVybmFsKGNvbnN0
IGNoYXIqIHNwZWMsCisgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdURjo6VVJMQ29tcG9u
ZW50JiBwYXRoLAorICAgICAgICAgICAgICAgICAgICAgICBXVEY6OlVSTENvbXBvbmVudCogZmls
ZXBhdGgsCisgICAgICAgICAgICAgICAgICAgICAgIFdURjo6VVJMQ29tcG9uZW50KiBxdWVyeSwK
KyAgICAgICAgICAgICAgICAgICAgICAgV1RGOjpVUkxDb21wb25lbnQqIGZyYWdtZW50KTsKK3Zv
aWQgUGFyc2VQYXRoSW50ZXJuYWwoY29uc3QgY2hhcjE2KiBzcGVjLAorICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBXVEY6OlVSTENvbXBvbmVudCYgcGF0aCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgV1RGOjpVUkxDb21wb25lbnQqIGZpbGVwYXRoLAorICAgICAgICAgICAgICAgICAgICAg
ICBXVEY6OlVSTENvbXBvbmVudCogcXVlcnksCisgICAgICAgICAgICAgICAgICAgICAgIFdURjo6
VVJMQ29tcG9uZW50KiBmcmFnbWVudCk7CisKKy8vIEdpdmVuIGEgc3BlYyBhbmQgYSBwb2ludGVy
IHRvIHRoZSBjaGFyYWN0ZXIgYWZ0ZXIgdGhlIGNvbG9uIGZvbGxvd2luZyB0aGUKKy8vIHNjaGVt
ZSwgdGhpcyBwYXJzZXMgaXQgYW5kIGZpbGxzIGluIHRoZSBzdHJ1Y3R1cmUsIEV2ZXJ5IGl0ZW0g
aW4gdGhlIHBhcnNlZAorLy8gc3RydWN0dXJlIGlzIGZpbGxlZCBFWENFUFQgZm9yIHRoZSBzY2hl
bWUsIHdoaWNoIGlzIHVudG91Y2hlZC4KK3ZvaWQgUGFyc2VBZnRlclNjaGVtZShjb25zdCBjaGFy
KiBzcGVjLAorICAgICAgICAgICAgICAgICAgICAgIGludCBzcGVjX2xlbiwKKyAgICAgICAgICAg
ICAgICAgICAgICBpbnQgYWZ0ZXJfc2NoZW1lLAorICAgICAgICAgICAgICAgICAgICAgIFdURjo6
VVJMU2VnbWVudHMqIHBhcnNlZCk7Cit2b2lkIFBhcnNlQWZ0ZXJTY2hlbWUoY29uc3QgY2hhcjE2
KiBzcGVjLAorICAgICAgICAgICAgICAgICAgICAgIGludCBzcGVjX2xlbiwKKyAgICAgICAgICAg
ICAgICAgICAgICBpbnQgYWZ0ZXJfc2NoZW1lLAorICAgICAgICAgICAgICAgICAgICAgIFdURjo6
VVJMU2VnbWVudHMqIHBhcnNlZCk7CisKK30gIC8vIG5hbWVzcGFjZSB1cmxfcGFyc2UKKworI2Vu
ZGlmICAvLyBXVEZVUkxfQ0hST01JVU1fUEFSU0VfSF9fCg==
</data>
<flag name="review"
          id="39354"
          type_id="1"
          status="-"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>