<?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>176035</bug_id>
          
          <creation_ts>2017-08-28 14:01:14 -0700</creation_ts>
          <short_desc>Logger should use makeString instead of String::format</short_desc>
          <delta_ts>2019-02-03 12:25:27 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=175988</see_also>
          <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>
          
          <blocked>30342</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>achristensen</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>jer.noble</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1342933</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-08-28 14:01:14 -0700</bug_when>
    <thetext>As noted in bug 175988, String::format is not type safe so Logger should use makeString instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342945</commentid>
    <comment_count>1</comment_count>
      <attachid>319207</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-08-28 14:27:04 -0700</bug_when>
    <thetext>Created attachment 319207
Proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342946</commentid>
    <comment_count>2</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-08-28 14:29:07 -0700</bug_when>
    <thetext>Attachment 319207 did not pass style-queue:


ERROR: Source/WebCore/PAL/pal/Logger.h:39:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WebCore/PAL/pal/Logger.h:137:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/WebCore/PAL/pal/Logger.h:138:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
Total errors found: 3 in 4 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>1342948</commentid>
    <comment_count>3</comment_count>
      <attachid>319208</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-08-28 14:33:45 -0700</bug_when>
    <thetext>Created attachment 319208
Proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342954</commentid>
    <comment_count>4</comment_count>
      <attachid>319212</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-08-28 14:54:12 -0700</bug_when>
    <thetext>Created attachment 319212
Proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342972</commentid>
    <comment_count>5</comment_count>
      <attachid>319212</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-08-28 16:06:15 -0700</bug_when>
    <thetext>Comment on attachment 319212
Proposed patch.

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

&gt; Source/WebCore/PAL/pal/Logger.h:40
&gt; +    template&lt;typename U = T&gt; static typename std::enable_if&lt;std::is_same&lt;U, int&gt;::value, String&gt;::type toString(int argument) { return String::number(argument); }

This could be slightly abbreviated if you used std::enable_if_t instead of std::enable_if&lt;...&gt;::type</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343025</commentid>
    <comment_count>6</comment_count>
      <attachid>319227</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-08-28 19:04:29 -0700</bug_when>
    <thetext>Created attachment 319227
Patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343039</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-28 19:58:52 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 319227:

