<?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>136035</bug_id>
          
          <creation_ts>2014-08-17 23:25:23 -0700</creation_ts>
          <short_desc>Use NSURLFileTypeMappings directly instead of depending on WebKitSystemInterface wrappers for it</short_desc>
          <delta_ts>2014-08-19 01:37:28 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Maciej Stachowiak">mjs</reporter>
          <assigned_to name="Maciej Stachowiak">mjs</assigned_to>
          <cc>aestes</cc>
    
    <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>mitz</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1029708</commentid>
    <comment_count>0</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2014-08-17 23:25:23 -0700</bug_when>
    <thetext>Use NSURLFileTypeMappings directly instead of depending on WebKitSystemInterface wrappers for it</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029724</commentid>
    <comment_count>1</comment_count>
      <attachid>236746</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2014-08-18 00:46:43 -0700</bug_when>
    <thetext>Created attachment 236746
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029738</commentid>
    <comment_count>2</comment_count>
      <attachid>236751</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2014-08-18 02:44:44 -0700</bug_when>
    <thetext>Created attachment 236751
Attempt #2

Try again to see if this actually builds without internal headers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029834</commentid>
    <comment_count>3</comment_count>
      <attachid>236777</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2014-08-18 13:10:07 -0700</bug_when>
    <thetext>Created attachment 236777
Attempt #3

Trying yet another version (can&apos;t easily test locally because precompiled headers).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029904</commentid>
    <comment_count>4</comment_count>
      <attachid>236777</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2014-08-18 15:41:27 -0700</bug_when>
    <thetext>Comment on attachment 236777
Attempt #3

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

&gt; Source/WebCore/platform/spi/cocoa/NSURLFileTypeMappings.h:27
&gt; +#ifndef NSURLFileTypeMappings_h
&gt; +#define NSURLFileTypeMappings_h

It seems a bit sketchy to define NS-prefixed macros.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029939</commentid>
    <comment_count>5</comment_count>
      <attachid>236797</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2014-08-18 21:28:18 -0700</bug_when>
    <thetext>Created attachment 236797
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029956</commentid>
    <comment_count>6</comment_count>
      <attachid>236801</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2014-08-18 22:35:10 -0700</bug_when>
    <thetext>Created attachment 236801
New version to avoid breaking non-clang platforms</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029957</commentid>
    <comment_count>7</comment_count>
      <attachid>236797</attachid>
    <who name="">mitz</who>
    <bug_when>2014-08-18 22:44:43 -0700</bug_when>
    <thetext>Comment on attachment 236797
Patch

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

&gt; Source/WTF/wtf/Platform.h:1046
&gt; +#if PLATFORM(COCOA) &amp;&amp;  defined __has_include &amp;&amp; __has_include(&lt;CoreFoundation/CFPriv.h&gt;)

Extra space after the &amp;&amp;. I see that sometimes we use parentheses after the &apos;defined&apos; keyword and sometimes we don’t.

I wonder if instead of checking for the presence of a specific header we shouldn’t be using something that’s directly tied to how our configuration files define SDKROOT, but this seems fine for now.

&gt; Source/WebCore/platform/ios/MIMETypeRegistryIOS.mm:36
&gt;      return wkGetMIMETypeForExtension(ext);
&gt; +    return [[NSURLFileTypeMappings sharedMappings] MIMETypeForExtension:(NSString *)ext];

You forgot to delete the first return statement!

&gt; Source/WebCore/platform/mac/MIMETypeRegistryMac.mm:37
&gt; +String MIMETypeRegistry::getMIMETypeForExtension(const String&amp; ext)

Good opportunity to rename the parameter to “extension”.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029959</commentid>
    <comment_count>8</comment_count>
      <attachid>236801</attachid>
    <who name="">mitz</who>
    <bug_when>2014-08-18 22:53:48 -0700</bug_when>
    <thetext>Comment on attachment 236801
New version to avoid breaking non-clang platforms

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

r=me assuming you fix MIMETypeRegistryIOS.mm prior to landing.

&gt; Source/WebCore/platform/ios/MIMETypeRegistryIOS.mm:35
&gt;      return wkGetMIMETypeForExtension(ext);

Need to delete this!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029979</commentid>
    <comment_count>9</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2014-08-19 00:43:17 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 236801 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=236801&amp;action=review
&gt; 
&gt; r=me assuming you fix MIMETypeRegistryIOS.mm prior to landing.

I fixed it and confirmed it builds on iOS now.

&gt; 
&gt; &gt; Source/WebCore/platform/ios/MIMETypeRegistryIOS.mm:35
&gt; &gt;      return wkGetMIMETypeForExtension(ext);
&gt; 
&gt; Need to delete this!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029983</commentid>
    <comment_count>10</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2014-08-19 01:37:28 -0700</bug_when>
    <thetext>Committed r172749: &lt;http://trac.webkit.org/changeset/172749&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236746</attachid>
            <date>2014-08-18 00:46:43 -0700</date>
            <delta_ts>2014-08-18 02:44:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136035-20140818004634.patch</filename>
            <type>text/plain</type>
            <size>24194</size>
            <attacher name="Maciej Stachowiak">mjs</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3MjY5OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDE0LTA4LTE3ICBNYWNpZWog
U3RhY2hvd2lhayAgPG1qc0BhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIE5TVVJMRmlsZVR5cGVN
YXBwaW5ncyBkaXJlY3RseSBpbnN0ZWFkIG9mIGRlcGVuZGluZyBvbiBXZWJLaXRTeXN0ZW1JbnRl
cmZhY2Ugd3JhcHBlcnMgZm9yIGl0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMzYwMzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOiBSZW1vdmUgcmVmZXJlbmNlIHRvIG5vIGxv
bmdlciBleGlzdGVudCBzdW1ib2xzLgorICAgICAgICAqIFdlYkNvcmUub3JkZXI6IGRpdHRvCisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBJbnN0YWxsIG5ldyBO
U1VSTEZpbGVUeWVNYXBwaW5ncy5oIGhlYWRlci4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvTUlN
RVR5cGVSZWdpc3RyeUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1JTUVUeXBlUmVnaXN0cnk6
OmdldE1JTUVUeXBlRm9yRXh0ZW5zaW9uKTogVXNlIE5TVVJMRmlsZVR5cGVNYXBwaW5ncworICAg
ICAgICBkaXJlY3RseSBpbnN0ZWFkIG9mIHZpYSBXS1NJIHdyYXBwZXIuCisgICAgICAgICogcGxh
dGZvcm0vbWFjL01JTUVUeXBlUmVnaXN0cnlNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpNSU1F
VHlwZVJlZ2lzdHJ5OjpnZXRNSU1FVHlwZUZvckV4dGVuc2lvbik6IGRpdHRvCisgICAgICAgIChX
ZWJDb3JlOjpNSU1FVHlwZVJlZ2lzdHJ5OjpnZXRFeHRlbnNpb25zRm9yTUlNRVR5cGUpOiBkaXR0
bworICAgICAgICAoV2ViQ29yZTo6TUlNRVR5cGVSZWdpc3RyeTo6Z2V0UHJlZmVycmVkRXh0ZW5z
aW9uRm9yTUlNRVR5cGUpOiBkaXR0bworICAgICAgICAqIHBsYXRmb3JtL21hYy9XZWJDb3JlU3lz
dGVtSW50ZXJmYWNlLmg6IFJlbW92ZSByZWZlcmVuY2VzIHRvIHRoZSBuby1sb25nZXItdXNlZAor
ICAgICAgICBXS0dldEV4dGVuc2lvbnNGb3JNSU1FVHlwZSwgV0tHZXRQcmVmZXJyZWRFeHRlbnNp
b25Gb3JNSU1FVHlwZSwgb3IgV0tHZXRNSU1FVHlwZUZvckV4dGVuc2lvbgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tOiBkaXR0bworICAgICAgICAqIHBs
YXRmb3JtL3NwaTogQWRkZWQuIFRoaXMgaXMgd2hlcmUgaGVhZGVycyB0byBkZWNsYXJlIFNQSSBn
by4KKyAgICAgICAgKiBwbGF0Zm9ybS9zcGkvY29jb2E6IEFkZGVkLiBTZWUgYWJvdmUuCisgICAg
ICAgICogcGxhdGZvcm0vc3BpL2NvY29hL05TVVJMRmlsZVR5cGVNYXBwaW5ncy5oOiBBZGRlZC4g
SGVhZGVyIHRvIGRlY2xhcmUKKyAgICAgICAgdGhlIGludGVybmFsIGNsYXNzIE5TVVJMRmlsZVR5
cGVNYXBwaW5ncyBhbmQgc29tZSBvZiBpdHMgbWV0aG9kcy4KKwogMjAxNC0wOC0xNSAgQW5keSBF
c3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjE2Nzg1Nik6
IGFkb2JlLmNvbSBubyBsb25nZXIgYWJsZSB0byBsYXVuY2ggQ3JlYXRlIENsb3VkIGFwcCB1c2lu
ZyBhIFVSTCB3aXRoIGEgY3VzdG9tIHNjaGVtZQpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4JKHJl
dmlzaW9uIDE3MjY5MSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCSh3b3JraW5n
IGNvcHkpCkBAIC0yMTA2LDcgKzIxMDYsNiBAQCBfd2tHZXRDRlVSTFJlc3BvbnNlTUlNRVR5cGUK
IF93a0dldENGVVJMUmVzcG9uc2VVUkwKIF93a0dldEhUVFBDb29raWVBY2NlcHRQb2xpY3kKIF93
a0dldEhUVFBSZXF1ZXN0UHJpb3JpdHkKLV93a0dldE1JTUVUeXBlRm9yRXh0ZW5zaW9uCiBfd2tH
ZXROU1VSTFJlc3BvbnNlTGFzdE1vZGlmaWVkRGF0ZQogX3drR2V0VXNlclRvQmFzZUNUTQogX3dr
R2V0V2ViRGVmYXVsdENGU3RyaW5nRW5jb2RpbmcKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUub3JkZXIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgkocmV2
aXNpb24gMTcyNjkxKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgkod29ya2luZyBj
b3B5KQpAQCAtMzA2MDksNyArMzA2MDksNiBAQCBfd2tNZWRpYUNvbnRyb2xsZXJUaGVtZUF2YWls
YWJsZQogX3drR2V0UHJlZmVycmVkRXh0ZW5zaW9uRm9yTUlNRVR5cGUKIF93a1NpZ25lZFB1Ymxp
Y0tleUFuZENoYWxsZW5nZVN0cmluZwogX3drR2V0RXh0ZW5zaW9uc0Zvck1JTUVUeXBlCi1fd2tH
ZXRNSU1FVHlwZUZvckV4dGVuc2lvbgogX3drR2V0TlNVUkxSZXNwb25zZUxhc3RNb2RpZmllZERh
dGUKIF93a0dldFdoZWVsRXZlbnREZWx0YXMKIF93a0dldE5TRXZlbnRLZXlDaGFyCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShy
ZXZpc2lvbiAxNzI2OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTIxNzcsNiArMjE3Nyw3IEBACiAJCTY1NzFE
Q0M4MTM4NUU2QTQwMDcwMkREMCAvKiBNZW1vcnlQcmVzc3VyZUhhbmRsZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1N0VEQTA3MTM4NUNCOTcwMDRF
MDY0NSAvKiBNZW1vcnlQcmVzc3VyZUhhbmRsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2NTdFREEwODEzODVDQjk3MDA0RTA2NDUgLyogTWVt
b3J5UHJlc3N1cmVIYW5kbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDY1N0VEQTA2MTM4NUNCOTcwMDRFMDY0NSAvKiBNZW1vcnlQcmVzc3VyZUhh
bmRsZXIuY3BwICovOyB9OwogCQk2NTg0MzY4NjBBRTAxQjc0MDBFNTM3NTMgLyogRnJhbWVMb2Fk
UmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NjU4NDM2ODUwQUUwMUI3NDAwRTUzNzUzIC8qIEZyYW1lTG9hZFJlcXVlc3QuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk2NThGNTQwMzE5QTFDOTI0
MDA4OEZDOTIgLyogTlNVUkxGaWxlVHlwZU1hcHBpbmdzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTNFRjgzODE5QTA0M0FFMDA1MjIwMkMgLyogTlNV
UkxGaWxlVHlwZU1hcHBpbmdzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJNjU5MzkyMzcwOUFFNDM0NjAwMkM1MzFGIC8qIFVSTC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTkzOTIzNTA5QUU0MzQ2
MDAyQzUzMUYgLyogVVJMLmNwcCAqLzsgfTsKIAkJNjU5MzkyMzgwOUFFNDM0NjAwMkM1MzFGIC8q
IFVSTC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU5
MzkyMzYwOUFFNDM0NjAwMkM1MzFGIC8qIFVSTC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTY1OTM5MjNBMDlBRTQzNUMwMDJDNTMxRiAvKiBVUkxN
YWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTkz
OTIzOTA5QUU0MzVDMDAyQzUzMUYgLyogVVJMTWFjLm1tICovOyB9OwpAQCAtOTI3MSw2ICs5Mjcy
LDcgQEAKIAkJNjUxNUVDOEYwRDk3MjNGRjAwNjNENDlBIC8qIEpTU1ZHQWx0R2x5cGhFbGVtZW50
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU1ZHQWx0R2x5cGhF
bGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjUxNUVDOTAwRDk3MjNG
RjAwNjNENDlBIC8qIEpTU1ZHQWx0R2x5cGhFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTU1ZHQWx0R2x5cGhFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTY1MkZCQkJCMERFMjdDQjYwMDAxRDM4NiAvKiBKU0RPTVdpbmRvd0N1c3RvbS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RPTVdpbmRvd0N1c3RvbS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2NTNFRjgzODE5QTA0M0FFMDA1MjIwMkMgLyog
TlNVUkxGaWxlVHlwZU1hcHBpbmdzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE5TVVJMRmlsZVR5cGVNYXBwaW5ncy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2
NTQ4RTI0ODA5RTFFMDREMDBBRjgwMjAgLyogRG9jdW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBEb2N1bWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1NTBC
NjkzMDk5REYwMjcwMDkwRDc4MSAvKiBDREFUQVNlY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENEQVRBU2VjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTY1NTBCNjk0MDk5REYwMjcwMDkwRDc4MSAvKiBDREFUQVNlY3Rpb24uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENEQVRBU2VjdGlvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTYyMTYsNiArMTYyMTgsMjIgQEAKIAkJCXBhdGggPSBw
bHVnaW5zOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJNjUzRUY4MzYxOUEw
NDNBRTAwNTIyMDJDIC8qIHNwaSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRy
ZW4gPSAoCisJCQkJNjUzRUY4MzcxOUEwNDNBRTAwNTIyMDJDIC8qIGNvY29hICovLAorCQkJKTsK
KwkJCXBhdGggPSBzcGk7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQk2NTNF
RjgzNzE5QTA0M0FFMDA1MjIwMkMgLyogY29jb2EgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsK
KwkJCWNoaWxkcmVuID0gKAorCQkJCTY1M0VGODM4MTlBMDQzQUUwMDUyMjAyQyAvKiBOU1VSTEZp
bGVUeXBlTWFwcGluZ3MuaCAqLywKKwkJCSk7CisJCQlwYXRoID0gY29jb2E7CisJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOworCQl9OwogCQk2NTY1ODBFQzA5RDEyQjIwMDAwRTYxRDcgLyogRGVy
aXZlZCBTb3VyY2VzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgK
QEAgLTIxMjk0LDYgKzIxMzEyLDcgQEAKIAkJCQk2NTZCODRENzBBRUExQ0U5MDBBMDk1QjQgLyog
bmV0d29yayAqLywKIAkJCQk1MTYwMzAwOTBDQzQyNDU0MDBDOEFDMjUgLyogcG9zaXggKi8sCiAJ
CQkJMUEyRTZFNTYwQ0M1NTFFMDAwNEEyMDYyIC8qIHNxbCAqLywKKwkJCQk2NTNFRjgzNjE5QTA0
M0FFMDA1MjIwMkMgLyogc3BpICovLAogCQkJCUIyQzNEOUVDMEQwMDZDMUQwMEVGNkYyNiAvKiB0
ZXh0ICovLAogCQkJCTQ5QUUyRDk0MTM0RUU1RjkwMDcyOTIwQSAvKiBDYWxjdWxhdGlvblZhbHVl
LmNwcCAqLywKIAkJCQk0OUFFMkQ5NTEzNEVFNUY5MDA3MjkyMEEgLyogQ2FsY3VsYXRpb25WYWx1
ZS5oICovLApAQCAtMjUyNzYsNiArMjUyOTUsNyBAQAogCQkJCUY1OTczREUwMTVDRkIyMDMwMDI3
RjgwNCAvKiBMb2NhbGVNYWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTc2MzNBNzI2MTNEOEIzM0Ew
MDg1MDFCNiAvKiBMb2NhbGVUb1NjcmlwdE1hcHBpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1
MTZFOEI3MTM2RTA0REIwMDc2QzNDMCAvKiBMb2NhbGl6ZWREYXRlQ2FjaGUuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTY1OEY1NDAzMTlBMUM5MjQwMDg4RkM5MiAvKiBOU1VSTEZpbGVUeXBlTWFwcGlu
Z3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNTIwN0JFMDlCRDQxMEEwMEYyMDM4RCAvKiBMb2Nh
bGl6ZWRTdHJpbmdzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0UxQzQxQjBEOTgyOTgwMDAzQjAy
RjIgLyogTG9jYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MjM5RTAxMDlCM0NGOEEwMEI2
MDY0MSAvKiBMb2dnaW5nLmggaW4gSGVhZGVycyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9NSU1FVHlwZVJlZ2lzdHJ5SU9TLm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9NSU1FVHlwZVJlZ2lzdHJ5SU9TLm1tCShyZXZpc2lvbiAxNzI2
OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTUlNRVR5cGVSZWdpc3RyeUlPUy5t
bQkod29ya2luZyBjb3B5KQpAQCAtMjYsMTMgKzI2LDE0IEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgogCi0jaW5jbHVkZSAiV2ViQ29yZVN5c3Rl
bUludGVyZmFjZS5oIgorI2luY2x1ZGUgIk5TVVJMRmlsZVR5cGVNYXBwaW5ncy5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSAKIHsKIFN0cmluZyBNSU1FVHlwZVJlZ2lzdHJ5OjpnZXRNSU1FVHlwZUZv
ckV4dGVuc2lvbihjb25zdCBTdHJpbmcgJmV4dCkKIHsKICAgICByZXR1cm4gd2tHZXRNSU1FVHlw
ZUZvckV4dGVuc2lvbihleHQpOworICAgIHJldHVybiBbW05TVVJMRmlsZVR5cGVNYXBwaW5ncyBz
aGFyZWRNYXBwaW5nc10gTUlNRVR5cGVGb3JFeHRlbnNpb246KE5TU3RyaW5nICopZXh0XTsKIH0K
IAogVmVjdG9yPFN0cmluZz4gTUlNRVR5cGVSZWdpc3RyeTo6Z2V0RXh0ZW5zaW9uc0Zvck1JTUVU
eXBlKGNvbnN0IFN0cmluZyYgLyp0eXBlKi8pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvTUlNRVR5cGVSZWdpc3RyeU1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvTUlNRVR5cGVSZWdpc3RyeU1hYy5tbQkocmV2aXNpb24gMTcyNjkxKQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL01JTUVUeXBlUmVnaXN0cnlNYWMubW0JKHdv
cmtpbmcgY29weSkKQEAgLTI3LDIyICsyNywyMiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKIAotI2luY2x1ZGUgIldlYkNvcmVTeXN0ZW1JbnRl
cmZhY2UuaCIKKyNpbmNsdWRlICJOU1VSTEZpbGVUeXBlTWFwcGluZ3MuaCIKICNpbmNsdWRlIDx3
dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIAogewogCi1TdHJpbmcgTUlNRVR5cGVSZWdpc3RyeTo6Z2V0TUlNRVR5cGVGb3JF
eHRlbnNpb24oY29uc3QgU3RyaW5nICZleHQpCitTdHJpbmcgTUlNRVR5cGVSZWdpc3RyeTo6Z2V0
TUlNRVR5cGVGb3JFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBleHQpCiB7CiAgICAgQVNTRVJUKGlz
TWFpblRocmVhZCgpKTsKLSAgICByZXR1cm4gd2tHZXRNSU1FVHlwZUZvckV4dGVuc2lvbihleHQp
OworICAgIHJldHVybiBbW05TVVJMRmlsZVR5cGVNYXBwaW5ncyBzaGFyZWRNYXBwaW5nc10gTUlN
RVR5cGVGb3JFeHRlbnNpb246KE5TU3RyaW5nICopZXh0XTsKIH0KIAogVmVjdG9yPFN0cmluZz4g
TUlNRVR5cGVSZWdpc3RyeTo6Z2V0RXh0ZW5zaW9uc0Zvck1JTUVUeXBlKGNvbnN0IFN0cmluZyYg
dHlwZSkKIHsKLSAgICBOU0FycmF5ICpzdHJpbmdzQXJyYXkgPSB3a0dldEV4dGVuc2lvbnNGb3JN
SU1FVHlwZSh0eXBlKTsKKyAgICBOU0FycmF5ICpzdHJpbmdzQXJyYXkgPSBbW05TVVJMRmlsZVR5
cGVNYXBwaW5ncyBzaGFyZWRNYXBwaW5nc10gZXh0ZW5zaW9uc0Zvck1JTUVUeXBlOihOU1N0cmlu
ZyAqKXR5cGVdOwogICAgIFZlY3RvcjxTdHJpbmc+IHN0cmluZ3NWZWN0b3IgPSBWZWN0b3I8U3Ry
aW5nPigpOwogICAgIHVuc2lnbmVkIGNvdW50ID0gW3N0cmluZ3NBcnJheSBjb3VudF07CiAgICAg
aWYgKGNvdW50ID4gMCkgewpAQCAtNTYsNyArNTYsNyBAQCBWZWN0b3I8U3RyaW5nPiBNSU1FVHlw
ZVJlZ2lzdHJ5OjpnZXRFeHRlCiAKIFN0cmluZyBNSU1FVHlwZVJlZ2lzdHJ5OjpnZXRQcmVmZXJy
ZWRFeHRlbnNpb25Gb3JNSU1FVHlwZShjb25zdCBTdHJpbmcmIHR5cGUpCiB7Ci0gICAgcmV0dXJu
IHdrR2V0UHJlZmVycmVkRXh0ZW5zaW9uRm9yTUlNRVR5cGUodHlwZSk7CisgICAgcmV0dXJuIFtb
TlNVUkxGaWxlVHlwZU1hcHBpbmdzIHNoYXJlZE1hcHBpbmdzXSBwcmVmZXJyZWRFeHRlbnNpb25G
b3JNSU1FVHlwZTooTlNTdHJpbmcgKil0eXBlXTsKIH0KIAogYm9vbCBNSU1FVHlwZVJlZ2lzdHJ5
Ojppc0FwcGxpY2F0aW9uUGx1Z2luTUlNRVR5cGUoY29uc3QgU3RyaW5nJiBNSU1FVHlwZSkKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1J
bnRlcmZhY2UuaAkocmV2aXNpb24gMTcyNjkxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaAkod29ya2luZyBjb3B5KQpAQCAtMTcxLDEwICsx
NzEsNyBAQCBleHRlcm4gdm9pZCAoKndrRHJhd01lZGlhU2xpZGVyVHJhY2spKENHCiAgICAgZmxv
YXQgZHVyYXRpb24sIHVuc2lnbmVkIHN0YXRlKTsKIGV4dGVybiB2b2lkICgqd2tEcmF3TWVkaWFV
SVBhcnQpKGludCBwYXJ0LCBDR0NvbnRleHRSZWYgY29udGV4dCwgQ0dSZWN0IHJlY3QsIHVuc2ln
bmVkIHN0YXRlKTsKIGV4dGVybiBDRlN0cmluZ1JlZiAoKndrU2lnbmVkUHVibGljS2V5QW5kQ2hh
bGxlbmdlU3RyaW5nKSh1bnNpZ25lZCBrZXlTaXplLCBDRlN0cmluZ1JlZiBjaGFsbGVuZ2UsIENG
U3RyaW5nUmVmIGtleURlc2NyaXB0aW9uKTsKLWV4dGVybiBOU1N0cmluZyogKCp3a0dldFByZWZl
cnJlZEV4dGVuc2lvbkZvck1JTUVUeXBlKShOU1N0cmluZyopOwotZXh0ZXJuIE5TQXJyYXkqICgq
d2tHZXRFeHRlbnNpb25zRm9yTUlNRVR5cGUpKE5TU3RyaW5nKik7CiAjZW5kaWYKLWV4dGVybiBO
U1N0cmluZyogKCp3a0dldE1JTUVUeXBlRm9yRXh0ZW5zaW9uKShOU1N0cmluZyopOwogI2lmICFQ
TEFURk9STShJT1MpCiBleHRlcm4gQVRTVUZvbnRJRCAoKndrR2V0TlNGb250QVRTVUZvbnRJZCko
TlNGb250Kik7CiBleHRlcm4gZG91YmxlICgqd2tHZXROU1VSTFJlc3BvbnNlQ2FsY3VsYXRlZEV4
cGlyYXRpb24pKE5TVVJMUmVzcG9uc2UgKnJlc3BvbnNlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tCShyZXZp
c2lvbiAxNzI2OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3Rl
bUludGVyZmFjZS5tbQkod29ya2luZyBjb3B5KQpAQCAtNjMsNyArNjMsNiBAQCB2b2lkICgqd2tX
aW5kb3dTZXRTY2FsZWRGcmFtZSkoTlNXaW5kb3cgCiBOU1N0cmluZyogKCp3a0dldFByZWZlcnJl
ZEV4dGVuc2lvbkZvck1JTUVUeXBlKShOU1N0cmluZyopOwogQ0ZTdHJpbmdSZWYgKCp3a1NpZ25l
ZFB1YmxpY0tleUFuZENoYWxsZW5nZVN0cmluZykodW5zaWduZWQga2V5U2l6ZSwgQ0ZTdHJpbmdS
ZWYgY2hhbGxlbmdlLCBDRlN0cmluZ1JlZiBrZXlEZXNjcmlwdGlvbik7CiBOU0FycmF5KiAoKndr
R2V0RXh0ZW5zaW9uc0Zvck1JTUVUeXBlKShOU1N0cmluZyopOwotTlNTdHJpbmcqICgqd2tHZXRN
SU1FVHlwZUZvckV4dGVuc2lvbikoTlNTdHJpbmcqKTsKIE5TVGltZUludGVydmFsICgqd2tHZXRO
U1VSTFJlc3BvbnNlQ2FsY3VsYXRlZEV4cGlyYXRpb24pKE5TVVJMUmVzcG9uc2UgKnJlc3BvbnNl
KTsKIE5TRGF0ZSAqKCp3a0dldE5TVVJMUmVzcG9uc2VMYXN0TW9kaWZpZWREYXRlKShOU1VSTFJl
c3BvbnNlICpyZXNwb25zZSk7CiBCT09MICgqd2tHZXROU1VSTFJlc3BvbnNlTXVzdFJldmFsaWRh
dGUpKE5TVVJMUmVzcG9uc2UgKnJlc3BvbnNlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3NwaS9jb2NvYS9OU1VSTEZpbGVUeXBlTWFwcGluZ3MuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY29jb2EvTlNVUkxGaWxlVHlwZU1hcHBpbmdzLmgJKHJl
dmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY29jb2EvTlNVUkxGaWxl
VHlwZU1hcHBpbmdzLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBOU1VSTEZpbGVU
eXBlTWFwcGluZ3NfaAorI2RlZmluZSBOU1VSTEZpbGVUeXBlTWFwcGluZ3NfaAorCisjaWYgX19o
YXNfaW5jbHVkZSg8Rm91bmRhdGlvbi9OU1VSTEZpbGVUeXBlTWFwcGluZ3MuaD4pCisjaW1wb3J0
IDxGb3VuZGF0aW9uL05TVVJMRmlsZVR5cGVNYXBwaW5ncy5oPgorI2Vsc2UKKworLy8gRklYTUU6
IFdlIHNob3VsZCB1c2UgVVRJIGluc3RlYWQsIGJ1dCBpdCdzIG1pc3Npbmcgc29tZSBtYXBwaW5n
cyB0aGF0IHRoaXMgb2xkIFNQSSBrbm93cy4KKy8vIFJlbW92ZSB0aGVzZSBtZXRob2RzIG9uY2Ug
PHJkYXI6Ly9wcm9ibGVtLzE4MDQyMTg0PiBpcyBmaXhlZC4KK0BpbnRlcmZhY2UgTlNVUkxGaWxl
VHlwZU1hcHBpbmdzIChQcml2YXRlKSAKKysgKE5TVVJMRmlsZVR5cGVNYXBwaW5ncyAqKXNoYXJl
ZE1hcHBpbmdzOworLSAoTlNTdHJpbmcgKilNSU1FVHlwZUZvckV4dGVuc2lvbjooTlNTdHJpbmcg
KilleHQ7CistIChOU1N0cmluZyAqKXByZWZlcnJlZEV4dGVuc2lvbkZvck1JTUVUeXBlOihOU1N0
cmluZyAqKXR5cGU7CistIChOU0FycmF5ICopZXh0ZW5zaW9uc0Zvck1JTUVUeXBlOihOU1N0cmlu
ZyAqKXR5cGU7CitAZW5kCisKKyNlbmRpZgorCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlz
aW9uIDE3MjY5OCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE1IEBACisyMDE0LTA4LTE3ICBNYWNpZWogU3RhY2hvd2lhayAgPG1qc0BhcHBs
ZS5jb20+CisKKyAgICAgICAgVXNlIE5TVVJMRmlsZVR5cGVNYXBwaW5ncyBkaXJlY3RseSBpbnN0
ZWFkIG9mIGRlcGVuZGluZyBvbiBXZWJLaXRTeXN0ZW1JbnRlcmZhY2Ugd3JhcHBlcnMgZm9yIGl0
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzYwMzUK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYlN5c3RlbUludGVyZmFjZS5tbToKKyAgICAgICAg
KEluaXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNlKTogRG9uJ3QgaW5pdGlhbGl6ZSB0aGUgbm8tbG9u
Z2VyLXVzZWQgV0tHZXRFeHRlbnNpb25zRm9yTUlNRVR5cGUsCisgICAgICAgIFdLR2V0UHJlZmVy
cmVkRXh0ZW5zaW9uRm9yTUlNRVR5cGUsIG9yIFdLR2V0TUlNRVR5cGVGb3JFeHRlbnNpb24KKyAg
ICAgICAgKiBtYWMvV2ViS2l0Mi5vcmRlcjogUmVtb3ZlIGV4cG9ydHMgcmVsYXRlZCB0byBhYm92
ZS4KKwogMjAxNC0wOC0xNiAgUHJhdGlrIFNvbGFua2kgIDxwc29sYW5raUBhcHBsZS5jb20+CiAK
ICAgICAgICAgUmVuYW1lIERpc2tDYWNoZU1vbml0b3IgdG8gTmV0d29ya0Rpc2tDYWNoZU1vbml0
b3IKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dl
YlN5c3RlbUludGVyZmFjZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW0JKHJldmlzaW9uIDE3
MjY5MSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dl
YlN5c3RlbUludGVyZmFjZS5tbQkod29ya2luZyBjb3B5KQpAQCAtNjUsNyArNjUsNiBAQCB2b2lk
IEluaXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNlKHZvaWQpCiAgICAgICAgIElOSVQoRHJhd01lZGlh
U2xpZGVyVHJhY2spOwogICAgICAgICBJTklUKERyYXdNZWRpYVVJUGFydCk7CiAgICAgICAgIElO
SVQoRHJhd1RleHRGaWVsZENlbGxGb2N1c1JpbmcpOwotICAgICAgICBJTklUKEdldEV4dGVuc2lv
bnNGb3JNSU1FVHlwZSk7CiAgICAgICAgIElOSVQoR2V0Rm9udEluTGFuZ3VhZ2VGb3JDaGFyYWN0
ZXIpOwogICAgICAgICBJTklUKEdldEZvbnRJbkxhbmd1YWdlRm9yUmFuZ2UpOwogICAgICAgICBJ
TklUKEdldEdseXBoVHJhbnNmb3JtZWRBZHZhbmNlcyk7CkBAIC03MywxMSArNzIsOSBAQCB2b2lk
IEluaXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNlKHZvaWQpCiAjZW5kaWYKICAgICAgICAgSU5JVChH
ZXRWZXJ0aWNhbEdseXBoc0ZvckNoYXJhY3RlcnMpOwogICAgICAgICBJTklUKEdldEhUVFBSZXF1
ZXN0UHJpb3JpdHkpOwotICAgICAgICBJTklUKEdldE1JTUVUeXBlRm9yRXh0ZW5zaW9uKTsKICAg
ICAgICAgSU5JVChHZXROU1VSTFJlc3BvbnNlTGFzdE1vZGlmaWVkRGF0ZSk7CiAjaWYgIVBMQVRG
T1JNKElPUykKICAgICAgICAgSU5JVChTaWduZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmcp
OwotICAgICAgICBJTklUKEdldFByZWZlcnJlZEV4dGVuc2lvbkZvck1JTUVUeXBlKTsKICNlbmRp
ZgogICAgICAgICBJTklUKEdldFVzZXJUb0Jhc2VDVE0pOwogICAgICAgICBJTklUKEdldFdlYkRl
ZmF1bHRDRlN0cmluZ0VuY29kaW5nKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL21hYy9XZWJLaXQy
Lm9yZGVyCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL21hYy9XZWJLaXQyLm9yZGVyCShy
ZXZpc2lvbiAxNzI2OTEpCisrKyBTb3VyY2UvV2ViS2l0Mi9tYWMvV2ViS2l0Mi5vcmRlcgkod29y
a2luZyBjb3B5KQpAQCAtODY2OCw3ICs4NjY4LDYgQEAgX19aTjNXVEY5UmV0YWluUHRySVBLN19f
Q0ZVUkxFYVNFUzNfCiBfV0tCdW5kbGVHYXJiYWdlQ29sbGVjdEphdmFTY3JpcHRPYmplY3RzCiBf
X1pONldlYktpdDE0SW5qZWN0ZWRCdW5kbGUzMWdhcmJhZ2VDb2xsZWN0SmF2YVNjcmlwdE9iamVj
dHNFdgogX19aTks2V2ViS2l0MTVXZWJFZGl0b3JDbGllbnQxMGNhbkNvcHlDdXRFUE43V2ViQ29y
ZTVGcmFtZUViCi1fV0tHZXRFeHRlbnNpb25zRm9yTUlNRVR5cGUKIF9fWk42V2ViS2l0MTVXZWJF
ZGl0b3JDbGllbnQyNXNob3VsZFNob3dEZWxldGVJbnRlcmZhY2VFUE43V2ViQ29yZTExSFRNTEVs
ZW1lbnRFCiBfX1pOSzZXZWJLaXQxNVdlYkVkaXRvckNsaWVudDhjYW5QYXN0ZUVQTjdXZWJDb3Jl
NUZyYW1lRWIKIF9fWk42V2ViS2l0MTVXZWJFZGl0b3JDbGllbnQyMnNldEluc2VydGlvblBhc3Rl
Ym9hcmRFUktOM1dURjZTdHJpbmdFCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNzI2
OTgpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwyOCBAQAorMjAxNC0wOC0xNyAgTWFjaWVqIFN0YWNob3dpYWsgIDxtanNAYXBwbGUuY29t
PgorCisgICAgICAgIFVzZSBOU1VSTEZpbGVUeXBlTWFwcGluZ3MgZGlyZWN0bHkgaW5zdGVhZCBv
ZiBkZXBlbmRpbmcgb24gV2ViS2l0U3lzdGVtSW50ZXJmYWNlIHdyYXBwZXJzIGZvciBpdAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2MDM1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNaXNjL1dlYk5T
Vmlld0V4dHJhcy5tOgorICAgICAgICAoLVtOU1ZpZXcgX3dlYl9EcmFnSW1hZ2VGb3JFbGVtZW50
OnJlY3Q6ZXZlbnQ6cGFzdGVib2FyZDpzb3VyY2U6b2Zmc2V0Ol0pOiBSZW1vdmUgY29tbWVudAor
ICAgICAgICByZWZlcmVuY2UgdG8gb2Jzb2xldGUgV0tTSSBmdW5jdGlvbi4KKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW06CisgICAgICAgIChJbml0V2ViQ29y
ZVN5c3RlbUludGVyZmFjZSk6IERvbid0IGluaXRpYWxpemUgdGhlIG5vLWxvbmdlci11c2VkIFdL
R2V0RXh0ZW5zaW9uc0Zvck1JTUVUeXBlLAorICAgICAgICBXS0dldFByZWZlcnJlZEV4dGVuc2lv
bkZvck1JTUVUeXBlLCBvciBXS0dldE1JTUVUeXBlRm9yRXh0ZW5zaW9uCisgICAgICAgICogUGx1
Z2lucy9XZWJQbHVnaW5EYXRhYmFzZS5tbToKKyAgICAgICAgKC1bV2ViUGx1Z2luRGF0YWJhc2Ug
cGx1Z2luRm9yRXh0ZW5zaW9uOl0pOiBJbmNsdWRlIFNQSSBoZWFkZXIgZnJvbSBXZWJDb3JlOyB1
c2UKKyAgICAgICAgTlNVUkxGaWxlVHlwZU1hcHBpbmdzIGRpcmVjdGx5IGluc3RlYWQgb2Ygdmlh
IFdLU0kgd3JhcHBlci4KKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5tbToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpvYmplY3RDb250ZW50VHlw
ZSk6IGRpdHRvCisgICAgICAgICogV2ViVmlldy9XZWJIVE1MVmlldy5tbToKKyAgICAgICAgKC1b
V2ViSFRNTFZpZXcgX2ltYWdlRXhpc3RzQXRQYXRoczpdKTogZGl0dG8KKyAgICAgICAgKiBXZWJW
aWV3L1dlYlZpZXcubW06CisgICAgICAgICgrW1dlYlZpZXcgX3N1cHBvcnRlZEZpbGVFeHRlbnNp
b25zXSk6IGRpdHRvCisgICAgICAgICgrW1dlYlZpZXcgc3VnZ2VzdGVkRmlsZUV4dGVuc2lvbkZv
ck1JTUVUeXBlOl0pOiBkaXR0bworICAgICAgICAoK1tXZWJWaWV3IF9NSU1FVHlwZUZvckZpbGU6
XSk6IGRpdHRvCisKIDIwMTQtMDgtMTUgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgog
CiAgICAgICAgIFJFR1JFU1NJT04gKHIxNjc4NTYpOiBhZG9iZS5jb20gbm8gbG9uZ2VyIGFibGUg
dG8gbGF1bmNoIENyZWF0ZSBDbG91ZCBhcHAgdXNpbmcgYSBVUkwgd2l0aCBhIGN1c3RvbSBzY2hl
bWUKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViTlNWaWV3RXh0cmFzLm0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJOU1ZpZXdFeHRyYXMubQkocmV2aXNp
b24gMTcyNjkxKQorKysgU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJOU1ZpZXdFeHRyYXMubQko
d29ya2luZyBjb3B5KQpAQCAtMTk1LDcgKzE5NSw3IEBAIC0gKHZvaWQpX3dlYl9EcmFnSW1hZ2VG
b3JFbGVtZW50OihET01FbGUKICAgICB9IGVsc2UgewogICAgICAgICAvLyBGSVhNRTogVGhpcyBo
YXMgYmVlbiBicm9rZW4gZm9yIGEgd2hpbGUuCiAgICAgICAgIC8vIFRoZXJlJ3Mgbm8gd2F5IHRv
IGdldCB0aGUgTUlNRSB0eXBlIGZvciB0aGUgaW1hZ2UgZnJvbSBhIERPTSBlbGVtZW50LgotICAg
ICAgICAvLyBUaGUgb2xkIGNvZGUgdXNlZCBXS0dldFByZWZlcnJlZEV4dGVuc2lvbkZvck1JTUVU
eXBlKFtpbWFnZSBNSU1FVHlwZV0pOworICAgICAgICAvLyBUaGUgb2xkIGNvZGUgdXNlZCBbaW1h
Z2UgTUlNRVR5cGVdOwogICAgICAgICBOU1N0cmluZyAqZXh0ZW5zaW9uID0gQCIiOwogICAgICAg
ICBkcmFnSW1hZ2UgPSBbW05TV29ya3NwYWNlIHNoYXJlZFdvcmtzcGFjZV0gaWNvbkZvckZpbGVU
eXBlOmV4dGVuc2lvbl07CiAgICAgICAgIE5TU2l6ZSBvZmZzZXQgPSBOU01ha2VTaXplKFtkcmFn
SW1hZ2Ugc2l6ZV0ud2lkdGggLSBXZWJEcmFnSWNvblJpZ2h0SW5zZXQsIC1XZWJEcmFnSWNvbkJv
dHRvbUluc2V0KTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViUGx1Z2luRGF0
YWJhc2UubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJQbHVn
aW5EYXRhYmFzZS5tbQkocmV2aXNpb24gMTcyNjkxKQorKysgU291cmNlL1dlYktpdC9tYWMvUGx1
Z2lucy9XZWJQbHVnaW5EYXRhYmFzZS5tbQkod29ya2luZyBjb3B5KQpAQCAtNDIsNiArNDIsNyBA
QAogI2ltcG9ydCAiV2ViUGx1Z2luUGFja2FnZS5oIgogI2ltcG9ydCAiV2ViVmlld1ByaXZhdGUu
aCIKICNpbXBvcnQgIldlYlZpZXdJbnRlcm5hbC5oIgorI2ltcG9ydCA8V2ViQ29yZS9OU1VSTEZp
bGVUeXBlTWFwcGluZ3MuaD4KICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgogI2lt
cG9ydCA8d3RmL0Fzc2VydGlvbnMuaD4KIApAQCAtMTc1LDcgKzE3Niw3IEBAIC0gKFdlYkJhc2VQ
bHVnaW5QYWNrYWdlICopcGx1Z2luRm9yRXh0ZW4KICAgICAgICAgLy8gSWYgbm8gcGx1Zy1pbiB3
YXMgZm91bmQgZnJvbSB0aGUgZXh0ZW5zaW9uLCBhdHRlbXB0IHRvIG1hcCBmcm9tIHRoZSBleHRl
bnNpb24gdG8gYSBNSU1FIHR5cGUKICAgICAgICAgLy8gYW5kIGZpbmQgdGhlIGEgcGx1Zy1pbiBm
cm9tIHRoZSBNSU1FIHR5cGUuIFRoaXMgaXMgZG9uZSBpbiBjYXNlIHRoZSBwbHVnLWluIGhhcyBu
b3QgZnVsbHkgc3BlY2lmaWVkCiAgICAgICAgIC8vIGFuIGV4dGVuc2lvbiA8LT4gTUlNRSB0eXBl
IG1hcHBpbmcuCi0gICAgICAgIE5TU3RyaW5nICpNSU1FVHlwZSA9IFdLR2V0TUlNRVR5cGVGb3JF
eHRlbnNpb24oZXh0ZW5zaW9uKTsKKyAgICAgICAgTlNTdHJpbmcgKk1JTUVUeXBlID0gW1tOU1VS
TEZpbGVUeXBlTWFwcGluZ3Mgc2hhcmVkTWFwcGluZ3NdIE1JTUVUeXBlRm9yRXh0ZW5zaW9uOmV4
dGVuc2lvbl07CiAgICAgICAgIGlmIChbTUlNRVR5cGUgbGVuZ3RoXSA+IDApCiAgICAgICAgICAg
ICBwbHVnaW4gPSBbc2VsZiBwbHVnaW5Gb3JNSU1FVHlwZTpNSU1FVHlwZV07CiAgICAgfQpJbmRl
eDogU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQubW0JKHJldmlzaW9uIDE3MjY5MSkKKysrIFNvdXJjZS9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0xMDksNiArMTA5LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvTUlNRVR5cGVSZWdpc3RyeS5oPgog
I2ltcG9ydCA8V2ViQ29yZS9NYWluRnJhbWUuaD4KICNpbXBvcnQgPFdlYkNvcmUvTW91c2VFdmVu
dC5oPgorI2ltcG9ydCA8V2ViQ29yZS9OU1VSTEZpbGVUeXBlTWFwcGluZ3MuaD4KICNpbXBvcnQg
PFdlYkNvcmUvUGFnZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbHVnaW5WaWV3QmFzZS5oPgogI2lt
cG9ydCA8V2ViQ29yZS9Qcm90ZWN0aW9uU3BhY2UuaD4KQEAgLTE2MjAsNyArMTYyMSw3IEBAIE9i
amVjdENvbnRlbnRUeXBlIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjoKICAgICAgICAgTlNVUkwgKlVS
TCA9IHVybDsKICAgICAgICAgTlNTdHJpbmcgKmV4dGVuc2lvbiA9IFtbVVJMIHBhdGhdIHBhdGhF
eHRlbnNpb25dOwogICAgICAgICBpZiAoW2V4dGVuc2lvbiBsZW5ndGhdID4gMCkgewotICAgICAg
ICAgICAgdHlwZSA9IFdLR2V0TUlNRVR5cGVGb3JFeHRlbnNpb24oZXh0ZW5zaW9uKTsKKyAgICAg
ICAgICAgIHR5cGUgPSBbW05TVVJMRmlsZVR5cGVNYXBwaW5ncyBzaGFyZWRNYXBwaW5nc10gTUlN
RVR5cGVGb3JFeHRlbnNpb246ZXh0ZW5zaW9uXTsKICAgICAgICAgICAgIGlmICh0eXBlLmlzRW1w
dHkoKSkgewogICAgICAgICAgICAgICAgIC8vIElmIG5vIE1JTUUgdHlwZSBpcyBzcGVjaWZpZWQs
IHVzZSBhIHBsdWctaW4gaWYgd2UgaGF2ZSBvbmUgdGhhdCBjYW4gaGFuZGxlIHRoZSBleHRlbnNp
b24uCiAgICAgICAgICAgICAgICAgaWYgKFdlYkJhc2VQbHVnaW5QYWNrYWdlICpwYWNrYWdlID0g
W2dldFdlYlZpZXcobV93ZWJGcmFtZS5nZXQoKSkgX3BsdWdpbkZvckV4dGVuc2lvbjpleHRlbnNp
b25dKSB7CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1J
bnRlcmZhY2UubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCShyZXZpc2lvbiAxNzI2OTEpCisrKyBTb3VyY2UvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTcyLDE4ICs3MiwxNSBAQCB2b2lkIEluaXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNlKHZv
aWQpCiAgICAgSU5JVChEcmF3TWVkaWFVSVBhcnQpOwogICAgIElOSVQoRHJhd01lZGlhU2xpZGVy
VHJhY2spOwogICAgIElOSVQoRHJhd1RleHRGaWVsZENlbGxGb2N1c1JpbmcpOwotICAgIElOSVQo
R2V0RXh0ZW5zaW9uc0Zvck1JTUVUeXBlKTsKICAgICBJTklUKEdldEZvbnRJbkxhbmd1YWdlRm9y
Q2hhcmFjdGVyKTsKICAgICBJTklUKEdldEZvbnRJbkxhbmd1YWdlRm9yUmFuZ2UpOwogICAgIElO
SVQoR2V0R2x5cGhUcmFuc2Zvcm1lZEFkdmFuY2VzKTsKICNlbmRpZgogICAgIElOSVQoR2V0SFRU
UFJlcXVlc3RQcmlvcml0eSk7Ci0gICAgSU5JVChHZXRNSU1FVHlwZUZvckV4dGVuc2lvbik7CiAg
ICAgSU5JVChHZXROU1VSTFJlc3BvbnNlTGFzdE1vZGlmaWVkRGF0ZSk7CiAgICAgSU5JVChHZXRX
ZWJEZWZhdWx0Q0ZTdHJpbmdFbmNvZGluZyk7CiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBJTklU
KFNpZ25lZFB1YmxpY0tleUFuZENoYWxsZW5nZVN0cmluZyk7Ci0gICAgSU5JVChHZXRQcmVmZXJy
ZWRFeHRlbnNpb25Gb3JNSU1FVHlwZSk7CiAgICAgSU5JVChHZXRXaGVlbEV2ZW50RGVsdGFzKTsK
ICAgICBJTklUKEdldE5TRXZlbnRLZXlDaGFyKTsKICAgICBJTklUKEhpdFRlc3RNZWRpYVVJUGFy
dCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0JKHJldmlz
aW9uIDE3MjY5MSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0J
KHdvcmtpbmcgY29weSkKQEAgLTEwMiw2ICsxMDIsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9MZWdh
Y3lXZWJBcmNoaXZlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0cnkuaD4KICNp
bXBvcnQgPFdlYkNvcmUvTWFpbkZyYW1lLmg+CisjaW1wb3J0IDxXZWJDb3JlL05TVVJMRmlsZVR5
cGVNYXBwaW5ncy5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYWdlLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1JhbmdlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1JlbmRlclZpZXcuaD4KQEAgLTc2OCw3ICs3Njks
NyBAQCAtIChCT09MKV9pbWFnZUV4aXN0c0F0UGF0aHM6KE5TQXJyYXkgKilwCiAgICAgTlNTdHJp
bmcgKnBhdGg7CiAgICAgCiAgICAgd2hpbGUgKChwYXRoID0gW2VudW1lcmF0b3IgbmV4dE9iamVj
dF0pICE9IG5pbCkgewotICAgICAgICBOU1N0cmluZyAqTUlNRVR5cGUgPSBXS0dldE1JTUVUeXBl
Rm9yRXh0ZW5zaW9uKFtwYXRoIHBhdGhFeHRlbnNpb25dKTsKKyAgICAgICAgTlNTdHJpbmcgKk1J
TUVUeXBlID0gW1tOU1VSTEZpbGVUeXBlTWFwcGluZ3Mgc2hhcmVkTWFwcGluZ3NdIE1JTUVUeXBl
Rm9yRXh0ZW5zaW9uOltwYXRoIHBhdGhFeHRlbnNpb25dXTsKICAgICAgICAgaWYgKE1JTUVUeXBl
UmVnaXN0cnk6OmlzU3VwcG9ydGVkSW1hZ2VSZXNvdXJjZU1JTUVUeXBlKE1JTUVUeXBlKSkKICAg
ICAgICAgICAgIHJldHVybiBZRVM7CiAgICAgfQpJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJWaWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViVmlldy5tbQkocmV2aXNpb24gMTcyNjkxKQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJWaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xNDgsNiArMTQ4LDcgQEAKICNpbXBvcnQg
PFdlYkNvcmUvTUlNRVR5cGVSZWdpc3RyeS5oPgogI2ltcG9ydCA8V2ViQ29yZS9NYWluRnJhbWUu
aD4KICNpbXBvcnQgPFdlYkNvcmUvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmg+CisjaW1wb3J0IDxX
ZWJDb3JlL05TVVJMRmlsZVR5cGVNYXBwaW5ncy5oPgogI2ltcG9ydCA8V2ViQ29yZS9Ob2RlTGlz
dC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Ob3RpZmljYXRpb24uaD4KICNpbXBvcnQgPFdlYkNvcmUv
Tm90aWZpY2F0aW9uQ29udHJvbGxlci5oPgpAQCAtMTA5OCw3ICsxMDk5LDcgQEAgKyAoTlNBcnJh
eSAqKV9zdXBwb3J0ZWRGaWxlRXh0ZW5zaW9ucwogICAgIE5TRW51bWVyYXRvciAqZW51bWVyYXRv
ciA9IFtNSU1FVHlwZXMgb2JqZWN0RW51bWVyYXRvcl07CiAgICAgTlNTdHJpbmcgKk1JTUVUeXBl
OwogICAgIHdoaWxlICgoTUlNRVR5cGUgPSBbZW51bWVyYXRvciBuZXh0T2JqZWN0XSkgIT0gbmls
KSB7Ci0gICAgICAgIE5TQXJyYXkgKmV4dGVuc2lvbnNGb3JUeXBlID0gV0tHZXRFeHRlbnNpb25z
Rm9yTUlNRVR5cGUoTUlNRVR5cGUpOworICAgICAgICBOU0FycmF5ICpleHRlbnNpb25zRm9yVHlw
ZSA9IFtbTlNVUkxGaWxlVHlwZU1hcHBpbmdzIHNoYXJlZE1hcHBpbmdzXSBleHRlbnNpb25zRm9y
TUlNRVR5cGU6TUlNRVR5cGVdOwogICAgICAgICBpZiAoZXh0ZW5zaW9uc0ZvclR5cGUpIHsKICAg
ICAgICAgICAgIFtleHRlbnNpb25zIGFkZE9iamVjdHNGcm9tQXJyYXk6ZXh0ZW5zaW9uc0ZvclR5
cGVdOwogICAgICAgICB9CkBAIC0xNDk1LDcgKzE0OTYsNyBAQCArIChCT09MKWNhblNob3dGaWxl
OihOU1N0cmluZyAqKXBhdGgKICNpZiAhUExBVEZPUk0oSU9TKQogKyAoTlNTdHJpbmcgKilzdWdn
ZXN0ZWRGaWxlRXh0ZW5zaW9uRm9yTUlNRVR5cGU6KE5TU3RyaW5nICopdHlwZQogewotICAgIHJl
dHVybiBXS0dldFByZWZlcnJlZEV4dGVuc2lvbkZvck1JTUVUeXBlKHR5cGUpOworICAgIHJldHVy
biBbW05TVVJMRmlsZVR5cGVNYXBwaW5ncyBzaGFyZWRNYXBwaW5nc10gcHJlZmVycmVkRXh0ZW5z
aW9uRm9yTUlNRVR5cGU6dHlwZV07CiB9CiAjZW5kaWYKIApAQCAtMTc5OCw3ICsxNzk5LDcgQEAg
KyAoTlNTdHJpbmcgKilfTUlNRVR5cGVGb3JGaWxlOihOU1N0cmluZwogI2lmICFQTEFURk9STShJ
T1MpCiAgICAgLy8gR2V0IHRoZSBNSU1FIHR5cGUgZnJvbSB0aGUgZXh0ZW5zaW9uLgogICAgIGlm
IChbZXh0ZW5zaW9uIGxlbmd0aF0gIT0gMCkgewotICAgICAgICBNSU1FVHlwZSA9IFdLR2V0TUlN
RVR5cGVGb3JFeHRlbnNpb24oZXh0ZW5zaW9uKTsKKyAgICAgICAgTUlNRVR5cGUgPSBbW05TVVJM
RmlsZVR5cGVNYXBwaW5ncyBzaGFyZWRNYXBwaW5nc10gTUlNRVR5cGVGb3JFeHRlbnNpb246ZXh0
ZW5zaW9uXTsKICAgICB9CiAjZW5kaWYKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236751</attachid>
            <date>2014-08-18 02:44:44 -0700</date>
            <delta_ts>2014-08-18 13:10:03 -0700</delta_ts>
            <desc>Attempt #2</desc>
            <filename>bug-136035-20140818024435.patch</filename>
            <type>text/plain</type>
            <size>24225</size>
            <attacher name="Maciej Stachowiak">mjs</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3MjY5OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDE0LTA4LTE3ICBNYWNpZWog
