<?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>182455</bug_id>
          
          <creation_ts>2018-02-02 16:53:03 -0800</creation_ts>
          <short_desc>Improve NetworkResourceLoader logging so it can be used for &apos;setCookiesFromDOM&apos;</short_desc>
          <delta_ts>2018-02-05 12:03:50 -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>WebKit Misc.</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="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wilander</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1396061</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-02-02 16:53:03 -0800</bug_when>
    <thetext>The diagnostic logging code handles cookies set by resource loads, but it doesn&apos;t log activity generated in script.

This patch revises the NetworkResourceLoader logging code so that it can be used for the &apos;setCookiesFromDOM&apos; case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396062</commentid>
    <comment_count>1</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-02-02 16:53:25 -0800</bug_when>
    <thetext>&lt;rdar://problem/36626601&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396070</commentid>
    <comment_count>2</comment_count>
      <attachid>333020</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-02-02 17:14:27 -0800</bug_when>
    <thetext>Created attachment 333020
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396373</commentid>
    <comment_count>3</comment_count>
      <attachid>333093</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-02-05 10:29:12 -0800</bug_when>
    <thetext>Created attachment 333093
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396378</commentid>
    <comment_count>4</comment_count>
      <attachid>333093</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-02-05 10:32:57 -0800</bug_when>
    <thetext>Comment on attachment 333093
Patch

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

r=me with comment

&gt; Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp:713
&gt; +bool NetworkResourceLoader::shouldLogCookieInformation()

Why did you drop the const? Seems like a method that should be const.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396386</commentid>
    <comment_count>5</comment_count>
      <attachid>333095</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-02-05 10:41:25 -0800</bug_when>
    <thetext>Created attachment 333095
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396388</commentid>
    <comment_count>6</comment_count>
      <attachid>333093</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-02-05 10:42:02 -0800</bug_when>
    <thetext>Comment on attachment 333093
Patch

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

&gt;&gt; Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp:713
&gt;&gt; +bool NetworkResourceLoader::shouldLogCookieInformation()
&gt; 
&gt; Why did you drop the const? Seems like a method that should be const.

I made this a static method on the object, so it cannot be const anymore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396389</commentid>
    <comment_count>7</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-02-05 10:42:34 -0800</bug_when>
    <thetext>Note: The patch failed to build on iOS because the new logging was not guarded by the RELEASE_LOG_DISABLED macro. I&apos;ve fixed that in the patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396452</commentid>
    <comment_count>8</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-02-05 12:03:50 -0800</bug_when>
    <thetext>Committed r228111: &lt;https://trac.webkit.org/changeset/228111&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>333020</attachid>
            <date>2018-02-02 17:14:27 -0800</date>
            <delta_ts>2018-02-05 10:29:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-182455-20180202171426.patch</filename>
            <type>text/plain</type>
            <size>16927</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyODAzNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDE4LTAyLTAyICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIEltcHJvdmUgTmV0d29ya1Jl