http/tests/security/cross-origin-xsl-BLOCKED.html bug 51054 (authors: abarth@webkit.org, jochen@chromium.org, and rniwa@webkit.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343040</commentid>
    <comment_count>8</comment_count>
      <attachid>319227</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-28 19:59:22 -0700</bug_when>
    <thetext>Comment on attachment 319227
Patch for landing.

Clearing flags on attachment: 319227

Committed r221288: &lt;http://trac.webkit.org/changeset/221288&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501657</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-02-03 12:24:25 -0800</bug_when>
    <thetext>Looks like this was resolved more than a year ago.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501658</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-02-03 12:25:27 -0800</bug_when>
    <thetext>&lt;rdar://problem/47773077&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319207</attachid>
            <date>2017-08-28 14:27:04 -0700</date>
            <delta_ts>2017-08-28 14:33:45 -0700</delta_ts>
            <desc>Proposed patch.</desc>
            <filename>use_make_string_patch_1.txt</filename>
            <type>text/plain</type>
            <size>10461</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvUEFML0NoYW5nZUxvZwkocmV2aXNpb24gMjIxMjU2KQorKysgU291cmNlL1dlYkNv
cmUvUEFML0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDE3LTA4
LTI4ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIExv
Z2dlciBzaG91bGQgdXNlIG1ha2VTdHJpbmcgaW5zdGVhZCBvZiBTdHJpbmc6OmZvcm1hdAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MDM1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwYWwvTG9nZ2Vy
Lmg6CisgICAgICAgIChQQUw6OkxvZ0FyZ3VtZW50Ojp0b1N0cmluZyk6CisgICAgICAgIChQQUw6
OkxvZ2dlcjo6bG9nQWx3YXlzKToKKyAgICAgICAgKFBBTDo6TG9nZ2VyOjplcnJvcik6CisgICAg
ICAgIChQQUw6OkxvZ2dlcjo6d2FybmluZyk6CisgICAgICAgIChQQUw6OkxvZ2dlcjo6bm90aWNl
KToKKyAgICAgICAgKFBBTDo6TG9nZ2VyOjppbmZvKToKKyAgICAgICAgKFBBTDo6TG9nZ2VyOjpk
ZWJ1Zyk6CisgICAgICAgIChQQUw6OkxvZ2dlcjo6TWV0aG9kQW5kUG9pbnRlcjo6TWV0aG9kQW5k
UG9pbnRlcik6CisgICAgICAgIChQQUw6OkxvZ2dlcjo6bG9nKToKKyAgICAgICAgKFBBTDo6TG9n
QXJndW1lbnQ8TG9nZ2VyOjpNZXRob2RBbmRQb2ludGVyPjo6dG9TdHJpbmcpOgorCiAyMDE3LTA4
LTI1ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIEFk
ZCBMb2dnZXI6OmxvZ0Fsd2F5cwpJbmRleDogU291cmNlL1dlYkNvcmUvUEFML3BhbC9Mb2dnZXIu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL0xvZ2dlci5oCShyZXZpc2lv
biAyMjEyNTYpCisrKyBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL0xvZ2dlci5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yMCwxMiArMjAsMTMgQEAKICAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKICAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAogI3ByYWdtYSBv
bmNlCiAKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi9IZXhOdW1i
ZXIuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KQEAgLTMzLDYgKzM0LDE3IEBACiAKIG5h
bWVzcGFjZSBQQUwgewogCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorc3RydWN0IExvZ0FyZ3VtZW50
Cit7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVSA9IFQ+IHN0YXRpYyB0eXBlbmFtZSBzdGQ6OmVu
YWJsZV9pZjxzdGQ6OmlzX3NhbWU8VSwgaW50Pjo6dmFsdWUsIFN0cmluZz46OnR5cGUgdG9TdHJp
bmcoaW50IGFyZ3VtZW50KSB7IHJldHVybiBTdHJpbmc6Om51bWJlcihhcmd1bWVudCk7IH0KKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBVID0gVD4gc3RhdGljIHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lm
PHN0ZDo6aXNfc2FtZTxVLCBmbG9hdD46OnZhbHVlLCBTdHJpbmc+Ojp0eXBlIHRvU3RyaW5nKGZs
b2F0IGFyZ3VtZW50KSB7IHJldHVybiBTdHJpbmc6Om51bWJlcihhcmd1bWVudCk7IH0KKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBVID0gVD4gc3RhdGljIHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmPHN0
ZDo6aXNfc2FtZTxVLCBkb3VibGU+Ojp2YWx1ZSwgU3RyaW5nPjo6dHlwZSB0b1N0cmluZyhkb3Vi
bGUgYXJndW1lbnQpIHsgcmV0dXJuIFN0cmluZzo6bnVtYmVyKGFyZ3VtZW50KTsgfQorICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFUgPSBUPiBzdGF0aWMgdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8c3Rk
Ojppc19zYW1lPFUsIFN0cmluZz46OnZhbHVlLCBTdHJpbmc+Ojp0eXBlIHRvU3RyaW5nKFN0cmlu
ZyBhcmd1bWVudCkgeyByZXR1cm4gYXJndW1lbnQ7IH0KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBV
ID0gVD4gc3RhdGljIHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmPHN0ZDo6aXNfc2FtZTxVLCBjb25z
dCBjaGFyKj46OnZhbHVlLCBTdHJpbmc+Ojp0eXBlIHRvU3RyaW5nKGNvbnN0IGNoYXIqIGFyZ3Vt
ZW50KSB7IHJldHVybiBTdHJpbmcoYXJndW1lbnQpOyB9CisgICAgdGVtcGxhdGU8c2l6ZV90IGxl
bmd0aD4gc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBjaGFyICgmYXJndW1lbnQpW2xlbmd0
aF0pIHsgcmV0dXJuIFN0cmluZyhhcmd1bWVudCk7IH0KK307CisKIGNsYXNzIExvZ2dlciA6IHB1
YmxpYyBSZWZDb3VudGVkPExvZ2dlcj4gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKExvZ2dl
cik7CiBwdWJsaWM6CkBAIC00Miw2NCArNTQsNjMgQEAgcHVibGljOgogICAgIH0KIAogICAgIHRl
bXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KLSAgICBpbmxpbmUgdm9pZCBsb2dBbHdheXMo
V1RGTG9nQ2hhbm5lbCYgY2hhbm5lbCwgY29uc3QgY2hhciogZm9ybWF0LCBjb25zdCBBcmd1bWVu
dHMmLi4uIGFyZ3VtZW50cykgY29uc3QgV1RGX0FUVFJJQlVURV9QUklOVEYoMywgMCkKKyAgICBp
bmxpbmUgdm9pZCBsb2dBbHdheXMoV1RGTG9nQ2hhbm5lbCYgY2hhbm5lbCwgY29uc3QgQXJndW1l
bnRzJi4uLiBhcmd1bWVudHMpCiAgICAgewogI2lmIFJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAg
ICAgIC8vICJTdGFuZGFyZCIgV2ViQ29yZSBsb2dnaW5nIGdvZXMgdG8gc3RkZXJyLCB3aGljaCBp
cyBjYXB0dXJlZCBpbiBsYXlvdXQgdGVzdCBvdXRwdXQgYW5kIGNhbiBnZW5lcmFsbHkgYmUgYSBw
cm9ibGVtCiAgICAgICAgIC8vICBvbiBzb21lIHN5c3RlbXMsIHNvIGRvbid0IGFsbG93IGl0Lgog
ICAgICAgICBVTlVTRURfUEFSQU0oY2hhbm5lbCk7Ci0gICAgICAgIFVOVVNFRF9QQVJBTShmb3Jt
YXQpOwogI2Vsc2UKICAgICAgICAgaWYgKCF3aWxsTG9nKGNoYW5uZWwsIFdURkxvZ0xldmVsQWx3
YXlzKSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBsb2coY2hhbm5lbCwgZm9ybWF0
LCBhcmd1bWVudHMuLi4pOworICAgICAgICBsb2coY2hhbm5lbCwgYXJndW1lbnRzLi4uKTsKICNl
bmRpZgogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KLSAgICBp
bmxpbmUgdm9pZCBlcnJvcihXVEZMb2dDaGFubmVsJiBjaGFubmVsLCBjb25zdCBjaGFyKiBmb3Jt
YXQsIGNvbnN0IEFyZ3VtZW50cyYuLi4gYXJndW1lbnRzKSBjb25zdCBXVEZfQVRUUklCVVRFX1BS
SU5URigzLCAwKQorICAgIGlubGluZSB2b2lkIGVycm9yKFdURkxvZ0NoYW5uZWwmIGNoYW5uZWws
IGNvbnN0IEFyZ3VtZW50cyYuLi4gYXJndW1lbnRzKQogICAgIHsKICAgICAgICAgaWYgKCF3aWxs
TG9nKGNoYW5uZWwsIFdURkxvZ0xldmVsRXJyb3IpKQogICAgICAgICAgICAgcmV0dXJuOwogCi0g
ICAgICAgIGxvZyhjaGFubmVsLCBmb3JtYXQsIGFyZ3VtZW50cy4uLik7CisgICAgICAgIGxvZyhj
aGFubmVsLCBhcmd1bWVudHMuLi4pOwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4u
IEFyZ3VtZW50cz4KLSAgICBpbmxpbmUgdm9pZCB3YXJuaW5nKFdURkxvZ0NoYW5uZWwmIGNoYW5u
ZWwsIGNvbnN0IGNoYXIqIGZvcm1hdCwgY29uc3QgQXJndW1lbnRzJi4uLiBhcmd1bWVudHMpIGNv
bnN0IFdURl9BVFRSSUJVVEVfUFJJTlRGKDMsIDApCisgICAgaW5saW5lIHZvaWQgd2FybmluZyhX
VEZMb2dDaGFubmVsJiBjaGFubmVsLCBjb25zdCBBcmd1bWVudHMmLi4uIGFyZ3VtZW50cykKICAg
ICB7CiAgICAgICAgIGlmICghd2lsbExvZyhjaGFubmVsLCBXVEZMb2dMZXZlbFdhcm5pbmcpKQog
ICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGxvZyhjaGFubmVsLCBmb3JtYXQsIGFyZ3Vt
ZW50cy4uLik7CisgICAgICAgIGxvZyhjaGFubmVsLCBhcmd1bWVudHMuLi4pOwogICAgIH0KIAog
ICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KLSAgICBpbmxpbmUgdm9pZCBub3Rp
Y2UoV1RGTG9nQ2hhbm5lbCYgY2hhbm5lbCwgY29uc3QgY2hhciogZm9ybWF0LCBjb25zdCBBcmd1
bWVudHMmLi4uIGFyZ3VtZW50cykgY29uc3QgV1RGX0FUVFJJQlVURV9QUklOVEYoMywgMCkKKyAg
ICBpbmxpbmUgdm9pZCBub3RpY2UoV1RGTG9nQ2hhbm5lbCYgY2hhbm5lbCwgY29uc3QgQXJndW1l
bnRzJi4uLiBhcmd1bWVudHMpCiAgICAgewogICAgICAgICBpZiAoIXdpbGxMb2coY2hhbm5lbCwg
V1RGTG9nTGV2ZWxOb3RpY2UpKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGxvZyhj
aGFubmVsLCBmb3JtYXQsIGFyZ3VtZW50cy4uLik7CisgICAgICAgIGxvZyhjaGFubmVsLCBhcmd1
bWVudHMuLi4pOwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4K
LSAgICBpbmxpbmUgdm9pZCBpbmZvKFdURkxvZ0NoYW5uZWwmIGNoYW5uZWwsIGNvbnN0IGNoYXIq
IGZvcm1hdCwgY29uc3QgQXJndW1lbnRzJi4uLiBhcmd1bWVudHMpIGNvbnN0IFdURl9BVFRSSUJV
VEVfUFJJTlRGKDMsIDApCisgICAgaW5saW5lIHZvaWQgaW5mbyhXVEZMb2dDaGFubmVsJiBjaGFu
bmVsLCBjb25zdCBBcmd1bWVudHMmLi4uIGFyZ3VtZW50cykKICAgICB7CiAgICAgICAgIGlmICgh
d2lsbExvZyhjaGFubmVsLCBXVEZMb2dMZXZlbEluZm8pKQogICAgICAgICAgICAgcmV0dXJuOwog
Ci0gICAgICAgIGxvZyhjaGFubmVsLCBmb3JtYXQsIGFyZ3VtZW50cy4uLik7CisgICAgICAgIGxv
ZyhjaGFubmVsLCBhcmd1bWVudHMuLi4pOwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1l
Li4uIEFyZ3VtZW50cz4KLSAgICBpbmxpbmUgdm9pZCBkZWJ1ZyhXVEZMb2dDaGFubmVsJiBjaGFu
bmVsLCBjb25zdCBjaGFyKiBmb3JtYXQsIGNvbnN0IEFyZ3VtZW50cyYuLi4gYXJndW1lbnRzKSBj
b25zdCBXVEZfQVRUUklCVVRFX1BSSU5URigzLCAwKQorICAgIGlubGluZSB2b2lkIGRlYnVnKFdU
RkxvZ0NoYW5uZWwmIGNoYW5uZWwsIGNvbnN0IEFyZ3VtZW50cyYuLi4gYXJndW1lbnRzKQogICAg
IHsKICAgICAgICAgaWYgKCF3aWxsTG9nKGNoYW5uZWwsIFdURkxvZ0xldmVsRGVidWcpKQogICAg
ICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGxvZyhjaGFubmVsLCBmb3JtYXQsIGFyZ3VtZW50
cy4uLik7CisgICAgICAgIGxvZyhjaGFubmVsLCBhcmd1bWVudHMuLi4pOwogICAgIH0KIAogICAg
IGlubGluZSBib29sIHdpbGxMb2coV1RGTG9nQ2hhbm5lbCYgY2hhbm5lbCwgV1RGTG9nTGV2ZWwg
bGV2ZWwpIGNvbnN0CkBAIC0xMjEsMzUgKzEzMiw0OCBAQCBwdWJsaWM6CiAgICAgICAgICAgICBt
X2VuYWJsZWQgPSBlbmFibGVkOwogICAgIH0KIAorICAgIHN0cnVjdCBNZXRob2RBbmRQb2ludGVy
IHsKKyAgICAgICAgTWV0aG9kQW5kUG9pbnRlcihjb25zdCBjaGFyKiBtZXRob2ROYW1lLCB2b2lk
KiBvYmplY3RQdHIpCisgICAgICAgIDogbWV0aG9kTmFtZShtZXRob2ROYW1lKQorICAgICAgICAs
IG9iamVjdFB0cihyZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4ob2JqZWN0UHRyKSkKKyAgICAg
ICAgeworICAgICAgICB9CisKKyAgICAgICAgY29uc3QgY2hhciogbWV0aG9kTmFtZTsKKyAgICAg
ICAgdWludHB0cl90IG9iamVjdFB0cjsKKyAgICB9OworCiBwcml2YXRlOgogICAgIExvZ2dlcihj
b25zdCB2b2lkKiBvd25lcikgeyBtX293bmVyID0gb3duZXI7IH0KIAotICAgIHN0YXRpYyBpbmxp
bmUgdm9pZCBsb2coV1RGTG9nQ2hhbm5lbCYgY2hhbm5lbCwgY29uc3QgY2hhciogZm9ybWF0LCAu
Li4pCisgICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJndW1lbnQ+CisgICAgc3RhdGljIGlubGlu
ZSB2b2lkIGxvZyhXVEZMb2dDaGFubmVsJiBjaGFubmVsLCBjb25zdCBBcmd1bWVudCYuLi4gYXJn
dW1lbnRzKQogICAgIHsKLSAgICAgICAgdmFfbGlzdCBhcmd1bWVudHM7Ci0gICAgICAgIHZhX3N0
YXJ0KGFyZ3VtZW50cywgZm9ybWF0KTsKLQotI2lmIENPTVBJTEVSKEdDQ19PUl9DTEFORykKLSNw
cmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2Zvcm1hdC1ub25saXRlcmFsIgotI2VuZGlmCi0gICAgICAgIFN0cmluZyBzdHJpbmcgPSBT
dHJpbmc6OmZvcm1hdFdpdGhBcmd1bWVudHMoZm9ybWF0LCBhcmd1bWVudHMpOwotI2lmIENPTVBJ
TEVSKEdDQ19PUl9DTEFORykKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKKyAg
ICAgICAgU3RyaW5nIHN0cmluZyA9IG1ha2VTdHJpbmcoTG9nQXJndW1lbnQ8QXJndW1lbnQ+Ojp0
b1N0cmluZyhhcmd1bWVudHMpLi4uKTsKIAogI2lmIFJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAg
ICAgIFdURkxvZygmY2hhbm5lbCwgIiVzIiwgc3RyaW5nLnV0ZjgoKS5kYXRhKCkpOwogI2Vsc2UK
ICAgICAgICAgb3NfbG9nKGNoYW5uZWwub3NMb2dDaGFubmVsLCAiJXtwdWJsaWN9cyIsIHN0cmlu
Zy51dGY4KCkuZGF0YSgpKTsKICNlbmRpZgotCi0gICAgICAgIHZhX2VuZChhcmd1bWVudHMpOwog
ICAgIH0KIAogICAgIGNvbnN0IHZvaWQqIG1fb3duZXI7CiAgICAgYm9vbCBtX2VuYWJsZWQgeyB0
cnVlIH07CiB9OwogCit0ZW1wbGF0ZSA8Pgorc3RydWN0IExvZ0FyZ3VtZW50PExvZ2dlcjo6TWV0
aG9kQW5kUG9pbnRlcj4geworICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgTG9nZ2Vy
OjpNZXRob2RBbmRQb2ludGVyJiB2YWx1ZSkKKyAgICB7CisgICAgICAgIFN0cmluZ0J1aWxkZXIg
YnVpbGRlcjsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQodmFsdWUubWV0aG9kTmFtZSk7CisgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiKDB4Iik7CisgICAgICAgIGFwcGVuZFVuc2lnbmVk
NjRBc0hleCh2YWx1ZS5vYmplY3RQdHIsIGJ1aWxkZXIpOworICAgICAgICBidWlsZGVyLmFwcGVu
ZExpdGVyYWwoIikiKTsKKyAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICB9
Cit9OworCiB9IC8vIG5hbWVzcGFjZSBQQUwKIApJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjIxMjcxKQorKysgVG9vbHMvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTctMDgtMjggIEVyaWMg
Q2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgTG9nZ2VyIHNob3Vs
ZCB1c2UgbWFrZVN0cmluZyBpbnN0ZWFkIG9mIFN0cmluZzo6Zm9ybWF0CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYwMzUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9Mb2dnaW5nLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6IFVw
ZGF0ZSB0ZXN0LgorCiAyMDE3LTA4LTI4ICBNczJnZXIgIDxNczJnZXJAZ21haWwuY29tPgogCiAg
ICAgICAgIEVuc3VyZSB0aGF0IHRoZSBhbGVydCBmdW5jdGlvbiBpcyBjYWxsZWQgaW4gVGVzdFdl
YkV4dGVuc2lvbnMuCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvTG9n
Z2luZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L0xvZ2dpbmcuY3BwCShyZXZpc2lvbiAyMjEyNTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvTG9nZ2luZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2Nyw5ICsyNjcsOCBA
QCBURVNUX0YoTG9nZ2luZ1Rlc3QsIExvZ2dlcikKICAgICBFWFBFQ1RfVFJVRShsb2dnZXItPmVu
YWJsZWQoKSk7CiAKICAgICBXVEZTZXRMb2dDaGFubmVsTGV2ZWwoJlRlc3RDaGFubmVsMSwgV1RG
TG9nTGV2ZWxFcnJvcik7Ci0gICAgbG9nZ2VyLT5lcnJvcihUZXN0Q2hhbm5lbDEsICIlcyAlcyIs
ICJXaGF0LCIsICJyaWRkZW4gb24gYSBob3JzZT8iKTsKLSAgICBFWFBFQ1RfVFJVRShvdXRwdXQo
KS5jb250YWlucygiV2hhdCwgcmlkZGVuIG9uIGEgaG9yc2U/IiwgZmFsc2UpKTsKLQorICAgIGxv
Z2dlci0+ZXJyb3IoVGVzdENoYW5uZWwxLCAiWW91J3JlIHVzaW5nIGNvY29udXRzISIpOworICAg
IEVYUEVDVF9UUlVFKG91dHB1dCgpLmNvbnRhaW5zKCJZb3UncmUgdXNpbmcgY29jb251dHMhIiwg
ZmFsc2UpKTsKICAgICBsb2dnZXItPndhcm5pbmcoVGVzdENoYW5uZWwxLCAiWW91J3JlIHVzaW5n
IGNvY29udXRzISIpOwogICAgIEVYUEVDVF9FUSgwdSwgb3V0cHV0KCkubGVuZ3RoKCkpOwogICAg
IGxvZ2dlci0+bm90aWNlKFRlc3RDaGFubmVsMSwgIllvdSdyZSB1c2luZyBjb2NvbnV0cyEiKTsK
QEAgLTI3OSw2ICsyNzgsMTUgQEAgVEVTVF9GKExvZ2dpbmdUZXN0LCBMb2dnZXIpCiAgICAgbG9n
Z2VyLT5kZWJ1ZyhUZXN0Q2hhbm5lbDEsICJZb3UncmUgdXNpbmcgY29jb251dHMhIik7CiAgICAg
RVhQRUNUX0VRKDB1LCBvdXRwdXQoKS5sZW5ndGgoKSk7CiAKKyAgICBsb2dnZXItPmVycm9yKFRl
c3RDaGFubmVsMSwgTG9nZ2VyOjpNZXRob2RBbmRQb2ludGVyKCJMb2dnaW5nVGVzdDo6TG9nZ2Vy
IiwgdGhpcykgLCAiOiB0ZXN0IG91dHB1dCIpOworICAgIEVYUEVDVF9UUlVFKG91dHB1dCgpLmNv
bnRhaW5zKCJMb2dnaW5nVGVzdDo6TG9nZ2VyKCIsIGZhbHNlKSk7CisKKyAgICBsb2dnZXItPmVy
cm9yKFRlc3RDaGFubmVsMSwgIldoYXQgaXMgIiwgMSwgIiArICIgLCAxMi41RiwgIj8iKTsKKyAg
ICBFWFBFQ1RfVFJVRShvdXRwdXQoKS5jb250YWlucygiV2hhdCBpcyAxICsgMTIuNT8iLCBmYWxz
ZSkpOworCisgICAgbG9nZ2VyLT5lcnJvcihUZXN0Q2hhbm5lbDEsICJXaGF0LCAiLCAicmlkZGVu
IG9uIGEgaG9yc2U/Iik7CisgICAgRVhQRUNUX1RSVUUob3V0cHV0KCkuY29udGFpbnMoIldoYXQs
IHJpZGRlbiBvbiBhIGhvcnNlPyIsIGZhbHNlKSk7CisKICAgICBsb2dnZXItPnNldEVuYWJsZWQo
dGhpcywgZmFsc2UpOwogICAgIEVYUEVDVF9GQUxTRShsb2dnZXItPmVuYWJsZWQoKSk7CiAgICAg
bG9nZ2VyLT5lcnJvcihUZXN0Q2hhbm5lbDEsICJZb3UndmUgZ290IHR3byBlbXB0eSBoYWx2ZXMg
b2YgY29jb251dHMiKTsKQEAgLTI4NiwxMSArMjk0LDExIEBAIFRFU1RfRihMb2dnaW5nVGVzdCwg
TG9nZ2VyKQogCiAgICAgbG9nZ2VyLT5zZXRFbmFibGVkKHRoaXMsIHRydWUpOwogICAgIEVYUEVD
VF9UUlVFKGxvZ2dlci0+ZW5hYmxlZCgpKTsKLSAgICBsb2dnZXItPmVycm9yKFRlc3RDaGFubmVs
MSwgIiVzICVzIiwgIllvdSd2ZSBnb3QgdHdvIGVtcHR5IGhhbHZlcyBvZiIsICJjb2NvbnV0cyEi
KTsKLSAgICBFWFBFQ1RfVFJVRShvdXRwdXQoKS5jb250YWlucygiWW91J3ZlIGdvdCB0d28gZW1w
dHkgaGFsdmVzIG9mIGNvY29udXRzISIsIGZhbHNlKSk7CisgICAgbG9nZ2VyLT5lcnJvcihUZXN0
Q2hhbm5lbDEsICJZb3UndmUgZ290ICIsIDIsICIgZW1wdHkgaGFsdmVzIG9mICIsICJjb2NvbnV0
cyEiKTsKKyAgICBFWFBFQ1RfVFJVRShvdXRwdXQoKS5jb250YWlucygiWW91J3ZlIGdvdCAyIGVt
cHR5IGhhbHZlcyBvZiBjb2NvbnV0cyEiLCBmYWxzZSkpOwogCiAgICAgV1RGU2V0TG9nQ2hhbm5l
bExldmVsKCZUZXN0Q2hhbm5lbDEsIFdURkxvZ0xldmVsRXJyb3IpOwotICAgIGxvZ2dlci0+bG9n
QWx3YXlzKFRlc3RDaGFubmVsMSwgIiVzIiwgIkkgc2hhbGwgdGF1bnQgeW91IGEgc2Vjb25kIHRp
bWUhIik7CisgICAgbG9nZ2VyLT5sb2dBbHdheXMoVGVzdENoYW5uZWwxLCAiSSBzaGFsbCB0YXVu
dCB5b3UgYSBzZWNvbmQgdGltZSEiKTsKICAgICBFWFBFQ1RfVFJVRShvdXRwdXQoKS5jb250YWlu
cygiSSBzaGFsbCB0YXVudCB5b3UgYSBzZWNvbmQgdGltZSEiLCBmYWxzZSkpOwogCiAgICAgbG9n
Z2VyLT5zZXRFbmFibGVkKHRoaXMsIGZhbHNlKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319208</attachid>
            <date>2017-08-28 14:33:45 -0700</date>
            <delta_ts>2017-08-28 14:54:12 -0700</delta_ts>
            <desc>Proposed patch.</desc>
            <filename>use_make_string_patch_1.txt</filename>
            <type>text/plain</type>
            <size>10468</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvUEFML0NoYW5nZUxvZwkocmV2aXNpb24gMjIxMjU2KQorKysgU291cmNlL1dlYkNv
cmUvUEFML0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDE3LTA4
LTI4ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIExv
Z2dlciBzaG91bGQgdXNlIG1ha2VTdHJpbmcgaW5zdGVhZCBvZiBTdHJpbmc6OmZvcm1hdAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MDM1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwYWwvTG9nZ2Vy
Lmg6CisgICAgICAgIChQQUw6OkxvZ0FyZ3VtZW50Ojp0b1N0cmluZyk6CisgICAgICAgIChQQUw6
OkxvZ2dlcjo6bG9nQWx3YXlzKToKKyAgICAgICAgKFBBTDo6TG9nZ2VyOjplcnJvcik6CisgICAg
ICAgIChQQUw6OkxvZ2dlcjo6d2FybmluZyk6CisgICAgICAgIChQQUw6OkxvZ2dlcjo6bm90aWNl
KToKKyAgICAgICAgKFBBTDo6TG9nZ2VyOjppbmZvKToKKyAgICAgICAgKFBBTDo6TG9nZ2VyOjpk
ZWJ1Zyk6CisgICAgICAgIChQQUw6OkxvZ2dlcjo6TWV0aG9kQW5kUG9pbnRlcjo6TWV0aG9kQW5k
UG9pbnRlcik6CisgICAgICAgIChQQUw6OkxvZ2dlcjo6bG9nKToKKyAgICAgICAgKFBBTDo6TG9n
QXJndW1lbnQ8TG9nZ2VyOjpNZXRob2RBbmRQb2ludGVyPjo6dG9TdHJpbmcpOgorCiAyMDE3LTA4
LTI1ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIEFk
ZCBMb2dnZXI6OmxvZ0Fsd2F5cwpJbmRleDogU291cmNlL1dlYkNvcmUvUEFML3BhbC9Mb2dnZXIu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL0xvZ2dlci5oCShyZXZpc2lv
biAyMjEyNTYpCisrKyBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL0xvZ2dlci5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yMCwxMiArMjAsMTMgQEAKICAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKICAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAogI3ByYWdtYSBv
bmNlCiAKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi9IZXhOdW1i
ZXIuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KQEAgLTMzLDYgKzM0LDE2IEBACiAKIG5h
bWVzcGFjZSBQQUwgewogCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorc3RydWN0IExvZ0FyZ3VtZW50
IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVID0gVD4gc3RhdGljIHR5cGVuYW1lIHN0ZDo6ZW5h
YmxlX2lmPHN0ZDo6aXNfc2FtZTxVLCBpbnQ+Ojp2YWx1ZSwgU3RyaW5nPjo6dHlwZSB0b1N0cmlu
ZyhpbnQgYXJndW1lbnQpIHsgcmV0dXJuIFN0cmluZzo6bnVtYmVyKGFyZ3VtZW50KTsgfQorICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFUgPSBUPiBzdGF0aWMgdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8
c3RkOjppc19zYW1lPFUsIGZsb2F0Pjo6dmFsdWUsIFN0cmluZz46OnR5cGUgdG9TdHJpbmcoZmxv
YXQgYXJndW1lbnQpIHsgcmV0dXJuIFN0cmluZzo6bnVtYmVyKGFyZ3VtZW50KTsgfQorICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFUgPSBUPiBzdGF0aWMgdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8c3Rk
Ojppc19zYW1lPFUsIGRvdWJsZT46OnZhbHVlLCBTdHJpbmc+Ojp0eXBlIHRvU3RyaW5nKGRvdWJs
ZSBhcmd1bWVudCkgeyByZXR1cm4gU3RyaW5nOjpudW1iZXIoYXJndW1lbnQpOyB9CisgICAgdGVt
cGxhdGU8dHlwZW5hbWUgVSA9IFQ+IHN0YXRpYyB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZjxzdGQ6
OmlzX3NhbWU8VSwgU3RyaW5nPjo6dmFsdWUsIFN0cmluZz46OnR5cGUgdG9TdHJpbmcoU3RyaW5n
IGFyZ3VtZW50KSB7IHJldHVybiBhcmd1bWVudDsgfQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFUg
PSBUPiBzdGF0aWMgdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8c3RkOjppc19zYW1lPFUsIGNvbnN0
IGNoYXIqPjo6dmFsdWUsIFN0cmluZz46OnR5cGUgdG9TdHJpbmcoY29uc3QgY2hhciogYXJndW1l
bnQpIHsgcmV0dXJuIFN0cmluZyhhcmd1bWVudCk7IH0KKyAgICB0ZW1wbGF0ZTxzaXplX3QgbGVu
Z3RoPiBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IGNoYXIgKCZhcmd1bWVudClbbGVuZ3Ro
XSkgeyByZXR1cm4gU3RyaW5nKGFyZ3VtZW50KTsgfQorfTsKKwogY2xhc3MgTG9nZ2VyIDogcHVi
bGljIFJlZkNvdW50ZWQ8TG9nZ2VyPiB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTG9nZ2Vy
KTsKIHB1YmxpYzoKQEAgLTQyLDY0ICs1Myw2MyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgdGVt
cGxhdGU8dHlwZW5hbWUuLi4gQXJndW1lbnRzPgotICAgIGlubGluZSB2b2lkIGxvZ0Fsd2F5cyhX
VEZMb2dDaGFubmVsJiBjaGFubmVsLCBjb25zdCBjaGFyKiBmb3JtYXQsIGNvbnN0IEFyZ3VtZW50
cyYuLi4gYXJndW1lbnRzKSBjb25zdCBXVEZfQVRUUklCVVRFX1BSSU5URigzLCAwKQorICAgIGlu
bGluZSB2b2lkIGxvZ0Fsd2F5cyhXVEZMb2dDaGFubmVsJiBjaGFubmVsLCBjb25zdCBBcmd1bWVu
dHMmLi4uIGFyZ3VtZW50cykKICAgICB7CiAjaWYgUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICAg
ICAgLy8gIlN0YW5kYXJkIiBXZWJDb3JlIGxvZ2dpbmcgZ29lcyB0byBzdGRlcnIsIHdoaWNoIGlz
IGNhcHR1cmVkIGluIGxheW91dCB0ZXN0IG91dHB1dCBhbmQgY2FuIGdlbmVyYWxseSBiZSBhIHBy
b2JsZW0KICAgICAgICAgLy8gIG9uIHNvbWUgc3lzdGVtcywgc28gZG9uJ3QgYWxsb3cgaXQuCiAg
ICAgICAgIFVOVVNFRF9QQVJBTShjaGFubmVsKTsKLSAgICAgICAgVU5VU0VEX1BBUkFNKGZvcm1h
dCk7CiAjZWxzZQogICAgICAgICBpZiAoIXdpbGxMb2coY2hhbm5lbCwgV1RGTG9nTGV2ZWxBbHdh
eXMpKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGxvZyhjaGFubmVsLCBmb3JtYXQs
IGFyZ3VtZW50cy4uLik7CisgICAgICAgIGxvZyhjaGFubmVsLCBhcmd1bWVudHMuLi4pOwogI2Vu
ZGlmCiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJndW1lbnRzPgotICAgIGlu
bGluZSB2b2lkIGVycm9yKFdURkxvZ0NoYW5uZWwmIGNoYW5uZWwsIGNvbnN0IGNoYXIqIGZvcm1h
dCwgY29uc3QgQXJndW1lbnRzJi4uLiBhcmd1bWVudHMpIGNvbnN0IFdURl9BVFRSSUJVVEVfUFJJ
TlRGKDMsIDApCisgICAgaW5saW5lIHZvaWQgZXJyb3IoV1RGTG9nQ2hhbm5lbCYgY2hhbm5lbCwg
Y29uc3QgQXJndW1lbnRzJi4uLiBhcmd1bWVudHMpCiAgICAgewogICAgICAgICBpZiAoIXdpbGxM
b2coY2hhbm5lbCwgV1RGTG9nTGV2ZWxFcnJvcikpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAg
ICAgICAgbG9nKGNoYW5uZWwsIGZvcm1hdCwgYXJndW1lbnRzLi4uKTsKKyAgICAgICAgbG9nKGNo
YW5uZWwsIGFyZ3VtZW50cy4uLik7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4g
QXJndW1lbnRzPgotICAgIGlubGluZSB2b2lkIHdhcm5pbmcoV1RGTG9nQ2hhbm5lbCYgY2hhbm5l
bCwgY29uc3QgY2hhciogZm9ybWF0LCBjb25zdCBBcmd1bWVudHMmLi4uIGFyZ3VtZW50cykgY29u
c3QgV1RGX0FUVFJJQlVURV9QUklOVEYoMywgMCkKKyAgICBpbmxpbmUgdm9pZCB3YXJuaW5nKFdU
RkxvZ0NoYW5uZWwmIGNoYW5uZWwsIGNvbnN0IEFyZ3VtZW50cyYuLi4gYXJndW1lbnRzKQogICAg
IHsKICAgICAgICAgaWYgKCF3aWxsTG9nKGNoYW5uZWwsIFdURkxvZ0xldmVsV2FybmluZykpCiAg
ICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgbG9nKGNoYW5uZWwsIGZvcm1hdCwgYXJndW1l
bnRzLi4uKTsKKyAgICAgICAgbG9nKGNoYW5uZWwsIGFyZ3VtZW50cy4uLik7CiAgICAgfQogCiAg
ICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJndW1lbnRzPgotICAgIGlubGluZSB2b2lkIG5vdGlj
ZShXVEZMb2dDaGFubmVsJiBjaGFubmVsLCBjb25zdCBjaGFyKiBmb3JtYXQsIGNvbnN0IEFyZ3Vt
ZW50cyYuLi4gYXJndW1lbnRzKSBjb25zdCBXVEZfQVRUUklCVVRFX1BSSU5URigzLCAwKQorICAg
IGlubGluZSB2b2lkIG5vdGljZShXVEZMb2dDaGFubmVsJiBjaGFubmVsLCBjb25zdCBBcmd1bWVu
dHMmLi4uIGFyZ3VtZW50cykKICAgICB7CiAgICAgICAgIGlmICghd2lsbExvZyhjaGFubmVsLCBX
VEZMb2dMZXZlbE5vdGljZSkpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgbG9nKGNo
YW5uZWwsIGZvcm1hdCwgYXJndW1lbnRzLi4uKTsKKyAgICAgICAgbG9nKGNoYW5uZWwsIGFyZ3Vt
ZW50cy4uLik7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJndW1lbnRzPgot
ICAgIGlubGluZSB2b2lkIGluZm8oV1RGTG9nQ2hhbm5lbCYgY2hhbm5lbCwgY29uc3QgY2hhciog
Zm9ybWF0LCBjb25zdCBBcmd1bWVudHMmLi4uIGFyZ3VtZW50cykgY29uc3QgV1RGX0FUVFJJQlVU
RV9QUklOVEYoMywgMCkKKyAgICBpbmxpbmUgdm9pZCBpbmZvKFdURkxvZ0NoYW5uZWwmIGNoYW5u
ZWwsIGNvbnN0IEFyZ3VtZW50cyYuLi4gYXJndW1lbnRzKQogICAgIHsKICAgICAgICAgaWYgKCF3
aWxsTG9nKGNoYW5uZWwsIFdURkxvZ0xldmVsSW5mbykpCiAgICAgICAgICAgICByZXR1cm47CiAK
LSAgICAgICAgbG9nKGNoYW5uZWwsIGZvcm1hdCwgYXJndW1lbnRzLi4uKTsKKyAgICAgICAgbG9n
KGNoYW5uZWwsIGFyZ3VtZW50cy4uLik7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUu
Li4gQXJndW1lbnRzPgotICAgIGlubGluZSB2b2lkIGRlYnVnKFdURkxvZ0NoYW5uZWwmIGNoYW5u
ZWwsIGNvbnN0IGNoYXIqIGZvcm1hdCwgY29uc3QgQXJndW1lbnRzJi4uLiBhcmd1bWVudHMpIGNv
bnN0IFdURl9BVFRSSUJVVEVfUFJJTlRGKDMsIDApCisgICAgaW5saW5lIHZvaWQgZGVidWcoV1RG
TG9nQ2hhbm5lbCYgY2hhbm5lbCwgY29uc3QgQXJndW1lbnRzJi4uLiBhcmd1bWVudHMpCiAgICAg
ewogICAgICAgICBpZiAoIXdpbGxMb2coY2hhbm5lbCwgV1RGTG9nTGV2ZWxEZWJ1ZykpCiAgICAg
ICAgICAgICByZXR1cm47CiAKLSAgICAgICAgbG9nKGNoYW5uZWwsIGZvcm1hdCwgYXJndW1lbnRz
Li4uKTsKKyAgICAgICAgbG9nKGNoYW5uZWwsIGFyZ3VtZW50cy4uLik7CiAgICAgfQogCiAgICAg
aW5saW5lIGJvb2wgd2lsbExvZyhXVEZMb2dDaGFubmVsJiBjaGFubmVsLCBXVEZMb2dMZXZlbCBs
ZXZlbCkgY29uc3QKQEAgLTEyMSwzNSArMTMxLDQ4IEBAIHB1YmxpYzoKICAgICAgICAgICAgIG1f
ZW5hYmxlZCA9IGVuYWJsZWQ7CiAgICAgfQogCisgICAgc3RydWN0IE1ldGhvZEFuZFBvaW50ZXIg
eworICAgICAgICBNZXRob2RBbmRQb2ludGVyKGNvbnN0IGNoYXIqIG1ldGhvZE5hbWUsIHZvaWQq
IG9iamVjdFB0cikKKyAgICAgICAgICAgIDogbWV0aG9kTmFtZShtZXRob2ROYW1lKQorICAgICAg
ICAgICAgLCBvYmplY3RQdHIocmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KG9iamVjdFB0cikp
CisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnN0IGNoYXIqIG1ldGhvZE5hbWU7
CisgICAgICAgIHVpbnRwdHJfdCBvYmplY3RQdHI7CisgICAgfTsKKwogcHJpdmF0ZToKICAgICBM
b2dnZXIoY29uc3Qgdm9pZCogb3duZXIpIHsgbV9vd25lciA9IG93bmVyOyB9CiAKLSAgICBzdGF0
aWMgaW5saW5lIHZvaWQgbG9nKFdURkxvZ0NoYW5uZWwmIGNoYW5uZWwsIGNvbnN0IGNoYXIqIGZv
cm1hdCwgLi4uKQorICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3VtZW50PgorICAgIHN0YXRp
YyBpbmxpbmUgdm9pZCBsb2coV1RGTG9nQ2hhbm5lbCYgY2hhbm5lbCwgY29uc3QgQXJndW1lbnQm
Li4uIGFyZ3VtZW50cykKICAgICB7Ci0gICAgICAgIHZhX2xpc3QgYXJndW1lbnRzOwotICAgICAg
ICB2YV9zdGFydChhcmd1bWVudHMsIGZvcm1hdCk7Ci0KLSNpZiBDT01QSUxFUihHQ0NfT1JfQ0xB
TkcpCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdmb3JtYXQtbm9ubGl0ZXJhbCIKLSNlbmRpZgotICAgICAgICBTdHJpbmcgc3Ry
aW5nID0gU3RyaW5nOjpmb3JtYXRXaXRoQXJndW1lbnRzKGZvcm1hdCwgYXJndW1lbnRzKTsKLSNp
ZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAotI2Vu
ZGlmCisgICAgICAgIFN0cmluZyBzdHJpbmcgPSBtYWtlU3RyaW5nKExvZ0FyZ3VtZW50PEFyZ3Vt
ZW50Pjo6dG9TdHJpbmcoYXJndW1lbnRzKS4uLik7CiAKICNpZiBSRUxFQVNFX0xPR19ESVNBQkxF
RAogICAgICAgICBXVEZMb2coJmNoYW5uZWwsICIlcyIsIHN0cmluZy51dGY4KCkuZGF0YSgpKTsK
ICNlbHNlCiAgICAgICAgIG9zX2xvZyhjaGFubmVsLm9zTG9nQ2hhbm5lbCwgIiV7cHVibGljfXMi
LCBzdHJpbmcudXRmOCgpLmRhdGEoKSk7CiAjZW5kaWYKLQotICAgICAgICB2YV9lbmQoYXJndW1l
bnRzKTsKICAgICB9CiAKICAgICBjb25zdCB2b2lkKiBtX293bmVyOwogICAgIGJvb2wgbV9lbmFi
bGVkIHsgdHJ1ZSB9OwogfTsKIAordGVtcGxhdGUgPD4KK3N0cnVjdCBMb2dBcmd1bWVudDxMb2dn
ZXI6Ok1ldGhvZEFuZFBvaW50ZXI+IHsKKyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0
IExvZ2dlcjo6TWV0aG9kQW5kUG9pbnRlciYgdmFsdWUpCisgICAgeworICAgICAgICBTdHJpbmdC
dWlsZGVyIGJ1aWxkZXI7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHZhbHVlLm1ldGhvZE5hbWUp
OworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIigweCIpOworICAgICAgICBhcHBlbmRV
bnNpZ25lZDY0QXNIZXgodmFsdWUub2JqZWN0UHRyLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRl
ci5hcHBlbmRMaXRlcmFsKCIpIik7CisgICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7
CisgICAgfQorfTsKKwogfSAvLyBuYW1lc3BhY2UgUEFMCiAKSW5kZXg6IFRvb2xzL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyMTI3MSkKKysrIFRv
b2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDE3LTA4LTI4
ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIExvZ2dl
ciBzaG91bGQgdXNlIG1ha2VTdHJpbmcgaW5zdGVhZCBvZiBTdHJpbmc6OmZvcm1hdAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MDM1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvTG9nZ2luZy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNU
X0YpOiBVcGRhdGUgdGVzdC4KKwogMjAxNy0wOC0yOCAgTXMyZ2VyICA8TXMyZ2VyQGdtYWlsLmNv
bT4KIAogICAgICAgICBFbnN1cmUgdGhhdCB0aGUgYWxlcnQgZnVuY3Rpb24gaXMgY2FsbGVkIGlu
IFRlc3RXZWJFeHRlbnNpb25zLgpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL0xvZ2dpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9Mb2dnaW5nLmNwcAkocmV2aXNpb24gMjIxMjU2KQorKysgVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL0xvZ2dpbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjcsOSAr
MjY3LDggQEAgVEVTVF9GKExvZ2dpbmdUZXN0LCBMb2dnZXIpCiAgICAgRVhQRUNUX1RSVUUobG9n
Z2VyLT5lbmFibGVkKCkpOwogCiAgICAgV1RGU2V0TG9nQ2hhbm5lbExldmVsKCZUZXN0Q2hhbm5l
bDEsIFdURkxvZ0xldmVsRXJyb3IpOwotICAgIGxvZ2dlci0+ZXJyb3IoVGVzdENoYW5uZWwxLCAi
JXMgJXMiLCAiV2hhdCwiLCAicmlkZGVuIG9uIGEgaG9yc2U/Iik7Ci0gICAgRVhQRUNUX1RSVUUo
b3V0cHV0KCkuY29udGFpbnMoIldoYXQsIHJpZGRlbiBvbiBhIGhvcnNlPyIsIGZhbHNlKSk7Ci0K
KyAgICBsb2dnZXItPmVycm9yKFRlc3RDaGFubmVsMSwgIllvdSdyZSB1c2luZyBjb2NvbnV0cyEi
KTsKKyAgICBFWFBFQ1RfVFJVRShvdXRwdXQoKS5jb250YWlucygiWW91J3JlIHVzaW5nIGNvY29u
dXRzISIsIGZhbHNlKSk7CiAgICAgbG9nZ2VyLT53YXJuaW5nKFRlc3RDaGFubmVsMSwgIllvdSdy
ZSB1c2luZyBjb2NvbnV0cyEiKTsKICAgICBFWFBFQ1RfRVEoMHUsIG91dHB1dCgpLmxlbmd0aCgp
KTsKICAgICBsb2dnZXItPm5vdGljZShUZXN0Q2hhbm5lbDEsICJZb3UncmUgdXNpbmcgY29jb251
dHMhIik7CkBAIC0yNzksNiArMjc4LDE1IEBAIFRFU1RfRihMb2dnaW5nVGVzdCwgTG9nZ2VyKQog
ICAgIGxvZ2dlci0+ZGVidWcoVGVzdENoYW5uZWwxLCAiWW91J3JlIHVzaW5nIGNvY29udXRzISIp
OwogICAgIEVYUEVDVF9FUSgwdSwgb3V0cHV0KCkubGVuZ3RoKCkpOwogCisgICAgbG9nZ2VyLT5l
cnJvcihUZXN0Q2hhbm5lbDEsIExvZ2dlcjo6TWV0aG9kQW5kUG9pbnRlcigiTG9nZ2luZ1Rlc3Q6
OkxvZ2dlciIsIHRoaXMpICwgIjogdGVzdCBvdXRwdXQiKTsKKyAgICBFWFBFQ1RfVFJVRShvdXRw
dXQoKS5jb250YWlucygiTG9nZ2luZ1Rlc3Q6OkxvZ2dlcigiLCBmYWxzZSkpOworCisgICAgbG9n
Z2VyLT5lcnJvcihUZXN0Q2hhbm5lbDEsICJXaGF0IGlzICIsIDEsICIgKyAiICwgMTIuNUYsICI/
Iik7CisgICAgRVhQRUNUX1RSVUUob3V0cHV0KCkuY29udGFpbnMoIldoYXQgaXMgMSArIDEyLjU/
IiwgZmFsc2UpKTsKKworICAgIGxvZ2dlci0+ZXJyb3IoVGVzdENoYW5uZWwxLCAiV2hhdCwgIiwg
InJpZGRlbiBvbiBhIGhvcnNlPyIpOworICAgIEVYUEVDVF9UUlVFKG91dHB1dCgpLmNvbnRhaW5z
KCJXaGF0LCByaWRkZW4gb24gYSBob3JzZT8iLCBmYWxzZSkpOworCiAgICAgbG9nZ2VyLT5zZXRF
bmFibGVkKHRoaXMsIGZhbHNlKTsKICAgICBFWFBFQ1RfRkFMU0UobG9nZ2VyLT5lbmFibGVkKCkp
OwogICAgIGxvZ2dlci0+ZXJyb3IoVGVzdENoYW5uZWwxLCAiWW91J3ZlIGdvdCB0d28gZW1wdHkg
aGFsdmVzIG9mIGNvY29udXRzIik7CkBAIC0yODYsMTEgKzI5NCwxMSBAQCBURVNUX0YoTG9nZ2lu
Z1Rlc3QsIExvZ2dlcikKIAogICAgIGxvZ2dlci0+c2V0RW5hYmxlZCh0aGlzLCB0cnVlKTsKICAg
ICBFWFBFQ1RfVFJVRShsb2dnZXItPmVuYWJsZWQoKSk7Ci0gICAgbG9nZ2VyLT5lcnJvcihUZXN0
Q2hhbm5lbDEsICIlcyAlcyIsICJZb3UndmUgZ290IHR3byBlbXB0eSBoYWx2ZXMgb2YiLCAiY29j
b251dHMhIik7Ci0gICAgRVhQRUNUX1RSVUUob3V0cHV0KCkuY29udGFpbnMoIllvdSd2ZSBnb3Qg
dHdvIGVtcHR5IGhhbHZlcyBvZiBjb2NvbnV0cyEiLCBmYWxzZSkpOworICAgIGxvZ2dlci0+ZXJy
b3IoVGVzdENoYW5uZWwxLCAiWW91J3ZlIGdvdCAiLCAyLCAiIGVtcHR5IGhhbHZlcyBvZiAiLCAi
Y29jb251dHMhIik7CisgICAgRVhQRUNUX1RSVUUob3V0cHV0KCkuY29udGFpbnMoIllvdSd2ZSBn
b3QgMiBlbXB0eSBoYWx2ZXMgb2YgY29jb251dHMhIiwgZmFsc2UpKTsKIAogICAgIFdURlNldExv
Z0NoYW5uZWxMZXZlbCgmVGVzdENoYW5uZWwxLCBXVEZMb2dMZXZlbEVycm9yKTsKLSAgICBsb2dn
ZXItPmxvZ0Fsd2F5cyhUZXN0Q2hhbm5lbDEsICIlcyIsICJJIHNoYWxsIHRhdW50IHlvdSBhIHNl
Y29uZCB0aW1lISIpOworICAgIGxvZ2dlci0+bG9nQWx3YXlzKFRlc3RDaGFubmVsMSwgIkkgc2hh
bGwgdGF1bnQgeW91IGEgc2Vjb25kIHRpbWUhIik7CiAgICAgRVhQRUNUX1RSVUUob3V0cHV0KCku
Y29udGFpbnMoIkkgc2hhbGwgdGF1bnQgeW91IGEgc2Vjb25kIHRpbWUhIiwgZmFsc2UpKTsKIAog
ICAgIGxvZ2dlci0+c2V0RW5hYmxlZCh0aGlzLCBmYWxzZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319212</attachid>
            <date>2017-08-28 14:54:12 -0700</date>
            <delta_ts>2017-08-28 16:05:24 -0700</delta_ts>
            <desc>Proposed patch.</desc>
            <filename>use_make_string_patch_2.txt</filename>
            <type>text/plain</type>
            <size>10519</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvUEFML0NoYW5nZUxvZwkocmV2aXNpb24gMjIxMjU2KQorKysgU291cmNlL1dlYkNv
cmUvUEFML0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDE3LTA4
LTI4ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIExv
Z2dlciBzaG91bGQgdXNlIG1ha2VTdHJpbmcgaW5zdGVhZCBvZiBTdHJpbmc6OmZvcm1hdAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MDM1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwYWwvTG9nZ2Vy
Lmg6CisgICAgICAgIChQQUw6OkxvZ0FyZ3VtZW50Ojp0b1N0cmluZyk6CisgICAgICAgIChQQUw6
OkxvZ2dlcjo6bG9nQWx3YXlzKToKKyAgICAgICAgKFBBTDo6TG9nZ2VyOjplcnJvcik6CisgICAg
ICAgIChQQUw6OkxvZ2dlcjo6d2FybmluZyk6CisgICAgICAgIChQQUw6OkxvZ2dlcjo6bm90aWNl
KToKKyAgICAgICAgKFBBTDo6TG9nZ2VyOjppbmZvKToKKyAgICAgICAgKFBBTDo6TG9nZ2VyOjpk
ZWJ1Zyk6CisgICAgICAgIChQQUw6OkxvZ2dlcjo6TWV0aG9kQW5kUG9pbnRlcjo6TWV0aG9kQW5k
UG9pbnRlcik6CisgICAgICAgIChQQUw6OkxvZ2dlcjo6bG9nKToKKyAgICAgICAgKFBBTDo6TG9n
QXJndW1lbnQ8TG9nZ2VyOjpNZXRob2RBbmRQb2ludGVyPjo6dG9TdHJpbmcpOgorCiAyMDE3LTA4
LTI1ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIEFk
ZCBMb2dnZXI6OmxvZ0Fsd2F5cwpJbmRleDogU291cmNlL1dlYkNvcmUvUEFML3BhbC9Mb2dnZXIu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL0xvZ2dlci5oCShyZXZpc2lv
biAyMjEyNTYpCisrKyBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL0xvZ2dlci5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yMCwxOSArMjAsMzEgQEAKICAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKICAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAogI3ByYWdtYSBv
bmNlCiAKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi9IZXhOdW1i
ZXIuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdCdWlsZGVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFj
ZSBQQUwgewogCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorc3RydWN0IExvZ0FyZ3VtZW50IHsKKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBVID0gVD4gc3RhdGljIHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lm
PHN0ZDo6aXNfc2FtZTxVLCBpbnQ+Ojp2YWx1ZSwgU3RyaW5nPjo6dHlwZSB0b1N0cmluZyhpbnQg
YXJndW1lbnQpIHsgcmV0dXJuIFN0cmluZzo6bnVtYmVyKGFyZ3VtZW50KTsgfQorICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFUgPSBUPiBzdGF0aWMgdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8c3RkOjpp
c19zYW1lPFUsIGZsb2F0Pjo6dmFsdWUsIFN0cmluZz46OnR5cGUgdG9TdHJpbmcoZmxvYXQgYXJn
dW1lbnQpIHsgcmV0dXJuIFN0cmluZzo6bnVtYmVyKGFyZ3VtZW50KTsgfQorICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFUgPSBUPiBzdGF0aWMgdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8c3RkOjppc19z
YW1lPFUsIGRvdWJsZT46OnZhbHVlLCBTdHJpbmc+Ojp0eXBlIHRvU3RyaW5nKGRvdWJsZSBhcmd1
bWVudCkgeyByZXR1cm4gU3RyaW5nOjpudW1iZXIoYXJndW1lbnQpOyB9CisgICAgdGVtcGxhdGU8
dHlwZW5hbWUgVSA9IFQ+IHN0YXRpYyB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZjxzdGQ6OmlzX3Nh
bWU8VSwgU3RyaW5nPjo6dmFsdWUsIFN0cmluZz46OnR5cGUgdG9TdHJpbmcoU3RyaW5nIGFyZ3Vt
ZW50KSB7IHJldHVybiBhcmd1bWVudDsgfQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFUgPSBUPiBz
dGF0aWMgdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8c3RkOjppc19zYW1lPFUsIGNvbnN0IGNoYXIq
Pjo6dmFsdWUsIFN0cmluZz46OnR5cGUgdG9TdHJpbmcoY29uc3QgY2hhciogYXJndW1lbnQpIHsg
cmV0dXJuIFN0cmluZyhhcmd1bWVudCk7IH0KKyAgICB0ZW1wbGF0ZTxzaXplX3QgbGVuZ3RoPiBz
dGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IGNoYXIgKCZhcmd1bWVudClbbGVuZ3RoXSkgeyBy
ZXR1cm4gU3RyaW5nKGFyZ3VtZW50KTsgfQorfTsKKwogY2xhc3MgTG9nZ2VyIDogcHVibGljIFJl
ZkNvdW50ZWQ8TG9nZ2VyPiB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTG9nZ2VyKTsKIHB1
YmxpYzoKQEAgLTQyLDY0ICs1NCw2MyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgdGVtcGxhdGU8
dHlwZW5hbWUuLi4gQXJndW1lbnRzPgotICAgIGlubGluZSB2b2lkIGxvZ0Fsd2F5cyhXVEZMb2dD
aGFubmVsJiBjaGFubmVsLCBjb25zdCBjaGFyKiBmb3JtYXQsIGNvbnN0IEFyZ3VtZW50cyYuLi4g
YXJndW1lbnRzKSBjb25zdCBXVEZfQVRUUklCVVRFX1BSSU5URigzLCAwKQorICAgIGlubGluZSB2
b2lkIGxvZ0Fsd2F5cyhXVEZMb2dDaGFubmVsJiBjaGFubmVsLCBjb25zdCBBcmd1bWVudHMmLi4u
IGFyZ3VtZW50cykKICAgICB7CiAjaWYgUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICAgICAgLy8g
IlN0YW5kYXJkIiBXZWJDb3JlIGxvZ2dpbmcgZ29lcyB0byBzdGRlcnIsIHdoaWNoIGlzIGNhcHR1
cmVkIGluIGxheW91dCB0ZXN0IG91dHB1dCBhbmQgY2FuIGdlbmVyYWxseSBiZSBhIHByb2JsZW0K
ICAgICAgICAgLy8gIG9uIHNvbWUgc3lzdGVtcywgc28gZG9uJ3QgYWxsb3cgaXQuCiAgICAgICAg
IFVOVVNFRF9QQVJBTShjaGFubmVsKTsKLSAgICAgICAgVU5VU0VEX1BBUkFNKGZvcm1hdCk7CiAj
ZWxzZQogICAgICAgICBpZiAoIXdpbGxMb2coY2hhbm5lbCwgV1RGTG9nTGV2ZWxBbHdheXMpKQog
ICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGxvZyhjaGFubmVsLCBmb3JtYXQsIGFyZ3Vt
ZW50cy4uLik7CisgICAgICAgIGxvZyhjaGFubmVsLCBhcmd1bWVudHMuLi4pOwogI2VuZGlmCiAg
ICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJndW1lbnRzPgotICAgIGlubGluZSB2
b2lkIGVycm9yKFdURkxvZ0NoYW5uZWwmIGNoYW5uZWwsIGNvbnN0IGNoYXIqIGZvcm1hdCwgY29u
c3QgQXJndW1lbnRzJi4uLiBhcmd1bWVudHMpIGNvbnN0IFdURl9BVFRSSUJVVEVfUFJJTlRGKDMs
IDApCisgICAgaW5saW5lIHZvaWQgZXJyb3IoV1RGTG9nQ2hhbm5lbCYgY2hhbm5lbCwgY29uc3Qg
QXJndW1lbnRzJi4uLiBhcmd1bWVudHMpCiAgICAgewogICAgICAgICBpZiAoIXdpbGxMb2coY2hh
bm5lbCwgV1RGTG9nTGV2ZWxFcnJvcikpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAg
bG9nKGNoYW5uZWwsIGZvcm1hdCwgYXJndW1lbnRzLi4uKTsKKyAgICAgICAgbG9nKGNoYW5uZWws
IGFyZ3VtZW50cy4uLik7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJndW1l
bnRzPgotICAgIGlubGluZSB2b2lkIHdhcm5pbmcoV1RGTG9nQ2hhbm5lbCYgY2hhbm5lbCwgY29u
c3QgY2hhciogZm9ybWF0LCBjb25zdCBBcmd1bWVudHMmLi4uIGFyZ3VtZW50cykgY29uc3QgV1RG
X0FUVFJJQlVURV9QUklOVEYoMywgMCkKKyAgICBpbmxpbmUgdm9pZCB3YXJuaW5nKFdURkxvZ0No
YW5uZWwmIGNoYW5uZWwsIGNvbnN0IEFyZ3VtZW50cyYuLi4gYXJndW1lbnRzKQogICAgIHsKICAg
ICAgICAgaWYgKCF3aWxsTG9nKGNoYW5uZWwsIFdURkxvZ0xldmVsV2FybmluZykpCiAgICAgICAg
ICAgICByZXR1cm47CiAKLSAgICAgICAgbG9nKGNoYW5uZWwsIGZvcm1hdCwgYXJndW1lbnRzLi4u
KTsKKyAgICAgICAgbG9nKGNoYW5uZWwsIGFyZ3VtZW50cy4uLik7CiAgICAgfQogCiAgICAgdGVt
cGxhdGU8dHlwZW5hbWUuLi4gQXJndW1lbnRzPgotICAgIGlubGluZSB2b2lkIG5vdGljZShXVEZM
b2dDaGFubmVsJiBjaGFubmVsLCBjb25zdCBjaGFyKiBmb3JtYXQsIGNvbnN0IEFyZ3VtZW50cyYu
Li4gYXJndW1lbnRzKSBjb25zdCBXVEZfQVRUUklCVVRFX1BSSU5URigzLCAwKQorICAgIGlubGlu
ZSB2b2lkIG5vdGljZShXVEZMb2dDaGFubmVsJiBjaGFubmVsLCBjb25zdCBBcmd1bWVudHMmLi4u
IGFyZ3VtZW50cykKICAgICB7CiAgICAgICAgIGlmICghd2lsbExvZyhjaGFubmVsLCBXVEZMb2dM
ZXZlbE5vdGljZSkpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgbG9nKGNoYW5uZWws
IGZvcm1hdCwgYXJndW1lbnRzLi4uKTsKKyAgICAgICAgbG9nKGNoYW5uZWwsIGFyZ3VtZW50cy4u
Lik7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJndW1lbnRzPgotICAgIGlu
bGluZSB2b2lkIGluZm8oV1RGTG9nQ2hhbm5lbCYgY2hhbm5lbCwgY29uc3QgY2hhciogZm9ybWF0
LCBjb25zdCBBcmd1bWVudHMmLi4uIGFyZ3VtZW50cykgY29uc3QgV1RGX0FUVFJJQlVURV9QUklO
VEYoMywgMCkKKyAgICBpbmxpbmUgdm9pZCBpbmZvKFdURkxvZ0NoYW5uZWwmIGNoYW5uZWwsIGNv
bnN0IEFyZ3VtZW50cyYuLi4gYXJndW1lbnRzKQogICAgIHsKICAgICAgICAgaWYgKCF3aWxsTG9n
KGNoYW5uZWwsIFdURkxvZ0xldmVsSW5mbykpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAg
ICAgbG9nKGNoYW5uZWwsIGZvcm1hdCwgYXJndW1lbnRzLi4uKTsKKyAgICAgICAgbG9nKGNoYW5u
ZWwsIGFyZ3VtZW50cy4uLik7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJn
dW1lbnRzPgotICAgIGlubGluZSB2b2lkIGRlYnVnKFdURkxvZ0NoYW5uZWwmIGNoYW5uZWwsIGNv
bnN0IGNoYXIqIGZvcm1hdCwgY29uc3QgQXJndW1lbnRzJi4uLiBhcmd1bWVudHMpIGNvbnN0IFdU
Rl9BVFRSSUJVVEVfUFJJTlRGKDMsIDApCisgICAgaW5saW5lIHZvaWQgZGVidWcoV1RGTG9nQ2hh
bm5lbCYgY2hhbm5lbCwgY29uc3QgQXJndW1lbnRzJi4uLiBhcmd1bWVudHMpCiAgICAgewogICAg
ICAgICBpZiAoIXdpbGxMb2coY2hhbm5lbCwgV1RGTG9nTGV2ZWxEZWJ1ZykpCiAgICAgICAgICAg
ICByZXR1cm47CiAKLSAgICAgICAgbG9nKGNoYW5uZWwsIGZvcm1hdCwgYXJndW1lbnRzLi4uKTsK
KyAgICAgICAgbG9nKGNoYW5uZWwsIGFyZ3VtZW50cy4uLik7CiAgICAgfQogCiAgICAgaW5saW5l
IGJvb2wgd2lsbExvZyhXVEZMb2dDaGFubmVsJiBjaGFubmVsLCBXVEZMb2dMZXZlbCBsZXZlbCkg
Y29uc3QKQEAgLTEyMSwzNSArMTMyLDQ4IEBAIHB1YmxpYzoKICAgICAgICAgICAgIG1fZW5hYmxl
ZCA9IGVuYWJsZWQ7CiAgICAgfQogCisgICAgc3RydWN0IE1ldGhvZEFuZFBvaW50ZXIgeworICAg
ICAgICBNZXRob2RBbmRQb2ludGVyKGNvbnN0IGNoYXIqIG1ldGhvZE5hbWUsIHZvaWQqIG9iamVj
dFB0cikKKyAgICAgICAgICAgIDogbWV0aG9kTmFtZShtZXRob2ROYW1lKQorICAgICAgICAgICAg
LCBvYmplY3RQdHIocmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KG9iamVjdFB0cikpCisgICAg
ICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnN0IGNoYXIqIG1ldGhvZE5hbWU7CisgICAg
ICAgIHVpbnRwdHJfdCBvYmplY3RQdHI7CisgICAgfTsKKwogcHJpdmF0ZToKICAgICBMb2dnZXIo
Y29uc3Qgdm9pZCogb3duZXIpIHsgbV9vd25lciA9IG93bmVyOyB9CiAKLSAgICBzdGF0aWMgaW5s
aW5lIHZvaWQgbG9nKFdURkxvZ0NoYW5uZWwmIGNoYW5uZWwsIGNvbnN0IGNoYXIqIGZvcm1hdCwg
Li4uKQorICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3VtZW50PgorICAgIHN0YXRpYyBpbmxp
bmUgdm9pZCBsb2coV1RGTG9nQ2hhbm5lbCYgY2hhbm5lbCwgY29uc3QgQXJndW1lbnQmLi4uIGFy
Z3VtZW50cykKICAgICB7Ci0gICAgICAgIHZhX2xpc3QgYXJndW1lbnRzOwotICAgICAgICB2YV9z
dGFydChhcmd1bWVudHMsIGZvcm1hdCk7Ci0KLSNpZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCi0j
cHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdmb3JtYXQtbm9ubGl0ZXJhbCIKLSNlbmRpZgotICAgICAgICBTdHJpbmcgc3RyaW5nID0g
U3RyaW5nOjpmb3JtYXRXaXRoQXJndW1lbnRzKGZvcm1hdCwgYXJndW1lbnRzKTsKLSNpZiBDT01Q
SUxFUihHQ0NfT1JfQ0xBTkcpCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCisg
ICAgICAgIFN0cmluZyBzdHJpbmcgPSBtYWtlU3RyaW5nKExvZ0FyZ3VtZW50PEFyZ3VtZW50Pjo6
dG9TdHJpbmcoYXJndW1lbnRzKS4uLik7CiAKICNpZiBSRUxFQVNFX0xPR19ESVNBQkxFRAogICAg
ICAgICBXVEZMb2coJmNoYW5uZWwsICIlcyIsIHN0cmluZy51dGY4KCkuZGF0YSgpKTsKICNlbHNl
CiAgICAgICAgIG9zX2xvZyhjaGFubmVsLm9zTG9nQ2hhbm5lbCwgIiV7cHVibGljfXMiLCBzdHJp
bmcudXRmOCgpLmRhdGEoKSk7CiAjZW5kaWYKLQotICAgICAgICB2YV9lbmQoYXJndW1lbnRzKTsK
ICAgICB9CiAKICAgICBjb25zdCB2b2lkKiBtX293bmVyOwogICAgIGJvb2wgbV9lbmFibGVkIHsg
dHJ1ZSB9OwogfTsKIAordGVtcGxhdGUgPD4KK3N0cnVjdCBMb2dBcmd1bWVudDxMb2dnZXI6Ok1l
dGhvZEFuZFBvaW50ZXI+IHsKKyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IExvZ2dl
cjo6TWV0aG9kQW5kUG9pbnRlciYgdmFsdWUpCisgICAgeworICAgICAgICBTdHJpbmdCdWlsZGVy
IGJ1aWxkZXI7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHZhbHVlLm1ldGhvZE5hbWUpOworICAg
ICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIigweCIpOworICAgICAgICBhcHBlbmRVbnNpZ25l
ZDY0QXNIZXgodmFsdWUub2JqZWN0UHRyLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBl
bmRMaXRlcmFsKCIpIik7CisgICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAg
fQorfTsKKwogfSAvLyBuYW1lc3BhY2UgUEFMCiAKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyMTI3MSkKKysrIFRvb2xzL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDE3LTA4LTI4ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIExvZ2dlciBzaG91
bGQgdXNlIG1ha2VTdHJpbmcgaW5zdGVhZCBvZiBTdHJpbmc6OmZvcm1hdAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MDM1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvTG9nZ2luZy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOiBV
cGRhdGUgdGVzdC4KKwogMjAxNy0wOC0yOCAgTXMyZ2VyICA8TXMyZ2VyQGdtYWlsLmNvbT4KIAog
ICAgICAgICBFbnN1cmUgdGhhdCB0aGUgYWxlcnQgZnVuY3Rpb24gaXMgY2FsbGVkIGluIFRlc3RX
ZWJFeHRlbnNpb25zLgpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0xv
Z2dpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9Mb2dnaW5nLmNwcAkocmV2aXNpb24gMjIxMjU2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL0xvZ2dpbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjcsOSArMjY3LDgg
QEAgVEVTVF9GKExvZ2dpbmdUZXN0LCBMb2dnZXIpCiAgICAgRVhQRUNUX1RSVUUobG9nZ2VyLT5l
bmFibGVkKCkpOwogCiAgICAgV1RGU2V0TG9nQ2hhbm5lbExldmVsKCZUZXN0Q2hhbm5lbDEsIFdU
RkxvZ0xldmVsRXJyb3IpOwotICAgIGxvZ2dlci0+ZXJyb3IoVGVzdENoYW5uZWwxLCAiJXMgJXMi
LCAiV2hhdCwiLCAicmlkZGVuIG9uIGEgaG9yc2U/Iik7Ci0gICAgRVhQRUNUX1RSVUUob3V0cHV0
KCkuY29udGFpbnMoIldoYXQsIHJpZGRlbiBvbiBhIGhvcnNlPyIsIGZhbHNlKSk7Ci0KKyAgICBs
b2dnZXItPmVycm9yKFRlc3RDaGFubmVsMSwgIllvdSdyZSB1c2luZyBjb2NvbnV0cyEiKTsKKyAg
ICBFWFBFQ1RfVFJVRShvdXRwdXQoKS5jb250YWlucygiWW91J3JlIHVzaW5nIGNvY29udXRzISIs
IGZhbHNlKSk7CiAgICAgbG9nZ2VyLT53YXJuaW5nKFRlc3RDaGFubmVsMSwgIllvdSdyZSB1c2lu
ZyBjb2NvbnV0cyEiKTsKICAgICBFWFBFQ1RfRVEoMHUsIG91dHB1dCgpLmxlbmd0aCgpKTsKICAg
ICBsb2dnZXItPm5vdGljZShUZXN0Q2hhbm5lbDEsICJZb3UncmUgdXNpbmcgY29jb251dHMhIik7
CkBAIC0yNzksNiArMjc4LDE1IEBAIFRFU1RfRihMb2dnaW5nVGVzdCwgTG9nZ2VyKQogICAgIGxv
Z2dlci0+ZGVidWcoVGVzdENoYW5uZWwxLCAiWW91J3JlIHVzaW5nIGNvY29udXRzISIpOwogICAg
IEVYUEVDVF9FUSgwdSwgb3V0cHV0KCkubGVuZ3RoKCkpOwogCisgICAgbG9nZ2VyLT5lcnJvcihU
ZXN0Q2hhbm5lbDEsIExvZ2dlcjo6TWV0aG9kQW5kUG9pbnRlcigiTG9nZ2luZ1Rlc3Q6OkxvZ2dl
ciIsIHRoaXMpICwgIjogdGVzdCBvdXRwdXQiKTsKKyAgICBFWFBFQ1RfVFJVRShvdXRwdXQoKS5j
b250YWlucygiTG9nZ2luZ1Rlc3Q6OkxvZ2dlcigiLCBmYWxzZSkpOworCisgICAgbG9nZ2VyLT5l
cnJvcihUZXN0Q2hhbm5lbDEsICJXaGF0IGlzICIsIDEsICIgKyAiICwgMTIuNUYsICI/Iik7Cisg
ICAgRVhQRUNUX1RSVUUob3V0cHV0KCkuY29udGFpbnMoIldoYXQgaXMgMSArIDEyLjU/IiwgZmFs
c2UpKTsKKworICAgIGxvZ2dlci0+ZXJyb3IoVGVzdENoYW5uZWwxLCAiV2hhdCwgIiwgInJpZGRl
biBvbiBhIGhvcnNlPyIpOworICAgIEVYUEVDVF9UUlVFKG91dHB1dCgpLmNvbnRhaW5zKCJXaGF0
LCByaWRkZW4gb24gYSBob3JzZT8iLCBmYWxzZSkpOworCiAgICAgbG9nZ2VyLT5zZXRFbmFibGVk
KHRoaXMsIGZhbHNlKTsKICAgICBFWFBFQ1RfRkFMU0UobG9nZ2VyLT5lbmFibGVkKCkpOwogICAg
IGxvZ2dlci0+ZXJyb3IoVGVzdENoYW5uZWwxLCAiWW91J3ZlIGdvdCB0d28gZW1wdHkgaGFsdmVz
IG9mIGNvY29udXRzIik7CkBAIC0yODYsMTEgKzI5NCwxMSBAQCBURVNUX0YoTG9nZ2luZ1Rlc3Qs
IExvZ2dlcikKIAogICAgIGxvZ2dlci0+c2V0RW5hYmxlZCh0aGlzLCB0cnVlKTsKICAgICBFWFBF
Q1RfVFJVRShsb2dnZXItPmVuYWJsZWQoKSk7Ci0gICAgbG9nZ2VyLT5lcnJvcihUZXN0Q2hhbm5l
bDEsICIlcyAlcyIsICJZb3UndmUgZ290IHR3byBlbXB0eSBoYWx2ZXMgb2YiLCAiY29jb251dHMh
Iik7Ci0gICAgRVhQRUNUX1RSVUUob3V0cHV0KCkuY29udGFpbnMoIllvdSd2ZSBnb3QgdHdvIGVt
cHR5IGhhbHZlcyBvZiBjb2NvbnV0cyEiLCBmYWxzZSkpOworICAgIGxvZ2dlci0+ZXJyb3IoVGVz
dENoYW5uZWwxLCAiWW91J3ZlIGdvdCAiLCAyLCAiIGVtcHR5IGhhbHZlcyBvZiAiLCAiY29jb251
dHMhIik7CisgICAgRVhQRUNUX1RSVUUob3V0cHV0KCkuY29udGFpbnMoIllvdSd2ZSBnb3QgMiBl
bXB0eSBoYWx2ZXMgb2YgY29jb251dHMhIiwgZmFsc2UpKTsKIAogICAgIFdURlNldExvZ0NoYW5u
ZWxMZXZlbCgmVGVzdENoYW5uZWwxLCBXVEZMb2dMZXZlbEVycm9yKTsKLSAgICBsb2dnZXItPmxv
Z0Fsd2F5cyhUZXN0Q2hhbm5lbDEsICIlcyIsICJJIHNoYWxsIHRhdW50IHlvdSBhIHNlY29uZCB0
aW1lISIpOworICAgIGxvZ2dlci0+bG9nQWx3YXlzKFRlc3RDaGFubmVsMSwgIkkgc2hhbGwgdGF1
bnQgeW91IGEgc2Vjb25kIHRpbWUhIik7CiAgICAgRVhQRUNUX1RSVUUob3V0cHV0KCkuY29udGFp
bnMoIkkgc2hhbGwgdGF1bnQgeW91IGEgc2Vjb25kIHRpbWUhIiwgZmFsc2UpKTsKIAogICAgIGxv
Z2dlci0+c2V0RW5hYmxlZCh0aGlzLCBmYWxzZSk7Cg==
</data>
<flag name="review"
          id="339525"
          type_id="1"
          status="+"
          setter="jer.noble"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319227</attachid>
            <date>2017-08-28 19:04:29 -0700</date>
            <delta_ts>2017-08-28 19:59:22 -0700</delta_ts>
            <desc>Patch for landing.</desc>
            <filename>use_make_string_patch_3.txt</filename>
            <type>text/plain</type>
            <size>10510</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvUEFML0NoYW5nZUxvZwkocmV2aXNpb24gMjIxMjU3KQorKysgU291cmNlL1dlYkNv
cmUvUEFML0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDE3LTA4
LTI4ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIExv
Z2dlciBzaG91bGQgdXNlIG1ha2VTdHJpbmcgaW5zdGVhZCBvZiBTdHJpbmc6OmZvcm1hdAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MDM1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgSmVyIE5vYmxlLgorCisgICAgICAgICogcGFsL0xvZ2dlci5oOgor
ICAgICAgICAoUEFMOjpMb2dBcmd1bWVudDo6dG9TdHJpbmcpOgorICAgICAgICAoUEFMOjpMb2dn
ZXI6OmxvZ0Fsd2F5cyk6CisgICAgICAgIChQQUw6OkxvZ2dlcjo6ZXJyb3IpOgorICAgICAgICAo
UEFMOjpMb2dnZXI6Ondhcm5pbmcpOgorICAgICAgICAoUEFMOjpMb2dnZXI6Om5vdGljZSk6Cisg
ICAgICAgIChQQUw6OkxvZ2dlcjo6aW5mbyk6CisgICAgICAgIChQQUw6OkxvZ2dlcjo6ZGVidWcp
OgorICAgICAgICAoUEFMOjpMb2dnZXI6Ok1ldGhvZEFuZFBvaW50ZXI6Ok1ldGhvZEFuZFBvaW50
ZXIpOgorICAgICAgICAoUEFMOjpMb2dnZXI6OmxvZyk6CisgICAgICAgIChQQUw6OkxvZ0FyZ3Vt
ZW50PExvZ2dlcjo6TWV0aG9kQW5kUG9pbnRlcj46OnRvU3RyaW5nKToKKwogMjAxNy0wOC0yNSAg
RXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgTG9n
Z2VyOjpsb2dBbHdheXMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvTG9nZ2VyLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvUEFML3BhbC9Mb2dnZXIuaAkocmV2aXNpb24gMjIx
MjU3KQorKysgU291cmNlL1dlYkNvcmUvUEFML3BhbC9Mb2dnZXIuaAkod29ya2luZyBjb3B5KQpA
QCAtMjAsMTkgKzIwLDMxIEBACiAgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCiAgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKICAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKICNwcmFnbWEgb25jZQog
CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvSGV4TnVtYmVyLmg+
CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVp
bGRlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgUEFM
IHsKIAordGVtcGxhdGU8dHlwZW5hbWUgVD4KK3N0cnVjdCBMb2dBcmd1bWVudCB7CisgICAgdGVt
cGxhdGU8dHlwZW5hbWUgVSA9IFQ+IHN0YXRpYyB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZjxzdGQ6
OmlzX3NhbWU8VSwgaW50Pjo6dmFsdWUsIFN0cmluZz46OnR5cGUgdG9TdHJpbmcoaW50IGFyZ3Vt
ZW50KSB7IHJldHVybiBTdHJpbmc6Om51bWJlcihhcmd1bWVudCk7IH0KKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBVID0gVD4gc3RhdGljIHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmPHN0ZDo6aXNfc2Ft
ZTxVLCBmbG9hdD46OnZhbHVlLCBTdHJpbmc+Ojp0eXBlIHRvU3RyaW5nKGZsb2F0IGFyZ3VtZW50
KSB7IHJldHVybiBTdHJpbmc6Om51bWJlcihhcmd1bWVudCk7IH0KKyAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBVID0gVD4gc3RhdGljIHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmPHN0ZDo6aXNfc2FtZTxV
LCBkb3VibGU+Ojp2YWx1ZSwgU3RyaW5nPjo6dHlwZSB0b1N0cmluZyhkb3VibGUgYXJndW1lbnQp
IHsgcmV0dXJuIFN0cmluZzo6bnVtYmVyKGFyZ3VtZW50KTsgfQorICAgIHRlbXBsYXRlPHR5cGVu
YW1lIFUgPSBUPiBzdGF0aWMgdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8c3RkOjppc19zYW1lPFUs
IFN0cmluZz46OnZhbHVlLCBTdHJpbmc+Ojp0eXBlIHRvU3RyaW5nKFN0cmluZyBhcmd1bWVudCkg
eyByZXR1cm4gYXJndW1lbnQ7IH0KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVID0gVD4gc3RhdGlj
IHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmPHN0ZDo6aXNfc2FtZTxVLCBjb25zdCBjaGFyKj46OnZh
bHVlLCBTdHJpbmc+Ojp0eXBlIHRvU3RyaW5nKGNvbnN0IGNoYXIqIGFyZ3VtZW50KSB7IHJldHVy
biBTdHJpbmcoYXJndW1lbnQpOyB9CisgICAgdGVtcGxhdGU8c2l6ZV90IGxlbmd0aD4gc3RhdGlj
IFN0cmluZyB0b1N0cmluZyhjb25zdCBjaGFyICgmYXJndW1lbnQpW2xlbmd0aF0pIHsgcmV0dXJu
IFN0cmluZyhhcmd1bWVudCk7IH0KK307CisKIGNsYXNzIExvZ2dlciA6IHB1YmxpYyBSZWZDb3Vu
dGVkPExvZ2dlcj4gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKExvZ2dlcik7CiBwdWJsaWM6
CkBAIC00Miw2NCArNTQsNjMgQEAgcHVibGljOgogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVu
YW1lLi4uIEFyZ3VtZW50cz4KLSAgICBpbmxpbmUgdm9pZCBsb2dBbHdheXMoV1RGTG9nQ2hhbm5l
bCYgY2hhbm5lbCwgY29uc3QgY2hhciogZm9ybWF0LCBjb25zdCBBcmd1bWVudHMmLi4uIGFyZ3Vt
ZW50cykgY29uc3QgV1RGX0FUVFJJQlVURV9QUklOVEYoMywgMCkKKyAgICBpbmxpbmUgdm9pZCBs
b2dBbHdheXMoV1RGTG9nQ2hhbm5lbCYgY2hhbm5lbCwgY29uc3QgQXJndW1lbnRzJi4uLiBhcmd1
bWVudHMpCiAgICAgewogI2lmIFJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgICAgIC8vICJTdGFu
ZGFyZCIgV2ViQ29yZSBsb2dnaW5nIGdvZXMgdG8gc3RkZXJyLCB3aGljaCBpcyBjYXB0dXJlZCBp
biBsYXlvdXQgdGVzdCBvdXRwdXQgYW5kIGNhbiBnZW5lcmFsbHkgYmUgYSBwcm9ibGVtCiAgICAg
ICAgIC8vICBvbiBzb21lIHN5c3RlbXMsIHNvIGRvbid0IGFsbG93IGl0LgogICAgICAgICBVTlVT
RURfUEFSQU0oY2hhbm5lbCk7Ci0gICAgICAgIFVOVVNFRF9QQVJBTShmb3JtYXQpOwogI2Vsc2UK
ICAgICAgICAgaWYgKCF3aWxsTG9nKGNoYW5uZWwsIFdURkxvZ0xldmVsQWx3YXlzKSkKICAgICAg
ICAgICAgIHJldHVybjsKIAotICAgICAgICBsb2coY2hhbm5lbCwgZm9ybWF0LCBhcmd1bWVudHMu
Li4pOworICAgICAgICBsb2coY2hhbm5lbCwgYXJndW1lbnRzLi4uKTsKICNlbmRpZgogICAgIH0K
IAogICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KLSAgICBpbmxpbmUgdm9pZCBl
cnJvcihXVEZMb2dDaGFubmVsJiBjaGFubmVsLCBjb25zdCBjaGFyKiBmb3JtYXQsIGNvbnN0IEFy
Z3VtZW50cyYuLi4gYXJndW1lbnRzKSBjb25zdCBXVEZfQVRUUklCVVRFX1BSSU5URigzLCAwKQor
ICAgIGlubGluZSB2b2lkIGVycm9yKFdURkxvZ0NoYW5uZWwmIGNoYW5uZWwsIGNvbnN0IEFyZ3Vt
ZW50cyYuLi4gYXJndW1lbnRzKQogICAgIHsKICAgICAgICAgaWYgKCF3aWxsTG9nKGNoYW5uZWws
IFdURkxvZ0xldmVsRXJyb3IpKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGxvZyhj
aGFubmVsLCBmb3JtYXQsIGFyZ3VtZW50cy4uLik7CisgICAgICAgIGxvZyhjaGFubmVsLCBhcmd1
bWVudHMuLi4pOwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4K
LSAgICBpbmxpbmUgdm9pZCB3YXJuaW5nKFdURkxvZ0NoYW5uZWwmIGNoYW5uZWwsIGNvbnN0IGNo
YXIqIGZvcm1hdCwgY29uc3QgQXJndW1lbnRzJi4uLiBhcmd1bWVudHMpIGNvbnN0IFdURl9BVFRS
SUJVVEVfUFJJTlRGKDMsIDApCisgICAgaW5saW5lIHZvaWQgd2FybmluZyhXVEZMb2dDaGFubmVs
JiBjaGFubmVsLCBjb25zdCBBcmd1bWVudHMmLi4uIGFyZ3VtZW50cykKICAgICB7CiAgICAgICAg
IGlmICghd2lsbExvZyhjaGFubmVsLCBXVEZMb2dMZXZlbFdhcm5pbmcpKQogICAgICAgICAgICAg
cmV0dXJuOwogCi0gICAgICAgIGxvZyhjaGFubmVsLCBmb3JtYXQsIGFyZ3VtZW50cy4uLik7Cisg
ICAgICAgIGxvZyhjaGFubmVsLCBhcmd1bWVudHMuLi4pOwogICAgIH0KIAogICAgIHRlbXBsYXRl
PHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KLSAgICBpbmxpbmUgdm9pZCBub3RpY2UoV1RGTG9nQ2hh
bm5lbCYgY2hhbm5lbCwgY29uc3QgY2hhciogZm9ybWF0LCBjb25zdCBBcmd1bWVudHMmLi4uIGFy
Z3VtZW50cykgY29uc3QgV1RGX0FUVFJJQlVURV9QUklOVEYoMywgMCkKKyAgICBpbmxpbmUgdm9p
ZCBub3RpY2UoV1RGTG9nQ2hhbm5lbCYgY2hhbm5lbCwgY29uc3QgQXJndW1lbnRzJi4uLiBhcmd1
bWVudHMpCiAgICAgewogICAgICAgICBpZiAoIXdpbGxMb2coY2hhbm5lbCwgV1RGTG9nTGV2ZWxO
b3RpY2UpKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGxvZyhjaGFubmVsLCBmb3Jt
YXQsIGFyZ3VtZW50cy4uLik7CisgICAgICAgIGxvZyhjaGFubmVsLCBhcmd1bWVudHMuLi4pOwog
ICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KLSAgICBpbmxpbmUg
dm9pZCBpbmZvKFdURkxvZ0NoYW5uZWwmIGNoYW5uZWwsIGNvbnN0IGNoYXIqIGZvcm1hdCwgY29u
c3QgQXJndW1lbnRzJi4uLiBhcmd1bWVudHMpIGNvbnN0IFdURl9BVFRSSUJVVEVfUFJJTlRGKDMs
IDApCisgICAgaW5saW5lIHZvaWQgaW5mbyhXVEZMb2dDaGFubmVsJiBjaGFubmVsLCBjb25zdCBB
cmd1bWVudHMmLi4uIGFyZ3VtZW50cykKICAgICB7CiAgICAgICAgIGlmICghd2lsbExvZyhjaGFu
bmVsLCBXVEZMb2dMZXZlbEluZm8pKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGxv
ZyhjaGFubmVsLCBmb3JtYXQsIGFyZ3VtZW50cy4uLik7CisgICAgICAgIGxvZyhjaGFubmVsLCBh
cmd1bWVudHMuLi4pOwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3VtZW50
cz4KLSAgICBpbmxpbmUgdm9pZCBkZWJ1ZyhXVEZMb2dDaGFubmVsJiBjaGFubmVsLCBjb25zdCBj
aGFyKiBmb3JtYXQsIGNvbnN0IEFyZ3VtZW50cyYuLi4gYXJndW1lbnRzKSBjb25zdCBXVEZfQVRU
UklCVVRFX1BSSU5URigzLCAwKQorICAgIGlubGluZSB2b2lkIGRlYnVnKFdURkxvZ0NoYW5uZWwm
IGNoYW5uZWwsIGNvbnN0IEFyZ3VtZW50cyYuLi4gYXJndW1lbnRzKQogICAgIHsKICAgICAgICAg
aWYgKCF3aWxsTG9nKGNoYW5uZWwsIFdURkxvZ0xldmVsRGVidWcpKQogICAgICAgICAgICAgcmV0
dXJuOwogCi0gICAgICAgIGxvZyhjaGFubmVsLCBmb3JtYXQsIGFyZ3VtZW50cy4uLik7CisgICAg
ICAgIGxvZyhjaGFubmVsLCBhcmd1bWVudHMuLi4pOwogICAgIH0KIAogICAgIGlubGluZSBib29s
IHdpbGxMb2coV1RGTG9nQ2hhbm5lbCYgY2hhbm5lbCwgV1RGTG9nTGV2ZWwgbGV2ZWwpIGNvbnN0
CkBAIC0xMjEsMzUgKzEzMiw0OCBAQCBwdWJsaWM6CiAgICAgICAgICAgICBtX2VuYWJsZWQgPSBl
bmFibGVkOwogICAgIH0KIAorICAgIHN0cnVjdCBNZXRob2RBbmRQb2ludGVyIHsKKyAgICAgICAg
TWV0aG9kQW5kUG9pbnRlcihjb25zdCBjaGFyKiBtZXRob2ROYW1lLCB2b2lkKiBvYmplY3RQdHIp
CisgICAgICAgICAgICA6IG1ldGhvZE5hbWUobWV0aG9kTmFtZSkKKyAgICAgICAgICAgICwgb2Jq
ZWN0UHRyKHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihvYmplY3RQdHIpKQorICAgICAgICB7
CisgICAgICAgIH0KKworICAgICAgICBjb25zdCBjaGFyKiBtZXRob2ROYW1lOworICAgICAgICB1
aW50cHRyX3Qgb2JqZWN0UHRyOworICAgIH07CisKIHByaXZhdGU6CiAgICAgTG9nZ2VyKGNvbnN0
IHZvaWQqIG93bmVyKSB7IG1fb3duZXIgPSBvd25lcjsgfQogCi0gICAgc3RhdGljIGlubGluZSB2
b2lkIGxvZyhXVEZMb2dDaGFubmVsJiBjaGFubmVsLCBjb25zdCBjaGFyKiBmb3JtYXQsIC4uLikK
KyAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVudD4KKyAgICBzdGF0aWMgaW5saW5lIHZv
aWQgbG9nKFdURkxvZ0NoYW5uZWwmIGNoYW5uZWwsIGNvbnN0IEFyZ3VtZW50Ji4uLiBhcmd1bWVu
dHMpCiAgICAgewotICAgICAgICB2YV9saXN0IGFyZ3VtZW50czsKLSAgICAgICAgdmFfc3RhcnQo
YXJndW1lbnRzLCBmb3JtYXQpOwotCi0jaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdt
YSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
Zm9ybWF0LW5vbmxpdGVyYWwiCi0jZW5kaWYKLSAgICAgICAgU3RyaW5nIHN0cmluZyA9IFN0cmlu
Zzo6Zm9ybWF0V2l0aEFyZ3VtZW50cyhmb3JtYXQsIGFyZ3VtZW50cyk7Ci0jaWYgQ09NUElMRVIo
R0NDX09SX0NMQU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorICAgICAg
ICBTdHJpbmcgc3RyaW5nID0gbWFrZVN0cmluZyhMb2dBcmd1bWVudDxBcmd1bWVudD46OnRvU3Ry
aW5nKGFyZ3VtZW50cykuLi4pOwogCiAjaWYgUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICAgICAg
V1RGTG9nKCZjaGFubmVsLCAiJXMiLCBzdHJpbmcudXRmOCgpLmRhdGEoKSk7CiAjZWxzZQogICAg
ICAgICBvc19sb2coY2hhbm5lbC5vc0xvZ0NoYW5uZWwsICIle3B1YmxpY31zIiwgc3RyaW5nLnV0
ZjgoKS5kYXRhKCkpOwogI2VuZGlmCi0KLSAgICAgICAgdmFfZW5kKGFyZ3VtZW50cyk7CiAgICAg
fQogCiAgICAgY29uc3Qgdm9pZCogbV9vd25lcjsKICAgICBib29sIG1fZW5hYmxlZCB7IHRydWUg
fTsKIH07CiAKK3RlbXBsYXRlIDw+CitzdHJ1Y3QgTG9nQXJndW1lbnQ8TG9nZ2VyOjpNZXRob2RB
bmRQb2ludGVyPiB7CisgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBMb2dnZXI6Ok1l
dGhvZEFuZFBvaW50ZXImIHZhbHVlKQorICAgIHsKKyAgICAgICAgU3RyaW5nQnVpbGRlciBidWls
ZGVyOworICAgICAgICBidWlsZGVyLmFwcGVuZCh2YWx1ZS5tZXRob2ROYW1lKTsKKyAgICAgICAg
YnVpbGRlci5hcHBlbmRMaXRlcmFsKCIoMHgiKTsKKyAgICAgICAgYXBwZW5kVW5zaWduZWQ2NEFz
SGV4KHZhbHVlLm9iamVjdFB0ciwgYnVpbGRlcik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0
ZXJhbCgiKSAiKTsKKyAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICB9Cit9
OworCiB9IC8vIG5hbWVzcGFjZSBQQUwKIApJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjIxMjU3KQorKysgVG9vbHMvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTctMDgtMjggIEVyaWMgQ2Fy
bHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgTG9nZ2VyIHNob3VsZCB1
c2UgbWFrZVN0cmluZyBpbnN0ZWFkIG9mIFN0cmluZzo6Zm9ybWF0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYwMzUKKworICAgICAgICBSZXZpZXdl
ZCBieSBKZXIgTm9ibGUuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
TG9nZ2luZy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOiBVcGRhdGUgdGVz
dC4KKwogMjAxNy0wOC0yOCAgTXMyZ2VyICA8TXMyZ2VyQGdtYWlsLmNvbT4KIAogICAgICAgICBF
bnN1cmUgdGhhdCB0aGUgYWxlcnQgZnVuY3Rpb24gaXMgY2FsbGVkIGluIFRlc3RXZWJFeHRlbnNp
b25zLgpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0xvZ2dpbmcuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Mb2dnaW5n
LmNwcAkocmV2aXNpb24gMjIxMjU3KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL0xvZ2dpbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjcsOSArMjY3LDggQEAgVEVTVF9G
KExvZ2dpbmdUZXN0LCBMb2dnZXIpCiAgICAgRVhQRUNUX1RSVUUobG9nZ2VyLT5lbmFibGVkKCkp
OwogCiAgICAgV1RGU2V0TG9nQ2hhbm5lbExldmVsKCZUZXN0Q2hhbm5lbDEsIFdURkxvZ0xldmVs
RXJyb3IpOwotICAgIGxvZ2dlci0+ZXJyb3IoVGVzdENoYW5uZWwxLCAiJXMgJXMiLCAiV2hhdCwi
LCAicmlkZGVuIG9uIGEgaG9yc2U/Iik7Ci0gICAgRVhQRUNUX1RSVUUob3V0cHV0KCkuY29udGFp
bnMoIldoYXQsIHJpZGRlbiBvbiBhIGhvcnNlPyIsIGZhbHNlKSk7Ci0KKyAgICBsb2dnZXItPmVy
cm9yKFRlc3RDaGFubmVsMSwgIllvdSdyZSB1c2luZyBjb2NvbnV0cyEiKTsKKyAgICBFWFBFQ1Rf
VFJVRShvdXRwdXQoKS5jb250YWlucygiWW91J3JlIHVzaW5nIGNvY29udXRzISIsIGZhbHNlKSk7
CiAgICAgbG9nZ2VyLT53YXJuaW5nKFRlc3RDaGFubmVsMSwgIllvdSdyZSB1c2luZyBjb2NvbnV0
cyEiKTsKICAgICBFWFBFQ1RfRVEoMHUsIG91dHB1dCgpLmxlbmd0aCgpKTsKICAgICBsb2dnZXIt
Pm5vdGljZShUZXN0Q2hhbm5lbDEsICJZb3UncmUgdXNpbmcgY29jb251dHMhIik7CkBAIC0yNzks
NiArMjc4LDE1IEBAIFRFU1RfRihMb2dnaW5nVGVzdCwgTG9nZ2VyKQogICAgIGxvZ2dlci0+ZGVi
dWcoVGVzdENoYW5uZWwxLCAiWW91J3JlIHVzaW5nIGNvY29udXRzISIpOwogICAgIEVYUEVDVF9F
USgwdSwgb3V0cHV0KCkubGVuZ3RoKCkpOwogCisgICAgbG9nZ2VyLT5lcnJvcihUZXN0Q2hhbm5l
bDEsIExvZ2dlcjo6TWV0aG9kQW5kUG9pbnRlcigiTG9nZ2luZ1Rlc3Q6OkxvZ2dlciIsIHRoaXMp
ICwgIjogdGVzdCBvdXRwdXQiKTsKKyAgICBFWFBFQ1RfVFJVRShvdXRwdXQoKS5jb250YWlucygi
TG9nZ2luZ1Rlc3Q6OkxvZ2dlcigiLCBmYWxzZSkpOworCisgICAgbG9nZ2VyLT5lcnJvcihUZXN0
Q2hhbm5lbDEsICJXaGF0IGlzICIsIDEsICIgKyAiICwgMTIuNUYsICI/Iik7CisgICAgRVhQRUNU
X1RSVUUob3V0cHV0KCkuY29udGFpbnMoIldoYXQgaXMgMSArIDEyLjU/IiwgZmFsc2UpKTsKKwor
ICAgIGxvZ2dlci0+ZXJyb3IoVGVzdENoYW5uZWwxLCAiV2hhdCwgIiwgInJpZGRlbiBvbiBhIGhv
cnNlPyIpOworICAgIEVYUEVDVF9UUlVFKG91dHB1dCgpLmNvbnRhaW5zKCJXaGF0LCByaWRkZW4g
b24gYSBob3JzZT8iLCBmYWxzZSkpOworCiAgICAgbG9nZ2VyLT5zZXRFbmFibGVkKHRoaXMsIGZh
bHNlKTsKICAgICBFWFBFQ1RfRkFMU0UobG9nZ2VyLT5lbmFibGVkKCkpOwogICAgIGxvZ2dlci0+
ZXJyb3IoVGVzdENoYW5uZWwxLCAiWW91J3ZlIGdvdCB0d28gZW1wdHkgaGFsdmVzIG9mIGNvY29u
dXRzIik7CkBAIC0yODYsMTEgKzI5NCwxMSBAQCBURVNUX0YoTG9nZ2luZ1Rlc3QsIExvZ2dlcikK
IAogICAgIGxvZ2dlci0+c2V0RW5hYmxlZCh0aGlzLCB0cnVlKTsKICAgICBFWFBFQ1RfVFJVRShs
b2dnZXItPmVuYWJsZWQoKSk7Ci0gICAgbG9nZ2VyLT5lcnJvcihUZXN0Q2hhbm5lbDEsICIlcyAl
cyIsICJZb3UndmUgZ290IHR3byBlbXB0eSBoYWx2ZXMgb2YiLCAiY29jb251dHMhIik7Ci0gICAg
RVhQRUNUX1RSVUUob3V0cHV0KCkuY29udGFpbnMoIllvdSd2ZSBnb3QgdHdvIGVtcHR5IGhhbHZl
cyBvZiBjb2NvbnV0cyEiLCBmYWxzZSkpOworICAgIGxvZ2dlci0+ZXJyb3IoVGVzdENoYW5uZWwx
LCAiWW91J3ZlIGdvdCAiLCAyLCAiIGVtcHR5IGhhbHZlcyBvZiAiLCAiY29jb251dHMhIik7Cisg
ICAgRVhQRUNUX1RSVUUob3V0cHV0KCkuY29udGFpbnMoIllvdSd2ZSBnb3QgMiBlbXB0eSBoYWx2
ZXMgb2YgY29jb251dHMhIiwgZmFsc2UpKTsKIAogICAgIFdURlNldExvZ0NoYW5uZWxMZXZlbCgm
VGVzdENoYW5uZWwxLCBXVEZMb2dMZXZlbEVycm9yKTsKLSAgICBsb2dnZXItPmxvZ0Fsd2F5cyhU
ZXN0Q2hhbm5lbDEsICIlcyIsICJJIHNoYWxsIHRhdW50IHlvdSBhIHNlY29uZCB0aW1lISIpOwor
ICAgIGxvZ2dlci0+bG9nQWx3YXlzKFRlc3RDaGFubmVsMSwgIkkgc2hhbGwgdGF1bnQgeW91IGEg
c2Vjb25kIHRpbWUhIik7CiAgICAgRVhQRUNUX1RSVUUob3V0cHV0KCkuY29udGFpbnMoIkkgc2hh
bGwgdGF1bnQgeW91IGEgc2Vjb25kIHRpbWUhIiwgZmFsc2UpKTsKIAogICAgIGxvZ2dlci0+c2V0
RW5hYmxlZCh0aGlzLCBmYWxzZSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>