U3RhY2hvd2lhayAgPG1qc0BhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIE5TVVJMRmlsZVR5cGVN
YXBwaW5ncyBkaXJlY3RseSBpbnN0ZWFkIG9mIGRlcGVuZGluZyBvbiBXZWJLaXRTeXN0ZW1JbnRl
cmZhY2Ugd3JhcHBlcnMgZm9yIGl0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMzYwMzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOiBSZW1vdmUgcmVmZXJlbmNlIHRvIG5vIGxv
bmdlciBleGlzdGVudCBzdW1ib2xzLgorICAgICAgICAqIFdlYkNvcmUub3JkZXI6IGRpdHRvCisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBJbnN0YWxsIG5ldyBO
U1VSTEZpbGVUeWVNYXBwaW5ncy5oIGhlYWRlci4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvTUlN
RVR5cGVSZWdpc3RyeUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1JTUVUeXBlUmVnaXN0cnk6
OmdldE1JTUVUeXBlRm9yRXh0ZW5zaW9uKTogVXNlIE5TVVJMRmlsZVR5cGVNYXBwaW5ncworICAg
ICAgICBkaXJlY3RseSBpbnN0ZWFkIG9mIHZpYSBXS1NJIHdyYXBwZXIuCisgICAgICAgICogcGxh
dGZvcm0vbWFjL01JTUVUeXBlUmVnaXN0cnlNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpNSU1F
VHlwZVJlZ2lzdHJ5OjpnZXRNSU1FVHlwZUZvckV4dGVuc2lvbik6IGRpdHRvCisgICAgICAgIChX
ZWJDb3JlOjpNSU1FVHlwZVJlZ2lzdHJ5OjpnZXRFeHRlbnNpb25zRm9yTUlNRVR5cGUpOiBkaXR0
bworICAgICAgICAoV2ViQ29yZTo6TUlNRVR5cGVSZWdpc3RyeTo6Z2V0UHJlZmVycmVkRXh0ZW5z
aW9uRm9yTUlNRVR5cGUpOiBkaXR0bworICAgICAgICAqIHBsYXRmb3JtL21hYy9XZWJDb3JlU3lz
dGVtSW50ZXJmYWNlLmg6IFJlbW92ZSByZWZlcmVuY2VzIHRvIHRoZSBuby1sb25nZXItdXNlZAor
ICAgICAgICBXS0dldEV4dGVuc2lvbnNGb3JNSU1FVHlwZSwgV0tHZXRQcmVmZXJyZWRFeHRlbnNp
b25Gb3JNSU1FVHlwZSwgb3IgV0tHZXRNSU1FVHlwZUZvckV4dGVuc2lvbgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tOiBkaXR0bworICAgICAgICAqIHBs
YXRmb3JtL3NwaTogQWRkZWQuIFRoaXMgaXMgd2hlcmUgaGVhZGVycyB0byBkZWNsYXJlIFNQSSBn
by4KKyAgICAgICAgKiBwbGF0Zm9ybS9zcGkvY29jb2E6IEFkZGVkLiBTZWUgYWJvdmUuCisgICAg
ICAgICogcGxhdGZvcm0vc3BpL2NvY29hL05TVVJMRmlsZVR5cGVNYXBwaW5ncy5oOiBBZGRlZC4g
SGVhZGVyIHRvIGRlY2xhcmUKKyAgICAgICAgdGhlIGludGVybmFsIGNsYXNzIE5TVVJMRmlsZVR5
cGVNYXBwaW5ncyBhbmQgc29tZSBvZiBpdHMgbWV0aG9kcy4KKwogMjAxNC0wOC0xNSAgQW5keSBF
c3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjE2Nzg1Nik6
IGFkb2JlLmNvbSBubyBsb25nZXIgYWJsZSB0byBsYXVuY2ggQ3JlYXRlIENsb3VkIGFwcCB1c2lu
ZyBhIFVSTCB3aXRoIGEgY3VzdG9tIHNjaGVtZQpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4JKHJl
dmlzaW9uIDE3MjY5MSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCSh3b3JraW5n
IGNvcHkpCkBAIC0yMTA2LDcgKzIxMDYsNiBAQCBfd2tHZXRDRlVSTFJlc3BvbnNlTUlNRVR5cGUK
IF93a0dldENGVVJMUmVzcG9uc2VVUkwKIF93a0dldEhUVFBDb29raWVBY2NlcHRQb2xpY3kKIF93
a0dldEhUVFBSZXF1ZXN0UHJpb3JpdHkKLV93a0dldE1JTUVUeXBlRm9yRXh0ZW5zaW9uCiBfd2tH
ZXROU1VSTFJlc3BvbnNlTGFzdE1vZGlmaWVkRGF0ZQogX3drR2V0VXNlclRvQmFzZUNUTQogX3dr
R2V0V2ViRGVmYXVsdENGU3RyaW5nRW5jb2RpbmcKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUub3JkZXIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgkocmV2
aXNpb24gMTcyNjkxKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgkod29ya2luZyBj
b3B5KQpAQCAtMzA2MDksNyArMzA2MDksNiBAQCBfd2tNZWRpYUNvbnRyb2xsZXJUaGVtZUF2YWls
YWJsZQogX3drR2V0UHJlZmVycmVkRXh0ZW5zaW9uRm9yTUlNRVR5cGUKIF93a1NpZ25lZFB1Ymxp
Y0tleUFuZENoYWxsZW5nZVN0cmluZwogX3drR2V0RXh0ZW5zaW9uc0Zvck1JTUVUeXBlCi1fd2tH
ZXRNSU1FVHlwZUZvckV4dGVuc2lvbgogX3drR2V0TlNVUkxSZXNwb25zZUxhc3RNb2RpZmllZERh
dGUKIF93a0dldFdoZWVsRXZlbnREZWx0YXMKIF93a0dldE5TRXZlbnRLZXlDaGFyCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShy
ZXZpc2lvbiAxNzI2OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTIxNzcsNiArMjE3Nyw3IEBACiAJCTY1NzFE
Q0M4MTM4NUU2QTQwMDcwMkREMCAvKiBNZW1vcnlQcmVzc3VyZUhhbmRsZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1N0VEQTA3MTM4NUNCOTcwMDRF
MDY0NSAvKiBNZW1vcnlQcmVzc3VyZUhhbmRsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2NTdFREEwODEzODVDQjk3MDA0RTA2NDUgLyogTWVt
b3J5UHJlc3N1cmVIYW5kbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDY1N0VEQTA2MTM4NUNCOTcwMDRFMDY0NSAvKiBNZW1vcnlQcmVzc3VyZUhh
bmRsZXIuY3BwICovOyB9OwogCQk2NTg0MzY4NjBBRTAxQjc0MDBFNTM3NTMgLyogRnJhbWVMb2Fk
UmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NjU4NDM2ODUwQUUwMUI3NDAwRTUzNzUzIC8qIEZyYW1lTG9hZFJlcXVlc3QuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk2NThGNTQwMzE5QTFDOTI0
MDA4OEZDOTIgLyogTlNVUkxGaWxlVHlwZU1hcHBpbmdzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTNFRjgzODE5QTA0M0FFMDA1MjIwMkMgLyogTlNV
UkxGaWxlVHlwZU1hcHBpbmdzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJNjU5MzkyMzcwOUFFNDM0NjAwMkM1MzFGIC8qIFVSTC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTkzOTIzNTA5QUU0MzQ2
MDAyQzUzMUYgLyogVVJMLmNwcCAqLzsgfTsKIAkJNjU5MzkyMzgwOUFFNDM0NjAwMkM1MzFGIC8q
IFVSTC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU5
MzkyMzYwOUFFNDM0NjAwMkM1MzFGIC8qIFVSTC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTY1OTM5MjNBMDlBRTQzNUMwMDJDNTMxRiAvKiBVUkxN
YWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTkz
OTIzOTA5QUU0MzVDMDAyQzUzMUYgLyogVVJMTWFjLm1tICovOyB9OwpAQCAtOTI3MSw2ICs5Mjcy
LDcgQEAKIAkJNjUxNUVDOEYwRDk3MjNGRjAwNjNENDlBIC8qIEpTU1ZHQWx0R2x5cGhFbGVtZW50
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU1ZHQWx0R2x5cGhF
bGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjUxNUVDOTAwRDk3MjNG
RjAwNjNENDlBIC8qIEpTU1ZHQWx0R2x5cGhFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTU1ZHQWx0R2x5cGhFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTY1MkZCQkJCMERFMjdDQjYwMDAxRDM4NiAvKiBKU0RPTVdpbmRvd0N1c3RvbS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RPTVdpbmRvd0N1c3RvbS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2NTNFRjgzODE5QTA0M0FFMDA1MjIwMkMgLyog
TlNVUkxGaWxlVHlwZU1hcHBpbmdzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE5TVVJMRmlsZVR5cGVNYXBwaW5ncy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2
NTQ4RTI0ODA5RTFFMDREMDBBRjgwMjAgLyogRG9jdW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBEb2N1bWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1NTBC
NjkzMDk5REYwMjcwMDkwRDc4MSAvKiBDREFUQVNlY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENEQVRBU2VjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTY1NTBCNjk0MDk5REYwMjcwMDkwRDc4MSAvKiBDREFUQVNlY3Rpb24uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENEQVRBU2VjdGlvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTYyMTYsNiArMTYyMTgsMjIgQEAKIAkJCXBhdGggPSBw
bHVnaW5zOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJNjUzRUY4MzYxOUEw
NDNBRTAwNTIyMDJDIC8qIHNwaSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRy
ZW4gPSAoCisJCQkJNjUzRUY4MzcxOUEwNDNBRTAwNTIyMDJDIC8qIGNvY29hICovLAorCQkJKTsK
KwkJCXBhdGggPSBzcGk7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQk2NTNF
RjgzNzE5QTA0M0FFMDA1MjIwMkMgLyogY29jb2EgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsK
KwkJCWNoaWxkcmVuID0gKAorCQkJCTY1M0VGODM4MTlBMDQzQUUwMDUyMjAyQyAvKiBOU1VSTEZp
bGVUeXBlTWFwcGluZ3MuaCAqLywKKwkJCSk7CisJCQlwYXRoID0gY29jb2E7CisJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOworCQl9OwogCQk2NTY1ODBFQzA5RDEyQjIwMDAwRTYxRDcgLyogRGVy
aXZlZCBTb3VyY2VzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgK
QEAgLTIxMjk0LDYgKzIxMzEyLDcgQEAKIAkJCQk2NTZCODRENzBBRUExQ0U5MDBBMDk1QjQgLyog
bmV0d29yayAqLywKIAkJCQk1MTYwMzAwOTBDQzQyNDU0MDBDOEFDMjUgLyogcG9zaXggKi8sCiAJ
CQkJMUEyRTZFNTYwQ0M1NTFFMDAwNEEyMDYyIC8qIHNxbCAqLywKKwkJCQk2NTNFRjgzNjE5QTA0
M0FFMDA1MjIwMkMgLyogc3BpICovLAogCQkJCUIyQzNEOUVDMEQwMDZDMUQwMEVGNkYyNiAvKiB0
ZXh0ICovLAogCQkJCTQ5QUUyRDk0MTM0RUU1RjkwMDcyOTIwQSAvKiBDYWxjdWxhdGlvblZhbHVl
LmNwcCAqLywKIAkJCQk0OUFFMkQ5NTEzNEVFNUY5MDA3MjkyMEEgLyogQ2FsY3VsYXRpb25WYWx1
ZS5oICovLApAQCAtMjUyNzYsNiArMjUyOTUsNyBAQAogCQkJCUY1OTczREUwMTVDRkIyMDMwMDI3
RjgwNCAvKiBMb2NhbGVNYWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTc2MzNBNzI2MTNEOEIzM0Ew
MDg1MDFCNiAvKiBMb2NhbGVUb1NjcmlwdE1hcHBpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1
MTZFOEI3MTM2RTA0REIwMDc2QzNDMCAvKiBMb2NhbGl6ZWREYXRlQ2FjaGUuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTY1OEY1NDAzMTlBMUM5MjQwMDg4RkM5MiAvKiBOU1VSTEZpbGVUeXBlTWFwcGlu
Z3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNTIwN0JFMDlCRDQxMEEwMEYyMDM4RCAvKiBMb2Nh
bGl6ZWRTdHJpbmdzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0UxQzQxQjBEOTgyOTgwMDAzQjAy
RjIgLyogTG9jYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MjM5RTAxMDlCM0NGOEEwMEI2
MDY0MSAvKiBMb2dnaW5nLmggaW4gSGVhZGVycyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9NSU1FVHlwZVJlZ2lzdHJ5SU9TLm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9NSU1FVHlwZVJlZ2lzdHJ5SU9TLm1tCShyZXZpc2lvbiAxNzI2
OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTUlNRVR5cGVSZWdpc3RyeUlPUy5t
bQkod29ya2luZyBjb3B5KQpAQCAtMjYsMTMgKzI2LDE0IEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgogCi0jaW5jbHVkZSAiV2ViQ29yZVN5c3Rl
bUludGVyZmFjZS5oIgorI2luY2x1ZGUgIk5TVVJMRmlsZVR5cGVNYXBwaW5ncy5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSAKIHsKIFN0cmluZyBNSU1FVHlwZVJlZ2lzdHJ5OjpnZXRNSU1FVHlwZUZv
ckV4dGVuc2lvbihjb25zdCBTdHJpbmcgJmV4dCkKIHsKICAgICByZXR1cm4gd2tHZXRNSU1FVHlw
ZUZvckV4dGVuc2lvbihleHQpOworICAgIHJldHVybiBbW05TVVJMRmlsZVR5cGVNYXBwaW5ncyBz
aGFyZWRNYXBwaW5nc10gTUlNRVR5cGVGb3JFeHRlbnNpb246KE5TU3RyaW5nICopZXh0XTsKIH0K
IAogVmVjdG9yPFN0cmluZz4gTUlNRVR5cGVSZWdpc3RyeTo6Z2V0RXh0ZW5zaW9uc0Zvck1JTUVU
eXBlKGNvbnN0IFN0cmluZyYgLyp0eXBlKi8pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvTUlNRVR5cGVSZWdpc3RyeU1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvTUlNRVR5cGVSZWdpc3RyeU1hYy5tbQkocmV2aXNpb24gMTcyNjkxKQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL01JTUVUeXBlUmVnaXN0cnlNYWMubW0JKHdv
cmtpbmcgY29weSkKQEAgLTI3LDIyICsyNywyMiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKIAotI2luY2x1ZGUgIldlYkNvcmVTeXN0ZW1JbnRl
cmZhY2UuaCIKKyNpbmNsdWRlICJOU1VSTEZpbGVUeXBlTWFwcGluZ3MuaCIKICNpbmNsdWRlIDx3
dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIAogewogCi1TdHJpbmcgTUlNRVR5cGVSZWdpc3RyeTo6Z2V0TUlNRVR5cGVGb3JF
eHRlbnNpb24oY29uc3QgU3RyaW5nICZleHQpCitTdHJpbmcgTUlNRVR5cGVSZWdpc3RyeTo6Z2V0
TUlNRVR5cGVGb3JFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBleHQpCiB7CiAgICAgQVNTRVJUKGlz
TWFpblRocmVhZCgpKTsKLSAgICByZXR1cm4gd2tHZXRNSU1FVHlwZUZvckV4dGVuc2lvbihleHQp
OworICAgIHJldHVybiBbW05TVVJMRmlsZVR5cGVNYXBwaW5ncyBzaGFyZWRNYXBwaW5nc10gTUlN
RVR5cGVGb3JFeHRlbnNpb246KE5TU3RyaW5nICopZXh0XTsKIH0KIAogVmVjdG9yPFN0cmluZz4g
TUlNRVR5cGVSZWdpc3RyeTo6Z2V0RXh0ZW5zaW9uc0Zvck1JTUVUeXBlKGNvbnN0IFN0cmluZyYg
dHlwZSkKIHsKLSAgICBOU0FycmF5ICpzdHJpbmdzQXJyYXkgPSB3a0dldEV4dGVuc2lvbnNGb3JN
SU1FVHlwZSh0eXBlKTsKKyAgICBOU0FycmF5ICpzdHJpbmdzQXJyYXkgPSBbW05TVVJMRmlsZVR5
cGVNYXBwaW5ncyBzaGFyZWRNYXBwaW5nc10gZXh0ZW5zaW9uc0Zvck1JTUVUeXBlOihOU1N0cmlu
ZyAqKXR5cGVdOwogICAgIFZlY3RvcjxTdHJpbmc+IHN0cmluZ3NWZWN0b3IgPSBWZWN0b3I8U3Ry
aW5nPigpOwogICAgIHVuc2lnbmVkIGNvdW50ID0gW3N0cmluZ3NBcnJheSBjb3VudF07CiAgICAg
aWYgKGNvdW50ID4gMCkgewpAQCAtNTYsNyArNTYsNyBAQCBWZWN0b3I8U3RyaW5nPiBNSU1FVHlw
ZVJlZ2lzdHJ5OjpnZXRFeHRlCiAKIFN0cmluZyBNSU1FVHlwZVJlZ2lzdHJ5OjpnZXRQcmVmZXJy
ZWRFeHRlbnNpb25Gb3JNSU1FVHlwZShjb25zdCBTdHJpbmcmIHR5cGUpCiB7Ci0gICAgcmV0dXJu
IHdrR2V0UHJlZmVycmVkRXh0ZW5zaW9uRm9yTUlNRVR5cGUodHlwZSk7CisgICAgcmV0dXJuIFtb
TlNVUkxGaWxlVHlwZU1hcHBpbmdzIHNoYXJlZE1hcHBpbmdzXSBwcmVmZXJyZWRFeHRlbnNpb25G
b3JNSU1FVHlwZTooTlNTdHJpbmcgKil0eXBlXTsKIH0KIAogYm9vbCBNSU1FVHlwZVJlZ2lzdHJ5
Ojppc0FwcGxpY2F0aW9uUGx1Z2luTUlNRVR5cGUoY29uc3QgU3RyaW5nJiBNSU1FVHlwZSkKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1J
bnRlcmZhY2UuaAkocmV2aXNpb24gMTcyNjkxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaAkod29ya2luZyBjb3B5KQpAQCAtMTcxLDEwICsx
NzEsNyBAQCBleHRlcm4gdm9pZCAoKndrRHJhd01lZGlhU2xpZGVyVHJhY2spKENHCiAgICAgZmxv
YXQgZHVyYXRpb24sIHVuc2lnbmVkIHN0YXRlKTsKIGV4dGVybiB2b2lkICgqd2tEcmF3TWVkaWFV
SVBhcnQpKGludCBwYXJ0LCBDR0NvbnRleHRSZWYgY29udGV4dCwgQ0dSZWN0IHJlY3QsIHVuc2ln
bmVkIHN0YXRlKTsKIGV4dGVybiBDRlN0cmluZ1JlZiAoKndrU2lnbmVkUHVibGljS2V5QW5kQ2hh
bGxlbmdlU3RyaW5nKSh1bnNpZ25lZCBrZXlTaXplLCBDRlN0cmluZ1JlZiBjaGFsbGVuZ2UsIENG
U3RyaW5nUmVmIGtleURlc2NyaXB0aW9uKTsKLWV4dGVybiBOU1N0cmluZyogKCp3a0dldFByZWZl
cnJlZEV4dGVuc2lvbkZvck1JTUVUeXBlKShOU1N0cmluZyopOwotZXh0ZXJuIE5TQXJyYXkqICgq
d2tHZXRFeHRlbnNpb25zRm9yTUlNRVR5cGUpKE5TU3RyaW5nKik7CiAjZW5kaWYKLWV4dGVybiBO
U1N0cmluZyogKCp3a0dldE1JTUVUeXBlRm9yRXh0ZW5zaW9uKShOU1N0cmluZyopOwogI2lmICFQ
TEFURk9STShJT1MpCiBleHRlcm4gQVRTVUZvbnRJRCAoKndrR2V0TlNGb250QVRTVUZvbnRJZCko
TlNGb250Kik7CiBleHRlcm4gZG91YmxlICgqd2tHZXROU1VSTFJlc3BvbnNlQ2FsY3VsYXRlZEV4
cGlyYXRpb24pKE5TVVJMUmVzcG9uc2UgKnJlc3BvbnNlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tCShyZXZp
c2lvbiAxNzI2OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3Rl
bUludGVyZmFjZS5tbQkod29ya2luZyBjb3B5KQpAQCAtNjMsNyArNjMsNiBAQCB2b2lkICgqd2tX
aW5kb3dTZXRTY2FsZWRGcmFtZSkoTlNXaW5kb3cgCiBOU1N0cmluZyogKCp3a0dldFByZWZlcnJl
ZEV4dGVuc2lvbkZvck1JTUVUeXBlKShOU1N0cmluZyopOwogQ0ZTdHJpbmdSZWYgKCp3a1NpZ25l
ZFB1YmxpY0tleUFuZENoYWxsZW5nZVN0cmluZykodW5zaWduZWQga2V5U2l6ZSwgQ0ZTdHJpbmdS
ZWYgY2hhbGxlbmdlLCBDRlN0cmluZ1JlZiBrZXlEZXNjcmlwdGlvbik7CiBOU0FycmF5KiAoKndr
R2V0RXh0ZW5zaW9uc0Zvck1JTUVUeXBlKShOU1N0cmluZyopOwotTlNTdHJpbmcqICgqd2tHZXRN
SU1FVHlwZUZvckV4dGVuc2lvbikoTlNTdHJpbmcqKTsKIE5TVGltZUludGVydmFsICgqd2tHZXRO
U1VSTFJlc3BvbnNlQ2FsY3VsYXRlZEV4cGlyYXRpb24pKE5TVVJMUmVzcG9uc2UgKnJlc3BvbnNl
KTsKIE5TRGF0ZSAqKCp3a0dldE5TVVJMUmVzcG9uc2VMYXN0TW9kaWZpZWREYXRlKShOU1VSTFJl
c3BvbnNlICpyZXNwb25zZSk7CiBCT09MICgqd2tHZXROU1VSTFJlc3BvbnNlTXVzdFJldmFsaWRh
dGUpKE5TVVJMUmVzcG9uc2UgKnJlc3BvbnNlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3NwaS9jb2NvYS9OU1VSTEZpbGVUeXBlTWFwcGluZ3MuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY29jb2EvTlNVUkxGaWxlVHlwZU1hcHBpbmdzLmgJKHJl
dmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY29jb2EvTlNVUkxGaWxl
VHlwZU1hcHBpbmdzLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBOU1VSTEZpbGVU
eXBlTWFwcGluZ3NfaAorI2RlZmluZSBOU1VSTEZpbGVUeXBlTWFwcGluZ3NfaAorCisjaWYgX19o
YXNfaW5jbHVkZSg8Rm91bmRhdGlvbi9OU1VSTEZpbGVUeXBlTWFwcGluZ3MuaD4pCisjaW1wb3J0
IDxGb3VuZGF0aW9uL05TVVJMRmlsZVR5cGVNYXBwaW5ncy5oPgorI2Vsc2UKKworLy8gRklYTUU6
IFdlIHNob3VsZCB1c2UgVVRJIGluc3RlYWQsIGJ1dCBpdCdzIG1pc3Npbmcgc29tZSBtYXBwaW5n
cyB0aGF0IHRoaXMgb2xkIFNQSSBrbm93cy4KKy8vIFJlbW92ZSB0aGVzZSBtZXRob2RzIG9uY2Ug
PHJkYXI6Ly9wcm9ibGVtLzE4MDQyMTg0PiBpcyBmaXhlZC4KK0BjbGFzcyBOU1VSTEZpbGVUeXBl
TWFwcGluZ3M7CitAaW50ZXJmYWNlIE5TVVJMRmlsZVR5cGVNYXBwaW5ncyAoUHJpdmF0ZSkgCisr
IChOU1VSTEZpbGVUeXBlTWFwcGluZ3MgKilzaGFyZWRNYXBwaW5nczsKKy0gKE5TU3RyaW5nICop
TUlNRVR5cGVGb3JFeHRlbnNpb246KE5TU3RyaW5nICopZXh0OworLSAoTlNTdHJpbmcgKilwcmVm
ZXJyZWRFeHRlbnNpb25Gb3JNSU1FVHlwZTooTlNTdHJpbmcgKil0eXBlOworLSAoTlNBcnJheSAq
KWV4dGVuc2lvbnNGb3JNSU1FVHlwZTooTlNTdHJpbmcgKil0eXBlOworQGVuZAorCisjZW5kaWYK
KworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNzI2OTgpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxNC0wOC0x
NyAgTWFjaWVqIFN0YWNob3dpYWsgIDxtanNAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBOU1VS
TEZpbGVUeXBlTWFwcGluZ3MgZGlyZWN0bHkgaW5zdGVhZCBvZiBkZXBlbmRpbmcgb24gV2ViS2l0
U3lzdGVtSW50ZXJmYWNlIHdyYXBwZXJzIGZvciBpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2MDM1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9X
ZWJTeXN0ZW1JbnRlcmZhY2UubW06CisgICAgICAgIChJbml0V2ViQ29yZVN5c3RlbUludGVyZmFj
ZSk6IERvbid0IGluaXRpYWxpemUgdGhlIG5vLWxvbmdlci11c2VkIFdLR2V0RXh0ZW5zaW9uc0Zv
ck1JTUVUeXBlLAorICAgICAgICBXS0dldFByZWZlcnJlZEV4dGVuc2lvbkZvck1JTUVUeXBlLCBv
ciBXS0dldE1JTUVUeXBlRm9yRXh0ZW5zaW9uCisgICAgICAgICogbWFjL1dlYktpdDIub3JkZXI6
IFJlbW92ZSBleHBvcnRzIHJlbGF0ZWQgdG8gYWJvdmUuCisKIDIwMTQtMDgtMTYgIFByYXRpayBT
b2xhbmtpICA8cHNvbGFua2lAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmFtZSBEaXNrQ2FjaGVN
b25pdG9yIHRvIE5ldHdvcmtEaXNrQ2FjaGVNb25pdG9yCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2Vi
U3lzdGVtSW50ZXJmYWNlLm1tCShyZXZpc2lvbiAxNzI2OTEpCisrKyBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW0JKHdvcmtp
bmcgY29weSkKQEAgLTY1LDcgKzY1LDYgQEAgdm9pZCBJbml0V2ViQ29yZVN5c3RlbUludGVyZmFj
ZSh2b2lkKQogICAgICAgICBJTklUKERyYXdNZWRpYVNsaWRlclRyYWNrKTsKICAgICAgICAgSU5J
VChEcmF3TWVkaWFVSVBhcnQpOwogICAgICAgICBJTklUKERyYXdUZXh0RmllbGRDZWxsRm9jdXNS
aW5nKTsKLSAgICAgICAgSU5JVChHZXRFeHRlbnNpb25zRm9yTUlNRVR5cGUpOwogICAgICAgICBJ
TklUKEdldEZvbnRJbkxhbmd1YWdlRm9yQ2hhcmFjdGVyKTsKICAgICAgICAgSU5JVChHZXRGb250
SW5MYW5ndWFnZUZvclJhbmdlKTsKICAgICAgICAgSU5JVChHZXRHbHlwaFRyYW5zZm9ybWVkQWR2
YW5jZXMpOwpAQCAtNzMsMTEgKzcyLDkgQEAgdm9pZCBJbml0V2ViQ29yZVN5c3RlbUludGVyZmFj
ZSh2b2lkKQogI2VuZGlmCiAgICAgICAgIElOSVQoR2V0VmVydGljYWxHbHlwaHNGb3JDaGFyYWN0
ZXJzKTsKICAgICAgICAgSU5JVChHZXRIVFRQUmVxdWVzdFByaW9yaXR5KTsKLSAgICAgICAgSU5J
VChHZXRNSU1FVHlwZUZvckV4dGVuc2lvbik7CiAgICAgICAgIElOSVQoR2V0TlNVUkxSZXNwb25z
ZUxhc3RNb2RpZmllZERhdGUpOwogI2lmICFQTEFURk9STShJT1MpCiAgICAgICAgIElOSVQoU2ln
bmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5nKTsKLSAgICAgICAgSU5JVChHZXRQcmVmZXJy
ZWRFeHRlbnNpb25Gb3JNSU1FVHlwZSk7CiAjZW5kaWYKICAgICAgICAgSU5JVChHZXRVc2VyVG9C
YXNlQ1RNKTsKICAgICAgICAgSU5JVChHZXRXZWJEZWZhdWx0Q0ZTdHJpbmdFbmNvZGluZyk7Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9tYWMvV2ViS2l0Mi5vcmRlcgo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9tYWMvV2ViS2l0Mi5vcmRlcgkocmV2aXNpb24gMTcyNjkxKQorKysgU291cmNl
L1dlYktpdDIvbWFjL1dlYktpdDIub3JkZXIJKHdvcmtpbmcgY29weSkKQEAgLTg2NjgsNyArODY2
OCw2IEBAIF9fWk4zV1RGOVJldGFpblB0cklQSzdfX0NGVVJMRWFTRVMzXwogX1dLQnVuZGxlR2Fy
YmFnZUNvbGxlY3RKYXZhU2NyaXB0T2JqZWN0cwogX19aTjZXZWJLaXQxNEluamVjdGVkQnVuZGxl
MzFnYXJiYWdlQ29sbGVjdEphdmFTY3JpcHRPYmplY3RzRXYKIF9fWk5LNldlYktpdDE1V2ViRWRp
dG9yQ2xpZW50MTBjYW5Db3B5Q3V0RVBON1dlYkNvcmU1RnJhbWVFYgotX1dLR2V0RXh0ZW5zaW9u
c0Zvck1JTUVUeXBlCiBfX1pONldlYktpdDE1V2ViRWRpdG9yQ2xpZW50MjVzaG91bGRTaG93RGVs
ZXRlSW50ZXJmYWNlRVBON1dlYkNvcmUxMUhUTUxFbGVtZW50RQogX19aTks2V2ViS2l0MTVXZWJF
ZGl0b3JDbGllbnQ4Y2FuUGFzdGVFUE43V2ViQ29yZTVGcmFtZUViCiBfX1pONldlYktpdDE1V2Vi
RWRpdG9yQ2xpZW50MjJzZXRJbnNlcnRpb25QYXN0ZWJvYXJkRVJLTjNXVEY2U3RyaW5nRQpJbmRl
eDogU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvbWFjL0NoYW5nZUxvZwkocmV2aXNpb24gMTcyNjk4KQorKysgU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjggQEAKKzIwMTQtMDgtMTcgIE1h
Y2llaiBTdGFjaG93aWFrICA8bWpzQGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgTlNVUkxGaWxl
VHlwZU1hcHBpbmdzIGRpcmVjdGx5IGluc3RlYWQgb2YgZGVwZW5kaW5nIG9uIFdlYktpdFN5c3Rl
bUludGVyZmFjZSB3cmFwcGVycyBmb3IgaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEzNjAzNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogTWlzYy9XZWJOU1ZpZXdFeHRyYXMubToKKyAgICAgICAgKC1b
TlNWaWV3IF93ZWJfRHJhZ0ltYWdlRm9yRWxlbWVudDpyZWN0OmV2ZW50OnBhc3RlYm9hcmQ6c291
cmNlOm9mZnNldDpdKTogUmVtb3ZlIGNvbW1lbnQKKyAgICAgICAgcmVmZXJlbmNlIHRvIG9ic29s
ZXRlIFdLU0kgZnVuY3Rpb24uCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50
ZXJmYWNlLm1tOgorICAgICAgICAoSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2UpOiBEb24ndCBp
bml0aWFsaXplIHRoZSBuby1sb25nZXItdXNlZCBXS0dldEV4dGVuc2lvbnNGb3JNSU1FVHlwZSwK
KyAgICAgICAgV0tHZXRQcmVmZXJyZWRFeHRlbnNpb25Gb3JNSU1FVHlwZSwgb3IgV0tHZXRNSU1F
VHlwZUZvckV4dGVuc2lvbgorICAgICAgICAqIFBsdWdpbnMvV2ViUGx1Z2luRGF0YWJhc2UubW06
CisgICAgICAgICgtW1dlYlBsdWdpbkRhdGFiYXNlIHBsdWdpbkZvckV4dGVuc2lvbjpdKTogSW5j
bHVkZSBTUEkgaGVhZGVyIGZyb20gV2ViQ29yZTsgdXNlCisgICAgICAgIE5TVVJMRmlsZVR5cGVN
YXBwaW5ncyBkaXJlY3RseSBpbnN0ZWFkIG9mIHZpYSBXS1NJIHdyYXBwZXIuCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW06CisgICAgICAgIChXZWJGcmFt
ZUxvYWRlckNsaWVudDo6b2JqZWN0Q29udGVudFR5cGUpOiBkaXR0bworICAgICAgICAqIFdlYlZp
ZXcvV2ViSFRNTFZpZXcubW06CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9pbWFnZUV4aXN0c0F0
UGF0aHM6XSk6IGRpdHRvCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAo
K1tXZWJWaWV3IF9zdXBwb3J0ZWRGaWxlRXh0ZW5zaW9uc10pOiBkaXR0bworICAgICAgICAoK1tX
ZWJWaWV3IHN1Z2dlc3RlZEZpbGVFeHRlbnNpb25Gb3JNSU1FVHlwZTpdKTogZGl0dG8KKyAgICAg
ICAgKCtbV2ViVmlldyBfTUlNRVR5cGVGb3JGaWxlOl0pOiBkaXR0bworCiAyMDE0LTA4LTE1ICBB
bmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMTY3
ODU2KTogYWRvYmUuY29tIG5vIGxvbmdlciBhYmxlIHRvIGxhdW5jaCBDcmVhdGUgQ2xvdWQgYXBw
IHVzaW5nIGEgVVJMIHdpdGggYSBjdXN0b20gc2NoZW1lCkluZGV4OiBTb3VyY2UvV2ViS2l0L21h
Yy9NaXNjL1dlYk5TVmlld0V4dHJhcy5tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFj
L01pc2MvV2ViTlNWaWV3RXh0cmFzLm0JKHJldmlzaW9uIDE3MjY5MSkKKysrIFNvdXJjZS9XZWJL
aXQvbWFjL01pc2MvV2ViTlNWaWV3RXh0cmFzLm0JKHdvcmtpbmcgY29weSkKQEAgLTE5NSw3ICsx
OTUsNyBAQCAtICh2b2lkKV93ZWJfRHJhZ0ltYWdlRm9yRWxlbWVudDooRE9NRWxlCiAgICAgfSBl
bHNlIHsKICAgICAgICAgLy8gRklYTUU6IFRoaXMgaGFzIGJlZW4gYnJva2VuIGZvciBhIHdoaWxl
LgogICAgICAgICAvLyBUaGVyZSdzIG5vIHdheSB0byBnZXQgdGhlIE1JTUUgdHlwZSBmb3IgdGhl
IGltYWdlIGZyb20gYSBET00gZWxlbWVudC4KLSAgICAgICAgLy8gVGhlIG9sZCBjb2RlIHVzZWQg
V0tHZXRQcmVmZXJyZWRFeHRlbnNpb25Gb3JNSU1FVHlwZShbaW1hZ2UgTUlNRVR5cGVdKTsKKyAg
ICAgICAgLy8gVGhlIG9sZCBjb2RlIHVzZWQgW2ltYWdlIE1JTUVUeXBlXTsKICAgICAgICAgTlNT
dHJpbmcgKmV4dGVuc2lvbiA9IEAiIjsKICAgICAgICAgZHJhZ0ltYWdlID0gW1tOU1dvcmtzcGFj
ZSBzaGFyZWRXb3Jrc3BhY2VdIGljb25Gb3JGaWxlVHlwZTpleHRlbnNpb25dOwogICAgICAgICBO
U1NpemUgb2Zmc2V0ID0gTlNNYWtlU2l6ZShbZHJhZ0ltYWdlIHNpemVdLndpZHRoIC0gV2ViRHJh
Z0ljb25SaWdodEluc2V0LCAtV2ViRHJhZ0ljb25Cb3R0b21JbnNldCk7CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L21hYy9QbHVnaW5zL1dlYlBsdWdpbkRhdGFiYXNlLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViUGx1Z2luRGF0YWJhc2UubW0JKHJldmlzaW9uIDE3
MjY5MSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViUGx1Z2luRGF0YWJhc2UubW0J
KHdvcmtpbmcgY29weSkKQEAgLTQyLDYgKzQyLDcgQEAKICNpbXBvcnQgIldlYlBsdWdpblBhY2th
Z2UuaCIKICNpbXBvcnQgIldlYlZpZXdQcml2YXRlLmgiCiAjaW1wb3J0ICJXZWJWaWV3SW50ZXJu
YWwuaCIKKyNpbXBvcnQgPFdlYkNvcmUvTlNVUkxGaWxlVHlwZU1hcHBpbmdzLmg+CiAjaW1wb3J0
IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAK
QEAgLTE3NSw3ICsxNzYsNyBAQCAtIChXZWJCYXNlUGx1Z2luUGFja2FnZSAqKXBsdWdpbkZvckV4
dGVuCiAgICAgICAgIC8vIElmIG5vIHBsdWctaW4gd2FzIGZvdW5kIGZyb20gdGhlIGV4dGVuc2lv
biwgYXR0ZW1wdCB0byBtYXAgZnJvbSB0aGUgZXh0ZW5zaW9uIHRvIGEgTUlNRSB0eXBlCiAgICAg
ICAgIC8vIGFuZCBmaW5kIHRoZSBhIHBsdWctaW4gZnJvbSB0aGUgTUlNRSB0eXBlLiBUaGlzIGlz
IGRvbmUgaW4gY2FzZSB0aGUgcGx1Zy1pbiBoYXMgbm90IGZ1bGx5IHNwZWNpZmllZAogICAgICAg
ICAvLyBhbiBleHRlbnNpb24gPC0+IE1JTUUgdHlwZSBtYXBwaW5nLgotICAgICAgICBOU1N0cmlu
ZyAqTUlNRVR5cGUgPSBXS0dldE1JTUVUeXBlRm9yRXh0ZW5zaW9uKGV4dGVuc2lvbik7CisgICAg
ICAgIE5TU3RyaW5nICpNSU1FVHlwZSA9IFtbTlNVUkxGaWxlVHlwZU1hcHBpbmdzIHNoYXJlZE1h
cHBpbmdzXSBNSU1FVHlwZUZvckV4dGVuc2lvbjpleHRlbnNpb25dOwogICAgICAgICBpZiAoW01J
TUVUeXBlIGxlbmd0aF0gPiAwKQogICAgICAgICAgICAgcGx1Z2luID0gW3NlbGYgcGx1Z2luRm9y
TUlNRVR5cGU6TUlNRVR5cGVdOwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCShyZXZpc2lv
biAxNzI2OTEpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5tbQkod29ya2luZyBjb3B5KQpAQCAtMTA5LDYgKzEwOSw3IEBACiAjaW1wb3J0
IDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0cnkuaD4KICNpbXBvcnQgPFdlYkNvcmUvTWFpbkZyYW1l
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL01vdXNlRXZlbnQuaD4KKyNpbXBvcnQgPFdlYkNvcmUvTlNV
UkxGaWxlVHlwZU1hcHBpbmdzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2UuaD4KICNpbXBvcnQg
PFdlYkNvcmUvUGx1Z2luVmlld0Jhc2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvUHJvdGVjdGlvblNw
YWNlLmg+CkBAIC0xNjIwLDcgKzE2MjEsNyBAQCBPYmplY3RDb250ZW50VHlwZSBXZWJGcmFtZUxv
YWRlckNsaWVudDo6CiAgICAgICAgIE5TVVJMICpVUkwgPSB1cmw7CiAgICAgICAgIE5TU3RyaW5n
ICpleHRlbnNpb24gPSBbW1VSTCBwYXRoXSBwYXRoRXh0ZW5zaW9uXTsKICAgICAgICAgaWYgKFtl
eHRlbnNpb24gbGVuZ3RoXSA+IDApIHsKLSAgICAgICAgICAgIHR5cGUgPSBXS0dldE1JTUVUeXBl
Rm9yRXh0ZW5zaW9uKGV4dGVuc2lvbik7CisgICAgICAgICAgICB0eXBlID0gW1tOU1VSTEZpbGVU
eXBlTWFwcGluZ3Mgc2hhcmVkTWFwcGluZ3NdIE1JTUVUeXBlRm9yRXh0ZW5zaW9uOmV4dGVuc2lv
bl07CiAgICAgICAgICAgICBpZiAodHlwZS5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgICAgICAv
LyBJZiBubyBNSU1FIHR5cGUgaXMgc3BlY2lmaWVkLCB1c2UgYSBwbHVnLWluIGlmIHdlIGhhdmUg
b25lIHRoYXQgY2FuIGhhbmRsZSB0aGUgZXh0ZW5zaW9uLgogICAgICAgICAgICAgICAgIGlmIChX
ZWJCYXNlUGx1Z2luUGFja2FnZSAqcGFja2FnZSA9IFtnZXRXZWJWaWV3KG1fd2ViRnJhbWUuZ2V0
KCkpIF9wbHVnaW5Gb3JFeHRlbnNpb246ZXh0ZW5zaW9uXSkgewpJbmRleDogU291cmNlL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVyZmFjZS5tbQko
cmV2aXNpb24gMTcyNjkxKQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
U3lzdGVtSW50ZXJmYWNlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC03MiwxOCArNzIsMTUgQEAgdm9p
ZCBJbml0V2ViQ29yZVN5c3RlbUludGVyZmFjZSh2b2lkKQogICAgIElOSVQoRHJhd01lZGlhVUlQ
YXJ0KTsKICAgICBJTklUKERyYXdNZWRpYVNsaWRlclRyYWNrKTsKICAgICBJTklUKERyYXdUZXh0
RmllbGRDZWxsRm9jdXNSaW5nKTsKLSAgICBJTklUKEdldEV4dGVuc2lvbnNGb3JNSU1FVHlwZSk7
CiAgICAgSU5JVChHZXRGb250SW5MYW5ndWFnZUZvckNoYXJhY3Rlcik7CiAgICAgSU5JVChHZXRG
b250SW5MYW5ndWFnZUZvclJhbmdlKTsKICAgICBJTklUKEdldEdseXBoVHJhbnNmb3JtZWRBZHZh
bmNlcyk7CiAjZW5kaWYKICAgICBJTklUKEdldEhUVFBSZXF1ZXN0UHJpb3JpdHkpOwotICAgIElO
SVQoR2V0TUlNRVR5cGVGb3JFeHRlbnNpb24pOwogICAgIElOSVQoR2V0TlNVUkxSZXNwb25zZUxh
c3RNb2RpZmllZERhdGUpOwogICAgIElOSVQoR2V0V2ViRGVmYXVsdENGU3RyaW5nRW5jb2Rpbmcp
OwogI2lmICFQTEFURk9STShJT1MpCiAgICAgSU5JVChTaWduZWRQdWJsaWNLZXlBbmRDaGFsbGVu
Z2VTdHJpbmcpOwotICAgIElOSVQoR2V0UHJlZmVycmVkRXh0ZW5zaW9uRm9yTUlNRVR5cGUpOwog
ICAgIElOSVQoR2V0V2hlZWxFdmVudERlbHRhcyk7CiAgICAgSU5JVChHZXROU0V2ZW50S2V5Q2hh
cik7CiAgICAgSU5JVChIaXRUZXN0TWVkaWFVSVBhcnQpOwpJbmRleDogU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCShyZXZpc2lvbiAxNzI2OTEpCisrKyBTb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMDIsNiAr
MTAyLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvTGVnYWN5V2ViQXJjaGl2ZS5oPgogI2ltcG9ydCA8
V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL01haW5GcmFtZS5o
PgorI2ltcG9ydCA8V2ViQ29yZS9OU1VSTEZpbGVUeXBlTWFwcGluZ3MuaD4KICNpbXBvcnQgPFdl
YkNvcmUvUGFnZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9SYW5nZS5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9SZW5kZXJWaWV3Lmg+CkBAIC03NjgsNyArNzY5LDcgQEAgLSAoQk9PTClfaW1hZ2VFeGlzdHNB
dFBhdGhzOihOU0FycmF5ICopcAogICAgIE5TU3RyaW5nICpwYXRoOwogICAgIAogICAgIHdoaWxl
ICgocGF0aCA9IFtlbnVtZXJhdG9yIG5leHRPYmplY3RdKSAhPSBuaWwpIHsKLSAgICAgICAgTlNT
dHJpbmcgKk1JTUVUeXBlID0gV0tHZXRNSU1FVHlwZUZvckV4dGVuc2lvbihbcGF0aCBwYXRoRXh0
ZW5zaW9uXSk7CisgICAgICAgIE5TU3RyaW5nICpNSU1FVHlwZSA9IFtbTlNVUkxGaWxlVHlwZU1h
cHBpbmdzIHNoYXJlZE1hcHBpbmdzXSBNSU1FVHlwZUZvckV4dGVuc2lvbjpbcGF0aCBwYXRoRXh0
ZW5zaW9uXV07CiAgICAgICAgIGlmIChNSU1FVHlwZVJlZ2lzdHJ5Ojppc1N1cHBvcnRlZEltYWdl
UmVzb3VyY2VNSU1FVHlwZShNSU1FVHlwZSkpCiAgICAgICAgICAgICByZXR1cm4gWUVTOwogICAg
IH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0JKHJldmlzaW9uIDE3MjY5
MSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQkod29ya2luZyBjb3B5
KQpAQCAtMTQ4LDYgKzE0OCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0cnku
aD4KICNpbXBvcnQgPFdlYkNvcmUvTWFpbkZyYW1lLmg+CiAjaW1wb3J0IDxXZWJDb3JlL01lbW9y
eVByZXNzdXJlSGFuZGxlci5oPgorI2ltcG9ydCA8V2ViQ29yZS9OU1VSTEZpbGVUeXBlTWFwcGlu
Z3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvTm9kZUxpc3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvTm90
aWZpY2F0aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL05vdGlmaWNhdGlvbkNvbnRyb2xsZXIuaD4K
QEAgLTEwOTgsNyArMTA5OSw3IEBAICsgKE5TQXJyYXkgKilfc3VwcG9ydGVkRmlsZUV4dGVuc2lv
bnMKICAgICBOU0VudW1lcmF0b3IgKmVudW1lcmF0b3IgPSBbTUlNRVR5cGVzIG9iamVjdEVudW1l
cmF0b3JdOwogICAgIE5TU3RyaW5nICpNSU1FVHlwZTsKICAgICB3aGlsZSAoKE1JTUVUeXBlID0g
W2VudW1lcmF0b3IgbmV4dE9iamVjdF0pICE9IG5pbCkgewotICAgICAgICBOU0FycmF5ICpleHRl
bnNpb25zRm9yVHlwZSA9IFdLR2V0RXh0ZW5zaW9uc0Zvck1JTUVUeXBlKE1JTUVUeXBlKTsKKyAg
ICAgICAgTlNBcnJheSAqZXh0ZW5zaW9uc0ZvclR5cGUgPSBbW05TVVJMRmlsZVR5cGVNYXBwaW5n
cyBzaGFyZWRNYXBwaW5nc10gZXh0ZW5zaW9uc0Zvck1JTUVUeXBlOk1JTUVUeXBlXTsKICAgICAg
ICAgaWYgKGV4dGVuc2lvbnNGb3JUeXBlKSB7CiAgICAgICAgICAgICBbZXh0ZW5zaW9ucyBhZGRP
YmplY3RzRnJvbUFycmF5OmV4dGVuc2lvbnNGb3JUeXBlXTsKICAgICAgICAgfQpAQCAtMTQ5NSw3
ICsxNDk2LDcgQEAgKyAoQk9PTCljYW5TaG93RmlsZTooTlNTdHJpbmcgKilwYXRoCiAjaWYgIVBM
QVRGT1JNKElPUykKICsgKE5TU3RyaW5nICopc3VnZ2VzdGVkRmlsZUV4dGVuc2lvbkZvck1JTUVU
eXBlOihOU1N0cmluZyAqKXR5cGUKIHsKLSAgICByZXR1cm4gV0tHZXRQcmVmZXJyZWRFeHRlbnNp
b25Gb3JNSU1FVHlwZSh0eXBlKTsKKyAgICByZXR1cm4gW1tOU1VSTEZpbGVUeXBlTWFwcGluZ3Mg
c2hhcmVkTWFwcGluZ3NdIHByZWZlcnJlZEV4dGVuc2lvbkZvck1JTUVUeXBlOnR5cGVdOwogfQog
I2VuZGlmCiAKQEAgLTE3OTgsNyArMTc5OSw3IEBAICsgKE5TU3RyaW5nICopX01JTUVUeXBlRm9y
RmlsZTooTlNTdHJpbmcKICNpZiAhUExBVEZPUk0oSU9TKQogICAgIC8vIEdldCB0aGUgTUlNRSB0
eXBlIGZyb20gdGhlIGV4dGVuc2lvbi4KICAgICBpZiAoW2V4dGVuc2lvbiBsZW5ndGhdICE9IDAp
IHsKLSAgICAgICAgTUlNRVR5cGUgPSBXS0dldE1JTUVUeXBlRm9yRXh0ZW5zaW9uKGV4dGVuc2lv
bik7CisgICAgICAgIE1JTUVUeXBlID0gW1tOU1VSTEZpbGVUeXBlTWFwcGluZ3Mgc2hhcmVkTWFw
cGluZ3NdIE1JTUVUeXBlRm9yRXh0ZW5zaW9uOmV4dGVuc2lvbl07CiAgICAgfQogI2VuZGlmCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236777</attachid>
            <date>2014-08-18 13:10:07 -0700</date>
            <delta_ts>2014-08-18 21:28:14 -0700</delta_ts>
            <desc>Attempt #3</desc>
            <filename>bug-136035-20140818130957.patch</filename>
            <type>text/plain</type>
            <size>24183</size>
            <attacher name="Maciej Stachowiak">mjs</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3MjY5OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDE0LTA4LTE3ICBNYWNpZWog