c291cmNlTG9hZGVyIGxvZ2dpbmcgc28gaXQgY2FuIGJlIHVzZWQgZm9yICdzZXRDb29raWVzRnJv
bURPTScKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4
MjQ1NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzY2MjY2MDE+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWZ0ZXIgdGhpcyByZWZhY3RvcmluZywg
YSBjb252ZW5pZW5jZSBtZXRob2QgSSBhZGRlZCBpbiByMjI3ODYwIGlzIG5vIGxvbmdlciBuZWVk
ZWQuCisgICAgICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyB0aGlzIGRlYWQgY29kZS4KKworICAgICAg
ICAqIHBsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg6IEV4cG9ydCAnY29v
a2llU3RvcmFnZVBhcnRpdGlvbicgc28gaXQgY2FuCisgICAgICAgIGJlIHVzZWQgaW4gV2ViS2l0
LgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ0ZO
ZXQuY3BwOiAKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6aGFzU3Rv
cmFnZUFjY2Vzc0ZvckZyYW1lKTogRGVsZXRlZCB1bnVzZWQgbWV0aG9kLgorCiAyMDE4LTAyLTAy
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBDbGVhcmluZyBh
bGwgc2VydmljZSB3b3JrZXIgcmVnaXN0cmF0aW9ucyBzaG91bGQgd2FpdCBmb3IgaW1wb3J0aW5n
IHNlcnZpY2Ugd29ya2VyIHJlZ2lzdHJhdGlvbiB0byBmaW5pc2gKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24u
aAkocmV2aXNpb24gMjI3OTkxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9O
ZXR3b3JrU3RvcmFnZVNlc3Npb24uaAkod29ya2luZyBjb3B5KQpAQCAtMTAxLDExICsxMDEsMTAg
QEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBjb29raWVTdG9yYWdlUGFydGl0
aW9uKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1l
SUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCkgY29uc3Q7CiAgICAgV0VCQ09SRV9F
WFBPUlQgYm9vbCBzaG91bGRCbG9ja0Nvb2tpZXMoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JikgY29u
c3Q7CiAgICAgYm9vbCBzaG91bGRCbG9ja0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5Rm9y
Q29va2llcywgY29uc3QgVVJMJiByZXNvdXJjZSkgY29uc3Q7Ci0gICAgU3RyaW5nIGNvb2tpZVN0
b3JhZ2VQYXJ0aXRpb24oY29uc3QgVVJMJiBmaXJzdFBhcnR5Rm9yQ29va2llcywgY29uc3QgVVJM
JiByZXNvdXJjZSwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgc3RkOjpvcHRpb25h
bDx1aW50NjRfdD4gcGFnZUlEKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgY29v
a2llU3RvcmFnZVBhcnRpdGlvbihjb25zdCBVUkwmIGZpcnN0UGFydHlGb3JDb29raWVzLCBjb25z
dCBVUkwmIHJlc291cmNlLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBzdGQ6Om9w
dGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
c2V0UHJldmFsZW50RG9tYWluc1RvUGFydGl0aW9uT3JCbG9ja0Nvb2tpZXMoY29uc3QgVmVjdG9y
PFN0cmluZz4mIGRvbWFpbnNUb1BhcnRpdGlvbiwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGRvbWFp
bnNUb0Jsb2NrLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9tYWluc1RvTmVpdGhlclBhcnRpdGlv
bk5vckJsb2NrLCBib29sIGNsZWFyRmlyc3QpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVt
b3ZlUHJldmFsZW50RG9tYWlucyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9tYWlucyk7CiAgICAg
V0VCQ09SRV9FWFBPUlQgYm9vbCBoYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWUoY29uc3QgU3RyaW5n
JiByZXNvdXJjZURvbWFpbiwgY29uc3QgU3RyaW5nJiBmaXJzdFBhcnR5RG9tYWluLCB1aW50NjRf
dCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQpIGNvbnN0OwotICAgIFdFQkNPUkVfRVhQT1JUIGJv
b2wgaGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIHVpbnQ2
NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBncmFudFN0b3JhZ2VBY2Nlc3NGb3JGcmFtZShjb25zdCBTdHJpbmcmIHJlc291cmNlRG9t
YWluLCBjb25zdCBTdHJpbmcmIGZpcnN0UGFydHlEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIHVp
bnQ2NF90IHBhZ2VJRCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVTdG9yYWdlQWNj
ZXNzRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgcGFnZUlEKTsKICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JBbGxGcmFtZXNPblBhZ2UodWlu
dDY0X3QgcGFnZUlEKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2Yv
TmV0d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXQuY3BwCShy
ZXZpc2lvbiAyMjc5OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL05l
dHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjk2LDE0ICsy
OTYsNiBAQCBib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6aGFzU3RvcmFnZUFjCiAgICAgcmV0
dXJuIGl0Mi0+dmFsdWUgPT0gcmVzb3VyY2VEb21haW47CiB9CiAKLWJvb2wgTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uOjpoYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWUoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQpIGNvbnN0Ci17Ci0g
ICAgaWYgKCFjb29raWVTdG9yYWdlUGFydGl0aW9uaW5nRW5hYmxlZCkKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotCi0gICAgcmV0dXJuIGhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZShnZXRQYXJ0aXRp
b25pbmdEb21haW4ocmVxdWVzdC51cmwoKSksIGdldFBhcnRpdGlvbmluZ0RvbWFpbihyZXF1ZXN0
LmZpcnN0UGFydHlGb3JDb29raWVzKCkpLCBmcmFtZUlELCBwYWdlSUQpOwotfQotCiB2b2lkIE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z3JhbnRTdG9yYWdlQWNjZXNzRm9yRnJhbWUoY29uc3QgU3Ry
aW5nJiByZXNvdXJjZURvbWFpbiwgY29uc3QgU3RyaW5nJiBmaXJzdFBhcnR5RG9tYWluLCB1aW50
NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGZpcnN0
UGFydHlEb21haW4pOwpJbmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyNzk5MSkKKysrIFNvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTgtMDIt
MDIgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wcm92
ZSBOZXR3b3JrUmVzb3VyY2VMb2FkZXIgbG9nZ2luZyBzbyBpdCBjYW4gYmUgdXNlZCBmb3IgJ3Nl
dENvb2tpZXNGcm9tRE9NJworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTgyNDU1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNjYyNjYwMT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWZhY3RvciAibG9n
Q29va2llSW5mb3JtYXRpb24iIHNvIHRoYXQgaXQgY2FuIGJlIHVzZWQgZm9yIHJlc291cmNlIGxv
YWRzIGFuZCBET00gY29va2llCisgICAgICAgIG1hbmlwdWxhdGlvbi4gUGxhY2UgdGhlIGdlbmVy
YWxseSB1c2VmdWwgbG9naWMgaW4gYSBzdGF0aWMgbWV0aG9kIHRoYXQgY2FuIGJlIGludm9rZWQK
KyAgICAgICAgZnJvbSBvdGhlciBwbGFjZXMgaW4gdGhlIE5ldHdvcmtQcm9jZXNzLgorCisgICAg
ICAgIENhbGwgdGhlIG5ldyByZWZhY3RvcmVkIG1ldGhvZCBmcm9tIE5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpzZXRDb29raWVzRnJvbURPTSBzbworICAgICAgICB3ZSBjYW4gcGVyZm9y
bSBsb2dnaW5nIHRoZXJlIGFzIHdlbGwuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRDb29raWVzRnJvbURPTSk6IENhbGwgdGhlIG5ldyBs
b2dnaW5nIG1ldGhvZAorICAgICAgICAod2hlbiBlbmFibGVkKS4KKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUmVzb3VyY2VMb2FkZXI6OnNob3VsZExvZ0Nvb2tpZUluZm9ybWF0aW9uKTogQ2hhbmdlZCB0
byBzdGF0aWMgbWV0aG9kLgorICAgICAgICAoV2ViS2l0Ojplc2NhcGVGb3JKU09OKTogTWFkZSBh
IHN0YXRpYyBmdW5jdGlvbiBzbyBpdCBjb3VsZCBiZSBzaGFyZWQgYmV0d2VlbiBtdWx0aXBsZQor
ICAgICAgICBtZXRob2RzLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6
OmxvZ0Nvb2tpZUluZm9ybWF0aW9uIGNvbnN0KTogUmVmYWN0b3IgaW50byB0d28gbWV0aG9kcy4K
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpsb2dDb29raWVJbmZvcm1h
dGlvbik6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnNo
b3VsZExvZ0Nvb2tpZUluZm9ybWF0aW9uIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaDoKKwogMjAxOC0wMi0wMSAgQnJlbnQg
RnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXByb3ZlIE5ldHdvcmtS
ZXNvdXJjZUxvZ2dlciB0byByZXBvcnQgYmxvY2tlZCAodmVyc3VzIG5vbi1wYXJ0aXRpb25lZCkg
Y29va2llcwpJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAJKHJldmlzaW9uIDIyNzk5
MSkKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMi0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQyLDcgKzM0MiwxNCBAQCB2b2lkIE5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29rCiAKIHZvaWQgTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OnNldENvb2tpZXNGcm9tRE9NKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCwgc3RkOjpvcHRpb25hbDx1
aW50NjRfdD4gZnJhbWVJRCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gcGFnZUlELCBjb25zdCBT
dHJpbmcmIGNvb2tpZVN0cmluZykKIHsKLSAgICBXZWJDb3JlOjpzZXRDb29raWVzRnJvbURPTShz
dG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpLCBmaXJzdFBhcnR5LCB1cmwsIGZyYW1lSUQsIHBhZ2VJ
RCwgY29va2llU3RyaW5nKTsKKyAgICBhdXRvJiBuZXR3b3JrU3RvcmFnZVNlc3Npb24gPSBzdG9y
YWdlU2Vzc2lvbihzZXNzaW9uSUQpOworICAgIFdlYkNvcmU6OnNldENvb2tpZXNGcm9tRE9NKG5l
dHdvcmtTdG9yYWdlU2Vzc2lvbiwgZmlyc3RQYXJ0eSwgdXJsLCBmcmFtZUlELCBwYWdlSUQsIGNv
b2tpZVN0cmluZyk7CisjaWYgSEFWRShDRk5FVFdPUktfU1RPUkFHRV9QQVJUSVRJT05JTkcpICYm
ICFSRUxFQVNFX0xPR19ESVNBQkxFRAorICAgIGlmIChOZXR3b3JrUHJvY2Vzczo6c2luZ2xldG9u
KCkuc2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb24oKSkgeworICAgICAgICBhdXRvIHBhcnRpdGlv
biA9IFdlYkNvcmU6OlVSTChQYXJzZWRVUkxTdHJpbmcsIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5j
b29raWVTdG9yYWdlUGFydGl0aW9uKGZpcnN0UGFydHksIHVybCwgZnJhbWVJRCwgcGFnZUlEKSk7
CisgICAgICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6bG9nQ29va2llSW5mb3JtYXRpb24oIk5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRDb29raWVzRnJvbURPTSIsIHJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3Qgdm9pZCo+KHRoaXMpLCBuZXR3b3JrU3RvcmFnZVNlc3Npb24sIHBhcnRp
dGlvbiwgdXJsLCBlbXB0eVN0cmluZygpLCBmcmFtZUlELCBwYWdlSUQsIHN0ZDo6bnVsbG9wdCk7
CisgICAgfQorI2VuZGlmCiB9CiAKIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OmNvb2tpZXNFbmFibGVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCYgcmVzdWx0KQpJ
bmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jl
c291cmNlTG9hZGVyLmNwcAkocmV2aXNpb24gMjI3OTkxKQorKysgU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03
MTAsMTEgKzcxMCwxNiBAQCBib29sIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c2hvdWxkQ2FwdHVy
CiB9CiAKICNpZiBIQVZFKENGTkVUV09SS19TVE9SQUdFX1BBUlRJVElPTklORykgJiYgIVJFTEVB
U0VfTE9HX0RJU0FCTEVECi1ib29sIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c2hvdWxkTG9nQ29v
a2llSW5mb3JtYXRpb24oKSBjb25zdAorYm9vbCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnNob3Vs
ZExvZ0Nvb2tpZUluZm9ybWF0aW9uKCkKIHsKICAgICByZXR1cm4gTmV0d29ya1Byb2Nlc3M6OnNp
bmdsZXRvbigpLnNob3VsZExvZ0Nvb2tpZUluZm9ybWF0aW9uKCk7CiB9CiAKK3N0YXRpYyBTdHJp
bmcgZXNjYXBlRm9ySlNPTihTdHJpbmcgcykKK3sKKyAgICByZXR1cm4gcy5yZXBsYWNlKCdcXCcs
ICJcXFxcIikucmVwbGFjZSgnIicsICJcXFwiIik7Cit9CisKIHZvaWQgTmV0d29ya1Jlc291cmNl
TG9hZGVyOjpsb2dDb29raWVJbmZvcm1hdGlvbigpIGNvbnN0CiB7CiAgICAgQVNTRVJUKHNob3Vs
ZExvZ0Nvb2tpZUluZm9ybWF0aW9uKCkpOwpAQCAtNzI1LDEwICs3MzAsNiBAQCB2b2lkIE5ldHdv
cmtSZXNvdXJjZUxvYWRlcjo6bG9nQ29va2llSW5mCiAjZGVmaW5lIExPQ0FMX0xPRyhzdHIsIC4u
LikgXAogICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImxvZ0Nvb2tpZUluZm9ybWF0aW9uOiBw
YWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0g
JSIgUFJJdTY0ICI6ICIgc3RyLCBwYWdlSUQoKSwgZnJhbWVJRCgpLCBpZGVudGlmaWVyKCksICMj
X19WQV9BUkdTX18pCiAKLSAgICBhdXRvIGVzY2FwZUZvckpTT04gPSBbXShTdHJpbmcgcykgewot
ICAgICAgICByZXR1cm4gcy5yZXBsYWNlKCdcXCcsICJcXFxcIikucmVwbGFjZSgnIicsICJcXFwi
Iik7Ci0gICAgfTsKLQogICAgIGF1dG8gdXJsID0gb3JpZ2luYWxSZXF1ZXN0KCkudXJsKCk7CiAg
ICAgaWYgKG5ldHdvcmtTdG9yYWdlU2Vzc2lvbi0+c2hvdWxkQmxvY2tDb29raWVzKG9yaWdpbmFs
UmVxdWVzdCgpKSkgewogICAgICAgICBhdXRvIGVzY2FwZWRVUkwgPSBlc2NhcGVGb3JKU09OKHVy
bC5zdHJpbmcoKSk7CkBAIC03NDEsNTQgKzc0Miw3MiBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxv
YWRlcjo6bG9nQ29va2llSW5mCiAgICAgICAgIExPQ0FMX0xPRyhSIiggICJjb29raWVzIjogW119
KSIpOwogICAgICAgICByZXR1cm47CiAgICAgfQorI3VuZGVmIExPQ0FMX0xPRwogCiAgICAgYXV0
byBwYXJ0aXRpb24gPSBXZWJDb3JlOjpVUkwoUGFyc2VkVVJMU3RyaW5nLCBuZXR3b3JrU3RvcmFn
ZVNlc3Npb24tPmNvb2tpZVN0b3JhZ2VQYXJ0aXRpb24ob3JpZ2luYWxSZXF1ZXN0KCksIGZyYW1l
SUQoKSwgcGFnZUlEKCkpKTsKLSAgICBib29sIGhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZSA9IG5l
dHdvcmtTdG9yYWdlU2Vzc2lvbi0+aGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKG9yaWdpbmFsUmVx
dWVzdCgpLCBmcmFtZUlEKCksIHBhZ2VJRCgpKTsKKyAgICBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6
OmxvZ0Nvb2tpZUluZm9ybWF0aW9uKCJOZXR3b3JrUmVzb3VyY2VMb2FkZXIiLCByZWludGVycHJl
dF9jYXN0PGNvbnN0IHZvaWQqPih0aGlzKSwgKm5ldHdvcmtTdG9yYWdlU2Vzc2lvbiwgcGFydGl0
aW9uLCB1cmwsIG9yaWdpbmFsUmVxdWVzdCgpLmh0dHBSZWZlcnJlcigpLCBmcmFtZUlEKCksIHBh
Z2VJRCgpLCBpZGVudGlmaWVyKCkpOworfQorCit2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6
bG9nQ29va2llSW5mb3JtYXRpb24oY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3Qgdm9pZCogbG9n
Z2VkT2JqZWN0LCBjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mIG5ldHdvcmtT
dG9yYWdlU2Vzc2lvbiwgY29uc3QgV2ViQ29yZTo6VVJMJiBwYXJ0aXRpb24sIGNvbnN0IFdlYkNv
cmU6OlVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2
NF90PiBmcmFtZUlELCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQsIHN0ZDo6b3B0aW9u
YWw8dWludDY0X3Q+IGlkZW50aWZpZXIpCit7CisgICAgQVNTRVJUKHNob3VsZExvZ0Nvb2tpZUlu
Zm9ybWF0aW9uKCkpOwogCiAgICAgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gY29va2llczsKLSAg
ICBib29sIHJlc3VsdCA9IFdlYkNvcmU6OmdldFJhd0Nvb2tpZXMoKm5ldHdvcmtTdG9yYWdlU2Vz
c2lvbiwgcGFydGl0aW9uLCB1cmwsIGZyYW1lSUQoKSwgcGFnZUlEKCksIGNvb2tpZXMpOworICAg
IGlmICghV2ViQ29yZTo6Z2V0UmF3Q29va2llcyhuZXR3b3JrU3RvcmFnZVNlc3Npb24sIHBhcnRp
dGlvbiwgdXJsLCBmcmFtZUlELCBwYWdlSUQsIGNvb2tpZXMpKQorICAgICAgICByZXR1cm47CiAK
LSAgICBpZiAocmVzdWx0KSB7Ci0gICAgICAgIGF1dG8gZXNjYXBlZFVSTCA9IGVzY2FwZUZvckpT
T04odXJsLnN0cmluZygpKTsKLSAgICAgICAgYXV0byBlc2NhcGVkUGFydGl0aW9uID0gZXNjYXBl
Rm9ySlNPTihwYXJ0aXRpb24uc3RyaW5nKCkpOwotICAgICAgICBhdXRvIGVzY2FwZWRSZWZlcnJl
ciA9IGVzY2FwZUZvckpTT04ob3JpZ2luYWxSZXF1ZXN0KCkuaHR0cFJlZmVycmVyKCkpOworICAg
IGF1dG8gZXNjYXBlSURGb3JKU09OID0gW10oc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gdmFsdWUp
IHsKKyAgICAgICAgcmV0dXJuIHZhbHVlID8gU3RyaW5nOjpudW1iZXIodmFsdWUudmFsdWUoKSkg
OiBTdHJpbmcoIk5vbmUiKTsKKyAgICB9OwogCi0gICAgICAgIExPQ0FMX0xPRyhSIih7ICJ1cmwi
OiAiJXtwdWJsaWN9cyIsKSIsIGVzY2FwZWRVUkwudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgIExP
Q0FMX0xPRyhSIiggICJwYXJ0aXRpb24iOiAiJXtwdWJsaWN9cyIsKSIsIGVzY2FwZWRQYXJ0aXRp
b24udXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgIExPQ0FMX0xPRyhSIiggICJoYXNTdG9yYWdlQWNj
ZXNzIjogJXtwdWJsaWN9cywpIiwgaGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lID8gInRydWUiIDog
ImZhbHNlIik7Ci0gICAgICAgIExPQ0FMX0xPRyhSIiggICJyZWZlcmVyIjogIiV7cHVibGljfXMi
LCkiLCBlc2NhcGVkUmVmZXJyZXIudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgIExPQ0FMX0xPRyhS
IiggICJjb29raWVzIjogWykiKTsKKyAgICBhdXRvIGVzY2FwZWRVUkwgPSBlc2NhcGVGb3JKU09O
KHVybC5zdHJpbmcoKSk7CisgICAgYXV0byBlc2NhcGVkUGFydGl0aW9uID0gZXNjYXBlRm9ySlNP
TihwYXJ0aXRpb24uc3RyaW5nKCkpOworICAgIGF1dG8gZXNjYXBlZFJlZmVycmVyID0gZXNjYXBl
Rm9ySlNPTihyZWZlcnJlcik7CisgICAgYXV0byBlc2NhcGVkRnJhbWVJRCA9IGVzY2FwZUlERm9y
SlNPTihmcmFtZUlEKTsKKyAgICBhdXRvIGVzY2FwZWRQYWdlSUQgPSBlc2NhcGVJREZvckpTT04o
cGFnZUlEKTsKKyAgICBhdXRvIGVzY2FwZWRJZGVudGlmaWVyID0gZXNjYXBlSURGb3JKU09OKGlk
ZW50aWZpZXIpOworICAgIGJvb2wgaGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lID0gKGZyYW1lSUQg
JiYgcGFnZUlEKSA/IG5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oYXNTdG9yYWdlQWNjZXNzRm9yRnJh
bWUodXJsLnN0cmluZygpLCBwYXJ0aXRpb24uc3RyaW5nKCksIGZyYW1lSUQudmFsdWUoKSwgcGFn
ZUlELnZhbHVlKCkpIDogZmFsc2U7CiAKLSAgICAgICAgYXV0byBzaXplID0gY29va2llcy5zaXpl
KCk7Ci0gICAgICAgIGRlY2x0eXBlKHNpemUpIGNvdW50ID0gMDsKLSAgICAgICAgZm9yIChjb25z
dCBhdXRvJiBjb29raWUgOiBjb29raWVzKSB7Ci0gICAgICAgICAgICBjb25zdCBjaGFyKiB0cmFp
bGluZ0NvbW1hID0gIiwiOwotICAgICAgICAgICAgaWYgKCsrY291bnQgPT0gc2l6ZSkKLSAgICAg
ICAgICAgICAgICB0cmFpbGluZ0NvbW1hID0gIiI7Ci0KLSAgICAgICAgICAgIGF1dG8gZXNjYXBl
ZE5hbWUgPSBlc2NhcGVGb3JKU09OKGNvb2tpZS5uYW1lKTsKLSAgICAgICAgICAgIGF1dG8gZXNj
YXBlZFZhbHVlID0gZXNjYXBlRm9ySlNPTihjb29raWUudmFsdWUpOwotICAgICAgICAgICAgYXV0
byBlc2NhcGVkRG9tYWluID0gZXNjYXBlRm9ySlNPTihjb29raWUuZG9tYWluKTsKLSAgICAgICAg
ICAgIGF1dG8gZXNjYXBlZFBhdGggPSBlc2NhcGVGb3JKU09OKGNvb2tpZS5wYXRoKTsKLSAgICAg
ICAgICAgIGF1dG8gZXNjYXBlZENvbW1lbnQgPSBlc2NhcGVGb3JKU09OKGNvb2tpZS5jb21tZW50
KTsKLSAgICAgICAgICAgIGF1dG8gZXNjYXBlZENvbW1lbnRVUkwgPSBlc2NhcGVGb3JKU09OKGNv
b2tpZS5jb21tZW50VVJMLnN0cmluZygpKTsKLQotICAgICAgICAgICAgTE9DQUxfTE9HKFIiKCAg
eyAibmFtZSI6ICIle3B1YmxpY31zIiwpIiwgZXNjYXBlZE5hbWUudXRmOCgpLmRhdGEoKSk7Ci0g
ICAgICAgICAgICBMT0NBTF9MT0coUiIoICAgICJ2YWx1ZSI6ICIle3B1YmxpY31zIiwpIiwgZXNj
YXBlZFZhbHVlLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICAgICAgTE9DQUxfTE9HKFIiKCAgICAi
ZG9tYWluIjogIiV7cHVibGljfXMiLCkiLCBlc2NhcGVkRG9tYWluLnV0ZjgoKS5kYXRhKCkpOwot
ICAgICAgICAgICAgTE9DQUxfTE9HKFIiKCAgICAicGF0aCI6ICIle3B1YmxpY31zIiwpIiwgZXNj
YXBlZFBhdGgudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgICAgICBMT0NBTF9MT0coUiIoICAgICJj
cmVhdGVkIjogJWYsKSIsIGNvb2tpZS5jcmVhdGVkKTsKLSAgICAgICAgICAgIExPQ0FMX0xPRyhS
IiggICAgImV4cGlyZXMiOiAlZiwpIiwgY29va2llLmV4cGlyZXMpOwotICAgICAgICAgICAgTE9D
QUxfTE9HKFIiKCAgICAiaHR0cE9ubHkiOiAle3B1YmxpY31zLCkiLCBjb29raWUuaHR0cE9ubHkg
PyAidHJ1ZSIgOiAiZmFsc2UiKTsKLSAgICAgICAgICAgIExPQ0FMX0xPRyhSIiggICAgInNlY3Vy
ZSI6ICV7cHVibGljfXMsKSIsIGNvb2tpZS5zZWN1cmUgPyAidHJ1ZSIgOiAiZmFsc2UiKTsKLSAg
ICAgICAgICAgIExPQ0FMX0xPRyhSIiggICAgInNlc3Npb24iOiAle3B1YmxpY31zLCkiLCBjb29r
aWUuc2Vzc2lvbiA/ICJ0cnVlIiA6ICJmYWxzZSIpOwotICAgICAgICAgICAgTE9DQUxfTE9HKFIi
KCAgICAiY29tbWVudCI6ICIle3B1YmxpY31zIiwpIiwgZXNjYXBlZENvbW1lbnQudXRmOCgpLmRh
dGEoKSk7Ci0gICAgICAgICAgICBMT0NBTF9MT0coUiIoICAgICJjb21tZW50VVJMIjogIiV7cHVi
bGljfXMiKSIsIGVzY2FwZWRDb21tZW50VVJMLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICAgICAg
TE9DQUxfTE9HKFIiKCAgfSV7cHVibGljfXMpIiwgdHJhaWxpbmdDb21tYSk7Ci0gICAgICAgIH0K
LSAgICAgICAgTE9DQUxfTE9HKFIiKF19KSIpOwotI3VuZGVmIExPQ0FMX0xPRworI2RlZmluZSBM
T0NBTF9MT0dfSUZfQUxMT1dFRChmbXQsIC4uLikgUkVMRUFTRV9MT0dfSUYobmV0d29ya1N0b3Jh
Z2VTZXNzaW9uLnNlc3Npb25JRCgpLmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBOZXR3b3Jr
LCAiJXAgLSAlczo6IiBmbXQsIGxvZ2dlZE9iamVjdCwgbGFiZWwudXRmOCgpLmRhdGEoKSwgIyNf
X1ZBX0FSR1NfXykKKyNkZWZpbmUgTE9DQUxfTE9HKHN0ciwgLi4uKSBcCisgICAgTE9DQUxfTE9H
X0lGX0FMTE9XRUQoImxvZ0Nvb2tpZUluZm9ybWF0aW9uOiBwYWdlSUQgPSAlcywgZnJhbWVJRCA9
ICVzLCByZXNvdXJjZUlEID0gJXM6ICIgc3RyLCBlc2NhcGVkUGFnZUlELnV0ZjgoKS5kYXRhKCks
IGVzY2FwZWRGcmFtZUlELnV0ZjgoKS5kYXRhKCksIGVzY2FwZWRJZGVudGlmaWVyLnV0ZjgoKS5k
YXRhKCksICMjX19WQV9BUkdTX18pCisKKyAgICBMT0NBTF9MT0coUiIoeyAidXJsIjogIiV7cHVi
bGljfXMiLCkiLCBlc2NhcGVkVVJMLnV0ZjgoKS5kYXRhKCkpOworICAgIExPQ0FMX0xPRyhSIigg
ICJwYXJ0aXRpb24iOiAiJXtwdWJsaWN9cyIsKSIsIGVzY2FwZWRQYXJ0aXRpb24udXRmOCgpLmRh
dGEoKSk7CisgICAgTE9DQUxfTE9HKFIiKCAgImhhc1N0b3JhZ2VBY2Nlc3MiOiAle3B1YmxpY31z
LCkiLCBoYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWUgPyAidHJ1ZSIgOiAiZmFsc2UiKTsKKyAgICBM
T0NBTF9MT0coUiIoICAicmVmZXJlciI6ICIle3B1YmxpY31zIiwpIiwgZXNjYXBlZFJlZmVycmVy
LnV0ZjgoKS5kYXRhKCkpOworICAgIExPQ0FMX0xPRyhSIiggICJjb29raWVzIjogWykiKTsKKwor
ICAgIGF1dG8gc2l6ZSA9IGNvb2tpZXMuc2l6ZSgpOworICAgIGRlY2x0eXBlKHNpemUpIGNvdW50
ID0gMDsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGNvb2tpZSA6IGNvb2tpZXMpIHsKKyAgICAgICAg
Y29uc3QgY2hhciogdHJhaWxpbmdDb21tYSA9ICIsIjsKKyAgICAgICAgaWYgKCsrY291bnQgPT0g
c2l6ZSkKKyAgICAgICAgICAgIHRyYWlsaW5nQ29tbWEgPSAiIjsKKworICAgICAgICBhdXRvIGVz
Y2FwZWROYW1lID0gZXNjYXBlRm9ySlNPTihjb29raWUubmFtZSk7CisgICAgICAgIGF1dG8gZXNj
YXBlZFZhbHVlID0gZXNjYXBlRm9ySlNPTihjb29raWUudmFsdWUpOworICAgICAgICBhdXRvIGVz
Y2FwZWREb21haW4gPSBlc2NhcGVGb3JKU09OKGNvb2tpZS5kb21haW4pOworICAgICAgICBhdXRv
IGVzY2FwZWRQYXRoID0gZXNjYXBlRm9ySlNPTihjb29raWUucGF0aCk7CisgICAgICAgIGF1dG8g
ZXNjYXBlZENvbW1lbnQgPSBlc2NhcGVGb3JKU09OKGNvb2tpZS5jb21tZW50KTsKKyAgICAgICAg
YXV0byBlc2NhcGVkQ29tbWVudFVSTCA9IGVzY2FwZUZvckpTT04oY29va2llLmNvbW1lbnRVUkwu
c3RyaW5nKCkpOworCisgICAgICAgIExPQ0FMX0xPRyhSIiggIHsgIm5hbWUiOiAiJXtwdWJsaWN9
cyIsKSIsIGVzY2FwZWROYW1lLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBMT0NBTF9MT0coUiIo
ICAgICJ2YWx1ZSI6ICIle3B1YmxpY31zIiwpIiwgZXNjYXBlZFZhbHVlLnV0ZjgoKS5kYXRhKCkp
OworICAgICAgICBMT0NBTF9MT0coUiIoICAgICJkb21haW4iOiAiJXtwdWJsaWN9cyIsKSIsIGVz
Y2FwZWREb21haW4udXRmOCgpLmRhdGEoKSk7CisgICAgICAgIExPQ0FMX0xPRyhSIiggICAgInBh
dGgiOiAiJXtwdWJsaWN9cyIsKSIsIGVzY2FwZWRQYXRoLnV0ZjgoKS5kYXRhKCkpOworICAgICAg
ICBMT0NBTF9MT0coUiIoICAgICJjcmVhdGVkIjogJWYsKSIsIGNvb2tpZS5jcmVhdGVkKTsKKyAg
ICAgICAgTE9DQUxfTE9HKFIiKCAgICAiZXhwaXJlcyI6ICVmLCkiLCBjb29raWUuZXhwaXJlcyk7
CisgICAgICAgIExPQ0FMX0xPRyhSIiggICAgImh0dHBPbmx5IjogJXtwdWJsaWN9cywpIiwgY29v
a2llLmh0dHBPbmx5ID8gInRydWUiIDogImZhbHNlIik7CisgICAgICAgIExPQ0FMX0xPRyhSIigg
ICAgInNlY3VyZSI6ICV7cHVibGljfXMsKSIsIGNvb2tpZS5zZWN1cmUgPyAidHJ1ZSIgOiAiZmFs
c2UiKTsKKyAgICAgICAgTE9DQUxfTE9HKFIiKCAgICAic2Vzc2lvbiI6ICV7cHVibGljfXMsKSIs
IGNvb2tpZS5zZXNzaW9uID8gInRydWUiIDogImZhbHNlIik7CisgICAgICAgIExPQ0FMX0xPRyhS
IiggICAgImNvbW1lbnQiOiAiJXtwdWJsaWN9cyIsKSIsIGVzY2FwZWRDb21tZW50LnV0ZjgoKS5k
YXRhKCkpOworICAgICAgICBMT0NBTF9MT0coUiIoICAgICJjb21tZW50VVJMIjogIiV7cHVibGlj
fXMiKSIsIGVzY2FwZWRDb21tZW50VVJMLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBMT0NBTF9M
T0coUiIoICB9JXtwdWJsaWN9cykiLCB0cmFpbGluZ0NvbW1hKTsKICAgICB9CisgICAgTE9DQUxf
TE9HKFIiKF19KSIpOworI3VuZGVmIExPQ0FMX0xPRworI3VuZGVmIExPQ0FMX0xPR19JRl9BTExP
V0VECiB9CiAjZW5kaWYKIApJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUmVzb3VyY2VMb2FkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCShyZXZpc2lvbiAyMjc5OTEpCisrKyBTb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zNiw2ICszNiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEJs
b2JEYXRhRmlsZVJlZmVyZW5jZTsKK2NsYXNzIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjsKIGNsYXNz
IFJlc291cmNlUmVxdWVzdDsKIH0KIApAQCAtMTAzLDYgKzEwNCwxMSBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBpc01haW5SZXNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1ldGVycy5yZXF1ZXN0
LnJlcXVlc3RlcigpID09IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6UmVxdWVzdGVyOjpNYWlu
OyB9CiAgICAgYm9vbCBpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSBjb25zdDsKIAorI2lmIEhB
VkUoQ0ZORVRXT1JLX1NUT1JBR0VfUEFSVElUSU9OSU5HKSAmJiAhUkVMRUFTRV9MT0dfRElTQUJM
RUQKKyAgICBzdGF0aWMgYm9vbCBzaG91bGRMb2dDb29raWVJbmZvcm1hdGlvbigpOworICAgIHN0
YXRpYyB2b2lkIGxvZ0Nvb2tpZUluZm9ybWF0aW9uKGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0
IHZvaWQqIGxvZ2dlZE9iamVjdCwgY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9u
JiwgY29uc3QgV2ViQ29yZTo6VVJMJiBwYXJ0aXRpb24sIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNv
bnN0IFN0cmluZyYgcmVmZXJyZXIsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0
ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gaWRl
bnRpZmllcik7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBOZXR3b3JrUmVzb3VyY2VMb2FkZXIo
Y29uc3QgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmLCBOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2VzcyYsIFJlZlB0cjxNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OlBlcmZvcm1TeW5jaHJvbm91c0xvYWQ6OkRlbGF5ZWRSZXBseT4mJik7CiAKQEAgLTEzNSw3
ICsxNDEsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgaW52YWxpZGF0ZVNhbmRib3hFeHRlbnNpb25z
KCk7CiAKICNpZiBIQVZFKENGTkVUV09SS19TVE9SQUdFX1BBUlRJVElPTklORykgJiYgIVJFTEVB
U0VfTE9HX0RJU0FCTEVECi0gICAgYm9vbCBzaG91bGRMb2dDb29raWVJbmZvcm1hdGlvbigpIGNv
bnN0OwogICAgIHZvaWQgbG9nQ29va2llSW5mb3JtYXRpb24oKSBjb25zdDsKICNlbmRpZgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>333093</attachid>
            <date>2018-02-05 10:29:12 -0800</date>
            <delta_ts>2018-02-05 10:41:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-182455-20180205102911.patch</filename>
            <type>text/plain</type>
            <size>19028</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyODAzNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDE4LTAyLTAyICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIEltcHJvdmUgTmV0d29ya1Jl
