<?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>186059</bug_id>
          
          <creation_ts>2018-05-29 13:43:05 -0700</creation_ts>
          <short_desc>Reduce String allocations</short_desc>
          <delta_ts>2018-05-30 12:23:23 -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>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="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1428192</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-05-29 13:43:05 -0700</bug_when>
    <thetext>Reduce String allocations</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1428193</commentid>
    <comment_count>1</comment_count>
      <attachid>341512</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-05-29 13:43:57 -0700</bug_when>
    <thetext>Created attachment 341512
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1428195</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-05-29 13:45:41 -0700</bug_when>
    <thetext>Attachment 341512 did not pass style-queue:


ERROR: Source/WebCore/ChangeLog:9:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 1 in 12 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>1428196</commentid>
    <comment_count>3</comment_count>
      <attachid>341513</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-05-29 13:46:49 -0700</bug_when>
    <thetext>Created attachment 341513
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1428209</commentid>
    <comment_count>4</comment_count>
      <attachid>341516</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-05-29 14:19:36 -0700</bug_when>
    <thetext>Created attachment 341516
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1428537</commentid>
    <comment_count>5</comment_count>
      <attachid>341516</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-05-30 12:21:40 -0700</bug_when>
    <thetext>Comment on attachment 341516
Patch

Clearing flags on attachment: 341516

Committed r232302: &lt;https://trac.webkit.org/changeset/232302&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1428538</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-05-30 12:21:41 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1428540</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-05-30 12:23:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/40658906&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>341512</attachid>
            <date>2018-05-29 13:43:57 -0700</date>
            <delta_ts>2018-05-29 13:46:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-186059-20180529134356.patch</filename>
            <type>text/plain</type>
            <size>12137</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyMzIyNzIpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDE4LTA1LTI5ICBBbGV4IENocmlzdGVuc2VuICA8
YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVkdWNlIFN0cmluZyBhbGxvY2F0
aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg2
MDU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3
dGYvdGV4dC9TdHJpbmdWaWV3LmNwcDoKKyAgICAgICAgKFdURjo6Y29udmVydEFTQ0lJQ2FzZSk6
CisgICAgICAgIChXVEY6OlN0cmluZ1ZpZXc6OmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlIGNvbnN0
KToKKyAgICAgICAgKFdURjo6U3RyaW5nVmlldzo6Y29udmVydFRvQVNDSUlVcHBlcmNhc2UgY29u
c3QpOgorICAgICAgICAqIHd0Zi90ZXh0L1N0cmluZ1ZpZXcuaDoKKyAgICAgICAgKiB3dGYvdGV4
dC9jZi9TdHJpbmdWaWV3Q0YuY3BwOgorICAgICAgICAoV1RGOjpTdHJpbmdWaWV3OjpjcmVhdGVD
RlN0cmluZyBjb25zdCk6CisKIDIwMTgtMDUtMjkgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBs
ZS5jb20+CiAKICAgICAgICAgSlNDIHNob3VsZCBwdXQgYm1hbGxvYydzIHNjYXZlbmdlciBpbnRv
IG1pbmkgbW9kZQpJbmRleDogU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdWaWV3LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ1ZpZXcuY3BwCShyZXZpc2lvbiAy
MzIyNjcpCisrKyBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ1ZpZXcuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zMyw2ICszMyw3IEBAIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQkkKICNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3ll
ZC5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z0J1ZmZlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmg+CiAjaW5j
bHVkZSA8d3RmL3VuaWNvZGUvVVRGOC5oPgogCkBAIC0yMDYsNiArMjA3LDMxIEBAIGJvb2wgU3Ry
aW5nVmlldzo6R3JhcGhlbWVDbHVzdGVyczo6SXRlcmEKICAgICByZXR1cm4gISgqdGhpcyA9PSBv
dGhlcik7CiB9CiAKK2VudW0gY2xhc3MgQVNDSUlDYXNlIHsgTG93ZXIsIFVwcGVyIH07CisKK3Rl
bXBsYXRlPEFTQ0lJQ2FzZSB0eXBlLCB0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPgorU3RyaW5nIGNv
bnZlcnRBU0NJSUNhc2UoY29uc3QgQ2hhcmFjdGVyVHlwZSogaW5wdXQsIHVuc2lnbmVkIGxlbmd0
aCkKK3sKKyAgICBTdHJpbmdCdWZmZXI8Q2hhcmFjdGVyVHlwZT4gYnVmZmVyKGxlbmd0aCk7Cisg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKQorICAgICAgICBidWZmZXIu
Y2hhcmFjdGVycygpW2ldID0gdHlwZSA9PSBBU0NJSUNhc2U6Okxvd2VyID8gdG9BU0NJSUxvd2Vy
KGlucHV0W2ldKSA6IHRvQVNDSUlVcHBlcihpbnB1dFtpXSk7CisgICAgcmV0dXJuIFN0cmluZzo6
YWRvcHQoV1RGTW92ZShidWZmZXIpKTsKK30KKworU3RyaW5nIFN0cmluZ1ZpZXc6OmNvbnZlcnRU
b0FTQ0lJTG93ZXJjYXNlKCkgY29uc3QKK3sKKyAgICBpZiAobV9pczhCaXQpCisgICAgICAgIHJl
dHVybiBjb252ZXJ0QVNDSUlDYXNlPEFTQ0lJQ2FzZTo6TG93ZXI+KHN0YXRpY19jYXN0PGNvbnN0
IExDaGFyKj4obV9jaGFyYWN0ZXJzKSwgbV9sZW5ndGgpOworICAgIHJldHVybiBjb252ZXJ0QVND
SUlDYXNlPEFTQ0lJQ2FzZTo6TG93ZXI+KHN0YXRpY19jYXN0PGNvbnN0IFVDaGFyKj4obV9jaGFy
YWN0ZXJzKSwgbV9sZW5ndGgpOworfQorCitTdHJpbmcgU3RyaW5nVmlldzo6Y29udmVydFRvQVND
SUlVcHBlcmNhc2UoKSBjb25zdAoreworICAgIGlmIChtX2lzOEJpdCkKKyAgICAgICAgcmV0dXJu
IGNvbnZlcnRBU0NJSUNhc2U8QVNDSUlDYXNlOjpVcHBlcj4oc3RhdGljX2Nhc3Q8Y29uc3QgTENo
YXIqPihtX2NoYXJhY3RlcnMpLCBtX2xlbmd0aCk7CisgICAgcmV0dXJuIGNvbnZlcnRBU0NJSUNh
c2U8QVNDSUlDYXNlOjpVcHBlcj4oc3RhdGljX2Nhc3Q8Y29uc3QgVUNoYXIqPihtX2NoYXJhY3Rl
cnMpLCBtX2xlbmd0aCk7Cit9CisKICNpZiBDSEVDS19TVFJJTkdWSUVXX0xJRkVUSU1FCiAKIC8v
IE1hbmFnZSByZWZlcmVuY2UgY291bnQgbWFudWFsbHkgc28gVW5kZXJseWluZ1N0cmluZyBkb2Vz
IG5vdCBuZWVkIHRvIGJlIGRlZmluZWQgaW4gdGhlIGhlYWRlci4KSW5kZXg6IFNvdXJjZS9XVEYv
d3RmL3RleHQvU3RyaW5nVmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL3RleHQv
U3RyaW5nVmlldy5oCShyZXZpc2lvbiAyMzIyNjcpCisrKyBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0
cmluZ1ZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtOTgsNiArOTgsNyBAQCBwdWJsaWM6CiAKICNp
ZiBVU0UoQ0YpCiAgICAgLy8gVGhpcyBmdW5jdGlvbiBjb252ZXJ0cyBudWxsIHN0cmluZ3MgdG8g
ZW1wdHkgc3RyaW5ncy4KKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgUmV0YWluUHRyPENGU3RyaW5n
UmVmPiBjcmVhdGVDRlN0cmluZygpIGNvbnN0OwogICAgIFdURl9FWFBPUlRfUFJJVkFURSBSZXRh
aW5QdHI8Q0ZTdHJpbmdSZWY+IGNyZWF0ZUNGU3RyaW5nV2l0aG91dENvcHlpbmcoKSBjb25zdDsK
ICNlbmRpZgogCkBAIC0xMzYsNiArMTM3LDkgQEAgcHVibGljOgogICAgIFdURl9FWFBPUlRfUFJJ
VkFURSBzaXplX3QgZmluZElnbm9yaW5nQVNDSUlDYXNlKGNvbnN0IFN0cmluZ1ZpZXcmKSBjb25z
dDsKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc2l6ZV90IGZpbmRJZ25vcmluZ0FTQ0lJQ2FzZShj
b25zdCBTdHJpbmdWaWV3JiwgdW5zaWduZWQgc3RhcnRPZmZzZXQpIGNvbnN0OwogCisgICAgV1RG
X0VYUE9SVF9QUklWQVRFIFN0cmluZyBjb252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpIGNvbnN0Owor
ICAgIFdURl9FWFBPUlRfUFJJVkFURSBTdHJpbmcgY29udmVydFRvQVNDSUlVcHBlcmNhc2UoKSBj
b25zdDsKKwogICAgIGJvb2wgY29udGFpbnMoVUNoYXIpIGNvbnN0OwogICAgIFdURl9FWFBPUlRf
UFJJVkFURSBib29sIGNvbnRhaW5zSWdub3JpbmdBU0NJSUNhc2UoY29uc3QgU3RyaW5nVmlldyYp
IGNvbnN0OwogICAgIFdURl9FWFBPUlRfUFJJVkFURSBib29sIGNvbnRhaW5zSWdub3JpbmdBU0NJ
SUNhc2UoY29uc3QgU3RyaW5nVmlldyYsIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0KSBjb25zdDsKSW5k
ZXg6IFNvdXJjZS9XVEYvd3RmL3RleHQvY2YvU3RyaW5nVmlld0NGLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV1RGL3d0Zi90ZXh0L2NmL1N0cmluZ1ZpZXdDRi5jcHAJKHJldmlzaW9uIDIzMjI2
NykKKysrIFNvdXJjZS9XVEYvd3RmL3RleHQvY2YvU3RyaW5nVmlld0NGLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzMsNiArMzMsMTQgQEAKIAogbmFtZXNwYWNlIFdURiB7CiAKK1JldGFpblB0cjxD
RlN0cmluZ1JlZj4gU3RyaW5nVmlldzo6Y3JlYXRlQ0ZTdHJpbmcoKSBjb25zdAoreworICAgIGlm
IChpczhCaXQoKSkKKyAgICAgICAgcmV0dXJuIGFkb3B0Q0YoQ0ZTdHJpbmdDcmVhdGVXaXRoQnl0
ZXMoa0NGQWxsb2NhdG9yRGVmYXVsdCwgY2hhcmFjdGVyczgoKSwgbGVuZ3RoKCksIGtDRlN0cmlu
Z0VuY29kaW5nSVNPTGF0aW4xLCBmYWxzZSkpOworICAgIAorICAgIHJldHVybiBhZG9wdENGKENG
U3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCBVbmlDaGFyKj4oY2hhcmFjdGVyczE2KCkpLCBsZW5ndGgoKSkpOworfQor
CiBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IFN0cmluZ1ZpZXc6OmNyZWF0ZUNGU3RyaW5nV2l0aG91
dENvcHlpbmcoKSBjb25zdAogewogICAgIGlmIChpczhCaXQoKSkKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIzMjI2NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDMzIEBACisyMDE4LTA1LTI5ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlz
dGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVkdWNlIFN0cmluZyBhbGxvY2F0aW9ucwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg2MDU5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRG9uJ3QgYWxs
b2NhdGUgU3RyaW5ncyBqdXN0IHRvIGNvbnZlcnQgaXQgdG8gYW5vdGhlciBmb3JtLgorCQlCYXNl
ZCBtb3N0bHkgb24gRGFyaW4ncyBmZWVkYmFjayBvbiBidWcgMTg1OTg2LgorCisgICAgICAgIE5v
IGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJT
b2NrZXRIYW5kc2hha2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aG9zdE5hbWUpOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViU29ja2V0SGFuZHNoYWtlOjpob3N0IGNvbnN0KToKKyAgICAgICAgKiBj
c3MvcGFyc2VyL0NTU1NlbGVjdG9yUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Nl
bGVjdG9yUGFyc2VyOjpjb25zdW1lUHNldWRvKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVj
dG9yUGFyc2VyOjpjb25zdW1lQU5QbHVzQik6CisgICAgICAgICogbG9hZGVyL21hYy9Mb2FkZXJO
U1VSTEV4dHJhcy5tbToKKyAgICAgICAgKHN1Z2dlc3RlZEZpbGVuYW1lV2l0aE1JTUVUeXBlKToK
KyAgICAgICAgKiBwYWdlL1NlY3VyaXR5T3JpZ2luRGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tVVJMKToKKyAgICAgICAgKiBwYWdlL2NzcC9Db250ZW50
U2VjdXJpdHlQb2xpY3lTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6d2lsZGNhcmRNYXRj
aGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRTZWN1cml0eVBvbGljeVNvdXJjZTo6aG9z
dE1hdGNoZXMgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL1VSTC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpVUkw6Omhvc3RBbmRQb3J0IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL2NmL1NvY2tldFN0cmVhbUhhbmRsZUltcGxDRk5ldC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTb2NrZXRTdHJlYW1IYW5kbGVJbXBsOjpjcmVhdGVTdHJlYW1zKToKKwogMjAxOC0wNS0yOSAg
QWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIERv
IGV2ZW4gZmV3ZXIgYWxsb2NhdGlvbnMgaW4gVVJMIGhvc3Qgb3BlcmF0aW9ucwpJbmRleDogU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhh
bmRzaGFrZS5jcHAJKHJldmlzaW9uIDIzMjI2NykKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Miw3
ICs4Miw3IEBAIHN0YXRpYyBTdHJpbmcgaG9zdE5hbWUoY29uc3QgVVJMJiB1cmwsIGIKIHsKICAg
ICBBU1NFUlQodXJsLnByb3RvY29sSXMoIndzcyIpID09IHNlY3VyZSk7CiAgICAgU3RyaW5nQnVp
bGRlciBidWlsZGVyOwotICAgIGJ1aWxkZXIuYXBwZW5kKHVybC5ob3N0KCkudG9TdHJpbmcoKS5j
b252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpKTsKKyAgICBidWlsZGVyLmFwcGVuZCh1cmwuaG9zdCgp
LmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlKCkpOwogICAgIGlmICh1cmwucG9ydCgpICYmICgoIXNl
Y3VyZSAmJiB1cmwucG9ydCgpLnZhbHVlKCkgIT0gODApIHx8IChzZWN1cmUgJiYgdXJsLnBvcnQo
KS52YWx1ZSgpICE9IDQ0MykpKSB7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCc6Jyk7CiAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHVybC5wb3J0KCkudmFsdWUoKSk7CkBAIC0xNDYsNyAr
MTQ2LDcgQEAgdm9pZCBXZWJTb2NrZXRIYW5kc2hha2U6OnNldFVSTChjb25zdCBVUgogLy8gRklY
TUU6IFJldHVybiB0eXBlIHNob3VsZCBqdXN0IGJlIFN0cmluZywgbm90IGNvbnN0IFN0cmluZy4K
IGNvbnN0IFN0cmluZyBXZWJTb2NrZXRIYW5kc2hha2U6Omhvc3QoKSBjb25zdAogewotICAgIHJl
dHVybiBtX3VybC5ob3N0KCkudG9TdHJpbmcoKS5jb252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpOwor
ICAgIHJldHVybiBtX3VybC5ob3N0KCkuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKTsKIH0KIAog
Y29uc3QgU3RyaW5nJiBXZWJTb2NrZXRIYW5kc2hha2U6OmNsaWVudFByb3RvY29sKCkgY29uc3QK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTU2VsZWN0b3JQYXJzZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTU2VsZWN0b3JQYXJzZXIu
Y3BwCShyZXZpc2lvbiAyMzIyNjcpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Nl
bGVjdG9yUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDk0LDcgKzQ5NCw3IEBAIHN0ZDo6
dW5pcXVlX3B0cjxDU1NQYXJzZXJTZWxlY3Rvcj4gQ1NTU2UKIAogICAgIHN0ZDo6dW5pcXVlX3B0
cjxDU1NQYXJzZXJTZWxlY3Rvcj4gc2VsZWN0b3I7CiAgICAgCi0gICAgYXV0byBsb3dlcmNhc2Vk
VmFsdWUgPSB0b2tlbi52YWx1ZSgpLnRvU3RyaW5nKCkuY29udmVydFRvQVNDSUlMb3dlcmNhc2Uo
KTsKKyAgICBhdXRvIGxvd2VyY2FzZWRWYWx1ZSA9IHRva2VuLnZhbHVlKCkuY29udmVydFRvQVND
SUlMb3dlcmNhc2UoKTsKICAgICBhdXRvIHZhbHVlID0gU3RyaW5nVmlldyB7IGxvd2VyY2FzZWRW
YWx1ZSB9OwogCiAgICAgaWYgKGNvbG9ucyA9PSAxKQpAQCAtNzM1LDcgKzczNSw3IEBAIGJvb2wg
Q1NTU2VsZWN0b3JQYXJzZXI6OmNvbnN1bWVBTlBsdXNCKEMKICAgICB9IGVsc2UgaWYgKHRva2Vu
LnR5cGUoKSA9PSBJZGVudFRva2VuKSB7CiAgICAgICAgIGlmICh0b2tlbi52YWx1ZSgpWzBdID09
ICctJykgewogICAgICAgICAgICAgcmVzdWx0LmZpcnN0ID0gLTE7Ci0gICAgICAgICAgICBuU3Ry
aW5nID0gdG9rZW4udmFsdWUoKS50b1N0cmluZygpLnN1YnN0cmluZygxKTsKKyAgICAgICAgICAg
IG5TdHJpbmcgPSB0b2tlbi52YWx1ZSgpLnN1YnN0cmluZygxKS50b1N0cmluZygpOwogICAgICAg
ICB9IGVsc2UgewogICAgICAgICAgICAgcmVzdWx0LmZpcnN0ID0gMTsKICAgICAgICAgICAgIG5T
dHJpbmcgPSB0b2tlbi52YWx1ZSgpLnRvU3RyaW5nKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9s
b2FkZXIvbWFjL0xvYWRlck5TVVJMRXh0cmFzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9tYWMvTG9hZGVyTlNVUkxFeHRyYXMubW0JKHJldmlzaW9uIDIzMjI2NykKKysr
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9tYWMvTG9hZGVyTlNVUkxFeHRyYXMubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTQ4LDggKzQ4LDggQEAgTlNTdHJpbmcgKnN1Z2dlc3RlZEZpbGVuYW1lV2l0aE1J
TUVUeXBlKAogCiAgICAgaWYgKFtmaWxlbmFtZSBsZW5ndGhdID09IDAgfHwgW2xhc3RQYXRoQ29t
cG9uZW50IGlzRXF1YWxUb1N0cmluZzpAIi8iXSkgewogICAgICAgICAvLyBsYXN0UGF0aENvbXBv
bmVudCBpcyBubyBnb29kLCB0cnkgdGhlIGhvc3QuCi0gICAgICAgIE5TU3RyaW5nICpob3N0ID0g
VVJMKHVybCkuaG9zdCgpLnRvU3RyaW5nKCk7Ci0gICAgICAgIGZpbGVuYW1lID0gZmlsZW5hbWVC
eUZpeGluZ0lsbGVnYWxDaGFyYWN0ZXJzKGhvc3QpOworICAgICAgICBhdXRvIGhvc3QgPSBVUkwo
dXJsKS5ob3N0KCkuY3JlYXRlTlNTdHJpbmcoKTsKKyAgICAgICAgZmlsZW5hbWUgPSBmaWxlbmFt
ZUJ5Rml4aW5nSWxsZWdhbENoYXJhY3RlcnMoaG9zdC5nZXQoKSk7CiAgICAgICAgIGlmIChbZmls
ZW5hbWUgbGVuZ3RoXSA9PSAwKSB7CiAgICAgICAgICAgICAvLyBDYW4ndCBtYWtlIGEgZmlsZW5h
bWUgdXNpbmcgdGhpcyBVUkwsIHVzZSAidW5rbm93biIuCiAgICAgICAgICAgICBmaWxlbmFtZSA9
IGNvcHlJbWFnZVVua25vd25GaWxlTGFiZWwoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
U2VjdXJpdHlPcmlnaW5EYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9T
ZWN1cml0eU9yaWdpbkRhdGEuaAkocmV2aXNpb24gMjMyMjY3KQorKysgU291cmNlL1dlYkNvcmUv
cGFnZS9TZWN1cml0eU9yaWdpbkRhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtNDksOCArNDksOCBA
QCBzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhIHsKICAgICBzdGF0aWMgU2VjdXJpdHlPcmlnaW5E
YXRhIGZyb21VUkwoY29uc3QgVVJMJiB1cmwpCiAgICAgewogICAgICAgICByZXR1cm4gU2VjdXJp
dHlPcmlnaW5EYXRhIHsKLSAgICAgICAgICAgIHVybC5wcm90b2NvbCgpLmlzTnVsbCgpID8gZW1w
dHlTdHJpbmcoKSA6IHVybC5wcm90b2NvbCgpLnRvU3RyaW5nKCkuY29udmVydFRvQVNDSUlMb3dl
cmNhc2UoKSwKLSAgICAgICAgICAgIHVybC5ob3N0KCkuaXNOdWxsKCkgPyBlbXB0eVN0cmluZygp
IDogdXJsLmhvc3QoKS50b1N0cmluZygpLmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlKCksCisgICAg
ICAgICAgICB1cmwucHJvdG9jb2woKS5pc051bGwoKSA/IGVtcHR5U3RyaW5nKCkgOiB1cmwucHJv
dG9jb2woKS5jb252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpLAorICAgICAgICAgICAgdXJsLmhvc3Qo
KS5pc051bGwoKSA/IGVtcHR5U3RyaW5nKCkgOiB1cmwuaG9zdCgpLmNvbnZlcnRUb0FTQ0lJTG93
ZXJjYXNlKCksCiAgICAgICAgICAgICB1cmwucG9ydCgpCiAgICAgICAgIH07CiAgICAgfQpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5U291cmNlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQ
b2xpY3lTb3VyY2UuY3BwCShyZXZpc2lvbiAyMzIyNjcpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdl
L2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3lTb3VyY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02
MiwxMSArNjIsMTkgQEAgYm9vbCBDb250ZW50U2VjdXJpdHlQb2xpY3lTb3VyY2U6OnNjaGVtZQog
ICAgIHJldHVybiBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKHVybC5wcm90b2NvbCgpLCBtX3NjaGVt
ZSk7CiB9CiAKK3N0YXRpYyBib29sIHdpbGRjYXJkTWF0Y2hlcyhTdHJpbmdWaWV3IGhvc3QsIGNv
bnN0IFN0cmluZyYgaG9zdFdpdGhXaWxkY2FyZCkKK3sKKyAgICBhdXRvIGhvc3RMZW5ndGggPSBo
b3N0Lmxlbmd0aCgpOworICAgIGF1dG8gaG9zdFdpdGhXaWxkY2FyZExlbmd0aCA9IGhvc3RXaXRo
V2lsZGNhcmQubGVuZ3RoKCk7CisgICAgcmV0dXJuIGhvc3QuZW5kc1dpdGhJZ25vcmluZ0FTQ0lJ
Q2FzZShob3N0V2l0aFdpbGRjYXJkKQorICAgICAgICAmJiBob3N0TGVuZ3RoID4gaG9zdFdpdGhX
aWxkY2FyZExlbmd0aAorICAgICAgICAmJiBob3N0W2hvc3RMZW5ndGggLSBob3N0V2l0aFdpbGRj
YXJkTGVuZ3RoIC0gMV0gPT0gJy4nOworfQorCiBib29sIENvbnRlbnRTZWN1cml0eVBvbGljeVNv
dXJjZTo6aG9zdE1hdGNoZXMoY29uc3QgVVJMJiB1cmwpIGNvbnN0CiB7CiAgICAgYXV0byBob3N0
ID0gdXJsLmhvc3QoKTsKLSAgICByZXR1cm4gZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShob3N0LCBt
X2hvc3QpIHx8IChtX2hvc3RIYXNXaWxkY2FyZCAmJiBob3N0LmVuZHNXaXRoSWdub3JpbmdBU0NJ
SUNhc2UobWFrZVN0cmluZygiLiIsIG1faG9zdCkpKTsKLQorICAgIHJldHVybiBlcXVhbElnbm9y
aW5nQVNDSUlDYXNlKGhvc3QsIG1faG9zdCkgfHwgKG1faG9zdEhhc1dpbGRjYXJkICYmIHdpbGRj
YXJkTWF0Y2hlcyhob3N0LCBtX2hvc3QpKTsKIH0KIAogYm9vbCBDb250ZW50U2VjdXJpdHlQb2xp
Y3lTb3VyY2U6OnBhdGhNYXRjaGVzKGNvbnN0IFVSTCYgdXJsKSBjb25zdApJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vVVJMLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9VUkwuY3BwCShyZXZpc2lvbiAyMzIyNjcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9VUkwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSA8
d3RmL1VVSUQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvU3RyaW5nQnVpbGRlci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVu
YXRlTnVtYmVycy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CiAKQEAgLTE4MCw3ICsxODEsNyBAQCBzdGQ6Om9wdGlv
bmFsPHVpbnQxNl90PiBVUkw6OnBvcnQoKSBjb25zCiBTdHJpbmcgVVJMOjpob3N0QW5kUG9ydCgp
IGNvbnN0CiB7CiAgICAgaWYgKGF1dG8gcG9ydCA9IHRoaXMtPnBvcnQoKSkKLSAgICAgICAgcmV0
dXJuIG1ha2VTdHJpbmcoaG9zdCgpLCAnOicsIFN0cmluZzo6bnVtYmVyKHBvcnQudmFsdWUoKSkp
OworICAgICAgICByZXR1cm4gbWFrZVN0cmluZyhob3N0KCksICc6Jywgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KHBvcnQudmFsdWUoKSkpOwogICAgIHJldHVybiBob3N0KCkudG9TdHJpbmcoKTsKIH0K
IApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1I
YW5kbGVJbXBsQ0ZOZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlSW1wbENGTmV0LmNwcAkocmV2aXNpb24gMjMy
MjY3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1I
YW5kbGVJbXBsQ0ZOZXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMTIsNyArMzEyLDcgQEAgdm9p
ZCBTb2NrZXRTdHJlYW1IYW5kbGVJbXBsOjpjcmVhdGVTdHJlYQogICAgIGlmIChtX2Nvbm5lY3Rp
b25UeXBlID09IFVua25vd24pCiAgICAgICAgIHJldHVybjsKIAotICAgIFJldGFpblB0cjxDRlN0
cmluZ1JlZj4gaG9zdCA9IG1fdXJsLmhvc3QoKS50b1N0cmluZygpLmNyZWF0ZUNGU3RyaW5nKCk7
CisgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBob3N0ID0gbV91cmwuaG9zdCgpLmNyZWF0ZUNG
U3RyaW5nKCk7CiAKICAgICAvLyBDcmVhdGluZyBzdHJlYW1zIHRvIGZpbmFsIGRlc3RpbmF0aW9u
LCBub3QgdG8gcHJveHkuCiAgICAgQ0ZSZWFkU3RyZWFtUmVmIHJlYWRTdHJlYW0gPSAwOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>341513</attachid>
            <date>2018-05-29 13:46:49 -0700</date>
            <delta_ts>2018-05-29 14:19:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-186059-20180529134648.patch</filename>
            <type>text/plain</type>
            <size>12143</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyMzIyNzIpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDE4LTA1LTI5ICBBbGV4IENocmlzdGVuc2VuICA8
YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVkdWNlIFN0cmluZyBhbGxvY2F0
aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg2
MDU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3
dGYvdGV4dC9TdHJpbmdWaWV3LmNwcDoKKyAgICAgICAgKFdURjo6Y29udmVydEFTQ0lJQ2FzZSk6
CisgICAgICAgIChXVEY6OlN0cmluZ1ZpZXc6OmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlIGNvbnN0
KToKKyAgICAgICAgKFdURjo6U3RyaW5nVmlldzo6Y29udmVydFRvQVNDSUlVcHBlcmNhc2UgY29u
c3QpOgorICAgICAgICAqIHd0Zi90ZXh0L1N0cmluZ1ZpZXcuaDoKKyAgICAgICAgKiB3dGYvdGV4
dC9jZi9TdHJpbmdWaWV3Q0YuY3BwOgorICAgICAgICAoV1RGOjpTdHJpbmdWaWV3OjpjcmVhdGVD
RlN0cmluZyBjb25zdCk6CisKIDIwMTgtMDUtMjkgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBs
ZS5jb20+CiAKICAgICAgICAgSlNDIHNob3VsZCBwdXQgYm1hbGxvYydzIHNjYXZlbmdlciBpbnRv
IG1pbmkgbW9kZQpJbmRleDogU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdWaWV3LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ1ZpZXcuY3BwCShyZXZpc2lvbiAy
MzIyNjcpCisrKyBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ1ZpZXcuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zMyw2ICszMyw3IEBAIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQkkKICNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3ll
ZC5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z0J1ZmZlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmg+CiAjaW5j
bHVkZSA8d3RmL3VuaWNvZGUvVVRGOC5oPgogCkBAIC0yMDYsNiArMjA3LDMxIEBAIGJvb2wgU3Ry
aW5nVmlldzo6R3JhcGhlbWVDbHVzdGVyczo6SXRlcmEKICAgICByZXR1cm4gISgqdGhpcyA9PSBv
dGhlcik7CiB9CiAKK2VudW0gY2xhc3MgQVNDSUlDYXNlIHsgTG93ZXIsIFVwcGVyIH07CisKK3Rl
bXBsYXRlPEFTQ0lJQ2FzZSB0eXBlLCB0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPgorU3RyaW5nIGNv
bnZlcnRBU0NJSUNhc2UoY29uc3QgQ2hhcmFjdGVyVHlwZSogaW5wdXQsIHVuc2lnbmVkIGxlbmd0
aCkKK3sKKyAgICBTdHJpbmdCdWZmZXI8Q2hhcmFjdGVyVHlwZT4gYnVmZmVyKGxlbmd0aCk7Cisg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKQorICAgICAgICBidWZmZXIu
Y2hhcmFjdGVycygpW2ldID0gdHlwZSA9PSBBU0NJSUNhc2U6Okxvd2VyID8gdG9BU0NJSUxvd2Vy
KGlucHV0W2ldKSA6IHRvQVNDSUlVcHBlcihpbnB1dFtpXSk7CisgICAgcmV0dXJuIFN0cmluZzo6
YWRvcHQoV1RGTW92ZShidWZmZXIpKTsKK30KKworU3RyaW5nIFN0cmluZ1ZpZXc6OmNvbnZlcnRU
b0FTQ0lJTG93ZXJjYXNlKCkgY29uc3QKK3sKKyAgICBpZiAobV9pczhCaXQpCisgICAgICAgIHJl
dHVybiBjb252ZXJ0QVNDSUlDYXNlPEFTQ0lJQ2FzZTo6TG93ZXI+KHN0YXRpY19jYXN0PGNvbnN0
IExDaGFyKj4obV9jaGFyYWN0ZXJzKSwgbV9sZW5ndGgpOworICAgIHJldHVybiBjb252ZXJ0QVND
SUlDYXNlPEFTQ0lJQ2FzZTo6TG93ZXI+KHN0YXRpY19jYXN0PGNvbnN0IFVDaGFyKj4obV9jaGFy
YWN0ZXJzKSwgbV9sZW5ndGgpOworfQorCitTdHJpbmcgU3RyaW5nVmlldzo6Y29udmVydFRvQVND
SUlVcHBlcmNhc2UoKSBjb25zdAoreworICAgIGlmIChtX2lzOEJpdCkKKyAgICAgICAgcmV0dXJu
IGNvbnZlcnRBU0NJSUNhc2U8QVNDSUlDYXNlOjpVcHBlcj4oc3RhdGljX2Nhc3Q8Y29uc3QgTENo
YXIqPihtX2NoYXJhY3RlcnMpLCBtX2xlbmd0aCk7CisgICAgcmV0dXJuIGNvbnZlcnRBU0NJSUNh
c2U8QVNDSUlDYXNlOjpVcHBlcj4oc3RhdGljX2Nhc3Q8Y29uc3QgVUNoYXIqPihtX2NoYXJhY3Rl
cnMpLCBtX2xlbmd0aCk7Cit9CisKICNpZiBDSEVDS19TVFJJTkdWSUVXX0xJRkVUSU1FCiAKIC8v
IE1hbmFnZSByZWZlcmVuY2UgY291bnQgbWFudWFsbHkgc28gVW5kZXJseWluZ1N0cmluZyBkb2Vz
IG5vdCBuZWVkIHRvIGJlIGRlZmluZWQgaW4gdGhlIGhlYWRlci4KSW5kZXg6IFNvdXJjZS9XVEYv
d3RmL3RleHQvU3RyaW5nVmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL3RleHQv
U3RyaW5nVmlldy5oCShyZXZpc2lvbiAyMzIyNjcpCisrKyBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0
cmluZ1ZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtOTgsNiArOTgsNyBAQCBwdWJsaWM6CiAKICNp
ZiBVU0UoQ0YpCiAgICAgLy8gVGhpcyBmdW5jdGlvbiBjb252ZXJ0cyBudWxsIHN0cmluZ3MgdG8g
ZW1wdHkgc3RyaW5ncy4KKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgUmV0YWluUHRyPENGU3RyaW5n
UmVmPiBjcmVhdGVDRlN0cmluZygpIGNvbnN0OwogICAgIFdURl9FWFBPUlRfUFJJVkFURSBSZXRh
aW5QdHI8Q0ZTdHJpbmdSZWY+IGNyZWF0ZUNGU3RyaW5nV2l0aG91dENvcHlpbmcoKSBjb25zdDsK
ICNlbmRpZgogCkBAIC0xMzYsNiArMTM3LDkgQEAgcHVibGljOgogICAgIFdURl9FWFBPUlRfUFJJ
VkFURSBzaXplX3QgZmluZElnbm9yaW5nQVNDSUlDYXNlKGNvbnN0IFN0cmluZ1ZpZXcmKSBjb25z
dDsKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc2l6ZV90IGZpbmRJZ25vcmluZ0FTQ0lJQ2FzZShj
b25zdCBTdHJpbmdWaWV3JiwgdW5zaWduZWQgc3RhcnRPZmZzZXQpIGNvbnN0OwogCisgICAgV1RG
X0VYUE9SVF9QUklWQVRFIFN0cmluZyBjb252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpIGNvbnN0Owor
ICAgIFdURl9FWFBPUlRfUFJJVkFURSBTdHJpbmcgY29udmVydFRvQVNDSUlVcHBlcmNhc2UoKSBj
b25zdDsKKwogICAgIGJvb2wgY29udGFpbnMoVUNoYXIpIGNvbnN0OwogICAgIFdURl9FWFBPUlRf
UFJJVkFURSBib29sIGNvbnRhaW5zSWdub3JpbmdBU0NJSUNhc2UoY29uc3QgU3RyaW5nVmlldyYp
IGNvbnN0OwogICAgIFdURl9FWFBPUlRfUFJJVkFURSBib29sIGNvbnRhaW5zSWdub3JpbmdBU0NJ
SUNhc2UoY29uc3QgU3RyaW5nVmlldyYsIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0KSBjb25zdDsKSW5k
ZXg6IFNvdXJjZS9XVEYvd3RmL3RleHQvY2YvU3RyaW5nVmlld0NGLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV1RGL3d0Zi90ZXh0L2NmL1N0cmluZ1ZpZXdDRi5jcHAJKHJldmlzaW9uIDIzMjI2
NykKKysrIFNvdXJjZS9XVEYvd3RmL3RleHQvY2YvU3RyaW5nVmlld0NGLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzMsNiArMzMsMTQgQEAKIAogbmFtZXNwYWNlIFdURiB7CiAKK1JldGFpblB0cjxD
RlN0cmluZ1JlZj4gU3RyaW5nVmlldzo6Y3JlYXRlQ0ZTdHJpbmcoKSBjb25zdAoreworICAgIGlm
IChpczhCaXQoKSkKKyAgICAgICAgcmV0dXJuIGFkb3B0Q0YoQ0ZTdHJpbmdDcmVhdGVXaXRoQnl0
ZXMoa0NGQWxsb2NhdG9yRGVmYXVsdCwgY2hhcmFjdGVyczgoKSwgbGVuZ3RoKCksIGtDRlN0cmlu
Z0VuY29kaW5nSVNPTGF0aW4xLCBmYWxzZSkpOworICAgIAorICAgIHJldHVybiBhZG9wdENGKENG
U3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCBVbmlDaGFyKj4oY2hhcmFjdGVyczE2KCkpLCBsZW5ndGgoKSkpOworfQor
CiBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IFN0cmluZ1ZpZXc6OmNyZWF0ZUNGU3RyaW5nV2l0aG91
dENvcHlpbmcoKSBjb25zdAogewogICAgIGlmIChpczhCaXQoKSkKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIzMjI2NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDMzIEBACisyMDE4LTA1LTI5ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlz
dGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVkdWNlIFN0cmluZyBhbGxvY2F0aW9ucwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg2MDU5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRG9uJ3QgYWxs
b2NhdGUgU3RyaW5ncyBqdXN0IHRvIGNvbnZlcnQgaXQgdG8gYW5vdGhlciBmb3JtLgorICAgICAg
ICBCYXNlZCBtb3N0bHkgb24gRGFyaW4ncyBmZWVkYmFjayBvbiBidWcgMTg1OTg2LgorCisgICAg
ICAgIE5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0
cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aG9zdE5hbWUpOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0SGFuZHNoYWtlOjpob3N0IGNvbnN0KToKKyAgICAg
ICAgKiBjc3MvcGFyc2VyL0NTU1NlbGVjdG9yUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1NlbGVjdG9yUGFyc2VyOjpjb25zdW1lUHNldWRvKToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1NlbGVjdG9yUGFyc2VyOjpjb25zdW1lQU5QbHVzQik6CisgICAgICAgICogbG9hZGVyL21hYy9M
b2FkZXJOU1VSTEV4dHJhcy5tbToKKyAgICAgICAgKHN1Z2dlc3RlZEZpbGVuYW1lV2l0aE1JTUVU
eXBlKToKKyAgICAgICAgKiBwYWdlL1NlY3VyaXR5T3JpZ2luRGF0YS5oOgorICAgICAgICAoV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tVVJMKToKKyAgICAgICAgKiBwYWdlL2NzcC9D
b250ZW50U2VjdXJpdHlQb2xpY3lTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6d2lsZGNh
cmRNYXRjaGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRTZWN1cml0eVBvbGljeVNvdXJj
ZTo6aG9zdE1hdGNoZXMgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL1VSTC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpVUkw6Omhvc3RBbmRQb3J0IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL2NmL1NvY2tldFN0cmVhbUhhbmRsZUltcGxDRk5ldC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTb2NrZXRTdHJlYW1IYW5kbGVJbXBsOjpjcmVhdGVTdHJlYW1zKToKKwogMjAxOC0w
NS0yOSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAg
ICAgIERvIGV2ZW4gZmV3ZXIgYWxsb2NhdGlvbnMgaW4gVVJMIGhvc3Qgb3BlcmF0aW9ucwpJbmRl
eDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNv
Y2tldEhhbmRzaGFrZS5jcHAJKHJldmlzaW9uIDIzMjI2NykKKysrIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC04Miw3ICs4Miw3IEBAIHN0YXRpYyBTdHJpbmcgaG9zdE5hbWUoY29uc3QgVVJMJiB1cmwsIGIK
IHsKICAgICBBU1NFUlQodXJsLnByb3RvY29sSXMoIndzcyIpID09IHNlY3VyZSk7CiAgICAgU3Ry
aW5nQnVpbGRlciBidWlsZGVyOwotICAgIGJ1aWxkZXIuYXBwZW5kKHVybC5ob3N0KCkudG9TdHJp
bmcoKS5jb252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpKTsKKyAgICBidWlsZGVyLmFwcGVuZCh1cmwu
aG9zdCgpLmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlKCkpOwogICAgIGlmICh1cmwucG9ydCgpICYm
ICgoIXNlY3VyZSAmJiB1cmwucG9ydCgpLnZhbHVlKCkgIT0gODApIHx8IChzZWN1cmUgJiYgdXJs
LnBvcnQoKS52YWx1ZSgpICE9IDQ0MykpKSB7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCc6Jyk7
CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHVybC5wb3J0KCkudmFsdWUoKSk7CkBAIC0x
NDYsNyArMTQ2LDcgQEAgdm9pZCBXZWJTb2NrZXRIYW5kc2hha2U6OnNldFVSTChjb25zdCBVUgog
Ly8gRklYTUU6IFJldHVybiB0eXBlIHNob3VsZCBqdXN0IGJlIFN0cmluZywgbm90IGNvbnN0IFN0
cmluZy4KIGNvbnN0IFN0cmluZyBXZWJTb2NrZXRIYW5kc2hha2U6Omhvc3QoKSBjb25zdAogewot
ICAgIHJldHVybiBtX3VybC5ob3N0KCkudG9TdHJpbmcoKS5jb252ZXJ0VG9BU0NJSUxvd2VyY2Fz
ZSgpOworICAgIHJldHVybiBtX3VybC5ob3N0KCkuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKTsK
IH0KIAogY29uc3QgU3RyaW5nJiBXZWJTb2NrZXRIYW5kc2hha2U6OmNsaWVudFByb3RvY29sKCkg
Y29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTU2VsZWN0b3JQYXJzZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTU2VsZWN0b3JQ
YXJzZXIuY3BwCShyZXZpc2lvbiAyMzIyNjcpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2Vy
L0NTU1NlbGVjdG9yUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDk0LDcgKzQ5NCw3IEBA
IHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJTZWxlY3Rvcj4gQ1NTU2UKIAogICAgIHN0ZDo6dW5p
cXVlX3B0cjxDU1NQYXJzZXJTZWxlY3Rvcj4gc2VsZWN0b3I7CiAgICAgCi0gICAgYXV0byBsb3dl
cmNhc2VkVmFsdWUgPSB0b2tlbi52YWx1ZSgpLnRvU3RyaW5nKCkuY29udmVydFRvQVNDSUlMb3dl
cmNhc2UoKTsKKyAgICBhdXRvIGxvd2VyY2FzZWRWYWx1ZSA9IHRva2VuLnZhbHVlKCkuY29udmVy
dFRvQVNDSUlMb3dlcmNhc2UoKTsKICAgICBhdXRvIHZhbHVlID0gU3RyaW5nVmlldyB7IGxvd2Vy
Y2FzZWRWYWx1ZSB9OwogCiAgICAgaWYgKGNvbG9ucyA9PSAxKQpAQCAtNzM1LDcgKzczNSw3IEBA
IGJvb2wgQ1NTU2VsZWN0b3JQYXJzZXI6OmNvbnN1bWVBTlBsdXNCKEMKICAgICB9IGVsc2UgaWYg
KHRva2VuLnR5cGUoKSA9PSBJZGVudFRva2VuKSB7CiAgICAgICAgIGlmICh0b2tlbi52YWx1ZSgp
WzBdID09ICctJykgewogICAgICAgICAgICAgcmVzdWx0LmZpcnN0ID0gLTE7Ci0gICAgICAgICAg
ICBuU3RyaW5nID0gdG9rZW4udmFsdWUoKS50b1N0cmluZygpLnN1YnN0cmluZygxKTsKKyAgICAg
ICAgICAgIG5TdHJpbmcgPSB0b2tlbi52YWx1ZSgpLnN1YnN0cmluZygxKS50b1N0cmluZygpOwog
ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgcmVzdWx0LmZpcnN0ID0gMTsKICAgICAgICAg
ICAgIG5TdHJpbmcgPSB0b2tlbi52YWx1ZSgpLnRvU3RyaW5nKCk7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvbWFjL0xvYWRlck5TVVJMRXh0cmFzLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9tYWMvTG9hZGVyTlNVUkxFeHRyYXMubW0JKHJldmlzaW9uIDIzMjI2
NykKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9tYWMvTG9hZGVyTlNVUkxFeHRyYXMubW0JKHdv
cmtpbmcgY29weSkKQEAgLTQ4LDggKzQ4LDggQEAgTlNTdHJpbmcgKnN1Z2dlc3RlZEZpbGVuYW1l
V2l0aE1JTUVUeXBlKAogCiAgICAgaWYgKFtmaWxlbmFtZSBsZW5ndGhdID09IDAgfHwgW2xhc3RQ
YXRoQ29tcG9uZW50IGlzRXF1YWxUb1N0cmluZzpAIi8iXSkgewogICAgICAgICAvLyBsYXN0UGF0
aENvbXBvbmVudCBpcyBubyBnb29kLCB0cnkgdGhlIGhvc3QuCi0gICAgICAgIE5TU3RyaW5nICpo
b3N0ID0gVVJMKHVybCkuaG9zdCgpLnRvU3RyaW5nKCk7Ci0gICAgICAgIGZpbGVuYW1lID0gZmls
ZW5hbWVCeUZpeGluZ0lsbGVnYWxDaGFyYWN0ZXJzKGhvc3QpOworICAgICAgICBhdXRvIGhvc3Qg
PSBVUkwodXJsKS5ob3N0KCkuY3JlYXRlTlNTdHJpbmcoKTsKKyAgICAgICAgZmlsZW5hbWUgPSBm
aWxlbmFtZUJ5Rml4aW5nSWxsZWdhbENoYXJhY3RlcnMoaG9zdC5nZXQoKSk7CiAgICAgICAgIGlm
IChbZmlsZW5hbWUgbGVuZ3RoXSA9PSAwKSB7CiAgICAgICAgICAgICAvLyBDYW4ndCBtYWtlIGEg
ZmlsZW5hbWUgdXNpbmcgdGhpcyBVUkwsIHVzZSAidW5rbm93biIuCiAgICAgICAgICAgICBmaWxl
bmFtZSA9IGNvcHlJbWFnZVVua25vd25GaWxlTGFiZWwoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2VjdXJpdHlPcmlnaW5EYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGFnZS9TZWN1cml0eU9yaWdpbkRhdGEuaAkocmV2aXNpb24gMjMyMjY3KQorKysgU291cmNlL1dl
YkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbkRhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtNDksOCAr
NDksOCBAQCBzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhIHsKICAgICBzdGF0aWMgU2VjdXJpdHlP
cmlnaW5EYXRhIGZyb21VUkwoY29uc3QgVVJMJiB1cmwpCiAgICAgewogICAgICAgICByZXR1cm4g
U2VjdXJpdHlPcmlnaW5EYXRhIHsKLSAgICAgICAgICAgIHVybC5wcm90b2NvbCgpLmlzTnVsbCgp
ID8gZW1wdHlTdHJpbmcoKSA6IHVybC5wcm90b2NvbCgpLnRvU3RyaW5nKCkuY29udmVydFRvQVND
SUlMb3dlcmNhc2UoKSwKLSAgICAgICAgICAgIHVybC5ob3N0KCkuaXNOdWxsKCkgPyBlbXB0eVN0
cmluZygpIDogdXJsLmhvc3QoKS50b1N0cmluZygpLmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlKCks
CisgICAgICAgICAgICB1cmwucHJvdG9jb2woKS5pc051bGwoKSA/IGVtcHR5U3RyaW5nKCkgOiB1
cmwucHJvdG9jb2woKS5jb252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpLAorICAgICAgICAgICAgdXJs
Lmhvc3QoKS5pc051bGwoKSA/IGVtcHR5U3RyaW5nKCkgOiB1cmwuaG9zdCgpLmNvbnZlcnRUb0FT
Q0lJTG93ZXJjYXNlKCksCiAgICAgICAgICAgICB1cmwucG9ydCgpCiAgICAgICAgIH07CiAgICAg
fQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5U291
cmNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2Vj
dXJpdHlQb2xpY3lTb3VyY2UuY3BwCShyZXZpc2lvbiAyMzIyNjcpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3lTb3VyY2UuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC02MiwxMSArNjIsMTkgQEAgYm9vbCBDb250ZW50U2VjdXJpdHlQb2xpY3lTb3VyY2U6OnNj
aGVtZQogICAgIHJldHVybiBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKHVybC5wcm90b2NvbCgpLCBt
X3NjaGVtZSk7CiB9CiAKK3N0YXRpYyBib29sIHdpbGRjYXJkTWF0Y2hlcyhTdHJpbmdWaWV3IGhv
c3QsIGNvbnN0IFN0cmluZyYgaG9zdFdpdGhXaWxkY2FyZCkKK3sKKyAgICBhdXRvIGhvc3RMZW5n
dGggPSBob3N0Lmxlbmd0aCgpOworICAgIGF1dG8gaG9zdFdpdGhXaWxkY2FyZExlbmd0aCA9IGhv
c3RXaXRoV2lsZGNhcmQubGVuZ3RoKCk7CisgICAgcmV0dXJuIGhvc3QuZW5kc1dpdGhJZ25vcmlu
Z0FTQ0lJQ2FzZShob3N0V2l0aFdpbGRjYXJkKQorICAgICAgICAmJiBob3N0TGVuZ3RoID4gaG9z
dFdpdGhXaWxkY2FyZExlbmd0aAorICAgICAgICAmJiBob3N0W2hvc3RMZW5ndGggLSBob3N0V2l0
aFdpbGRjYXJkTGVuZ3RoIC0gMV0gPT0gJy4nOworfQorCiBib29sIENvbnRlbnRTZWN1cml0eVBv
bGljeVNvdXJjZTo6aG9zdE1hdGNoZXMoY29uc3QgVVJMJiB1cmwpIGNvbnN0CiB7CiAgICAgYXV0
byBob3N0ID0gdXJsLmhvc3QoKTsKLSAgICByZXR1cm4gZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZSho
b3N0LCBtX2hvc3QpIHx8IChtX2hvc3RIYXNXaWxkY2FyZCAmJiBob3N0LmVuZHNXaXRoSWdub3Jp
bmdBU0NJSUNhc2UobWFrZVN0cmluZygiLiIsIG1faG9zdCkpKTsKLQorICAgIHJldHVybiBlcXVh
bElnbm9yaW5nQVNDSUlDYXNlKGhvc3QsIG1faG9zdCkgfHwgKG1faG9zdEhhc1dpbGRjYXJkICYm
IHdpbGRjYXJkTWF0Y2hlcyhob3N0LCBtX2hvc3QpKTsKIH0KIAogYm9vbCBDb250ZW50U2VjdXJp
dHlQb2xpY3lTb3VyY2U6OnBhdGhNYXRjaGVzKGNvbnN0IFVSTCYgdXJsKSBjb25zdApJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9VUkwuY3BwCShyZXZpc2lvbiAyMzIyNjcpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9VUkwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICszOSw3IEBACiAjaW5j
bHVkZSA8d3RmL1VVSUQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0Nv
bmNhdGVuYXRlTnVtYmVycy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CiAKQEAgLTE4MCw3ICsxODEsNyBAQCBzdGQ6
Om9wdGlvbmFsPHVpbnQxNl90PiBVUkw6OnBvcnQoKSBjb25zCiBTdHJpbmcgVVJMOjpob3N0QW5k
UG9ydCgpIGNvbnN0CiB7CiAgICAgaWYgKGF1dG8gcG9ydCA9IHRoaXMtPnBvcnQoKSkKLSAgICAg
ICAgcmV0dXJuIG1ha2VTdHJpbmcoaG9zdCgpLCAnOicsIFN0cmluZzo6bnVtYmVyKHBvcnQudmFs
dWUoKSkpOworICAgICAgICByZXR1cm4gbWFrZVN0cmluZyhob3N0KCksICc6Jywgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KHBvcnQudmFsdWUoKSkpOwogICAgIHJldHVybiBob3N0KCkudG9TdHJpbmco
KTsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRT
dHJlYW1IYW5kbGVJbXBsQ0ZOZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlSW1wbENGTmV0LmNwcAkocmV2aXNp
b24gMjMyMjY3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRT
dHJlYW1IYW5kbGVJbXBsQ0ZOZXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMTIsNyArMzEyLDcg
QEAgdm9pZCBTb2NrZXRTdHJlYW1IYW5kbGVJbXBsOjpjcmVhdGVTdHJlYQogICAgIGlmIChtX2Nv
bm5lY3Rpb25UeXBlID09IFVua25vd24pCiAgICAgICAgIHJldHVybjsKIAotICAgIFJldGFpblB0
cjxDRlN0cmluZ1JlZj4gaG9zdCA9IG1fdXJsLmhvc3QoKS50b1N0cmluZygpLmNyZWF0ZUNGU3Ry
aW5nKCk7CisgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBob3N0ID0gbV91cmwuaG9zdCgpLmNy
ZWF0ZUNGU3RyaW5nKCk7CiAKICAgICAvLyBDcmVhdGluZyBzdHJlYW1zIHRvIGZpbmFsIGRlc3Rp
bmF0aW9uLCBub3QgdG8gcHJveHkuCiAgICAgQ0ZSZWFkU3RyZWFtUmVmIHJlYWRTdHJlYW0gPSAw
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>341516</attachid>
            <date>2018-05-29 14:19:36 -0700</date>
            <delta_ts>2018-05-30 12:21:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-186059-20180529141935.patch</filename>
            <type>text/plain</type>
            <size>12228</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyMzIyNzIpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDE4LTA1LTI5ICBBbGV4IENocmlzdGVuc2VuICA8
YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVkdWNlIFN0cmluZyBhbGxvY2F0
aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg2
MDU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3
dGYvdGV4dC9TdHJpbmdWaWV3LmNwcDoKKyAgICAgICAgKFdURjo6Y29udmVydEFTQ0lJQ2FzZSk6
CisgICAgICAgIChXVEY6OlN0cmluZ1ZpZXc6OmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlIGNvbnN0
KToKKyAgICAgICAgKFdURjo6U3RyaW5nVmlldzo6Y29udmVydFRvQVNDSUlVcHBlcmNhc2UgY29u
c3QpOgorICAgICAgICAqIHd0Zi90ZXh0L1N0cmluZ1ZpZXcuaDoKKyAgICAgICAgKiB3dGYvdGV4
dC9jZi9TdHJpbmdWaWV3Q0YuY3BwOgorICAgICAgICAoV1RGOjpTdHJpbmdWaWV3OjpjcmVhdGVD
RlN0cmluZyBjb25zdCk6CisKIDIwMTgtMDUtMjkgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBs
ZS5jb20+CiAKICAgICAgICAgSlNDIHNob3VsZCBwdXQgYm1hbGxvYydzIHNjYXZlbmdlciBpbnRv
IG1pbmkgbW9kZQpJbmRleDogU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdWaWV3LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ1ZpZXcuY3BwCShyZXZpc2lvbiAy
MzIyNjcpCisrKyBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ1ZpZXcuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zMyw2ICszMyw3IEBAIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQkkKICNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3ll
ZC5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z0J1ZmZlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmg+CiAjaW5j
bHVkZSA8d3RmL3VuaWNvZGUvVVRGOC5oPgogCkBAIC0yMDYsNiArMjA3LDM1IEBAIGJvb2wgU3Ry
aW5nVmlldzo6R3JhcGhlbWVDbHVzdGVyczo6SXRlcmEKICAgICByZXR1cm4gISgqdGhpcyA9PSBv
dGhlcik7CiB9CiAKK2VudW0gY2xhc3MgQVNDSUlDYXNlIHsgTG93ZXIsIFVwcGVyIH07CisKK3Rl
bXBsYXRlPEFTQ0lJQ2FzZSB0eXBlLCB0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPgorU3RyaW5nIGNv
bnZlcnRBU0NJSUNhc2UoY29uc3QgQ2hhcmFjdGVyVHlwZSogaW5wdXQsIHVuc2lnbmVkIGxlbmd0
aCkKK3sKKyAgICBpZiAoIWlucHV0KQorICAgICAgICByZXR1cm4geyB9OworCisgICAgU3RyaW5n
QnVmZmVyPENoYXJhY3RlclR5cGU+IGJ1ZmZlcihsZW5ndGgpOworICAgIENoYXJhY3RlclR5cGUq
IGNoYXJhY3RlcnMgPSBidWZmZXIuY2hhcmFjdGVycygpOworICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBsZW5ndGg7ICsraSkKKyAgICAgICAgY2hhcmFjdGVyc1tpXSA9IHR5cGUgPT0gQVND
SUlDYXNlOjpMb3dlciA/IHRvQVNDSUlMb3dlcihpbnB1dFtpXSkgOiB0b0FTQ0lJVXBwZXIoaW5w
dXRbaV0pOworICAgIHJldHVybiBTdHJpbmc6OmFkb3B0KFdURk1vdmUoYnVmZmVyKSk7Cit9CisK
K1N0cmluZyBTdHJpbmdWaWV3Ojpjb252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpIGNvbnN0Cit7Cisg
ICAgaWYgKG1faXM4Qml0KQorICAgICAgICByZXR1cm4gY29udmVydEFTQ0lJQ2FzZTxBU0NJSUNh
c2U6Okxvd2VyPihzdGF0aWNfY2FzdDxjb25zdCBMQ2hhcio+KG1fY2hhcmFjdGVycyksIG1fbGVu
Z3RoKTsKKyAgICByZXR1cm4gY29udmVydEFTQ0lJQ2FzZTxBU0NJSUNhc2U6Okxvd2VyPihzdGF0
aWNfY2FzdDxjb25zdCBVQ2hhcio+KG1fY2hhcmFjdGVycyksIG1fbGVuZ3RoKTsKK30KKworU3Ry
aW5nIFN0cmluZ1ZpZXc6OmNvbnZlcnRUb0FTQ0lJVXBwZXJjYXNlKCkgY29uc3QKK3sKKyAgICBp
ZiAobV9pczhCaXQpCisgICAgICAgIHJldHVybiBjb252ZXJ0QVNDSUlDYXNlPEFTQ0lJQ2FzZTo6
VXBwZXI+KHN0YXRpY19jYXN0PGNvbnN0IExDaGFyKj4obV9jaGFyYWN0ZXJzKSwgbV9sZW5ndGgp
OworICAgIHJldHVybiBjb252ZXJ0QVNDSUlDYXNlPEFTQ0lJQ2FzZTo6VXBwZXI+KHN0YXRpY19j
YXN0PGNvbnN0IFVDaGFyKj4obV9jaGFyYWN0ZXJzKSwgbV9sZW5ndGgpOworfQorCiAjaWYgQ0hF
Q0tfU1RSSU5HVklFV19MSUZFVElNRQogCiAvLyBNYW5hZ2UgcmVmZXJlbmNlIGNvdW50IG1hbnVh
bGx5IHNvIFVuZGVybHlpbmdTdHJpbmcgZG9lcyBub3QgbmVlZCB0byBiZSBkZWZpbmVkIGluIHRo
ZSBoZWFkZXIuCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ1ZpZXcuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ1ZpZXcuaAkocmV2aXNpb24gMjMyMjY3
KQorKysgU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAg
LTk4LDYgKzk4LDcgQEAgcHVibGljOgogCiAjaWYgVVNFKENGKQogICAgIC8vIFRoaXMgZnVuY3Rp
b24gY29udmVydHMgbnVsbCBzdHJpbmdzIHRvIGVtcHR5IHN0cmluZ3MuCisgICAgV1RGX0VYUE9S
VF9QUklWQVRFIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gY3JlYXRlQ0ZTdHJpbmcoKSBjb25zdDsK
ICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBjcmVhdGVDRlN0
cmluZ1dpdGhvdXRDb3B5aW5nKCkgY29uc3Q7CiAjZW5kaWYKIApAQCAtMTM2LDYgKzEzNyw5IEBA
IHB1YmxpYzoKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc2l6ZV90IGZpbmRJZ25vcmluZ0FTQ0lJ
Q2FzZShjb25zdCBTdHJpbmdWaWV3JikgY29uc3Q7CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHNp
emVfdCBmaW5kSWdub3JpbmdBU0NJSUNhc2UoY29uc3QgU3RyaW5nVmlldyYsIHVuc2lnbmVkIHN0
YXJ0T2Zmc2V0KSBjb25zdDsKIAorICAgIFdURl9FWFBPUlRfUFJJVkFURSBTdHJpbmcgY29udmVy
dFRvQVNDSUlMb3dlcmNhc2UoKSBjb25zdDsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5n
IGNvbnZlcnRUb0FTQ0lJVXBwZXJjYXNlKCkgY29uc3Q7CisKICAgICBib29sIGNvbnRhaW5zKFVD
aGFyKSBjb25zdDsKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgYm9vbCBjb250YWluc0lnbm9yaW5n
QVNDSUlDYXNlKGNvbnN0IFN0cmluZ1ZpZXcmKSBjb25zdDsKICAgICBXVEZfRVhQT1JUX1BSSVZB
VEUgYm9vbCBjb250YWluc0lnbm9yaW5nQVNDSUlDYXNlKGNvbnN0IFN0cmluZ1ZpZXcmLCB1bnNp
Z25lZCBzdGFydE9mZnNldCkgY29uc3Q7CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi90ZXh0L2NmL1N0
cmluZ1ZpZXdDRi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvdGV4dC9jZi9TdHJp
bmdWaWV3Q0YuY3BwCShyZXZpc2lvbiAyMzIyNjcpCisrKyBTb3VyY2UvV1RGL3d0Zi90ZXh0L2Nm
L1N0cmluZ1ZpZXdDRi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDE0IEBACiAKIG5h
bWVzcGFjZSBXVEYgewogCitSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IFN0cmluZ1ZpZXc6OmNyZWF0
ZUNGU3RyaW5nKCkgY29uc3QKK3sKKyAgICBpZiAoaXM4Qml0KCkpCisgICAgICAgIHJldHVybiBh
ZG9wdENGKENGU3RyaW5nQ3JlYXRlV2l0aEJ5dGVzKGtDRkFsbG9jYXRvckRlZmF1bHQsIGNoYXJh
Y3RlcnM4KCksIGxlbmd0aCgpLCBrQ0ZTdHJpbmdFbmNvZGluZ0lTT0xhdGluMSwgZmFsc2UpKTsK
KyAgICAKKyAgICByZXR1cm4gYWRvcHRDRihDRlN0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJzKGtD
RkFsbG9jYXRvckRlZmF1bHQsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgVW5pQ2hhcio+KGNoYXJh
Y3RlcnMxNigpKSwgbGVuZ3RoKCkpKTsKK30KKwogUmV0YWluUHRyPENGU3RyaW5nUmVmPiBTdHJp
bmdWaWV3OjpjcmVhdGVDRlN0cmluZ1dpdGhvdXRDb3B5aW5nKCkgY29uc3QKIHsKICAgICBpZiAo
aXM4Qml0KCkpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzIyNjcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzMyBAQAorMjAxOC0wNS0y
OSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAg
IFJlZHVjZSBTdHJpbmcgYWxsb2NhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE4NjA1OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIERvbid0IGFsbG9jYXRlIFN0cmluZ3MganVzdCB0byBjb252ZXJ0
IGl0IHRvIGFub3RoZXIgZm9ybS4KKyAgICAgICAgQmFzZWQgbW9zdGx5IG9uIERhcmluJ3MgZmVl
ZGJhY2sgb24gYnVnIDE4NTk4Ni4KKworICAgICAgICBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisK
KyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Omhvc3ROYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldEhh
bmRzaGFrZTo6aG9zdCBjb25zdCk6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NTZWxlY3RvclBh
cnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxlY3RvclBhcnNlcjo6Y29uc3VtZVBz
ZXVkbyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxlY3RvclBhcnNlcjo6Y29uc3VtZUFOUGx1
c0IpOgorICAgICAgICAqIGxvYWRlci9tYWMvTG9hZGVyTlNVUkxFeHRyYXMubW06CisgICAgICAg
IChzdWdnZXN0ZWRGaWxlbmFtZVdpdGhNSU1FVHlwZSk6CisgICAgICAgICogcGFnZS9TZWN1cml0
eU9yaWdpbkRhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJv
bVVSTCk6CisgICAgICAgICogcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5U291cmNlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OndpbGRjYXJkTWF0Y2hlcyk6CisgICAgICAgIChXZWJDb3Jl
OjpDb250ZW50U2VjdXJpdHlQb2xpY3lTb3VyY2U6Omhvc3RNYXRjaGVzIGNvbnN0KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9VUkwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VVJMOjpob3N0QW5kUG9y
dCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5k
bGVJbXBsQ0ZOZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U29ja2V0U3RyZWFtSGFuZGxlSW1w
bDo6Y3JlYXRlU3RyZWFtcyk6CisKIDIwMTgtMDUtMjkgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hy
aXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBEbyBldmVuIGZld2VyIGFsbG9jYXRpb25z
IGluIFVSTCBob3N0IG9wZXJhdGlvbnMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
c29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwCShyZXZpc2lvbiAy
MzIyNjcpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0SGFu
ZHNoYWtlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODIsNyArODIsNyBAQCBzdGF0aWMgU3RyaW5n
IGhvc3ROYW1lKGNvbnN0IFVSTCYgdXJsLCBiCiB7CiAgICAgQVNTRVJUKHVybC5wcm90b2NvbElz
KCJ3c3MiKSA9PSBzZWN1cmUpOwogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICBidWls
ZGVyLmFwcGVuZCh1cmwuaG9zdCgpLnRvU3RyaW5nKCkuY29udmVydFRvQVNDSUlMb3dlcmNhc2Uo
KSk7CisgICAgYnVpbGRlci5hcHBlbmQodXJsLmhvc3QoKS5jb252ZXJ0VG9BU0NJSUxvd2VyY2Fz
ZSgpKTsKICAgICBpZiAodXJsLnBvcnQoKSAmJiAoKCFzZWN1cmUgJiYgdXJsLnBvcnQoKS52YWx1
ZSgpICE9IDgwKSB8fCAoc2VjdXJlICYmIHVybC5wb3J0KCkudmFsdWUoKSAhPSA0NDMpKSkgewog
ICAgICAgICBidWlsZGVyLmFwcGVuZCgnOicpOwogICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJl
cih1cmwucG9ydCgpLnZhbHVlKCkpOwpAQCAtMTQ2LDcgKzE0Niw3IEBAIHZvaWQgV2ViU29ja2V0
SGFuZHNoYWtlOjpzZXRVUkwoY29uc3QgVVIKIC8vIEZJWE1FOiBSZXR1cm4gdHlwZSBzaG91bGQg
anVzdCBiZSBTdHJpbmcsIG5vdCBjb25zdCBTdHJpbmcuCiBjb25zdCBTdHJpbmcgV2ViU29ja2V0
SGFuZHNoYWtlOjpob3N0KCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV91cmwuaG9zdCgpLnRvU3Ry
aW5nKCkuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKTsKKyAgICByZXR1cm4gbV91cmwuaG9zdCgp
LmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlKCk7CiB9CiAKIGNvbnN0IFN0cmluZyYgV2ViU29ja2V0
SGFuZHNoYWtlOjpjbGllbnRQcm90b2NvbCgpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9j
c3MvcGFyc2VyL0NTU1NlbGVjdG9yUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9jc3MvcGFyc2VyL0NTU1NlbGVjdG9yUGFyc2VyLmNwcAkocmV2aXNpb24gMjMyMjY3KQor
KysgU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NTZWxlY3RvclBhcnNlci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQ5NCw3ICs0OTQsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2Vs
ZWN0b3I+IENTU1NlCiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+IHNl
bGVjdG9yOwogICAgIAotICAgIGF1dG8gbG93ZXJjYXNlZFZhbHVlID0gdG9rZW4udmFsdWUoKS50
b1N0cmluZygpLmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlKCk7CisgICAgYXV0byBsb3dlcmNhc2Vk
VmFsdWUgPSB0b2tlbi52YWx1ZSgpLmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlKCk7CiAgICAgYXV0
byB2YWx1ZSA9IFN0cmluZ1ZpZXcgeyBsb3dlcmNhc2VkVmFsdWUgfTsKIAogICAgIGlmIChjb2xv
bnMgPT0gMSkKQEAgLTczNSw3ICs3MzUsNyBAQCBib29sIENTU1NlbGVjdG9yUGFyc2VyOjpjb25z
dW1lQU5QbHVzQihDCiAgICAgfSBlbHNlIGlmICh0b2tlbi50eXBlKCkgPT0gSWRlbnRUb2tlbikg
ewogICAgICAgICBpZiAodG9rZW4udmFsdWUoKVswXSA9PSAnLScpIHsKICAgICAgICAgICAgIHJl
c3VsdC5maXJzdCA9IC0xOwotICAgICAgICAgICAgblN0cmluZyA9IHRva2VuLnZhbHVlKCkudG9T
dHJpbmcoKS5zdWJzdHJpbmcoMSk7CisgICAgICAgICAgICBuU3RyaW5nID0gdG9rZW4udmFsdWUo
KS5zdWJzdHJpbmcoMSkudG9TdHJpbmcoKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAg
IHJlc3VsdC5maXJzdCA9IDE7CiAgICAgICAgICAgICBuU3RyaW5nID0gdG9rZW4udmFsdWUoKS50
b1N0cmluZygpOwpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL21hYy9Mb2FkZXJOU1VSTEV4
dHJhcy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvbWFjL0xvYWRlck5T
VVJMRXh0cmFzLm1tCShyZXZpc2lvbiAyMzIyNjcpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIv
bWFjL0xvYWRlck5TVVJMRXh0cmFzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00OCw4ICs0OCw4IEBA
IE5TU3RyaW5nICpzdWdnZXN0ZWRGaWxlbmFtZVdpdGhNSU1FVHlwZSgKIAogICAgIGlmIChbZmls
ZW5hbWUgbGVuZ3RoXSA9PSAwIHx8IFtsYXN0UGF0aENvbXBvbmVudCBpc0VxdWFsVG9TdHJpbmc6
QCIvIl0pIHsKICAgICAgICAgLy8gbGFzdFBhdGhDb21wb25lbnQgaXMgbm8gZ29vZCwgdHJ5IHRo
ZSBob3N0LgotICAgICAgICBOU1N0cmluZyAqaG9zdCA9IFVSTCh1cmwpLmhvc3QoKS50b1N0cmlu
ZygpOwotICAgICAgICBmaWxlbmFtZSA9IGZpbGVuYW1lQnlGaXhpbmdJbGxlZ2FsQ2hhcmFjdGVy
cyhob3N0KTsKKyAgICAgICAgYXV0byBob3N0ID0gVVJMKHVybCkuaG9zdCgpLmNyZWF0ZU5TU3Ry
aW5nKCk7CisgICAgICAgIGZpbGVuYW1lID0gZmlsZW5hbWVCeUZpeGluZ0lsbGVnYWxDaGFyYWN0
ZXJzKGhvc3QuZ2V0KCkpOwogICAgICAgICBpZiAoW2ZpbGVuYW1lIGxlbmd0aF0gPT0gMCkgewog
ICAgICAgICAgICAgLy8gQ2FuJ3QgbWFrZSBhIGZpbGVuYW1lIHVzaW5nIHRoaXMgVVJMLCB1c2Ug
InVua25vd24iLgogICAgICAgICAgICAgZmlsZW5hbWUgPSBjb3B5SW1hZ2VVbmtub3duRmlsZUxh
YmVsKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luRGF0YS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW5EYXRhLmgJKHJl
dmlzaW9uIDIzMjI2NykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW5EYXRh
LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDggKzQ5LDggQEAgc3RydWN0IFNlY3VyaXR5T3JpZ2lu
RGF0YSB7CiAgICAgc3RhdGljIFNlY3VyaXR5T3JpZ2luRGF0YSBmcm9tVVJMKGNvbnN0IFVSTCYg
dXJsKQogICAgIHsKICAgICAgICAgcmV0dXJuIFNlY3VyaXR5T3JpZ2luRGF0YSB7Ci0gICAgICAg
ICAgICB1cmwucHJvdG9jb2woKS5pc051bGwoKSA/IGVtcHR5U3RyaW5nKCkgOiB1cmwucHJvdG9j
b2woKS50b1N0cmluZygpLmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlKCksCi0gICAgICAgICAgICB1
cmwuaG9zdCgpLmlzTnVsbCgpID8gZW1wdHlTdHJpbmcoKSA6IHVybC5ob3N0KCkudG9TdHJpbmco
KS5jb252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpLAorICAgICAgICAgICAgdXJsLnByb3RvY29sKCku
aXNOdWxsKCkgPyBlbXB0eVN0cmluZygpIDogdXJsLnByb3RvY29sKCkuY29udmVydFRvQVNDSUlM
b3dlcmNhc2UoKSwKKyAgICAgICAgICAgIHVybC5ob3N0KCkuaXNOdWxsKCkgPyBlbXB0eVN0cmlu
ZygpIDogdXJsLmhvc3QoKS5jb252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpLAogICAgICAgICAgICAg
dXJsLnBvcnQoKQogICAgICAgICB9OwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
Y3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeVNvdXJjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5U291cmNlLmNwcAkocmV2aXNp
b24gMjMyMjY3KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9s
aWN5U291cmNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjIsMTEgKzYyLDE5IEBAIGJvb2wgQ29u
dGVudFNlY3VyaXR5UG9saWN5U291cmNlOjpzY2hlbWUKICAgICByZXR1cm4gZXF1YWxJZ25vcmlu
Z0FTQ0lJQ2FzZSh1cmwucHJvdG9jb2woKSwgbV9zY2hlbWUpOwogfQogCitzdGF0aWMgYm9vbCB3
aWxkY2FyZE1hdGNoZXMoU3RyaW5nVmlldyBob3N0LCBjb25zdCBTdHJpbmcmIGhvc3RXaXRoV2ls
ZGNhcmQpCit7CisgICAgYXV0byBob3N0TGVuZ3RoID0gaG9zdC5sZW5ndGgoKTsKKyAgICBhdXRv
IGhvc3RXaXRoV2lsZGNhcmRMZW5ndGggPSBob3N0V2l0aFdpbGRjYXJkLmxlbmd0aCgpOworICAg
IHJldHVybiBob3N0LmVuZHNXaXRoSWdub3JpbmdBU0NJSUNhc2UoaG9zdFdpdGhXaWxkY2FyZCkK
KyAgICAgICAgJiYgaG9zdExlbmd0aCA+IGhvc3RXaXRoV2lsZGNhcmRMZW5ndGgKKyAgICAgICAg
JiYgaG9zdFtob3N0TGVuZ3RoIC0gaG9zdFdpdGhXaWxkY2FyZExlbmd0aCAtIDFdID09ICcuJzsK
K30KKwogYm9vbCBDb250ZW50U2VjdXJpdHlQb2xpY3lTb3VyY2U6Omhvc3RNYXRjaGVzKGNvbnN0
IFVSTCYgdXJsKSBjb25zdAogewogICAgIGF1dG8gaG9zdCA9IHVybC5ob3N0KCk7Ci0gICAgcmV0
dXJuIGVxdWFsSWdub3JpbmdBU0NJSUNhc2UoaG9zdCwgbV9ob3N0KSB8fCAobV9ob3N0SGFzV2ls
ZGNhcmQgJiYgaG9zdC5lbmRzV2l0aElnbm9yaW5nQVNDSUlDYXNlKG1ha2VTdHJpbmcoIi4iLCBt
X2hvc3QpKSk7Ci0KKyAgICByZXR1cm4gZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShob3N0LCBtX2hv
c3QpIHx8IChtX2hvc3RIYXNXaWxkY2FyZCAmJiB3aWxkY2FyZE1hdGNoZXMoaG9zdCwgbV9ob3N0
KSk7CiB9CiAKIGJvb2wgQ29udGVudFNlY3VyaXR5UG9saWN5U291cmNlOjpwYXRoTWF0Y2hlcyhj
b25zdCBVUkwmIHVybCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMLmNwcAkocmV2aXNp
b24gMjMyMjY3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgPHd0Zi9VVUlELmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4K
KyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZU51bWJlcnMuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5o
PgogCkBAIC0xODAsNyArMTgxLDcgQEAgc3RkOjpvcHRpb25hbDx1aW50MTZfdD4gVVJMOjpwb3J0
KCkgY29ucwogU3RyaW5nIFVSTDo6aG9zdEFuZFBvcnQoKSBjb25zdAogewogICAgIGlmIChhdXRv
IHBvcnQgPSB0aGlzLT5wb3J0KCkpCi0gICAgICAgIHJldHVybiBtYWtlU3RyaW5nKGhvc3QoKSwg
JzonLCBTdHJpbmc6Om51bWJlcihwb3J0LnZhbHVlKCkpKTsKKyAgICAgICAgcmV0dXJuIG1ha2VT
dHJpbmcoaG9zdCgpLCAnOicsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihwb3J0LnZhbHVlKCkpKTsK
ICAgICByZXR1cm4gaG9zdCgpLnRvU3RyaW5nKCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlSW1wbENGTmV0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0cmVh
bUhhbmRsZUltcGxDRk5ldC5jcHAJKHJldmlzaW9uIDIzMjI2NykKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlSW1wbENGTmV0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzEyLDcgKzMxMiw3IEBAIHZvaWQgU29ja2V0U3RyZWFtSGFuZGxlSW1w
bDo6Y3JlYXRlU3RyZWEKICAgICBpZiAobV9jb25uZWN0aW9uVHlwZSA9PSBVbmtub3duKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGhvc3QgPSBtX3VybC5o
b3N0KCkudG9TdHJpbmcoKS5jcmVhdGVDRlN0cmluZygpOworICAgIFJldGFpblB0cjxDRlN0cmlu
Z1JlZj4gaG9zdCA9IG1fdXJsLmhvc3QoKS5jcmVhdGVDRlN0cmluZygpOwogCiAgICAgLy8gQ3Jl
YXRpbmcgc3RyZWFtcyB0byBmaW5hbCBkZXN0aW5hdGlvbiwgbm90IHRvIHByb3h5LgogICAgIENG
UmVhZFN0cmVhbVJlZiByZWFkU3RyZWFtID0gMDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>