U3RhY2hvd2lhayAgPG1qc0BhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIE5TVVJMRmlsZVR5cGVN
YXBwaW5ncyBkaXJlY3RseSBpbnN0ZWFkIG9mIGRlcGVuZGluZyBvbiBXZWJLaXRTeXN0ZW1JbnRl
cmZhY2Ugd3JhcHBlcnMgZm9yIGl0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMzYwMzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOiBSZW1vdmUgcmVmZXJlbmNlIHRvIG5vIGxv
bmdlciBleGlzdGVudCBzdW1ib2xzLgorICAgICAgICAqIFdlYkNvcmUub3JkZXI6IGRpdHRvCisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBJbnN0YWxsIG5ldyBO
U1VSTEZpbGVUeWVNYXBwaW5ncy5oIGhlYWRlci4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvTUlN
RVR5cGVSZWdpc3RyeUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1JTUVUeXBlUmVnaXN0cnk6
OmdldE1JTUVUeXBlRm9yRXh0ZW5zaW9uKTogVXNlIE5TVVJMRmlsZVR5cGVNYXBwaW5ncworICAg
ICAgICBkaXJlY3RseSBpbnN0ZWFkIG9mIHZpYSBXS1NJIHdyYXBwZXIuCisgICAgICAgICogcGxh
dGZvcm0vbWFjL01JTUVUeXBlUmVnaXN0cnlNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpNSU1F
VHlwZVJlZ2lzdHJ5OjpnZXRNSU1FVHlwZUZvckV4dGVuc2lvbik6IGRpdHRvCisgICAgICAgIChX
ZWJDb3JlOjpNSU1FVHlwZVJlZ2lzdHJ5OjpnZXRFeHRlbnNpb25zRm9yTUlNRVR5cGUpOiBkaXR0
bworICAgICAgICAoV2ViQ29yZTo6TUlNRVR5cGVSZWdpc3RyeTo6Z2V0UHJlZmVycmVkRXh0ZW5z
aW9uRm9yTUlNRVR5cGUpOiBkaXR0bworICAgICAgICAqIHBsYXRmb3JtL21hYy9XZWJDb3JlU3lz
dGVtSW50ZXJmYWNlLmg6IFJlbW92ZSByZWZlcmVuY2VzIHRvIHRoZSBuby1sb25nZXItdXNlZAor
ICAgICAgICBXS0dldEV4dGVuc2lvbnNGb3JNSU1FVHlwZSwgV0tHZXRQcmVmZXJyZWRFeHRlbnNp
b25Gb3JNSU1FVHlwZSwgb3IgV0tHZXRNSU1FVHlwZUZvckV4dGVuc2lvbgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tOiBkaXR0bworICAgICAgICAqIHBs
YXRmb3JtL3NwaTogQWRkZWQuIFRoaXMgaXMgd2hlcmUgaGVhZGVycyB0byBkZWNsYXJlIFNQSSBn
by4KKyAgICAgICAgKiBwbGF0Zm9ybS9zcGkvY29jb2E6IEFkZGVkLiBTZWUgYWJvdmUuCisgICAg
ICAgICogcGxhdGZvcm0vc3BpL2NvY29hL05TVVJMRmlsZVR5cGVNYXBwaW5ncy5oOiBBZGRlZC4g
SGVhZGVyIHRvIGRlY2xhcmUKKyAgICAgICAgdGhlIGludGVybmFsIGNsYXNzIE5TVVJMRmlsZVR5
cGVNYXBwaW5ncyBhbmQgc29tZSBvZiBpdHMgbWV0aG9kcy4KKwogMjAxNC0wOC0xNSAgQW5keSBF
c3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjE2Nzg1Nik6
IGFkb2JlLmNvbSBubyBsb25nZXIgYWJsZSB0byBsYXVuY2ggQ3JlYXRlIENsb3VkIGFwcCB1c2lu
ZyBhIFVSTCB3aXRoIGEgY3VzdG9tIHNjaGVtZQpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4JKHJl
dmlzaW9uIDE3MjY5MSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCSh3b3JraW5n
IGNvcHkpCkBAIC0yMTA2LDcgKzIxMDYsNiBAQCBfd2tHZXRDRlVSTFJlc3BvbnNlTUlNRVR5cGUK
IF93a0dldENGVVJMUmVzcG9uc2VVUkwKIF93a0dldEhUVFBDb29raWVBY2NlcHRQb2xpY3kKIF93
a0dldEhUVFBSZXF1ZXN0UHJpb3JpdHkKLV93a0dldE1JTUVUeXBlRm9yRXh0ZW5zaW9uCiBfd2tH
ZXROU1VSTFJlc3BvbnNlTGFzdE1vZGlmaWVkRGF0ZQogX3drR2V0VXNlclRvQmFzZUNUTQogX3dr
R2V0V2ViRGVmYXVsdENGU3RyaW5nRW5jb2RpbmcKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUub3JkZXIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgkocmV2
aXNpb24gMTcyNjkxKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgkod29ya2luZyBj
b3B5KQpAQCAtMzA2MDksNyArMzA2MDksNiBAQCBfd2tNZWRpYUNvbnRyb2xsZXJUaGVtZUF2YWls
YWJsZQogX3drR2V0UHJlZmVycmVkRXh0ZW5zaW9uRm9yTUlNRVR5cGUKIF93a1NpZ25lZFB1Ymxp
Y0tleUFuZENoYWxsZW5nZVN0cmluZwogX3drR2V0RXh0ZW5zaW9uc0Zvck1JTUVUeXBlCi1fd2tH
ZXRNSU1FVHlwZUZvckV4dGVuc2lvbgogX3drR2V0TlNVUkxSZXNwb25zZUxhc3RNb2RpZmllZERh
dGUKIF93a0dldFdoZWVsRXZlbnREZWx0YXMKIF93a0dldE5TRXZlbnRLZXlDaGFyCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShy
ZXZpc2lvbiAxNzI2OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTIxNzcsNiArMjE3Nyw3IEBACiAJCTY1NzFE
Q0M4MTM4NUU2QTQwMDcwMkREMCAvKiBNZW1vcnlQcmVzc3VyZUhhbmRsZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1N0VEQTA3MTM4NUNCOTcwMDRF
MDY0NSAvKiBNZW1vcnlQcmVzc3VyZUhhbmRsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2NTdFREEwODEzODVDQjk3MDA0RTA2NDUgLyogTWVt
b3J5UHJlc3N1cmVIYW5kbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDY1N0VEQTA2MTM4NUNCOTcwMDRFMDY0NSAvKiBNZW1vcnlQcmVzc3VyZUhh
bmRsZXIuY3BwICovOyB9OwogCQk2NTg0MzY4NjBBRTAxQjc0MDBFNTM3NTMgLyogRnJhbWVMb2Fk
UmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NjU4NDM2ODUwQUUwMUI3NDAwRTUzNzUzIC8qIEZyYW1lTG9hZFJlcXVlc3QuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk2NThGNTQwMzE5QTFDOTI0
MDA4OEZDOTIgLyogTlNVUkxGaWxlVHlwZU1hcHBpbmdzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTNFRjgzODE5QTA0M0FFMDA1MjIwMkMgLyogTlNV
UkxGaWxlVHlwZU1hcHBpbmdzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJNjU5MzkyMzcwOUFFNDM0NjAwMkM1MzFGIC8qIFVSTC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTkzOTIzNTA5QUU0MzQ2
MDAyQzUzMUYgLyogVVJMLmNwcCAqLzsgfTsKIAkJNjU5MzkyMzgwOUFFNDM0NjAwMkM1MzFGIC8q
IFVSTC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU5
MzkyMzYwOUFFNDM0NjAwMkM1MzFGIC8qIFVSTC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTY1OTM5MjNBMDlBRTQzNUMwMDJDNTMxRiAvKiBVUkxN
YWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTkz
OTIzOTA5QUU0MzVDMDAyQzUzMUYgLyogVVJMTWFjLm1tICovOyB9OwpAQCAtOTI3MSw2ICs5Mjcy
LDcgQEAKIAkJNjUxNUVDOEYwRDk3MjNGRjAwNjNENDlBIC8qIEpTU1ZHQWx0R2x5cGhFbGVtZW50
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU1ZHQWx0R2x5cGhF
bGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjUxNUVDOTAwRDk3MjNG
RjAwNjNENDlBIC8qIEpTU1ZHQWx0R2x5cGhFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTU1ZHQWx0R2x5cGhFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTY1MkZCQkJCMERFMjdDQjYwMDAxRDM4NiAvKiBKU0RPTVdpbmRvd0N1c3RvbS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RPTVdpbmRvd0N1c3RvbS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2NTNFRjgzODE5QTA0M0FFMDA1MjIwMkMgLyog
TlNVUkxGaWxlVHlwZU1hcHBpbmdzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE5TVVJMRmlsZVR5cGVNYXBwaW5ncy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2
NTQ4RTI0ODA5RTFFMDREMDBBRjgwMjAgLyogRG9jdW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBEb2N1bWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1NTBC
NjkzMDk5REYwMjcwMDkwRDc4MSAvKiBDREFUQVNlY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENEQVRBU2VjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTY1NTBCNjk0MDk5REYwMjcwMDkwRDc4MSAvKiBDREFUQVNlY3Rpb24uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENEQVRBU2VjdGlvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTYyMTYsNiArMTYyMTgsMjIgQEAKIAkJCXBhdGggPSBw
bHVnaW5zOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJNjUzRUY4MzYxOUEw
NDNBRTAwNTIyMDJDIC8qIHNwaSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRy
ZW4gPSAoCisJCQkJNjUzRUY4MzcxOUEwNDNBRTAwNTIyMDJDIC8qIGNvY29hICovLAorCQkJKTsK
KwkJCXBhdGggPSBzcGk7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQk2NTNF
RjgzNzE5QTA0M0FFMDA1MjIwMkMgLyogY29jb2EgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsK
KwkJCWNoaWxkcmVuID0gKAorCQkJCTY1M0VGODM4MTlBMDQzQUUwMDUyMjAyQyAvKiBOU1VSTEZp
bGVUeXBlTWFwcGluZ3MuaCAqLywKKwkJCSk7CisJCQlwYXRoID0gY29jb2E7CisJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOworCQl9OwogCQk2NTY1ODBFQzA5RDEyQjIwMDAwRTYxRDcgLyogRGVy
aXZlZCBTb3VyY2VzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgK
QEAgLTIxMjk0LDYgKzIxMzEyLDcgQEAKIAkJCQk2NTZCODRENzBBRUExQ0U5MDBBMDk1QjQgLyog
bmV0d29yayAqLywKIAkJCQk1MTYwMzAwOTBDQzQyNDU0MDBDOEFDMjUgLyogcG9zaXggKi8sCiAJ
CQkJMUEyRTZFNTYwQ0M1NTFFMDAwNEEyMDYyIC8qIHNxbCAqLywKKwkJCQk2NTNFRjgzNjE5QTA0
M0FFMDA1MjIwMkMgLyogc3BpICovLAogCQkJCUIyQzNEOUVDMEQwMDZDMUQwMEVGNkYyNiAvKiB0
ZXh0ICovLAogCQkJCTQ5QUUyRDk0MTM0RUU1RjkwMDcyOTIwQSAvKiBDYWxjdWxhdGlvblZhbHVl
LmNwcCAqLywKIAkJCQk0OUFFMkQ5NTEzNEVFNUY5MDA3MjkyMEEgLyogQ2FsY3VsYXRpb25WYWx1
ZS5oICovLApAQCAtMjUyNzYsNiArMjUyOTUsNyBAQAogCQkJCUY1OTczREUwMTVDRkIyMDMwMDI3
RjgwNCAvKiBMb2NhbGVNYWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTc2MzNBNzI2MTNEOEIzM0Ew
MDg1MDFCNiAvKiBMb2NhbGVUb1NjcmlwdE1hcHBpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1
MTZFOEI3MTM2RTA0REIwMDc2QzNDMCAvKiBMb2NhbGl6ZWREYXRlQ2FjaGUuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTY1OEY1NDAzMTlBMUM5MjQwMDg4RkM5MiAvKiBOU1VSTEZpbGVUeXBlTWFwcGlu
Z3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNTIwN0JFMDlCRDQxMEEwMEYyMDM4RCAvKiBMb2Nh
bGl6ZWRTdHJpbmdzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0UxQzQxQjBEOTgyOTgwMDAzQjAy
RjIgLyogTG9jYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MjM5RTAxMDlCM0NGOEEwMEI2
MDY0MSAvKiBMb2dnaW5nLmggaW4gSGVhZGVycyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9NSU1FVHlwZVJlZ2lzdHJ5SU9TLm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9NSU1FVHlwZVJlZ2lzdHJ5SU9TLm1tCShyZXZpc2lvbiAxNzI2
OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTUlNRVR5cGVSZWdpc3RyeUlPUy5t
bQkod29ya2luZyBjb3B5KQpAQCAtMjYsMTMgKzI2LDE0IEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgogCi0jaW5jbHVkZSAiV2ViQ29yZVN5c3Rl
bUludGVyZmFjZS5oIgorI2luY2x1ZGUgIk5TVVJMRmlsZVR5cGVNYXBwaW5ncy5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSAKIHsKIFN0cmluZyBNSU1FVHlwZVJlZ2lzdHJ5OjpnZXRNSU1FVHlwZUZv
ckV4dGVuc2lvbihjb25zdCBTdHJpbmcgJmV4dCkKIHsKICAgICByZXR1cm4gd2tHZXRNSU1FVHlw
ZUZvckV4dGVuc2lvbihleHQpOworICAgIHJldHVybiBbW05TVVJMRmlsZVR5cGVNYXBwaW5ncyBz
aGFyZWRNYXBwaW5nc10gTUlNRVR5cGVGb3JFeHRlbnNpb246KE5TU3RyaW5nICopZXh0XTsKIH0K
IAogVmVjdG9yPFN0cmluZz4gTUlNRVR5cGVSZWdpc3RyeTo6Z2V0RXh0ZW5zaW9uc0Zvck1JTUVU
eXBlKGNvbnN0IFN0cmluZyYgLyp0eXBlKi8pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvTUlNRVR5cGVSZWdpc3RyeU1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvTUlNRVR5cGVSZWdpc3RyeU1hYy5tbQkocmV2aXNpb24gMTcyNjkxKQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL01JTUVUeXBlUmVnaXN0cnlNYWMubW0JKHdv
cmtpbmcgY29weSkKQEAgLTI3LDIyICsyNywyMiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKIAotI2luY2x1ZGUgIldlYkNvcmVTeXN0ZW1JbnRl
cmZhY2UuaCIKKyNpbmNsdWRlICJOU1VSTEZpbGVUeXBlTWFwcGluZ3MuaCIKICNpbmNsdWRlIDx3
dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIAogewogCi1TdHJpbmcgTUlNRVR5cGVSZWdpc3RyeTo6Z2V0TUlNRVR5cGVGb3JF
eHRlbnNpb24oY29uc3QgU3RyaW5nICZleHQpCitTdHJpbmcgTUlNRVR5cGVSZWdpc3RyeTo6Z2V0
TUlNRVR5cGVGb3JFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBleHQpCiB7CiAgICAgQVNTRVJUKGlz
TWFpblRocmVhZCgpKTsKLSAgICByZXR1cm4gd2tHZXRNSU1FVHlwZUZvckV4dGVuc2lvbihleHQp
OworICAgIHJldHVybiBbW05TVVJMRmlsZVR5cGVNYXBwaW5ncyBzaGFyZWRNYXBwaW5nc10gTUlN
RVR5cGVGb3JFeHRlbnNpb246KE5TU3RyaW5nICopZXh0XTsKIH0KIAogVmVjdG9yPFN0cmluZz4g
TUlNRVR5cGVSZWdpc3RyeTo6Z2V0RXh0ZW5zaW9uc0Zvck1JTUVUeXBlKGNvbnN0IFN0cmluZyYg
dHlwZSkKIHsKLSAgICBOU0FycmF5ICpzdHJpbmdzQXJyYXkgPSB3a0dldEV4dGVuc2lvbnNGb3JN
SU1FVHlwZSh0eXBlKTsKKyAgICBOU0FycmF5ICpzdHJpbmdzQXJyYXkgPSBbW05TVVJMRmlsZVR5
cGVNYXBwaW5ncyBzaGFyZWRNYXBwaW5nc10gZXh0ZW5zaW9uc0Zvck1JTUVUeXBlOihOU1N0cmlu
ZyAqKXR5cGVdOwogICAgIFZlY3RvcjxTdHJpbmc+IHN0cmluZ3NWZWN0b3IgPSBWZWN0b3I8U3Ry
aW5nPigpOwogICAgIHVuc2lnbmVkIGNvdW50ID0gW3N0cmluZ3NBcnJheSBjb3VudF07CiAgICAg
aWYgKGNvdW50ID4gMCkgewpAQCAtNTYsNyArNTYsNyBAQCBWZWN0b3I8U3RyaW5nPiBNSU1FVHlw
ZVJlZ2lzdHJ5OjpnZXRFeHRlCiAKIFN0cmluZyBNSU1FVHlwZVJlZ2lzdHJ5OjpnZXRQcmVmZXJy
ZWRFeHRlbnNpb25Gb3JNSU1FVHlwZShjb25zdCBTdHJpbmcmIHR5cGUpCiB7Ci0gICAgcmV0dXJu
IHdrR2V0UHJlZmVycmVkRXh0ZW5zaW9uRm9yTUlNRVR5cGUodHlwZSk7CisgICAgcmV0dXJuIFtb
TlNVUkxGaWxlVHlwZU1hcHBpbmdzIHNoYXJlZE1hcHBpbmdzXSBwcmVmZXJyZWRFeHRlbnNpb25G
b3JNSU1FVHlwZTooTlNTdHJpbmcgKil0eXBlXTsKIH0KIAogYm9vbCBNSU1FVHlwZVJlZ2lzdHJ5
Ojppc0FwcGxpY2F0aW9uUGx1Z2luTUlNRVR5cGUoY29uc3QgU3RyaW5nJiBNSU1FVHlwZSkKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1J
bnRlcmZhY2UuaAkocmV2aXNpb24gMTcyNjkxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaAkod29ya2luZyBjb3B5KQpAQCAtMTcxLDEwICsx
NzEsNyBAQCBleHRlcm4gdm9pZCAoKndrRHJhd01lZGlhU2xpZGVyVHJhY2spKENHCiAgICAgZmxv
YXQgZHVyYXRpb24sIHVuc2lnbmVkIHN0YXRlKTsKIGV4dGVybiB2b2lkICgqd2tEcmF3TWVkaWFV
SVBhcnQpKGludCBwYXJ0LCBDR0NvbnRleHRSZWYgY29udGV4dCwgQ0dSZWN0IHJlY3QsIHVuc2ln
bmVkIHN0YXRlKTsKIGV4dGVybiBDRlN0cmluZ1JlZiAoKndrU2lnbmVkUHVibGljS2V5QW5kQ2hh
bGxlbmdlU3RyaW5nKSh1bnNpZ25lZCBrZXlTaXplLCBDRlN0cmluZ1JlZiBjaGFsbGVuZ2UsIENG
U3RyaW5nUmVmIGtleURlc2NyaXB0aW9uKTsKLWV4dGVybiBOU1N0cmluZyogKCp3a0dldFByZWZl
cnJlZEV4dGVuc2lvbkZvck1JTUVUeXBlKShOU1N0cmluZyopOwotZXh0ZXJuIE5TQXJyYXkqICgq
d2tHZXRFeHRlbnNpb25zRm9yTUlNRVR5cGUpKE5TU3RyaW5nKik7CiAjZW5kaWYKLWV4dGVybiBO
U1N0cmluZyogKCp3a0dldE1JTUVUeXBlRm9yRXh0ZW5zaW9uKShOU1N0cmluZyopOwogI2lmICFQ
TEFURk9STShJT1MpCiBleHRlcm4gQVRTVUZvbnRJRCAoKndrR2V0TlNGb250QVRTVUZvbnRJZCko
TlNGb250Kik7CiBleHRlcm4gZG91YmxlICgqd2tHZXROU1VSTFJlc3BvbnNlQ2FsY3VsYXRlZEV4
cGlyYXRpb24pKE5TVVJMUmVzcG9uc2UgKnJlc3BvbnNlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tCShyZXZp
c2lvbiAxNzI2OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3Rl
bUludGVyZmFjZS5tbQkod29ya2luZyBjb3B5KQpAQCAtNjMsNyArNjMsNiBAQCB2b2lkICgqd2tX
aW5kb3dTZXRTY2FsZWRGcmFtZSkoTlNXaW5kb3cgCiBOU1N0cmluZyogKCp3a0dldFByZWZlcnJl
ZEV4dGVuc2lvbkZvck1JTUVUeXBlKShOU1N0cmluZyopOwogQ0ZTdHJpbmdSZWYgKCp3a1NpZ25l
ZFB1YmxpY0tleUFuZENoYWxsZW5nZVN0cmluZykodW5zaWduZWQga2V5U2l6ZSwgQ0ZTdHJpbmdS
ZWYgY2hhbGxlbmdlLCBDRlN0cmluZ1JlZiBrZXlEZXNjcmlwdGlvbik7CiBOU0FycmF5KiAoKndr
R2V0RXh0ZW5zaW9uc0Zvck1JTUVUeXBlKShOU1N0cmluZyopOwotTlNTdHJpbmcqICgqd2tHZXRN
SU1FVHlwZUZvckV4dGVuc2lvbikoTlNTdHJpbmcqKTsKIE5TVGltZUludGVydmFsICgqd2tHZXRO
U1VSTFJlc3BvbnNlQ2FsY3VsYXRlZEV4cGlyYXRpb24pKE5TVVJMUmVzcG9uc2UgKnJlc3BvbnNl
KTsKIE5TRGF0ZSAqKCp3a0dldE5TVVJMUmVzcG9uc2VMYXN0TW9kaWZpZWREYXRlKShOU1VSTFJl
c3BvbnNlICpyZXNwb25zZSk7CiBCT09MICgqd2tHZXROU1VSTFJlc3BvbnNlTXVzdFJldmFsaWRh
dGUpKE5TVVJMUmVzcG9uc2UgKnJlc3BvbnNlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3NwaS9jb2NvYS9OU1VSTEZpbGVUeXBlTWFwcGluZ3MuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY29jb2EvTlNVUkxGaWxlVHlwZU1hcHBpbmdzLmgJKHJl
dmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY29jb2EvTlNVUkxGaWxl
VHlwZU1hcHBpbmdzLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBOU1VSTEZpbGVU
eXBlTWFwcGluZ3NfaAorI2RlZmluZSBOU1VSTEZpbGVUeXBlTWFwcGluZ3NfaAorCisjaWYgX19o
YXNfaW5jbHVkZSg8Rm91bmRhdGlvbi9OU1VSTEZpbGVUeXBlTWFwcGluZ3MuaD4pCisjaW1wb3J0
IDxGb3VuZGF0aW9uL05TVVJMRmlsZVR5cGVNYXBwaW5ncy5oPgorI2Vsc2UKKworLy8gRklYTUU6
IFdlIHNob3VsZCB1c2UgVVRJIGluc3RlYWQsIGJ1dCBpdCdzIG1pc3Npbmcgc29tZSBtYXBwaW5n
cyB0aGF0IHRoaXMgb2xkIFNQSSBrbm93cy4KKy8vIFJlbW92ZSB0aGVzZSBtZXRob2RzIG9uY2Ug
PHJkYXI6Ly9wcm9ibGVtLzE4MDQyMTg0PiBpcyBmaXhlZC4KK0BpbnRlcmZhY2UgTlNVUkxGaWxl
VHlwZU1hcHBpbmdzCisrIChOU1VSTEZpbGVUeXBlTWFwcGluZ3MgKilzaGFyZWRNYXBwaW5nczsK
Ky0gKE5TU3RyaW5nICopTUlNRVR5cGVGb3JFeHRlbnNpb246KE5TU3RyaW5nICopZXh0OworLSAo
TlNTdHJpbmcgKilwcmVmZXJyZWRFeHRlbnNpb25Gb3JNSU1FVHlwZTooTlNTdHJpbmcgKil0eXBl
OworLSAoTlNBcnJheSAqKWV4dGVuc2lvbnNGb3JNSU1FVHlwZTooTlNTdHJpbmcgKil0eXBlOwor
QGVuZAorCisjZW5kaWYKKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNzI2OTgp
CisrKyBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwx
NSBAQAorMjAxNC0wOC0xNyAgTWFjaWVqIFN0YWNob3dpYWsgIDxtanNAYXBwbGUuY29tPgorCisg
ICAgICAgIFVzZSBOU1VSTEZpbGVUeXBlTWFwcGluZ3MgZGlyZWN0bHkgaW5zdGVhZCBvZiBkZXBl
bmRpbmcgb24gV2ViS2l0U3lzdGVtSW50ZXJmYWNlIHdyYXBwZXJzIGZvciBpdAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2MDM1CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW06CisgICAgICAgIChJbml0V2ViQ29y
ZVN5c3RlbUludGVyZmFjZSk6IERvbid0IGluaXRpYWxpemUgdGhlIG5vLWxvbmdlci11c2VkIFdL
R2V0RXh0ZW5zaW9uc0Zvck1JTUVUeXBlLAorICAgICAgICBXS0dldFByZWZlcnJlZEV4dGVuc2lv
bkZvck1JTUVUeXBlLCBvciBXS0dldE1JTUVUeXBlRm9yRXh0ZW5zaW9uCisgICAgICAgICogbWFj
L1dlYktpdDIub3JkZXI6IFJlbW92ZSBleHBvcnRzIHJlbGF0ZWQgdG8gYWJvdmUuCisKIDIwMTQt
MDgtMTYgIFByYXRpayBTb2xhbmtpICA8cHNvbGFua2lAYXBwbGUuY29tPgogCiAgICAgICAgIFJl
bmFtZSBEaXNrQ2FjaGVNb25pdG9yIHRvIE5ldHdvcmtEaXNrQ2FjaGVNb25pdG9yCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRl
cmZhY2UubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9tYWMvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCShyZXZpc2lvbiAxNzI2OTEpCisrKyBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRl
cmZhY2UubW0JKHdvcmtpbmcgY29weSkKQEAgLTY1LDcgKzY1LDYgQEAgdm9pZCBJbml0V2ViQ29y
ZVN5c3RlbUludGVyZmFjZSh2b2lkKQogICAgICAgICBJTklUKERyYXdNZWRpYVNsaWRlclRyYWNr
KTsKICAgICAgICAgSU5JVChEcmF3TWVkaWFVSVBhcnQpOwogICAgICAgICBJTklUKERyYXdUZXh0
RmllbGRDZWxsRm9jdXNSaW5nKTsKLSAgICAgICAgSU5JVChHZXRFeHRlbnNpb25zRm9yTUlNRVR5
cGUpOwogICAgICAgICBJTklUKEdldEZvbnRJbkxhbmd1YWdlRm9yQ2hhcmFjdGVyKTsKICAgICAg
ICAgSU5JVChHZXRGb250SW5MYW5ndWFnZUZvclJhbmdlKTsKICAgICAgICAgSU5JVChHZXRHbHlw
aFRyYW5zZm9ybWVkQWR2YW5jZXMpOwpAQCAtNzMsMTEgKzcyLDkgQEAgdm9pZCBJbml0V2ViQ29y
ZVN5c3RlbUludGVyZmFjZSh2b2lkKQogI2VuZGlmCiAgICAgICAgIElOSVQoR2V0VmVydGljYWxH
bHlwaHNGb3JDaGFyYWN0ZXJzKTsKICAgICAgICAgSU5JVChHZXRIVFRQUmVxdWVzdFByaW9yaXR5
KTsKLSAgICAgICAgSU5JVChHZXRNSU1FVHlwZUZvckV4dGVuc2lvbik7CiAgICAgICAgIElOSVQo
R2V0TlNVUkxSZXNwb25zZUxhc3RNb2RpZmllZERhdGUpOwogI2lmICFQTEFURk9STShJT1MpCiAg
ICAgICAgIElOSVQoU2lnbmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5nKTsKLSAgICAgICAg
SU5JVChHZXRQcmVmZXJyZWRFeHRlbnNpb25Gb3JNSU1FVHlwZSk7CiAjZW5kaWYKICAgICAgICAg
SU5JVChHZXRVc2VyVG9CYXNlQ1RNKTsKICAgICAgICAgSU5JVChHZXRXZWJEZWZhdWx0Q0ZTdHJp
bmdFbmNvZGluZyk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9tYWMvV2ViS2l0Mi5vcmRlcgo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9tYWMvV2ViS2l0Mi5vcmRlcgkocmV2aXNpb24gMTcy
NjkxKQorKysgU291cmNlL1dlYktpdDIvbWFjL1dlYktpdDIub3JkZXIJKHdvcmtpbmcgY29weSkK
QEAgLTg2NjgsNyArODY2OCw2IEBAIF9fWk4zV1RGOVJldGFpblB0cklQSzdfX0NGVVJMRWFTRVMz
XwogX1dLQnVuZGxlR2FyYmFnZUNvbGxlY3RKYXZhU2NyaXB0T2JqZWN0cwogX19aTjZXZWJLaXQx
NEluamVjdGVkQnVuZGxlMzFnYXJiYWdlQ29sbGVjdEphdmFTY3JpcHRPYmplY3RzRXYKIF9fWk5L
NldlYktpdDE1V2ViRWRpdG9yQ2xpZW50MTBjYW5Db3B5Q3V0RVBON1dlYkNvcmU1RnJhbWVFYgot
X1dLR2V0RXh0ZW5zaW9uc0Zvck1JTUVUeXBlCiBfX1pONldlYktpdDE1V2ViRWRpdG9yQ2xpZW50
MjVzaG91bGRTaG93RGVsZXRlSW50ZXJmYWNlRVBON1dlYkNvcmUxMUhUTUxFbGVtZW50RQogX19a
Tks2V2ViS2l0MTVXZWJFZGl0b3JDbGllbnQ4Y2FuUGFzdGVFUE43V2ViQ29yZTVGcmFtZUViCiBf
X1pONldlYktpdDE1V2ViRWRpdG9yQ2xpZW50MjJzZXRJbnNlcnRpb25QYXN0ZWJvYXJkRVJLTjNX
VEY2U3RyaW5nRQpJbmRleDogU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkocmV2aXNpb24gMTcyNjk4KQorKysgU291
cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjggQEAK
KzIwMTQtMDgtMTcgIE1hY2llaiBTdGFjaG93aWFrICA8bWpzQGFwcGxlLmNvbT4KKworICAgICAg
ICBVc2UgTlNVUkxGaWxlVHlwZU1hcHBpbmdzIGRpcmVjdGx5IGluc3RlYWQgb2YgZGVwZW5kaW5n
IG9uIFdlYktpdFN5c3RlbUludGVyZmFjZSB3cmFwcGVycyBmb3IgaXQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNjAzNQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTWlzYy9XZWJOU1ZpZXdFeHRyYXMu
bToKKyAgICAgICAgKC1bTlNWaWV3IF93ZWJfRHJhZ0ltYWdlRm9yRWxlbWVudDpyZWN0OmV2ZW50
OnBhc3RlYm9hcmQ6c291cmNlOm9mZnNldDpdKTogUmVtb3ZlIGNvbW1lbnQKKyAgICAgICAgcmVm
ZXJlbmNlIHRvIG9ic29sZXRlIFdLU0kgZnVuY3Rpb24uCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1tOgorICAgICAgICAoSW5pdFdlYkNvcmVTeXN0ZW1JbnRl
cmZhY2UpOiBEb24ndCBpbml0aWFsaXplIHRoZSBuby1sb25nZXItdXNlZCBXS0dldEV4dGVuc2lv
bnNGb3JNSU1FVHlwZSwKKyAgICAgICAgV0tHZXRQcmVmZXJyZWRFeHRlbnNpb25Gb3JNSU1FVHlw
ZSwgb3IgV0tHZXRNSU1FVHlwZUZvckV4dGVuc2lvbgorICAgICAgICAqIFBsdWdpbnMvV2ViUGx1
Z2luRGF0YWJhc2UubW06CisgICAgICAgICgtW1dlYlBsdWdpbkRhdGFiYXNlIHBsdWdpbkZvckV4
dGVuc2lvbjpdKTogSW5jbHVkZSBTUEkgaGVhZGVyIGZyb20gV2ViQ29yZTsgdXNlCisgICAgICAg
IE5TVVJMRmlsZVR5cGVNYXBwaW5ncyBkaXJlY3RseSBpbnN0ZWFkIG9mIHZpYSBXS1NJIHdyYXBw
ZXIuCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW06Cisg
ICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6b2JqZWN0Q29udGVudFR5cGUpOiBkaXR0bwor
ICAgICAgICAqIFdlYlZpZXcvV2ViSFRNTFZpZXcubW06CisgICAgICAgICgtW1dlYkhUTUxWaWV3
IF9pbWFnZUV4aXN0c0F0UGF0aHM6XSk6IGRpdHRvCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3
Lm1tOgorICAgICAgICAoK1tXZWJWaWV3IF9zdXBwb3J0ZWRGaWxlRXh0ZW5zaW9uc10pOiBkaXR0
bworICAgICAgICAoK1tXZWJWaWV3IHN1Z2dlc3RlZEZpbGVFeHRlbnNpb25Gb3JNSU1FVHlwZTpd
KTogZGl0dG8KKyAgICAgICAgKCtbV2ViVmlldyBfTUlNRVR5cGVGb3JGaWxlOl0pOiBkaXR0bwor
CiAyMDE0LTA4LTE1ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBS
RUdSRVNTSU9OIChyMTY3ODU2KTogYWRvYmUuY29tIG5vIGxvbmdlciBhYmxlIHRvIGxhdW5jaCBD
cmVhdGUgQ2xvdWQgYXBwIHVzaW5nIGEgVVJMIHdpdGggYSBjdXN0b20gc2NoZW1lCkluZGV4OiBT
b3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYk5TVmlld0V4dHJhcy5tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViTlNWaWV3RXh0cmFzLm0JKHJldmlzaW9uIDE3MjY5MSkK
KysrIFNvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViTlNWaWV3RXh0cmFzLm0JKHdvcmtpbmcgY29w
eSkKQEAgLTE5NSw3ICsxOTUsNyBAQCAtICh2b2lkKV93ZWJfRHJhZ0ltYWdlRm9yRWxlbWVudDoo
RE9NRWxlCiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8gRklYTUU6IFRoaXMgaGFzIGJlZW4gYnJv
a2VuIGZvciBhIHdoaWxlLgogICAgICAgICAvLyBUaGVyZSdzIG5vIHdheSB0byBnZXQgdGhlIE1J
TUUgdHlwZSBmb3IgdGhlIGltYWdlIGZyb20gYSBET00gZWxlbWVudC4KLSAgICAgICAgLy8gVGhl
IG9sZCBjb2RlIHVzZWQgV0tHZXRQcmVmZXJyZWRFeHRlbnNpb25Gb3JNSU1FVHlwZShbaW1hZ2Ug
TUlNRVR5cGVdKTsKKyAgICAgICAgLy8gVGhlIG9sZCBjb2RlIHVzZWQgW2ltYWdlIE1JTUVUeXBl
XTsKICAgICAgICAgTlNTdHJpbmcgKmV4dGVuc2lvbiA9IEAiIjsKICAgICAgICAgZHJhZ0ltYWdl
ID0gW1tOU1dvcmtzcGFjZSBzaGFyZWRXb3Jrc3BhY2VdIGljb25Gb3JGaWxlVHlwZTpleHRlbnNp
b25dOwogICAgICAgICBOU1NpemUgb2Zmc2V0ID0gTlNNYWtlU2l6ZShbZHJhZ0ltYWdlIHNpemVd
LndpZHRoIC0gV2ViRHJhZ0ljb25SaWdodEluc2V0LCAtV2ViRHJhZ0ljb25Cb3R0b21JbnNldCk7
CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYlBsdWdpbkRhdGFiYXNlLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViUGx1Z2luRGF0YWJhc2Uu
bW0JKHJldmlzaW9uIDE3MjY5MSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViUGx1
Z2luRGF0YWJhc2UubW0JKHdvcmtpbmcgY29weSkKQEAgLTQyLDYgKzQyLDcgQEAKICNpbXBvcnQg
IldlYlBsdWdpblBhY2thZ2UuaCIKICNpbXBvcnQgIldlYlZpZXdQcml2YXRlLmgiCiAjaW1wb3J0
ICJXZWJWaWV3SW50ZXJuYWwuaCIKKyNpbXBvcnQgPFdlYkNvcmUvTlNVUkxGaWxlVHlwZU1hcHBp
bmdzLmg+CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQgPHd0Zi9B
c3NlcnRpb25zLmg+CiAKQEAgLTE3NSw3ICsxNzYsNyBAQCAtIChXZWJCYXNlUGx1Z2luUGFja2Fn
ZSAqKXBsdWdpbkZvckV4dGVuCiAgICAgICAgIC8vIElmIG5vIHBsdWctaW4gd2FzIGZvdW5kIGZy
b20gdGhlIGV4dGVuc2lvbiwgYXR0ZW1wdCB0byBtYXAgZnJvbSB0aGUgZXh0ZW5zaW9uIHRvIGEg
TUlNRSB0eXBlCiAgICAgICAgIC8vIGFuZCBmaW5kIHRoZSBhIHBsdWctaW4gZnJvbSB0aGUgTUlN
RSB0eXBlLiBUaGlzIGlzIGRvbmUgaW4gY2FzZSB0aGUgcGx1Zy1pbiBoYXMgbm90IGZ1bGx5IHNw
ZWNpZmllZAogICAgICAgICAvLyBhbiBleHRlbnNpb24gPC0+IE1JTUUgdHlwZSBtYXBwaW5nLgot
ICAgICAgICBOU1N0cmluZyAqTUlNRVR5cGUgPSBXS0dldE1JTUVUeXBlRm9yRXh0ZW5zaW9uKGV4
dGVuc2lvbik7CisgICAgICAgIE5TU3RyaW5nICpNSU1FVHlwZSA9IFtbTlNVUkxGaWxlVHlwZU1h
cHBpbmdzIHNoYXJlZE1hcHBpbmdzXSBNSU1FVHlwZUZvckV4dGVuc2lvbjpleHRlbnNpb25dOwog
ICAgICAgICBpZiAoW01JTUVUeXBlIGxlbmd0aF0gPiAwKQogICAgICAgICAgICAgcGx1Z2luID0g
W3NlbGYgcGx1Z2luRm9yTUlNRVR5cGU6TUlNRVR5cGVdOwogICAgIH0KSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50Lm1tCShyZXZpc2lvbiAxNzI2OTEpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQkod29ya2luZyBjb3B5KQpAQCAtMTA5LDYgKzEw
OSw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0cnkuaD4KICNpbXBvcnQgPFdl
YkNvcmUvTWFpbkZyYW1lLmg+CiAjaW1wb3J0IDxXZWJDb3JlL01vdXNlRXZlbnQuaD4KKyNpbXBv
cnQgPFdlYkNvcmUvTlNVUkxGaWxlVHlwZU1hcHBpbmdzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Bh
Z2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGx1Z2luVmlld0Jhc2UuaD4KICNpbXBvcnQgPFdlYkNv
cmUvUHJvdGVjdGlvblNwYWNlLmg+CkBAIC0xNjIwLDcgKzE2MjEsNyBAQCBPYmplY3RDb250ZW50
VHlwZSBXZWJGcmFtZUxvYWRlckNsaWVudDo6CiAgICAgICAgIE5TVVJMICpVUkwgPSB1cmw7CiAg
ICAgICAgIE5TU3RyaW5nICpleHRlbnNpb24gPSBbW1VSTCBwYXRoXSBwYXRoRXh0ZW5zaW9uXTsK
ICAgICAgICAgaWYgKFtleHRlbnNpb24gbGVuZ3RoXSA+IDApIHsKLSAgICAgICAgICAgIHR5cGUg
PSBXS0dldE1JTUVUeXBlRm9yRXh0ZW5zaW9uKGV4dGVuc2lvbik7CisgICAgICAgICAgICB0eXBl
ID0gW1tOU1VSTEZpbGVUeXBlTWFwcGluZ3Mgc2hhcmVkTWFwcGluZ3NdIE1JTUVUeXBlRm9yRXh0
ZW5zaW9uOmV4dGVuc2lvbl07CiAgICAgICAgICAgICBpZiAodHlwZS5pc0VtcHR5KCkpIHsKICAg
ICAgICAgICAgICAgICAvLyBJZiBubyBNSU1FIHR5cGUgaXMgc3BlY2lmaWVkLCB1c2UgYSBwbHVn
LWluIGlmIHdlIGhhdmUgb25lIHRoYXQgY2FuIGhhbmRsZSB0aGUgZXh0ZW5zaW9uLgogICAgICAg
ICAgICAgICAgIGlmIChXZWJCYXNlUGx1Z2luUGFja2FnZSAqcGFja2FnZSA9IFtnZXRXZWJWaWV3
KG1fd2ViRnJhbWUuZ2V0KCkpIF9wbHVnaW5Gb3JFeHRlbnNpb246ZXh0ZW5zaW9uXSkgewpJbmRl
eDogU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlN5c3Rl
bUludGVyZmFjZS5tbQkocmV2aXNpb24gMTcyNjkxKQorKysgU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC03Miwx
OCArNzIsMTUgQEAgdm9pZCBJbml0V2ViQ29yZVN5c3RlbUludGVyZmFjZSh2b2lkKQogICAgIElO
SVQoRHJhd01lZGlhVUlQYXJ0KTsKICAgICBJTklUKERyYXdNZWRpYVNsaWRlclRyYWNrKTsKICAg
ICBJTklUKERyYXdUZXh0RmllbGRDZWxsRm9jdXNSaW5nKTsKLSAgICBJTklUKEdldEV4dGVuc2lv
bnNGb3JNSU1FVHlwZSk7CiAgICAgSU5JVChHZXRGb250SW5MYW5ndWFnZUZvckNoYXJhY3Rlcik7
CiAgICAgSU5JVChHZXRGb250SW5MYW5ndWFnZUZvclJhbmdlKTsKICAgICBJTklUKEdldEdseXBo
VHJhbnNmb3JtZWRBZHZhbmNlcyk7CiAjZW5kaWYKICAgICBJTklUKEdldEhUVFBSZXF1ZXN0UHJp
b3JpdHkpOwotICAgIElOSVQoR2V0TUlNRVR5cGVGb3JFeHRlbnNpb24pOwogICAgIElOSVQoR2V0
TlNVUkxSZXNwb25zZUxhc3RNb2RpZmllZERhdGUpOwogICAgIElOSVQoR2V0V2ViRGVmYXVsdENG
U3RyaW5nRW5jb2RpbmcpOwogI2lmICFQTEFURk9STShJT1MpCiAgICAgSU5JVChTaWduZWRQdWJs
aWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmcpOwotICAgIElOSVQoR2V0UHJlZmVycmVkRXh0ZW5zaW9u
Rm9yTUlNRVR5cGUpOwogICAgIElOSVQoR2V0V2hlZWxFdmVudERlbHRhcyk7CiAgICAgSU5JVChH
ZXROU0V2ZW50S2V5Q2hhcik7CiAgICAgSU5JVChIaXRUZXN0TWVkaWFVSVBhcnQpOwpJbmRleDog
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCShyZXZpc2lvbiAxNzI2OTEp
CisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCSh3b3JraW5nIGNv
cHkpCkBAIC0xMDIsNiArMTAyLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvTGVnYWN5V2ViQXJjaGl2
ZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CiAjaW1wb3J0IDxXZWJD
b3JlL01haW5GcmFtZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9OU1VSTEZpbGVUeXBlTWFwcGluZ3Mu
aD4KICNpbXBvcnQgPFdlYkNvcmUvUGFnZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9SYW5nZS5oPgog
I2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJWaWV3Lmg+CkBAIC03NjgsNyArNzY5LDcgQEAgLSAoQk9P
TClfaW1hZ2VFeGlzdHNBdFBhdGhzOihOU0FycmF5ICopcAogICAgIE5TU3RyaW5nICpwYXRoOwog
ICAgIAogICAgIHdoaWxlICgocGF0aCA9IFtlbnVtZXJhdG9yIG5leHRPYmplY3RdKSAhPSBuaWwp
IHsKLSAgICAgICAgTlNTdHJpbmcgKk1JTUVUeXBlID0gV0tHZXRNSU1FVHlwZUZvckV4dGVuc2lv
bihbcGF0aCBwYXRoRXh0ZW5zaW9uXSk7CisgICAgICAgIE5TU3RyaW5nICpNSU1FVHlwZSA9IFtb
TlNVUkxGaWxlVHlwZU1hcHBpbmdzIHNoYXJlZE1hcHBpbmdzXSBNSU1FVHlwZUZvckV4dGVuc2lv
bjpbcGF0aCBwYXRoRXh0ZW5zaW9uXV07CiAgICAgICAgIGlmIChNSU1FVHlwZVJlZ2lzdHJ5Ojpp
c1N1cHBvcnRlZEltYWdlUmVzb3VyY2VNSU1FVHlwZShNSU1FVHlwZSkpCiAgICAgICAgICAgICBy
ZXR1cm4gWUVTOwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmll
dy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0J
KHJldmlzaW9uIDE3MjY5MSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQkod29ya2luZyBjb3B5KQpAQCAtMTQ4LDYgKzE0OCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL01J
TUVUeXBlUmVnaXN0cnkuaD4KICNpbXBvcnQgPFdlYkNvcmUvTWFpbkZyYW1lLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL01lbW9yeVByZXNzdXJlSGFuZGxlci5oPgorI2ltcG9ydCA8V2ViQ29yZS9OU1VS
TEZpbGVUeXBlTWFwcGluZ3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvTm9kZUxpc3QuaD4KICNpbXBv
cnQgPFdlYkNvcmUvTm90aWZpY2F0aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL05vdGlmaWNhdGlv
bkNvbnRyb2xsZXIuaD4KQEAgLTEwOTgsNyArMTA5OSw3IEBAICsgKE5TQXJyYXkgKilfc3VwcG9y
dGVkRmlsZUV4dGVuc2lvbnMKICAgICBOU0VudW1lcmF0b3IgKmVudW1lcmF0b3IgPSBbTUlNRVR5
cGVzIG9iamVjdEVudW1lcmF0b3JdOwogICAgIE5TU3RyaW5nICpNSU1FVHlwZTsKICAgICB3aGls
ZSAoKE1JTUVUeXBlID0gW2VudW1lcmF0b3IgbmV4dE9iamVjdF0pICE9IG5pbCkgewotICAgICAg
ICBOU0FycmF5ICpleHRlbnNpb25zRm9yVHlwZSA9IFdLR2V0RXh0ZW5zaW9uc0Zvck1JTUVUeXBl
KE1JTUVUeXBlKTsKKyAgICAgICAgTlNBcnJheSAqZXh0ZW5zaW9uc0ZvclR5cGUgPSBbW05TVVJM
RmlsZVR5cGVNYXBwaW5ncyBzaGFyZWRNYXBwaW5nc10gZXh0ZW5zaW9uc0Zvck1JTUVUeXBlOk1J
TUVUeXBlXTsKICAgICAgICAgaWYgKGV4dGVuc2lvbnNGb3JUeXBlKSB7CiAgICAgICAgICAgICBb
ZXh0ZW5zaW9ucyBhZGRPYmplY3RzRnJvbUFycmF5OmV4dGVuc2lvbnNGb3JUeXBlXTsKICAgICAg
ICAgfQpAQCAtMTQ5NSw3ICsxNDk2LDcgQEAgKyAoQk9PTCljYW5TaG93RmlsZTooTlNTdHJpbmcg
KilwYXRoCiAjaWYgIVBMQVRGT1JNKElPUykKICsgKE5TU3RyaW5nICopc3VnZ2VzdGVkRmlsZUV4
dGVuc2lvbkZvck1JTUVUeXBlOihOU1N0cmluZyAqKXR5cGUKIHsKLSAgICByZXR1cm4gV0tHZXRQ
cmVmZXJyZWRFeHRlbnNpb25Gb3JNSU1FVHlwZSh0eXBlKTsKKyAgICByZXR1cm4gW1tOU1VSTEZp
bGVUeXBlTWFwcGluZ3Mgc2hhcmVkTWFwcGluZ3NdIHByZWZlcnJlZEV4dGVuc2lvbkZvck1JTUVU
eXBlOnR5cGVdOwogfQogI2VuZGlmCiAKQEAgLTE3OTgsNyArMTc5OSw3IEBAICsgKE5TU3RyaW5n
ICopX01JTUVUeXBlRm9yRmlsZTooTlNTdHJpbmcKICNpZiAhUExBVEZPUk0oSU9TKQogICAgIC8v
IEdldCB0aGUgTUlNRSB0eXBlIGZyb20gdGhlIGV4dGVuc2lvbi4KICAgICBpZiAoW2V4dGVuc2lv
biBsZW5ndGhdICE9IDApIHsKLSAgICAgICAgTUlNRVR5cGUgPSBXS0dldE1JTUVUeXBlRm9yRXh0
ZW5zaW9uKGV4dGVuc2lvbik7CisgICAgICAgIE1JTUVUeXBlID0gW1tOU1VSTEZpbGVUeXBlTWFw
cGluZ3Mgc2hhcmVkTWFwcGluZ3NdIE1JTUVUeXBlRm9yRXh0ZW5zaW9uOmV4dGVuc2lvbl07CiAg
ICAgfQogI2VuZGlmCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236797</attachid>
            <date>2014-08-18 21:28:18 -0700</date>
            <delta_ts>2014-08-18 22:44:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136035-20140818212809.patch</filename>
            <type>text/plain</type>
            <size>25377</size>
            <attacher name="Maciej Stachowiak">mjs</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxNzI3NDEpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDE0LTA4LTE4ICBNYWNpZWogU3RhY2hvd2lhayAg