c291cmNlTG9hZGVyIGxvZ2dpbmcgc28gaXQgY2FuIGJlIHVzZWQgZm9yICdzZXRDb29raWVzRnJv
bURPTScKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4
MjQ1NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzY2MjY2MDE+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWZ0ZXIgdGhpcyByZWZhY3RvcmluZywg
YSBjb252ZW5pZW5jZSBtZXRob2QgSSBhZGRlZCBpbiByMjI3ODYwIGlzIG5vIGxvbmdlciBuZWVk
ZWQuCisgICAgICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyB0aGlzIGRlYWQgY29kZS4KKworICAgICAg
ICAqIHBsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg6IEV4cG9ydCAnY29v
a2llU3RvcmFnZVBhcnRpdGlvbicgc28gaXQgY2FuCisgICAgICAgIGJlIHVzZWQgaW4gV2ViS2l0
LgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ0ZO
ZXQuY3BwOiAKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6aGFzU3Rv
cmFnZUFjY2Vzc0ZvckZyYW1lKTogRGVsZXRlZCB1bnVzZWQgbWV0aG9kLgorCiAyMDE4LTAyLTAy
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBDbGVhcmluZyBh
bGwgc2VydmljZSB3b3JrZXIgcmVnaXN0cmF0aW9ucyBzaG91bGQgd2FpdCBmb3IgaW1wb3J0aW5n
IHNlcnZpY2Ugd29ya2VyIHJlZ2lzdHJhdGlvbiB0byBmaW5pc2gKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24u
aAkocmV2aXNpb24gMjI3OTkxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9O
ZXR3b3JrU3RvcmFnZVNlc3Npb24uaAkod29ya2luZyBjb3B5KQpAQCAtMTAxLDExICsxMDEsMTAg
QEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBjb29raWVTdG9yYWdlUGFydGl0
aW9uKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1l
SUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCkgY29uc3Q7CiAgICAgV0VCQ09SRV9F
WFBPUlQgYm9vbCBzaG91bGRCbG9ja0Nvb2tpZXMoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JikgY29u
c3Q7CiAgICAgYm9vbCBzaG91bGRCbG9ja0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5Rm9y
Q29va2llcywgY29uc3QgVVJMJiByZXNvdXJjZSkgY29uc3Q7Ci0gICAgU3RyaW5nIGNvb2tpZVN0
b3JhZ2VQYXJ0aXRpb24oY29uc3QgVVJMJiBmaXJzdFBhcnR5Rm9yQ29va2llcywgY29uc3QgVVJM
JiByZXNvdXJjZSwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgc3RkOjpvcHRpb25h
bDx1aW50NjRfdD4gcGFnZUlEKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgY29v
a2llU3RvcmFnZVBhcnRpdGlvbihjb25zdCBVUkwmIGZpcnN0UGFydHlGb3JDb29raWVzLCBjb25z
dCBVUkwmIHJlc291cmNlLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBzdGQ6Om9w
dGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
c2V0UHJldmFsZW50RG9tYWluc1RvUGFydGl0aW9uT3JCbG9ja0Nvb2tpZXMoY29uc3QgVmVjdG9y
PFN0cmluZz4mIGRvbWFpbnNUb1BhcnRpdGlvbiwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGRvbWFp
bnNUb0Jsb2NrLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9tYWluc1RvTmVpdGhlclBhcnRpdGlv
bk5vckJsb2NrLCBib29sIGNsZWFyRmlyc3QpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVt
b3ZlUHJldmFsZW50RG9tYWlucyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9tYWlucyk7CiAgICAg
V0VCQ09SRV9FWFBPUlQgYm9vbCBoYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWUoY29uc3QgU3RyaW5n
JiByZXNvdXJjZURvbWFpbiwgY29uc3QgU3RyaW5nJiBmaXJzdFBhcnR5RG9tYWluLCB1aW50NjRf
dCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQpIGNvbnN0OwotICAgIFdFQkNPUkVfRVhQT1JUIGJv
b2wgaGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIHVpbnQ2
NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBncmFudFN0b3JhZ2VBY2Nlc3NGb3JGcmFtZShjb25zdCBTdHJpbmcmIHJlc291cmNlRG9t
YWluLCBjb25zdCBTdHJpbmcmIGZpcnN0UGFydHlEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIHVp
bnQ2NF90IHBhZ2VJRCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVTdG9yYWdlQWNj
ZXNzRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgcGFnZUlEKTsKICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JBbGxGcmFtZXNPblBhZ2UodWlu
dDY0X3QgcGFnZUlEKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2Yv
TmV0d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXQuY3BwCShy
ZXZpc2lvbiAyMjc5OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL05l
dHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjk2LDE0ICsy
OTYsNiBAQCBib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6aGFzU3RvcmFnZUFjCiAgICAgcmV0
dXJuIGl0Mi0+dmFsdWUgPT0gcmVzb3VyY2VEb21haW47CiB9CiAKLWJvb2wgTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uOjpoYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWUoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQpIGNvbnN0Ci17Ci0g
ICAgaWYgKCFjb29raWVTdG9yYWdlUGFydGl0aW9uaW5nRW5hYmxlZCkKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotCi0gICAgcmV0dXJuIGhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZShnZXRQYXJ0aXRp
b25pbmdEb21haW4ocmVxdWVzdC51cmwoKSksIGdldFBhcnRpdGlvbmluZ0RvbWFpbihyZXF1ZXN0
LmZpcnN0UGFydHlGb3JDb29raWVzKCkpLCBmcmFtZUlELCBwYWdlSUQpOwotfQotCiB2b2lkIE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z3JhbnRTdG9yYWdlQWNjZXNzRm9yRnJhbWUoY29uc3QgU3Ry
aW5nJiByZXNvdXJjZURvbWFpbiwgY29uc3QgU3RyaW5nJiBmaXJzdFBhcnR5RG9tYWluLCB1aW50
NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGZpcnN0
UGFydHlEb21haW4pOwpJbmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyNzk5MSkKKysrIFNvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTgtMDIt
MDIgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wcm92
ZSBOZXR3b3JrUmVzb3VyY2VMb2FkZXIgbG9nZ2luZyBzbyBpdCBjYW4gYmUgdXNlZCBmb3IgJ3Nl
dENvb2tpZXNGcm9tRE9NJworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTgyNDU1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNjYyNjYwMT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWZhY3RvciAibG9n
Q29va2llSW5mb3JtYXRpb24iIHNvIHRoYXQgaXQgY2FuIGJlIHVzZWQgZm9yIHJlc291cmNlIGxv
YWRzIGFuZCBET00gY29va2llCisgICAgICAgIG1hbmlwdWxhdGlvbi4gUGxhY2UgdGhlIGdlbmVy
YWxseSB1c2VmdWwgbG9naWMgaW4gYSBzdGF0aWMgbWV0aG9kIHRoYXQgY2FuIGJlIGludm9rZWQK
KyAgICAgICAgZnJvbSBvdGhlciBwbGFjZXMgaW4gdGhlIE5ldHdvcmtQcm9jZXNzLgorCisgICAg
ICAgIENhbGwgdGhlIG5ldyByZWZhY3RvcmVkIG1ldGhvZCBmcm9tIE5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpzZXRDb29raWVzRnJvbURPTSBzbworICAgICAgICB3ZSBjYW4gcGVyZm9y
bSBsb2dnaW5nIHRoZXJlIGFzIHdlbGwuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRDb29raWVzRnJvbURPTSk6IENhbGwgdGhlIG5ldyBs
b2dnaW5nIG1ldGhvZAorICAgICAgICAod2hlbiBlbmFibGVkKS4KKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUmVzb3VyY2VMb2FkZXI6OnNob3VsZExvZ0Nvb2tpZUluZm9ybWF0aW9uKTogQ2hhbmdlZCB0
byBzdGF0aWMgbWV0aG9kLgorICAgICAgICAoV2ViS2l0Ojplc2NhcGVGb3JKU09OKTogTWFkZSBh
IHN0YXRpYyBmdW5jdGlvbiBzbyBpdCBjb3VsZCBiZSBzaGFyZWQgYmV0d2VlbiBtdWx0aXBsZQor
ICAgICAgICBtZXRob2RzLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6
OmxvZ0Nvb2tpZUluZm9ybWF0aW9uIGNvbnN0KTogUmVmYWN0b3IgaW50byB0d28gbWV0aG9kcy4K
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpsb2dDb29raWVJbmZvcm1h
dGlvbik6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnNo
b3VsZExvZ0Nvb2tpZUluZm9ybWF0aW9uIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0NvY29hKTogU3dpdGNoIHRvIHVzZXIt
ZW5hYmxlZCByZWxlYXNlIGxvZ2dpbmcKKyAgICAgICAgdG8gdHJhY2sgcGFydGl0aW9uaW5nIGFu
ZCBibG9ja2luZyBiZWhhdmlvci4KKwogMjAxOC0wMi0wMSAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxn
aGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXByb3ZlIE5ldHdvcmtSZXNvdXJjZUxvZ2dlciB0
byByZXBvcnQgYmxvY2tlZCAodmVyc3VzIG5vbi1wYXJ0aXRpb25lZCkgY29va2llcwpJbmRleDog
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAJKHJldmlzaW9uIDIyNzk5MSkKKysrIFNvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMi0y
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
Mi0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMzQyLDcgKzM0MiwxNCBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpjb29rCiAKIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OnNldENvb2tpZXNGcm9tRE9NKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBm
aXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJ
RCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gcGFnZUlELCBjb25zdCBTdHJpbmcmIGNvb2tpZVN0
cmluZykKIHsKLSAgICBXZWJDb3JlOjpzZXRDb29raWVzRnJvbURPTShzdG9yYWdlU2Vzc2lvbihz
ZXNzaW9uSUQpLCBmaXJzdFBhcnR5LCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCwgY29va2llU3RyaW5n
KTsKKyAgICBhdXRvJiBuZXR3b3JrU3RvcmFnZVNlc3Npb24gPSBzdG9yYWdlU2Vzc2lvbihzZXNz
aW9uSUQpOworICAgIFdlYkNvcmU6OnNldENvb2tpZXNGcm9tRE9NKG5ldHdvcmtTdG9yYWdlU2Vz
c2lvbiwgZmlyc3RQYXJ0eSwgdXJsLCBmcmFtZUlELCBwYWdlSUQsIGNvb2tpZVN0cmluZyk7Cisj
aWYgSEFWRShDRk5FVFdPUktfU1RPUkFHRV9QQVJUSVRJT05JTkcpICYmICFSRUxFQVNFX0xPR19E
SVNBQkxFRAorICAgIGlmIChOZXR3b3JrUHJvY2Vzczo6c2luZ2xldG9uKCkuc2hvdWxkTG9nQ29v
a2llSW5mb3JtYXRpb24oKSkgeworICAgICAgICBhdXRvIHBhcnRpdGlvbiA9IFdlYkNvcmU6OlVS
TChQYXJzZWRVUkxTdHJpbmcsIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jb29raWVTdG9yYWdlUGFy
dGl0aW9uKGZpcnN0UGFydHksIHVybCwgZnJhbWVJRCwgcGFnZUlEKSk7CisgICAgICAgIE5ldHdv
cmtSZXNvdXJjZUxvYWRlcjo6bG9nQ29va2llSW5mb3JtYXRpb24oIk5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpzZXRDb29raWVzRnJvbURPTSIsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
dm9pZCo+KHRoaXMpLCBuZXR3b3JrU3RvcmFnZVNlc3Npb24sIHBhcnRpdGlvbiwgdXJsLCBlbXB0
eVN0cmluZygpLCBmcmFtZUlELCBwYWdlSUQsIHN0ZDo6bnVsbG9wdCk7CisgICAgfQorI2VuZGlm
CiB9CiAKIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZXNFbmFibGVk
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCYgcmVzdWx0KQpJbmRleDogU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNw
cAkocmV2aXNpb24gMjI3OTkxKQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUmVzb3VyY2VMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MTAsMTEgKzcxMCwxNiBA
QCBib29sIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c2hvdWxkQ2FwdHVyCiB9CiAKICNpZiBIQVZF
KENGTkVUV09SS19TVE9SQUdFX1BBUlRJVElPTklORykgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVE
Ci1ib29sIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb24o
KSBjb25zdAorYm9vbCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnNob3VsZExvZ0Nvb2tpZUluZm9y
bWF0aW9uKCkKIHsKICAgICByZXR1cm4gTmV0d29ya1Byb2Nlc3M6OnNpbmdsZXRvbigpLnNob3Vs
ZExvZ0Nvb2tpZUluZm9ybWF0aW9uKCk7CiB9CiAKK3N0YXRpYyBTdHJpbmcgZXNjYXBlRm9ySlNP
TihTdHJpbmcgcykKK3sKKyAgICByZXR1cm4gcy5yZXBsYWNlKCdcXCcsICJcXFxcIikucmVwbGFj
ZSgnIicsICJcXFwiIik7Cit9CisKIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpsb2dDb29r
aWVJbmZvcm1hdGlvbigpIGNvbnN0CiB7CiAgICAgQVNTRVJUKHNob3VsZExvZ0Nvb2tpZUluZm9y
bWF0aW9uKCkpOwpAQCAtNzI1LDEwICs3MzAsNiBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRl
cjo6bG9nQ29va2llSW5mCiAjZGVmaW5lIExPQ0FMX0xPRyhzdHIsIC4uLikgXAogICAgIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoImxvZ0Nvb2tpZUluZm9ybWF0aW9uOiBwYWdlSUQgPSAlIiBQUkl1
NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICI6ICIg
c3RyLCBwYWdlSUQoKSwgZnJhbWVJRCgpLCBpZGVudGlmaWVyKCksICMjX19WQV9BUkdTX18pCiAK
LSAgICBhdXRvIGVzY2FwZUZvckpTT04gPSBbXShTdHJpbmcgcykgewotICAgICAgICByZXR1cm4g
cy5yZXBsYWNlKCdcXCcsICJcXFxcIikucmVwbGFjZSgnIicsICJcXFwiIik7Ci0gICAgfTsKLQog
ICAgIGF1dG8gdXJsID0gb3JpZ2luYWxSZXF1ZXN0KCkudXJsKCk7CiAgICAgaWYgKG5ldHdvcmtT
dG9yYWdlU2Vzc2lvbi0+c2hvdWxkQmxvY2tDb29raWVzKG9yaWdpbmFsUmVxdWVzdCgpKSkgewog
ICAgICAgICBhdXRvIGVzY2FwZWRVUkwgPSBlc2NhcGVGb3JKU09OKHVybC5zdHJpbmcoKSk7CkBA
IC03NDEsNTQgKzc0Miw3MiBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6bG9nQ29va2ll
SW5mCiAgICAgICAgIExPQ0FMX0xPRyhSIiggICJjb29raWVzIjogW119KSIpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQorI3VuZGVmIExPQ0FMX0xPRwogCiAgICAgYXV0byBwYXJ0aXRpb24gPSBX
ZWJDb3JlOjpVUkwoUGFyc2VkVVJMU3RyaW5nLCBuZXR3b3JrU3RvcmFnZVNlc3Npb24tPmNvb2tp
ZVN0b3JhZ2VQYXJ0aXRpb24ob3JpZ2luYWxSZXF1ZXN0KCksIGZyYW1lSUQoKSwgcGFnZUlEKCkp
KTsKLSAgICBib29sIGhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZSA9IG5ldHdvcmtTdG9yYWdlU2Vz
c2lvbi0+aGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKG9yaWdpbmFsUmVxdWVzdCgpLCBmcmFtZUlE
KCksIHBhZ2VJRCgpKTsKKyAgICBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmxvZ0Nvb2tpZUluZm9y
bWF0aW9uKCJOZXR3b3JrUmVzb3VyY2VMb2FkZXIiLCByZWludGVycHJldF9jYXN0PGNvbnN0IHZv
aWQqPih0aGlzKSwgKm5ldHdvcmtTdG9yYWdlU2Vzc2lvbiwgcGFydGl0aW9uLCB1cmwsIG9yaWdp
bmFsUmVxdWVzdCgpLmh0dHBSZWZlcnJlcigpLCBmcmFtZUlEKCksIHBhZ2VJRCgpLCBpZGVudGlm
aWVyKCkpOworfQorCit2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6bG9nQ29va2llSW5mb3Jt
YXRpb24oY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3Qgdm9pZCogbG9nZ2VkT2JqZWN0LCBjb25z
dCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiwg
Y29uc3QgV2ViQ29yZTo6VVJMJiBwYXJ0aXRpb24sIGNvbnN0IFdlYkNvcmU6OlVSTCYgdXJsLCBj
b25zdCBTdHJpbmcmIHJlZmVycmVyLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBz
dGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGlk
ZW50aWZpZXIpCit7CisgICAgQVNTRVJUKHNob3VsZExvZ0Nvb2tpZUluZm9ybWF0aW9uKCkpOwog
CiAgICAgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gY29va2llczsKLSAgICBib29sIHJlc3VsdCA9
IFdlYkNvcmU6OmdldFJhd0Nvb2tpZXMoKm5ldHdvcmtTdG9yYWdlU2Vzc2lvbiwgcGFydGl0aW9u
LCB1cmwsIGZyYW1lSUQoKSwgcGFnZUlEKCksIGNvb2tpZXMpOworICAgIGlmICghV2ViQ29yZTo6
Z2V0UmF3Q29va2llcyhuZXR3b3JrU3RvcmFnZVNlc3Npb24sIHBhcnRpdGlvbiwgdXJsLCBmcmFt
ZUlELCBwYWdlSUQsIGNvb2tpZXMpKQorICAgICAgICByZXR1cm47CiAKLSAgICBpZiAocmVzdWx0
KSB7Ci0gICAgICAgIGF1dG8gZXNjYXBlZFVSTCA9IGVzY2FwZUZvckpTT04odXJsLnN0cmluZygp
KTsKLSAgICAgICAgYXV0byBlc2NhcGVkUGFydGl0aW9uID0gZXNjYXBlRm9ySlNPTihwYXJ0aXRp
b24uc3RyaW5nKCkpOwotICAgICAgICBhdXRvIGVzY2FwZWRSZWZlcnJlciA9IGVzY2FwZUZvckpT
T04ob3JpZ2luYWxSZXF1ZXN0KCkuaHR0cFJlZmVycmVyKCkpOworICAgIGF1dG8gZXNjYXBlSURG
b3JKU09OID0gW10oc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gdmFsdWUpIHsKKyAgICAgICAgcmV0
dXJuIHZhbHVlID8gU3RyaW5nOjpudW1iZXIodmFsdWUudmFsdWUoKSkgOiBTdHJpbmcoIk5vbmUi
KTsKKyAgICB9OwogCi0gICAgICAgIExPQ0FMX0xPRyhSIih7ICJ1cmwiOiAiJXtwdWJsaWN9cyIs
KSIsIGVzY2FwZWRVUkwudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgIExPQ0FMX0xPRyhSIiggICJw
YXJ0aXRpb24iOiAiJXtwdWJsaWN9cyIsKSIsIGVzY2FwZWRQYXJ0aXRpb24udXRmOCgpLmRhdGEo
KSk7Ci0gICAgICAgIExPQ0FMX0xPRyhSIiggICJoYXNTdG9yYWdlQWNjZXNzIjogJXtwdWJsaWN9
cywpIiwgaGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lID8gInRydWUiIDogImZhbHNlIik7Ci0gICAg
ICAgIExPQ0FMX0xPRyhSIiggICJyZWZlcmVyIjogIiV7cHVibGljfXMiLCkiLCBlc2NhcGVkUmVm
ZXJyZXIudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgIExPQ0FMX0xPRyhSIiggICJjb29raWVzIjog
WykiKTsKKyAgICBhdXRvIGVzY2FwZWRVUkwgPSBlc2NhcGVGb3JKU09OKHVybC5zdHJpbmcoKSk7
CisgICAgYXV0byBlc2NhcGVkUGFydGl0aW9uID0gZXNjYXBlRm9ySlNPTihwYXJ0aXRpb24uc3Ry
aW5nKCkpOworICAgIGF1dG8gZXNjYXBlZFJlZmVycmVyID0gZXNjYXBlRm9ySlNPTihyZWZlcnJl
cik7CisgICAgYXV0byBlc2NhcGVkRnJhbWVJRCA9IGVzY2FwZUlERm9ySlNPTihmcmFtZUlEKTsK
KyAgICBhdXRvIGVzY2FwZWRQYWdlSUQgPSBlc2NhcGVJREZvckpTT04ocGFnZUlEKTsKKyAgICBh
dXRvIGVzY2FwZWRJZGVudGlmaWVyID0gZXNjYXBlSURGb3JKU09OKGlkZW50aWZpZXIpOworICAg
IGJvb2wgaGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lID0gKGZyYW1lSUQgJiYgcGFnZUlEKSA/IG5l
dHdvcmtTdG9yYWdlU2Vzc2lvbi5oYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWUodXJsLnN0cmluZygp
LCBwYXJ0aXRpb24uc3RyaW5nKCksIGZyYW1lSUQudmFsdWUoKSwgcGFnZUlELnZhbHVlKCkpIDog
ZmFsc2U7CiAKLSAgICAgICAgYXV0byBzaXplID0gY29va2llcy5zaXplKCk7Ci0gICAgICAgIGRl
Y2x0eXBlKHNpemUpIGNvdW50ID0gMDsKLSAgICAgICAgZm9yIChjb25zdCBhdXRvJiBjb29raWUg
OiBjb29raWVzKSB7Ci0gICAgICAgICAgICBjb25zdCBjaGFyKiB0cmFpbGluZ0NvbW1hID0gIiwi
OwotICAgICAgICAgICAgaWYgKCsrY291bnQgPT0gc2l6ZSkKLSAgICAgICAgICAgICAgICB0cmFp
bGluZ0NvbW1hID0gIiI7Ci0KLSAgICAgICAgICAgIGF1dG8gZXNjYXBlZE5hbWUgPSBlc2NhcGVG
b3JKU09OKGNvb2tpZS5uYW1lKTsKLSAgICAgICAgICAgIGF1dG8gZXNjYXBlZFZhbHVlID0gZXNj
YXBlRm9ySlNPTihjb29raWUudmFsdWUpOwotICAgICAgICAgICAgYXV0byBlc2NhcGVkRG9tYWlu
ID0gZXNjYXBlRm9ySlNPTihjb29raWUuZG9tYWluKTsKLSAgICAgICAgICAgIGF1dG8gZXNjYXBl
ZFBhdGggPSBlc2NhcGVGb3JKU09OKGNvb2tpZS5wYXRoKTsKLSAgICAgICAgICAgIGF1dG8gZXNj
YXBlZENvbW1lbnQgPSBlc2NhcGVGb3JKU09OKGNvb2tpZS5jb21tZW50KTsKLSAgICAgICAgICAg
IGF1dG8gZXNjYXBlZENvbW1lbnRVUkwgPSBlc2NhcGVGb3JKU09OKGNvb2tpZS5jb21tZW50VVJM
LnN0cmluZygpKTsKLQotICAgICAgICAgICAgTE9DQUxfTE9HKFIiKCAgeyAibmFtZSI6ICIle3B1
YmxpY31zIiwpIiwgZXNjYXBlZE5hbWUudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgICAgICBMT0NB
TF9MT0coUiIoICAgICJ2YWx1ZSI6ICIle3B1YmxpY31zIiwpIiwgZXNjYXBlZFZhbHVlLnV0Zjgo
KS5kYXRhKCkpOwotICAgICAgICAgICAgTE9DQUxfTE9HKFIiKCAgICAiZG9tYWluIjogIiV7cHVi
bGljfXMiLCkiLCBlc2NhcGVkRG9tYWluLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICAgICAgTE9D
QUxfTE9HKFIiKCAgICAicGF0aCI6ICIle3B1YmxpY31zIiwpIiwgZXNjYXBlZFBhdGgudXRmOCgp
LmRhdGEoKSk7Ci0gICAgICAgICAgICBMT0NBTF9MT0coUiIoICAgICJjcmVhdGVkIjogJWYsKSIs
IGNvb2tpZS5jcmVhdGVkKTsKLSAgICAgICAgICAgIExPQ0FMX0xPRyhSIiggICAgImV4cGlyZXMi
OiAlZiwpIiwgY29va2llLmV4cGlyZXMpOwotICAgICAgICAgICAgTE9DQUxfTE9HKFIiKCAgICAi
aHR0cE9ubHkiOiAle3B1YmxpY31zLCkiLCBjb29raWUuaHR0cE9ubHkgPyAidHJ1ZSIgOiAiZmFs
c2UiKTsKLSAgICAgICAgICAgIExPQ0FMX0xPRyhSIiggICAgInNlY3VyZSI6ICV7cHVibGljfXMs
KSIsIGNvb2tpZS5zZWN1cmUgPyAidHJ1ZSIgOiAiZmFsc2UiKTsKLSAgICAgICAgICAgIExPQ0FM
X0xPRyhSIiggICAgInNlc3Npb24iOiAle3B1YmxpY31zLCkiLCBjb29raWUuc2Vzc2lvbiA/ICJ0
cnVlIiA6ICJmYWxzZSIpOwotICAgICAgICAgICAgTE9DQUxfTE9HKFIiKCAgICAiY29tbWVudCI6
ICIle3B1YmxpY31zIiwpIiwgZXNjYXBlZENvbW1lbnQudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAg
ICAgICBMT0NBTF9MT0coUiIoICAgICJjb21tZW50VVJMIjogIiV7cHVibGljfXMiKSIsIGVzY2Fw
ZWRDb21tZW50VVJMLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICAgICAgTE9DQUxfTE9HKFIiKCAg
fSV7cHVibGljfXMpIiwgdHJhaWxpbmdDb21tYSk7Ci0gICAgICAgIH0KLSAgICAgICAgTE9DQUxf
TE9HKFIiKF19KSIpOwotI3VuZGVmIExPQ0FMX0xPRworI2RlZmluZSBMT0NBTF9MT0dfSUZfQUxM
T1dFRChmbXQsIC4uLikgUkVMRUFTRV9MT0dfSUYobmV0d29ya1N0b3JhZ2VTZXNzaW9uLnNlc3Np
b25JRCgpLmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBOZXR3b3JrLCAiJXAgLSAlczo6IiBm
bXQsIGxvZ2dlZE9iamVjdCwgbGFiZWwudXRmOCgpLmRhdGEoKSwgIyNfX1ZBX0FSR1NfXykKKyNk
ZWZpbmUgTE9DQUxfTE9HKHN0ciwgLi4uKSBcCisgICAgTE9DQUxfTE9HX0lGX0FMTE9XRUQoImxv
Z0Nvb2tpZUluZm9ybWF0aW9uOiBwYWdlSUQgPSAlcywgZnJhbWVJRCA9ICVzLCByZXNvdXJjZUlE
ID0gJXM6ICIgc3RyLCBlc2NhcGVkUGFnZUlELnV0ZjgoKS5kYXRhKCksIGVzY2FwZWRGcmFtZUlE
LnV0ZjgoKS5kYXRhKCksIGVzY2FwZWRJZGVudGlmaWVyLnV0ZjgoKS5kYXRhKCksICMjX19WQV9B
UkdTX18pCisKKyAgICBMT0NBTF9MT0coUiIoeyAidXJsIjogIiV7cHVibGljfXMiLCkiLCBlc2Nh
cGVkVVJMLnV0ZjgoKS5kYXRhKCkpOworICAgIExPQ0FMX0xPRyhSIiggICJwYXJ0aXRpb24iOiAi
JXtwdWJsaWN9cyIsKSIsIGVzY2FwZWRQYXJ0aXRpb24udXRmOCgpLmRhdGEoKSk7CisgICAgTE9D
QUxfTE9HKFIiKCAgImhhc1N0b3JhZ2VBY2Nlc3MiOiAle3B1YmxpY31zLCkiLCBoYXNTdG9yYWdl
QWNjZXNzRm9yRnJhbWUgPyAidHJ1ZSIgOiAiZmFsc2UiKTsKKyAgICBMT0NBTF9MT0coUiIoICAi
cmVmZXJlciI6ICIle3B1YmxpY31zIiwpIiwgZXNjYXBlZFJlZmVycmVyLnV0ZjgoKS5kYXRhKCkp
OworICAgIExPQ0FMX0xPRyhSIiggICJjb29raWVzIjogWykiKTsKKworICAgIGF1dG8gc2l6ZSA9
IGNvb2tpZXMuc2l6ZSgpOworICAgIGRlY2x0eXBlKHNpemUpIGNvdW50ID0gMDsKKyAgICBmb3Ig
KGNvbnN0IGF1dG8mIGNvb2tpZSA6IGNvb2tpZXMpIHsKKyAgICAgICAgY29uc3QgY2hhciogdHJh
aWxpbmdDb21tYSA9ICIsIjsKKyAgICAgICAgaWYgKCsrY291bnQgPT0gc2l6ZSkKKyAgICAgICAg
ICAgIHRyYWlsaW5nQ29tbWEgPSAiIjsKKworICAgICAgICBhdXRvIGVzY2FwZWROYW1lID0gZXNj
YXBlRm9ySlNPTihjb29raWUubmFtZSk7CisgICAgICAgIGF1dG8gZXNjYXBlZFZhbHVlID0gZXNj
YXBlRm9ySlNPTihjb29raWUudmFsdWUpOworICAgICAgICBhdXRvIGVzY2FwZWREb21haW4gPSBl
c2NhcGVGb3JKU09OKGNvb2tpZS5kb21haW4pOworICAgICAgICBhdXRvIGVzY2FwZWRQYXRoID0g
ZXNjYXBlRm9ySlNPTihjb29raWUucGF0aCk7CisgICAgICAgIGF1dG8gZXNjYXBlZENvbW1lbnQg
PSBlc2NhcGVGb3JKU09OKGNvb2tpZS5jb21tZW50KTsKKyAgICAgICAgYXV0byBlc2NhcGVkQ29t
bWVudFVSTCA9IGVzY2FwZUZvckpTT04oY29va2llLmNvbW1lbnRVUkwuc3RyaW5nKCkpOworCisg
ICAgICAgIExPQ0FMX0xPRyhSIiggIHsgIm5hbWUiOiAiJXtwdWJsaWN9cyIsKSIsIGVzY2FwZWRO
YW1lLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBMT0NBTF9MT0coUiIoICAgICJ2YWx1ZSI6ICIl
e3B1YmxpY31zIiwpIiwgZXNjYXBlZFZhbHVlLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBMT0NB
TF9MT0coUiIoICAgICJkb21haW4iOiAiJXtwdWJsaWN9cyIsKSIsIGVzY2FwZWREb21haW4udXRm
OCgpLmRhdGEoKSk7CisgICAgICAgIExPQ0FMX0xPRyhSIiggICAgInBhdGgiOiAiJXtwdWJsaWN9
cyIsKSIsIGVzY2FwZWRQYXRoLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBMT0NBTF9MT0coUiIo
ICAgICJjcmVhdGVkIjogJWYsKSIsIGNvb2tpZS5jcmVhdGVkKTsKKyAgICAgICAgTE9DQUxfTE9H
KFIiKCAgICAiZXhwaXJlcyI6ICVmLCkiLCBjb29raWUuZXhwaXJlcyk7CisgICAgICAgIExPQ0FM
X0xPRyhSIiggICAgImh0dHBPbmx5IjogJXtwdWJsaWN9cywpIiwgY29va2llLmh0dHBPbmx5ID8g
InRydWUiIDogImZhbHNlIik7CisgICAgICAgIExPQ0FMX0xPRyhSIiggICAgInNlY3VyZSI6ICV7
cHVibGljfXMsKSIsIGNvb2tpZS5zZWN1cmUgPyAidHJ1ZSIgOiAiZmFsc2UiKTsKKyAgICAgICAg
TE9DQUxfTE9HKFIiKCAgICAic2Vzc2lvbiI6ICV7cHVibGljfXMsKSIsIGNvb2tpZS5zZXNzaW9u
ID8gInRydWUiIDogImZhbHNlIik7CisgICAgICAgIExPQ0FMX0xPRyhSIiggICAgImNvbW1lbnQi
OiAiJXtwdWJsaWN9cyIsKSIsIGVzY2FwZWRDb21tZW50LnV0ZjgoKS5kYXRhKCkpOworICAgICAg
ICBMT0NBTF9MT0coUiIoICAgICJjb21tZW50VVJMIjogIiV7cHVibGljfXMiKSIsIGVzY2FwZWRD
b21tZW50VVJMLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBMT0NBTF9MT0coUiIoICB9JXtwdWJs
aWN9cykiLCB0cmFpbGluZ0NvbW1hKTsKICAgICB9CisgICAgTE9DQUxfTE9HKFIiKF19KSIpOwor
I3VuZGVmIExPQ0FMX0xPRworI3VuZGVmIExPQ0FMX0xPR19JRl9BTExPV0VECiB9CiAjZW5kaWYK
IApJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2Fk
ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtS
ZXNvdXJjZUxvYWRlci5oCShyZXZpc2lvbiAyMjc5OTEpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2
ICszNiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEJsb2JEYXRhRmlsZVJlZmVy
ZW5jZTsKK2NsYXNzIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjsKIGNsYXNzIFJlc291cmNlUmVxdWVz
dDsKIH0KIApAQCAtMTAzLDYgKzEwNCwxMSBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc01haW5SZXNv
dXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1ldGVycy5yZXF1ZXN0LnJlcXVlc3RlcigpID09
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6UmVxdWVzdGVyOjpNYWluOyB9CiAgICAgYm9vbCBp
c0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSBjb25zdDsKIAorI2lmIEhBVkUoQ0ZORVRXT1JLX1NU
T1JBR0VfUEFSVElUSU9OSU5HKSAmJiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyAgICBzdGF0aWMg
Ym9vbCBzaG91bGRMb2dDb29raWVJbmZvcm1hdGlvbigpOworICAgIHN0YXRpYyB2b2lkIGxvZ0Nv
b2tpZUluZm9ybWF0aW9uKGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IHZvaWQqIGxvZ2dlZE9i
amVjdCwgY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2ViQ29y
ZTo6VVJMJiBwYXJ0aXRpb24sIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFN0cmluZyYgcmVm
ZXJyZXIsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0ZDo6b3B0aW9uYWw8dWlu
dDY0X3Q+IHBhZ2VJRCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gaWRlbnRpZmllcik7CisjZW5k
aWYKKwogcHJpdmF0ZToKICAgICBOZXR3b3JrUmVzb3VyY2VMb2FkZXIoY29uc3QgTmV0d29ya1Jl
c291cmNlTG9hZFBhcmFtZXRlcnMmLCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYsIFJl
ZlB0cjxNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlBlcmZvcm1TeW5j
aHJvbm91c0xvYWQ6OkRlbGF5ZWRSZXBseT4mJik7CiAKQEAgLTEzNSw3ICsxNDEsNiBAQCBwcml2
YXRlOgogICAgIHZvaWQgaW52YWxpZGF0ZVNhbmRib3hFeHRlbnNpb25zKCk7CiAKICNpZiBIQVZF
KENGTkVUV09SS19TVE9SQUdFX1BBUlRJVElPTklORykgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVE
Ci0gICAgYm9vbCBzaG91bGRMb2dDb29raWVJbmZvcm1hdGlvbigpIGNvbnN0OwogICAgIHZvaWQg
bG9nQ29va2llSW5mb3JtYXRpb24oKSBjb25zdDsKICNlbmRpZgogCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNr
Q29jb2EubW0JKHJldmlzaW9uIDIyNzk5MSkKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTE5OCwx
MiArMTk4LDE0IEBAIE5ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3b3JrRGF0YVRhc2tDb2MKIAog
I2lmIEhBVkUoQ0ZORVRXT1JLX1NUT1JBR0VfUEFSVElUSU9OSU5HKQogICAgIGlmIChhdXRvIHNo
b3VsZEJsb2NrQ29va2llcyA9IHNlc3Npb24ubmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkuc2hvdWxk
QmxvY2tDb29raWVzKHJlcXVlc3QpKSB7Ci0gICAgICAgIExPRyhOZXR3b3JrU2Vzc2lvbiwgIiVs
bHUgQmxvY2tpbmcgY29va2llcyBmb3IgVVJMICVzIiwgW21fdGFzayB0YXNrSWRlbnRpZmllcl0s
IG5zUmVxdWVzdC5VUkwuYWJzb2x1dGVTdHJpbmcuVVRGOFN0cmluZyk7CisgICAgICAgIGlmIChO
ZXR3b3JrUHJvY2Vzczo6c2luZ2xldG9uKCkuc2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb24oKSkK
KyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGKG1fc2Vzc2lvbi0+c2Vzc2lvbklEKCkuaXNBbHdh
eXNPbkxvZ2dpbmdBbGxvd2VkKCksIE5ldHdvcmssICIlcCAtIE5ldHdvcmtEYXRhVGFza0NvY29h
Ojpsb2dDb29raWVJbmZvcm1hdGlvbjogcGFnZUlEID0gJWxsdSwgZnJhbWVJRCA9ICVsbHUsIHRh
c2tJRCA9ICVsdTogQmxvY2tpbmcgY29va2llcyBmb3IgVVJMICVzIiwgdGhpcywgcGFnZUlELCBm
cmFtZUlELCAodW5zaWduZWQgbG9uZylbbV90YXNrIHRhc2tJZGVudGlmaWVyXSwgbnNSZXF1ZXN0
LlVSTC5hYnNvbHV0ZVN0cmluZy5VVEY4U3RyaW5nKTsKICAgICAgICAgYXBwbHlDb29raWVCbG9j
a2luZ1BvbGljeShzaG91bGRCbG9ja0Nvb2tpZXMpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGF1
dG8gc3RvcmFnZVBhcnRpdGlvbiA9IHNlc3Npb24ubmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkuY29v
a2llU3RvcmFnZVBhcnRpdGlvbihyZXF1ZXN0LCBtX2ZyYW1lSUQsIG1fcGFnZUlEKTsKICAgICAg
ICAgaWYgKCFzdG9yYWdlUGFydGl0aW9uLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgTE9HKE5l
dHdvcmtTZXNzaW9uLCAiJWxsdSBQYXJ0aXRpb25pbmcgY29va2llcyBmb3IgVVJMICVzIiwgW21f
dGFzayB0YXNrSWRlbnRpZmllcl0sIG5zUmVxdWVzdC5VUkwuYWJzb2x1dGVTdHJpbmcuVVRGOFN0
cmluZyk7CisgICAgICAgICAgICBpZiAoTmV0d29ya1Byb2Nlc3M6OnNpbmdsZXRvbigpLnNob3Vs
ZExvZ0Nvb2tpZUluZm9ybWF0aW9uKCkpCisgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUYo
bV9zZXNzaW9uLT5zZXNzaW9uSUQoKS5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgTmV0d29y
aywgIiVwIC0gTmV0d29ya0RhdGFUYXNrQ29jb2E6OmxvZ0Nvb2tpZUluZm9ybWF0aW9uOiBwYWdl
SUQgPSAlbGx1LCBmcmFtZUlEID0gJWxsdSwgdGFza0lEID0gJWx1OiBQYXJ0aXRpb25pbmcgY29v
a2llcyBmb3IgVVJMICVzIiwgdGhpcywgcGFnZUlELCBmcmFtZUlELCAodW5zaWduZWQgbG9uZylb
bV90YXNrIHRhc2tJZGVudGlmaWVyXSwgbnNSZXF1ZXN0LlVSTC5hYnNvbHV0ZVN0cmluZy5VVEY4
U3RyaW5nKTsKICAgICAgICAgICAgIGFwcGx5Q29va2llUGFydGl0aW9uaW5nUG9saWN5KHN0b3Jh
Z2VQYXJ0aXRpb24sIGVtcHR5U3RyaW5nKCkpOwogICAgICAgICB9CiAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>333095</attachid>
            <date>2018-02-05 10:41:25 -0800</date>
            <delta_ts>2018-02-05 10:41:25 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-182455-20180205104124.patch</filename>
            <type>text/plain</type>
            <size>19186</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyODAzNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDE4LTAyLTAyICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIEltcHJvdmUgTmV0d29ya1Jl
