<?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>162045</bug_id>
          
          <creation_ts>2016-09-15 18:30:13 -0700</creation_ts>
          <short_desc>Optimize URLParser&apos;s host parsing</short_desc>
          <delta_ts>2016-10-03 16:03:21 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>162241</dup_id>
          
          <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="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1230286</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-09-15 18:30:13 -0700</bug_when>
    <thetext>Optimize URLParser&apos;s host parsing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1230288</commentid>
    <comment_count>1</comment_count>
      <attachid>289026</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-09-15 18:30:53 -0700</bug_when>
    <thetext>Created attachment 289026
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1230516</commentid>
    <comment_count>2</comment_count>
      <attachid>289026</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-09-16 11:55:19 -0700</bug_when>
    <thetext>Comment on attachment 289026
Patch

Something like this should be done, but it&apos;s unclear whether this is the best improvement.  Clearing review flag for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235969</commentid>
    <comment_count>3</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-10-03 16:03:21 -0700</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 162241 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>289026</attachid>
            <date>2016-09-15 18:30:53 -0700</date>
            <delta_ts>2016-09-16 11:55:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162045-20160915182814.patch</filename>
            <type>text/plain</type>
            <size>10330</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNjAwOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDE2LTA5LTE1ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgT3B0aW1pemUg
VVJMUGFyc2VyJ3MgaG9zdCBwYXJzaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjIwNDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBQZXJmb3JtYW5jZSBpbXByb3ZlbWVudC4gIENvcnJlY3RuZXNzIGNv
dmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9VUkxQYXJzZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29kZVBvaW50SXRlcmF0b3I6OmNvZGVVbml0c1JlbWFp
bmluZyk6CisgICAgICAgIChXZWJDb3JlOjp1dGY4UGVyY2VudEVuY29kZVF1ZXJ5KToKKyAgICAg
ICAgKFdlYkNvcmU6OnBlcmNlbnREZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6ZG9tYWluVG9B
U0NJSSk6CisgICAgICAgIChXZWJDb3JlOjpoYXNJbnZhbGlkRG9tYWluQ2hhcmFjdGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlVSTFBhcnNlcjo6cGFyc2VIb3N0KToKKyAgICAgICAgKFdlYkNvcmU6
OmZvcm1VUkxEZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGFpbnNPbmx5QVNDSUkpOiBE
ZWxldGVkLgorCiAyMDE2LTA5LTE1ICBEYXZlIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtDU1MgUGFyc2VyXSBHZXQgQ1NTUGFyc2VyRmFzdFBhdGhzLmNwcCBjb21waWxpbmcK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTFBhcnNlci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMUGFyc2VyLmNwcAkocmV2aXNpb24gMjA1OTkw
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMUGFyc2VyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNzYsNiArNzYsMTIgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbV9iZWdpbiA+PSBt
X2VuZDsKICAgICB9CiAgICAgCisgICAgc2l6ZV90IGNvZGVVbml0c1JlbWFpbmluZygpIGNvbnN0
CisgICAgeworICAgICAgICBBU1NFUlQobV9iZWdpbiA8PSBtX2VuZCk7CisgICAgICAgIHJldHVy
biBtX2VuZCAtIG1fYmVnaW47CisgICAgfQorICAgIAogcHJpdmF0ZToKICAgICBjb25zdCBDaGFy
YWN0ZXJUeXBlKiBtX2JlZ2luIHsgbnVsbHB0ciB9OwogICAgIGNvbnN0IENoYXJhY3RlclR5cGUq
IG1fZW5kIHsgbnVsbHB0ciB9OwpAQCAtNDQ5LDIzICs0NTUsMzEgQEAgc3RhdGljIHZvaWQgdXRm
OFBlcmNlbnRFbmNvZGUoVUNoYXIzMiBjbwogICAgICAgICBidWlsZGVyLmFwcGVuZChjb2RlUG9p
bnQpOwogfQogCi1zdGF0aWMgdm9pZCB1dGY4UGVyY2VudEVuY29kZVF1ZXJ5KFVDaGFyMzIgY29k
ZVBvaW50LCBTdHJpbmdCdWlsZGVyJiBidWlsZGVyKQorc3RhdGljIHZvaWQgdXRmOFBlcmNlbnRF
bmNvZGVRdWVyeShVQ2hhcjMyIGNvZGVQb2ludCwgU3RyaW5nQnVpbGRlciYgZGVzdGluYXRpb24p
CiB7Ci0gICAgdWludDhfdCBidWZmZXJbVThfTUFYX0xFTkdUSF07Ci0gICAgaW50MzJfdCBvZmZz
ZXQgPSAwOwotICAgIFVCb29sIGVycm9yID0gZmFsc2U7Ci0gICAgVThfQVBQRU5EKGJ1ZmZlciwg
b2Zmc2V0LCBVOF9NQVhfTEVOR1RILCBjb2RlUG9pbnQsIGVycm9yKTsKLSAgICBBU1NFUlRfV0lU
SF9TRUNVUklUWV9JTVBMSUNBVElPTihvZmZzZXQgPD0gc3RhdGljX2Nhc3Q8aW50MzJfdD4oc2l6
ZW9mKGJ1ZmZlcikpKTsKLSAgICAvLyBGSVhNRTogQ2hlY2sgZXJyb3IuCi0gICAgZm9yIChpbnQz
Ml90IGkgPSAwOyBpIDwgb2Zmc2V0OyArK2kpIHsKLSAgICAgICAgYXV0byBieXRlID0gYnVmZmVy
W2ldOworICAgIGlmIChjb2RlUG9pbnQgPD0gMHg3ZikgeworICAgICAgICB1aW50OF90IGJ5dGUg
PSBjb2RlUG9pbnQ7CiAgICAgICAgIGlmIChzaG91bGRQZXJjZW50RW5jb2RlUXVlcnlCeXRlKGJ5
dGUpKQotICAgICAgICAgICAgcGVyY2VudEVuY29kZShieXRlLCBidWlsZGVyKTsKKyAgICAgICAg
ICAgIHBlcmNlbnRFbmNvZGUoYnl0ZSwgZGVzdGluYXRpb24pOwogICAgICAgICBlbHNlCi0gICAg
ICAgICAgICBidWlsZGVyLmFwcGVuZChieXRlKTsKKyAgICAgICAgICAgIGRlc3RpbmF0aW9uLmFw
cGVuZChieXRlKTsKKyAgICB9IGVsc2UgeworICAgICAgICB1aW50OF90IGJ1ZmZlcltVOF9NQVhf
TEVOR1RIXTsKKyAgICAgICAgaW50MzJfdCBvZmZzZXQgPSAwOworICAgICAgICBVQm9vbCBlcnJv
ciA9IGZhbHNlOworICAgICAgICBVOF9BUFBFTkQoYnVmZmVyLCBvZmZzZXQsIFU4X01BWF9MRU5H
VEgsIGNvZGVQb2ludCwgZXJyb3IpOworICAgICAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBM
SUNBVElPTihvZmZzZXQgPD0gc3RhdGljX2Nhc3Q8aW50MzJfdD4oc2l6ZW9mKGJ1ZmZlcikpKTsK
KyAgICAgICAgLy8gRklYTUU6IENoZWNrIGVycm9yLgorICAgICAgICBmb3IgKGludDMyX3QgaSA9
IDA7IGkgPCBvZmZzZXQ7ICsraSkgeworICAgICAgICAgICAgYXV0byBieXRlID0gYnVmZmVyW2ld
OworICAgICAgICAgICAgaWYgKHNob3VsZFBlcmNlbnRFbmNvZGVRdWVyeUJ5dGUoYnl0ZSkpCisg
ICAgICAgICAgICAgICAgcGVyY2VudEVuY29kZShieXRlLCBkZXN0aW5hdGlvbik7CisgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgZGVzdGluYXRpb24uYXBwZW5kKGJ5dGUpOworICAg
ICAgICB9CiAgICAgfQogfQotICAgIAorCiBzdGF0aWMgdm9pZCBlbmNvZGVRdWVyeShjb25zdCBT
dHJpbmdCdWlsZGVyJiBzb3VyY2UsIFN0cmluZ0J1aWxkZXImIGRlc3RpbmF0aW9uLCBjb25zdCBU
ZXh0RW5jb2RpbmcmIGVuY29kaW5nKQogewogICAgIC8vIEZJWE1FOiBJdCBpcyB1bmNsZWFyIGlu
IHRoZSBzcGVjIHdoYXQgdG8gZG8gd2hlbiBlbmNvZGluZyBmYWlscy4gVGhlIGJlaGF2aW9yIHNo
b3VsZCBiZSBzcGVjaWZpZWQgYW5kIHRlc3RlZC4KQEAgLTE3OTksNzMgKzE4MTMsNzQgQEAgc3Rh
dGljIE9wdGlvbmFsPHN0ZDo6YXJyYXk8dWludDE2X3QsIDg+PgogICAgIHJldHVybiBhZGRyZXNz
OwogfQogCi0vLyBGSVhNRTogVGhpcyBzaG91bGQgcmV0dXJuIGEgQ1N0cmluZy4KLXN0YXRpYyBT
dHJpbmcgcGVyY2VudERlY29kZShjb25zdCBMQ2hhciogaW5wdXQsIHNpemVfdCBsZW5ndGgpCitz
dGF0aWMgVmVjdG9yPExDaGFyLCAyMDQ4PiBwZXJjZW50RGVjb2RlKGNvbnN0IExDaGFyKiBpbnB1
dCwgc2l6ZV90IGxlbmd0aCkKIHsKLSAgICBTdHJpbmdCdWlsZGVyIG91dHB1dDsKKyAgICBWZWN0
b3I8TENoYXIsIDIwNDg+IG91dHB1dDsKKyAgICBvdXRwdXQucmVzZXJ2ZUluaXRpYWxDYXBhY2l0
eShsZW5ndGgpOwogICAgIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kp
IHsKICAgICAgICAgdWludDhfdCBieXRlID0gaW5wdXRbaV07CiAgICAgICAgIGlmIChieXRlICE9
ICclJykKLSAgICAgICAgICAgIG91dHB1dC5hcHBlbmQoYnl0ZSk7CisgICAgICAgICAgICBvdXRw
dXQudW5jaGVja2VkQXBwZW5kKGJ5dGUpOwogICAgICAgICBlbHNlIGlmIChpIDwgbGVuZ3RoIC0g
MikgewogICAgICAgICAgICAgaWYgKGlzQVNDSUlIZXhEaWdpdChpbnB1dFtpICsgMV0pICYmIGlz
QVNDSUlIZXhEaWdpdChpbnB1dFtpICsgMl0pKSB7Ci0gICAgICAgICAgICAgICAgb3V0cHV0LmFw
cGVuZCh0b0FTQ0lJSGV4VmFsdWUoaW5wdXRbaSArIDFdLCBpbnB1dFtpICsgMl0pKTsKKyAgICAg
ICAgICAgICAgICBvdXRwdXQudW5jaGVja2VkQXBwZW5kKHRvQVNDSUlIZXhWYWx1ZShpbnB1dFtp
ICsgMV0sIGlucHV0W2kgKyAyXSkpOwogICAgICAgICAgICAgICAgIGkgKz0gMjsKICAgICAgICAg
ICAgIH0gZWxzZQotICAgICAgICAgICAgICAgIG91dHB1dC5hcHBlbmQoYnl0ZSk7CisgICAgICAg
ICAgICAgICAgb3V0cHV0LnVuY2hlY2tlZEFwcGVuZChieXRlKTsKICAgICAgICAgfSBlbHNlCi0g
ICAgICAgICAgICBvdXRwdXQuYXBwZW5kKGJ5dGUpOworICAgICAgICAgICAgb3V0cHV0LnVuY2hl
Y2tlZEFwcGVuZChieXRlKTsKICAgICB9Ci0gICAgcmV0dXJuIG91dHB1dC50b1N0cmluZ1ByZXNl
cnZlQ2FwYWNpdHkoKTsKLX0KLQotc3RhdGljIGJvb2wgY29udGFpbnNPbmx5QVNDSUkoY29uc3Qg
U3RyaW5nJiBzdHJpbmcpCi17Ci0gICAgaWYgKHN0cmluZy5pczhCaXQoKSkKLSAgICAgICAgcmV0
dXJuIGNoYXJhY3RlcnNBcmVBbGxBU0NJSShzdHJpbmcuY2hhcmFjdGVyczgoKSwgc3RyaW5nLmxl
bmd0aCgpKTsKLSAgICByZXR1cm4gY2hhcmFjdGVyc0FyZUFsbEFTQ0lJKHN0cmluZy5jaGFyYWN0
ZXJzMTYoKSwgc3RyaW5nLmxlbmd0aCgpKTsKKyAgICByZXR1cm4gb3V0cHV0OwogfQogCi1zdGF0
aWMgT3B0aW9uYWw8U3RyaW5nPiBkb21haW5Ub0FTQ0lJKGNvbnN0IFN0cmluZyYgZG9tYWluKQor
c3RhdGljIE9wdGlvbmFsPFZlY3RvcjxMQ2hhcj4+IGRvbWFpblRvQVNDSUkoY29uc3QgU3RyaW5n
JiBkb21haW4pCiB7Ci0gICAgY29uc3QgdW5zaWduZWQgaG9zdG5hbWVCdWZmZXJMZW5ndGggPSAy
MDQ4OwotCi0gICAgaWYgKGNvbnRhaW5zT25seUFTQ0lJKGRvbWFpbikpIHsKLSAgICAgICAgaWYg
KGRvbWFpbi5pczhCaXQoKSkKLSAgICAgICAgICAgIHJldHVybiBkb21haW4uY29udmVydFRvQVND
SUlMb3dlcmNhc2UoKTsKLSAgICAgICAgVmVjdG9yPExDaGFyLCBob3N0bmFtZUJ1ZmZlckxlbmd0
aD4gYnVmZmVyOwotICAgICAgICBzaXplX3QgbGVuZ3RoID0gZG9tYWluLmxlbmd0aCgpOwotICAg
ICAgICBidWZmZXIucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShsZW5ndGgpOwotICAgICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKQotICAgICAgICAgICAgYnVmZmVyLmFwcGVu
ZCh0b0FTQ0lJTG93ZXIoZG9tYWluW2ldKSk7Ci0gICAgICAgIHJldHVybiBTdHJpbmcoYnVmZmVy
LmRhdGEoKSwgbGVuZ3RoKTsKKyAgICBWZWN0b3I8TENoYXI+IGJ1ZmZlcjsKKyAgICBzaXplX3Qg
bGVuZ3RoID0gZG9tYWluLmxlbmd0aCgpOworICAgIGJ1ZmZlci5yZXNlcnZlSW5pdGlhbENhcGFj
aXR5KGxlbmd0aCk7CisgICAgaWYgKGRvbWFpbi5pczhCaXQoKSkgeworICAgICAgICBjb25zdCBM
Q2hhciogYyA9IGRvbWFpbi5jaGFyYWN0ZXJzOCgpOworICAgICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IGRvbWFpbi5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICBpZiAoIWlzQVNDSUko
Y1tpXSkpCisgICAgICAgICAgICAgICAgZ290byBOb25BU0NJSUhvc3Q7CisgICAgICAgICAgICBi
dWZmZXIudW5jaGVja2VkQXBwZW5kKHRvQVNDSUlMb3dlcihjW2ldKSk7CisgICAgICAgIH0KKyAg
ICB9IGVsc2UgeworICAgICAgICBjb25zdCBVQ2hhciogYyA9IGRvbWFpbi5jaGFyYWN0ZXJzMTYo
KTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBkb21haW4ubGVuZ3RoKCk7ICsraSkg
eworICAgICAgICAgICAgaWYgKCFpc0FTQ0lJKGNbaV0pKQorICAgICAgICAgICAgICAgIGdvdG8g
Tm9uQVNDSUlIb3N0OworICAgICAgICAgICAgYnVmZmVyLnVuY2hlY2tlZEFwcGVuZCh0b0FTQ0lJ
TG93ZXIoY1tpXSkpOworICAgICAgICB9CiAgICAgfQotICAgIAotICAgIFVDaGFyIGhvc3RuYW1l
QnVmZmVyW2hvc3RuYW1lQnVmZmVyTGVuZ3RoXTsKKyAgICByZXR1cm4gYnVmZmVyOworCitOb25B
U0NJSUhvc3Q6CisgICAgVUNoYXIgaG9zdG5hbWVCdWZmZXJbMjA0OF07CiAgICAgVUVycm9yQ29k
ZSBlcnJvciA9IFVfWkVST19FUlJPUjsKKyAgICBpbnQzMl90IG51bUNoYXJhY3RlcnNDb252ZXJ0
ZWQgPSB1aWRuYV9JRE5Ub0FTQ0lJKFN0cmluZ1ZpZXcoZG9tYWluKS51cGNvbnZlcnRlZENoYXJh
Y3RlcnMoKSwgZG9tYWluLmxlbmd0aCgpLCBob3N0bmFtZUJ1ZmZlciwgMjA0OCwgVUlETkFfQUxM
T1dfVU5BU1NJR05FRCwgbnVsbHB0ciwgJmVycm9yKTsKKyAgICBSRUxFQVNFX0FTU0VSVChudW1D
aGFyYWN0ZXJzQ29udmVydGVkIDw9IDIwNDgpOwogICAgIAotICAgIGludDMyX3QgbnVtQ2hhcmFj
dGVyc0NvbnZlcnRlZCA9IHVpZG5hX0lETlRvQVNDSUkoU3RyaW5nVmlldyhkb21haW4pLnVwY29u
dmVydGVkQ2hhcmFjdGVycygpLCBkb21haW4ubGVuZ3RoKCksIGhvc3RuYW1lQnVmZmVyLCBob3N0
bmFtZUJ1ZmZlckxlbmd0aCwgVUlETkFfQUxMT1dfVU5BU1NJR05FRCwgbnVsbHB0ciwgJmVycm9y
KTsKKyAgICBidWZmZXIuY2xlYXIoKTsKKyAgICBidWZmZXIucmVzZXJ2ZUNhcGFjaXR5KDIwNDgp
OwogCiAgICAgaWYgKGVycm9yID09IFVfWkVST19FUlJPUikgewotICAgICAgICBMQ2hhciBidWZm
ZXJbaG9zdG5hbWVCdWZmZXJMZW5ndGhdOwogICAgICAgICBmb3IgKGludDMyX3QgaSA9IDA7IGkg
PCBudW1DaGFyYWN0ZXJzQ29udmVydGVkOyArK2kpIHsKLSAgICAgICAgICAgIEFTU0VSVChpc0FT
Q0lJKGhvc3RuYW1lQnVmZmVyW2ldKSk7Ci0gICAgICAgICAgICBidWZmZXJbaV0gPSBob3N0bmFt
ZUJ1ZmZlcltpXTsKKyAgICAgICAgICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9O
KGlzQVNDSUkoaG9zdG5hbWVCdWZmZXJbaV0pKTsKKyAgICAgICAgICAgIGJ1ZmZlci51bmNoZWNr
ZWRBcHBlbmQoaG9zdG5hbWVCdWZmZXJbaV0pOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiBT
dHJpbmcoYnVmZmVyLCBudW1DaGFyYWN0ZXJzQ29udmVydGVkKTsKKyAgICAgICAgcmV0dXJuIGJ1
ZmZlcjsKICAgICB9CiAKICAgICAvLyBGSVhNRTogQ2hlY2sgZm9yIFVfQlVGRkVSX09WRVJGTE9X
X0VSUk9SIGFuZCByZXRyeSB3aXRoIGFuIGFsbG9jYXRlZCBidWZmZXIuCiAgICAgcmV0dXJuIE51
bGxvcHQ7CiB9CiAKLXN0YXRpYyBib29sIGhhc0ludmFsaWREb21haW5DaGFyYWN0ZXIoY29uc3Qg
U3RyaW5nJiBhc2NpaURvbWFpbikKK3N0YXRpYyBib29sIGhhc0ludmFsaWREb21haW5DaGFyYWN0
ZXIoY29uc3QgVmVjdG9yPExDaGFyPiYgYXNjaWlEb21haW4pCiB7Ci0gICAgUkVMRUFTRV9BU1NF
UlQoYXNjaWlEb21haW4uaXM4Qml0KCkpOwotICAgIGNvbnN0IExDaGFyKiBjaGFyYWN0ZXJzID0g
YXNjaWlEb21haW4uY2hhcmFjdGVyczgoKTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGFz
Y2lpRG9tYWluLmxlbmd0aCgpOyArK2kpIHsKLSAgICAgICAgaWYgKGlzSW52YWxpZERvbWFpbkNo
YXJhY3RlcihjaGFyYWN0ZXJzW2ldKSkKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGFzY2lp
RG9tYWluLnNpemUoKTsgKytpKSB7CisgICAgICAgIGlmIChpc0ludmFsaWREb21haW5DaGFyYWN0
ZXIoYXNjaWlEb21haW5baV0pKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAg
IHJldHVybiBmYWxzZTsKQEAgLTE5NjMsOCArMTk3OCw4IEBAIGJvb2wgVVJMUGFyc2VyOjpwYXJz
ZUhvc3QoQ29kZVBvaW50SXRlcmEKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAg
Ly8gRklYTUU6IFdlIHByb2JhYmx5IGRvbid0IG5lZWQgdG8gbWFrZSBzbyBtYW55IGJ1ZmZlcnMg
YW5kIFN0cmluZyBjb3BpZXMuCi0gICAgU3RyaW5nQnVpbGRlciB1dGY4RW5jb2RlZDsKKyAgICBW
ZWN0b3I8TENoYXIsIDIwNDg+IHV0ZjhFbmNvZGVkOworICAgIHV0ZjhFbmNvZGVkLnJlc2VydmVD
YXBhY2l0eShVOF9NQVhfTEVOR1RIICogaXRlcmF0b3IuY29kZVVuaXRzUmVtYWluaW5nKCkpOwog
ICAgIGZvciAoOyAhaXRlcmF0b3IuYXRFbmQoKTsgKytpdGVyYXRvcikgewogICAgICAgICBpZiAo
aXNUYWJPck5ld2xpbmUoKml0ZXJhdG9yKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtMTk3
OCwxOCArMTk5MywxNSBAQCBib29sIFVSTFBhcnNlcjo6cGFyc2VIb3N0KENvZGVQb2ludEl0ZXJh
CiAgICAgICAgIC8vIEZJWE1FOiBDaGVjayBlcnJvci4KICAgICAgICAgdXRmOEVuY29kZWQuYXBw
ZW5kKGJ1ZmZlciwgb2Zmc2V0KTsKICAgICB9Ci0gICAgUkVMRUFTRV9BU1NFUlQodXRmOEVuY29k
ZWQuaXM4Qml0KCkpOwotICAgIFN0cmluZyBwZXJjZW50RGVjb2RlZCA9IHBlcmNlbnREZWNvZGUo
dXRmOEVuY29kZWQuY2hhcmFjdGVyczgoKSwgdXRmOEVuY29kZWQubGVuZ3RoKCkpOwotICAgIFJF
TEVBU0VfQVNTRVJUKHBlcmNlbnREZWNvZGVkLmlzOEJpdCgpKTsKLSAgICBTdHJpbmcgZG9tYWlu
ID0gU3RyaW5nOjpmcm9tVVRGOChwZXJjZW50RGVjb2RlZC5jaGFyYWN0ZXJzOCgpLCBwZXJjZW50
RGVjb2RlZC5sZW5ndGgoKSk7CisgICAgVmVjdG9yPExDaGFyLCAyMDQ4PiBwZXJjZW50RGVjb2Rl
ZCA9IHBlcmNlbnREZWNvZGUodXRmOEVuY29kZWQuZGF0YSgpLCB1dGY4RW5jb2RlZC5zaXplKCkp
OworICAgIFN0cmluZyBkb21haW4gPSBTdHJpbmc6OmZyb21VVEY4KHBlcmNlbnREZWNvZGVkLmRh
dGEoKSwgcGVyY2VudERlY29kZWQuc2l6ZSgpKTsKICAgICBhdXRvIGFzY2lpRG9tYWluID0gZG9t
YWluVG9BU0NJSShkb21haW4pOwogICAgIGlmICghYXNjaWlEb21haW4gfHwgaGFzSW52YWxpZERv
bWFpbkNoYXJhY3Rlcihhc2NpaURvbWFpbi52YWx1ZSgpKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIFN0cmluZyYgYXNjaWlEb21haW5WYWx1ZSA9IGFzY2lpRG9tYWluLnZhbHVlKCk7Ci0g
ICAgUkVMRUFTRV9BU1NFUlQoYXNjaWlEb21haW5WYWx1ZS5pczhCaXQoKSk7Ci0gICAgY29uc3Qg
TENoYXIqIGFzY2lpRG9tYWluQ2hhcmFjdGVycyA9IGFzY2lpRG9tYWluVmFsdWUuY2hhcmFjdGVy
czgoKTsKKyAgICBWZWN0b3I8TENoYXI+JiBhc2NpaURvbWFpblZhbHVlID0gYXNjaWlEb21haW4u
dmFsdWUoKTsKKyAgICBjb25zdCBMQ2hhciogYXNjaWlEb21haW5DaGFyYWN0ZXJzID0gYXNjaWlE
b21haW5WYWx1ZS5kYXRhKCk7CiAgICAgCi0gICAgaWYgKGF1dG8gYWRkcmVzcyA9IHBhcnNlSVB2
NEhvc3QoQ29kZVBvaW50SXRlcmF0b3I8TENoYXI+KGFzY2lpRG9tYWluQ2hhcmFjdGVycywgYXNj
aWlEb21haW5DaGFyYWN0ZXJzICsgYXNjaWlEb21haW5WYWx1ZS5sZW5ndGgoKSkpKSB7CisgICAg
aWYgKGF1dG8gYWRkcmVzcyA9IHBhcnNlSVB2NEhvc3QoQ29kZVBvaW50SXRlcmF0b3I8TENoYXI+
KGFzY2lpRG9tYWluQ2hhcmFjdGVycywgYXNjaWlEb21haW5DaGFyYWN0ZXJzICsgYXNjaWlEb21h
aW5WYWx1ZS5zaXplKCkpKSkgewogICAgICAgICBzZXJpYWxpemVJUHY0KGFkZHJlc3MudmFsdWUo
KSwgbV9idWZmZXIpOwogICAgICAgICBtX3VybC5tX2hvc3RFbmQgPSBtX2J1ZmZlci5sZW5ndGgo
KTsKICAgICAgICAgaWYgKGl0ZXJhdG9yLmF0RW5kKCkpIHsKQEAgLTIwMDAsNyArMjAxMiw3IEBA
IGJvb2wgVVJMUGFyc2VyOjpwYXJzZUhvc3QoQ29kZVBvaW50SXRlcmEKICAgICAgICAgcmV0dXJu
IHBhcnNlUG9ydChpdGVyYXRvcik7CiAgICAgfQogICAgIAotICAgIG1fYnVmZmVyLmFwcGVuZChh
c2NpaURvbWFpbi52YWx1ZSgpKTsKKyAgICBtX2J1ZmZlci5hcHBlbmQoYXNjaWlEb21haW5DaGFy
YWN0ZXJzLCBhc2NpaURvbWFpblZhbHVlLnNpemUoKSk7CiAgICAgbV91cmwubV9ob3N0RW5kID0g
bV9idWZmZXIubGVuZ3RoKCk7CiAgICAgaWYgKCFpdGVyYXRvci5hdEVuZCgpKSB7CiAgICAgICAg
IEFTU0VSVCgqaXRlcmF0b3IgPT0gJzonKTsKQEAgLTIwMTksOCArMjAzMSw3IEBAIHN0YXRpYyBP
cHRpb25hbDxTdHJpbmc+IGZvcm1VUkxEZWNvZGUoU3QKICAgICBpZiAodXRmOC5pc051bGwoKSkK
ICAgICAgICAgcmV0dXJuIE51bGxvcHQ7CiAgICAgYXV0byBwZXJjZW50RGVjb2RlZCA9IHBlcmNl
bnREZWNvZGUocmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KHV0ZjguZGF0YSgpKSwgdXRm
OC5sZW5ndGgoKSk7Ci0gICAgUkVMRUFTRV9BU1NFUlQocGVyY2VudERlY29kZWQuaXM4Qml0KCkp
OwotICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KHBlcmNlbnREZWNvZGVkLmNoYXJhY3RlcnM4
KCksIHBlcmNlbnREZWNvZGVkLmxlbmd0aCgpKTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRG
OChwZXJjZW50RGVjb2RlZC5kYXRhKCksIHBlcmNlbnREZWNvZGVkLnNpemUoKSk7CiB9CiAKIGF1
dG8gVVJMUGFyc2VyOjpwYXJzZVVSTEVuY29kZWRGb3JtKFN0cmluZ1ZpZXcgaW5wdXQpIC0+IFVS
TEVuY29kZWRGb3JtCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>