<?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>188123</bug_id>
          
          <creation_ts>2018-07-27 13:26:26 -0700</creation_ts>
          <short_desc>Add some crash info to Heap::checkConn() RELEASE_ASSERTs.</short_desc>
          <delta_ts>2018-07-28 09:36:22 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>rmorisset</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1445842</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-07-27 13:26:26 -0700</bug_when>
    <thetext>This is needed to help debug a crash.

&lt;rdar://problem/42672268&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1445859</commentid>
    <comment_count>1</comment_count>
      <attachid>345951</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-07-27 14:04:40 -0700</bug_when>
    <thetext>Created attachment 345951
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1445861</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-07-27 14:07:11 -0700</bug_when>
    <thetext>Attachment 345951 did not pass style-queue:


ERROR: Source/WTF/wtf/Assertions.cpp:607:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/Assertions.cpp:619:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/Assertions.cpp:630:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/Assertions.cpp:640:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/Assertions.cpp:649:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/Assertions.cpp:657:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/Assertions.cpp:664:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/Assertions.cpp:670:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/Assertions.cpp:670:  Extra space before )  [whitespace/parens] [2]
Total errors found: 9 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1445863</commentid>
    <comment_count>3</comment_count>
      <attachid>345951</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-07-27 14:12:57 -0700</bug_when>
    <thetext>Comment on attachment 345951
proposed patch.

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

&gt; Source/JavaScriptCore/ChangeLog:22
&gt; +           VM::isEntered() tells us is the current VM is currently executing JS code.

/is/if/.  Will fix before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1445870</commentid>
    <comment_count>4</comment_count>
      <attachid>345951</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2018-07-27 14:29:24 -0700</bug_when>
    <thetext>Comment on attachment 345951
proposed patch.

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

r=me.

&gt; Source/JavaScriptCore/ChangeLog:10
&gt; +           padding space in VM and Heap, and should cost any measurable perf to initialize

should *only* cost?

&gt; Source/WTF/wtf/Assertions.cpp:676
&gt; +void WTFCrashWithInfo(int, const char*, const char*, int, uint64_t, uint64_t, uint64_t, uint64_t, uint64_t, uint64_t) { CRASH(); }

I think you need another line here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1445871</commentid>
    <comment_count>5</comment_count>
      <attachid>345951</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-07-27 14:37:11 -0700</bug_when>
    <thetext>Comment on attachment 345951
proposed patch.

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

Thanks for the review.

&gt;&gt; Source/JavaScriptCore/ChangeLog:10
&gt;&gt; +           padding space in VM and Heap, and should cost any measurable perf to initialize
&gt; 
&gt; should *only* cost?

I meant to say &quot;should not cost&quot;

&gt;&gt; Source/WTF/wtf/Assertions.cpp:676
&gt;&gt; +void WTFCrashWithInfo(int, const char*, const char*, int, uint64_t, uint64_t, uint64_t, uint64_t, uint64_t, uint64_t) { CRASH(); }
&gt; 
&gt; I think you need another line here.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1445874</commentid>
    <comment_count>6</comment_count>
      <attachid>345955</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-07-27 14:39:55 -0700</bug_when>
    <thetext>Created attachment 345955
patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1445875</commentid>
    <comment_count>7</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-07-27 14:41:56 -0700</bug_when>
    <thetext>Attachment 345955 did not pass style-queue:


ERROR: Source/WTF/wtf/Assertions.cpp:607:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/Assertions.cpp:619:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/Assertions.cpp:630:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/Assertions.cpp:640:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/Assertions.cpp:649:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/Assertions.cpp:657:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/Assertions.cpp:664:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/Assertions.cpp:670:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/Assertions.cpp:670:  Extra space before )  [whitespace/parens] [2]
Total errors found: 9 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1445903</commentid>
    <comment_count>8</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-07-27 15:45:33 -0700</bug_when>
    <thetext>Landed in r234335: &lt;http://trac.webkit.org/r234335&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1445987</commentid>
    <comment_count>9</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-07-28 09:36:22 -0700</bug_when>
    <thetext>Build fix for internal build landed in r234344: &lt;http://trac.webkit.org/r234344&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>345951</attachid>
            <date>2018-07-27 14:04:40 -0700</date>
            <delta_ts>2018-07-27 14:39:55 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-188123.patch</filename>
            <type>text/plain</type>
            <size>20877</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjM0MzI1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQyIEBA
CisyMDE4LTA3LTI3ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgc29tZSBjcmFzaCBpbmZvIHRvIEhlYXA6OmNoZWNrQ29ubigpIFJFTEVBU0VfQVNTRVJUcy4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODEyMwor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDI2NzIyNjg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgMS4gQWRkIFZNOjptX2lkIGFuZCBIZWFwOjptX2xh
c3RQaGFzZSBmaWVsZHMuICBCb3RoIG9mIHRoZXNlIGZpdCB3aXRoaW4gZXhpc3RpbmcKKyAgICAg
ICAgICAgcGFkZGluZyBzcGFjZSBpbiBWTSBhbmQgSGVhcCwgYW5kIHNob3VsZCBjb3N0IGFueSBt
ZWFzdXJhYmxlIHBlcmYgdG8gaW5pdGlhbGl6ZQorICAgICAgICAgICBhbmQgdXBkYXRlLgorCisg
ICAgICAgIDIuIEFkZCBzb21lIGNyYXNoIGluZm8gdG8gdGhlIFJFTEVBU0VfQVNTRVJUcyBpbiBI
ZWFwOjpjaGVja0Nvbm4oKToKKworICAgICAgICAgICB3b3JsZFN0YXRlIHRlbGxzIHVzIHRoZSB2
YWx1ZSB3ZSBmYWlsZWQgdGhlIGFzc2VydGlvbiBvbi4KKworICAgICAgICAgICBtX2xhc3RQaGFz
ZSwgbV9jdXJyZW50UGhhc2UsIGFuZCBtX25leHRQaGFzZSB0ZWxscyB1cyB0aGUgR0MgcGhhc2Ug
dHJhbnNpdGlvbgorICAgICAgICAgICB0aGF0IGxlZCB1cyBoZXJlLgorCisgICAgICAgICAgIFZN
OjppZCgpLCBhbmQgVk06Om51bWJlck9mSURzKCkgdGVsbHMgdXMgaG93IG1hbnkgVk1zIG1heSBi
ZSBpbiBwbGF5LgorCisgICAgICAgICAgIFZNOjppc0VudGVyZWQoKSB0ZWxscyB1cyBpcyB0aGUg
Y3VycmVudCBWTSBpcyBjdXJyZW50bHkgZXhlY3V0aW5nIEpTIGNvZGUuCisKKyAgICAgICAgICAg
U29tZSBvZiB0aGlzIGRhdGEgbWF5IGJlIHJlZHVuZGFudCwgYnV0IHRoZSByZWR1bmRhbmN5IGlz
IGludGVudGlvbmFsIHNvIHRoYXQKKyAgICAgICAgICAgd2UgY2FuIGRvdWJsZSBjaGVjayB3aGF0
IGlzIHJlYWxseSBoYXBwZW5pbmcgYXQgdGhlIHRpbWUgb2YgY3Jhc2guCisKKyAgICAgICAgKiBo
ZWFwL0hlYXAuY3BwOgorICAgICAgICAoSlNDOjphc0ludCk6CisgICAgICAgIChKU0M6OkhlYXA6
OmNoZWNrQ29ubik6CisgICAgICAgIChKU0M6OkhlYXA6OmNoYW5nZVBoYXNlKToKKyAgICAgICAg
KiBoZWFwL0hlYXAuaDoKKyAgICAgICAgKiBydW50aW1lL1ZNLmNwcDoKKyAgICAgICAgKEpTQzo6
Vk06Om5leHRJRCk6CisgICAgICAgIChKU0M6OlZNOjpWTSk6CisgICAgICAgICogcnVudGltZS9W
TS5oOgorICAgICAgICAoSlNDOjpWTTo6bnVtYmVyT2ZJRHMpOgorICAgICAgICAoSlNDOjpWTTo6
aWQgY29uc3QpOgorICAgICAgICAoSlNDOjpWTTo6aXNFbnRlcmVkIGNvbnN0KToKKwogMjAxOC0w
Ny0yNiAgQW5keSBWYW5XYWdvbmVyICA8YW5keUB2YW53YWdvbmVyLmZhbWlseT4KIAogICAgICAg
ICBbSU5UTF0gUmVtb3ZlIElOVEwgc3ViLWZlYXR1cmUgY29tcGlsZSBmbGFncwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAJKHJldmlzaW9uIDIzNDMyNSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTIxLDE0ICsx
MTIxLDIwIEBAIHZvaWQgSGVhcDo6Y29sbGVjdEluQ29sbGVjdG9yVGhyZWFkKCkKICAgICB9CiB9
CiAKK0FMV0FZU19JTkxJTkUgaW50IGFzSW50KENvbGxlY3RvclBoYXNlIHBoYXNlKQoreworICAg
IHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KHBoYXNlKTsKK30KKwogdm9pZCBIZWFwOjpjaGVja0Nv
bm4oR0NDb25kdWN0b3IgY29ubikKIHsKKyAgICB1bnNpZ25lZCB3b3JsZFN0YXRlID0gbV93b3Js
ZFN0YXRlLmxvYWQoKTsKICAgICBzd2l0Y2ggKGNvbm4pIHsKICAgICBjYXNlIEdDQ29uZHVjdG9y
OjpNdXRhdG9yOgotICAgICAgICBSRUxFQVNFX0FTU0VSVChtX3dvcmxkU3RhdGUubG9hZCgpICYg
bXV0YXRvckhhc0Nvbm5CaXQpOworICAgICAgICBSRUxFQVNFX0FTU0VSVCh3b3JsZFN0YXRlICYg
bXV0YXRvckhhc0Nvbm5CaXQsIHdvcmxkU3RhdGUsIGFzSW50KG1fbGFzdFBoYXNlKSwgYXNJbnQo
bV9jdXJyZW50UGhhc2UpLCBhc0ludChtX25leHRQaGFzZSksIHZtKCktPmlkKCksIFZNOjpudW1i
ZXJPZklEcygpLCB2bSgpLT5pc0VudGVyZWQoKSk7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNl
IEdDQ29uZHVjdG9yOjpDb2xsZWN0b3I6Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUKCEobV93b3Js
ZFN0YXRlLmxvYWQoKSAmIG11dGF0b3JIYXNDb25uQml0KSk7CisgICAgICAgIFJFTEVBU0VfQVNT
RVJUKCEod29ybGRTdGF0ZSAmIG11dGF0b3JIYXNDb25uQml0KSwgd29ybGRTdGF0ZSwgYXNJbnQo
bV9sYXN0UGhhc2UpLCBhc0ludChtX2N1cnJlbnRQaGFzZSksIGFzSW50KG1fbmV4dFBoYXNlKSwg
dm0oKS0+aWQoKSwgVk06Om51bWJlck9mSURzKCksIHZtKCktPmlzRW50ZXJlZCgpKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAt
MTUxOSw2ICsxNTI1LDcgQEAgYm9vbCBIZWFwOjpjaGFuZ2VQaGFzZShHQ0NvbmR1Y3RvciBjb25u
LAogewogICAgIGNoZWNrQ29ubihjb25uKTsKIAorICAgIG1fbGFzdFBoYXNlID0gbV9jdXJyZW50
UGhhc2U7CiAgICAgbV9uZXh0UGhhc2UgPSBuZXh0UGhhc2U7CiAKICAgICByZXR1cm4gZmluaXNo
Q2hhbmdpbmdQaGFzZShjb25uKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hl
YXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgJKHJl
dmlzaW9uIDIzNDMyNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAkod29y
a2luZyBjb3B5KQpAQCAtNjkzLDYgKzY5Myw3IEBAIHByaXZhdGU6CiAgICAgR0NSZXF1ZXN0IG1f
Y3VycmVudFJlcXVlc3Q7CiAgICAgVGlja2V0IG1fbGFzdFNlcnZlZFRpY2tldCB7IDAgfTsKICAg
ICBUaWNrZXQgbV9sYXN0R3JhbnRlZFRpY2tldCB7IDAgfTsKKyAgICBDb2xsZWN0b3JQaGFzZSBt
X2xhc3RQaGFzZSB7IENvbGxlY3RvclBoYXNlOjpOb3RSdW5uaW5nIH07CiAgICAgQ29sbGVjdG9y
UGhhc2UgbV9jdXJyZW50UGhhc2UgeyBDb2xsZWN0b3JQaGFzZTo6Tm90UnVubmluZyB9OwogICAg
IENvbGxlY3RvclBoYXNlIG1fbmV4dFBoYXNlIHsgQ29sbGVjdG9yUGhhc2U6Ok5vdFJ1bm5pbmcg
fTsKICAgICBib29sIG1fdGhyZWFkU2hvdWxkU3RvcCB7IGZhbHNlIH07CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCShyZXZpc2lvbiAyMzQzMjUpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4Miw2ICsxODIs
OCBAQCBib29sIFZNOjpzX2NhblVzZUpJVElzU2V0ID0gZmFsc2U7CiBib29sIFZNOjpzX2NhblVz
ZUpJVCA9IGZhbHNlOwogI2VuZGlmCiAKK0F0b21pYzx1bnNpZ25lZD4gVk06OnNfbnVtYmVyT2ZJ
RHM7CisKIC8vIE5vdGU6IFBsYXRmb3JtLmggd2lsbCBlbmZvcmNlIHRoYXQgRU5BQkxFKEFTU0VN
QkxFUikgaXMgdHJ1ZSBpZiBlaXRoZXIKIC8vIEVOQUJMRShKSVQpIG9yIEVOQUJMRShZQVJSX0pJ
VCkgb3IgYm90aCBhcmUgZW5hYmxlZC4gVGhlIGNvZGUgYmVsb3cKIC8vIGp1c3QgY2hlY2tzIGZv
ciBFTkFCTEUoSklUKSBvciBFTkFCTEUoWUFSUl9KSVQpIHdpdGggdGhpcyBwcmVtaXNlIGluIG1p
bmQuCkBAIC0yNDcsOCArMjQ5LDIwIEBAIGJvb2wgVk06OmlzSW5NaW5pTW9kZSgpCiAgICAgcmV0
dXJuICFjYW5Vc2VKSVQoKSB8fCBPcHRpb25zOjpmb3JjZU1pbmlWTU1vZGUoKTsKIH0KIAoraW5s
aW5lIHVuc2lnbmVkIFZNOjpuZXh0SUQoKQoreworICAgIGZvciAoOzspIHsKKyAgICAgICAgdW5z
aWduZWQgY3VycmVudE51bWJlck9mSURzID0gc19udW1iZXJPZklEcy5sb2FkKCk7CisgICAgICAg
IHVuc2lnbmVkIG5ld0lEID0gY3VycmVudE51bWJlck9mSURzICsgMTsKKyAgICAgICAgaWYgKHNf
bnVtYmVyT2ZJRHMuY29tcGFyZUV4Y2hhbmdlV2VhayhjdXJyZW50TnVtYmVyT2ZJRHMsIG5ld0lE
KSkKKyAgICAgICAgICAgIHJldHVybiBuZXdJRDsKKyAgICB9Cit9CisKKwogVk06OlZNKFZNVHlw
ZSB2bVR5cGUsIEhlYXBUeXBlIGhlYXBUeXBlKQotICAgIDogbV9hcGlMb2NrKGFkb3B0UmVmKG5l
dyBKU0xvY2sodGhpcykpKQorICAgIDogbV9pZChuZXh0SUQoKSkKKyAgICAsIG1fYXBpTG9jayhh
ZG9wdFJlZihuZXcgSlNMb2NrKHRoaXMpKSkKICNpZiBVU0UoQ0YpCiAgICAgLCBtX3J1bkxvb3Ao
Q0ZSdW5Mb29wR2V0Q3VycmVudCgpKQogI2VuZGlmIC8vIFVTRShDRikKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvVk0uaAkocmV2aXNpb24gMjM0MzI1KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvVk0uaAkod29ya2luZyBjb3B5KQpAQCAtMjg5LDcgKzI4OSwxNiBAQCBw
dWJsaWM6CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgU2FtcGxpbmdQcm9maWxlciYgZW5zdXJlU2Ft
cGxpbmdQcm9maWxlcihSZWZQdHI8U3RvcHdhdGNoPiYmKTsKICNlbmRpZgogCisgICAgc3RhdGlj
IHVuc2lnbmVkIG51bWJlck9mSURzKCkgeyByZXR1cm4gc19udW1iZXJPZklEcy5sb2FkKCk7IH0K
KyAgICB1bnNpZ25lZCBpZCgpIGNvbnN0IHsgcmV0dXJuIG1faWQ7IH0KKyAgICBib29sIGlzRW50
ZXJlZCgpIGNvbnN0IHsgcmV0dXJuICEhZW50cnlTY29wZTsgfQorCiBwcml2YXRlOgorICAgIHVu
c2lnbmVkIG5leHRJRCgpOworCisgICAgc3RhdGljIEF0b21pYzx1bnNpZ25lZD4gc19udW1iZXJP
ZklEczsKKworICAgIHVuc2lnbmVkIG1faWQ7CiAgICAgUmVmUHRyPEpTTG9jaz4gbV9hcGlMb2Nr
OwogI2lmIFVTRShDRikKICAgICAvLyBUaGVzZSBuZWVkIHRvIGJlIGluaXRpYWxpemVkIGJlZm9y
ZSBoZWFwIGJlbG93LgpJbmRleDogU291cmNlL1dURi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dURi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzNDMyNSkKKysrIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDQgQEAKKzIwMTgtMDctMjcgIE1hcmsg
TGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzb21lIGNyYXNoIGluZm8g
dG8gSGVhcDo6Y2hlY2tDb25uKCkgUkVMRUFTRV9BU1NFUlRzLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4MTIzCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS80MjY3MjI2OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAxLiBSZW5hbWUgU1RVRkZfRk9SX0NSQVNIX1JFR0lTVEVSeCB0byBDUkFTSF9HUFJ4
LiAgVGhlc2UgYXJlIG9ubHkgdXNlZCBpbgorICAgICAgICAgICBsb2NhbGx5IGluIEFzc2VydGlv
bnMuY3BwLiAgVGhlcmUgaXMgbGl0dGxlIHRvIG5vIGNoYW5jZSBvZiBhIG5hbWUgY29sbGlzaW9u
LAorICAgICAgICAgICBhbmQgdGhlIHNob3J0ZXIgbmFtZXMgd2lsbCBiZSBtdWNoIGVhc2llciB0
byByZWFkIGFuZCBncm9rIGluIHRoZSBjb2RlLgorCisgICAgICAgIDIuIEFkZGVkIGFuIGFkZGl0
aW9uYWwgMiByZWdpc3RlcnMgc28gdGhhdCB3ZSBjYW4gcGFzcyBtb3JlIGluZm8uCisKKyAgICAg
ICAgMy4gQ2hhbmdlIHRoZSBXVEZDcmFzaFdpdGhJbmZvKCkgaW1wbGVtZW50YXRpb25zIHRvIGlz
c3VlIG9ubHkgYSBzaW5nbGUgYXNtCisgICAgICAgICAgIHN0YXRlbWVudCBzbyB0aGF0IHRoZSBj
b21waWxlciBkb2VzIG5vdCBpbmFkdmVydGVudGx5IG1vdmUgdmFsdWVzIG91dCBvZiB0aGUKKyAg
ICAgICAgICAgQ1JBU0hfR1BScyB0aGF0IHdlIHdhbnQgdGhlbSB0byBiZSBpbi4KKworICAgICAg
ICA0LiBVc2UgcmVnaXN0ZXIgdGFyZ2V0aW5nIGZvciBsb2NhbCB2YXJpYWJsZXMgdG8gZ2V0IHRo
ZSBjb21waWxlciB0byBwdXQgb3VyCisgICAgICAgICAgIGRlc2lyZWQgdmFsdWVzIGluIHNwZWNp
ZmljIHJlZ2lzdGVycy4gIEZvciBob3cgdGhpcyB3b3Jrcywgc2VlCisgICAgICAgICAgIGh0dHBz
Oi8vZ2NjLmdudS5vcmcvb25saW5lZG9jcy9nY2MvTG9jYWwtUmVnaXN0ZXItVmFyaWFibGVzLmh0
bWwjTG9jYWwtUmVnaXN0ZXItVmFyaWFibGVzCisKKyAgICAgICAgICAgIlRoZSBvbmx5IHN1cHBv
cnRlZCB1c2UgZm9yIHRoaXMgZmVhdHVyZSBpcyB0byBzcGVjaWZ5IHJlZ2lzdGVycyBmb3IgaW5w
dXQgYW5kCisgICAgICAgICAgIG91dHB1dCBvcGVyYW5kcyB3aGVuIGNhbGxpbmcgRXh0ZW5kZWQg
YXNtIChzZWUgRXh0ZW5kZWQgQXNtKS4gIFRoaXMgbWF5IGJlCisgICAgICAgICAgIG5lY2Vzc2Fy
eSBpZiB0aGUgY29uc3RyYWludHMgZm9yIGEgcGFydGljdWxhciBtYWNoaW5lIGRvbuKAmXQgcHJv
dmlkZSBzdWZmaWNpZW50CisgICAgICAgICAgIGNvbnRyb2wgdG8gc2VsZWN0IHRoZSBkZXNpcmVk
IHJlZ2lzdGVyLiIKKworICAgICAgICA1LiBFbmhhbmNlIEFTU0VSVCwgQVNTRVJUX1VOVVNFRCwg
UkVMRUFTRV9BU1NFUlQsIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEIHRvCisgICAgICAgICAg
IGFjY2VwdCBjcmFzaCBpbmZvIGFyZ3VtZW50cy4gIFdlIG5vIGxvbmdlciBuZWVkIHRvIHVzZSBh
biBpZiBzdGF0ZW1lbnQgd2l0aCBhCisgICAgICAgICAgIGNhbGwgdG8gQ1JBU0hfV0lUSF9JTkZP
IGluc3RlYWQgb2YgdGhlc2UgYXNzZXJ0aW9ucy4gIFRoZSBvbmx5IGNhc2Ugbm90IGhhbmRsZWQK
KyAgICAgICAgICAgeWV0IGlzIG9uZSB3aGVyZSB3ZSBtaWdodCB3YW50IHRvIGRhdGFMb2cgc29t
ZSBpbmZvIGJlZm9yZSB0aGUgY3Jhc2guICBJJ2xsCisgICAgICAgICAgIGFkZCB0aGF0IGZ1bmN0
aW9uYWxpdHkgaW4gYSBzdWJzZXF1ZW50IHBhdGNoLgorCisgICAgICAgIDYuIE1vdmUgVU5SRUFD
SEFCTEVfRk9SX1BMQVRGT1JNIHRvIHRoZSBib3R0b20gb2YgQXNzZXJ0aW9ucy5oIGJlY2F1c2Ug
aXQgZGVwZW5kcworICAgICAgICAgICBvbiB0aGUgZGVmaW5pdGlvbiBvZiBSRUxFQVNFX0FTU0VS
VF9OT1RfUkVBQ0hFRCwgd2hpY2ggbm93IGRlcGVuZHMgb24gdGhlCisgICAgICAgICAgIGRlZmlu
aXRvbiBvZiBDUkFTSF9XSVRIX0lORk8uCisKKyAgICAgICAgKiB3dGYvQXNzZXJ0aW9ucy5jcHA6
CisgICAgICAgIChXVEZDcmFzaFdpdGhJbmZvKToKKyAgICAgICAgKiB3dGYvQXNzZXJ0aW9ucy5o
OgorCiAyMDE4LTA3LTI2ICBBbmR5IFZhbldhZ29uZXIgIDxhbmR5QHZhbndhZ29uZXIuZmFtaWx5
PgogCiAgICAgICAgIFtJTlRMXSBSZW1vdmUgSU5UTCBzdWItZmVhdHVyZSBjb21waWxlIGZsYWdz
CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNwcAkocmV2aXNpb24gMjM0MzI1KQorKysgU291cmNlL1dU
Ri93dGYvQXNzZXJ0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2Niw3NiArNTY2LDExNCBA
QCB2b2lkIFdURlJlbGVhc2VMb2dTdGFja1RyYWNlKFdURkxvZ0NoYW5uCiAKICNpZiBPUyhEQVJX
SU4pICYmIChDUFUoWDg2XzY0KSB8fCBDUFUoQVJNNjQpKQogI2lmIENQVShYODZfNjQpCi0jZGVm
aW5lIFNUVUZGX1JFR0lTVEVSX0ZPUl9DUkFTSChyZWcsIGluZm8pIF9fYXNtX18gdm9sYXRpbGUg
KCJtb3ZxICUwLCAlJSIgcmVnIDogOiAiciIgKHN0YXRpY19jYXN0PHVpbnQ2NF90PihpbmZvKSkg
OiByZWcpCisKKyNkZWZpbmUgQ1JBU0hfSU5TVCAiaW50MyIKIAogLy8gVGhpcyBvcmRlcmluZyB3
YXMgY2hvc2VuIHRvIGJlIGNvbnNpc3RlbnQgd2l0aCBKU0MncyBKSVQgYXNzZXJ0cy4gV2UgcHJv
YmFibHkgc2hvdWxkbid0IGNoYW5nZSB0aGlzIG9yZGVyaW5nCiAvLyBzaW5jZSBpdCB3b3VsZCBt
YWtlIHRvb2xpbmcgY3Jhc2ggcmVwb3J0cyBtdWNoIGhhcmRlci4gSWYsIGZvciB3aGF0ZXZlciBy
ZWFzb24sIHdlIGRlY2lkZSB0byBjaGFuZ2UgdGhlIG9yZGVyaW5nCiAvLyBoZXJlIHdlIHNob3Vs
ZCB1cGRhdGUgdGhlIGFib3J0V2l0aHVpbnQ2NF90IGZ1bmN0aW9ucy4KLSNkZWZpbmUgU1RVRkZf
Rk9SX0NSQVNIX1JFR0lTVEVSMSAicjExIgotI2RlZmluZSBTVFVGRl9GT1JfQ1JBU0hfUkVHSVNU
RVIyICJyMTAiCi0jZGVmaW5lIFNUVUZGX0ZPUl9DUkFTSF9SRUdJU1RFUjMgInI5IgotI2RlZmlu
ZSBTVFVGRl9GT1JfQ1JBU0hfUkVHSVNURVI0ICJyOCIKLSNkZWZpbmUgU1RVRkZfRk9SX0NSQVNI
X1JFR0lTVEVSNSAicjE1IgorI2RlZmluZSBDUkFTSF9HUFIwICJyMTEiCisjZGVmaW5lIENSQVNI
X0dQUjEgInIxMCIKKyNkZWZpbmUgQ1JBU0hfR1BSMiAicjkiCisjZGVmaW5lIENSQVNIX0dQUjMg
InI4IgorI2RlZmluZSBDUkFTSF9HUFI0ICJyMTUiCisjZGVmaW5lIENSQVNIX0dQUjUgInIxNCIK
KyNkZWZpbmUgQ1JBU0hfR1BSNiAicjEzIgogCiAjZWxpZiBDUFUoQVJNNjQpIC8vIENQVShYODZf
NjQpCi0jZGVmaW5lIFNUVUZGX1JFR0lTVEVSX0ZPUl9DUkFTSChyZWcsIGluZm8pIF9fYXNtX18g
dm9sYXRpbGUgKCJtb3YgIiByZWcgIiwgJTAiIDogOiAiciIgKHN0YXRpY19jYXN0PHVpbnQ2NF90
PihpbmZvKSkgOiByZWcpCisKKyNkZWZpbmUgQ1JBU0hfSU5TVCAiYnJrICMwIgogCiAvLyBTZWUg
Y29tbWVudCBhYm92ZSBvbiB0aGUgb3JkZXJpbmcuCi0jZGVmaW5lIFNUVUZGX0ZPUl9DUkFTSF9S
RUdJU1RFUjEgIngxNiIKLSNkZWZpbmUgU1RVRkZfRk9SX0NSQVNIX1JFR0lTVEVSMiAieDE3Igot
I2RlZmluZSBTVFVGRl9GT1JfQ1JBU0hfUkVHSVNURVIzICJ4MTgiCi0jZGVmaW5lIFNUVUZGX0ZP
Ul9DUkFTSF9SRUdJU1RFUjQgIngxOSIKLSNkZWZpbmUgU1RVRkZfRk9SX0NSQVNIX1JFR0lTVEVS
NSAieDIwIgorI2RlZmluZSBDUkFTSF9HUFIwICJ4MTYiCisjZGVmaW5lIENSQVNIX0dQUjEgIngx
NyIKKyNkZWZpbmUgQ1JBU0hfR1BSMiAieDE4IgorI2RlZmluZSBDUkFTSF9HUFIzICJ4MTkiCisj
ZGVmaW5lIENSQVNIX0dQUjQgIngyMCIKKyNkZWZpbmUgQ1JBU0hfR1BSNSAieDIxIgorI2RlZmlu
ZSBDUkFTSF9HUFI2ICJ4MjIiCiAKICNlbmRpZiAvLyBDUFUoQVJNNjQpCiAKK3ZvaWQgV1RGQ3Jh
c2hXaXRoSW5mbyhpbnQsIGNvbnN0IGNoYXIqLCBjb25zdCBjaGFyKiwgaW50LCB1aW50NjRfdCBy
ZWFzb24sIHVpbnQ2NF90IG1pc2MxLCB1aW50NjRfdCBtaXNjMiwgdWludDY0X3QgbWlzYzMsIHVp
bnQ2NF90IG1pc2M0LCB1aW50NjRfdCBtaXNjNSwgdWludDY0X3QgbWlzYzYpCit7CisgICAgcmVn
aXN0ZXIgdWludDY0X3QgcmVhc29uR1BSIGFzbShDUkFTSF9HUFIwKSA9IHJlYXNvbjsKKyAgICBy
ZWdpc3RlciB1aW50NjRfdCBtaXNjMUdQUiBhc20oQ1JBU0hfR1BSMSkgPSBtaXNjMTsKKyAgICBy
ZWdpc3RlciB1aW50NjRfdCBtaXNjMkdQUiBhc20oQ1JBU0hfR1BSMikgPSBtaXNjMjsKKyAgICBy
ZWdpc3RlciB1aW50NjRfdCBtaXNjM0dQUiBhc20oQ1JBU0hfR1BSMykgPSBtaXNjMzsKKyAgICBy
ZWdpc3RlciB1aW50NjRfdCBtaXNjNEdQUiBhc20oQ1JBU0hfR1BSNCkgPSBtaXNjNDsKKyAgICBy
ZWdpc3RlciB1aW50NjRfdCBtaXNjNUdQUiBhc20oQ1JBU0hfR1BSNSkgPSBtaXNjNTsKKyAgICBy
ZWdpc3RlciB1aW50NjRfdCBtaXNjNkdQUiBhc20oQ1JBU0hfR1BSNikgPSBtaXNjNjsKKyAgICBf
X2FzbV9fIHZvbGF0aWxlIChDUkFTSF9JTlNUIDogOiAiciIocmVhc29uR1BSKSwgInIiKG1pc2Mx
R1BSKSwgInIiKG1pc2MyR1BSKSwgInIiKG1pc2MzR1BSKSwgInIiKG1pc2M0R1BSKSwgInIiKG1p
c2M1R1BSKSwgInIiKG1pc2M2R1BSKSk7CisgICAgX19idWlsdGluX3VucmVhY2hhYmxlKCk7Cit9
CisKK3ZvaWQgV1RGQ3Jhc2hXaXRoSW5mbyhpbnQsIGNvbnN0IGNoYXIqLCBjb25zdCBjaGFyKiwg
aW50LCB1aW50NjRfdCByZWFzb24sIHVpbnQ2NF90IG1pc2MxLCB1aW50NjRfdCBtaXNjMiwgdWlu
dDY0X3QgbWlzYzMsIHVpbnQ2NF90IG1pc2M0LCB1aW50NjRfdCBtaXNjNSkKK3sKKyAgICByZWdp
c3RlciB1aW50NjRfdCByZWFzb25HUFIgYXNtKENSQVNIX0dQUjApID0gcmVhc29uOworICAgIHJl
Z2lzdGVyIHVpbnQ2NF90IG1pc2MxR1BSIGFzbShDUkFTSF9HUFIxKSA9IG1pc2MxOworICAgIHJl
Z2lzdGVyIHVpbnQ2NF90IG1pc2MyR1BSIGFzbShDUkFTSF9HUFIyKSA9IG1pc2MyOworICAgIHJl
Z2lzdGVyIHVpbnQ2NF90IG1pc2MzR1BSIGFzbShDUkFTSF9HUFIzKSA9IG1pc2MzOworICAgIHJl
Z2lzdGVyIHVpbnQ2NF90IG1pc2M0R1BSIGFzbShDUkFTSF9HUFI0KSA9IG1pc2M0OworICAgIHJl
Z2lzdGVyIHVpbnQ2NF90IG1pc2M1R1BSIGFzbShDUkFTSF9HUFI1KSA9IG1pc2M1OworICAgIF9f
YXNtX18gdm9sYXRpbGUgKENSQVNIX0lOU1QgOiA6ICJyIihyZWFzb25HUFIpLCAiciIobWlzYzFH
UFIpLCAiciIobWlzYzJHUFIpLCAiciIobWlzYzNHUFIpLCAiciIobWlzYzRHUFIpLCAiciIobWlz
YzVHUFIpKTsKKyAgICBfX2J1aWx0aW5fdW5yZWFjaGFibGUoKTsKK30KKwogdm9pZCBXVEZDcmFz
aFdpdGhJbmZvKGludCwgY29uc3QgY2hhciosIGNvbnN0IGNoYXIqLCBpbnQsIHVpbnQ2NF90IHJl
YXNvbiwgdWludDY0X3QgbWlzYzEsIHVpbnQ2NF90IG1pc2MyLCB1aW50NjRfdCBtaXNjMywgdWlu
dDY0X3QgbWlzYzQpCiB7Ci0gICAgU1RVRkZfUkVHSVNURVJfRk9SX0NSQVNIKFNUVUZGX0ZPUl9D
UkFTSF9SRUdJU1RFUjEsIHJlYXNvbik7Ci0gICAgU1RVRkZfUkVHSVNURVJfRk9SX0NSQVNIKFNU
VUZGX0ZPUl9DUkFTSF9SRUdJU1RFUjIsIG1pc2MxKTsKLSAgICBTVFVGRl9SRUdJU1RFUl9GT1Jf
Q1JBU0goU1RVRkZfRk9SX0NSQVNIX1JFR0lTVEVSMywgbWlzYzIpOwotICAgIFNUVUZGX1JFR0lT
VEVSX0ZPUl9DUkFTSChTVFVGRl9GT1JfQ1JBU0hfUkVHSVNURVI0LCBtaXNjMyk7Ci0gICAgU1RV
RkZfUkVHSVNURVJfRk9SX0NSQVNIKFNUVUZGX0ZPUl9DUkFTSF9SRUdJU1RFUjUsIG1pc2M0KTsK
LSAgICBDUkFTSCgpOworICAgIHJlZ2lzdGVyIHVpbnQ2NF90IHJlYXNvbkdQUiBhc20oQ1JBU0hf
R1BSMCkgPSByZWFzb247CisgICAgcmVnaXN0ZXIgdWludDY0X3QgbWlzYzFHUFIgYXNtKENSQVNI
X0dQUjEpID0gbWlzYzE7CisgICAgcmVnaXN0ZXIgdWludDY0X3QgbWlzYzJHUFIgYXNtKENSQVNI
X0dQUjIpID0gbWlzYzI7CisgICAgcmVnaXN0ZXIgdWludDY0X3QgbWlzYzNHUFIgYXNtKENSQVNI
X0dQUjMpID0gbWlzYzM7CisgICAgcmVnaXN0ZXIgdWludDY0X3QgbWlzYzRHUFIgYXNtKENSQVNI
X0dQUjQpID0gbWlzYzQ7CisgICAgX19hc21fXyB2b2xhdGlsZSAoQ1JBU0hfSU5TVCA6IDogInIi
KHJlYXNvbkdQUiksICJyIihtaXNjMUdQUiksICJyIihtaXNjMkdQUiksICJyIihtaXNjM0dQUiks
ICJyIihtaXNjNEdQUikpOworICAgIF9fYnVpbHRpbl91bnJlYWNoYWJsZSgpOwogfQogCiB2b2lk
IFdURkNyYXNoV2l0aEluZm8oaW50LCBjb25zdCBjaGFyKiwgY29uc3QgY2hhciosIGludCwgdWlu
dDY0X3QgcmVhc29uLCB1aW50NjRfdCBtaXNjMSwgdWludDY0X3QgbWlzYzIsIHVpbnQ2NF90IG1p
c2MzKQogewotICAgIFNUVUZGX1JFR0lTVEVSX0ZPUl9DUkFTSChTVFVGRl9GT1JfQ1JBU0hfUkVH
SVNURVIxLCByZWFzb24pOwotICAgIFNUVUZGX1JFR0lTVEVSX0ZPUl9DUkFTSChTVFVGRl9GT1Jf
Q1JBU0hfUkVHSVNURVIyLCBtaXNjMSk7Ci0gICAgU1RVRkZfUkVHSVNURVJfRk9SX0NSQVNIKFNU
VUZGX0ZPUl9DUkFTSF9SRUdJU1RFUjMsIG1pc2MyKTsKLSAgICBTVFVGRl9SRUdJU1RFUl9GT1Jf
Q1JBU0goU1RVRkZfRk9SX0NSQVNIX1JFR0lTVEVSNCwgbWlzYzMpOwotICAgIENSQVNIKCk7Cisg
ICAgcmVnaXN0ZXIgdWludDY0X3QgcmVhc29uR1BSIGFzbShDUkFTSF9HUFIwKSA9IHJlYXNvbjsK
KyAgICByZWdpc3RlciB1aW50NjRfdCBtaXNjMUdQUiBhc20oQ1JBU0hfR1BSMSkgPSBtaXNjMTsK
KyAgICByZWdpc3RlciB1aW50NjRfdCBtaXNjMkdQUiBhc20oQ1JBU0hfR1BSMikgPSBtaXNjMjsK
KyAgICByZWdpc3RlciB1aW50NjRfdCBtaXNjM0dQUiBhc20oQ1JBU0hfR1BSMykgPSBtaXNjMzsK
KyAgICBfX2FzbV9fIHZvbGF0aWxlIChDUkFTSF9JTlNUIDogOiAiciIocmVhc29uR1BSKSwgInIi
KG1pc2MxR1BSKSwgInIiKG1pc2MyR1BSKSwgInIiKG1pc2MzR1BSKSk7CisgICAgX19idWlsdGlu
X3VucmVhY2hhYmxlKCk7CiB9CiAKIHZvaWQgV1RGQ3Jhc2hXaXRoSW5mbyhpbnQsIGNvbnN0IGNo
YXIqLCBjb25zdCBjaGFyKiwgaW50LCB1aW50NjRfdCByZWFzb24sIHVpbnQ2NF90IG1pc2MxLCB1
aW50NjRfdCBtaXNjMikKIHsKLSAgICBTVFVGRl9SRUdJU1RFUl9GT1JfQ1JBU0goU1RVRkZfRk9S
X0NSQVNIX1JFR0lTVEVSMSwgcmVhc29uKTsKLSAgICBTVFVGRl9SRUdJU1RFUl9GT1JfQ1JBU0go
U1RVRkZfRk9SX0NSQVNIX1JFR0lTVEVSMiwgbWlzYzEpOwotICAgIFNUVUZGX1JFR0lTVEVSX0ZP
Ul9DUkFTSChTVFVGRl9GT1JfQ1JBU0hfUkVHSVNURVIzLCBtaXNjMik7Ci0gICAgQ1JBU0goKTsK
KyAgICByZWdpc3RlciB1aW50NjRfdCByZWFzb25HUFIgYXNtKENSQVNIX0dQUjApID0gcmVhc29u
OworICAgIHJlZ2lzdGVyIHVpbnQ2NF90IG1pc2MxR1BSIGFzbShDUkFTSF9HUFIxKSA9IG1pc2Mx
OworICAgIHJlZ2lzdGVyIHVpbnQ2NF90IG1pc2MyR1BSIGFzbShDUkFTSF9HUFIyKSA9IG1pc2My
OworICAgIF9fYXNtX18gdm9sYXRpbGUgKENSQVNIX0lOU1QgOiA6ICJyIihyZWFzb25HUFIpLCAi
ciIobWlzYzFHUFIpLCAiciIobWlzYzJHUFIpKTsKKyAgICBfX2J1aWx0aW5fdW5yZWFjaGFibGUo
KTsKIH0KIAogdm9pZCBXVEZDcmFzaFdpdGhJbmZvKGludCwgY29uc3QgY2hhciosIGNvbnN0IGNo
YXIqLCBpbnQsIHVpbnQ2NF90IHJlYXNvbiwgdWludDY0X3QgbWlzYzEpCiB7Ci0gICAgU1RVRkZf
UkVHSVNURVJfRk9SX0NSQVNIKFNUVUZGX0ZPUl9DUkFTSF9SRUdJU1RFUjEsIHJlYXNvbik7Ci0g
ICAgU1RVRkZfUkVHSVNURVJfRk9SX0NSQVNIKFNUVUZGX0ZPUl9DUkFTSF9SRUdJU1RFUjIsIG1p
c2MxKTsKLSAgICBDUkFTSCgpOworICAgIHJlZ2lzdGVyIHVpbnQ2NF90IHJlYXNvbkdQUiBhc20o
Q1JBU0hfR1BSMCkgPSByZWFzb247CisgICAgcmVnaXN0ZXIgdWludDY0X3QgbWlzYzFHUFIgYXNt
KENSQVNIX0dQUjEpID0gbWlzYzE7CisgICAgX19hc21fXyB2b2xhdGlsZSAoQ1JBU0hfSU5TVCA6
IDogInIiKHJlYXNvbkdQUiksICJyIihtaXNjMUdQUikpOworICAgIF9fYnVpbHRpbl91bnJlYWNo
YWJsZSgpOwogfQogCiB2b2lkIFdURkNyYXNoV2l0aEluZm8oaW50LCBjb25zdCBjaGFyKiwgY29u
c3QgY2hhciosIGludCwgdWludDY0X3QgcmVhc29uKQogewotICAgIFNUVUZGX1JFR0lTVEVSX0ZP
Ul9DUkFTSChTVFVGRl9GT1JfQ1JBU0hfUkVHSVNURVIxLCByZWFzb24pOwotICAgIENSQVNIKCk7
CisgICAgcmVnaXN0ZXIgdWludDY0X3QgcmVhc29uR1BSIGFzbShDUkFTSF9HUFIwKSA9IHJlYXNv
bjsKKyAgICBfX2FzbV9fIHZvbGF0aWxlIChDUkFTSF9JTlNUIDogOiAiciIocmVhc29uR1BSKSk7
CisgICAgX19idWlsdGluX3VucmVhY2hhYmxlKCk7CiB9CiAKIHZvaWQgV1RGQ3Jhc2hXaXRoSW5m
byhpbnQsIGNvbnN0IGNoYXIqLCBjb25zdCBjaGFyKiwgaW50KQogewotICAgIENSQVNIKCk7Cisg
ICAgX19hc21fXyB2b2xhdGlsZSAoQ1JBU0hfSU5TVCA6IDogKTsKKyAgICBfX2J1aWx0aW5fdW5y
ZWFjaGFibGUoKTsKIH0KIAogI2Vsc2UKIAordm9pZCBXVEZDcmFzaFdpdGhJbmZvKGludCwgY29u
c3QgY2hhciosIGNvbnN0IGNoYXIqLCBpbnQsIHVpbnQ2NF90LCB1aW50NjRfdCwgdWludDY0X3Qs
IHVpbnQ2NF90LCB1aW50NjRfdCwgdWludDY0X3QpIHsgQ1JBU0goKTsgfQogdm9pZCBXVEZDcmFz
aFdpdGhJbmZvKGludCwgY29uc3QgY2hhciosIGNvbnN0IGNoYXIqLCBpbnQsIHVpbnQ2NF90LCB1
aW50NjRfdCwgdWludDY0X3QsIHVpbnQ2NF90LCB1aW50NjRfdCkgeyBDUkFTSCgpOyB9CiB2b2lk
IFdURkNyYXNoV2l0aEluZm8oaW50LCBjb25zdCBjaGFyKiwgY29uc3QgY2hhciosIGludCwgdWlu
dDY0X3QsIHVpbnQ2NF90LCB1aW50NjRfdCwgdWludDY0X3QpIHsgQ1JBU0goKTsgfQogdm9pZCBX
VEZDcmFzaFdpdGhJbmZvKGludCwgY29uc3QgY2hhciosIGNvbnN0IGNoYXIqLCBpbnQsIHVpbnQ2
NF90LCB1aW50NjRfdCwgdWludDY0X3QpIHsgQ1JBU0goKTsgfQpJbmRleDogU291cmNlL1dURi93
dGYvQXNzZXJ0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMu
aAkocmV2aXNpb24gMjM0MzI1KQorKysgU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yODksMTUgKzI4OSwxNSBAQCBXVEZfRVhQT1JUX1BSSVZBVEUgTk9fUkVU
VVJOX0RVRV9UT19DUkFTCiAKICNpZiBBU1NFUlRfRElTQUJMRUQKIAotI2RlZmluZSBBU1NFUlQo
YXNzZXJ0aW9uKSAoKHZvaWQpMCkKKyNkZWZpbmUgQVNTRVJUKGFzc2VydGlvbiwgLi4uKSAoKHZv
aWQpMCkKICNkZWZpbmUgQVNTRVJUX1VOREVSX0NPTlNURVhQUl9DT05URVhUKGFzc2VydGlvbikg
KCh2b2lkKTApCiAjZGVmaW5lIEFTU0VSVF9BVChhc3NlcnRpb24sIGZpbGUsIGxpbmUsIGZ1bmN0
aW9uKSAoKHZvaWQpMCkKLSNkZWZpbmUgQVNTRVJUX05PVF9SRUFDSEVEKCkgKCh2b2lkKTApCisj
ZGVmaW5lIEFTU0VSVF9OT1RfUkVBQ0hFRCguLi4pICgodm9pZCkwKQogI2RlZmluZSBBU1NFUlRf
Tk9UX0lNUExFTUVOVEVEX1lFVCgpICgodm9pZCkwKQogI2RlZmluZSBBU1NFUlRfSU1QTElFUyhj
b25kaXRpb24sIGFzc2VydGlvbikgKCh2b2lkKTApCiAjZGVmaW5lIE5PX1JFVFVSTl9EVUVfVE9f
QVNTRVJUCiAKLSNkZWZpbmUgQVNTRVJUX1VOVVNFRCh2YXJpYWJsZSwgYXNzZXJ0aW9uKSAoKHZv
aWQpdmFyaWFibGUpCisjZGVmaW5lIEFTU0VSVF9VTlVTRUQodmFyaWFibGUsIGFzc2VydGlvbiwg
Li4uKSAoKHZvaWQpdmFyaWFibGUpCiAKICNpZiBFTkFCTEUoU0VDVVJJVFlfQVNTRVJUSU9OUykK
ICNkZWZpbmUgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oYXNzZXJ0aW9uKSBcCkBA
IC0zMTQsMTAgKzMxNCwxMCBAQCBXVEZfRVhQT1JUX1BSSVZBVEUgTk9fUkVUVVJOX0RVRV9UT19D
UkFTCiAKICNlbHNlCiAKLSNkZWZpbmUgQVNTRVJUKGFzc2VydGlvbikgZG8geyBcCisjZGVmaW5l
IEFTU0VSVChhc3NlcnRpb24sIC4uLikgZG8geyBcCiAgICAgaWYgKCEoYXNzZXJ0aW9uKSkgeyBc
CiAgICAgICAgIFdURlJlcG9ydEFzc2VydGlvbkZhaWx1cmUoX19GSUxFX18sIF9fTElORV9fLCBX
VEZfUFJFVFRZX0ZVTkNUSU9OLCAjYXNzZXJ0aW9uKTsgXAotICAgICAgICBDUkFTSCgpOyBcCisg
ICAgICAgIENSQVNIX1dJVEhfSU5GTyhfX1ZBX0FSR1NfXyk7IFwKICAgICB9IFwKIH0gd2hpbGUg
KDApCiAKQEAgLTMzNSw5ICszMzUsOSBAQCBXVEZfRVhQT1JUX1BSSVZBVEUgTk9fUkVUVVJOX0RV
RV9UT19DUkFTCiAgICAgfSBcCiB9IHdoaWxlICgwKQogCi0jZGVmaW5lIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpIGRvIHsgXAorI2RlZmluZSBBU1NFUlRfTk9UX1JFQUNIRUQoLi4uKSBkbyB7IFwKICAg
ICBXVEZSZXBvcnRBc3NlcnRpb25GYWlsdXJlKF9fRklMRV9fLCBfX0xJTkVfXywgV1RGX1BSRVRU
WV9GVU5DVElPTiwgMCk7IFwKLSAgICBDUkFTSCgpOyBcCisgICAgQ1JBU0hfV0lUSF9JTkZPKF9f
VkFfQVJHU19fKTsgXAogfSB3aGlsZSAoMCkKIAogI2RlZmluZSBBU1NFUlRfTk9UX0lNUExFTUVO
VEVEX1lFVCgpIGRvIHsgXApAQCAtMzUyLDcgKzM1Miw3IEBAIFdURl9FWFBPUlRfUFJJVkFURSBO
T19SRVRVUk5fRFVFX1RPX0NSQVMKICAgICB9IFwKIH0gd2hpbGUgKDApCiAKLSNkZWZpbmUgQVNT
RVJUX1VOVVNFRCh2YXJpYWJsZSwgYXNzZXJ0aW9uKSBBU1NFUlQoYXNzZXJ0aW9uKQorI2RlZmlu
ZSBBU1NFUlRfVU5VU0VEKHZhcmlhYmxlLCBhc3NlcnRpb24sIC4uLikgQVNTRVJUKGFzc2VydGlv
biwgX19WQV9BUkdTX18pCiAKICNkZWZpbmUgTk9fUkVUVVJOX0RVRV9UT19BU1NFUlQgTk9fUkVU
VVJOX0RVRV9UT19DUkFTSAogCkBAIC01MTAsNDIgKzUxMCwyNiBAQCBXVEZfRVhQT1JUX1BSSVZB
VEUgTk9fUkVUVVJOX0RVRV9UT19DUkFTCiAvKiBSRUxFQVNFX0FTU0VSVCAqLwogCiAjaWYgQVNT
RVJUX0RJU0FCTEVECi0jZGVmaW5lIFJFTEVBU0VfQVNTRVJUKGFzc2VydGlvbikgZG8geyBcCisj
ZGVmaW5lIFJFTEVBU0VfQVNTRVJUKGFzc2VydGlvbiwgLi4uKSBkbyB7IFwKICAgICBpZiAoVU5M
SUtFTFkoIShhc3NlcnRpb24pKSkgXAotICAgICAgICBDUkFTSCgpOyBcCisgICAgICAgIENSQVNI
X1dJVEhfSU5GTyhfX1ZBX0FSR1NfXyk7IFwKIH0gd2hpbGUgKDApCiAjZGVmaW5lIFJFTEVBU0Vf
QVNTRVJUX1dJVEhfTUVTU0FHRShhc3NlcnRpb24sIC4uLikgUkVMRUFTRV9BU1NFUlQoYXNzZXJ0
aW9uKQogI2RlZmluZSBSRUxFQVNFX0FTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKGFz
c2VydGlvbikgUkVMRUFTRV9BU1NFUlQoYXNzZXJ0aW9uKQotI2RlZmluZSBSRUxFQVNFX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpIENSQVNIKCkKKyNkZWZpbmUgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNI
RUQoLi4uKSBDUkFTSF9XSVRIX0lORk8oX19WQV9BUkdTX18pCiAjZWxzZQotI2RlZmluZSBSRUxF
QVNFX0FTU0VSVChhc3NlcnRpb24pIEFTU0VSVChhc3NlcnRpb24pCisjZGVmaW5lIFJFTEVBU0Vf
QVNTRVJUKGFzc2VydGlvbiwgLi4uKSBBU1NFUlQoYXNzZXJ0aW9uLCBfX1ZBX0FSR1NfXykKICNk
ZWZpbmUgUkVMRUFTRV9BU1NFUlRfV0lUSF9NRVNTQUdFKGFzc2VydGlvbiwgLi4uKSBBU1NFUlRf
V0lUSF9NRVNTQUdFKGFzc2VydGlvbiwgX19WQV9BUkdTX18pCiAjZGVmaW5lIFJFTEVBU0VfQVNT
RVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oYXNzZXJ0aW9uKSBBU1NFUlRfV0lUSF9TRUNV
UklUWV9JTVBMSUNBVElPTihhc3NlcnRpb24pCiAjZGVmaW5lIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCkgQVNTRVJUX05PVF9SRUFDSEVEKCkKICNlbmRpZgogCi0vKiBVTlJFQUNIQUJMRV9G
T1JfUExBVEZPUk0gKi8KLQotI2lmIENPTVBJTEVSKENMQU5HKQotLy8gVGhpcyB3b3VsZCBiZSBh
IG1hY3JvIGV4Y2VwdCB0aGF0IGl0cyB1c2Ugb2YgI3ByYWdtYSB3b3JrcyBiZXN0IGFyb3VuZAot
Ly8gYSBmdW5jdGlvbi4gSGVuY2UgaXQgdXNlcyBtYWNybyBuYW1pbmcgY29udmVudGlvbi4KLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdtaXNzaW5nLW5vcmV0dXJuIgotc3RhdGljIGlubGluZSB2b2lkIFVOUkVBQ0hBQkxF
X0ZPUl9QTEFURk9STSgpCi17Ci0gICAgLy8gVGhpcyAqTVVTVCogYmUgYSByZWxlYXNlIGFzc2Vy
dC4gV2UgdXNlIGl0IGluIHBsYWNlcyB3aGVyZSBpdCdzIGJldHRlciB0byBjcmFzaCB0aGFuIHRv
IGtlZXAKLSAgICAvLyBnb2luZy4KLSAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwot
fQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotI2Vsc2UKLSNkZWZpbmUgVU5SRUFDSEFC
TEVfRk9SX1BMQVRGT1JNKCkgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKQotI2VuZGlmCi0K
ICNpZmRlZiBfX2NwbHVzcGx1cwogCiAvLyBUaGUgY29tYmluYXRpb24gb2YgbGluZSwgZmlsZSwg
ZnVuY3Rpb24sIGFuZCBjb3VudGVyIHNob3VsZCBiZSBhIHVuaXF1ZSBudW1iZXIgcGVyIGNhbGwg
dG8gdGhpcyBjcmFzaC4gVGhpcyB0cmlja3MgdGhlIGNvbXBpbGVyIGludG8gbm90IGNvYWxlc2Np
bmcgY2FsbHMgdG8gV1RGQ3Jhc2hXaXRoSW5mby4KIC8vIFRoZSBlYXNpZXN0IHdheSB0byBmaWxs
IHRoZXNlIHZhbHVlcyBwZXIgdHJhbnNsYXRpb24gdW5pdCBpcyB0byBwYXNzIF9fTElORV9fLCBf
X0ZJTEVfXywgV1RGX1BSRVRUWV9GVU5DVElPTiwgYW5kIF9fQ09VTlRFUl9fLgorV1RGX0VYUE9S
VF9QUklWQVRFIE5PX1JFVFVSTl9EVUVfVE9fQ1JBU0ggTk9UX1RBSUxfQ0FMTEVEIHZvaWQgV1RG
Q3Jhc2hXaXRoSW5mbyhpbnQgbGluZSwgY29uc3QgY2hhciogZmlsZSwgY29uc3QgY2hhciogZnVu
Y3Rpb24sIGludCBjb3VudGVyLCB1aW50NjRfdCByZWFzb24sIHVpbnQ2NF90IG1pc2MxLCB1aW50
NjRfdCBtaXNjMiwgdWludDY0X3QgbWlzYzMsIHVpbnQ2NF90IG1pc2M0LCB1aW50NjRfdCBtaXNj
NSwgdWludDY0X3QgbWlzYzYpOworV1RGX0VYUE9SVF9QUklWQVRFIE5PX1JFVFVSTl9EVUVfVE9f
Q1JBU0ggTk9UX1RBSUxfQ0FMTEVEIHZvaWQgV1RGQ3Jhc2hXaXRoSW5mbyhpbnQgbGluZSwgY29u
c3QgY2hhciogZmlsZSwgY29uc3QgY2hhciogZnVuY3Rpb24sIGludCBjb3VudGVyLCB1aW50NjRf
dCByZWFzb24sIHVpbnQ2NF90IG1pc2MxLCB1aW50NjRfdCBtaXNjMiwgdWludDY0X3QgbWlzYzMs
IHVpbnQ2NF90IG1pc2M0LCB1aW50NjRfdCBtaXNjNSk7CiBXVEZfRVhQT1JUX1BSSVZBVEUgTk9f
UkVUVVJOX0RVRV9UT19DUkFTSCBOT1RfVEFJTF9DQUxMRUQgdm9pZCBXVEZDcmFzaFdpdGhJbmZv
KGludCBsaW5lLCBjb25zdCBjaGFyKiBmaWxlLCBjb25zdCBjaGFyKiBmdW5jdGlvbiwgaW50IGNv
dW50ZXIsIHVpbnQ2NF90IHJlYXNvbiwgdWludDY0X3QgbWlzYzEsIHVpbnQ2NF90IG1pc2MyLCB1
aW50NjRfdCBtaXNjMywgdWludDY0X3QgbWlzYzQpOwogV1RGX0VYUE9SVF9QUklWQVRFIE5PX1JF
VFVSTl9EVUVfVE9fQ1JBU0ggTk9UX1RBSUxfQ0FMTEVEIHZvaWQgV1RGQ3Jhc2hXaXRoSW5mbyhp
bnQgbGluZSwgY29uc3QgY2hhciogZmlsZSwgY29uc3QgY2hhciogZnVuY3Rpb24sIGludCBjb3Vu
dGVyLCB1aW50NjRfdCByZWFzb24sIHVpbnQ2NF90IG1pc2MxLCB1aW50NjRfdCBtaXNjMiwgdWlu
dDY0X3QgbWlzYzMpOwogV1RGX0VYUE9SVF9QUklWQVRFIE5PX1JFVFVSTl9EVUVfVE9fQ1JBU0gg
Tk9UX1RBSUxfQ0FMTEVEIHZvaWQgV1RGQ3Jhc2hXaXRoSW5mbyhpbnQgbGluZSwgY29uc3QgY2hh
ciogZmlsZSwgY29uc3QgY2hhciogZnVuY3Rpb24sIGludCBjb3VudGVyLCB1aW50NjRfdCByZWFz
b24sIHVpbnQ2NF90IG1pc2MxLCB1aW50NjRfdCBtaXNjMik7CkBAIC01OTIsNiArNTc2LDMwIEBA
IGlubGluZSB2b2lkIGNvbXBpbGVyRmVuY2VGb3JDcmFzaCgpCiAjZGVmaW5lIENSQVNIX1dJVEhf
U0VDVVJJVFlfSU1QTElDQVRJT05fQU5EX0lORk8gQ1JBU0hfV0lUSF9JTkZPCiAjZW5kaWYgLy8g
Q1JBU0hfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTl9BTkRfSU5GTwogCi0jZW5kaWYgLy8gX19j
cGx1c3BsdXMKKyNlbHNlIC8qIG5vdCBfX2NwbHVzcGx1cyAqLworCisjaWZuZGVmIENSQVNIX1dJ
VEhfSU5GTworI2RlZmluZSBDUkFTSF9XSVRIX0lORk8oKSBDUkFTSCgpCisjZW5kaWYKKworI2Vu
ZGlmIC8qIF9fY3BsdXNwbHVzICovCisKKy8qIFVOUkVBQ0hBQkxFX0ZPUl9QTEFURk9STSAqLwor
CisjaWYgQ09NUElMRVIoQ0xBTkcpCisvLyBUaGlzIHdvdWxkIGJlIGEgbWFjcm8gZXhjZXB0IHRo
YXQgaXRzIHVzZSBvZiAjcHJhZ21hIHdvcmtzIGJlc3QgYXJvdW5kCisvLyBhIGZ1bmN0aW9uLiBI
ZW5jZSBpdCB1c2VzIG1hY3JvIG5hbWluZyBjb252ZW50aW9uLgorI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV21pc3Npbmct
bm9yZXR1cm4iCitzdGF0aWMgaW5saW5lIHZvaWQgVU5SRUFDSEFCTEVfRk9SX1BMQVRGT1JNKCkK
K3sKKyAgICAvLyBUaGlzICpNVVNUKiBiZSBhIHJlbGVhc2UgYXNzZXJ0LiBXZSB1c2UgaXQgaW4g
cGxhY2VzIHdoZXJlIGl0J3MgYmV0dGVyIHRvIGNyYXNoIHRoYW4gdG8ga2VlcAorICAgIC8vIGdv
aW5nLgorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisjcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisjZWxzZQorI2RlZmluZSBVTlJFQUNIQUJMRV9GT1JfUExBVEZPUk0o
KSBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpCisjZW5kaWYKIAogI2VuZGlmIC8qIFdURl9B
c3NlcnRpb25zX2ggKi8K
</data>
<flag name="review"
          id="363852"
          type_id="1"
          status="+"
          setter="keith_miller"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>345955</attachid>
            <date>2018-07-27 14:39:55 -0700</date>
            <delta_ts>2018-07-27 14:39:55 -0700</delta_ts>
            <desc>patch for landing.</desc>
            <filename>bug-188123.patch</filename>
            <type>text/plain</type>
            <size>21019</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjM0MzI4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQyIEBA
CisyMDE4LTA3LTI3ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgc29tZSBjcmFzaCBpbmZvIHRvIEhlYXA6OmNoZWNrQ29ubigpIFJFTEVBU0VfQVNTRVJUcy4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODEyMwor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDI2NzIyNjg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
S2VpdGggTWlsbGVyLgorCisgICAgICAgIDEuIEFkZCBWTTo6bV9pZCBhbmQgSGVhcDo6bV9sYXN0
UGhhc2UgZmllbGRzLiAgQm90aCBvZiB0aGVzZSBmaXQgd2l0aGluIGV4aXN0aW5nCisgICAgICAg
ICAgIHBhZGRpbmcgc3BhY2UgaW4gVk0gYW5kIEhlYXAsIGFuZCBzaG91bGQgbm90IGNvc3QgYW55
IG1lYXN1cmFibGUgcGVyZiB0bworICAgICAgICAgICBpbml0aWFsaXplIGFuZCB1cGRhdGUuCisK
KyAgICAgICAgMi4gQWRkIHNvbWUgY3Jhc2ggaW5mbyB0byB0aGUgUkVMRUFTRV9BU1NFUlRzIGlu
IEhlYXA6OmNoZWNrQ29ubigpOgorCisgICAgICAgICAgIHdvcmxkU3RhdGUgdGVsbHMgdXMgdGhl
IHZhbHVlIHdlIGZhaWxlZCB0aGUgYXNzZXJ0aW9uIG9uLgorCisgICAgICAgICAgIG1fbGFzdFBo
YXNlLCBtX2N1cnJlbnRQaGFzZSwgYW5kIG1fbmV4dFBoYXNlIHRlbGxzIHVzIHRoZSBHQyBwaGFz
ZSB0cmFuc2l0aW9uCisgICAgICAgICAgIHRoYXQgbGVkIHVzIGhlcmUuCisKKyAgICAgICAgICAg
Vk06OmlkKCksIGFuZCBWTTo6bnVtYmVyT2ZJRHMoKSB0ZWxscyB1cyBob3cgbWFueSBWTXMgbWF5
IGJlIGluIHBsYXkuCisKKyAgICAgICAgICAgVk06OmlzRW50ZXJlZCgpIHRlbGxzIHVzIGlmIHRo
ZSBjdXJyZW50IFZNIGlzIGN1cnJlbnRseSBleGVjdXRpbmcgSlMgY29kZS4KKworICAgICAgICAg
ICBTb21lIG9mIHRoaXMgZGF0YSBtYXkgYmUgcmVkdW5kYW50LCBidXQgdGhlIHJlZHVuZGFuY3kg
aXMgaW50ZW50aW9uYWwgc28gdGhhdAorICAgICAgICAgICB3ZSBjYW4gZG91YmxlIGNoZWNrIHdo
YXQgaXMgcmVhbGx5IGhhcHBlbmluZyBhdCB0aGUgdGltZSBvZiBjcmFzaC4KKworICAgICAgICAq
IGhlYXAvSGVhcC5jcHA6CisgICAgICAgIChKU0M6OmFzSW50KToKKyAgICAgICAgKEpTQzo6SGVh
cDo6Y2hlY2tDb25uKToKKyAgICAgICAgKEpTQzo6SGVhcDo6Y2hhbmdlUGhhc2UpOgorICAgICAg
ICAqIGhlYXAvSGVhcC5oOgorICAgICAgICAqIHJ1bnRpbWUvVk0uY3BwOgorICAgICAgICAoSlND
OjpWTTo6bmV4dElEKToKKyAgICAgICAgKEpTQzo6Vk06OlZNKToKKyAgICAgICAgKiBydW50aW1l
L1ZNLmg6CisgICAgICAgIChKU0M6OlZNOjpudW1iZXJPZklEcyk6CisgICAgICAgIChKU0M6OlZN
OjppZCBjb25zdCk6CisgICAgICAgIChKU0M6OlZNOjppc0VudGVyZWQgY29uc3QpOgorCiAyMDE4
LTA3LTI2ICBBbmR5IFZhbldhZ29uZXIgIDxhbmR5QHZhbndhZ29uZXIuZmFtaWx5PgogCiAgICAg
ICAgIFtJTlRMXSBSZW1vdmUgSU5UTCBzdWItZmVhdHVyZSBjb21waWxlIGZsYWdzCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAkocmV2aXNpb24gMjM0MzI4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExMjEsMTQg
KzExMjEsMjAgQEAgdm9pZCBIZWFwOjpjb2xsZWN0SW5Db2xsZWN0b3JUaHJlYWQoKQogICAgIH0K
IH0KIAorQUxXQVlTX0lOTElORSBpbnQgYXNJbnQoQ29sbGVjdG9yUGhhc2UgcGhhc2UpCit7Cisg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4ocGhhc2UpOworfQorCiB2b2lkIEhlYXA6OmNoZWNr
Q29ubihHQ0NvbmR1Y3RvciBjb25uKQogeworICAgIHVuc2lnbmVkIHdvcmxkU3RhdGUgPSBtX3dv
cmxkU3RhdGUubG9hZCgpOwogICAgIHN3aXRjaCAoY29ubikgewogICAgIGNhc2UgR0NDb25kdWN0
b3I6Ok11dGF0b3I6Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUKG1fd29ybGRTdGF0ZS5sb2FkKCkg
JiBtdXRhdG9ySGFzQ29ubkJpdCk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKHdvcmxkU3RhdGUg
JiBtdXRhdG9ySGFzQ29ubkJpdCwgd29ybGRTdGF0ZSwgYXNJbnQobV9sYXN0UGhhc2UpLCBhc0lu
dChtX2N1cnJlbnRQaGFzZSksIGFzSW50KG1fbmV4dFBoYXNlKSwgdm0oKS0+aWQoKSwgVk06Om51
bWJlck9mSURzKCksIHZtKCktPmlzRW50ZXJlZCgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNh
c2UgR0NDb25kdWN0b3I6OkNvbGxlY3RvcjoKLSAgICAgICAgUkVMRUFTRV9BU1NFUlQoIShtX3dv
cmxkU3RhdGUubG9hZCgpICYgbXV0YXRvckhhc0Nvbm5CaXQpKTsKKyAgICAgICAgUkVMRUFTRV9B
U1NFUlQoISh3b3JsZFN0YXRlICYgbXV0YXRvckhhc0Nvbm5CaXQpLCB3b3JsZFN0YXRlLCBhc0lu
dChtX2xhc3RQaGFzZSksIGFzSW50KG1fY3VycmVudFBoYXNlKSwgYXNJbnQobV9uZXh0UGhhc2Up
LCB2bSgpLT5pZCgpLCBWTTo6bnVtYmVyT2ZJRHMoKSwgdm0oKS0+aXNFbnRlcmVkKCkpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBA
IC0xNTE5LDYgKzE1MjUsNyBAQCBib29sIEhlYXA6OmNoYW5nZVBoYXNlKEdDQ29uZHVjdG9yIGNv
bm4sCiB7CiAgICAgY2hlY2tDb25uKGNvbm4pOwogCisgICAgbV9sYXN0UGhhc2UgPSBtX2N1cnJl
bnRQaGFzZTsKICAgICBtX25leHRQaGFzZSA9IG5leHRQaGFzZTsKIAogICAgIHJldHVybiBmaW5p
c2hDaGFuZ2luZ1BoYXNlKGNvbm4pOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
SGVhcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAko
cmV2aXNpb24gMjM0MzI4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCSh3
b3JraW5nIGNvcHkpCkBAIC02OTMsNiArNjkzLDcgQEAgcHJpdmF0ZToKICAgICBHQ1JlcXVlc3Qg
bV9jdXJyZW50UmVxdWVzdDsKICAgICBUaWNrZXQgbV9sYXN0U2VydmVkVGlja2V0IHsgMCB9Owog
ICAgIFRpY2tldCBtX2xhc3RHcmFudGVkVGlja2V0IHsgMCB9OworICAgIENvbGxlY3RvclBoYXNl
IG1fbGFzdFBoYXNlIHsgQ29sbGVjdG9yUGhhc2U6Ok5vdFJ1bm5pbmcgfTsKICAgICBDb2xsZWN0
b3JQaGFzZSBtX2N1cnJlbnRQaGFzZSB7IENvbGxlY3RvclBoYXNlOjpOb3RSdW5uaW5nIH07CiAg
ICAgQ29sbGVjdG9yUGhhc2UgbV9uZXh0UGhhc2UgeyBDb2xsZWN0b3JQaGFzZTo6Tm90UnVubmlu
ZyB9OwogICAgIGJvb2wgbV90aHJlYWRTaG91bGRTdG9wIHsgZmFsc2UgfTsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAJKHJldmlzaW9uIDIzNDMyOCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTgyLDYgKzE4
Miw4IEBAIGJvb2wgVk06OnNfY2FuVXNlSklUSXNTZXQgPSBmYWxzZTsKIGJvb2wgVk06OnNfY2Fu
VXNlSklUID0gZmFsc2U7CiAjZW5kaWYKIAorQXRvbWljPHVuc2lnbmVkPiBWTTo6c19udW1iZXJP
ZklEczsKKwogLy8gTm90ZTogUGxhdGZvcm0uaCB3aWxsIGVuZm9yY2UgdGhhdCBFTkFCTEUoQVNT
RU1CTEVSKSBpcyB0cnVlIGlmIGVpdGhlcgogLy8gRU5BQkxFKEpJVCkgb3IgRU5BQkxFKFlBUlJf
SklUKSBvciBib3RoIGFyZSBlbmFibGVkLiBUaGUgY29kZSBiZWxvdwogLy8ganVzdCBjaGVja3Mg
Zm9yIEVOQUJMRShKSVQpIG9yIEVOQUJMRShZQVJSX0pJVCkgd2l0aCB0aGlzIHByZW1pc2UgaW4g
bWluZC4KQEAgLTI0Nyw4ICsyNDksMjAgQEAgYm9vbCBWTTo6aXNJbk1pbmlNb2RlKCkKICAgICBy
ZXR1cm4gIWNhblVzZUpJVCgpIHx8IE9wdGlvbnM6OmZvcmNlTWluaVZNTW9kZSgpOwogfQogCitp
bmxpbmUgdW5zaWduZWQgVk06Om5leHRJRCgpCit7CisgICAgZm9yICg7OykgeworICAgICAgICB1
bnNpZ25lZCBjdXJyZW50TnVtYmVyT2ZJRHMgPSBzX251bWJlck9mSURzLmxvYWQoKTsKKyAgICAg
ICAgdW5zaWduZWQgbmV3SUQgPSBjdXJyZW50TnVtYmVyT2ZJRHMgKyAxOworICAgICAgICBpZiAo
c19udW1iZXJPZklEcy5jb21wYXJlRXhjaGFuZ2VXZWFrKGN1cnJlbnROdW1iZXJPZklEcywgbmV3
SUQpKQorICAgICAgICAgICAgcmV0dXJuIG5ld0lEOworICAgIH0KK30KKworCiBWTTo6Vk0oVk1U
eXBlIHZtVHlwZSwgSGVhcFR5cGUgaGVhcFR5cGUpCi0gICAgOiBtX2FwaUxvY2soYWRvcHRSZWYo
bmV3IEpTTG9jayh0aGlzKSkpCisgICAgOiBtX2lkKG5leHRJRCgpKQorICAgICwgbV9hcGlMb2Nr
KGFkb3B0UmVmKG5ldyBKU0xvY2sodGhpcykpKQogI2lmIFVTRShDRikKICAgICAsIG1fcnVuTG9v
cChDRlJ1bkxvb3BHZXRDdXJyZW50KCkpCiAjZW5kaWYgLy8gVVNFKENGKQpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9WTS5oCShyZXZpc2lvbiAyMzQzMjgpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9WTS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yODksNyArMjg5LDE2IEBA
IHB1YmxpYzoKICAgICBKU19FWFBPUlRfUFJJVkFURSBTYW1wbGluZ1Byb2ZpbGVyJiBlbnN1cmVT
YW1wbGluZ1Byb2ZpbGVyKFJlZlB0cjxTdG9wd2F0Y2g+JiYpOwogI2VuZGlmCiAKKyAgICBzdGF0
aWMgdW5zaWduZWQgbnVtYmVyT2ZJRHMoKSB7IHJldHVybiBzX251bWJlck9mSURzLmxvYWQoKTsg
fQorICAgIHVuc2lnbmVkIGlkKCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQorICAgIGJvb2wgaXNF
bnRlcmVkKCkgY29uc3QgeyByZXR1cm4gISFlbnRyeVNjb3BlOyB9CisKIHByaXZhdGU6CisgICAg
dW5zaWduZWQgbmV4dElEKCk7CisKKyAgICBzdGF0aWMgQXRvbWljPHVuc2lnbmVkPiBzX251bWJl
ck9mSURzOworCisgICAgdW5zaWduZWQgbV9pZDsKICAgICBSZWZQdHI8SlNMb2NrPiBtX2FwaUxv
Y2s7CiAjaWYgVVNFKENGKQogICAgIC8vIFRoZXNlIG5lZWQgdG8gYmUgaW5pdGlhbGl6ZWQgYmVm
b3JlIGhlYXAgYmVsb3cuCkluZGV4OiBTb3VyY2UvV1RGL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV1RGL0NoYW5nZUxvZwkocmV2aXNpb24gMjM0MzI4KQorKysgU291cmNlL1dURi9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw0NCBAQAorMjAxOC0wNy0yNyAgTWFy
ayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHNvbWUgY3Jhc2ggaW5m
byB0byBIZWFwOjpjaGVja0Nvbm4oKSBSRUxFQVNFX0FTU0VSVHMuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODgxMjMKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzQyNjcyMjY4PgorCisgICAgICAgIFJldmlld2VkIGJ5IEtlaXRoIE1pbGxlci4KKwor
ICAgICAgICAxLiBSZW5hbWUgU1RVRkZfRk9SX0NSQVNIX1JFR0lTVEVSeCB0byBDUkFTSF9HUFJ4
LiAgVGhlc2UgYXJlIG9ubHkgdXNlZCBpbgorICAgICAgICAgICBsb2NhbGx5IGluIEFzc2VydGlv
bnMuY3BwLiAgVGhlcmUgaXMgbGl0dGxlIHRvIG5vIGNoYW5jZSBvZiBhIG5hbWUgY29sbGlzaW9u
LAorICAgICAgICAgICBhbmQgdGhlIHNob3J0ZXIgbmFtZXMgd2lsbCBiZSBtdWNoIGVhc2llciB0
byByZWFkIGFuZCBncm9rIGluIHRoZSBjb2RlLgorCisgICAgICAgIDIuIEFkZGVkIGFuIGFkZGl0
aW9uYWwgMiByZWdpc3RlcnMgc28gdGhhdCB3ZSBjYW4gcGFzcyBtb3JlIGluZm8uCisKKyAgICAg
ICAgMy4gQ2hhbmdlIHRoZSBXVEZDcmFzaFdpdGhJbmZvKCkgaW1wbGVtZW50YXRpb25zIHRvIGlz
c3VlIG9ubHkgYSBzaW5nbGUgYXNtCisgICAgICAgICAgIHN0YXRlbWVudCBzbyB0aGF0IHRoZSBj
b21waWxlciBkb2VzIG5vdCBpbmFkdmVydGVudGx5IG1vdmUgdmFsdWVzIG91dCBvZiB0aGUKKyAg
ICAgICAgICAgQ1JBU0hfR1BScyB0aGF0IHdlIHdhbnQgdGhlbSB0byBiZSBpbi4KKworICAgICAg
ICA0LiBVc2UgcmVnaXN0ZXIgdGFyZ2V0aW5nIGZvciBsb2NhbCB2YXJpYWJsZXMgdG8gZ2V0IHRo
ZSBjb21waWxlciB0byBwdXQgb3VyCisgICAgICAgICAgIGRlc2lyZWQgdmFsdWVzIGluIHNwZWNp
ZmljIHJlZ2lzdGVycy4gIEZvciBob3cgdGhpcyB3b3Jrcywgc2VlCisgICAgICAgICAgIGh0dHBz
Oi8vZ2NjLmdudS5vcmcvb25saW5lZG9jcy9nY2MvTG9jYWwtUmVnaXN0ZXItVmFyaWFibGVzLmh0
bWwjTG9jYWwtUmVnaXN0ZXItVmFyaWFibGVzCisKKyAgICAgICAgICAgIlRoZSBvbmx5IHN1cHBv
cnRlZCB1c2UgZm9yIHRoaXMgZmVhdHVyZSBpcyB0byBzcGVjaWZ5IHJlZ2lzdGVycyBmb3IgaW5w
dXQgYW5kCisgICAgICAgICAgIG91dHB1dCBvcGVyYW5kcyB3aGVuIGNhbGxpbmcgRXh0ZW5kZWQg
YXNtIChzZWUgRXh0ZW5kZWQgQXNtKS4gIFRoaXMgbWF5IGJlCisgICAgICAgICAgIG5lY2Vzc2Fy
eSBpZiB0aGUgY29uc3RyYWludHMgZm9yIGEgcGFydGljdWxhciBtYWNoaW5lIGRvbuKAmXQgcHJv
dmlkZSBzdWZmaWNpZW50CisgICAgICAgICAgIGNvbnRyb2wgdG8gc2VsZWN0IHRoZSBkZXNpcmVk
IHJlZ2lzdGVyLiIKKworICAgICAgICA1LiBFbmhhbmNlIEFTU0VSVCwgQVNTRVJUX1VOVVNFRCwg
UkVMRUFTRV9BU1NFUlQsIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEIHRvCisgICAgICAgICAg
IGFjY2VwdCBjcmFzaCBpbmZvIGFyZ3VtZW50cy4gIFdlIG5vIGxvbmdlciBuZWVkIHRvIHVzZSBh
biBpZiBzdGF0ZW1lbnQgd2l0aCBhCisgICAgICAgICAgIGNhbGwgdG8gQ1JBU0hfV0lUSF9JTkZP
IGluc3RlYWQgb2YgdGhlc2UgYXNzZXJ0aW9ucy4gIFRoZSBvbmx5IGNhc2Ugbm90IGhhbmRsZWQK
KyAgICAgICAgICAgeWV0IGlzIG9uZSB3aGVyZSB3ZSBtaWdodCB3YW50IHRvIGRhdGFMb2cgc29t
ZSBpbmZvIGJlZm9yZSB0aGUgY3Jhc2guICBJJ2xsCisgICAgICAgICAgIGFkZCB0aGF0IGZ1bmN0
aW9uYWxpdHkgaW4gYSBzdWJzZXF1ZW50IHBhdGNoLgorCisgICAgICAgIDYuIE1vdmUgVU5SRUFD
SEFCTEVfRk9SX1BMQVRGT1JNIHRvIHRoZSBib3R0b20gb2YgQXNzZXJ0aW9ucy5oIGJlY2F1c2Ug
aXQgZGVwZW5kcworICAgICAgICAgICBvbiB0aGUgZGVmaW5pdGlvbiBvZiBSRUxFQVNFX0FTU0VS
VF9OT1RfUkVBQ0hFRCwgd2hpY2ggbm93IGRlcGVuZHMgb24gdGhlCisgICAgICAgICAgIGRlZmlu
aXRvbiBvZiBDUkFTSF9XSVRIX0lORk8uCisKKyAgICAgICAgKiB3dGYvQXNzZXJ0aW9ucy5jcHA6
CisgICAgICAgIChXVEZDcmFzaFdpdGhJbmZvKToKKyAgICAgICAgKiB3dGYvQXNzZXJ0aW9ucy5o
OgorCiAyMDE4LTA3LTI2ICBBbmR5IFZhbldhZ29uZXIgIDxhbmR5QHZhbndhZ29uZXIuZmFtaWx5
PgogCiAgICAgICAgIFtJTlRMXSBSZW1vdmUgSU5UTCBzdWItZmVhdHVyZSBjb21waWxlIGZsYWdz
CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNwcAkocmV2aXNpb24gMjM0MzI4KQorKysgU291cmNlL1dU
Ri93dGYvQXNzZXJ0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2Niw3NiArNTY2LDExNSBA
QCB2b2lkIFdURlJlbGVhc2VMb2dTdGFja1RyYWNlKFdURkxvZ0NoYW5uCiAKICNpZiBPUyhEQVJX
SU4pICYmIChDUFUoWDg2XzY0KSB8fCBDUFUoQVJNNjQpKQogI2lmIENQVShYODZfNjQpCi0jZGVm
aW5lIFNUVUZGX1JFR0lTVEVSX0ZPUl9DUkFTSChyZWcsIGluZm8pIF9fYXNtX18gdm9sYXRpbGUg
KCJtb3ZxICUwLCAlJSIgcmVnIDogOiAiciIgKHN0YXRpY19jYXN0PHVpbnQ2NF90PihpbmZvKSkg
OiByZWcpCisKKyNkZWZpbmUgQ1JBU0hfSU5TVCAiaW50MyIKIAogLy8gVGhpcyBvcmRlcmluZyB3
YXMgY2hvc2VuIHRvIGJlIGNvbnNpc3RlbnQgd2l0aCBKU0MncyBKSVQgYXNzZXJ0cy4gV2UgcHJv
YmFibHkgc2hvdWxkbid0IGNoYW5nZSB0aGlzIG9yZGVyaW5nCiAvLyBzaW5jZSBpdCB3b3VsZCBt
YWtlIHRvb2xpbmcgY3Jhc2ggcmVwb3J0cyBtdWNoIGhhcmRlci4gSWYsIGZvciB3aGF0ZXZlciBy
ZWFzb24sIHdlIGRlY2lkZSB0byBjaGFuZ2UgdGhlIG9yZGVyaW5nCiAvLyBoZXJlIHdlIHNob3Vs
ZCB1cGRhdGUgdGhlIGFib3J0V2l0aHVpbnQ2NF90IGZ1bmN0aW9ucy4KLSNkZWZpbmUgU1RVRkZf
Rk9SX0NSQVNIX1JFR0lTVEVSMSAicjExIgotI2RlZmluZSBTVFVGRl9GT1JfQ1JBU0hfUkVHSVNU
RVIyICJyMTAiCi0jZGVmaW5lIFNUVUZGX0ZPUl9DUkFTSF9SRUdJU1RFUjMgInI5IgotI2RlZmlu
ZSBTVFVGRl9GT1JfQ1JBU0hfUkVHSVNURVI0ICJyOCIKLSNkZWZpbmUgU1RVRkZfRk9SX0NSQVNI
X1JFR0lTVEVSNSAicjE1IgorI2RlZmluZSBDUkFTSF9HUFIwICJyMTEiCisjZGVmaW5lIENSQVNI
X0dQUjEgInIxMCIKKyNkZWZpbmUgQ1JBU0hfR1BSMiAicjkiCisjZGVmaW5lIENSQVNIX0dQUjMg
InI4IgorI2RlZmluZSBDUkFTSF9HUFI0ICJyMTUiCisjZGVmaW5lIENSQVNIX0dQUjUgInIxNCIK
KyNkZWZpbmUgQ1JBU0hfR1BSNiAicjEzIgogCiAjZWxpZiBDUFUoQVJNNjQpIC8vIENQVShYODZf
NjQpCi0jZGVmaW5lIFNUVUZGX1JFR0lTVEVSX0ZPUl9DUkFTSChyZWcsIGluZm8pIF9fYXNtX18g
dm9sYXRpbGUgKCJtb3YgIiByZWcgIiwgJTAiIDogOiAiciIgKHN0YXRpY19jYXN0PHVpbnQ2NF90
PihpbmZvKSkgOiByZWcpCisKKyNkZWZpbmUgQ1JBU0hfSU5TVCAiYnJrICMwIgogCiAvLyBTZWUg
Y29tbWVudCBhYm92ZSBvbiB0aGUgb3JkZXJpbmcuCi0jZGVmaW5lIFNUVUZGX0ZPUl9DUkFTSF9S
RUdJU1RFUjEgIngxNiIKLSNkZWZpbmUgU1RVRkZfRk9SX0NSQVNIX1JFR0lTVEVSMiAieDE3Igot
I2RlZmluZSBTVFVGRl9GT1JfQ1JBU0hfUkVHSVNURVIzICJ4MTgiCi0jZGVmaW5lIFNUVUZGX0ZP
Ul9DUkFTSF9SRUdJU1RFUjQgIngxOSIKLSNkZWZpbmUgU1RVRkZfRk9SX0NSQVNIX1JFR0lTVEVS
NSAieDIwIgorI2RlZmluZSBDUkFTSF9HUFIwICJ4MTYiCisjZGVmaW5lIENSQVNIX0dQUjEgIngx
NyIKKyNkZWZpbmUgQ1JBU0hfR1BSMiAieDE4IgorI2RlZmluZSBDUkFTSF9HUFIzICJ4MTkiCisj
ZGVmaW5lIENSQVNIX0dQUjQgIngyMCIKKyNkZWZpbmUgQ1JBU0hfR1BSNSAieDIxIgorI2RlZmlu
ZSBDUkFTSF9HUFI2ICJ4MjIiCiAKICNlbmRpZiAvLyBDUFUoQVJNNjQpCiAKK3ZvaWQgV1RGQ3Jh
c2hXaXRoSW5mbyhpbnQsIGNvbnN0IGNoYXIqLCBjb25zdCBjaGFyKiwgaW50LCB1aW50NjRfdCBy
ZWFzb24sIHVpbnQ2NF90IG1pc2MxLCB1aW50NjRfdCBtaXNjMiwgdWludDY0X3QgbWlzYzMsIHVp
bnQ2NF90IG1pc2M0LCB1aW50NjRfdCBtaXNjNSwgdWludDY0X3QgbWlzYzYpCit7CisgICAgcmVn
aXN0ZXIgdWludDY0X3QgcmVhc29uR1BSIGFzbShDUkFTSF9HUFIwKSA9IHJlYXNvbjsKKyAgICBy
ZWdpc3RlciB1aW50NjRfdCBtaXNjMUdQUiBhc20oQ1JBU0hfR1BSMSkgPSBtaXNjMTsKKyAgICBy
ZWdpc3RlciB1aW50NjRfdCBtaXNjMkdQUiBhc20oQ1JBU0hfR1BSMikgPSBtaXNjMjsKKyAgICBy
ZWdpc3RlciB1aW50NjRfdCBtaXNjM0dQUiBhc20oQ1JBU0hfR1BSMykgPSBtaXNjMzsKKyAgICBy
ZWdpc3RlciB1aW50NjRfdCBtaXNjNEdQUiBhc20oQ1JBU0hfR1BSNCkgPSBtaXNjNDsKKyAgICBy
ZWdpc3RlciB1aW50NjRfdCBtaXNjNUdQUiBhc20oQ1JBU0hfR1BSNSkgPSBtaXNjNTsKKyAgICBy
ZWdpc3RlciB1aW50NjRfdCBtaXNjNkdQUiBhc20oQ1JBU0hfR1BSNikgPSBtaXNjNjsKKyAgICBf
X2FzbV9fIHZvbGF0aWxlIChDUkFTSF9JTlNUIDogOiAiciIocmVhc29uR1BSKSwgInIiKG1pc2Mx
R1BSKSwgInIiKG1pc2MyR1BSKSwgInIiKG1pc2MzR1BSKSwgInIiKG1pc2M0R1BSKSwgInIiKG1p
c2M1R1BSKSwgInIiKG1pc2M2R1BSKSk7CisgICAgX19idWlsdGluX3VucmVhY2hhYmxlKCk7Cit9
CisKK3ZvaWQgV1RGQ3Jhc2hXaXRoSW5mbyhpbnQsIGNvbnN0IGNoYXIqLCBjb25zdCBjaGFyKiwg
aW50LCB1aW50NjRfdCByZWFzb24sIHVpbnQ2NF90IG1pc2MxLCB1aW50NjRfdCBtaXNjMiwgdWlu
dDY0X3QgbWlzYzMsIHVpbnQ2NF90IG1pc2M0LCB1aW50NjRfdCBtaXNjNSkKK3sKKyAgICByZWdp
c3RlciB1aW50NjRfdCByZWFzb25HUFIgYXNtKENSQVNIX0dQUjApID0gcmVhc29uOworICAgIHJl
Z2lzdGVyIHVpbnQ2NF90IG1pc2MxR1BSIGFzbShDUkFTSF9HUFIxKSA9IG1pc2MxOworICAgIHJl
Z2lzdGVyIHVpbnQ2NF90IG1pc2MyR1BSIGFzbShDUkFTSF9HUFIyKSA9IG1pc2MyOworICAgIHJl
Z2lzdGVyIHVpbnQ2NF90IG1pc2MzR1BSIGFzbShDUkFTSF9HUFIzKSA9IG1pc2MzOworICAgIHJl
Z2lzdGVyIHVpbnQ2NF90IG1pc2M0R1BSIGFzbShDUkFTSF9HUFI0KSA9IG1pc2M0OworICAgIHJl
Z2lzdGVyIHVpbnQ2NF90IG1pc2M1R1BSIGFzbShDUkFTSF9HUFI1KSA9IG1pc2M1OworICAgIF9f
YXNtX18gdm9sYXRpbGUgKENSQVNIX0lOU1QgOiA6ICJyIihyZWFzb25HUFIpLCAiciIobWlzYzFH
UFIpLCAiciIobWlzYzJHUFIpLCAiciIobWlzYzNHUFIpLCAiciIobWlzYzRHUFIpLCAiciIobWlz
YzVHUFIpKTsKKyAgICBfX2J1aWx0aW5fdW5yZWFjaGFibGUoKTsKK30KKwogdm9pZCBXVEZDcmFz
aFdpdGhJbmZvKGludCwgY29uc3QgY2hhciosIGNvbnN0IGNoYXIqLCBpbnQsIHVpbnQ2NF90IHJl
YXNvbiwgdWludDY0X3QgbWlzYzEsIHVpbnQ2NF90IG1pc2MyLCB1aW50NjRfdCBtaXNjMywgdWlu
dDY0X3QgbWlzYzQpCiB7Ci0gICAgU1RVRkZfUkVHSVNURVJfRk9SX0NSQVNIKFNUVUZGX0ZPUl9D
UkFTSF9SRUdJU1RFUjEsIHJlYXNvbik7Ci0gICAgU1RVRkZfUkVHSVNURVJfRk9SX0NSQVNIKFNU
VUZGX0ZPUl9DUkFTSF9SRUdJU1RFUjIsIG1pc2MxKTsKLSAgICBTVFVGRl9SRUdJU1RFUl9GT1Jf
Q1JBU0goU1RVRkZfRk9SX0NSQVNIX1JFR0lTVEVSMywgbWlzYzIpOwotICAgIFNUVUZGX1JFR0lT
VEVSX0ZPUl9DUkFTSChTVFVGRl9GT1JfQ1JBU0hfUkVHSVNURVI0LCBtaXNjMyk7Ci0gICAgU1RV
RkZfUkVHSVNURVJfRk9SX0NSQVNIKFNUVUZGX0ZPUl9DUkFTSF9SRUdJU1RFUjUsIG1pc2M0KTsK
LSAgICBDUkFTSCgpOworICAgIHJlZ2lzdGVyIHVpbnQ2NF90IHJlYXNvbkdQUiBhc20oQ1JBU0hf
R1BSMCkgPSByZWFzb247CisgICAgcmVnaXN0ZXIgdWludDY0X3QgbWlzYzFHUFIgYXNtKENSQVNI
X0dQUjEpID0gbWlzYzE7CisgICAgcmVnaXN0ZXIgdWludDY0X3QgbWlzYzJHUFIgYXNtKENSQVNI
X0dQUjIpID0gbWlzYzI7CisgICAgcmVnaXN0ZXIgdWludDY0X3QgbWlzYzNHUFIgYXNtKENSQVNI
X0dQUjMpID0gbWlzYzM7CisgICAgcmVnaXN0ZXIgdWludDY0X3QgbWlzYzRHUFIgYXNtKENSQVNI
X0dQUjQpID0gbWlzYzQ7CisgICAgX19hc21fXyB2b2xhdGlsZSAoQ1JBU0hfSU5TVCA6IDogInIi
KHJlYXNvbkdQUiksICJyIihtaXNjMUdQUiksICJyIihtaXNjMkdQUiksICJyIihtaXNjM0dQUiks
ICJyIihtaXNjNEdQUikpOworICAgIF9fYnVpbHRpbl91bnJlYWNoYWJsZSgpOwogfQogCiB2b2lk
IFdURkNyYXNoV2l0aEluZm8oaW50LCBjb25zdCBjaGFyKiwgY29uc3QgY2hhciosIGludCwgdWlu
dDY0X3QgcmVhc29uLCB1aW50NjRfdCBtaXNjMSwgdWludDY0X3QgbWlzYzIsIHVpbnQ2NF90IG1p
c2MzKQogewotICAgIFNUVUZGX1JFR0lTVEVSX0ZPUl9DUkFTSChTVFVGRl9GT1JfQ1JBU0hfUkVH
SVNURVIxLCByZWFzb24pOwotICAgIFNUVUZGX1JFR0lTVEVSX0ZPUl9DUkFTSChTVFVGRl9GT1Jf
Q1JBU0hfUkVHSVNURVIyLCBtaXNjMSk7Ci0gICAgU1RVRkZfUkVHSVNURVJfRk9SX0NSQVNIKFNU
VUZGX0ZPUl9DUkFTSF9SRUdJU1RFUjMsIG1pc2MyKTsKLSAgICBTVFVGRl9SRUdJU1RFUl9GT1Jf
Q1JBU0goU1RVRkZfRk9SX0NSQVNIX1JFR0lTVEVSNCwgbWlzYzMpOwotICAgIENSQVNIKCk7Cisg
ICAgcmVnaXN0ZXIgdWludDY0X3QgcmVhc29uR1BSIGFzbShDUkFTSF9HUFIwKSA9IHJlYXNvbjsK
KyAgICByZWdpc3RlciB1aW50NjRfdCBtaXNjMUdQUiBhc20oQ1JBU0hfR1BSMSkgPSBtaXNjMTsK
KyAgICByZWdpc3RlciB1aW50NjRfdCBtaXNjMkdQUiBhc20oQ1JBU0hfR1BSMikgPSBtaXNjMjsK
KyAgICByZWdpc3RlciB1aW50NjRfdCBtaXNjM0dQUiBhc20oQ1JBU0hfR1BSMykgPSBtaXNjMzsK
KyAgICBfX2FzbV9fIHZvbGF0aWxlIChDUkFTSF9JTlNUIDogOiAiciIocmVhc29uR1BSKSwgInIi
KG1pc2MxR1BSKSwgInIiKG1pc2MyR1BSKSwgInIiKG1pc2MzR1BSKSk7CisgICAgX19idWlsdGlu
X3VucmVhY2hhYmxlKCk7CiB9CiAKIHZvaWQgV1RGQ3Jhc2hXaXRoSW5mbyhpbnQsIGNvbnN0IGNo
YXIqLCBjb25zdCBjaGFyKiwgaW50LCB1aW50NjRfdCByZWFzb24sIHVpbnQ2NF90IG1pc2MxLCB1
aW50NjRfdCBtaXNjMikKIHsKLSAgICBTVFVGRl9SRUdJU1RFUl9GT1JfQ1JBU0goU1RVRkZfRk9S
X0NSQVNIX1JFR0lTVEVSMSwgcmVhc29uKTsKLSAgICBTVFVGRl9SRUdJU1RFUl9GT1JfQ1JBU0go
U1RVRkZfRk9SX0NSQVNIX1JFR0lTVEVSMiwgbWlzYzEpOwotICAgIFNUVUZGX1JFR0lTVEVSX0ZP
Ul9DUkFTSChTVFVGRl9GT1JfQ1JBU0hfUkVHSVNURVIzLCBtaXNjMik7Ci0gICAgQ1JBU0goKTsK
KyAgICByZWdpc3RlciB1aW50NjRfdCByZWFzb25HUFIgYXNtKENSQVNIX0dQUjApID0gcmVhc29u
OworICAgIHJlZ2lzdGVyIHVpbnQ2NF90IG1pc2MxR1BSIGFzbShDUkFTSF9HUFIxKSA9IG1pc2Mx
OworICAgIHJlZ2lzdGVyIHVpbnQ2NF90IG1pc2MyR1BSIGFzbShDUkFTSF9HUFIyKSA9IG1pc2My
OworICAgIF9fYXNtX18gdm9sYXRpbGUgKENSQVNIX0lOU1QgOiA6ICJyIihyZWFzb25HUFIpLCAi
ciIobWlzYzFHUFIpLCAiciIobWlzYzJHUFIpKTsKKyAgICBfX2J1aWx0aW5fdW5yZWFjaGFibGUo
KTsKIH0KIAogdm9pZCBXVEZDcmFzaFdpdGhJbmZvKGludCwgY29uc3QgY2hhciosIGNvbnN0IGNo
YXIqLCBpbnQsIHVpbnQ2NF90IHJlYXNvbiwgdWludDY0X3QgbWlzYzEpCiB7Ci0gICAgU1RVRkZf
UkVHSVNURVJfRk9SX0NSQVNIKFNUVUZGX0ZPUl9DUkFTSF9SRUdJU1RFUjEsIHJlYXNvbik7Ci0g
ICAgU1RVRkZfUkVHSVNURVJfRk9SX0NSQVNIKFNUVUZGX0ZPUl9DUkFTSF9SRUdJU1RFUjIsIG1p
c2MxKTsKLSAgICBDUkFTSCgpOworICAgIHJlZ2lzdGVyIHVpbnQ2NF90IHJlYXNvbkdQUiBhc20o
Q1JBU0hfR1BSMCkgPSByZWFzb247CisgICAgcmVnaXN0ZXIgdWludDY0X3QgbWlzYzFHUFIgYXNt
KENSQVNIX0dQUjEpID0gbWlzYzE7CisgICAgX19hc21fXyB2b2xhdGlsZSAoQ1JBU0hfSU5TVCA6
IDogInIiKHJlYXNvbkdQUiksICJyIihtaXNjMUdQUikpOworICAgIF9fYnVpbHRpbl91bnJlYWNo
YWJsZSgpOwogfQogCiB2b2lkIFdURkNyYXNoV2l0aEluZm8oaW50LCBjb25zdCBjaGFyKiwgY29u
c3QgY2hhciosIGludCwgdWludDY0X3QgcmVhc29uKQogewotICAgIFNUVUZGX1JFR0lTVEVSX0ZP
Ul9DUkFTSChTVFVGRl9GT1JfQ1JBU0hfUkVHSVNURVIxLCByZWFzb24pOwotICAgIENSQVNIKCk7
CisgICAgcmVnaXN0ZXIgdWludDY0X3QgcmVhc29uR1BSIGFzbShDUkFTSF9HUFIwKSA9IHJlYXNv
bjsKKyAgICBfX2FzbV9fIHZvbGF0aWxlIChDUkFTSF9JTlNUIDogOiAiciIocmVhc29uR1BSKSk7
CisgICAgX19idWlsdGluX3VucmVhY2hhYmxlKCk7CiB9CiAKIHZvaWQgV1RGQ3Jhc2hXaXRoSW5m
byhpbnQsIGNvbnN0IGNoYXIqLCBjb25zdCBjaGFyKiwgaW50KQogewotICAgIENSQVNIKCk7Cisg
ICAgX19hc21fXyB2b2xhdGlsZSAoQ1JBU0hfSU5TVCA6IDogKTsKKyAgICBfX2J1aWx0aW5fdW5y
ZWFjaGFibGUoKTsKIH0KIAogI2Vsc2UKIAordm9pZCBXVEZDcmFzaFdpdGhJbmZvKGludCwgY29u
c3QgY2hhciosIGNvbnN0IGNoYXIqLCBpbnQsIHVpbnQ2NF90LCB1aW50NjRfdCwgdWludDY0X3Qs
IHVpbnQ2NF90LCB1aW50NjRfdCwgdWludDY0X3QsIHVpbnQ2NF90KSB7IENSQVNIKCk7IH0KK3Zv
aWQgV1RGQ3Jhc2hXaXRoSW5mbyhpbnQsIGNvbnN0IGNoYXIqLCBjb25zdCBjaGFyKiwgaW50LCB1
aW50NjRfdCwgdWludDY0X3QsIHVpbnQ2NF90LCB1aW50NjRfdCwgdWludDY0X3QsIHVpbnQ2NF90
KSB7IENSQVNIKCk7IH0KIHZvaWQgV1RGQ3Jhc2hXaXRoSW5mbyhpbnQsIGNvbnN0IGNoYXIqLCBj
b25zdCBjaGFyKiwgaW50LCB1aW50NjRfdCwgdWludDY0X3QsIHVpbnQ2NF90LCB1aW50NjRfdCwg
dWludDY0X3QpIHsgQ1JBU0goKTsgfQogdm9pZCBXVEZDcmFzaFdpdGhJbmZvKGludCwgY29uc3Qg
Y2hhciosIGNvbnN0IGNoYXIqLCBpbnQsIHVpbnQ2NF90LCB1aW50NjRfdCwgdWludDY0X3QsIHVp
bnQ2NF90KSB7IENSQVNIKCk7IH0KIHZvaWQgV1RGQ3Jhc2hXaXRoSW5mbyhpbnQsIGNvbnN0IGNo
YXIqLCBjb25zdCBjaGFyKiwgaW50LCB1aW50NjRfdCwgdWludDY0X3QsIHVpbnQ2NF90KSB7IENS
QVNIKCk7IH0KSW5kZXg6IFNvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmgJKHJldmlzaW9uIDIzNDMyOCkKKysrIFNvdXJj
ZS9XVEYvd3RmL0Fzc2VydGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtMjg5LDE1ICsyODksMTUg
QEAgV1RGX0VYUE9SVF9QUklWQVRFIE5PX1JFVFVSTl9EVUVfVE9fQ1JBUwogCiAjaWYgQVNTRVJU
X0RJU0FCTEVECiAKLSNkZWZpbmUgQVNTRVJUKGFzc2VydGlvbikgKCh2b2lkKTApCisjZGVmaW5l
IEFTU0VSVChhc3NlcnRpb24sIC4uLikgKCh2b2lkKTApCiAjZGVmaW5lIEFTU0VSVF9VTkRFUl9D
T05TVEVYUFJfQ09OVEVYVChhc3NlcnRpb24pICgodm9pZCkwKQogI2RlZmluZSBBU1NFUlRfQVQo
YXNzZXJ0aW9uLCBmaWxlLCBsaW5lLCBmdW5jdGlvbikgKCh2b2lkKTApCi0jZGVmaW5lIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpICgodm9pZCkwKQorI2RlZmluZSBBU1NFUlRfTk9UX1JFQUNIRUQoLi4u
KSAoKHZvaWQpMCkKICNkZWZpbmUgQVNTRVJUX05PVF9JTVBMRU1FTlRFRF9ZRVQoKSAoKHZvaWQp
MCkKICNkZWZpbmUgQVNTRVJUX0lNUExJRVMoY29uZGl0aW9uLCBhc3NlcnRpb24pICgodm9pZCkw
KQogI2RlZmluZSBOT19SRVRVUk5fRFVFX1RPX0FTU0VSVAogCi0jZGVmaW5lIEFTU0VSVF9VTlVT
RUQodmFyaWFibGUsIGFzc2VydGlvbikgKCh2b2lkKXZhcmlhYmxlKQorI2RlZmluZSBBU1NFUlRf
VU5VU0VEKHZhcmlhYmxlLCBhc3NlcnRpb24sIC4uLikgKCh2b2lkKXZhcmlhYmxlKQogCiAjaWYg
RU5BQkxFKFNFQ1VSSVRZX0FTU0VSVElPTlMpCiAjZGVmaW5lIEFTU0VSVF9XSVRIX1NFQ1VSSVRZ
X0lNUExJQ0FUSU9OKGFzc2VydGlvbikgXApAQCAtMzE0LDEwICszMTQsMTAgQEAgV1RGX0VYUE9S
VF9QUklWQVRFIE5PX1JFVFVSTl9EVUVfVE9fQ1JBUwogCiAjZWxzZQogCi0jZGVmaW5lIEFTU0VS
VChhc3NlcnRpb24pIGRvIHsgXAorI2RlZmluZSBBU1NFUlQoYXNzZXJ0aW9uLCAuLi4pIGRvIHsg
XAogICAgIGlmICghKGFzc2VydGlvbikpIHsgXAogICAgICAgICBXVEZSZXBvcnRBc3NlcnRpb25G
YWlsdXJlKF9fRklMRV9fLCBfX0xJTkVfXywgV1RGX1BSRVRUWV9GVU5DVElPTiwgI2Fzc2VydGlv
bik7IFwKLSAgICAgICAgQ1JBU0goKTsgXAorICAgICAgICBDUkFTSF9XSVRIX0lORk8oX19WQV9B
UkdTX18pOyBcCiAgICAgfSBcCiB9IHdoaWxlICgwKQogCkBAIC0zMzUsOSArMzM1LDkgQEAgV1RG
X0VYUE9SVF9QUklWQVRFIE5PX1JFVFVSTl9EVUVfVE9fQ1JBUwogICAgIH0gXAogfSB3aGlsZSAo
MCkKIAotI2RlZmluZSBBU1NFUlRfTk9UX1JFQUNIRUQoKSBkbyB7IFwKKyNkZWZpbmUgQVNTRVJU
X05PVF9SRUFDSEVEKC4uLikgZG8geyBcCiAgICAgV1RGUmVwb3J0QXNzZXJ0aW9uRmFpbHVyZShf
X0ZJTEVfXywgX19MSU5FX18sIFdURl9QUkVUVFlfRlVOQ1RJT04sIDApOyBcCi0gICAgQ1JBU0go
KTsgXAorICAgIENSQVNIX1dJVEhfSU5GTyhfX1ZBX0FSR1NfXyk7IFwKIH0gd2hpbGUgKDApCiAK
ICNkZWZpbmUgQVNTRVJUX05PVF9JTVBMRU1FTlRFRF9ZRVQoKSBkbyB7IFwKQEAgLTM1Miw3ICsz
NTIsNyBAQCBXVEZfRVhQT1JUX1BSSVZBVEUgTk9fUkVUVVJOX0RVRV9UT19DUkFTCiAgICAgfSBc
CiB9IHdoaWxlICgwKQogCi0jZGVmaW5lIEFTU0VSVF9VTlVTRUQodmFyaWFibGUsIGFzc2VydGlv
bikgQVNTRVJUKGFzc2VydGlvbikKKyNkZWZpbmUgQVNTRVJUX1VOVVNFRCh2YXJpYWJsZSwgYXNz
ZXJ0aW9uLCAuLi4pIEFTU0VSVChhc3NlcnRpb24sIF9fVkFfQVJHU19fKQogCiAjZGVmaW5lIE5P
X1JFVFVSTl9EVUVfVE9fQVNTRVJUIE5PX1JFVFVSTl9EVUVfVE9fQ1JBU0gKIApAQCAtNTEwLDQy
ICs1MTAsMjYgQEAgV1RGX0VYUE9SVF9QUklWQVRFIE5PX1JFVFVSTl9EVUVfVE9fQ1JBUwogLyog
UkVMRUFTRV9BU1NFUlQgKi8KIAogI2lmIEFTU0VSVF9ESVNBQkxFRAotI2RlZmluZSBSRUxFQVNF
X0FTU0VSVChhc3NlcnRpb24pIGRvIHsgXAorI2RlZmluZSBSRUxFQVNFX0FTU0VSVChhc3NlcnRp
b24sIC4uLikgZG8geyBcCiAgICAgaWYgKFVOTElLRUxZKCEoYXNzZXJ0aW9uKSkpIFwKLSAgICAg
ICAgQ1JBU0goKTsgXAorICAgICAgICBDUkFTSF9XSVRIX0lORk8oX19WQV9BUkdTX18pOyBcCiB9
IHdoaWxlICgwKQogI2RlZmluZSBSRUxFQVNFX0FTU0VSVF9XSVRIX01FU1NBR0UoYXNzZXJ0aW9u
LCAuLi4pIFJFTEVBU0VfQVNTRVJUKGFzc2VydGlvbikKICNkZWZpbmUgUkVMRUFTRV9BU1NFUlRf
V0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihhc3NlcnRpb24pIFJFTEVBU0VfQVNTRVJUKGFzc2Vy
dGlvbikKLSNkZWZpbmUgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKSBDUkFTSCgpCisjZGVm
aW5lIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKC4uLikgQ1JBU0hfV0lUSF9JTkZPKF9fVkFf
QVJHU19fKQogI2Vsc2UKLSNkZWZpbmUgUkVMRUFTRV9BU1NFUlQoYXNzZXJ0aW9uKSBBU1NFUlQo
YXNzZXJ0aW9uKQorI2RlZmluZSBSRUxFQVNFX0FTU0VSVChhc3NlcnRpb24sIC4uLikgQVNTRVJU
KGFzc2VydGlvbiwgX19WQV9BUkdTX18pCiAjZGVmaW5lIFJFTEVBU0VfQVNTRVJUX1dJVEhfTUVT
U0FHRShhc3NlcnRpb24sIC4uLikgQVNTRVJUX1dJVEhfTUVTU0FHRShhc3NlcnRpb24sIF9fVkFf
QVJHU19fKQogI2RlZmluZSBSRUxFQVNFX0FTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9O
KGFzc2VydGlvbikgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oYXNzZXJ0aW9uKQog
I2RlZmluZSBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
CiAjZW5kaWYKIAotLyogVU5SRUFDSEFCTEVfRk9SX1BMQVRGT1JNICovCi0KLSNpZiBDT01QSUxF
UihDTEFORykKLS8vIFRoaXMgd291bGQgYmUgYSBtYWNybyBleGNlcHQgdGhhdCBpdHMgdXNlIG9m
ICNwcmFnbWEgd29ya3MgYmVzdCBhcm91bmQKLS8vIGEgZnVuY3Rpb24uIEhlbmNlIGl0IHVzZXMg
bWFjcm8gbmFtaW5nIGNvbnZlbnRpb24uCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XbWlzc2luZy1ub3JldHVybiIKLXN0
YXRpYyBpbmxpbmUgdm9pZCBVTlJFQUNIQUJMRV9GT1JfUExBVEZPUk0oKQotewotICAgIC8vIFRo
aXMgKk1VU1QqIGJlIGEgcmVsZWFzZSBhc3NlcnQuIFdlIHVzZSBpdCBpbiBwbGFjZXMgd2hlcmUg
aXQncyBiZXR0ZXIgdG8gY3Jhc2ggdGhhbiB0byBrZWVwCi0gICAgLy8gZ29pbmcuCi0gICAgUkVM
RUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLX0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKLSNlbHNlCi0jZGVmaW5lIFVOUkVBQ0hBQkxFX0ZPUl9QTEFURk9STSgpIFJFTEVBU0VfQVNT
RVJUX05PVF9SRUFDSEVEKCkKLSNlbmRpZgotCiAjaWZkZWYgX19jcGx1c3BsdXMKIAogLy8gVGhl
IGNvbWJpbmF0aW9uIG9mIGxpbmUsIGZpbGUsIGZ1bmN0aW9uLCBhbmQgY291bnRlciBzaG91bGQg
YmUgYSB1bmlxdWUgbnVtYmVyIHBlciBjYWxsIHRvIHRoaXMgY3Jhc2guIFRoaXMgdHJpY2tzIHRo
ZSBjb21waWxlciBpbnRvIG5vdCBjb2FsZXNjaW5nIGNhbGxzIHRvIFdURkNyYXNoV2l0aEluZm8u
CiAvLyBUaGUgZWFzaWVzdCB3YXkgdG8gZmlsbCB0aGVzZSB2YWx1ZXMgcGVyIHRyYW5zbGF0aW9u
IHVuaXQgaXMgdG8gcGFzcyBfX0xJTkVfXywgX19GSUxFX18sIFdURl9QUkVUVFlfRlVOQ1RJT04s
IGFuZCBfX0NPVU5URVJfXy4KK1dURl9FWFBPUlRfUFJJVkFURSBOT19SRVRVUk5fRFVFX1RPX0NS
QVNIIE5PVF9UQUlMX0NBTExFRCB2b2lkIFdURkNyYXNoV2l0aEluZm8oaW50IGxpbmUsIGNvbnN0
IGNoYXIqIGZpbGUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uLCBpbnQgY291bnRlciwgdWludDY0X3Qg
cmVhc29uLCB1aW50NjRfdCBtaXNjMSwgdWludDY0X3QgbWlzYzIsIHVpbnQ2NF90IG1pc2MzLCB1
aW50NjRfdCBtaXNjNCwgdWludDY0X3QgbWlzYzUsIHVpbnQ2NF90IG1pc2M2KTsKK1dURl9FWFBP
UlRfUFJJVkFURSBOT19SRVRVUk5fRFVFX1RPX0NSQVNIIE5PVF9UQUlMX0NBTExFRCB2b2lkIFdU
RkNyYXNoV2l0aEluZm8oaW50IGxpbmUsIGNvbnN0IGNoYXIqIGZpbGUsIGNvbnN0IGNoYXIqIGZ1
bmN0aW9uLCBpbnQgY291bnRlciwgdWludDY0X3QgcmVhc29uLCB1aW50NjRfdCBtaXNjMSwgdWlu
dDY0X3QgbWlzYzIsIHVpbnQ2NF90IG1pc2MzLCB1aW50NjRfdCBtaXNjNCwgdWludDY0X3QgbWlz
YzUpOwogV1RGX0VYUE9SVF9QUklWQVRFIE5PX1JFVFVSTl9EVUVfVE9fQ1JBU0ggTk9UX1RBSUxf
Q0FMTEVEIHZvaWQgV1RGQ3Jhc2hXaXRoSW5mbyhpbnQgbGluZSwgY29uc3QgY2hhciogZmlsZSwg
Y29uc3QgY2hhciogZnVuY3Rpb24sIGludCBjb3VudGVyLCB1aW50NjRfdCByZWFzb24sIHVpbnQ2
NF90IG1pc2MxLCB1aW50NjRfdCBtaXNjMiwgdWludDY0X3QgbWlzYzMsIHVpbnQ2NF90IG1pc2M0
KTsKIFdURl9FWFBPUlRfUFJJVkFURSBOT19SRVRVUk5fRFVFX1RPX0NSQVNIIE5PVF9UQUlMX0NB
TExFRCB2b2lkIFdURkNyYXNoV2l0aEluZm8oaW50IGxpbmUsIGNvbnN0IGNoYXIqIGZpbGUsIGNv
bnN0IGNoYXIqIGZ1bmN0aW9uLCBpbnQgY291bnRlciwgdWludDY0X3QgcmVhc29uLCB1aW50NjRf
dCBtaXNjMSwgdWludDY0X3QgbWlzYzIsIHVpbnQ2NF90IG1pc2MzKTsKIFdURl9FWFBPUlRfUFJJ
VkFURSBOT19SRVRVUk5fRFVFX1RPX0NSQVNIIE5PVF9UQUlMX0NBTExFRCB2b2lkIFdURkNyYXNo
V2l0aEluZm8oaW50IGxpbmUsIGNvbnN0IGNoYXIqIGZpbGUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9u
LCBpbnQgY291bnRlciwgdWludDY0X3QgcmVhc29uLCB1aW50NjRfdCBtaXNjMSwgdWludDY0X3Qg
bWlzYzIpOwpAQCAtNTkyLDYgKzU3NiwzMCBAQCBpbmxpbmUgdm9pZCBjb21waWxlckZlbmNlRm9y
Q3Jhc2goKQogI2RlZmluZSBDUkFTSF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OX0FORF9JTkZP
IENSQVNIX1dJVEhfSU5GTwogI2VuZGlmIC8vIENSQVNIX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJ
T05fQU5EX0lORk8KIAotI2VuZGlmIC8vIF9fY3BsdXNwbHVzCisjZWxzZSAvKiBub3QgX19jcGx1
c3BsdXMgKi8KKworI2lmbmRlZiBDUkFTSF9XSVRIX0lORk8KKyNkZWZpbmUgQ1JBU0hfV0lUSF9J
TkZPKCkgQ1JBU0goKQorI2VuZGlmCisKKyNlbmRpZiAvKiBfX2NwbHVzcGx1cyAqLworCisvKiBV
TlJFQUNIQUJMRV9GT1JfUExBVEZPUk0gKi8KKworI2lmIENPTVBJTEVSKENMQU5HKQorLy8gVGhp
cyB3b3VsZCBiZSBhIG1hY3JvIGV4Y2VwdCB0aGF0IGl0cyB1c2Ugb2YgI3ByYWdtYSB3b3JrcyBi
ZXN0IGFyb3VuZAorLy8gYSBmdW5jdGlvbi4gSGVuY2UgaXQgdXNlcyBtYWNybyBuYW1pbmcgY29u
dmVudGlvbi4KKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCisjcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdtaXNzaW5nLW5vcmV0dXJuIgorc3RhdGljIGlubGluZSB2b2lk
IFVOUkVBQ0hBQkxFX0ZPUl9QTEFURk9STSgpCit7CisgICAgLy8gVGhpcyAqTVVTVCogYmUgYSBy
ZWxlYXNlIGFzc2VydC4gV2UgdXNlIGl0IGluIHBsYWNlcyB3aGVyZSBpdCdzIGJldHRlciB0byBj
cmFzaCB0aGFuIHRvIGtlZXAKKyAgICAvLyBnb2luZy4KKyAgICBSRUxFQVNFX0FTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworfQorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorI2Vsc2UKKyNkZWZp
bmUgVU5SRUFDSEFCTEVfRk9SX1BMQVRGT1JNKCkgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQo
KQorI2VuZGlmCiAKICNlbmRpZiAvKiBXVEZfQXNzZXJ0aW9uc19oICovCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>