c291cmNlTG9hZGVyIGxvZ2dpbmcgc28gaXQgY2FuIGJlIHVzZWQgZm9yICdzZXRDb29raWVzRnJv
bURPTScKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4
MjQ1NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzY2MjY2MDE+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAgICAgICAgQWZ0ZXIgdGhpcyByZWZhY3RvcmluZywgYSBj
b252ZW5pZW5jZSBtZXRob2QgSSBhZGRlZCBpbiByMjI3ODYwIGlzIG5vIGxvbmdlciBuZWVkZWQu
CisgICAgICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyB0aGlzIGRlYWQgY29kZS4KKworICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg6IEV4cG9ydCAnY29va2ll
U3RvcmFnZVBhcnRpdGlvbicgc28gaXQgY2FuCisgICAgICAgIGJlIHVzZWQgaW4gV2ViS2l0Lgor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXQu
Y3BwOiAKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6aGFzU3RvcmFn
ZUFjY2Vzc0ZvckZyYW1lKTogRGVsZXRlZCB1bnVzZWQgbWV0aG9kLgorCiAyMDE4LTAyLTAyICBZ
b3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBDbGVhcmluZyBhbGwg
c2VydmljZSB3b3JrZXIgcmVnaXN0cmF0aW9ucyBzaG91bGQgd2FpdCBmb3IgaW1wb3J0aW5nIHNl
cnZpY2Ugd29ya2VyIHJlZ2lzdHJhdGlvbiB0byBmaW5pc2gKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaAko
cmV2aXNpb24gMjI3OTkxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3
b3JrU3RvcmFnZVNlc3Npb24uaAkod29ya2luZyBjb3B5KQpAQCAtMTAxLDExICsxMDEsMTAgQEAg
cHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBjb29raWVTdG9yYWdlUGFydGl0aW9u
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQs
IHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBP
UlQgYm9vbCBzaG91bGRCbG9ja0Nvb2tpZXMoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JikgY29uc3Q7
CiAgICAgYm9vbCBzaG91bGRCbG9ja0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5Rm9yQ29v
a2llcywgY29uc3QgVVJMJiByZXNvdXJjZSkgY29uc3Q7Ci0gICAgU3RyaW5nIGNvb2tpZVN0b3Jh
Z2VQYXJ0aXRpb24oY29uc3QgVVJMJiBmaXJzdFBhcnR5Rm9yQ29va2llcywgY29uc3QgVVJMJiBy
ZXNvdXJjZSwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgc3RkOjpvcHRpb25hbDx1
aW50NjRfdD4gcGFnZUlEKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgY29va2ll
U3RvcmFnZVBhcnRpdGlvbihjb25zdCBVUkwmIGZpcnN0UGFydHlGb3JDb29raWVzLCBjb25zdCBV
UkwmIHJlc291cmNlLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBzdGQ6Om9wdGlv
bmFsPHVpbnQ2NF90PiBwYWdlSUQpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0
UHJldmFsZW50RG9tYWluc1RvUGFydGl0aW9uT3JCbG9ja0Nvb2tpZXMoY29uc3QgVmVjdG9yPFN0
cmluZz4mIGRvbWFpbnNUb1BhcnRpdGlvbiwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGRvbWFpbnNU
b0Jsb2NrLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9tYWluc1RvTmVpdGhlclBhcnRpdGlvbk5v
ckJsb2NrLCBib29sIGNsZWFyRmlyc3QpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVtb3Zl
UHJldmFsZW50RG9tYWlucyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9tYWlucyk7CiAgICAgV0VC
Q09SRV9FWFBPUlQgYm9vbCBoYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWUoY29uc3QgU3RyaW5nJiBy
ZXNvdXJjZURvbWFpbiwgY29uc3QgU3RyaW5nJiBmaXJzdFBhcnR5RG9tYWluLCB1aW50NjRfdCBm
cmFtZUlELCB1aW50NjRfdCBwYWdlSUQpIGNvbnN0OwotICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wg
aGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIHVpbnQ2NF90
IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBncmFudFN0b3JhZ2VBY2Nlc3NGb3JGcmFtZShjb25zdCBTdHJpbmcmIHJlc291cmNlRG9tYWlu
LCBjb25zdCBTdHJpbmcmIGZpcnN0UGFydHlEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2
NF90IHBhZ2VJRCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVTdG9yYWdlQWNjZXNz
Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgcGFnZUlEKTsKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JBbGxGcmFtZXNPblBhZ2UodWludDY0
X3QgcGFnZUlEKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTmV0
d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXQuY3BwCShyZXZp
c2lvbiAyMjc5OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdv
cmtTdG9yYWdlU2Vzc2lvbkNGTmV0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjk2LDE0ICsyOTYs
NiBAQCBib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6aGFzU3RvcmFnZUFjCiAgICAgcmV0dXJu
IGl0Mi0+dmFsdWUgPT0gcmVzb3VyY2VEb21haW47CiB9CiAKLWJvb2wgTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uOjpoYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWUoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0LCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQpIGNvbnN0Ci17Ci0gICAg
aWYgKCFjb29raWVTdG9yYWdlUGFydGl0aW9uaW5nRW5hYmxlZCkKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotCi0gICAgcmV0dXJuIGhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZShnZXRQYXJ0aXRpb25p
bmdEb21haW4ocmVxdWVzdC51cmwoKSksIGdldFBhcnRpdGlvbmluZ0RvbWFpbihyZXF1ZXN0LmZp
cnN0UGFydHlGb3JDb29raWVzKCkpLCBmcmFtZUlELCBwYWdlSUQpOwotfQotCiB2b2lkIE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbjo6Z3JhbnRTdG9yYWdlQWNjZXNzRm9yRnJhbWUoY29uc3QgU3RyaW5n
JiByZXNvdXJjZURvbWFpbiwgY29uc3QgU3RyaW5nJiBmaXJzdFBhcnR5RG9tYWluLCB1aW50NjRf
dCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGZpcnN0UGFy
dHlEb21haW4pOwpJbmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyNzk5MSkKKysrIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTgtMDItMDIg
IEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wcm92ZSBO
ZXR3b3JrUmVzb3VyY2VMb2FkZXIgbG9nZ2luZyBzbyBpdCBjYW4gYmUgdXNlZCBmb3IgJ3NldENv
b2tpZXNGcm9tRE9NJworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTgyNDU1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNjYyNjYwMT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBDaHJpcyBEdW1lei4KKworICAgICAgICBSZWZhY3RvciAibG9nQ29va2ll
SW5mb3JtYXRpb24iIHNvIHRoYXQgaXQgY2FuIGJlIHVzZWQgZm9yIHJlc291cmNlIGxvYWRzIGFu
ZCBET00gY29va2llCisgICAgICAgIG1hbmlwdWxhdGlvbi4gUGxhY2UgdGhlIGdlbmVyYWxseSB1
c2VmdWwgbG9naWMgaW4gYSBzdGF0aWMgbWV0aG9kIHRoYXQgY2FuIGJlIGludm9rZWQKKyAgICAg
ICAgZnJvbSBvdGhlciBwbGFjZXMgaW4gdGhlIE5ldHdvcmtQcm9jZXNzLgorCisgICAgICAgIENh
bGwgdGhlIG5ldyByZWZhY3RvcmVkIG1ldGhvZCBmcm9tIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpzZXRDb29raWVzRnJvbURPTSBzbworICAgICAgICB3ZSBjYW4gcGVyZm9ybSBsb2dn
aW5nIHRoZXJlIGFzIHdlbGwuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpzZXRDb29raWVzRnJvbURPTSk6IENhbGwgdGhlIG5ldyBsb2dnaW5n
IG1ldGhvZAorICAgICAgICAod2hlbiBlbmFibGVkKS4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVz
b3VyY2VMb2FkZXI6OnNob3VsZExvZ0Nvb2tpZUluZm9ybWF0aW9uKTogQ2hhbmdlZCB0byBzdGF0
aWMgbWV0aG9kLgorICAgICAgICAoV2ViS2l0Ojplc2NhcGVGb3JKU09OKTogTWFkZSBhIHN0YXRp
YyBmdW5jdGlvbiBzbyBpdCBjb3VsZCBiZSBzaGFyZWQgYmV0d2VlbiBtdWx0aXBsZQorICAgICAg
ICBtZXRob2RzLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmxvZ0Nv
b2tpZUluZm9ybWF0aW9uIGNvbnN0KTogUmVmYWN0b3IgaW50byB0d28gbWV0aG9kcy4KKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpsb2dDb29raWVJbmZvcm1hdGlvbik6
IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnNob3VsZExv
Z0Nvb2tpZUluZm9ybWF0aW9uIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9j
b2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Rh
dGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0NvY29hKTogU3dpdGNoIHRvIHVzZXItZW5hYmxl
ZCByZWxlYXNlIGxvZ2dpbmcKKyAgICAgICAgdG8gdHJhY2sgcGFydGl0aW9uaW5nIGFuZCBibG9j
a2luZyBiZWhhdmlvci4KKwogMjAxOC0wMi0wMSAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFw
cGxlLmNvbT4KIAogICAgICAgICBJbXByb3ZlIE5ldHdvcmtSZXNvdXJjZUxvZ2dlciB0byByZXBv
cnQgYmxvY2tlZCAodmVyc3VzIG5vbi1wYXJ0aXRpb25lZCkgY29va2llcwpJbmRleDogU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5jcHAJKHJldmlzaW9uIDIyNzk5MSkKKysrIFNvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE4
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMzQyLDcgKzM0MiwxNCBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpjb29rCiAKIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnNldENv
b2tpZXNGcm9tRE9NKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBh
cnR5LCBjb25zdCBVUkwmIHVybCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgc3Rk
OjpvcHRpb25hbDx1aW50NjRfdD4gcGFnZUlELCBjb25zdCBTdHJpbmcmIGNvb2tpZVN0cmluZykK
IHsKLSAgICBXZWJDb3JlOjpzZXRDb29raWVzRnJvbURPTShzdG9yYWdlU2Vzc2lvbihzZXNzaW9u
SUQpLCBmaXJzdFBhcnR5LCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCwgY29va2llU3RyaW5nKTsKKyAg
ICBhdXRvJiBuZXR3b3JrU3RvcmFnZVNlc3Npb24gPSBzdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQp
OworICAgIFdlYkNvcmU6OnNldENvb2tpZXNGcm9tRE9NKG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiwg
Zmlyc3RQYXJ0eSwgdXJsLCBmcmFtZUlELCBwYWdlSUQsIGNvb2tpZVN0cmluZyk7CisjaWYgSEFW
RShDRk5FVFdPUktfU1RPUkFHRV9QQVJUSVRJT05JTkcpICYmICFSRUxFQVNFX0xPR19ESVNBQkxF
RAorICAgIGlmIChOZXR3b3JrUHJvY2Vzczo6c2luZ2xldG9uKCkuc2hvdWxkTG9nQ29va2llSW5m
b3JtYXRpb24oKSkgeworICAgICAgICBhdXRvIHBhcnRpdGlvbiA9IFdlYkNvcmU6OlVSTChQYXJz
ZWRVUkxTdHJpbmcsIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jb29raWVTdG9yYWdlUGFydGl0aW9u
KGZpcnN0UGFydHksIHVybCwgZnJhbWVJRCwgcGFnZUlEKSk7CisgICAgICAgIE5ldHdvcmtSZXNv
dXJjZUxvYWRlcjo6bG9nQ29va2llSW5mb3JtYXRpb24oIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpzZXRDb29raWVzRnJvbURPTSIsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qgdm9pZCo+
KHRoaXMpLCBuZXR3b3JrU3RvcmFnZVNlc3Npb24sIHBhcnRpdGlvbiwgdXJsLCBlbXB0eVN0cmlu
ZygpLCBmcmFtZUlELCBwYWdlSUQsIHN0ZDo6bnVsbG9wdCk7CisgICAgfQorI2VuZGlmCiB9CiAK
IHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZXNFbmFibGVkKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCYgcmVzdWx0KQpJbmRleDogU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAkocmV2
aXNpb24gMjI3OTkxKQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVz
b3VyY2VMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MTAsMTEgKzcxMCwxNiBAQCBib29s
IE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c2hvdWxkQ2FwdHVyCiB9CiAKICNpZiBIQVZFKENGTkVU
V09SS19TVE9SQUdFX1BBUlRJVElPTklORykgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECi1ib29s
IE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb24oKSBjb25z
dAorYm9vbCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnNob3VsZExvZ0Nvb2tpZUluZm9ybWF0aW9u
KCkKIHsKICAgICByZXR1cm4gTmV0d29ya1Byb2Nlc3M6OnNpbmdsZXRvbigpLnNob3VsZExvZ0Nv
b2tpZUluZm9ybWF0aW9uKCk7CiB9CiAKK3N0YXRpYyBTdHJpbmcgZXNjYXBlRm9ySlNPTihTdHJp
bmcgcykKK3sKKyAgICByZXR1cm4gcy5yZXBsYWNlKCdcXCcsICJcXFxcIikucmVwbGFjZSgnIics
ICJcXFwiIik7Cit9CisKIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpsb2dDb29raWVJbmZv
cm1hdGlvbigpIGNvbnN0CiB7CiAgICAgQVNTRVJUKHNob3VsZExvZ0Nvb2tpZUluZm9ybWF0aW9u
KCkpOwpAQCAtNzI1LDEwICs3MzAsNiBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6bG9n
Q29va2llSW5mCiAjZGVmaW5lIExPQ0FMX0xPRyhzdHIsIC4uLikgXAogICAgIFJFTEVBU0VfTE9H
X0lGX0FMTE9XRUQoImxvZ0Nvb2tpZUluZm9ybWF0aW9uOiBwYWdlSUQgPSAlIiBQUkl1NjQgIiwg
ZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICI6ICIgc3RyLCBw
YWdlSUQoKSwgZnJhbWVJRCgpLCBpZGVudGlmaWVyKCksICMjX19WQV9BUkdTX18pCiAKLSAgICBh
dXRvIGVzY2FwZUZvckpTT04gPSBbXShTdHJpbmcgcykgewotICAgICAgICByZXR1cm4gcy5yZXBs
YWNlKCdcXCcsICJcXFxcIikucmVwbGFjZSgnIicsICJcXFwiIik7Ci0gICAgfTsKLQogICAgIGF1
dG8gdXJsID0gb3JpZ2luYWxSZXF1ZXN0KCkudXJsKCk7CiAgICAgaWYgKG5ldHdvcmtTdG9yYWdl
U2Vzc2lvbi0+c2hvdWxkQmxvY2tDb29raWVzKG9yaWdpbmFsUmVxdWVzdCgpKSkgewogICAgICAg
ICBhdXRvIGVzY2FwZWRVUkwgPSBlc2NhcGVGb3JKU09OKHVybC5zdHJpbmcoKSk7CkBAIC03NDEs
NTQgKzc0Miw3MiBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6bG9nQ29va2llSW5mCiAg
ICAgICAgIExPQ0FMX0xPRyhSIiggICJjb29raWVzIjogW119KSIpOwogICAgICAgICByZXR1cm47
CiAgICAgfQorI3VuZGVmIExPQ0FMX0xPRwogCiAgICAgYXV0byBwYXJ0aXRpb24gPSBXZWJDb3Jl
OjpVUkwoUGFyc2VkVVJMU3RyaW5nLCBuZXR3b3JrU3RvcmFnZVNlc3Npb24tPmNvb2tpZVN0b3Jh
Z2VQYXJ0aXRpb24ob3JpZ2luYWxSZXF1ZXN0KCksIGZyYW1lSUQoKSwgcGFnZUlEKCkpKTsKLSAg
ICBib29sIGhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZSA9IG5ldHdvcmtTdG9yYWdlU2Vzc2lvbi0+
aGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKG9yaWdpbmFsUmVxdWVzdCgpLCBmcmFtZUlEKCksIHBh
Z2VJRCgpKTsKKyAgICBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmxvZ0Nvb2tpZUluZm9ybWF0aW9u
KCJOZXR3b3JrUmVzb3VyY2VMb2FkZXIiLCByZWludGVycHJldF9jYXN0PGNvbnN0IHZvaWQqPih0
aGlzKSwgKm5ldHdvcmtTdG9yYWdlU2Vzc2lvbiwgcGFydGl0aW9uLCB1cmwsIG9yaWdpbmFsUmVx
dWVzdCgpLmh0dHBSZWZlcnJlcigpLCBmcmFtZUlEKCksIHBhZ2VJRCgpLCBpZGVudGlmaWVyKCkp
OworfQorCit2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6bG9nQ29va2llSW5mb3JtYXRpb24o
Y29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3Qgdm9pZCogbG9nZ2VkT2JqZWN0LCBjb25zdCBXZWJD
b3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiwgY29uc3Qg
V2ViQ29yZTo6VVJMJiBwYXJ0aXRpb24sIGNvbnN0IFdlYkNvcmU6OlVSTCYgdXJsLCBjb25zdCBT
dHJpbmcmIHJlZmVycmVyLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBzdGQ6Om9w
dGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGlkZW50aWZp
ZXIpCit7CisgICAgQVNTRVJUKHNob3VsZExvZ0Nvb2tpZUluZm9ybWF0aW9uKCkpOwogCiAgICAg
VmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gY29va2llczsKLSAgICBib29sIHJlc3VsdCA9IFdlYkNv
cmU6OmdldFJhd0Nvb2tpZXMoKm5ldHdvcmtTdG9yYWdlU2Vzc2lvbiwgcGFydGl0aW9uLCB1cmws
IGZyYW1lSUQoKSwgcGFnZUlEKCksIGNvb2tpZXMpOworICAgIGlmICghV2ViQ29yZTo6Z2V0UmF3
Q29va2llcyhuZXR3b3JrU3RvcmFnZVNlc3Npb24sIHBhcnRpdGlvbiwgdXJsLCBmcmFtZUlELCBw
YWdlSUQsIGNvb2tpZXMpKQorICAgICAgICByZXR1cm47CiAKLSAgICBpZiAocmVzdWx0KSB7Ci0g
ICAgICAgIGF1dG8gZXNjYXBlZFVSTCA9IGVzY2FwZUZvckpTT04odXJsLnN0cmluZygpKTsKLSAg
ICAgICAgYXV0byBlc2NhcGVkUGFydGl0aW9uID0gZXNjYXBlRm9ySlNPTihwYXJ0aXRpb24uc3Ry
aW5nKCkpOwotICAgICAgICBhdXRvIGVzY2FwZWRSZWZlcnJlciA9IGVzY2FwZUZvckpTT04ob3Jp
Z2luYWxSZXF1ZXN0KCkuaHR0cFJlZmVycmVyKCkpOworICAgIGF1dG8gZXNjYXBlSURGb3JKU09O
ID0gW10oc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gdmFsdWUpIHsKKyAgICAgICAgcmV0dXJuIHZh
bHVlID8gU3RyaW5nOjpudW1iZXIodmFsdWUudmFsdWUoKSkgOiBTdHJpbmcoIk5vbmUiKTsKKyAg
ICB9OwogCi0gICAgICAgIExPQ0FMX0xPRyhSIih7ICJ1cmwiOiAiJXtwdWJsaWN9cyIsKSIsIGVz
Y2FwZWRVUkwudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgIExPQ0FMX0xPRyhSIiggICJwYXJ0aXRp
b24iOiAiJXtwdWJsaWN9cyIsKSIsIGVzY2FwZWRQYXJ0aXRpb24udXRmOCgpLmRhdGEoKSk7Ci0g
ICAgICAgIExPQ0FMX0xPRyhSIiggICJoYXNTdG9yYWdlQWNjZXNzIjogJXtwdWJsaWN9cywpIiwg
aGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lID8gInRydWUiIDogImZhbHNlIik7Ci0gICAgICAgIExP
Q0FMX0xPRyhSIiggICJyZWZlcmVyIjogIiV7cHVibGljfXMiLCkiLCBlc2NhcGVkUmVmZXJyZXIu
dXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgIExPQ0FMX0xPRyhSIiggICJjb29raWVzIjogWykiKTsK
KyAgICBhdXRvIGVzY2FwZWRVUkwgPSBlc2NhcGVGb3JKU09OKHVybC5zdHJpbmcoKSk7CisgICAg
YXV0byBlc2NhcGVkUGFydGl0aW9uID0gZXNjYXBlRm9ySlNPTihwYXJ0aXRpb24uc3RyaW5nKCkp
OworICAgIGF1dG8gZXNjYXBlZFJlZmVycmVyID0gZXNjYXBlRm9ySlNPTihyZWZlcnJlcik7Cisg
ICAgYXV0byBlc2NhcGVkRnJhbWVJRCA9IGVzY2FwZUlERm9ySlNPTihmcmFtZUlEKTsKKyAgICBh
dXRvIGVzY2FwZWRQYWdlSUQgPSBlc2NhcGVJREZvckpTT04ocGFnZUlEKTsKKyAgICBhdXRvIGVz
Y2FwZWRJZGVudGlmaWVyID0gZXNjYXBlSURGb3JKU09OKGlkZW50aWZpZXIpOworICAgIGJvb2wg
aGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lID0gKGZyYW1lSUQgJiYgcGFnZUlEKSA/IG5ldHdvcmtT
dG9yYWdlU2Vzc2lvbi5oYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWUodXJsLnN0cmluZygpLCBwYXJ0
aXRpb24uc3RyaW5nKCksIGZyYW1lSUQudmFsdWUoKSwgcGFnZUlELnZhbHVlKCkpIDogZmFsc2U7
CiAKLSAgICAgICAgYXV0byBzaXplID0gY29va2llcy5zaXplKCk7Ci0gICAgICAgIGRlY2x0eXBl
KHNpemUpIGNvdW50ID0gMDsKLSAgICAgICAgZm9yIChjb25zdCBhdXRvJiBjb29raWUgOiBjb29r
aWVzKSB7Ci0gICAgICAgICAgICBjb25zdCBjaGFyKiB0cmFpbGluZ0NvbW1hID0gIiwiOwotICAg
ICAgICAgICAgaWYgKCsrY291bnQgPT0gc2l6ZSkKLSAgICAgICAgICAgICAgICB0cmFpbGluZ0Nv
bW1hID0gIiI7Ci0KLSAgICAgICAgICAgIGF1dG8gZXNjYXBlZE5hbWUgPSBlc2NhcGVGb3JKU09O
KGNvb2tpZS5uYW1lKTsKLSAgICAgICAgICAgIGF1dG8gZXNjYXBlZFZhbHVlID0gZXNjYXBlRm9y
SlNPTihjb29raWUudmFsdWUpOwotICAgICAgICAgICAgYXV0byBlc2NhcGVkRG9tYWluID0gZXNj
YXBlRm9ySlNPTihjb29raWUuZG9tYWluKTsKLSAgICAgICAgICAgIGF1dG8gZXNjYXBlZFBhdGgg
PSBlc2NhcGVGb3JKU09OKGNvb2tpZS5wYXRoKTsKLSAgICAgICAgICAgIGF1dG8gZXNjYXBlZENv
bW1lbnQgPSBlc2NhcGVGb3JKU09OKGNvb2tpZS5jb21tZW50KTsKLSAgICAgICAgICAgIGF1dG8g
ZXNjYXBlZENvbW1lbnRVUkwgPSBlc2NhcGVGb3JKU09OKGNvb2tpZS5jb21tZW50VVJMLnN0cmlu
ZygpKTsKLQotICAgICAgICAgICAgTE9DQUxfTE9HKFIiKCAgeyAibmFtZSI6ICIle3B1YmxpY31z
IiwpIiwgZXNjYXBlZE5hbWUudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgICAgICBMT0NBTF9MT0co
UiIoICAgICJ2YWx1ZSI6ICIle3B1YmxpY31zIiwpIiwgZXNjYXBlZFZhbHVlLnV0ZjgoKS5kYXRh
KCkpOwotICAgICAgICAgICAgTE9DQUxfTE9HKFIiKCAgICAiZG9tYWluIjogIiV7cHVibGljfXMi
LCkiLCBlc2NhcGVkRG9tYWluLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICAgICAgTE9DQUxfTE9H
KFIiKCAgICAicGF0aCI6ICIle3B1YmxpY31zIiwpIiwgZXNjYXBlZFBhdGgudXRmOCgpLmRhdGEo
KSk7Ci0gICAgICAgICAgICBMT0NBTF9MT0coUiIoICAgICJjcmVhdGVkIjogJWYsKSIsIGNvb2tp
ZS5jcmVhdGVkKTsKLSAgICAgICAgICAgIExPQ0FMX0xPRyhSIiggICAgImV4cGlyZXMiOiAlZiwp
IiwgY29va2llLmV4cGlyZXMpOwotICAgICAgICAgICAgTE9DQUxfTE9HKFIiKCAgICAiaHR0cE9u
bHkiOiAle3B1YmxpY31zLCkiLCBjb29raWUuaHR0cE9ubHkgPyAidHJ1ZSIgOiAiZmFsc2UiKTsK
LSAgICAgICAgICAgIExPQ0FMX0xPRyhSIiggICAgInNlY3VyZSI6ICV7cHVibGljfXMsKSIsIGNv
b2tpZS5zZWN1cmUgPyAidHJ1ZSIgOiAiZmFsc2UiKTsKLSAgICAgICAgICAgIExPQ0FMX0xPRyhS
IiggICAgInNlc3Npb24iOiAle3B1YmxpY31zLCkiLCBjb29raWUuc2Vzc2lvbiA/ICJ0cnVlIiA6
ICJmYWxzZSIpOwotICAgICAgICAgICAgTE9DQUxfTE9HKFIiKCAgICAiY29tbWVudCI6ICIle3B1
YmxpY31zIiwpIiwgZXNjYXBlZENvbW1lbnQudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgICAgICBM
T0NBTF9MT0coUiIoICAgICJjb21tZW50VVJMIjogIiV7cHVibGljfXMiKSIsIGVzY2FwZWRDb21t
ZW50VVJMLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICAgICAgTE9DQUxfTE9HKFIiKCAgfSV7cHVi
bGljfXMpIiwgdHJhaWxpbmdDb21tYSk7Ci0gICAgICAgIH0KLSAgICAgICAgTE9DQUxfTE9HKFIi
KF19KSIpOwotI3VuZGVmIExPQ0FMX0xPRworI2RlZmluZSBMT0NBTF9MT0dfSUZfQUxMT1dFRChm
bXQsIC4uLikgUkVMRUFTRV9MT0dfSUYobmV0d29ya1N0b3JhZ2VTZXNzaW9uLnNlc3Npb25JRCgp
LmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBOZXR3b3JrLCAiJXAgLSAlczo6IiBmbXQsIGxv
Z2dlZE9iamVjdCwgbGFiZWwudXRmOCgpLmRhdGEoKSwgIyNfX1ZBX0FSR1NfXykKKyNkZWZpbmUg
TE9DQUxfTE9HKHN0ciwgLi4uKSBcCisgICAgTE9DQUxfTE9HX0lGX0FMTE9XRUQoImxvZ0Nvb2tp
ZUluZm9ybWF0aW9uOiBwYWdlSUQgPSAlcywgZnJhbWVJRCA9ICVzLCByZXNvdXJjZUlEID0gJXM6
ICIgc3RyLCBlc2NhcGVkUGFnZUlELnV0ZjgoKS5kYXRhKCksIGVzY2FwZWRGcmFtZUlELnV0Zjgo
KS5kYXRhKCksIGVzY2FwZWRJZGVudGlmaWVyLnV0ZjgoKS5kYXRhKCksICMjX19WQV9BUkdTX18p
CisKKyAgICBMT0NBTF9MT0coUiIoeyAidXJsIjogIiV7cHVibGljfXMiLCkiLCBlc2NhcGVkVVJM
LnV0ZjgoKS5kYXRhKCkpOworICAgIExPQ0FMX0xPRyhSIiggICJwYXJ0aXRpb24iOiAiJXtwdWJs
aWN9cyIsKSIsIGVzY2FwZWRQYXJ0aXRpb24udXRmOCgpLmRhdGEoKSk7CisgICAgTE9DQUxfTE9H
KFIiKCAgImhhc1N0b3JhZ2VBY2Nlc3MiOiAle3B1YmxpY31zLCkiLCBoYXNTdG9yYWdlQWNjZXNz
Rm9yRnJhbWUgPyAidHJ1ZSIgOiAiZmFsc2UiKTsKKyAgICBMT0NBTF9MT0coUiIoICAicmVmZXJl
ciI6ICIle3B1YmxpY31zIiwpIiwgZXNjYXBlZFJlZmVycmVyLnV0ZjgoKS5kYXRhKCkpOworICAg
IExPQ0FMX0xPRyhSIiggICJjb29raWVzIjogWykiKTsKKworICAgIGF1dG8gc2l6ZSA9IGNvb2tp
ZXMuc2l6ZSgpOworICAgIGRlY2x0eXBlKHNpemUpIGNvdW50ID0gMDsKKyAgICBmb3IgKGNvbnN0
IGF1dG8mIGNvb2tpZSA6IGNvb2tpZXMpIHsKKyAgICAgICAgY29uc3QgY2hhciogdHJhaWxpbmdD
b21tYSA9ICIsIjsKKyAgICAgICAgaWYgKCsrY291bnQgPT0gc2l6ZSkKKyAgICAgICAgICAgIHRy
YWlsaW5nQ29tbWEgPSAiIjsKKworICAgICAgICBhdXRvIGVzY2FwZWROYW1lID0gZXNjYXBlRm9y
SlNPTihjb29raWUubmFtZSk7CisgICAgICAgIGF1dG8gZXNjYXBlZFZhbHVlID0gZXNjYXBlRm9y
SlNPTihjb29raWUudmFsdWUpOworICAgICAgICBhdXRvIGVzY2FwZWREb21haW4gPSBlc2NhcGVG
b3JKU09OKGNvb2tpZS5kb21haW4pOworICAgICAgICBhdXRvIGVzY2FwZWRQYXRoID0gZXNjYXBl
Rm9ySlNPTihjb29raWUucGF0aCk7CisgICAgICAgIGF1dG8gZXNjYXBlZENvbW1lbnQgPSBlc2Nh
cGVGb3JKU09OKGNvb2tpZS5jb21tZW50KTsKKyAgICAgICAgYXV0byBlc2NhcGVkQ29tbWVudFVS
TCA9IGVzY2FwZUZvckpTT04oY29va2llLmNvbW1lbnRVUkwuc3RyaW5nKCkpOworCisgICAgICAg
IExPQ0FMX0xPRyhSIiggIHsgIm5hbWUiOiAiJXtwdWJsaWN9cyIsKSIsIGVzY2FwZWROYW1lLnV0
ZjgoKS5kYXRhKCkpOworICAgICAgICBMT0NBTF9MT0coUiIoICAgICJ2YWx1ZSI6ICIle3B1Ymxp
Y31zIiwpIiwgZXNjYXBlZFZhbHVlLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBMT0NBTF9MT0co
UiIoICAgICJkb21haW4iOiAiJXtwdWJsaWN9cyIsKSIsIGVzY2FwZWREb21haW4udXRmOCgpLmRh
dGEoKSk7CisgICAgICAgIExPQ0FMX0xPRyhSIiggICAgInBhdGgiOiAiJXtwdWJsaWN9cyIsKSIs
IGVzY2FwZWRQYXRoLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBMT0NBTF9MT0coUiIoICAgICJj
cmVhdGVkIjogJWYsKSIsIGNvb2tpZS5jcmVhdGVkKTsKKyAgICAgICAgTE9DQUxfTE9HKFIiKCAg
ICAiZXhwaXJlcyI6ICVmLCkiLCBjb29raWUuZXhwaXJlcyk7CisgICAgICAgIExPQ0FMX0xPRyhS
IiggICAgImh0dHBPbmx5IjogJXtwdWJsaWN9cywpIiwgY29va2llLmh0dHBPbmx5ID8gInRydWUi
IDogImZhbHNlIik7CisgICAgICAgIExPQ0FMX0xPRyhSIiggICAgInNlY3VyZSI6ICV7cHVibGlj
fXMsKSIsIGNvb2tpZS5zZWN1cmUgPyAidHJ1ZSIgOiAiZmFsc2UiKTsKKyAgICAgICAgTE9DQUxf
TE9HKFIiKCAgICAic2Vzc2lvbiI6ICV7cHVibGljfXMsKSIsIGNvb2tpZS5zZXNzaW9uID8gInRy
dWUiIDogImZhbHNlIik7CisgICAgICAgIExPQ0FMX0xPRyhSIiggICAgImNvbW1lbnQiOiAiJXtw
dWJsaWN9cyIsKSIsIGVzY2FwZWRDb21tZW50LnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBMT0NB
TF9MT0coUiIoICAgICJjb21tZW50VVJMIjogIiV7cHVibGljfXMiKSIsIGVzY2FwZWRDb21tZW50
VVJMLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBMT0NBTF9MT0coUiIoICB9JXtwdWJsaWN9cyki
LCB0cmFpbGluZ0NvbW1hKTsKICAgICB9CisgICAgTE9DQUxfTE9HKFIiKF19KSIpOworI3VuZGVm
IExPQ0FMX0xPRworI3VuZGVmIExPQ0FMX0xPR19JRl9BTExPV0VECiB9CiAjZW5kaWYKIApJbmRl
eDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJj
ZUxvYWRlci5oCShyZXZpc2lvbiAyMjc5OTEpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw3
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEJsb2JEYXRhRmlsZVJlZmVyZW5jZTsK
K2NsYXNzIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjsKIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKIH0K
IApAQCAtMTAzLDYgKzEwNCwxMSBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc01haW5SZXNvdXJjZSgp
IGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1ldGVycy5yZXF1ZXN0LnJlcXVlc3RlcigpID09IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdDo6UmVxdWVzdGVyOjpNYWluOyB9CiAgICAgYm9vbCBpc0Fsd2F5
c09uTG9nZ2luZ0FsbG93ZWQoKSBjb25zdDsKIAorI2lmIEhBVkUoQ0ZORVRXT1JLX1NUT1JBR0Vf
UEFSVElUSU9OSU5HKSAmJiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyAgICBzdGF0aWMgYm9vbCBz
aG91bGRMb2dDb29raWVJbmZvcm1hdGlvbigpOworICAgIHN0YXRpYyB2b2lkIGxvZ0Nvb2tpZUlu
Zm9ybWF0aW9uKGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IHZvaWQqIGxvZ2dlZE9iamVjdCwg
Y29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2ViQ29yZTo6VVJM
JiBwYXJ0aXRpb24sIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIs
IHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+
IHBhZ2VJRCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gaWRlbnRpZmllcik7CisjZW5kaWYKKwog
cHJpdmF0ZToKICAgICBOZXR3b3JrUmVzb3VyY2VMb2FkZXIoY29uc3QgTmV0d29ya1Jlc291cmNl
TG9hZFBhcmFtZXRlcnMmLCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYsIFJlZlB0cjxN
ZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlBlcmZvcm1TeW5jaHJvbm91
c0xvYWQ6OkRlbGF5ZWRSZXBseT4mJik7CiAKQEAgLTEzNSw3ICsxNDEsNiBAQCBwcml2YXRlOgog
ICAgIHZvaWQgaW52YWxpZGF0ZVNhbmRib3hFeHRlbnNpb25zKCk7CiAKICNpZiBIQVZFKENGTkVU
V09SS19TVE9SQUdFX1BBUlRJVElPTklORykgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECi0gICAg
Ym9vbCBzaG91bGRMb2dDb29raWVJbmZvcm1hdGlvbigpIGNvbnN0OwogICAgIHZvaWQgbG9nQ29v
a2llSW5mb3JtYXRpb24oKSBjb25zdDsKICNlbmRpZgogCkluZGV4OiBTb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2Eu
bW0JKHJldmlzaW9uIDIyNzk5MSkKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29j
b2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTE5OCwxMiArMTk4
LDIyIEBAIE5ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3b3JrRGF0YVRhc2tDb2MKIAogI2lmIEhB
VkUoQ0ZORVRXT1JLX1NUT1JBR0VfUEFSVElUSU9OSU5HKQogICAgIGlmIChhdXRvIHNob3VsZEJs
b2NrQ29va2llcyA9IHNlc3Npb24ubmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkuc2hvdWxkQmxvY2tD
b29raWVzKHJlcXVlc3QpKSB7CisjaWYgSEFWRShDRk5FVFdPUktfU1RPUkFHRV9QQVJUSVRJT05J
TkcpICYmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorICAgICAgICBpZiAoTmV0d29ya1Byb2Nlc3M6
OnNpbmdsZXRvbigpLnNob3VsZExvZ0Nvb2tpZUluZm9ybWF0aW9uKCkpCisgICAgICAgICAgICBS
RUxFQVNFX0xPR19JRihtX3Nlc3Npb24tPnNlc3Npb25JRCgpLmlzQWx3YXlzT25Mb2dnaW5nQWxs
b3dlZCgpLCBOZXR3b3JrLCAiJXAgLSBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6bG9nQ29va2llSW5m
b3JtYXRpb246IHBhZ2VJRCA9ICVsbHUsIGZyYW1lSUQgPSAlbGx1LCB0YXNrSUQgPSAlbHU6IEJs
b2NraW5nIGNvb2tpZXMgZm9yIFVSTCAlcyIsIHRoaXMsIHBhZ2VJRCwgZnJhbWVJRCwgKHVuc2ln
bmVkIGxvbmcpW21fdGFzayB0YXNrSWRlbnRpZmllcl0sIG5zUmVxdWVzdC5VUkwuYWJzb2x1dGVT
dHJpbmcuVVRGOFN0cmluZyk7CisjZWxzZQogICAgICAgICBMT0coTmV0d29ya1Nlc3Npb24sICIl
bGx1IEJsb2NraW5nIGNvb2tpZXMgZm9yIFVSTCAlcyIsIFttX3Rhc2sgdGFza0lkZW50aWZpZXJd
LCBuc1JlcXVlc3QuVVJMLmFic29sdXRlU3RyaW5nLlVURjhTdHJpbmcpOworI2VuZGlmCiAgICAg
ICAgIGFwcGx5Q29va2llQmxvY2tpbmdQb2xpY3koc2hvdWxkQmxvY2tDb29raWVzKTsKICAgICB9
IGVsc2UgewogICAgICAgICBhdXRvIHN0b3JhZ2VQYXJ0aXRpb24gPSBzZXNzaW9uLm5ldHdvcmtT
dG9yYWdlU2Vzc2lvbigpLmNvb2tpZVN0b3JhZ2VQYXJ0aXRpb24ocmVxdWVzdCwgbV9mcmFtZUlE
LCBtX3BhZ2VJRCk7CiAgICAgICAgIGlmICghc3RvcmFnZVBhcnRpdGlvbi5pc0VtcHR5KCkpIHsK
KyNpZiBIQVZFKENGTkVUV09SS19TVE9SQUdFX1BBUlRJVElPTklORykgJiYgIVJFTEVBU0VfTE9H
X0RJU0FCTEVECisgICAgICAgICAgICBpZiAoTmV0d29ya1Byb2Nlc3M6OnNpbmdsZXRvbigpLnNo
b3VsZExvZ0Nvb2tpZUluZm9ybWF0aW9uKCkpCisgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0df
SUYobV9zZXNzaW9uLT5zZXNzaW9uSUQoKS5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgTmV0
d29yaywgIiVwIC0gTmV0d29ya0RhdGFUYXNrQ29jb2E6OmxvZ0Nvb2tpZUluZm9ybWF0aW9uOiBw
YWdlSUQgPSAlbGx1LCBmcmFtZUlEID0gJWxsdSwgdGFza0lEID0gJWx1OiBQYXJ0aXRpb25pbmcg
Y29va2llcyBmb3IgVVJMICVzIiwgdGhpcywgcGFnZUlELCBmcmFtZUlELCAodW5zaWduZWQgbG9u
ZylbbV90YXNrIHRhc2tJZGVudGlmaWVyXSwgbnNSZXF1ZXN0LlVSTC5hYnNvbHV0ZVN0cmluZy5V
VEY4U3RyaW5nKTsKKyNlbHNlCiAgICAgICAgICAgICBMT0coTmV0d29ya1Nlc3Npb24sICIlbGx1
IFBhcnRpdGlvbmluZyBjb29raWVzIGZvciBVUkwgJXMiLCBbbV90YXNrIHRhc2tJZGVudGlmaWVy
XSwgbnNSZXF1ZXN0LlVSTC5hYnNvbHV0ZVN0cmluZy5VVEY4U3RyaW5nKTsKKyNlbmRpZgogICAg
ICAgICAgICAgYXBwbHlDb29raWVQYXJ0aXRpb25pbmdQb2xpY3koc3RvcmFnZVBhcnRpdGlvbiwg
ZW1wdHlTdHJpbmcoKSk7CiAgICAgICAgIH0KICAgICB9Cg==
</data>
<flag name="commit-queue"
          id="352015"
          type_id="3"
          status="+"
          setter="bfulgham"
    />
          </attachment>
      

    </bug>

</bugzilla>