<?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>182702</bug_id>
          
          <creation_ts>2018-02-12 11:49:57 -0800</creation_ts>
          <short_desc>Miscellaneous refactoring of offlineasm.</short_desc>
          <delta_ts>2018-02-12 15:44:12 -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>JavaScriptCore</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>
          
          <blocked>182708</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>rmorisset</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1398408</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-02-12 11:49:57 -0800</bug_when>
    <thetext>Patch coming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1398409</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-02-12 11:50:41 -0800</bug_when>
    <thetext>&lt;rdar://problem/37467887&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1398411</commentid>
    <comment_count>2</comment_count>
      <attachid>333612</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-02-12 12:02:15 -0800</bug_when>
    <thetext>Created attachment 333612
propose patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1398419</commentid>
    <comment_count>3</comment_count>
      <attachid>333615</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-02-12 12:26:04 -0800</bug_when>
    <thetext>Created attachment 333615
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1398443</commentid>
    <comment_count>4</comment_count>
      <attachid>333615</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2018-02-12 13:03:27 -0800</bug_when>
    <thetext>Comment on attachment 333615
proposed patch.

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

&gt; Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm:58
&gt;      elsif X86 or X86_WIN
&gt;          subp 8, sp
&gt;          push a1
&gt;          push a0
&gt; -        call function
&gt; +        doSlowPathCall(function)

Nit: Why not just do this in the backend? 

Then you wouldn&apos;t need to split this based on architecture.

&gt; Source/JavaScriptCore/offlineasm/instructions.rb:259
&gt; +     &quot;calljs&quot;,
&gt; +     &quot;callnative&quot;,
&gt; +     &quot;callslowpath&quot;,
&gt; +     &quot;callslowpathvoid&quot;

These should be camel case.  I guess you have a conflict between the names of these and the macro name for callSlowPath in the offlineAsm.

I would either rename that macro to slowPathCall or rename these to something else.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1398470</commentid>
    <comment_count>5</comment_count>
      <attachid>333615</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-02-12 14:17:37 -0800</bug_when>
    <thetext>Comment on attachment 333615
proposed patch.

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

&gt;&gt; Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm:58
&gt;&gt; +        doSlowPathCall(function)
&gt; 
&gt; Nit: Why not just do this in the backend? 
&gt; 
&gt; Then you wouldn&apos;t need to split this based on architecture.

Because the backend is only supposed to handle CPU instructions and not calling conventions (such as the stack adjustment made for alignment here).

&gt;&gt; Source/JavaScriptCore/offlineasm/instructions.rb:259
&gt;&gt; +     &quot;callslowpathvoid&quot;
&gt; 
&gt; These should be camel case.  I guess you have a conflict between the names of these and the macro name for callSlowPath in the offlineAsm.
&gt; 
&gt; I would either rename that macro to slowPathCall or rename these to something else.

Note: the &quot;memfence&quot; instruction above isn&apos;t camel cased  as &quot;memFence&quot;.  That said, I&apos;ll try camel casing these and see what falls out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1398478</commentid>
    <comment_count>6</comment_count>
      <attachid>333615</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-02-12 14:33:43 -0800</bug_when>
    <thetext>Comment on attachment 333615
proposed patch.

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

&gt;&gt;&gt; Source/JavaScriptCore/offlineasm/instructions.rb:259
&gt;&gt;&gt; +     &quot;callslowpathvoid&quot;
&gt;&gt; 
&gt;&gt; These should be camel case.  I guess you have a conflict between the names of these and the macro name for callSlowPath in the offlineAsm.
&gt;&gt; 
&gt;&gt; I would either rename that macro to slowPathCall or rename these to something else.
&gt; 
&gt; Note: the &quot;memfence&quot; instruction above isn&apos;t camel cased  as &quot;memFence&quot;.  That said, I&apos;ll try camel casing these and see what falls out.

Actually, would you mind if I do all this renaming in a follow up patch?  That will lessen the chance that it introduces a typo bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1398479</commentid>
    <comment_count>7</comment_count>
      <attachid>333615</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2018-02-12 14:35:26 -0800</bug_when>
    <thetext>Comment on attachment 333615
proposed patch.

r=me to do the rename in a follow up. please file a bug though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1398480</commentid>
    <comment_count>8</comment_count>
      <attachid>333615</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-02-12 14:36:12 -0800</bug_when>
    <thetext>Comment on attachment 333615
proposed patch.