PG1qc0BhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIE5TVVJMRmlsZVR5cGVNYXBwaW5ncyBkaXJl
Y3RseSBpbnN0ZWFkIG9mIGRlcGVuZGluZyBvbiBXZWJLaXRTeXN0ZW1JbnRlcmZhY2Ugd3JhcHBl
cnMgZm9yIGl0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMzYwMzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHd0Zi9QbGF0Zm9ybS5oOiBEZWZpbmUgVVNFKEFQUExFX0lOVEVSTkFMX1NESykgYnkgZGVm
YXVsdCBvbiBwbGF0Zm9ybXMgdGhhdCBoYXZlIGl0LgorCiAyMDE0LTA4LTE4ICBQcmF0aWsgU29s
YW5raSAgPHBzb2xhbmtpQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgUHVyZ2VhYmxlQnVm
ZmVyIHNpbmNlIGl0IGlzIG5vdCB2ZXJ5IHVzZWZ1bCBhbnkgbW9yZQpJbmRleDogU291cmNlL1dU
Ri93dGYvUGxhdGZvcm0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5o
CShyZXZpc2lvbiAxNzI2OTEpCisrKyBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xMDQzLDYgKzEwNDMsMTAgQEAKICNkZWZpbmUgV1RGX1VTRV9BU1lOQ19OU1RF
WFRJTlBVVENMSUVOVCAxCiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKENPQ09BKSAmJiAgZGVmaW5l
ZCBfX2hhc19pbmNsdWRlICYmIF9faGFzX2luY2x1ZGUoPENvcmVGb3VuZGF0aW9uL0NGUHJpdi5o
PikKKyNkZWZpbmUgV1RGX1VTRV9BUFBMRV9JTlRFUk5BTF9TREsgMQorI2VuZGlmCisKICNpZiAo
T1MoREFSV0lOKSAmJiBVU0UoQ0cpKSB8fCBVU0UoRlJFRVRZUEUpIHx8IChQTEFURk9STShXSU4p
ICYmIChVU0UoQ0cpIHx8IFVTRShDQUlSTykpKQogI3VuZGVmIEVOQUJMRV9PUEVOVFlQRV9NQVRI
CiAjZGVmaW5lIEVOQUJMRV9PUEVOVFlQRV9NQVRIIDEKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9u
IDE3Mjc0MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDI4IEBACisyMDE0LTA4LTE4ICBNYWNpZWogU3RhY2hvd2lhayAgPG1qc0BhcHBsZS5j
b20+CisKKyAgICAgICAgVXNlIE5TVVJMRmlsZVR5cGVNYXBwaW5ncyBkaXJlY3RseSBpbnN0ZWFk
IG9mIGRlcGVuZGluZyBvbiBXZWJLaXRTeXN0ZW1JbnRlcmZhY2Ugd3JhcHBlcnMgZm9yIGl0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzYwMzUKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmUu
ZXhwLmluOiBSZW1vdmUgcmVmZXJlbmNlIHRvIG5vIGxvbmdlciBleGlzdGVudCBzdW1ib2xzLgor
ICAgICAgICAqIFdlYkNvcmUub3JkZXI6IGRpdHRvCisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOiBJbnN0YWxsIG5ldyBOU1VSTEZpbGVUeWVNYXBwaW5ncy5oIGhl
YWRlci4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvTUlNRVR5cGVSZWdpc3RyeUlPUy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1JTUVUeXBlUmVnaXN0cnk6OmdldE1JTUVUeXBlRm9yRXh0ZW5zaW9u
KTogVXNlIE5TVVJMRmlsZVR5cGVNYXBwaW5ncworICAgICAgICBkaXJlY3RseSBpbnN0ZWFkIG9m
IHZpYSBXS1NJIHdyYXBwZXIuCisgICAgICAgICogcGxhdGZvcm0vbWFjL01JTUVUeXBlUmVnaXN0
cnlNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpNSU1FVHlwZVJlZ2lzdHJ5OjpnZXRNSU1FVHlw
ZUZvckV4dGVuc2lvbik6IGRpdHRvCisgICAgICAgIChXZWJDb3JlOjpNSU1FVHlwZVJlZ2lzdHJ5
OjpnZXRFeHRlbnNpb25zRm9yTUlNRVR5cGUpOiBkaXR0bworICAgICAgICAoV2ViQ29yZTo6TUlN
RVR5cGVSZWdpc3RyeTo6Z2V0UHJlZmVycmVkRXh0ZW5zaW9uRm9yTUlNRVR5cGUpOiBkaXR0bwor
ICAgICAgICAqIHBsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmg6IFJlbW92ZSBy
ZWZlcmVuY2VzIHRvIHRoZSBuby1sb25nZXItdXNlZAorICAgICAgICBXS0dldEV4dGVuc2lvbnNG
b3JNSU1FVHlwZSwgV0tHZXRQcmVmZXJyZWRFeHRlbnNpb25Gb3JNSU1FVHlwZSwgb3IgV0tHZXRN
SU1FVHlwZUZvckV4dGVuc2lvbgorICAgICAgICAqIHBsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVt
SW50ZXJmYWNlLm1tOiBkaXR0bworICAgICAgICAqIHBsYXRmb3JtL3NwaTogQWRkZWQuIFRoaXMg
aXMgd2hlcmUgaGVhZGVycyB0byBkZWNsYXJlIFNQSSBnby4KKyAgICAgICAgKiBwbGF0Zm9ybS9z
cGkvY29jb2E6IEFkZGVkLiBTZWUgYWJvdmUuCisgICAgICAgICogcGxhdGZvcm0vc3BpL2NvY29h
L05TVVJMRmlsZVR5cGVNYXBwaW5nc1NQSS5oOiBBZGRlZC4gSGVhZGVyIHRvIGRlY2xhcmUKKyAg
ICAgICAgdGhlIGludGVybmFsIGNsYXNzIE5TVVJMRmlsZVR5cGVNYXBwaW5ncyBhbmQgc29tZSBv
ZiBpdHMgbWV0aG9kcy4KKwogMjAxNC0wOC0xOCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2Vy
QGFwcGxlLmNvbT4KIAogICAgICAgICBQcm92aWRlIGRlZmF1bHQgaW1wbGVtZW50YXRpb25zIG9m
IGFsbCBHcmFwaGljc0xheWVyQ2xpZW50IG1ldGhvZHMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmlu
CShyZXZpc2lvbiAxNzI2OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkod29y
a2luZyBjb3B5KQpAQCAtMjEwNiw3ICsyMTA2LDYgQEAgX3drR2V0Q0ZVUkxSZXNwb25zZU1JTUVU
eXBlCiBfd2tHZXRDRlVSTFJlc3BvbnNlVVJMCiBfd2tHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5
CiBfd2tHZXRIVFRQUmVxdWVzdFByaW9yaXR5Ci1fd2tHZXRNSU1FVHlwZUZvckV4dGVuc2lvbgog
X3drR2V0TlNVUkxSZXNwb25zZUxhc3RNb2RpZmllZERhdGUKIF93a0dldFVzZXJUb0Jhc2VDVE0K
IF93a0dldFdlYkRlZmF1bHRDRlN0cmluZ0VuY29kaW5nCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLm9yZGVyCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIJ
KHJldmlzaW9uIDE3MjY5MSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIJKHdvcmtp
bmcgY29weSkKQEAgLTMwNjA5LDcgKzMwNjA5LDYgQEAgX3drTWVkaWFDb250cm9sbGVyVGhlbWVB
dmFpbGFibGUKIF93a0dldFByZWZlcnJlZEV4dGVuc2lvbkZvck1JTUVUeXBlCiBfd2tTaWduZWRQ
dWJsaWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmcKIF93a0dldEV4dGVuc2lvbnNGb3JNSU1FVHlwZQot
X3drR2V0TUlNRVR5cGVGb3JFeHRlbnNpb24KIF93a0dldE5TVVJMUmVzcG9uc2VMYXN0TW9kaWZp
ZWREYXRlCiBfd2tHZXRXaGVlbEV2ZW50RGVsdGFzCiBfd2tHZXROU0V2ZW50S2V5Q2hhcgpJbmRl
eDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agkocmV2aXNpb24gMTcyNjkxKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0yMTc3LDYgKzIxNzcsNyBAQAogCQk2
NTcxRENDODEzODVFNkE0MDA3MDJERDAgLyogTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTdFREEwNzEzODVDQjk3
MDA0RTA2NDUgLyogTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNjU3RURBMDgxMzg1Q0I5NzAwNEUwNjQ1IC8q
IE1lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA2NTdFREEwNjEzODVDQjk3MDA0RTA2NDUgLyogTWVtb3J5UHJlc3N1
cmVIYW5kbGVyLmNwcCAqLzsgfTsKIAkJNjU4NDM2ODYwQUUwMUI3NDAwRTUzNzUzIC8qIEZyYW1l
TG9hZFJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDY1ODQzNjg1MEFFMDFCNzQwMEU1Mzc1MyAvKiBGcmFtZUxvYWRSZXF1ZXN0LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNjU4RjU0MDMxOUEx
QzkyNDAwODhGQzkyIC8qIE5TVVJMRmlsZVR5cGVNYXBwaW5nc1NQSS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjUzRUY4MzgxOUEwNDNBRTAwNTIyMDJD
IC8qIE5TVVJMRmlsZVR5cGVNYXBwaW5nc1NQSS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTY1OTM5MjM3MDlBRTQzNDYwMDJDNTMxRiAvKiBVUkwu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU5Mzky
MzUwOUFFNDM0NjAwMkM1MzFGIC8qIFVSTC5jcHAgKi87IH07CiAJCTY1OTM5MjM4MDlBRTQzNDYw
MDJDNTMxRiAvKiBVUkwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDY1OTM5MjM2MDlBRTQzNDYwMDJDNTMxRiAvKiBVUkwuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2NTkzOTIzQTA5QUU0MzVDMDAyQzUz
MUYgLyogVVJMTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNjU5MzkyMzkwOUFFNDM1QzAwMkM1MzFGIC8qIFVSTE1hYy5tbSAqLzsgfTsKQEAgLTky
NzEsNiArOTI3Miw3IEBACiAJCTY1MTVFQzhGMEQ5NzIzRkYwMDYzRDQ5QSAvKiBKU1NWR0FsdEds
eXBoRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NW
R0FsdEdseXBoRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1MTVF
QzkwMEQ5NzIzRkYwMDYzRDQ5QSAvKiBKU1NWR0FsdEdseXBoRWxlbWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NWR0FsdEdseXBoRWxlbWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk2NTJGQkJCQjBERTI3Q0I2MDAwMUQzODYgLyogSlNET01XaW5k
b3dDdXN0b20uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01XaW5kb3dD
dXN0b20uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNjUzRUY4MzgxOUEwNDNBRTAw
NTIyMDJDIC8qIE5TVVJMRmlsZVR5cGVNYXBwaW5nc1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBOU1VSTEZpbGVUeXBlTWFwcGluZ3NTUEkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNjU0OEUyNDgwOUUxRTA0RDAwQUY4MDIwIC8qIERvY3VtZW50LmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRG9jdW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk2NTUwQjY5MzA5OURGMDI3MDA5MEQ3ODEgLyogQ0RBVEFTZWN0aW9uLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDREFUQVNlY3Rpb24uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NTUwQjY5NDA5OURGMDI3MDA5MEQ3ODEgLyog
Q0RBVEFTZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDREFUQVNl
Y3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2MjE2LDYgKzE2MjE4LDIy
IEBACiAJCQlwYXRoID0gcGx1Z2luczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07
CisJCTY1M0VGODM2MTlBMDQzQUUwMDUyMjAyQyAvKiBzcGkgKi8gPSB7CisJCQlpc2EgPSBQQlhH
cm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTY1M0VGODM3MTlBMDQzQUUwMDUyMjAyQyAvKiBj
b2NvYSAqLywKKwkJCSk7CisJCQlwYXRoID0gc3BpOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsKKwkJfTsKKwkJNjUzRUY4MzcxOUEwNDNBRTAwNTIyMDJDIC8qIGNvY29hICovID0geworCQkJ
aXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk2NTNFRjgzODE5QTA0M0FFMDA1
MjIwMkMgLyogTlNVUkxGaWxlVHlwZU1hcHBpbmdzU1BJLmggKi8sCisJCQkpOworCQkJcGF0aCA9
IGNvY29hOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJNjU2NTgwRUMwOUQx
MkIyMDAwMEU2MUQ3IC8qIERlcml2ZWQgU291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3Vw
OwogCQkJY2hpbGRyZW4gPSAoCkBAIC0yMTI5NCw2ICsyMTMxMiw3IEBACiAJCQkJNjU2Qjg0RDcw
QUVBMUNFOTAwQTA5NUI0IC8qIG5ldHdvcmsgKi8sCiAJCQkJNTE2MDMwMDkwQ0M0MjQ1NDAwQzhB
QzI1IC8qIHBvc2l4ICovLAogCQkJCTFBMkU2RTU2MENDNTUxRTAwMDRBMjA2MiAvKiBzcWwgKi8s
CisJCQkJNjUzRUY4MzYxOUEwNDNBRTAwNTIyMDJDIC8qIHNwaSAqLywKIAkJCQlCMkMzRDlFQzBE
MDA2QzFEMDBFRjZGMjYgLyogdGV4dCAqLywKIAkJCQk0OUFFMkQ5NDEzNEVFNUY5MDA3MjkyMEEg
LyogQ2FsY3VsYXRpb25WYWx1ZS5jcHAgKi8sCiAJCQkJNDlBRTJEOTUxMzRFRTVGOTAwNzI5MjBB
IC8qIENhbGN1bGF0aW9uVmFsdWUuaCAqLywKQEAgLTI1Mjc2LDYgKzI1Mjk1LDcgQEAKIAkJCQlG
NTk3M0RFMDE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk3NjMzQTcyNjEzRDhCMzNBMDA4NTAxQjYgLyogTG9jYWxlVG9TY3JpcHRNYXBwaW5nLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBNTE2RThCNzEzNkUwNERCMDA3NkMzQzAgLyogTG9jYWxpemVkRGF0
ZUNhY2hlLmggaW4gSGVhZGVycyAqLywKKwkJCQk2NThGNTQwMzE5QTFDOTI0MDA4OEZDOTIgLyog
TlNVUkxGaWxlVHlwZU1hcHBpbmdzU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzUyMDdCRTA5
QkQ0MTBBMDBGMjAzOEQgLyogTG9jYWxpemVkU3RyaW5ncy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkNFMUM0MUIwRDk4Mjk4MDAwM0IwMkYyIC8qIExvY2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBODIzOUUwMTA5QjNDRjhBMDBCNjA2NDEgLyogTG9nZ2luZy5oIGluIEhlYWRlcnMgKi8sCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTUlNRVR5cGVSZWdpc3RyeUlPUy5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTUlNRVR5cGVSZWdpc3Ry
eUlPUy5tbQkocmV2aXNpb24gMTcyNjkxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L01JTUVUeXBlUmVnaXN0cnlJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTI2LDEzICsyNiwxNCBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKIAot
I2luY2x1ZGUgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIKKyNpbmNsdWRlICJOU1VSTEZpbGVU
eXBlTWFwcGluZ3NTUEkuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgCiB7CiBTdHJpbmcgTUlNRVR5
cGVSZWdpc3RyeTo6Z2V0TUlNRVR5cGVGb3JFeHRlbnNpb24oY29uc3QgU3RyaW5nICZleHQpCiB7
CiAgICAgcmV0dXJuIHdrR2V0TUlNRVR5cGVGb3JFeHRlbnNpb24oZXh0KTsKKyAgICByZXR1cm4g
W1tOU1VSTEZpbGVUeXBlTWFwcGluZ3Mgc2hhcmVkTWFwcGluZ3NdIE1JTUVUeXBlRm9yRXh0ZW5z
aW9uOihOU1N0cmluZyAqKWV4dF07CiB9CiAKIFZlY3RvcjxTdHJpbmc+IE1JTUVUeXBlUmVnaXN0
cnk6OmdldEV4dGVuc2lvbnNGb3JNSU1FVHlwZShjb25zdCBTdHJpbmcmIC8qdHlwZSovKQpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL01JTUVUeXBlUmVnaXN0cnlNYWMubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL01JTUVUeXBlUmVnaXN0cnlN
YWMubW0JKHJldmlzaW9uIDE3MjY5MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9N
SU1FVHlwZVJlZ2lzdHJ5TWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNywyMiArMjcsMjIgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCiAKLSNp
bmNsdWRlICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCisjaW5jbHVkZSAiTlNVUkxGaWxlVHlw
ZU1hcHBpbmdzU1BJLmgiCiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3
dGYvTWFpblRocmVhZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSAKIHsKIAotU3RyaW5nIE1JTUVU
eXBlUmVnaXN0cnk6OmdldE1JTUVUeXBlRm9yRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyAmZXh0KQor
U3RyaW5nIE1JTUVUeXBlUmVnaXN0cnk6OmdldE1JTUVUeXBlRm9yRXh0ZW5zaW9uKGNvbnN0IFN0
cmluZyYgZXh0KQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgcmV0dXJuIHdr
R2V0TUlNRVR5cGVGb3JFeHRlbnNpb24oZXh0KTsKKyAgICByZXR1cm4gW1tOU1VSTEZpbGVUeXBl
TWFwcGluZ3Mgc2hhcmVkTWFwcGluZ3NdIE1JTUVUeXBlRm9yRXh0ZW5zaW9uOihOU1N0cmluZyAq
KWV4dF07CiB9CiAKIFZlY3RvcjxTdHJpbmc+IE1JTUVUeXBlUmVnaXN0cnk6OmdldEV4dGVuc2lv
bnNGb3JNSU1FVHlwZShjb25zdCBTdHJpbmcmIHR5cGUpCiB7Ci0gICAgTlNBcnJheSAqc3RyaW5n
c0FycmF5ID0gd2tHZXRFeHRlbnNpb25zRm9yTUlNRVR5cGUodHlwZSk7CisgICAgTlNBcnJheSAq
c3RyaW5nc0FycmF5ID0gW1tOU1VSTEZpbGVUeXBlTWFwcGluZ3Mgc2hhcmVkTWFwcGluZ3NdIGV4
dGVuc2lvbnNGb3JNSU1FVHlwZTooTlNTdHJpbmcgKil0eXBlXTsKICAgICBWZWN0b3I8U3RyaW5n
PiBzdHJpbmdzVmVjdG9yID0gVmVjdG9yPFN0cmluZz4oKTsKICAgICB1bnNpZ25lZCBjb3VudCA9
IFtzdHJpbmdzQXJyYXkgY291bnRdOwogICAgIGlmIChjb3VudCA+IDApIHsKQEAgLTU2LDcgKzU2
LDcgQEAgVmVjdG9yPFN0cmluZz4gTUlNRVR5cGVSZWdpc3RyeTo6Z2V0RXh0ZQogCiBTdHJpbmcg
TUlNRVR5cGVSZWdpc3RyeTo6Z2V0UHJlZmVycmVkRXh0ZW5zaW9uRm9yTUlNRVR5cGUoY29uc3Qg
U3RyaW5nJiB0eXBlKQogewotICAgIHJldHVybiB3a0dldFByZWZlcnJlZEV4dGVuc2lvbkZvck1J
TUVUeXBlKHR5cGUpOworICAgIHJldHVybiBbW05TVVJMRmlsZVR5cGVNYXBwaW5ncyBzaGFyZWRN
YXBwaW5nc10gcHJlZmVycmVkRXh0ZW5zaW9uRm9yTUlNRVR5cGU6KE5TU3RyaW5nICopdHlwZV07
CiB9CiAKIGJvb2wgTUlNRVR5cGVSZWdpc3RyeTo6aXNBcHBsaWNhdGlvblBsdWdpbk1JTUVUeXBl
KGNvbnN0IFN0cmluZyYgTUlNRVR5cGUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgJKHJldmlzaW9uIDE3MjY5MSkK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTE3MSwxMCArMTcxLDcgQEAgZXh0ZXJuIHZvaWQgKCp3a0RyYXdN
ZWRpYVNsaWRlclRyYWNrKShDRwogICAgIGZsb2F0IGR1cmF0aW9uLCB1bnNpZ25lZCBzdGF0ZSk7
CiBleHRlcm4gdm9pZCAoKndrRHJhd01lZGlhVUlQYXJ0KShpbnQgcGFydCwgQ0dDb250ZXh0UmVm
IGNvbnRleHQsIENHUmVjdCByZWN0LCB1bnNpZ25lZCBzdGF0ZSk7CiBleHRlcm4gQ0ZTdHJpbmdS
ZWYgKCp3a1NpZ25lZFB1YmxpY0tleUFuZENoYWxsZW5nZVN0cmluZykodW5zaWduZWQga2V5U2l6
ZSwgQ0ZTdHJpbmdSZWYgY2hhbGxlbmdlLCBDRlN0cmluZ1JlZiBrZXlEZXNjcmlwdGlvbik7Ci1l
eHRlcm4gTlNTdHJpbmcqICgqd2tHZXRQcmVmZXJyZWRFeHRlbnNpb25Gb3JNSU1FVHlwZSkoTlNT
dHJpbmcqKTsKLWV4dGVybiBOU0FycmF5KiAoKndrR2V0RXh0ZW5zaW9uc0Zvck1JTUVUeXBlKShO
U1N0cmluZyopOwogI2VuZGlmCi1leHRlcm4gTlNTdHJpbmcqICgqd2tHZXRNSU1FVHlwZUZvckV4
dGVuc2lvbikoTlNTdHJpbmcqKTsKICNpZiAhUExBVEZPUk0oSU9TKQogZXh0ZXJuIEFUU1VGb250
SUQgKCp3a0dldE5TRm9udEFUU1VGb250SWQpKE5TRm9udCopOwogZXh0ZXJuIGRvdWJsZSAoKndr
R2V0TlNVUkxSZXNwb25zZUNhbGN1bGF0ZWRFeHBpcmF0aW9uKShOU1VSTFJlc3BvbnNlICpyZXNw
b25zZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUlu
dGVyZmFjZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2Vi
Q29yZVN5c3RlbUludGVyZmFjZS5tbQkocmV2aXNpb24gMTcyNjkxKQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW0JKHdvcmtpbmcgY29weSkK
QEAgLTYzLDcgKzYzLDYgQEAgdm9pZCAoKndrV2luZG93U2V0U2NhbGVkRnJhbWUpKE5TV2luZG93
IAogTlNTdHJpbmcqICgqd2tHZXRQcmVmZXJyZWRFeHRlbnNpb25Gb3JNSU1FVHlwZSkoTlNTdHJp
bmcqKTsKIENGU3RyaW5nUmVmICgqd2tTaWduZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmcp
KHVuc2lnbmVkIGtleVNpemUsIENGU3RyaW5nUmVmIGNoYWxsZW5nZSwgQ0ZTdHJpbmdSZWYga2V5
RGVzY3JpcHRpb24pOwogTlNBcnJheSogKCp3a0dldEV4dGVuc2lvbnNGb3JNSU1FVHlwZSkoTlNT
dHJpbmcqKTsKLU5TU3RyaW5nKiAoKndrR2V0TUlNRVR5cGVGb3JFeHRlbnNpb24pKE5TU3RyaW5n
Kik7CiBOU1RpbWVJbnRlcnZhbCAoKndrR2V0TlNVUkxSZXNwb25zZUNhbGN1bGF0ZWRFeHBpcmF0
aW9uKShOU1VSTFJlc3BvbnNlICpyZXNwb25zZSk7CiBOU0RhdGUgKigqd2tHZXROU1VSTFJlc3Bv
bnNlTGFzdE1vZGlmaWVkRGF0ZSkoTlNVUkxSZXNwb25zZSAqcmVzcG9uc2UpOwogQk9PTCAoKndr
R2V0TlNVUkxSZXNwb25zZU11c3RSZXZhbGlkYXRlKShOU1VSTFJlc3BvbnNlICpyZXNwb25zZSk7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY29jb2EvTlNVUkxGaWxlVHlwZU1h
cHBpbmdzU1BJLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2Nv
Y29hL05TVVJMRmlsZVR5cGVNYXBwaW5nc1NQSS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL05TVVJMRmlsZVR5cGVNYXBwaW5nc1NQSS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBw
bGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorCisjaW1wb3J0
IDxGb3VuZGF0aW9uL05TVVJMRmlsZVR5cGVNYXBwaW5ncy5oPgorCisjZWxzZQorCisvLyBGSVhN
RTogV2Ugc2hvdWxkIHVzZSBVVEkgaW5zdGVhZCwgYnV0IGl0J3MgbWlzc2luZyBzb21lIG1hcHBp
bmdzIHRoYXQgdGhpcyBvbGQgU1BJIGtub3dzLgorLy8gUmVtb3ZlIHRoZXNlIG1ldGhvZHMgb25j
ZSA8cmRhcjovL3Byb2JsZW0vMTgwNDIxODQ+IGlzIGZpeGVkLgorQGludGVyZmFjZSBOU1VSTEZp
bGVUeXBlTWFwcGluZ3MKK0BlbmQKK0BpbnRlcmZhY2UgTlNVUkxGaWxlVHlwZU1hcHBpbmdzIChQ
cml2YXRlKQorKyAoTlNVUkxGaWxlVHlwZU1hcHBpbmdzICopc2hhcmVkTWFwcGluZ3M7CistIChO
U1N0cmluZyAqKU1JTUVUeXBlRm9yRXh0ZW5zaW9uOihOU1N0cmluZyAqKWV4dDsKKy0gKE5TU3Ry
aW5nICopcHJlZmVycmVkRXh0ZW5zaW9uRm9yTUlNRVR5cGU6KE5TU3RyaW5nICopdHlwZTsKKy0g
KE5TQXJyYXkgKilleHRlbnNpb25zRm9yTUlNRVR5cGU6KE5TU3RyaW5nICopdHlwZTsKK0BlbmQK
KworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNzI2OTgpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxNC0wOC0x
OCAgTWFjaWVqIFN0YWNob3dpYWsgIDxtanNAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBOU1VS
TEZpbGVUeXBlTWFwcGluZ3MgZGlyZWN0bHkgaW5zdGVhZCBvZiBkZXBlbmRpbmcgb24gV2ViS2l0
U3lzdGVtSW50ZXJmYWNlIHdyYXBwZXJzIGZvciBpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2MDM1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9X
ZWJTeXN0ZW1JbnRlcmZhY2UubW06CisgICAgICAgIChJbml0V2ViQ29yZVN5c3RlbUludGVyZmFj
ZSk6IERvbid0IGluaXRpYWxpemUgdGhlIG5vLWxvbmdlci11c2VkIFdLR2V0RXh0ZW5zaW9uc0Zv
ck1JTUVUeXBlLAorICAgICAgICBXS0dldFByZWZlcnJlZEV4dGVuc2lvbkZvck1JTUVUeXBlLCBv
ciBXS0dldE1JTUVUeXBlRm9yRXh0ZW5zaW9uCisgICAgICAgICogbWFjL1dlYktpdDIub3JkZXI6
IFJlbW92ZSBleHBvcnRzIHJlbGF0ZWQgdG8gYWJvdmUuCisKIDIwMTQtMDgtMTYgIFByYXRpayBT
b2xhbmtpICA8cHNvbGFua2lAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmFtZSBEaXNrQ2FjaGVN
b25pdG9yIHRvIE5ldHdvcmtEaXNrQ2FjaGVNb25pdG9yCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2Vi
U3lzdGVtSW50ZXJmYWNlLm1tCShyZXZpc2lvbiAxNzI2OTEpCisrKyBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW0JKHdvcmtp
bmcgY29weSkKQEAgLTY1LDcgKzY1LDYgQEAgdm9pZCBJbml0V2ViQ29yZVN5c3RlbUludGVyZmFj
ZSh2b2lkKQogICAgICAgICBJTklUKERyYXdNZWRpYVNsaWRlclRyYWNrKTsKICAgICAgICAgSU5J
VChEcmF3TWVkaWFVSVBhcnQpOwogICAgICAgICBJTklUKERyYXdUZXh0RmllbGRDZWxsRm9jdXNS
aW5nKTsKLSAgICAgICAgSU5JVChHZXRFeHRlbnNpb25zRm9yTUlNRVR5cGUpOwogICAgICAgICBJ
TklUKEdldEZvbnRJbkxhbmd1YWdlRm9yQ2hhcmFjdGVyKTsKICAgICAgICAgSU5JVChHZXRGb250
SW5MYW5ndWFnZUZvclJhbmdlKTsKICAgICAgICAgSU5JVChHZXRHbHlwaFRyYW5zZm9ybWVkQWR2
YW5jZXMpOwpAQCAtNzMsMTEgKzcyLDkgQEAgdm9pZCBJbml0V2ViQ29yZVN5c3RlbUludGVyZmFj
ZSh2b2lkKQogI2VuZGlmCiAgICAgICAgIElOSVQoR2V0VmVydGljYWxHbHlwaHNGb3JDaGFyYWN0
ZXJzKTsKICAgICAgICAgSU5JVChHZXRIVFRQUmVxdWVzdFByaW9yaXR5KTsKLSAgICAgICAgSU5J
VChHZXRNSU1FVHlwZUZvckV4dGVuc2lvbik7CiAgICAgICAgIElOSVQoR2V0TlNVUkxSZXNwb25z
ZUxhc3RNb2RpZmllZERhdGUpOwogI2lmICFQTEFURk9STShJT1MpCiAgICAgICAgIElOSVQoU2ln
bmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5nKTsKLSAgICAgICAgSU5JVChHZXRQcmVmZXJy
ZWRFeHRlbnNpb25Gb3JNSU1FVHlwZSk7CiAjZW5kaWYKICAgICAgICAgSU5JVChHZXRVc2VyVG9C
YXNlQ1RNKTsKICAgICAgICAgSU5JVChHZXRXZWJEZWZhdWx0Q0ZTdHJpbmdFbmNvZGluZyk7Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9tYWMvV2ViS2l0Mi5vcmRlcgo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9tYWMvV2ViS2l0Mi5vcmRlcgkocmV2aXNpb24gMTcyNjkxKQorKysgU291cmNl
L1dlYktpdDIvbWFjL1dlYktpdDIub3JkZXIJKHdvcmtpbmcgY29weSkKQEAgLTg2NjgsNyArODY2
OCw2IEBAIF9fWk4zV1RGOVJldGFpblB0cklQSzdfX0NGVVJMRWFTRVMzXwogX1dLQnVuZGxlR2Fy
YmFnZUNvbGxlY3RKYXZhU2NyaXB0T2JqZWN0cwogX19aTjZXZWJLaXQxNEluamVjdGVkQnVuZGxl
MzFnYXJiYWdlQ29sbGVjdEphdmFTY3JpcHRPYmplY3RzRXYKIF9fWk5LNldlYktpdDE1V2ViRWRp
dG9yQ2xpZW50MTBjYW5Db3B5Q3V0RVBON1dlYkNvcmU1RnJhbWVFYgotX1dLR2V0RXh0ZW5zaW9u
c0Zvck1JTUVUeXBlCiBfX1pONldlYktpdDE1V2ViRWRpdG9yQ2xpZW50MjVzaG91bGRTaG93RGVs
ZXRlSW50ZXJmYWNlRVBON1dlYkNvcmUxMUhUTUxFbGVtZW50RQogX19aTks2V2ViS2l0MTVXZWJF
ZGl0b3JDbGllbnQ4Y2FuUGFzdGVFUE43V2ViQ29yZTVGcmFtZUViCiBfX1pONldlYktpdDE1V2Vi
RWRpdG9yQ2xpZW50MjJzZXRJbnNlcnRpb25QYXN0ZWJvYXJkRVJLTjNXVEY2U3RyaW5nRQpJbmRl
eDogU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvbWFjL0NoYW5nZUxvZwkocmV2aXNpb24gMTcyNjk4KQorKysgU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjggQEAKKzIwMTQtMDgtMTggIE1h
Y2llaiBTdGFjaG93aWFrICA8bWpzQGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgTlNVUkxGaWxl
VHlwZU1hcHBpbmdzIGRpcmVjdGx5IGluc3RlYWQgb2YgZGVwZW5kaW5nIG9uIFdlYktpdFN5c3Rl
bUludGVyZmFjZSB3cmFwcGVycyBmb3IgaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEzNjAzNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogTWlzYy9XZWJOU1ZpZXdFeHRyYXMubToKKyAgICAgICAgKC1b
TlNWaWV3IF93ZWJfRHJhZ0ltYWdlRm9yRWxlbWVudDpyZWN0OmV2ZW50OnBhc3RlYm9hcmQ6c291
cmNlOm9mZnNldDpdKTogUmVtb3ZlIGNvbW1lbnQKKyAgICAgICAgcmVmZXJlbmNlIHRvIG9ic29s
ZXRlIFdLU0kgZnVuY3Rpb24uCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50
ZXJmYWNlLm1tOgorICAgICAgICAoSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2UpOiBEb24ndCBp
bml0aWFsaXplIHRoZSBuby1sb25nZXItdXNlZCBXS0dldEV4dGVuc2lvbnNGb3JNSU1FVHlwZSwK
KyAgICAgICAgV0tHZXRQcmVmZXJyZWRFeHRlbnNpb25Gb3JNSU1FVHlwZSwgb3IgV0tHZXRNSU1F
VHlwZUZvckV4dGVuc2lvbgorICAgICAgICAqIFBsdWdpbnMvV2ViUGx1Z2luRGF0YWJhc2UubW06
CisgICAgICAgICgtW1dlYlBsdWdpbkRhdGFiYXNlIHBsdWdpbkZvckV4dGVuc2lvbjpdKTogSW5j
bHVkZSBTUEkgaGVhZGVyIGZyb20gV2ViQ29yZTsgdXNlCisgICAgICAgIE5TVVJMRmlsZVR5cGVN
YXBwaW5ncyBkaXJlY3RseSBpbnN0ZWFkIG9mIHZpYSBXS1NJIHdyYXBwZXIuCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW06CisgICAgICAgIChXZWJGcmFt
ZUxvYWRlckNsaWVudDo6b2JqZWN0Q29udGVudFR5cGUpOiBkaXR0bworICAgICAgICAqIFdlYlZp
ZXcvV2ViSFRNTFZpZXcubW06CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9pbWFnZUV4aXN0c0F0
UGF0aHM6XSk6IGRpdHRvCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAo
K1tXZWJWaWV3IF9zdXBwb3J0ZWRGaWxlRXh0ZW5zaW9uc10pOiBkaXR0bworICAgICAgICAoK1tX
ZWJWaWV3IHN1Z2dlc3RlZEZpbGVFeHRlbnNpb25Gb3JNSU1FVHlwZTpdKTogZGl0dG8KKyAgICAg
ICAgKCtbV2ViVmlldyBfTUlNRVR5cGVGb3JGaWxlOl0pOiBkaXR0bworCiAyMDE0LTA4LTE1ICBB
bmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMTY3
ODU2KTogYWRvYmUuY29tIG5vIGxvbmdlciBhYmxlIHRvIGxhdW5jaCBDcmVhdGUgQ2xvdWQgYXBw
IHVzaW5nIGEgVVJMIHdpdGggYSBjdXN0b20gc2NoZW1lCkluZGV4OiBTb3VyY2UvV2ViS2l0L21h
Yy9NaXNjL1dlYk5TVmlld0V4dHJhcy5tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFj
L01pc2MvV2ViTlNWaWV3RXh0cmFzLm0JKHJldmlzaW9uIDE3MjY5MSkKKysrIFNvdXJjZS9XZWJL
aXQvbWFjL01pc2MvV2ViTlNWaWV3RXh0cmFzLm0JKHdvcmtpbmcgY29weSkKQEAgLTE5NSw3ICsx
OTUsNyBAQCAtICh2b2lkKV93ZWJfRHJhZ0ltYWdlRm9yRWxlbWVudDooRE9NRWxlCiAgICAgfSBl
bHNlIHsKICAgICAgICAgLy8gRklYTUU6IFRoaXMgaGFzIGJlZW4gYnJva2VuIGZvciBhIHdoaWxl
LgogICAgICAgICAvLyBUaGVyZSdzIG5vIHdheSB0byBnZXQgdGhlIE1JTUUgdHlwZSBmb3IgdGhl
IGltYWdlIGZyb20gYSBET00gZWxlbWVudC4KLSAgICAgICAgLy8gVGhlIG9sZCBjb2RlIHVzZWQg
V0tHZXRQcmVmZXJyZWRFeHRlbnNpb25Gb3JNSU1FVHlwZShbaW1hZ2UgTUlNRVR5cGVdKTsKKyAg
ICAgICAgLy8gVGhlIG9sZCBjb2RlIHVzZWQgW2ltYWdlIE1JTUVUeXBlXTsKICAgICAgICAgTlNT
dHJpbmcgKmV4dGVuc2lvbiA9IEAiIjsKICAgICAgICAgZHJhZ0ltYWdlID0gW1tOU1dvcmtzcGFj
ZSBzaGFyZWRXb3Jrc3BhY2VdIGljb25Gb3JGaWxlVHlwZTpleHRlbnNpb25dOwogICAgICAgICBO
U1NpemUgb2Zmc2V0ID0gTlNNYWtlU2l6ZShbZHJhZ0ltYWdlIHNpemVdLndpZHRoIC0gV2ViRHJh
Z0ljb25SaWdodEluc2V0LCAtV2ViRHJhZ0ljb25Cb3R0b21JbnNldCk7CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L21hYy9QbHVnaW5zL1dlYlBsdWdpbkRhdGFiYXNlLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViUGx1Z2luRGF0YWJhc2UubW0JKHJldmlzaW9uIDE3
MjY5MSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViUGx1Z2luRGF0YWJhc2UubW0J
KHdvcmtpbmcgY29weSkKQEAgLTQyLDYgKzQyLDcgQEAKICNpbXBvcnQgIldlYlBsdWdpblBhY2th
Z2UuaCIKICNpbXBvcnQgIldlYlZpZXdQcml2YXRlLmgiCiAjaW1wb3J0ICJXZWJWaWV3SW50ZXJu
YWwuaCIKKyNpbXBvcnQgPFdlYkNvcmUvTlNVUkxGaWxlVHlwZU1hcHBpbmdzU1BJLmg+CiAjaW1w
b3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+
CiAKQEAgLTE3NSw3ICsxNzYsNyBAQCAtIChXZWJCYXNlUGx1Z2luUGFja2FnZSAqKXBsdWdpbkZv
ckV4dGVuCiAgICAgICAgIC8vIElmIG5vIHBsdWctaW4gd2FzIGZvdW5kIGZyb20gdGhlIGV4dGVu
c2lvbiwgYXR0ZW1wdCB0byBtYXAgZnJvbSB0aGUgZXh0ZW5zaW9uIHRvIGEgTUlNRSB0eXBlCiAg
ICAgICAgIC8vIGFuZCBmaW5kIHRoZSBhIHBsdWctaW4gZnJvbSB0aGUgTUlNRSB0eXBlLiBUaGlz
IGlzIGRvbmUgaW4gY2FzZSB0aGUgcGx1Zy1pbiBoYXMgbm90IGZ1bGx5IHNwZWNpZmllZAogICAg
ICAgICAvLyBhbiBleHRlbnNpb24gPC0+IE1JTUUgdHlwZSBtYXBwaW5nLgotICAgICAgICBOU1N0
cmluZyAqTUlNRVR5cGUgPSBXS0dldE1JTUVUeXBlRm9yRXh0ZW5zaW9uKGV4dGVuc2lvbik7Cisg
ICAgICAgIE5TU3RyaW5nICpNSU1FVHlwZSA9IFtbTlNVUkxGaWxlVHlwZU1hcHBpbmdzIHNoYXJl
ZE1hcHBpbmdzXSBNSU1FVHlwZUZvckV4dGVuc2lvbjpleHRlbnNpb25dOwogICAgICAgICBpZiAo
W01JTUVUeXBlIGxlbmd0aF0gPiAwKQogICAgICAgICAgICAgcGx1Z2luID0gW3NlbGYgcGx1Z2lu
Rm9yTUlNRVR5cGU6TUlNRVR5cGVdOwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCShyZXZp
c2lvbiAxNzI2OTEpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5tbQkod29ya2luZyBjb3B5KQpAQCAtMTA5LDYgKzEwOSw3IEBACiAjaW1w
b3J0IDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0cnkuaD4KICNpbXBvcnQgPFdlYkNvcmUvTWFpbkZy
YW1lLmg+CiAjaW1wb3J0IDxXZWJDb3JlL01vdXNlRXZlbnQuaD4KKyNpbXBvcnQgPFdlYkNvcmUv
TlNVUkxGaWxlVHlwZU1hcHBpbmdzU1BJLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2UuaD4KICNp
bXBvcnQgPFdlYkNvcmUvUGx1Z2luVmlld0Jhc2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvUHJvdGVj
dGlvblNwYWNlLmg+CkBAIC0xNjIwLDcgKzE2MjEsNyBAQCBPYmplY3RDb250ZW50VHlwZSBXZWJG
cmFtZUxvYWRlckNsaWVudDo6CiAgICAgICAgIE5TVVJMICpVUkwgPSB1cmw7CiAgICAgICAgIE5T
U3RyaW5nICpleHRlbnNpb24gPSBbW1VSTCBwYXRoXSBwYXRoRXh0ZW5zaW9uXTsKICAgICAgICAg
aWYgKFtleHRlbnNpb24gbGVuZ3RoXSA+IDApIHsKLSAgICAgICAgICAgIHR5cGUgPSBXS0dldE1J
TUVUeXBlRm9yRXh0ZW5zaW9uKGV4dGVuc2lvbik7CisgICAgICAgICAgICB0eXBlID0gW1tOU1VS
TEZpbGVUeXBlTWFwcGluZ3Mgc2hhcmVkTWFwcGluZ3NdIE1JTUVUeXBlRm9yRXh0ZW5zaW9uOmV4
dGVuc2lvbl07CiAgICAgICAgICAgICBpZiAodHlwZS5pc0VtcHR5KCkpIHsKICAgICAgICAgICAg
ICAgICAvLyBJZiBubyBNSU1FIHR5cGUgaXMgc3BlY2lmaWVkLCB1c2UgYSBwbHVnLWluIGlmIHdl
IGhhdmUgb25lIHRoYXQgY2FuIGhhbmRsZSB0aGUgZXh0ZW5zaW9uLgogICAgICAgICAgICAgICAg
IGlmIChXZWJCYXNlUGx1Z2luUGFja2FnZSAqcGFja2FnZSA9IFtnZXRXZWJWaWV3KG1fd2ViRnJh
bWUuZ2V0KCkpIF9wbHVnaW5Gb3JFeHRlbnNpb246ZXh0ZW5zaW9uXSkgewpJbmRleDogU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVyZmFj
ZS5tbQkocmV2aXNpb24gMTcyNjkxKQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC03MiwxOCArNzIsMTUg
QEAgdm9pZCBJbml0V2ViQ29yZVN5c3RlbUludGVyZmFjZSh2b2lkKQogICAgIElOSVQoRHJhd01l
ZGlhVUlQYXJ0KTsKICAgICBJTklUKERyYXdNZWRpYVNsaWRlclRyYWNrKTsKICAgICBJTklUKERy
YXdUZXh0RmllbGRDZWxsRm9jdXNSaW5nKTsKLSAgICBJTklUKEdldEV4dGVuc2lvbnNGb3JNSU1F
VHlwZSk7CiAgICAgSU5JVChHZXRGb250SW5MYW5ndWFnZUZvckNoYXJhY3Rlcik7CiAgICAgSU5J
VChHZXRGb250SW5MYW5ndWFnZUZvclJhbmdlKTsKICAgICBJTklUKEdldEdseXBoVHJhbnNmb3Jt
ZWRBZHZhbmNlcyk7CiAjZW5kaWYKICAgICBJTklUKEdldEhUVFBSZXF1ZXN0UHJpb3JpdHkpOwot
ICAgIElOSVQoR2V0TUlNRVR5cGVGb3JFeHRlbnNpb24pOwogICAgIElOSVQoR2V0TlNVUkxSZXNw
b25zZUxhc3RNb2RpZmllZERhdGUpOwogICAgIElOSVQoR2V0V2ViRGVmYXVsdENGU3RyaW5nRW5j
b2RpbmcpOwogI2lmICFQTEFURk9STShJT1MpCiAgICAgSU5JVChTaWduZWRQdWJsaWNLZXlBbmRD
aGFsbGVuZ2VTdHJpbmcpOwotICAgIElOSVQoR2V0UHJlZmVycmVkRXh0ZW5zaW9uRm9yTUlNRVR5
cGUpOwogICAgIElOSVQoR2V0V2hlZWxFdmVudERlbHRhcyk7CiAgICAgSU5JVChHZXROU0V2ZW50
S2V5Q2hhcik7CiAgICAgSU5JVChIaXRUZXN0TWVkaWFVSVBhcnQpOwpJbmRleDogU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCShyZXZpc2lvbiAxNzI2OTEpCisrKyBTb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0x
MDIsNiArMTAyLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvTGVnYWN5V2ViQXJjaGl2ZS5oPgogI2lt
cG9ydCA8V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL01haW5G
cmFtZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9OU1VSTEZpbGVUeXBlTWFwcGluZ3NTUEkuaD4KICNp
bXBvcnQgPFdlYkNvcmUvUGFnZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9SYW5nZS5oPgogI2ltcG9y
dCA8V2ViQ29yZS9SZW5kZXJWaWV3Lmg+CkBAIC03NjgsNyArNzY5LDcgQEAgLSAoQk9PTClfaW1h
Z2VFeGlzdHNBdFBhdGhzOihOU0FycmF5ICopcAogICAgIE5TU3RyaW5nICpwYXRoOwogICAgIAog
ICAgIHdoaWxlICgocGF0aCA9IFtlbnVtZXJhdG9yIG5leHRPYmplY3RdKSAhPSBuaWwpIHsKLSAg
ICAgICAgTlNTdHJpbmcgKk1JTUVUeXBlID0gV0tHZXRNSU1FVHlwZUZvckV4dGVuc2lvbihbcGF0
aCBwYXRoRXh0ZW5zaW9uXSk7CisgICAgICAgIE5TU3RyaW5nICpNSU1FVHlwZSA9IFtbTlNVUkxG
aWxlVHlwZU1hcHBpbmdzIHNoYXJlZE1hcHBpbmdzXSBNSU1FVHlwZUZvckV4dGVuc2lvbjpbcGF0
aCBwYXRoRXh0ZW5zaW9uXV07CiAgICAgICAgIGlmIChNSU1FVHlwZVJlZ2lzdHJ5Ojppc1N1cHBv
cnRlZEltYWdlUmVzb3VyY2VNSU1FVHlwZShNSU1FVHlwZSkpCiAgICAgICAgICAgICByZXR1cm4g
WUVTOwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0JKHJldmlz
aW9uIDE3MjY5MSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQkod29y
a2luZyBjb3B5KQpAQCAtMTQ4LDYgKzE0OCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL01JTUVUeXBl
UmVnaXN0cnkuaD4KICNpbXBvcnQgPFdlYkNvcmUvTWFpbkZyYW1lLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL01lbW9yeVByZXNzdXJlSGFuZGxlci5oPgorI2ltcG9ydCA8V2ViQ29yZS9OU1VSTEZpbGVU
eXBlTWFwcGluZ3NTUEkuaD4KICNpbXBvcnQgPFdlYkNvcmUvTm9kZUxpc3QuaD4KICNpbXBvcnQg
PFdlYkNvcmUvTm90aWZpY2F0aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL05vdGlmaWNhdGlvbkNv
bnRyb2xsZXIuaD4KQEAgLTEwOTgsNyArMTA5OSw3IEBAICsgKE5TQXJyYXkgKilfc3VwcG9ydGVk
RmlsZUV4dGVuc2lvbnMKICAgICBOU0VudW1lcmF0b3IgKmVudW1lcmF0b3IgPSBbTUlNRVR5cGVz
IG9iamVjdEVudW1lcmF0b3JdOwogICAgIE5TU3RyaW5nICpNSU1FVHlwZTsKICAgICB3aGlsZSAo
KE1JTUVUeXBlID0gW2VudW1lcmF0b3IgbmV4dE9iamVjdF0pICE9IG5pbCkgewotICAgICAgICBO
U0FycmF5ICpleHRlbnNpb25zRm9yVHlwZSA9IFdLR2V0RXh0ZW5zaW9uc0Zvck1JTUVUeXBlKE1J
TUVUeXBlKTsKKyAgICAgICAgTlNBcnJheSAqZXh0ZW5zaW9uc0ZvclR5cGUgPSBbW05TVVJMRmls
ZVR5cGVNYXBwaW5ncyBzaGFyZWRNYXBwaW5nc10gZXh0ZW5zaW9uc0Zvck1JTUVUeXBlOk1JTUVU
eXBlXTsKICAgICAgICAgaWYgKGV4dGVuc2lvbnNGb3JUeXBlKSB7CiAgICAgICAgICAgICBbZXh0
ZW5zaW9ucyBhZGRPYmplY3RzRnJvbUFycmF5OmV4dGVuc2lvbnNGb3JUeXBlXTsKICAgICAgICAg
fQpAQCAtMTQ5NSw3ICsxNDk2LDcgQEAgKyAoQk9PTCljYW5TaG93RmlsZTooTlNTdHJpbmcgKilw
YXRoCiAjaWYgIVBMQVRGT1JNKElPUykKICsgKE5TU3RyaW5nICopc3VnZ2VzdGVkRmlsZUV4dGVu
c2lvbkZvck1JTUVUeXBlOihOU1N0cmluZyAqKXR5cGUKIHsKLSAgICByZXR1cm4gV0tHZXRQcmVm
ZXJyZWRFeHRlbnNpb25Gb3JNSU1FVHlwZSh0eXBlKTsKKyAgICByZXR1cm4gW1tOU1VSTEZpbGVU
eXBlTWFwcGluZ3Mgc2hhcmVkTWFwcGluZ3NdIHByZWZlcnJlZEV4dGVuc2lvbkZvck1JTUVUeXBl
OnR5cGVdOwogfQogI2VuZGlmCiAKQEAgLTE3OTgsNyArMTc5OSw3IEBAICsgKE5TU3RyaW5nICop
X01JTUVUeXBlRm9yRmlsZTooTlNTdHJpbmcKICNpZiAhUExBVEZPUk0oSU9TKQogICAgIC8vIEdl
dCB0aGUgTUlNRSB0eXBlIGZyb20gdGhlIGV4dGVuc2lvbi4KICAgICBpZiAoW2V4dGVuc2lvbiBs
ZW5ndGhdICE9IDApIHsKLSAgICAgICAgTUlNRVR5cGUgPSBXS0dldE1JTUVUeXBlRm9yRXh0ZW5z
aW9uKGV4dGVuc2lvbik7CisgICAgICAgIE1JTUVUeXBlID0gW1tOU1VSTEZpbGVUeXBlTWFwcGlu
Z3Mgc2hhcmVkTWFwcGluZ3NdIE1JTUVUeXBlRm9yRXh0ZW5zaW9uOmV4dGVuc2lvbl07CiAgICAg
fQogI2VuZGlmCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236801</attachid>
            <date>2014-08-18 22:35:10 -0700</date>
            <delta_ts>2014-08-18 22:53:47 -0700</delta_ts>
            <desc>New version to avoid breaking non-clang platforms</desc>
            <filename>bug-136035-20140818223501.patch</filename>
            <type>text/plain</type>
            <size>25386</size>
            <attacher name="Maciej Stachowiak">mjs</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxNzI3NDEpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDE0LTA4LTE4ICBNYWNpZWogU3RhY2hvd2lhayAg