Thanks for the review.  I&apos;ll follow up later with a renaming patch for the requested changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1398485</commentid>
    <comment_count>9</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-02-12 14:38:36 -0800</bug_when>
    <thetext>(In reply to Keith Miller from comment #7)
&gt; r=me to do the rename in a follow up. please file a bug though.

Follow up patch to be worked on in https://bugs.webkit.org/show_bug.cgi?id=182708.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1398491</commentid>
    <comment_count>10</comment_count>
      <attachid>333615</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-02-12 15:05:36 -0800</bug_when>
    <thetext>Comment on attachment 333615
proposed patch.

On second thought, I might not want to introduce these macro instructions.  I&apos;ll rethink this first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1398498</commentid>
    <comment_count>11</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-02-12 15:12:57 -0800</bug_when>
    <thetext>(In reply to Mark Lam from comment #10)
&gt; Comment on attachment 333615 [details]
&gt; proposed patch.
&gt; 
&gt; On second thought, I might not want to introduce these macro instructions. 
&gt; I&apos;ll rethink this first.

I&apos;m going to do the refactoring in parts.  I&apos;ll remove the macro instructions part from this patch and land everything else first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1398508</commentid>
    <comment_count>12</comment_count>
      <attachid>333639</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-02-12 15:29:38 -0800</bug_when>
    <thetext>Created attachment 333639
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1398511</commentid>
    <comment_count>13</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-02-12 15:44:12 -0800</bug_when>
    <thetext>Thanks for the review.  Landed in r228402: &lt;http://trac.webkit.org/r228402&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>333612</attachid>
            <date>2018-02-12 12:02:15 -0800</date>
            <delta_ts>2018-02-12 12:26:04 -0800</delta_ts>
            <desc>propose patch.</desc>
            <filename>bug-182702.patch</filename>
            <type>text/plain</type>
            <size>27180</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjI4Mzg0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQyIEBA
CisyMDE4LTAyLTEyICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBN
aXNjZWxsYW5lb3VzIHJlZmFjdG9yaW5nIG9mIG9mZmxpbmVhc20uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODI3MDIKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzM3NDY3ODg3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIDEuIFByb21vdGUgQ0xvb3Agc3BlY2lmaWMgY2FsbCBvcGVyYXRpb25zIGludG8g
b2ZmbGluZWFzbSBtYWNybyBpbnN0cnVjdGlvbnMsCisgICAgICAgICAgIGFuZCBhbGxvdyB0aGUg
c3BlY2lmaWMgYmFja2VuZCB0byBpbXBsZW1lbnQgb3IgbG93ZXIgdGhlc2UgbWFjcm8gaW5zdHJ1
Y3Rpb25zCisgICAgICAgICAgIGFzIG5lZWRlZC4gIFRoaXMgbWFrZXMgdGhlIExMSW50IGFzbSBj
b2RlIGNsZWFuZXIgdG8gcmVhZCBhbmQgcHJvdmlkZQorICAgICAgICAgICBvcHBvcnR1bml0aWVz
IGZvciBpbXBsZW1lbnRpbmcgY3VzdG9tIHZlcnNpb25zIG9mIHRoZXNlIG1hY3JvIGluc3RydWN0
aW9ucy4KKworICAgICAgICAyLiBDaGFuZ2VkIHRoZSBDTG9vcCBjYWxsc2xvd3BhdGggYW5kIGNh
bGxzbG93cGF0aHZvaWQgdG8gZXhwZWN0IGFyZ3VtZW50cyBpbiBhMAorICAgICAgICAgICBhbmQg
YTEgcmVnaXN0ZXJzIGp1c3QgbGlrZSBhbGwgb3RoZXIgb2ZmbGluZWFzbSBiYWNrZW5kcyBkby4K
KworICAgICAgICAzLiBSZWZhY3RvciBvdXQgdGhlIGVtaXNzaW9uIG9mICRhc20uY29tbWVudCwg
JGFzbS5jb2RlT3JpZ2luLCAkYXNtLmFubm90YXRpb24sCisgICAgICAgICAgIGFuZCAkYXNtLmRl
YnVnQW5ub3RhdGlvbiBpbnRvIGEgcmVjb3JkTWV0YURhdGEgbWV0aG9kLiAgVGhpcyBzdGFuZGFy
ZGl6ZXMgaG93CisgICAgICAgICAgIHdlIGVtaXQgdGhpcyBtZXRhZGF0YSBhbmQgbWFrZXMgYWxs
IGJhY2tlbmRzIGRvIGl0IHRoZSBzYW1lIHdheS4KKworICAgICAgICA0LiBBZGQgdGhlIGFiaWxp
dHkgdG8gaW5jbHVkZSBjdXN0b20gb2ZmbGluZWFzbSBzY3JpcHRzIGZyb20gV2ViS2l0QWRkaXRp
b25zIGluCisgICAgICAgICAgIHRoZSBmdXR1cmUuCisKKyAgICAgICAgKiBsbGludC9Mb3dMZXZl
bEludGVycHJldGVyLmFzbToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyLmNw
cDoKKyAgICAgICAgKEpTQzo6Q0xvb3A6OmV4ZWN1dGUpOgorICAgICAgICAqIGxsaW50L0xvd0xl
dmVsSW50ZXJwcmV0ZXIzMl82NC5hc206CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnBy
ZXRlcjY0LmFzbToKKyAgICAgICAgKiBvZmZsaW5lYXNtL2FybS5yYjoKKyAgICAgICAgKiBvZmZs
aW5lYXNtL2FybTY0LnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vYXN0LnJiOgorICAgICAgICAq
IG9mZmxpbmVhc20vYmFja2VuZHMucmI6CisgICAgICAgICogb2ZmbGluZWFzbS9jbG9vcC5yYjoK
KyAgICAgICAgKiBvZmZsaW5lYXNtL2NvbmZpZy5yYjoKKyAgICAgICAgKiBvZmZsaW5lYXNtL2lu
c3RydWN0aW9ucy5yYjoKKyAgICAgICAgKiBvZmZsaW5lYXNtL21pcHMucmI6CisgICAgICAgICog
b2ZmbGluZWFzbS9yaXNjLnJiOgorICAgICAgICAqIG9mZmxpbmVhc20veDg2LnJiOgorCiAyMDE4
LTAyLTExICBHdWlsbGF1bWUgRW1vbnQgIDxndWlqZW1vbnRAaWdhbGlhLmNvbT4KIAogICAgICAg
ICBbTUlQU10gSlNDIG5lZWRzIHRvIGJlIGJ1aWx0IHdpdGggLWxhdG9taWMKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVy
MzJfNjQuYXNtCShyZXZpc2lvbiAyMjgzODQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQkod29ya2luZyBjb3B5KQpAQCAtNDgsMjgg
KzQ4LDMyIEBAIG1hY3JvIGRpc3BhdGNoQWZ0ZXJDYWxsKCkKICAgICBkaXNwYXRjaChDYWxsT3BD
b2RlU2l6ZSkKIGVuZAogCi1tYWNybyBjQ2FsbDIoZnVuY3Rpb24pCi0gICAgaWYgQVJNIG9yIEFS
TXY3IG9yIEFSTXY3X1RSQURJVElPTkFMIG9yIE1JUFMKLSAgICAgICAgY2FsbCBmdW5jdGlvbgor
bWFjcm8gY0NhbGwySW1wbChmdW5jdGlvbiwgZG9TbG93UGF0aENhbGwpCisgICAgaWYgQVJNIG9y
IEFSTXY3IG9yIEFSTXY3X1RSQURJVElPTkFMIG9yIE1JUFMgb3IgQ19MT09QCisgICAgICAgIGRv
U2xvd1BhdGhDYWxsKGZ1bmN0aW9uKQogICAgIGVsc2lmIFg4NiBvciBYODZfV0lOCiAgICAgICAg
IHN1YnAgOCwgc3AKICAgICAgICAgcHVzaCBhMQogICAgICAgICBwdXNoIGEwCi0gICAgICAgIGNh
bGwgZnVuY3Rpb24KKyAgICAgICAgZG9TbG93UGF0aENhbGwoZnVuY3Rpb24pCiAgICAgICAgIGFk
ZHAgMTYsIHNwCi0gICAgZWxzaWYgQ19MT09QCi0gICAgICAgIGNsb29wQ2FsbFNsb3dQYXRoIGZ1
bmN0aW9uLCBhMCwgYTEKICAgICBlbHNlCiAgICAgICAgIGVycm9yCiAgICAgZW5kCiBlbmQKIAor
bWFjcm8gY0NhbGwyKGZ1bmN0aW9uKQorICAgIGNDYWxsMkltcGwoZnVuY3Rpb24sCisgICAgICAg
IG1hY3JvKGZ1bmN0aW9uKQorICAgICAgICAgICAgY2FsbHNsb3dwYXRoIGZ1bmN0aW9uCisgICAg
ICAgIGVuZCkKK2VuZAorCiBtYWNybyBjQ2FsbDJWb2lkKGZ1bmN0aW9uKQotICAgIGlmIENfTE9P
UAotICAgICAgICBjbG9vcENhbGxTbG93UGF0aFZvaWQgZnVuY3Rpb24sIGEwLCBhMQotICAgIGVs
c2UKLSAgICAgICAgY0NhbGwyKGZ1bmN0aW9uKQotICAgIGVuZAorICAgIGNDYWxsMkltcGwoZnVu
Y3Rpb24sCisgICAgICAgIG1hY3JvKGZ1bmN0aW9uKQorICAgICAgICAgICAgY2FsbHNsb3dwYXRo
dm9pZCBmdW5jdGlvbgorICAgICAgICBlbmQpCiBlbmQKIAogbWFjcm8gY0NhbGw0KGZ1bmN0aW9u
KQpAQCAtMTYyLDcgKzE2Niw5IEBAIG1hY3JvIGRvVk1FbnRyeShtYWtlQ2FsbCkKICAgICBpZiBD
X0xPT1AKICAgICAgICAgbW92ZSBlbnRyeSwgdDQKICAgICAgICAgbW92ZSB2bSwgdDUKLSAgICAg
ICAgY2xvb3BDYWxsU2xvd1BhdGggX2xsaW50X3N0YWNrX2NoZWNrX2F0X3ZtX2VudHJ5LCB2bSwg
dDMKKyAgICAgICAgbW92ZSB2bSwgYTAKKyAgICAgICAgbW92ZSB0MywgYTEKKyAgICAgICAgY2Fs
bHNsb3dwYXRoIF9sbGludF9zdGFja19jaGVja19hdF92bV9lbnRyeQogICAgICAgICBicGVxIHQw
LCAwLCAuc3RhY2tDaGVja0ZhaWxlZAogICAgICAgICBtb3ZlIHQ0LCBlbnRyeQogICAgICAgICBt
b3ZlIHQ1LCB2bQpAQCAtMjczLDExICsyNzksNyBAQCBlbmQKIG1hY3JvIG1ha2VKYXZhU2NyaXB0
Q2FsbChlbnRyeSwgdGVtcCwgdW51c2VkKQogICAgIGFkZHAgQ2FsbGVyRnJhbWVBbmRQQ1NpemUs
IHNwCiAgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodGVtcCwgMHhiYWQwZGMwMikKLSAg
ICBpZiBDX0xPT1AKLSAgICAgICAgY2xvb3BDYWxsSlNGdW5jdGlvbiBlbnRyeQotICAgIGVsc2UK
LSAgICAgICAgY2FsbCBlbnRyeQotICAgIGVuZAorICAgIGNhbGxqcyBlbnRyeQogICAgIGNoZWNr
U3RhY2tQb2ludGVyQWxpZ25tZW50KHRlbXAsIDB4YmFkMGRjMDMpCiAgICAgc3VicCBDYWxsZXJG
cmFtZUFuZFBDU2l6ZSwgc3AKIGVuZApAQCAtMjg4LDcgKzI5MCw3IEBAIG1hY3JvIG1ha2VIb3N0
RnVuY3Rpb25DYWxsKGVudHJ5LCB0ZW1wMSwKICAgICBpZiBDX0xPT1AKICAgICAgICAgbW92ZSBz
cCwgYTAKICAgICAgICAgc3RvcmVwIGxyLCBQdHJTaXplW3NwXQotICAgICAgICBjbG9vcENhbGxO
YXRpdmUgdGVtcDEKKyAgICAgICAgY2FsbG5hdGl2ZSB0ZW1wMQogICAgIGVsc2lmIFg4NiBvciBY
ODZfV0lOCiAgICAgICAgICMgUHV0IGNhbGxlZSBmcmFtZSBwb2ludGVyIG9uIHN0YWNrIGFzIGFy
ZzAsIGFsc28gcHV0IGl0IGluIGVjeCBmb3IgImZhc3RjYWxsIiB0YXJnZXRzCiAgICAgICAgIG1v
dmUgMCwgdGVtcDIKQEAgLTI5NiwxMSArMjk4LDExIEBAIG1hY3JvIG1ha2VIb3N0RnVuY3Rpb25D
YWxsKGVudHJ5LCB0ZW1wMSwKICAgICAgICAgbW92ZSBzcCwgYTAgIyBhMCBpcyBlY3gKICAgICAg
ICAgcHVzaCB0ZW1wMiAjIFB1c2ggZHVtbXkgYXJnMQogICAgICAgICBwdXNoIGEwCi0gICAgICAg
IGNhbGwgdGVtcDEKKyAgICAgICAgY2FsbG5hdGl2ZSB0ZW1wMQogICAgICAgICBhZGRwIDgsIHNw
CiAgICAgZWxzZQogICAgICAgICBtb3ZlIHNwLCBhMAotICAgICAgICBjYWxsIHRlbXAxCisgICAg
ICAgIGNhbGxuYXRpdmUgdGVtcDEKICAgICBlbmQKIGVuZAogCkBAIC0yMTAxLDExICsyMTAzLDcg
QEAgbWFjcm8gbmF0aXZlQ2FsbFRyYW1wb2xpbmUoZXhlY3V0YWJsZU9mZgogICAgICAgICBsb2Fk
aSBDYWxsZWUgKyBQYXlsb2FkT2Zmc2V0W2Nmcl0sIHQxCiAgICAgICAgIGxvYWRwIEpTRnVuY3Rp
b246Om1fZXhlY3V0YWJsZVt0MV0sIHQxCiAgICAgICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25t
ZW50KHQzLCAweGRlYWQwMDAxKQotICAgICAgICBpZiBDX0xPT1AKLSAgICAgICAgICAgIGNsb29w
Q2FsbE5hdGl2ZSBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvblt0MV0KLSAgICAgICAgZWxzZQot
ICAgICAgICAgICAgY2FsbCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvblt0MV0KLSAgICAgICAg
ZW5kCisgICAgICAgIGNhbGxuYXRpdmUgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb25bdDFdCiAg
ICAgICAgIGxvYWRwIENhbGxlZSArIFBheWxvYWRPZmZzZXRbY2ZyXSwgdDMKICAgICAgICAgYW5k
cCBNYXJrZWRCbG9ja01hc2ssIHQzCiAgICAgICAgIGxvYWRwIE1hcmtlZEJsb2NrRm9vdGVyT2Zm
c2V0ICsgTWFya2VkQmxvY2s6OkZvb3Rlcjo6bV92bVt0M10sIHQzCkBAIC0yMTYwLDExICsyMTU4
LDcgQEAgbWFjcm8gaW50ZXJuYWxGdW5jdGlvbkNhbGxUcmFtcG9saW5lKG9mZgogICAgICAgICBt
b3ZlIGNmciwgYTAKICAgICAgICAgbG9hZGkgQ2FsbGVlICsgUGF5bG9hZE9mZnNldFtjZnJdLCB0
MQogICAgICAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCh0MywgMHhkZWFkMDAwMSkKLSAg
ICAgICAgaWYgQ19MT09QCi0gICAgICAgICAgICBjbG9vcENhbGxOYXRpdmUgb2Zmc2V0T2ZGdW5j
dGlvblt0MV0KLSAgICAgICAgZWxzZQotICAgICAgICAgICAgY2FsbCBvZmZzZXRPZkZ1bmN0aW9u
W3QxXQotICAgICAgICBlbmQKKyAgICAgICAgY2FsbG5hdGl2ZSBvZmZzZXRPZkZ1bmN0aW9uW3Qx
XQogICAgICAgICBsb2FkcCBDYWxsZWUgKyBQYXlsb2FkT2Zmc2V0W2Nmcl0sIHQzCiAgICAgICAg
IGFuZHAgTWFya2VkQmxvY2tNYXNrLCB0MwogICAgICAgICBsb2FkcCBNYXJrZWRCbG9ja0Zvb3Rl
ck9mZnNldCArIE1hcmtlZEJsb2NrOjpGb290ZXI6Om1fdm1bdDNdLCB0MwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5h
c20JKHJldmlzaW9uIDIyODM4NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dM
ZXZlbEludGVycHJldGVyNjQuYXNtCSh3b3JraW5nIGNvcHkpCkBAIC01MiwxMSArNTIsMTggQEAg
bWFjcm8gZGlzcGF0Y2hBZnRlckNhbGwoKQogICAgIGRpc3BhdGNoKENhbGxPcENvZGVTaXplKQog
ZW5kCiAKLW1hY3JvIGNDYWxsMihmdW5jdGlvbikKK21hY3JvIGNDYWxsMkltcGwoZnVuY3Rpb24s
IGRvU2xvd1BhdGhDYWxsKQogICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KHQ0LCAweGJh
ZDBjMDAyKQotICAgIGlmIFg4Nl82NCBvciBBUk02NAotICAgICAgICBjYWxsIGZ1bmN0aW9uCi0g
ICAgZWxzaWYgWDg2XzY0X1dJTgorICAgIGlmIFg4Nl82NCBvciBBUk02NCBvciBDX0xPT1AKKyAg
ICAgICAgZG9TbG93UGF0aENhbGwoZnVuY3Rpb24pCisgICAgZWxzZQorICAgICAgICBlcnJvcgor
ICAgIGVuZAorZW5kCisKK21hY3JvIGNDYWxsMihmdW5jdGlvbikKKyAgICBpZiBYODZfNjRfV0lO
CisgICAgICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KHQ0LCAweGJhZDBjMDAyKQogICAg
ICAgICAjIE5vdGU6IHRoaXMgaW1wbGVtZW50YXRpb24gaXMgb25seSBjb3JyZWN0IGlmIHRoZSBy
ZXR1cm4gdHlwZSBzaXplIGlzID4gOCBieXRlcy4KICAgICAgICAgIyBTZWUgbWFjcm8gY0NhbGwy
Vm9pZCBmb3IgYW4gaW1wbGVtZW50YXRpb24gd2hlbiB0aGUgcmV0dXJuIHR5cGUgPD0gOCBieXRl
cy4KICAgICAgICAgIyBPbiBXaW42NCwgd2hlbiB0aGUgcmV0dXJuIHR5cGUgaXMgbGFyZ2VyIHRo
YW4gOCBieXRlcywgd2UgbmVlZCB0byBhbGxvY2F0ZSBzcGFjZSBvbiB0aGUgc3RhY2sgZm9yIHRo
ZSByZXR1cm4gdmFsdWUuCkBAIC03MCwzMSArNzcsMzMgQEAgbWFjcm8gY0NhbGwyKGZ1bmN0aW9u
KQogICAgICAgICBzdWJwIDQ4LCBzcAogICAgICAgICBtb3ZlIHNwLCBhMAogICAgICAgICBhZGRw
IDMyLCBhMAotICAgICAgICBjYWxsIGZ1bmN0aW9uCisgICAgICAgIGNhbGxzbG93cGF0aCBmdW5j
dGlvbgogICAgICAgICBhZGRwIDQ4LCBzcAogICAgICAgICBtb3ZlIDhbcjBdLCByMQogICAgICAg
ICBtb3ZlIFtyMF0sIHIwCi0gICAgZWxzaWYgQ19MT09QCi0gICAgICAgIGNsb29wQ2FsbFNsb3dQ
YXRoIGZ1bmN0aW9uLCBhMCwgYTEKICAgICBlbHNlCi0gICAgICAgIGVycm9yCisgICAgICAgIGND
YWxsMkltcGwoZnVuY3Rpb24sCisgICAgICAgICAgICBtYWNybyhmdW5jdGlvbikKKyAgICAgICAg
ICAgICAgICBjYWxsc2xvd3BhdGggZnVuY3Rpb24KKyAgICAgICAgICAgIGVuZCkKICAgICBlbmQK
IGVuZAogCiBtYWNybyBjQ2FsbDJWb2lkKGZ1bmN0aW9uKQotICAgIGlmIENfTE9PUAotICAgICAg
ICBjbG9vcENhbGxTbG93UGF0aFZvaWQgZnVuY3Rpb24sIGEwLCBhMQotICAgIGVsc2lmIFg4Nl82
NF9XSU4KKyAgICBpZiBYODZfNjRfV0lOCiAgICAgICAgICMgTm90ZTogd2UgY2Fubm90IHVzZSB0
aGUgY0NhbGwyIG1hY3JvIGZvciBXaW42NCBpbiB0aGlzIGNhc2UsCiAgICAgICAgICMgYXMgdGhl
IFdpbjY0IGNDYWxsMiBpbXBsZW1lbmF0aW9uIGlzIG9ubHkgY29ycmVjdCB3aGVuIHRoZSByZXR1
cm4gdHlwZSBzaXplIGlzID4gOCBieXRlcy4KICAgICAgICAgIyBPbiBXaW42NCwgcmN4IGFuZCBy
ZHggYXJlIHVzZWQgZm9yIHBhc3NpbmcgdGhlIGZpcnN0IHR3byBwYXJhbWV0ZXJzLgogICAgICAg
ICAjIFdlIGFsc28gbmVlZCB0byBtYWtlIHJvb20gb24gdGhlIHN0YWNrIGZvciBhbGwgZm91ciBw
YXJhbWV0ZXIgcmVnaXN0ZXJzLgogICAgICAgICAjIFNlZSBodHRwOi8vbXNkbi5taWNyb3NvZnQu
Y29tL2VuLXVzL2xpYnJhcnkvbXMyMzUyODYuYXNweAogICAgICAgICBzdWJwIDMyLCBzcCAKLSAg
ICAgICAgY2FsbCBmdW5jdGlvbgorICAgICAgICBjYWxsc2xvd3BhdGh2b2lkIGZ1bmN0aW9uCiAg
ICAgICAgIGFkZHAgMzIsIHNwIAogICAgIGVsc2UKLSAgICAgICAgY0NhbGwyKGZ1bmN0aW9uKQor
ICAgICAgICBjQ2FsbDJJbXBsKGZ1bmN0aW9uLAorICAgICAgICAgICAgbWFjcm8oZnVuY3Rpb24p
CisgICAgICAgICAgICAgICAgY2FsbHNsb3dwYXRodm9pZCBmdW5jdGlvbgorICAgICAgICAgICAg
ZW5kKQogICAgIGVuZAogZW5kCiAKQEAgLTE0OSw5ICsxNTgsMTIgQEAgbWFjcm8gZG9WTUVudHJ5
KG1ha2VDYWxsKQogICAgIGVuZAogCiAgICAgaWYgQ19MT09QCisgICAgICAgICMgZW50cnkgd2Fz
IGluIGEwLCBhbmQgdm0gd2FzIGluIGExLgogICAgICAgICBtb3ZlIGVudHJ5LCB0NAogICAgICAg
ICBtb3ZlIHZtLCB0NQotICAgICAgICBjbG9vcENhbGxTbG93UGF0aCBfbGxpbnRfc3RhY2tfY2hl
Y2tfYXRfdm1fZW50cnksIHZtLCB0MworICAgICAgICBtb3ZlIHZtLCBhMAorICAgICAgICBtb3Zl
IHQzLCBhMQorICAgICAgICBjYWxsc2xvd3BhdGggX2xsaW50X3N0YWNrX2NoZWNrX2F0X3ZtX2Vu
dHJ5CiAgICAgICAgIGJwZXEgdDAsIDAsIC5zdGFja0NoZWNrRmFpbGVkCiAgICAgICAgIG1vdmUg
dDQsIGVudHJ5CiAgICAgICAgIG1vdmUgdDUsIHZtCkBAIC0yNTEsMTEgKzI2Myw3IEBAIGVuZAog
CiBtYWNybyBtYWtlSmF2YVNjcmlwdENhbGwoZW50cnksIHRlbXApCiAgICAgYWRkcCAxNiwgc3AK
LSAgICBpZiBDX0xPT1AKLSAgICAgICAgY2xvb3BDYWxsSlNGdW5jdGlvbiBlbnRyeQotICAgIGVs
c2UKLSAgICAgICAgY2FsbCBlbnRyeQotICAgIGVuZAorICAgIGNhbGxqcyBlbnRyeQogICAgIHN1
YnAgMTYsIHNwCiBlbmQKIApAQCAtMjY2LDE0ICsyNzQsMTQgQEAgbWFjcm8gbWFrZUhvc3RGdW5j
dGlvbkNhbGwoZW50cnksIHRlbXApCiAgICAgbW92ZSBzcCwgYTAKICAgICBpZiBDX0xPT1AKICAg
ICAgICAgc3RvcmVwIGxyLCA4W3NwXQotICAgICAgICBjbG9vcENhbGxOYXRpdmUgdGVtcAorICAg
ICAgICBjYWxsbmF0aXZlIHRlbXAKICAgICBlbHNpZiBYODZfNjRfV0lOCiAgICAgICAgICMgV2Ug
bmVlZCB0byBhbGxvY2F0ZSAzMiBieXRlcyBvbiB0aGUgc3RhY2sgZm9yIHRoZSBzaGFkb3cgc3Bh
Y2UuCiAgICAgICAgIHN1YnAgMzIsIHNwCi0gICAgICAgIGNhbGwgdGVtcAorICAgICAgICBjYWxs
bmF0aXZlIHRlbXAKICAgICAgICAgYWRkcCAzMiwgc3AKICAgICBlbHNlCi0gICAgICAgIGNhbGwg
dGVtcAorICAgICAgICBjYWxsbmF0aXZlIHRlbXAKICAgICBlbmQKIGVuZAogCkBAIC0yMTAzLDIw
ICsyMTExLDE0IEBAIG1hY3JvIG5hdGl2ZUNhbGxUcmFtcG9saW5lKGV4ZWN1dGFibGVPZmYKICAg
ICBsb2FkcCBDYWxsZWVbY2ZyXSwgdDEKICAgICBsb2FkcCBKU0Z1bmN0aW9uOjptX2V4ZWN1dGFi
bGVbdDFdLCB0MQogICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KHQzLCAweGRlYWQwMDAx
KQotICAgIGlmIENfTE9PUAorICAgIGlmIFg4Nl82NF9XSU4KKyAgICAgICAgc3VicCAzMiwgc3AK
KyAgICAgICAgY2FsbG5hdGl2ZSBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvblt0MV0KKyAgICAg
ICAgYWRkcCAzMiwgc3AKKyAgICBlbHNlCiAgICAgICAgIGxvYWRwIF9nX05hdGl2ZUNvZGVQb2lz
b24sIHQyCiAgICAgICAgIHhvcnAgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb25bdDFdLCB0Mgot
ICAgICAgICBjbG9vcENhbGxOYXRpdmUgdDIKLSAgICBlbHNlCi0gICAgICAgIGlmIFg4Nl82NF9X
SU4KLSAgICAgICAgICAgIHN1YnAgMzIsIHNwCi0gICAgICAgICAgICBjYWxsIGV4ZWN1dGFibGVP
ZmZzZXRUb0Z1bmN0aW9uW3QxXQotICAgICAgICAgICAgYWRkcCAzMiwgc3AKLSAgICAgICAgZWxz
ZQotICAgICAgICAgICAgbG9hZHAgX2dfTmF0aXZlQ29kZVBvaXNvbiwgdDIKLSAgICAgICAgICAg
IHhvcnAgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb25bdDFdLCB0MgotICAgICAgICAgICAgY2Fs
bCB0MgotICAgICAgICBlbmQKKyAgICAgICAgY2FsbG5hdGl2ZSB0MgogICAgIGVuZAogCiAgICAg
bG9hZHAgQ2FsbGVlW2Nmcl0sIHQzCkBAIC0yMTQ2LDIwICsyMTQ4LDE0IEBAIG1hY3JvIGludGVy
bmFsRnVuY3Rpb25DYWxsVHJhbXBvbGluZShvZmYKICAgICBtb3ZlIGNmciwgYTAKICAgICBsb2Fk
cCBDYWxsZWVbY2ZyXSwgdDEKICAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCh0MywgMHhk
ZWFkMDAwMSkKLSAgICBpZiBDX0xPT1AKKyAgICBpZiBYODZfNjRfV0lOCisgICAgICAgIHN1YnAg
MzIsIHNwCisgICAgICAgIGNhbGxuYXRpdmUgb2Zmc2V0T2ZGdW5jdGlvblt0MV0KKyAgICAgICAg
YWRkcCAzMiwgc3AKKyAgICBlbHNlCiAgICAgICAgIGxvYWRwIF9nX05hdGl2ZUNvZGVQb2lzb24s
IHQyCiAgICAgICAgIHhvcnAgb2Zmc2V0T2ZGdW5jdGlvblt0MV0sIHQyCi0gICAgICAgIGNsb29w
Q2FsbE5hdGl2ZSB0MgotICAgIGVsc2UKLSAgICAgICAgaWYgWDg2XzY0X1dJTgotICAgICAgICAg
ICAgc3VicCAzMiwgc3AKLSAgICAgICAgICAgIGNhbGwgb2Zmc2V0T2ZGdW5jdGlvblt0MV0KLSAg
ICAgICAgICAgIGFkZHAgMzIsIHNwCi0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGxvYWRwIF9n
X05hdGl2ZUNvZGVQb2lzb24sIHQyCi0gICAgICAgICAgICB4b3JwIG9mZnNldE9mRnVuY3Rpb25b
dDFdLCB0MgotICAgICAgICAgICAgY2FsbCB0MgotICAgICAgICBlbmQKKyAgICAgICAgY2FsbG5h
dGl2ZSB0MgogICAgIGVuZAogCiAgICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHQzCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNt
CShyZXZpc2lvbiAyMjgzODQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2
ZWxJbnRlcnByZXRlci5hc20JKHdvcmtpbmcgY29weSkKQEAgLTgyNiwxMSArODI2LDcgQEAgbWFj
cm8gY2FsbE9wY29kZVNsb3dQYXRoKHNsb3dQYXRoKQogZW5kCiAKIG1hY3JvIGNhbGxUYXJnZXRG
dW5jdGlvbihjYWxsZWUpCi0gICAgaWYgQ19MT09QCi0gICAgICAgIGNsb29wQ2FsbEpTRnVuY3Rp
b24gY2FsbGVlCi0gICAgZWxzZQotICAgICAgICBjYWxsIGNhbGxlZQotICAgIGVuZAorICAgIGNh
bGxqcyBjYWxsZWUKICAgICByZXN0b3JlU3RhY2tQb2ludGVyQWZ0ZXJDYWxsKCkKICAgICBkaXNw
YXRjaEFmdGVyQ2FsbCgpCiBlbmQKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
b3dMZXZlbEludGVycHJldGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5jcHAJKHJldmlzaW9uIDIyODM4NCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAx
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTMyOCw2ICszMjgsOCBAQCBKU1ZhbHVlIENMb29wOjpleGVjdXRlKE9wY29k
ZUlEIGVudHJ5T3BjCiAgICAgLy8gMy4gNjQgYml0IHJlc3VsdCB2YWx1ZXMgd2lsbCBiZSBpbiB0
MC4KIAogICAgIENMb29wUmVnaXN0ZXIgdDAsIHQxLCB0MiwgdDMsIHQ1LCB0Nywgc3AsIGNmciwg
bHIsIHBjOworICAgIENMb29wUmVnaXN0ZXImIGEwID0gdDA7CisgICAgQ0xvb3BSZWdpc3RlciYg
YTEgPSB0MTsKICNpZiBVU0UoSlNWQUxVRTY0KQogICAgIENMb29wUmVnaXN0ZXIgcGNCYXNlLCB0
YWdUeXBlTnVtYmVyLCB0YWdNYXNrOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvb2ZmbGluZWFzbS9hcm02NC5yYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvb2ZmbGluZWFzbS9hcm02NC5yYgkocmV2aXNpb24gMjI4Mzg0KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL29mZmxpbmVhc20vYXJtNjQucmIJKHdvcmtpbmcgY29weSkKQEAgLTEsNCArMSw0
IEBACi0jIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxNC0yMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDExLTIwMTggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogIyBDb3B5cmlnaHQgKEMpIDIwMTQgVW5pdmVyc2l0eSBvZiBT
emVnZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtNTExLDEwICs1
MTEsNiBAQCBlbmQKIAogY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICBkZWYgbG93ZXJBUk02NAotICAg
ICAgICAkYXNtLmNvbW1lbnQgY29kZU9yaWdpblN0cmluZwotICAgICAgICAkYXNtLmFubm90YXRp
b24gYW5ub3RhdGlvbiBpZiAkZW5hYmxlSW5zdHJBbm5vdGF0aW9ucwotICAgICAgICAkYXNtLmRl
YnVnQW5ub3RhdGlvbiBjb2RlT3JpZ2luLmRlYnVnRGlyZWN0aXZlIGlmICRlbmFibGVEZWJ1Z0Fu
bm90YXRpb25zCi0KICAgICAgICAgY2FzZSBvcGNvZGUKICAgICAgICAgd2hlbiAnYWRkaScKICAg
ICAgICAgICAgIGVtaXRBUk02NEFkZCgiYWRkIiwgb3BlcmFuZHMsIDppbnQpCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm0ucmIKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtLnJiCShyZXZpc2lvbiAyMjgzODQpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm0ucmIJKHdvcmtpbmcgY29weSkKQEAg
LTEsNCArMSw0IEBACi0jIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxNS0yMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDExLTIwMTggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIyBDb3B5cmlnaHQgKEMpIDIwMTMgVW5pdmVy
c2l0eSBvZiBTemVnZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAt
MzQ4LDEwICszNDgsNiBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAgIGVuZAogCiAgICAgZGVmIGxv
d2VyQVJNQ29tbW9uCi0gICAgICAgICRhc20uY29kZU9yaWdpbiBjb2RlT3JpZ2luU3RyaW5nIGlm
ICRlbmFibGVDb2RlT3JpZ2luQ29tbWVudHMKLSAgICAgICAgJGFzbS5hbm5vdGF0aW9uIGFubm90
YXRpb24gaWYgJGVuYWJsZUluc3RyQW5ub3RhdGlvbnMKLSAgICAgICAgJGFzbS5kZWJ1Z0Fubm90
YXRpb24gY29kZU9yaWdpbi5kZWJ1Z0RpcmVjdGl2ZSBpZiAkZW5hYmxlRGVidWdBbm5vdGF0aW9u
cwotCiAgICAgICAgIGNhc2Ugb3Bjb2RlCiAgICAgICAgIHdoZW4gImFkZGkiLCAiYWRkcCIsICJh
ZGRpcyIsICJhZGRwcyIKICAgICAgICAgICAgIGlmIG9wY29kZSA9PSAiYWRkaXMiIG9yIG9wY29k
ZSA9PSAiYWRkcHMiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hc3Qu
cmIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXN0LnJi
CShyZXZpc2lvbiAyMjgzODQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9h
c3QucmIJKHdvcmtpbmcgY29weSkKQEAgLTEsNCArMSw0IEBACi0jIENvcHlyaWdodCAoQykgMjAx
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxMS0y
MDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtOTMzLDYgKzkzMyw1NyBAQCBjbGFzcyBJbnN0cnVjdGlvbiA8IE5vZGUKICAg
ICAgICAgICAgIHJhaXNlICJVbmhhbmRsZWQgb3Bjb2RlICN7b3Bjb2RlfSBhdCAje2NvZGVPcmln
aW5TdHJpbmd9IgogICAgICAgICBlbmQKICAgICBlbmQKKworICAgIGRlZiBwcmVwYXJlVG9Mb3dl
cihiYWNrZW5kTmFtZSkKKyAgICAgICAgaWYgcmVzcG9uZF90bz8oInJlY29yZE1ldGFEYXRhI3ti
YWNrZW5kTmFtZX0iKQorICAgICAgICAgICAgc2VuZCgicmVjb3JkTWV0YURhdGEje2JhY2tlbmRO
YW1lfSIpCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJlY29yZE1ldGFEYXRhRGVmYXVsdAor
ICAgICAgICBlbmQKKyAgICBlbmQKKworICAgIGRlZiByZWNvcmRNZXRhRGF0YURlZmF1bHQKKyAg
ICAgICAgJGFzbS5jb2RlT3JpZ2luIGNvZGVPcmlnaW5TdHJpbmcgaWYgJGVuYWJsZUNvZGVPcmln
aW5Db21tZW50cworICAgICAgICAkYXNtLmFubm90YXRpb24gYW5ub3RhdGlvbiBpZiAkZW5hYmxl
SW5zdHJBbm5vdGF0aW9ucworICAgICAgICAkYXNtLmRlYnVnQW5ub3RhdGlvbiBjb2RlT3JpZ2lu
LmRlYnVnRGlyZWN0aXZlIGlmICRlbmFibGVEZWJ1Z0Fubm90YXRpb25zCisgICAgZW5kCisKKyAg
ICBkZWYgc2VsZi5sb3dlck1hY3JvSW5zdHJ1Y3Rpb25zKGJhY2tlbmROYW1lLCBub2RlTGlzdCkK
KyAgICAgICAgbmV3TGlzdCA9IFtdCisgICAgICAgIG5vZGVMaXN0LmVhY2ggeworICAgICAgICAg
ICAgfCBub2RlIHwKKyAgICAgICAgICAgIGlmIG5vZGUuaXNfYT8gSW5zdHJ1Y3Rpb24KKyAgICAg
ICAgICAgICAgICBjYXNlIG5vZGUub3Bjb2RlCisgICAgICAgICAgICAgICAgd2hlbiAiY2FsbGpz
IiwgImNhbGxuYXRpdmUiLCAiY2FsbHNsb3dwYXRoIiwgImNhbGxzbG93cGF0aHZvaWQiCisgICAg
ICAgICAgICAgICAgICAgIEluc3RydWN0aW9uLmxvd2VyTWFjcm9JbnN0cnVjdGlvbihiYWNrZW5k
TmFtZSwgbm9kZSwgbmV3TGlzdCkKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICAgICAgZW5kCisg
ICAgICAgIH0gICAgICAgIAorICAgICAgICBuZXdMaXN0CisgICAgZW5kCisKKyAgICBkZWYgc2Vs
Zi5sb3dlck1hY3JvSW5zdHJ1Y3Rpb24oYmFja2VuZE5hbWUsIG5vZGUsIG5ld0xpc3QpCisgICAg
ICAgIHJhaXNlICJJbnZhbGlkIG5vZGUgdHlwZTogZXhwZWN0aW5nIEluc3RydWN0aW9uIiB1bmxl
c3Mgbm9kZS5pc19hPyBJbnN0cnVjdGlvbgorICAgICAgICBpZiByZXNwb25kX3RvPyAibG93ZXJN
YWNyb0luc3RydWN0aW9uI3tiYWNrZW5kTmFtZX0iCisgICAgICAgICAgICBzZW5kKCJsb3dlck1h
Y3JvSW5zdHJ1Y3Rpb24je2JhY2tlbmROYW1lfSIsIG5vZGUsIG5ld0xpc3QpCisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIEluc3RydWN0aW9uLmxvd2VyTWFjcm9JbnN0cnVjdGlvbkRlZmF1bHQo
bm9kZSwgbmV3TGlzdCkKKyAgICAgICAgZW5kCisgICAgZW5kCisKKyAgICBkZWYgc2VsZi5sb3dl
ck1hY3JvSW5zdHJ1Y3Rpb25EZWZhdWx0KG5vZGUsIG5ld0xpc3QpCisgICAgICAgIHJhaXNlICJJ
bnZhbGlkIG5vZGUgdHlwZTogZXhwZWN0aW5nIEluc3RydWN0aW9uIiB1bmxlc3Mgbm9kZS5pc19h
PyBJbnN0cnVjdGlvbgorICAgICAgICBjYXNlIG5vZGUub3Bjb2RlCisgICAgICAgIHdoZW4gImNh
bGxqcyIsICJjYWxsbmF0aXZlIiwgImNhbGxzbG93cGF0aCIsICJjYWxsc2xvd3BhdGh2b2lkIgor
ICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAi
Y2FsbCIsIG5vZGUub3BlcmFuZHMpCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJhaXNlICIj
e25vZGUub3Bjb2RlfSBpcyBub3QgYSBtYWNybyBpbnN0cnVjdGlvbiIKKyAgICAgICAgZW5kCisg
ICAgZW5kCiBlbmQKIAogY2xhc3MgRXJyb3IgPCBOb0NoaWxkcmVuCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9iYWNrZW5kcy5yYgo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9iYWNrZW5kcy5yYgkocmV2aXNpb24gMjI4Mzg0KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYmFja2VuZHMucmIJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNCArMSw0IEBACi0jIENvcHlyaWdodCAoQykgMjAxMSwgMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxMS0yMDE4IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMTI0LDcgKzEyNCw4IEBAIGNsYXNzIE5vZGUKICAgICBkZWYgbG93ZXIobmFtZSkKICAgICAg
ICAgYmVnaW4KICAgICAgICAgICAgICRhY3RpdmVCYWNrZW5kID0gbmFtZQotICAgICAgICAgICAg
c2VuZCgibG93ZXIiICsgbmFtZSkKKyAgICAgICAgICAgIHNlbmQoInByZXBhcmVUb0xvd2VyIiwg
bmFtZSkKKyAgICAgICAgICAgIHNlbmQoImxvd2VyI3tuYW1lfSIpCiAgICAgICAgIHJlc2N1ZSA9
PiBlCiAgICAgICAgICAgICByYWlzZSBMb3dlcmluZ0Vycm9yLm5ldyhlLCBjb2RlT3JpZ2luU3Ry
aW5nKQogICAgICAgICBlbmQKQEAgLTE3OCw2ICsxNzksNyBAQCBlbmQKIGNsYXNzIFNlcXVlbmNl
CiAgICAgZGVmIGxvd2VyKG5hbWUpCiAgICAgICAgICRhY3RpdmVCYWNrZW5kID0gbmFtZQorICAg
ICAgICBAbGlzdCA9IEluc3RydWN0aW9uLmxvd2VyTWFjcm9JbnN0cnVjdGlvbnMobmFtZSwgQGxp
c3QpCiAgICAgICAgIGlmIHJlc3BvbmRfdG8/ICJnZXRNb2RpZmllZExpc3Qje25hbWV9IgogICAg
ICAgICAgICAgbmV3TGlzdCA9IHNlbmQoImdldE1vZGlmaWVkTGlzdCN7bmFtZX0iKQogICAgICAg
ICAgICAgbmV3TGlzdC5lYWNoIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5l
YXNtL2Nsb29wLnJiCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5l
YXNtL2Nsb29wLnJiCShyZXZpc2lvbiAyMjgzODQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
b2ZmbGluZWFzbS9jbG9vcC5yYgkod29ya2luZyBjb3B5KQpAQCAtMSw0ICsxLDQgQEAKLSMgQ29w
eXJpZ2h0IChDKSAyMDEyLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBD
b3B5cmlnaHQgKEMpIDIwMTItMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAj
CiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU1MywyMyArNTUzLDMwIEBAIGVuZAogZGVm
IGNsb29wRW1pdENhbGxTbG93UGF0aChvcGVyYW5kcykKICAgICAkYXNtLnB1dGMgInsiCiAgICAg
JGFzbS5wdXRjICIgICAgY2xvb3BTdGFjay5zZXRDdXJyZW50U3RhY2tQb2ludGVyKHNwLnZwKTsi
Ci0gICAgJGFzbS5wdXRjICIgICAgU2xvd1BhdGhSZXR1cm5UeXBlIHJlc3VsdCA9ICN7b3BlcmFu
ZHNbMF0uY0xhYmVsfSgje29wZXJhbmRzWzFdLmNsRHVtcH0sICN7b3BlcmFuZHNbMl0uY2xEdW1w
fSk7IgorICAgICRhc20ucHV0YyAiICAgIFNsb3dQYXRoUmV0dXJuVHlwZSByZXN1bHQgPSAje29w
ZXJhbmRzWzBdLmNMYWJlbH0oYTAsIGExKTsiICMgc2xvdyBwYXRoIGNhbGwgYXJ1bWVudHMgYXJl
IGFsd2F5cyBpbiBhMCBhbmQgYTEuCiAgICAgJGFzbS5wdXRjICIgICAgZGVjb2RlUmVzdWx0KHJl
c3VsdCwgdDAudnAsIHQxLnZwKTsiCiAgICAgJGFzbS5wdXRjICJ9IgogZW5kCiAKIGRlZiBjbG9v
cEVtaXRDYWxsU2xvd1BhdGhWb2lkKG9wZXJhbmRzKQogICAgICRhc20ucHV0YyAiY2xvb3BTdGFj
ay5zZXRDdXJyZW50U3RhY2tQb2ludGVyKHNwLnZwKTsiCi0gICAgJGFzbS5wdXRjICIje29wZXJh
bmRzWzBdLmNMYWJlbH0oI3tvcGVyYW5kc1sxXS5jbER1bXB9LCAje29wZXJhbmRzWzJdLmNsRHVt
cH0pOyIKKyAgICAkYXNtLnB1dGMgIiN7b3BlcmFuZHNbMF0uY0xhYmVsfShhMCwgYTEpOyIgIyBz
bG93IHBhdGggY2FsbCBhcnVtZW50cyBhcmUgYWx3YXlzIGluIGEwIGFuZCBhMS4KIGVuZAogCiBj
bGFzcyBJbnN0cnVjdGlvbgogICAgIEBAZGlkUmV0dXJuRnJvbUpTTGFiZWxDb3VudGVyID0gMAog
Ci0gICAgZGVmIGxvd2VyQ19MT09QCi0gICAgICAgICRhc20uY29kZU9yaWdpbiBjb2RlT3JpZ2lu
U3RyaW5nIGlmICRlbmFibGVDb2RlT3JpZ2luQ29tbWVudHMKLSAgICAgICAgJGFzbS5hbm5vdGF0
aW9uIGFubm90YXRpb24gaWYgJGVuYWJsZUluc3RyQW5ub3RhdGlvbnMgJiYgKG9wY29kZSAhPSAi
Y2xvb3BEbyIpCisgICAgZGVmIHNlbGYubG93ZXJNYWNyb0luc3RydWN0aW9uQ19MT09QKG5vZGUs
IG5ld0xpc3QpCisgICAgICAgIHJhaXNlICJJbnZhbGlkIG5vZGUgdHlwZTogZXhwZWN0aW5nIElu
c3RydWN0aW9uIiB1bmxlc3Mgbm9kZS5pc19hPyBJbnN0cnVjdGlvbgorICAgICAgICBjYXNlIG5v
ZGUub3Bjb2RlCisgICAgICAgIHdoZW4gImNhbGxqcyIsICJjYWxsbmF0aXZlIiwgImNhbGxzbG93
cGF0aCIsICJjYWxsc2xvd3BhdGh2b2lkIgorICAgICAgICAgICAgbmV3TGlzdCA8PCBub2RlICMg
d2UgZG9uJ3Qgd2FudCB0byBsb3dlciB0aGVzZS4gbG93ZXJDX0xPT1Agd2lsbCBpbXBsZW1lbnQg
dGhlbS4KKyAgICAgICAgZWxzZQorICAgICAgICAgICAgSW5zdHJ1Y3Rpb24ubG93ZXJNYWNyb0lu
c3RydWN0aW9uRGVmYXVsdChub2RlLCBuZXdMaXN0KQorICAgICAgICBlbmQKKyAgICBlbmQKIAor
ICAgIGRlZiBsb3dlckNfTE9PUAogICAgICAgICBjYXNlIG9wY29kZQogICAgICAgICB3aGVuICJh
ZGRpIgogICAgICAgICAgICAgY2xvb3BFbWl0T3BlcmF0aW9uKG9wZXJhbmRzLCA6aW50MzIsICIr
IikKQEAgLTExMjUsNyArMTEzMiw3IEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgICMgV2Ug
Y2FuJ3QgcmVseSBvbiB0aGUgbGxpbnQgSlMgY2FsbCBtZWNoYW5pc20gd2hpY2ggYWN0dWFsbHkg
bWFrZXMKICAgICAgICAgIyB1c2Ugb2YgdGhlIGNhbGwgaW5zdHJ1Y3Rpb24uIEluc3RlYWQsIHdl
IGp1c3QgaW1wbGVtZW50IEpTIGNhbGxzCiAgICAgICAgICMgYXMgYW4gb3Bjb2RlIGRpc3BhdGNo
LgotICAgICAgICB3aGVuICJjbG9vcENhbGxKU0Z1bmN0aW9uIgorICAgICAgICB3aGVuICJjYWxs
anMiCiAgICAgICAgICAgICBAQGRpZFJldHVybkZyb21KU0xhYmVsQ291bnRlciArPSAxCiAgICAg
ICAgICAgICAkYXNtLnB1dGMgImxyLm9wY29kZSA9IGdldE9wY29kZShsbGludF9jbG9vcF9kaWRf
cmV0dXJuX2Zyb21fanNfI3tAQGRpZFJldHVybkZyb21KU0xhYmVsQ291bnRlcn0pOyIKICAgICAg
ICAgICAgICRhc20ucHV0YyAib3Bjb2RlID0gI3tvcGVyYW5kc1swXS5jbFZhbHVlKDpvcGNvZGUp
fTsiCkBAIC0xMTM1LDcgKzExNDIsNyBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAgICAjIFdl
IGNhbid0IGRvIGdlbmVyaWMgZnVuY3Rpb24gY2FsbHMgd2l0aCBhbiBhcmJpdHJhcnkgc2V0IG9m
IGFyZ3MsIGJ1dAogICAgICAgICAjIGZvcnR1bmF0ZWx5IHdlIGRvbid0IGhhdmUgdG8gaGVyZS4g
QWxsIG5hdGl2ZSBmdW5jdGlvbiBjYWxscyBhbHdheXMKICAgICAgICAgIyBoYXZlIGEgZml4ZWQg
cHJvdG90eXBlIG9mIDEgYXJnczogdGhlIHBhc3NlZCBFeGVjU3RhdGUuCi0gICAgICAgIHdoZW4g
ImNsb29wQ2FsbE5hdGl2ZSIKKyAgICAgICAgd2hlbiAiY2FsbG5hdGl2ZSIKICAgICAgICAgICAg
ICRhc20ucHV0YyAiY2xvb3BTdGFjay5zZXRDdXJyZW50U3RhY2tQb2ludGVyKHNwLnZwKTsiCiAg
ICAgICAgICAgICAkYXNtLnB1dGMgIm5hdGl2ZUZ1bmMgPSAje29wZXJhbmRzWzBdLmNsVmFsdWUo
Om5hdGl2ZUZ1bmMpfTsiCiAgICAgICAgICAgICAkYXNtLnB1dGMgImZ1bmN0aW9uUmV0dXJuVmFs
dWUgPSBKU1ZhbHVlOjpkZWNvZGUobmF0aXZlRnVuYyh0MC5leGVjU3RhdGUpKTsiCkBAIC0xMTQ5
LDEwICsxMTU2LDEwIEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgICMgV2UgY2FuJ3QgZG8g
Z2VuZXJpYyBmdW5jdGlvbiBjYWxscyB3aXRoIGFuIGFyYml0cmFyeSBzZXQgb2YgYXJncywgYnV0
CiAgICAgICAgICMgZm9ydHVuYXRlbHkgd2UgZG9uJ3QgaGF2ZSB0byBoZXJlLiBBbGwgc2xvdyBw
YXRoIGZ1bmN0aW9uIGNhbGxzIGFsd2F5cwogICAgICAgICAjIGhhdmUgYSBmaXhlZCBwcm90b3R5
cGUgdG9vLiBTZWUgY2xvb3BFbWl0Q2FsbFNsb3dQYXRoKCkgZm9yIGRldGFpbHMuCi0gICAgICAg
IHdoZW4gImNsb29wQ2FsbFNsb3dQYXRoIgorICAgICAgICB3aGVuICJjYWxsc2xvd3BhdGgiCiAg
ICAgICAgICAgICBjbG9vcEVtaXRDYWxsU2xvd1BhdGgob3BlcmFuZHMpCiAKLSAgICAgICAgd2hl
biAiY2xvb3BDYWxsU2xvd1BhdGhWb2lkIgorICAgICAgICB3aGVuICJjYWxsc2xvd3BhdGh2b2lk
IgogICAgICAgICAgICAgY2xvb3BFbWl0Q2FsbFNsb3dQYXRoVm9pZChvcGVyYW5kcykKIAogICAg
ICAgICAjIEZvciBkZWJ1Z2dpbmcgb25seS4gVGhpcyBpcyB1c2VkIHRvIGluc2VydCBpbnN0cnVt
ZW50YXRpb24gaW50byB0aGUKQEAgLTExNjUsNCArMTE3MiwxMCBAQCBjbGFzcyBJbnN0cnVjdGlv
bgogICAgICAgICAgICAgbG93ZXJEZWZhdWx0CiAgICAgICAgIGVuZAogICAgIGVuZAorCisgICAg
ZGVmIHJlY29yZE1ldGFEYXRhQ19MT09QCisgICAgICAgICRhc20uY29kZU9yaWdpbiBjb2RlT3Jp
Z2luU3RyaW5nIGlmICRlbmFibGVDb2RlT3JpZ2luQ29tbWVudHMKKyAgICAgICAgJGFzbS5hbm5v
dGF0aW9uIGFubm90YXRpb24gaWYgJGVuYWJsZUluc3RyQW5ub3RhdGlvbnMgJiYgKG9wY29kZSAh
PSAiY2xvb3BEbyIpCisgICAgICAgICRhc20uZGVidWdBbm5vdGF0aW9uIGNvZGVPcmlnaW4uZGVi
dWdEaXJlY3RpdmUgaWYgJGVuYWJsZURlYnVnQW5ub3RhdGlvbnMKKyAgICBlbmQKIGVuZApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vY29uZmlnLnJiCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2NvbmZpZy5yYgkocmV2aXNpb24g
MjI4Mzg0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vY29uZmlnLnJiCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTItMjAx
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTIxLDYgKzIxLDE2IEBACiAjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKICMgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgogCitidWlsZFByb2R1Y3RzRGlyZWN0b3J5ID0gRU5WWydCVUlM
VF9QUk9EVUNUU19ESVInXTsKK2lmIEZpbGUuZXhpc3RzPyhidWlsZFByb2R1Y3RzRGlyZWN0b3J5
KQorICAgICQ6IDw8ICIje2J1aWxkUHJvZHVjdHNEaXJlY3Rvcnl9L3Vzci9sb2NhbC9pbmNsdWRl
L1dlYktpdEFkZGl0aW9ucy9TY3JpcHRzIgorZW5kCitzZGtSb290RGlyZWN0b3J5ID0gRU5WWydT
REtST09UJ107CitpZiBGaWxlLmV4aXN0cz8oc2RrUm9vdERpcmVjdG9yeSkKKyAgICAkOiA8PCAi
I3tzZGtSb290RGlyZWN0b3J5fS91c3IvbG9jYWwvaW5jbHVkZS9XZWJLaXRBZGRpdGlvbnMvU2Ny
aXB0cyIKK2VuZAorCisKICRwcmVmZXJyZWRDb21tZW50U3RhcnRDb2x1bW4gPSA2MAogCiAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0aW9ucy5yYgo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMu
cmIJKHJldmlzaW9uIDIyODM4NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNt
L2luc3RydWN0aW9ucy5yYgkod29ya2luZyBjb3B5KQpAQCAtMSw0ICsxLDQgQEAKLSMgQ29weXJp
Z2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0
IChDKSAyMDExLTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0yNDksNyArMjQ5LDE0IEBAIE1BQ1JPX0lOU1RSVUNUSU9O
UyA9CiAgICAgICJibnoiLAogICAgICAibGVhaSIsCiAgICAgICJsZWFwIiwKLSAgICAgIm1lbWZl
bmNlIgorICAgICAibWVtZmVuY2UiLAorCisgICAgICMgbWFjcm8gaW5zdHJ1Y3Rpb25zOiB1bmxl
c3MgaW5zdHJ1Y3RlZCBvdGhlcndpc2UgYnkgYSBiYWNrZW5kLCB0aGVzZSBtYWNybworICAgICAj
IGluc3RydWN0aW9ucyB3aWxsIGJlIGxvd2VyZWQgdG8gdGhlaXIgZ2VuZXJpYyBmb3JtLgorICAg
ICAiY2FsbGpzIiwKKyAgICAgImNhbGxuYXRpdmUiLAorICAgICAiY2FsbHNsb3dwYXRoIiwKKyAg
ICAgImNhbGxzbG93cGF0aHZvaWQiCiAgICAgXQogCiBYODZfSU5TVFJVQ1RJT05TID0KQEAgLTI5
MywxMSArMzAwLDcgQEAgTUlQU19JTlNUUlVDVElPTlMgPQogCiBDWFhfSU5TVFJVQ1RJT05TID0K
ICAgICBbCi0gICAgICJjbG9vcENyYXNoIiwgICAgICAgICAgICAgICMgbm8gb3BlcmFuZHMKLSAg
ICAgImNsb29wQ2FsbEpTRnVuY3Rpb24iLCAgICAgIyBvcGVyYW5kczogY2FsbGVlCi0gICAgICJj
bG9vcENhbGxOYXRpdmUiLCAgICAgICAgICMgb3BlcmFuZHM6IGNhbGxlZQotICAgICAiY2xvb3BD
YWxsU2xvd1BhdGgiLCAgICAgICAjIG9wZXJhbmRzOiBjYWxsVGFyZ2V0LCBjdXJyZW50RnJhbWUs
IGN1cnJlbnRQQwotICAgICAiY2xvb3BDYWxsU2xvd1BhdGhWb2lkIiwgICAjIG9wZXJhbmRzOiBj
YWxsVGFyZ2V0LCBjdXJyZW50RnJhbWUsIGN1cnJlbnRQQworICAgICAiY2xvb3BDcmFzaCIsICAg
ICAgICAgICMgbm8gb3BlcmFuZHMKIAogICAgICAjIEZvciBkZWJ1Z2dpbmcgb25seToKICAgICAg
IyBUYWtlcyBubyBvcGVyYW5kcyBidXQgc2ltcGx5IGVtaXRzIHdoYXRldmVyIGZvbGxvd3MgaW4g
Ly8gY29tbWVudHMgYXMKQEAgLTMwNSw3ICszMDgsNyBAQCBDWFhfSU5TVFJVQ1RJT05TID0KICAg
ICAgIyB1c2VkIHRvIGluc2VydCBpbnN0cnVtZW50YXRpb24gaW50byB0aGUgaW50ZXJwcmV0ZXIg
bG9vcCB0byBpbnNwZWN0CiAgICAgICMgdmFyaWFibGVzIG9mIGludGVyZXN0LiBEbyBub3QgbGVh
dmUgdGhlc2UgaW5zdHJ1Y3Rpb25zIGluIHByb2R1Y3Rpb24KICAgICAgIyBjb2RlLgotICAgICAi
Y2xvb3BEbyIsICAgICAgICAgICAgICAjIG5vIG9wZXJhbmRzCisgICAgICJjbG9vcERvIiwgICAg
ICAgICAgICAgIyBubyBvcGVyYW5kcwogICAgIF0KIAogSU5TVFJVQ1RJT05TID0gTUFDUk9fSU5T
VFJVQ1RJT05TICsgWDg2X0lOU1RSVUNUSU9OUyArIEFSTV9JTlNUUlVDVElPTlMgKyBBUk02NF9J
TlNUUlVDVElPTlMgKyBSSVNDX0lOU1RSVUNUSU9OUyArIE1JUFNfSU5TVFJVQ1RJT05TICsgQ1hY
X0lOU1RSVUNUSU9OUwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vbWlw
cy5yYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9taXBz
LnJiCShyZXZpc2lvbiAyMjgzODQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFz
bS9taXBzLnJiCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5cmlnaHQgKEMp
IDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIw
MTItMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjIENvcHlyaWdodCAoQykg
MjAxMiBNSVBTIFRlY2hub2xvZ2llcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKQEAgLTgyNSw3ICs4MjUsNiBAQCBlbmQKIAogY2xhc3MgSW5zdHJ1Y3Rpb24KICAg
ICBkZWYgbG93ZXJNSVBTCi0gICAgICAgICRhc20uY29tbWVudCBjb2RlT3JpZ2luU3RyaW5nCiAg
ICAgICAgIGNhc2Ugb3Bjb2RlCiAgICAgICAgIHdoZW4gImFkZGkiLCAiYWRkcCIsICJhZGRpcyIK
ICAgICAgICAgICAgIGlmIG9wZXJhbmRzLnNpemUgPT0gMyBhbmQgb3BlcmFuZHNbMF0uaXNfYT8g
SW1tZWRpYXRlCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yaXNjLnJi
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3Jpc2MucmIJ
KHJldmlzaW9uIDIyODM4NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3Jp
c2MucmIJKHdvcmtpbmcgY29weSkKQEAgLTEsNCArMSw0IEBACi0jIENvcHlyaWdodCAoQykgMjAx
MSwgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykg
MjAxMS0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtNTc1LDcgKzU3NSw3IEBAIGRlZiByaXNjTG93ZXJOb3QobGlzdCkK
ICAgICAgICAgaWYgbm9kZS5pc19hPyBJbnN0cnVjdGlvbgogICAgICAgICAgICAgY2FzZSBub2Rl
Lm9wY29kZQogICAgICAgICAgICAgd2hlbiAibm90aSIsICJub3RwIgotICAgICAgICAgICAgICAg
IHJhaXNlICJXcm9uZyBudWJtZXIgb2Ygb3BlcmFuZHMgYXQgI3tub2RlLmNvZGVPcmlnaW5TdHJp
bmd9IiB1bmxlc3Mgbm9kZS5vcGVyYW5kcy5zaXplID09IDEKKyAgICAgICAgICAgICAgICByYWlz
ZSAiV3JvbmcgbnVtYmVyIG9mIG9wZXJhbmRzIGF0ICN7bm9kZS5jb2RlT3JpZ2luU3RyaW5nfSIg
dW5sZXNzIG5vZGUub3BlcmFuZHMuc2l6ZSA9PSAxCiAgICAgICAgICAgICAgICAgc3VmZml4ID0g
bm9kZS5vcGNvZGVbLTEuLi0xXQogICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rp
b24ubmV3KG5vZGUuY29kZU9yaWdpbiwgInhvciIgKyBzdWZmaXgsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgW0ltbWVkaWF0ZS5uZXcobm9kZS5jb2RlT3JpZ2lu
LCAtMSksIG5vZGUub3BlcmFuZHNbMF1dKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL29m
ZmxpbmVhc20veDg2LnJiCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZs
aW5lYXNtL3g4Ni5yYgkocmV2aXNpb24gMjI4Mzg0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L29mZmxpbmVhc20veDg2LnJiCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5
cmlnaHQgKEMpIDIwMTIsIDIwMTQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisjIENvcHlyaWdodCAoQykgMjAxMi0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICMgQ29weXJpZ2h0IChDKSAyMDEzIERpZ2lhIFBsYy4gYW5kL29yIGl0cyBzdWJzaWRpYXJ5
KC1pZXMpCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtODkwLDEwICs4OTAsNiBAQCBjbGFzcyBJbnN0cnVj
dGlvbgogICAgIGVuZAogCiAgICAgZGVmIGxvd2VyWDg2Q29tbW9uCi0gICAgICAgICRhc20uY29k
ZU9yaWdpbiBjb2RlT3JpZ2luU3RyaW5nIGlmICRlbmFibGVDb2RlT3JpZ2luQ29tbWVudHMKLSAg
ICAgICAgJGFzbS5hbm5vdGF0aW9uIGFubm90YXRpb24gaWYgJGVuYWJsZUluc3RyQW5ub3RhdGlv
bnMKLSAgICAgICAgJGFzbS5kZWJ1Z0Fubm90YXRpb24gY29kZU9yaWdpbi5kZWJ1Z0RpcmVjdGl2
ZSBpZiAkZW5hYmxlRGVidWdBbm5vdGF0aW9ucwotCiAgICAgICAgIGNhc2Ugb3Bjb2RlCiAgICAg
ICAgIHdoZW4gImFkZGkiCiAgICAgICAgICAgICBoYW5kbGVYODZBZGQoOmludCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>333615</attachid>
            <date>2018-02-12 12:26:04 -0800</date>
            <delta_ts>2018-02-12 15:29:38 -0800</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-182702.patch</filename>
            <type>text/plain</type>
            <size>27228</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjI4Mzg3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQyIEBA
CisyMDE4LTAyLTEyICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBN
aXNjZWxsYW5lb3VzIHJlZmFjdG9yaW5nIG9mIG9mZmxpbmVhc20uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODI3MDIKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzM3NDY3ODg3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIDEuIFByb21vdGUgQ0xvb3Agc3BlY2lmaWMgY2FsbCBvcGVyYXRpb25zIGludG8g
b2ZmbGluZWFzbSBtYWNybyBpbnN0cnVjdGlvbnMsCisgICAgICAgICAgIGFuZCBhbGxvdyB0aGUg
c3BlY2lmaWMgYmFja2VuZCB0byBpbXBsZW1lbnQgb3IgbG93ZXIgdGhlc2UgbWFjcm8gaW5zdHJ1
Y3Rpb25zCisgICAgICAgICAgIGFzIG5lZWRlZC4gIFRoaXMgbWFrZXMgdGhlIExMSW50IGFzbSBj
b2RlIGNsZWFuZXIgdG8gcmVhZCBhbmQgcHJvdmlkZQorICAgICAgICAgICBvcHBvcnR1bml0aWVz
IGZvciBpbXBsZW1lbnRpbmcgY3VzdG9tIHZlcnNpb25zIG9mIHRoZXNlIG1hY3JvIGluc3RydWN0
aW9ucy4KKworICAgICAgICAyLiBDaGFuZ2VkIHRoZSBDTG9vcCBjYWxsc2xvd3BhdGggYW5kIGNh
bGxzbG93cGF0aHZvaWQgdG8gZXhwZWN0IGFyZ3VtZW50cyBpbiBhMAorICAgICAgICAgICBhbmQg
YTEgcmVnaXN0ZXJzIGp1c3QgbGlrZSBhbGwgb3RoZXIgb2ZmbGluZWFzbSBiYWNrZW5kcyBkby4K
KworICAgICAgICAzLiBSZWZhY3RvciBvdXQgdGhlIGVtaXNzaW9uIG9mICRhc20uY29tbWVudCwg
JGFzbS5jb2RlT3JpZ2luLCAkYXNtLmFubm90YXRpb24sCisgICAgICAgICAgIGFuZCAkYXNtLmRl
YnVnQW5ub3RhdGlvbiBpbnRvIGEgcmVjb3JkTWV0YURhdGEgbWV0aG9kLiAgVGhpcyBzdGFuZGFy
ZGl6ZXMgaG93CisgICAgICAgICAgIHdlIGVtaXQgdGhpcyBtZXRhZGF0YSBhbmQgbWFrZXMgYWxs
IGJhY2tlbmRzIGRvIGl0IHRoZSBzYW1lIHdheS4KKworICAgICAgICA0LiBBZGQgdGhlIGFiaWxp
dHkgdG8gaW5jbHVkZSBjdXN0b20gb2ZmbGluZWFzbSBzY3JpcHRzIGZyb20gV2ViS2l0QWRkaXRp
b25zIGluCisgICAgICAgICAgIHRoZSBmdXR1cmUuCisKKyAgICAgICAgKiBsbGludC9Mb3dMZXZl
bEludGVycHJldGVyLmFzbToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyLmNw
cDoKKyAgICAgICAgKEpTQzo6Q0xvb3A6OmV4ZWN1dGUpOgorICAgICAgICAqIGxsaW50L0xvd0xl
dmVsSW50ZXJwcmV0ZXIzMl82NC5hc206CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnBy
ZXRlcjY0LmFzbToKKyAgICAgICAgKiBvZmZsaW5lYXNtL2FybS5yYjoKKyAgICAgICAgKiBvZmZs
aW5lYXNtL2FybTY0LnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vYXN0LnJiOgorICAgICAgICAq
IG9mZmxpbmVhc20vYmFja2VuZHMucmI6CisgICAgICAgICogb2ZmbGluZWFzbS9jbG9vcC5yYjoK
KyAgICAgICAgKiBvZmZsaW5lYXNtL2NvbmZpZy5yYjoKKyAgICAgICAgKiBvZmZsaW5lYXNtL2lu
c3RydWN0aW9ucy5yYjoKKyAgICAgICAgKiBvZmZsaW5lYXNtL21pcHMucmI6CisgICAgICAgICog
b2ZmbGluZWFzbS9yaXNjLnJiOgorICAgICAgICAqIG9mZmxpbmVhc20veDg2LnJiOgorCiAyMDE4
LTAyLTExICBHdWlsbGF1bWUgRW1vbnQgIDxndWlqZW1vbnRAaWdhbGlhLmNvbT4KIAogICAgICAg
ICBbTUlQU10gSlNDIG5lZWRzIHRvIGJlIGJ1aWx0IHdpdGggLWxhdG9taWMKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVy
MzJfNjQuYXNtCShyZXZpc2lvbiAyMjgzODcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQkod29ya2luZyBjb3B5KQpAQCAtNDgsMjgg
KzQ4LDMyIEBAIG1hY3JvIGRpc3BhdGNoQWZ0ZXJDYWxsKCkKICAgICBkaXNwYXRjaChDYWxsT3BD
b2RlU2l6ZSkKIGVuZAogCi1tYWNybyBjQ2FsbDIoZnVuY3Rpb24pCi0gICAgaWYgQVJNIG9yIEFS
TXY3IG9yIEFSTXY3X1RSQURJVElPTkFMIG9yIE1JUFMKLSAgICAgICAgY2FsbCBmdW5jdGlvbgor
bWFjcm8gY0NhbGwySW1wbChmdW5jdGlvbiwgZG9TbG93UGF0aENhbGwpCisgICAgaWYgQVJNIG9y
IEFSTXY3IG9yIEFSTXY3X1RSQURJVElPTkFMIG9yIE1JUFMgb3IgQ19MT09QCisgICAgICAgIGRv
U2xvd1BhdGhDYWxsKGZ1bmN0aW9uKQogICAgIGVsc2lmIFg4NiBvciBYODZfV0lOCiAgICAgICAg
IHN1YnAgOCwgc3AKICAgICAgICAgcHVzaCBhMQogICAgICAgICBwdXNoIGEwCi0gICAgICAgIGNh
bGwgZnVuY3Rpb24KKyAgICAgICAgZG9TbG93UGF0aENhbGwoZnVuY3Rpb24pCiAgICAgICAgIGFk
ZHAgMTYsIHNwCi0gICAgZWxzaWYgQ19MT09QCi0gICAgICAgIGNsb29wQ2FsbFNsb3dQYXRoIGZ1
bmN0aW9uLCBhMCwgYTEKICAgICBlbHNlCiAgICAgICAgIGVycm9yCiAgICAgZW5kCiBlbmQKIAor
bWFjcm8gY0NhbGwyKGZ1bmN0aW9uKQorICAgIGNDYWxsMkltcGwoZnVuY3Rpb24sCisgICAgICAg
IG1hY3JvKGZ1bmN0aW9uKQorICAgICAgICAgICAgY2FsbHNsb3dwYXRoIGZ1bmN0aW9uCisgICAg
ICAgIGVuZCkKK2VuZAorCiBtYWNybyBjQ2FsbDJWb2lkKGZ1bmN0aW9uKQotICAgIGlmIENfTE9P
UAotICAgICAgICBjbG9vcENhbGxTbG93UGF0aFZvaWQgZnVuY3Rpb24sIGEwLCBhMQotICAgIGVs
c2UKLSAgICAgICAgY0NhbGwyKGZ1bmN0aW9uKQotICAgIGVuZAorICAgIGNDYWxsMkltcGwoZnVu
Y3Rpb24sCisgICAgICAgIG1hY3JvKGZ1bmN0aW9uKQorICAgICAgICAgICAgY2FsbHNsb3dwYXRo
dm9pZCBmdW5jdGlvbgorICAgICAgICBlbmQpCiBlbmQKIAogbWFjcm8gY0NhbGw0KGZ1bmN0aW9u
KQpAQCAtMTYyLDcgKzE2Niw5IEBAIG1hY3JvIGRvVk1FbnRyeShtYWtlQ2FsbCkKICAgICBpZiBD
X0xPT1AKICAgICAgICAgbW92ZSBlbnRyeSwgdDQKICAgICAgICAgbW92ZSB2bSwgdDUKLSAgICAg
ICAgY2xvb3BDYWxsU2xvd1BhdGggX2xsaW50X3N0YWNrX2NoZWNrX2F0X3ZtX2VudHJ5LCB2bSwg
dDMKKyAgICAgICAgbW92ZSB2bSwgYTAKKyAgICAgICAgbW92ZSB0MywgYTEKKyAgICAgICAgY2Fs
bHNsb3dwYXRoIF9sbGludF9zdGFja19jaGVja19hdF92bV9lbnRyeQogICAgICAgICBicGVxIHQw
LCAwLCAuc3RhY2tDaGVja0ZhaWxlZAogICAgICAgICBtb3ZlIHQ0LCBlbnRyeQogICAgICAgICBt
b3ZlIHQ1LCB2bQpAQCAtMjczLDExICsyNzksNyBAQCBlbmQKIG1hY3JvIG1ha2VKYXZhU2NyaXB0
Q2FsbChlbnRyeSwgdGVtcCwgdW51c2VkKQogICAgIGFkZHAgQ2FsbGVyRnJhbWVBbmRQQ1NpemUs
IHNwCiAgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodGVtcCwgMHhiYWQwZGMwMikKLSAg
ICBpZiBDX0xPT1AKLSAgICAgICAgY2xvb3BDYWxsSlNGdW5jdGlvbiBlbnRyeQotICAgIGVsc2UK
LSAgICAgICAgY2FsbCBlbnRyeQotICAgIGVuZAorICAgIGNhbGxqcyBlbnRyeQogICAgIGNoZWNr
U3RhY2tQb2ludGVyQWxpZ25tZW50KHRlbXAsIDB4YmFkMGRjMDMpCiAgICAgc3VicCBDYWxsZXJG
cmFtZUFuZFBDU2l6ZSwgc3AKIGVuZApAQCAtMjg4LDcgKzI5MCw3IEBAIG1hY3JvIG1ha2VIb3N0
RnVuY3Rpb25DYWxsKGVudHJ5LCB0ZW1wMSwKICAgICBpZiBDX0xPT1AKICAgICAgICAgbW92ZSBz
cCwgYTAKICAgICAgICAgc3RvcmVwIGxyLCBQdHJTaXplW3NwXQotICAgICAgICBjbG9vcENhbGxO
YXRpdmUgdGVtcDEKKyAgICAgICAgY2FsbG5hdGl2ZSB0ZW1wMQogICAgIGVsc2lmIFg4NiBvciBY
ODZfV0lOCiAgICAgICAgICMgUHV0IGNhbGxlZSBmcmFtZSBwb2ludGVyIG9uIHN0YWNrIGFzIGFy
ZzAsIGFsc28gcHV0IGl0IGluIGVjeCBmb3IgImZhc3RjYWxsIiB0YXJnZXRzCiAgICAgICAgIG1v
dmUgMCwgdGVtcDIKQEAgLTI5NiwxMSArMjk4LDExIEBAIG1hY3JvIG1ha2VIb3N0RnVuY3Rpb25D
YWxsKGVudHJ5LCB0ZW1wMSwKICAgICAgICAgbW92ZSBzcCwgYTAgIyBhMCBpcyBlY3gKICAgICAg
ICAgcHVzaCB0ZW1wMiAjIFB1c2ggZHVtbXkgYXJnMQogICAgICAgICBwdXNoIGEwCi0gICAgICAg
IGNhbGwgdGVtcDEKKyAgICAgICAgY2FsbG5hdGl2ZSB0ZW1wMQogICAgICAgICBhZGRwIDgsIHNw
CiAgICAgZWxzZQogICAgICAgICBtb3ZlIHNwLCBhMAotICAgICAgICBjYWxsIHRlbXAxCisgICAg
ICAgIGNhbGxuYXRpdmUgdGVtcDEKICAgICBlbmQKIGVuZAogCkBAIC0yMTAxLDExICsyMTAzLDcg
QEAgbWFjcm8gbmF0aXZlQ2FsbFRyYW1wb2xpbmUoZXhlY3V0YWJsZU9mZgogICAgICAgICBsb2Fk
aSBDYWxsZWUgKyBQYXlsb2FkT2Zmc2V0W2Nmcl0sIHQxCiAgICAgICAgIGxvYWRwIEpTRnVuY3Rp
b246Om1fZXhlY3V0YWJsZVt0MV0sIHQxCiAgICAgICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25t
ZW50KHQzLCAweGRlYWQwMDAxKQotICAgICAgICBpZiBDX0xPT1AKLSAgICAgICAgICAgIGNsb29w
Q2FsbE5hdGl2ZSBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvblt0MV0KLSAgICAgICAgZWxzZQot
ICAgICAgICAgICAgY2FsbCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvblt0MV0KLSAgICAgICAg
ZW5kCisgICAgICAgIGNhbGxuYXRpdmUgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb25bdDFdCiAg
ICAgICAgIGxvYWRwIENhbGxlZSArIFBheWxvYWRPZmZzZXRbY2ZyXSwgdDMKICAgICAgICAgYW5k
cCBNYXJrZWRCbG9ja01hc2ssIHQzCiAgICAgICAgIGxvYWRwIE1hcmtlZEJsb2NrRm9vdGVyT2Zm
c2V0ICsgTWFya2VkQmxvY2s6OkZvb3Rlcjo6bV92bVt0M10sIHQzCkBAIC0yMTYwLDExICsyMTU4
LDcgQEAgbWFjcm8gaW50ZXJuYWxGdW5jdGlvbkNhbGxUcmFtcG9saW5lKG9mZgogICAgICAgICBt
b3ZlIGNmciwgYTAKICAgICAgICAgbG9hZGkgQ2FsbGVlICsgUGF5bG9hZE9mZnNldFtjZnJdLCB0
MQogICAgICAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCh0MywgMHhkZWFkMDAwMSkKLSAg
ICAgICAgaWYgQ19MT09QCi0gICAgICAgICAgICBjbG9vcENhbGxOYXRpdmUgb2Zmc2V0T2ZGdW5j
dGlvblt0MV0KLSAgICAgICAgZWxzZQotICAgICAgICAgICAgY2FsbCBvZmZzZXRPZkZ1bmN0aW9u
W3QxXQotICAgICAgICBlbmQKKyAgICAgICAgY2FsbG5hdGl2ZSBvZmZzZXRPZkZ1bmN0aW9uW3Qx
XQogICAgICAgICBsb2FkcCBDYWxsZWUgKyBQYXlsb2FkT2Zmc2V0W2Nmcl0sIHQzCiAgICAgICAg
IGFuZHAgTWFya2VkQmxvY2tNYXNrLCB0MwogICAgICAgICBsb2FkcCBNYXJrZWRCbG9ja0Zvb3Rl
ck9mZnNldCArIE1hcmtlZEJsb2NrOjpGb290ZXI6Om1fdm1bdDNdLCB0MwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5h
c20JKHJldmlzaW9uIDIyODM4NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dM
ZXZlbEludGVycHJldGVyNjQuYXNtCSh3b3JraW5nIGNvcHkpCkBAIC01MiwxMSArNTIsMTggQEAg
bWFjcm8gZGlzcGF0Y2hBZnRlckNhbGwoKQogICAgIGRpc3BhdGNoKENhbGxPcENvZGVTaXplKQog
ZW5kCiAKLW1hY3JvIGNDYWxsMihmdW5jdGlvbikKK21hY3JvIGNDYWxsMkltcGwoZnVuY3Rpb24s
IGRvU2xvd1BhdGhDYWxsKQogICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KHQ0LCAweGJh
ZDBjMDAyKQotICAgIGlmIFg4Nl82NCBvciBBUk02NAotICAgICAgICBjYWxsIGZ1bmN0aW9uCi0g
ICAgZWxzaWYgWDg2XzY0X1dJTgorICAgIGlmIFg4Nl82NCBvciBBUk02NCBvciBDX0xPT1AKKyAg
ICAgICAgZG9TbG93UGF0aENhbGwoZnVuY3Rpb24pCisgICAgZWxzZQorICAgICAgICBlcnJvcgor
ICAgIGVuZAorZW5kCisKK21hY3JvIGNDYWxsMihmdW5jdGlvbikKKyAgICBpZiBYODZfNjRfV0lO
CisgICAgICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KHQ0LCAweGJhZDBjMDAyKQogICAg
ICAgICAjIE5vdGU6IHRoaXMgaW1wbGVtZW50YXRpb24gaXMgb25seSBjb3JyZWN0IGlmIHRoZSBy
ZXR1cm4gdHlwZSBzaXplIGlzID4gOCBieXRlcy4KICAgICAgICAgIyBTZWUgbWFjcm8gY0NhbGwy
Vm9pZCBmb3IgYW4gaW1wbGVtZW50YXRpb24gd2hlbiB0aGUgcmV0dXJuIHR5cGUgPD0gOCBieXRl
cy4KICAgICAgICAgIyBPbiBXaW42NCwgd2hlbiB0aGUgcmV0dXJuIHR5cGUgaXMgbGFyZ2VyIHRo
YW4gOCBieXRlcywgd2UgbmVlZCB0byBhbGxvY2F0ZSBzcGFjZSBvbiB0aGUgc3RhY2sgZm9yIHRo
ZSByZXR1cm4gdmFsdWUuCkBAIC03MCwzMSArNzcsMzMgQEAgbWFjcm8gY0NhbGwyKGZ1bmN0aW9u
KQogICAgICAgICBzdWJwIDQ4LCBzcAogICAgICAgICBtb3ZlIHNwLCBhMAogICAgICAgICBhZGRw
IDMyLCBhMAotICAgICAgICBjYWxsIGZ1bmN0aW9uCisgICAgICAgIGNhbGxzbG93cGF0aCBmdW5j
dGlvbgogICAgICAgICBhZGRwIDQ4LCBzcAogICAgICAgICBtb3ZlIDhbcjBdLCByMQogICAgICAg
ICBtb3ZlIFtyMF0sIHIwCi0gICAgZWxzaWYgQ19MT09QCi0gICAgICAgIGNsb29wQ2FsbFNsb3dQ
YXRoIGZ1bmN0aW9uLCBhMCwgYTEKICAgICBlbHNlCi0gICAgICAgIGVycm9yCisgICAgICAgIGND
YWxsMkltcGwoZnVuY3Rpb24sCisgICAgICAgICAgICBtYWNybyhmdW5jdGlvbikKKyAgICAgICAg
ICAgICAgICBjYWxsc2xvd3BhdGggZnVuY3Rpb24KKyAgICAgICAgICAgIGVuZCkKICAgICBlbmQK
IGVuZAogCiBtYWNybyBjQ2FsbDJWb2lkKGZ1bmN0aW9uKQotICAgIGlmIENfTE9PUAotICAgICAg
ICBjbG9vcENhbGxTbG93UGF0aFZvaWQgZnVuY3Rpb24sIGEwLCBhMQotICAgIGVsc2lmIFg4Nl82
NF9XSU4KKyAgICBpZiBYODZfNjRfV0lOCiAgICAgICAgICMgTm90ZTogd2UgY2Fubm90IHVzZSB0
aGUgY0NhbGwyIG1hY3JvIGZvciBXaW42NCBpbiB0aGlzIGNhc2UsCiAgICAgICAgICMgYXMgdGhl
IFdpbjY0IGNDYWxsMiBpbXBsZW1lbmF0aW9uIGlzIG9ubHkgY29ycmVjdCB3aGVuIHRoZSByZXR1
cm4gdHlwZSBzaXplIGlzID4gOCBieXRlcy4KICAgICAgICAgIyBPbiBXaW42NCwgcmN4IGFuZCBy
ZHggYXJlIHVzZWQgZm9yIHBhc3NpbmcgdGhlIGZpcnN0IHR3byBwYXJhbWV0ZXJzLgogICAgICAg
ICAjIFdlIGFsc28gbmVlZCB0byBtYWtlIHJvb20gb24gdGhlIHN0YWNrIGZvciBhbGwgZm91ciBw
YXJhbWV0ZXIgcmVnaXN0ZXJzLgogICAgICAgICAjIFNlZSBodHRwOi8vbXNkbi5taWNyb3NvZnQu
Y29tL2VuLXVzL2xpYnJhcnkvbXMyMzUyODYuYXNweAogICAgICAgICBzdWJwIDMyLCBzcCAKLSAg
ICAgICAgY2FsbCBmdW5jdGlvbgorICAgICAgICBjYWxsc2xvd3BhdGh2b2lkIGZ1bmN0aW9uCiAg
ICAgICAgIGFkZHAgMzIsIHNwIAogICAgIGVsc2UKLSAgICAgICAgY0NhbGwyKGZ1bmN0aW9uKQor
ICAgICAgICBjQ2FsbDJJbXBsKGZ1bmN0aW9uLAorICAgICAgICAgICAgbWFjcm8oZnVuY3Rpb24p
CisgICAgICAgICAgICAgICAgY2FsbHNsb3dwYXRodm9pZCBmdW5jdGlvbgorICAgICAgICAgICAg
ZW5kKQogICAgIGVuZAogZW5kCiAKQEAgLTE0OSw5ICsxNTgsMTIgQEAgbWFjcm8gZG9WTUVudHJ5
KG1ha2VDYWxsKQogICAgIGVuZAogCiAgICAgaWYgQ19MT09QCisgICAgICAgICMgZW50cnkgd2Fz
IGluIGEwLCBhbmQgdm0gd2FzIGluIGExLgogICAgICAgICBtb3ZlIGVudHJ5LCB0NAogICAgICAg
ICBtb3ZlIHZtLCB0NQotICAgICAgICBjbG9vcENhbGxTbG93UGF0aCBfbGxpbnRfc3RhY2tfY2hl
Y2tfYXRfdm1fZW50cnksIHZtLCB0MworICAgICAgICBtb3ZlIHZtLCBhMAorICAgICAgICBtb3Zl
IHQzLCBhMQorICAgICAgICBjYWxsc2xvd3BhdGggX2xsaW50X3N0YWNrX2NoZWNrX2F0X3ZtX2Vu
dHJ5CiAgICAgICAgIGJwZXEgdDAsIDAsIC5zdGFja0NoZWNrRmFpbGVkCiAgICAgICAgIG1vdmUg
dDQsIGVudHJ5CiAgICAgICAgIG1vdmUgdDUsIHZtCkBAIC0yNTEsMTEgKzI2Myw3IEBAIGVuZAog
CiBtYWNybyBtYWtlSmF2YVNjcmlwdENhbGwoZW50cnksIHRlbXApCiAgICAgYWRkcCAxNiwgc3AK
LSAgICBpZiBDX0xPT1AKLSAgICAgICAgY2xvb3BDYWxsSlNGdW5jdGlvbiBlbnRyeQotICAgIGVs
c2UKLSAgICAgICAgY2FsbCBlbnRyeQotICAgIGVuZAorICAgIGNhbGxqcyBlbnRyeQogICAgIHN1
YnAgMTYsIHNwCiBlbmQKIApAQCAtMjY2LDE0ICsyNzQsMTQgQEAgbWFjcm8gbWFrZUhvc3RGdW5j
dGlvbkNhbGwoZW50cnksIHRlbXApCiAgICAgbW92ZSBzcCwgYTAKICAgICBpZiBDX0xPT1AKICAg
ICAgICAgc3RvcmVwIGxyLCA4W3NwXQotICAgICAgICBjbG9vcENhbGxOYXRpdmUgdGVtcAorICAg
ICAgICBjYWxsbmF0aXZlIHRlbXAKICAgICBlbHNpZiBYODZfNjRfV0lOCiAgICAgICAgICMgV2Ug
bmVlZCB0byBhbGxvY2F0ZSAzMiBieXRlcyBvbiB0aGUgc3RhY2sgZm9yIHRoZSBzaGFkb3cgc3Bh
Y2UuCiAgICAgICAgIHN1YnAgMzIsIHNwCi0gICAgICAgIGNhbGwgdGVtcAorICAgICAgICBjYWxs
bmF0aXZlIHRlbXAKICAgICAgICAgYWRkcCAzMiwgc3AKICAgICBlbHNlCi0gICAgICAgIGNhbGwg
dGVtcAorICAgICAgICBjYWxsbmF0aXZlIHRlbXAKICAgICBlbmQKIGVuZAogCkBAIC0yMTAzLDIw
ICsyMTExLDE0IEBAIG1hY3JvIG5hdGl2ZUNhbGxUcmFtcG9saW5lKGV4ZWN1dGFibGVPZmYKICAg
ICBsb2FkcCBDYWxsZWVbY2ZyXSwgdDEKICAgICBsb2FkcCBKU0Z1bmN0aW9uOjptX2V4ZWN1dGFi
bGVbdDFdLCB0MQogICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KHQzLCAweGRlYWQwMDAx
KQotICAgIGlmIENfTE9PUAorICAgIGlmIFg4Nl82NF9XSU4KKyAgICAgICAgc3VicCAzMiwgc3AK
KyAgICAgICAgY2FsbG5hdGl2ZSBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvblt0MV0KKyAgICAg
ICAgYWRkcCAzMiwgc3AKKyAgICBlbHNlCiAgICAgICAgIGxvYWRwIF9nX05hdGl2ZUNvZGVQb2lz
b24sIHQyCiAgICAgICAgIHhvcnAgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb25bdDFdLCB0Mgot
ICAgICAgICBjbG9vcENhbGxOYXRpdmUgdDIKLSAgICBlbHNlCi0gICAgICAgIGlmIFg4Nl82NF9X
SU4KLSAgICAgICAgICAgIHN1YnAgMzIsIHNwCi0gICAgICAgICAgICBjYWxsIGV4ZWN1dGFibGVP
ZmZzZXRUb0Z1bmN0aW9uW3QxXQotICAgICAgICAgICAgYWRkcCAzMiwgc3AKLSAgICAgICAgZWxz
ZQotICAgICAgICAgICAgbG9hZHAgX2dfTmF0aXZlQ29kZVBvaXNvbiwgdDIKLSAgICAgICAgICAg
IHhvcnAgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb25bdDFdLCB0MgotICAgICAgICAgICAgY2Fs
bCB0MgotICAgICAgICBlbmQKKyAgICAgICAgY2FsbG5hdGl2ZSB0MgogICAgIGVuZAogCiAgICAg
bG9hZHAgQ2FsbGVlW2Nmcl0sIHQzCkBAIC0yMTQ2LDIwICsyMTQ4LDE0IEBAIG1hY3JvIGludGVy
bmFsRnVuY3Rpb25DYWxsVHJhbXBvbGluZShvZmYKICAgICBtb3ZlIGNmciwgYTAKICAgICBsb2Fk
cCBDYWxsZWVbY2ZyXSwgdDEKICAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCh0MywgMHhk
ZWFkMDAwMSkKLSAgICBpZiBDX0xPT1AKKyAgICBpZiBYODZfNjRfV0lOCisgICAgICAgIHN1YnAg
MzIsIHNwCisgICAgICAgIGNhbGxuYXRpdmUgb2Zmc2V0T2ZGdW5jdGlvblt0MV0KKyAgICAgICAg
YWRkcCAzMiwgc3AKKyAgICBlbHNlCiAgICAgICAgIGxvYWRwIF9nX05hdGl2ZUNvZGVQb2lzb24s
IHQyCiAgICAgICAgIHhvcnAgb2Zmc2V0T2ZGdW5jdGlvblt0MV0sIHQyCi0gICAgICAgIGNsb29w
Q2FsbE5hdGl2ZSB0MgotICAgIGVsc2UKLSAgICAgICAgaWYgWDg2XzY0X1dJTgotICAgICAgICAg
ICAgc3VicCAzMiwgc3AKLSAgICAgICAgICAgIGNhbGwgb2Zmc2V0T2ZGdW5jdGlvblt0MV0KLSAg
ICAgICAgICAgIGFkZHAgMzIsIHNwCi0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGxvYWRwIF9n
X05hdGl2ZUNvZGVQb2lzb24sIHQyCi0gICAgICAgICAgICB4b3JwIG9mZnNldE9mRnVuY3Rpb25b
dDFdLCB0MgotICAgICAgICAgICAgY2FsbCB0MgotICAgICAgICBlbmQKKyAgICAgICAgY2FsbG5h
dGl2ZSB0MgogICAgIGVuZAogCiAgICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHQzCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNt
CShyZXZpc2lvbiAyMjgzODcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2
ZWxJbnRlcnByZXRlci5hc20JKHdvcmtpbmcgY29weSkKQEAgLTgyNiwxMSArODI2LDcgQEAgbWFj
cm8gY2FsbE9wY29kZVNsb3dQYXRoKHNsb3dQYXRoKQogZW5kCiAKIG1hY3JvIGNhbGxUYXJnZXRG
dW5jdGlvbihjYWxsZWUpCi0gICAgaWYgQ19MT09QCi0gICAgICAgIGNsb29wQ2FsbEpTRnVuY3Rp
b24gY2FsbGVlCi0gICAgZWxzZQotICAgICAgICBjYWxsIGNhbGxlZQotICAgIGVuZAorICAgIGNh
bGxqcyBjYWxsZWUKICAgICByZXN0b3JlU3RhY2tQb2ludGVyQWZ0ZXJDYWxsKCkKICAgICBkaXNw
YXRjaEFmdGVyQ2FsbCgpCiBlbmQKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
b3dMZXZlbEludGVycHJldGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5jcHAJKHJldmlzaW9uIDIyODM4NykKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAx
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTMyOCw2ICszMjgsOCBAQCBKU1ZhbHVlIENMb29wOjpleGVjdXRlKE9wY29k
ZUlEIGVudHJ5T3BjCiAgICAgLy8gMy4gNjQgYml0IHJlc3VsdCB2YWx1ZXMgd2lsbCBiZSBpbiB0
MC4KIAogICAgIENMb29wUmVnaXN0ZXIgdDAsIHQxLCB0MiwgdDMsIHQ1LCB0Nywgc3AsIGNmciwg
bHIsIHBjOworICAgIENMb29wUmVnaXN0ZXImIGEwID0gdDA7CisgICAgQ0xvb3BSZWdpc3RlciYg
YTEgPSB0MTsKICNpZiBVU0UoSlNWQUxVRTY0KQogICAgIENMb29wUmVnaXN0ZXIgcGNCYXNlLCB0
YWdUeXBlTnVtYmVyLCB0YWdNYXNrOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvb2ZmbGluZWFzbS9hcm02NC5yYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvb2ZmbGluZWFzbS9hcm02NC5yYgkocmV2aXNpb24gMjI4Mzg3KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL29mZmxpbmVhc20vYXJtNjQucmIJKHdvcmtpbmcgY29weSkKQEAgLTEsNCArMSw0
IEBACi0jIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxNC0yMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDExLTIwMTggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogIyBDb3B5cmlnaHQgKEMpIDIwMTQgVW5pdmVyc2l0eSBvZiBT
emVnZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtNTExLDEwICs1
MTEsNiBAQCBlbmQKIAogY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICBkZWYgbG93ZXJBUk02NAotICAg
ICAgICAkYXNtLmNvbW1lbnQgY29kZU9yaWdpblN0cmluZwotICAgICAgICAkYXNtLmFubm90YXRp
b24gYW5ub3RhdGlvbiBpZiAkZW5hYmxlSW5zdHJBbm5vdGF0aW9ucwotICAgICAgICAkYXNtLmRl
YnVnQW5ub3RhdGlvbiBjb2RlT3JpZ2luLmRlYnVnRGlyZWN0aXZlIGlmICRlbmFibGVEZWJ1Z0Fu
bm90YXRpb25zCi0KICAgICAgICAgY2FzZSBvcGNvZGUKICAgICAgICAgd2hlbiAnYWRkaScKICAg
ICAgICAgICAgIGVtaXRBUk02NEFkZCgiYWRkIiwgb3BlcmFuZHMsIDppbnQpCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm0ucmIKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtLnJiCShyZXZpc2lvbiAyMjgzODcpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm0ucmIJKHdvcmtpbmcgY29weSkKQEAg
LTEsNCArMSw0IEBACi0jIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxNS0yMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDExLTIwMTggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIyBDb3B5cmlnaHQgKEMpIDIwMTMgVW5pdmVy
c2l0eSBvZiBTemVnZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAt
MzQ4LDEwICszNDgsNiBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAgIGVuZAogCiAgICAgZGVmIGxv
d2VyQVJNQ29tbW9uCi0gICAgICAgICRhc20uY29kZU9yaWdpbiBjb2RlT3JpZ2luU3RyaW5nIGlm
ICRlbmFibGVDb2RlT3JpZ2luQ29tbWVudHMKLSAgICAgICAgJGFzbS5hbm5vdGF0aW9uIGFubm90
YXRpb24gaWYgJGVuYWJsZUluc3RyQW5ub3RhdGlvbnMKLSAgICAgICAgJGFzbS5kZWJ1Z0Fubm90
YXRpb24gY29kZU9yaWdpbi5kZWJ1Z0RpcmVjdGl2ZSBpZiAkZW5hYmxlRGVidWdBbm5vdGF0aW9u
cwotCiAgICAgICAgIGNhc2Ugb3Bjb2RlCiAgICAgICAgIHdoZW4gImFkZGkiLCAiYWRkcCIsICJh
ZGRpcyIsICJhZGRwcyIKICAgICAgICAgICAgIGlmIG9wY29kZSA9PSAiYWRkaXMiIG9yIG9wY29k
ZSA9PSAiYWRkcHMiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hc3Qu
cmIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXN0LnJi
CShyZXZpc2lvbiAyMjgzODcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9h
c3QucmIJKHdvcmtpbmcgY29weSkKQEAgLTEsNCArMSw0IEBACi0jIENvcHlyaWdodCAoQykgMjAx
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxMS0y
MDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtOTMzLDYgKzkzMyw1NyBAQCBjbGFzcyBJbnN0cnVjdGlvbiA8IE5vZGUKICAg
ICAgICAgICAgIHJhaXNlICJVbmhhbmRsZWQgb3Bjb2RlICN7b3Bjb2RlfSBhdCAje2NvZGVPcmln
aW5TdHJpbmd9IgogICAgICAgICBlbmQKICAgICBlbmQKKworICAgIGRlZiBwcmVwYXJlVG9Mb3dl
cihiYWNrZW5kTmFtZSkKKyAgICAgICAgaWYgcmVzcG9uZF90bz8oInJlY29yZE1ldGFEYXRhI3ti
YWNrZW5kTmFtZX0iKQorICAgICAgICAgICAgc2VuZCgicmVjb3JkTWV0YURhdGEje2JhY2tlbmRO
YW1lfSIpCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJlY29yZE1ldGFEYXRhRGVmYXVsdAor
ICAgICAgICBlbmQKKyAgICBlbmQKKworICAgIGRlZiByZWNvcmRNZXRhRGF0YURlZmF1bHQKKyAg
ICAgICAgJGFzbS5jb2RlT3JpZ2luIGNvZGVPcmlnaW5TdHJpbmcgaWYgJGVuYWJsZUNvZGVPcmln
aW5Db21tZW50cworICAgICAgICAkYXNtLmFubm90YXRpb24gYW5ub3RhdGlvbiBpZiAkZW5hYmxl
SW5zdHJBbm5vdGF0aW9ucworICAgICAgICAkYXNtLmRlYnVnQW5ub3RhdGlvbiBjb2RlT3JpZ2lu
LmRlYnVnRGlyZWN0aXZlIGlmICRlbmFibGVEZWJ1Z0Fubm90YXRpb25zCisgICAgZW5kCisKKyAg
ICBkZWYgc2VsZi5sb3dlck1hY3JvSW5zdHJ1Y3Rpb25zKGJhY2tlbmROYW1lLCBub2RlTGlzdCkK
KyAgICAgICAgbmV3TGlzdCA9IFtdCisgICAgICAgIG5vZGVMaXN0LmVhY2ggeworICAgICAgICAg
ICAgfCBub2RlIHwKKyAgICAgICAgICAgIGlmIG5vZGUuaXNfYT8gSW5zdHJ1Y3Rpb24KKyAgICAg
ICAgICAgICAgICBjYXNlIG5vZGUub3Bjb2RlCisgICAgICAgICAgICAgICAgd2hlbiAiY2FsbGpz
IiwgImNhbGxuYXRpdmUiLCAiY2FsbHNsb3dwYXRoIiwgImNhbGxzbG93cGF0aHZvaWQiCisgICAg
ICAgICAgICAgICAgICAgIEluc3RydWN0aW9uLmxvd2VyTWFjcm9JbnN0cnVjdGlvbihiYWNrZW5k
TmFtZSwgbm9kZSwgbmV3TGlzdCkKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICAgICAgZW5kCisg
ICAgICAgIH0gICAgICAgIAorICAgICAgICBuZXdMaXN0CisgICAgZW5kCisKKyAgICBkZWYgc2Vs
Zi5sb3dlck1hY3JvSW5zdHJ1Y3Rpb24oYmFja2VuZE5hbWUsIG5vZGUsIG5ld0xpc3QpCisgICAg
ICAgIHJhaXNlICJJbnZhbGlkIG5vZGUgdHlwZTogZXhwZWN0aW5nIEluc3RydWN0aW9uIiB1bmxl
c3Mgbm9kZS5pc19hPyBJbnN0cnVjdGlvbgorICAgICAgICBpZiByZXNwb25kX3RvPyAibG93ZXJN
YWNyb0luc3RydWN0aW9uI3tiYWNrZW5kTmFtZX0iCisgICAgICAgICAgICBzZW5kKCJsb3dlck1h
Y3JvSW5zdHJ1Y3Rpb24je2JhY2tlbmROYW1lfSIsIG5vZGUsIG5ld0xpc3QpCisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIEluc3RydWN0aW9uLmxvd2VyTWFjcm9JbnN0cnVjdGlvbkRlZmF1bHQo
bm9kZSwgbmV3TGlzdCkKKyAgICAgICAgZW5kCisgICAgZW5kCisKKyAgICBkZWYgc2VsZi5sb3dl
ck1hY3JvSW5zdHJ1Y3Rpb25EZWZhdWx0KG5vZGUsIG5ld0xpc3QpCisgICAgICAgIHJhaXNlICJJ
bnZhbGlkIG5vZGUgdHlwZTogZXhwZWN0aW5nIEluc3RydWN0aW9uIiB1bmxlc3Mgbm9kZS5pc19h
PyBJbnN0cnVjdGlvbgorICAgICAgICBjYXNlIG5vZGUub3Bjb2RlCisgICAgICAgIHdoZW4gImNh
bGxqcyIsICJjYWxsbmF0aXZlIiwgImNhbGxzbG93cGF0aCIsICJjYWxsc2xvd3BhdGh2b2lkIgor
ICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAi
Y2FsbCIsIG5vZGUub3BlcmFuZHMpCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJhaXNlICIj
e25vZGUub3Bjb2RlfSBpcyBub3QgYSBtYWNybyBpbnN0cnVjdGlvbiIKKyAgICAgICAgZW5kCisg
ICAgZW5kCiBlbmQKIAogY2xhc3MgRXJyb3IgPCBOb0NoaWxkcmVuCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9iYWNrZW5kcy5yYgo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9iYWNrZW5kcy5yYgkocmV2aXNpb24gMjI4Mzg3KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYmFja2VuZHMucmIJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNCArMSw0IEBACi0jIENvcHlyaWdodCAoQykgMjAxMSwgMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxMS0yMDE4IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMTI0LDcgKzEyNCw4IEBAIGNsYXNzIE5vZGUKICAgICBkZWYgbG93ZXIobmFtZSkKICAgICAg
ICAgYmVnaW4KICAgICAgICAgICAgICRhY3RpdmVCYWNrZW5kID0gbmFtZQotICAgICAgICAgICAg
c2VuZCgibG93ZXIiICsgbmFtZSkKKyAgICAgICAgICAgIHNlbmQoInByZXBhcmVUb0xvd2VyIiwg
bmFtZSkKKyAgICAgICAgICAgIHNlbmQoImxvd2VyI3tuYW1lfSIpCiAgICAgICAgIHJlc2N1ZSA9
PiBlCiAgICAgICAgICAgICByYWlzZSBMb3dlcmluZ0Vycm9yLm5ldyhlLCBjb2RlT3JpZ2luU3Ry
aW5nKQogICAgICAgICBlbmQKQEAgLTE3OCw2ICsxNzksNyBAQCBlbmQKIGNsYXNzIFNlcXVlbmNl
CiAgICAgZGVmIGxvd2VyKG5hbWUpCiAgICAgICAgICRhY3RpdmVCYWNrZW5kID0gbmFtZQorICAg
ICAgICBAbGlzdCA9IEluc3RydWN0aW9uLmxvd2VyTWFjcm9JbnN0cnVjdGlvbnMobmFtZSwgQGxp
c3QpCiAgICAgICAgIGlmIHJlc3BvbmRfdG8/ICJnZXRNb2RpZmllZExpc3Qje25hbWV9IgogICAg
ICAgICAgICAgbmV3TGlzdCA9IHNlbmQoImdldE1vZGlmaWVkTGlzdCN7bmFtZX0iKQogICAgICAg
ICAgICAgbmV3TGlzdC5lYWNoIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5l
YXNtL2Nsb29wLnJiCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5l
YXNtL2Nsb29wLnJiCShyZXZpc2lvbiAyMjgzODcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
b2ZmbGluZWFzbS9jbG9vcC5yYgkod29ya2luZyBjb3B5KQpAQCAtMSw0ICsxLDQgQEAKLSMgQ29w
eXJpZ2h0IChDKSAyMDEyLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBD
b3B5cmlnaHQgKEMpIDIwMTItMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAj
CiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU1MywyMyArNTUzLDMwIEBAIGVuZAogZGVm
IGNsb29wRW1pdENhbGxTbG93UGF0aChvcGVyYW5kcykKICAgICAkYXNtLnB1dGMgInsiCiAgICAg
JGFzbS5wdXRjICIgICAgY2xvb3BTdGFjay5zZXRDdXJyZW50U3RhY2tQb2ludGVyKHNwLnZwKTsi
Ci0gICAgJGFzbS5wdXRjICIgICAgU2xvd1BhdGhSZXR1cm5UeXBlIHJlc3VsdCA9ICN7b3BlcmFu
ZHNbMF0uY0xhYmVsfSgje29wZXJhbmRzWzFdLmNsRHVtcH0sICN7b3BlcmFuZHNbMl0uY2xEdW1w
fSk7IgorICAgICRhc20ucHV0YyAiICAgIFNsb3dQYXRoUmV0dXJuVHlwZSByZXN1bHQgPSAje29w
ZXJhbmRzWzBdLmNMYWJlbH0oYTAsIGExKTsiICMgc2xvdyBwYXRoIGNhbGwgYXJ1bWVudHMgYXJl
IGFsd2F5cyBpbiBhMCBhbmQgYTEuCiAgICAgJGFzbS5wdXRjICIgICAgZGVjb2RlUmVzdWx0KHJl
c3VsdCwgdDAudnAsIHQxLnZwKTsiCiAgICAgJGFzbS5wdXRjICJ9IgogZW5kCiAKIGRlZiBjbG9v
cEVtaXRDYWxsU2xvd1BhdGhWb2lkKG9wZXJhbmRzKQogICAgICRhc20ucHV0YyAiY2xvb3BTdGFj
ay5zZXRDdXJyZW50U3RhY2tQb2ludGVyKHNwLnZwKTsiCi0gICAgJGFzbS5wdXRjICIje29wZXJh
bmRzWzBdLmNMYWJlbH0oI3tvcGVyYW5kc1sxXS5jbER1bXB9LCAje29wZXJhbmRzWzJdLmNsRHVt
cH0pOyIKKyAgICAkYXNtLnB1dGMgIiN7b3BlcmFuZHNbMF0uY0xhYmVsfShhMCwgYTEpOyIgIyBz
bG93IHBhdGggY2FsbCBhcnVtZW50cyBhcmUgYWx3YXlzIGluIGEwIGFuZCBhMS4KIGVuZAogCiBj
bGFzcyBJbnN0cnVjdGlvbgogICAgIEBAZGlkUmV0dXJuRnJvbUpTTGFiZWxDb3VudGVyID0gMAog
Ci0gICAgZGVmIGxvd2VyQ19MT09QCi0gICAgICAgICRhc20uY29kZU9yaWdpbiBjb2RlT3JpZ2lu
U3RyaW5nIGlmICRlbmFibGVDb2RlT3JpZ2luQ29tbWVudHMKLSAgICAgICAgJGFzbS5hbm5vdGF0
aW9uIGFubm90YXRpb24gaWYgJGVuYWJsZUluc3RyQW5ub3RhdGlvbnMgJiYgKG9wY29kZSAhPSAi
Y2xvb3BEbyIpCisgICAgZGVmIHNlbGYubG93ZXJNYWNyb0luc3RydWN0aW9uQ19MT09QKG5vZGUs
IG5ld0xpc3QpCisgICAgICAgIHJhaXNlICJJbnZhbGlkIG5vZGUgdHlwZTogZXhwZWN0aW5nIElu
c3RydWN0aW9uIiB1bmxlc3Mgbm9kZS5pc19hPyBJbnN0cnVjdGlvbgorICAgICAgICBjYXNlIG5v
ZGUub3Bjb2RlCisgICAgICAgIHdoZW4gImNhbGxqcyIsICJjYWxsbmF0aXZlIiwgImNhbGxzbG93
cGF0aCIsICJjYWxsc2xvd3BhdGh2b2lkIgorICAgICAgICAgICAgbmV3TGlzdCA8PCBub2RlICMg
d2UgZG9uJ3Qgd2FudCB0byBsb3dlciB0aGVzZS4gbG93ZXJDX0xPT1Agd2lsbCBpbXBsZW1lbnQg
dGhlbS4KKyAgICAgICAgZWxzZQorICAgICAgICAgICAgSW5zdHJ1Y3Rpb24ubG93ZXJNYWNyb0lu
c3RydWN0aW9uRGVmYXVsdChub2RlLCBuZXdMaXN0KQorICAgICAgICBlbmQKKyAgICBlbmQKIAor
ICAgIGRlZiBsb3dlckNfTE9PUAogICAgICAgICBjYXNlIG9wY29kZQogICAgICAgICB3aGVuICJh
ZGRpIgogICAgICAgICAgICAgY2xvb3BFbWl0T3BlcmF0aW9uKG9wZXJhbmRzLCA6aW50MzIsICIr
IikKQEAgLTExMjUsNyArMTEzMiw3IEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgICMgV2Ug
Y2FuJ3QgcmVseSBvbiB0aGUgbGxpbnQgSlMgY2FsbCBtZWNoYW5pc20gd2hpY2ggYWN0dWFsbHkg
bWFrZXMKICAgICAgICAgIyB1c2Ugb2YgdGhlIGNhbGwgaW5zdHJ1Y3Rpb24uIEluc3RlYWQsIHdl
IGp1c3QgaW1wbGVtZW50IEpTIGNhbGxzCiAgICAgICAgICMgYXMgYW4gb3Bjb2RlIGRpc3BhdGNo
LgotICAgICAgICB3aGVuICJjbG9vcENhbGxKU0Z1bmN0aW9uIgorICAgICAgICB3aGVuICJjYWxs
anMiCiAgICAgICAgICAgICBAQGRpZFJldHVybkZyb21KU0xhYmVsQ291bnRlciArPSAxCiAgICAg
ICAgICAgICAkYXNtLnB1dGMgImxyLm9wY29kZSA9IGdldE9wY29kZShsbGludF9jbG9vcF9kaWRf
cmV0dXJuX2Zyb21fanNfI3tAQGRpZFJldHVybkZyb21KU0xhYmVsQ291bnRlcn0pOyIKICAgICAg
ICAgICAgICRhc20ucHV0YyAib3Bjb2RlID0gI3tvcGVyYW5kc1swXS5jbFZhbHVlKDpvcGNvZGUp
fTsiCkBAIC0xMTM1LDcgKzExNDIsNyBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAgICAjIFdl
IGNhbid0IGRvIGdlbmVyaWMgZnVuY3Rpb24gY2FsbHMgd2l0aCBhbiBhcmJpdHJhcnkgc2V0IG9m
IGFyZ3MsIGJ1dAogICAgICAgICAjIGZvcnR1bmF0ZWx5IHdlIGRvbid0IGhhdmUgdG8gaGVyZS4g
QWxsIG5hdGl2ZSBmdW5jdGlvbiBjYWxscyBhbHdheXMKICAgICAgICAgIyBoYXZlIGEgZml4ZWQg
cHJvdG90eXBlIG9mIDEgYXJnczogdGhlIHBhc3NlZCBFeGVjU3RhdGUuCi0gICAgICAgIHdoZW4g
ImNsb29wQ2FsbE5hdGl2ZSIKKyAgICAgICAgd2hlbiAiY2FsbG5hdGl2ZSIKICAgICAgICAgICAg
ICRhc20ucHV0YyAiY2xvb3BTdGFjay5zZXRDdXJyZW50U3RhY2tQb2ludGVyKHNwLnZwKTsiCiAg
ICAgICAgICAgICAkYXNtLnB1dGMgIm5hdGl2ZUZ1bmMgPSAje29wZXJhbmRzWzBdLmNsVmFsdWUo
Om5hdGl2ZUZ1bmMpfTsiCiAgICAgICAgICAgICAkYXNtLnB1dGMgImZ1bmN0aW9uUmV0dXJuVmFs
dWUgPSBKU1ZhbHVlOjpkZWNvZGUobmF0aXZlRnVuYyh0MC5leGVjU3RhdGUpKTsiCkBAIC0xMTQ5
LDEwICsxMTU2LDEwIEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgICMgV2UgY2FuJ3QgZG8g
Z2VuZXJpYyBmdW5jdGlvbiBjYWxscyB3aXRoIGFuIGFyYml0cmFyeSBzZXQgb2YgYXJncywgYnV0
CiAgICAgICAgICMgZm9ydHVuYXRlbHkgd2UgZG9uJ3QgaGF2ZSB0byBoZXJlLiBBbGwgc2xvdyBw
YXRoIGZ1bmN0aW9uIGNhbGxzIGFsd2F5cwogICAgICAgICAjIGhhdmUgYSBmaXhlZCBwcm90b3R5
cGUgdG9vLiBTZWUgY2xvb3BFbWl0Q2FsbFNsb3dQYXRoKCkgZm9yIGRldGFpbHMuCi0gICAgICAg
IHdoZW4gImNsb29wQ2FsbFNsb3dQYXRoIgorICAgICAgICB3aGVuICJjYWxsc2xvd3BhdGgiCiAg
ICAgICAgICAgICBjbG9vcEVtaXRDYWxsU2xvd1BhdGgob3BlcmFuZHMpCiAKLSAgICAgICAgd2hl
biAiY2xvb3BDYWxsU2xvd1BhdGhWb2lkIgorICAgICAgICB3aGVuICJjYWxsc2xvd3BhdGh2b2lk
IgogICAgICAgICAgICAgY2xvb3BFbWl0Q2FsbFNsb3dQYXRoVm9pZChvcGVyYW5kcykKIAogICAg
ICAgICAjIEZvciBkZWJ1Z2dpbmcgb25seS4gVGhpcyBpcyB1c2VkIHRvIGluc2VydCBpbnN0cnVt
ZW50YXRpb24gaW50byB0aGUKQEAgLTExNjUsNCArMTE3MiwxMCBAQCBjbGFzcyBJbnN0cnVjdGlv
bgogICAgICAgICAgICAgbG93ZXJEZWZhdWx0CiAgICAgICAgIGVuZAogICAgIGVuZAorCisgICAg
ZGVmIHJlY29yZE1ldGFEYXRhQ19MT09QCisgICAgICAgICRhc20uY29kZU9yaWdpbiBjb2RlT3Jp
Z2luU3RyaW5nIGlmICRlbmFibGVDb2RlT3JpZ2luQ29tbWVudHMKKyAgICAgICAgJGFzbS5hbm5v
dGF0aW9uIGFubm90YXRpb24gaWYgJGVuYWJsZUluc3RyQW5ub3RhdGlvbnMgJiYgKG9wY29kZSAh
PSAiY2xvb3BEbyIpCisgICAgICAgICRhc20uZGVidWdBbm5vdGF0aW9uIGNvZGVPcmlnaW4uZGVi
dWdEaXJlY3RpdmUgaWYgJGVuYWJsZURlYnVnQW5ub3RhdGlvbnMKKyAgICBlbmQKIGVuZApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vY29uZmlnLnJiCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2NvbmZpZy5yYgkocmV2aXNpb24g
MjI4Mzg3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vY29uZmlnLnJiCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTItMjAx
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTIxLDYgKzIxLDE2IEBACiAjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKICMgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgogCitidWlsZFByb2R1Y3RzRGlyZWN0b3J5ID0gRU5WWydCVUlM
VF9QUk9EVUNUU19ESVInXTsKK2lmIGJ1aWxkUHJvZHVjdHNEaXJlY3RvcnkgYW5kIEZpbGUuZXhp
c3RzPyhidWlsZFByb2R1Y3RzRGlyZWN0b3J5KQorICAgICQ6IDw8ICIje2J1aWxkUHJvZHVjdHNE
aXJlY3Rvcnl9L3Vzci9sb2NhbC9pbmNsdWRlL1dlYktpdEFkZGl0aW9ucy9TY3JpcHRzIgorZW5k
CitzZGtSb290RGlyZWN0b3J5ID0gRU5WWydTREtST09UJ107CitpZiBzZGtSb290RGlyZWN0b3J5
IGFuZCBGaWxlLmV4aXN0cz8oc2RrUm9vdERpcmVjdG9yeSkKKyAgICAkOiA8PCAiI3tzZGtSb290
RGlyZWN0b3J5fS91c3IvbG9jYWwvaW5jbHVkZS9XZWJLaXRBZGRpdGlvbnMvU2NyaXB0cyIKK2Vu
ZAorCisKICRwcmVmZXJyZWRDb21tZW50U3RhcnRDb2x1bW4gPSA2MAogCiAKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0aW9ucy5yYgo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIJKHJldmlz
aW9uIDIyODM4NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0
aW9ucy5yYgkod29ya2luZyBjb3B5KQpAQCAtMSw0ICsxLDQgQEAKLSMgQ29weXJpZ2h0IChDKSAy
MDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDEx
LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMg
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0yNDksNyArMjQ5LDE0IEBAIE1BQ1JPX0lOU1RSVUNUSU9OUyA9CiAgICAg
ICJibnoiLAogICAgICAibGVhaSIsCiAgICAgICJsZWFwIiwKLSAgICAgIm1lbWZlbmNlIgorICAg
ICAibWVtZmVuY2UiLAorCisgICAgICMgbWFjcm8gaW5zdHJ1Y3Rpb25zOiB1bmxlc3MgaW5zdHJ1
Y3RlZCBvdGhlcndpc2UgYnkgYSBiYWNrZW5kLCB0aGVzZSBtYWNybworICAgICAjIGluc3RydWN0
aW9ucyB3aWxsIGJlIGxvd2VyZWQgdG8gdGhlaXIgZ2VuZXJpYyBmb3JtLgorICAgICAiY2FsbGpz
IiwKKyAgICAgImNhbGxuYXRpdmUiLAorICAgICAiY2FsbHNsb3dwYXRoIiwKKyAgICAgImNhbGxz
bG93cGF0aHZvaWQiCiAgICAgXQogCiBYODZfSU5TVFJVQ1RJT05TID0KQEAgLTI5MywxMSArMzAw
LDcgQEAgTUlQU19JTlNUUlVDVElPTlMgPQogCiBDWFhfSU5TVFJVQ1RJT05TID0KICAgICBbCi0g
ICAgICJjbG9vcENyYXNoIiwgICAgICAgICAgICAgICMgbm8gb3BlcmFuZHMKLSAgICAgImNsb29w
Q2FsbEpTRnVuY3Rpb24iLCAgICAgIyBvcGVyYW5kczogY2FsbGVlCi0gICAgICJjbG9vcENhbGxO
YXRpdmUiLCAgICAgICAgICMgb3BlcmFuZHM6IGNhbGxlZQotICAgICAiY2xvb3BDYWxsU2xvd1Bh
dGgiLCAgICAgICAjIG9wZXJhbmRzOiBjYWxsVGFyZ2V0LCBjdXJyZW50RnJhbWUsIGN1cnJlbnRQ
QwotICAgICAiY2xvb3BDYWxsU2xvd1BhdGhWb2lkIiwgICAjIG9wZXJhbmRzOiBjYWxsVGFyZ2V0
LCBjdXJyZW50RnJhbWUsIGN1cnJlbnRQQworICAgICAiY2xvb3BDcmFzaCIsICAgICAgICAgICMg
bm8gb3BlcmFuZHMKIAogICAgICAjIEZvciBkZWJ1Z2dpbmcgb25seToKICAgICAgIyBUYWtlcyBu
byBvcGVyYW5kcyBidXQgc2ltcGx5IGVtaXRzIHdoYXRldmVyIGZvbGxvd3MgaW4gLy8gY29tbWVu
dHMgYXMKQEAgLTMwNSw3ICszMDgsNyBAQCBDWFhfSU5TVFJVQ1RJT05TID0KICAgICAgIyB1c2Vk
IHRvIGluc2VydCBpbnN0cnVtZW50YXRpb24gaW50byB0aGUgaW50ZXJwcmV0ZXIgbG9vcCB0byBp
bnNwZWN0CiAgICAgICMgdmFyaWFibGVzIG9mIGludGVyZXN0LiBEbyBub3QgbGVhdmUgdGhlc2Ug
aW5zdHJ1Y3Rpb25zIGluIHByb2R1Y3Rpb24KICAgICAgIyBjb2RlLgotICAgICAiY2xvb3BEbyIs
ICAgICAgICAgICAgICAjIG5vIG9wZXJhbmRzCisgICAgICJjbG9vcERvIiwgICAgICAgICAgICAg
IyBubyBvcGVyYW5kcwogICAgIF0KIAogSU5TVFJVQ1RJT05TID0gTUFDUk9fSU5TVFJVQ1RJT05T
ICsgWDg2X0lOU1RSVUNUSU9OUyArIEFSTV9JTlNUUlVDVElPTlMgKyBBUk02NF9JTlNUUlVDVElP
TlMgKyBSSVNDX0lOU1RSVUNUSU9OUyArIE1JUFNfSU5TVFJVQ1RJT05TICsgQ1hYX0lOU1RSVUNU
SU9OUwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vbWlwcy5yYgo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9taXBzLnJiCShyZXZp
c2lvbiAyMjgzODcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9taXBzLnJi
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTIgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTItMjAxOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjIENvcHlyaWdodCAoQykgMjAxMiBNSVBT
IFRlY2hub2xvZ2llcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
QEAgLTgyNSw3ICs4MjUsNiBAQCBlbmQKIAogY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICBkZWYgbG93
ZXJNSVBTCi0gICAgICAgICRhc20uY29tbWVudCBjb2RlT3JpZ2luU3RyaW5nCiAgICAgICAgIGNh
c2Ugb3Bjb2RlCiAgICAgICAgIHdoZW4gImFkZGkiLCAiYWRkcCIsICJhZGRpcyIKICAgICAgICAg
ICAgIGlmIG9wZXJhbmRzLnNpemUgPT0gMyBhbmQgb3BlcmFuZHNbMF0uaXNfYT8gSW1tZWRpYXRl
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yaXNjLnJiCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3Jpc2MucmIJKHJldmlzaW9u
IDIyODM4NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3Jpc2MucmIJKHdv
cmtpbmcgY29weSkKQEAgLTEsNCArMSw0IEBACi0jIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxMS0yMDE4
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtNTc1LDcgKzU3NSw3IEBAIGRlZiByaXNjTG93ZXJOb3QobGlzdCkKICAgICAgICAg
aWYgbm9kZS5pc19hPyBJbnN0cnVjdGlvbgogICAgICAgICAgICAgY2FzZSBub2RlLm9wY29kZQog
ICAgICAgICAgICAgd2hlbiAibm90aSIsICJub3RwIgotICAgICAgICAgICAgICAgIHJhaXNlICJX
cm9uZyBudWJtZXIgb2Ygb3BlcmFuZHMgYXQgI3tub2RlLmNvZGVPcmlnaW5TdHJpbmd9IiB1bmxl
c3Mgbm9kZS5vcGVyYW5kcy5zaXplID09IDEKKyAgICAgICAgICAgICAgICByYWlzZSAiV3Jvbmcg
bnVtYmVyIG9mIG9wZXJhbmRzIGF0ICN7bm9kZS5jb2RlT3JpZ2luU3RyaW5nfSIgdW5sZXNzIG5v
ZGUub3BlcmFuZHMuc2l6ZSA9PSAxCiAgICAgICAgICAgICAgICAgc3VmZml4ID0gbm9kZS5vcGNv
ZGVbLTEuLi0xXQogICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5v
ZGUuY29kZU9yaWdpbiwgInhvciIgKyBzdWZmaXgsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgW0ltbWVkaWF0ZS5uZXcobm9kZS5jb2RlT3JpZ2luLCAtMSksIG5v
ZGUub3BlcmFuZHNbMF1dKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20v
eDg2LnJiCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3g4
Ni5yYgkocmV2aXNpb24gMjI4Mzg3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVh
c20veDg2LnJiCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5cmlnaHQgKEMp
IDIwMTIsIDIwMTQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHly
aWdodCAoQykgMjAxMi0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMgQ29w
eXJpZ2h0IChDKSAyMDEzIERpZ2lhIFBsYy4gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAj
CiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dApAQCAtODkwLDEwICs4OTAsNiBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAg
IGVuZAogCiAgICAgZGVmIGxvd2VyWDg2Q29tbW9uCi0gICAgICAgICRhc20uY29kZU9yaWdpbiBj
b2RlT3JpZ2luU3RyaW5nIGlmICRlbmFibGVDb2RlT3JpZ2luQ29tbWVudHMKLSAgICAgICAgJGFz
bS5hbm5vdGF0aW9uIGFubm90YXRpb24gaWYgJGVuYWJsZUluc3RyQW5ub3RhdGlvbnMKLSAgICAg
ICAgJGFzbS5kZWJ1Z0Fubm90YXRpb24gY29kZU9yaWdpbi5kZWJ1Z0RpcmVjdGl2ZSBpZiAkZW5h
YmxlRGVidWdBbm5vdGF0aW9ucwotCiAgICAgICAgIGNhc2Ugb3Bjb2RlCiAgICAgICAgIHdoZW4g
ImFkZGkiCiAgICAgICAgICAgICBoYW5kbGVYODZBZGQoOmludCkK
</data>
<flag name="review"
          id="352495"
          type_id="1"
          status="+"
          setter="keith_miller"
    />
    <flag name="commit-queue"
          id="352515"
          type_id="3"
          status="-"
          setter="mark.lam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>333639</attachid>
            <date>2018-02-12 15:29:38 -0800</date>
            <delta_ts>2018-02-12 15:41:19 -0800</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-182702.patch</filename>
            <type>text/plain</type>
            <size>10050</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjI4Mzk5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBA
CisyMDE4LTAyLTEyICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBN
aXNjZWxsYW5lb3VzIHJlZmFjdG9yaW5nIG9mIG9mZmxpbmVhc20uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODI3MDIKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzM3NDY3ODg3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIDEuIFJlZmFjdG9yIG91dCB0aGUgZW1pc3Npb24gb2YgJGFzbS5jb21tZW50LCAk
YXNtLmNvZGVPcmlnaW4sICRhc20uYW5ub3RhdGlvbiwKKyAgICAgICAgICAgYW5kICRhc20uZGVi
dWdBbm5vdGF0aW9uIGludG8gYSByZWNvcmRNZXRhRGF0YSBtZXRob2QuICBUaGlzIHN0YW5kYXJk
aXplcyBob3cKKyAgICAgICAgICAgd2UgZW1pdCB0aGlzIG1ldGFkYXRhIGFuZCBtYWtlcyBhbGwg
YmFja2VuZHMgZG8gaXQgdGhlIHNhbWUgd2F5LgorCisgICAgICAgIDIuIEFkZCB0aGUgYWJpbGl0
eSB0byBpbmNsdWRlIGN1c3RvbSBvZmZsaW5lYXNtIHNjcmlwdHMgZnJvbSBXZWJLaXRBZGRpdGlv
bnMgaW4KKyAgICAgICAgICAgdGhlIGZ1dHVyZS4KKworICAgICAgICAqIG9mZmxpbmVhc20vYXJt
LnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vYXJtNjQucmI6CisgICAgICAgICogb2ZmbGluZWFz
bS9hc3QucmI6CisgICAgICAgICogb2ZmbGluZWFzbS9iYWNrZW5kcy5yYjoKKyAgICAgICAgKiBv
ZmZsaW5lYXNtL2Nsb29wLnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vY29uZmlnLnJiOgorICAg
ICAgICAqIG9mZmxpbmVhc20vbWlwcy5yYjoKKyAgICAgICAgKiBvZmZsaW5lYXNtL3Jpc2MucmI6
CisgICAgICAgICogb2ZmbGluZWFzbS94ODYucmI6CisKIDIwMTgtMDItMTIgIE1hcmsgTGFtICA8
bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBtb3JlIHN1cHBvcnQgZm9yIHBvaW50
ZXIgcHJlcGFyYXRpb25zLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20v
YXJtNjQucmIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20v
YXJtNjQucmIJKHJldmlzaW9uIDIyODM5OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZs
aW5lYXNtL2FybTY0LnJiCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5cmln
aHQgKEMpIDIwMTEsIDIwMTIsIDIwMTQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisjIENvcHlyaWdodCAoQykgMjAxMS0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICMgQ29weXJpZ2h0IChDKSAyMDE0IFVuaXZlcnNpdHkgb2YgU3plZ2VkLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTUxMSwxMCArNTExLDYgQEAgZW5kCiAK
IGNsYXNzIEluc3RydWN0aW9uCiAgICAgZGVmIGxvd2VyQVJNNjQKLSAgICAgICAgJGFzbS5jb21t
ZW50IGNvZGVPcmlnaW5TdHJpbmcKLSAgICAgICAgJGFzbS5hbm5vdGF0aW9uIGFubm90YXRpb24g
aWYgJGVuYWJsZUluc3RyQW5ub3RhdGlvbnMKLSAgICAgICAgJGFzbS5kZWJ1Z0Fubm90YXRpb24g
Y29kZU9yaWdpbi5kZWJ1Z0RpcmVjdGl2ZSBpZiAkZW5hYmxlRGVidWdBbm5vdGF0aW9ucwotCiAg
ICAgICAgIGNhc2Ugb3Bjb2RlCiAgICAgICAgIHdoZW4gJ2FkZGknCiAgICAgICAgICAgICBlbWl0
QVJNNjRBZGQoImFkZCIsIG9wZXJhbmRzLCA6aW50KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL29mZmxpbmVhc20vYXJtLnJiCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9vZmZsaW5lYXNtL2FybS5yYgkocmV2aXNpb24gMjI4Mzk4KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL29mZmxpbmVhc20vYXJtLnJiCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsNCBAQAot
IyBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxMS0yMDE4IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICMgQ29weXJpZ2h0IChDKSAyMDEzIFVuaXZlcnNpdHkgb2YgU3plZ2Vk
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTM0OCwxMCArMzQ4LDYg
QEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICBlbmQKIAogICAgIGRlZiBsb3dlckFSTUNvbW1vbgot
ICAgICAgICAkYXNtLmNvZGVPcmlnaW4gY29kZU9yaWdpblN0cmluZyBpZiAkZW5hYmxlQ29kZU9y
aWdpbkNvbW1lbnRzCi0gICAgICAgICRhc20uYW5ub3RhdGlvbiBhbm5vdGF0aW9uIGlmICRlbmFi
bGVJbnN0ckFubm90YXRpb25zCi0gICAgICAgICRhc20uZGVidWdBbm5vdGF0aW9uIGNvZGVPcmln
aW4uZGVidWdEaXJlY3RpdmUgaWYgJGVuYWJsZURlYnVnQW5ub3RhdGlvbnMKLQogICAgICAgICBj
YXNlIG9wY29kZQogICAgICAgICB3aGVuICJhZGRpIiwgImFkZHAiLCAiYWRkaXMiLCAiYWRkcHMi
CiAgICAgICAgICAgICBpZiBvcGNvZGUgPT0gImFkZGlzIiBvciBvcGNvZGUgPT0gImFkZHBzIgpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXN0LnJiCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FzdC5yYgkocmV2aXNpb24gMjI4
Mzk4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXN0LnJiCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTkz
Myw2ICs5MzMsMjAgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24gPCBOb2RlCiAgICAgICAgICAgICByYWlz
ZSAiVW5oYW5kbGVkIG9wY29kZSAje29wY29kZX0gYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIKICAg
ICAgICAgZW5kCiAgICAgZW5kCisKKyAgICBkZWYgcHJlcGFyZVRvTG93ZXIoYmFja2VuZE5hbWUp
CisgICAgICAgIGlmIHJlc3BvbmRfdG8/KCJyZWNvcmRNZXRhRGF0YSN7YmFja2VuZE5hbWV9IikK
KyAgICAgICAgICAgIHNlbmQoInJlY29yZE1ldGFEYXRhI3tiYWNrZW5kTmFtZX0iKQorICAgICAg
ICBlbHNlCisgICAgICAgICAgICByZWNvcmRNZXRhRGF0YURlZmF1bHQKKyAgICAgICAgZW5kCisg
ICAgZW5kCisKKyAgICBkZWYgcmVjb3JkTWV0YURhdGFEZWZhdWx0CisgICAgICAgICRhc20uY29k
ZU9yaWdpbiBjb2RlT3JpZ2luU3RyaW5nIGlmICRlbmFibGVDb2RlT3JpZ2luQ29tbWVudHMKKyAg
ICAgICAgJGFzbS5hbm5vdGF0aW9uIGFubm90YXRpb24gaWYgJGVuYWJsZUluc3RyQW5ub3RhdGlv
bnMKKyAgICAgICAgJGFzbS5kZWJ1Z0Fubm90YXRpb24gY29kZU9yaWdpbi5kZWJ1Z0RpcmVjdGl2
ZSBpZiAkZW5hYmxlRGVidWdBbm5vdGF0aW9ucworICAgIGVuZAogZW5kCiAKIGNsYXNzIEVycm9y
IDwgTm9DaGlsZHJlbgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYmFj
a2VuZHMucmIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20v
YmFja2VuZHMucmIJKHJldmlzaW9uIDIyODM5OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9v
ZmZsaW5lYXNtL2JhY2tlbmRzLnJiCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsNCBAQAotIyBD
b3B5cmlnaHQgKEMpIDIwMTEsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
IyBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEyNCw3ICsxMjQsOCBAQCBjbGFzcyBO
b2RlCiAgICAgZGVmIGxvd2VyKG5hbWUpCiAgICAgICAgIGJlZ2luCiAgICAgICAgICAgICAkYWN0
aXZlQmFja2VuZCA9IG5hbWUKLSAgICAgICAgICAgIHNlbmQoImxvd2VyIiArIG5hbWUpCisgICAg
ICAgICAgICBzZW5kKCJwcmVwYXJlVG9Mb3dlciIsIG5hbWUpCisgICAgICAgICAgICBzZW5kKCJs
b3dlciN7bmFtZX0iKQogICAgICAgICByZXNjdWUgPT4gZQogICAgICAgICAgICAgcmFpc2UgTG93
ZXJpbmdFcnJvci5uZXcoZSwgY29kZU9yaWdpblN0cmluZykKICAgICAgICAgZW5kCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9jbG9vcC5yYgo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9jbG9vcC5yYgkocmV2aXNpb24gMjI4Mzk4
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vY2xvb3AucmIJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNCArMSw0IEBACi0jIENvcHlyaWdodCAoQykgMjAxMi0yMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDEyLTIwMTggQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC01NjcsOSArNTY3LDYgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICBAQGRpZFJldHVybkZyb21K
U0xhYmVsQ291bnRlciA9IDAKIAogICAgIGRlZiBsb3dlckNfTE9PUAotICAgICAgICAkYXNtLmNv
ZGVPcmlnaW4gY29kZU9yaWdpblN0cmluZyBpZiAkZW5hYmxlQ29kZU9yaWdpbkNvbW1lbnRzCi0g
ICAgICAgICRhc20uYW5ub3RhdGlvbiBhbm5vdGF0aW9uIGlmICRlbmFibGVJbnN0ckFubm90YXRp
b25zICYmIChvcGNvZGUgIT0gImNsb29wRG8iKQotCiAgICAgICAgIGNhc2Ugb3Bjb2RlCiAgICAg
ICAgIHdoZW4gImFkZGkiCiAgICAgICAgICAgICBjbG9vcEVtaXRPcGVyYXRpb24ob3BlcmFuZHMs
IDppbnQzMiwgIisiKQpAQCAtMTE2NSw0ICsxMTYyLDEwIEBAIGNsYXNzIEluc3RydWN0aW9uCiAg
ICAgICAgICAgICBsb3dlckRlZmF1bHQKICAgICAgICAgZW5kCiAgICAgZW5kCisKKyAgICBkZWYg
cmVjb3JkTWV0YURhdGFDX0xPT1AKKyAgICAgICAgJGFzbS5jb2RlT3JpZ2luIGNvZGVPcmlnaW5T
dHJpbmcgaWYgJGVuYWJsZUNvZGVPcmlnaW5Db21tZW50cworICAgICAgICAkYXNtLmFubm90YXRp
b24gYW5ub3RhdGlvbiBpZiAkZW5hYmxlSW5zdHJBbm5vdGF0aW9ucyAmJiAob3Bjb2RlICE9ICJj
bG9vcERvIikKKyAgICAgICAgJGFzbS5kZWJ1Z0Fubm90YXRpb24gY29kZU9yaWdpbi5kZWJ1Z0Rp
cmVjdGl2ZSBpZiAkZW5hYmxlRGVidWdBbm5vdGF0aW9ucworICAgIGVuZAogZW5kCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9jb25maWcucmIKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vY29uZmlnLnJiCShyZXZpc2lvbiAyMjgz
OTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9jb25maWcucmIJKHdvcmtp
bmcgY29weSkKQEAgLTEsNCArMSw0IEBACi0jIENvcHlyaWdodCAoQykgMjAxMiwgMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxMi0yMDE4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMjEsNiArMjEsMTYgQEAKICMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgogIyBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCiAKK2J1aWxkUHJvZHVjdHNEaXJlY3RvcnkgPSBFTlZbJ0JVSUxUX1BS
T0RVQ1RTX0RJUiddOworaWYgYnVpbGRQcm9kdWN0c0RpcmVjdG9yeSBhbmQgRmlsZS5leGlzdHM/
KGJ1aWxkUHJvZHVjdHNEaXJlY3RvcnkpCisgICAgJDogPDwgIiN7YnVpbGRQcm9kdWN0c0RpcmVj
dG9yeX0vdXNyL2xvY2FsL2luY2x1ZGUvV2ViS2l0QWRkaXRpb25zL1NjcmlwdHMiCitlbmQKK3Nk
a1Jvb3REaXJlY3RvcnkgPSBFTlZbJ1NES1JPT1QnXTsKK2lmIHNka1Jvb3REaXJlY3RvcnkgYW5k
IEZpbGUuZXhpc3RzPyhzZGtSb290RGlyZWN0b3J5KQorICAgICQ6IDw8ICIje3Nka1Jvb3REaXJl
Y3Rvcnl9L3Vzci9sb2NhbC9pbmNsdWRlL1dlYktpdEFkZGl0aW9ucy9TY3JpcHRzIgorZW5kCisK
KwogJHByZWZlcnJlZENvbW1lbnRTdGFydENvbHVtbiA9IDYwCiAKIApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL29mZmxpbmVhc20vbWlwcy5yYgo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9taXBzLnJiCShyZXZpc2lvbiAyMjgzOTgpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9taXBzLnJiCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDQgKzEsNCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTItMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAjIENvcHlyaWdodCAoQykgMjAxMiBNSVBTIFRlY2hub2xvZ2llcywgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTgyNSw3ICs4MjUsNiBAQCBl
bmQKIAogY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICBkZWYgbG93ZXJNSVBTCi0gICAgICAgICRhc20u
Y29tbWVudCBjb2RlT3JpZ2luU3RyaW5nCiAgICAgICAgIGNhc2Ugb3Bjb2RlCiAgICAgICAgIHdo
ZW4gImFkZGkiLCAiYWRkcCIsICJhZGRpcyIKICAgICAgICAgICAgIGlmIG9wZXJhbmRzLnNpemUg
PT0gMyBhbmQgb3BlcmFuZHNbMF0uaXNfYT8gSW1tZWRpYXRlCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvb2ZmbGluZWFzbS9yaXNjLnJiCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9vZmZsaW5lYXNtL3Jpc2MucmIJKHJldmlzaW9uIDIyODM5OCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3Jpc2MucmIJKHdvcmtpbmcgY29weSkKQEAgLTEsNCAr
MSw0IEBACi0jIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxMS0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTc1LDcgKzU3NSw3
IEBAIGRlZiByaXNjTG93ZXJOb3QobGlzdCkKICAgICAgICAgaWYgbm9kZS5pc19hPyBJbnN0cnVj
dGlvbgogICAgICAgICAgICAgY2FzZSBub2RlLm9wY29kZQogICAgICAgICAgICAgd2hlbiAibm90
aSIsICJub3RwIgotICAgICAgICAgICAgICAgIHJhaXNlICJXcm9uZyBudWJtZXIgb2Ygb3BlcmFu
ZHMgYXQgI3tub2RlLmNvZGVPcmlnaW5TdHJpbmd9IiB1bmxlc3Mgbm9kZS5vcGVyYW5kcy5zaXpl
ID09IDEKKyAgICAgICAgICAgICAgICByYWlzZSAiV3JvbmcgbnVtYmVyIG9mIG9wZXJhbmRzIGF0
ICN7bm9kZS5jb2RlT3JpZ2luU3RyaW5nfSIgdW5sZXNzIG5vZGUub3BlcmFuZHMuc2l6ZSA9PSAx
CiAgICAgICAgICAgICAgICAgc3VmZml4ID0gbm9kZS5vcGNvZGVbLTEuLi0xXQogICAgICAgICAg
ICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgInhvciIg
KyBzdWZmaXgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0lt
bWVkaWF0ZS5uZXcobm9kZS5jb2RlT3JpZ2luLCAtMSksIG5vZGUub3BlcmFuZHNbMF1dKQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20veDg2LnJiCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3g4Ni5yYgkocmV2aXNpb24gMjI4Mzk4
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20veDg2LnJiCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTQtMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxMi0yMDE4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMgQ29weXJpZ2h0IChDKSAyMDEzIERpZ2lh
IFBsYy4gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtODkw
LDEwICs4OTAsNiBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAgIGVuZAogCiAgICAgZGVmIGxvd2Vy
WDg2Q29tbW9uCi0gICAgICAgICRhc20uY29kZU9yaWdpbiBjb2RlT3JpZ2luU3RyaW5nIGlmICRl
bmFibGVDb2RlT3JpZ2luQ29tbWVudHMKLSAgICAgICAgJGFzbS5hbm5vdGF0aW9uIGFubm90YXRp
b24gaWYgJGVuYWJsZUluc3RyQW5ub3RhdGlvbnMKLSAgICAgICAgJGFzbS5kZWJ1Z0Fubm90YXRp
b24gY29kZU9yaWdpbi5kZWJ1Z0RpcmVjdGl2ZSBpZiAkZW5hYmxlRGVidWdBbm5vdGF0aW9ucwot
CiAgICAgICAgIGNhc2Ugb3Bjb2RlCiAgICAgICAgIHdoZW4gImFkZGkiCiAgICAgICAgICAgICBo
YW5kbGVYODZBZGQoOmludCkK
</data>
<flag name="review"
          id="352521"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>