PG1qc0BhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIE5TVVJMRmlsZVR5cGVNYXBwaW5ncyBkaXJl
Y3RseSBpbnN0ZWFkIG9mIGRlcGVuZGluZyBvbiBXZWJLaXRTeXN0ZW1JbnRlcmZhY2Ugd3JhcHBl
cnMgZm9yIGl0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMzYwMzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHd0Zi9QbGF0Zm9ybS5oOiBEZWZpbmUgVVNFKEFQUExFX0lOVEVSTkFMX1NESykgYnkgZGVm
YXVsdCBvbiBwbGF0Zm9ybXMgdGhhdCBoYXZlIGl0LgorCiAyMDE0LTA4LTE4ICBQcmF0aWsgU29s
YW5raSAgPHBzb2xhbmtpQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgUHVyZ2VhYmxlQnVm
ZmVyIHNpbmNlIGl0IGlzIG5vdCB2ZXJ5IHVzZWZ1bCBhbnkgbW9yZQpJbmRleDogU291cmNlL1dU
Ri93dGYvUGxhdGZvcm0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5o
CShyZXZpc2lvbiAxNzI2OTEpCisrKyBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xMDQzLDYgKzEwNDMsMTIgQEAKICNkZWZpbmUgV1RGX1VTRV9BU1lOQ19OU1RF
WFRJTlBVVENMSUVOVCAxCiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKENPQ09BKQorI2lmIGRlZmlu
ZWQgX19oYXNfaW5jbHVkZSAmJiBfX2hhc19pbmNsdWRlKDxDb3JlRm91bmRhdGlvbi9DRlByaXYu
aD4pCisjZGVmaW5lIFdURl9VU0VfQVBQTEVfSU5URVJOQUxfU0RLIDEKKyNlbmRpZgorI2VuZGlm
CisKICNpZiAoT1MoREFSV0lOKSAmJiBVU0UoQ0cpKSB8fCBVU0UoRlJFRVRZUEUpIHx8IChQTEFU
Rk9STShXSU4pICYmIChVU0UoQ0cpIHx8IFVTRShDQUlSTykpKQogI3VuZGVmIEVOQUJMRV9PUEVO
VFlQRV9NQVRICiAjZGVmaW5lIEVOQUJMRV9PUEVOVFlQRV9NQVRIIDEKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDE3Mjc0MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDE0LTA4LTE4ICBNYWNpZWogU3RhY2hvd2lhayAgPG1q
c0BhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIE5TVVJMRmlsZVR5cGVNYXBwaW5ncyBkaXJlY3Rs
eSBpbnN0ZWFkIG9mIGRlcGVuZGluZyBvbiBXZWJLaXRTeXN0ZW1JbnRlcmZhY2Ugd3JhcHBlcnMg
Zm9yIGl0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MzYwMzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFdlYkNvcmUuZXhwLmluOiBSZW1vdmUgcmVmZXJlbmNlIHRvIG5vIGxvbmdlciBleGlzdGVudCBz
dW1ib2xzLgorICAgICAgICAqIFdlYkNvcmUub3JkZXI6IGRpdHRvCisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBJbnN0YWxsIG5ldyBOU1VSTEZpbGVUeWVNYXBw
aW5ncy5oIGhlYWRlci4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvTUlNRVR5cGVSZWdpc3RyeUlP
Uy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1JTUVUeXBlUmVnaXN0cnk6OmdldE1JTUVUeXBlRm9y
RXh0ZW5zaW9uKTogVXNlIE5TVVJMRmlsZVR5cGVNYXBwaW5ncworICAgICAgICBkaXJlY3RseSBp
bnN0ZWFkIG9mIHZpYSBXS1NJIHdyYXBwZXIuCisgICAgICAgICogcGxhdGZvcm0vbWFjL01JTUVU
eXBlUmVnaXN0cnlNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpNSU1FVHlwZVJlZ2lzdHJ5Ojpn
ZXRNSU1FVHlwZUZvckV4dGVuc2lvbik6IGRpdHRvCisgICAgICAgIChXZWJDb3JlOjpNSU1FVHlw
ZVJlZ2lzdHJ5OjpnZXRFeHRlbnNpb25zRm9yTUlNRVR5cGUpOiBkaXR0bworICAgICAgICAoV2Vi
Q29yZTo6TUlNRVR5cGVSZWdpc3RyeTo6Z2V0UHJlZmVycmVkRXh0ZW5zaW9uRm9yTUlNRVR5cGUp
OiBkaXR0bworICAgICAgICAqIHBsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmg6
IFJlbW92ZSByZWZlcmVuY2VzIHRvIHRoZSBuby1sb25nZXItdXNlZAorICAgICAgICBXS0dldEV4
dGVuc2lvbnNGb3JNSU1FVHlwZSwgV0tHZXRQcmVmZXJyZWRFeHRlbnNpb25Gb3JNSU1FVHlwZSwg
b3IgV0tHZXRNSU1FVHlwZUZvckV4dGVuc2lvbgorICAgICAgICAqIHBsYXRmb3JtL21hYy9XZWJD
b3JlU3lzdGVtSW50ZXJmYWNlLm1tOiBkaXR0bworICAgICAgICAqIHBsYXRmb3JtL3NwaTogQWRk
ZWQuIFRoaXMgaXMgd2hlcmUgaGVhZGVycyB0byBkZWNsYXJlIFNQSSBnby4KKyAgICAgICAgKiBw
bGF0Zm9ybS9zcGkvY29jb2E6IEFkZGVkLiBTZWUgYWJvdmUuCisgICAgICAgICogcGxhdGZvcm0v
c3BpL2NvY29hL05TVVJMRmlsZVR5cGVNYXBwaW5nc1NQSS5oOiBBZGRlZC4gSGVhZGVyIHRvIGRl
Y2xhcmUKKyAgICAgICAgdGhlIGludGVybmFsIGNsYXNzIE5TVVJMRmlsZVR5cGVNYXBwaW5ncyBh
bmQgc29tZSBvZiBpdHMgbWV0aG9kcy4KKwogMjAxNC0wOC0xOCAgU2ltb24gRnJhc2VyICA8c2lt
b24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBQcm92aWRlIGRlZmF1bHQgaW1wbGVtZW50
YXRpb25zIG9mIGFsbCBHcmFwaGljc0xheWVyQ2xpZW50IG1ldGhvZHMKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZXhwLmluCShyZXZpc2lvbiAxNzI2OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4
cC5pbgkod29ya2luZyBjb3B5KQpAQCAtMjEwNiw3ICsyMTA2LDYgQEAgX3drR2V0Q0ZVUkxSZXNw
b25zZU1JTUVUeXBlCiBfd2tHZXRDRlVSTFJlc3BvbnNlVVJMCiBfd2tHZXRIVFRQQ29va2llQWNj
ZXB0UG9saWN5CiBfd2tHZXRIVFRQUmVxdWVzdFByaW9yaXR5Ci1fd2tHZXRNSU1FVHlwZUZvckV4
dGVuc2lvbgogX3drR2V0TlNVUkxSZXNwb25zZUxhc3RNb2RpZmllZERhdGUKIF93a0dldFVzZXJU
b0Jhc2VDVE0KIF93a0dldFdlYkRlZmF1bHRDRlN0cmluZ0VuY29kaW5nCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLm9yZGVyCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUub3JkZXIJKHJldmlzaW9uIDE3MjY5MSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3Jk
ZXIJKHdvcmtpbmcgY29weSkKQEAgLTMwNjA5LDcgKzMwNjA5LDYgQEAgX3drTWVkaWFDb250cm9s
bGVyVGhlbWVBdmFpbGFibGUKIF93a0dldFByZWZlcnJlZEV4dGVuc2lvbkZvck1JTUVUeXBlCiBf
d2tTaWduZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmcKIF93a0dldEV4dGVuc2lvbnNGb3JN
SU1FVHlwZQotX3drR2V0TUlNRVR5cGVGb3JFeHRlbnNpb24KIF93a0dldE5TVVJMUmVzcG9uc2VM
YXN0TW9kaWZpZWREYXRlCiBfd2tHZXRXaGVlbEV2ZW50RGVsdGFzCiBfd2tHZXROU0V2ZW50S2V5
Q2hhcgpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagkocmV2aXNpb24gMTcyNjkxKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0yMTc3LDYgKzIxNzcs
NyBAQAogCQk2NTcxRENDODEzODVFNkE0MDA3MDJERDAgLyogTWVtb3J5UHJlc3N1cmVIYW5kbGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTdFREEw
NzEzODVDQjk3MDA0RTA2NDUgLyogTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNjU3RURBMDgxMzg1Q0I5NzAw
NEUwNjQ1IC8qIE1lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTdFREEwNjEzODVDQjk3MDA0RTA2NDUgLyogTWVt
b3J5UHJlc3N1cmVIYW5kbGVyLmNwcCAqLzsgfTsKIAkJNjU4NDM2ODYwQUUwMUI3NDAwRTUzNzUz
IC8qIEZyYW1lTG9hZFJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDY1ODQzNjg1MEFFMDFCNzQwMEU1Mzc1MyAvKiBGcmFtZUxvYWRSZXF1ZXN0
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNjU4
RjU0MDMxOUExQzkyNDAwODhGQzkyIC8qIE5TVVJMRmlsZVR5cGVNYXBwaW5nc1NQSS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjUzRUY4MzgxOUEwNDNB
RTAwNTIyMDJDIC8qIE5TVVJMRmlsZVR5cGVNYXBwaW5nc1NQSS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTY1OTM5MjM3MDlBRTQzNDYwMDJDNTMx
RiAvKiBVUkwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNjU5MzkyMzUwOUFFNDM0NjAwMkM1MzFGIC8qIFVSTC5jcHAgKi87IH07CiAJCTY1OTM5MjM4
MDlBRTQzNDYwMDJDNTMxRiAvKiBVUkwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDY1OTM5MjM2MDlBRTQzNDYwMDJDNTMxRiAvKiBVUkwuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2NTkzOTIzQTA5QUU0
MzVDMDAyQzUzMUYgLyogVVJMTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNjU5MzkyMzkwOUFFNDM1QzAwMkM1MzFGIC8qIFVSTE1hYy5tbSAqLzsg
fTsKQEAgLTkyNzEsNiArOTI3Miw3IEBACiAJCTY1MTVFQzhGMEQ5NzIzRkYwMDYzRDQ5QSAvKiBK
U1NWR0FsdEdseXBoRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU1NWR0FsdEdseXBoRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTY1MTVFQzkwMEQ5NzIzRkYwMDYzRDQ5QSAvKiBKU1NWR0FsdEdseXBoRWxlbWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NWR0FsdEdseXBoRWxlbWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NTJGQkJCQjBERTI3Q0I2MDAwMUQzODYgLyog
SlNET01XaW5kb3dDdXN0b20uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNE
T01XaW5kb3dDdXN0b20uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNjUzRUY4Mzgx
OUEwNDNBRTAwNTIyMDJDIC8qIE5TVVJMRmlsZVR5cGVNYXBwaW5nc1NQSS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBOU1VSTEZpbGVUeXBlTWFwcGluZ3NTUEkuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjU0OEUyNDgwOUUxRTA0RDAwQUY4MDIwIC8qIERvY3Vt
ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRG9jdW1lbnQuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk2NTUwQjY5MzA5OURGMDI3MDA5MEQ3ODEgLyogQ0RBVEFTZWN0
aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDREFUQVNlY3Rp
b24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NTUwQjY5NDA5OURGMDI3MDA5
MEQ3ODEgLyogQ0RBVEFTZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBDREFUQVNlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2MjE2LDYg
KzE2MjE4LDIyIEBACiAJCQlwYXRoID0gcGx1Z2luczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7CiAJCX07CisJCTY1M0VGODM2MTlBMDQzQUUwMDUyMjAyQyAvKiBzcGkgKi8gPSB7CisJCQlp
c2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTY1M0VGODM3MTlBMDQzQUUwMDUy
MjAyQyAvKiBjb2NvYSAqLywKKwkJCSk7CisJCQlwYXRoID0gc3BpOworCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKKwkJfTsKKwkJNjUzRUY4MzcxOUEwNDNBRTAwNTIyMDJDIC8qIGNvY29hICov
ID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk2NTNFRjgzODE5
QTA0M0FFMDA1MjIwMkMgLyogTlNVUkxGaWxlVHlwZU1hcHBpbmdzU1BJLmggKi8sCisJCQkpOwor
CQkJcGF0aCA9IGNvY29hOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJNjU2
NTgwRUMwOUQxMkIyMDAwMEU2MUQ3IC8qIERlcml2ZWQgU291cmNlcyAqLyA9IHsKIAkJCWlzYSA9
IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0yMTI5NCw2ICsyMTMxMiw3IEBACiAJCQkJ
NjU2Qjg0RDcwQUVBMUNFOTAwQTA5NUI0IC8qIG5ldHdvcmsgKi8sCiAJCQkJNTE2MDMwMDkwQ0M0
MjQ1NDAwQzhBQzI1IC8qIHBvc2l4ICovLAogCQkJCTFBMkU2RTU2MENDNTUxRTAwMDRBMjA2MiAv
KiBzcWwgKi8sCisJCQkJNjUzRUY4MzYxOUEwNDNBRTAwNTIyMDJDIC8qIHNwaSAqLywKIAkJCQlC
MkMzRDlFQzBEMDA2QzFEMDBFRjZGMjYgLyogdGV4dCAqLywKIAkJCQk0OUFFMkQ5NDEzNEVFNUY5
MDA3MjkyMEEgLyogQ2FsY3VsYXRpb25WYWx1ZS5jcHAgKi8sCiAJCQkJNDlBRTJEOTUxMzRFRTVG
OTAwNzI5MjBBIC8qIENhbGN1bGF0aW9uVmFsdWUuaCAqLywKQEAgLTI1Mjc2LDYgKzI1Mjk1LDcg
QEAKIAkJCQlGNTk3M0RFMDE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk3NjMzQTcyNjEzRDhCMzNBMDA4NTAxQjYgLyogTG9jYWxlVG9TY3JpcHRNYXBw
aW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTE2RThCNzEzNkUwNERCMDA3NkMzQzAgLyogTG9j
YWxpemVkRGF0ZUNhY2hlLmggaW4gSGVhZGVycyAqLywKKwkJCQk2NThGNTQwMzE5QTFDOTI0MDA4
OEZDOTIgLyogTlNVUkxGaWxlVHlwZU1hcHBpbmdzU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQk5
MzUyMDdCRTA5QkQ0MTBBMDBGMjAzOEQgLyogTG9jYWxpemVkU3RyaW5ncy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkNFMUM0MUIwRDk4Mjk4MDAwM0IwMkYyIC8qIExvY2F0aW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBODIzOUUwMTA5QjNDRjhBMDBCNjA2NDEgLyogTG9nZ2luZy5oIGluIEhlYWRl
cnMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTUlNRVR5cGVSZWdpc3Ry
eUlPUy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTUlNRVR5
cGVSZWdpc3RyeUlPUy5tbQkocmV2aXNpb24gMTcyNjkxKQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL01JTUVUeXBlUmVnaXN0cnlJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTI2LDEz
ICsyNiwxNCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0
cnkuaCIKIAotI2luY2x1ZGUgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIKKyNpbmNsdWRlICJO
U1VSTEZpbGVUeXBlTWFwcGluZ3NTUEkuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgCiB7CiBTdHJp
bmcgTUlNRVR5cGVSZWdpc3RyeTo6Z2V0TUlNRVR5cGVGb3JFeHRlbnNpb24oY29uc3QgU3RyaW5n
ICZleHQpCiB7CiAgICAgcmV0dXJuIHdrR2V0TUlNRVR5cGVGb3JFeHRlbnNpb24oZXh0KTsKKyAg
ICByZXR1cm4gW1tOU1VSTEZpbGVUeXBlTWFwcGluZ3Mgc2hhcmVkTWFwcGluZ3NdIE1JTUVUeXBl
Rm9yRXh0ZW5zaW9uOihOU1N0cmluZyAqKWV4dF07CiB9CiAKIFZlY3RvcjxTdHJpbmc+IE1JTUVU
eXBlUmVnaXN0cnk6OmdldEV4dGVuc2lvbnNGb3JNSU1FVHlwZShjb25zdCBTdHJpbmcmIC8qdHlw
ZSovKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL01JTUVUeXBlUmVnaXN0cnlN
YWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL01JTUVUeXBl
UmVnaXN0cnlNYWMubW0JKHJldmlzaW9uIDE3MjY5MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9NSU1FVHlwZVJlZ2lzdHJ5TWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNywyMiAr
MjcsMjIgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5
LmgiCiAKLSNpbmNsdWRlICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCisjaW5jbHVkZSAiTlNV
UkxGaWxlVHlwZU1hcHBpbmdzU1BJLmgiCiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNp
bmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSAKIHsKIAotU3Ry
aW5nIE1JTUVUeXBlUmVnaXN0cnk6OmdldE1JTUVUeXBlRm9yRXh0ZW5zaW9uKGNvbnN0IFN0cmlu
ZyAmZXh0KQorU3RyaW5nIE1JTUVUeXBlUmVnaXN0cnk6OmdldE1JTUVUeXBlRm9yRXh0ZW5zaW9u
KGNvbnN0IFN0cmluZyYgZXh0KQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAg
cmV0dXJuIHdrR2V0TUlNRVR5cGVGb3JFeHRlbnNpb24oZXh0KTsKKyAgICByZXR1cm4gW1tOU1VS
TEZpbGVUeXBlTWFwcGluZ3Mgc2hhcmVkTWFwcGluZ3NdIE1JTUVUeXBlRm9yRXh0ZW5zaW9uOihO
U1N0cmluZyAqKWV4dF07CiB9CiAKIFZlY3RvcjxTdHJpbmc+IE1JTUVUeXBlUmVnaXN0cnk6Omdl
dEV4dGVuc2lvbnNGb3JNSU1FVHlwZShjb25zdCBTdHJpbmcmIHR5cGUpCiB7Ci0gICAgTlNBcnJh
eSAqc3RyaW5nc0FycmF5ID0gd2tHZXRFeHRlbnNpb25zRm9yTUlNRVR5cGUodHlwZSk7CisgICAg
TlNBcnJheSAqc3RyaW5nc0FycmF5ID0gW1tOU1VSTEZpbGVUeXBlTWFwcGluZ3Mgc2hhcmVkTWFw
cGluZ3NdIGV4dGVuc2lvbnNGb3JNSU1FVHlwZTooTlNTdHJpbmcgKil0eXBlXTsKICAgICBWZWN0
b3I8U3RyaW5nPiBzdHJpbmdzVmVjdG9yID0gVmVjdG9yPFN0cmluZz4oKTsKICAgICB1bnNpZ25l
ZCBjb3VudCA9IFtzdHJpbmdzQXJyYXkgY291bnRdOwogICAgIGlmIChjb3VudCA+IDApIHsKQEAg
LTU2LDcgKzU2LDcgQEAgVmVjdG9yPFN0cmluZz4gTUlNRVR5cGVSZWdpc3RyeTo6Z2V0RXh0ZQog
CiBTdHJpbmcgTUlNRVR5cGVSZWdpc3RyeTo6Z2V0UHJlZmVycmVkRXh0ZW5zaW9uRm9yTUlNRVR5
cGUoY29uc3QgU3RyaW5nJiB0eXBlKQogewotICAgIHJldHVybiB3a0dldFByZWZlcnJlZEV4dGVu
c2lvbkZvck1JTUVUeXBlKHR5cGUpOworICAgIHJldHVybiBbW05TVVJMRmlsZVR5cGVNYXBwaW5n
cyBzaGFyZWRNYXBwaW5nc10gcHJlZmVycmVkRXh0ZW5zaW9uRm9yTUlNRVR5cGU6KE5TU3RyaW5n
ICopdHlwZV07CiB9CiAKIGJvb2wgTUlNRVR5cGVSZWdpc3RyeTo6aXNBcHBsaWNhdGlvblBsdWdp
bk1JTUVUeXBlKGNvbnN0IFN0cmluZyYgTUlNRVR5cGUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgJKHJldmlzaW9u
IDE3MjY5MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50
ZXJmYWNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTE3MSwxMCArMTcxLDcgQEAgZXh0ZXJuIHZvaWQg
KCp3a0RyYXdNZWRpYVNsaWRlclRyYWNrKShDRwogICAgIGZsb2F0IGR1cmF0aW9uLCB1bnNpZ25l
ZCBzdGF0ZSk7CiBleHRlcm4gdm9pZCAoKndrRHJhd01lZGlhVUlQYXJ0KShpbnQgcGFydCwgQ0dD
b250ZXh0UmVmIGNvbnRleHQsIENHUmVjdCByZWN0LCB1bnNpZ25lZCBzdGF0ZSk7CiBleHRlcm4g
Q0ZTdHJpbmdSZWYgKCp3a1NpZ25lZFB1YmxpY0tleUFuZENoYWxsZW5nZVN0cmluZykodW5zaWdu
ZWQga2V5U2l6ZSwgQ0ZTdHJpbmdSZWYgY2hhbGxlbmdlLCBDRlN0cmluZ1JlZiBrZXlEZXNjcmlw
dGlvbik7Ci1leHRlcm4gTlNTdHJpbmcqICgqd2tHZXRQcmVmZXJyZWRFeHRlbnNpb25Gb3JNSU1F
VHlwZSkoTlNTdHJpbmcqKTsKLWV4dGVybiBOU0FycmF5KiAoKndrR2V0RXh0ZW5zaW9uc0Zvck1J
TUVUeXBlKShOU1N0cmluZyopOwogI2VuZGlmCi1leHRlcm4gTlNTdHJpbmcqICgqd2tHZXRNSU1F
VHlwZUZvckV4dGVuc2lvbikoTlNTdHJpbmcqKTsKICNpZiAhUExBVEZPUk0oSU9TKQogZXh0ZXJu
IEFUU1VGb250SUQgKCp3a0dldE5TRm9udEFUU1VGb250SWQpKE5TRm9udCopOwogZXh0ZXJuIGRv
dWJsZSAoKndrR2V0TlNVUkxSZXNwb25zZUNhbGN1bGF0ZWRFeHBpcmF0aW9uKShOU1VSTFJlc3Bv
bnNlICpyZXNwb25zZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29y
ZVN5c3RlbUludGVyZmFjZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5tbQkocmV2aXNpb24gMTcyNjkxKQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW0JKHdvcmtp
bmcgY29weSkKQEAgLTYzLDcgKzYzLDYgQEAgdm9pZCAoKndrV2luZG93U2V0U2NhbGVkRnJhbWUp
KE5TV2luZG93IAogTlNTdHJpbmcqICgqd2tHZXRQcmVmZXJyZWRFeHRlbnNpb25Gb3JNSU1FVHlw
ZSkoTlNTdHJpbmcqKTsKIENGU3RyaW5nUmVmICgqd2tTaWduZWRQdWJsaWNLZXlBbmRDaGFsbGVu
Z2VTdHJpbmcpKHVuc2lnbmVkIGtleVNpemUsIENGU3RyaW5nUmVmIGNoYWxsZW5nZSwgQ0ZTdHJp
bmdSZWYga2V5RGVzY3JpcHRpb24pOwogTlNBcnJheSogKCp3a0dldEV4dGVuc2lvbnNGb3JNSU1F
VHlwZSkoTlNTdHJpbmcqKTsKLU5TU3RyaW5nKiAoKndrR2V0TUlNRVR5cGVGb3JFeHRlbnNpb24p
KE5TU3RyaW5nKik7CiBOU1RpbWVJbnRlcnZhbCAoKndrR2V0TlNVUkxSZXNwb25zZUNhbGN1bGF0
ZWRFeHBpcmF0aW9uKShOU1VSTFJlc3BvbnNlICpyZXNwb25zZSk7CiBOU0RhdGUgKigqd2tHZXRO
U1VSTFJlc3BvbnNlTGFzdE1vZGlmaWVkRGF0ZSkoTlNVUkxSZXNwb25zZSAqcmVzcG9uc2UpOwog
Qk9PTCAoKndrR2V0TlNVUkxSZXNwb25zZU11c3RSZXZhbGlkYXRlKShOU1VSTFJlc3BvbnNlICpy
ZXNwb25zZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY29jb2EvTlNVUkxG
aWxlVHlwZU1hcHBpbmdzU1BJLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vc3BpL2NvY29hL05TVVJMRmlsZVR5cGVNYXBwaW5nc1NQSS5oCShyZXZpc2lvbiAwKQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL05TVVJMRmlsZVR5cGVNYXBwaW5nc1NQ
SS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTQgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQor
CisjaW1wb3J0IDxGb3VuZGF0aW9uL05TVVJMRmlsZVR5cGVNYXBwaW5ncy5oPgorCisjZWxzZQor
CisvLyBGSVhNRTogV2Ugc2hvdWxkIHVzZSBVVEkgaW5zdGVhZCwgYnV0IGl0J3MgbWlzc2luZyBz
b21lIG1hcHBpbmdzIHRoYXQgdGhpcyBvbGQgU1BJIGtub3dzLgorLy8gUmVtb3ZlIHRoZXNlIG1l
dGhvZHMgb25jZSA8cmRhcjovL3Byb2JsZW0vMTgwNDIxODQ+IGlzIGZpeGVkLgorQGludGVyZmFj
ZSBOU1VSTEZpbGVUeXBlTWFwcGluZ3MKK0BlbmQKK0BpbnRlcmZhY2UgTlNVUkxGaWxlVHlwZU1h
cHBpbmdzIChQcml2YXRlKQorKyAoTlNVUkxGaWxlVHlwZU1hcHBpbmdzICopc2hhcmVkTWFwcGlu
Z3M7CistIChOU1N0cmluZyAqKU1JTUVUeXBlRm9yRXh0ZW5zaW9uOihOU1N0cmluZyAqKWV4dDsK
Ky0gKE5TU3RyaW5nICopcHJlZmVycmVkRXh0ZW5zaW9uRm9yTUlNRVR5cGU6KE5TU3RyaW5nICop
dHlwZTsKKy0gKE5TQXJyYXkgKilleHRlbnNpb25zRm9yTUlNRVR5cGU6KE5TU3RyaW5nICopdHlw
ZTsKK0BlbmQKKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNzI2OTgpCisrKyBT
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAor
MjAxNC0wOC0xOCAgTWFjaWVqIFN0YWNob3dpYWsgIDxtanNAYXBwbGUuY29tPgorCisgICAgICAg
IFVzZSBOU1VSTEZpbGVUeXBlTWFwcGluZ3MgZGlyZWN0bHkgaW5zdGVhZCBvZiBkZXBlbmRpbmcg
b24gV2ViS2l0U3lzdGVtSW50ZXJmYWNlIHdyYXBwZXJzIGZvciBpdAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2MDM1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW06CisgICAgICAgIChJbml0V2ViQ29yZVN5c3Rl
bUludGVyZmFjZSk6IERvbid0IGluaXRpYWxpemUgdGhlIG5vLWxvbmdlci11c2VkIFdLR2V0RXh0
ZW5zaW9uc0Zvck1JTUVUeXBlLAorICAgICAgICBXS0dldFByZWZlcnJlZEV4dGVuc2lvbkZvck1J
TUVUeXBlLCBvciBXS0dldE1JTUVUeXBlRm9yRXh0ZW5zaW9uCisgICAgICAgICogbWFjL1dlYktp
dDIub3JkZXI6IFJlbW92ZSBleHBvcnRzIHJlbGF0ZWQgdG8gYWJvdmUuCisKIDIwMTQtMDgtMTYg
IFByYXRpayBTb2xhbmtpICA8cHNvbGFua2lAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmFtZSBE
aXNrQ2FjaGVNb25pdG9yIHRvIE5ldHdvcmtEaXNrQ2FjaGVNb25pdG9yCkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2Uu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9tYWMvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCShyZXZpc2lvbiAxNzI2OTEpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2Uu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTY1LDcgKzY1LDYgQEAgdm9pZCBJbml0V2ViQ29yZVN5c3Rl
bUludGVyZmFjZSh2b2lkKQogICAgICAgICBJTklUKERyYXdNZWRpYVNsaWRlclRyYWNrKTsKICAg
ICAgICAgSU5JVChEcmF3TWVkaWFVSVBhcnQpOwogICAgICAgICBJTklUKERyYXdUZXh0RmllbGRD
ZWxsRm9jdXNSaW5nKTsKLSAgICAgICAgSU5JVChHZXRFeHRlbnNpb25zRm9yTUlNRVR5cGUpOwog
ICAgICAgICBJTklUKEdldEZvbnRJbkxhbmd1YWdlRm9yQ2hhcmFjdGVyKTsKICAgICAgICAgSU5J
VChHZXRGb250SW5MYW5ndWFnZUZvclJhbmdlKTsKICAgICAgICAgSU5JVChHZXRHbHlwaFRyYW5z
Zm9ybWVkQWR2YW5jZXMpOwpAQCAtNzMsMTEgKzcyLDkgQEAgdm9pZCBJbml0V2ViQ29yZVN5c3Rl
bUludGVyZmFjZSh2b2lkKQogI2VuZGlmCiAgICAgICAgIElOSVQoR2V0VmVydGljYWxHbHlwaHNG
b3JDaGFyYWN0ZXJzKTsKICAgICAgICAgSU5JVChHZXRIVFRQUmVxdWVzdFByaW9yaXR5KTsKLSAg
ICAgICAgSU5JVChHZXRNSU1FVHlwZUZvckV4dGVuc2lvbik7CiAgICAgICAgIElOSVQoR2V0TlNV
UkxSZXNwb25zZUxhc3RNb2RpZmllZERhdGUpOwogI2lmICFQTEFURk9STShJT1MpCiAgICAgICAg
IElOSVQoU2lnbmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5nKTsKLSAgICAgICAgSU5JVChH
ZXRQcmVmZXJyZWRFeHRlbnNpb25Gb3JNSU1FVHlwZSk7CiAjZW5kaWYKICAgICAgICAgSU5JVChH
ZXRVc2VyVG9CYXNlQ1RNKTsKICAgICAgICAgSU5JVChHZXRXZWJEZWZhdWx0Q0ZTdHJpbmdFbmNv
ZGluZyk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9tYWMvV2ViS2l0Mi5vcmRlcgo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9tYWMvV2ViS2l0Mi5vcmRlcgkocmV2aXNpb24gMTcyNjkxKQor
KysgU291cmNlL1dlYktpdDIvbWFjL1dlYktpdDIub3JkZXIJKHdvcmtpbmcgY29weSkKQEAgLTg2
NjgsNyArODY2OCw2IEBAIF9fWk4zV1RGOVJldGFpblB0cklQSzdfX0NGVVJMRWFTRVMzXwogX1dL
QnVuZGxlR2FyYmFnZUNvbGxlY3RKYXZhU2NyaXB0T2JqZWN0cwogX19aTjZXZWJLaXQxNEluamVj
dGVkQnVuZGxlMzFnYXJiYWdlQ29sbGVjdEphdmFTY3JpcHRPYmplY3RzRXYKIF9fWk5LNldlYktp
dDE1V2ViRWRpdG9yQ2xpZW50MTBjYW5Db3B5Q3V0RVBON1dlYkNvcmU1RnJhbWVFYgotX1dLR2V0
RXh0ZW5zaW9uc0Zvck1JTUVUeXBlCiBfX1pONldlYktpdDE1V2ViRWRpdG9yQ2xpZW50MjVzaG91
bGRTaG93RGVsZXRlSW50ZXJmYWNlRVBON1dlYkNvcmUxMUhUTUxFbGVtZW50RQogX19aTks2V2Vi
S2l0MTVXZWJFZGl0b3JDbGllbnQ4Y2FuUGFzdGVFUE43V2ViQ29yZTVGcmFtZUViCiBfX1pONldl
YktpdDE1V2ViRWRpdG9yQ2xpZW50MjJzZXRJbnNlcnRpb25QYXN0ZWJvYXJkRVJLTjNXVEY2U3Ry
aW5nRQpJbmRleDogU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkocmV2aXNpb24gMTcyNjk4KQorKysgU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjggQEAKKzIwMTQt
MDgtMTggIE1hY2llaiBTdGFjaG93aWFrICA8bWpzQGFwcGxlLmNvbT4KKworICAgICAgICBVc2Ug
TlNVUkxGaWxlVHlwZU1hcHBpbmdzIGRpcmVjdGx5IGluc3RlYWQgb2YgZGVwZW5kaW5nIG9uIFdl
YktpdFN5c3RlbUludGVyZmFjZSB3cmFwcGVycyBmb3IgaXQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNjAzNQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTWlzYy9XZWJOU1ZpZXdFeHRyYXMubToKKyAg
ICAgICAgKC1bTlNWaWV3IF93ZWJfRHJhZ0ltYWdlRm9yRWxlbWVudDpyZWN0OmV2ZW50OnBhc3Rl
Ym9hcmQ6c291cmNlOm9mZnNldDpdKTogUmVtb3ZlIGNvbW1lbnQKKyAgICAgICAgcmVmZXJlbmNl
IHRvIG9ic29sZXRlIFdLU0kgZnVuY3Rpb24uCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
U3lzdGVtSW50ZXJmYWNlLm1tOgorICAgICAgICAoSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2Up
OiBEb24ndCBpbml0aWFsaXplIHRoZSBuby1sb25nZXItdXNlZCBXS0dldEV4dGVuc2lvbnNGb3JN
SU1FVHlwZSwKKyAgICAgICAgV0tHZXRQcmVmZXJyZWRFeHRlbnNpb25Gb3JNSU1FVHlwZSwgb3Ig
V0tHZXRNSU1FVHlwZUZvckV4dGVuc2lvbgorICAgICAgICAqIFBsdWdpbnMvV2ViUGx1Z2luRGF0
YWJhc2UubW06CisgICAgICAgICgtW1dlYlBsdWdpbkRhdGFiYXNlIHBsdWdpbkZvckV4dGVuc2lv
bjpdKTogSW5jbHVkZSBTUEkgaGVhZGVyIGZyb20gV2ViQ29yZTsgdXNlCisgICAgICAgIE5TVVJM
RmlsZVR5cGVNYXBwaW5ncyBkaXJlY3RseSBpbnN0ZWFkIG9mIHZpYSBXS1NJIHdyYXBwZXIuCisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW06CisgICAgICAg
IChXZWJGcmFtZUxvYWRlckNsaWVudDo6b2JqZWN0Q29udGVudFR5cGUpOiBkaXR0bworICAgICAg
ICAqIFdlYlZpZXcvV2ViSFRNTFZpZXcubW06CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9pbWFn
ZUV4aXN0c0F0UGF0aHM6XSk6IGRpdHRvCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgor
ICAgICAgICAoK1tXZWJWaWV3IF9zdXBwb3J0ZWRGaWxlRXh0ZW5zaW9uc10pOiBkaXR0bworICAg
ICAgICAoK1tXZWJWaWV3IHN1Z2dlc3RlZEZpbGVFeHRlbnNpb25Gb3JNSU1FVHlwZTpdKTogZGl0
dG8KKyAgICAgICAgKCtbV2ViVmlldyBfTUlNRVR5cGVGb3JGaWxlOl0pOiBkaXR0bworCiAyMDE0
LTA4LTE1ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNT
SU9OIChyMTY3ODU2KTogYWRvYmUuY29tIG5vIGxvbmdlciBhYmxlIHRvIGxhdW5jaCBDcmVhdGUg
Q2xvdWQgYXBwIHVzaW5nIGEgVVJMIHdpdGggYSBjdXN0b20gc2NoZW1lCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L21hYy9NaXNjL1dlYk5TVmlld0V4dHJhcy5tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvbWFjL01pc2MvV2ViTlNWaWV3RXh0cmFzLm0JKHJldmlzaW9uIDE3MjY5MSkKKysrIFNv
dXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViTlNWaWV3RXh0cmFzLm0JKHdvcmtpbmcgY29weSkKQEAg
LTE5NSw3ICsxOTUsNyBAQCAtICh2b2lkKV93ZWJfRHJhZ0ltYWdlRm9yRWxlbWVudDooRE9NRWxl
CiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8gRklYTUU6IFRoaXMgaGFzIGJlZW4gYnJva2VuIGZv
ciBhIHdoaWxlLgogICAgICAgICAvLyBUaGVyZSdzIG5vIHdheSB0byBnZXQgdGhlIE1JTUUgdHlw
ZSBmb3IgdGhlIGltYWdlIGZyb20gYSBET00gZWxlbWVudC4KLSAgICAgICAgLy8gVGhlIG9sZCBj
b2RlIHVzZWQgV0tHZXRQcmVmZXJyZWRFeHRlbnNpb25Gb3JNSU1FVHlwZShbaW1hZ2UgTUlNRVR5
cGVdKTsKKyAgICAgICAgLy8gVGhlIG9sZCBjb2RlIHVzZWQgW2ltYWdlIE1JTUVUeXBlXTsKICAg
ICAgICAgTlNTdHJpbmcgKmV4dGVuc2lvbiA9IEAiIjsKICAgICAgICAgZHJhZ0ltYWdlID0gW1tO
U1dvcmtzcGFjZSBzaGFyZWRXb3Jrc3BhY2VdIGljb25Gb3JGaWxlVHlwZTpleHRlbnNpb25dOwog
ICAgICAgICBOU1NpemUgb2Zmc2V0ID0gTlNNYWtlU2l6ZShbZHJhZ0ltYWdlIHNpemVdLndpZHRo
IC0gV2ViRHJhZ0ljb25SaWdodEluc2V0LCAtV2ViRHJhZ0ljb25Cb3R0b21JbnNldCk7CkluZGV4
OiBTb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYlBsdWdpbkRhdGFiYXNlLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViUGx1Z2luRGF0YWJhc2UubW0JKHJl
dmlzaW9uIDE3MjY5MSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViUGx1Z2luRGF0
YWJhc2UubW0JKHdvcmtpbmcgY29weSkKQEAgLTQyLDYgKzQyLDcgQEAKICNpbXBvcnQgIldlYlBs
dWdpblBhY2thZ2UuaCIKICNpbXBvcnQgIldlYlZpZXdQcml2YXRlLmgiCiAjaW1wb3J0ICJXZWJW
aWV3SW50ZXJuYWwuaCIKKyNpbXBvcnQgPFdlYkNvcmUvTlNVUkxGaWxlVHlwZU1hcHBpbmdzU1BJ
Lmg+CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQgPHd0Zi9Bc3Nl
cnRpb25zLmg+CiAKQEAgLTE3NSw3ICsxNzYsNyBAQCAtIChXZWJCYXNlUGx1Z2luUGFja2FnZSAq
KXBsdWdpbkZvckV4dGVuCiAgICAgICAgIC8vIElmIG5vIHBsdWctaW4gd2FzIGZvdW5kIGZyb20g
dGhlIGV4dGVuc2lvbiwgYXR0ZW1wdCB0byBtYXAgZnJvbSB0aGUgZXh0ZW5zaW9uIHRvIGEgTUlN
RSB0eXBlCiAgICAgICAgIC8vIGFuZCBmaW5kIHRoZSBhIHBsdWctaW4gZnJvbSB0aGUgTUlNRSB0
eXBlLiBUaGlzIGlzIGRvbmUgaW4gY2FzZSB0aGUgcGx1Zy1pbiBoYXMgbm90IGZ1bGx5IHNwZWNp
ZmllZAogICAgICAgICAvLyBhbiBleHRlbnNpb24gPC0+IE1JTUUgdHlwZSBtYXBwaW5nLgotICAg
ICAgICBOU1N0cmluZyAqTUlNRVR5cGUgPSBXS0dldE1JTUVUeXBlRm9yRXh0ZW5zaW9uKGV4dGVu
c2lvbik7CisgICAgICAgIE5TU3RyaW5nICpNSU1FVHlwZSA9IFtbTlNVUkxGaWxlVHlwZU1hcHBp
bmdzIHNoYXJlZE1hcHBpbmdzXSBNSU1FVHlwZUZvckV4dGVuc2lvbjpleHRlbnNpb25dOwogICAg
ICAgICBpZiAoW01JTUVUeXBlIGxlbmd0aF0gPiAwKQogICAgICAgICAgICAgcGx1Z2luID0gW3Nl
bGYgcGx1Z2luRm9yTUlNRVR5cGU6TUlNRVR5cGVdOwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
Lm1tCShyZXZpc2lvbiAxNzI2OTEpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQkod29ya2luZyBjb3B5KQpAQCAtMTA5LDYgKzEwOSw3
IEBACiAjaW1wb3J0IDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0cnkuaD4KICNpbXBvcnQgPFdlYkNv
cmUvTWFpbkZyYW1lLmg+CiAjaW1wb3J0IDxXZWJDb3JlL01vdXNlRXZlbnQuaD4KKyNpbXBvcnQg
PFdlYkNvcmUvTlNVUkxGaWxlVHlwZU1hcHBpbmdzU1BJLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Bh
Z2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGx1Z2luVmlld0Jhc2UuaD4KICNpbXBvcnQgPFdlYkNv
cmUvUHJvdGVjdGlvblNwYWNlLmg+CkBAIC0xNjIwLDcgKzE2MjEsNyBAQCBPYmplY3RDb250ZW50
VHlwZSBXZWJGcmFtZUxvYWRlckNsaWVudDo6CiAgICAgICAgIE5TVVJMICpVUkwgPSB1cmw7CiAg
ICAgICAgIE5TU3RyaW5nICpleHRlbnNpb24gPSBbW1VSTCBwYXRoXSBwYXRoRXh0ZW5zaW9uXTsK
ICAgICAgICAgaWYgKFtleHRlbnNpb24gbGVuZ3RoXSA+IDApIHsKLSAgICAgICAgICAgIHR5cGUg
PSBXS0dldE1JTUVUeXBlRm9yRXh0ZW5zaW9uKGV4dGVuc2lvbik7CisgICAgICAgICAgICB0eXBl
ID0gW1tOU1VSTEZpbGVUeXBlTWFwcGluZ3Mgc2hhcmVkTWFwcGluZ3NdIE1JTUVUeXBlRm9yRXh0
ZW5zaW9uOmV4dGVuc2lvbl07CiAgICAgICAgICAgICBpZiAodHlwZS5pc0VtcHR5KCkpIHsKICAg
ICAgICAgICAgICAgICAvLyBJZiBubyBNSU1FIHR5cGUgaXMgc3BlY2lmaWVkLCB1c2UgYSBwbHVn
LWluIGlmIHdlIGhhdmUgb25lIHRoYXQgY2FuIGhhbmRsZSB0aGUgZXh0ZW5zaW9uLgogICAgICAg
ICAgICAgICAgIGlmIChXZWJCYXNlUGx1Z2luUGFja2FnZSAqcGFja2FnZSA9IFtnZXRXZWJWaWV3
KG1fd2ViRnJhbWUuZ2V0KCkpIF9wbHVnaW5Gb3JFeHRlbnNpb246ZXh0ZW5zaW9uXSkgewpJbmRl
eDogU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlN5c3Rl
bUludGVyZmFjZS5tbQkocmV2aXNpb24gMTcyNjkxKQorKysgU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC03Miwx
OCArNzIsMTUgQEAgdm9pZCBJbml0V2ViQ29yZVN5c3RlbUludGVyZmFjZSh2b2lkKQogICAgIElO
SVQoRHJhd01lZGlhVUlQYXJ0KTsKICAgICBJTklUKERyYXdNZWRpYVNsaWRlclRyYWNrKTsKICAg
ICBJTklUKERyYXdUZXh0RmllbGRDZWxsRm9jdXNSaW5nKTsKLSAgICBJTklUKEdldEV4dGVuc2lv
bnNGb3JNSU1FVHlwZSk7CiAgICAgSU5JVChHZXRGb250SW5MYW5ndWFnZUZvckNoYXJhY3Rlcik7
CiAgICAgSU5JVChHZXRGb250SW5MYW5ndWFnZUZvclJhbmdlKTsKICAgICBJTklUKEdldEdseXBo
VHJhbnNmb3JtZWRBZHZhbmNlcyk7CiAjZW5kaWYKICAgICBJTklUKEdldEhUVFBSZXF1ZXN0UHJp
b3JpdHkpOwotICAgIElOSVQoR2V0TUlNRVR5cGVGb3JFeHRlbnNpb24pOwogICAgIElOSVQoR2V0
TlNVUkxSZXNwb25zZUxhc3RNb2RpZmllZERhdGUpOwogICAgIElOSVQoR2V0V2ViRGVmYXVsdENG
U3RyaW5nRW5jb2RpbmcpOwogI2lmICFQTEFURk9STShJT1MpCiAgICAgSU5JVChTaWduZWRQdWJs
aWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmcpOwotICAgIElOSVQoR2V0UHJlZmVycmVkRXh0ZW5zaW9u
Rm9yTUlNRVR5cGUpOwogICAgIElOSVQoR2V0V2hlZWxFdmVudERlbHRhcyk7CiAgICAgSU5JVChH
ZXROU0V2ZW50S2V5Q2hhcik7CiAgICAgSU5JVChIaXRUZXN0TWVkaWFVSVBhcnQpOwpJbmRleDog
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCShyZXZpc2lvbiAxNzI2OTEp
CisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCSh3b3JraW5nIGNv
cHkpCkBAIC0xMDIsNiArMTAyLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvTGVnYWN5V2ViQXJjaGl2
ZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CiAjaW1wb3J0IDxXZWJD
b3JlL01haW5GcmFtZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9OU1VSTEZpbGVUeXBlTWFwcGluZ3NT
UEkuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGFnZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9SYW5nZS5o
PgogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJWaWV3Lmg+CkBAIC03NjgsNyArNzY5LDcgQEAgLSAo
Qk9PTClfaW1hZ2VFeGlzdHNBdFBhdGhzOihOU0FycmF5ICopcAogICAgIE5TU3RyaW5nICpwYXRo
OwogICAgIAogICAgIHdoaWxlICgocGF0aCA9IFtlbnVtZXJhdG9yIG5leHRPYmplY3RdKSAhPSBu
aWwpIHsKLSAgICAgICAgTlNTdHJpbmcgKk1JTUVUeXBlID0gV0tHZXRNSU1FVHlwZUZvckV4dGVu
c2lvbihbcGF0aCBwYXRoRXh0ZW5zaW9uXSk7CisgICAgICAgIE5TU3RyaW5nICpNSU1FVHlwZSA9
IFtbTlNVUkxGaWxlVHlwZU1hcHBpbmdzIHNoYXJlZE1hcHBpbmdzXSBNSU1FVHlwZUZvckV4dGVu
c2lvbjpbcGF0aCBwYXRoRXh0ZW5zaW9uXV07CiAgICAgICAgIGlmIChNSU1FVHlwZVJlZ2lzdHJ5
Ojppc1N1cHBvcnRlZEltYWdlUmVzb3VyY2VNSU1FVHlwZShNSU1FVHlwZSkpCiAgICAgICAgICAg
ICByZXR1cm4gWUVTOwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
Vmlldy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcu
bW0JKHJldmlzaW9uIDE3MjY5MSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmll
dy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTQ4LDYgKzE0OCw3IEBACiAjaW1wb3J0IDxXZWJDb3Jl
L01JTUVUeXBlUmVnaXN0cnkuaD4KICNpbXBvcnQgPFdlYkNvcmUvTWFpbkZyYW1lLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL01lbW9yeVByZXNzdXJlSGFuZGxlci5oPgorI2ltcG9ydCA8V2ViQ29yZS9O
U1VSTEZpbGVUeXBlTWFwcGluZ3NTUEkuaD4KICNpbXBvcnQgPFdlYkNvcmUvTm9kZUxpc3QuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvTm90aWZpY2F0aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL05vdGlm
aWNhdGlvbkNvbnRyb2xsZXIuaD4KQEAgLTEwOTgsNyArMTA5OSw3IEBAICsgKE5TQXJyYXkgKilf
c3VwcG9ydGVkRmlsZUV4dGVuc2lvbnMKICAgICBOU0VudW1lcmF0b3IgKmVudW1lcmF0b3IgPSBb
TUlNRVR5cGVzIG9iamVjdEVudW1lcmF0b3JdOwogICAgIE5TU3RyaW5nICpNSU1FVHlwZTsKICAg
ICB3aGlsZSAoKE1JTUVUeXBlID0gW2VudW1lcmF0b3IgbmV4dE9iamVjdF0pICE9IG5pbCkgewot
ICAgICAgICBOU0FycmF5ICpleHRlbnNpb25zRm9yVHlwZSA9IFdLR2V0RXh0ZW5zaW9uc0Zvck1J
TUVUeXBlKE1JTUVUeXBlKTsKKyAgICAgICAgTlNBcnJheSAqZXh0ZW5zaW9uc0ZvclR5cGUgPSBb
W05TVVJMRmlsZVR5cGVNYXBwaW5ncyBzaGFyZWRNYXBwaW5nc10gZXh0ZW5zaW9uc0Zvck1JTUVU
eXBlOk1JTUVUeXBlXTsKICAgICAgICAgaWYgKGV4dGVuc2lvbnNGb3JUeXBlKSB7CiAgICAgICAg
ICAgICBbZXh0ZW5zaW9ucyBhZGRPYmplY3RzRnJvbUFycmF5OmV4dGVuc2lvbnNGb3JUeXBlXTsK
ICAgICAgICAgfQpAQCAtMTQ5NSw3ICsxNDk2LDcgQEAgKyAoQk9PTCljYW5TaG93RmlsZTooTlNT
dHJpbmcgKilwYXRoCiAjaWYgIVBMQVRGT1JNKElPUykKICsgKE5TU3RyaW5nICopc3VnZ2VzdGVk
RmlsZUV4dGVuc2lvbkZvck1JTUVUeXBlOihOU1N0cmluZyAqKXR5cGUKIHsKLSAgICByZXR1cm4g
V0tHZXRQcmVmZXJyZWRFeHRlbnNpb25Gb3JNSU1FVHlwZSh0eXBlKTsKKyAgICByZXR1cm4gW1tO
U1VSTEZpbGVUeXBlTWFwcGluZ3Mgc2hhcmVkTWFwcGluZ3NdIHByZWZlcnJlZEV4dGVuc2lvbkZv
ck1JTUVUeXBlOnR5cGVdOwogfQogI2VuZGlmCiAKQEAgLTE3OTgsNyArMTc5OSw3IEBAICsgKE5T
U3RyaW5nICopX01JTUVUeXBlRm9yRmlsZTooTlNTdHJpbmcKICNpZiAhUExBVEZPUk0oSU9TKQog
ICAgIC8vIEdldCB0aGUgTUlNRSB0eXBlIGZyb20gdGhlIGV4dGVuc2lvbi4KICAgICBpZiAoW2V4
dGVuc2lvbiBsZW5ndGhdICE9IDApIHsKLSAgICAgICAgTUlNRVR5cGUgPSBXS0dldE1JTUVUeXBl
Rm9yRXh0ZW5zaW9uKGV4dGVuc2lvbik7CisgICAgICAgIE1JTUVUeXBlID0gW1tOU1VSTEZpbGVU
eXBlTWFwcGluZ3Mgc2hhcmVkTWFwcGluZ3NdIE1JTUVUeXBlRm9yRXh0ZW5zaW9uOmV4dGVuc2lv
bl07CiAgICAgfQogI2VuZGlmCiAK
</data>
<flag name="review"
          id="261476"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>